:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#eef3f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{border:0}.public-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:#fff;border:1px solid #d6dee8;border-radius:8px;width:min(100%,420px);padding:28px;box-shadow:0 16px 42px #24303d1a}.brand-mark{color:#126b69;background:#e0f2f1;border-radius:8px;place-items:center;width:44px;height:44px;display:grid}.eyebrow{color:#1c6a73;margin:16px 0 8px;font-size:.875rem;font-weight:700}h1,h2,h3,p{margin-top:0}h1{margin-bottom:20px;font-size:1.75rem;line-height:1.2}h2{margin-bottom:6px;font-size:1.5rem;line-height:1.25}h3{margin-bottom:14px;font-size:1rem;line-height:1.3}p{color:#52606d;line-height:1.7}.auth-tabs{background:#edf2f7;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:20px;padding:4px;display:grid}.auth-tabs__link{color:#52606d;border-radius:6px;place-items:center;min-height:40px;font-weight:700;display:grid}.auth-tabs__link.active{color:#102a43;background:#fff;box-shadow:0 1px 4px #24303d1a}.shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.topbar{background:#fff;border-bottom:1px solid #d6dee8;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.topbar .eyebrow{margin:0 0 4px}.topbar h1{margin:0;font-size:1.25rem}.topbar__subtitle{margin:4px 0 0;font-size:.9rem}.icon-button{color:#334e68;cursor:pointer;background:#edf2f7;border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.icon-button:hover{background:#dce8f2}.icon-button:disabled{color:#829ab1;cursor:not-allowed}.shell__body{grid-template-columns:240px minmax(0,1fr);min-width:0;display:grid}.sidebar{background:#f8fafc;border-right:1px solid #d6dee8;flex-direction:column;gap:4px;padding:18px;display:flex}.sidebar__link{color:#52606d;border-radius:8px;align-items:center;min-height:40px;padding:0 12px;font-weight:700;display:flex}.sidebar__link:hover{color:#243b53;background:#edf2f7}.sidebar__link--active{color:#0f5f60;background:#d9f0ef}.content{min-width:0;padding:24px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-header p{margin-bottom:0}.page-header__actions{gap:8px;display:flex}.panel{background:#fff;border:1px solid #d6dee8;border-radius:8px;padding:18px;box-shadow:0 8px 24px #24303d0f}.panel__body,.form-grid{gap:14px;display:grid}.form-grid label{color:#334e68;gap:6px;font-weight:700;display:grid}.form-grid h4{color:#102a43;margin:0}.form-grid input{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;width:100%;min-height:42px;padding:0 12px}.form-grid button{color:#fff;cursor:pointer;background:#126b69;border-radius:8px;min-height:42px;font-weight:700}.form-grid button:hover{background:#0f5f60}.form-grid button:disabled{cursor:not-allowed;background:#9fb3c8}.form-error{color:#b42318;background:#fff1f2;border-radius:8px;margin:0;padding:10px 12px;font-weight:700}.form-success{color:#0f766e;background:#e3f8ef;border-radius:8px;margin:0;padding:10px 12px;font-weight:700}.student-dashboard,.teacher-dashboard{gap:18px;display:grid}.account-panel{max-width:640px}.account-panel__heading{align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.account-panel__heading h3{margin-bottom:4px}.account-panel__heading p{margin-bottom:0}.account-form{max-width:440px}.section-title-row,.session-card,.team-overview,.member-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-title-row h3,.session-card h3,.member-row h3,.team-overview h3{margin-bottom:4px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.summary-grid>div,.team-overview{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;padding:14px}.field-label{color:#627d98;margin-bottom:4px;font-size:.82rem;font-weight:700;display:block}.session-list,.member-list{gap:12px;display:grid}.session-card,.member-row{background:#fff;border:1px solid #d6dee8;border-radius:8px;padding:14px}.session-card__meta,.member-row__badges{color:#627d98;flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;font-weight:700;display:flex}.button-link{color:#fff;white-space:nowrap;background:#126b69;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-weight:700;display:inline-flex}.button-link:hover{background:#0f5f60}.button-link--secondary{background:#334e68}.button-link--secondary:hover{background:#243b53}.button-link--danger{background:#b42318}.button-link--danger:hover{background:#921b12}.button-link:disabled{cursor:not-allowed;background:#9fb3c8}.text-link{color:#126b69;font-weight:700}.text-link:hover{color:#0f5f60}.status-badge{border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:.8rem;font-weight:800;display:inline-flex}.status-badge--ready{color:#8a5a00;background:#fff7d6}.status-badge--running{color:#0f5f60;background:#d9f0ef}.status-badge--paused{color:#b42318;background:#fce8e6}.status-badge--finished,.status-badge--archived,.status-badge--neutral{color:#334e68;background:#edf2f7}.status-badge--draft{color:#6b21a8;background:#f3e8ff}.state-message,.muted-note{color:#627d98;margin:0;font-weight:700}.order-panel{gap:16px;display:grid}.order-status-row{color:#52606d;flex-wrap:wrap;align-items:center;gap:10px;font-weight:700;display:flex}.order-form{max-width:420px}.order-form input{font-variant-numeric:tabular-nums;letter-spacing:.04em;min-height:56px;font-size:1.6rem;font-weight:700}.order-form input:disabled{color:#627d98;cursor:not-allowed;-webkit-text-fill-color:#627d98;background:#e5e7eb;border-color:#cbd5e1}.order-form button{min-height:52px;font-size:1rem;font-weight:800}.order-stats>div strong{font-variant-numeric:tabular-nums;font-size:1.35rem}.order-flow,.order-flow__section{gap:12px;display:grid}.order-flow{gap:14px}.order-flow__section{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;padding:14px}.order-flow__section h3{margin-bottom:2px}.order-flow__section .summary-grid>div{background:#fff}.order-flow__section--hub{background:#eef8f7;border-color:#b8d8d8}.order-flow__lanes{gap:12px;display:grid}.order-flow-grid,.order-hub-grid{grid-template-columns:1fr}.shared-state-section{gap:12px;display:grid}.shared-state-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;display:grid}.shared-state-card{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;gap:4px;padding:12px;display:grid}.shared-state-card span,.shared-state-card small{color:#627d98;font-size:.82rem;font-weight:700}.shared-state-card strong{color:#102a43;font-variant-numeric:tabular-nums;font-size:1.4rem}@media (width<=800px){.order-form{max-width:none}.order-form input{min-height:64px;font-size:1.85rem}.order-form button{width:100%;min-height:56px;font-size:1.05rem}.order-stats>div strong{font-size:1.5rem}}@media (width>=720px){.order-flow__lanes{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr)}.order-flow-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.teacher-session-card{align-items:stretch}.teacher-session-card__main{gap:12px;min-width:0;display:grid}.teacher-session-card__summary{margin-top:4px}.progress-meter{background:#edf2f7;border-radius:999px;height:10px;overflow:hidden}.progress-meter__bar{border-radius:inherit;background:#126b69;height:100%}.teacher-team-list{gap:8px;display:grid}.teacher-team-row{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.teacher-team-row div{gap:2px;min-width:0;display:grid}.teacher-team-row span{color:#627d98;white-space:nowrap;font-size:.85rem;font-weight:700}.teacher-session-card--compact p{margin:0}.session-list-card{align-items:stretch}.session-list-card__main{gap:8px;min-width:0;display:grid}.session-list-card__dates{color:#627d98;flex-wrap:wrap;gap:10px;font-size:.85rem;font-weight:700;display:flex}.session-list-card__actions{flex-wrap:wrap;place-content:flex-start flex-end;gap:8px;display:flex}.session-filter{color:#334e68;align-items:center;gap:8px;font-weight:700;display:flex}.session-filter select{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;min-height:38px;padding:0 10px}.session-run{grid-template-columns:minmax(360px,1.2fr) minmax(280px,.8fr);align-items:start;gap:18px;display:grid}.run-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.run-team-list{gap:12px;display:grid}.run-team-card{background:#fff;border:1px solid #d6dee8;border-radius:8px;gap:12px;padding:14px;display:grid}.run-team-card strong{color:#334e68}.player-chip-list{flex-wrap:wrap;gap:8px;display:flex}.player-chip{color:#52606d;background:#f8fafc;border:1px solid #d6dee8;border-radius:999px;align-items:center;min-height:30px;padding:0 10px;font-size:.82rem;font-weight:700;display:inline-flex}.player-chip--submitted{color:#0f5f60;background:#f0fbfa;border-color:#81c5c1}.management-grid{grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);align-items:start;gap:18px;display:grid}.management-grid__wide{grid-column:1/-1}.team-list,.student-picker,.assignment-result-list,.role-assignment,.team-editor{gap:12px;display:grid}.team-list-item{color:#243b53;cursor:pointer;text-align:left;background:#fff;border:1px solid #d6dee8;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.team-list-item:hover,.team-list-item--selected{background:#f0fbfa;border-color:#81c5c1}.team-list-item span:first-child{gap:4px;min-width:0;display:grid}.team-list-item small{color:#627d98;font-weight:700}.team-editor{grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr);align-items:start}.team-editor__settings{align-content:start}.checkbox-field{color:#334e68;align-items:center;gap:8px;font-weight:700;display:flex}.checkbox-field input{accent-color:#126b69;width:18px;height:18px}.role-assignment__header,.inline-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.role-assignment__header h3{margin:0}.role-assignment__header button{color:#fff;cursor:pointer;background:#126b69;border-radius:8px;min-height:38px;padding:0 14px;font-weight:700}.role-assignment__header button:disabled{cursor:not-allowed;background:#9fb3c8}.role-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;display:grid}.role-card{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;gap:8px;padding:12px;display:grid}.role-card select{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;width:100%;min-height:40px;padding:0 10px}.assignment-summary{margin-bottom:14px}.inline-actions{justify-content:flex-start;margin-bottom:14px}.inline-actions .button-link{cursor:pointer;border:0}.segmented-options{border:1px solid #d6dee8;border-radius:8px;flex-wrap:wrap;gap:10px;padding:10px 12px 12px;display:flex}.segmented-options legend{color:#52606d;padding:0 4px;font-size:.82rem;font-weight:700}.segmented-options label{align-items:center;gap:6px;margin:0;display:inline-flex}.student-picker{max-height:380px;padding-right:4px;overflow:auto}.student-list-scroll{max-height:520px;padding-right:4px;overflow:auto}.student-summary{margin-bottom:14px}.student-detail-grid{gap:16px;display:grid}.student-picker__item{background:#fff;border:1px solid #d6dee8;border-radius:8px;justify-content:flex-start;padding:10px 12px}.assignment-team{background:#fff;border:1px solid #d6dee8;border-radius:8px;padding:14px}.assignment-commit-button{cursor:pointer;border:0;margin-top:14px}.session-form,.form-section{gap:16px;display:grid}.form-section{margin-top:18px}.form-grid select,.number-grid input{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;width:100%;min-height:42px;padding:0 12px}.number-grid{grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;display:grid}.number-grid label{color:#334e68;gap:6px;font-weight:700;display:grid}.team-picker{grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;display:grid}.team-picker__item{background:#fff;border:1px solid #d6dee8;border-radius:8px;padding:10px 12px}.sharing-settings-list{gap:10px;display:grid}.sharing-settings-row{color:#334e68;background:#fff;border:1px solid #d6dee8;border-radius:8px;grid-template-columns:minmax(160px,1fr) minmax(180px,.8fr);align-items:center;gap:12px;padding:10px 12px;font-weight:700;display:grid}.sharing-settings-row select{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;width:100%;min-height:40px;padding:0 10px}.session-submit-button{cursor:pointer;border:0;width:fit-content}.file-import,.pattern-name-field{color:#334e68;gap:8px;font-weight:700;display:grid}.file-import input,.pattern-name-field input,.demand-week-cell input{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;width:100%;min-height:40px;padding:0 10px}.demand-summary{margin-bottom:14px}.demand-editor{gap:16px;display:grid}.demand-week-grid{grid-template-columns:repeat(7,minmax(92px,1fr));gap:10px;display:grid}.demand-week-cell{color:#334e68;background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;gap:6px;padding:10px;font-weight:700;display:grid}.demand-week-cell span{color:#627d98;font-size:.82rem}.csv-error-list{gap:8px;margin-bottom:14px;display:grid}.analysis-layout{gap:18px;display:grid}.analysis-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.role-cost-list{gap:10px;display:grid}.role-cost-row{color:#334e68;grid-template-columns:minmax(96px,.35fr) minmax(160px,1fr) minmax(96px,auto);align-items:center;gap:12px;font-weight:700;display:grid}.role-cost-row__meter{background:#edf2f7;border-radius:999px;height:12px;overflow:hidden}.role-cost-row__meter i{border-radius:inherit;background:#126b69;height:100%;display:block}.analysis-chart{gap:10px;display:grid}.analysis-chart svg{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;width:100%;min-height:220px}.analysis-chart line{stroke:#bcccdc;stroke-width:1px}.analysis-chart__labels,.analysis-legend{color:#627d98;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.85rem;font-weight:700;display:flex}.analysis-legend{justify-content:flex-start}.analysis-legend span{align-items:center;gap:6px;display:inline-flex}.analysis-legend i{border-radius:3px;width:12px;height:12px}.analysis-role-tabs{grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;display:grid}.analysis-filter-grid{grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;display:grid}.analysis-filter-grid label{color:#334e68;gap:6px;font-weight:700;display:grid}.analysis-filter-grid select{color:#102a43;background:#fff;border:1px solid #bcccdc;border-radius:8px;width:100%;min-height:42px;padding:0 12px}.analysis-role-tab{color:#334e68;cursor:pointer;text-align:left;background:#fff;border:1px solid #d6dee8;border-radius:8px;gap:4px;min-height:64px;padding:10px 12px;display:grid}.analysis-role-tab:hover,.analysis-role-tab--active{background:#f0fbfa;border-color:#81c5c1}.analysis-role-tab span{color:#627d98;font-size:.85rem;font-weight:700}.analysis-role-detail{gap:14px;display:grid}.analysis-role-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.analysis-table-wrap{border:1px solid #d6dee8;border-radius:8px;overflow-x:auto}.analysis-table{border-collapse:collapse;background:#fff;width:100%;min-width:820px}.analysis-table th,.analysis-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #d6dee8;padding:10px 12px}.analysis-table th{color:#334e68;background:#f8fafc;font-size:.82rem;font-weight:800}.analysis-table th:first-child,.analysis-table td:first-child{text-align:left}.analysis-table tbody tr:last-child td{border-bottom:0}.analysis-charts-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;display:grid}.analysis-chart-card{gap:8px;display:grid}.analysis-chart-card h4{color:#334e68;margin:0;font-size:.92rem;font-weight:800}.comparison-list{gap:12px;display:grid}.comparison-row{background:#f8fafc;border:1px solid #d6dee8;border-radius:8px;grid-template-columns:minmax(180px,.35fr) minmax(260px,1fr);gap:14px;padding:14px;display:grid}.comparison-row>div:first-child{align-content:start;gap:4px;display:grid}.comparison-row span{color:#627d98;font-size:.85rem;font-weight:700}.comparison-bars{grid-template-columns:72px minmax(120px,1fr) minmax(88px,auto);align-items:center;gap:8px;display:grid}.role-cost-row__meter--accent i{background:#b45309}.route-state{text-align:center;place-items:center;min-height:100vh;padding:24px;display:grid}@media (width<=800px){.topbar{padding:16px}.shell__body{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #d6dee8;border-right:0;flex-direction:row;overflow-x:auto}.sidebar__link{white-space:nowrap}.content{padding:18px}.page-header{display:block}.summary-grid,.management-grid,.session-run,.team-editor,.role-grid,.number-grid,.team-picker,.sharing-settings-row,.shared-state-grid,.demand-week-grid,.analysis-summary-grid,.analysis-filter-grid,.analysis-role-tabs,.analysis-role-stats,.comparison-row,.comparison-bars,.role-cost-row{grid-template-columns:1fr}.session-card,.team-overview,.member-row,.teacher-team-row{display:grid}.button-link{width:100%}}
