:root{color-scheme:light;--color-surface-page: #ffffff;--color-surface-muted: #e8f0fe;--color-surface-accent: #38d6f5;--color-surface-danger: #fdecea;--color-surface-success: #e7f4ec;--color-surface-disabled: #f4f4f4;--color-surface-subtle: #f7f7f7;--color-overlay: rgb(0 0 0 / 45%);--color-text-primary: #444444;--color-text-secondary: #666666;--color-text-on-brand: #ffffff;--color-text-danger: #b3261e;--color-text-disabled: #909090;--color-brand-strong: #0077b3;--color-brand-hover: #00679c;--color-brand-active: #005985;--color-brand-display: #0091da;--color-border-field: #8a8a8a;--color-border-disabled: #d4d4d4;--color-border-subtle: #e5e5e5;--color-text-success: #14663a;--color-status-requested: #3f3f46;--color-status-confirmed: #1d4ed8;--color-status-completed: #15803d;--color-status-rejected: #b3261e;--color-status-cancelled: #71717a;--font-sans: "Noto Sans KR", system-ui, -apple-system, "Malgun Gothic", sans-serif;--font-size-3xl: 2.125rem;--line-height-3xl: 2.5625rem;--tracking-3xl: -.02em;--font-size-2xl: 1.375rem;--line-height-2xl: 1.8125rem;--tracking-2xl: -.01em;--font-size-base: 1.0625rem;--line-height-base: 1.5625rem;--font-size-sm: .9375rem;--line-height-sm: 1.375rem;--tracking-sm: .01em;--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700;--space-1: .375rem;--space-2: .5rem;--space-3: .625rem;--space-4: .75rem;--space-6: .9375rem;--space-7: 1.125rem;--space-8: 1.25rem;--space-10: 1.75rem;--space-12: 2.5rem;--radius: 1.25rem;--control-height: 3.1875rem;--form-card-width: 23.25rem;--page-max-width: 75rem;--motion-instant: .1s;--motion-fast: .3s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-light);color:var(--color-text-primary);background:var(--color-surface-page);-webkit-font-smoothing:antialiased}#root{height:100%}:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}h1,h2,h3,p{margin:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.page-message{max-width:40rem;margin:0 auto;padding:calc(var(--space-8) * 2) var(--space-8);display:flex;flex-direction:column;gap:var(--space-4)}.page-message h1{font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold)}.page-message p{color:var(--color-text-secondary)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;height:var(--control-height);padding:var(--space-4) var(--space-6);font-family:inherit;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-medium);border:0;border-radius:var(--radius);cursor:pointer;transition:background-color var(--motion-instant) ease-out,transform var(--motion-instant) ease-out}.button--primary{background:var(--color-brand-strong);color:var(--color-text-on-brand)}.button--primary:hover:not(:disabled){background:var(--color-brand-hover)}.button--primary:active:not(:disabled){background:var(--color-brand-active);transform:scale(.985)}.button:disabled{background:var(--color-surface-disabled);color:var(--color-text-disabled);cursor:not-allowed;transform:none}.button--secondary{background:transparent;color:var(--color-brand-strong);border:1px solid var(--color-border-field)}.button--secondary:hover:not(:disabled){background:var(--color-surface-muted)}.button--secondary:active:not(:disabled){background:var(--color-surface-disabled);transform:scale(.985)}.button--danger{background:var(--color-text-danger);color:var(--color-text-on-brand)}.button--danger:hover:not(:disabled){background:color-mix(in srgb,var(--color-text-danger) 88%,black)}.button--danger:active:not(:disabled){background:color-mix(in srgb,var(--color-text-danger) 78%,black);transform:scale(.985)}.button--inline{width:auto}.button__spinner{width:1.125rem;height:1.125rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:button-spin .7s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.button{transition:background-color var(--motion-instant) ease-out}.button:active:not(:disabled){transform:none}.button__spinner{animation-duration:2s}}.form-banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-radius:var(--radius);font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular);overflow-wrap:anywhere}.form-banner:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.form-banner--error{background:var(--color-surface-danger);color:var(--color-text-danger)}.form-banner--success{background:var(--color-surface-muted);color:var(--color-text-primary)}.form-banner__icon{flex:none;margin-top:.125rem}@media(prefers-reduced-motion:no-preference){.form-banner{animation:form-banner-in var(--motion-fast) ease-out}}@keyframes form-banner-in{0%{opacity:0}to{opacity:1}}.slot-grid{--hour-count: 9;--hour-band: calc(100% / var(--hour-count));--min-hour-height: 2.25rem;--gutter-width: 3.5rem;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border-subtle);border-radius:var(--radius);background:var(--color-surface-page)}.slot-grid__header{flex:0 0 auto;position:sticky;top:0;z-index:2;display:grid;grid-template-columns:var(--gutter-width) repeat(5,1fr);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-subtle)}.slot-grid__day-head{display:flex;align-items:baseline;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-1);border-left:1px solid var(--color-border-subtle);font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.slot-grid__day-head[data-today=true]{background:var(--color-surface-muted);font-weight:var(--font-weight-bold)}.slot-grid__weekday{color:var(--color-text-primary)}.slot-grid__date{color:var(--color-text-secondary)}.slot-grid__scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.slot-grid__body{position:relative;display:grid;grid-template-columns:var(--gutter-width) repeat(5,1fr);flex:1 1 auto;min-height:calc(var(--hour-count) * var(--min-hour-height))}.slot-grid__gutter{display:flex;flex-direction:column}.slot-grid__hour{flex:1 1 0;padding:2px var(--space-2) 0 0;text-align:right;font-size:.75rem;line-height:1;color:var(--color-text-secondary)}.slot-grid__day{position:relative;border-left:1px solid var(--color-border-subtle)}.day-column,.slot-background{position:absolute;top:0;right:0;bottom:0;left:0}.slot-background{background-image:repeating-linear-gradient(to bottom,var(--color-border-subtle) 0,var(--color-border-subtle) 1px,transparent 1px,transparent var(--hour-band)),repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour-band) / 2),var(--color-surface-subtle) calc(var(--hour-band) / 2),var(--color-surface-subtle) calc(var(--hour-band) / 2 + 1px),transparent calc(var(--hour-band) / 2 + 1px),transparent var(--hour-band))}.slot-background[data-interactive=true]{cursor:cell;touch-action:pan-x}.slot-background:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:-2px}.slot-background__selection{position:absolute;right:2px;left:2px;z-index:2;display:flex;align-items:center;justify-content:center;border:1px dashed var(--color-brand-strong);border-radius:4px;background:color-mix(in srgb,var(--color-surface-muted) 80%,transparent);pointer-events:none}.slot-background__selection-label{font-size:.75rem;white-space:nowrap;color:var(--color-brand-strong)}.day-column__blocks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.meeting-block{position:absolute;display:flex;flex-direction:column;gap:1px;overflow:hidden;padding:2px var(--space-1);border:1px solid var(--block-color);border-left:3px solid var(--block-color);border-radius:4px;background:var(--color-surface-page);color:var(--color-text-primary);font-size:.75rem;font-weight:var(--font-weight-regular);line-height:1.1rem;text-align:left;pointer-events:none}.meeting-block--actionable{cursor:pointer;font-family:inherit;pointer-events:auto}.meeting-block--actionable:hover{background:var(--color-surface-muted)}.meeting-block--actionable:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:1px}.meeting-block__code{font-weight:var(--font-weight-bold);white-space:nowrap;color:var(--block-color)}.meeting-block__type,.meeting-block__purpose{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary)}.slot-grid__now{position:absolute;right:0;left:var(--gutter-width);height:2px;background:var(--color-text-danger)}@media(max-width:60rem){.slot-grid{--gutter-width: 2.75rem;--min-hour-height: 2rem}.slot-grid__day-head{padding:var(--space-2) 2px;font-size:.8125rem;line-height:1.125rem}.slot-grid__hour{font-size:.6875rem}.meeting-block{padding:1px 2px;font-size:.6875rem;line-height:1rem}}@media(max-height:46rem){.slot-grid{--min-hour-height: 1.75rem}}.slot-background__mark{position:absolute;right:0;left:0;pointer-events:none}.slot-background__mark[data-kind=blocked]{background:repeating-linear-gradient(45deg,var(--color-surface-disabled),var(--color-surface-disabled) 5px,var(--color-surface-page) 5px,var(--color-surface-page) 10px);opacity:.85}.slot-background__mark[data-kind=mine]{border-left:3px solid var(--color-status-rejected);background:var(--color-surface-danger);opacity:.7}.slot-background__mark-input{display:block;width:100%;height:100%;min-width:0;padding:0 3px 0 7px;border:none;background:transparent;color:var(--color-text-primary);font-family:inherit;font-size:.75rem;font-weight:var(--font-weight-regular);line-height:1.1rem;pointer-events:auto}.slot-background__mark-input::placeholder{color:var(--color-text-secondary)}.slot-background__mark-input:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:-2px;background:var(--color-surface-page)}.slot-background__mark-label{display:block;overflow:hidden;padding:1px 3px 1px 7px;color:var(--color-text-primary);font-size:.75rem;font-weight:var(--font-weight-regular);line-height:1.1rem;white-space:nowrap;text-overflow:ellipsis}.meeting-dialog{width:min(28rem,calc(100vw - var(--space-8) * 2));padding:var(--space-8);border:none;border-radius:var(--radius);background:var(--color-surface-page);color:var(--color-text-primary);font-family:var(--font-sans)}.meeting-dialog::backdrop{background:var(--color-overlay)}.meeting-dialog__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl)}.meeting-dialog__slot{margin:var(--space-1) 0 var(--space-7);font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.meeting-dialog__fields{display:flex;flex-direction:column;gap:var(--space-7)}.meeting-dialog__facts{display:grid;grid-template-columns:5rem 1fr;gap:var(--space-2) var(--space-4);margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.meeting-dialog__facts dt{color:var(--color-text-secondary)}.meeting-dialog__facts dd{margin:0}.meeting-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-8)}.select__control{position:relative}.select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:calc(var(--space-6) * 2 + .5rem);cursor:pointer}.select__input:disabled{cursor:not-allowed}.select__arrow{position:absolute;top:50%;right:var(--space-6);width:.5rem;height:.5rem;margin-top:-.25rem;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:rotate(45deg) translate(-.125rem,-.125rem);pointer-events:none}.select__input:disabled+.select__arrow{border-color:var(--color-text-disabled)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field__label{font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular)}.field__control{position:relative;display:flex;align-items:stretch}.field__input{width:100%;height:var(--control-height);padding:var(--space-4) var(--space-6);font-family:inherit;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-light);color:var(--color-text-primary);background:var(--color-surface-page);border:1px solid var(--color-border-field);border-radius:var(--radius);transition:border-color var(--motion-instant) ease-out;text-overflow:clip}.field__input::placeholder{color:var(--color-text-secondary)}.field__input:hover:not(:disabled){border-color:var(--color-text-secondary);cursor:text}.field__input:focus-visible{border-color:var(--color-brand-strong)}.field__input:disabled{background:var(--color-surface-disabled);border-color:var(--color-border-disabled);color:var(--color-text-disabled);cursor:not-allowed}.field__input--invalid,.field__input--invalid:hover:not(:disabled){border:2px solid var(--color-text-danger);padding:calc(var(--space-4) - 1px) calc(var(--space-6) - 1px)}.field__input--with-affix{padding-right:calc(var(--space-6) + 2.5rem)}.field__note{font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular);margin-top:calc(var(--space-1) - var(--space-2))}.field__note--error{color:var(--color-text-danger)}.field__note--hint{color:var(--color-text-secondary)}.field__input--multiline{height:auto;min-height:var(--control-height);resize:vertical;text-overflow:initial}.group-schedule{display:flex;flex-direction:column;gap:var(--space-6);width:100%;max-width:var(--page-max-width);height:100%;min-height:0;margin:0 auto;padding:var(--space-8)}.group-schedule__header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-6)}.group-schedule__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);color:var(--color-text-primary)}.group-schedule__range{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.group-schedule__nav{display:flex;gap:var(--space-2)}.group-schedule__hint{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}@media(max-width:60rem){.group-schedule{gap:var(--space-4);padding:var(--space-6) var(--space-4)}.group-schedule__hint{display:none}}.availability-bar{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.availability-bar__row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.availability-bar__hint{flex:1 1 16rem;margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.availability-bar__conflicts{padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-status-requested);border-radius:4px;background:var(--color-surface-subtle);font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.availability-bar__conflicts p{margin:0 0 var(--space-1);color:var(--color-text-primary)}.availability-bar__conflicts ul{margin:0;padding-left:var(--space-4);color:var(--color-text-secondary)}.file-field{position:relative;display:flex;align-items:center;gap:var(--space-4);min-height:var(--control-height);padding:var(--space-3) var(--space-6);background:var(--color-surface-page);border:1px solid var(--color-border-field);border-radius:var(--radius)}.file-field--invalid{border:2px solid var(--color-text-danger);padding:calc(var(--space-3) - 1px) calc(var(--space-6) - 1px)}.file-field__input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-field__input:disabled{cursor:not-allowed}.file-field__input:focus-visible{outline:none}.file-field:has(.file-field__input:focus-visible){border-color:var(--color-brand-strong);outline:2px solid var(--color-brand-strong);outline-offset:2px}.file-field__button{flex:none;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);line-height:var(--line-height-sm);font-weight:var(--font-weight-medium);color:var(--color-brand-strong);background:var(--color-surface-muted);border-radius:calc(var(--radius) / 2);white-space:nowrap}.file-field__name{flex:1;min-width:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-field:has(.file-field__input:disabled){background:var(--color-surface-disabled);border-color:var(--color-border-disabled)}.file-field:has(.file-field__input:disabled) .file-field__name,.file-field:has(.file-field__input:disabled) .file-field__button{color:var(--color-text-disabled)}.file-field__clear{position:relative;z-index:1;flex:none;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary);background:none;border:none;border-radius:calc(var(--radius) / 2);cursor:pointer;text-decoration:underline}.file-field__clear:hover:not(:disabled){color:var(--color-text-primary)}.file-field__clear:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.file-field__clear:disabled{color:var(--color-text-disabled);cursor:not-allowed}.recording-panel{margin:0 0 var(--space-7);padding:var(--space-6);border:1px solid var(--color-border-subtle);border-radius:calc(var(--radius) / 2);background:var(--color-surface-subtle)}.recording-panel__title{margin:0 0 var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.recording-panel__empty{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.recording-panel__list{margin:0;padding:0;list-style:none}.recording-panel__item{display:flex;gap:var(--space-3);align-items:baseline;padding:var(--space-2) 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.recording-panel__seq{flex:0 0 auto;min-width:1.5rem;font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.recording-panel__name{flex:1 1 auto;overflow-wrap:anywhere}.recording-panel__size{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.recording-panel__upload{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start;margin-top:var(--space-4)}.meeting-actions{width:min(30rem,calc(100vw - var(--space-8) * 2));padding:var(--space-8);border:none;border-radius:var(--radius);background:var(--color-surface-page);color:var(--color-text-primary);font-family:var(--font-sans)}.meeting-actions::backdrop{background:var(--color-overlay)}.meeting-actions__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl)}.meeting-actions__slot{margin:var(--space-1) 0 var(--space-7);font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.meeting-actions__facts{display:grid;grid-template-columns:5rem 1fr;gap:var(--space-2) var(--space-4);margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.meeting-actions__facts dt{color:var(--color-text-secondary)}.meeting-actions__facts dd{margin:0}.meeting-actions__log{margin-top:var(--space-7)}.meeting-actions__log-title{margin:0 0 var(--space-2);font-size:var(--font-size-sm);line-height:var(--line-height-sm);font-weight:400;color:var(--color-text-secondary)}.meeting-actions__log-body{margin:0;max-height:24rem;overflow-y:auto;font-size:var(--font-size-sm);line-height:var(--line-height-base);white-space:pre-wrap;overflow-wrap:anywhere}.meeting-actions__note{margin:var(--space-7) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.meeting-actions__note--warning{padding:var(--space-3) var(--space-4);border-radius:calc(var(--radius) / 2);background:var(--color-surface-danger);color:var(--color-text-danger);overflow-wrap:anywhere}.meeting-actions__fields,.meeting-actions__reject,.meeting-actions__confirm{display:flex;flex-direction:column;gap:var(--space-7);margin-top:var(--space-7)}.meeting-actions__confirm p{margin:0;font-size:.875rem;color:var(--color-text-primary)}.meeting-actions__confirm p+p{color:var(--color-text-secondary)}.meeting-actions__buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-8)}.calendar-page{display:flex;flex-direction:column;gap:var(--space-6);width:100%;max-width:var(--page-max-width);height:100%;min-height:0;margin:0 auto;padding:var(--space-8)}.calendar-page__header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-6)}.calendar-page__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);color:var(--color-text-primary)}.calendar-page__range{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.calendar-page__controls{display:flex;align-items:flex-end;gap:var(--space-6)}.calendar-page__nav{display:flex;gap:var(--space-2)}.calendar-page__note{margin:0;padding:var(--space-4) var(--space-6);border-radius:var(--radius);background:var(--color-surface-subtle);font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.calendar-page__group{margin:0;font-size:var(--font-size-base);line-height:var(--control-height);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}@media(max-width:60rem){.calendar-page{gap:var(--space-4);padding:var(--space-6) var(--space-4)}}.password-toggle{position:absolute;top:50%;right:var(--space-2);transform:translateY(-50%);width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--radius);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--motion-instant) ease-out}.password-toggle:hover{background:var(--color-surface-muted)}.password-toggle:disabled{color:var(--color-text-disabled);cursor:not-allowed}.auth-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(var(--space-8) * 2);padding:calc(var(--space-8) * 2) var(--space-8);background:var(--color-surface-page)}.auth-wordmark{text-align:center;display:flex;flex-direction:column;gap:var(--space-1)}.auth-wordmark__name{font-size:var(--font-size-3xl);line-height:var(--line-height-3xl);letter-spacing:var(--tracking-3xl);font-weight:var(--font-weight-bold);color:var(--color-brand-display)}.auth-wordmark__tagline{font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular);color:var(--color-text-secondary)}.auth-card{width:100%;max-width:var(--form-card-width);padding:calc(var(--space-8) * 2);border:1px solid var(--color-border-disabled);border-radius:var(--radius);background:var(--color-surface-page);display:flex;flex-direction:column;gap:var(--space-8)}.auth-card__title{font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold)}.auth-card__lead{font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular);color:var(--color-text-secondary);margin-top:var(--space-2)}.auth-form{display:flex;flex-direction:column;gap:var(--space-7)}.auth-form__actions{display:flex;flex-direction:column;gap:var(--space-4)}.auth-note{font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular);color:var(--color-text-secondary)}.auth-result{display:flex;flex-direction:column;gap:var(--space-4)}.auth-result__label{font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);font-weight:var(--font-weight-regular)}.auth-result__value{padding:var(--space-4) var(--space-6);border:1px solid var(--color-border-field);border-radius:var(--radius);background:var(--color-surface-muted);font-family:inherit;font-size:var(--font-size-base);line-height:var(--line-height-base);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}@media(max-width:30rem){.auth-screen{justify-content:flex-start;gap:var(--space-8);padding:calc(var(--space-8) * 2) var(--space-8)}.auth-card{max-width:none;padding:0;border:0}}@media(max-height:34rem){.auth-screen{justify-content:flex-start;gap:var(--space-8)}}.auth-form__leave{align-self:center;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary);background:none;border:none;border-radius:calc(var(--radius) / 2);cursor:pointer;text-decoration:underline}.auth-form__leave:hover:not(:disabled){color:var(--color-text-primary)}.auth-form__leave:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.auth-form__leave:disabled{color:var(--color-text-disabled);cursor:not-allowed}.midterm-join{max-width:var(--page-max-width);margin:0 auto;padding:var(--space-12) var(--space-8);display:flex;flex-direction:column;gap:var(--space-10)}.midterm-join__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.midterm-join__subtitle,.midterm-join__empty{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.midterm-join__tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.midterm-join__tab{padding:var(--space-4) var(--space-8);font-family:inherit;font-size:var(--font-size-base);color:var(--color-text-secondary);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-1px}.midterm-join__tab:hover{color:var(--color-text-primary)}.midterm-join__tab:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:-2px}.midterm-join__tab.is-active{color:var(--color-brand-strong);font-weight:var(--font-weight-medium);border-bottom-color:var(--color-brand-strong)}.midterm-join__footer{display:flex;gap:var(--space-8);font-size:var(--font-size-sm)}.midterm-join__footer a{color:var(--color-brand-strong)}.temp-credentials{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-8);background:var(--color-surface-success);border-radius:var(--radius)}.temp-credentials__title{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-bold);color:var(--color-text-success)}.temp-credentials__warning{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-primary)}.temp-credentials__list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none;max-height:18rem;overflow-y:auto}.temp-credentials__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:var(--space-3) var(--space-6);background:var(--color-surface-page);border-radius:calc(var(--radius) / 2);font-size:var(--font-size-sm)}.temp-credentials__email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.temp-credentials__password{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:var(--font-size-base);letter-spacing:.04em;white-space:nowrap}.join-form{display:flex;flex-direction:column;gap:var(--space-7);max-width:var(--form-card-width)}.confirm-dialog{width:min(28rem,calc(100vw - var(--space-12)));padding:var(--space-10);color:var(--color-text-primary);background:var(--color-surface-page);border:none;border-radius:var(--radius);box-shadow:0 1.25rem 3rem #00000038}.confirm-dialog::backdrop{background:var(--color-overlay)}.confirm-dialog__title{margin:0 0 var(--space-4);font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold)}.confirm-dialog__body{margin-bottom:var(--space-8);font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm);color:var(--color-text-secondary)}.confirm-dialog__body p{margin:0 0 var(--space-3)}.confirm-dialog__body p:last-child{margin-bottom:0}.confirm-dialog__warning{margin-top:var(--space-4);padding:var(--space-4) var(--space-6);color:var(--color-text-danger);background:var(--color-surface-danger);border-radius:calc(var(--radius) / 2);font-weight:var(--font-weight-medium)}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-8)}.cohort-settings{max-width:var(--page-max-width);margin:0 auto;padding:var(--space-12) var(--space-8);display:flex;flex-direction:column;gap:var(--space-10)}.cohort-settings__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.cohort-settings__subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.cohort-settings__section{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-10);border:1px solid var(--color-border-subtle);border-radius:var(--radius)}.cohort-settings__section--danger{border-color:var(--color-text-danger)}.cohort-settings__heading{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.cohort-settings__lead,.cohort-settings__empty,.cohort-settings__done{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.cohort-settings__footer{font-size:var(--font-size-sm)}.cohort-settings__footer a{color:var(--color-brand-strong)}.console-selectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}@media(max-width:40rem){.console-selectors{grid-template-columns:1fr}}.track-staff-form{display:flex;flex-direction:column;gap:var(--space-7);max-width:var(--form-card-width)}.track-staff-form__track{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.apply-counts{padding:var(--space-6);background:var(--color-surface-subtle);border-radius:calc(var(--radius) / 2)}.apply-counts__title{margin:0 0 var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.apply-counts__empty{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.apply-counts__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:var(--space-3);margin:0}.apply-counts__row{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--font-size-sm)}.apply-counts__row dt{color:var(--color-text-secondary)}.apply-counts__row dd{margin:0;font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.import-panel{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-10);border:1px solid var(--color-border-subtle);border-radius:var(--radius)}.import-panel__header{display:flex;align-items:flex-start;gap:var(--space-6)}.import-panel__order{flex:none;width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;background:var(--color-surface-muted);color:var(--color-brand-strong);font-weight:var(--font-weight-bold)}.import-panel__title{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.import-panel__description,.import-panel__note{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.import-panel__badge{margin-left:auto;flex:none;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-success);background:var(--color-surface-success);border-radius:calc(var(--radius) / 2);white-space:nowrap}.import-panel__actions{display:flex;gap:var(--space-4)}.import-report{display:flex;flex-direction:column;gap:var(--space-6)}.import-report__clean{margin:0;padding:var(--space-4) var(--space-6);font-size:var(--font-size-sm);color:var(--color-text-success);background:var(--color-surface-success);border-radius:calc(var(--radius) / 2)}.import-report__block{padding:var(--space-6);border-radius:calc(var(--radius) / 2)}.import-report__block--error{background:var(--color-surface-danger)}.import-report__block--warning{background:var(--color-surface-subtle)}.import-report__heading{margin:0 0 var(--space-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.import-report__block--error .import-report__heading{color:var(--color-text-danger)}.import-report__lead{margin:0 0 var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.import-report__list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none;max-height:20rem;overflow-y:auto}.import-report__item{display:flex;gap:var(--space-4);font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-primary)}.import-report__where{flex:none;min-width:8rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.roster-import{max-width:var(--page-max-width);margin:0 auto;padding:var(--space-12) var(--space-8);display:flex;flex-direction:column;gap:var(--space-10)}.roster-import__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.roster-import__subtitle,.roster-import__order{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.roster-import__order{max-width:46rem}.roster-import__footer{display:flex;gap:var(--space-8);font-size:var(--font-size-sm)}.roster-import__footer a{color:var(--color-brand-strong)}.shell{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.shell__content{flex:1 1 auto;min-height:0;overflow:auto}.shell__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap;padding:var(--space-4) var(--space-8);background:var(--color-surface-page);border-bottom:1px solid var(--color-border-subtle)}.shell__wordmark{font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-bold);color:var(--color-brand-display);text-decoration:none;white-space:nowrap}.shell__wordmark:hover{text-decoration:underline}.shell__wordmark:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.shell__account{display:flex;align-items:center;gap:var(--space-6);min-width:0}.shell__identity{display:flex;flex-direction:column;align-items:flex-end;min-width:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm)}.shell__email{color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:16rem}.shell__actor{color:var(--color-text-secondary)}.shell__logout{flex:none;padding:var(--space-2) var(--space-4);font-family:inherit;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary);background:none;border:1px solid var(--color-border-field);border-radius:calc(var(--radius) / 2);cursor:pointer;white-space:nowrap;transition:color var(--motion-instant) ease-out}.shell__logout:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-surface-subtle)}.shell__logout:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.shell__logout:disabled{color:var(--color-text-disabled);cursor:not-allowed}@media(max-width:30rem){.shell__identity{align-items:flex-start}.shell__email{max-width:12rem}}.shell__nav{display:flex;gap:var(--space-6);margin-right:auto;margin-left:var(--space-10);font-size:var(--font-size-sm)}.shell__nav a{color:var(--color-text-secondary);text-decoration:none}.shell__nav a:hover{color:var(--color-brand-strong);text-decoration:underline}.bootstrap-hint{display:flex;flex-direction:column;gap:var(--space-3);align-items:center;text-align:center}.bootstrap-hint__fact{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.bootstrap-hint__next{margin:0;max-width:34rem;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.bootstrap-hint__link{color:var(--color-brand-strong);font-size:var(--font-size-sm)}.cohort-create__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:var(--color-overlay)}.cohort-create{width:min(var(--form-card-width),100%);padding:var(--space-10);background:var(--color-surface-page);border-radius:var(--radius);box-shadow:0 1.25rem 3rem #00000038}.cohort-create__title{margin:0 0 var(--space-3);font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.cohort-create__lead{margin:0 0 var(--space-8);font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.cohort-create__form{display:flex;flex-direction:column;gap:var(--space-7)}.cohort-create__actions{display:flex;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-2)}.console{max-width:var(--page-max-width);margin:0 auto;padding:var(--space-12) var(--space-8);display:flex;flex-direction:column;gap:var(--space-10)}.console__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap}.console__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.console__subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.console__body{min-height:12rem;display:flex;flex-direction:column;justify-content:center}.console__pending{margin:0;text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.console__footer{display:flex;gap:var(--space-8);font-size:var(--font-size-sm)}.console__footer a{color:var(--color-brand-strong)}.data-table__scroll{overflow-x:auto;border:1px solid var(--color-border-subtle);border-radius:var(--radius);background:var(--color-surface-page)}.data-table__scroll:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.data-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);line-height:var(--line-height-sm);letter-spacing:var(--tracking-sm)}.data-table__caption{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.data-table__head{padding:var(--space-4) var(--space-6);text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border-subtle);white-space:nowrap}.data-table__head--numeric{text-align:right}.data-table__head-note{display:block;font-weight:var(--font-weight-regular);color:var(--color-text-disabled)}.data-table__cell{padding:var(--space-4) var(--space-6);color:var(--color-text-primary);border-bottom:1px solid var(--color-border-subtle)}.data-table__cell--numeric{text-align:right;font-variant-numeric:tabular-nums}.data-table tbody tr:last-child .data-table__cell{border-bottom:none}.data-table tfoot .data-table__cell{background:var(--color-surface-subtle);border-top:1px solid var(--color-border-field);border-bottom:none;font-weight:var(--font-weight-medium)}.data-table__empty{padding:var(--space-12) var(--space-8);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-sm);border:1px dashed var(--color-border-field);border-radius:var(--radius)}.team-stats__label{display:flex;flex-direction:column;gap:var(--space-1);white-space:nowrap}.team-stats__note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.team-stats__missing{color:var(--color-text-danger);font-weight:var(--font-weight-medium)}.group-stats__label{display:inline-flex;align-items:baseline;gap:var(--space-2)}.group-stats__note{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.group-stats__drill{padding:0;border:0;background:none;font:inherit;color:var(--color-brand-strong);text-decoration:underline;cursor:pointer}.group-stats__drill:hover{color:var(--color-brand-hover)}.group-stats__drill:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.group-stats__drill[aria-current=true]{font-weight:var(--font-weight-bold);text-decoration-thickness:2px}.group-stats__missing{color:var(--color-text-danger);font-weight:var(--font-weight-medium)}.track-dashboard{max-width:var(--page-max-width);margin:0 auto;padding:var(--space-12) var(--space-8);display:flex;flex-direction:column;gap:var(--space-10)}.track-dashboard__title{margin:0;font-size:var(--font-size-2xl);line-height:var(--line-height-2xl);letter-spacing:var(--tracking-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.track-dashboard__subtitle{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.track-dashboard__closed{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-6);display:inline-block;border-radius:var(--radius);background:var(--color-surface-danger);color:var(--color-text-danger);font-size:var(--font-size-sm);line-height:var(--line-height-sm);font-weight:var(--font-weight-medium)}.track-dashboard__section{display:flex;flex-direction:column;gap:var(--space-4)}.track-dashboard__section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap}.track-dashboard__section-title{margin:0;font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.track-dashboard__unit{margin:0;padding:0;border:0;display:flex;align-items:center;gap:var(--space-6)}.track-dashboard__unit-legend{padding:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);float:left;margin-right:var(--space-6)}.track-dashboard__unit-option{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-primary)}.track-dashboard__unit-note{margin:0;font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}.track-dashboard__pending{margin:0;padding:var(--space-10) 0;text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.track-dashboard__links{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-8)}.track-dashboard__link{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-8);border:1px solid var(--color-border-subtle);border-radius:var(--radius);text-decoration:none;transition:border-color var(--motion-instant) ease-out}.track-dashboard__link:hover{border-color:var(--color-brand-strong)}.track-dashboard__link:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:2px}.track-dashboard__link-title{font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-bold);color:var(--color-brand-strong)}.track-dashboard__link-note{font-size:var(--font-size-sm);line-height:var(--line-height-sm);color:var(--color-text-secondary)}
