:root{--blue:#315cce;--ink:#24345b;--bg:#f4f6fd;--muted:#64718d;--line:#dfe5f3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px}header{display:flex;align-items:center;gap:20px;padding:18px 5%;background:white;border-bottom:1px solid var(--line)}.brand{font-size:28px;font-weight:850;color:var(--blue);text-decoration:none}.brand small{display:block;font-size:12px;color:var(--muted);font-weight:500}#identity{margin-left:auto;font-size:14px}main{max-width:1200px;margin:auto;padding:28px 24px}h1{font-size:30px;margin:10px 0}h2{font-size:23px}h3{margin-top:0}p{line-height:1.6}.muted,small{color:var(--muted)}.hero{background:linear-gradient(120deg,#e5ecff,#f0e9fe);border-radius:24px;padding:26px;margin-bottom:24px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:18px}.card{background:white;border:1px solid var(--line);padding:22px;border-radius:20px;box-shadow:0 5px 15px #23336105;margin-bottom:16px}.login{max-width:450px;margin:40px auto}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.spread{justify-content:space-between}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.tabs button{background:white;color:var(--ink);border:1px solid var(--line)}.tabs .selected{background:var(--blue);color:white}button,.button{border:0;border-radius:11px;padding:11px 16px;background:var(--blue);color:white;font-weight:650;cursor:pointer;display:inline-block;text-decoration:none;font-size:14px}button:disabled{opacity:.5;cursor:default}.secondary{background:#e9edfa;color:var(--ink)}.danger{background:#b32e47}.soft{background:#fff1cb;color:#5c470f}input,select,textarea{width:100%;padding:12px;border:1px solid #cbd4e8;border-radius:10px;background:white;color:var(--ink);font:inherit;margin-top:6px;margin-bottom:14px}input[type=checkbox],input[type=radio]{width:auto;margin:0 8px 0 0}label{display:block;font-weight:600;font-size:14px}textarea{min-height:80px}.checks{max-height:200px;overflow:auto;background:#f6f8fd;border-radius:12px;padding:12px;margin:12px 0}.checks label{padding:8px}table{border-collapse:collapse;width:100%;font-size:14px}td,th{padding:12px;text-align:left;border-bottom:1px solid var(--line)}.scroll{overflow:auto}.pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;background:#f2f4fb;padding:7px 10px;border-radius:30px}.dot{width:13px;height:13px;border-radius:50%;display:inline-block;border:1px solid #9da8c1}.green{background:#29a66d}.orange{background:#f19b28}.red{background:#dc4350}.white{background:white}.black{background:#151c2c}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.student{border-top:4px solid #dfc7fb}.grade{background:#eee6ff;color:#64439b}.note{background:#fff4d4;border-radius:12px;padding:14px;margin:12px 0;line-height:1.5}#message{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#24345b;color:white;padding:14px 20px;border-radius:12px;z-index:30;max-width:90%;display:none}dialog{border:0;border-radius:22px;padding:24px;width:min(900px,96vw);max-height:92vh;color:var(--ink)}dialog::backdrop{background:#16234780}.close{float:right;background:#edf0f7;color:var(--ink);margin-bottom:12px}.board-wrap{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:16px 0}canvas{display:block;max-width:100%;width:100%;height:auto;touch-action:none;background:white}.toolbar{padding:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#f2f5fc}.toolbar input{width:auto;margin:0}.toolbar select{width:auto;margin:0}.toolbar input[type=color]{padding:2px;width:44px;height:38px}.toolbar input[type=text]{max-width:260px}iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:16px}.review-img{max-width:100%}.question{border-left:4px solid #d9c8ff}.question label{margin:10px 0}.feedback{padding:12px;background:#eaf6ef;border-radius:10px}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:700px){main{padding:20px 14px}header{padding:14px}.brand{font-size:23px}.brand small{font-size:10px}.split{grid-template-columns:1fr}h1{font-size:25px}#identity{max-width:130px;font-size:12px}button{padding:10px 12px}dialog{padding:16px}}@media print{header,.tabs,button,.toolbar,#message,.no-print{display:none!important}body{background:white}main{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}.hero{background:white;padding:0}dialog{position:static;max-height:none;width:100%}dialog:not([open]){display:none}}
/* NEXO 1.0.1 — appearance shared by login, teacher, student and Super Admin. */
:root{color-scheme:light;--focus:#315cce}
:root[data-theme=dark]{color-scheme:dark;--blue:#82aaff;--ink:#edf3fc;--bg:#071521;--muted:#adc2d9;--line:#2b465b;--focus:#a9c7ff}
:root[data-theme=dark] header{background:#0b1e2e}
:root[data-theme=dark] .hero{background:linear-gradient(120deg,#102d47,#282544)}
:root[data-theme=dark] .card,:root[data-theme=dark] dialog{background:#102536;box-shadow:0 5px 20px #00000020}
:root[data-theme=dark] .tabs button{background:#102536}
:root[data-theme=dark] .tabs .selected,:root[data-theme=dark] button:not(.secondary):not(.danger):not(.soft):not(.close):not(.appearance-choice),:root[data-theme=dark] .button{background:#789ff5;color:#071521}
:root[data-theme=dark] .secondary,:root[data-theme=dark] .close{background:#19394f;color:var(--ink)}
:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background:#0a1b29;border-color:#39576f;color:var(--ink)}
:root[data-theme=dark] input::placeholder,:root[data-theme=dark] textarea::placeholder{color:#9bb2c9;opacity:1}
:root[data-theme=dark] .checks{background:#0b1e2e}
:root[data-theme=dark] .pill{background:#193449}
:root[data-theme=dark] .grade{background:#35305c;color:#e5d9ff}
:root[data-theme=dark] .pill.green{background:#144733;color:#bdf7d6}
:root[data-theme=dark] .student{border-top-color:#9c83ce}
:root[data-theme=dark] .note,:root[data-theme=dark] .soft{background:#493b1d;color:#ffe3a0}
:root[data-theme=dark] .danger{background:#9e2940;color:#fff}
:root[data-theme=dark] .feedback{background:#153e31;color:#d2f6df}
:root[data-theme=dark] .toolbar{background:#193449}
:root[data-theme=dark] a:not(.brand):not(.button){color:#a9c7ff}
:root[data-theme=dark] .dot.black{border-color:#b1c7db}
:root[data-theme=dark] #message{background:#e2edff;color:#102536}
:root[data-theme=dark] dialog::backdrop{background:#000a12b3}
/* Board and notebook retain their original white paper: stored strokes/photos
   must mean the same thing for participants using different appearances. */
:root[data-theme=dark] .board-wrap,:root[data-theme=dark] canvas{background:#fff}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
input[type=checkbox],input[type=radio]{accent-color:#315cce}
:root[data-theme=dark] input[type=checkbox],:root[data-theme=dark] input[type=radio]{accent-color:#82aaff}
pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
#appearance-dialog{max-width:700px}
.appearance-choices{display:grid;grid-template-columns:1fr 1fr;gap:16px;clear:both}
.appearance-choice{display:flex;flex-direction:column;gap:12px;text-align:left;padding:18px;border:2px solid var(--line);background:#f6f8fd;color:var(--ink);border-radius:16px}
.appearance-choice strong{font-size:18px}.appearance-choice small{font-size:13px;font-weight:400}
.appearance-choice.active{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue)}
:root[data-theme=dark] .appearance-choice{background:#0b1e2e;color:var(--ink)}
.theme-sample{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border:1px solid #adbbcd;border-radius:10px;width:100%;height:94px}
.theme-sample span{grid-column:span 2;height:23px;border-radius:6px}.theme-sample i{display:block;border-radius:6px;height:28px}
.sample-light{background:#f4f6fd}.sample-light span{background:#dfe8ff}.sample-light i{background:#fff;border:1px solid #d3dcea}
.sample-dark{background:#071521}.sample-dark span{background:#2b3f67}.sample-dark i{background:#163449;border:1px solid #45617b}
@media(max-width:700px){header{gap:8px;flex-wrap:wrap}.brand{margin-right:auto}#identity{order:2;max-width:none;width:100%;margin-left:0}header button{font-size:12px;padding:10px}#appearance{margin-left:auto}.appearance-choices{gap:12px}.appearance-choice{padding:12px}.appearance-choice strong{font-size:15px}.appearance-choice small{font-size:12px}}
@media(max-width:380px){.appearance-choices{grid-template-columns:1fr}}
@media print{:root,:root[data-theme=dark]{color-scheme:light;--ink:#24345b;--muted:#64718d;--line:#dfe5f3}:root[data-theme=dark] body,:root[data-theme=dark] .card,:root[data-theme=dark] .hero,:root[data-theme=dark] dialog{background:#fff;color:#24345b}:root[data-theme=dark] .pill,:root[data-theme=dark] .grade,:root[data-theme=dark] .note,:root[data-theme=dark] .feedback{background:#f2f4fb;color:#24345b}#appearance-dialog{display:none!important}}
/* 1.0.4 — touch-first learning workspace */
:root{--surface:#fff;--surface-soft:#eef2fc;--accent-soft:#e7edff}
:root[data-theme=dark]{--bg:#151e29;--surface:#1e2938;--surface-soft:#253448;--accent-soft:#2c3d65;--line:#3a4b60;--muted:#bbcee9;--blue:#b6c9ff;--ink:#f2f5ff}
body{line-height:1.45}header{gap:12px;padding:14px max(18px,calc((100% - 1240px)/2));background:var(--surface)}main{max-width:1240px;padding:24px}.hero{padding:20px 24px;border-radius:20px;margin-bottom:16px}.hero h1{font-size:25px}.hero p{margin-bottom:0}.card{background:var(--surface);border-radius:18px}.tabs{gap:8px;margin:18px 0 24px}.tabs button{min-height:54px;flex:1;font-size:15px}.tabs .selected{box-shadow:0 4px 12px #315cce22}
button,.button{min-height:48px;font-size:15px;padding:12px 18px}input,select,textarea{font-size:16px;min-height:48px}input[type=checkbox],input[type=radio]{min-height:22px;width:22px;height:22px;flex-shrink:0}.checks label{min-height:48px;display:flex;align-items:center}.question label{padding:12px;border-radius:12px;min-height:48px}.question label:has(input[type=radio]){display:flex;align-items:center;gap:8px;background:var(--surface-soft)}
.learning-banner,.student-welcome{background:var(--accent-soft);padding:26px 28px;border-radius:22px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.learning-banner h2,.student-welcome h2{font-size:28px;line-height:1.25;margin:8px 0}.learning-banner p,.student-welcome p{margin:0;color:var(--muted)}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.08em}.class-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;align-items:start}.class-list,.assistance{padding:24px;min-width:0}.class-list h2{margin:0;font-size:22px}.class-list h2 small{font-size:13px;display:block;margin-top:4px}.search-label{margin:20px 0 4px}.class-summary{display:flex;gap:16px;color:var(--muted);font-size:13px;margin-bottom:12px}.student-row{display:flex;gap:14px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.student-row.current{background:var(--surface-soft);border-radius:12px;padding:20px 12px}.avatar{height:52px;width:48px;flex-shrink:0;border-radius:15px;display:grid;place-items:center;background:#ebe0fc;color:#624495;font-size:22px;font-weight:650}.student-main{flex:1;min-width:0}.student-main h3{margin:0 0 7px;font-size:17px;overflow-wrap:anywhere}.student-main h3 small{display:inline;font-size:13px;white-space:nowrap;font-weight:500}.student-main>small{display:block;margin-top:8px;font-size:12px}.status-label{font-size:13px;font-weight:650;display:flex;gap:8px;align-items:center}.student-row button{padding:10px 14px;flex-shrink:0}.class-list .legend{margin-top:22px;gap:10px}.status-caption{font-size:12px}.assist-actions{display:flex;flex-direction:column;gap:12px;margin:22px 0}.assist-actions button{text-align:left;min-height:56px;font-size:16px}details{border-top:1px solid var(--line);padding:18px 0}summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}summary::before{content:'▸';margin-right:10px}details[open] summary::before{content:'▾'}.assistance>h2{margin:14px 0 10px}.assistance>.muted{font-size:13px}.welcome-symbol{font-size:35px;line-height:1.15;padding:14px 24px;border-left:4px solid var(--blue);border-radius:14px;background:var(--surface);color:var(--blue)}.student-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.learning-option{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:26px;border-radius:22px;min-height:180px}.learning-option strong{font-size:22px;margin:12px 0 5px}.learning-option small{color:inherit;font-size:14px;font-weight:450}.option-symbol{font-size:30px;line-height:1}.assistance .dot{vertical-align:middle}#tenantlink{overflow-wrap:anywhere}dialog{background:var(--surface);padding:24px}.close{min-height:48px}.toolbar button{min-height:48px}.toolbar select{max-width:100%}.toolbar label{max-width:100%}.toolbar input[type=color]{width:48px;height:48px;min-height:48px}.toolbar input[type=text]{flex:1;min-width:140px;max-width:100%}#roomstats .pill{font-size:13px;padding:10px 12px}.expanded-board{position:fixed;inset:0;z-index:1000;border-radius:0!important;margin:0!important;display:flex;flex-direction:column;overflow:auto}.expanded-board .toolbar{position:sticky;top:0;z-index:1}.expanded-board canvas{width:min(100%,calc((100dvh - 170px)*1.714));align-self:center;margin:auto;flex-shrink:0}#message{bottom:95px}
:root[data-theme=dark] header,:root[data-theme=dark] .card,:root[data-theme=dark] dialog{background:var(--surface)}:root[data-theme=dark] .hero,:root[data-theme=dark] .learning-banner,:root[data-theme=dark] .student-welcome{background:var(--accent-soft)}:root[data-theme=dark] .tabs button{background:var(--surface)}:root[data-theme=dark] .tabs .selected{background:var(--accent-soft);color:var(--blue);border-color:#718bd0}:root[data-theme=dark] button:not(.secondary):not(.danger):not(.soft):not(.close):not(.appearance-choice),:root[data-theme=dark] .button{background:#b6c9ff;color:#15223b}:root[data-theme=dark] .secondary,:root[data-theme=dark] .close{background:var(--surface-soft)}:root[data-theme=dark] .avatar{background:#3b3350;color:#b6c9ff}
@media(min-width:761px) and (max-width:1050px){.class-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}.class-list,.assistance{padding:18px}.learning-banner{padding:24px;gap:16px}.learning-banner .row{max-width:230px}.learning-banner .row button{width:100%}.student-row{gap:10px}.avatar{width:40px;height:46px}.student-row button{padding:10px}.tabs button{padding:12px 8px;font-size:14px}}
@media(max-width:760px){main{padding:16px 14px 110px}.hero{padding:18px;margin-bottom:12px}.hero h1{font-size:22px}.hero p{font-size:14px}.class-layout{grid-template-columns:1fr;gap:12px}.learning-banner,.student-welcome{padding:22px 18px;gap:18px;flex-wrap:wrap;margin-bottom:16px}.learning-banner h2,.student-welcome h2{font-size:25px}.learning-banner .row{width:100%;display:grid;grid-template-columns:1fr 1fr}.learning-banner button{padding:12px 10px;font-size:14px}.class-list,.assistance{padding:18px}.student-row{gap:10px;padding:18px 0}.student-row.current{padding:18px 10px}.student-main h3{font-size:16px}.student-main h3 small{display:block;margin-top:3px}.avatar{width:40px;height:46px;font-size:19px}.student-row button{padding:10px 12px;font-size:14px}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:25;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);margin:0;padding:10px 8px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);gap:4px;box-shadow:0 -5px 20px #16234712}.tabs button{min-width:0;min-height:54px;font-size:12px;line-height:1.3;padding:8px 4px;border:0;background:transparent;overflow-wrap:anywhere}.tabs .selected{background:var(--accent-soft);color:var(--blue);box-shadow:none}.student-options{gap:12px}.learning-option{min-height:160px;padding:20px 16px}.learning-option strong{font-size:18px}.learning-option small{font-size:13px}.welcome-symbol{display:none}dialog{width:calc(100vw - 16px);max-height:94dvh;padding:18px}header{padding:12px 14px;gap:8px}header button{min-height:44px;font-size:12px;padding:10px 12px}.brand{font-size:23px}#identity{font-size:12px}.grid{grid-template-columns:minmax(0,1fr)}.toolbar{padding:10px;gap:8px}.toolbar button{font-size:13px;padding:10px 12px}.in-classroom main{padding-bottom:24px}#roomstats{max-height:130px;overflow:auto}.review-img{border-radius:12px}.assistance{scroll-margin-top:16px}:root[data-theme=dark] .tabs button{background:transparent}:root[data-theme=dark] .tabs .selected{background:var(--accent-soft)}}
@media print{.learning-banner,.student-welcome,.assistance,.class-list{background:white!important;color:#24345b!important}.expanded-board{position:static;display:block}.expanded-board canvas{width:100%}main{padding:0}.tabs{display:none!important}}
/* Installed app fits around device cutouts and home indicator. */
@media(display-mode:standalone),(display-mode:fullscreen){header{padding-top:calc(12px + env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}#install-app{display:none!important}}
#pwa-dialog{max-width:600px}#pwa-guide li{margin:12px 0;line-height:1.6}#pwa-dialog button:not(.close){margin:8px 8px 0 0}
@media print{#pwa-dialog{display:none!important}}

header{flex-wrap:wrap}#screen-awake[aria-pressed="true"]{color:var(--blue)}@media(max-width:760px){#identity{max-width:45%;overflow-wrap:anywhere}#screen-awake{font-size:12px}}
