:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f7f9;--ink:#17232b;--muted:#5e6b75;--panel:#fff;--line:#d9e2e7;--brand:#123142;--accent:#2e7d6b;--danger:#b42318}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif}a{color:var(--accent)}.shell{max-width:1040px;margin:0 auto;padding:32px 20px}.topbar{background:var(--brand);color:#fff;justify-content:space-between;align-items:center;padding:18px 28px;display:flex}.topbar a{color:#fff;font-weight:700;text-decoration:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:18px 0;padding:22px}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.button,button{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:11px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}button:disabled{cursor:not-allowed;opacity:.58}.button.secondary{color:var(--ink);background:#e8eef2}label{margin:14px 0 6px;font-size:13px;font-weight:700;display:block}input,textarea{border:1px solid var(--line);font:inherit;border-radius:6px;width:100%;padding:10px}textarea{min-height:180px}.muted{color:var(--muted)}.error{color:var(--danger)}.success{color:var(--accent);font-weight:700}.landing-page{color:var(--ink);background:#f4f7f9;min-height:100vh}.landing-header{background:var(--brand);color:#fff;justify-content:space-between;align-items:center;padding:20px clamp(20px,5vw,56px);display:flex}.landing-header strong{font-size:22px}.landing-brand{align-items:center;gap:14px;min-width:0;display:inline-flex}.landing-brand img{width:50px;height:50px;display:block}.landing-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.landing-nav-button{border-radius:6px;align-items:center;min-height:38px;padding:0 14px;font-size:14px;font-weight:800;text-decoration:none;display:inline-flex}.landing-nav-button.primary{color:#fff;background:#07151c;border:1px solid #ffffff2e}.landing-nav-button.secondary{color:#fff;background:#ffffff14;border:1px solid #ffffff80}.landing-hero{color:#fff;isolation:isolate;background:linear-gradient(90deg,#6b4629 0 13px,#a06d3d 13px 18px,#5b391f 18px 26px,#0000 26px calc(100% - 26px),#5b391f calc(100% - 26px) calc(100% - 18px),#a06d3d calc(100% - 18px) calc(100% - 13px),#6b4629 calc(100% - 13px)),linear-gradient(#7a502d 0 12px,#c08a50 12px 18px,#5d3b21 18px 28px,#0000 28px calc(100% - 28px),#4d2f19 calc(100% - 28px) calc(100% - 18px),#b77f48 calc(100% - 18px) calc(100% - 12px),#6b4629 calc(100% - 12px)),#24160d;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:36px;padding:72px clamp(20px,5vw,56px) 82px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #fff5d81f,inset 0 0 0 28px #452a1638,inset 0 0 120px #00000080}.landing-hero:before{content:"";z-index:-2;background:radial-gradient(circle at 18% 20%,#dcebda1f,#0000 24%),radial-gradient(circle at 82% 18%,#a4c4b31f,#0000 28%),radial-gradient(circle at 66% 76%,#e1ecdc14,#0000 32%),repeating-radial-gradient(circle at 32% 44%,#ffffff0e 0 1px,#0000 1px 8px),linear-gradient(135deg,#0a1f18 0%,#17392d 48%,#071611 100%);border-radius:2px;animation:54s ease-in-out infinite landing-background-cycle;position:absolute;inset:28px;transform:translate(0,0);box-shadow:inset 0 0 42px #0000008a,inset 0 0 0 1px #f4f0da14}.landing-hero:after{content:"";opacity:.52;z-index:-1;background-image:linear-gradient(#eef4e80e 1px,#0000 1px),linear-gradient(90deg,#eef4e80b 1px,#0000 1px),linear-gradient(135deg,#0000 0 46%,#eef4e80d 46% 47%,#0000 47% 100%),linear-gradient(26deg,#0000 0 59%,#ffffff0d 59.2%,#0000 60%),radial-gradient(circle at 78% 28%,#ffffff29 0 1px,#0000 2px);background-size:46px 46px,46px 46px,190px 190px,260px 160px,210px 170px;animation:72s linear infinite landing-grid-drift;position:absolute;inset:28px}.blackboard-smudge{filter:blur(12px);opacity:.28;pointer-events:none;z-index:0;border-radius:999px;position:absolute}.smudge-one{background:#f4f1e02e;width:260px;height:82px;top:18%;left:9%;transform:rotate(-8deg)}.smudge-two{background:#dde8d624;width:320px;height:96px;bottom:18%;right:22%;transform:rotate(7deg)}.chalk-tray{pointer-events:none;z-index:2;background:linear-gradient(#ffedc552,#7e502b6b),linear-gradient(90deg,#6a4425,#c08a50 24%,#7b4e2b 72%,#4e2f19);border-radius:3px 3px 0 0;align-items:end;gap:10px;height:15px;padding:0 22px 8px;display:flex;position:absolute;bottom:28px;left:clamp(28px,5vw,64px);right:clamp(28px,5vw,64px);box-shadow:0 -1px #fff9e647,0 -10px 24px #00000038}.chalk-stick{border-radius:999px;height:7px;display:block;transform:translateY(-2px);box-shadow:inset 0 -1px 2px #00000029,0 1px 4px #00000038}.chalk-white{background:#f5f3e8;width:58px}.chalk-cream{background:#eadfbb;width:44px}.chalk-green{background:#b7d6c5;width:36px}.chalk-eraser{background:linear-gradient(#6c4634,#4a3024 58%,#2f2019 58%),#4a3024;border-radius:4px;width:78px;height:22px;margin-left:auto;display:block;transform:translateY(-5px);box-shadow:0 1px 6px #00000047,inset 0 1px #ffffff1f}@keyframes landing-background-cycle{0%,to{background:radial-gradient(circle at 18% 20%,#dcebda1f,#0000 24%),radial-gradient(circle at 82% 18%,#a4c4b31f,#0000 28%),radial-gradient(circle at 66% 76%,#e1ecdc14,#0000 32%),repeating-radial-gradient(circle at 32% 44%,#ffffff0e 0 1px,#0000 1px 8px),linear-gradient(135deg,#0a1f18 0%,#17392d 48%,#071611 100%);transform:scale(1)translate(0,0)}25%{background:radial-gradient(circle at 30% 70%,#ecefe11a,#0000 30%),radial-gradient(circle at 74% 26%,#94bea61f,#0000 30%),radial-gradient(circle at 50% 48%,#e6ebdc12,#0000 36%),repeating-radial-gradient(circle at 64% 38%,#ffffff0d 0 1px,#0000 1px 9px),linear-gradient(135deg,#071a14 0%,#183d31 52%,#0c211a 100%);transform:scale(1.015)translate(-.6%,.4%)}50%{background:radial-gradient(circle at 76% 68%,#e5eede1a,#0000 34%),radial-gradient(circle at 20% 34%,#9bbda81a,#0000 30%),radial-gradient(circle at 58% 16%,#e6ebdc14,#0000 28%),repeating-radial-gradient(circle at 42% 62%,#ffffff0d 0 1px,#0000 1px 7px),linear-gradient(135deg,#061711 0%,#14362a 48%,#102b22 100%);transform:scale(1.02)translate(.4%,-.5%)}75%{background:radial-gradient(circle at 42% 18%,#e9eee11a,#0000 30%),radial-gradient(circle at 84% 64%,#a2c2ac1a,#0000 30%),radial-gradient(circle at 18% 82%,#e3eddc14,#0000 34%),repeating-radial-gradient(circle at 24% 70%,#ffffff0d 0 1px,#0000 1px 8px),linear-gradient(135deg,#0b2119 0%,#183c30 50%,#071811 100%);transform:scale(1.012)translate(.6%,.3%)}}@keyframes landing-grid-drift{0%{background-position:0 0,0 0,0 0,0 0,0 0}to{background-position:46px 46px,46px 46px,190px 190px,260px 160px,210px 170px}}.landing-hero-copy{z-index:1;max-width:760px;position:relative}.landing-eyebrow{color:#2e7d6b;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800;display:inline-flex}.landing-hero .landing-eyebrow{color:#9bd8c8}.landing-hero h1{color:#f8f4df;letter-spacing:.01em;text-shadow:0 1px #ffffff2e,0 0 1px #ffffff9e,0 3px 14px #00000047;text-wrap:balance;max-width:820px;margin:14px 0 0;font-family:Chalkboard SE,Trebuchet MS,system-ui,sans-serif;font-size:clamp(32px,4.8vw,58px);font-weight:800;line-height:1.12}.landing-hero-philosophy{color:#f8f4dfd6;z-index:1;border-left:2px solid #f8f4df5c;gap:18px;max-width:520px;padding:8px 0 8px 24px;display:grid;position:relative}.landing-hero-philosophy:before{content:"";background:#f8f4df29;border-radius:999px;width:7px;height:7px;position:absolute;top:9px;left:-4px}.landing-hero-philosophy p{color:inherit;text-shadow:0 2px 10px #00000052;margin:0;font-family:Chalkboard SE,Trebuchet MS,system-ui,sans-serif;font-size:clamp(16px,1.45vw,19px);font-weight:700;line-height:1.58}.landing-section{max-width:1120px;margin:0 auto;padding:64px 20px}.landing-section h2{max-width:760px;margin:10px 0 18px;font-size:clamp(28px,4vw,44px);line-height:1.08}.landing-section p{color:var(--muted);max-width:880px;margin:0 0 16px;font-size:17px;line-height:1.65}.landing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px;display:grid}.landing-grid.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:10px;padding:22px;display:grid}.landing-card h3{margin:0;font-size:18px}.landing-card p{margin:0;font-size:15px;line-height:1.55}.hall-pass-section{background:#eef4f1;border:1px solid #2e7d6b2e;border-radius:8px;margin-bottom:32px;padding-left:clamp(20px,4vw,42px);padding-right:clamp(20px,4vw,42px)}.hall-pass-layout{grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);gap:18px;margin-top:24px;display:grid}.hall-pass-workflow-card,.hall-pass-metrics-card{background:#ffffffdb}.hall-pass-flow{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.hall-pass-flow span{color:#315449;background:#fff;border:1px solid #2e7d6b38;border-radius:999px;padding:8px 10px;font-size:13px;font-weight:800}.hall-pass-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.hall-pass-metrics div,.hall-pass-dashboard-metrics div{background:#fff;border:1px solid #2e7d6b29;border-radius:8px;gap:4px;padding:14px;display:grid}.hall-pass-metrics strong,.hall-pass-dashboard-metrics strong{color:var(--brand);font-size:28px;line-height:1}.hall-pass-metrics span,.hall-pass-dashboard-metrics span{color:var(--muted);font-size:12px;line-height:1.3}.privacy-section{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:32px;padding-left:clamp(20px,4vw,42px);padding-right:clamp(20px,4vw,42px)}.pricing-section{border-bottom:1px solid var(--line)}.pricing-layout{grid-template-columns:minmax(0,.9fr) minmax(280px,1.1fr);align-items:start;gap:18px;margin-top:24px;display:grid}.pricing-main{border:1px solid var(--line);background:#fff;border-radius:8px;gap:10px;padding:24px;display:grid}.pricing-main p{margin:0}.pricing-price{color:var(--brand);font-size:clamp(34px,5vw,54px);font-weight:800;line-height:1}.pricing-subprice{color:var(--accent);font-size:15px;font-weight:800}.payment-status{color:#315449;background:#eef4f1;border:1px solid #2e7d6b38;border-radius:8px;padding:10px 12px;font-size:14px}.tax-note{background:#fbfcfd}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px}th{color:var(--muted);text-transform:uppercase;font-size:12px}.teacher-dashboard{grid-template-rows:auto 1fr;height:100vh;min-height:0;display:grid;overflow:hidden}.dashboard-header{color:#fff;z-index:20;background:#123142;justify-content:space-between;align-items:center;gap:24px;padding:22px 34px;display:flex;position:sticky;top:0}.dashboard-header h1{color:#fff;margin:0;font-size:32px;font-weight:700;line-height:1.1}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.header-connect-form{align-items:center;gap:10px;display:flex}.header-connect-form input{background:#fff;min-width:280px;min-height:38px;padding:8px 10px}.header-links{color:#ffffff7a;flex-wrap:wrap;align-items:center;gap:8px;margin-top:7px;display:flex}.header-link{color:#ffffffdb;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;font-weight:700;text-decoration:underline;display:inline-flex}.workspace-indicator{color:#ffffffb8;margin-top:7px;font-size:12px;font-weight:700}.tool-switcher{align-items:center;gap:8px;margin-top:14px;display:inline-flex}.tool-switch-button{color:#ffffffdb;cursor:pointer;background:#ffffff14;border:1px solid #ffffff47;border-radius:999px;min-height:34px;padding:0 14px;font-size:13px;font-weight:800}.tool-switch-button.selected{color:var(--brand);background:#fff;border-color:#fff}.setup-button{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff59;border-radius:6px;align-items:center;min-height:38px;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.setup-button:disabled{cursor:not-allowed;opacity:.55}.label{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.status-dot{background:#a7b4bc;border-radius:999px;width:10px;height:10px;display:inline-block}.status-dot.ok{background:var(--accent)}.dashboard-layout{grid-template-columns:minmax(280px,360px) minmax(430px,1fr) minmax(340px,.72fr);gap:24px;height:100%;min-height:0;padding:24px;display:grid;overflow:hidden}.hall-pass-workspace{gap:24px;min-height:0;padding:24px;display:grid;overflow:auto}.hall-pass-hero-panel{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(300px,.56fr);align-items:stretch;gap:22px;padding:24px;display:grid}.hall-pass-hero-panel h2,.hall-pass-report-panel h3{margin:8px 0 10px}.hall-pass-hero-panel p,.hall-pass-report-panel p{color:var(--muted);margin:0;font-size:15px;line-height:1.55}.hall-pass-connect-card{background:#eef4f1;border:1px solid #2e7d6b2e;border-radius:8px;gap:10px;padding:18px;display:grid}.hall-pass-connect-card .setup-button{background:var(--ink);border-color:var(--ink);color:#fff;justify-content:center}.hall-pass-kiosk-panel{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,.72fr) minmax(320px,1fr);gap:24px;padding:24px;display:grid}.hall-pass-kiosk-panel h2{margin:8px 0 12px;font-size:clamp(28px,4vw,46px);line-height:1.05}.hall-pass-kiosk-panel p,.hall-pass-recent-panel p{color:var(--muted);margin:0;font-size:15px;line-height:1.55}.hall-pass-kiosk-form{gap:16px;display:grid}.hall-pass-kiosk-form label,.hall-pass-kiosk-form fieldset{border:0;gap:8px;margin:0;padding:0;font-size:14px;font-weight:800;display:grid}.hall-pass-kiosk-form input{border:1px solid var(--line);border-radius:8px;min-height:56px;padding:12px 14px;font-size:20px}.hall-pass-kiosk-form legend{margin-bottom:8px;font-size:14px;font-weight:800}.hall-pass-kiosk-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.hall-pass-kiosk-actions button,.hall-pass-submit-button{border:1px solid var(--line);cursor:pointer;border-radius:8px;min-height:62px;font-size:20px;font-weight:800}.hall-pass-kiosk-actions button{color:var(--ink);background:#fff}.hall-pass-kiosk-actions button.selected,.hall-pass-submit-button{background:var(--ink);border-color:var(--ink);color:#fff}.hall-pass-confirmation{color:#315449;background:#eef4f1;border:1px solid #2e7d6b38;border-radius:8px;padding:14px;font-size:16px;font-weight:800}.hall-pass-field-list{flex-wrap:wrap;gap:8px;display:flex}.hall-pass-field-list span{color:#315449;background:#fff;border:1px solid #2e7d6b33;border-radius:999px;padding:7px 9px;font-size:12px;font-weight:800}.hall-pass-current-panel,.hall-pass-summary-panel,.hall-pass-recent-panel,.hall-pass-analysis-panel{border:1px solid var(--line);background:#fff;border-radius:8px;gap:16px;padding:20px;display:grid}.hall-pass-current-panel h3,.hall-pass-summary-panel h3,.hall-pass-recent-panel h3,.hall-pass-analysis-panel h3{margin:8px 0 0}.hall-pass-current-panel p,.hall-pass-summary-panel p,.hall-pass-recent-panel p,.hall-pass-analysis-panel p{color:var(--muted);margin:0;font-size:15px;line-height:1.55}.hall-pass-active-card-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.hall-pass-active-card{background:#f7fafc;border:1px solid #cbd8df;border-radius:8px;gap:14px;padding:20px;display:grid}.hall-pass-card-header,.hall-pass-student-averages{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.hall-pass-active-card strong{color:var(--brand);font-size:24px;line-height:1}.hall-pass-active-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.hall-pass-live-timer{font-size:34px!important}.hall-pass-timer-block{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;padding:14px;display:grid}.hall-pass-timer-block p{color:var(--ink);font-weight:800}.hall-pass-student-averages{border-top:1px solid var(--line);padding-top:14px}.hall-pass-student-averages strong{font-size:20px}.hall-pass-return-button{background:var(--ink);border:1px solid var(--ink);color:#fff;cursor:pointer;border-radius:8px;min-height:46px;font-size:16px;font-weight:800}.hall-pass-summary-grid,.hall-pass-analysis-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.hall-pass-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hall-pass-summary-card,.hall-pass-analysis-grid div{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;padding:16px;display:grid}.hall-pass-summary-card strong,.hall-pass-analysis-grid strong{color:var(--brand);font-size:26px;line-height:1}.hall-pass-event-list{gap:8px;display:grid;overflow:auto}.hall-pass-event-row{border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(130px,1fr) repeat(4,minmax(90px,auto));align-items:center;gap:8px;padding:12px;display:grid}.hall-pass-event-row.compact{grid-template-columns:minmax(120px,1fr) repeat(3,minmax(90px,auto))}.hall-pass-event-row.heading{background:#f7fafc;font-weight:800}.hall-pass-event-row span{color:var(--muted);font-size:13px}.hall-pass-student-nav-card{gap:8px}.hall-pass-current-list-panel{grid-template-rows:auto auto auto auto minmax(120px,.85fr) auto minmax(180px,1fr)}.hall-pass-search-panel{border-bottom:1px solid var(--line);gap:10px;padding:12px;display:grid}.hall-pass-search-panel input{border:1px solid var(--line);font:inherit;border-radius:8px;min-width:0;padding:11px 12px}.hall-pass-insights-button{border:1px solid var(--line);cursor:pointer;text-align:left;background:#f7fafc;border-radius:8px;gap:4px;margin:12px;padding:14px;display:grid}.hall-pass-insights-button strong{color:var(--ink);font-size:15px}.hall-pass-insights-button span{color:var(--muted);font-size:12px;font-weight:700}.hall-pass-insights-button.selected{box-shadow:inset 4px 0 0 var(--brand);background:#eef5f1;border-color:#28644e59}.hall-pass-search-results{gap:8px;display:grid}.hall-pass-search-result{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:8px;gap:4px;padding:10px;display:grid}.hall-pass-search-result.selected,.hall-pass-history-card.selected{border-color:var(--accent);box-shadow:inset 4px 0 0 var(--accent)}.hall-pass-recent-title{border-top:1px solid var(--line)}.hall-pass-left-history{gap:10px;padding:12px;display:grid;overflow:auto}.hall-pass-history-card{border:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;border-radius:8px;gap:5px;padding:12px;display:grid}.hall-pass-history-card strong{color:var(--ink);font-size:14px;line-height:1.2}.hall-pass-history-card span{color:var(--muted);font-size:12px;font-weight:700}.hall-pass-nav-detail,.hall-pass-nav-time{color:var(--muted);font-size:13px;font-weight:700}.hall-pass-nav-time{color:var(--brand)}.hall-pass-status-chip{border:1px solid var(--line);color:var(--muted);border-radius:999px;justify-self:start;padding:6px 9px;font-size:12px;font-weight:800;display:inline-flex}.hall-pass-status-chip.out{color:#8a560f;background:#b472181a;border-color:#b4721859}.hall-pass-status-chip.returned{color:#2e6f56;background:#2e7d6b1a;border-color:#2e7d6b59}.hall-pass-selected-status{gap:16px;display:grid}.hall-pass-empty-status{color:var(--muted);text-align:center;align-items:center;min-height:260px;padding:28px;font-size:18px;line-height:1.45;display:grid}.hall-pass-admin-dashboard{gap:18px;padding-bottom:20px;display:grid}.hall-pass-admin-metrics{grid-template-columns:repeat(5,minmax(110px,1fr))}.hall-pass-today-metrics{grid-template-columns:repeat(4,minmax(120px,1fr))}.hall-pass-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 20px;display:grid}.hall-pass-insight-card,.hall-pass-pattern-notes{border:1px solid var(--line);background:#fff;border-radius:8px;gap:10px;padding:16px;display:grid}.hall-pass-insight-card p,.hall-pass-pattern-notes p{color:var(--muted);justify-content:space-between;align-items:start;gap:10px;margin:0;font-size:13px;line-height:1.4;display:flex}.hall-pass-insight-card strong{color:var(--ink)}.hall-pass-insight-card span{color:var(--brand);white-space:nowrap;font-weight:800}.hall-pass-notable-trends-card{grid-column:1/-1}.hall-pass-notable-trends-card p{display:block}.hall-pass-pattern-notes{margin:0 20px}.hall-pass-pattern-notes p{display:block}.hall-pass-weekday-summary,.hall-pass-pass-log{border:1px solid var(--line);background:#fff;border-radius:8px;gap:12px;margin:0 20px;padding:16px;display:grid}.hall-pass-weekday-table{border-collapse:collapse;width:100%;font-size:13px}.hall-pass-weekday-table th,.hall-pass-weekday-table td{border-bottom:1px solid var(--line);text-align:left;padding:9px 8px}.hall-pass-weekday-table th{color:var(--ink);text-transform:uppercase;font-size:12px}.hall-pass-pass-log-day{gap:8px;display:grid}.hall-pass-pass-log-day h3{color:var(--ink);margin:4px 0 0;font-size:15px}.hall-pass-pass-log-entry{color:var(--muted);border-left:3px solid #2e7d6b47;gap:3px;padding:2px 0 8px 12px;display:grid}.hall-pass-pass-log-entry strong{color:var(--ink);font-size:14px}.hall-pass-pass-log-entry span{font-size:13px}.hall-pass-note-block{border:1px solid var(--line);background:#fff;border-radius:8px;gap:6px;padding:12px;display:grid}.hall-pass-student-detail-panel{gap:16px;display:grid}.hall-pass-manual-form{gap:10px;display:grid}.hall-pass-range-controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.hall-pass-pattern-heading{grid-template-columns:minmax(0,1fr) minmax(240px,320px);align-items:start;gap:12px;display:grid}.hall-pass-pattern-heading .inspector-text{margin:4px 0 0}.hall-pass-custom-range{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px;display:grid}.hall-pass-custom-range label{color:var(--muted);text-transform:uppercase;gap:6px;font-size:12px;font-weight:800;display:grid}.hall-pass-custom-range input{border:1px solid var(--line);color:var(--ink);font:inherit;text-transform:none;border-radius:8px;padding:10px 12px}.hall-pass-danger-card{border-color:#a6363659;box-shadow:inset 4px 0 #a63636}.workflow-action-control.danger{color:#fff;background:#a63636;border-color:#a63636}.hall-pass-manual-form input{border:1px solid var(--line);font:inherit;border-radius:8px;min-width:0;padding:11px 12px}.assignment-sidebar,.dashboard-workspace,.control-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;align-self:stretch;min-width:0;min-height:0;overflow:hidden}.assignment-sidebar{grid-template-rows:auto 1fr;display:grid}.dashboard-workspace{grid-template-rows:auto auto auto auto 1fr auto;display:grid;overflow:auto}.control-panel{flex-direction:column;display:flex}.panel-title{border-bottom:1px solid var(--line);padding:16px 20px;font-size:16px;font-weight:700}.panel-note{color:var(--muted);padding:14px 20px 0;font-size:14px;line-height:1.45}.assignment-list{gap:12px;min-height:0;padding:18px;display:grid;overflow:auto}.assignment-card{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fff;border-radius:8px;gap:8px;width:100%;padding:15px 16px;display:grid}.assignment-card.selected{background:#eef4ff;border-color:#1d5fd1}.assignment-name{overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:1.25}.assignment-meta{color:var(--muted);font-size:12px;line-height:1.35}.assignment-pill{border:1px solid var(--line);color:var(--muted);border-radius:999px;place-self:start;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.assignment-card.selected .assignment-pill{color:#194fba;border-color:#9bbcf6}.empty-list{color:var(--muted);padding:16px;font-size:14px;line-height:1.45}.status-panel{gap:0;display:grid}.active-assignment-summary{border-bottom:1px solid var(--line);gap:8px;padding:20px 20px 18px;display:grid}.active-assignment-name{overflow-wrap:anywhere;margin-top:0;font-size:22px;font-weight:700;line-height:1.25;display:block}.metrics{grid-template-columns:repeat(4,minmax(120px,1fr));gap:16px;padding:0 20px 20px;display:grid}.metric{border:1px solid var(--line);border-radius:8px;padding:18px}.metric-number{font-size:34px;font-weight:700;line-height:1;display:block}.metric-number.ok{color:#0f8a5f}.metric-number.warn{color:#b7791f}.metric-number.bad{color:#c2410c}.metric-label{color:var(--muted);text-transform:none;margin-top:8px;font-size:13px;font-weight:400}.legend{flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 20px 0;display:flex}.legend-item{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.legend-dot{border-radius:999px;width:10px;height:10px;display:inline-block}.legend-dot.red{background:#e9a69a}.legend-dot.yellow{background:#d7a51e}.legend-dot.attention{background:#c2410c}.legend-dot.green{background:#7dc395}.actions{grid-template-columns:1fr;gap:14px;padding:20px;display:grid}.action-button{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fff;border-radius:8px;gap:10px;min-height:78px;padding:16px 18px;font-size:15px;font-weight:700;display:grid}.step-state-blocked,.step-state-coming-soon{background:#fff7f5;border-color:#f2c6bd}.step-state-recommended{background:#fff9e8;border-color:#e8c766;box-shadow:inset 4px 0 #d7a51e}.step-state-needs-attention{background:#fff7f5;border-color:#e9a69a;box-shadow:inset 4px 0 #c2410c}.step-state-complete{background:#f2fbf6;border-color:#b9dcc7}.step-title{line-height:1.25}.step-help{color:var(--muted);font-size:13px;font-weight:400;line-height:1.35}.step-status{letter-spacing:0;border-radius:999px;justify-self:start;align-items:center;padding:4px 8px;font-size:11px;font-weight:700;display:inline-flex}.step-action-row{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.workflow-action-control{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;min-height:38px;padding:0 12px;font-size:13px;font-weight:700}.workflow-action-control.primary{background:var(--ink);border-color:var(--ink);color:#fff}.step-state-recommended .workflow-action-control.primary{background:#9a6a0a;border-color:#9a6a0a}.workflow-action-control:disabled{cursor:not-allowed;opacity:.55}.hall-pass-dashboard-metrics{grid-template-columns:repeat(4,minmax(110px,1fr));gap:12px;display:grid}.hall-pass-dashboard-actions{flex-wrap:wrap;gap:10px;display:flex}.workflow-progress-note{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.mini-spinner,.grading-spinner{border:2px solid #1231422e;border-top-color:var(--accent);border-radius:999px;flex:none;width:16px;height:16px;animation:.9s linear infinite teacheros-spin;display:inline-block}.step-state-blocked .step-status,.step-state-coming-soon .step-status{color:#9b2f20;background:#f9ddd7}.step-state-recommended .step-status{color:#72510a;background:#f7e8ad}.step-state-needs-attention .step-status{color:#9b2f20;background:#f9ddd7}.step-state-complete .step-status{color:#18623a;background:#d8efe1}.message-line{border-top:1px solid var(--line);color:var(--muted);padding:16px 20px;font-size:14px;line-height:1.4}.control-body{flex:auto;grid-auto-rows:max-content;gap:16px;min-height:0;padding:20px 20px 28px;display:grid;overflow:auto}.control-card{border:1px solid var(--line);border-radius:8px;gap:8px;padding:14px;display:grid}.control-card.compact{gap:6px;padding:12px}.control-stack,.profile-list{gap:10px;display:grid}.inspector-heading{margin:0;font-size:20px;font-weight:700;line-height:1.2}.inspector-text{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.inspector-list{color:var(--muted);margin:0;padding-left:18px;font-size:14px;line-height:1.5}.status-good{color:#0f8a5f;font-weight:700}.status-bad{color:#c2410c;font-weight:700}.inspector-actions{flex-wrap:wrap;gap:10px;width:100%;display:flex}.inspector-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:8px;align-items:center;min-height:38px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.inspector-button.primary{background:var(--ink);border-color:var(--ink);color:#fff}.inspector-button.selected{border-color:var(--accent);color:#195d4f;background:#e3f2ec}.grading-progress-card{background:#f2fbf6;border:1px solid #b9dcc7;border-radius:8px;align-items:center;gap:12px;padding:14px;display:flex}.grading-spinner{width:24px;height:24px}@keyframes teacheros-spin{to{transform:rotate(360deg)}}.student-select,.notes-editor{border:1px solid var(--line);font:inherit;border-radius:8px;width:100%;padding:10px}.notes-editor{resize:vertical;min-height:120px}.prompt-editor{white-space:pre;min-height:420px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.results-table{min-width:760px}.score-band-list{gap:14px;display:grid}.score-band-card{border:1px solid var(--line);border-radius:8px;gap:10px;padding:14px;display:grid}.score-band-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 12px;display:flex}.feedback-preview-list{gap:12px;display:grid}.feedback-preview-body{border:1px solid var(--line);color:var(--ink);white-space:pre-wrap;background:#f7fafc;border-radius:8px;margin:0;padding:12px;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:1.5;overflow:auto}.print-results-report{display:none}.option-card{border:1px solid var(--line);border-radius:8px;gap:8px;padding:14px;display:grid}.option-card.selected{background:#eef4ff;border-color:#1d5fd1}.option-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.option-title{font-size:15px;font-weight:700;line-height:1.25}.selected-badge{color:#194fba;background:#dce9ff;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;display:none}.option-card.selected .selected-badge{display:inline-flex}.value{overflow-wrap:anywhere;font-size:15px;line-height:1.35}.mini-metrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.mini-metrics div{border:1px solid var(--line);background:#ffffffb8;border-radius:8px;gap:3px;padding:10px;display:grid}.mini-metrics strong{color:var(--ink);font-size:20px;line-height:1}.mini-metrics span{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.issue-list{color:var(--muted);gap:8px;margin:0;padding-left:18px;font-size:13px;line-height:1.45;display:grid}.technical-details{border:1px solid var(--line);border-radius:8px;gap:12px;padding:14px;display:grid}.technical-details summary{color:var(--ink);cursor:pointer;font-size:14px;font-weight:700}.technical-details[open] summary{margin-bottom:2px}.structure-table-wrap{max-width:100%;overflow:auto}.structure-table{min-width:420px}.structure-table td,.structure-table th{padding:8px;font-size:12px}.weight-input{min-width:88px;padding:8px}.tab-list{gap:8px;display:grid}.tab-chip{border:1px solid var(--line);border-radius:8px;gap:4px;padding:10px;display:grid}.tab-chip span{color:var(--muted);font-size:12px}.tab-chip.source{border-color:#2e7d6b73}.tab-chip.grading{border-color:#12314280}.tab-chip.results{border-color:#b4721873}@media (max-width:860px){.landing-header{align-items:flex-start;gap:14px;display:grid}.landing-nav{justify-content:flex-start}.landing-hero{grid-template-columns:1fr;padding-top:54px}.chalk-tray{left:28px;right:28px}.chalk-eraser{width:58px}.landing-grid,.landing-grid.two-column,.hall-pass-layout,.pricing-layout{grid-template-columns:1fr}.hall-pass-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-dashboard{height:auto;min-height:100vh;overflow:visible}.dashboard-header,.header-actions,.header-connect-form,.dashboard-layout,.hall-pass-hero-panel,.hall-pass-kiosk-panel,.hall-pass-report-panel{grid-template-columns:1fr;display:grid}.dashboard-header{align-items:start;padding:20px}.header-connect-form input{min-width:0}.dashboard-layout{height:auto;padding:18px;overflow:visible}.hall-pass-workspace{padding:18px;overflow:visible}.hall-pass-section-grid,.hall-pass-active-card-grid,.hall-pass-summary-grid,.hall-pass-analysis-grid,.hall-pass-admin-metrics,.hall-pass-today-metrics,.hall-pass-insight-grid,.hall-pass-pattern-heading,.hall-pass-custom-range,.hall-pass-range-controls,.hall-pass-card-header,.hall-pass-student-averages,.hall-pass-event-row,.hall-pass-event-row.compact{grid-template-columns:1fr}.assignment-sidebar,.dashboard-workspace,.control-panel{overflow:visible}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.landing-header{align-items:flex-start;gap:14px;display:grid}.landing-nav{justify-content:stretch;width:100%}.landing-nav-button{justify-content:center}.metrics{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.landing-hero:before,.landing-hero:after{animation:none}}@media print{@page{margin:.6in}body{color:#111827;background:#fff}body *{visibility:hidden}.print-results-report,.print-results-report *,.hall-pass-print-report,.hall-pass-print-report *{visibility:visible}.print-results-report,.hall-pass-print-report{color:#111827;width:100%;font-family:Arial,Helvetica,sans-serif;display:block;position:absolute;top:0;left:0}.hall-pass-print-report .hall-pass-return-button{display:none}.hall-pass-print-report{border:0;gap:12px}.hall-pass-print-report .active-assignment-summary,.hall-pass-print-report .hall-pass-timer-block,.hall-pass-print-report .hall-pass-note-block,.hall-pass-print-report .metrics,.hall-pass-print-report .metric,.hall-pass-print-report .hall-pass-pattern-notes,.hall-pass-print-report .hall-pass-weekday-summary,.hall-pass-print-report .hall-pass-pass-log,.hall-pass-print-report .hall-pass-pass-log-day,.hall-pass-print-report .hall-pass-pass-log-entry{break-inside:avoid;page-break-inside:avoid}.hall-pass-print-report .panel-title,.hall-pass-print-report .label{break-after:avoid;page-break-after:avoid}.hall-pass-print-report .metrics{grid-template-columns:repeat(3,minmax(0,1fr));padding:0}.hall-pass-print-report .metric{padding:10px}.hall-pass-print-report .metric-number{font-size:20px}.hall-pass-print-report .hall-pass-live-timer{font-size:24px!important}.hall-pass-print-report .hall-pass-pattern-notes,.hall-pass-print-report .hall-pass-weekday-summary,.hall-pass-print-report .hall-pass-pass-log{margin:0}.hall-pass-print-report .hall-pass-weekday-table th,.hall-pass-print-report .hall-pass-weekday-table td{padding:6px}.print-results-report h1{color:#123142;margin:0 0 4px;font-size:24px}.print-results-report h2{margin:0 0 16px;font-size:18px}.print-report-meta{border-bottom:1px solid #d1d5db;gap:4px;margin-bottom:18px;padding-bottom:12px;display:grid}.print-insights{border:1px solid #d1d5db;margin-bottom:18px;padding:10px 12px}.print-insights h3{color:#123142;margin:0 0 6px;font-size:13px}.print-insights ul{margin:0;padding-left:18px}.print-insights li{margin-bottom:3px;font-size:11px;line-height:1.4}.print-band-section{break-inside:avoid;margin-bottom:18px}.print-band-section h3{color:#123142;margin:0 0 6px;font-size:13px}.print-report-meta p{margin:0;font-size:12px}.print-results-table{border-collapse:collapse;width:100%;font-size:10px}.print-results-table th,.print-results-table td{text-align:left;vertical-align:top;border:1px solid #d1d5db;padding:6px}.print-results-table th{color:#123142;text-transform:uppercase;background:#eef4f7;font-size:9px}}.landing-hero-tagline{color:#f1ecd4;text-shadow:0 2px 10px #0000004d;max-width:680px;margin:12px 0 0;font-family:Chalkboard SE,Trebuchet MS,system-ui,sans-serif;font-size:clamp(20px,2.4vw,30px);font-weight:700;line-height:1.3}.landing-hero-body p{font-weight:500}.landing-hero-actions{z-index:1;flex-wrap:wrap;gap:12px;margin-top:24px;display:flex;position:relative}.card-points{color:var(--muted);gap:8px;margin:4px 0 0;padding:0;list-style:none;display:grid}.card-points li{padding-left:20px;font-size:15px;line-height:1.5;position:relative}.card-points li:before{background:var(--accent);content:"";border-radius:999px;width:6px;height:6px;position:absolute;top:8px;left:2px}
