@font-face{font-family:Oxanium;src:url("/static/fonts/oxanium-variable.ttf") format("truetype");font-style:normal;font-weight:200 800;font-display:swap}
:root{--charcoal:#17231B;--paper:#F5F8F2;--nuclear:#91F24E;--forest:#176B36;--sage:#DCE8D7;--amber:#D4A72C;--navy:var(--charcoal);--blue:var(--forest);--ink:var(--charcoal);--muted:var(--forest);--line:var(--sage);--green:var(--forest);--mint:var(--sage);--red:var(--amber);--nuclear-soft:var(--sage);--nuclear-glow:var(--nuclear)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:500 16px/1.55 sans-serif}.shell{max-width:780px;margin:0 auto;padding:clamp(24px,5vw,64px)}.shell.wide{max-width:1120px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;color:var(--blue);margin:0 0 9px}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:30px}.top h1,h1{font-size:clamp(30px,5vw,46px);line-height:1.08;letter-spacing:-.04em;margin:0 0 9px;color:var(--navy)}h2{font-size:22px;margin:0 0 12px;letter-spacing:-.02em}h3{font-size:18px;margin:10px 0 0}.lede{font-size:19px;color:#176B36;max-width:620px}.muted{color:var(--muted);margin:.3em 0}.card,.session-card{display:block;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:25px;margin:18px 0;text-decoration:none;color:inherit;box-shadow:0 8px 26px color-mix(in srgb,var(--charcoal) 5%,transparent)}.student-card{max-width:700px;margin:30px auto}.status{font-weight:800}.status.good{color:var(--green)}.status.pending{color:var(--charcoal)}.status.quiet{color:var(--muted)}.button{display:inline-flex;gap:10px;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--blue);color:var(--paper);text-decoration:none;padding:12px 17px;font:700 14px sans-serif;cursor:pointer}.button.secondary{background:#F5F8F2;color:var(--navy)}.notice{border-radius:12px;padding:13px 16px;margin:14px 0;background:#F5F8F2}.notice.success{background:var(--mint);color:var(--green)}.notice.pending,.notice.warning{background:var(--sage);color:var(--charcoal)}.notice.error{background:var(--sage);color:var(--charcoal);border-left:4px solid var(--amber)}.settings-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.settings-form label{display:grid;gap:5px;font-size:13px;font-weight:700}.settings-form input{width:145px;padding:10px;border:1px solid var(--line);border-radius:9px;font:inherit}.section-head{display:flex;align-items:center;justify-content:space-between;margin-top:32px}.section-head h2{margin:0}.session-card{display:grid;grid-template-columns:minmax(0,1fr) 140px 130px 20px;align-items:center;gap:18px;transition:transform .15s,border .15s}.session-card:hover{transform:translateY(-2px);border-color:#DCE8D7}.session-card h3{color:var(--navy)}.pill{display:inline-block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:800;border-radius:999px;padding:4px 9px;background:#F5F8F2;color:#176B36}.pill.ongoing{background:var(--mint);color:var(--green)}.pill.closed{background:#F5F8F2;color:#176B36}.pill.expired{background:var(--amber);color:var(--charcoal)}.pill.forming{background:var(--sage);color:var(--charcoal)}.metric{display:grid;text-align:right}.metric strong{font-size:23px;color:var(--navy)}.metric span,.footnote{font-size:12px;color:var(--muted)}.arrow{font-size:23px;color:var(--blue)}.back{display:inline-block;margin-bottom:20px;text-decoration:none;color:var(--blue);font-weight:700}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metrics .card{display:grid;margin:15px 0}.metrics strong{font-size:25px;color:var(--navy)}.roster{overflow:auto}.roster table{width:100%;border-collapse:collapse}.roster th,.roster td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.roster th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.empty{text-align:center;color:var(--muted)}.endpoint{margin-top:55px;font-size:12px;color:var(--muted)}.endpoint code{display:block;overflow-wrap:anywhere}.footnote{text-align:center;margin:30px 0}@media(max-width:720px){.session-card{grid-template-columns:minmax(0,1fr) 94px 82px 12px;gap:9px;padding:17px}.metric strong{font-size:18px}.settings-form{align-items:stretch;display:grid}.settings-form input{width:100%}.top{display:block}.top>.button{margin-top:15px}}@media(max-width:480px){.session-card{grid-template-columns:1fr 90px}.metric{text-align:left}.arrow{display:none}.metrics{grid-template-columns:1fr}.metrics .card{margin:5px 0}}
.attendance-toggle{width:150px;min-width:150px}.attendance-toggle.is-registered{background:var(--mint);color:var(--green)}

.pill.demo{background:#F5F8F2;color:var(--blue)}
.pill.admin-badge{background:#F5F8F2;color:#176B36}
.session-controls{display:flex;align-items:center;gap:12px}.course-filter{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;font-weight:700}.course-filter select{max-width:min(42vw,330px);padding:9px 30px 9px 11px;border:1px solid var(--line);border-radius:9px;background:#F5F8F2;color:var(--ink);font:600 13px sans-serif}.heat-session small{font-weight:700;letter-spacing:.02em}
.access-form{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.access-form label{display:flex;align-items:center;gap:8px;font-weight:650}.access-form input{width:17px;height:17px;accent-color:var(--blue)}
.dashboard-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:28px 0 18px}.dashboard-tab{padding:11px 16px;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font:700 14px sans-serif;cursor:pointer}.dashboard-tab[aria-selected="true"]{border-bottom-color:var(--blue);color:var(--navy)}.dashboard-tab-panel[hidden]{display:none!important}.dashboard-tab-panel>.card{margin-top:0}
.course-overview-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:22px 0 8px}.course-overview-metrics .card{display:grid;gap:3px;margin:0}.course-overview-metrics strong{font-size:30px;color:var(--navy)}.course-overview-metrics span{font-weight:700}.course-overview-metrics small{font-size:12px;color:var(--muted)}@media(max-width:600px){.course-overview-metrics{grid-template-columns:1fr}}
.student-summary{overflow:hidden}.student-summary .section-head{margin:0 0 12px}.student-table-scroll{overflow-x:auto}.student-summary table{width:100%;border-collapse:collapse;min-width:520px}.student-summary th,.student-summary td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}.student-summary th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.student-summary td strong,.student-summary td small{display:block}.student-summary td small{font-size:11px;color:var(--muted)}
.student-search{display:grid;grid-template-columns:minmax(220px,340px) 1fr auto;align-items:center;gap:5px 10px;margin:16px 0;color:var(--muted);font-size:13px;font-weight:700}.student-search label{grid-column:1/-1}.student-search input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font:500 14px sans-serif;color:var(--ink)}.student-search input:focus{outline:2px solid #176B36;border-color:var(--blue)}.student-search small{font-size:11px;font-weight:500}.student-search .muted{justify-self:end;font-size:12px}.student-sort{border:0;background:none;padding:0;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}.student-sort:hover{color:var(--blue)}.student-sort span{margin-left:4px}
.student-record-link{color:var(--blue);font-weight:700;text-decoration:none}.student-record-link:hover{text-decoration:underline}.student-record-sessions{margin-top:24px}
.student-record-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.student-record-nav .back{margin-bottom:0}
.back-fixed{position:fixed;top:14px;right:16px;z-index:1000;margin:0;padding:9px 13px;background:#F5F8F2;border:1px solid var(--line);border-radius:10px;box-shadow:0 5px 18px color-mix(in srgb,var(--charcoal) 8%,transparent)}
.student-record-fixed-actions{position:fixed;top:14px;right:16px;z-index:1000;display:flex;align-items:center;gap:8px}.student-record-fixed-actions .back-fixed{position:static;z-index:auto}
.student-record-course-action{margin:12px 0 0}
.student-record-sort{border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;cursor:pointer}.student-record-sort span{margin-left:4px}
.student-record-session-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.student-record-session-heading h2{margin:0}.student-record-sessions .calendar-panel{margin:0}.student-session-heat{min-height:48px}
@media(max-width:720px){.session-controls{align-items:flex-end;flex-direction:column}.course-filter{max-width:100%;flex-wrap:wrap}.course-filter select{max-width:100%}}

.view-toggle{display:flex;gap:6px}.view-toggle .button{padding:9px 14px}.view-button[aria-pressed="true"]{background:var(--navy);color:#F5F8F2}.session-section .section-head>div:first-child{display:flex;align-items:baseline;gap:12px}.session-section .section-head h2{margin:0}.calendar-panel{padding:22px;overflow:hidden}.heatmap-legend{display:flex;align-items:center;gap:6px;justify-content:flex-end;font-size:12px;color:var(--muted);margin:12px 0}.heatmap-legend i{width:14px;height:14px;border-radius:4px}.heatmap-scroll{overflow-x:auto;padding-bottom:4px}.heatmap-grid{display:grid;grid-template-columns:56px repeat(7,minmax(84px,1fr));gap:6px;min-width:690px}.heatmap-week-heading,.heatmap-day-heading{font-size:11px;font-weight:800;text-align:center;color:var(--muted);padding:5px 2px}.heatmap-week-label{font-size:11px;color:var(--muted);align-self:center;text-align:right;padding-right:7px}.heatmap-day{min-height:78px;padding:5px;border:1px solid var(--line);border-radius:10px;background:var(--paper);display:flex;flex-direction:column;gap:4px}.heatmap-day.no-session{background:#F5F8F2}.heatmap-date{font-size:11px;color:var(--muted);line-height:1}.heat-session{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:48px;border-radius:7px;text-decoration:none;color:var(--ink);font-size:12px;line-height:1.2;transition:transform .12s,box-shadow .12s}.heat-session:hover{transform:scale(1.04);box-shadow:0 3px 10px color-mix(in srgb,var(--charcoal) 12%,transparent)}.heat-session strong{font-size:14px}.heat-session small{font-size:10px}.heat-0{background:#F5F8F2;color:#176B36}.heat-1{background:#DCE8D7;color:#176B36}.heat-2{background:#DCE8D7;color:#176B36}.heat-3{background:#91F24E;color:#17231B}.heat-4{background:#176B36;color:var(--paper)}.session-list[hidden],.calendar-panel[hidden]{display:none!important}@media(max-width:720px){.session-section .section-head{align-items:flex-end}.session-section .section-head>div:first-child{display:block}.view-toggle .button{padding:8px 11px}}
.calendar-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}.calendar-controls .heatmap-legend{margin:0 0 0 auto}.heatmap-grid{display:block;min-width:690px}.heatmap-header-row,.heatmap-week-row{display:grid;grid-template-columns:56px repeat(7,minmax(84px,1fr));gap:6px}.heatmap-weeks{display:grid;gap:6px}.heatmap-week-row{min-height:78px}#reverse-time[aria-pressed="true"]{background:var(--navy);color:var(--paper)}
@media(max-width:720px){.calendar-controls .heatmap-legend{margin-left:0}.calendar-controls #calendar-order{margin-right:auto}}

@media(max-width:720px){.metrics{grid-template-columns:repeat(2,1fr)}}
.metrics{gap:8px}.metrics .card{padding:14px 16px;margin:4px 0;border-radius:12px;box-shadow:none}.metrics strong{font-size:21px}.metrics span{font-size:11px;color:var(--muted)}.course-overview-metrics{gap:9px;margin:14px 0 4px}.course-overview-metrics .card{padding:13px 17px;border-radius:12px;box-shadow:none;background:#F5F8F2}.course-overview-metrics strong{font-size:23px}.course-overview-metrics span{font-size:12px}.course-overview-metrics small{font-size:11px}
.student-attendance-page .shell{max-width:1120px}.student-dashboard{max-width:1000px;margin:34px auto}.student-dashboard h2{margin:0 0 4px}.student-dashboard>p{margin:0 0 16px}.student-dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.student-dashboard-metrics .card{margin:0;padding:18px;display:grid;align-content:start;gap:5px}.student-dashboard-metrics .card span,.student-dashboard-metrics .card small{color:var(--muted);font-size:12px}.student-dashboard-metrics .card strong{font-size:28px;color:var(--navy)}.student-course-history{margin-top:16px}.student-course-history table{width:100%;border-collapse:collapse}.student-course-history th,.student-course-history td{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.student-course-history th{text-transform:uppercase;font-size:11px;color:var(--muted);letter-spacing:.06em}.student-course-history td small{display:block;color:var(--muted);font-size:11px}@media(max-width:850px){.student-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.student-dashboard-metrics{grid-template-columns:1fr}.student-course-history{padding:16px}.student-course-history th,.student-course-history td{padding:9px 7px;font-size:12px}}
.student-session-history{margin-top:16px}.student-session-history-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.student-session-history-head h3{margin:0}.student-history-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.student-history-list{overflow-x:auto}.student-history-list table{width:100%;border-collapse:collapse}.student-history-list th,.student-history-list td{text-align:left;padding:11px;border-bottom:1px solid var(--line)}.student-history-list th{text-transform:uppercase;font-size:11px;color:var(--muted);letter-spacing:.06em}.student-history-panel[hidden],[data-view-panel][hidden]{display:none!important}@media(max-width:720px){.student-session-history-head{align-items:flex-start}.student-history-controls{width:100%;justify-content:space-between}.student-history-controls .view-toggle .button{padding:8px 10px}}
.student-dashboard-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:0 auto 20px;max-width:1000px}.student-dashboard-tab{border:0;border-bottom:3px solid transparent;background:transparent;padding:10px 16px;color:var(--muted);font:700 14px sans-serif;cursor:pointer}.student-dashboard-tab[aria-selected=true]{border-bottom-color:var(--navy);color:var(--navy)}.student-dashboard-tab-panel[hidden]{display:none!important}.student-summary-dashboard,.student-history-dashboard{margin-top:0}
.session-code-label{margin:.9em 0 .1em;color:var(--muted);font-size:12px;font-weight:700}.session-code{display:inline-block;margin:.15em 0 .5em;padding:8px 13px;border-radius:9px;background:#F5F8F2;color:var(--navy);font-size:19px;font-weight:800;letter-spacing:.08em}
.audit-management{margin-top:22px}.audit-management>.section-head{margin:0 0 12px}.audit-start-actions{display:flex;gap:12px;flex-wrap:wrap}.audit-start-actions form{display:grid;justify-items:start;gap:7px}.audit-start-actions small,.audit-result small{display:block;color:var(--muted);font-size:12px}.audit-result{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.audit-result-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.audit-result-heading>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.audit-result-heading small{margin-left:2px}.audit-response-form{display:grid;justify-items:start;gap:12px}.audit-response-form>label{display:grid;gap:6px;font-size:13px;font-weight:700}.audit-response-form input[type=text]{min-width:min(100%,320px);padding:11px;border:1px solid var(--line);border-radius:9px;font:inherit}.audit-choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:min(100%,600px)}.audit-choice-list label{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.audit-choice-list label:has(input:checked){border-color:var(--blue);background:#F5F8F2}.audit-choice-list input{accent-color:var(--blue)}.student-audit-card{max-width:700px;margin:18px auto}.student-audit-card .eyebrow{margin-bottom:7px}.student-audit-card h2{margin-bottom:5px}@media(max-width:560px){.audit-choice-list{grid-template-columns:1fr}.audit-result-heading{align-items:flex-start}}
.student-audit-modal{width:min(620px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:18px;color:var(--ink);box-shadow:0 24px 80px color-mix(in srgb,var(--charcoal) 20%,transparent)}.student-audit-modal::backdrop{background:color-mix(in srgb,var(--charcoal) 65%,transparent);backdrop-filter:blur(3px)}.student-audit-modal-content{padding:clamp(22px,5vw,36px);overflow:auto}.student-audit-modal .eyebrow{margin-bottom:6px}.student-audit-modal h2{margin:0 0 8px}.student-audit-modal .audit-response-form{margin-top:20px}.audit-rotating-code{width:min(100%,360px);margin:14px 0 18px}.audit-rotating-code .session-code{font-size:26px}.audit-countdown{height:7px;overflow:hidden;border-radius:99px;background:#F5F8F2}.audit-countdown span{display:block;width:100%;height:100%;border-radius:inherit;background:var(--blue);transition:width .8s linear}.audit-countdown-label{margin-top:7px;color:var(--muted);font-size:12px}

:root{--charcoal:#17231B;--paper:#F5F8F2;--nuclear:#91F24E;--forest:#176B36;--sage:#DCE8D7;--amber:#D4A72C;--navy:var(--charcoal);--blue:var(--forest);--ink:var(--charcoal);--muted:var(--forest);--line:var(--sage);--green:var(--forest);--mint:var(--sage);--red:var(--amber);--nuclear-soft:var(--sage);--nuclear-glow:var(--nuclear)}
.brand-fixed{position:fixed;top:10px;right:16px;z-index:1100;display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 11px 4px 5px;border:1px solid #DCE8D7;border-radius:14px;background:#F5F8F2;color:var(--navy);text-decoration:none;box-shadow:0 7px 24px color-mix(in srgb,var(--charcoal) 8%,transparent);backdrop-filter:blur(12px)}.brand-mark{display:block;width:36px;height:36px;flex:0 0 36px}.brand-wordmark{display:grid;line-height:1.05;gap:3px}.brand-wordmark strong{font-size:10px;letter-spacing:.1em;font-weight:900}.brand-wordmark small{font-size:8px;letter-spacing:.22em;font-weight:750;color:#176B36}.copyright-footer{padding:18px 16px 22px;text-align:center;color:var(--charcoal);font-size:11px;letter-spacing:.025em}.back-fixed{top:66px;border-color:#DCE8D7;box-shadow:0 5px 18px color-mix(in srgb,var(--charcoal) 8%,transparent)}.student-record-fixed-actions{top:66px}.staff-dashboard-page .top>.button{margin-top:58px}.button{box-shadow:0 5px 13px color-mix(in srgb,var(--forest) 15%,transparent)}.button:hover{background:#176B36;box-shadow:0 6px 18px color-mix(in srgb,var(--nuclear) 35%,transparent)}.button:focus-visible,.brand-fixed:focus-visible,.back:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--forest);outline-offset:3px}.student-search input:focus{outline:2px solid var(--forest);border-color:var(--forest)}.session-card:hover{border-color:#DCE8D7}.landing-page{background:radial-gradient(ellipse at 82% 16%,color-mix(in srgb,var(--nuclear) 15%,transparent) 0,transparent 27rem),var(--paper)}.landing-shell{max-width:980px;padding-top:clamp(88px,12vh,132px);padding-bottom:34px}.landing-hero{max-width:720px;margin:0 auto 44px;text-align:center}.landing-hero .eyebrow{display:inline-flex;align-items:center;gap:9px;padding:8px 13px;border:1px solid #DCE8D7;border-radius:99px;background:#F5F8F2;color:#176B36}.live-dot{width:8px;height:8px;border-radius:50%;background:#91F24E;box-shadow:0 0 0 4px color-mix(in srgb,var(--nuclear) 25%,transparent),0 0 13px color-mix(in srgb,var(--nuclear) 65%,transparent)}.landing-hero h1{font-size:clamp(48px,9vw,84px);line-height:.99;letter-spacing:-.065em;margin:12px 0 17px}.landing-hero h1 span{color:#176B36;text-shadow:0 0 26px color-mix(in srgb,var(--nuclear) 24%,transparent)}.landing-audience-sticker{position:fixed;left:24px;bottom:24px;z-index:1050;display:grid;gap:5px;width:min(320px,calc(100vw - 40px));padding:20px 22px;border:2px solid var(--charcoal);border-radius:18px 18px 18px 5px;background:var(--nuclear);color:var(--charcoal);box-shadow:0 12px 36px color-mix(in srgb,var(--charcoal) 30%,transparent);opacity:0;visibility:hidden;transform:translateY(24px) rotate(-2deg) scale(.94);transition:opacity .3s ease,transform .3s ease,visibility .3s}.landing-audience-sticker.is-visible{opacity:1;visibility:visible;transform:translateY(0) rotate(-2deg) scale(1)}.landing-audience-sticker.footer-visible{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) rotate(-2deg) scale(.96)}.landing-audience-sticker .sticker-kicker{font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.landing-audience-sticker strong{font-size:19px;line-height:1.2}
.landing-hero .lede{max-width:590px;margin:0 auto;color:#176B36;font-size:clamp(17px,2.5vw,21px)}.landing-launch{position:relative;display:flex;align-items:center;gap:17px;max-width:540px;margin:30px auto 0;padding:20px 23px;border:2px solid var(--charcoal);border-radius:18px;background:var(--nuclear);box-shadow:0 12px 30px color-mix(in srgb,var(--charcoal) 17%,transparent),0 0 0 6px color-mix(in srgb,var(--nuclear) 22%,transparent);text-align:left;transition:transform .18s ease,box-shadow .18s ease}.landing-launch:hover{transform:translateY(-3px);box-shadow:0 16px 36px color-mix(in srgb,var(--charcoal) 22%,transparent),0 0 0 8px color-mix(in srgb,var(--nuclear) 25%,transparent)}.landing-launch strong{display:block;color:var(--charcoal);font-size:19px;line-height:1.2}.launch-kicker{display:block;margin-bottom:4px;color:#176B36;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.landing-launch p{margin:5px 0 0;color:var(--charcoal);font-size:14px;line-height:1.4}.launch-arrow{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border:2px solid var(--charcoal);border-radius:15px;background:var(--charcoal);color:var(--nuclear);font-size:30px;font-weight:700}.landing-features{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:0 auto 12px;padding:30px;border:1px solid #D8E6D1;border-radius:26px;background:linear-gradient(145deg,#EDF4E9,#F7F9F4)}.features-heading{grid-column:1/-1;margin:0 0 8px;text-align:center}.features-heading .eyebrow{margin-bottom:7px}.features-heading h2{margin:0;color:var(--charcoal);font-size:clamp(26px,4vw,38px);letter-spacing:-.045em}.features-heading>p:last-child{margin:7px 0 0;color:#176B36;font-size:15px}.landing-feature{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:15px;min-height:148px;padding:24px 22px;border:1px solid #D7E4D2;border-radius:20px;background:linear-gradient(135deg,#fff 0%,#F2F7EF 100%);box-shadow:0 9px 26px color-mix(in srgb,var(--charcoal) 7%,transparent);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.landing-feature:hover{transform:translateY(-4px);border-color:#91F24E;box-shadow:0 15px 34px color-mix(in srgb,var(--charcoal) 12%,transparent)}.feature-step{position:absolute;top:13px;right:16px;padding:4px 9px;border-radius:99px;background:#EAF2E5;color:#176B36;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.feature-index{display:grid;place-items:center;width:50px;height:50px;border:1px solid #CFE0C7;border-radius:15px;background:var(--nuclear);color:var(--charcoal);box-shadow:0 5px 13px color-mix(in srgb,var(--forest) 12%,transparent)}.feature-index svg{width:23px;height:23px;flex:0 0 23px}.landing-feature h2{margin:0 0 6px;color:var(--charcoal);font-size:19px;letter-spacing:-.025em}.landing-feature p{margin:0;color:#176B36;font-size:13px;line-height:1.55}.landing-trust{display:flex;align-items:center;gap:13px;max-width:750px;margin:20px auto 0;padding:15px 19px;border-radius:14px;background:#F5F8F2;color:#176B36}.landing-trust p{margin:0;font-size:13px;line-height:1.55}.landing-trust strong{color:#176B36}.trust-orbit{display:grid;place-items:center;flex:0 0 34px;height:34px;border:1px solid #91F24E;border-radius:50%;color:#176B36;font-size:24px;box-shadow:0 0 17px color-mix(in srgb,var(--nuclear) 55%,transparent)}.landing-config{margin:19px 0 0;text-align:center;color:var(--charcoal);font-size:11px}.landing-config a{color:#176B36;text-decoration-thickness:1px;text-underline-offset:2px}.handoff-page .shell{padding-top:90px}.handoff-page .muted{text-align:center}.handoff-page .copyright-footer{position:fixed;right:0;bottom:0;left:0;background:#F5F8F2}
@media(max-width:700px){.brand-fixed{right:10px;top:9px;padding:4px;border-radius:13px}.brand-wordmark{display:none}.brand-mark{width:38px;height:38px}.back-fixed{top:62px;right:10px}.student-record-fixed-actions{top:62px;right:10px}.staff-dashboard-page .top>.button{margin-top:57px}.landing-shell{padding-top:83px}.landing-hero{margin-bottom:30px}.landing-features{grid-template-columns:1fr;gap:9px}.landing-feature{min-height:116px;padding:23px 17px 17px;grid-template-columns:44px minmax(0,1fr);gap:12px}.feature-index{width:43px;height:43px;border-radius:13px}.landing-feature h2{font-size:17px}.landing-trust{align-items:flex-start;padding:14px}.copyright-footer{padding-bottom:18px}}

/* Type hierarchy: Oxanium for display and key figures; generic sans-serif everywhere else. */
h1,h2,h3,.brand-wordmark,.metric strong,.metrics strong,.course-overview-metrics strong,.student-dashboard-metrics strong,.feature-index,.session-code{font-family:Oxanium,sans-serif}
html,body,button,input,select,textarea,code,kbd,samp,pre{font-family:sans-serif}

/* WCAG AA interaction and contrast refinements */
.status.pending{color:var(--charcoal)}
.status.pending::before{content:"";display:inline-block;width:.55em;height:.55em;margin-right:.4em;border-radius:50%;background:var(--amber)}
.pill.expired{background:var(--amber);color:var(--charcoal)}
.notice.error{background:var(--sage);color:var(--charcoal);border-left:4px solid var(--amber)}
.button.secondary{border:1px solid var(--forest)}
.button:hover,.button:active,.button.secondary:hover,.button.secondary:active{background:var(--nuclear);color:var(--charcoal);box-shadow:0 0 0 2px var(--forest)}
a:hover{color:var(--charcoal);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
.student-sort:hover,.student-record-sort:hover,.dashboard-tab:hover,.student-dashboard-tab:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em;color:var(--charcoal)}
.session-card:hover{border-color:var(--forest)}
.heat-session:hover{outline:2px solid var(--forest);outline-offset:2px}
.brand-fixed:hover{border-color:var(--forest)}
.settings-form input,.course-filter select,.student-search input,.audit-response-form input[type=text],.audit-choice-list label{border-color:var(--forest)}
:focus-visible{outline:3px solid var(--forest);outline-offset:3px}
input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--forest)}
.button:hover,.button:active{text-decoration:none}
.heat-session.heat-4:hover{background:var(--nuclear);color:var(--charcoal)}

/* The landing-page mark is a static brand lockup; tool-page marks remain external links. */
.brand-prominent{display:flex;align-items:center;justify-content:center;gap:14px;width:max-content;max-width:100%;margin:0 auto 26px;padding:8px 18px;color:var(--charcoal)}
.brand-prominent .brand-mark{width:68px;height:68px;flex:0 0 68px}
.brand-prominent .brand-wordmark{gap:5px}
.brand-prominent .brand-wordmark strong{font-size:17px;letter-spacing:.12em}
.brand-prominent .brand-wordmark small{font-size:11px;letter-spacing:.24em}
.brand-mark{position:relative;isolation:isolate;overflow:visible}
.atom-orbit{position:absolute;z-index:1;left:50%;top:50%;width:79.2%;height:35.4%;border:1.5px solid var(--forest);border-radius:50%;transform:translate(-50%,-50%) rotate(-32deg)}
.atom-orbit-two{border-color:var(--nuclear);transform:translate(-50%,-50%) rotate(32deg)}
.atom-nucleus{position:absolute;z-index:3;left:50%;top:50%;width:11px;height:11px;border:1.5px solid var(--forest);border-radius:50%;background:var(--nuclear);box-shadow:0 0 8px color-mix(in srgb,var(--nuclear) 75%,transparent);transform:translate(-50%,-50%)}
@media(max-width:700px){.brand-prominent{margin-bottom:22px}.brand-prominent .brand-mark{width:58px;height:58px;flex-basis:58px}.brand-prominent .brand-wordmark strong{font-size:14px}.brand-prominent .brand-wordmark small{font-size:10px}}
.landing-shell{padding-top:clamp(28px,5vh,48px)}
@media(max-width:700px){.landing-shell{padding-top:26px}.brand-prominent .brand-wordmark{display:grid}}

.landing-nav{position:fixed;top:12px;left:50%;z-index:1200;display:flex;align-items:center;gap:4px;max-width:calc(100vw - 24px);padding:5px;border:1px solid var(--sage);border-radius:999px;background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:0 6px 22px color-mix(in srgb,var(--charcoal) 10%,transparent);backdrop-filter:blur(12px);transform:translateX(-50%)}
.feature-icon svg{width:18px;height:18px;flex:0 0 18px}
.landing-nav a{padding:8px 13px;border-radius:999px;color:var(--charcoal);font-size:12px;font-weight:750;text-decoration:none;white-space:nowrap}
.landing-nav a:hover,.landing-nav a:focus-visible{background:var(--sage);color:var(--charcoal)}
.landing-shell{padding-top:clamp(84px,10vh,104px)}
.landing-hero,.landing-features,.landing-pricing,.landing-details{scroll-margin-top:84px}
.landing-section-title{grid-column:1/-1;margin:0 0 6px;font-size:clamp(23px,4vw,31px);line-height:1.15;letter-spacing:-.035em}
.questions-section{margin:42px 0 18px;padding:30px;border:1px solid #DCE8D7;border-radius:26px;background:#F7F9F5}.questions-section .section-heading{margin-bottom:19px}.landing-details{display:grid;grid-template-columns:.78fr 1.22fr;gap:28px;margin:0;padding:clamp(22px,4vw,32px);border:1px solid #C8DABF;border-top:5px solid var(--nuclear);border-radius:20px;background:linear-gradient(145deg,#F5F8F2,#EAF2E5);box-shadow:0 12px 34px color-mix(in srgb,var(--charcoal) 8%,transparent)}
.landing-details h2{font-size:clamp(22px,3vw,29px);line-height:1.15;letter-spacing:-.035em}
.product-points{display:grid;gap:10px;margin:20px 0 0;padding:0;list-style:none}
.product-points li{position:relative;padding:11px 12px 11px 34px;border:1px solid #DCE8D7;border-radius:11px;background:#fff;color:#176B36;font-size:13px;font-weight:700}
.product-points li:before{content:"✓";position:absolute;left:12px;color:#176B36;font-weight:900}
.landing-faq{padding:20px 22px;border:1px solid #DCE8D7;border-radius:16px;background:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--charcoal) 5%,transparent)}
.faq-heading{margin-bottom:13px}.faq-heading h2{margin:0;color:var(--charcoal);font-size:clamp(20px,2.5vw,25px);letter-spacing:-.035em}
.landing-faq details{border-top:1px solid #E4ECE0}
.landing-faq summary{position:relative;padding:13px 28px 13px 0;color:var(--charcoal);font-size:13px;font-weight:800;cursor:pointer;list-style:none}
.landing-faq summary::-webkit-details-marker{display:none}
.landing-faq summary:after{content:"+";position:absolute;right:1px;top:9px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#EAF2E5;color:#176B36;font-size:18px;transition:transform .2s}
.landing-faq details[open] summary:after{content:"−";transform:rotate(180deg)}
.landing-faq details p{margin:0;padding:0 28px 13px 0;color:#176B36;font-size:12px!important;line-height:1.55}
@media(max-width:700px){.questions-section{margin:30px 0 18px}.questions-section .section-heading{margin-bottom:15px}.landing-features,.pricing-section,.questions-section{padding:19px;border-radius:20px}.landing-features{gap:10px}.landing-details{grid-template-columns:1fr;gap:18px;margin:0;padding:19px}.landing-faq{padding:17px}}
.pricing-section{margin-top:42px;padding:30px;border:1px solid #DDE7D6;border-radius:26px;background:linear-gradient(145deg,#F0F5EC,#FAFBF8)}.section-heading{margin-bottom:19px}.landing-pricing{display:grid;grid-template-columns:.9fr 1.1fr;gap:12px 34px;align-items:center;margin:0;padding:clamp(23px,5vw,42px);border:1px solid #91F24E;border-radius:22px;background:linear-gradient(135deg,#17231B,#23472E 62%,#176B36);color:#F5F8F2;box-shadow:0 18px 48px color-mix(in srgb,var(--charcoal) 17%,transparent)}
.pricing-intro .eyebrow{margin-bottom:8px;color:#91F24E}
.pricing-intro h2{max-width:330px;margin:0;font-size:clamp(25px,4vw,38px);line-height:1.12;letter-spacing:-.04em}
.pricing-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pricing-options article{min-height:142px;padding:18px;border:1px solid color-mix(in srgb,#F5F8F2 28%,transparent);border-radius:15px;background:color-mix(in srgb,#F5F8F2 8%,transparent)}
.pricing-paid{border-color:#91F24E!important;background:color-mix(in srgb,#91F24E 12%,transparent)!important}
.pricing-label{margin:0;color:#DCE8D7;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.pricing-price-row{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.pricing-amount{margin:11px 0 2px;color:#91F24E;font-size:clamp(28px,4vw,38px);font-weight:900;line-height:1;letter-spacing:-.04em}
.pricing-amount span{font-size:14px;font-weight:700;letter-spacing:0}
.per-student-label{color:#91F24E;font-size:12px;font-weight:800}
.pricing-detail{margin:8px 0 0;color:#F5F8F2;font-size:13px}
.pricing-trial{grid-column:1/-1;margin:9px 0 0;text-align:center;color:#F5F8F2;font-size:14px}
.pricing-trial small{color:#DCE8D7;font-size:12px}
@media(max-width:700px){.landing-shell{padding-top:78px}.landing-nav{top:10px;gap:0;padding:4px}.landing-nav a{padding:8px 10px;font-size:11px}.landing-pricing{grid-template-columns:1fr;gap:20px;margin-top:0;padding:22px}.pricing-section{margin-top:30px}.section-heading{margin-bottom:15px}.landing-features,.pricing-section,.questions-section{padding:19px;border-radius:20px}.landing-features{gap:10px}.pricing-intro h2{max-width:none}.pricing-options{grid-template-columns:1fr}.pricing-options article{min-height:132px;padding:15px}.pricing-trial{margin-top:0}}


.landing-footer{margin:54px calc(50% - 50vw) 0;padding:42px max(28px,calc((100vw - 980px)/2)) 18px;background:#111712;color:#F5F8F2;text-align:left}
.landing-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:36px;max-width:980px;margin:0 auto;padding:0 0 31px}
.footer-eyebrow{margin:0 0 9px;color:var(--nuclear);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.landing-footer-copy h2{margin:0;color:#fff;font-size:clamp(25px,4vw,38px);letter-spacing:-.04em}
.landing-footer-copy>p:last-child{max-width:470px;margin:9px 0 0;color:#DCE8D7;font-size:14px}
.landing-footer-actions{display:grid;justify-items:start;gap:15px;flex:0 0 auto}
.footer-contact{display:inline-flex;align-items:center;gap:20px;padding:13px 18px;border:2px solid var(--nuclear);border-radius:999px;background:var(--nuclear);color:var(--charcoal);font:850 14px sans-serif;cursor:pointer}
.footer-contact:hover{background:#A8FF67}
.landing-footer-actions nav{display:flex;gap:16px;flex-wrap:wrap}
.landing-footer-actions nav a{color:#DCE8D7;font-size:12px;font-weight:700;text-decoration:none}
.landing-footer-actions nav a:hover{text-decoration:underline;text-underline-offset:3px}
.landing-footer-bottom{max-width:980px;margin:0 auto;padding-top:15px;border-top:1px solid #39433B;color:#B8C5B6;font-size:11px;letter-spacing:.03em}
@media(max-width:700px){.landing-footer{margin-top:34px;padding:30px 22px 16px}.landing-footer-inner{align-items:flex-start;flex-direction:column;gap:22px;padding-bottom:24px}.landing-footer-actions{gap:14px}}

.contact-trigger{position:fixed;right:22px;bottom:22px;z-index:1100;min-height:54px;padding:0 23px;border:2px solid var(--charcoal);border-radius:999px;background:var(--nuclear);color:var(--charcoal);font:800 15px sans-serif;box-shadow:0 8px 28px color-mix(in srgb,var(--charcoal) 25%,transparent);cursor:pointer}
.contact-trigger:hover{background:#A8FF67;transform:translateY(-2px)}.contact-trigger.footer-visible{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease,visibility .2s}
.contact-dialog{width:min(610px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);padding:clamp(22px,5vw,34px);border:1px solid var(--sage);border-radius:22px;background:var(--paper);color:var(--charcoal);box-shadow:0 24px 90px color-mix(in srgb,var(--charcoal) 30%,transparent);overflow:auto}
.contact-dialog::backdrop{background:color-mix(in srgb,var(--charcoal) 68%,transparent);backdrop-filter:blur(3px)}
.contact-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.contact-dialog-head .eyebrow{margin-bottom:3px}.contact-dialog-head h2{margin:0;font-size:32px;letter-spacing:-.04em}.contact-close{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--sage);border-radius:50%;background:var(--paper);color:var(--charcoal);font-size:25px;line-height:1;cursor:pointer}
.contact-description{margin:8px 0 20px;color:var(--forest);font-size:14px}.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.contact-form-grid label{display:grid;gap:6px;color:var(--charcoal);font-size:12px;font-weight:800}.contact-form-grid label span{display:inline;color:var(--muted);font-size:11px;font-weight:500}.contact-form input,.contact-form select,.contact-form textarea{width:100%;min-height:43px;padding:10px 11px;border:1px solid var(--sage);border-radius:10px;background:#fff;color:var(--charcoal);font:500 14px sans-serif}.contact-form textarea{min-height:112px;resize:vertical}.contact-form .contact-message{grid-column:1/-1}.contact-privacy{margin:13px 0;color:var(--muted);font-size:11px}.contact-submit{background:var(--nuclear);color:var(--charcoal)}.landing-notice{max-width:700px;margin:0 auto 18px}.contact-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(max-width:560px){.landing-audience-sticker{left:12px;bottom:14px;width:min(230px,calc(100vw - 165px));padding:13px 14px;border-radius:15px 15px 15px 4px}.landing-audience-sticker strong{font-size:15px}.landing-audience-sticker .sticker-kicker{font-size:9px}.contact-trigger{right:14px;bottom:14px;min-height:50px;padding:0 20px}.contact-form-grid{grid-template-columns:1fr;gap:11px}.contact-form .contact-message{grid-column:auto}.contact-dialog-head h2{font-size:28px}}
