.tf-panel,.tf-fab,.tf-wait{--tf-text:#17233f;--tf-text-secondary:#4f5b73;--tf-text-placeholder:#6a7388;--tf-text-disabled:#8c94a6;--tf-border:#8a93a6;--tf-border-hover:#5f6980;--tf-border-subtle:#e3e7ee;--tf-surface:#fff;--tf-surface-subtle:#f5f7fa;--tf-surface-disabled:#f1f3f6;--tf-accent:#2463ff;--tf-accent-hover:#1b52e0;--tf-accent-active:#1645c2;--tf-accent-text:#1a4bd6;--tf-accent-subtle:#eef3ff;--tf-accent-border:#c9d8fd;--tf-focus-ring:0 0 0 3px #2463ff4d;--tf-danger:#c22f48;--tf-danger-subtle:#fdf2f4;--tf-danger-border:#f0c3cb;--tf-danger-ring:0 0 0 3px #c22f4838;--tf-warning:#9a5b00;--tf-radius:8px}.tf-header{margin-bottom:24px}.tf-title{color:var(--tf-text);margin:0;font-size:1.5rem;font-weight:700;line-height:1.25}.tf-subtitle{color:var(--tf-text-secondary);margin:4px 0 0;font-size:.9375rem;line-height:1.45}.tf-form{color:var(--tf-text);gap:24px;display:grid;container:tf-form/inline-size}.tf-section{border:0;min-width:0;margin:0;padding:0}.tf-section+.tf-section{border-top:1px solid var(--tf-border-subtle);padding-top:24px}.tf-legend{float:left;width:100%;color:var(--tf-text);margin:0 0 16px;padding:0;font-size:1rem;font-weight:700;line-height:1.4}.tf-legend+*{clear:both}.tf-stack{gap:20px;display:grid}.tf-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.tf-grid-location{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-grid-location .tf-field-building{grid-column:1/-1}@container tf-form (width>=540px){.tf-grid-location{grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,3fr)}.tf-grid-location .tf-field-building{grid-column:auto}.tf-grid-course{grid-template-columns:minmax(0,2fr) minmax(0,3fr)}}.tf-field{min-width:0}.tf-label{color:var(--tf-text);margin:0 0 6px;font-size:.875rem;font-weight:700;line-height:1.4;display:block}.tf-label-optional{color:var(--tf-text-secondary);font-weight:400}.tf-control{border:1px solid var(--tf-border);border-radius:var(--tf-radius);background-color:var(--tf-surface);width:100%;color:var(--tf-text);font:inherit;margin:0;font-size:1rem;line-height:1.5;transition:border-color .12s,box-shadow .12s,background-color .12s;display:block}.tf-control:hover{border-color:var(--tf-border-hover)}.tf-control:focus{border-color:var(--tf-accent);outline-offset:2px;box-shadow:var(--tf-focus-ring);outline:2px solid #0000}.tf-control[aria-invalid=true]{border-color:var(--tf-danger)}.tf-control[aria-invalid=true]:focus{box-shadow:var(--tf-danger-ring)}.tf-select{position:relative}.tf-select-control{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;appearance:none;height:44px;padding:0 40px 0 12px;overflow:hidden}.tf-select-control[data-empty=true]{color:var(--tf-text-placeholder)}.tf-select-control option{color:var(--tf-text)}.tf-select-chevron{color:var(--tf-text-secondary);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.tf-textarea{resize:vertical;min-height:104px;padding:10px 12px}.tf-textarea::placeholder{color:var(--tf-text-placeholder);opacity:1}.tf-control:disabled{border-color:var(--tf-border-subtle);background-color:var(--tf-surface-disabled);color:var(--tf-text-disabled);-webkit-text-fill-color:var(--tf-text-disabled);cursor:not-allowed;opacity:1}.tf-select-control:disabled+.tf-select-chevron{color:var(--tf-text-disabled)}.tf-message{color:var(--tf-text-secondary);align-items:flex-start;gap:6px;margin:6px 0 0;font-size:.8125rem;line-height:1.4;display:flex}.tf-message-error{color:var(--tf-danger);font-weight:700}.tf-message-icon{flex:none;margin-top:1px}.tf-wait{color:var(--tf-text-secondary);font-variant-numeric:tabular-nums;align-items:flex-start;gap:8px;margin:16px 0 0;font-size:.875rem;line-height:1.45;display:flex}.tf-wait-icon{flex:none;margin-top:2px}.tf-wait-value{color:var(--tf-text);font-weight:700}.tf-wait[data-kind=no-tutors]{color:var(--tf-text)}.tf-wait.tf-wait-ticket{margin-top:12px}.tf-notes-footer{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.tf-counter{color:var(--tf-text-secondary);font-variant-numeric:tabular-nums;flex:none;margin:6px 0 0;font-size:.8125rem;line-height:1.4}.tf-counter.is-near{color:var(--tf-warning)}.tf-counter.is-full{color:var(--tf-danger);font-weight:700}.tf-chips{flex-wrap:wrap;gap:8px;display:flex}.tf-chip{cursor:pointer;display:inline-flex;position:relative}.tf-chip-input{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute;top:0;left:0}.tf-chip-face{border:1px solid var(--tf-border);border-radius:var(--tf-radius);background:var(--tf-surface);min-height:40px;color:var(--tf-text);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:.9375rem;line-height:1.2;transition:border-color .12s,background-color .12s,color .12s;display:inline-flex}.tf-chip:hover .tf-chip-face{border-color:var(--tf-border-hover);background:var(--tf-surface-subtle)}.tf-chip-dot{border:1.5px solid var(--tf-border);background:var(--tf-surface);border-radius:50%;flex:none;width:16px;height:16px;position:relative}.tf-chip-input:checked+.tf-chip-face{border-color:var(--tf-accent);background:var(--tf-accent-subtle);color:var(--tf-accent-text);box-shadow:inset 0 0 0 1px var(--tf-accent)}.tf-chip-input:checked+.tf-chip-face .tf-chip-dot{border-color:var(--tf-accent)}.tf-chip-input:checked+.tf-chip-face .tf-chip-dot:after{content:"";background:var(--tf-accent);border-radius:50%;position:absolute;inset:3px}.tf-chip-input:focus-visible+.tf-chip-face{outline:2px solid var(--tf-accent);outline-offset:2px}@media (forced-colors:active){.tf-chip-input:checked+.tf-chip-face{outline-offset:-2px;outline:2px solid highlight}.tf-chip-input:checked+.tf-chip-face .tf-chip-dot:after{forced-color-adjust:none;background:highlight}}.tf-alert{border:1px solid var(--tf-danger-border);border-radius:var(--tf-radius);background:var(--tf-danger-subtle);align-items:flex-start;gap:10px;margin-bottom:16px;padding:12px 14px;display:flex}.tf-alert-icon{color:var(--tf-danger);flex:none;margin-top:1px}.tf-alert-title{color:var(--tf-text);margin:0;font-size:.9375rem;font-weight:700;line-height:1.4}.tf-alert-body{color:var(--tf-text-secondary);overflow-wrap:anywhere;margin:2px 0 0;font-size:.875rem;line-height:1.45}.tf-submit{border:1px solid var(--tf-accent);border-radius:var(--tf-radius);background:var(--tf-accent);color:#fff;width:100%;min-height:44px;font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:8px;margin:0;padding:0 20px;font-size:1rem;font-weight:700;line-height:1.25;transition:background-color .12s,border-color .12s;display:inline-flex}.tf-submit:hover:not(:disabled){border-color:var(--tf-accent-hover);background:var(--tf-accent-hover)}.tf-submit:active:not(:disabled){border-color:var(--tf-accent-active);background:var(--tf-accent-active)}.tf-submit:focus-visible{outline:2px solid var(--tf-accent);outline-offset:2px}.tf-submit:disabled{cursor:not-allowed;opacity:1}.tf-submit[data-state=submitting]{cursor:progress}.tf-submit[data-state=locked]{border-color:var(--tf-accent-border);background:var(--tf-accent-subtle);color:var(--tf-accent-text)}.tf-submit-icon{flex:none}.tf-spinner{flex:none;animation:.8s linear infinite tf-spin}@keyframes tf-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.tf-spinner{animation-duration:1.6s}.tf-control,.tf-chip-face,.tf-submit{transition:none}}.tf-summary{color:var(--tf-danger);align-items:flex-start;gap:8px;margin:12px 0 0;font-size:.875rem;font-weight:700;line-height:1.45;display:flex}.tf-footnote{color:var(--tf-text-secondary);margin:12px 0 0;font-size:.875rem;line-height:1.45}.tf-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.mobile-sheet.tf-panel{scroll-padding-top:72px;scroll-padding-bottom:16px}.mobile-sheet.tf-panel:focus{outline:none}.mobile-sheet.tf-panel .sheet-head{align-items:flex-start;min-height:56px;margin-top:-12px;padding:12px 0 4px;top:-12px}.sheet-close.tf-sheet-close{border:1px solid var(--tf-border-subtle);border-radius:var(--tf-radius);background:var(--tf-surface);width:40px;height:40px;color:var(--tf-text-secondary);justify-content:center;align-items:center;display:inline-flex;top:8px}.sheet-close.tf-sheet-close:hover{background:var(--tf-surface-subtle);color:var(--tf-text)}.sheet-close.tf-sheet-close:focus-visible{outline:2px solid var(--tf-accent);outline-offset:2px}.tf-header{margin-bottom:20px}.mobile-fab.tf-fab{background:var(--tf-accent);color:#fff;border:1px solid #fff3;border-radius:12px;gap:8px;min-height:48px;padding:0 20px;font-weight:700;animation:none;box-shadow:0 10px 28px #02081c73}.mobile-fab.tf-fab:hover{background:var(--tf-accent-hover)}.mobile-fab.tf-fab:active{background:var(--tf-accent-active)}.mobile-fab.tf-fab:focus-visible{outline-offset:3px;outline:2px solid #fff}.tf-fab-icon{flex:none}}.adm-icon{flex-shrink:0;display:block}.adm-button{min-height:40px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.9375rem;font-weight:600;line-height:1.25;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.adm-button:focus-visible,.adm-icon-button:focus-visible,.adm-link-button:focus-visible,.adm-menu-link:focus-visible{outline-offset:2px;outline:2px solid #2463ff}.adm-button-primary{color:#fff;background:#2463ff}.adm-button-primary:not([aria-disabled=true]):hover{background:#1d52d9}.adm-button-primary:not([aria-disabled=true]):active{background:#1843b3}.adm-button-secondary{color:#344054;background:#fff;border-color:#d0d5dd}.adm-button-secondary:not([aria-disabled=true]):hover{background:#f9fafb;border-color:#98a2b3}.adm-button-secondary:not([aria-disabled=true]):active{background:#f2f4f7}.adm-button-danger{color:#fff;background:#d92d20}.adm-button-danger:not([aria-disabled=true]):hover{background:#b42318}.adm-button-danger:not([aria-disabled=true]):active{background:#912018}.adm-button-primary[aria-disabled=true],.adm-button-danger[aria-disabled=true]{cursor:progress}.adm-button-secondary[aria-disabled=true],.adm-icon-button[aria-disabled=true],.adm-button:disabled{opacity:.55;cursor:not-allowed}.adm-link-button{color:inherit;font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;margin-left:auto;padding:0;font-weight:600;text-decoration:underline}.adm-icon-button{color:#667085;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:background-color .15s,color .15s,border-color .15s;display:inline-flex}.adm-icon-button:not([aria-disabled=true]):hover{color:#344054;background:#f2f4f7}.adm-icon-button.adm-delete-button:hover,.adm-icon-button.adm-delete-button:focus-visible{color:#d92d20;background:#fef3f2;border-color:#fecdca}.adm-icon-button.adm-delete-button:active{background:#fee4e2}.adm-record-main{min-width:0}.adm-you-badge{color:#344054;vertical-align:2px;background:#f9fafb;border:1px solid #d0d5dd;border-radius:999px;align-items:center;margin-left:8px;padding:1px 8px;font-size:.75rem;font-weight:600;line-height:1.5;display:inline-flex}@media (width<=860px){.admin-record-card.adm-has-delete{padding-right:60px;position:relative}.adm-has-delete .adm-delete-button{position:absolute;top:10px;right:10px}}.inline-admin-form.adm-labelled-form{align-items:end}.inline-admin-form.adm-room-form-grid{grid-template-columns:repeat(2,minmax(0,1fr)) auto}.adm-field{gap:6px;min-width:0;display:grid}.adm-field-label{color:#344054;font-size:.875rem;font-weight:600;line-height:1.4}@media (width<=860px){.inline-admin-form.location-form-grid,.inline-admin-form.table-form-grid,.inline-admin-form.adm-room-form-grid{grid-template-columns:1fr}}.adm-section-alert{margin-bottom:16px}.adm-menu-link{text-decoration:none;display:block}.adm-focus-target:focus{outline:none}.adm-notice-region{z-index:6;position:sticky;top:12px}.adm-notice{border:1px solid;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;margin-bottom:16px;padding:4px 4px 4px 16px;display:grid;box-shadow:0 1px 3px #10182814}.adm-notice-icon{padding-top:10px}.adm-notice-text{margin:0;padding:9px 0;font-size:.9375rem;line-height:1.5}.adm-notice-dismiss{color:inherit}.adm-notice-dismiss:not([aria-disabled=true]):hover{color:inherit;background:#1018280f}.adm-notice-success{color:#085d3a;background:#ecfdf3;border-color:#abefc6}.adm-notice-error{color:#912018;background:#fef3f2;border-color:#fecdca}.adm-notice-info{color:#194185;background:#eff8ff;border-color:#b2ddff}.adm-inline-alert{color:#912018;background:#fef3f2;border:1px solid #fecdca;border-radius:8px;align-items:flex-start;gap:8px;padding:12px;font-size:.875rem;line-height:1.45;display:flex}.adm-inline-alert .adm-icon{margin-top:1px}.adm-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite adm-spin;display:inline-block}@keyframes adm-spin{to{transform:rotate(360deg)}}.adm-dialog-backdrop{z-index:1000;background:#1018288f;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out adm-fade-in;display:flex;position:fixed;inset:0}.adm-dialog{color:#475467;text-align:left;background:#fff;border-radius:12px;outline:none;flex-direction:column;width:100%;max-width:440px;max-height:calc(100dvh - 32px);animation:.15s ease-out adm-dialog-in;display:flex;box-shadow:0 20px 24px -4px #1018281a,0 8px 8px -4px #1018280a}.adm-dialog-medium{max-width:560px}.adm-dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 12px 0 24px;display:flex}.adm-dialog-title{color:#101828;overflow-wrap:anywhere;margin:0;padding-top:8px;font-size:1.125rem;font-weight:600;line-height:1.4}.adm-dialog-body{gap:16px;padding:8px 24px 24px;display:grid;overflow-y:auto}.adm-dialog-description,.adm-dialog-text{color:#475467;margin:0;font-size:.9375rem;line-height:1.5}.adm-dialog-footer{border-top:1px solid #eaecf0;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.adm-dialog-loading{color:#475467;justify-content:center;align-items:center;gap:8px;min-height:96px;font-size:.9375rem;display:flex}@keyframes adm-fade-in{0%{opacity:0}}@keyframes adm-dialog-in{0%{opacity:0;transform:translateY(4px)scale(.98)}}@media (width<=480px){.adm-dialog-backdrop{align-items:flex-end}.adm-dialog-footer{flex-direction:column-reverse}.adm-dialog-footer .adm-button{white-space:normal;width:100%}}@media (prefers-reduced-motion:reduce){.adm-dialog-backdrop,.adm-dialog{animation:none}.adm-spinner{animation-duration:1.8s}}.adm-export-panel{max-width:640px}.adm-export-panel .admin-panel-copy{margin:0 0 24px;line-height:1.6}.adm-export-summary{border:1px solid #eaecf0;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid;overflow:hidden}.adm-export-summary>div{border-left:1px solid #eaecf0;padding:12px 16px}.adm-export-summary>div:first-child{border-left:0}.adm-export-summary dt{color:#667085;font-size:.8125rem;line-height:1.4}.adm-export-summary dd{color:#101828;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:1.25rem;font-weight:600;line-height:1.3}.adm-choice-group{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.adm-choice-legend{color:#344054;margin-bottom:8px;padding:0;font-size:.875rem;font-weight:600}.adm-choice-card{cursor:pointer;background:#fff;border:1px solid #d0d5dd;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:14px 16px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:grid}.adm-choice-card:hover{border-color:#98a2b3}.adm-choice-card input{accent-color:#2463ff;width:18px;height:18px;cursor:inherit;margin:2px 0 0}.adm-choice-card input:focus-visible{outline-offset:2px;outline:2px solid #2463ff}.adm-choice-card.is-selected{background:#f5f8ff;border-color:#2463ff;box-shadow:inset 0 0 0 1px #2463ff}.adm-choice-danger input{accent-color:#d92d20}.adm-choice-danger.is-selected{background:#fffbfa;border-color:#d92d20;box-shadow:inset 0 0 0 1px #d92d20}.adm-choice-group:disabled .adm-choice-card{opacity:.7;cursor:not-allowed}.adm-choice-copy{gap:2px;display:grid}.adm-choice-title{color:#101828;align-items:center;gap:6px;font-size:.9375rem;font-weight:600;line-height:1.4;display:inline-flex}.adm-choice-danger .adm-choice-title{color:#b42318}.adm-choice-text{color:#475467;font-size:.875rem;line-height:1.5}.adm-check-field{padding:4px 0 0}.adm-check{color:#101828;cursor:pointer;align-items:center;gap:10px;min-height:40px;font-size:.9375rem;font-weight:500;display:flex}.adm-check input{accent-color:#d92d20;cursor:pointer;width:18px;height:18px;margin:0}.adm-check input:focus-visible{outline-offset:2px;outline:2px solid #2463ff}.adm-check input[aria-invalid=true]{outline-offset:2px;outline:2px solid #d92d20}.adm-field-error{color:#b42318;margin:0 0 0 28px;font-size:.875rem;line-height:1.45}@media (width<=560px){.adm-export-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-export-summary>div:nth-child(3){border-left:0}.adm-export-summary>div:nth-child(n+3){border-top:1px solid #eaecf0}}.analytics-feedback-card.is-low{background:#fee4e2;border-color:#fda29b}.analytics-feedback-card.is-low .analytics-feedback-copy{color:#55160c}.adm-feedback-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.adm-feedback-flag{color:#b42318;align-items:center;gap:4px;font-size:.75rem;font-weight:700;display:inline-flex}.adm-accuracy-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px;display:grid}.adm-accuracy-stats>div{background:#fff;border:1px solid #e1e8f5;border-radius:12px;min-width:0;padding:14px 16px}.adm-accuracy-stats dt{color:#5f6c86;font-size:.8125rem;font-weight:600;line-height:1.4}.adm-accuracy-stats dd{color:#17233f;font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:1.375rem;font-weight:700;line-height:1.25}.adm-accuracy-stats dd.adm-accuracy-sentence{font-size:.9375rem;line-height:1.4}.adm-accuracy-hint{color:#5f6c86;margin-top:4px;font-size:.8125rem;font-weight:400;display:block}.adm-accuracy-trend-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.adm-accuracy-trend-head h4{color:#17233f;margin:0;font-size:.9375rem;font-weight:700}@media (width<=960px){.adm-accuracy-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.adm-accuracy-stats{grid-template-columns:minmax(0,1fr)}}:root{--chart-series:#2a78d6;--chart-series-strong:#256abf;--chart-series-wash:#2a78d61a;--chart-ink:#0b0b0b;--chart-ink-2:#52514e;--chart-grid:#e6e5e1;--chart-axis:#c9c8c3;--chart-surface:#fff;--chart-subtle:#f7f7f5;--chart-hover:#f3f3f0;--chart-empty-cell:#efeeeb;--chart-focus:#2a78d6;--chart-positive:#006300;--chart-negative:#b42318}.chart-seq-1{--chart-seq:#cde2fb}.chart-seq-2{--chart-seq:#9ec5f4}.chart-seq-3{--chart-seq:#6da7ec}.chart-seq-4{--chart-seq:#3987e5}.chart-seq-5{--chart-seq:#256abf}.chart-seq-6{--chart-seq:#184f95}.chart-seq-7{--chart-seq:#0d366b}.chart-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chart-icon{flex:none;display:block}.chart-card{border:1px solid var(--chart-grid);background:var(--chart-surface);min-width:0;color:var(--chart-ink-2);border-radius:12px;flex-direction:column;gap:16px;padding:20px;display:flex;container-type:inline-size}.chart-card-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px 16px;display:flex}.chart-card-heading{flex:200px;min-width:0}.chart-card-title{color:var(--chart-ink);margin:0;font-size:.9375rem;font-weight:600;line-height:1.4}.chart-card-description{color:var(--chart-ink-2);margin:2px 0 0;font-size:.8125rem;line-height:1.45}.chart-card-actions{flex:none;align-items:center;gap:8px;max-width:100%;display:flex}.chart-card-body{flex:auto;min-width:0}.chart-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;margin-top:auto;display:flex}.chart-card-footnote{color:var(--chart-ink-2);flex:220px;margin:0;font-size:.8125rem;line-height:1.45}.chart-view-toggle{min-height:40px;color:var(--chart-ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;margin-right:-10px;padding:0 10px;font-size:.8125rem;font-weight:600;display:inline-flex}.chart-view-toggle:hover{background:var(--chart-hover);color:var(--chart-ink)}.chart-view-toggle:active{background:var(--chart-empty-cell)}.chart-view-toggle:focus-visible,.chart-plot:focus-visible,.chart-table-scroll:focus-visible{outline:2px solid var(--chart-focus);outline-offset:2px}.chart-empty{background:var(--chart-subtle);color:var(--chart-ink-2);text-align:center;border-radius:8px;margin:0;padding:32px 16px;font-size:.875rem}.chart-plot{border-radius:4px;outline:none;width:100%;min-width:0;position:relative}.chart-plot:focus-visible{outline-offset:4px}.chart-svg{-webkit-user-select:none;user-select:none;display:block;overflow:visible}.chart-svg.is-scrubbable,.chart-heatmap .chart-svg{touch-action:pan-y}.chart-svg text{fill:var(--chart-ink-2);font-family:inherit;font-size:12px}.chart-tick-label{font-variant-numeric:tabular-nums}.chart-gridline{stroke:var(--chart-grid);stroke-width:1px;shape-rendering:crispedges}.chart-baseline{stroke:var(--chart-axis);stroke-width:1px;shape-rendering:crispedges}.chart-slot-highlight{fill:var(--chart-hover)}.chart-bar{fill:var(--chart-series)}.chart-bar.is-active{fill:var(--chart-series-strong)}.chart-line{fill:none;stroke:var(--chart-series);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.chart-area{fill:var(--chart-series-wash)}.chart-crosshair{stroke:var(--chart-axis);stroke-width:1px;shape-rendering:crispedges}.chart-marker{fill:var(--chart-series);stroke:var(--chart-surface);stroke-width:2px}.chart-hit-area{fill:#0000}.chart-cell{fill:var(--chart-seq,var(--chart-empty-cell))}.chart-cell.is-empty{fill:var(--chart-empty-cell)}.chart-cell-outline{fill:none;stroke:var(--chart-ink);stroke-width:1.5px}.chart-tooltip{z-index:5;border:1px solid var(--chart-grid);background:var(--chart-surface);width:max-content;max-width:min(260px,100%);color:var(--chart-ink-2);pointer-events:none;border-radius:8px;padding:8px 10px;font-size:.8125rem;line-height:1.35;position:absolute;box-shadow:0 6px 20px #0b0b0b1f}.chart-tooltip-title{color:var(--chart-ink-2);margin-bottom:4px}.chart-tooltip-row{white-space:nowrap;align-items:center;gap:8px;display:flex}.chart-tooltip-key{background:var(--chart-series);border-radius:1px;flex:none;width:12px;height:2px}.chart-tooltip-key.is-blank{background:0 0}.chart-tooltip-value{color:var(--chart-ink);font-variant-numeric:tabular-nums;font-weight:600}.chart-heatmap{gap:12px;display:grid}.chart-scale-legend{color:var(--chart-ink-2);flex-wrap:wrap;align-items:center;gap:8px;font-size:.75rem;display:flex}.chart-scale-ramp{gap:2px;display:inline-flex}.chart-scale-swatch{background:var(--chart-seq,var(--chart-empty-cell));border-radius:2px;width:16px;height:10px;display:inline-block}.chart-scale-label{font-variant-numeric:tabular-nums}.chart-hbar{position:relative}.chart-hbar-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.chart-hbar-row{border-radius:6px;grid-template-columns:minmax(84px,36%) minmax(0,1fr) auto;align-items:center;gap:12px;min-height:34px;margin:0 -8px;padding:4px 8px;display:grid}.chart-hbar-row.is-active{background:var(--chart-hover)}.chart-hbar-label{min-width:0;color:var(--chart-ink);overflow-wrap:anywhere;font-size:.8125rem;line-height:1.3}.chart-hbar-track{border-left:1px solid var(--chart-axis);height:12px;display:block}.chart-hbar-fill{background:var(--chart-series);border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.chart-hbar-row.is-active .chart-hbar-fill{background:var(--chart-series-strong)}.chart-hbar-value{color:var(--chart-ink);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:.8125rem;font-weight:600}.chart-hbar-detail{color:var(--chart-ink-2);margin-left:8px;font-weight:400}@container (width<=360px){.chart-hbar-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding-top:6px;padding-bottom:6px}.chart-hbar-track{grid-area:2/1/auto/-1}}.chart-hbar.is-compact .chart-hbar-list{gap:0}.chart-hbar.is-compact .chart-hbar-row{grid-template-columns:3.75rem minmax(0,1fr) 2.75rem;gap:10px;min-height:28px;padding-top:2px;padding-bottom:2px}.chart-hbar.is-compact .chart-hbar-track{grid-area:auto;height:8px}.chart-hbar.is-compact .chart-hbar-label{color:var(--chart-ink-2);white-space:nowrap}@supports (grid-template-columns:subgrid){.chart-hbar-list{grid-template-columns:minmax(84px,36%) minmax(0,1fr) auto}.chart-hbar-row{grid-column:1/-1;grid-template-columns:subgrid}.chart-hbar.is-compact .chart-hbar-list{grid-template-columns:3.75rem minmax(0,1fr) 2.75rem}.chart-hbar.is-compact .chart-hbar-row{grid-template-columns:subgrid}@container (width<=360px){.chart-hbar-list{grid-template-columns:minmax(0,1fr) auto}.chart-hbar.is-compact .chart-hbar-list{grid-template-columns:3.75rem minmax(0,1fr) 2.75rem}}}.chart-stat-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;display:grid}.chart-stat{border:1px solid var(--chart-grid);background:var(--chart-surface);border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:16px;display:flex}.chart-stat dt,.chart-stat dd{margin:0}.chart-stat-label{color:var(--chart-ink-2);font-size:.8125rem;font-weight:500}.chart-stat-value{color:var(--chart-ink);letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1.75rem;font-weight:600;line-height:1.15}.chart-stat-delta{flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:.8125rem;line-height:1.4;display:flex}.chart-stat-delta-change{color:var(--chart-ink);align-items:center;gap:2px;font-weight:600;display:inline-flex}.chart-stat-delta.is-positive .chart-stat-delta-change{color:var(--chart-positive)}.chart-stat-delta.is-negative .chart-stat-delta-change{color:var(--chart-negative)}.chart-stat-delta-context,.chart-stat-caption{color:var(--chart-ink-2);font-size:.8125rem}.chart-segmented{background:var(--chart-empty-cell);border-radius:10px;gap:2px;max-width:100%;padding:2px;display:inline-flex}.chart-segment{min-width:64px;min-height:40px;color:var(--chart-ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 14px;font-size:.8125rem;font-weight:600}.chart-segment:hover{color:var(--chart-ink)}.chart-segment.is-selected{background:var(--chart-surface);color:var(--chart-ink);box-shadow:0 1px 2px #0b0b0b1a,0 0 0 1px #0b0b0b0f}.chart-segment:focus-visible{outline:2px solid var(--chart-focus);outline-offset:1px}.chart-table-scroll{border:1px solid var(--chart-grid);border-radius:8px;max-height:360px;overflow:auto}.chart-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.8125rem}.chart-table th,.chart-table td{border-bottom:1px solid var(--chart-grid);color:var(--chart-ink);text-align:left;white-space:nowrap;padding:8px 12px}.chart-table thead th{z-index:1;background:var(--chart-subtle);color:var(--chart-ink-2);font-weight:600;position:sticky;top:0}.chart-table tbody th{font-weight:500}.chart-table tbody tr:last-child>*{border-bottom:0}.chart-table .is-numeric{text-align:right;font-variant-numeric:tabular-nums}@media (width<=480px){.chart-card{padding:16px}.chart-stat{padding:12px}.chart-stat-value{font-size:1.375rem}}@media (forced-colors:active){.chart-bar,.chart-marker{fill:canvastext}.chart-line{stroke:canvastext}.chart-hbar-fill{background:canvastext}}.tm-root{--tm-ink:#0b0b0b;--tm-ink-2:#52514e;--tm-placeholder:#6b6a66;--tm-border:#e6e5e1;--tm-border-strong:#d4d3cd;--tm-surface:#fff;--tm-subtle:#f7f7f5;--tm-row-hover:#fafaf8;--tm-pressed:#efeeeb;--tm-accent:#2a78d6;--tm-accent-ink:#1c5cab;--tm-focus:#2a78d6;--tm-good:#1f9d55;--tm-danger:#b42318;--tm-danger-ink:#7a271a;--tm-danger-bg:#fef6f5;--tm-danger-border:#f1c4bf;--tm-star:#3b3a37;--tm-star-empty:#b9b8b2;min-width:0;color:var(--tm-ink-2);font-size:.875rem;line-height:1.5;container:tm/inline-size}.tm-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tm-icon{flex:none;display:block}.tm-view{gap:24px;min-width:0;display:grid}.tm-content{gap:16px;min-width:0;transition:opacity .15s;display:grid}.tm-content.is-refreshing{opacity:.55}.tm-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;display:flex}.tm-header-text{flex:320px;min-width:0}.tm-title{color:var(--tm-ink);letter-spacing:-.01em;overflow-wrap:anywhere;outline:none;margin:0;font-size:1.375rem;font-weight:600;line-height:1.3}.tm-title:focus-visible,.tm-state-title:focus-visible{outline:2px solid var(--tm-focus);outline-offset:4px;border-radius:4px}.tm-subtitle{color:var(--tm-ink-2);margin:4px 0 0}.tm-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 16px;display:flex}.tm-meta{color:var(--tm-ink-2);margin:0;font-size:.8125rem}.tm-detail-email{color:var(--tm-ink-2);overflow-wrap:anywhere;margin:2px 0 0}.tm-detail-tags{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 8px;display:flex}.tm-button{border:1px solid var(--tm-border-strong);background:var(--tm-surface);min-height:40px;color:var(--tm-ink);font:inherit;white-space:nowrap;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:.875rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;box-shadow:0 1px 1px #0b0b0b0a}.tm-button:hover{background:var(--tm-subtle)}.tm-button:active{background:var(--tm-pressed)}.tm-button:focus-visible,.tm-back-link:focus-visible,.tm-link-button:focus-visible,.tm-row-link:focus-visible,.tm-table-scroll:focus-visible{outline:2px solid var(--tm-focus);outline-offset:2px}.tm-button:disabled{opacity:.55;cursor:not-allowed}.tm-button.is-refreshing{opacity:1;color:var(--tm-ink-2);cursor:default}.tm-button.is-refreshing:hover,.tm-button.is-refreshing:active{background:var(--tm-surface)}.tm-button.is-refreshing .tm-icon{animation:.9s linear infinite tm-spin}@keyframes tm-spin{to{transform:rotate(360deg)}}.tm-back-link{min-height:40px;color:var(--tm-ink-2);border-radius:8px;justify-self:start;align-items:center;gap:4px;margin:0 0 -12px -8px;padding:0 10px 0 6px;font-weight:600;display:inline-flex}.tm-back-link:hover{background:var(--tm-subtle);color:var(--tm-ink)}.tm-link-button{min-height:40px;color:var(--tm-accent-ink);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;border-radius:6px;margin-left:4px;padding:0 8px;font-weight:600;text-decoration:underline}.tm-alert{border:1px solid var(--tm-danger-border);background:var(--tm-danger-bg);color:var(--tm-danger-ink);border-radius:8px;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.tm-alert>.tm-icon{color:var(--tm-danger);margin-top:1px}.tm-alert-body{flex:auto;min-width:0}.tm-alert-title{margin:0;font-weight:600}.tm-alert-message{margin:2px 0 0}.tm-alert .tm-button{flex:none;align-self:center}.tm-state{border:1px solid var(--tm-border);background:var(--tm-subtle);text-align:center;border-radius:12px;justify-items:center;gap:8px;padding:48px 24px;display:grid}.tm-state-icon{border:1px solid var(--tm-border);background:var(--tm-surface);width:48px;height:48px;color:var(--tm-ink-2);border-radius:12px;justify-content:center;align-items:center;margin-bottom:4px;display:inline-flex}.tm-state-title{color:var(--tm-ink);margin:0;font-size:1rem;font-weight:600}.tm-state-copy{max-width:46ch;color:var(--tm-ink-2);margin:0 0 8px}.tm-skeleton{background:#ecebe7;border-radius:4px;max-width:100%;animation:1.4s ease-in-out infinite tm-pulse;display:block}@keyframes tm-pulse{50%{opacity:.5}}.tm-skeleton-stack{gap:8px;display:grid}.tm-skeleton-table{border:1px solid var(--tm-border);border-radius:12px;overflow:hidden}.tm-skeleton-row{border-top:1px solid var(--tm-border);justify-content:space-between;align-items:center;gap:24px;padding:16px;display:flex}.tm-skeleton-row.is-head{background:var(--tm-subtle);border-top:0;padding:14px 16px}.tm-skeleton-row>.tm-skeleton-stack{flex:0 0 30%}.tm-detail-skeleton{gap:16px;display:grid}.tm-skeleton-card{border:1px solid var(--tm-border);border-radius:12px;gap:12px;padding:16px;display:grid}.tm-skeleton-card.is-chart{gap:20px;padding:20px}.tm-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 16px;display:flex}.tm-field{gap:6px;min-width:0;display:grid}.tm-search-field{flex:0 340px}.tm-label{color:var(--tm-ink);font-size:.8125rem;font-weight:600}.tm-input-wrap{align-items:center;display:flex;position:relative}.tm-input-wrap>.tm-icon{color:var(--tm-ink-2);pointer-events:none;position:absolute;left:12px}.tm-input{border:1px solid var(--tm-border-strong);background:var(--tm-surface);width:100%;min-height:40px;color:var(--tm-ink);font:inherit;border-radius:8px;padding:0 12px 0 36px;font-size:.875rem}.tm-input::placeholder{color:var(--tm-placeholder)}.tm-input:hover{border-color:#b9b8b2}.tm-input:focus{border-color:var(--tm-focus);outline:none;box-shadow:0 0 0 3px #2a78d633}.tm-count{color:var(--tm-ink-2);margin:0;padding-bottom:10px;font-size:.8125rem}.tm-table-scroll{border:1px solid var(--tm-border);background:var(--tm-surface);border-radius:12px;min-width:0;overflow-x:auto}.tm-table{border-collapse:separate;border-spacing:0;width:100%;color:var(--tm-ink);font-size:.875rem}.tm-table th,.tm-table td{border-bottom:1px solid var(--tm-border);text-align:left;vertical-align:middle;padding:12px 16px}.tm-table thead th{background:var(--tm-subtle);color:var(--tm-ink-2);white-space:nowrap;padding-top:10px;padding-bottom:10px;font-size:.8125rem;font-weight:600}.tm-table tbody tr:last-child>*{border-bottom:0}.tm-table .is-numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tm-table .is-strong{font-weight:600}.tm-table .is-muted,.tm-cell-muted{color:var(--tm-ink-2)}.tm-nowrap{white-space:nowrap}.tm-roster{font-size:.8125rem}.tm-roster th,.tm-roster td{padding-left:12px;padding-right:12px}.tm-roster thead th{vertical-align:bottom;padding:0}.tm-roster .tm-group-head{border-bottom:1px solid var(--tm-border);text-align:center;padding:8px 12px 6px}.tm-roster col.tm-col-tutor{width:30%}.tm-sort-button{width:100%;min-height:40px;color:inherit;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0 12px;font-weight:600;display:inline-flex}.tm-roster th.is-numeric .tm-sort-button{flex-direction:row-reverse;justify-content:flex-start}.tm-roster .tm-wrap-head .tm-sort-button{text-align:right;white-space:normal;line-height:1.2}.tm-roster .tm-wrap-head .tm-sort-button>span{max-width:4.5em}.tm-sort-button .tm-icon{color:#a3a29c}.tm-sort-button:hover,.tm-sort-button.is-sorted,.tm-sort-button.is-sorted .tm-icon{color:var(--tm-ink)}.tm-sort-button:focus-visible{outline:2px solid var(--tm-focus);outline-offset:-2px;border-radius:6px}.tm-row{cursor:pointer}.tm-row>*{background:var(--tm-surface)}.tm-row:hover>*{background:var(--tm-row-hover)}.tm-row:focus-within>*{background:#f4f8fd}.tm-roster thead tr:first-child th:first-child,.tm-roster tbody th{z-index:1;box-shadow:inset -1px 0 0 var(--tm-border);position:sticky;left:0}.tm-cell-tutor{min-width:160px;max-width:260px;font-weight:400}.tm-cell-stack{justify-items:start;gap:4px;display:grid}.tm-row-link{color:var(--tm-ink);overflow-wrap:anywhere;border-radius:4px;font-size:.875rem;font-weight:600}.tm-row-link:hover{text-underline-offset:2px;text-decoration:underline}.tm-cell-sub{color:var(--tm-ink-2);overflow-wrap:anywhere;margin-top:2px;font-size:.8125rem;display:block}.tm-table-empty{color:var(--tm-ink-2);text-align:center;padding:32px 16px}.tm-badge{min-height:22px;color:var(--tm-ink-2);white-space:nowrap;background:#f1f0ed;border-radius:6px;align-items:center;padding:0 8px;font-size:.75rem;font-weight:600;display:inline-flex}.tm-badge.is-active{color:#1d6b3a;background:#e8f3ec}.tm-badge.is-info{color:var(--tm-accent-ink);background:#e8f1fc}.tm-presence{color:var(--tm-ink-2);white-space:nowrap;align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.tm-presence-dot{background:#b5b4ae;border-radius:50%;width:8px;height:8px}.tm-presence.is-online{color:var(--tm-ink)}.tm-presence.is-online .tm-presence-dot{background:var(--tm-good);box-shadow:0 0 0 2px #dff3e6}.tm-outcome{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.tm-outcome:before{content:"";background:#b5b4ae;border-radius:50%;flex:none;width:6px;height:6px}.tm-outcome.is-good:before{background:var(--tm-good)}.tm-outcome.is-info:before{background:var(--tm-accent)}.tm-root .tm-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.tm-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;min-width:0;display:grid}.tm-span-2{grid-column:1/-1}.tm-inline-stats{border-top:1px solid var(--tm-border);border-bottom:1px solid var(--tm-border);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:12px 0;display:grid}.tm-inline-stats>div{min-width:0}.tm-inline-stats dt{color:var(--tm-ink-2);font-size:.8125rem}.tm-inline-stats dd{color:var(--tm-ink);margin:2px 0 0;font-size:1.125rem;font-weight:600}.tm-rating-summary{border-bottom:1px solid var(--tm-border);flex-wrap:wrap;align-items:center;gap:4px 16px;padding-bottom:12px;display:flex}.tm-rating-value{color:var(--tm-ink);margin:0;font-size:1.75rem;font-weight:600;line-height:1.1}.tm-rating-scale{color:var(--tm-ink-2);font-size:.875rem;font-weight:400}.tm-rating-meta{color:var(--tm-ink-2);margin:0;font-size:.8125rem;display:grid}.tm-feedback-summary{border-bottom:1px solid var(--tm-border);grid-template-columns:minmax(0,3fr) minmax(240px,2fr);align-items:start;gap:16px 24px;padding-bottom:16px;display:grid}.tm-root .tm-feedback-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.tm-root .tm-feedback-stats .chart-stat{border:0;border-radius:0;padding:0}.tm-feedback-average{flex-wrap:wrap;align-items:center;gap:4px 12px;display:inline-flex}.tm-feedback-distribution{border-left:1px solid var(--tm-border);min-width:0;padding-left:24px}.tm-feedback-slider{gap:10px;min-width:0;display:grid}.tm-feedback-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:36px;display:flex}.tm-feedback-position{color:var(--tm-ink-2);font-variant-numeric:tabular-nums;margin:0;font-size:.8125rem}.tm-feedback-nav{gap:8px;display:inline-flex}.tm-feedback-nav-button{border:1px solid var(--tm-border);background:var(--tm-surface);width:36px;height:36px;color:var(--tm-ink);cursor:pointer;border-radius:8px;place-items:center;padding:0;display:inline-grid}.tm-feedback-nav-button:hover{background:var(--tm-subtle)}.tm-feedback-nav-button:active{background:var(--tm-pressed)}.tm-feedback-nav-button:focus-visible{outline:2px solid var(--tm-focus);outline-offset:2px}.tm-feedback-nav-button[aria-disabled=true]{color:var(--tm-ink-2);background:var(--tm-surface);opacity:.45;cursor:default}.tm-feedback-track{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:10px;min-width:0;position:relative;overflow-x:auto}.tm-feedback-track::-webkit-scrollbar{display:none}.tm-feedback-track:focus-visible{outline:2px solid var(--tm-focus);outline-offset:2px}.tm-feedback-list{align-items:stretch;gap:12px;margin:0;padding:0;list-style:none;display:flex}.tm-feedback-item{border:1px solid var(--tm-border);background:var(--tm-surface);scroll-snap-align:start;border-radius:10px;flex-direction:column;flex:0 0 min(300px,86%);align-items:flex-start;gap:8px;min-width:0;padding:14px 16px;display:flex}.tm-feedback-item-head{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.tm-feedback-item.is-low{background:#fee4e2;border-color:#fda29b}.tm-feedback-item.is-low .tm-feedback-meta{color:var(--tm-danger-ink)}.tm-feedback-flag{color:var(--tm-danger);flex:none;align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:inline-flex}.tm-feedback-flag .tm-icon{width:14px;height:14px}.tm-feedback-comment{color:var(--tm-ink);white-space:pre-line;overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.55}.tm-feedback-comment.is-empty{color:var(--tm-ink-2)}.tm-feedback-meta{color:var(--tm-ink-2);overflow-wrap:anywhere;margin:auto 0 0;font-size:.8125rem}.tm-stars{vertical-align:middle;flex:none;gap:2px;display:inline-flex}.tm-star{color:var(--tm-star-empty);display:block;position:relative}.tm-star-fill{color:var(--tm-star);position:absolute;top:0;bottom:0;left:0;overflow:hidden}.tm-card{border:1px solid var(--tm-border);background:var(--tm-surface);border-radius:12px;gap:16px;min-width:0;padding:20px;display:grid}.tm-card-title{color:var(--tm-ink);margin:0;font-size:.9375rem;font-weight:600;line-height:1.4}.tm-card-description{color:var(--tm-ink-2);margin:2px 0 0;font-size:.8125rem}.tm-card .tm-table-scroll{border-radius:8px}.tm-recent{min-width:860px}.tm-recent th,.tm-recent td{padding-top:10px;padding-bottom:10px}@container tm (width<=760px){.tm-grid{grid-template-columns:minmax(0,1fr)}}@container tm (width<=640px){.tm-root .tm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-feedback-summary{grid-template-columns:minmax(0,1fr)}.tm-feedback-distribution{border-top:1px solid var(--tm-border);border-left:0;padding:12px 0 0}}@container tm (width<=480px){.tm-view{gap:20px}.tm-title{font-size:1.25rem}.tm-header-actions{justify-content:flex-start}.tm-search-field{flex-basis:100%}.tm-alert{flex-wrap:wrap}.tm-alert .tm-button{margin-left:30px}.tm-card{padding:16px}.tm-inline-stats dd{font-size:1rem}.tm-skeleton-row>.tm-skeleton:nth-child(n+3){display:none}}@media (prefers-reduced-motion:reduce){.tm-skeleton,.tm-button.is-refreshing .tm-icon{animation:none}.tm-content{transition:none}}:root{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand-blue:#1f5eff;--brand-blue-deep:#0e2e86;--brand-blue-dark:#07173f;--text-soft:#ffffffc7;--border-soft:#ffffff24;--panel-bg:#0a163b99;--panel-shadow:0 30px 80px #00000042;background:#0b1b47;font-family:Arial,Helvetica,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}body{background:radial-gradient(circle at 0 0,#3e7aff40,#0000 28%),radial-gradient(circle at 100% 100%,#1657ff3d,#0000 24%),linear-gradient(135deg,#08132e 0%,#0f1f57 50%,#143490 100%);min-height:100vh}a{color:inherit;text-decoration:none}button{font:inherit}code{font-family:Consolas,Monaco,Courier New,monospace;font-size:.92em}.brand-bar{z-index:2;color:#fff;letter-spacing:.4px;padding:28px 36px;font-size:4rem;font-weight:800;position:relative}.content-wrap{z-index:2;grid-template-columns:1.25fr .9fr;align-items:stretch;gap:28px;width:min(1220px,100% - 48px);margin:0 auto;padding:24px 0 48px;display:grid;position:relative}.unauthorized-layout{grid-template-columns:1fr;max-width:860px}.glass-card{background:var(--panel-bg);border:1px solid var(--border-soft);box-shadow:var(--panel-shadow);-webkit-backdrop-filter:blur(16px);border-radius:28px;position:relative}.hero-panel{flex-direction:column;justify-content:center;min-height:580px;padding:42px;display:flex}.hero-panel h1,.unauthorized-panel h1,.login-panel h2,.dashboard-header h1{margin:0}.hero-panel h1{max-width:10ch;margin-top:16px;font-size:clamp(2.3rem,5vw,4.4rem);line-height:1.06}.hero-panel p,.panel-copy,.mini-copy{color:var(--text-soft)}.panel-copy{max-width:60ch;font-size:1.03rem}.mini-copy{margin:10px 0 0;font-size:.92rem}.login-panel{flex-direction:column;justify-content:center;min-height:580px;padding:38px 34px;display:flex}.unauthorized-panel{flex-direction:column;justify-content:center;min-height:460px;padding:48px 40px;display:flex}.panel-accent{background:linear-gradient(90deg,#7ea7ff 0%,#fff 100%);border-radius:999px;width:74px;height:8px;margin-bottom:22px}.chip,.eyebrow,.dashboard-role-badge{color:#ffffffeb;letter-spacing:.2px;background:#ffffff0f;border:1px solid #ffffff2e;border-radius:999px;align-self:flex-start;align-items:center;padding:8px 14px;font-size:.88rem;font-weight:700;display:inline-flex}.feature-row{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;display:grid}.feature-box{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:20px;padding:18px}.feature-box strong{margin-top:8px;font-size:1rem;display:block}.feature-label,.dashboard-panel-label,.dashboard-user-label{color:#ffffffb8;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;display:block}.primary-button,.secondary-button{cursor:pointer;border-radius:16px;justify-content:center;align-items:center;min-height:56px;padding:0 22px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.primary-button{color:#0c1c4f;background:linear-gradient(135deg,#fff 0%,#dfe8ff 100%);border:none;margin-top:18px;box-shadow:0 18px 40px #0c1c4f4d}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.secondary-button{color:#fff;background:#ffffff0f;border:1px solid #ffffff2e}.subtle-text{color:#ffffffa3;margin-top:16px;font-size:.94rem}.status-code{letter-spacing:-.04em;color:#fffffff0;margin-bottom:18px;font-size:clamp(4rem,10vw,7rem);font-weight:900;line-height:1}.unauthorized-actions{flex-wrap:wrap;gap:14px;margin-top:24px;display:flex}.link-button{text-decoration:none}.notice-box{color:#ffffffe6;background:#ffffff14;border:1px solid #ffffff1f;border-radius:16px;margin-top:18px;padding:14px 16px}.screen-loader{background:linear-gradient(135deg,#08132e 0%,#0f1f57 50%,#143490 100%);justify-content:center;align-items:center;min-height:100vh;font-size:1.1rem;font-weight:700;display:flex}.dashboard-shell{background:radial-gradient(circle at 0 0,#3e7aff2e,#0000 32%),linear-gradient(135deg,#08132e 0%,#0f1f57 50%,#143490 100%);min-height:100vh;padding:32px}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;display:flex}.dashboard-brand{margin-bottom:12px;font-size:1.8rem;font-weight:800;display:inline-block}.dashboard-copy{max-width:58ch;color:var(--text-soft)}.dashboard-user-card,.dashboard-panel{background:#061231a8;border:1px solid #ffffff1f;border-radius:24px;padding:22px;box-shadow:0 20px 60px #00000038}.dashboard-user-card{flex-direction:column;gap:8px;min-width:300px;display:flex}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.endpoint-list{margin:14px 0 0;padding-left:20px}.endpoint-list li{color:#ffffffe6;margin-bottom:10px}@media (width<=980px){.content-wrap,.feature-row,.dashboard-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column}.dashboard-user-card{width:100%;min-width:0}}@media (width<=640px){.brand-bar,.dashboard-shell{padding-left:20px;padding-right:20px}.content-wrap{width:min(100% - 24px,1220px)}.hero-panel,.login-panel,.unauthorized-panel{padding:28px 22px}}.screen-loader{color:#fff;justify-content:center;align-items:center;min-height:100vh;font-size:1.1rem;display:flex}.dashboard-screen{min-height:100vh;padding:24px 28px 40px}.app-topbar{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:44px;display:flex}.app-brand{color:#fff;font-size:3rem;font-weight:800}.app-page-title{color:#fff;align-items:center;margin:10px 0 8px;font-size:2rem;display:flex}.app-page-subtitle{color:#ffffffc7;max-width:720px;margin:0}.queue-launch-button{background:#ffffff1f;border:1px solid #ffffff29;border-radius:18px;justify-content:center;align-items:center;width:54px;height:54px;display:inline-flex;box-shadow:0 18px 40px #00000038}.queue-launch-icon{color:#fff;font-size:1.5rem}.student-dashboard-grid{grid-template-columns:1.05fr .95fr;align-items:start;gap:24px;display:grid}.dashboard-card{color:#3c465f;background:#fff;border-radius:26px;padding:24px;box-shadow:0 28px 60px #030f2d38}.role-placeholder-card{max-width:980px}.card-eyebrow{color:#5b6f9d;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:.78rem;font-weight:700;display:inline-block}.card-heading-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.card-heading-row h2{color:#17233f;margin:0}.ticket-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field-block{flex-direction:column;gap:8px;display:flex}.field-block-wide{grid-column:1/-1}.field-block span{color:#4f5c7a;font-size:.92rem;font-weight:700}.field-block select,.field-block input,.field-block textarea{color:#384155;width:100%;font:inherit;background:#fff;border:1px solid #d6dceb;border-radius:16px;outline:none;padding:14px 16px}.field-block textarea{resize:vertical;min-height:132px}.field-block select:focus,.field-block input:focus,.field-block textarea:focus{border-color:#2d67ff;box-shadow:0 0 0 4px #2d67ff1f}.help-button{color:#fff;cursor:pointer;background:#2463ff;border:none;border-radius:18px;min-height:56px;font-size:1rem;font-weight:800;box-shadow:0 16px 34px #2463ff47}.help-button:disabled{opacity:.72;cursor:not-allowed}.help-button[aria-busy=true]{cursor:progress}.inline-status-message{color:#25406c;background:#eff5ff;border:1px solid #d9e6ff;border-radius:16px;margin-top:18px;padding:14px 16px}.queue-heading-row{align-items:center}.queue-metrics-bar{flex-wrap:wrap;gap:12px;display:flex}.metric-pill{background:#f4f7ff;border:1px solid #dde6ff;border-radius:18px;min-width:150px;padding:12px 14px}.metric-label{color:#6780b4;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:700;display:block}.metric-pill strong{color:#17233f;margin-top:6px;font-size:1.15rem;display:block}.queue-list{flex-direction:column;gap:14px;display:flex}.queue-empty-state{color:#61708e;background:#f7f8fc;border-radius:18px;padding:20px}.queue-ticket-card{background:#fbfcff;border:1px solid #e1e8f5;border-radius:20px;padding:18px}.queue-ticket-topline{justify-content:space-between;align-items:center;gap:16px;display:flex}.queue-ticket-meta{color:#7383a6;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:.92rem;display:flex}.ticket-status{text-transform:uppercase;border-radius:999px;align-items:center;padding:8px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.status-in_queue{color:#2650c5;background:#eef4ff}.status-assigned{color:#20724a;background:#effbf3}.status-completed{color:#6542b7;background:#f5f2ff}.queue-ticket-assignee,.queue-ticket-feedback{color:#2f4266;margin-top:12px}.notice-box{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:16px;margin-top:18px;padding:16px}@media (width<=1040px){.student-dashboard-grid,.content-wrap{grid-template-columns:1fr}}@media (width<=720px){.app-topbar{align-items:center}.ticket-form{grid-template-columns:1fr}.dashboard-screen{padding:18px}}.app-dashboard-shell{padding-bottom:112px}.compact-metrics-bar{justify-content:flex-end}.metric-pill-compact{min-width:132px}.ticket-note,.admin-panel-copy,.record-subtitle,.ticket-note-block,.feedback-panel,.queue-ticket-assignee,.queue-ticket-feedback{color:#43506f}.ticket-note{white-space:pre-wrap;margin:12px 0 0}.ticket-note-block{background:#f5f8ff;border:1px solid #e2eafc;border-radius:16px;margin-top:14px;padding:14px 16px}.ticket-note-label,.feedback-panel-title{text-transform:uppercase;letter-spacing:.08em;color:#6a7da7;margin-bottom:8px;font-size:.78rem;font-weight:700;display:block}.feedback-panel{border-top:1px solid #e3e9f8;margin-top:16px;padding-top:16px}.feedback-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.secondary-action-button,.toggle-status-button,.admin-menu-button{cursor:pointer;border:none;border-radius:14px;padding:12px 16px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s}.secondary-action-button{color:#2047b3;background:#eaf0ff}.secondary-action-button:hover,.toggle-status-button:hover,.admin-menu-button:hover,.logout-dock:hover,.queue-launch-button:hover{transform:translateY(-1px)}.complete-button{min-width:180px}.teacher-layout-grid{grid-template-columns:1.15fr .85fr;gap:24px;display:grid}.queue-ticket-meta-stacked{flex-direction:column;align-items:flex-start}.teacher-ticket-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.top-gap-small{margin-top:16px}.admin-layout-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:24px;display:grid}.admin-menu-card{position:sticky;top:24px}.admin-menu-list{gap:12px;margin-top:18px;display:grid}.admin-menu-button{color:#27408c;text-align:left;background:#f3f6ff;width:100%}.admin-menu-button.active{color:#fff;background:#2463ff;box-shadow:0 16px 30px #2463ff3d}.admin-main-card{min-height:640px}.admin-heading-row{align-items:center}.admin-search-box{width:min(360px,100%)}.admin-search-box input,.inline-admin-form input,.inline-admin-form select,.admin-record-card select{color:#384155;width:100%;font:inherit;background:#fff;border:1px solid #d6dceb;border-radius:14px;outline:none;padding:13px 14px}.admin-search-box input:focus,.inline-admin-form input:focus,.inline-admin-form select:focus,.admin-record-card select:focus{border-color:#2d67ff;box-shadow:0 0 0 4px #2d67ff1f}.inline-admin-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.inline-admin-form.four-column{grid-template-columns:1.4fr .9fr .9fr auto}.admin-list-grid{gap:14px;display:grid}.admin-record-card{background:#fbfcff;border:1px solid #e1e8f5;border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.record-actions-row{align-items:center;gap:12px;display:flex}.presence-badge{color:#6b7591;background:#f3f5fb;border-radius:999px;align-items:center;padding:8px 12px;font-size:.82rem;font-weight:700;display:inline-flex}.presence-badge.is-online,.toggle-status-button.active{color:#1f7b46;background:#e7f7eb}.toggle-status-button.inactive{color:#6d49c7;background:#f5f1ff}.export-panel{max-width:720px}.admin-export-button{margin-top:24px}.logout-dock{z-index:30;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff29;border-radius:18px;align-items:center;gap:10px;padding:14px 18px;display:inline-flex;position:fixed;bottom:24px;left:24px;box-shadow:0 18px 40px #0003}.logout-dock-icon{font-size:1.1rem}.queue-launch-button{transition:transform .18s,background .18s}@media (width<=1180px){.teacher-layout-grid,.admin-layout-grid,.student-dashboard-grid{grid-template-columns:1fr}.admin-menu-card{position:static}}@media (width<=860px){.inline-admin-form,.inline-admin-form.four-column,.feedback-grid{grid-template-columns:1fr}.admin-record-card,.record-actions-row{flex-direction:column;align-items:flex-start}}@media (width<=720px){.logout-dock{justify-content:center;left:16px;right:16px}}.feedback-popup-backdrop{z-index:50;background:#03081894;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.feedback-popup-card{color:#1f2937;background:#fff;border-radius:24px;width:min(560px,100%);padding:28px;box-shadow:0 32px 80px #02061759}.feedback-popup-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.feedback-popup-header h2{color:#0f172a;margin:10px 0 0}.feedback-popup-copy{color:#475569;margin:16px 0 18px}.feedback-popup-close{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;width:42px;height:42px;font-size:1.6rem;line-height:1}.feedback-popup-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:18px;display:flex}button:disabled{cursor:not-allowed;opacity:.72}.TTlogo{background-color:#fff;border-radius:8px;width:100%;margin:8px;padding:8px}.location-admin-layout{gap:24px;display:grid}.location-admin-section{background:#fdfefe;border:1px solid #e1e8f5;border-radius:20px;padding:18px}.location-admin-section h3{color:#1d2a49;margin:0 0 14px}.location-form-grid{grid-template-columns:minmax(0,1.5fr) auto}.table-form-grid{grid-template-columns:repeat(3,minmax(0,1fr)) auto}.app-topbar-actions{align-items:center;gap:12px;display:flex}.logout-dock{z-index:1;color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff29;border-radius:18px;align-items:center;gap:10px;min-height:54px;padding:0 18px;display:inline-flex;position:static;bottom:auto;left:auto;box-shadow:0 18px 40px #0003}.analytics-dashboard-shell,.analytics-stack{gap:20px;display:grid}.analytics-heading-row{align-items:center}.analytics-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.analytics-kpi-card,.analytics-panel-card{background:#fbfcff;border:1px solid #e1e8f5;border-radius:20px}.analytics-kpi-card{padding:18px}.analytics-kpi-card span{color:#6a7da7;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:700;display:block}.analytics-kpi-card strong{color:#17233f;margin-top:10px;font-size:1.5rem;display:block}.analytics-wide-card,.analytics-panel-card{padding:20px}.analytics-panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.analytics-panel-header h3{color:#17233f;margin:0}.analytics-legend-row{flex-wrap:wrap;gap:14px;display:flex}.analytics-legend-item{color:#5f719a;align-items:center;gap:8px;font-size:.88rem;font-weight:700;display:inline-flex}.legend-dot{border-radius:999px;width:12px;height:12px;display:inline-block}.legend-dot-created,.chart-point-created{fill:#2463ff;background:#2463ff}.legend-dot-completed,.chart-point-completed{fill:#20a36b;background:#20a36b}.line-chart-shell{gap:10px;display:grid}.line-chart-svg{width:100%;height:auto;overflow:visible}.chart-axis{stroke:#d8e1f5;stroke-width:1.5px}.chart-line{fill:none;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.chart-line-created{stroke:#2463ff}.chart-line-completed{stroke:#20a36b}.line-chart-label-row{color:#7281a2;text-align:center;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;font-size:.76rem;display:grid}.analytics-grid-two,.analytics-table-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.mini-bar-chart{gap:12px;display:grid}.mini-bar-row{grid-template-columns:minmax(120px,1fr) minmax(0,2fr) 52px;align-items:center;gap:10px;display:grid}.mini-bar-label,.mini-bar-value{color:#36425f;font-size:.9rem}.mini-bar-track{background:#e8eefc;border-radius:999px;width:100%;height:12px;overflow:hidden}.mini-bar-fill{background:linear-gradient(90deg,#2463ff 0%,#7da6ff 100%);border-radius:999px;height:100%}.analytics-table-wrap{overflow-x:auto}.analytics-table{border-collapse:collapse;width:100%}.analytics-table th,.analytics-table td{text-align:left;color:#33415f;vertical-align:top;border-bottom:1px solid #e8edf8;padding:12px 10px;font-size:.92rem}.analytics-table th{color:#66789f;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.analytics-feedback-list{gap:14px;display:grid}.analytics-feedback-card{background:#fff;border:1px solid #e1e8f5;border-radius:18px;padding:16px}.analytics-feedback-topline{justify-content:space-between;align-items:center;gap:14px;display:flex}.analytics-feedback-copy{color:#44516f;white-space:pre-wrap;margin:10px 0 0}.analytics-empty-state{color:#61708e;background:#f7f8fc;border-radius:18px;padding:20px}@media (width<=1280px){.analytics-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=960px){.analytics-grid-two,.analytics-table-grid,.analytics-kpi-grid{grid-template-columns:1fr}.line-chart-label-row{grid-template-columns:repeat(7,minmax(0,1fr))}}@media (width<=720px){.app-topbar-actions{justify-content:flex-end;width:100%}.mini-bar-row{grid-template-columns:1fr}}:root{--brand-blue:#1f5eff;--brand-blue-deep:#0e43d1;--brand-blue-dark:#071331;--auth-text-soft:#ffffffbd;--auth-border-soft:#ffffff24;--auth-white-card:#fffffff5}body{background:radial-gradient(circle at 16% 14%,#4d8aff52,#0000 30%),radial-gradient(circle at 86% 82%,#2160ff42,#0000 28%),linear-gradient(135deg,#06102b 0%,#10246a 52%,#0a1b4a 100%)}.page-shell{min-height:100vh;position:relative;overflow:hidden}.brand-bar{z-index:2;color:#ffffffeb;letter-spacing:.02em;width:min(1120px,100% - 48px);margin:0 auto;padding:28px 0 0;font-size:1.35rem;font-weight:900;position:relative}.content-wrap{z-index:2;width:min(1120px,100% - 48px);margin:0 auto;padding:32px 0 56px;display:block;position:relative}.auth-card{z-index:2;border:1px solid var(--auth-border-soft);-webkit-backdrop-filter:blur(18px);background:#ffffff14;border-radius:38px;grid-template-columns:1.08fr .92fr;width:100%;min-height:650px;display:grid;position:relative;overflow:hidden;box-shadow:0 36px 110px #00000059}.hero-panel{min-height:auto;box-shadow:none;background:0 0;border:none;flex-direction:column;justify-content:space-between;padding:54px;display:flex;position:relative;overflow:hidden}.hero-panel:before{content:"";pointer-events:none;border:1px solid #ffffff1a;border-radius:32px;position:absolute;inset:30px}.hero-panel:after{content:"";background:radial-gradient(circle,#ffffff21,#0000 65%);border-radius:999px;width:360px;height:360px;position:absolute;bottom:-130px;left:-140px}.hero-panel h1,.login-panel h2{margin:0}.eyebrow,.chip{color:#ffffffe6;letter-spacing:.08em;text-transform:uppercase;background:#ffffff14;border:1px solid #ffffff2e;border-radius:999px;align-self:flex-start;align-items:center;width:fit-content;padding:8px 14px;font-size:.82rem;font-weight:800;display:inline-flex}.brand-lockup{z-index:1;position:relative}.logo-card{gap:24px;max-width:560px;display:grid}.TTlogo{object-fit:contain;background-color:#fff;border-radius:30px;width:104px;height:104px;margin:0;padding:14px;box-shadow:0 24px 55px #00000042}.logo-card h1{letter-spacing:-.08em;color:#fff;max-width:8ch;margin:0;font-size:clamp(4rem,9vw,7rem);line-height:.88}.logo-card p{max-width:390px;color:var(--auth-text-soft);margin:22px 0 0;font-size:1.1rem;line-height:1.7}.hero-footer{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid;position:relative}.stat-card{background:#ffffff14;border:1px solid #ffffff21;border-radius:22px;padding:18px}.stat-card strong{color:#fff;font-size:1.2rem;display:block}.stat-card span{color:#ffffffa8;margin-top:4px;font-size:.9rem;display:block}.login-panel{background:var(--auth-white-card);color:#17233f;border-radius:30px;flex-direction:column;justify-content:center;min-height:auto;margin:18px;padding:48px;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 75px #0000003d}.login-card-glow{background:radial-gradient(circle,#2463ff29,#0000 70%);border-radius:999px;width:260px;height:260px;position:absolute;top:-120px;right:-120px}.login-header{z-index:1;position:relative}.login-header .chip{color:#2463ff;background:#eef4ff;border-color:#d9e6ff;margin-bottom:22px}.login-header h2{color:#101b36;letter-spacing:-.06em;margin:0;font-size:clamp(2.4rem,5vw,4rem);line-height:.96}.login-header p{color:#66728c;margin:18px 0 0;font-size:1.02rem;line-height:1.65}.login-panel .primary-button,.login-panel .secondary-button{z-index:1;cursor:pointer;border-radius:18px;justify-content:center;align-items:center;min-height:58px;font-weight:800;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s,color .18s;display:inline-flex;position:relative}.login-panel .primary-button{color:#fff;background:linear-gradient(135deg,#1f5eff 0%,#0e43d1 100%);border:none;width:100%;margin-top:34px;box-shadow:0 18px 38px #1f5eff52}.login-panel .primary-button:hover,.login-panel .secondary-button:hover{transform:translateY(-1px)}.login-panel .primary-button:hover{box-shadow:0 22px 46px #1f5eff66}.dev-box{z-index:1;margin-top:34px;position:relative}.divider{color:#8a96ad;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:12px;font-size:.78rem;font-weight:800;display:flex}.divider:before,.divider:after{content:"";background:#e3e8f2;flex:1;height:1px}.dev-login-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.login-panel .secondary-button{color:#30415f;background:#f7f9fd;border:1px solid #dbe3f2;min-height:52px}.login-panel .secondary-button:hover{color:#1f5eff;background:#eef4ff;border-color:#c9d9ff}.bg-orb{filter:blur(18px);opacity:.72;border-radius:50%;position:absolute}.orb-one{background:radial-gradient(circle,#5d91ff7a,#5d91ff00);width:280px;height:280px;top:8%;right:8%}.orb-two{background:radial-gradient(circle,#4f66ff5c,#5d91ff00);width:230px;height:230px;bottom:6%;left:5%}.orb-three{background:radial-gradient(circle,#ffffff1f,#0000 70%);width:180px;height:180px;top:46%;left:48%}.bg-grid{background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:54px 54px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#00000080,#0000 78%);mask-image:linear-gradient(#00000080,#0000 78%)}@media (width<=980px){.brand-bar,.content-wrap{width:min(100% - 48px,1120px)}.auth-card{grid-template-columns:1fr;min-height:auto}.hero-panel{min-height:520px}.login-panel{margin-top:0}}@media (width<=640px){.brand-bar,.content-wrap{width:min(100% - 24px,1120px)}.brand-bar{padding-top:20px}.auth-card{border-radius:28px}.hero-panel,.login-panel{padding:30px 22px}.hero-panel{min-height:470px}.logo-card h1{font-size:4rem}.hero-footer,.dev-login-grid{grid-template-columns:1fr}}.hero-logo-stage{z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:30px;padding:20px 0;display:flex;position:relative}.TTlogo{border-radius:36px;width:min(82%,400px);height:auto;padding:28px;animation:6.5s ease-in-out infinite logo-float;box-shadow:0 34px 80px #00000057}.hero-tagline{text-align:center;max-width:34ch;color:var(--auth-text-soft);margin:0;font-size:1.12rem;line-height:1.7}@keyframes logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.login-mobile-logo,.sheet-head,.mobile-fab,.mobile-fab-row,.mobile-sheet-backdrop{display:none}body.sheet-lock{overflow:hidden}.page-status-message{margin:0 0 22px;box-shadow:0 14px 34px #030f2d38}@media (width<=760px){.hero-panel{display:none}.brand-bar{text-align:center;letter-spacing:.14em;text-transform:uppercase;font-size:1.2rem}.content-wrap{padding-top:18px}.auth-card{min-height:auto;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none;border-radius:30px;grid-template-columns:1fr;overflow:visible}.login-panel{text-align:center;border-radius:30px;margin:0;padding:34px 24px 30px}.login-mobile-logo{background:#f4f7ff;border:1px solid #e3eafc;border-radius:26px;width:148px;height:auto;margin:0 auto 20px;padding:16px;display:block;box-shadow:0 18px 40px #10286429}.login-header .chip{margin-left:auto;margin-right:auto}.login-header h2{font-size:2.6rem}.app-topbar{align-items:center;gap:12px;margin-bottom:20px}.app-topbar-actions{flex:none;gap:8px;width:auto}.app-brand{font-size:1.55rem;line-height:1.1}.app-page-title{color:#ffffffd1;margin:2px 0 0;font-size:1.02rem;font-weight:600}.app-page-subtitle{display:none}.queue-launch-button,.logout-dock{border-radius:13px;justify-content:center;width:40px;height:40px;min-height:40px;padding:0;box-shadow:0 10px 22px #0000002e}.queue-launch-icon{font-size:1.05rem}.logout-dock-icon{font-size:1rem}.logout-dock-label{display:none}.dashboard-screen{padding:14px 16px 128px}.mobile-sheet{z-index:46;max-height:88dvh;padding:12px 20px calc(26px + env(safe-area-inset-bottom));visibility:hidden;border-radius:26px 26px 0 0;margin:0;transition:transform .34s cubic-bezier(.32,.72,.16,1),visibility 0s linear .34s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(110%);box-shadow:0 -26px 70px #02081c80}.mobile-sheet.sheet-open{visibility:visible;transition:transform .34s cubic-bezier(.32,.72,.16,1);transform:translateY(0)}.sheet-head{z-index:2;background:#fff;justify-content:center;align-items:center;padding:6px 0 12px;display:flex;position:sticky;top:0}.sheet-grabber{background:#d9e0ef;border-radius:999px;width:46px;height:5px}.sheet-close{color:#3c4a6b;cursor:pointer;background:#f4f6fc;border:1px solid #e2e8f6;border-radius:999px;width:36px;height:36px;font-size:1.35rem;line-height:1;position:absolute;top:0;right:0}.mobile-sheet-backdrop{z-index:44;-webkit-backdrop-filter:blur(3px);background:#040a1e94;animation:.25s backdrop-fade;display:block;position:fixed;inset:0}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.mobile-fab-row{left:16px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:40;justify-content:center;gap:10px;display:flex;position:fixed}.mobile-fab{color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;max-width:100%;padding:16px 26px;font-size:1rem;font-weight:800;display:inline-flex}.fab-row-split .mobile-fab{flex:1 1 0;min-width:0;padding:15px 16px}.mobile-fab:active{transform:scale(.97)}.fab-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fab-emoji{font-size:1.3rem}.fab-online{background:linear-gradient(135deg,#1f5eff 0%,#0e43d1 100%);box-shadow:0 16px 40px #1f5eff7a}.fab-online .fab-dot{background:#ffffff8c;border-radius:999px;flex:none;width:10px;height:10px}.fab-online.is-online{background:linear-gradient(135deg,#0ba360 0%,#2ec98a 100%);box-shadow:0 16px 40px #0e965c75}.fab-online.is-online .fab-dot{background:#eafff5;animation:1.9s ease-in-out infinite dot-pulse}@keyframes dot-pulse{0%,to{box-shadow:0 0 #fff6}50%{box-shadow:0 0 0 7px #ffffff1f}}.fab-claimed{background:linear-gradient(135deg,#ff9a2e 0%,#f0640f 100%);box-shadow:0 16px 40px #f06e1475}.fab-count{color:#e05a00;background:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.8rem;font-weight:800;display:inline-flex}}.star-rating{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.star-button{color:#d3dbec;cursor:pointer;background:0 0;border:none;padding:2px;font-size:1.9rem;line-height:1;transition:color .16s,transform .16s}.star-button:hover{transform:scale(1.12)}.star-button:focus-visible{outline-offset:2px;border-radius:8px;outline:2px solid #2463ff}.star-button.is-on{color:#f5a524;text-shadow:0 0 12px #f5a5248c}.star-rating-caption{color:#6a7da7;margin-left:8px;font-size:.85rem;font-weight:700}.queue-ticket-card{position:relative}.queue-ticket-card:has(.ticket-delete-button){padding-right:46px}.ticket-delete-button{color:#c2405a;cursor:pointer;background:#fff5f6;border:1px solid #f0d3d8;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.15rem;line-height:1;transition:background .18s,transform .18s;display:flex;position:absolute;top:12px;right:12px}.ticket-delete-button:hover{background:#ffe3e7}.ticket-delete-button:active{transform:scale(.94)}.ticket-delete-button:disabled{opacity:.5;cursor:not-allowed}.queue-launch-button{position:relative}.queue-count-ball{color:#fff;background:linear-gradient(135deg,#ff9a2e 0%,#f0640f 100%);border:2px solid #0a163bd9;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-6px;box-shadow:0 8px 18px #f06e146b}.offer-stack{z-index:70;pointer-events:none;flex-direction:column;gap:12px;width:min(360px,100vw - 32px);max-height:calc(100dvh - 36px);display:flex;position:fixed;top:18px;right:18px;overflow-y:auto}.offer-card{pointer-events:auto;color:#3c465f;background:#fff;border-left:5px solid #2463ff;border-radius:20px;padding:16px 18px;animation:.28s offer-slide-in;box-shadow:0 22px 50px #030f2d57}@keyframes offer-slide-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@keyframes offer-drop-in{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:translateY(0)}}.offer-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.offer-eyebrow{color:#2463ff;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:800}.offer-dismiss-button{color:#3c4a6b;cursor:pointer;background:#f4f6fc;border:1px solid #e2e8f6;border-radius:999px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:1rem;line-height:1;transition:background .18s;display:inline-flex}.offer-dismiss-button:hover{background:#e9edf9}.offer-student{color:#17233f;word-break:break-word;font-size:1.15rem;font-weight:850}.offer-meta{color:#55618a;gap:3px;margin-top:8px;font-size:.88rem;display:grid}.offer-meta-row strong{color:#3c465f;margin-right:4px}.offer-note{color:#43506f;white-space:pre-wrap;word-break:break-word;background:#f5f8ff;border:1px solid #e2eafc;border-radius:12px;margin:10px 0 0;padding:10px 12px;font-size:.88rem}.offer-actions{gap:8px;margin-top:12px;display:flex}.offer-accept-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0ba360 0%,#2ec98a 100%);border:none;border-radius:14px;flex:1;min-height:46px;font-weight:800;transition:transform .18s,box-shadow .18s;box-shadow:0 12px 26px #0e965c59}.offer-accept-button:hover{transform:translateY(-1px);box-shadow:0 16px 32px #0e965c6b}.offer-accept-button:disabled{opacity:.65;cursor:not-allowed;transform:none}.requeue-button{color:#b0560c;cursor:pointer;background:#fff3e2;border:none;border-radius:14px;padding:12px 16px;font-weight:700;transition:transform .18s,background .18s}.requeue-button:hover{background:#ffe7c9;transform:translateY(-1px)}.requeue-button:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (width<=760px){.ticket-delete-button{width:34px;height:34px;top:10px;right:10px}.queue-ticket-card:has(.ticket-delete-button){padding-right:52px}.queue-count-ball{border-width:2px;min-width:18px;height:18px;padding:0 5px;font-size:.64rem;top:-5px;right:-5px}.offer-stack{width:auto;max-height:60dvh;top:10px;left:12px;right:12px}.offer-card{border-radius:18px;padding:14px 16px;animation-name:offer-drop-in}.offer-student{font-size:1.08rem}.offer-accept-button{min-height:48px}}
