: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:wait}.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-help{background:linear-gradient(135deg,#2f6bff 0%,#7c4dff 100%);animation:2.8s ease-in-out infinite fab-glow}@keyframes fab-glow{0%,to{box-shadow:0 14px 34px #2f5bff6b}50%{box-shadow:0 20px 54px #684eff9e}}.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}.field-required{color:#d1435b;margin-left:4px;font-weight:800}@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}}
