:root{--color-bg: #F7F8FA;--color-bg-subtle: #F7F8FA;--color-surface: #FFFFFF;--color-border: #D0D5DD;--color-border-danger: #D92D20;--color-text: #101828;--color-text-primary: #101828;--color-text-secondary: #667085;--color-text-muted: #667085;--color-primary: #2563EB;--color-accent: #2563EB;--color-accent-alpha: rgba(37, 99, 235, .08);--color-error: #D92D20;--color-danger: #D92D20;--color-text-danger: #D92D20;--color-danger-bg: #FEF3F2;--color-danger-light: #FEF3F2;--color-danger-hover: #B42318;--color-surface-danger: #FEF3F2;--color-surface-danger-hover: #FEE4E2;--color-disabled-bg: #F2F4F7;--font-family: "Noto Sans JP", "Hiragino Sans", "Yu Gothic UI", sans-serif;--font-size-body: 14px;--font-size-sub: 12px;--font-size-section-heading: 18px;--font-size-page-heading: 24px;--header-height: 56px;--breadcrumb-height: 24px;--content-max-width: 960px;--content-padding-pc: 24px;--content-padding-sp: 16px;--radius-card: 12px;--radius-button: 8px;--button-height: 44px;--button-height-sm: 36px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-body);-webkit-font-smoothing:antialiased}.app{min-height:100%;background:var(--color-bg)}a{color:inherit}.app-header__service-name,.app-header__account-name,.guild-card__name,.calendar-card__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-shell{min-height:100%;display:flex;flex-direction:column}.page-content{width:100%;max-width:var(--content-max-width);margin:0 auto;padding:24px var(--content-padding-pc) 48px;flex:1}@media (max-width: 640px){.page-content{padding:20px var(--content-padding-sp) 40px}}.app-header{height:var(--header-height);min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}@media (max-width: 640px){.app-header{padding:0 16px}}.app-header__service-name{font-size:16px;font-weight:700;color:var(--color-text)}.app-header__account{display:flex;align-items:center;gap:12px;min-width:0}.app-header__account-name{font-size:var(--font-size-body);color:var(--color-text);max-width:160px}.app-breadcrumb{height:var(--breadcrumb-height);min-height:var(--breadcrumb-height);display:flex;align-items:center;padding:0 24px;font-size:var(--font-size-sub);color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:var(--header-height);z-index:9}@media (max-width: 640px){.app-breadcrumb{padding:0 16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--button-height);padding:0 20px;border-radius:var(--radius-button);border:1px solid transparent;font-family:var(--font-family);font-size:var(--font-size-body);font-weight:600;cursor:pointer;transition:background-color .15s ease,transform .05s ease;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:#1d4ed8}.btn--ghost{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn--ghost:hover:not(:disabled){background:var(--color-bg)}.btn--discord{background:var(--color-primary);color:#fff;width:220px;height:var(--button-height)}.btn--discord:hover:not(:disabled){background:#1d4ed8}.btn--sm{height:var(--button-height-sm);padding:0 14px;font-size:var(--font-size-sub)}.btn__icon{flex-shrink:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.empty-state-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:24px 16px;text-align:center;color:var(--color-text-muted);font-size:var(--font-size-body)}.empty-state-card__action{margin-top:16px}.page-center{display:flex;align-items:center;justify-content:center;min-height:60vh}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{display:flex;align-items:center;justify-content:center;flex:1;padding:24px}.login-card{width:480px;max-width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:32px 24px;display:flex;flex-direction:column;align-items:center;text-align:center}.login-description{font-size:var(--font-size-body);line-height:1.5;color:var(--color-text);margin:0 0 24px;max-width:100%}.login-error{margin-top:12px;font-size:var(--font-size-sub);color:var(--color-error)}.page-heading{font-size:var(--font-size-page-heading);font-weight:700;margin:0;color:var(--color-text)}.page-description{font-size:var(--font-size-body);color:var(--color-text-muted);margin:8px 0 20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guild-selector{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.guild-card__button{width:100%;height:64px;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-family:var(--font-family);text-align:left;transition:background-color .15s ease,transform .05s ease}.guild-card__button:hover{background:var(--color-bg)}.guild-card__button:active{transform:translateY(1px)}.guild-card__button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.guild-card__icon-wrap{flex-shrink:0;width:32px;height:32px}.guild-card__icon{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block}.guild-card__icon--placeholder{width:32px;height:32px;border-radius:50%;background:var(--color-bg-subtle);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--color-text-muted)}.guild-card__info{flex:1;min-width:0}.guild-card__name{display:block;font-size:var(--font-size-body);color:var(--color-text)}.guild-card__arrow{flex-shrink:0;color:var(--color-text-muted);font-size:18px}.dashboard-page__primary-action{margin:16px 0 24px}.dashboard-section{margin-bottom:32px}.dashboard-section .section-title{font-size:var(--font-size-section-heading);font-weight:700;margin:0 0 12px;color:var(--color-text)}.calendar-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.calendar-card__button{width:100%;height:72px;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-card);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-family:var(--font-family);text-align:left;transition:background-color .15s ease,transform .05s ease}.calendar-card__button:hover{background:var(--color-bg)}.calendar-card__button:active{transform:translateY(1px)}.calendar-card__button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.calendar-card__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.calendar-card__name{display:block;font-size:var(--font-size-body);color:var(--color-text)}.calendar-card__period,.calendar-card__supplement{display:block;font-size:var(--font-size-sub);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-card__arrow{flex-shrink:0;color:var(--color-text-muted);font-size:18px}.create-card{width:100%;max-width:560px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:24px;margin-top:16px}.create-title{font-size:var(--font-size-page-heading);font-weight:700;margin:0 0 16px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:var(--font-size-sub);color:var(--color-text-muted);margin-bottom:8px}.form-input,.form-textarea{width:100%;border:1px solid var(--color-border);border-radius:8px;padding:0 12px;font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text);background:var(--color-surface)}.form-input{height:40px}.form-textarea{height:96px;padding:8px 12px;resize:none}.form-input:focus,.form-textarea:focus{outline:2px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary)}.form-input:disabled,.form-textarea:disabled{background:var(--color-disabled-bg);color:var(--color-text-muted)}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.form-error{margin-top:6px;font-size:var(--font-size-sub);color:var(--color-error)}.required{color:var(--color-error)}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.detail-page{max-width:720px;margin:0 auto;padding:1rem 1rem 4rem}.detail-title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.5rem 0 .25rem}.detail-title{font-size:1.35rem;font-weight:700;margin:0}.detail-tz{font-size:.75rem;color:var(--color-text-muted, #888);background:var(--color-bg-subtle, #f3f4f6);padding:2px 6px;border-radius:4px}.detail-description{font-size:.875rem;color:var(--color-text-muted, #555);margin:.25rem 0 .5rem}.detail-period{font-size:.8rem;color:var(--color-text-muted, #888);margin:0 0 1rem}.mode-bar{background:var(--color-bg-subtle, #f9fafb);border:1px solid var(--color-border, #e5e7eb);border-radius:8px;padding:.5rem .75rem;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.5rem}.mode-bar__current{font-size:.8rem;color:var(--color-text-muted, #555)}.mode-bar__buttons{display:flex;flex-wrap:wrap;gap:.4rem}.mode-btn{min-width:2.5rem;height:2.5rem;padding:0 .6rem;border:2px solid var(--color-border, #d1d5db);border-radius:6px;background:var(--color-bg, #fff);font-size:1rem;cursor:pointer;transition:background .1s,border-color .1s}.mode-btn:hover:not(:disabled){border-color:var(--color-primary, #5865f2)}.mode-btn--active{background:var(--color-primary, #5865f2);border-color:var(--color-primary, #5865f2);color:#fff}.mode-btn--clear{font-size:.8rem;padding:0 .75rem}.mode-btn:disabled{opacity:.4;cursor:not-allowed}.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.month-nav__label{font-size:1.1rem;font-weight:600}.month-nav__btn{background:none;border:1px solid var(--color-border, #d1d5db);border-radius:6px;padding:.3rem .75rem;cursor:pointer;font-size:.875rem;transition:background .1s}.month-nav__btn:hover:not(:disabled){background:var(--color-bg-subtle, #f3f4f6)}.month-nav__btn:disabled{opacity:.35;cursor:not-allowed}.month-grid{border:1px solid var(--color-border, #e5e7eb);border-radius:8px;overflow:hidden;margin-bottom:.75rem}.month-grid__header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-bg-subtle, #f3f4f6);border-bottom:1px solid var(--color-border, #e5e7eb)}.month-grid__weekday{text-align:center;padding:.4rem 0;font-size:.75rem;font-weight:600;color:var(--color-text-muted, #6b7280)}.month-grid__weekday--weekend{color:var(--color-weekend, #ef4444)}.month-grid__body{display:grid;grid-template-columns:repeat(7,1fr)}.date-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:3.5rem;border:0;border-right:1px solid var(--color-border, #e5e7eb);border-bottom:1px solid var(--color-border, #e5e7eb);background:var(--color-bg, #fff);cursor:pointer;transition:background .1s;padding:.15rem;font-family:inherit}.date-cell:nth-child(7n){border-right:0}.date-cell:hover:not(:disabled){background:var(--color-primary-light, #eef0fd)}.date-cell:disabled{cursor:default}.date-cell__day{font-size:.8rem;color:var(--color-text, #111);line-height:1}.date-cell__symbol{font-size:1.1rem;line-height:1.2}.date-cell--weekend .date-cell__day{color:var(--color-weekend, #ef4444)}.date-cell--today{background:var(--color-today-bg, #fffbeb)}.date-cell--today .date-cell__day{font-weight:700;color:var(--color-today, #d97706)}.date-cell--out-range{background:var(--color-bg-subtle, #f9fafb);opacity:.45;cursor:not-allowed;pointer-events:none}.date-cell--retired .date-cell__symbol,.date-cell__symbol--retired{opacity:.4;text-decoration:line-through}.date-cell--empty{background:var(--color-bg-subtle, #f9fafb);cursor:default;min-height:3.5rem;border-right:1px solid var(--color-border, #e5e7eb);border-bottom:1px solid var(--color-border, #e5e7eb)}.date-cell--saving{opacity:.6}.date-cell__saving-indicator{position:absolute;top:2px;right:2px;width:6px;height:6px;border-radius:50%;background:var(--color-primary, #5865f2);animation:pulse .8s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.2}}.bulk-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.bulk-btn{padding:.35rem .8rem;border:1px solid var(--color-border, #d1d5db);border-radius:6px;background:var(--color-bg, #fff);font-size:.8rem;cursor:pointer;transition:background .1s}.bulk-btn:hover:not(:disabled){background:var(--color-bg-subtle, #f3f4f6)}.bulk-btn--danger{color:var(--color-danger, #ef4444);border-color:var(--color-danger-light, #fca5a5)}.bulk-btn--danger:hover:not(:disabled){background:var(--color-danger-bg, #fff1f1)}.bulk-btn:disabled{opacity:.35;cursor:not-allowed}.grid-loading{display:flex;justify-content:center;padding:3rem 0}.symbol-editor-page{max-width:680px;margin:0 auto;padding:1.5rem 1rem 4rem}.info-banner{background:var(--color-surface-2, #f0f4ff);border:1px solid var(--color-border-info, #c3d4ff);border-radius:8px;padding:.75rem 1rem;font-size:.875rem;color:var(--color-text-secondary, #444);margin-bottom:1.5rem;line-height:1.5}.symbol-editor{display:flex;flex-direction:column;gap:2rem}.symbol-editor__section{display:flex;flex-direction:column;gap:.75rem}.symbol-editor__section--retired{opacity:.6}.symbol-editor__section-title{font-size:1rem;font-weight:600;color:var(--color-text-primary, #111);margin:0}.symbol-editor__section-title--retired{color:var(--color-text-muted, #888)}.symbol-editor__empty{font-size:.875rem;color:var(--color-text-muted, #888)}.symbol-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.symbol-list__item{border:1px solid var(--color-border, #e0e0e0);border-radius:8px;overflow:hidden}.symbol-list--retired .symbol-list__item{background:var(--color-surface-2, #f7f7f7)}.symbol-list__item--retired{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;font-size:.875rem}.symbol-row{display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem}.symbol-key{font-size:1.25rem;font-weight:700;min-width:2rem;text-align:center;flex-shrink:0}.symbol-key--retired{opacity:.5}.symbol-row__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.symbol-label{font-weight:600;font-size:.9375rem;color:var(--color-text-primary, #111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.symbol-label--retired{color:var(--color-text-muted, #888);font-weight:500}.symbol-meta{font-size:.8125rem;color:var(--color-text-secondary, #555)}.symbol-badge{font-size:.75rem;padding:.1em .5em;border-radius:4px;background:var(--color-surface-3, #eee);color:var(--color-text-muted, #888);flex-shrink:0}.symbol-badge--retired{background:var(--color-surface-3, #eee)}.symbol-row__actions{display:flex;gap:.375rem;flex-shrink:0}.retire-confirm{background:var(--color-surface-danger, #fff5f5);border-top:1px solid var(--color-border-danger, #fcc);padding:.75rem 1rem}.retire-confirm__message{font-size:.875rem;color:var(--color-text-danger, #c00);margin:0 0 .75rem;line-height:1.5}.retire-confirm__actions{display:flex;gap:.5rem}.symbol-form{padding:1rem;display:flex;flex-direction:column;gap:.875rem;background:var(--color-surface-1, #fafafa)}.symbol-form__row{display:flex;gap:.75rem;align-items:flex-start}.symbol-form__actions{display:flex;gap:.5rem;padding-top:.25rem}.form-field{display:flex;flex-direction:column;gap:.25rem;flex:1}.form-field--narrow{flex:0 0 auto;min-width:80px;max-width:110px}.form-field--wide{flex:1}.form-label{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary, #555)}.form-input{padding:.4375rem .625rem;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;font-size:.9375rem;background:var(--color-surface, #fff);color:var(--color-text-primary, #111);transition:border-color .15s}.form-input:focus{outline:none;border-color:var(--color-accent, #5865f2);box-shadow:0 0 0 2px var(--color-accent-alpha, rgba(88, 101, 242, .2))}.form-input:disabled{opacity:.6;cursor:not-allowed;background:var(--color-surface-2, #f0f0f0)}.form-input--symbol{font-size:1.25rem;text-align:center;padding:.25rem .375rem}.form-select{padding:.4375rem .625rem;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;font-size:.9375rem;background:var(--color-surface, #fff);color:var(--color-text-primary, #111);cursor:pointer}.form-select:disabled{opacity:.6;cursor:not-allowed}.form-hint{font-size:.75rem;color:var(--color-text-muted, #888)}.form-hint--warn{color:var(--color-text-warning, #b45309)}.btn--danger{background:var(--color-danger, #dc2626);color:#fff;border:none}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover, #b91c1c)}.btn--danger-ghost{color:var(--color-danger, #dc2626)}.btn--danger-ghost:hover:not(:disabled){background:var(--color-surface-danger-hover, #fee2e2)}.compare-page{max-width:900px;margin:0 auto;padding:1.5rem 1rem 3rem}.compare-page__header{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem}.compare-page__back{color:var(--color-text-secondary, #555);text-decoration:none;font-size:.875rem}.compare-page__back:hover{text-decoration:underline}.compare-page__title{font-size:1.375rem;font-weight:700;margin:0}.compare-page__section-title{font-size:1rem;font-weight:600;margin:0 0 .75rem;color:var(--color-text-secondary, #555);text-transform:uppercase;letter-spacing:.04em;font-size:.8125rem}.compare-page__error{color:var(--color-error, #c0392b);font-size:.875rem;margin:.5rem 0 0}.compare-page__form,.compare-page__result,.compare-page__snapshots{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e0e0e0);border-radius:8px;padding:1.25rem 1.5rem;margin-bottom:1.5rem}.compare-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}.compare-form__label{display:flex;flex-direction:column;gap:.25rem;font-size:.8125rem;color:var(--color-text-secondary, #555)}.compare-form__label--inline{flex-direction:row;align-items:center;gap:.4rem;font-size:.875rem;color:var(--color-text, #222);cursor:pointer;margin-bottom:.15rem}.compare-form__input{padding:.4rem .6rem;border:1px solid var(--color-border, #ccc);border-radius:4px;font-size:.9375rem;background:var(--color-bg, #fafafa);color:var(--color-text, #222);min-width:140px}.compare-form__run-btn{padding:.45rem 1.25rem;background:var(--color-primary, #5865f2);color:#fff;border:none;border-radius:6px;font-size:.9375rem;font-weight:600;cursor:pointer;transition:opacity .15s;align-self:flex-end}.compare-form__run-btn:hover:not(:disabled){opacity:.88}.compare-form__run-btn:disabled{opacity:.5;cursor:not-allowed}.compare-panel__meta{font-size:.8125rem;color:var(--color-text-secondary, #666);margin:0 0 .875rem}.compare-panel--empty p{color:var(--color-text-secondary, #888);font-size:.9rem;margin:0}.compare-panel__table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.compare-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:400px}.compare-table th,.compare-table td{padding:.45rem .75rem;border:1px solid var(--color-border, #e0e0e0);text-align:center}.compare-table th{background:var(--color-header-bg, #f5f5f5);font-weight:600}.compare-table__date{text-align:left;white-space:nowrap;min-width:90px}.compare-table__row:hover{background:var(--color-row-hover, #f9f9ff)}.compare-table__row--best-◎,.compare-table__row--best-_{background:var(--color-best-row, #eaf4ea)}.compare-table__unentered{color:var(--color-text-secondary, #888)}.snapshot-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.snapshot-list--empty p{color:var(--color-text-secondary, #888);font-size:.9rem;margin:0}.snapshot-list__item{border:1px solid var(--color-border, #e0e0e0);border-radius:6px;overflow:hidden;transition:border-color .15s}.snapshot-list__item--active{border-color:var(--color-primary, #5865f2)}.snapshot-list__btn{display:flex;width:100%;padding:.6rem 1rem;gap:1rem;align-items:center;background:none;border:none;cursor:pointer;text-align:left;font-size:.9rem;color:var(--color-text, #222)}.snapshot-list__btn:hover{background:var(--color-row-hover, #f5f5ff)}.snapshot-list__range{font-weight:600;flex:1}.snapshot-list__participants{color:var(--color-text-secondary, #666);white-space:nowrap}.snapshot-list__created{color:var(--color-text-secondary, #888);font-size:.8125rem;white-space:nowrap}.member-selector{border:1px solid var(--color-border, #e0e0e0);border-radius:6px;overflow:hidden}.member-selector--loading,.member-selector--empty{padding:.75rem 1rem;color:var(--color-text-secondary, #888);font-size:.875rem;display:flex;align-items:center;gap:.75rem}.member-selector__actions{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-header-bg, #f5f5f5);border-bottom:1px solid var(--color-border, #e0e0e0);flex-wrap:wrap}.member-selector__count{margin-left:auto;font-size:.8125rem;color:var(--color-text-secondary, #666);white-space:nowrap}.member-selector__list{list-style:none;margin:0;padding:0;max-height:240px;overflow-y:auto}.member-selector__divider{padding:.35rem .75rem;font-size:.75rem;font-weight:600;color:var(--color-text-secondary, #888);background:var(--color-header-bg, #f9f9f9);border-top:1px solid var(--color-border, #e0e0e0);text-transform:uppercase;letter-spacing:.04em}.member-item{border-bottom:1px solid var(--color-border, #f0f0f0)}.member-item:last-child{border-bottom:none}.member-item--left{opacity:.65}.member-item__label{display:flex;align-items:center;gap:.5rem;padding:.45rem .75rem;cursor:pointer;transition:background .1s}.member-item__label:hover{background:var(--color-row-hover, #f5f5ff)}.member-item__check{flex-shrink:0;width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary, #5865f2)}.member-item__avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;object-fit:cover}.member-item__avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-primary, #5865f2);color:#fff;font-size:.75rem;font-weight:700}.member-item__name{flex:1;font-size:.9rem;color:var(--color-text, #222);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-item__badge{font-size:.7rem;padding:.1rem .4rem;border-radius:3px;background:var(--color-border, #e0e0e0);color:var(--color-text-secondary, #888);flex-shrink:0}.compare-form__members{width:100%;display:flex;flex-direction:column;gap:.4rem}.btn--xs{padding:.25rem .6rem;font-size:.8125rem;border-radius:4px}.error-banner{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;font-size:.875rem;color:#664d03;margin-bottom:.75rem}.error-banner__icon{flex-shrink:0}.error-banner__message{flex:1}.error-banner__code{font-weight:700;margin-right:.35rem;opacity:.75}.error-banner__actions{display:flex;gap:.4rem;flex-shrink:0}.dialog-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog{background:#fff;border-radius:8px;padding:1.5rem;width:min(420px,90vw);box-shadow:0 8px 32px #0000002e}.dialog__title{font-size:1.1rem;font-weight:700;margin:0 0 .5rem;color:var(--color-text, #1a1a1a)}.dialog__description{font-size:.9rem;color:var(--color-text-secondary, #555);margin:0 0 1.25rem}.dialog__actions{display:flex;justify-content:flex-end;gap:.5rem}.save-status{display:inline-flex;align-items:center;gap:.4rem;font-size:.8125rem;padding:.25rem .6rem;border-radius:4px;margin-bottom:.5rem;transition:opacity .3s}.save-status--saving{color:var(--color-text-secondary, #666);background:var(--color-header-bg, #f5f5f5)}.save-status--saved{color:#276749;background:#d1fadf}.save-status--error{color:#9b1c1c;background:#fde8e8}.save-status__detail{font-size:.8rem;opacity:.85}.date-cell--out-of-range{opacity:.35;pointer-events:none;background:var(--color-disabled-bg, #f9f9f9);cursor:not-allowed}.date-cell--readonly{cursor:default}.date-cell--readonly:hover{background:inherit!important}.date-cell--save-error{outline:2px solid #f87171;outline-offset:-2px}.date-cell__symbol--retired{opacity:.45;text-decoration:line-through}.date-cell__error-badge{position:absolute;top:2px;right:3px;font-size:.7rem;font-weight:700;color:#dc2626;line-height:1}.badge--readonly{display:inline-block;font-size:.75rem;padding:.15rem .5rem;border-radius:3px;background:#e5e7eb;color:#6b7280;margin-left:.5rem}.calendar-detail__creator-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.btn--danger{background:#ef4444;color:#fff;border:none}.btn--danger:hover:not(:disabled){background:#dc2626}.btn--primary{background:var(--color-primary, #5865f2);color:#fff;border:none}.btn--primary:hover:not(:disabled){opacity:.9}
