:root{--color-primary: #4ca79c;--color-primary-dark: #247c73;--color-primary-soft: #dff2ef;--color-accent: #f2b66d;--color-ink: #1e2a32;--color-muted: #65757d;--color-line: #a9c4be;--color-surface: #e1efec;--color-page: #f6faf9;--header-height: 88px;font-family:Pretendard,Noto Sans KR,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--color-ink);background:var(--color-page)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--color-page)}a{color:inherit}button,input,select,textarea{font:inherit}.app-header{position:fixed;inset:0 0 auto;z-index:50;display:grid;grid-template-columns:minmax(180px,215px) 1fr auto;align-items:center;min-height:var(--header-height);padding:14px clamp(16px,4vw,48px);border-bottom:1px solid var(--color-line);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-header__brand{display:inline-flex;align-items:center}.app-header__logo{display:inline-flex;align-items:center;width:min(180px,34vw);min-width:164px;min-height:58px;text-decoration:none}.app-header__logo-image{display:block;width:100%;max-height:58px;object-fit:contain;object-position:left center}.app-header__nav{display:flex;flex-wrap:nowrap;gap:8px;min-width:0}.app-header__actions{display:inline-flex;min-width:0;align-items:center;justify-self:end;gap:12px}.app-header__nav a{padding:10px 14px;border-radius:6px;color:var(--color-muted);font-weight:700;text-decoration:none}.app-header__nav a:hover{background:var(--color-primary-soft);color:var(--color-primary-dark)}.app-header__account{position:relative;display:inline-flex;align-items:center}.account-button,.hamburger-button,.button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);cursor:pointer;font-weight:700}.account-button{min-width:96px;padding:0 16px}.account-button--desktop{background:#fff}.hamburger-button{display:none;width:44px;flex-direction:column;gap:5px;border:0;background:transparent;padding:0}.hamburger-button span{width:18px;height:2px;border-radius:999px;background:var(--color-ink)}.button{padding:0 16px;text-decoration:none}.button:hover:not(:disabled),.account-button:hover:not(:disabled){border-color:var(--color-primary);background:#c7e5df;color:var(--color-primary-dark)}.button--primary:hover:not(:disabled){border-color:var(--color-primary-dark);background:var(--color-primary-dark);color:#fff}.button--danger:hover:not(:disabled){border-color:#b84235;background:#b84235;color:#fff}.button:disabled{cursor:not-allowed;opacity:.58}.button--primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.button--danger{border-color:#d85a4a;background:#d85a4a;color:#fff}.account-menu{position:static;width:240px;padding:10px;border:1px solid var(--color-line);border-radius:8px;background:#fff;box-shadow:0 18px 40px #1e2a3224}.account-menu__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;border:0;background:transparent;cursor:default}.desktop-account-menu{position:fixed;top:calc(var(--header-height) - 4px);right:clamp(16px,4vw,48px);z-index:100}.mobile-drawer{display:none}.account-menu__identity{display:grid;gap:2px;padding:10px;border-bottom:1px solid var(--color-line)}.account-menu__identity span,.account-menu__item--muted{color:var(--color-muted);font-size:.88rem}.account-menu__item{display:flex;width:100%;min-height:40px;align-items:center;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--color-ink);cursor:pointer;text-align:left;text-decoration:none}.account-menu__item:hover{background:var(--color-primary-soft)}.account-menu__privacy{display:flex;width:100%;min-height:42px;align-items:center;justify-content:space-between;gap:12px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--color-ink);cursor:pointer;font:inherit;font-weight:800;text-align:left}.account-menu__privacy:hover{background:var(--color-primary-soft)}.account-menu__privacy-switch{position:relative;display:inline-flex;width:44px;height:24px;flex:0 0 auto;align-items:center;padding:3px;border:0;border-radius:999px;background:#d6dde1;cursor:pointer;transition:background-color .18s ease,box-shadow .18s ease}.account-menu__privacy-switch span{width:18px;height:18px;border-radius:999px;background:#fff;box-shadow:0 1px 4px #1e2a3233;transform:translate(0);transition:transform .18s ease}.account-menu__privacy-switch--active{background:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.account-menu__privacy-switch--active span{transform:translate(20px)}.app-main{min-width:0;min-height:100vh;padding:calc(var(--header-height) + 28px) clamp(16px,4vw,48px) 48px}.app-main--loading{display:grid;place-items:start center}.page-stack{display:grid;width:100%;min-width:0;gap:24px;max-width:1180px;margin:0 auto}.page-header{display:grid;gap:8px}.page-back-button{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-height:32px;padding:0 12px;border:1px solid rgba(76,167,156,.36);border-radius:6px;background:#fff;color:var(--color-primary-dark);font-size:.86rem;font-weight:900;line-height:1;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.page-back-button:hover,.page-back-button:focus-visible{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-dark)}.page-header--module{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}.module-page-header__copy{display:grid;min-width:0;gap:8px}.module-switcher{display:flex;align-items:center;justify-content:flex-end;min-width:max-content}.module-switcher__item{display:inline-grid;place-items:center;width:38px;height:38px;border:1px solid rgba(76,167,156,.35);border-radius:999px;background:var(--color-surface);color:var(--color-primary-dark);font-size:.95rem;font-weight:900;line-height:1;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.module-switcher__item:hover,.module-switcher__item:focus-visible{border-color:var(--color-primary);background:var(--color-primary-soft);transform:translateY(-1px)}.module-switcher__item--active,.module-switcher__item--active:hover,.module-switcher__item--active:focus-visible{border-color:var(--color-primary-dark);background:var(--color-primary-dark);color:#fff;transform:none}.module-switcher__item--private{border-color:#cbd2d6;background:#edf1f2;color:var(--color-muted)}.module-switcher__item--disabled{border-color:#d6dde1;background:#eef2f1;color:var(--color-muted);cursor:not-allowed;opacity:.68}.module-switcher__item--disabled:hover,.module-switcher__item--disabled:focus-visible{border-color:#d6dde1;background:#eef2f1;transform:none}.module-switcher__separator{display:block;width:18px;height:2px;border-radius:999px;background:var(--color-line)}.page-header h1,.auth-card h1,.error-panel h1{margin:0;letter-spacing:0}.page-header p,.auth-card__description,.error-panel p{margin:0;color:var(--color-muted)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card,.content-panel,.panel-card{border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface)}.metric-card{display:grid;gap:8px;min-height:112px;padding:18px;background:#fff}.metric-card span{color:var(--color-muted);font-size:.9rem;font-weight:700}.metric-card strong{font-size:1.75rem}.content-panel,.panel-card{min-width:0;padding:22px}.panel-card{display:grid;gap:18px}.loading-panel{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;background:#fff}.loading-panel__spinner{width:28px;height:28px;border:3px solid var(--color-primary-soft);border-top-color:var(--color-primary);border-radius:50%;animation:loading-spin .82s linear infinite}.loading-panel__label{font-size:1rem;font-weight:800;color:var(--color-ink)}@keyframes loading-spin{to{transform:rotate(360deg)}}.content-panel__header{display:flex;align-items:flex-start;gap:16px;margin-bottom:18px}.content-panel__header h2{margin-top:5px;margin-bottom:10px;font-size:1.2rem}.content-panel__header p{margin:4px 0 0;color:var(--color-muted)}.content-panel__header>div{min-width:0}.content-panel__header>.status-pill{width:max-content;max-width:100%;flex:0 0 auto;align-self:flex-start;justify-self:end;white-space:nowrap}.content-panel__header--stacked{display:grid;gap:0px}.content-panel__header--stacked>p{margin:0;color:var(--color-muted)}.student-overview-detail>.content-panel__header{margin-bottom:0}.student-overview-detail>.button{background:#fff}.content-panel__header-top{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:16px}.content-panel__header-top>div{min-width:0}.content-panel__header-top>.status-pill{width:max-content;max-width:100%;flex:0 0 auto;align-self:flex-start;white-space:nowrap}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:13px 10px;border-top:1px solid var(--color-line);text-align:left;vertical-align:middle}.data-table th{color:var(--color-muted);font-size:.86rem}.status-pill{display:inline-flex;min-height:28px;align-items:center;justify-content:center;border-radius:999px;padding:0 10px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:.86rem;font-weight:800;text-align:center}.status-pill--warning{background:#fff3df;color:#9c5c13}.status-pill--muted{background:#f7f7f7;color:var(--color-muted)}.status-pill--success{border:1px solid #75c790;background:#cdf3da;color:#17633f}.status-pill--danger{background:#fff3f1;color:#9f3329}.one-time-code-pill{display:inline-flex;width:fit-content;min-height:26px;align-items:center;justify-content:center;border-radius:999px;padding:0 10px;font-size:.78rem;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.one-time-code-pill--active{border:1px solid #a5d6ce;background:#e4f4f1;color:var(--color-primary-dark)}.one-time-code-pill--expired{border:1px solid #e4ada6;background:#fff1ef;color:#9f3329}.table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto}.table-link{border:0;background:transparent;color:var(--color-primary-dark);cursor:pointer;font-weight:800;text-decoration:none}.eyebrow{margin:0;color:var(--color-primary-dark);font-size:1rem;font-weight:900}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.section-title,.section-subtitle{margin:0;letter-spacing:0}.section-title{font-size:1.2rem}.section-subtitle{font-size:1.06rem}.section-description{margin:4px 0 0;color:var(--color-muted)}.club-overview-panel__content,.team-module-section,.module-panel-list,.module-panel__meta,.module-panel__body,.module-student-panel-list,.student-overview-detail,.student-module-card-list,.student-module-detail,.learning-module-content{display:grid}.club-overview-panel__content{gap:18px}.club-overview-panel__metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.progress-pill{display:inline-flex;min-width:68px;align-items:center;justify-content:center;border-radius:999px;padding:7px 12px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:800}.team-module-section{gap:18px}.module-panel-list{gap:14px}.module-panel{overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.module-panel__summary{display:block;padding:18px 20px;cursor:pointer;list-style:none}.module-panel__summary-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start;width:100%}.module-panel__summary::-webkit-details-marker{display:none}.module-panel__meta,.module-panel__body{gap:14px}.module-panel__meta{width:100%;min-width:0;padding-bottom:10px}.module-panel__session-list{display:flex;min-width:0;flex-wrap:wrap;gap:6px 10px;color:var(--color-muted);font-size:.88rem;font-weight:800;line-height:1.4}.module-panel__session-list span{display:inline-flex;min-height:28px;align-items:center;border:1px solid rgba(76,167,156,.26);border-radius:999px;background:#fff;padding:4px 10px}.module-panel__actions{display:grid;grid-template-columns:max-content max-content;gap:10px;align-items:center;justify-content:space-between;width:100%}.module-panel__actions--single{grid-template-columns:max-content;justify-content:end}.module-panel__actions .progress-pill{align-self:center;min-height:30px;padding-block:6px}.module-panel__quiz-card{display:inline-grid;align-items:center;justify-content:center;min-height:40px;padding:10px 14px;border:1px solid var(--color-primary-dark);border-radius:8px;background:var(--color-primary-dark);color:#fff;cursor:pointer;font:inherit;font-size:.86rem;font-weight:800;line-height:1.2;text-align:center;white-space:nowrap;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.module-panel__quiz-card:hover:not(:disabled){border-color:#1f6f67;background:#1f6f67;box-shadow:0 12px 26px #1e2a3224;transform:translateY(-1px)}.module-panel__quiz-card span{display:inline-flex;align-items:center}.module-panel__quiz-card--enabled{border-color:#1f6f67;background:#1f6f67;color:#fff}.module-panel__quiz-card:disabled,.module-panel__quiz-card--enabled:disabled{cursor:not-allowed;border-color:var(--color-line);background:#eef3f3;color:var(--color-muted);opacity:1;box-shadow:none;transform:none}.module-panel__hint{color:var(--color-muted);font-size:.86rem;font-weight:700}.module-panel--private{border-color:#d6dde1;background:#f1f4f4c7}.module-panel__body{padding:0 20px 20px}.module-student-panel-list,.student-module-card-list{gap:10px;padding:15px}.student-module-card-list{grid-template-columns:repeat(4,minmax(0,1fr))}.module-student-panel,.student-module-card{display:grid;width:100%;grid-template-columns:minmax(180px,1fr) auto;align-items:center;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:#ffffffd1;color:var(--color-ink);cursor:pointer;text-align:left;text-decoration:none}.module-student-panel--disabled,.student-module-card--disabled{border-color:#d6dde1;background:#eef2f1;color:var(--color-muted);cursor:not-allowed;opacity:.76}.student-overview-detail .student-module-card{min-height:148px;display:flex;flex-direction:column;align-items:stretch;gap:10px}.student-module-card__top{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:10px}.student-module-card__module-no{align-self:start;color:var(--color-ink);font-size:.95rem;font-weight:900}.student-module-card__name{align-self:start;min-width:0;color:var(--color-ink);font-size:1rem;line-height:1.45}.student-module-card__progress{flex:0 0 auto}.student-module-card__sessions{display:grid;gap:4px;color:var(--color-muted);font-size:.88rem;font-weight:700;line-height:1.45}.student-module-card__drive{align-self:flex-end;margin-top:auto;width:max-content;max-width:100%;white-space:nowrap}.student-admin-editor{margin-top:18px}.student-admin-editor__panel{display:grid;gap:18px}.student-admin-editor__header{justify-content:space-between}.student-admin-editor__drive-list{display:grid;gap:10px}.student-admin-editor__drive-field{display:grid;gap:6px;color:var(--color-muted);font-size:.9rem;font-weight:800}.student-admin-editor__module-list,.student-admin-editor__quiz-list{display:grid;gap:8px}.student-admin-editor__module-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:#4ca79c0f}.student-admin-editor__module-row>div{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:8px}.student-drive-url-grid{display:grid;min-width:0;max-width:100%;gap:10px}.module-status-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.module-student-panel:hover,.student-module-card:hover,a.student-list-row:hover{border-color:var(--color-primary);box-shadow:0 12px 26px #1e2a3214}.module-student-panel--disabled:hover,.student-module-card--disabled:hover{border-color:#d6dde1;box-shadow:none}.module-student-panel__identity,.student-list-row__identity{display:grid;gap:4px;min-width:0}.module-student-panel small,.student-module-card small,.student-list-row small{color:var(--color-muted);font-size:.84rem;font-weight:700;overflow-wrap:anywhere}.student-list-row__email{min-width:0;color:var(--color-muted);font-size:.9rem;font-weight:700;overflow-wrap:anywhere}.student-list-table{display:grid;gap:8px}.student-list-panel__header{position:sticky;top:var(--header-height);z-index:44;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-22px -22px 18px;padding:22px 22px 12px;border-radius:8px 8px 0 0;background:var(--color-surface)}.student-list-panel__header h2{margin-top:5px;margin-bottom:10px;font-size:1.2rem}.student-list-panel__header p{margin:4px 0 0;color:var(--color-muted)}.student-list-panel__header>div{min-width:0}.student-list-table--view{min-width:760px}.student-list-table--edit{min-width:640px}.student-list-group-list{display:grid;gap:14px}.student-list-group{display:grid;gap:10px;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.student-list-group__title{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-list-group__title h3{margin:0;font-size:1rem}.student-list-group__title span{color:var(--color-muted);font-weight:800}.student-list-row{display:grid;grid-template-columns:minmax(160px,1.4fr) repeat(4,minmax(72px,.38fr));gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page);color:var(--color-ink)}a.student-list-row{cursor:pointer;text-decoration:none}.student-list-row--edit{grid-template-columns:minmax(160px,1.1fr) minmax(220px,1.4fr) minmax(104px,.45fr)}.student-list-row--team-edit{grid-template-columns:minmax(160px,1.1fr) minmax(220px,1.25fr) minmax(140px,.72fr) minmax(104px,.45fr)}.student-list-row--head{border:0;background:transparent;color:var(--color-muted);font-size:.84rem;font-weight:900}.student-list-row input,.student-list-row select{width:100%;min-height:38px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);padding:0 10px}.student-list-row input[type=checkbox]{width:18px;min-height:18px;padding:0}.student-list-row__delete,.student-list-row__reset,.team-editor-row__delete{width:100%}.student-list-row__reset{border-color:var(--color-primary);color:var(--color-primary-dark)}.student-list-add-row{display:flex;min-height:52px;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--color-primary);border-radius:8px;background:var(--color-primary-soft);color:var(--color-primary-dark);cursor:pointer;font-weight:900}.student-list-add-row span{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--color-surface);font-size:1.1rem}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.inline-message{margin:10px 0 0;border:1px solid var(--color-line);border-radius:8px;background:var(--color-primary-soft);color:var(--color-primary-dark);padding:10px 12px;font-weight:800}.inline-message p{margin:0}.inline-message--success{border-color:#4ca79c6b}.inline-message--danger{border-color:#d85a4a61;background:#fff3f1;color:#9f3329}.toast-layer{position:fixed;top:calc(var(--header-height) + 16px);right:clamp(16px,4vw,48px);z-index:260;display:grid;justify-items:end;width:min(380px,calc(100vw - 32px));pointer-events:none}.toast-label{display:flex;gap:12px;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:11px 12px 11px 14px;border:1px solid rgba(76,167,156,.42);border-radius:8px;background:#f1fbf8;box-shadow:0 18px 36px #1e2a3229;color:var(--color-primary-dark);font-size:.92rem;font-weight:800;line-height:1.35;pointer-events:auto;animation:toast-message-in .18s ease-out}.toast-label--danger{border-color:#d85a4a61;background:#fff3f1;color:#9f3329}.toast-label--info{border-color:#375c8047;background:#f2f7fb;color:#24465d}.toast-label__close{display:inline-grid;flex:0 0 auto;place-items:center;width:28px;height:28px;border:0;border-radius:999px;background:#ffffffad;color:inherit;cursor:pointer;font:inherit;font-size:1.2rem;line-height:1}.toast-label__close:hover{background:#ffffffeb}@keyframes toast-message-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.schedule-calendar-page{max-width:1280px}.schedule-calendar__header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px}.schedule-calendar__control-shell{display:flex;align-items:center;justify-content:flex-end;gap:18px}.schedule-calendar__controls{justify-content:flex-end}.schedule-calendar__filter-button{flex:0 0 auto}.schedule-calendar-panel{display:grid;gap:16px;overflow:hidden}.schedule-calendar-filter-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:var(--color-line)}.schedule-calendar-weekday{min-height:38px;display:grid;place-items:center;background:#fff;color:var(--color-primary-dark);font-size:.86rem;font-weight:900}.schedule-calendar-day{display:grid;min-height:138px;align-content:start;gap:8px;min-width:0;border:0;background:#fff;padding:10px}.schedule-calendar-day--outside{background:#f1f6f4;color:var(--color-muted)}.schedule-calendar-day--today{box-shadow:inset 0 0 0 2px var(--color-primary)}.schedule-calendar-day__number{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;font-weight:900}.schedule-calendar-day__number strong{border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:.72rem;padding:3px 7px}.schedule-calendar-day__events{display:grid;gap:6px;min-width:0}.schedule-calendar-event{--event-bg: #e0f3ef;--event-border: #4ca79c;display:grid;min-width:0;gap:2px;border:1px solid var(--event-border);border-left-width:4px;border-radius:6px;background:var(--event-bg);color:var(--color-ink);cursor:pointer;padding:7px 8px;text-align:left;transition:border-color .15s ease,filter .15s ease,transform .15s ease}.schedule-calendar-event:hover,.schedule-calendar-event:focus-visible{filter:saturate(1.08) brightness(.98);transform:translateY(-1px)}.schedule-calendar-event strong,.schedule-calendar-event span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-calendar-event strong{font-size:.82rem}.schedule-calendar-event span{color:var(--color-muted);font-size:.76rem;font-weight:800}.schedule-calendar-event--color-0{--event-bg: #e0f3ef;--event-border: #4ca79c}.schedule-calendar-event--color-1{--event-bg: #fff0d9;--event-border: #d68b35}.schedule-calendar-event--color-2{--event-bg: #e6eefb;--event-border: #5b83c4}.schedule-calendar-event--color-3{--event-bg: #f5e8f3;--event-border: #b06aa5}.schedule-calendar-event--color-4{--event-bg: #edf4df;--event-border: #7b9d3c}.schedule-calendar-event--color-5{--event-bg: #ffe5e1;--event-border: #d6685c}.schedule-calendar-event--color-6{--event-bg: #e5f1f7;--event-border: #4b91aa}.schedule-calendar-event--color-7{--event-bg: #eee8ff;--event-border: #7d68c9}.schedule-calendar-empty{display:grid;gap:4px;border:1px dashed var(--color-line);border-radius:8px;background:#fff;padding:18px}.schedule-calendar-empty span{color:var(--color-muted);font-weight:700}.schedule-event-card{width:min(620px,calc(100vw - 50px));max-height:calc(100dvh - 48px);overflow-y:auto}.schedule-event-card header{display:grid;gap:6px}.schedule-event-modal{place-items:start center;overflow-y:auto}.schedule-event-detail{display:grid;gap:10px;margin:0}.schedule-event-detail div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:start;border-bottom:1px solid rgba(169,196,190,.56);padding-bottom:10px}.schedule-event-detail div:last-child{border-bottom:0;padding-bottom:0}.schedule-event-detail dt{color:var(--color-muted);font-size:.86rem;font-weight:900}.schedule-event-detail dd{margin:0;min-width:0;overflow-wrap:anywhere;font-weight:800;word-break:keep-all}.schedule-event-contact-list{display:grid;gap:4px}.team-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;display:grid;place-items:center;padding:24px}.team-modal__overlay{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:#1e2a325c;cursor:default}.team-modal__card{position:relative;z-index:1;display:grid;width:min(720px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);gap:18px;overflow:auto;overflow-x:hidden;padding:22px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface);box-shadow:0 22px 56px #1e2a323d}.team-modal__intro{display:grid;min-width:0;gap:0}.team-modal__header{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:16px}.team-modal__heading{display:grid;min-width:0;gap:6px}.team-modal__heading h2,.team-modal__description{margin:0}.team-modal__description{color:var(--color-muted)}.team-modal__header .button{flex:0 0 auto}.team-modal__toolbar{display:flex;flex-wrap:wrap;align-items:end;justify-content:flex-end;gap:10px;margin-bottom:8px}.team-modal__toolbar label{display:grid;gap:6px;color:var(--color-muted);font-size:.86rem;font-weight:800}.team-modal__toolbar input,.team-editor-row input{min-height:38px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);padding:0 10px}.team-editor-list{display:grid;gap:10px}.team-editor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.team-editor-row--edit{grid-template-columns:minmax(0,1fr) auto minmax(84px,auto)}.team-editor-row strong{min-width:0;overflow-wrap:anywhere}.team-editor-row>span{justify-self:end}.team-editor-row input[type=checkbox]{width:18px;min-height:18px;padding:0}.team-editor-row__delete{justify-self:end}.team-editor-add-row{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:end;padding:12px;border:1px dashed var(--color-primary);border-radius:8px;background:var(--color-primary-soft)}.team-editor-add-row label{display:grid;gap:6px;color:var(--color-muted);font-size:.86rem;font-weight:800}.team-editor-add-row input{min-height:38px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);padding:0 10px}.add-student-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:grid;place-items:center;padding:24px;background:#1e2a326b}.add-student-modal__card{width:min(840px,calc(100vw - 60px));max-width:calc(100vw - 60px);max-height:calc(100dvh - 48px);overflow-y:auto;overflow-x:hidden}.add-student-modal__card>*{min-width:0;max-width:100%}.add-student-modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.add-student-modal__header .button{min-height:34px;padding:0 10px;font-size:.82rem;white-space:nowrap}.add-student-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.add-student-choice-card{display:grid;min-height:180px;gap:10px;align-content:center;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page);color:var(--color-ink);cursor:pointer;padding:22px;text-align:left}.add-student-choice-card:hover{border-color:var(--color-primary);box-shadow:0 14px 30px #1e2a321a}.add-student-choice-card strong{font-size:1.15rem}.add-student-choice-card span{color:var(--color-muted);font-weight:700}.add-student-choice-card small{color:var(--color-primary-dark);font-size:.78rem;font-weight:900}.add-student-form{display:grid;min-width:0;max-width:100%;overflow-x:hidden;gap:14px}.add-student-form>*{min-width:0;max-width:100%}.add-student-form label{display:grid;min-width:0;gap:6px;color:var(--color-muted);font-size:.88rem;font-weight:800}.add-student-form input,.add-student-form select{width:100%;min-width:0;min-height:40px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);padding:10px 30px 10px 10px}.add-student-affiliation-preview{display:grid;gap:5px;min-width:0;border:1px solid rgba(76,167,156,.25);border-radius:8px;background:#4ca79c14;padding:12px;overflow-wrap:anywhere;word-break:keep-all}.add-student-affiliation-preview span{color:var(--color-muted);font-size:.78rem;font-weight:900}.add-student-affiliation-preview strong{color:var(--color-ink);line-height:1.45}.staff-school-search,.staff-assignment-section{display:grid;gap:10px}.staff-school-search__results{display:grid;max-height:180px;overflow:auto;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface)}.staff-school-search__results button{border:0;border-bottom:1px solid var(--color-line);background:transparent;color:var(--color-ink);cursor:pointer;padding:10px 12px;text-align:left}.staff-school-search__results button:hover{background:var(--color-primary-soft)}.import-preview-table{display:grid;max-height:280px;overflow:auto;border:1px solid var(--color-line);border-radius:8px}.import-preview-table>div{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(120px,.8fr) minmax(120px,.7fr) minmax(220px,1.4fr);gap:10px;padding:10px 12px;border-bottom:1px solid var(--color-line)}.import-preview-table>.import-preview-row--failed{grid-template-columns:minmax(180px,240px) minmax(120px,160px) minmax(120px,200px) max-content;width:max-content;min-width:100%}.import-preview-table>div>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-preview-table>div>.import-preview-cell--wide{min-width:max-content;overflow:visible;text-overflow:clip;white-space:nowrap}.import-preview-table>div:first-child{background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:900}.import-preview-row--failed{background:#fff3f1;color:#9f3329}.confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;display:grid;place-items:center;padding:24px;background:#1e2a326b}.confirm-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;background:transparent;padding:0}.confirm-modal__card{position:relative;z-index:1;display:grid;width:min(500px,calc(100vw - 50px));gap:18px;padding:22px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface);box-shadow:0 22px 56px #1e2a323d}.confirm-modal__card h2,.confirm-modal__card p{margin:0}.confirm-modal__card p{margin-top:8px;color:var(--color-muted)}.confirm-modal__actions{justify-content:flex-end}.confirm-modal__actions--center{justify-content:center}.confirm-modal__result{display:grid;gap:10px}.confirm-modal__code-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center}.confirm-modal__code-row code{min-height:44px;display:flex;align-items:center;overflow-x:auto;border:1px solid var(--color-line);border-radius:6px;background:#f3f7f6;color:var(--color-ink);padding:0 12px;font-weight:900;letter-spacing:.04em}.confirm-modal__copy{width:44px;padding:0}.confirm-modal__copy:active{animation:copy-button-pop .28s ease-out}.copy-icon{display:inline-block;width:18px;height:18px;background:center / contain no-repeat url(https://cdn-icons-png.flaticon.com/512/54/54702.png);transition:transform .18s ease,background-image .18s ease}.copy-icon--copied{background-image:url(https://cdn-icons-png.flaticon.com/512/845/845646.png);transform:scale(1.08)}@keyframes copy-button-pop{0%{transform:scale(1)}50%{transform:scale(.92)}to{transform:scale(1)}}.student-overview-detail,.student-module-detail,.learning-module-content{gap:16px}.learning-module-content{min-width:0;overflow:hidden}.learning-module-content>*{min-width:0;max-width:100%}.student-overview-detail,.student-module-card-list{min-width:0}.meta-card{display:grid;gap:6px;padding:16px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.meta-card__label,.meta-card__value{margin:0}.meta-card__label{color:var(--color-muted);font-size:.86rem;font-weight:800}.meta-card__value{font-weight:900}.student-module-detail__evaluation{margin-top:2px}.evaluation-panel-card{gap:16px}.evaluation-panel-card__header{justify-content:space-between}.evaluation-panel-card__actions{margin-top:-4px}.evaluation-form{display:grid;gap:16px}.evaluation-form__footer{justify-content:space-between}.evaluation-form__save-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.evaluation-draft-split{display:inline-flex;align-items:stretch;overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:#fff}.evaluation-draft-split .button{min-height:40px;border:0;border-radius:0;background:#fff}.evaluation-draft-split .button:hover:not(:disabled){background:var(--color-primary-soft)}.evaluation-draft-split__divider{width:1px;margin:8px 0;background:var(--color-line);pointer-events:none}.evaluation-draft-list-button{gap:8px;background:#fff}.evaluation-draft-modal__card{width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 48px));overflow:auto}.evaluation-draft-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.evaluation-draft-modal__header h2,.evaluation-draft-modal__header p{margin:0}.evaluation-draft-modal__header p{margin-top:6px;color:var(--color-muted)}.evaluation-draft-modal__toggle{margin-top:14px;background:var(--color-surface)}.evaluation-draft-list{display:grid;gap:10px;margin-top:14px}.evaluation-draft-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;width:100%;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:#fff;color:var(--color-ink);cursor:pointer;text-align:left}.evaluation-draft-list__item:hover{border-color:var(--color-primary);background:#d6ebe7}.evaluation-draft-list__item--stale{background:#f7f7f7}.evaluation-draft-list__meta{display:grid;gap:3px;min-width:0}.evaluation-draft-list__meta small,.evaluation-draft-list__stale-label{color:var(--color-muted)}.evaluation-draft-list__item p{grid-column:1 / -1;margin:0;color:var(--color-muted);line-height:1.55;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.evaluation-draft-list__stale-label{grid-column:1 / -1;font-weight:800}.field-label{display:grid;gap:8px;color:var(--color-muted);font-size:.9rem;font-weight:800}.field-control{width:100%;min-height:42px;border:1px solid var(--color-line);border-radius:6px;background:#fff;color:var(--color-ink);padding:10px 12px}textarea.field-control{min-height:150px;resize:vertical}.learning-module-content__screen{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:8px;align-items:stretch;min-width:0;animation:fade-up .3s ease both}.learning-module-content__section{display:grid;align-content:start;gap:10px;min-width:0;height:100%;padding:18px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.learning-module-content__section h3,.learning-module-content__section p{margin:0}.learning-module-content__section ul{display:grid;gap:15px;margin:0;padding-left:20px;color:var(--color-muted)}.learning-module-content__goal-list{list-style:none;gap:16px;padding-left:0}.learning-module-content__goal-list li{display:grid;gap:5px}.learning-module-content__goal-list strong{color:var(--color-ink);font-size:.96rem}.learning-module-content__goal-list small{color:var(--color-muted);font-size:.9rem;font-weight:700;line-height:1.55}.learning-module-content__section img{width:100%;max-height:360px;object-fit:cover}.learning-module-content__resources{display:flex;flex-direction:column;gap:8px}.learning-module-content__resource-button{display:grid;width:100%;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;padding:14px 15px;border:1px solid var(--color-primary-dark);border-radius:8px;background:var(--color-primary-dark);color:#fff;font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.learning-module-content__resource-button:hover{border-color:#1f6f67;background:#1f6f67;box-shadow:0 12px 26px #1e2a3224;transform:translateY(-1px)}.learning-module-content__resource-button:disabled,.learning-module-content__resource-button--disabled{border-color:#78908c;background:#78908c;box-shadow:none;cursor:not-allowed;opacity:.72}.learning-module-content__resource-button:disabled:hover,.learning-module-content__resource-button--disabled:hover{border-color:#78908c;background:#78908c;box-shadow:none;transform:none}.learning-module-content__resource-icon{display:block;width:20px;height:20px;object-fit:contain;opacity:.95;filter:brightness(0) invert(1)}.learning-module-content__resource-copy{display:grid;gap:3px;min-width:0}.learning-module-content__resource-button strong{font-size:.88rem;color:#ffffffc7}.learning-module-content__resource-button small{color:#fff;font-size:1.2rem;font-weight:700;line-height:1.45}.learning-module-content__activity-slider{min-width:0;overflow:hidden;border-radius:12px;border:1px solid rgb(229,232,238);margin-top:10px;background:#fff;box-shadow:#0f172908 0 1px 2px}.learning-module-content__activity-header{display:grid;gap:6px;padding:18px 18px 0}.learning-module-content__slide-controls{display:flex;align-items:center;gap:6px;justify-self:center;margin-top:10px;color:var(--color-muted);font-size:.86rem;font-weight:800}.learning-module-content__slide-button{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--color-line);border-radius:999px;background:var(--color-surface);color:var(--color-ink);font-size:1.2rem;line-height:1;cursor:pointer}.learning-module-content__slide-button:disabled{cursor:not-allowed;opacity:.42}.learning-module-content__activity-header h3,.learning-module-content__activity-header p{margin:0}.learning-module-content__activity-header p:last-child{color:var(--color-muted)}.learning-module-content__slide-frame{overflow:hidden;padding:18px}.learning-module-content__slide-track{display:flex;gap:18px;transition:transform .22s ease;will-change:transform}.learning-module-content__slide{box-sizing:border-box;flex:0 0 100%;max-width:100%;min-width:0;display:grid;align-content:start;align-items:start;gap:8px;min-height:190px;padding:16px;border:1px solid var(--color-line);border-radius:10px;background:linear-gradient(180deg,#fff,#f6fbfa);overflow:hidden;scroll-snap-align:start}.learning-module-content__slide>*{min-width:0;max-width:100%}.learning-module-content__slide-heading{display:flex;align-items:center;gap:8px;min-width:0}.learning-module-content__slide-heading span{display:inline-grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-weight:900}.learning-module-content__slide span{display:inline-grid}.learning-module-content__slide h4,.learning-module-content__slide p{margin:0}.learning-module-content__slide p{color:var(--color-muted);line-height:1.6}.learning-module-content__slide img{width:100%;max-height:210px;border-radius:8px;object-fit:cover}.module-content-blocks{display:grid;align-content:start;align-items:start;min-width:0;max-width:100%;gap:10px}.module-content-blocks h4,.module-content-blocks p,.module-content-blocks ul{margin:0}.module-content-blocks pre{margin:0;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.module-content-blocks ul{padding-left:18px;color:var(--color-muted);line-height:1.6}.module-content-image{display:grid;gap:6px;margin:0}.module-content-image img{width:100%;max-height:260px;border-radius:8px;object-fit:cover}.module-content-image figcaption{color:var(--color-muted);font-size:.84rem;font-weight:700}.module-content-code{display:block;box-sizing:border-box;width:max-content;min-width:100%;overflow-x:visible;border:1px solid var(--color-line);border-radius:8px;background:#182321;color:#eef7f5;padding:14px;font-family:Consolas,SFMono-Regular,monospace;font-size:.88rem;line-height:1.6}.module-content-callout{display:grid;gap:6px;border-left:4px solid var(--color-primary);border-radius:8px;background:var(--color-primary-soft);padding:12px 14px}.module-content-callout strong,.module-content-callout p{margin:0}.learning-module-content__submission{display:grid;gap:16px;align-items:center;padding:18px;border-radius:8px;background:#fff}.learning-module-content__submission h3,.learning-module-content__submission p{margin:0}.learning-module-content__submission p:last-child{margin-top:4px;color:var(--color-muted)}.learning-module-content__submission-list{display:grid;gap:14px;margin:14px 0 0;padding:0;list-style:none}.learning-module-content__submission-list li{display:grid;gap:5px}.learning-module-content__submission-list strong{color:var(--color-ink);font-size:.96rem}.learning-module-content__submission-list small{color:var(--color-muted);font-size:.9rem;font-weight:700;line-height:1.55}.learning-module-content__feedback{display:grid;gap:8px;min-width:0;max-width:100%;overflow:hidden;padding:18px;border:1px solid rgba(76,167,156,.26);border-radius:8px;background:#fff}.learning-module-content__feedback>*{min-width:0;max-width:100%}.learning-module-content__draft-feedback{border:1px solid rgba(76,167,156,.38);border-radius:8px;background:#fff;color:var(--color-primary-dark);padding:10px 12px;font-weight:900}.learning-module-content__feedback h3,.learning-module-content__feedback p{margin:0;overflow-wrap:break-word;word-break:keep-all}.learning-module-content p,.learning-module-content small{word-break:keep-all;overflow-wrap:break-word}.learning-module-content__feedback p:last-child:not(.learning-module-content__draft-feedback){color:var(--color-muted);line-height:1.65;white-space:pre-wrap}.learning-module-content__quiz{display:grid;justify-items:center;gap:10px;padding:18px;border:1px solid rgba(76,167,156,.28);border-radius:12px;background:#4ca79c14;text-align:center}.learning-module-content__quiz-history{display:grid;gap:12px;min-width:0;padding:18px;border:1px solid rgba(76,167,156,.28);border-radius:8px;background:#fff}.learning-module-content__quiz-history>div{display:grid;gap:4px}.learning-module-content__quiz-history h3,.learning-module-content__quiz-history p{margin:0}.learning-module-content__private-state{display:grid;justify-items:center;gap:8px;padding:28px 18px;border:1px solid #d6dde1;border-radius:8px;background:#f1f4f4;color:var(--color-muted);text-align:center}.learning-module-content__private-state h3,.learning-module-content__private-state p{margin:0}.private-module-fixed-pill{position:fixed;top:calc(var(--header-height) + 12px);right:clamp(16px,4vw,48px);z-index:35;display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:#14564f;color:#f8fffe;font-size:.86rem;font-weight:900;box-shadow:0 8px 18px #1e2a321f}.quiz-result-accordion{min-width:0;overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:#ffffffeb}.quiz-result-answer-list{display:grid;gap:6px;color:var(--color-muted);line-height:1.45}.quiz-result-answer-list span{display:grid;gap:2px}.quiz-result-answer-list strong{color:var(--color-ink);font-size:.78rem}.quiz-reminder-modal .confirm-modal__card{border-color:#4ca79c57}.quiz-page-stack{min-height:calc(100vh - var(--header-height) - 96px)}.quiz-question-card{display:grid;grid-template-rows:auto minmax(320px,1fr) auto;gap:22px;min-height:min(720px,calc(100vh - var(--header-height) - 124px))}.quiz-question-card h1,.quiz-question-card h2,.quiz-question-card p{margin:0}.quiz-question-body{display:grid;align-content:start}.quiz-navigation{justify-content:space-between;width:100%}.quiz-navigation__start,.quiz-navigation__end{display:inline-flex;align-items:center;min-width:0}.quiz-option-list{display:grid;gap:10px;margin-top:16px}.quiz-option{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:#ffffffe0;cursor:pointer}.quiz-option input{width:18px;height:18px;accent-color:var(--color-primary)}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.role-guide-grid,.club-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.role-guide,.club-card,.session-item{border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface)}.role-guide :hover,.club-card :hover,.session-item :hover{cursor:pointer}.role-guide{display:grid;gap:8px;padding:18px}.role-guide span,.session-item span,.club-card__title span,.club-card__meta dt,.detail-grid dt,.evaluation-row span{color:var(--color-muted);font-size:.88rem;font-weight:700}.role-guide strong{color:var(--color-primary-dark);font-size:1.1rem}.role-guide p,.session-item p{margin:0;color:var(--color-muted)}.session-list{display:grid;gap:10px}.session-item{display:grid;gap:5px;padding:16px}.case-switcher{display:inline-flex;width:fit-content;max-width:100%;gap:4px;padding:4px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-surface);overflow-x:auto}.case-switcher__button{min-height:36px;border:0;border-radius:6px;background:transparent;color:var(--color-muted);cursor:pointer;padding:0 12px;white-space:nowrap;font-weight:800}.case-switcher__button--active{background:var(--color-primary);color:#fff}.workspace-club-list{display:grid;gap:12px}.workspace-club-row{display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:16px;align-items:start;padding:18px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page);text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.workspace-club-row:hover{border-color:var(--color-primary);box-shadow:0 16px 32px #1e2a321a;transform:translateY(-1px)}.workspace-club-row__main,.workspace-club-row__meta>div{display:grid;gap:4px}.workspace-club-row__main span,.workspace-club-row__main small,.workspace-club-row__meta dt{color:var(--color-muted);font-size:.88rem;font-weight:700}.workspace-club-row__main strong{font-size:1.24rem}.workspace-club-row__body{display:grid;gap:12px;min-width:0}.workspace-club-row__meta{display:grid;grid-template-columns:1fr;gap:20px;margin:0}.workspace-club-row__instructors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.workspace-club-row__instructors>div{display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start;gap:4px;min-width:0}.next-session-summary__instructors>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:10px;row-gap:4px;min-width:0}.workspace-person,.workspace-person__contact{display:inline}.workspace-person-list,.workspace-club-row__teachers{display:grid;align-content:start;gap:2px}.workspace-club-row__meta dd{margin:0;line-height:1.5;overflow-wrap:anywhere}.next-session-summary{display:grid;gap:10px;padding:14px;border:1px solid rgba(76,167,156,.24);border-radius:8px;background:var(--color-primary-soft)}.next-session-summary__title{color:var(--color-primary-dark);font-size:.88rem;font-weight:900}.next-session-summary__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,32%);gap:16px;align-items:start}.next-session-summary__detail{display:grid;gap:5px}.next-session-summary__module{color:var(--color-ink);font-weight:800}.next-session-summary__date,.next-session-summary__instructors dd{color:var(--color-muted)}.next-session-summary__instructors{display:grid;grid-template-columns:1fr;gap:8px;margin:0}.next-session-summary__instructors dt,.next-session-summary__instructors dd{font-weight:700}.workspace-club-row__stats{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start}.workspace-stat-chip{display:inline-flex;min-height:30px;align-items:center;border-radius:999px;padding:0 10px;font-size:.84rem;font-weight:800;white-space:nowrap}.workspace-stat-chip--normal{background:var(--color-primary-soft);color:var(--color-primary-dark)}.workspace-stat-chip--warning{background:#fff3df;color:#9c5c13}.workspace-stat-chip--danger{background:#ffe4e1;color:#a42318}.admin-dashboard{gap:18px}.admin-dashboard__header{grid-template-columns:minmax(0,1fr);align-items:start}.admin-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-panel{display:grid;gap:4px}.admin-module-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.admin-module-card{display:grid;min-width:0;gap:12px;padding:16px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.admin-module-card__visibility{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.admin-module-card>span,.admin-module-card__visibility>span,.admin-module-card__meta,.admin-module-card__stats dt,.admin-track-card__stats dt{color:var(--color-muted);font-size:.86rem;font-weight:800}.admin-module-card__visibility>span{color:var(--color-ink);font-size:.94rem;font-weight:900}.module-visibility-switch{position:relative;display:inline-flex;width:38px;height:22px;flex:0 0 auto;align-items:center;padding:3px;border:0;border-radius:999px;background:#d6dde1;cursor:pointer;transition:background-color .18s ease,box-shadow .18s ease}.module-visibility-switch span{width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:0 1px 4px #1e2a3233;transform:translate(0);transition:transform .18s ease}.module-visibility-switch--active{background:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.module-visibility-switch--active span{transform:translate(16px)}.module-visibility-switch:disabled{cursor:not-allowed;opacity:.56}.admin-module-card strong{min-height:25px;overflow-wrap:anywhere;font-size:1rem;line-height:1.35}.admin-module-card__meta{display:flex;flex-wrap:wrap;gap:8px}.admin-progress-bar{height:9px;overflow:hidden;border-radius:999px;background:#e7efed}.admin-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}.admin-module-card__stats,.admin-track-card__stats{display:grid;gap:8px;margin:0}.admin-module-card__stats{grid-template-columns:1fr}.admin-module-card__stats div,.admin-track-card__stats div{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px;border-radius:6px;background:var(--color-surface)}.admin-track-card__stats div{border:1px solid rgba(76,167,156,.18);background:#fff;box-shadow:0 1px 2px #1e2a320a}.admin-module-card__stats dd,.admin-track-card__stats dd{margin:0;font-size:1.08rem;font-weight:900}.admin-track-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-track-card__header{display:grid;gap:6px}.admin-track-card__heading{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:14px}.admin-track-card__heading h2{min-width:0}.admin-track-card__header p{margin:0}.admin-track-card__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-people-page{gap:18px}.admin-people-panel{display:grid;gap:14px}.admin-people-sticky{position:sticky;top:calc(var(--header-height));z-index:50;display:grid;gap:12px;margin:-22px -22px 0;padding:22px 22px 12px;border-radius:8px 8px 0 0;background:var(--color-surface)}.admin-people-sticky .admin-people-header,.admin-school-sticky .admin-school-panel__header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px}.admin-people-header{align-items:center;margin-bottom:0;justify-content:space-between}.admin-people-header__actions{display:flex;flex:0 0 auto;gap:8px;justify-content:flex-end}.admin-list-search{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:6px;align-items:center;width:100%;min-width:0}.admin-people-sticky>.admin-list-search,.admin-school-sticky>.admin-list-search{width:100%}.admin-people-sticky .admin-people-header__actions,.admin-school-sticky .admin-school-panel__actions{grid-column:2;grid-row:1}.admin-list-search input{width:100%;min-width:0;height:40px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;background:#fff;color:var(--color-text);font:inherit}.admin-list-search .school-staff-search__button{width:40px;height:40px;padding:0}.admin-filter-search{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:6px;align-items:center;width:100%}.admin-people-filter-search,.admin-school-filter-search{display:none}.admin-filter-search input{width:100%;min-width:0;height:40px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;background:#fff;color:var(--color-text);font:inherit}.admin-people-header .button{min-width:max-content;white-space:nowrap}.admin-people-mode-bar{display:grid;gap:10px;align-items:center;min-width:0;width:100%;border:1px solid var(--color-line);border-radius:8px;padding:10px;background:#fff}.admin-people-mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0}.admin-people-mode-toggle .button{width:100%;justify-content:center}.admin-people-bulk-actions{display:grid;grid-template-columns:minmax(80px,1fr) auto;align-items:center;gap:10px;min-width:0}.admin-people-mode-toggle .button,.admin-people-bulk-actions .button{min-height:34px;padding:0 12px;white-space:nowrap}.admin-people-bulk-actions>span{color:var(--color-muted);font-size:.84rem;font-weight:900;white-space:nowrap}.admin-people-bulk-button-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0}.admin-people-bulk-affiliation-field{display:grid;gap:8px;color:var(--color-muted);font-size:.84rem;font-weight:900}.admin-people-bulk-affiliation-field input,.admin-people-bulk-affiliation-field select{width:100%;min-height:42px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;background:#fff;color:var(--color-ink);font:inherit}.admin-people-filters{display:flex;gap:8px;min-width:0;overflow-x:auto;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page);scrollbar-width:thin}.admin-filter-chip{display:inline-flex;min-height:32px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid rgba(76,167,156,.34);border-radius:999px;padding:0 11px;background:var(--color-surface);color:var(--color-primary-dark);font-size:.84rem;font-weight:800;white-space:nowrap}.admin-filter-chip--muted{border-color:var(--color-line);color:var(--color-muted)}.admin-filter-chip--button{gap:8px;font:inherit;cursor:pointer}.admin-filter-chip--button:hover{border-color:var(--color-primary);background:#c7e5df;color:var(--color-primary-dark)}.admin-filter-chip__label{min-width:0}.admin-filter-chip__remove{display:inline-flex;width:18px;height:18px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:#4ca79c2e;color:var(--color-primary-dark);font-size:.72rem;line-height:1}.admin-filter-chip--button:hover .admin-filter-chip__remove{background:var(--color-primary);color:#fff}.admin-filter-modal__card{width:min(760px,calc(100vw - 32px))}.admin-filter-modal__grid{display:grid;grid-template-columns:1fr;gap:12px;max-height:min(58vh,520px);overflow-y:auto;padding-right:2px}.admin-filter-group{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.admin-filter-group h3{margin:0;color:var(--color-ink);font-size:.95rem}.admin-filter-group__heading{display:flex;align-items:center}.admin-filter-group__select-all{display:inline-flex;min-width:0;align-items:center;gap:8px;cursor:pointer}.admin-filter-group__select-all input{margin:0;accent-color:var(--color-primary)}.admin-filter-group__select-all input:disabled{cursor:not-allowed}.admin-filter-group__select-all span{min-width:0}.admin-filter-options{display:grid;gap:8px}.admin-filter-option{display:flex;min-width:0;align-items:flex-start;gap:8px;padding:8px;border-radius:6px;cursor:pointer}.admin-filter-option:hover{background:var(--color-primary-soft)}.admin-filter-option input{margin-top:2px}.admin-filter-option span{min-width:0;overflow-wrap:anywhere;color:var(--color-muted);font-size:.9rem;font-weight:800}.admin-filter-modal__actions{gap:8px}.admin-add-user-modal .add-student-choice-card:disabled{cursor:not-allowed;opacity:.62}.admin-add-user-kind-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-people-table{display:grid;min-width:820px;gap:8px}.admin-people-table-wrap{scrollbar-width:none}.admin-people-table-wrap::-webkit-scrollbar{display:none}.admin-people-scrollbar{position:sticky;bottom:0;z-index:45;height:18px;margin:-2px -22px -22px;padding:2px 22px 0;overflow-x:auto;overflow-y:hidden;border-radius:0 0 8px 8px;background:linear-gradient(180deg,rgba(255,255,255,0),var(--color-surface) 28%),var(--color-surface)}.admin-people-scrollbar>div{height:1px}.admin-people-row{--admin-people-row-bg: #fff;--admin-people-row-border: var(--color-line);display:grid;grid-template-columns:minmax(120px,.9fr) minmax(180px,1.2fr) minmax(90px,.6fr) minmax(130px,.8fr) minmax(180px,1.3fr);gap:10px;align-items:center;padding:12px;border:1px solid var(--admin-people-row-border);border-radius:8px;background:var(--admin-people-row-bg)}.admin-people-table--edit{min-width:1180px}.admin-people-table--edit .admin-people-row{grid-template-columns:minmax(120px,.9fr) minmax(180px,1.2fr) minmax(90px,.6fr) minmax(150px,.9fr) minmax(190px,1.1fr) minmax(112px,112px) minmax(96px,96px) minmax(96px,auto)}.admin-people-table--bulk{min-width:900px}.admin-people-table--bulk .admin-people-row{grid-template-columns:minmax(168px,1fr) minmax(180px,1.2fr) minmax(90px,.6fr) minmax(130px,.8fr) minmax(180px,1.3fr)}.admin-people-select-cell{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:22px}.admin-people-select-cell input{width:18px;height:18px;margin:0;accent-color:var(--color-primary)}.admin-people-select-cell--head{color:var(--color-muted);font-weight:900}.admin-people-row--head{--admin-people-row-bg: var(--color-surface);--admin-people-row-border: transparent;border-color:transparent;background:transparent;color:var(--color-muted);font-size:.84rem;font-weight:900}.admin-people-row--danger{--admin-people-row-bg: #fff1ef;--admin-people-row-border: #f0c3bd;border-color:#f0c3bd;background:var(--admin-people-row-bg)}.admin-people-row--warning{--admin-people-row-bg: #fff8e7;--admin-people-row-border: #efd58b;border-color:#efd58b;background:var(--admin-people-row-bg)}.admin-people-row__identity{position:sticky;left:0;z-index:4;display:grid;gap:2px;min-width:0;margin:-12px 0 -12px -12px;align-self:stretch;align-content:center;padding:12px 20px 12px 12px;border:1px solid var(--admin-people-row-border);border-left-color:var(--admin-people-row-border);border-radius:8px 0 0 8px;background:var(--admin-people-row-bg)}.admin-people-row__identity small{color:var(--color-muted);font-size:.78rem;font-weight:800}.admin-people-row__identity--bulk{grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:10px}.admin-people-row__identity-main{display:grid;min-width:0;gap:2px}.admin-people-row>span{min-width:0;overflow-wrap:anywhere}.admin-people-row__field{display:grid;min-width:0;gap:4px}.admin-people-row__field span{color:var(--color-muted);font-size:.72rem;font-weight:900}.admin-people-row__field input,.admin-people-row__field select{width:100%;min-width:0;min-height:36px;border:1px solid var(--color-line);border-radius:6px;padding:0 20px 0 5px;background:#fff;color:var(--color-ink)}.admin-people-row__affiliation-preview{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.admin-people-row__affiliation-preview>span{overflow:hidden;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap}.admin-people-row__affiliation-preview .button{min-height:34px;padding:0 10px;white-space:nowrap}.admin-people-row__actions{display:flex;flex-wrap:nowrap;gap:6px;justify-content:flex-end}.admin-people-row__drive,.admin-people-row__reset{display:flex;justify-content:flex-end;white-space:nowrap}.admin-people-row__drive .button,.admin-people-row__reset .button,.admin-people-row__actions .button{min-height:34px;padding:0 10px;white-space:nowrap}.student-drive-modal__card{width:min(560px,calc(100vw - 60px))}.student-drive-form{display:grid;gap:12px}.student-drive-form label{display:grid;gap:6px;color:var(--color-muted);font-size:.82rem;font-weight:900}.student-drive-form input{min-height:42px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;color:var(--color-ink)}.admin-people-row--head .admin-people-row__identity{z-index:3;color:var(--color-muted)}.admin-people-empty{padding:24px;border:1px dashed var(--color-line);border-radius:8px;color:var(--color-muted);text-align:center}.admin-people-add-row{position:sticky;bottom:18px;z-index:44;display:flex;min-height:52px;align-items:center;justify-content:center;gap:8px;border:2px solid var(--color-line);border-radius:8px;background:var(--color-surface);color:var(--color-primary-dark);cursor:pointer;font-weight:900}.admin-people-add-row span{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:var(--color-primary);color:#fff}.admin-people-add-row:hover{border-color:var(--color-primary);background:#dcf2ee}.admin-people-row--clickable{cursor:pointer}.admin-people-row--clickable:hover{border-color:var(--color-primary);background:#f4fbf9}.school-list{display:grid;gap:16px}.school-card-row{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start;min-width:0}.school-card-row--bulk{grid-template-columns:42px minmax(0,1fr);align-items:stretch}.school-card-row--head{grid-template-columns:42px minmax(0,1fr);align-items:center;padding:0;color:var(--color-muted);font-size:.84rem;font-weight:900}.school-card-select-cell{display:inline-flex;width:42px;height:100%;min-height:48px;align-items:center;justify-content:center;border-radius:8px;background:var(--color-surface);cursor:pointer}.school-card-select-cell input{width:20px;height:20px;margin:0;accent-color:var(--color-primary);cursor:pointer}.school-card{display:grid;overflow:hidden;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.school-card--selected{border-color:var(--color-primary);box-shadow:0 0 0 2px #4ca79c2e}.school-card__summary{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;gap:12px;align-items:flex-start;padding:18px 18px 0;background:transparent}.school-card__summary-main{display:grid;grid-column:1 / -1;grid-row:1;min-width:0;gap:12px;align-items:stretch;border:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.school-card__summary--with-delete .school-card__summary-main{grid-row:2}.school-card__summary:hover{background:#f4fbf9}.school-card__delete-button{grid-column:2;grid-row:1;justify-self:end;align-self:start;z-index:1;min-height:38px}.school-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.school-card__header div{display:grid;gap:4px}.school-card__header span,.school-card__header small{color:var(--color-muted);font-size:.88rem;font-weight:700}.school-card__header strong{font-size:1.16rem}.school-card__type-pill{flex:0 0 auto;margin-top:2px}.school-card__chevron{display:flex;min-height:38px;align-items:center;justify-content:center;margin:6px -18px 0;border-top:1px solid var(--color-line);border-radius:0;padding:0 12px;background:var(--color-surface);color:var(--color-primary-dark);font-size:.82rem;font-weight:900;white-space:nowrap}.school-card--expanded .school-card__chevron{border-color:#4ca79c47;background:var(--color-primary-soft)}.school-club-list{display:grid;grid-template-columns:1fr;gap:12px;padding:20px}.admin-school-sticky{position:sticky;top:calc(var(--header-height));z-index:48;display:grid;gap:12px;margin:-22px -22px 0;padding:22px 22px 12px;border-radius:8px 8px 0 0;background:var(--color-surface)}.admin-school-panel__header{justify-content:space-between}.admin-school-panel__actions{display:flex;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end;gap:8px}.school-edit-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-school-add-row{margin-top:0;bottom:0}.school-filter-modal .confirm-modal__card,.school-filter-modal__card{width:min(640px,calc(100vw - 32px))}.school-add-modal .confirm-modal__card,.school-add-modal__card{width:min(920px,calc(100vw - 32px))}.school-edit-modal .confirm-modal__card,.school-edit-modal__card{grid-template-rows:auto minmax(0,1fr) auto;width:min(1080px,calc(100vw - 60px));max-height:min(86vh,820px);overflow:hidden}.school-edit-modal__header{position:sticky;top:0;z-index:3;margin:-22px -22px 0;padding:0 22px 22px 14px;border-bottom:1px solid var(--color-line);background:var(--color-surface)}.school-edit-modal__actions{position:sticky;bottom:0;z-index:3;margin:0 -22px -22px;padding:14px 22px 0;border-top:1px solid var(--color-line);background:var(--color-surface)}.school-edit-modal__grid{display:grid;gap:14px;min-height:0;overflow-y:auto;padding:30px 4px}.school-edit-section{display:grid;gap:12px;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.school-edit-section h3{margin:0;font-size:1rem}.school-add-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.school-add-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.school-add-form label{display:grid;gap:6px}.school-add-form label:last-child{grid-column:1 / -1}.school-add-form span{color:var(--color-muted);font-size:.82rem;font-weight:900}.school-add-form input,.school-add-form select{width:100%;min-height:40px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;background:#fff;color:var(--color-ink)}.school-add-upload{display:grid;gap:14px}.school-club-edit-actions{display:flex;justify-content:flex-end}.school-edit-club-create-row{display:flex;justify-content:space-between;margin-bottom:10px}.school-edit-club-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.school-edit-club-tools label{display:grid;gap:6px}.school-edit-club-tools span{color:var(--color-muted);font-size:.82rem;font-weight:900}.school-edit-club-picker{width:100%;min-height:40px;border:1px solid var(--color-line);border-radius:8px;padding:0 12px;background:#fff;color:var(--color-ink)}.school-roster-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.school-roster-editor article{display:grid;grid-template-rows:auto minmax(54px,1fr) auto;align-content:start;gap:8px;min-width:0;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:#fff}.school-roster-editor p{min-height:22px;margin:0;color:var(--color-muted);overflow-wrap:anywhere}.school-roster-editor input{width:100%;min-height:38px;border:1px solid var(--color-line);border-radius:6px;padding:0 10px}.school-roster-editor .button{width:100%;min-height:40px;justify-content:center}.school-staff-search__form{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:stretch}.school-staff-search__form--with-reset{grid-template-columns:minmax(0,1fr) 40px 40px}.school-staff-search__button{width:40px;height:40px;min-height:40px;justify-content:center;padding:0}.school-roster-editor .button.school-staff-search__button,.school-schedule-editor .button.school-staff-search__button{width:40px}.search-icon{display:inline-block;width:18px;height:18px;background:center / contain no-repeat url(https://cdn-icons-png.flaticon.com/512/622/622669.png)}.reset-icon{display:inline-block;width:18px;height:18px;background:center / contain no-repeat url(https://cdn-icons-png.flaticon.com/512/709/709579.png)}.school-edit-contact-list{display:grid;grid-template-columns:1fr;align-content:start;gap:10px;min-height:54px;max-height:132px;overflow-y:auto}.school-edit-contact-list span{color:var(--color-muted);font-size:.86rem;font-weight:800}.school-edit-contact-chip{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;column-gap:15px;align-items:center;justify-self:stretch;max-width:100%;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);cursor:pointer;padding:5px 10px;text-align:left}.school-edit-contact-chip__name{min-width:0;overflow-wrap:anywhere}.school-edit-contact-chip__remove{color:var(--color-muted);font-size:.82rem;font-weight:900;line-height:1}.school-schedule-editor{display:grid;gap:10px}.school-schedule-editor__module{display:grid;gap:8px;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:#fff}.school-schedule-editor__module>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.school-schedule-editor__list{display:grid;gap:14px}.school-schedule-editor__add-row{display:flex;justify-content:flex-end}.school-schedule-editor__add-button{width:100%}.school-schedule-editor__row{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.school-schedule-editor__row-header{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--color-line)}.school-schedule-editor__row-header strong{color:var(--color-ink);font-size:.95rem}.school-schedule-editor__row-header .button{flex:0 0 auto;min-height:34px;padding:0 12px}.school-schedule-editor__field{display:grid;align-content:start;gap:8px;min-width:0}.school-schedule-editor__field label{display:grid;min-width:0;max-width:100%;gap:6px;color:var(--color-muted);font-size:.82rem;font-weight:900}.school-schedule-editor__row input{width:100%;min-width:0;max-width:100%;min-height:36px;border:1px solid var(--color-line);border-radius:6px;padding:0 10px}.school-schedule-editor__row span{color:var(--color-muted);font-size:.86rem;font-weight:800}.school-schedule-editor__field p{margin:0;color:var(--color-muted);font-size:.86rem;font-weight:800;overflow-wrap:anywhere}.school-schedule-editor__instructors{display:grid;gap:18px;min-width:0}.school-schedule-editor__instructors-header{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:12px}.school-schedule-editor__instructors-header>div{display:grid;min-width:0;gap:4px}.school-schedule-editor__instructors-header strong{color:var(--color-ink);font-size:.95rem}.school-schedule-editor__instructors-header span{overflow-wrap:anywhere}.school-schedule-editor__instructor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;min-width:0}.school-schedule-editor__assignment-list{display:grid;grid-template-columns:1fr;gap:8px}.school-schedule-editor__assignment-list>span{color:var(--color-muted);font-size:.86rem;font-weight:800}.school-schedule-editor__reset{display:inline-flex;min-height:34px;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;padding:0 10px;border-color:#4ca79c59;background:#4ca79c14;white-space:nowrap}.school-staff-search__results{display:grid;gap:6px;max-height:148px;overflow-y:auto}.school-staff-search__results button,.school-schedule-editor__chip{min-height:32px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink);cursor:pointer;padding:10px;text-align:left}.school-quiz-reset-list{display:flex;flex-wrap:wrap;gap:8px}.school-quiz-reset-button{min-height:34px;padding-inline:12px;color:var(--color-primary-dark)}.club-card{display:grid;gap:16px;padding:18px;border:1px solid var(--color-line);border-radius:8px;background:#fff;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.club-card:hover{border-color:var(--color-primary);box-shadow:0 16px 32px #1e2a321a;transform:translateY(-1px)}.club-card__title{display:grid;gap:4px}.club-card__title strong{font-size:1.25rem}.club-card__meta,.detail-grid{display:grid;gap:10px;margin:0}.club-card__meta div,.detail-grid div{display:grid;gap:3px}.club-card__meta dd,.detail-grid dd{margin:0}.club-card__stats{display:flex;flex-wrap:wrap;gap:8px}.club-card__stats span{display:inline-flex;min-height:30px;align-items:center;border-radius:999px;padding:0 10px;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:.84rem;font-weight:800}.school-session-list{display:grid;gap:10px}.school-session-card{display:grid;gap:10px;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:#fff}.school-session-card__header,.school-session-card__instructors{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}.school-session-card__instructors{justify-content:flex-start;color:var(--color-muted);font-size:.9rem;font-weight:700}.detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.evaluation-list{display:grid;gap:12px}.evaluation-row{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(140px,.6fr) minmax(240px,1.4fr);gap:12px;align-items:start;padding:16px;border:1px solid var(--color-line);border-radius:8px;background:var(--color-page)}.evaluation-row>div,.evaluation-row label{display:grid;gap:6px}.evaluation-row label{color:var(--color-muted);font-weight:700}.evaluation-row select,.evaluation-row textarea{width:100%;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);color:var(--color-ink)}.evaluation-row select{min-height:40px;padding:0 10px}.evaluation-row textarea{min-height:82px;padding:10px;resize:vertical}.auth-page{display:grid;min-height:100vh;place-items:center;padding:32px 16px;background:linear-gradient(180deg,#4ca79c1f,#4ca79c00),var(--color-page)}.auth-card,.error-panel{width:min(100%,440px);max-width:calc(100vw - 32px);border:1px solid var(--color-line);border-radius:8px;background:#fff;box-shadow:0 18px 50px #1e2a321a}.auth-card{display:grid;gap:18px;padding:30px}.auth-card__logo{display:block;width:min(320px,84vw);max-width:100%;max-height:104px;margin:0 auto;object-fit:contain;object-position:center}.auth-card__eyebrow{margin:0;color:var(--color-primary-dark);font-size:.86rem;font-weight:900}.auth-card__title--hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:6px;color:var(--color-muted);font-weight:700}.auth-form input{min-height:44px;border:1px solid var(--color-line);border-radius:6px;background:var(--color-surface);padding:0 12px;color:var(--color-ink)}.auth-links{display:flex;flex-wrap:wrap;gap:12px;font-size:.92rem}.auth-links a{color:var(--color-primary-dark);font-weight:700}.form-hint{margin:0;color:var(--color-muted);font-size:.88rem}.form-hint--success{color:var(--color-primary-dark);font-weight:900}.form-hint--danger{color:#9f3329;font-weight:900}.error-panel{display:grid;gap:14px;margin:48px auto 0;padding:34px;text-align:center}.error-panel__status{color:var(--color-primary-dark);font-size:.9rem;font-weight:900}.admin-progress-page{width:100%}.admin-progress-panel{overflow:visible}.admin-progress-sticky{display:grid;gap:10px}.admin-progress-export-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-progress-select-all{display:inline-flex;align-items:center;gap:8px;color:var(--color-text);font-size:.9rem;font-weight:800}.admin-progress-select-all input,.progress-school-row .school-card-select-cell input{width:18px;height:18px;accent-color:var(--color-primary)}.progress-school-list{display:grid;gap:14px}.progress-school-row{align-items:stretch}.progress-school-card{display:grid;gap:16px;padding:18px}.progress-school-card__header{align-items:start}.progress-club-list{display:grid;gap:14px}.progress-club-card{display:grid;gap:12px;padding:14px;border:1px solid var(--color-line);border-radius:8px;background:#fff}.progress-club-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.progress-club-card__header h3,.progress-club-card__header p{margin:0}.progress-club-card__header h3{font-size:1.05rem}.progress-club-card__header p{margin-top:6px;color:var(--color-muted);line-height:1.6}.admin-progress-table-wrap{overflow-x:auto;border:1px solid var(--color-line);border-radius:8px;background:#fff}.admin-progress-table{width:max-content;min-width:100%;border-collapse:collapse}.admin-progress-table th,.admin-progress-table td{min-width:132px;padding:10px;border-right:1px solid var(--color-line);border-bottom:1px solid var(--color-line);text-align:center;vertical-align:middle}.admin-progress-table th:first-child,.admin-progress-table td:first-child{min-width:86px}.admin-progress-table thead th{background:var(--color-surface);color:var(--color-text);font-size:.84rem;line-height:1.45;white-space:pre-line}.admin-progress-table thead small{display:block;max-width:180px;margin:3px auto 0;color:var(--color-muted);text-align:center;overflow-wrap:anywhere}.admin-progress-table thead th:first-child{position:sticky;left:0;z-index:4;border-right:0}.admin-progress-table tbody th{position:sticky;left:0;z-index:3;border-right:0;background:#fff;font-weight:900}.admin-progress-table thead th:first-child:after,.admin-progress-table tbody th:after{content:"";position:absolute;top:0;right:0;bottom:0;width:2px;background:var(--color-line);pointer-events:none}.admin-progress-cell{display:inline-flex;min-width:104px;min-height:36px;align-items:center;justify-content:center;padding:6px 10px;border:1px solid var(--color-line);border-radius:999px;background:#f3f8f6;color:var(--color-muted);font-size:.82rem;font-weight:800;white-space:nowrap}.admin-progress-cell--complete{border-color:#75c790;background:#cdf3da;color:#285c39;cursor:pointer}.admin-progress-cell--complete:hover{background:#b8eccb}.admin-progress-cell:disabled{cursor:default}.admin-progress-cell--empty{opacity:.8}.progress-detail-card{max-width:min(860px,calc(100vw - 24px));max-height:min(760px,calc(100vh - 32px));overflow:auto}.progress-detail-list dd{white-space:pre-wrap}.progress-detail-quiz{display:grid;gap:10px;margin-top:16px}.progress-detail-quiz h3{margin:0;font-size:1rem}.progress-detail-quiz__attempt{max-width:none}.progress-detail-quiz__attempt--summary-only,.progress-detail-quiz__item{cursor:default}.progress-detail-quiz__item{display:grid;grid-template-columns:1fr;gap:8px;align-items:start;min-width:0;padding:12px;border:1px solid var(--color-line);border-radius:8px;background:#fff}.progress-detail-quiz__item-question{display:flex;min-width:0;align-items:flex-start;justify-content:space-between;gap:10px}.progress-detail-quiz__item-question strong{min-width:0;overflow-wrap:anywhere;line-height:1.55}.progress-detail-quiz__answer-row{display:grid;grid-template-columns:minmax(72px,auto) minmax(0,1fr);gap:10px;min-width:0;align-items:start;padding:8px 10px;border-radius:8px;background:var(--color-page)}.progress-detail-quiz__answer-row strong{color:var(--color-muted);font-size:.86rem}.progress-detail-quiz__answer-row span{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.55}@media (max-width: 800px){.app-header{grid-template-columns:1fr auto}.app-header__nav,.account-button--desktop,.desktop-account-menu{display:none}.hamburger-button{display:inline-flex}.hamburger-button--close{position:fixed;top:22px;right:clamp(16px,4vw,48px);z-index:110}.hamburger-button--close span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-button--close span:nth-child(2){opacity:0}.hamburger-button--close span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-drawer{position:fixed;top:0;right:0;z-index:100;display:grid;width:min(86vw,320px);min-height:100vh;align-content:start;gap:18px;padding:96px 24px 24px;border-left:1px solid var(--color-line);background:var(--color-surface);box-shadow:-20px 0 42px #1e2a3229}.mobile-drawer__nav{display:grid;gap:8px;margin-bottom:20px}.mobile-drawer__nav a{min-height:44px;display:flex;align-items:center;border-radius:6px;padding:0 12px;color:var(--color-ink);font-weight:800;text-decoration:none}.mobile-drawer__nav a:hover{background:var(--color-primary-soft)}.mobile-drawer .account-menu{position:static;width:100%;padding:0;border:0;box-shadow:none}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header--module{grid-template-columns:1fr;align-items:start}.module-switcher{justify-content:flex-start;min-width:0}.admin-summary-grid,.admin-module-grid,.admin-track-grid,.admin-track-card__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filter-modal__grid,.admin-add-user-kind-grid{grid-template-columns:1fr}.club-overview-panel__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.next-session-summary__body{grid-template-columns:1fr}.next-session-summary__instructors>div{grid-template-columns:1fr}.workspace-person{display:grid}.workspace-person__contact{display:block}.learning-module-content__screen,.learning-module-content__resources{grid-template-columns:1fr}.learning-module-content__screen{grid-auto-rows:auto;align-items:start}.learning-module-content__section{height:auto}.learning-module-content__submission{grid-template-columns:1fr}.role-guide-grid,.club-grid,.workspace-club-row__meta,.school-card__header,.school-club-list,.school-add-form,.school-roster-editor,.school-schedule-editor__module>header,.school-schedule-editor__instructor-fields,.school-schedule-editor__row,.detail-grid,.evaluation-row{grid-template-columns:1fr}.workspace-club-row__stats{justify-content:flex-start}.school-card__summary{grid-template-columns:1fr}.school-card__summary--with-delete{grid-template-columns:minmax(0,1fr) auto}.school-card__summary-main{grid-column:1;grid-row:auto;width:100%}.school-card__summary--with-delete .school-card__summary-main{grid-column:1 / -1;grid-row:2}.school-card__delete-button{grid-column:2;grid-row:1;width:auto}.workspace-club-row{grid-template-columns:1fr;gap:20px;padding:14px}.module-panel__summary{align-items:flex-start}.module-panel__summary-layout,.student-module-card-list{grid-template-columns:1fr}.module-student-panel{grid-template-columns:1fr;gap:15px;justify-items:start}.team-modal{padding:16px}.team-modal__card{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px)}.team-modal__header{align-items:flex-start}.team-modal__description{font-size:.9rem}.team-editor-row--edit{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name count" ". delete"}.team-editor-row--edit input{grid-area:name;min-width:0}.team-editor-row--edit>span{grid-area:count}.team-editor-row--edit .team-editor-row__delete{grid-area:delete;justify-self:end}.team-editor-add-row{grid-template-columns:1fr;grid-template-areas:"name" "button"}.team-editor-add-row label{grid-area:name}.team-editor-add-row .button{grid-area:button;justify-self:end}.student-list-panel__header{flex-direction:column}.student-list-panel__header .button-row{width:100%}.student-overview-detail .student-module-card{min-height:120px}.module-status-row{flex-direction:row;justify-content:flex-start}.data-table{display:block;overflow-x:auto;white-space:nowrap}.schedule-calendar__header{grid-template-columns:1fr;align-items:start}.schedule-calendar__controls{justify-content:flex-start}.schedule-calendar__control-shell{width:100%;justify-content:space-between;gap:12px}.schedule-calendar__filter-button{order:2}.schedule-calendar-grid{min-width:0}.schedule-calendar-panel{overflow-x:visible}.schedule-calendar-weekday{min-height:30px;font-size:.76rem}.schedule-calendar-day{min-height:92px;gap:5px;padding:6px 4px}.schedule-calendar-day__number{font-size:.8rem}.schedule-calendar-event{border-left-width:3px;padding:5px}.schedule-calendar-event strong{font-size:.7rem}.schedule-calendar-event span{display:none}.admin-progress-export-bar{align-items:flex-start;gap:8px}.progress-school-card,.progress-club-card{padding:12px}.progress-club-card__header{display:grid}.admin-progress-table th,.admin-progress-table td{min-width:118px;padding:8px}.admin-progress-table th:first-child,.admin-progress-table td:first-child{min-width:72px}.admin-progress-cell{min-width:92px;min-height:32px;font-size:.76rem}.progress-detail-quiz__item{grid-template-columns:1fr;align-items:start}}@media (max-width: 520px){.admin-people-filter-search,.admin-school-filter-search{display:grid}.metric-grid,.admin-dashboard__header,.admin-module-grid,.admin-track-grid{grid-template-columns:1fr}.admin-summary-grid,.admin-track-card__stats{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-module-content__slide{flex-basis:100%}.content-panel__header{display:grid}.admin-people-sticky .admin-people-header,.admin-school-sticky .admin-school-panel__header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;justify-content:space-between}.admin-school-panel__header{display:grid;grid-template-columns:1fr;align-items:start;gap:10px;justify-content:stretch}.add-student-modal__header,.school-add-modal__header{display:flex;align-items:center;justify-content:space-between}.admin-people-header h2{font-size:1.05rem}.admin-people-header__actions,.admin-school-panel__actions{display:flex;width:auto;grid-column:2;grid-row:1;gap:6px;justify-content:flex-end}.admin-people-header .button,.admin-school-panel__header .button{min-height:34px;padding:0 10px;font-size:.82rem}.admin-list-search.admin-people-search,.admin-list-search.admin-school-search{display:none}.admin-people-filters{padding:8px}.admin-filter-chip{min-height:30px;font-size:.78rem}.admin-people-mode-bar{gap:8px;padding:8px}.admin-people-bulk-actions{grid-template-columns:minmax(68px,1fr) auto;align-items:start}.admin-people-bulk-button-group{justify-content:flex-end;gap:6px}.admin-people-mode-toggle .button,.admin-people-bulk-actions .button{min-height:32px;padding:0 10px;font-size:.78rem}.schedule-calendar__control-shell .button{min-height:34px;padding:0 10px;font-size:.82rem}.schedule-calendar-panel{padding:10px}.schedule-calendar-grid{gap:1px}.schedule-calendar-day{min-height:72px;padding:5px 3px}.schedule-calendar-day__number strong{display:none}.schedule-calendar-event{min-height:20px;padding:3px}.schedule-calendar-event strong{font-size:.64rem}.schedule-event-detail div{grid-template-columns:1fr;gap:4px}}
