:root{color-scheme:dark;--bg:#09090b;--panel:#101013;--panel2:#151518;--line:#29292d;--muted:#96949b;--white:#f6f4f5;--red:#c71932;--red2:#ed3346;--amber:#ffc54d;--green:#4cc58a;--font:'Inter',Arial,sans-serif;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background-color:var(--bg);background-image:linear-gradient(135deg,transparent 49.8%,rgba(255,255,255,.018) 50%,transparent 50.2%);background-size:18px 18px;color:var(--white);font-family:var(--font);min-height:100vh}.frame{border:1px solid #64212c;margin:0 auto;max-width:1440px;min-height:100vh;position:relative}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,5vw,68px)}.brand{display:flex;gap:12px;align-items:center;color:var(--white);text-decoration:none}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--red);font:900 28px var(--display);clip-path:polygon(0 0,100% 0,100% 78%,78% 100%,0 100%)}.brand b,.brand small{display:block}.brand b{font-size:12px;letter-spacing:.15em}.brand small{font-size:9px;color:var(--muted);letter-spacing:.13em;margin-top:4px}.top-actions{display:flex;align-items:center;gap:12px}.locality{font:10px var(--mono);letter-spacing:.1em;color:#d0cdd0;margin-right:10px}.locality i,.live i,.online-indicator i{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:7px;box-shadow:0 0 12px #4cc58a77}.button,.icon-button{font:600 12px var(--font);border:1px solid transparent;border-radius:2px;padding:11px 17px;cursor:pointer;transition:transform .16s,background .16s,color .16s}.button:hover,.icon-button:hover{transform:translateY(-1px)}.button-red{background:var(--red);color:#fff}.button-red:hover{background:var(--red2)}.button-quiet,.icon-button{background:transparent;border-color:var(--line);color:#ddd}.button-outline{background:transparent;border-color:#4d252b;color:#fff}.icon-button{width:38px;height:38px;padding:0;font-size:16px}.hero{max-width:1000px;margin:0 auto;text-align:center;padding:42px 20px 46px;position:relative}.hero-topline{display:flex;justify-content:space-between;align-items:center;max-width:800px;margin:0 auto 42px;font:10px var(--mono);letter-spacing:.12em;color:var(--muted)}.live{color:#d5d1d4}.live i{background:var(--red2);box-shadow:0 0 10px #ed334677}.status-row{display:flex;align-items:center;justify-content:center;gap:14px}.status-pill{display:inline-flex;align-items:center;gap:8px;background:#17291f;color:#8de6b9;border:1px solid #224b37;padding:7px 10px;font:10px var(--mono);letter-spacing:.08em}.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}.status-pill.passing{background:#312514;color:#ffd37a;border-color:#62481e}.status-pill.passing::before{background:var(--amber);animation:pulse 1s infinite}.status-pill.done{background:#24151a;color:#ff9ca5;border-color:#54252c}.period-kicker{font:10px var(--mono);color:#a6a2a6;letter-spacing:.1em}.time-display{font:800 clamp(100px,20vw,218px)/.86 var(--display);letter-spacing:-.035em;margin:28px 0 10px;font-variant-numeric:tabular-nums;text-shadow:0 0 34px #ffffff14}.time-display span{color:#bfbcc1;font-size:.53em;letter-spacing:-.02em}.clock-caption,.countdown-label,.period-caption{font:10px var(--mono);letter-spacing:.13em;color:var(--muted)}.clock-caption span{color:var(--red);padding:0 6px}.hero-divider{width:54px;height:2px;background:var(--red);margin:28px auto 25px}.countdown-label{color:#d2cdd1}.countdown{font:800 clamp(68px,11vw,118px)/.96 var(--display);letter-spacing:.025em;font-variant-numeric:tabular-nums;margin:6px 0 6px}.period-caption{font-size:10px}.lunch-card{width:min(410px,100%);margin:26px auto 0;text-align:left;background:linear-gradient(110deg,#23181a,#151416);border:1px solid #6b2b32;padding:15px 18px;box-shadow:0 10px 35px #0004}.lunch-heading{display:flex;align-items:center;gap:8px;color:#ff8994;font:11px var(--mono);letter-spacing:.1em}.lunch-dot{width:7px;height:7px;border-radius:50%;background:var(--red2);box-shadow:0 0 8px #ed3346}.lunch-live{margin-left:auto;color:var(--muted);font-size:9px}.lunch-remaining{display:flex;justify-content:space-between;align-items:baseline;margin:7px 0 9px}.lunch-remaining span{font:700 34px var(--display);font-variant-numeric:tabular-nums}.lunch-remaining small{font:9px var(--mono);color:var(--muted);letter-spacing:.08em}.lunch-progress{height:3px;background:#39272a}.lunch-progress span{display:block;height:100%;background:var(--red2);width:0;transition:width .4s}.next-up{min-height:14px;margin-top:17px;color:var(--muted);font:10px var(--mono);letter-spacing:.05em}.timeline-section,.lower-grid{max-width:1160px;margin:0 auto;padding:34px clamp(18px,4vw,54px)}.timeline-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#0b0b0d}.section-heading,.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:21px}.eyebrow{display:block;color:var(--red2);font:10px var(--mono);letter-spacing:.13em}.section-heading h2,.panel-heading h2,.info-panel h2{font:700 27px var(--display);letter-spacing:.02em;margin:4px 0 0;text-transform:uppercase}.timezone-note{font:9px var(--mono);color:var(--muted);letter-spacing:.08em}.timeline{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:5px}.period-block{position:relative;min-height:77px;padding:12px 10px;background:#17171a;border:1px solid #242428;overflow:hidden}.period-block::after{content:"";position:absolute;right:0;bottom:0;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent #2d2d31 transparent}.period-block b{display:block;font:700 20px var(--display);color:#aaa}.period-block small{display:block;margin-top:5px;color:#7c797e;font:9px var(--mono);white-space:nowrap}.period-block.active{background:#3a121a;border-color:#a92436;box-shadow:inset 0 0 22px #c7193214}.period-block.active b{color:#ff6b7b}.period-block.active::after{border-bottom-color:var(--red)}.period-block.passed{opacity:.47}.period-block.lunch-period{background:#201a11;border-color:#725421}.period-block.lunch-period b{color:var(--amber)}.timeline-foot{display:flex;justify-content:flex-end;gap:18px;margin-top:13px;font:9px var(--mono);letter-spacing:.07em;color:var(--muted)}.legend-dot{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#58575c}.active-dot{background:var(--red2)}.upcoming-dot{background:#8e8b91}.lower-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:14px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#121215,#0e0e10);padding:23px}.panel-heading{align-items:center}.online-indicator{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}.online-indicator i{width:6px;height:6px}.panel-intro,.info-panel p{font-size:12px;line-height:1.7;color:var(--muted)}.chat-auth{text-align:center;border:1px dashed #333238;padding:25px 15px;margin-top:16px}.chat-auth p{font-size:12px;color:#b8b4b9}.chat-toolbar{display:flex;justify-content:space-between;align-items:center;font:9px var(--mono);color:var(--muted);letter-spacing:.1em}.text-button{border:0;background:none;color:#ff8490;font:11px var(--font);cursor:pointer}.chat-messages{height:230px;overflow:auto;margin:12px 0;padding:12px;background:#0a0a0c;border:1px solid #242428}.message{position:relative;padding:8px 28px 8px 0;border-bottom:1px solid #202024}.message:last-child{border:0}.message-meta{display:flex;gap:9px;align-items:center}.message-meta b{font-size:11px;color:#f2c5ca}.message-meta time{font:9px var(--mono);color:#716e74}.message p{font-size:12px;line-height:1.5;margin:5px 0 0;overflow-wrap:anywhere;color:#ddd}.report-button{position:absolute;right:0;top:8px;background:none;border:0;color:#777;font-size:13px;cursor:pointer}.report-button:hover{color:#ff8b94}.chat-form{display:flex;gap:8px}.chat-form input,.form-stack input,.admin-view input[type=time],textarea{width:100%;background:#09090b;border:1px solid #333238;color:var(--white);padding:12px;font:12px var(--font);border-radius:2px}.chat-form input:focus,.form-stack input:focus,textarea:focus{outline:1px solid var(--red2);border-color:var(--red2)}.info-panel{display:flex;flex-direction:column}.info-panel h2{margin-top:20px;font-size:32px;line-height:1}.info-panel p{margin-top:9px}.info-rule{height:1px;background:var(--line);margin:12px 0 20px}.bell-note{display:flex;gap:11px;align-items:center}.bell-icon{width:32px;height:32px;display:grid;place-items:center;color:var(--amber);border:1px solid #604919}.bell-note b,.bell-note small{display:block}.bell-note b{font:10px var(--mono);letter-spacing:.1em}.bell-note small{margin-top:5px;color:var(--muted);font:9px var(--mono)}.beta-note{margin-top:auto!important;padding-top:19px;border-top:1px solid var(--line);font-size:10px!important}.chat-disabled{text-align:center;padding:35px 10px;color:var(--muted);font-size:12px}footer{max-width:1160px;margin:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:18px clamp(18px,4vw,54px);font:9px var(--mono);letter-spacing:.1em;color:#77747a}footer i{color:var(--red2);font-style:normal}.modal-backdrop{position:fixed;z-index:20;inset:0;background:#000b;backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px}.modal{position:relative;width:min(430px,100%);padding:30px;background:#111114;border:1px solid #3b3034;box-shadow:0 24px 90px #0009}.modal h2{font:700 33px var(--display);text-transform:uppercase;margin:7px 0}.modal p{font-size:12px;line-height:1.65;color:var(--muted)}.beta-modal{border-top:3px solid var(--red)}.full-width{width:100%}.modal-close{position:absolute;top:13px;right:14px;border:0;background:transparent;color:#aaa;font-size:24px;cursor:pointer}.tab-row,.admin-tabs{display:flex;border-bottom:1px solid var(--line);margin:20px 0 16px}.tab{border:0;background:none;color:#8d8990;padding:10px 14px;font:11px var(--font);cursor:pointer}.tab.active{color:white;border-bottom:2px solid var(--red2)}.form-stack{display:grid;gap:13px}.form-stack label,.admin-view label{display:grid;gap:6px;font-size:10px;color:#d0cdd1}.form-message{min-height:15px!important;margin:0!important;color:#ff9ca5!important;font-size:11px!important}.signup-only.hidden{display:none}.admin-dashboard{width:min(600px,100%);max-height:90vh;overflow:auto}.admin-view{display:grid;gap:13px}.admin-view textarea{resize:vertical}.toggle-row{display:flex!important;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);background:#0c0c0e}.toggle-row span b,.toggle-row span small{display:block}.toggle-row span b{font-size:11px}.toggle-row span small{color:var(--muted);margin-top:4px}.toggle-row input{accent-color:var(--red);width:17px;height:17px}.admin-divider{height:1px;background:var(--line);margin:8px 0}.time-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.reports-list{display:grid;gap:12px}.report-card{border:1px solid #332b2e;background:#0c0c0e;padding:13px}.report-card h3{font:600 13px var(--font);margin:0 0 7px}.report-card p{margin:5px 0;font-size:11px}.report-card small{font:9px var(--mono);color:var(--muted)}.history-list{margin:10px 0 0;padding:9px 0 0;border-top:1px solid var(--line);max-height:160px;overflow:auto}.history-item{font-size:10px!important;color:#cac6ca!important}.report-actions{display:flex;gap:8px;margin-top:9px}.report-actions button{padding:7px 10px;font-size:10px}.quiet-copy{color:var(--muted);font-size:12px}.surprise-overlay{position:fixed;z-index:30;inset:0;background:#1b0308f2;display:grid;place-items:center;text-align:center}.surprise-card{border:2px solid var(--red2);padding:40px 54px;background:#100b0d;box-shadow:0 0 100px #ef1d3e44;animation:pop .35s ease-out}.surprise-face{font:800 clamp(54px,12vw,100px) var(--display);color:#ffdc78;margin:0 0 15px}.surprise-card strong{display:block;font:900 clamp(32px,8vw,65px) var(--display);margin:6px 0 24px}.surprise-card button{margin:0 auto}#confettiCanvas{position:fixed;z-index:15;inset:0;width:100%;height:100%;pointer-events:none}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes pulse{50%{opacity:.35}}@keyframes pop{from{transform:scale(.7) rotate(-4deg);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:720px){.locality{display:none}.hero{padding-top:31px}.hero-topline{margin-bottom:30px}.timeline{grid-template-columns:repeat(4,1fr)}.lower-grid{grid-template-columns:1fr}.info-panel{min-height:250px}.time-display{margin-top:25px}.timeline-section,.lower-grid{padding-top:26px;padding-bottom:26px}}@media(max-width:420px){.topbar{height:65px;padding:0 13px}.brand-mark{width:34px;height:34px}.brand b{font-size:10px}.brand small{font-size:8px}.top-actions{gap:7px}.button{padding:10px 12px}.hero-topline{font-size:8px}.status-row{gap:8px}.status-pill,.period-kicker{font-size:8px}.timeline{grid-template-columns:repeat(2,1fr)}.timeline-foot{justify-content:center;gap:10px;font-size:8px}.panel{padding:17px}.modal{padding:25px 20px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.admin-badge{display:inline-block;background:#4b1520;border:1px solid #a43143;color:#ffabb5;padding:2px 5px;font:8px var(--mono);letter-spacing:.09em}
.menu-grid{max-width:1160px;margin:0 auto;padding:0 clamp(18px,4vw,54px) 34px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.menu-panel{min-width:0}.menu-panel .panel-heading{margin-bottom:14px}.menu-image-link{display:block;border:1px solid var(--line);background:#09090b}.menu-image-link img{display:block;width:100%;max-height:480px;object-fit:contain}.menu-empty{min-height:140px;display:grid;place-items:center;border:1px dashed #333238;color:var(--muted);font-size:12px}.admin-field input,.account-tools input,.account-tools select,.schedule-row input{background:#09090b;border:1px solid #333238;color:var(--white);padding:9px;font:11px var(--font);border-radius:2px}.schedule-editor-group{border:1px solid var(--line);padding:13px;margin-bottom:14px}.schedule-editor-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.schedule-editor-heading .button{padding:8px 11px;font-size:10px}.schedule-editor-rows{display:grid;gap:7px}.schedule-row{display:grid;grid-template-columns:1fr 105px 105px 36px;gap:7px}.schedule-row input:first-child{min-width:0}.schedule-row .icon-button{width:36px;height:36px;padding:0}.account-card{border:1px solid #332b2e;background:#0c0c0e;padding:13px}.account-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.account-title b,.account-title small{display:block}.account-title b{font-size:13px}.account-title small,.account-created{margin-top:4px;font:10px var(--mono);color:var(--muted);overflow-wrap:anywhere}.rank-pill{padding:4px 7px;border:1px solid #54313a;color:#ffacb4;font:8px var(--mono);white-space:nowrap}.account-tools{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;padding-top:10px;margin-top:10px;border-top:1px solid var(--line)}.account-tools label{display:grid;gap:5px;color:var(--muted);font-size:9px}.account-tools input[type=number]{width:84px}.account-tools select{min-width:100px}.account-tools .button{padding:8px 10px;font-size:10px}.account-tools .check-label{display:flex;align-items:center;gap:5px;padding:8px 0}.check-label input{accent-color:var(--red)}.custom-badge{display:inline-block;padding:2px 5px;font:8px var(--mono);letter-spacing:.06em;border:1px solid}.teacher-badge{color:#a9d7ff;background:#132336;border-color:#315b7d}.premium-badge{color:#ffe295;background:#35290f;border-color:#7a6021}@media(max-width:720px){.menu-grid{grid-template-columns:1fr}.schedule-row{grid-template-columns:1fr 86px 86px 34px}.schedule-editor-heading{gap:8px}}@media(max-width:420px){.schedule-row{grid-template-columns:1fr 74px 74px 32px;gap:5px}.account-tools{align-items:stretch}.account-tools .button{flex:1}}
.timeline{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.report-duration{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.report-duration input,.report-duration select{background:#09090b;border:1px solid #333238;color:var(--white);padding:8px;font:10px var(--font);max-width:82px}
.admin-tabs{overflow-x:auto}.assign-role-form{display:grid;grid-template-columns:minmax(0,1fr) 125px auto;align-items:end;gap:9px;padding:12px;border:1px solid var(--line);margin:10px 0 16px}.assign-role-form label{display:grid;gap:6px;font-size:10px;color:#d0cdd1}.assign-role-form input,.assign-role-form select{background:#09090b;border:1px solid #333238;color:var(--white);padding:10px;font:11px var(--font)}.assign-role-form .form-message{grid-column:1/-1}@media(max-width:520px){.assign-role-form{grid-template-columns:1fr 1fr}.assign-role-form label:first-child{grid-column:1/-1}.assign-role-form button{grid-column:1/-1}}
.purge-choice{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:9px}.purge-choice input{accent-color:var(--red)}
.delete-message-button{position:absolute;right:20px;top:8px;border:0;background:none;color:#e87984;font-size:16px;cursor:pointer}.delete-message-button:hover{color:#ffabb5}
.settings-modal{width:min(460px,100%)}.settings-intro{margin:8px 0 18px!important}.settings-fields{display:grid;gap:13px}.settings-fields>label:not(.settings-toggle){display:grid;gap:7px;font-size:11px;color:var(--muted)}.settings-fields select{width:100%;padding:10px 11px;color:var(--white);background:#09090b;border:1px solid #39363b;border-radius:2px;font:12px var(--font)}.settings-toggle{display:flex!important;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid var(--line);background:var(--panel2)}.settings-toggle b,.settings-toggle small{display:block}.settings-toggle b{font-size:11px;color:var(--white)}.settings-toggle small{margin-top:4px;color:var(--muted);font-size:10px}.settings-toggle input{width:18px;height:18px;flex:none;accent-color:var(--red2)}.settings-saved{margin:15px 0 0!important;font:10px var(--mono)!important;color:var(--green)!important}.icon-button{min-width:42px;min-height:40px}.frame{transition:background-color .2s,border-color .2s}
body[data-theme="midnight"]{--bg:#07101b;--panel:#0c1928;--panel2:#102238;--line:#253c54;--red:#245b9c;--red2:#4f9cff;--amber:#75d7ff;--green:#52d6a4}body[data-theme="midnight"] .frame{border-color:#245b9c}body[data-theme="midnight"] .hero{background-image:radial-gradient(ellipse at 50% 30%,#15365b44,transparent 65%)}
body[data-theme="light"]{color-scheme:light;--bg:#f1f3f7;--panel:#fff;--panel2:#eef1f6;--line:#c8ced8;--muted:#59616f;--white:#111821;--red:#a31027;--red2:#d21f39;--amber:#966500;--green:#087b4d;background-image:linear-gradient(135deg,transparent 49.8%,rgba(20,32,48,.035) 50%,transparent 50.2%)}body[data-theme="light"] .frame{border-color:#a31027}body[data-theme="light"] .locality{color:#303845}body[data-theme="light"] footer{color:#545d68}body[data-theme="light"] .modal{background:#fff;border-color:#c7cbd2}body[data-theme="light"] .settings-fields select,body[data-theme="light"] .admin-field input,body[data-theme="light"] .account-tools input,body[data-theme="light"] .account-tools select,body[data-theme="light"] .schedule-row input,body[data-theme="light"] .assign-role-form input,body[data-theme="light"] .assign-role-form select,body[data-theme="light"] .admin-view textarea{color:#141820;background:#f4f6f9;border-color:#b9c0cb}body[data-theme="light"] .toggle-row,body[data-theme="light"] .report-card,body[data-theme="light"] .account-card{background:#f7f8fa;border-color:#c8ced8}body[data-theme="light"] .report-card p,body[data-theme="light"] .history-item{color:#333!important}body[data-theme="light"] .menu-image-link{background:#fff}body[data-theme="light"] .tab.active{color:#111821}body[data-theme="light"] .modal-close{color:#59616f}
body.compact-mode .hero{padding-top:27px;padding-bottom:28px}body.compact-mode .hero-topline{margin-bottom:18px}body.compact-mode .time-display{margin-top:18px;font-size:clamp(86px,15vw,190px)}body.compact-mode .timeline-section,body.compact-mode .lower-grid{padding-top:20px;padding-bottom:20px}body.compact-mode .panel{padding:18px}body.compact-mode .timeline{gap:6px}body.compact-mode .period-block{min-height:72px;padding:10px}
body.reduce-motion *,body.reduce-motion *::before,body.reduce-motion *::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
@media(max-width:520px){.settings-toggle{padding:10px}.settings-fields{gap:10px}}
