*{box-sizing:border-box}html{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#102235;background:#f4f8fc}body{margin:0;background:radial-gradient(circle at 14% 0,#dff6ff,transparent 34%),#f4f8fc;min-height:100vh}:root{--blue:#08a7ff;--blue2:#0088df;--card:#fff;--text:#102235;--muted:#718296;--line:#e4edf5;--side:#071725;--shadow:0 16px 45px rgba(30,63,95,.09);--green:#17b77e;--red:#e84f70;--amber:#f0a21c}html.dark{--card:#0c1d2d;--text:#e9f5ff;--muted:#91a5b8;--line:#1a3043;--side:#04101a;background:#07131f;color:#e9f5ff}html.dark body{background:radial-gradient(circle at 14% 0,#0b334b,transparent 30%),#07131f}button,input,select,textarea{font:inherit}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.hero{padding:60px;background:linear-gradient(135deg,#061421,#09283d 68%,#086596);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:560px;height:560px;border:1px solid #fff2;border-radius:50%;right:-180px;top:-180px;box-shadow:0 0 0 70px #fff1,0 0 0 140px #fff1}.brand{font-weight:950;font-size:max(var(--font-min),calc(28px * var(--font-scale)));letter-spacing:-1.4px}.brand b{color:#2bc0ff}.hero h1{font-size:max(var(--font-min),calc(60px * var(--font-scale)));letter-spacing:-3px;line-height:1.02;margin:18px 0;max-width:700px}.hero p{max-width:620px;color:#afc2d2;font-size:max(var(--font-min),calc(18px * var(--font-scale)));line-height:1.6}.eyebrow{display:inline-flex;padding:9px 13px;border:1px solid #50caff44;background:#0aa7ff18;border-radius:99px;color:#a9e5ff;font-weight:750;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.login-side{display:grid;place-items:center;padding:24px}.login-card{width:min(440px,100%);background:var(--card);border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.login-card h2{font-size:max(var(--font-min),calc(31px * var(--font-scale)));margin:26px 0 6px}.muted{color:var(--muted)}.label{display:block;font-size:max(var(--font-min),calc(12px * var(--font-scale)));font-weight:800;margin:18px 0 7px}.input,.select,.textarea{width:100%;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:12px 13px;outline:0}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #08a7ff18}.textarea{min-height:92px}.btn{border:0;border-radius:14px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:white;padding:11px 15px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px #08a7ff28}.btn.secondary{background:var(--card);color:var(--text);border:1px solid var(--line);box-shadow:none}.btn.ghost{background:transparent;box-shadow:none;color:var(--muted)}.demo{margin-top:17px;padding:13px;border-radius:15px;background:#f1f7fb;color:var(--muted);font-size:max(var(--font-min),calc(12px * var(--font-scale)))}html.dark .demo{background:#081725}.side{position:fixed;inset:0 auto 0 0;width:268px;background:var(--side);color:#cfe0ef;padding:20px 15px;display:flex;flex-direction:column;z-index:30}.side .brand{padding:4px 10px 4px}.subbrand{padding:0 10px 22px;font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:#66839c}.nav{display:flex;flex-direction:column;gap:5px}.nav button{border:0;background:transparent;color:#91a9be;padding:11px 12px;border-radius:13px;text-align:left;font-weight:720;cursor:pointer}.nav button.active{background:linear-gradient(135deg,#0aa8ff,#0088e0);color:white;box-shadow:0 9px 25px #079ee545}.nav button span{display:inline-block;width:28px}.userbox{margin-top:auto;border:1px solid #fff1;background:#fff1;border-radius:17px;padding:12px}.userbox strong{display:block;font-size:max(var(--font-min),calc(12px * var(--font-scale)));overflow:hidden;text-overflow:ellipsis}.userbox small{color:#718ca3}.main{margin-left:268px}.top{height:76px;position:sticky;top:0;z-index:20;background:#ffffffd4;backdrop-filter:blur(18px);border-bottom:1px solid #fff;display:flex;align-items:center;justify-content:space-between;padding:0 26px}html.dark .top{background:#07131fdd;border-color:#183045}.top h1{font-size:max(var(--font-min),calc(21px * var(--font-scale)));margin:0}.top p{font-size:max(var(--font-min),calc(11px * var(--font-scale)));color:var(--muted);margin:3px 0}.icons{display:flex;gap:8px}.icon{width:41px;height:41px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--text);cursor:pointer}.content{padding:25px;max-width:1540px;margin:auto}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(5,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:19px;box-shadow:var(--shadow)}.metric{position:relative}.metric small{color:var(--muted);font-weight:700}.metric strong{display:block;font-size:max(var(--font-min),calc(29px * var(--font-scale)));letter-spacing:-1px;margin-top:7px}.bubble{position:absolute;right:14px;top:14px;width:48px;height:48px;border-radius:15px;background:#08a7ff12;display:grid;place-items:center;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.row2{grid-template-columns:1.55fr 1fr;margin-top:16px}.head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.head h2{font-size:max(var(--font-min),calc(16px * var(--font-scale)));margin:0}.badge{display:inline-flex;padding:5px 9px;border-radius:99px;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:850}.low{background:#e6faf2;color:#078358}.medium{background:#fff3dc;color:#b36f00}.high{background:#ffe9ee;color:#c82b50}.chart{height:245px}.chart canvas{width:100%;height:100%}.risk{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:14px;padding:11px;margin-bottom:8px}.risk strong{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.risk small{display:block;color:var(--muted);margin-top:3px}.toolbar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:14px}.toolbar .select{width:auto;min-width:190px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.table{width:100%;border-collapse:collapse;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.table th{background:#f7fafc;color:#677b8d;text-align:left;padding:10px;position:sticky;top:0;z-index:2}.dark .table th{background:#091928}.table td{padding:10px;border-top:1px solid var(--line);white-space:nowrap}.sticky{position:sticky;left:0;background:var(--card);font-weight:750;z-index:1}.cell{width:33px;height:33px;border-radius:9px;display:grid;place-items:center;font-weight:900;cursor:pointer}.g5{background:#e4f9f0;color:#058054}.g4{background:#e7f5ff;color:#077cbc}.g3{background:#fff4de;color:#b26d00}.g2,.abs{background:#ffe8ed;color:#ca2c51}.exc{background:#eee9ff;color:#6848d0}.present{color:#a0afbc}.form{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.roster-row{display:grid;grid-template-columns:1fr 170px 80px;gap:9px;padding:8px 0;border-bottom:1px solid var(--line);align-items:center}.week{display:grid;grid-template-columns:repeat(5,1fr);gap:11px}.day>strong{display:block;color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)));text-transform:uppercase;margin:4px 3px 9px}.lesson-card{border:1px solid var(--line);background:var(--card);border-radius:16px;padding:12px;margin-bottom:8px}.lesson-card em{font-style:normal;color:var(--blue);font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:850}.lesson-card b{display:block;font-size:max(var(--font-min),calc(12px * var(--font-scale)));margin:5px 0}.lesson-card small{color:var(--muted);line-height:1.5}.hw{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.hw .card h3{font-size:max(var(--font-min),calc(14px * var(--font-scale)));margin:7px 0}.due{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:var(--red);font-weight:850}.profile{background:linear-gradient(135deg,#082437,#086798);color:#fff;border-radius:24px;padding:24px;display:flex;justify-content:space-between;align-items:center}.profile h2{font-size:max(var(--font-min),calc(28px * var(--font-scale)));margin:8px 0 4px}.level{min-width:250px}.bar{height:9px;background:#fff2;border-radius:20px;overflow:hidden;margin:9px 0}.bar i{display:block;height:100%;background:#44d2ff}.pstats{grid-template-columns:repeat(4,1fr);margin-top:14px}.integr{display:grid;grid-template-columns:50px 1fr 120px;gap:14px;align-items:center;border:1px solid var(--line);border-radius:17px;padding:14px;margin-bottom:10px}.logo{width:47px;height:47px;border-radius:14px;background:#08a7ff12;display:grid;place-items:center;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.modal-bg{position:fixed;inset:0;background:#061321aa;z-index:100;display:grid;place-items:center;padding:20px}.modal{width:min(560px,100%);background:var(--card);border:1px solid var(--line);border-radius:23px;padding:22px;box-shadow:0 30px 90px #0005}.modal h2{margin:0 0 14px}.toast{position:fixed;right:18px;bottom:18px;background:#10283a;color:white;padding:12px 15px;border-radius:13px;z-index:200;box-shadow:0 16px 40px #0003;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.empty{padding:35px;text-align:center;color:var(--muted)}.mobile{display:none}@media(max-width:1120px){.stats{grid-template-columns:repeat(3,1fr)}.week{grid-template-columns:repeat(2,1fr)}.hw{grid-template-columns:repeat(2,1fr)}.form{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.login{grid-template-columns:1fr}.hero{display:none}.side{transform:translateX(-100%);transition:.2s}.side.open{transform:translateX(0)}.main{margin-left:0}.mobile{display:block}.content{padding:15px}.top{padding:0 14px}.stats,.pstats{grid-template-columns:repeat(2,1fr)}.row2{grid-template-columns:1fr}.week,.hw,.form{grid-template-columns:1fr}.profile{display:block}.level{margin-top:20px;min-width:0}.integr{grid-template-columns:45px 1fr}.integr>.btn{grid-column:1/-1}}@media(max-width:450px){.stats,.pstats{grid-template-columns:1fr}.toolbar .select{width:100%}.hero h1{font-size:max(var(--font-min),calc(42px * var(--font-scale)))}}
/* v0.4 accounts + integrations */
.account-hero,.network-banner{position:relative;overflow:hidden;border-radius:26px;padding:28px;background:linear-gradient(135deg,#071d2d 0%,#0a4b72 58%,#0aa7ff 140%);color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 22px 55px #06355726}.account-hero:after,.network-banner:after{content:"";position:absolute;width:310px;height:310px;border:1px solid #ffffff26;border-radius:50%;right:-100px;top:-150px;box-shadow:0 0 0 50px #ffffff0b,0 0 0 100px #ffffff08}.account-hero h2,.network-banner h2{font-size:max(var(--font-min),calc(28px * var(--font-scale)));letter-spacing:-1px;margin:10px 0 7px}.account-hero p,.network-banner p{max-width:720px;color:#c5dbe9;line-height:1.6;margin:0}.account-hero-stat{position:relative;z-index:1;text-align:right;min-width:150px}.account-hero-stat strong{display:block;font-size:max(var(--font-min),calc(48px * var(--font-scale)));line-height:1}.account-hero-stat span{color:#9cc8e2;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.account-stats{grid-template-columns:repeat(4,1fr);margin-top:16px}.account-search{max-width:340px}.student-cell{display:flex;align-items:center;gap:10px}.student-cell small,.accounts-table td>small{display:block;color:var(--muted);margin-top:3px}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#dff5ff,#e8f0ff);color:#057fc2;font-weight:900}.dark .avatar{background:#0c3650;color:#6bd2ff}.actions{display:flex;gap:6px}.mini{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:7px 9px;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:800;cursor:pointer}.mini.primary{background:#e5f6ff;color:#087fbe;border-color:#bfeaff}.mini.positive{background:#e8faf3;color:#0b875e;border-color:#c5f0df}.mini.danger{background:#fff0f3;color:#c83254;border-color:#ffd3dc}.badge.neutral{background:#eef3f7;color:#687d90}.botdots{display:flex;gap:4px}.botdots i{font-style:normal;width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;background:#eef3f7;color:#9aabb9}.dark .botdots i{background:#13283a}.botdots .tg.on{background:#e1f5ff;color:#058dce}.botdots .vk.on{background:#e8f1ff;color:#1769ca}.botdots .mx.on{background:#eae7ff;color:#6649d8}.modal-title{display:flex;gap:16px;align-items:center;margin-bottom:18px}.modal-title h2{margin:0!important;font-size:max(var(--font-min),calc(30px * var(--font-scale)));line-height:1.08;letter-spacing:-.02em}.modal-title p{margin:5px 0 0;color:var(--muted);font-size:max(var(--font-min),calc(14px * var(--font-scale)));line-height:1.5}.modal-icon{width:62px;height:62px;border-radius:19px;background:#e3f6ff;display:grid;place-items:center;font-size:max(var(--font-min),calc(29px * var(--font-scale)));box-shadow:inset 0 0 0 1px rgba(8,133,196,.06)}.modal-icon.success{background:#e4f9f0;color:#078358}.secure-note{margin:16px 0;padding:15px 16px;border-radius:16px;background:#eff8ff;color:#24739d;font-size:max(var(--font-min),calc(13px * var(--font-scale)));line-height:1.65}.secure-note.warning{background:#fff7e8;color:#9c6505}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.credentials{max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:15px}.credentials>div{display:grid;grid-template-columns:1.3fr 1fr 130px;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);align-items:center}.credentials>div:last-child{border-bottom:0}.credentials span{color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.credentials code{padding:6px 8px;border-radius:8px;background:#0a1d2c;color:#9be1ff;font-weight:800;text-align:center}.network-banner{margin-bottom:16px}.route-diagram{position:relative;z-index:1;display:grid;gap:7px;min-width:290px;border:1px solid #ffffff1f;background:#04131f52;border-radius:18px;padding:16px}.route-diagram span{font-weight:900}.route-diagram i{font-style:normal;font-size:max(var(--font-min),calc(11px * var(--font-scale)));color:#bfe8fb}.channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.channel-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.channel-card:before{content:"";position:absolute;height:4px;left:0;right:0;top:0;background:#08a7ff}.channel-card.vk:before{background:#2787f5}.channel-card.max:before{background:#735cff}.channel-top{display:grid;grid-template-columns:50px 1fr auto;gap:11px;align-items:start}.channel-logo{width:50px;height:50px;border-radius:15px;background:#e7f7ff;display:grid;place-items:center;font-weight:950;font-size:max(var(--font-min),calc(18px * var(--font-scale)));color:#078acc}.channel-card.vk .channel-logo{background:#eaf2ff;color:#2675d6}.channel-card.max .channel-logo{background:#eeeaff;color:#624bd7}.dark .channel-logo{background:#0d3046}.channel-top h3{margin:3px 0 4px;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.channel-top p{margin:0;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));line-height:1.45}.connection{font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900;border-radius:99px;padding:6px 8px;white-space:nowrap}.connection.ok{background:#e4f9ef;color:#078257}.connection.bad{background:#ffe9ee;color:#ca2b4f}.connection.idle{background:#eff3f6;color:#718294}.channel-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:15px 0}.channel-metrics>div{border:1px solid var(--line);border-radius:12px;padding:9px}.channel-metrics small{display:block;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800}.channel-metrics b{display:block;margin-top:4px;font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.secret-row{display:grid;grid-template-columns:1fr 40px;gap:6px}.reveal{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--muted);cursor:pointer}.proxy-box{margin-top:12px;padding:12px;border:1px solid #caeafa;background:#f4fbff;border-radius:15px}.dark .proxy-box{background:#092234;border-color:#154663}.proxy-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.proxy-head b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.proxy-head small{display:block;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));margin-top:2px}.proxy-hint{color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.45;margin-top:7px}.switch{position:relative;width:42px;height:24px}.switch input{display:none}.switch span{position:absolute;inset:0;background:#cad7e1;border-radius:99px;cursor:pointer;transition:.2s}.switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:white;transition:.2s;box-shadow:0 2px 5px #0002}.switch input:checked+span{background:#08a7ff}.switch input:checked+span:after{transform:translateX(18px)}.channel-actions{display:flex;gap:8px;margin-top:13px}.channel-actions .btn{flex:1;padding:10px}.channel-error{margin-top:10px;padding:9px;border-radius:10px;background:#fff0f3;color:#c83254;font-size:max(var(--font-min),calc(9px * var(--font-scale)));overflow-wrap:anywhere}.bot-menu-preview{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.bot-menu-preview span{border:1px solid var(--line);border-radius:13px;padding:12px;text-align:center;font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:800;background:#f8fbfd}.dark .bot-menu-preview span{background:#091a29}.skeleton{height:220px;border-radius:22px;background:linear-gradient(90deg,#eef3f7,#f8fbfd,#eef3f7);background-size:200% 100%;animation:sk 1.2s infinite}@keyframes sk{to{background-position:-200% 0}}@media(max-width:1180px){.channel-grid{grid-template-columns:1fr}.account-stats{grid-template-columns:repeat(2,1fr)}.bot-menu-preview{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.account-hero,.network-banner{display:block}.account-hero-stat{text-align:left;margin-top:24px}.route-diagram{margin-top:20px;min-width:0}.accounts-table{min-width:980px}.account-stats{grid-template-columns:repeat(2,1fr)}.credentials>div{grid-template-columns:1fr}.channel-top{grid-template-columns:45px 1fr}.connection{grid-column:1/-1;width:max-content}.channel-metrics{grid-template-columns:1fr 1fr}.bot-menu-preview{grid-template-columns:1fr 1fr}}
/* v0.5 cohort + Internet/server */
.cohort-hero,.internet-hero{position:relative;overflow:hidden;border-radius:28px;padding:28px;background:linear-gradient(135deg,#071b2a,#07547e 62%,#0eb5ff 145%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 24px 60px #0b3d5d22}.cohort-hero:after,.internet-hero:after{content:"";position:absolute;width:340px;height:340px;right:-135px;top:-180px;border-radius:50%;border:1px solid #ffffff28;box-shadow:0 0 0 54px #ffffff0a,0 0 0 108px #ffffff08}.cohort-hero h2,.internet-hero h2{font-size:max(var(--font-min),calc(29px * var(--font-scale)));letter-spacing:-1px;margin:9px 0 6px}.cohort-hero p,.internet-hero p{margin:0;color:#cae3ef;max-width:720px;line-height:1.55}.cohort-actions{position:relative;z-index:2;display:flex;gap:8px}.cohort-actions .secondary{background:#ffffff14;color:#fff;border-color:#ffffff32}.group-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin-top:14px}.group-chip{border:1px solid var(--line);border-radius:18px;padding:14px 15px;background:var(--card);color:var(--text);text-align:left;cursor:pointer;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto;gap:3px 8px;transition:.18s}.group-chip:hover{transform:translateY(-2px);border-color:#9ddfff}.group-chip span{font-weight:900}.group-chip b{font-size:max(var(--font-min),calc(22px * var(--font-scale)));color:#079be4}.group-chip small{grid-column:1/-1;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.large-empty{padding:55px 20px;display:flex;flex-direction:column;gap:7px}.large-empty b{font-size:max(var(--font-min),calc(17px * var(--font-scale)));color:var(--text)}.student-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.student-form-grid .wide{grid-column:1/-1}.account-toggle{display:flex;align-items:flex-start;gap:10px;margin-top:17px;padding:14px;border-radius:15px;background:#f2faff;border:1px solid #d8effb;cursor:pointer}.dark .account-toggle{background:#082536;border-color:#16465e}.account-toggle input{margin-top:3px}.account-toggle b,.account-toggle small{display:block}.account-toggle small{color:var(--muted);margin-top:4px;line-height:1.45}.internet-state{position:relative;z-index:2;min-width:230px;padding:16px;border-radius:17px;background:#04152266;border:1px solid #ffffff25}.internet-state b,.internet-state span{display:block}.internet-state b{color:#7bdaff;font-size:max(var(--font-min),calc(12px * var(--font-scale)));letter-spacing:.7px}.internet-state span{margin-top:5px;color:#d4eaf3;font-size:max(var(--font-min),calc(11px * var(--font-scale)));overflow-wrap:anywhere}.deploy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.deploy-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:21px;box-shadow:var(--shadow)}.deploy-card.recommended{border-color:#86dcff;background:linear-gradient(180deg,#f7fdff,var(--card))}.dark .deploy-card.recommended{background:linear-gradient(180deg,#0a2536,var(--card))}.deploy-card h3{margin:17px 0 8px;font-size:max(var(--font-min),calc(18px * var(--font-scale)))}.deploy-card p{font-size:max(var(--font-min),calc(11px * var(--font-scale)));line-height:1.65;color:var(--muted);min-height:74px}.deploy-card b,.deploy-card code{display:block;margin-top:12px;font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:#087eb9;overflow-wrap:anywhere}.deploy-tag{position:absolute;top:13px;right:13px;border-radius:99px;padding:5px 7px;background:#e6f7ff;color:#087eb9;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;letter-spacing:.7px}.dark .deploy-tag{background:#0c344a;color:#78d5ff}@media(max-width:1000px){.deploy-grid{grid-template-columns:1fr}.cohort-hero,.internet-hero{align-items:flex-start;flex-direction:column}.cohort-actions{width:100%;flex-wrap:wrap}.internet-state{min-width:0;width:100%}}@media(max-width:680px){.student-form-grid{grid-template-columns:1fr}.student-form-grid .wide{grid-column:auto}.cohort-actions .btn{flex:1}.group-strip{grid-template-columns:1fr 1fr}}
/* v0.7 compliance UI */
.journal-controls{display:grid;gap:10px;margin:14px 0}.lesson-control{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:16px;background:var(--panel2)}.lesson-control div{display:grid;gap:4px}.lesson-control small{color:var(--muted)}.cell.readonly{cursor:not-allowed;opacity:.82;box-shadow:inset 0 0 0 1px rgba(148,163,184,.18)}
.correction-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.correction-row:last-child{border-bottom:0}.correction-main{display:grid;gap:8px}.correction-title{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.correction-title span,.correction-main small{color:var(--muted);font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.correction-main p{margin:0}.correction-values{display:flex;align-items:center;gap:8px}.correction-values span{display:inline-grid;place-items:center;min-width:38px;height:38px;border-radius:12px;background:var(--panel2);font-weight:900}.correction-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.compliance-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px;border-radius:26px;background:linear-gradient(135deg,#071928,#0d3350);color:#fff;box-shadow:var(--shadow);margin-bottom:16px}.compliance-hero h2{font-size:max(var(--font-min),calc(28px * var(--font-scale)));margin:7px 0}.compliance-hero p{color:#b8d3e7;margin:0}.compliance-score{display:grid;place-items:center;flex:0 0 104px;height:104px;border-radius:28px;background:rgba(11,174,255,.18);border:1px solid rgba(87,200,255,.35);font-size:max(var(--font-min),calc(44px * var(--font-scale)));font-weight:900}.compliance-score small{font-size:max(var(--font-min),calc(10px * var(--font-scale)));letter-spacing:.12em}.rule-row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.rule-row>span{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(11,174,255,.12);color:var(--blue);font-weight:900}.rule-row div{display:grid;gap:4px}.rule-row small{color:var(--muted)}.rule-row em{font-style:normal;color:#18a66a;font-weight:900;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}
@media(max-width:760px){.correction-row{grid-template-columns:1fr}.correction-actions{justify-content:flex-start}.compliance-hero{align-items:flex-start}.compliance-score{flex-basis:78px;height:78px;border-radius:20px;font-size:max(var(--font-min),calc(34px * var(--font-scale)))}.lesson-control{align-items:flex-start;flex-direction:column}}

/* =========================================================
   NKTL ONE 0.8 — branded visual system
   Official college identity: navy / white / gold
   ========================================================= */
:root{
  --navy:#062b55;
  --navy-deep:#031b36;
  --navy-soft:#0b477a;
  --gold:#d9a72e;
  --gold-soft:#f3d480;
  --blue:#0876c9;
  --blue2:#075da7;
  --card:#fff;
  --text:#10243b;
  --muted:#70849a;
  --line:#e3ebf3;
  --side:#05284e;
  --shadow:0 18px 48px rgba(18,52,86,.09);
}
body{background:linear-gradient(180deg,#f8fbfe 0,#f4f8fc 52%,#f8fafc 100%)}
html.dark{--card:#0b1e33;--text:#eef6ff;--muted:#91a5b8;--line:#18354f;--side:#03182f;background:#071625;color:#eef6ff}
html.dark body{background:radial-gradient(circle at 15% 0,#0b3154,transparent 30%),#071625}

/* Login */
.login{grid-template-columns:minmax(520px,1.18fr) minmax(420px,.82fr);background:#f7f9fc}
.branded-login{padding:50px 58px;background:
  radial-gradient(circle at 80% 22%,rgba(217,167,46,.18),transparent 26%),
  linear-gradient(145deg,#031b36 0%,#073c6c 55%,#075a98 100%)}
.branded-login:before{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 55%,rgba(255,255,255,.035));pointer-events:none}
.branded-login:after{width:680px;height:680px;right:-250px;top:-260px;border-color:rgba(217,167,46,.22);box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(217,167,46,.035)}
.login-brand-lockup{position:relative;z-index:2;display:flex;align-items:center;gap:18px}
.login-brand-lockup img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.22))}
.login-brand-lockup .brand{font-size:max(var(--font-min),calc(32px * var(--font-scale)));letter-spacing:-1.8px}
.login-brand-lockup .brand b,.brand b{color:var(--gold)}
.login-brand-lockup span{display:block;margin-top:5px;color:#b8cee1;font-size:max(var(--font-min),calc(12px * var(--font-scale)));letter-spacing:.04em}
.login-hero-copy{position:relative;z-index:2;max-width:760px;margin:auto 0}
.login-hero-copy .eyebrow{border-color:rgba(217,167,46,.34);background:rgba(217,167,46,.09);color:#f7d976}
.login-hero-copy h1{font-size:max(var(--font-min),calc(56px * var(--font-scale)));max-width:760px;letter-spacing:-3.2px;line-height:1.04;margin:22px 0 18px}
.login-hero-copy p{font-size:max(var(--font-min),calc(17px * var(--font-scale)));max-width:700px;color:#c0d4e4}
.login-feature-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.login-feature-row span{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.065);padding:10px 13px;border-radius:13px;font-size:max(var(--font-min),calc(12px * var(--font-scale)));color:#e3eef7;font-weight:700}
.hero-signature{position:relative;z-index:2;color:#8caac1;font-size:max(var(--font-min),calc(12px * var(--font-scale)));border-top:1px solid rgba(255,255,255,.1);padding-top:18px}
.login-side{background:linear-gradient(180deg,#fbfcfe,#f4f7fb)}
.login-card{border-radius:30px;padding:34px 36px;border-color:#e6edf4;box-shadow:0 28px 80px rgba(14,51,84,.12)}
.login-card-logo{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.login-card-logo img{width:66px;height:66px;object-fit:contain}
.login-card-logo .brand{font-size:max(var(--font-min),calc(25px * var(--font-scale)))}
.login-card-logo small{display:block;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));margin-top:3px}
.login-card h2{font-size:max(var(--font-min),calc(30px * var(--font-scale)));margin:8px 0 6px;color:var(--navy)}
.login-primary{width:100%;margin-top:20px;background:linear-gradient(135deg,#0a75c6,#064c8c);box-shadow:0 12px 26px rgba(7,89,155,.25)}
.student-site-link{display:flex;text-decoration:none;justify-content:center;margin-top:10px;color:var(--navy);border-color:#dbe6ef}
.demo{background:#f4f7fa;border:1px solid #e6edf3;line-height:1.55}
.demo b{color:var(--navy)}.demo span{color:#8798a8}

/* Application shell */
.side{width:282px;padding:18px 14px 16px;background:
  radial-gradient(circle at 0 0,rgba(217,167,46,.12),transparent 26%),
  linear-gradient(180deg,#073664 0%,#05284e 50%,#031d39 100%);box-shadow:8px 0 34px rgba(5,34,67,.08)}
.main{margin-left:282px}
.side-brand{display:flex;align-items:center;gap:11px;padding:0 6px 18px;border-bottom:1px solid rgba(255,255,255,.09);margin-bottom:14px}
.side-brand img{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 8px 15px rgba(0,0,0,.22))}
.side-brand .brand{font-size:max(var(--font-min),calc(22px * var(--font-scale)));color:#fff;white-space:nowrap}
.side-brand .brand b{color:var(--gold-soft)}
.side-brand .subbrand{padding:0;margin:4px 0 0;color:#7fa3c2;font-size:max(var(--font-min),calc(8px * var(--font-scale)));letter-spacing:.08em}
.nav{gap:3px;overflow:auto;padding-right:2px}
.nav::-webkit-scrollbar{width:4px}.nav::-webkit-scrollbar-thumb{background:#ffffff16;border-radius:5px}
.nav button{display:flex;align-items:center;gap:7px;padding:10px 11px;color:#b4c8d9;border:1px solid transparent;font-weight:700}
.nav button span{width:25px;text-align:center;color:#91b5d3;font-size:max(var(--font-min),calc(16px * var(--font-scale)))}
.nav button:hover{background:rgba(255,255,255,.055);color:#fff;border-color:rgba(255,255,255,.06)}
.nav button.active{background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.08));border-color:rgba(255,255,255,.12);color:#fff;box-shadow:none;position:relative}
.nav button.active:before{content:"";position:absolute;left:-14px;top:7px;bottom:7px;width:4px;background:var(--gold);border-radius:0 4px 4px 0}
.nav button.active span{color:#f2cd69}
.side-student-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:#e8f2f8;margin-top:12px;padding:12px;border-radius:15px;background:linear-gradient(135deg,rgba(217,167,46,.15),rgba(255,255,255,.06));border:1px solid rgba(217,167,46,.2)}
.side-student-link>span{font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.side-student-link b{display:block;font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.side-student-link small{display:block;color:#8eabc1;font-size:max(var(--font-min),calc(8px * var(--font-scale)));margin-top:2px}
.userbox{display:grid;grid-template-columns:38px 1fr 30px;align-items:center;gap:9px;margin-top:12px;padding:10px;border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.055)}
.user-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#f0c85e,#d79c20);display:grid;place-items:center;color:#072b52;font-weight:950}
.user-meta{min-width:0}.userbox strong{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.userbox small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:#83a1b8}
.logout-mini{width:30px;height:30px;border:0;border-radius:10px;background:rgba(255,255,255,.07);color:#9ab3c6;cursor:pointer}
.top{height:80px;padding:0 28px;background:rgba(255,255,255,.9);border-bottom:1px solid #e7eef4;box-shadow:0 6px 20px rgba(22,55,88,.03)}
.top-title-wrap{display:flex;gap:11px;align-items:center}.top h1{color:var(--navy);font-size:max(var(--font-min),calc(22px * var(--font-scale)))}.top p{font-size:max(var(--font-min),calc(10px * var(--font-scale)));letter-spacing:.03em}
.top-right{display:flex;align-items:center;gap:9px}.top-status{display:flex;align-items:center;gap:7px;color:#6b8194;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:750;margin-right:5px}.top-status i{width:8px;height:8px;border-radius:50%;background:#1dbb81;box-shadow:0 0 0 4px rgba(29,187,129,.1)}
.top-student{text-decoration:none;display:grid;place-items:center}
.content{padding:24px 27px 35px;max-width:1650px}
.card{border-radius:20px;border-color:#e4ebf2;box-shadow:0 12px 38px rgba(22,54,85,.065)}
.btn{background:linear-gradient(135deg,#0a75c6,#07569a);box-shadow:0 9px 22px rgba(8,101,177,.18)}
.btn.secondary{box-shadow:none}

/* Dashboard inspired by the approved visual direction */
.dashboard-hero{min-height:246px;border-radius:25px;overflow:hidden;display:flex;justify-content:space-between;align-items:center;padding:30px 36px;background:
  linear-gradient(95deg,rgba(3,27,54,.98),rgba(5,61,109,.96) 58%,rgba(7,75,130,.92)),
  radial-gradient(circle at 78% 20%,rgba(217,167,46,.25),transparent 28%);box-shadow:0 22px 55px rgba(4,44,84,.16);position:relative;color:white}
.dashboard-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 54%,rgba(255,255,255,.035));pointer-events:none}
.dashboard-hero:after{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(217,167,46,.18);border-radius:50%;right:-170px;top:-260px;box-shadow:0 0 0 65px rgba(255,255,255,.025),0 0 0 130px rgba(217,167,46,.025)}
.dashboard-hero-copy{position:relative;z-index:2;max-width:760px}.eyebrow.gold{border-color:rgba(217,167,46,.32);background:rgba(217,167,46,.12);color:#f3d574}
.dashboard-hero h2{font-size:max(var(--font-min),calc(46px * var(--font-scale)));letter-spacing:-2.5px;margin:14px 0 8px}.dashboard-hero h2 b{color:#f1c65a}.dashboard-hero p{max-width:700px;color:#c4d8e7;font-size:max(var(--font-min),calc(14px * var(--font-scale)));line-height:1.65;margin:0}
.dashboard-hero-logo{position:relative;z-index:2;width:230px;align-self:stretch;display:grid;place-items:center}.dashboard-hero-logo img{width:210px;height:210px;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(0,0,0,.25))}
.hero-mini-stats{display:flex;gap:24px;margin-top:24px}.hero-mini-stats span{color:#9db9cd;font-size:max(var(--font-min),calc(10px * var(--font-scale)));text-transform:uppercase;letter-spacing:.04em}.hero-mini-stats b{display:block;font-size:max(var(--font-min),calc(22px * var(--font-scale)));color:#fff;letter-spacing:-.5px;margin-bottom:3px}
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:16px;margin-top:16px;align-items:start}
.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-stats .metric{min-height:112px}.dashboard-stats .metric small{font-size:max(var(--font-min),calc(9px * var(--font-scale)));letter-spacing:.04em}.dashboard-stats .metric strong{font-size:max(var(--font-min),calc(27px * var(--font-scale)));color:var(--navy)}
.dashboard-stats .bubble{background:#f4f8fb;color:#0b6bad;border:1px solid #e6eef5}.dashboard-stats .metric:nth-child(4) .bubble,.dashboard-stats .metric:nth-child(5) .bubble{color:#a77a12;background:#fff9e9}
.dashboard-row{grid-template-columns:1.4fr .9fr}.chart-card,.risk-card{min-height:330px}.head h2{color:var(--navy)}
.today-panel{padding:21px;position:sticky;top:98px}.today-panel .mini-link{border:0;background:transparent;color:#0870ba;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:850;cursor:pointer}
.today-lessons{display:flex;flex-direction:column;gap:2px}.today-lesson{display:grid;grid-template-columns:54px 1fr 31px;align-items:center;gap:11px;padding:14px 0;border-top:1px solid var(--line)}.today-lesson:first-child{border-top:0}.today-time{font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:900;color:#0a6fac}.today-time small{display:block;color:#93a3b1;font-size:max(var(--font-min),calc(8px * var(--font-scale)));margin-top:3px}.today-lesson b{display:block;color:var(--navy);font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.today-lesson span{display:block;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));margin-top:4px;line-height:1.35}.today-lesson em{font-style:normal;width:30px;height:30px;border-radius:10px;background:#f0f6fa;color:#69859c;display:grid;place-items:center;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900}
.today-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.today-summary div{padding:13px;background:#f6f9fb;border-radius:14px}.today-summary b{display:block;color:var(--navy);font-size:max(var(--font-min),calc(19px * var(--font-scale)))}.today-summary span{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:#8294a3}

/* Dark corrections */
html.dark .login-side{background:#071625}html.dark .login-card{background:#0b1e33}html.dark .login-card h2,html.dark .demo b,html.dark .top h1,html.dark .head h2,html.dark .dashboard-stats .metric strong,html.dark .today-lesson b,html.dark .today-summary b{color:#eef6ff}html.dark .demo,html.dark .today-summary div{background:#0a1a2c;border-color:#17344d}html.dark .top{background:rgba(7,22,37,.92);border-color:#173149}

@media(max-width:1220px){.dashboard-layout{grid-template-columns:1fr}.today-panel{position:static}.dashboard-hero-logo{width:180px}.dashboard-hero-logo img{width:170px;height:170px}}
@media(max-width:980px){.login{grid-template-columns:1fr}.branded-login{display:none}.side{width:282px}.main{margin-left:0}.dashboard-hero{padding:26px}.dashboard-hero h2{font-size:max(var(--font-min),calc(38px * var(--font-scale)))}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.dashboard-row{grid-template-columns:1fr}}
@media(max-width:650px){.top-status{display:none}.dashboard-hero{display:block;min-height:auto}.dashboard-hero-logo{display:none}.hero-mini-stats{gap:14px;flex-wrap:wrap}.dashboard-stats{grid-template-columns:1fr 1fr}.content{padding:15px}.login-card{padding:27px 22px}}
@media(max-width:430px){.dashboard-stats{grid-template-columns:1fr}.dashboard-hero h2{font-size:max(var(--font-min),calc(34px * var(--font-scale)))}.hero-mini-stats span{min-width:90px}}

/* ============================================================
   NKTL ONE 0.9 · Unified portal / softer premium visual system
   ============================================================ */
:root{--radius-xl:30px;--radius-lg:24px;--radius-md:18px;--soft-shadow:0 24px 70px rgba(20,55,88,.09);--soft-line:rgba(208,222,234,.78)}
body{background:
 radial-gradient(circle at 10% 0%,rgba(19,137,211,.08),transparent 26%),
 radial-gradient(circle at 95% 5%,rgba(217,167,46,.07),transparent 24%),
 linear-gradient(180deg,#f7fafd 0%,#f3f7fb 45%,#f6f9fc 100%)}
.card{border-radius:var(--radius-lg);border:1px solid var(--soft-line);box-shadow:var(--soft-shadow);background:rgba(255,255,255,.92);backdrop-filter:blur(12px)}
.input,.select,.textarea{border-radius:16px;border-color:#dbe7f0;background:rgba(255,255,255,.94);transition:.18s ease;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.input:focus,.select:focus,.textarea:focus{border-color:#198bd2;box-shadow:0 0 0 4px rgba(15,135,209,.10)}
.btn{border-radius:16px;min-height:44px;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.btn:hover{transform:translateY(-1px);filter:saturate(1.05)}

.unified-login .hero{border-radius:0 42px 42px 0}.unified-login .login-side{position:relative;overflow:hidden}.unified-login .login-side:before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(10,117,198,.055);right:-210px;top:-170px}.unified-login .login-card{position:relative;z-index:2;border-radius:34px;box-shadow:0 34px 100px rgba(5,45,84,.14);border:1px solid rgba(217,229,239,.9)}
.public-schedule-btn{width:100%;margin-top:10px}.login-security{display:flex;align-items:center;gap:12px;padding:13px 14px;margin-top:14px;border-radius:17px;background:linear-gradient(135deg,#eff8ff,#f7fbff);border:1px solid #dcecf7}.login-security>span{width:38px;height:38px;border-radius:13px;background:#0a6db6;color:#fff;display:grid;place-items:center}.login-security b,.login-security small{display:block}.login-security b{font-size:max(var(--font-min),calc(11px * var(--font-scale)));color:var(--navy)}.login-security small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:#6d8295;margin-top:3px;line-height:1.4}.demo summary{cursor:pointer;font-weight:800;color:var(--navy)}.demo>div{margin-top:8px}
.public-week{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.public-week>div{padding:12px;border-radius:16px;background:#f6f9fc;min-height:100px}.public-week>div>b{display:block;color:var(--navy);margin-bottom:8px}.public-week span{display:block;padding:8px 0;border-top:1px solid #e4edf4;font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.public-week span strong{display:block;color:#0870ba}.public-week span small{display:block;color:var(--muted);margin-top:2px}

.side{border-radius:0 28px 28px 0;box-shadow:18px 0 60px rgba(4,35,67,.10)}.nav button{border-radius:14px}.side-security-chip{display:flex;align-items:center;gap:9px;margin-top:12px;padding:11px 12px;border-radius:15px;background:rgba(54,194,146,.09);border:1px solid rgba(89,219,171,.14);color:#d9f8ec}.side-security-chip i{width:9px;height:9px;border-radius:50%;background:#35d39c;box-shadow:0 0 0 5px rgba(53,211,156,.10)}.side-security-chip b,.side-security-chip small{display:block}.side-security-chip b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.side-security-chip small{font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:#88b9aa;margin-top:2px}.top{margin:10px 14px 0 12px;border:1px solid rgba(220,231,239,.82);border-radius:22px;height:70px;box-shadow:0 12px 34px rgba(31,65,96,.055)}.content{padding-top:20px}

.student-home-hero{min-height:225px;border-radius:30px;padding:30px 34px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#fff;position:relative;overflow:hidden;background:radial-gradient(circle at 86% 15%,rgba(231,184,71,.23),transparent 27%),linear-gradient(110deg,#062d57 0%,#07528e 68%,#096ba9 100%);box-shadow:0 24px 65px rgba(4,54,96,.18)}.student-home-hero:after{content:"";position:absolute;width:360px;height:360px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-130px;bottom:-240px;box-shadow:0 0 0 60px rgba(255,255,255,.025),0 0 0 120px rgba(217,167,46,.025)}.student-home-hero>div{position:relative;z-index:2}.student-home-hero h2{font-size:max(var(--font-min),calc(38px * var(--font-scale)));margin:13px 0 6px;letter-spacing:-1.5px}.student-home-hero p{color:#bcd5e8}.student-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:23px}.student-quick button{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.09);color:#fff;padding:10px 13px;border-radius:14px;font:inherit;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:800;cursor:pointer}.student-level{width:240px;padding:22px;border-radius:22px;background:rgba(4,31,60,.38);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px)}.student-level span,.student-level b,.student-level small{display:block}.student-level span{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:#f3d574;font-weight:900}.student-level b{font-size:max(var(--font-min),calc(29px * var(--font-scale)));margin:8px 0;color:#fff}.student-level small{color:#9ebdd3;font-size:max(var(--font-min),calc(8px * var(--font-scale)));margin-top:7px}.student-pstats{margin-top:16px}.student-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.student-grid>.card{padding:21px}.student-lesson{display:grid;grid-template-columns:55px 1fr 30px;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.student-lesson time{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:#0871b9;font-weight:900}.student-lesson b,.student-lesson span{display:block}.student-lesson b{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:var(--navy)}.student-lesson span{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);margin-top:3px}.student-lesson em{font-style:normal;width:28px;height:28px;display:grid;place-items:center;border-radius:10px;background:#eff6fb;color:#6b8295;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900}.student-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid var(--line)}.student-row b,.student-row small{display:block}.student-row b{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:var(--navy)}.student-row small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);margin-top:3px;max-width:420px}.due-pill{font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:850;color:#916b12;background:#fff7df;border-radius:999px;padding:6px 8px;white-space:nowrap}.notification-dot{width:9px;height:9px;border-radius:50%;background:#0a9fe7;box-shadow:0 0 0 5px rgba(10,159,231,.10)}.achievements-card{margin-top:16px}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px}.achievement-grid>div{padding:15px;border-radius:18px;background:#f7fafc;border:1px solid #e7eef4}.achievement-grid span,.achievement-grid b,.achievement-grid small{display:block}.achievement-grid span{font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.achievement-grid b{font-size:max(var(--font-min),calc(10px * var(--font-scale)));margin-top:7px;color:var(--navy)}.achievement-grid small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);margin-top:4px}

.security-hero{border-radius:30px;padding:30px 34px;min-height:205px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:radial-gradient(circle at 90% 10%,rgba(58,214,161,.18),transparent 29%),linear-gradient(110deg,#052640,#073c65 56%,#075b79);box-shadow:0 24px 65px rgba(5,43,68,.17)}.security-hero h2{font-size:max(var(--font-min),calc(35px * var(--font-scale)));margin:12px 0 8px}.security-hero p{color:#b8d2df;max-width:680px}.security-shield{width:125px;height:125px;border-radius:38px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);display:grid;place-items:center;font-size:max(var(--font-min),calc(47px * var(--font-scale)));box-shadow:inset 0 0 45px rgba(255,255,255,.035)}.security-shield small{display:block;font-size:max(var(--font-min),calc(8px * var(--font-scale)));letter-spacing:.12em;color:#81e2bd;margin-top:-26px}.security-metrics{grid-template-columns:repeat(4,1fr);margin-top:16px}.security-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-top:16px}.mfa-promo{display:grid;grid-template-columns:34px 1fr;gap:8px 12px;margin:17px 0}.mfa-promo span{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;background:#eff8ff;color:#0872ba;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900}.mfa-promo p{margin:6px 0;color:#667e91;font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.rule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.rule-grid>div{display:grid;grid-template-columns:28px 1fr;column-gap:9px;padding:13px;border-radius:16px;background:#f7fafc;border:1px solid #e8eff4}.rule-grid i{grid-row:1/3;width:28px;height:28px;display:grid;place-items:center;border-radius:10px;background:#e9fbf4;color:#14996b;font-style:normal;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:900}.rule-grid b{font-size:max(var(--font-min),calc(9px * var(--font-scale)));color:var(--navy)}.rule-grid small{font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:var(--muted);margin-top:3px}.mfa-secret{padding:16px;border-radius:18px;background:#061f37;color:#fff;margin:14px 0}.mfa-secret small,.mfa-secret code{display:block}.mfa-secret small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:#8eb0c8}.mfa-secret code{font-size:max(var(--font-min),calc(16px * var(--font-scale)));letter-spacing:.08em;margin-top:8px;word-break:break-all}.mfa-code{text-align:center;font-size:max(var(--font-min),calc(22px * var(--font-scale)));letter-spacing:.25em}.security-event{display:grid;grid-template-columns:145px 180px 1fr;gap:10px;padding:11px 0;border-top:1px solid var(--line);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.security-event span{color:var(--muted)}.security-event b{color:var(--navy)}.security-event small{color:#72879a}.security-banner{margin-top:16px;display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,#eefaf6,#f4fbff);border:1px solid #d8eee6}.security-banner>span{font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.security-banner b{color:#0b4d3d}.security-banner p{margin:4px 0 0;color:#678478;font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.55}

html.dark body{background:#07131f}.dark .card{background:rgba(9,27,44,.94);border-color:#17334a}.dark .input,.dark .select,.dark .textarea{background:#091b2c;border-color:#1a3b55}.dark .achievement-grid>div,.dark .rule-grid>div,.dark .public-week>div{background:#0b2033;border-color:#17374f}.dark .student-row b,.dark .student-lesson b,.dark .achievement-grid b,.dark .rule-grid b,.dark .security-event b{color:#edf6fc}.dark .login-security{background:#0a2134;border-color:#173a53}.dark .login-security b{color:#eaf5fb}

@media(max-width:1050px){.student-grid,.security-layout{grid-template-columns:1fr}.security-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.student-home-hero{display:block;padding:24px}.student-level{width:auto;margin-top:18px}.student-home-hero h2{font-size:max(var(--font-min),calc(30px * var(--font-scale)))}.public-week{grid-template-columns:1fr 1fr}.rule-grid{grid-template-columns:1fr}.security-event{grid-template-columns:1fr}.security-shield{display:none}}
@media(max-width:480px){.public-week{grid-template-columns:1fr}.security-metrics{grid-template-columns:1fr 1fr}.top{margin:7px 8px 0}.content{padding:12px 10px 28px}.student-home-hero,.security-hero{border-radius:23px}}

/* ======================================================================
   NKTL ONE 1.0 — premium unified UI
   ====================================================================== */
:root{
  --navy:#082f57;--navy-2:#0a456f;--blue:#078fd8;--blue2:#096fb5;--cyan:#36b8f0;
  --gold:#d9a72e;--gold-soft:#fff5d9;--green:#16a975;--red:#e1506d;--amber:#d89117;--violet:#7a67d8;
  --card:#fff;--text:#12283a;--muted:#6e8293;--line:#e3ebf2;--soft:#f4f8fb;--side:#062440;
  --shadow:0 18px 50px rgba(24,57,86,.08);--shadow-lg:0 32px 90px rgba(10,43,72,.15);
  --r-sm:12px;--r-md:18px;--r-lg:26px;--r-xl:34px;--side-w:286px;--top-h:78px;
}
html.dark{--card:#0c1e2f;--text:#eef7fd;--muted:#91a6b8;--line:#1b374d;--soft:#0a1927;--side:#041522;--navy:#dcefff;--navy-2:#9fcce7;--shadow:0 18px 50px rgba(0,0,0,.18)}
html{scroll-behavior:smooth;background:var(--soft)}
body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 12% -8%,rgba(51,183,239,.14),transparent 34%),radial-gradient(circle at 92% 6%,rgba(217,167,46,.08),transparent 26%),linear-gradient(180deg,#f7fafc,#f2f6f9 58%,#f6f9fb);font-size:max(var(--font-min),calc(14px * var(--font-scale)));letter-spacing:.003em}
html.dark body{background:radial-gradient(circle at 10% -5%,rgba(16,109,165,.15),transparent 34%),radial-gradient(circle at 92% 5%,rgba(217,167,46,.07),transparent 24%),#07131f}
button,input,select,textarea{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(7,143,216,.22);outline-offset:2px}
::selection{background:rgba(7,143,216,.18)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#bacbd8;border:3px solid transparent;background-clip:padding-box;border-radius:999px}.dark ::-webkit-scrollbar-thumb{background:#315069;border:3px solid transparent;background-clip:padding-box}

.app-boot{min-height:100vh;display:grid;place-items:center}.boot-mark{display:flex;align-items:center;gap:18px;padding:20px 25px;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.85);box-shadow:var(--shadow);backdrop-filter:blur(20px)}.dark .boot-mark{background:rgba(11,29,45,.9)}.boot-mark img{width:64px;height:64px;object-fit:contain}.boot-mark strong,.boot-mark span{display:block}.boot-mark strong{font-size:max(var(--font-min),calc(21px * var(--font-scale)));color:var(--navy)}.boot-mark span{margin-top:4px;font-size:max(var(--font-min),calc(12px * var(--font-scale)));color:var(--muted)}.noscript{max-width:520px;margin:80px auto;padding:20px;border-radius:18px;background:var(--card);border:1px solid var(--line)}

/* Login */
.unified-login{min-height:100vh;grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);background:var(--soft)}
.unified-login .hero{position:relative;padding:54px 62px 48px;border-radius:0 44px 44px 0;overflow:hidden;background:radial-gradient(circle at 86% 8%,rgba(224,180,64,.2),transparent 26%),radial-gradient(circle at 15% 85%,rgba(38,167,231,.18),transparent 28%),linear-gradient(135deg,#051c34 0%,#073c6b 54%,#086aa2 100%);box-shadow:24px 0 70px rgba(3,34,61,.16)}
.unified-login .hero:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 45%,rgba(255,255,255,.035));pointer-events:none}.unified-login .hero:after{width:560px;height:560px;right:-250px;top:-230px;box-shadow:0 0 0 82px rgba(255,255,255,.026),0 0 0 164px rgba(255,255,255,.018),0 0 0 246px rgba(217,167,46,.018)}
.login-brand-lockup{position:relative;z-index:2;display:flex;align-items:center;gap:15px}.login-brand-lockup img{width:74px;height:74px;object-fit:contain;border-radius:24px;background:#fff;padding:7px;box-shadow:0 15px 34px rgba(0,0,0,.16)}.login-brand-lockup .brand{font-size:max(var(--font-min),calc(27px * var(--font-scale)));color:#fff}.login-brand-lockup span{display:block;margin-top:4px;color:#9fc1d9;font-size:max(var(--font-min),calc(11px * var(--font-scale)));letter-spacing:.06em}
.login-hero-copy{position:relative;z-index:2;max-width:780px;margin:auto 0}.login-hero-copy h1{max-width:780px;font-size:clamp(44px,4.5vw,70px);line-height:.98;letter-spacing:-3.3px;margin:22px 0 19px;text-wrap:balance}.login-hero-copy>p{font-size:max(var(--font-min),calc(17px * var(--font-scale)));line-height:1.72;color:#b7d0e2;max-width:690px}.login-feature-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.login-feature-row span{padding:10px 13px;border:1px solid rgba(255,255,255,.11);border-radius:999px;background:rgba(255,255,255,.065);font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:750;color:#d8e8f3;backdrop-filter:blur(10px)}
.login-trust{display:flex;align-items:center;gap:12px;margin-top:22px;padding:14px 16px;max-width:560px;border:1px solid rgba(68,210,160,.18);border-radius:18px;background:rgba(21,118,95,.12)}.login-trust>i{width:12px;height:12px;border-radius:50%;background:#41d6a5;box-shadow:0 0 0 6px rgba(65,214,165,.10)}.login-trust b,.login-trust small{display:block}.login-trust b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.login-trust small{margin-top:3px;color:#a5c8bc;font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.45}
.hero-signature{position:relative;z-index:2;display:flex;flex-direction:column;gap:4px;color:#8eb1cb;font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.hero-signature b{color:#d6b554;font-size:max(var(--font-min),calc(9px * var(--font-scale)));letter-spacing:.05em}
.login-side{position:relative;overflow:hidden;padding:36px}.login-side:before,.login-side:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-side:before{width:470px;height:470px;right:-235px;top:-210px;background:rgba(7,143,216,.05)}.login-side:after{width:290px;height:290px;left:-180px;bottom:-160px;background:rgba(217,167,46,.055)}
.login-card{position:relative;z-index:2;width:min(470px,100%);padding:34px 36px 28px;border:1px solid rgba(218,229,238,.9);border-radius:34px;background:rgba(255,255,255,.94);box-shadow:0 35px 100px rgba(9,48,79,.13);backdrop-filter:blur(22px)}.dark .login-card{background:rgba(10,28,44,.96);border-color:#1c3b52}.login-card-logo{display:flex;align-items:center;gap:12px;margin-bottom:27px}.login-card-logo img{width:54px;height:54px;object-fit:contain;border-radius:17px;background:#fff;padding:5px;border:1px solid #e4edf3}.login-card-logo .brand{font-size:max(var(--font-min),calc(20px * var(--font-scale)));color:var(--navy)}.login-card-logo small{display:block;margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));letter-spacing:.05em}.login-welcome{margin-bottom:24px}.login-kicker,.section-kicker{display:block;color:#0b8dd4;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900;letter-spacing:.14em}.login-welcome h2{margin:8px 0 5px;font-size:max(var(--font-min),calc(31px * var(--font-scale)));letter-spacing:-1.1px}.login-welcome p{margin:0;color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.field-wrap{position:relative}.field-wrap.clean{margin-bottom:2px}.login-input{min-height:58px;border-radius:18px;padding:15px 18px;font-size:max(var(--font-min),calc(18px * var(--font-scale)));letter-spacing:-.01em}.login-input.has-action{padding-right:96px}.field-icon{display:none}.input.with-icon{padding-left:18px}.input.has-action{padding-right:96px}.field-action{position:absolute;right:9px;top:50%;transform:translateY(-50%);border:0;border-radius:12px;background:transparent;color:#3d759c;padding:10px 12px;font-size:max(var(--font-min),calc(12px * var(--font-scale)));font-weight:800;cursor:pointer}.field-action:hover{background:#edf6fc}.caps-hint{height:0;overflow:hidden;color:#b36f00;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:800;transition:.18s}.caps-hint.visible{height:18px;padding-top:4px}.login-primary{width:100%;margin-top:20px;min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-radius:16px}.login-primary b{font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.public-schedule-btn{min-height:46px}.login-version{text-align:center;margin-top:17px;color:#9aabb8;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:750;letter-spacing:.08em}.demo{border:1px dashed #d6e2eb;background:rgba(244,248,251,.8)}.dark .demo{border-color:#244258;background:#091b2b}.demo code{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.eyebrow{padding:8px 12px;font-size:max(var(--font-min),calc(9px * var(--font-scale)));letter-spacing:.09em}

/* Shell */
.side{width:var(--side-w);padding:18px 14px 14px;border-radius:0 30px 30px 0;background:radial-gradient(circle at 0 0,rgba(24,118,176,.16),transparent 34%),linear-gradient(180deg,#061e35,#061a2e 65%,#051727);box-shadow:16px 0 55px rgba(3,28,51,.12);transition:width .2s ease,transform .25s ease}.side-brand{position:relative;display:flex;align-items:center;gap:11px;padding:4px 8px 19px;border-bottom:1px solid rgba(255,255,255,.06)}.side-brand img{width:49px;height:49px;object-fit:contain;border-radius:15px;background:#fff;padding:4px}.side-brand .brand{font-size:max(var(--font-min),calc(20px * var(--font-scale)));color:#fff;white-space:nowrap}.side-brand .subbrand{padding:2px 0 0;font-size:max(var(--font-min),calc(7px * var(--font-scale)));letter-spacing:.12em;color:#6f93ad;white-space:nowrap}.side-collapse{position:absolute;right:-29px;top:15px;width:26px;height:34px;border:1px solid #dce8f0;border-left:0;border-radius:0 10px 10px 0;background:#fff;color:#315c7b;cursor:pointer;box-shadow:8px 0 15px rgba(24,57,86,.05)}.dark .side-collapse{background:#0c1e2f;border-color:#1a384f;color:#9ec0d5}
.nav{overflow:auto;padding:11px 2px 6px;gap:0}.nav-group{display:flex;flex-direction:column;gap:4px;margin-bottom:13px}.nav-group>small{padding:6px 11px 3px;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#55758e}.nav button{position:relative;display:flex;align-items:center;width:100%;padding:10px 11px;border-radius:14px;color:#8eacc2;transition:.15s ease;overflow:hidden}.nav button:hover{background:rgba(255,255,255,.055);color:#d9edf9}.nav button.active{background:linear-gradient(135deg,#0c85ca,#076dad);box-shadow:0 12px 28px rgba(3,112,180,.29);color:#fff}.nav button.active:after{content:"";position:absolute;right:7px;width:5px;height:5px;border-radius:50%;background:#f1cd65;box-shadow:0 0 0 4px rgba(241,205,101,.10)}.nav button span{width:31px;font-size:max(var(--font-min),calc(15px * var(--font-scale)))}.nav button b{font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:750;white-space:nowrap}.side-security-chip{margin-top:auto;margin-bottom:8px;padding:10px 11px}.userbox{margin-top:0;display:grid;grid-template-columns:38px minmax(0,1fr) 32px;align-items:center;gap:9px;padding:10px;border-radius:16px}.user-avatar{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:linear-gradient(135deg,#1a83bf,#0a547e);color:#fff;font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:900;border:1px solid rgba(255,255,255,.09)}.user-meta{min-width:0}.user-meta strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-mini{width:30px;height:30px;border:0;border-radius:10px;background:rgba(255,255,255,.06);color:#87a6bc;cursor:pointer}.logout-mini:hover{background:rgba(224,77,104,.14);color:#ff8aa0}
.main{margin-left:var(--side-w);transition:margin-left .2s ease}.top{height:var(--top-h);margin:10px 14px 0 12px;padding:0 17px;border:1px solid rgba(218,230,238,.86);border-radius:23px;background:rgba(255,255,255,.82);box-shadow:0 12px 34px rgba(26,62,93,.055);backdrop-filter:blur(22px)}.dark .top{background:rgba(7,20,32,.82);border-color:#19354a}.top-title-wrap{display:flex;align-items:center;gap:11px;min-width:220px}.top-breadcrumb{display:flex;align-items:center;gap:6px;margin-bottom:2px;font-size:max(var(--font-min),calc(7px * var(--font-scale)));letter-spacing:.05em;text-transform:uppercase;color:#8a9caa}.top-breadcrumb i{font-style:normal}.top-breadcrumb b{color:#4f7189}.top h1{font-size:max(var(--font-min),calc(19px * var(--font-scale)));letter-spacing:-.4px}.top-center{flex:1;display:flex;justify-content:center;padding:0 20px}.command-trigger{width:min(390px,100%);height:42px;border:1px solid var(--line);border-radius:14px;background:rgba(245,249,252,.88);display:grid;grid-template-columns:28px 1fr auto;align-items:center;text-align:left;color:#8296a5;padding:0 8px 0 11px;cursor:pointer;transition:.16s}.dark .command-trigger{background:#0a1b2a}.command-trigger:hover{border-color:#c6dbe9;box-shadow:0 7px 20px rgba(14,70,108,.06)}.command-trigger b{font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:650}.command-trigger kbd,.palette kbd,.shortcut-card kbd{border:1px solid var(--line);border-bottom-width:2px;border-radius:7px;background:var(--card);color:#7690a2;padding:4px 6px;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-family:inherit;font-weight:800}.top-right{display:flex;align-items:center;gap:7px}.network-state{display:flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:#edfaf5;color:#167b5b;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800}.network-state i{width:6px;height:6px;border-radius:50%;background:#25bc85;box-shadow:0 0 0 4px rgba(37,188,133,.09)}.network-state.offline{background:#fff0f2;color:#b63e55}.network-state.offline i{background:#e15b73}.dark .network-state{background:#0b2a25}.top-date{display:flex;align-items:flex-end;flex-direction:column;min-width:52px;padding:0 3px}.top-date b{font-size:max(var(--font-min),calc(8px * var(--font-scale)));text-transform:uppercase;color:#557286}.top-date span{font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:var(--muted)}.top .icon{width:39px;height:39px;border-radius:13px}.notification-icon{position:relative}.notification-icon>span{font-size:max(var(--font-min),calc(12px * var(--font-scale)));color:#0a91da}.notification-icon>i{display:none;position:absolute;right:-4px;top:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#e34d69;color:#fff;border:2px solid var(--card);font-style:normal;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-weight:900;place-items:center}.notification-icon>i.visible{display:grid}.content{padding:20px 22px 34px;max-width:1620px}.mobile-bottom,.mobile-scrim{display:none}
html.side-collapsed{--side-w:84px}.side-collapsed .side{padding-left:12px;padding-right:12px}.side-collapsed .side-brand>div,.side-collapsed .nav-group>small,.side-collapsed .nav button b,.side-collapsed .side-security-chip,.side-collapsed .user-meta,.side-collapsed .logout-mini{display:none}.side-collapsed .side-brand{justify-content:center}.side-collapsed .side-brand img{width:48px;height:48px}.side-collapsed .nav button{justify-content:center;padding:11px}.side-collapsed .nav button span{width:auto}.side-collapsed .userbox{display:flex;justify-content:center}.side-collapsed .side-collapse{transform:rotate(180deg)}

/* Components */
.card{border:1px solid rgba(221,231,239,.9);border-radius:var(--r-lg);background:rgba(255,255,255,.94);box-shadow:var(--shadow);backdrop-filter:blur(15px)}.dark .card{background:rgba(10,28,44,.94);border-color:#1b374c}.btn{min-height:43px;border-radius:14px;padding:10px 15px;background:linear-gradient(135deg,#0797df,#0876b9);box-shadow:0 9px 22px rgba(8,133,201,.18);font-size:max(var(--font-min),calc(10px * var(--font-scale)));transition:transform .14s,filter .14s,box-shadow .14s}.btn:hover:not(:disabled){transform:translateY(-1px);filter:saturate(1.05);box-shadow:0 12px 26px rgba(8,133,201,.24)}.btn:disabled{opacity:.58;cursor:wait}.btn.secondary{border-color:#dce8f0;background:rgba(255,255,255,.8);box-shadow:none}.dark .btn.secondary{background:#0a1c2d;border-color:#204057}.btn.large{min-height:50px;padding-inline:22px}.mini{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:7px 10px;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800;cursor:pointer}.input,.select,.textarea{min-height:44px;border:1px solid #d9e6ef;border-radius:14px;background:rgba(255,255,255,.94);font-size:max(var(--font-min),calc(11px * var(--font-scale)));padding:11px 13px;transition:.14s}.dark .input,.dark .select,.dark .textarea{background:#091b2b;border-color:#1e3e54}.input:focus,.select:focus,.textarea:focus{border-color:#1c9ade;box-shadow:0 0 0 4px rgba(7,143,216,.09)}.textarea{min-height:105px;line-height:1.55}.label{font-size:max(var(--font-min),calc(8px * var(--font-scale)));letter-spacing:.10em;color:#5f7a8e}.head{gap:12px}.head h2{font-size:max(var(--font-min),calc(16px * var(--font-scale)));letter-spacing:-.2px}.section-kicker{margin-bottom:5px}.badge{padding:5px 8px;font-size:max(var(--font-min),calc(7px * var(--font-scale)));letter-spacing:.04em}.badge.neutral{background:#eef3f7;color:#61798a}.dark .badge.neutral{background:#142d40;color:#9db4c4}.toolbar-spacer{flex:1}.toolbar{align-items:center}.metric{min-height:124px;padding:17px 17px 14px;overflow:hidden;position:relative}.metric:after{content:"";position:absolute;width:110px;height:110px;border-radius:50%;right:-54px;top:-58px;background:var(--metric-glow,rgba(7,143,216,.07))}.metric-label{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.metric-label span{font-size:max(var(--font-min),calc(8px * var(--font-scale)));letter-spacing:.07em;font-weight:850;color:#6c8293}.metric-label i{width:31px;height:31px;border-radius:11px;background:var(--metric-bg,#eaf6fc);color:var(--metric-color,#087fbe);font-style:normal;display:grid;place-items:center;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.metric strong{position:relative;z-index:1;margin-top:10px;font-size:max(var(--font-min),calc(27px * var(--font-scale)))}.metric-foot{position:relative;z-index:1;display:flex;align-items:center;gap:6px;margin-top:7px;color:#9aabb7;font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.pulse-dot{width:5px;height:5px;border-radius:50%;background:#28b77f}.tone-green{--metric-bg:#e8f8f2;--metric-color:#15845f;--metric-glow:rgba(22,169,117,.07)}.tone-red{--metric-bg:#fff0f3;--metric-color:#ca405d;--metric-glow:rgba(225,80,109,.07)}.tone-gold{--metric-bg:#fff7e3;--metric-color:#a97a10;--metric-glow:rgba(217,167,46,.08)}.tone-amber{--metric-bg:#fff5df;--metric-color:#b57608;--metric-glow:rgba(216,145,23,.08)}.tone-violet{--metric-bg:#f1efff;--metric-color:#6955c4;--metric-glow:rgba(122,103,216,.07)}
.empty-state{min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;color:var(--muted)}.empty-state>span{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;background:#eef6fb;color:#5b8aa8;font-size:max(var(--font-min),calc(18px * var(--font-scale)));margin-bottom:10px}.dark .empty-state>span{background:#112d41}.empty-state b{color:var(--text);font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.empty-state small{margin-top:5px;font-size:max(var(--font-min),calc(8px * var(--font-scale)));max-width:330px;line-height:1.45}.error-state{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.error-orbit{width:76px;height:76px;border-radius:25px;display:grid;place-items:center;background:#fff0f2;color:#c93e5a;font-size:max(var(--font-min),calc(31px * var(--font-scale)));font-weight:900;box-shadow:0 0 0 13px rgba(225,80,109,.05)}.error-state h2{margin:25px 0 6px}.error-state p{margin:0 0 18px;color:var(--muted)}.inline-error{display:flex;align-items:center;gap:12px;padding:16px;border-radius:15px;background:#fff2f4;border:1px solid #f5d8de;color:#a83b51}.inline-error>span{font-weight:900}.inline-error b,.inline-error small{display:block}.inline-error small{margin-top:3px}.inline-error button{margin-left:auto}.dark .inline-error{background:#2a141c;border-color:#542532}
.skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.skeleton-card{height:145px;border-radius:24px;border:1px solid var(--line);background:var(--card);padding:20px;overflow:hidden}.skeleton-card>*{display:block;border-radius:99px;background:linear-gradient(90deg,#edf2f6,#f7fafc,#edf2f6);background-size:220% 100%;animation:shimmer 1.3s linear infinite}.dark .skeleton-card>*{background:linear-gradient(90deg,#10283b,#18364c,#10283b);background-size:220% 100%}.skeleton-card i{height:10px}.skeleton-card b{width:54%;height:27px;margin-top:18px}.skeleton-card span{width:80%;height:8px;margin-top:13px}.skeleton-card span:last-child{width:63%}@keyframes shimmer{to{background-position:-220% 0}}@keyframes viewIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.view-enter{animation:viewIn .22s ease both}

/* Premium heroes / dashboard */
.premium-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 82% 10%,rgba(232,192,76,.22),transparent 25%),radial-gradient(circle at 2% 100%,rgba(31,164,227,.18),transparent 28%),linear-gradient(112deg,#06284c 0%,#075083 62%,#0871a7 100%);color:#fff;box-shadow:0 26px 70px rgba(4,54,96,.18)}.premium-hero:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.07);border-radius:50%;right:-240px;bottom:-390px;box-shadow:0 0 0 70px rgba(255,255,255,.022),0 0 0 140px rgba(255,255,255,.018)}.dashboard-hero{min-height:290px;border-radius:32px;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;gap:28px}.dashboard-hero-copy{position:relative;z-index:2;max-width:790px}.hero-overline{display:flex;align-items:center;gap:12px}.hero-overline>span:last-child{font-size:max(var(--font-min),calc(9px * var(--font-scale)));color:#9fc0d6;text-transform:capitalize}.dashboard-hero h2{font-size:max(var(--font-min),calc(40px * var(--font-scale)));line-height:1.05;letter-spacing:-1.8px;margin:15px 0 9px}.dashboard-hero p{max-width:680px;color:#bad3e5;font-size:max(var(--font-min),calc(12px * var(--font-scale)));line-height:1.6}.hero-actions{display:flex;gap:8px;margin:20px 0}.hero-btn{border:1px solid rgba(255,255,255,.14);border-radius:13px;background:rgba(255,255,255,.08);color:#fff;padding:10px 13px;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:800;cursor:pointer;backdrop-filter:blur(10px)}.hero-btn.primary{background:#fff;color:#075184;border-color:#fff}.hero-btn:hover{transform:translateY(-1px)}.hero-mini-stats{margin-top:0}.hero-mini-stats span{border-color:rgba(255,255,255,.08);background:rgba(4,31,59,.22)}.hero-visual{position:relative;z-index:2;min-width:270px;display:grid;place-items:center}.hero-visual>img{position:absolute;width:112px;height:112px;object-fit:contain;right:-6px;bottom:-18px;border-radius:34px;background:#fff;padding:7px;box-shadow:0 20px 50px rgba(0,0,0,.15)}.attendance-ring{--value:0;width:174px;height:174px;border-radius:50%;background:conic-gradient(#f0c754 calc(var(--value)*1%),rgba(255,255,255,.11) 0);display:grid;place-items:center;box-shadow:0 0 0 1px rgba(255,255,255,.08)}.attendance-ring:before{content:"";position:absolute;width:140px;height:140px;border-radius:50%;background:rgba(4,41,74,.92);box-shadow:inset 0 0 28px rgba(255,255,255,.035)}.attendance-ring>div{position:relative;z-index:1;text-align:center}.attendance-ring strong{display:block;font-size:max(var(--font-min),calc(30px * var(--font-scale)));color:#fff}.attendance-ring span{display:block;margin-top:2px;color:#a8c4d7;font-size:max(var(--font-min),calc(8px * var(--font-scale)));line-height:1.35}.dashboard-stats{grid-template-columns:repeat(6,1fr);margin-top:16px}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;margin-top:16px}.dashboard-layout>div{display:grid;gap:16px}.chart-card,.risk-card,.today-panel{padding:21px}.chart{height:260px}.risk-modern{display:grid;grid-template-columns:38px 1fr auto;gap:10px;border:0;border-top:1px solid var(--line);border-radius:0;margin:0;padding:12px 0}.risk-avatar{width:38px;height:38px;border-radius:13px;background:#edf6fb;color:#397899;display:grid;place-items:center;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900}.dark .risk-avatar{background:#112f44;color:#9ac4da}.mini-progress{height:4px;margin-top:7px;border-radius:999px;background:#edf2f5;overflow:hidden}.dark .mini-progress{background:#173247}.mini-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#dbac39,#1db27c)}.today-panel{align-self:start;position:sticky;top:99px}.today-lesson{grid-template-columns:55px 1fr 29px;padding:14px 0;border-top:1px solid var(--line)}.today-lesson.next{margin:4px -9px;padding:13px 9px;border:1px solid #d8ecf7;border-radius:15px;background:#f4fbff}.dark .today-lesson.next{background:#0b2638;border-color:#17445f}.today-summary{margin-top:14px;border-radius:16px}

/* Generic page hero */
.page-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px;padding:26px 29px;border-radius:28px;border:1px solid #dce8f0;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(246,250,252,.92));box-shadow:var(--shadow)}.dark .page-hero{background:linear-gradient(135deg,#0d2234,#0a1b2a);border-color:#1b394f}.page-hero h2{margin:6px 0 4px;font-size:max(var(--font-min),calc(27px * var(--font-scale)));letter-spacing:-.8px}.page-hero p{margin:0;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.page-hero-count,.system-version{min-width:110px;text-align:right}.page-hero-count strong,.system-version b{display:block;font-size:max(var(--font-min),calc(34px * var(--font-scale)));color:#0b76b4}.page-hero-count span,.system-version small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);text-transform:uppercase;letter-spacing:.1em}

/* Schedule */
.schedule-card{padding:18px}.schedule-toolbar{margin-bottom:9px}.legend{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.legend i{width:8px;height:8px;border-radius:3px}.legend .now{background:#0b94d9}.legend .cancel{background:#e25a74}.week-premium{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:10px;overflow-x:auto;padding-bottom:3px}.week-premium .day{min-width:0;padding:10px;border:1px solid transparent;border-radius:20px}.week-premium .day.is-today{background:linear-gradient(180deg,#f2faff,#f8fbfd);border-color:#d6edf8}.dark .week-premium .day.is-today{background:#092338;border-color:#174866}.week-premium .day>header{display:flex;align-items:flex-start;justify-content:space-between;padding:4px 4px 10px}.week-premium .day>header small,.week-premium .day>header strong{display:block}.week-premium .day>header small{font-size:max(var(--font-min),calc(7px * var(--font-scale)));letter-spacing:.09em;color:#0b8cd0;font-weight:900}.week-premium .day>header strong{margin-top:3px;font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:var(--text)}.week-premium .day>header>span{padding:5px 7px;border-radius:999px;background:#edf4f8;color:#708596;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-weight:800}.dark .week-premium .day>header>span{background:#132b3d}.day-lessons{display:grid;gap:7px}.week-premium .lesson-card{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;padding:11px;border-radius:15px;margin:0;background:var(--card);box-shadow:0 7px 20px rgba(28,67,98,.045);transition:.14s}.week-premium [data-sch].lesson-card{cursor:pointer}.week-premium [data-sch].lesson-card:hover{border-color:#bcdced;transform:translateY(-1px)}.lesson-number{width:30px;height:30px;border-radius:10px;background:#eaf6fc;color:#087bb8;display:grid;place-items:center;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:900}.dark .lesson-number{background:#113049}.lesson-info{min-width:0}.lesson-info em{display:block;font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.lesson-info b{font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.35;margin:4px 0;white-space:normal}.lesson-info small{font-size:max(var(--font-min),calc(7px * var(--font-scale)));white-space:normal}.lesson-room{grid-column:2;font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:#7190a4;font-weight:800}.lesson-card.is-cancelled{opacity:.65;background:#fff5f6;border-color:#f3d7dd}.dark .lesson-card.is-cancelled{background:#29151c;border-color:#512532}.add-schedule-card{margin-top:15px}.add-schedule-card .btn{margin-top:12px}

/* Homework */
.hw-panel{padding:18px}.segmented{display:flex;padding:3px;border-radius:13px;background:#eef4f8}.dark .segmented{background:#0c2234}.segmented button{border:0;background:transparent;border-radius:10px;padding:8px 10px;color:#6e8292;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800;cursor:pointer}.segmented button.active{background:#fff;color:#096da8;box-shadow:0 4px 13px rgba(28,66,96,.08)}.dark .segmented button.active{background:#17374e;color:#b7ddf2}.hw{grid-template-columns:repeat(3,1fr);gap:11px}.hw-card{position:relative;min-height:220px;padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:0 10px 28px rgba(28,67,98,.05);overflow:hidden}.hw-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-48px;bottom:-53px;background:rgba(7,143,216,.045)}.hw-card.late{border-color:#f0d4da}.hw-top{display:flex;align-items:center;justify-content:space-between}.hw-top time{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted)}.due{padding:5px 7px;border-radius:999px;background:#fff2dd;color:#a66e0a}.due.late{background:#fff0f3;color:#bf3a54}.hw-icon{width:42px;height:42px;margin-top:18px;border-radius:14px;background:#eaf6fc;color:#087ebd;display:grid;place-items:center;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.hw-card h3{margin:12px 0 6px;font-size:max(var(--font-min),calc(14px * var(--font-scale)))}.hw-card p{min-height:48px;margin:0;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.55}.hw-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:#718697}.hw-card footer b{color:#22936d}

/* Journal */
.journal-hint{display:flex;align-items:center;gap:6px;margin:11px 0 8px}.journal-hint span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;background:#eef4f8;color:#59778d}.journal-hint span:nth-child(1){background:#e5f8ef;color:#0b8259}.journal-hint span:nth-child(2){background:#e9f5ff;color:#0b76ae}.journal-hint span:nth-child(3){background:#fff4df;color:#a66c0b}.journal-hint span:nth-child(4),.journal-hint span:nth-child(5){background:#ffecef;color:#bf3f58}.journal-hint b{margin-left:5px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:700}.journal-table-wrap{max-height:65vh}.journal-table th{min-width:52px;text-align:center}.journal-table th.sticky{text-align:left;min-width:230px}.journal-table th span,.journal-table th small{display:block}.journal-table th small{margin-top:3px;font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.journal-table .cell{border:0;margin:auto}.student-cell.compact .avatar{width:28px;height:28px;border-radius:9px}.student-cell.compact b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.journal-current{display:flex;align-items:center;justify-content:space-between;margin:14px 0;padding:13px 15px;border-radius:15px;background:#f5f9fc}.dark .journal-current{background:#0b2233}.journal-current span{font-size:max(var(--font-min),calc(9px * var(--font-scale)));color:var(--muted)}.journal-current b{font-size:max(var(--font-min),calc(18px * var(--font-scale)))}.grade-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.grade-picker button{height:45px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--text);font-weight:900;cursor:pointer;transition:.12s}.grade-picker button:hover,.grade-picker button.active{border-color:#078fd8;box-shadow:0 0 0 3px rgba(7,143,216,.08)}.grade-picker .grade-5{color:#10805b}.grade-picker .grade-4{color:#0a78b1}.grade-picker .grade-3{color:#a86d0c}.grade-picker .grade-2{color:#c33e59}.correction-reason{margin-top:14px}

/* Lesson editor */
.lesson-hero .step-badge{font-size:max(var(--font-min),calc(17px * var(--font-scale)));font-weight:900;letter-spacing:.22em;color:#0a81c4}.lesson-editor{padding:0;overflow:hidden}.editor-section{padding:22px 24px;border-bottom:1px solid var(--line)}.editor-title{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:15px}.editor-title>span{width:38px;height:38px;border-radius:13px;background:#eaf6fc;color:#087fbe;display:grid;place-items:center;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900}.dark .editor-title>span{background:#113148}.editor-title h3,.editor-title small{display:block}.editor-title h3{margin:0;font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.editor-title small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.editor-actions{display:flex;gap:6px}.form-2{grid-template-columns:1fr 2fr}.roster-modern{border:1px solid var(--line);border-radius:17px;overflow:hidden}.roster-modern .roster-row{grid-template-columns:minmax(220px,1fr) 200px 110px;padding:9px 11px;border-bottom:1px solid var(--line)}.roster-modern .roster-row:last-child{border-bottom:0}.roster-row>label>span{display:block;margin-bottom:4px;color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.roster-row .select{min-height:38px}.editor-footer{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:#f7fafc}.dark .editor-footer{background:#091a29}.editor-footer b,.editor-footer small{display:block}.editor-footer b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.editor-footer small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}

/* Analytics */
.analytics-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:14px;margin-top:14px}.risk-distribution{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.risk-distribution>div{display:grid;grid-template-columns:12px 1fr;align-items:center;padding:12px;border-radius:14px;background:#f6f9fb}.dark .risk-distribution>div{background:#0c2233}.risk-distribution i{width:8px;height:8px;border-radius:50%;grid-row:1/3}.low-dot{background:#20b07c}.medium-dot{background:#d79a24}.high-dot{background:#d84d69}.risk-distribution b{font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.risk-distribution span{font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:var(--muted)}.stacked-risk{height:8px;display:flex;overflow:hidden;border-radius:99px;margin-top:12px;background:#edf2f5}.stacked-risk i{display:block;height:100%}.low-seg{background:#20b07c}.medium-seg{background:#d79a24}.high-seg{background:#d84d69}.analytics-list{margin-top:14px}.analytics-student{display:grid;grid-template-columns:38px minmax(0,1fr) 50px 74px;gap:11px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.analytics-person b,.analytics-person small{display:block}.analytics-person b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.analytics-person small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.analytics-bars{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:7px}.analytics-bars span{height:4px;border-radius:99px;background:#edf2f5;overflow:hidden}.dark .analytics-bars span{background:#173149}.analytics-bars i{display:block;height:100%;background:#d5a62f}.analytics-bars .attendance i{background:#20a878}.analytics-student>strong{font-size:max(var(--font-min),calc(11px * var(--font-scale)));text-align:right}

/* Search & notifications */
.search-hero{display:flex;align-items:center;gap:15px;padding:24px 28px;margin-bottom:14px;border-radius:28px;color:#fff;background:linear-gradient(120deg,#062c50,#0877ac);box-shadow:0 20px 50px rgba(5,72,113,.15)}.search-hero>span{width:54px;height:54px;border-radius:17px;background:rgba(255,255,255,.09);display:grid;place-items:center;font-size:max(var(--font-min),calc(24px * var(--font-scale)))}.search-hero h2{margin:0;font-size:max(var(--font-min),calc(26px * var(--font-scale)))}.search-hero p{margin:5px 0 0;color:#b9d3e3;font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.search-card{padding:18px}.search-field{position:relative}.search-field>span{position:absolute;left:15px;top:50%;transform:translateY(-50%);color:#7190a3}.search-field .input{height:52px;padding-left:43px;padding-right:50px;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.search-field>kbd{position:absolute;right:12px;top:50%;transform:translateY(-50%);font:inherit;font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:#8398a7}.search-results{margin-top:12px}.search-result{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:10px;padding:11px 8px;border-top:1px solid var(--line)}.search-result>span{width:36px;height:36px;border-radius:12px;background:#edf6fb;color:#3b7f9f;display:grid;place-items:center}.dark .search-result>span{background:#112e42}.search-result strong,.search-result small{display:block}.search-result strong{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.search-result small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.search-result mark{background:#fff0ae;color:inherit;border-radius:3px;padding:0 1px}.searching{text-align:center;padding:35px;color:var(--muted)}.notification-panel{padding:18px}.notification-panel .toolbar .input{max-width:360px}.notification-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px 4px;border-top:1px solid var(--line)}.notification-symbol{width:40px;height:40px;border-radius:13px;background:#eaf6fc;color:#087fbe;display:grid;place-items:center;font-weight:900}.notification-row strong{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.notification-row p{margin:3px 0;color:#617a8d;font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.45}.notification-row small{color:#94a5b2;font-size:max(var(--font-min),calc(7px * var(--font-scale)))}

/* Student */
.student-home-hero{min-height:290px;padding:31px 34px;border-radius:32px}.student-home-hero h2{font-size:max(var(--font-min),calc(38px * var(--font-scale)));margin:13px 0 4px}.student-quick button{font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.student-visual{position:relative;z-index:2;display:flex;align-items:center;gap:14px}.student-ring{width:142px;height:142px}.student-ring:before{width:114px;height:114px}.student-ring strong{font-size:max(var(--font-min),calc(24px * var(--font-scale)))}.student-level{width:220px;margin:0}.next-class{display:inline-grid;margin-top:17px;padding:11px 14px;border-radius:15px;background:rgba(3,31,59,.24);border:1px solid rgba(255,255,255,.08)}.next-class small,.next-class b,.next-class span{display:block}.next-class small{font-size:max(var(--font-min),calc(7px * var(--font-scale)));letter-spacing:.09em;color:#e7c45d;font-weight:900}.next-class b{margin-top:4px;font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.next-class span{margin-top:2px;color:#9ebed3;font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.student-grid>.card{padding:19px}.student-lesson.next{margin:3px -8px;padding:12px 8px;border:1px solid #d8edf8;border-radius:14px;background:#f4fbff}.dark .student-lesson.next{background:#0b273a;border-color:#194862}.achievement-grid>div{position:relative;min-height:120px}.achievement-grid em{position:absolute;right:10px;top:10px;padding:4px 6px;border-radius:99px;background:#fff6df;color:#9b7212;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-style:normal;font-weight:900}.dark .achievement-grid em{background:#332b16;color:#e3c769}

/* System */
.system-stats{grid-template-columns:repeat(4,1fr);margin-top:14px}.system-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.integration-health{display:grid;grid-template-columns:38px 1fr 14px;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.channel-logo.small{width:36px;height:36px;border-radius:12px;font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.integration-health b,.integration-health small{display:block}.integration-health b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.integration-health small{margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.status-led{width:9px;height:9px;border-radius:50%}.status-led.online{background:#21b57d;box-shadow:0 0 0 5px rgba(33,181,125,.08)}.status-led.offline{background:#d8a339;box-shadow:0 0 0 5px rgba(216,163,57,.08)}

/* Modal / command palette / preferences */
.modal-bg{opacity:0;background:rgba(4,17,29,.66);backdrop-filter:blur(8px);transition:opacity .15s ease}.modal-bg.show{opacity:1}.modal{position:relative;width:min(620px,100%);max-height:min(86vh,860px);overflow:auto;padding:28px;border-radius:28px;transform:translateY(8px) scale(.985);transition:transform .16s ease}.modal-bg.show .modal{transform:none}.modal.wide{width:min(720px,100%)}.modal-x{position:absolute;right:13px;top:13px;width:31px;height:31px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);cursor:pointer;font-size:max(var(--font-min),calc(17px * var(--font-scale)));z-index:4}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.modal-title{padding-right:36px}.palette{margin:-12px}.palette-search{display:grid;grid-template-columns:32px 1fr auto;align-items:center;height:58px;padding:0 13px;border-bottom:1px solid var(--line)}.palette-search>span{font-size:max(var(--font-min),calc(19px * var(--font-scale)));color:#4c88aa}.palette-search input{height:100%;border:0;background:transparent;color:var(--text);outline:0;font:inherit;font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.palette-hint{display:flex;justify-content:space-between;padding:10px 14px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.palette-item{width:100%;display:grid;grid-template-columns:39px 1fr auto;align-items:center;gap:10px;border:0;border-radius:13px;background:transparent;color:var(--text);padding:9px 12px;text-align:left;cursor:pointer}.palette-item.active,.palette-item:hover{background:#eef7fc}.dark .palette-item.active,.dark .palette-item:hover{background:#102c40}.palette-item>span{width:36px;height:36px;border-radius:12px;background:#e7f4fb;color:#287ba1;display:grid;place-items:center}.dark .palette-item>span{background:#16374c}.palette-item b,.palette-item small{display:block}.palette-item b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.palette-item small{margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.palette footer{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:11px 14px 0;border-top:1px solid var(--line);color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.palette footer button{border:0;background:transparent;color:#0a7fbd;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800;cursor:pointer}.pref-group{margin-top:18px}.pref-group>label{display:block;margin-bottom:7px;color:#6f8494;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;letter-spacing:.1em}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.choice-grid.two{grid-template-columns:repeat(2,1fr)}.choice-grid button{min-height:72px;border:1px solid var(--line);border-radius:15px;background:var(--card);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}.choice-grid button.active{border-color:#1a91d0;background:#f1faff;box-shadow:0 0 0 3px rgba(7,143,216,.07)}.dark .choice-grid button.active{background:#0d2a3d}.choice-grid button span{font-size:max(var(--font-min),calc(18px * var(--font-scale)))}.choice-grid button b{font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.shortcut-card{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding:13px 15px;border-radius:15px;background:#f5f8fa}.dark .shortcut-card{background:#0a1c2b}.shortcut-card b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.confirm-dialog{text-align:center;padding:10px}.confirm-icon{width:58px;height:58px;margin:auto;border-radius:19px;background:#fff0df;color:#a66d11;display:grid;place-items:center;font-size:max(var(--font-min),calc(24px * var(--font-scale)));font-weight:900}.confirm-dialog h2{margin:16px 0 6px}.confirm-dialog p{max-width:410px;margin:0 auto;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));line-height:1.55}.confirm-dialog .modal-actions{justify-content:center}

/* Toasts / busy */
#toast{position:fixed;right:17px;bottom:17px;z-index:300;display:grid;gap:7px;width:min(360px,calc(100vw - 24px));pointer-events:none}.toast{position:static;display:grid;grid-template-columns:27px 1fr;align-items:center;gap:9px;padding:11px 13px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:#102b40;color:#fff;font-size:max(var(--font-min),calc(9px * var(--font-scale)));box-shadow:0 18px 45px rgba(0,0,0,.18);opacity:0;transform:translateY(7px);transition:.2s}.toast.show{opacity:1;transform:none}.toast-mark{width:25px;height:25px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.08);font-weight:900}.toast.success{background:#0b563f}.toast.warning{background:#715110}.toast.error{background:#74263a}html.is-busy .top:after{content:"";position:absolute;left:15px;right:15px;bottom:-1px;height:2px;border-radius:99px;background:linear-gradient(90deg,transparent,#0c9ce5,transparent);background-size:40% 100%;animation:busy 1s linear infinite}@keyframes busy{from{background-position:-60% 0}to{background-position:160% 0}}

/* Density and motion preferences */
html[data-density="compact"]{--top-h:68px}.compact .x{display:block}html[data-density="compact"] .content{padding-top:15px}html[data-density="compact"] .card{padding-top:15px;padding-bottom:15px}html[data-density="compact"] .metric{min-height:102px}html[data-density="compact"] .metric strong{font-size:max(var(--font-min),calc(24px * var(--font-scale)))}html[data-density="compact"] .nav button{padding-top:8px;padding-bottom:8px}html[data-density="compact"] .table td{padding-top:7px;padding-bottom:7px}html[data-density="compact"] .roster-modern .roster-row{padding-top:6px;padding-bottom:6px}
html[data-motion="reduced"] *,html[data-motion="reduced"] *:before,html[data-motion="reduced"] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}

/* Dark polish */
.dark .metric-label i,.dark .lesson-number,.dark .notification-symbol,.dark .hw-icon{filter:saturate(.85);background:#113249}.dark .risk-distribution>div,.dark .student-lesson.next{color:var(--text)}.dark .segmented button.active{box-shadow:none}.dark .journal-current,.dark .shortcut-card{border:1px solid #17354a}.dark .page-hero p,.dark .hw-card p,.dark .notification-row p{color:#93a8b8}

/* Responsive */
@media(max-width:1380px){.dashboard-stats{grid-template-columns:repeat(3,1fr)}.dashboard-layout{grid-template-columns:minmax(0,1fr) 330px}.week-premium{grid-template-columns:repeat(5,minmax(185px,1fr))}.top-center{padding:0 8px}.command-trigger{max-width:300px}}
@media(max-width:1120px){.unified-login{grid-template-columns:1fr 440px}.unified-login .hero{padding:45px}.login-hero-copy h1{font-size:max(var(--font-min),calc(50px * var(--font-scale)))}.dashboard-layout{grid-template-columns:1fr}.today-panel{position:static}.hero-visual{min-width:220px}.dashboard-stats{grid-template-columns:repeat(3,1fr)}.analytics-layout,.system-layout{grid-template-columns:1fr}.hw{grid-template-columns:repeat(2,1fr)}.top-date,.network-state{display:none}.command-trigger b{display:none}.command-trigger{width:90px;grid-template-columns:24px 1fr}.command-trigger kbd{justify-self:end}}
@media(max-width:900px){:root{--side-w:0px}.side{width:286px;transform:translateX(-105%);border-radius:0 28px 28px 0}.side.open{transform:translateX(0)}.side-collapse{display:none}.main{margin-left:0}.mobile{display:block}.mobile-scrim{display:block;position:fixed;inset:0;background:rgba(4,18,30,.52);z-index:25;opacity:0;visibility:hidden;transition:.2s}.mobile-scrim.show{opacity:1;visibility:visible}.top{margin:7px 8px 0;height:67px}.top-center{display:none}.top-right .icon:nth-last-child(1){display:none}.content{padding:15px 12px 84px}.mobile-bottom{position:fixed;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));z-index:22;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;border:1px solid rgba(216,229,238,.9);border-radius:20px;background:rgba(255,255,255,.91);box-shadow:0 18px 55px rgba(17,49,77,.16);backdrop-filter:blur(22px)}.dark .mobile-bottom{background:rgba(7,22,35,.93);border-color:#1c394e}.mobile-bottom button{border:0;border-radius:14px;background:transparent;color:#718797;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 3px;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-weight:800}.mobile-bottom button span{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.mobile-bottom button.active{background:#edf7fc;color:#0878b2}.dark .mobile-bottom button.active{background:#123149;color:#bce0f2}.dashboard-hero,.student-home-hero{min-height:0}.hero-visual{display:none}.dashboard-hero h2{font-size:max(var(--font-min),calc(34px * var(--font-scale)))}.dashboard-hero-copy{max-width:none}.roster-modern .roster-row{grid-template-columns:1fr 190px}.roster-modern .roster-row>label:last-child{grid-column:2}.analytics-student{grid-template-columns:38px 1fr auto}.analytics-student>.badge{grid-column:2/4;justify-self:start}}
@media(max-width:680px){.unified-login{display:block;background:linear-gradient(180deg,#062d54 0,#062d54 190px,var(--soft) 190px)}.unified-login .hero{display:flex;min-height:190px;border-radius:0 0 32px 32px;padding:23px}.login-hero-copy{display:none}.hero-signature{display:none}.login-brand-lockup img{width:57px;height:57px}.login-brand-lockup .brand{font-size:max(var(--font-min),calc(22px * var(--font-scale)))}.login-side{padding:18px;margin-top:-76px;overflow:visible}.login-card{padding:26px 22px 22px;border-radius:28px}.login-card-logo{margin-bottom:20px}.login-welcome h2{font-size:max(var(--font-min),calc(28px * var(--font-scale)))}.dashboard-hero,.student-home-hero{padding:24px;border-radius:25px}.dashboard-hero h2,.student-home-hero h2{font-size:max(var(--font-min),calc(29px * var(--font-scale)));letter-spacing:-1px}.hero-actions{flex-wrap:wrap}.dashboard-stats,.stats,.pstats,.system-stats{grid-template-columns:repeat(2,1fr)}.metric{min-height:110px}.metric strong{font-size:max(var(--font-min),calc(24px * var(--font-scale)))}.page-hero{padding:21px;border-radius:23px}.page-hero h2{font-size:max(var(--font-min),calc(23px * var(--font-scale)))}.page-hero-actions{display:none}.hw{grid-template-columns:1fr}.schedule-toolbar .toolbar-spacer,.schedule-toolbar .legend{display:none}.week-premium{display:block;overflow:visible}.week-premium .day{margin-bottom:9px}.week-premium .day:not(.is-today){padding-top:4px}.student-visual{display:block}.student-ring{display:none}.student-level{width:100%;margin-top:15px}.student-grid{grid-template-columns:1fr}.analytics-layout{grid-template-columns:1fr}.notification-row{grid-template-columns:40px 1fr}.notification-row>.badge{grid-column:2;justify-self:start}.editor-title{grid-template-columns:36px 1fr}.editor-actions{grid-column:1/-1}.roster-modern .roster-row{grid-template-columns:1fr;gap:7px}.roster-modern .roster-row>label:last-child{grid-column:auto}.editor-footer{align-items:flex-start;gap:12px;flex-direction:column}.editor-footer .btn{width:100%}.form,.form-2{grid-template-columns:1fr}.grade-picker{grid-template-columns:repeat(5,1fr)}.choice-grid{grid-template-columns:1fr}.choice-grid.two{grid-template-columns:1fr 1fr}.top-title-wrap{min-width:0}.top-breadcrumb{display:none}.top h1{font-size:max(var(--font-min),calc(16px * var(--font-scale)))}.top-right{gap:4px}.top .icon{width:36px;height:36px}.network-state,.top-date{display:none}.search-hero{padding:20px}.search-hero h2{font-size:max(var(--font-min),calc(22px * var(--font-scale)))}}
@media(max-width:430px){.login-side{padding:12px}.login-card{padding:23px 18px}.dashboard-stats,.stats,.pstats,.system-stats{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:13px;min-height:102px}.metric strong{font-size:max(var(--font-min),calc(22px * var(--font-scale)))}.metric-foot{display:none}.metric-label span{font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.dashboard-hero h2{font-size:max(var(--font-min),calc(27px * var(--font-scale)))}.hero-mini-stats{gap:5px}.hero-mini-stats span{padding:8px}.page-hero-count{display:none}.toolbar .select,.toolbar .input{width:100%;max-width:none}.segmented{width:100%}.segmented button{flex:1}.top-right #appearanceTop{display:none}.modal-bg{padding:9px}.modal{padding:19px;border-radius:21px}.grade-picker{grid-template-columns:repeat(5,1fr);gap:5px}.grade-picker button{height:40px}.notification-row{padding-inline:0}.analytics-student>strong{display:none}.analytics-student{grid-template-columns:34px 1fr}.analytics-student>.badge{grid-column:2}.risk-distribution{grid-template-columns:1fr 1fr 1fr}.risk-distribution>div{padding:9px}.student-home-hero{padding:21px}.student-home-hero h2{font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.mobile-bottom{left:5px;right:5px;bottom:5px}}

@media print{.side,.top,.mobile-bottom,.page-hero,.schedule-toolbar,.add-schedule-card{display:none!important}.main{margin:0!important}.content{padding:0!important}.schedule-card{border:0!important;box-shadow:none!important;padding:0!important}.week-premium{display:grid!important;grid-template-columns:repeat(5,1fr)!important;overflow:visible!important}.lesson-card{break-inside:avoid}.day{break-inside:avoid}body{background:#fff!important;color:#000!important}}

/* 1.0 dialog & credential polish */
.schedule-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.schedule-edit-grid .wide{grid-column:1/-1}.status-toggle{margin-top:16px;padding:14px 15px;border:1px solid var(--line);border-radius:17px;background:var(--soft);display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;cursor:pointer}.status-toggle span{display:grid;gap:4px}.status-toggle b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.status-toggle small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));line-height:1.45;color:var(--muted)}.status-toggle input{position:absolute;opacity:0;pointer-events:none}.status-toggle i{width:44px;height:25px;border-radius:99px;background:#c8d4dc;position:relative;transition:.2s}.status-toggle i:after{content:"";position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(0,0,0,.16);transition:.2s}.status-toggle input:checked+i{background:#d74b61}.status-toggle input:checked+i:after{transform:translateX(19px)}
.password-field{position:relative}.password-field .input{padding-right:56px;min-height:54px;font-size:max(var(--font-min),calc(17px * var(--font-scale)));border-radius:17px}.password-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--muted);cursor:pointer;font-size:max(var(--font-min),calc(16px * var(--font-scale)))}.password-eye:hover,.password-eye.active{background:var(--soft);color:var(--primary)}.password-meter{height:7px;margin:11px 2px 10px;border-radius:99px;background:var(--soft2,#e8eef3);overflow:hidden}.password-meter.large{height:8px;margin-top:14px}.password-meter i{display:block;height:100%;width:0;border-radius:inherit;background:#df5b69;transition:width .25s,background .25s}.password-meter i[data-level="medium"]{background:#d89a2e}.password-meter i[data-level="strong"]{background:#2ba77b}.password-rules{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px}.password-rules.large{margin-bottom:6px}.password-rules span{padding:8px 12px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:850;letter-spacing:.03em}.password-rules span:before{content:"○ ";font-weight:900}.password-rules span.ok{border-color:rgba(43,167,123,.25);background:rgba(43,167,123,.08);color:#197d5c}.password-rules span.ok:before{content:"✓ "}.password-setup-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.password-help-list{display:grid;gap:10px;margin-top:14px}.password-help-list>div{display:grid;grid-template-columns:32px 1fr;gap:10px;align-items:start;padding:11px 12px;border:1px solid var(--line);border-radius:16px;background:#f8fbfd}.password-help-list span{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;background:#ecf7ff;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.password-help-list p{margin:0;color:var(--muted);font-size:max(var(--font-min),calc(12px * var(--font-scale)));line-height:1.55}.password-save-btn{width:100%;margin-top:18px;min-height:54px;font-size:max(var(--font-min),calc(16px * var(--font-scale)));border-radius:17px}.password-setup-modal .label{font-size:max(var(--font-min),calc(12px * var(--font-scale)));margin:18px 0 9px}.password-setup-modal .secure-note.strong{font-size:max(var(--font-min),calc(14px * var(--font-scale)))}.password-setup-modal .modal-title{margin-bottom:10px}.password-setup-modal .modal-title h2{font-size:max(var(--font-min),calc(36px * var(--font-scale)))}.password-setup-modal .modal-title p{font-size:max(var(--font-min),calc(15px * var(--font-scale)))}.btn.danger-btn{background:linear-gradient(135deg,#c83a53,#a92840);border-color:transparent;color:#fff;box-shadow:0 10px 22px rgba(178,40,64,.18)}.btn.danger-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn.is-busy{cursor:wait;opacity:.75}.confirm-icon.primary{background:#e8f6fd;color:#087fbd}.confirm-icon.danger{background:#fff0f2;color:#bd334d}.modal-icon.positive{background:#e8f8f2;color:#17805e}.modal-icon.danger{background:#fff0f2;color:#bd334d}.dark .status-toggle{background:#0b2131}.dark .password-meter{background:#122b3e}.dark .password-rules span.ok{background:rgba(43,167,123,.12);color:#7ed6b5}.dark .confirm-icon.primary{background:#0c3046;color:#8ad0f0}.dark .confirm-icon.danger,.dark .modal-icon.danger{background:#391824;color:#ff9aae}.dark .modal-icon.positive{background:#12352b;color:#8de0bf}
@media(max-width:680px){.schedule-edit-grid{grid-template-columns:1fr}.schedule-edit-grid .wide{grid-column:auto}.password-rules{gap:5px}.password-rules span{font-size:max(var(--font-min),calc(6.5px * var(--font-scale)))}}

.dark .password-help-list>div{background:#0a1c2b;border-color:#17354a}.dark .password-help-list span{background:#103047}.dark .password-setup-modal .secure-note.strong{background:#0c3046;color:#bfe7fb}
@media(max-width:720px){.password-setup-layout{grid-template-columns:1fr}.password-setup-modal .modal-title h2{font-size:max(var(--font-min),calc(30px * var(--font-scale)))}.password-setup-modal .modal-icon{width:56px;height:56px;font-size:max(var(--font-min),calc(26px * var(--font-scale)))}.modal.password-setup-modal{padding:22px}.password-rules span{font-size:max(var(--font-min),calc(10px * var(--font-scale)));padding:7px 10px}}

/* === NKTL ONE 2.6.0 · Teacher workspace === */
.journal-hero,.homework-hero{background:linear-gradient(135deg,#f8fcff,#eef8ff);border:1px solid #dcecf7}.dark .journal-hero,.dark .homework-hero{background:linear-gradient(135deg,#0b2031,#0a2b41);border-color:#183b54}
.journal-workspace{padding:0;overflow:hidden}.journal-filterbar{display:grid;grid-template-columns:minmax(170px,220px) minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#fbfdff)}.dark .journal-filterbar{background:linear-gradient(180deg,#0c1d2d,#091a29)}.journal-filterbar label{display:block;margin-bottom:6px;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900;letter-spacing:.09em}.journal-filterbar .btn{min-height:44px}.journal-summary,.hw-summary{display:flex;gap:8px;flex-wrap:wrap;padding:13px 20px;border-bottom:1px solid var(--line);background:#f8fbfd}.dark .journal-summary,.dark .hw-summary{background:#091a29}.journal-summary>div,.hw-summary>div{min-width:108px;padding:8px 11px;border:1px solid var(--line);border-radius:13px;background:var(--card)}.journal-summary b,.hw-summary b{display:block;font-size:max(var(--font-min),calc(17px * var(--font-scale)));color:var(--navy)}.dark .journal-summary b,.dark .hw-summary b{color:var(--text)}.journal-summary span,.hw-summary span{display:block;margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.journal-hint{margin:14px 18px 10px}.journal-hint>span{min-width:27px;height:27px;border-radius:9px;display:grid;place-items:center;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:950}.journal-table-wrap{border-radius:0;border-left:0;border-right:0;border-bottom:0}.journal-table .cell{position:relative;border:1px solid transparent}.journal-table .cell:focus{outline:3px solid rgba(8,167,255,.22);outline-offset:2px}.journal-table .cell.has-comment i{position:absolute;right:3px;top:1px;color:#1179b1;font-size:max(var(--font-min),calc(13px * var(--font-scale)));font-style:normal}.journal-table tbody tr[hidden]{display:none}.grade-picker.premium{grid-template-columns:repeat(5,1fr);gap:9px}.grade-picker.premium button{min-height:68px;font-size:max(var(--font-min),calc(20px * var(--font-scale)));display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center}.grade-picker.premium button small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);font-weight:750}.grade-picker.premium button.active small{color:inherit}.journal-comment{min-height:100px}.journal-modal-footer{display:flex;align-items:end;justify-content:space-between;gap:16px}.keyboard-hint{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.keyboard-hint span{margin-left:4px}.keyboard-hint kbd,.shortcut-guide kbd{min-width:24px;height:24px;padding:0 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:7px;background:var(--card);display:inline-grid;place-items:center;color:var(--text);font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900}

.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.lesson-side{display:grid;gap:14px;position:sticky;top:96px}.lesson-draft-state{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:99px;border:1px solid rgba(255,255,255,.18);background:rgba(2,31,58,.2);color:#d3e7f4;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:800}.lesson-draft-state i{width:8px;height:8px;border-radius:50%;background:#e8c95f;box-shadow:0 0 0 4px rgba(232,201,95,.1)}.lesson-draft-state.saved i{background:#46d49a}.lesson-fields{display:grid;grid-template-columns:.72fr 1fr 1.25fr .82fr .95fr;gap:10px}.lesson-fields label>span,.homework-modal-grid label>span{display:block;margin:0 0 6px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;letter-spacing:.08em}.lesson-topic{min-height:50px;font-size:max(var(--font-min),calc(15px * var(--font-scale)));font-weight:750}.roster-section{padding-top:18px}.roster-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:9px}.roster-search{height:39px;min-width:250px;flex:1;display:grid;grid-template-columns:32px 1fr;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--card)}.roster-search>span{text-align:center;color:#6790a8}.roster-search input{height:100%;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.bulk-grade{display:flex;align-items:center;gap:6px;margin-bottom:12px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:#f8fbfd}.dark .bulk-grade{background:#091a29}.bulk-grade>span{margin-right:3px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:850}.bulk-grade button{width:31px;height:31px;border:1px solid var(--line);border-radius:9px;background:var(--card);font-weight:950;cursor:pointer}.bulk-grade .g5{color:#087c56}.bulk-grade .g4{color:#087ab7}.bulk-grade .g3{color:#a56b0b}.bulk-grade .g2{color:#c23751}.bulk-grade small{margin-left:auto;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.roster-v2{border:1px solid var(--line);border-radius:18px;overflow:hidden}.roster-v2 .roster-row{display:grid;grid-template-columns:28px minmax(180px,1.2fr) minmax(205px,.9fr) minmax(205px,.9fr) minmax(160px,.75fr);gap:10px;align-items:center;padding:10px 11px;background:var(--card);border-bottom:1px solid var(--line);transition:.14s}.roster-v2 .roster-row:last-child{border-bottom:0}.roster-v2 .roster-row:hover,.roster-v2 .roster-row:focus{background:#f8fcff;outline:0}.dark .roster-v2 .roster-row:hover,.dark .roster-v2 .roster-row:focus{background:#0d2638}.roster-v2 .roster-row.is-absent{background:#fffaf9}.dark .roster-v2 .roster-row.is-absent{background:#281b20}.student-select-wrap{display:grid;place-items:center;cursor:pointer}.student-select-wrap input{position:absolute;opacity:0}.student-select-wrap i{width:19px;height:19px;border:1.5px solid #bfd0dc;border-radius:6px;background:var(--card);position:relative}.student-select-wrap input:checked+i{background:#078ed4;border-color:#078ed4}.student-select-wrap input:checked+i:after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:white;font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-style:normal;font-weight:900}.attendance-control>small,.grade-control>small,.student-note-wrap>small{display:block;margin-bottom:5px;color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-weight:900;letter-spacing:.07em}.attendance-pills,.inline-grades{display:flex;gap:4px}.attendance-pills button,.inline-grades button{height:34px;min-width:34px;padding:0 8px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:950;cursor:pointer;transition:.12s}.attendance-pills button:hover,.inline-grades button:hover{transform:translateY(-1px);border-color:#83c8eb}.attendance-pills button.active.att-p{background:#e5f8ef;border-color:#bdebd8;color:#0b805b}.attendance-pills button.active.att-x{background:#fff0f3;border-color:#f1c3ce;color:#bc334f}.inline-grades button.active.g5{background:#e5f8ef;border-color:#bdebd8;color:#087c56}.inline-grades button.active.g4{background:#e5f4fc;border-color:#b9e0f4;color:#087ab7}.inline-grades button.active.g3{background:#fff4df;border-color:#efd9ac;color:#9b6611}.inline-grades button.active.g2{background:#ffedf1;border-color:#f2c5ce;color:#bb344e}.inline-grades .grade-clear.active{background:#eff3f6;color:#768997}.student-note{min-height:34px;padding:8px 9px;border-radius:10px;font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.lesson-live-summary h3,.shortcut-guide h3{margin:5px 0 13px;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.lesson-live-summary #lessonSummary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.lesson-live-summary #lessonSummary>div{padding:10px;border:1px solid var(--line);border-radius:13px;background:#f8fbfd}.dark .lesson-live-summary #lessonSummary>div{background:#091a29}.lesson-live-summary #lessonSummary b{display:block;font-size:max(var(--font-min),calc(19px * var(--font-scale)))}.lesson-live-summary #lessonSummary span{display:block;margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(7px * var(--font-scale)))}.lesson-live-summary #lessonSummary .good b{color:#15966c}.lesson-live-summary #lessonSummary .warn b{color:#cc405a}.lesson-live-summary #lessonSummary .gold b{color:#b88817}.lesson-progress{height:7px;margin:14px 0 7px;border-radius:99px;background:#e9f0f4;overflow:hidden}.dark .lesson-progress{background:#132b3c}.lesson-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0797df,#3cc394);border-radius:inherit;transition:width .25s}.lesson-live-summary>small{color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));line-height:1.5}.shortcut-guide p{color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.65}.homework-compose{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.homework-compose .textarea{min-height:120px}.lesson-comment{min-height:75px!important}.homework-presets,.due-quick{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.homework-presets button,.due-quick button{border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);padding:7px 9px;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800;cursor:pointer}.homework-presets button:hover,.due-quick button:hover{border-color:#78c5ea;color:#087dbb;background:#f4fbff}.dark .homework-presets button:hover,.dark .due-quick button:hover{background:#0c2a3d}.sticky-save{position:sticky;bottom:0;z-index:4;border-top:1px solid var(--line);box-shadow:0 -12px 25px rgba(26,61,91,.05);backdrop-filter:blur(15px)}

.homework-toolbar{margin-bottom:0}.hw-summary{padding-left:0;padding-right:0;background:transparent;border:0}.hw-summary>div{min-width:120px}.hw-card{display:flex;flex-direction:column;min-height:250px}.hw-card.archived{opacity:.68}.hw-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.hw-meta span{padding:4px 7px;border-radius:99px;background:#eff6fa;color:#638096;font-size:max(var(--font-min),calc(7px * var(--font-scale)));font-weight:850}.dark .hw-meta span{background:#122b3e}.hw-card footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px}.hw-card footer>div{display:flex;align-items:center;gap:5px}.hw-card footer .mini{font-size:max(var(--font-min),calc(8px * var(--font-scale)));padding:6px 8px}.homework-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.homework-modal-grid.due{grid-template-columns:1fr 1.5fr;align-items:end;margin-top:12px}.homework-big{min-height:150px;font-size:max(var(--font-min),calc(13px * var(--font-scale)));line-height:1.6}.modal-due{margin:0 0 1px}.modal-due button{min-height:39px}

@media(max-width:1280px){.lesson-layout{grid-template-columns:1fr}.lesson-side{position:static;grid-template-columns:1fr 1fr}.roster-v2 .roster-row{grid-template-columns:28px minmax(180px,1fr) minmax(190px,.8fr) minmax(190px,.8fr)}.student-note-wrap{grid-column:2/-1}.journal-filterbar{grid-template-columns:1fr 1fr 1fr auto}}
@media(max-width:900px){.lesson-fields{grid-template-columns:1fr 1fr}.homework-compose{grid-template-columns:1fr}.roster-v2 .roster-row{grid-template-columns:28px 1fr}.attendance-control,.grade-control,.student-note-wrap{grid-column:2}.lesson-side{grid-template-columns:1fr}.journal-filterbar{grid-template-columns:1fr 1fr}.journal-filterbar .journal-student-search{grid-column:1/-1}.journal-filterbar>.btn{grid-column:1/-1}.journal-modal-footer{display:block}.keyboard-hint{margin:10px 0}.homework-modal-grid,.homework-modal-grid.due{grid-template-columns:1fr}}
@media(max-width:600px){.journal-filterbar{grid-template-columns:1fr;padding:14px}.journal-filterbar .journal-student-search,.journal-filterbar>.btn{grid-column:auto}.journal-summary{padding:10px 14px}.journal-summary>div{min-width:calc(50% - 5px);flex:1}.lesson-fields{grid-template-columns:1fr}.lesson-editor .editor-section{padding:17px 14px}.roster-toolbar{display:grid;grid-template-columns:1fr 1fr}.roster-search{grid-column:1/-1;min-width:0}.bulk-grade{overflow:auto}.roster-v2 .roster-row{padding:10px 8px}.attendance-pills button,.inline-grades button{min-width:32px;padding:0 7px}.grade-picker.premium{grid-template-columns:repeat(3,1fr)}.hw{grid-template-columns:1fr}.hw-card{min-height:220px}.lesson-draft-state{display:none}}
/* 2.6.0 QA refinement: keep all inline teacher controls visible at 1440px desktop */
.roster-v2 .roster-row{grid-template-columns:28px minmax(140px,1fr) 180px 180px minmax(105px,.7fr)}
.roster-v2 .attendance-pills button,.roster-v2 .inline-grades button{min-width:31px;padding-left:6px;padding-right:6px}
@media(max-width:1280px){.roster-v2 .roster-row{grid-template-columns:28px minmax(160px,1fr) 180px 180px}.student-note-wrap{grid-column:2/-1}}
@media(max-width:900px){.roster-v2 .roster-row{grid-template-columns:28px 1fr}.attendance-control,.grade-control,.student-note-wrap{grid-column:2}}

/* ======================================================================
   NKTL ONE 2.6.0 — larger, more readable UI + credential handoff
   ====================================================================== */
.pref-hint{display:block;margin-top:9px;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));line-height:1.5}

.credentials-modal{width:min(920px,100%)}
.credential-warning{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
.credentials.credentials-v2{max-height:min(52vh,520px);display:grid;gap:10px;padding:0;border:0;border-radius:0;overflow:auto}
.credential-card{display:grid;grid-template-columns:minmax(190px,1.15fr) minmax(180px,1fr) minmax(170px,.85fr) auto;gap:12px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,var(--card),var(--soft));box-shadow:0 8px 24px rgba(24,57,86,.045)}
.credential-person{display:flex;align-items:center;gap:11px;min-width:0}.credential-person>div{min-width:0}.credential-person b,.credential-person small{display:block}.credential-person b{font-size:max(var(--font-min),calc(14px * var(--font-scale)));overflow:hidden;text-overflow:ellipsis}.credential-person small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
.credential-avatar{width:42px;height:42px;flex:0 0 42px;border-radius:14px;background:linear-gradient(135deg,#dff5ff,#e9f1ff);display:grid;place-items:center;color:#087fbe;font-size:max(var(--font-min),calc(13px * var(--font-scale)));font-weight:950}.dark .credential-avatar{background:#0f334b;color:#9edfff}
.credential-field{min-width:0;padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}.credential-field small{display:block;margin-bottom:5px;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900;letter-spacing:.08em}.credential-field strong{display:block;font-size:max(var(--font-min),calc(14px * var(--font-scale)));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.credential-password code{display:block;padding:0;background:transparent;color:#0b6fa6;font-size:max(var(--font-min),calc(18px * var(--font-scale)));font-weight:950;letter-spacing:.02em;white-space:nowrap}.dark .credential-password code{color:#8ed9ff}
.copy-cred{min-height:42px;padding:0 12px;white-space:nowrap}.credential-actions{align-items:center;flex-wrap:wrap}.credentials-more{margin:4px 0 0;padding:8px 2px}

/* Large is the new default. The user can still switch to normal or XL. */
:is(html[data-scale="large"],html[data-scale="xl"]){--side-w:304px;--top-h:84px}
:is(html[data-scale="large"],html[data-scale="xl"]) body{font-size:max(var(--font-min),calc(15px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .side{padding:20px 15px 15px}
:is(html[data-scale="large"],html[data-scale="xl"]) .side-brand img{width:55px;height:55px}
:is(html[data-scale="large"],html[data-scale="xl"]) .side-brand .brand{font-size:max(var(--font-min),calc(22px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .side-brand .subbrand{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .nav-group>small{font-size:max(var(--font-min),calc(9px * var(--font-scale)));padding-top:8px}
:is(html[data-scale="large"],html[data-scale="xl"]) .nav button{padding:12px 12px;min-height:47px}
:is(html[data-scale="large"],html[data-scale="xl"]) .nav button span{width:35px;font-size:max(var(--font-min),calc(19px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .nav button b{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .user-avatar{width:44px;height:44px;font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .user-meta strong{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .user-meta small{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .top{min-height:84px;padding-left:31px;padding-right:31px}
:is(html[data-scale="large"],html[data-scale="xl"]) .top h1{font-size:max(var(--font-min),calc(24px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .top p{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .top .icon{width:44px;height:44px;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .content{padding:28px 30px 40px}
:is(html[data-scale="large"],html[data-scale="xl"]) .card{padding:22px;border-radius:23px}
:is(html[data-scale="large"],html[data-scale="xl"]) .head h2{font-size:max(var(--font-min),calc(18px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .head small,:is(html[data-scale="large"],html[data-scale="xl"]) .muted{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .section-kicker,:is(html[data-scale="large"],html[data-scale="xl"]) .login-kicker{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .eyebrow{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .label{font-size:max(var(--font-min),calc(13px * var(--font-scale)));margin-top:19px;margin-bottom:8px}
:is(html[data-scale="large"],html[data-scale="xl"]) .input,:is(html[data-scale="large"],html[data-scale="xl"]) .select,:is(html[data-scale="large"],html[data-scale="xl"]) .textarea{padding:13px 14px;font-size:max(var(--font-min),calc(14px * var(--font-scale)));min-height:46px}
:is(html[data-scale="large"],html[data-scale="xl"]) .btn{padding:12px 17px;font-size:max(var(--font-min),calc(13px * var(--font-scale)));min-height:44px}
:is(html[data-scale="large"],html[data-scale="xl"]) .mini{font-size:max(var(--font-min),calc(11px * var(--font-scale)));padding:8px 10px}
:is(html[data-scale="large"],html[data-scale="xl"]) .badge{font-size:max(var(--font-min),calc(11px * var(--font-scale)));padding:6px 10px}
:is(html[data-scale="large"],html[data-scale="xl"]) .table{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .table th,:is(html[data-scale="large"],html[data-scale="xl"]) .table td{padding:12px}
:is(html[data-scale="large"],html[data-scale="xl"]) .metric{min-height:122px}
:is(html[data-scale="large"],html[data-scale="xl"]) .metric small,:is(html[data-scale="large"],html[data-scale="xl"]) .metric-label span,:is(html[data-scale="large"],html[data-scale="xl"]) .metric-foot{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .metric strong{font-size:max(var(--font-min),calc(30px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .dashboard-hero p,:is(html[data-scale="large"],html[data-scale="xl"]) .student-home-hero p{font-size:max(var(--font-min),calc(15px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .dashboard-hero h2,:is(html[data-scale="large"],html[data-scale="xl"]) .student-home-hero h2{font-size:max(var(--font-min),calc(48px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .today-lesson b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .today-lesson span,:is(html[data-scale="large"],html[data-scale="xl"]) .today-time small{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .lesson-fields label>span,:is(html[data-scale="large"],html[data-scale="xl"]) .homework-modal-grid label>span{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .lesson-topic{font-size:max(var(--font-min),calc(16px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .roster-search{height:44px}
:is(html[data-scale="large"],html[data-scale="xl"]) .roster-search input{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .bulk-grade>span,:is(html[data-scale="large"],html[data-scale="xl"]) .bulk-grade small{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .bulk-grade button{width:36px;height:36px;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .roster-v2 .roster-row{padding-top:12px;padding-bottom:12px}
:is(html[data-scale="large"],html[data-scale="xl"]) .attendance-control>small,:is(html[data-scale="large"],html[data-scale="xl"]) .grade-control>small,:is(html[data-scale="large"],html[data-scale="xl"]) .student-note-wrap>small{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .attendance-pills button,:is(html[data-scale="large"],html[data-scale="xl"]) .inline-grades button{height:38px;min-width:36px;font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .student-note{min-height:38px;font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .lesson-live-summary #lessonSummary span{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .lesson-live-summary>small,:is(html[data-scale="large"],html[data-scale="xl"]) .shortcut-guide p{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .homework-presets button,:is(html[data-scale="large"],html[data-scale="xl"]) .due-quick button{font-size:max(var(--font-min),calc(10px * var(--font-scale)));padding:8px 10px}
:is(html[data-scale="large"],html[data-scale="xl"]) .hw-meta span{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .hw-card footer .mini{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .choice-grid button b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .choice-grid button span{font-size:max(var(--font-min),calc(21px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .pref-group>label{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .shortcut-card b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .palette-item b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .palette-item small{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .toast{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}

html[data-scale="xl"]{--side-w:324px;--top-h:90px}
html[data-scale="xl"] body{font-size:max(var(--font-min),calc(16px * var(--font-scale)))}
html[data-scale="xl"] .side-brand img{width:60px;height:60px}
html[data-scale="xl"] .side-brand .brand{font-size:max(var(--font-min),calc(24px * var(--font-scale)))}
html[data-scale="xl"] .side-brand .subbrand{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
html[data-scale="xl"] .nav-group>small{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
html[data-scale="xl"] .nav button{padding:13px;min-height:51px}
html[data-scale="xl"] .nav button span{width:38px;font-size:max(var(--font-min),calc(21px * var(--font-scale)))}
html[data-scale="xl"] .nav button b{font-size:max(var(--font-min),calc(14px * var(--font-scale)))}
html[data-scale="xl"] .top{min-height:90px;padding-left:34px;padding-right:34px}
html[data-scale="xl"] .top h1{font-size:max(var(--font-min),calc(26px * var(--font-scale)))}
html[data-scale="xl"] .top p{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
html[data-scale="xl"] .content{padding:31px 33px 44px}
html[data-scale="xl"] .card{padding:24px}
html[data-scale="xl"] .head h2{font-size:max(var(--font-min),calc(20px * var(--font-scale)))}
html[data-scale="xl"] .label{font-size:max(var(--font-min),calc(14px * var(--font-scale)))}
html[data-scale="xl"] .input,html[data-scale="xl"] .select,html[data-scale="xl"] .textarea{font-size:max(var(--font-min),calc(15px * var(--font-scale)));min-height:49px}
html[data-scale="xl"] .btn{font-size:max(var(--font-min),calc(14px * var(--font-scale)));min-height:47px}
html[data-scale="xl"] .table{font-size:max(var(--font-min),calc(14px * var(--font-scale)))}
html[data-scale="xl"] .table th,html[data-scale="xl"] .table td{padding:13px}
html[data-scale="xl"] .metric strong{font-size:max(var(--font-min),calc(33px * var(--font-scale)))}
html[data-scale="xl"] .metric-label span,html[data-scale="xl"] .metric-foot{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
html[data-scale="xl"] .attendance-pills button,html[data-scale="xl"] .inline-grades button{height:40px;min-width:38px;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
html[data-scale="xl"] .student-note{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}

@media(max-width:1180px){
  .credential-card{grid-template-columns:1fr 1fr}.credential-person{grid-column:1/-1}.copy-cred{justify-self:start}
}
@media(max-width:900px){
  html[data-scale="large"],html[data-scale="xl"]{--side-w:0px;--top-h:72px}
  html[data-scale="large"] .top,html[data-scale="xl"] .top{min-height:70px;padding-left:14px;padding-right:14px}
  html[data-scale="large"] .top h1,html[data-scale="xl"] .top h1{font-size:max(var(--font-min),calc(18px * var(--font-scale)))}
  html[data-scale="large"] .content,html[data-scale="xl"] .content{padding:16px 12px 90px}
  html[data-scale="large"] .mobile-bottom button,html[data-scale="xl"] .mobile-bottom button{font-size:max(var(--font-min),calc(9px * var(--font-scale)));padding:8px 3px}
  html[data-scale="large"] .mobile-bottom button span,html[data-scale="xl"] .mobile-bottom button span{font-size:max(var(--font-min),calc(17px * var(--font-scale)))}
}
@media(max-width:680px){
  .credentials-modal{padding:20px}.credential-card{grid-template-columns:1fr;padding:13px}.credential-person{grid-column:auto}.credential-field strong{white-space:normal;overflow-wrap:anywhere}.credential-password code{font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.copy-cred{width:100%}.credential-actions .btn{width:100%}
  html[data-scale="large"] .dashboard-hero h2,html[data-scale="large"] .student-home-hero h2,html[data-scale="xl"] .dashboard-hero h2,html[data-scale="xl"] .student-home-hero h2{font-size:max(var(--font-min),calc(31px * var(--font-scale)))}
  html[data-scale="large"] .card,html[data-scale="xl"] .card{padding:18px}
  html[data-scale="large"] .table,html[data-scale="xl"] .table{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}
  html[data-scale="large"] .attendance-pills button,html[data-scale="large"] .inline-grades button,html[data-scale="xl"] .attendance-pills button,html[data-scale="xl"] .inline-grades button{height:38px;min-width:34px;padding-left:6px;padding-right:6px}
}
:is(html[data-scale="large"],html[data-scale="xl"]) .login-card{width:min(510px,100%);padding:38px 40px 32px}
:is(html[data-scale="large"],html[data-scale="xl"]) .login-card-logo img{width:60px;height:60px}
:is(html[data-scale="large"],html[data-scale="xl"]) .login-card-logo .brand{font-size:max(var(--font-min),calc(23px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .login-card-logo small{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .login-welcome h2{font-size:max(var(--font-min),calc(35px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .login-welcome p{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .field-action{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}
:is(html[data-scale="large"],html[data-scale="xl"]) .public-schedule-btn{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
@media(max-width:680px){:is(html[data-scale="large"],html[data-scale="xl"]) .login-card{padding:28px 24px 24px}:is(html[data-scale="large"],html[data-scale="xl"]) .login-welcome h2{font-size:max(var(--font-min),calc(30px * var(--font-scale)))}}

.login-input::-ms-reveal,.login-input::-ms-clear,.login-input::-webkit-contacts-auto-fill-button,.login-input::-webkit-credentials-auto-fill-button{display:none!important}.login-input:-webkit-autofill,.login-input:-webkit-autofill:hover,.login-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--card) inset;transition:background-color 9999s ease-in-out 0s}.dark .login-input:-webkit-autofill,.dark .login-input:-webkit-autofill:hover,.dark .login-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--card) inset}.public-schedule-head .modal-icon.calendar{background:linear-gradient(135deg,#eaf6ff,#d9eefb);color:#0d6fae}.public-schedule-toolbar{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-top:10px;margin-bottom:14px}.group-select-wrap{min-width:240px;flex:0 0 260px}.public-group-select{min-height:54px;border-radius:16px;font-size:max(var(--font-min),calc(17px * var(--font-scale)));font-weight:700}.public-week-legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:max(var(--font-min),calc(12px * var(--font-scale)));font-weight:700}.public-week-legend span{display:inline-flex;align-items:center;gap:8px}.public-week-legend i{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,#1482c7,#29aef2)}.public-week-shell{margin-top:6px}.public-week.premium{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.public-day-card{padding:14px;border-radius:22px;background:linear-gradient(180deg,#f9fcff,#f3f8fc);border:1px solid #dfebf3;box-shadow:0 12px 32px rgba(9,70,112,.06)}.public-day-card header{display:flex;flex-direction:column;gap:4px;padding-bottom:12px;border-bottom:1px solid #e3edf5}.public-day-card header small{font-size:max(var(--font-min),calc(13px * var(--font-scale)));font-weight:900;color:#0e4f7b;letter-spacing:.02em}.public-day-card header b{font-size:max(var(--font-min),calc(15px * var(--font-scale)));color:var(--text)}.public-day-body{display:grid;gap:10px;padding-top:12px}.public-lesson-item{display:grid;grid-template-columns:72px 1fr;gap:10px;padding:10px 0;border-top:1px solid #e8eff5}.public-lesson-item:first-child{border-top:0;padding-top:0}.public-lesson-time{display:flex;flex-direction:column;gap:4px}.public-lesson-time span{font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:800;color:#6e8698}.public-lesson-time strong{font-size:max(var(--font-min),calc(15px * var(--font-scale)));color:#0b79be}.public-lesson-main b{display:block;font-size:max(var(--font-min),calc(14px * var(--font-scale)));line-height:1.35;color:var(--text)}.public-lesson-main small{display:block;margin-top:4px;font-size:max(var(--font-min),calc(12px * var(--font-scale)));color:var(--muted)}.public-day-empty{min-height:120px;display:grid;place-items:center;color:#8094a5;font-size:max(var(--font-min),calc(14px * var(--font-scale)));font-weight:700;border:1px dashed #d8e4ec;border-radius:16px;background:#fbfdff}.dark .public-day-card{background:linear-gradient(180deg,#0b2133,#0c263b);border-color:#18384f;box-shadow:none}.dark .public-day-card header{border-bottom-color:#18384f}.dark .public-lesson-item{border-top-color:#18384f}.dark .public-day-empty{background:#0a1d2c;border-color:#18384f;color:#8ea5b7}.dark .field-action:hover{background:#12324a}@media(max-width:1100px){.public-week.premium{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.public-schedule-toolbar{display:block}.group-select-wrap{min-width:0;max-width:none}.public-week-legend{margin-top:12px}.public-week.premium{grid-template-columns:1fr}.public-day-card header small{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.public-lesson-item{grid-template-columns:68px 1fr}.login-input{min-height:54px;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}}

/* =========================================================
   NKTL ONE 2.0 — DIGITAL CAMPUS DESIGN SYSTEM
   ========================================================= */
:root{
  --v2-navy:#06284c;--v2-navy-2:#041c36;--v2-blue:#0b83cf;--v2-cyan:#27b7f0;
  --v2-gold:#d9ad3f;--v2-gold-soft:#f4d878;--v2-ink:#0c2033;--v2-surface:#f5f9fc;
  --v2-radius:24px;--v2-radius-sm:16px;--v2-shadow:0 18px 50px rgba(8,45,78,.08);
}
html[data-corners="compact"]{--v2-radius:15px;--v2-radius-sm:11px}
html[data-contrast="high"]{--muted:#405a6c;--line:#c9d9e4}
html.dark[data-contrast="high"]{--muted:#b4c9d8;--line:#345268}
html[data-contrast="high"] .card,html[data-contrast="high"] .input,html[data-contrast="high"] .select,html[data-contrast="high"] .textarea{border-width:2px}
html[data-contrast="high"] :focus-visible{outline:3px solid #0b8cd7!important;outline-offset:3px!important}
body{background:radial-gradient(circle at 12% -4%,rgba(53,190,249,.17),transparent 30%),radial-gradient(circle at 88% 0,rgba(217,173,63,.08),transparent 24%),#f4f8fb}
html.dark body{background:radial-gradient(circle at 15% 0,rgba(17,91,132,.20),transparent 32%),#06121d}
.n-icon{width:20px;height:20px;display:block;flex:0 0 auto}

/* App shell 2.0 */
.side.v2{background:radial-gradient(circle at -15% 2%,rgba(55,174,235,.20),transparent 28%),radial-gradient(circle at 110% 75%,rgba(217,173,63,.09),transparent 28%),linear-gradient(180deg,#062e57 0%,#052548 52%,#031a32 100%);border-radius:0 32px 32px 0}
.side.v2:after{content:"";position:absolute;inset:0;pointer-events:none;border-right:1px solid rgba(255,255,255,.05);border-radius:inherit}
.side-brand .n-icon{width:18px;height:18px}
.side-quick{width:100%;border:1px solid rgba(255,255,255,.11);background:linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.055));color:#fff;border-radius:17px;padding:11px 12px;margin:0 0 12px;display:grid;grid-template-columns:35px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer;transition:.18s}
.side-quick:hover{transform:translateY(-1px);border-color:rgba(244,216,120,.35);background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(217,173,63,.09))}
.side-quick>span{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#e8c35e,#d5a231);color:#05294d;font-size:max(var(--font-min),calc(21px * var(--font-scale)));font-weight:500}.side-quick b,.side-quick small{display:block}.side-quick b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.side-quick small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:#91b0c7;margin-top:2px}.side-quick>i{font-style:normal;font-size:max(var(--font-min),calc(10px * var(--font-scale)));color:#6f91aa}
.nav button span{display:grid!important;place-items:center}.nav button .n-icon{width:19px;height:19px}.nav button.active .n-icon{filter:drop-shadow(0 0 8px rgba(244,216,120,.15))}
.side-status{display:grid;grid-template-columns:35px 1fr;gap:9px;align-items:center;margin-top:12px;padding:10px 11px;border:1px solid rgba(255,255,255,.075);border-radius:15px;background:rgba(255,255,255,.035)}
.status-orb{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(42,206,151,.09)}.status-orb i{width:9px;height:9px;border-radius:50%;background:#2bd399;box-shadow:0 0 0 5px rgba(43,211,153,.10)}.side-status b,.side-status small{display:block}.side-status b{font-size:max(var(--font-min),calc(9px * var(--font-scale)));color:#dceaf4}.side-status small{font-size:max(var(--font-min),calc(7px * var(--font-scale)));color:#7195ae;margin-top:2px}
.userbox.v2{border-radius:17px;box-shadow:inset 0 1px rgba(255,255,255,.04)}
.top.v2{margin:8px 10px 0;border:1px solid rgba(220,231,239,.86);border-radius:20px;background:rgba(255,255,255,.88);box-shadow:0 10px 32px rgba(17,50,80,.05);backdrop-filter:blur(24px)}
.dark .top.v2{background:rgba(7,24,38,.90);border-color:#17354a}
.top .n-icon{width:18px;height:18px}.command-trigger .n-icon{width:18px;height:18px}.notification-icon>span{display:grid;place-items:center}.notification-icon>span .n-icon{width:19px;height:19px}
.top-quick{min-height:40px;border:0;border-radius:13px;background:linear-gradient(135deg,#0878bd,#09639e);color:#fff;padding:0 13px;display:inline-flex;align-items:center;gap:7px;box-shadow:0 8px 20px rgba(8,113,177,.18);cursor:pointer}.top-quick>span{font-size:max(var(--font-min),calc(18px * var(--font-scale)))}.top-quick b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
.content{padding-top:21px}
.mobile-fab{display:none}

/* Hero 2.0 */
.dashboard-hero.v2{min-height:290px;border-radius:32px;background:linear-gradient(104deg,#03213f 0%,#064776 61%,#09658e 100%);box-shadow:0 28px 75px rgba(4,45,81,.19)}
.dashboard-hero.v2:before{background:radial-gradient(circle at 72% 17%,rgba(217,173,63,.21),transparent 24%),linear-gradient(110deg,transparent 45%,rgba(255,255,255,.035))}
.hero-grid-art{position:absolute;right:0;top:0;width:55%;height:100%;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,transparent,#000 45%)}
.dashboard-hero.v2 h2{max-width:780px;line-height:1.02}.dashboard-hero.v2 h2 b{color:#f2ce6d;font-weight:900}
.dashboard-hero.v2 .hero-btn{display:inline-flex;align-items:center;gap:8px}.dashboard-hero.v2 .hero-btn .n-icon{width:17px;height:17px}
.hero-logo-halo{width:205px;height:205px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(255,255,255,.10),rgba(255,255,255,.02) 58%,transparent 60%);box-shadow:0 0 0 1px rgba(255,255,255,.06),0 0 0 25px rgba(255,255,255,.022)}.hero-logo-halo img{width:175px!important;height:175px!important}
.dashboard-launchpad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:14px}
.dashboard-launchpad button{min-height:82px;border:1px solid #dfebf2;border-radius:20px;background:rgba(255,255,255,.92);display:grid;grid-template-columns:43px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:12px 14px;text-align:left;color:var(--text);box-shadow:0 10px 26px rgba(18,61,96,.045);cursor:pointer;transition:.16s}
.dashboard-launchpad button:hover{transform:translateY(-2px);border-color:#bcdceb;box-shadow:0 16px 35px rgba(9,83,129,.10)}.dashboard-launchpad button.featured{border-color:#c6e5f4;background:linear-gradient(135deg,#f1faff,#fff)}.dashboard-launchpad>button>span{width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,#eaf7fe,#dff1fb);color:#0b75af;display:grid;place-items:center}.dashboard-launchpad .n-icon{width:20px;height:20px}.dashboard-launchpad b,.dashboard-launchpad small{display:block}.dashboard-launchpad b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.dashboard-launchpad small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);margin-top:3px;line-height:1.35}.dashboard-launchpad>button>i{font-style:normal;color:#95a8b5}
.dark .dashboard-launchpad button{background:#0a1f30;border-color:#17374e}.dark .dashboard-launchpad button.featured{background:linear-gradient(135deg,#0d2b40,#0a1f30)}.dark .dashboard-launchpad>button>span{background:#11344a;color:#8ad0f0}
.dashboard-layout.v2{grid-template-columns:minmax(0,1fr) 360px}.dashboard-main-stack,.dashboard-side-stack{display:grid;gap:16px}.dashboard-events{padding-bottom:12px}.dashboard-event{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.dashboard-event>span{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#edf7fc}.dashboard-event b,.dashboard-event small{display:block}.dashboard-event b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.dashboard-event small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);margin-top:2px;line-height:1.35}.chart-value{text-align:right}.chart-value b,.chart-value small{display:block}.chart-value b{font-size:max(var(--font-min),calc(24px * var(--font-scale)));color:#0a76b5}.chart-value small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted)}
.metric{overflow:hidden}.metric-label i{z-index:2}
html[data-dashboard="focus"] .dashboard-stats,html[data-dashboard="focus"] .dashboard-chart,html[data-dashboard="focus"] .risk-card{display:none}.html-x{display:none}

/* Modal & commands 2.0 */
.modal{border-radius:var(--v2-radius);box-shadow:0 40px 120px rgba(1,22,38,.32)}
.quick-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-action-grid button{min-height:86px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);display:grid;grid-template-columns:45px minmax(0,1fr) 18px;gap:11px;align-items:center;padding:13px;text-align:left;cursor:pointer}.quick-action-grid button:hover{border-color:#b7deef;background:#f7fcff}.dark .quick-action-grid button:hover{background:#0e293c}.quick-action-grid button>span{width:45px;height:45px;border-radius:14px;background:#eaf6fc;color:#0a78b5;display:grid;place-items:center}.quick-action-grid .n-icon{width:22px;height:22px}.quick-action-grid b,.quick-action-grid small{display:block}.quick-action-grid b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.quick-action-grid small{font-size:max(var(--font-min),calc(9px * var(--font-scale)));color:var(--muted);margin-top:3px;line-height:1.4}.quick-action-grid i{font-style:normal;color:#8ca0af}.quick-help{margin-top:13px;padding:12px 14px;border-radius:16px;background:#f3f8fb;display:grid;grid-template-columns:35px 1fr;gap:10px;align-items:center}.dark .quick-help{background:#0a1d2c}.quick-help>span{color:#0a7dbb}.quick-help .n-icon{width:20px;height:20px}.quick-help b,.quick-help small{display:block}.quick-help b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.quick-help small{font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);margin-top:2px}
.shortcut-list{display:grid;gap:7px}.shortcut-list>div{min-height:52px;display:flex;align-items:center;gap:7px;padding:10px 12px;border:1px solid var(--line);border-radius:14px}.shortcut-list span{margin-left:auto;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.shortcut-list kbd{min-width:29px;text-align:center;padding:6px 8px;border:1px solid var(--line);border-bottom-width:2px;border-radius:8px;background:var(--soft);font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.shortcut-list>b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.appearance-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.shortcut-card.v2{grid-column:1/-1}.shortcut-card.v2 small{display:block;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));margin-top:3px}
.palette.v2 .palette-search>span{display:grid;place-items:center}.palette.v2 .palette-search .n-icon{width:20px;height:20px}.palette-item>span .n-icon{width:20px;height:20px}.palette footer>div{display:flex;gap:8px}
.security-actions-v2{display:flex;gap:8px;justify-content:flex-end;margin:14px 0}.security-tip-list{display:grid;gap:9px}.security-tip-list>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px}.security-tip-list b,.security-tip-list small{display:block}.security-tip-list b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.security-tip-list small{font-size:max(var(--font-min),calc(9px * var(--font-scale)));color:var(--muted);margin-top:3px}

/* Forms, journal, lesson and schedule polish */
.card,.input,.select,.textarea,.btn,.mini,.lesson-card,.hw-card,.roster-modern,.journal-workspace{border-radius:var(--v2-radius-sm)}
.page-hero{border-radius:28px;box-shadow:0 14px 42px rgba(14,59,94,.06)}
.journal-filterbar{border-radius:18px}.journal-table-wrap{box-shadow:inset 0 0 0 1px rgba(0,0,0,.01)}.journal-table .cell{transition:transform .12s,box-shadow .12s}.journal-table .cell:hover{transform:scale(1.07);box-shadow:0 8px 20px rgba(8,73,116,.10)}
.roster-v2 .roster-row{transition:background .12s,border-color .12s}.roster-v2 .roster-row:focus-within{background:#f8fcff}.dark .roster-v2 .roster-row:focus-within{background:#0b2537}.attendance-pills button,.inline-grades button{transition:.12s}.attendance-pills button:hover,.inline-grades button:hover{transform:translateY(-1px)}
.week-premium .day{border-radius:20px;overflow:hidden}.week-premium .day.is-today{box-shadow:0 0 0 2px rgba(11,131,207,.15),0 15px 35px rgba(9,77,119,.07)}
.public-week.premium .public-day-card{border-radius:21px}.public-lesson-item{transition:background .13s}.public-lesson-item:hover{background:rgba(11,131,207,.035)}

/* Login 2.0 */
.branded-login{background:radial-gradient(circle at 78% 14%,rgba(217,173,63,.16),transparent 24%),linear-gradient(135deg,#031b34,#063d68 65%,#0873a4)}
.login-hero-copy h1{max-width:720px}.login-feature-row span{backdrop-filter:blur(10px)}.login-card{border-radius:32px}.login-primary{box-shadow:0 14px 34px rgba(5,100,161,.23)}
.login-version:after{content:""}

/* Mobile 2.0 */
@media(max-width:1200px){.dashboard-launchpad{grid-template-columns:repeat(2,1fr)}.dashboard-layout.v2{grid-template-columns:1fr}.dashboard-side-stack{grid-template-columns:1fr 1fr}.top-quick b{display:none}.top-quick{width:40px;padding:0;justify-content:center}}
@media(max-width:900px){.top.v2{margin:6px 7px 0}.mobile-fab{display:grid;place-items:center;position:fixed;right:16px;bottom:88px;width:52px;height:52px;border:0;border-radius:17px;background:linear-gradient(135deg,#0a81c7,#075b97);color:#fff;font-size:max(var(--font-min),calc(28px * var(--font-scale)));z-index:21;box-shadow:0 16px 35px rgba(5,83,135,.27)}.top-quick{display:none}.dashboard-side-stack{grid-template-columns:1fr}.side-quick{margin-top:3px}}
@media(max-width:680px){.dashboard-launchpad{grid-template-columns:1fr}.dashboard-launchpad button{min-height:72px}.dashboard-hero.v2{padding:24px;border-radius:25px}.dashboard-hero.v2 h2{font-size:max(var(--font-min),calc(30px * var(--font-scale)))!important}.hero-grid-art{display:none}.quick-action-grid{grid-template-columns:1fr}.appearance-grid{grid-template-columns:1fr}.security-actions-v2{display:grid}.shortcut-list>div{flex-wrap:wrap}.shortcut-list span{width:100%;margin-left:0;margin-top:4px}.top.v2{border-radius:17px}.mobile-fab{right:13px;bottom:86px}}

/* Audit 2.0 */
.audit-stats{grid-template-columns:repeat(4,1fr);margin-top:14px}.audit-panel{margin-top:14px}.audit-filterbar{display:grid;grid-template-columns:minmax(250px,1fr) 220px 150px;gap:10px;align-items:end;margin-bottom:15px}.audit-filterbar label{display:block;margin:0 0 6px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;letter-spacing:.09em}.audit-table{border:1px solid var(--line);border-radius:18px;overflow:hidden}.audit-table-head,.audit-row{display:grid;grid-template-columns:150px minmax(180px,.8fr) 150px 120px minmax(220px,1.3fr);gap:10px;align-items:center}.audit-table-head{padding:10px 12px;background:#f5f9fc;color:#6e8291;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900;letter-spacing:.07em}.audit-row{padding:10px 12px;border-top:1px solid var(--line);min-height:56px}.audit-row time,.audit-row small{color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.4}.audit-user{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:center}.audit-user>span{width:32px;height:32px;border-radius:11px;background:#e9f5fb;color:#0a76b2;display:grid;place-items:center;font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900}.audit-user b{font-size:max(var(--font-min),calc(9px * var(--font-scale)));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-row code{font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:800;color:#0b679d;background:#edf7fc;border-radius:8px;padding:6px 7px;width:max-content;max-width:100%;overflow:hidden;text-overflow:ellipsis}.audit-entity{font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:800}.dark .audit-table-head{background:#0a1d2d}.dark .audit-user>span{background:#103148;color:#8bd1f0}.dark .audit-row code{background:#0d2b40;color:#91d3ef}@media(max-width:1000px){.audit-stats{grid-template-columns:repeat(2,1fr)}.audit-filterbar{grid-template-columns:1fr 1fr}.audit-filterbar>div:last-child{grid-column:1/-1}.audit-table{overflow:auto}.audit-table-head,.audit-row{min-width:850px}}@media(max-width:620px){.audit-stats{grid-template-columns:1fr 1fr}.audit-filterbar{grid-template-columns:1fr}.audit-filterbar>div:last-child{grid-column:auto}}

/* Schedule 2.0 interactions */
.schedule-view-toggle{display:inline-flex;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--soft)}.schedule-view-toggle button{min-height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);padding:0 12px;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:850;cursor:pointer}.schedule-view-toggle button.active{background:var(--card);color:#0877b5;box-shadow:0 4px 12px rgba(8,72,113,.08)}.week-premium.today-only{grid-template-columns:minmax(300px,620px);justify-content:start}.lesson-card.is-now{border-color:#7fccef!important;background:linear-gradient(135deg,#eefaff,#fff)!important;box-shadow:0 0 0 3px rgba(11,131,207,.08),0 12px 28px rgba(7,91,143,.08)}.lesson-card.is-now .lesson-number{background:#0b83cf;color:#fff}.lesson-card.is-now .lesson-room{color:#0b83cf;font-weight:900}.dark .lesson-card.is-now{background:linear-gradient(135deg,#0d3047,#0b2133)!important;border-color:#245b7a!important}.skip-link{position:fixed;left:16px;top:-70px;z-index:1000;background:#082b4e;color:#fff;border-radius:12px;padding:10px 14px;font-size:max(var(--font-min),calc(12px * var(--font-scale)));font-weight:800;text-decoration:none;transition:.15s}.skip-link:focus{top:14px}@media(max-width:680px){.schedule-view-toggle{width:100%;order:3}.schedule-view-toggle button{flex:1}.week-premium.today-only{grid-template-columns:1fr}}
.hero-logo-halo img{border-radius:24px!important;box-shadow:0 14px 32px rgba(1,23,40,.18);background:#fff;padding:4px}

/* Public schedule 2.0: use the available viewport instead of squeezing five days into a small dialog. */
.modal.public-schedule-modal{width:min(1180px,calc(100vw - 36px));max-height:min(92vh,980px);padding:30px 32px}
.public-schedule-modal .public-schedule-head{margin-bottom:4px}
.public-schedule-modal .public-week.premium{grid-template-columns:repeat(5,minmax(190px,1fr));overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.public-schedule-modal .public-day-card{min-width:190px}
@media(max-width:1100px){.modal.public-schedule-modal{width:min(860px,calc(100vw - 28px))}.public-schedule-modal .public-week.premium{grid-template-columns:repeat(2,minmax(240px,1fr));overflow:visible}.public-schedule-modal .public-day-card{min-width:0}}
@media(max-width:760px){.modal.public-schedule-modal{width:calc(100vw - 16px);padding:22px 18px;border-radius:24px}.public-schedule-modal .public-week.premium{grid-template-columns:1fr}.public-schedule-modal .public-day-card{min-width:0}}

/* =========================================================
   NKTL ONE 2.1 — INFORMATION-FIRST UI
   ========================================================= */
.concise-login .branded-login{padding:54px;justify-content:space-between}
.login-hero-copy.concise{max-width:760px}.login-hero-copy.concise h1{font-size:max(var(--font-min),calc(54px * var(--font-scale)));line-height:1.02;letter-spacing:-2.6px;margin:0 0 28px}.login-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:620px}.login-facts span{display:flex;align-items:center;gap:11px;padding:13px 15px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.06);backdrop-filter:blur(10px)}.login-facts .n-icon{width:22px;height:22px;color:#f0cc70}.login-facts b{font-size:max(var(--font-min),calc(13px * var(--font-scale)));color:#eef7fd}.login-card.concise{padding:32px 36px}.login-card.concise .login-welcome{margin-bottom:20px}.login-card.concise .login-welcome h2{font-size:max(var(--font-min),calc(34px * var(--font-scale)));margin:0}.login-card.concise .login-card-logo{margin-bottom:28px}.login-card.concise .login-version{margin-top:14px}.login-version:after{content:""!important}.public-schedule-btn{display:flex;align-items:center;justify-content:center;gap:9px}.public-schedule-btn .n-icon{width:18px;height:18px}
.side.v2.concise .side-brand{padding-bottom:14px;margin-bottom:10px}.side.v2.concise .side-brand .brand{font-size:max(var(--font-min),calc(21px * var(--font-scale)))}.side-quick.concise{grid-template-columns:36px 1fr;padding:9px 11px}.side-quick.concise>b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.side-quick.concise>span{width:34px;height:34px}.top.v2.concise{height:68px}.top.v2.concise .top-title-wrap h1{font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.top.v2.concise .command-trigger{min-height:38px}.top.v2.concise .network-state{padding:0 7px}.top.v2.concise .top-date{min-width:auto}.metric{min-height:100px}.metric strong{margin-top:10px}.section-header.clean{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.section-header.clean h2{margin:0;color:var(--navy);font-size:max(var(--font-min),calc(30px * var(--font-scale)));letter-spacing:-1px}.section-header.clean span{display:block;margin-top:5px;color:var(--muted);font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.dark .section-header.clean h2{color:var(--text)}

/* Staff administration */
.staff-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.staff-panel{padding:16px}.staff-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 220px;gap:10px;margin-bottom:13px}.staff-list{display:grid;gap:8px}.staff-row{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr) minmax(220px,1fr) 90px auto;gap:12px;align-items:center;min-height:78px;padding:11px 12px;border:1px solid var(--line);border-radius:17px;background:var(--card);transition:.13s}.staff-row:hover{border-color:#c8e2f0;box-shadow:0 9px 25px rgba(8,65,102,.06)}.staff-person{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px}.staff-avatar{width:44px;height:44px;border-radius:14px}.staff-person b,.staff-person small,.staff-account b,.staff-account small,.staff-load b,.staff-load small{display:block}.staff-person b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.staff-person small,.staff-account small,.staff-load small{color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));margin-top:3px}.staff-account b{font-size:max(var(--font-min),calc(10px * var(--font-scale)));overflow:hidden;text-overflow:ellipsis}.staff-tags{display:flex;gap:5px;flex-wrap:wrap}.badge.curator{background:#fff4d8;color:#8a6510}.dark .badge.curator{background:#332a13;color:#efce73}.staff-load{text-align:center}.staff-load b{font-size:max(var(--font-min),calc(19px * var(--font-scale)))}.staff-actions{display:flex;gap:6px;justify-content:flex-end}.staff-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.staff-form-grid .wide{grid-column:1/-1}.staff-role-box{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#f8fbfd}.dark .staff-role-box{background:#091d2d}.staff-curator-toggle{display:grid;grid-template-columns:22px 42px minmax(0,1fr);gap:11px;align-items:center;cursor:pointer}.staff-curator-toggle>input{width:18px;height:18px;accent-color:#0b83cf}.staff-curator-toggle>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eaf6fc;color:#087dbb}.staff-curator-toggle .n-icon{width:21px;height:21px}.staff-curator-toggle b,.staff-curator-toggle small{display:block}.staff-curator-toggle b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.staff-curator-toggle small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.45}.staff-role-box #curatorGroupBox{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.staff-role-box .hidden{display:none}.staff-load-editor{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:18px}.staff-load-editor .head{margin-bottom:10px}.staff-load-editor h3{margin:0;font-size:max(var(--font-min),calc(14px * var(--font-scale)))}.staff-load-editor small{color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.staff-assignment-row{display:grid;grid-template-columns:minmax(140px,.85fr) minmax(180px,1.15fr) 38px;gap:8px;margin-top:8px}.staff-assignment-remove{border:1px solid var(--line);border-radius:11px;background:var(--card);color:#b03850;font-size:max(var(--font-min),calc(20px * var(--font-scale)));cursor:pointer}.staff-assignment-remove:hover{background:#fff0f3}.staff-active{margin-top:13px}.staff-modal-title .modal-icon .n-icon{width:27px;height:27px}.staff-editor-modal{width:min(820px,calc(100vw - 28px))}

/* Remove duplicated decorative captions where the value already says enough. */
.metric-foot{display:none!important}.side-status{display:none!important}.top-breadcrumb{display:none!important}.subbrand:empty{display:none}.cohort-hero .eyebrow,.account-hero .eyebrow,.network-banner .eyebrow{display:none}.page-hero .section-kicker{opacity:.72}.dashboard-hero .hero-overline .eyebrow{padding:6px 10px}.security-rules .head .badge{letter-spacing:0}.demo{display:none!important}

@media(max-width:1180px){.staff-row{grid-template-columns:minmax(250px,1.3fr) minmax(210px,1fr) minmax(180px,.8fr) auto}.staff-load{display:none}.staff-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.concise-login .branded-login{padding:30px}.login-hero-copy.concise h1{font-size:max(var(--font-min),calc(39px * var(--font-scale)))}.login-facts{grid-template-columns:1fr 1fr}.staff-toolbar{grid-template-columns:1fr}.staff-row{grid-template-columns:1fr auto}.staff-account,.staff-tags{grid-column:1/-1}.staff-actions{grid-column:2;grid-row:1;flex-direction:column}.staff-form-grid{grid-template-columns:1fr}.staff-form-grid .wide{grid-column:auto}}
@media(max-width:680px){.concise-login .hero{display:flex!important;min-height:170px}.concise-login .login-hero-copy.concise{display:none}.concise-login .login-side{margin-top:-58px}.login-card.concise{padding:25px 22px}.login-facts{grid-template-columns:1fr}.section-header.clean{align-items:flex-start}.section-header.clean h2{font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.staff-metrics{grid-template-columns:1fr 1fr}.staff-row{display:block;padding:13px}.staff-person{margin-bottom:10px}.staff-account,.staff-tags{margin-top:9px}.staff-actions{margin-top:12px;justify-content:stretch}.staff-actions .mini{flex:1}.staff-assignment-row{grid-template-columns:1fr 38px}.staff-assignment-row .staff-subject{grid-column:1}.staff-assignment-remove{grid-column:2;grid-row:1/3}.staff-curator-toggle{grid-template-columns:22px 38px 1fr}.staff-curator-toggle>span{width:38px;height:38px}.staff-editor-modal{width:calc(100vw - 14px);padding:20px}.top.v2.concise .network-state{display:none}}

/* =========================================================
   NKTL ONE 2.2 — POLISHED WORKSPACE
   ========================================================= */
:root{--v22-glow:0 16px 44px rgba(9,74,118,.08);--v22-line:#dce9f2}
.emoji-glyph{font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;font-size:max(var(--font-min),calc(23px * var(--font-scale)));line-height:1;filter:saturate(.96);transform:translateY(-.5px)}
html[data-icons="line"] .emoji-glyph{display:none}
.metric-label i{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:linear-gradient(145deg,rgba(11,131,207,.09),rgba(255,255,255,.72));font-size:max(var(--font-min),calc(18px * var(--font-scale)));font-style:normal;box-shadow:inset 0 0 0 1px rgba(11,131,207,.07)}
.dark .metric-label i{background:linear-gradient(145deg,#102f45,#0b2132);box-shadow:inset 0 0 0 1px rgba(116,183,219,.08)}
.card{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.card:hover{border-color:#d8e7f0}.dark .card:hover{border-color:#24465d}
.dashboard-launchpad button,.quick-action-grid button{overflow:hidden;position:relative}.dashboard-launchpad button:after,.quick-action-grid button:after{content:"";position:absolute;width:90px;height:90px;right:-48px;top:-50px;border-radius:50%;background:radial-gradient(circle,rgba(39,183,240,.10),transparent 70%);pointer-events:none}.dashboard-launchpad>button>span,.quick-action-grid>button>span{overflow:visible}.dashboard-launchpad .emoji-glyph,.quick-action-grid .emoji-glyph{font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.dashboard-launchpad button.featured>span{background:linear-gradient(135deg,#e9f7ff,#fff5d8)}
.hero-btn .emoji-glyph{font-size:max(var(--font-min),calc(19px * var(--font-scale)))}.dashboard-hero.v2 .hero-btn{min-height:44px;padding:0 15px;border-radius:14px}.dashboard-hero.v2 .hero-btn.primary{box-shadow:0 13px 30px rgba(0,0,0,.15)}
.section-header.clean{padding:4px 2px}.section-header.clean h2{font-size:max(var(--font-min),calc(32px * var(--font-scale)))}.section-header.clean>div>span{font-size:max(var(--font-min),calc(13px * var(--font-scale)));line-height:1.45}.section-header.clean>.btn{min-height:46px;padding-left:17px;padding-right:17px}
.staff-row{min-height:88px;padding:13px 14px;border-radius:20px}.staff-row:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(8,65,102,.075)}.staff-avatar{width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#e9f7ff,#fff4d7);color:#075b90}.staff-person b{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.staff-person small,.staff-account small,.staff-load small{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.staff-account b{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.staff-actions .mini{min-height:38px;padding:0 11px}.staff-role-box{box-shadow:inset 0 0 0 1px rgba(11,131,207,.025)}
.staff-curator-toggle>span{background:linear-gradient(145deg,#eaf7ff,#fff6dc)}.staff-curator-toggle>span:after{content:"🎓";font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.staff-curator-toggle>span .n-icon{display:none}
.input,.select,.textarea{transition:border-color .15s,box-shadow .15s,background .15s}.input:hover,.select:hover,.textarea:hover{border-color:#cbdde8}.input:focus,.select:focus,.textarea:focus{border-color:#1590d7;box-shadow:0 0 0 4px rgba(21,144,215,.10)}
.btn{transition:transform .13s,box-shadow .13s,filter .13s}.btn:hover{transform:translateY(-1px);filter:brightness(1.015)}.btn:active{transform:translateY(0)}
.page-hero{background:linear-gradient(135deg,#f9fcff,#f1f8fc);border:1px solid #ddeaf2;box-shadow:var(--v22-glow)}.dark .page-hero{background:linear-gradient(135deg,#0b2031,#0a2739);border-color:#183a51}.page-hero h2{letter-spacing:-.8px}.page-hero .section-kicker{display:none}
.week-premium .day,.public-day-card{border:1px solid var(--v22-line);box-shadow:0 12px 28px rgba(15,68,102,.045)}.dark .week-premium .day,.dark .public-day-card{border-color:#1b3b50}.lesson-card{transition:transform .12s,border-color .12s,box-shadow .12s}.lesson-card:hover{transform:translateY(-1px);border-color:#c9dfeb;box-shadow:0 10px 24px rgba(10,67,103,.06)}
.today-panel,.dashboard-events,.risk-card,.chart-card{box-shadow:0 16px 42px rgba(7,49,82,.055)}
.empty-state>span{font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;font-size:max(var(--font-min),calc(29px * var(--font-scale)));line-height:1}.empty-state{padding:30px 18px}.empty-state b{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.empty-state small{font-size:max(var(--font-min),calc(10px * var(--font-scale)));line-height:1.5}
.notification-symbol{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:max(var(--font-min),calc(18px * var(--font-scale)));background:linear-gradient(145deg,#eaf6fc,#fff7df)}.dark .notification-symbol{background:linear-gradient(145deg,#12334a,#2c2818)}
.start-page-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.start-page-options button{min-height:56px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);display:grid;grid-template-columns:30px 1fr;gap:8px;align-items:center;text-align:left;padding:8px 10px;cursor:pointer}.start-page-options button span{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.start-page-options button b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.start-page-options button.active{border-color:#1a91d0;background:#f1faff;box-shadow:0 0 0 3px rgba(7,143,216,.07)}.dark .start-page-options button.active{background:#0d2a3d}
.appearance-grid{gap:4px 18px}.choice-grid button{transition:.13s}.choice-grid button:hover,.start-page-options button:hover{transform:translateY(-1px);border-color:#c5ddea}.choice-grid button span{font-family:"Segoe UI Emoji","Apple Color Emoji","Segoe UI",sans-serif;font-size:max(var(--font-min),calc(21px * var(--font-scale)))}
.command-trigger{border-color:#d7e7f0;background:rgba(255,255,255,.72)}.dark .command-trigger{background:rgba(9,31,47,.78);border-color:#1d3b50}.command-trigger:hover{box-shadow:0 8px 24px rgba(8,68,105,.07)}
.top-quick{background:linear-gradient(135deg,#0b83cf,#08649f);box-shadow:0 9px 22px rgba(8,101,159,.16)}.top-quick>span,.side-quick>span,.mobile-fab{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif}
.mobile-fab{font-size:max(var(--font-min),calc(20px * var(--font-scale)));background:linear-gradient(135deg,#0a82ca,#0a5d97);box-shadow:0 15px 36px rgba(7,91,143,.28)}
.login-facts span{transition:transform .14s,border-color .14s}.login-facts span:hover{transform:translateY(-1px);border-color:rgba(244,216,120,.27)}.login-card.concise{box-shadow:0 34px 95px rgba(7,45,76,.14)}
.login-version{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.login-version:after{content:""!important}
.security-shield{box-shadow:0 18px 40px rgba(7,74,112,.08)}
@media(max-width:850px){.dashboard-launchpad{grid-template-columns:repeat(2,minmax(0,1fr))}.start-page-options{grid-template-columns:1fr}.section-header.clean h2{font-size:max(var(--font-min),calc(28px * var(--font-scale)))}}
@media(max-width:680px){.dashboard-launchpad{grid-template-columns:1fr 1fr}.dashboard-launchpad button{min-height:76px;grid-template-columns:40px minmax(0,1fr) 12px;padding:11px}.dashboard-launchpad button small{display:none}.emoji-glyph{font-size:max(var(--font-min),calc(21px * var(--font-scale)))}.staff-row{border-radius:18px}.section-header.clean>div>span{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.page-hero{border-radius:22px}.start-page-options button{min-height:52px}.metric-label i{width:35px;height:35px}}

/* 2.6.0 reliability + navigation + live charts */
.students-header{flex-wrap:wrap}.student-actions{display:flex;gap:10px;align-items:center}.section-header.clean .student-actions .btn{min-height:48px;padding:0 17px;border-radius:15px}.section-header.clean .student-actions .group-create-btn{background:var(--card);color:var(--text);border:1px solid var(--line);box-shadow:0 8px 22px rgba(18,66,104,.06)}.section-header.clean .student-actions .group-create-btn:hover{border-color:#83cce9;background:#f6fbfe}.dark .section-header.clean .student-actions .group-create-btn{background:#0d2233;color:var(--text);border-color:#204158}.student-empty-setup{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 18px;margin:0 0 14px;border:1px solid #cfe8f5;border-radius:19px;background:linear-gradient(135deg,#f5fbff,#eef8fd)}.student-empty-setup>span{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;background:#fff;font-size:max(var(--font-min),calc(25px * var(--font-scale)));box-shadow:0 8px 22px rgba(15,87,126,.08)}.student-empty-setup b,.student-empty-setup small{display:block}.student-empty-setup b{font-size:max(var(--font-min),calc(14px * var(--font-scale)))}.student-empty-setup small{margin-top:4px;color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)));line-height:1.45}.dark .student-empty-setup{background:#0a2638;border-color:#1c4b64}.dark .student-empty-setup>span{background:#0d3248}
.staff-actions .staff-delete{color:#be3952;border-color:#f0ccd4;background:#fff7f8}.staff-actions .staff-delete:hover{background:#ffecef;border-color:#e9aeba}.dark .staff-actions .staff-delete{background:#351a22;border-color:#63303d;color:#ff9aac}
.side .nav button>span{width:38px;height:38px;flex:0 0 38px;border-radius:13px;display:grid!important;place-items:center;background:rgba(255,255,255,.055);font-size:max(var(--font-min),calc(20px * var(--font-scale)));filter:saturate(.96);transition:.16s ease}.side .nav button:hover>span{background:rgba(255,255,255,.10);transform:scale(1.04)}.side .nav button.active>span{background:rgba(255,255,255,.16);box-shadow:0 7px 18px rgba(0,0,0,.14);transform:scale(1.03)}.side .nav button[data-r="dashboard"]>span{background:rgba(72,185,255,.11)}.side .nav button[data-r="journal"]>span,.side .nav button[data-r="lesson"]>span{background:rgba(82,205,157,.11)}.side .nav button[data-r="schedule"]>span{background:rgba(94,165,255,.11)}.side .nav button[data-r="homework"]>span{background:rgba(179,129,255,.11)}.side .nav button[data-r="students"]>span,.side .nav button[data-r="staff"]>span{background:rgba(243,195,87,.12)}.side .nav button[data-r="security"]>span,.side .nav button[data-r="audit"]>span{background:rgba(255,126,151,.10)}.side-collapsed .side .nav button>span{width:42px;height:42px;flex-basis:42px}.mobile-nav-emoji{font-size:max(var(--font-min),calc(18px * var(--font-scale)))!important;line-height:1}
.chart-head{align-items:flex-start}.chart-switch{display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 15px}.chart-switch button{border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--muted);padding:8px 11px;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:800;cursor:pointer;transition:.15s}.chart-switch button:hover{border-color:#9ccfe8;color:var(--text)}.chart-switch button.active{background:#eaf7fd;border-color:#9bd7f1;color:#076fa7;box-shadow:0 5px 16px rgba(8,122,183,.08)}.dark .chart-switch button.active{background:#123149;border-color:#285a75;color:#bce8fb}.dashboard-chart .chart{height:270px}.chart-value b{font-variant-numeric:tabular-nums}
@media(max-width:680px){.student-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.section-header.clean .student-actions .btn{width:100%;padding:0 10px}.student-empty-setup{grid-template-columns:44px 1fr}.student-empty-setup>span{width:44px;height:44px}.student-empty-setup>.btn{grid-column:1/-1;width:100%}.chart-switch{display:grid;grid-template-columns:1fr 1fr}.chart-switch button{min-height:42px}.dashboard-chart .chart{height:230px}}

/* === NKTL ONE 2.3: cleaner workbench === */
.workbench-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:4px 2px}.workbench-head h2{margin:0;color:var(--text);font-size:max(var(--font-min),calc(32px * var(--font-scale)));letter-spacing:-1.1px}.workbench-head span{display:block;margin-top:5px;color:var(--muted);font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.workbench-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dashboard-launchpad.compact{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.dashboard-launchpad.compact button{min-height:82px;padding:14px 15px}.dashboard-launchpad.compact button>span{width:43px;height:43px;border-radius:14px;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.dashboard-stats.focused{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.dashboard-stats.focused .metric{min-height:112px}.attention-strip{display:flex;align-items:center;gap:15px;margin:0 0 14px;padding:12px 14px;border:1px solid #f0e0b4;border-radius:18px;background:linear-gradient(135deg,#fffaf0,#fffdf8)}.dark .attention-strip{background:#241e10;border-color:#4b3d1c}.attention-strip>b{white-space:nowrap;font-size:max(var(--font-min),calc(12px * var(--font-scale)));color:#72510f}.attention-strip>div{display:flex;gap:8px;flex-wrap:wrap}.attention-strip button{border:1px solid #ead8a8;background:#fff;color:#785718;border-radius:12px;padding:8px 11px;font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:800;cursor:pointer}.dark .attention-strip button{background:#2b2412;border-color:#5b4820;color:#ecd488}.attention-strip button span{margin-right:5px}.dashboard-layout.concise{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:14px;align-items:start}.dashboard-layout.concise .dashboard-chart{margin:0}.compact-risk{margin-top:14px}.risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.risk-grid .risk{margin:0}.directory-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 2px 11px;color:var(--muted)}.directory-meta>span{font-size:max(var(--font-min),calc(12px * var(--font-scale)));font-weight:850;color:var(--text)}.directory-meta>small{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.student-directory{margin-top:14px}.student-toolbar{display:grid;grid-template-columns:minmax(150px,190px) minmax(130px,160px) minmax(220px,1fr) auto;gap:9px;margin-bottom:9px;align-items:center}.student-toolbar-actions{display:flex;gap:7px}.student-contact span,.student-contact small{display:block}.student-contact span{font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:700}.student-contact small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.row-actions{display:flex;gap:6px;justify-content:flex-end}.archived-row{opacity:.72;background:rgba(126,144,158,.035)}.student-actions-col{width:170px}.modal-actions.split{justify-content:space-between;align-items:center}.modal-actions.split>div{display:flex;gap:8px}.danger-text{color:#bd334d!important}.account-toggle.compact{margin-top:14px;padding:12px 13px}.import-btn{cursor:pointer;white-space:nowrap}.student-table .avatar{width:42px;height:42px;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.student-table td{vertical-align:middle}.student-table .student-cell b{font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.student-table .student-cell small{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.student-table-wrap{border-radius:18px}
@media(max-width:1180px){.dashboard-launchpad.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-layout.concise{grid-template-columns:1fr}.student-toolbar{grid-template-columns:1fr 1fr}.student-toolbar .account-search{grid-column:1/-1}.student-toolbar-actions{grid-column:1/-1}.risk-grid{grid-template-columns:1fr}}
@media(max-width:720px){.workbench-head{display:block}.workbench-head h2{font-size:max(var(--font-min),calc(27px * var(--font-scale)))}.workbench-actions{justify-content:flex-start;margin-top:12px}.dashboard-launchpad.compact{grid-template-columns:1fr 1fr}.dashboard-stats.focused{grid-template-columns:1fr 1fr}.attention-strip{display:block}.attention-strip>div{margin-top:9px}.student-toolbar{grid-template-columns:1fr}.student-toolbar .account-search,.student-toolbar-actions{grid-column:auto}.student-toolbar-actions>*{flex:1}.directory-meta{display:block}.directory-meta small{display:block;margin-top:5px}.student-table thead{display:none}.student-table,.student-table tbody,.student-table tr,.student-table td{display:block;width:100%}.student-table tr{padding:12px 0;border-top:1px solid var(--line)}.student-table tr:first-child{border-top:0}.student-table td{border:0!important;padding:5px 7px!important}.student-table td:nth-child(2),.student-table td:nth-child(3){padding-left:57px!important}.student-table .row-actions{justify-content:flex-start;padding-left:50px}.modal-actions.split{display:block}.modal-actions.split>div{display:flex;margin-top:9px}.modal-actions.split>div .btn{flex:1}}
@media(max-width:460px){.dashboard-launchpad.compact,.dashboard-stats.focused{grid-template-columns:1fr}.workbench-actions .btn{flex:1}.attention-strip button{width:100%;text-align:left}.student-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}}
.analytics-layout.single{grid-template-columns:1fr}
.table tbody tr{transition:background .14s ease}.table tbody tr:hover{background:rgba(8,167,255,.035)}.dark .table tbody tr:hover{background:rgba(91,190,244,.045)}
.btn,.mini,.icon,.group-chip,.dashboard-launchpad button{transition:transform .14s ease,box-shadow .14s ease,background .14s ease,border-color .14s ease}.btn:not(:disabled):active,.mini:not(:disabled):active,.group-chip:active,.dashboard-launchpad button:active{transform:translateY(1px) scale(.99)}


/* === NKTL ONE 2.6.0 · students archive, mobile login, academic leaders === */
.login-input{position:relative;z-index:1;-webkit-appearance:none;appearance:none;opacity:1;touch-action:manipulation;caret-color:var(--text)}
.login-input::placeholder{color:#8197a8;opacity:1;-webkit-text-fill-color:#8197a8}
.login-input:focus::placeholder{opacity:.72}
.field-wrap.clean{isolation:isolate}
.field-action{z-index:3;touch-action:manipulation}
@media(max-width:680px){
  .login-input{min-height:60px!important;font-size:max(var(--font-min),calc(18px * var(--font-scale)))!important;padding-left:18px!important}
  .login-input.has-action{padding-right:104px!important}
  .field-action{right:8px;min-height:42px;padding:8px 12px}
}

.student-mode-tabs{display:flex;gap:8px;margin:0 0 14px;padding:5px;width:max-content;max-width:100%;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:0 10px 28px rgba(17,65,98,.05)}
.student-mode-tabs button{min-height:44px;display:flex;align-items:center;gap:8px;border:0;border-radius:13px;padding:0 13px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800;transition:.16s}
.student-mode-tabs button span{font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.student-mode-tabs button b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.student-mode-tabs button em{min-width:24px;height:24px;padding:0 7px;border-radius:99px;display:grid;place-items:center;background:#eef4f8;color:#53758c;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-style:normal}
.student-mode-tabs button.active{background:linear-gradient(135deg,#0b8ed5,#0875ba);color:#fff;box-shadow:0 8px 20px rgba(8,125,190,.20)}
.student-mode-tabs button.active em{background:rgba(255,255,255,.18);color:#fff}
.dark .student-mode-tabs button em{background:#153149;color:#9ab5c7}

.leaders-panel{padding:18px}.leaders-toolbar{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(180px,1fr) minmax(170px,.9fr) minmax(200px,1.2fr);gap:9px;align-items:center}
.ranking-note{display:flex;align-items:center;gap:11px;margin:12px 0 15px;padding:11px 13px;border:1px solid #dceaf3;border-radius:15px;background:#f7fbfe;color:#41657c}
.ranking-note>span{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#e6f4fc}.ranking-note b,.ranking-note small{display:block}.ranking-note b{font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.ranking-note small{margin-top:2px;font-size:max(var(--font-min),calc(8px * var(--font-scale)));color:var(--muted);line-height:1.4}.dark .ranking-note{background:#0a2132;border-color:#17384f}.dark .ranking-note>span{background:#12334a}
.leader-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.leader-card{position:relative;display:grid;grid-template-columns:38px 42px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:76px;padding:12px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,var(--card),#f8fbfd);overflow:hidden}.dark .leader-card{background:linear-gradient(180deg,var(--card),#0a1b29)}.leader-card.place-1{border-color:#ead7a0;background:linear-gradient(135deg,#fffaf0,var(--card))}.dark .leader-card.place-1{background:linear-gradient(135deg,#2b2514,var(--card));border-color:#5c4e25}.leader-place{font-size:max(var(--font-min),calc(23px * var(--font-scale)))}.leader-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#eaf5fb;color:#1475a5;font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:950}.dark .leader-avatar{background:#123349;color:#9edcff}.leader-card b,.leader-card small{display:block}.leader-card b{font-size:max(var(--font-min),calc(10px * var(--font-scale)));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-card small{margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.leader-card>strong{font-size:max(var(--font-min),calc(22px * var(--font-scale)));letter-spacing:-.8px;color:#0c82c6}.leaders-table th,.leaders-table td{vertical-align:middle}.rank-number{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#eef4f8;color:#658093;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900}.rank-number.top{background:#fff3ce;color:#9b7014}.leader-person{display:flex;align-items:center;gap:8px;min-width:220px}.leader-person .avatar{width:32px;height:32px;border-radius:10px}.leader-grade{font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.rating-score{display:inline-flex;min-width:48px;justify-content:center;padding:6px 9px;border-radius:11px;background:#e6f8f1;color:#147b5b;font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:950}.dark .rating-score{background:#11382d;color:#87dfbd}
@media(max-width:1050px){.leaders-toolbar{grid-template-columns:1fr 1fr}.leader-podium{grid-template-columns:1fr}}
@media(max-width:680px){.student-mode-tabs{width:100%}.student-mode-tabs button{flex:1;justify-content:center}.leaders-panel{padding:13px}.leaders-toolbar{grid-template-columns:1fr}.ranking-note{align-items:flex-start}.leader-podium{display:block}.leader-card{margin-bottom:8px}.leaders-table-wrap{margin:0 -13px;border-left:0;border-right:0;border-radius:0}.leaders-table{min-width:850px}}

/* NKTL ONE 2.6.0 · Email Security */
.login-forgot{display:block;width:100%;margin:10px 0 12px;border:0;background:transparent;color:var(--primary);font:800 14px/1.2 inherit;cursor:pointer;padding:7px;border-radius:10px}.login-forgot:hover,.login-forgot:focus-visible{background:color-mix(in srgb,var(--primary) 10%,transparent);outline:none}.email-security-card{position:relative;overflow:hidden}.email-account-row{display:flex;align-items:center;gap:14px;padding:16px 0 18px}.email-account-row>div{min-width:0;display:grid;gap:4px}.email-account-row b{font-size:max(var(--font-min),calc(16px * var(--font-scale)));overflow-wrap:anywhere}.email-account-row small{color:var(--muted);line-height:1.45}.email-big-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:color-mix(in srgb,var(--primary) 12%,var(--card));font-size:max(var(--font-min),calc(24px * var(--font-scale)));flex:0 0 48px}.email-code-input{font-size:max(var(--font-min),calc(28px * var(--font-scale)))!important;font-weight:900!important;letter-spacing:.32em!important;text-align:center!important;padding-left:1.15em!important;font-variant-numeric:tabular-nums}.email-code-grid{margin-bottom:14px}.compact-note{margin-top:12px}.smtp-card{margin-top:16px}.smtp-grid{display:grid;grid-template-columns:2fr .7fr 1fr;gap:12px}.smtp-grid label{display:grid;gap:7px}.smtp-grid label>span{font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:900;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.smtp-grid .smtp-wide{grid-column:span 2}.smtp-enabled{margin-top:14px}.smtp-test-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:center;margin-top:14px}.smtp-card .secure-note{margin-top:14px}.security-layout .email-security-card .btn{margin-top:2px}
@media(max-width:900px){.smtp-grid{grid-template-columns:1fr 1fr}.smtp-grid .smtp-wide{grid-column:1/-1}.smtp-test-row{grid-template-columns:1fr 1fr}.smtp-test-row input{grid-column:1/-1}}
@media(max-width:560px){.smtp-grid{grid-template-columns:1fr}.smtp-grid .smtp-wide{grid-column:auto}.smtp-test-row{grid-template-columns:1fr}.smtp-test-row input{grid-column:auto}.email-code-input{font-size:max(var(--font-min),calc(24px * var(--font-scale)))!important;letter-spacing:.23em!important}.login-forgot{min-height:42px}}

.smtp-rate-note{display:block;margin-top:10px;color:var(--muted);font-size:max(var(--font-min),calc(11px * var(--font-scale)));line-height:1.45}


/* === NKTL ONE 2.6.0 · readable typography + academic workbench === */
html{--font-scale:1;--font-min:10px}html[data-scale="large"]{--font-scale:1.14;--font-min:12px}html[data-scale="xl"]{--font-scale:1.30;--font-min:13px}
.account-trigger{width:100%;border:1px solid #ffffff18;background:#ffffff08;color:inherit;text-align:left;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;transition:.16s}.account-trigger:hover{background:#ffffff10;border-color:#ffffff2b;transform:translateY(-1px)}.account-gear{width:34px;height:34px;border-radius:11px;background:#ffffff0b;display:grid;place-items:center;font-size:max(var(--font-min),calc(16px * var(--font-scale)))}
.account-center header{display:flex;align-items:center;gap:16px;padding:6px 2px 18px}.account-big-avatar{width:68px;height:68px;border-radius:22px;background:linear-gradient(135deg,#0ea6f3,#0876bc);color:#fff;display:grid;place-items:center;font-weight:950;font-size:max(var(--font-min),calc(20px * var(--font-scale)));box-shadow:0 16px 35px rgba(6,116,180,.18)}.account-center header span{font-weight:900;letter-spacing:.09em;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.account-center header h2{margin:4px 0;font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.account-center header p{margin:0;color:var(--muted)}.account-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.account-status-grid>div{padding:13px;border:1px solid var(--line);border-radius:16px;background:#f8fbfd}.dark .account-status-grid>div{background:#0a1b29}.account-status-grid i,.account-status-grid b,.account-status-grid span{display:block}.account-status-grid i{font-style:normal;font-size:max(var(--font-min),calc(19px * var(--font-scale)))}.account-status-grid b{margin-top:7px}.account-status-grid span{margin-top:3px;color:var(--muted)}.account-action-list{display:grid;gap:8px;margin:14px 0}.account-action-list button{display:grid;grid-template-columns:42px 1fr 20px;align-items:center;gap:10px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);padding:12px;text-align:left;cursor:pointer}.account-action-list button:hover{background:#f5fbfe;border-color:#bfe1f2}.dark .account-action-list button:hover{background:#0c2638}.account-action-list button>span b,.account-action-list button>span small{display:block}.account-action-list button>span small{margin-top:3px;color:var(--muted)}.account-logout{width:100%}.install-guide{display:grid;gap:7px}.install-guide b{margin-top:8px}.install-guide p{margin:0;color:var(--muted);line-height:1.55}
.public-schedule-modal.v24{width:min(1400px,calc(100vw - 24px));padding:0!important;overflow:hidden}.public-schedule-v24{padding:22px}.public-schedule-hero{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:2px 2px 16px;border-bottom:1px solid var(--line)}.public-schedule-brand{display:flex;align-items:center;gap:13px}.public-schedule-brand span{color:var(--blue2);font-weight:900;letter-spacing:.08em}.public-schedule-brand h2{margin:2px 0 1px!important;font-size:max(var(--font-min),calc(25px * var(--font-scale)))}.public-schedule-brand p{margin:0;color:var(--muted)}.public-schedule-toolbar.v24{display:grid;grid-template-columns:minmax(130px,170px) minmax(220px,300px) auto 1fr;gap:12px;align-items:end;padding:16px 2px}.public-schedule-toolbar.v24 label>span{display:block;color:var(--muted);font-weight:900;margin-bottom:6px}.public-live-status{justify-self:end;align-self:center;display:flex;align-items:center;gap:6px;color:var(--muted)}.public-live-status i{width:8px;height:8px;border-radius:50%;background:#aab7c1}.public-live-status i.online{background:#13b77c;box-shadow:0 0 0 5px rgba(19,183,124,.1)}.public-week.v24{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.public-week.v24.today-only{grid-template-columns:minmax(280px,520px);justify-content:center}.public-day-card.v24{border:1px solid #d9e8f2;border-radius:20px;background:linear-gradient(180deg,#f9fcfe,var(--card));padding:10px;min-width:0}.dark .public-day-card.v24{background:linear-gradient(180deg,#0e2536,var(--card));border-color:#1d3c52}.public-day-card.v24.is-today{border-color:#91d7f6;box-shadow:0 0 0 3px rgba(16,159,225,.07)}.public-day-card.v24>header{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 11px}.public-day-card.v24>header small,.public-day-card.v24>header strong{display:block}.public-day-card.v24>header small{color:#0988c7;font-weight:900;letter-spacing:.08em}.public-day-card.v24>header strong{margin-top:2px;font-size:max(var(--font-min),calc(15px * var(--font-scale)))}.public-day-card.v24>header>span{padding:5px 8px;border-radius:99px;background:#edf5f9;color:#607d90;font-weight:800}.public-lesson-item.v24{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;padding:12px 10px;margin-bottom:8px;border:1px solid var(--line);border-radius:16px;background:var(--card);min-height:105px}.public-lesson-item.v24.is-now{border-color:#6dcaf2;background:#f0faff;box-shadow:0 9px 23px rgba(7,137,199,.08)}.dark .public-lesson-item.v24.is-now{background:#0d2b3e}.public-lesson-item.v24.is-cancelled{opacity:.58}.public-pair-badge{width:36px;height:36px;border-radius:12px;background:#e7f6fd;color:#0782bf;display:grid;place-items:center;font-weight:950;font-size:max(var(--font-min),calc(14px * var(--font-scale)))}.public-time-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.public-time-row time{color:#0782bf;font-weight:850}.public-time-row span{padding:3px 6px;border-radius:99px;background:#ddf6eb;color:#087a55;font-weight:900}.public-time-row span.cancelled{background:#ffe8ed;color:#bc334f}.public-lesson-main b{display:block;margin:8px 0 6px;line-height:1.3;font-size:max(var(--font-min),calc(13px * var(--font-scale)))}.public-lesson-main small{color:var(--muted)}.public-day-empty{padding:28px 8px;text-align:center;color:var(--muted)}.public-schedule-footer{display:flex;justify-content:space-between;gap:10px;padding:13px 3px 0;color:var(--muted);border-top:1px solid var(--line);margin-top:12px}
.schedule-card.v24{padding:20px}.schedule-card.v24 .week-premium .day{min-width:0}.schedule-card.v24 .lesson-info b{font-size:max(var(--font-min),calc(13px * var(--font-scale)))!important}.schedule-card.v24 .lesson-info small,.schedule-card.v24 .lesson-room,.schedule-card.v24 .lesson-info em{font-size:max(var(--font-min),calc(10px * var(--font-scale)))!important}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.conflict-list{display:grid;gap:9px}.conflict-list>div{padding:13px;border:1px solid #f1cfda;border-radius:15px;background:#fff7f9}.dark .conflict-list>div{background:#2c1820}.conflict-list b,.conflict-list small{display:block}.conflict-list small{margin-top:4px;color:var(--muted)}.conflict-list p{margin:7px 0 0;color:#b3344f}
.curriculum-note{margin:2px 0 13px;color:var(--muted)}.curriculum-list{display:grid;gap:9px}.curriculum-list article{display:grid;grid-template-columns:minmax(0,1fr) 72px auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:17px}.curriculum-main>span{color:#1781b7;font-weight:900;letter-spacing:.07em}.curriculum-main h3{margin:4px 0 8px}.curriculum-main small{color:var(--muted)}.curriculum-progress{height:8px;border-radius:99px;background:#eaf1f5;overflow:hidden;margin-bottom:6px}.curriculum-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#08a7ff,#26b981)}.curriculum-list article>strong{font-size:max(var(--font-min),calc(20px * var(--font-scale)));color:#087dbb}.curriculum-form label>span{display:block;margin-bottom:6px;color:var(--muted);font-weight:850}
.report-toolbar{display:grid;grid-template-columns:minmax(130px,170px) minmax(180px,1fr) 180px 180px auto;gap:9px;margin-bottom:16px}.report-stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.report-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,.7fr);gap:14px}.report-grid h3{margin:4px 0 10px}.report-subjects{display:grid;gap:8px}.report-subjects>div{padding:12px;border:1px solid var(--line);border-radius:14px}.report-subjects b,.report-subjects span,.report-subjects strong,.report-subjects small{display:block}.report-subjects span,.report-subjects small{color:var(--muted);margin-top:3px}.report-subjects strong{margin-top:8px;font-size:max(var(--font-min),calc(20px * var(--font-scale)));color:#0b82c2}
.journal-view{min-width:max-content}.journal-student-open{border:0;background:transparent;color:var(--text);cursor:pointer;text-align:left;width:100%}.journal-student-open:hover b{color:#087fbe}.journal-person-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:13px}.journal-person-stats>div{padding:13px;border:1px solid var(--line);border-radius:14px}.journal-person-stats b,.journal-person-stats span{display:block}.journal-person-stats b{font-size:max(var(--font-min),calc(22px * var(--font-scale)))}.journal-person-stats span{margin-top:3px;color:var(--muted)}.journal-person-list{display:grid;gap:6px;max-height:360px;overflow:auto}.journal-person-list>div{display:grid;grid-template-columns:90px 1fr 44px;gap:9px;align-items:center;padding:9px;border-bottom:1px solid var(--line)}.journal-person-list time{color:var(--muted)}.journal-person-list strong{width:38px;height:38px;border-radius:10px;background:#eef6fa;display:grid;place-items:center}
@media(max-width:1320px){.public-week.v24{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:920px){.public-week.v24{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:1fr}.report-toolbar{grid-template-columns:1fr 1fr}.report-toolbar .select,.report-toolbar .btn{width:100%}.account-status-grid{grid-template-columns:1fr 1fr}}
/* legacy breakpoint continuation */

@media(max-width:680px){.public-schedule-v24{padding:14px}.public-schedule-hero{align-items:flex-start}.public-schedule-actions{display:none}.public-schedule-toolbar.v24{grid-template-columns:1fr}.public-live-status{justify-self:start}.public-week.v24{grid-template-columns:1fr}.public-week.v24.today-only{grid-template-columns:1fr}.public-day-card.v24{padding:8px}.public-lesson-item.v24{min-height:92px}.report-toolbar{grid-template-columns:1fr}.report-stats{grid-template-columns:1fr 1fr}.curriculum-list article{grid-template-columns:1fr auto}.curriculum-list article .mini{grid-column:1/-1}.journal-person-stats{grid-template-columns:1fr 1fr}.account-center header{align-items:flex-start}.account-status-grid{grid-template-columns:1fr 1fr}}
.compliance-v24{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:14px;margin-top:14px}.registry-checks{display:grid;gap:7px;margin:8px 0 13px}.registry-checks>div{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:13px}.registry-checks i{width:26px;height:26px;border-radius:9px;background:#e6f8f0;color:#0c825d;display:grid;place-items:center;font-style:normal;font-weight:950}.registry-caption{line-height:1.55;margin:12px 0 0}@media(max-width:950px){.compliance-v24{grid-template-columns:1fr}}

/* 2.4 readability safeguards */
.public-lesson-main,.public-lesson-main b,.lesson-info,.lesson-info b,.curriculum-main,.report-subjects{min-width:0}.public-lesson-main b,.lesson-info b,.curriculum-main h3{overflow-wrap:anywhere;hyphens:auto}.public-schedule-modal.v24{width:min(1480px,calc(100vw - 20px))}.public-schedule-toolbar.v24 .select{min-height:48px;font-weight:850}.public-schedule-v24{font-size:max(13px,calc(14px * var(--font-scale)))}
html[data-scale="large"] .nav button b{font-size:max(14px,calc(13px * var(--font-scale)))}
html[data-scale="xl"] .nav button b{font-size:max(16px,calc(13px * var(--font-scale)))}
html[data-scale="large"] .content{font-size:max(14px,calc(14px * var(--font-scale)))}
html[data-scale="xl"] .content{font-size:max(16px,calc(14px * var(--font-scale)))}
@media(max-width:680px){html[data-scale="xl"]{--font-min:14px}.public-schedule-v24{font-size:max(14px,calc(14px * var(--font-scale)))}}

/* ======================================================================
   NKTL ONE 2.6.0 · mobile stability + modal lifecycle + schedule editor
   ====================================================================== */
html,body{max-width:100%;overflow-x:hidden}
.main,.content,#view,.card,.report-grid,.report-grid>section,.report-students-section,.report-subject-section,.report-table-wrap{min-width:0;max-width:100%}
.modal-x{touch-action:manipulation;-webkit-tap-highlight-color:transparent;pointer-events:auto}
.modal-bg{overflow:auto;overscroll-behavior:contain}

.schedule-add-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;align-items:start}
.schedule-add-grid label{display:grid;gap:7px;min-width:0}.schedule-add-grid label>span{font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:900;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}
.schedule-add-grid .teacher-picker{grid-column:span 2}.schedule-add-grid .teacher-picker small{min-height:18px;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));line-height:1.35}.schedule-add-grid .teacher-picker small b{color:var(--text)}
.add-schedule-card #sadd:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}

.report-mobile-list{display:none}.report-table-wrap{width:100%;overflow:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}.report-student-table{min-width:680px}.report-student-card{padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--card)}.report-student-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.report-student-head b,.report-student-head small{display:block}.report-student-head b{line-height:1.3}.report-student-head small{margin-top:4px;color:var(--muted)}.report-student-head>strong{font-size:max(var(--font-min),calc(22px * var(--font-scale)));color:#0a82c3}.report-student-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}.report-student-metrics span{padding:9px;border-radius:12px;background:var(--soft);min-width:0}.report-student-metrics b,.report-student-metrics small{display:block}.report-student-metrics small{margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}

/* Public timetable must never be clipped vertically. Header stays visible,
   only the lesson area scrolls when a low-height laptop cannot fit all rows. */
.modal.public-schedule-modal.v24{width:min(1500px,calc(100vw - 28px));height:min(92dvh,900px);max-height:calc(100dvh - 20px);padding:0!important;overflow:hidden;display:flex;flex-direction:column}
.public-schedule-modal.v24 .public-schedule-v24{width:100%;height:100%;min-height:0;padding:18px 20px 14px;display:flex;flex-direction:column}
.public-schedule-modal.v24 .public-schedule-hero{flex:0 0 auto;padding-bottom:12px}.public-schedule-modal.v24 .public-schedule-toolbar.v24{flex:0 0 auto;padding:12px 2px}.public-schedule-modal.v24 .public-week-shell{flex:1 1 auto;min-height:0;overflow:auto;padding:1px 3px 6px 1px;overscroll-behavior:contain;scrollbar-gutter:stable}.public-schedule-modal.v24 .public-week.v24{align-items:start;gap:10px}.public-schedule-modal.v24 .public-day-card.v24{padding:9px}.public-schedule-modal.v24 .public-day-card.v24>header{padding:3px 4px 8px}.public-schedule-modal.v24 .public-lesson-item.v24{min-height:0;margin-bottom:7px;padding:9px 8px;grid-template-columns:36px minmax(0,1fr);gap:8px;border-radius:14px}.public-schedule-modal.v24 .public-pair-badge{width:33px;height:33px;border-radius:10px}.public-schedule-modal.v24 .public-lesson-main b{margin:5px 0 4px;line-height:1.22}.public-schedule-modal.v24 .public-time-row time{white-space:nowrap}.public-schedule-modal.v24 .public-schedule-footer{flex:0 0 auto;margin-top:8px;padding-top:9px}
@media(max-height:900px) and (min-width:1101px){.modal.public-schedule-modal.v24{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.public-schedule-modal.v24 .public-schedule-v24{padding:13px 17px 10px}.public-schedule-modal.v24 .public-schedule-brand h2{font-size:max(var(--font-min),calc(21px * var(--font-scale)))}.public-schedule-modal.v24 .public-schedule-brand p{font-size:max(var(--font-min),calc(11px * var(--font-scale)))}.public-schedule-modal.v24 .public-schedule-hero{padding-bottom:8px}.public-schedule-modal.v24 .public-schedule-toolbar.v24{padding:8px 2px}.public-schedule-modal.v24 .public-schedule-toolbar.v24 .select{min-height:42px}.public-schedule-modal.v24 .public-lesson-item.v24{padding:7px;margin-bottom:5px}.public-schedule-modal.v24 .public-day-card.v24>header{padding-bottom:6px}.public-schedule-modal.v24 .public-schedule-footer{margin-top:5px;padding-top:6px}}

@media(max-width:1100px){.schedule-add-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-add-grid .teacher-picker{grid-column:span 1}.modal.public-schedule-modal.v24{width:min(900px,calc(100vw - 20px));height:min(94dvh,900px)}.public-schedule-modal.v24 .public-week.v24{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.main{width:100%;max-width:100vw;overflow-x:hidden}.content{width:100%;max-width:100vw;overflow-x:hidden}.top.v2{width:calc(100% - 14px);max-width:calc(100vw - 14px)}#view{width:100%;overflow-x:hidden}.section-header,.page-hero,.card{max-width:100%}.report-grid{grid-template-columns:minmax(0,1fr)}.report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.report-toolbar{grid-template-columns:1fr 1fr}.report-toolbar>*{min-width:0}.report-subjects>div{min-width:0;overflow-wrap:anywhere}}
@media(max-width:680px){.schedule-add-grid{grid-template-columns:1fr}.schedule-add-grid .teacher-picker{grid-column:auto}.add-schedule-card{padding:14px}.add-schedule-card .head{align-items:flex-start}.report-toolbar{grid-template-columns:1fr}.report-stats{grid-template-columns:1fr 1fr}.report-table-wrap{display:none}.report-mobile-list{display:grid;gap:9px}.report-grid{gap:12px}.report-grid h3{margin-top:0}.report-subjects>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px}.report-subjects>div strong{grid-column:2;grid-row:1/3;align-self:center;margin:0}.report-subjects>div small{grid-column:1/-1}.content{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right));padding-bottom:calc(96px + env(safe-area-inset-bottom))}.mobile-bottom{max-width:calc(100vw - 10px)}.modal-bg{padding:5px;align-items:center}.modal{width:calc(100vw - 10px);max-width:calc(100vw - 10px);max-height:calc(100dvh - 10px);padding:19px 16px;border-radius:20px}.modal.public-schedule-modal.v24{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px);border-radius:20px}.public-schedule-modal.v24 .public-schedule-v24{padding:12px 12px 9px}.public-schedule-modal.v24 .public-week.v24{grid-template-columns:1fr}.public-schedule-modal.v24 .public-schedule-toolbar.v24{padding:10px 2px}.public-schedule-modal.v24 .public-week-shell{padding-right:2px}}
@media(max-width:430px){.report-stats{grid-template-columns:1fr 1fr}.report-student-metrics{grid-template-columns:1fr 1fr}.report-student-card{padding:12px}.section-header.clean{gap:9px}.section-header.clean>.btn,.section-header.clean>.page-actions{max-width:100%}}
html.modal-open,html.modal-open body{overflow:hidden!important;overscroll-behavior:none}

.feedback-fab{position:fixed;right:18px;bottom:20px;z-index:60;display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(11,129,200,.18);border-radius:18px;background:linear-gradient(135deg,#0c83cb,#0968a6);color:#fff;box-shadow:0 18px 44px rgba(8,93,147,.26);cursor:pointer}.feedback-fab span{display:grid;place-items:center;width:22px;height:22px}.feedback-fab .n-icon{width:18px;height:18px}.feedback-fab b{font-size:max(var(--font-min),calc(12px * var(--font-scale)));font-weight:900;white-space:nowrap}.feedback-fab:hover{transform:translateY(-1px)}.feedback-fab:focus-visible{outline:3px solid rgba(8,167,255,.34);outline-offset:2px}.login-feedback{bottom:18px}.app-feedback{bottom:20px}.feedback-kind{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.feedback-kind button{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:14px;padding:11px 12px;font-weight:850;cursor:pointer}.feedback-kind button.active{border-color:#70c6ee;background:#eef8fe;color:#086ea8}.dark .feedback-kind button.active{background:#0b2b3d}.feedback-message{min-height:150px}.feedback-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.feedback-meta label span{display:block;margin-bottom:6px;font-size:max(var(--font-min),calc(11px * var(--font-scale)));font-weight:800;color:var(--muted)}.feedback-page{margin-top:12px;padding:12px 13px;border:1px dashed #b8d6e6;border-radius:14px;background:#f8fbfe}.dark .feedback-page{background:#0b1824;border-color:#21465f}.feedback-page b{display:block;font-size:max(var(--font-min),calc(11px * var(--font-scale)));margin-bottom:4px}.feedback-page small{color:var(--muted);line-height:1.5;word-break:break-word}.feedback-modal .modal{max-width:760px}.feedback-modal .modal-actions{margin-top:16px}.feedback-modal .btn{min-width:150px}@media(max-width:900px){.app-feedback{bottom:154px;right:16px}}@media(max-width:680px){.feedback-fab{right:14px;bottom:94px;padding:0;width:54px;height:54px;justify-content:center;border-radius:18px}.feedback-fab b{display:none}.app-feedback{bottom:146px}.login-feedback{bottom:14px}.feedback-meta{grid-template-columns:1fr}.feedback-modal .modal-actions{display:grid;grid-template-columns:1fr;gap:8px}.feedback-modal .btn{width:100%}}

/* === NKTL ONE feedback center === */
.feedback-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 14px}.feedback-admin-summary>div{position:relative;overflow:hidden;padding:16px 18px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}.feedback-admin-summary>div:after{content:"";position:absolute;right:-24px;top:-30px;width:84px;height:84px;border-radius:50%;background:rgba(8,167,255,.07)}.feedback-admin-summary b{display:block;font-size:max(var(--font-min),calc(25px * var(--font-scale)));line-height:1}.feedback-admin-summary span{display:block;margin-top:6px;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));font-weight:800}.feedback-admin-panel{padding:16px}.feedback-admin-toolbar{display:grid;grid-template-columns:180px 180px minmax(260px,1fr);gap:9px;margin-bottom:14px}.feedback-admin-list{display:grid;gap:10px}.feedback-admin-card{position:relative;padding:16px 17px;border:1px solid var(--line);border-radius:18px;background:var(--card);overflow:hidden}.feedback-admin-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#8ea2b1}.feedback-admin-card.status-new:before{background:#149ee2}.feedback-admin-card.status-working:before{background:#e3a31c}.feedback-admin-card.status-resolved:before{background:#1aaa79}.feedback-admin-card>header,.feedback-admin-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.feedback-admin-card>header>div,.feedback-admin-card>footer>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.feedback-admin-card time,.feedback-admin-card footer small{color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:750}.feedback-admin-card>p{margin:13px 0;white-space:pre-wrap;line-height:1.55;font-size:max(var(--font-min),calc(13px * var(--font-scale)));color:var(--text)}.feedback-type,.feedback-status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:99px;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900}.feedback-type.bug{background:#fff0f2;color:#bb3150}.feedback-type.idea{background:#edf8ff;color:#087dbb}.feedback-status{background:#f0f4f7;color:#607889}.status-new .feedback-status{background:#e8f6ff;color:#087dbb}.status-working .feedback-status{background:#fff5de;color:#9f6911}.status-resolved .feedback-status{background:#e9faf3;color:#09805c}.dark .feedback-type.bug{background:#351521;color:#f092a7}.dark .feedback-type.idea,.dark .status-new .feedback-status{background:#0c2b3f;color:#7ad0f7}.dark .status-working .feedback-status{background:#302510;color:#f0cd74}.dark .status-resolved .feedback-status{background:#0d2c24;color:#73d8b4}.feedback-admin-meta{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;margin:0 0 13px}.feedback-admin-meta span{min-width:0;padding:9px 10px;border-radius:12px;background:#f7fafc;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));overflow-wrap:anywhere}.dark .feedback-admin-meta span{background:#091a29}.feedback-admin-meta b{display:block;margin-bottom:3px;color:var(--text);font-size:max(var(--font-min),calc(8px * var(--font-scale)));text-transform:uppercase;letter-spacing:.05em}.feedback-admin-card>footer{padding-top:11px;border-top:1px solid var(--line)}
@media(max-width:900px){.feedback-admin-summary{grid-template-columns:1fr 1fr}.feedback-admin-toolbar{grid-template-columns:1fr 1fr}.feedback-admin-toolbar .input{grid-column:1/-1}.feedback-admin-meta{grid-template-columns:1fr 1fr}.feedback-admin-meta span:last-child{grid-column:1/-1}}
@media(max-width:600px){.feedback-admin-summary{grid-template-columns:1fr 1fr;gap:8px}.feedback-admin-summary>div{padding:13px}.feedback-admin-toolbar{grid-template-columns:1fr}.feedback-admin-toolbar .input{grid-column:auto}.feedback-admin-card{padding:14px}.feedback-admin-card>header,.feedback-admin-card>footer{align-items:flex-start;flex-direction:column}.feedback-admin-meta{grid-template-columns:1fr}.feedback-admin-meta span:last-child{grid-column:auto}.feedback-admin-card>footer>div{width:100%}.feedback-admin-card>footer .mini{flex:1}}
#toast{bottom:84px}
@media(max-width:900px){body:has(.app-feedback) #toast{bottom:214px}}
.feedback-profile-note{display:block;margin-top:9px;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));line-height:1.45}.feedback-meta .profile-filled[readonly]{background:#f5f9fc;color:var(--text);cursor:default}.dark .feedback-meta .profile-filled[readonly]{background:#0a1824}

/* NKTL ONE 2.6.0 · production public-access controls */
.public-access-card{margin-top:16px;padding:20px}.public-access-card>.muted{max-width:850px;line-height:1.6}.public-access-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:16px 0}.public-access-options label{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--soft);cursor:pointer}.public-access-options input{width:20px;height:20px;margin-top:2px;accent-color:#0788ce}.public-access-options b,.public-access-options small{display:block}.public-access-options small{margin-top:4px;color:var(--muted);line-height:1.45}.public-access-options label:has(input:disabled){opacity:.58;cursor:not-allowed}.public-access-card>.btn{min-width:260px}.public-lesson-main small{overflow-wrap:anywhere}
@media(max-width:680px){.public-access-options{grid-template-columns:1fr}.public-access-card>.btn{width:100%;min-width:0}}

/* NKTL ONE 2.6.0 · clean-install onboarding and subject directory */
.first-run-panel{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(420px,1.4fr);gap:22px;align-items:center;margin:0 0 18px;padding:22px;border:1px solid rgba(9,137,207,.2);border-radius:22px;background:linear-gradient(135deg,rgba(7,139,211,.12),rgba(211,157,24,.09));box-shadow:var(--shadow)}.first-run-panel>div:first-child>span{font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900;letter-spacing:.13em;color:#087cb9}.first-run-panel h2{margin:7px 0 6px;font-size:max(var(--font-min),calc(21px * var(--font-scale)));line-height:1.2}.first-run-panel p{margin:0;color:var(--muted);line-height:1.55}.first-run-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.first-run-steps button{display:flex;align-items:center;gap:9px;min-width:0;padding:13px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);text-align:left;cursor:pointer}.first-run-steps button>b{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:11px;background:#e8f6fd;color:#087bb6}.first-run-steps button.done>b{background:#e9f8f1;color:#087b58}.first-run-steps span,.first-run-steps small{display:block;min-width:0}.first-run-steps span{font-weight:900}.first-run-steps small{margin-top:3px;color:var(--muted);font-weight:700}.first-setup-card{display:flex;align-items:center;gap:15px;padding:20px}.first-setup-card>span{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:14px;background:#e8f6fd;color:#087bb6;font-size:20px;font-weight:950}.first-setup-card>div{flex:1}.first-setup-card h2,.first-setup-card p{margin:0}.first-setup-card p{margin-top:5px;color:var(--muted)}.subject-create-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;margin-bottom:14px}.subject-manager-list{display:grid;gap:8px;max-height:52vh;overflow:auto;scrollbar-gutter:stable}.subject-manager-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}.subject-manager-list .danger{color:#bd3150}.dark .first-run-steps button>b,.dark .first-setup-card>span{background:#0b2d40;color:#80d3f5}.dark .first-run-steps button.done>b{background:#0c3026;color:#78dfba}
@media(max-width:980px){.first-run-panel{grid-template-columns:1fr}.first-run-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.first-run-panel{padding:16px}.first-run-steps{grid-template-columns:1fr}.first-setup-card{align-items:flex-start;flex-wrap:wrap}.first-setup-card>div{min-width:calc(100% - 66px)}.first-setup-card>.btn{width:100%}.subject-create-row,.subject-manager-list>div{grid-template-columns:1fr}.subject-manager-list .mini{width:100%}}

/* NKTL ONE 2.6.0 · teacher timetable → lesson synchronization */
.lesson-schedule-sync{padding:20px 24px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(5,143,214,.075),rgba(36,181,133,.045))}.dark .lesson-schedule-sync{background:linear-gradient(135deg,rgba(12,134,197,.12),rgba(24,148,107,.07))}.lesson-schedule-sync>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.lesson-schedule-sync h3{margin:5px 0 3px;font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.lesson-schedule-sync header small{color:var(--muted);line-height:1.4}.lesson-schedule-sync header>b{padding:7px 10px;border:1px solid rgba(7,137,205,.18);border-radius:11px;background:var(--card);color:#087cb8;font-size:max(var(--font-min),calc(10px * var(--font-scale)));text-transform:capitalize;white-space:nowrap}.teacher-schedule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px}.teacher-schedule-item{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);text-align:left;cursor:pointer;box-shadow:0 7px 20px rgba(19,72,105,.045);transition:.16s}.teacher-schedule-item:hover:not(:disabled){transform:translateY(-1px);border-color:#7dc9ec;box-shadow:0 10px 24px rgba(8,123,185,.09)}.teacher-schedule-item.selected{border-color:#0796db;background:#f1faff;box-shadow:0 0 0 3px rgba(7,150,219,.09)}.dark .teacher-schedule-item.selected{background:#0a2c40}.teacher-schedule-item.now{border-color:#25bc89}.teacher-schedule-item.cancelled{opacity:.55}.teacher-schedule-item.conducted{border-color:#b9dfd1;background:#f3fbf7}.dark .teacher-schedule-item.conducted{background:#0c2b23;border-color:#1c5543}.teacher-schedule-pair{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;background:#e7f5fc;color:#087ebc;font-size:max(var(--font-min),calc(16px * var(--font-scale)));font-weight:950}.dark .teacher-schedule-pair{background:#12364d;color:#84d5f8}.teacher-schedule-main{min-width:0}.teacher-schedule-main small,.teacher-schedule-main b,.teacher-schedule-main em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-schedule-main small{color:#1683ba;font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:850}.teacher-schedule-main b{margin:4px 0;font-size:max(var(--font-min),calc(12px * var(--font-scale)))}.teacher-schedule-main em{color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-style:normal}.teacher-schedule-item>strong{padding:5px 7px;border-radius:9px;background:#eaf6fc;color:#087ebc;font-size:max(var(--font-min),calc(7px * var(--font-scale)));letter-spacing:.05em}.teacher-schedule-item.conducted>strong{background:#e3f6ee;color:#087654}.teacher-schedule-item.cancelled>strong{background:#ffedf1;color:#b92f4b}.teacher-schedule-caption{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.teacher-schedule-caption>span{font-weight:900;color:var(--text)}.schedule-sync-loading{min-height:72px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted)}.schedule-sync-loading i{width:18px;height:18px;border:2px solid #bfe0ef;border-top-color:#078dce;border-radius:50%;animation:spin .8s linear infinite}.today-panel button.today-lesson{width:100%;border-right:0;border-bottom:0;border-left:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.today-panel button.today-lesson:first-child{border-top:0}.today-panel button.today-lesson.next{border:1px solid #d8ecf7;background:#f4fbff}.dark .today-panel button.today-lesson.next{background:#0b2638;border-color:#17445f}.today-panel button.today-lesson.is-conducted{opacity:.62;cursor:default}.today-panel button.today-lesson:not(:disabled):hover{background:#f4fbff}.dark .today-panel button.today-lesson:not(:disabled):hover{background:#0b2638}
@media(max-width:680px){.lesson-schedule-sync{padding:16px 14px}.lesson-schedule-sync>header{display:block}.lesson-schedule-sync header>b{display:inline-flex;margin-top:9px}.teacher-schedule-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;padding-bottom:4px}.teacher-schedule-item{flex:0 0 min(86vw,330px);scroll-snap-align:start}.teacher-schedule-caption{display:block}.teacher-schedule-caption small{display:block;margin-top:4px}}

/* === NKTL ONE 2.6.0 · journal modes, CSV import, modal back, audit, EXP === */
.journal-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:9px;margin:0 0 12px}.journal-mode-switch>button{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;text-align:left;padding:11px 13px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--text);cursor:pointer;box-shadow:var(--shadow)}.journal-mode-switch>button>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf8fe;color:#087cb8;font-size:max(var(--font-min),calc(18px * var(--font-scale)))}.dark .journal-mode-switch>button>span{background:#0b2a3d}.journal-mode-switch b,.journal-mode-switch small{display:block}.journal-mode-switch small{margin-top:2px;color:var(--muted)}.journal-mode-switch>button.active{border-color:#71c7ed;box-shadow:0 0 0 3px rgba(8,167,255,.08),var(--shadow);background:linear-gradient(135deg,#f5fbff,#fff)}.dark .journal-mode-switch>button.active{background:linear-gradient(135deg,#0c2a3e,#0c1d2d)}
.journal-filterbar.v260{display:grid;grid-template-columns:140px minmax(160px,220px) minmax(190px,1fr) minmax(180px,1fr) auto auto;gap:9px;align-items:end}.journal-filterbar.v260>div>label{display:block;margin:0 0 6px;color:var(--muted);font-size:max(var(--font-min),calc(9px * var(--font-scale)));font-weight:900;letter-spacing:.06em}.classic-journal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 11px;padding:11px 12px;border:1px solid var(--line);border-radius:16px;background:#f8fbfd}.dark .classic-journal-head{background:#091a28}.classic-journal-head>div:first-child{display:flex;gap:10px;align-items:center}.classic-journal-head>div:first-child>span{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#e7f6fd;color:#087dbb;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.classic-journal-head b,.classic-journal-head small{display:block}.classic-journal-head small{margin-top:2px;color:var(--muted)}.classic-journal-legend{display:flex!important;gap:5px!important}.classic-journal-legend span{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-weight:900}.classic-journal-scroll{overflow:auto;max-height:calc(100vh - 330px);min-height:280px;border:1px solid var(--line);border-radius:17px;scrollbar-gutter:stable}.classic-journal-table{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content;background:var(--card)}.classic-journal-table th,.classic-journal-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;text-align:center;min-width:54px}.classic-journal-table th{position:sticky;top:0;z-index:4;background:#f4f9fc;color:var(--text);vertical-align:top}.dark .classic-journal-table th{background:#0b1d2c}.classic-journal-table th b,.classic-journal-table th small,.classic-journal-table th em{display:block}.classic-journal-table th small{max-width:95px;margin-top:3px;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classic-journal-table th em{font-style:normal;margin-top:3px;color:#1594ce}.classic-journal-table .classic-num{position:sticky;left:0;z-index:5;min-width:42px;width:42px;background:#f7fafc;color:var(--muted)}.dark .classic-journal-table .classic-num{background:#0a1a28}.classic-journal-table .classic-student{position:sticky;left:42px;z-index:5;min-width:235px;max-width:280px;text-align:left;background:var(--card);box-shadow:5px 0 12px rgba(19,55,83,.04)}.classic-journal-table thead .classic-student{z-index:7;background:#f4f9fc}.dark .classic-journal-table thead .classic-student{background:#0b1d2c}.classic-student-button{width:100%;border:0;background:transparent;color:var(--text);display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;text-align:left;cursor:pointer}.classic-student-button>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#e9f5fb;color:#097bb4;font-weight:900}.classic-average{position:sticky;right:0;z-index:4;min-width:68px;background:#fbfdfe!important}.dark .classic-average{background:#0a1b29!important}.classic-journal-table td .cell{margin:auto}.classic-journal-table tr:hover td{background:rgba(8,167,255,.025)}.classic-journal-table tr:hover .classic-student{background:#f7fcff}.dark .classic-journal-table tr:hover .classic-student{background:#0c2536}
.csv-import-modal{max-width:980px!important}.csv-import-kind{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:13px}.csv-import-kind button{display:grid;gap:5px;place-items:center;padding:11px 8px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--text);cursor:pointer}.csv-import-kind button span{font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.csv-import-kind button b{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.csv-import-kind button.active{border-color:#73c8ef;background:#eef9ff;color:#0879b3;box-shadow:0 0 0 3px rgba(8,167,255,.07)}.dark .csv-import-kind button.active{background:#0a2a3e}.csv-import-drop{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;padding:13px;border:1px dashed #a9cee2;border-radius:16px;background:#f8fbfd}.dark .csv-import-drop{background:#091824;border-color:#27506a}.csv-import-drop small{text-align:right;color:var(--muted)}.csv-preview-head{display:flex;justify-content:space-between;gap:10px;margin:14px 0 8px}.csv-preview-head span{color:var(--muted)}.csv-preview-table{font-size:max(var(--font-min),calc(10px * var(--font-scale)))}
.modal{position:relative}.modal-back{position:absolute;left:16px;top:15px;width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--text);display:grid;place-items:center;font-size:max(var(--font-min),calc(20px * var(--font-scale)));font-weight:800;cursor:pointer;z-index:4}.modal-back:hover{background:#eef8fd;border-color:#add9ec}.dark .modal-back:hover{background:#0d2b3e}.modal.has-back .modal-title{padding-left:48px}
.audit-hero.v260{background:radial-gradient(circle at 93% 0,rgba(8,167,255,.12),transparent 30%),var(--card)}.audit-stats.v260 .metric-label i{font-style:normal;font-size:max(var(--font-min),calc(19px * var(--font-scale)))}.audit-panel.v260{padding:17px}.audit-timeline{display:grid;gap:8px}.audit-event{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:11px;padding:12px 13px;border:1px solid var(--line);border-radius:17px;background:var(--card);overflow:hidden}.audit-event:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#178fc9}.audit-event.tone-green:before{background:#18a775}.audit-event.tone-red:before{background:#db4c67}.audit-event.tone-gold:before{background:#d69b21}.audit-event.tone-violet:before{background:#8066dc}.audit-event-icon{width:44px;height:44px;border-radius:14px;background:#eef8fd;display:grid;place-items:center;font-size:max(var(--font-min),calc(21px * var(--font-scale)))}.dark .audit-event-icon{background:#0a293b}.audit-event-main header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.audit-event-main header b,.audit-event-main header span{display:block}.audit-event-main header span{margin-top:2px;color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)))}.audit-event-main header time{color:var(--muted);font-size:max(var(--font-min),calc(10px * var(--font-scale)));white-space:nowrap}.audit-event-user{display:flex;align-items:center;gap:7px;margin-top:8px}.audit-event-user>span{width:28px;height:28px;border-radius:9px;background:#e8f4fb;color:#0879b2;display:grid;place-items:center;font-weight:900;font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.audit-event-user small{margin-left:auto;padding:4px 7px;border-radius:8px;background:#f1f5f8;color:var(--muted);font-family:ui-monospace,Consolas,monospace}.dark .audit-event-user small{background:#102333}.audit-event-main p{margin:8px 0 0;padding:8px 10px;border-radius:11px;background:#f8fafc;color:#62798c;font-family:ui-monospace,Consolas,monospace;font-size:max(var(--font-min),calc(9px * var(--font-scale)));word-break:break-word}.dark .audit-event-main p{background:#091824;color:#9ab0c0}
.xp-hero-v260 .student-level{min-width:285px}.xp-level-card{padding:15px;border-radius:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.xp-level-name{display:flex;align-items:center;gap:10px}.xp-level-name>span{font-size:max(var(--font-min),calc(29px * var(--font-scale)))}.xp-level-name small,.xp-level-name b{display:block}.xp-level-name small{color:#9ec8de;font-size:max(var(--font-min),calc(9px * var(--font-scale)));letter-spacing:.09em}.xp-level-card>strong{display:block;margin:12px 0 8px;font-size:max(var(--font-min),calc(28px * var(--font-scale)))}.xp-level-card>strong small{font-size:.45em;color:#9ec8de}.xp-progress-meta{display:flex;justify-content:space-between;gap:8px;color:#a9c9da;font-size:max(var(--font-min),calc(9px * var(--font-scale)))}.xp-system-card{margin-top:14px}.xp-total-badge{padding:8px 11px;border-radius:12px;background:#fff5d9;color:#9a6812;font-weight:950}.dark .xp-total-badge{background:#3b2b0e;color:#f2cf78}.xp-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.xp-breakdown>div{padding:13px;border:1px solid var(--line);border-radius:16px;background:#f9fcfe}.dark .xp-breakdown>div{background:#091a28}.xp-breakdown span,.xp-breakdown b,.xp-breakdown small{display:block}.xp-breakdown span{font-size:max(var(--font-min),calc(21px * var(--font-scale)))}.xp-breakdown b{margin-top:6px;font-size:max(var(--font-min),calc(20px * var(--font-scale)))}.xp-breakdown small{color:var(--muted)}.xp-rules{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0}.xp-rules span{padding:7px 9px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:var(--card)}.xp-rules b{color:var(--text)}.xp-level-road{display:grid;grid-template-columns:repeat(10,minmax(72px,1fr));gap:6px;overflow:auto;padding:8px 0 2px}.xp-level-road>div{position:relative;min-width:72px;padding:10px 5px;border:1px solid var(--line);border-radius:14px;text-align:center;opacity:.48;background:#f8fafc}.dark .xp-level-road>div{background:#091824}.xp-level-road>div.unlocked{opacity:1}.xp-level-road>div.current{border-color:#e1ac2f;box-shadow:0 0 0 3px rgba(224,172,47,.10);background:#fffaf0}.dark .xp-level-road>div.current{background:#2e250f}.xp-level-road span,.xp-level-road b,.xp-level-road small,.xp-level-road em{display:block}.xp-level-road span{font-size:max(var(--font-min),calc(21px * var(--font-scale)))}.xp-level-road b{margin-top:4px}.xp-level-road small{margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.xp-level-road em{font-style:normal;margin-top:4px;color:#9a7624;font-size:max(var(--font-min),calc(8px * var(--font-scale)))}.xp-recent-list{display:grid}.xp-recent-list>div{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}.xp-recent-list>div:first-child{border-top:0}.xp-recent-list>div>span{width:36px;height:36px;border-radius:11px;background:#eef7fc;display:grid;place-items:center}.dark .xp-recent-list>div>span{background:#0a283a}.xp-recent-list b,.xp-recent-list small{display:block}.xp-recent-list small{margin-top:2px;color:var(--muted)}.xp-recent-list strong{color:#128459}.achievement-grid.v260>div.locked{opacity:.48;filter:saturate(.25)}.achievement-grid.v260>div.earned{border-color:#cfe8da;background:linear-gradient(180deg,#fbfffd,var(--card))}.dark .achievement-grid.v260>div.earned{background:#0b211c}
@media(max-width:1180px){.journal-filterbar.v260{grid-template-columns:120px minmax(150px,1fr) minmax(170px,1fr);}.journal-filterbar.v260 .journal-student-search{grid-column:1/3}.journal-filterbar.v260 .journal-view{grid-column:3/4}.csv-import-kind{grid-template-columns:repeat(3,1fr)}.xp-level-road{grid-template-columns:repeat(10,90px)}}
@media(max-width:760px){.journal-mode-switch{grid-template-columns:1fr 1fr}.journal-mode-switch>button{grid-template-columns:1fr;text-align:center}.journal-mode-switch>button>span{margin:auto}.journal-filterbar.v260{grid-template-columns:1fr}.journal-filterbar.v260 .journal-student-search,.journal-filterbar.v260 .journal-view{grid-column:auto}.classic-journal-scroll{max-height:calc(100dvh - 320px)}.classic-journal-table .classic-student{min-width:190px;left:36px}.classic-journal-table .classic-num{min-width:36px;width:36px}.classic-journal-head{display:block}.classic-journal-legend{margin-top:9px}.csv-import-kind{grid-template-columns:1fr 1fr}.csv-import-drop{grid-template-columns:1fr}.csv-import-drop small{text-align:left}.modal.has-back .modal-title{padding-left:44px}.audit-event{grid-template-columns:42px 1fr}.audit-event-main header{display:block}.audit-event-main header time{display:block;margin-top:4px}.audit-event-user{flex-wrap:wrap}.audit-event-user small{margin-left:0}.xp-breakdown{grid-template-columns:1fr 1fr}.xp-hero-v260 .student-level{min-width:0}.xp-level-road{grid-template-columns:repeat(10,86px)}}


/* === 2.6.0 UX hotfix 2 · truly compact sidebar, mobile journal editing, EXP ranking === */
html.side-collapsed{--side-w:64px!important}
html.side-collapsed .side{padding-left:6px;padding-right:6px;border-radius:0 20px 20px 0}
html.side-collapsed .side-brand{padding:3px 0 10px;margin-bottom:34px;justify-content:center}
html.side-collapsed .side-brand img{width:38px;height:38px;border-radius:11px;padding:3px}
html.side-collapsed .side-quick{padding:4px;margin:0 0 7px;border-radius:12px}
html.side-collapsed .side-quick>span{width:36px;height:36px;border-radius:11px;font-size:max(var(--font-min),calc(18px * var(--font-scale)))}
html.side-collapsed .nav{gap:3px}
html.side-collapsed .nav button{padding:5px 3px;border-radius:11px}
html.side-collapsed .side .nav button>span{width:36px;height:36px;flex:0 0 36px;border-radius:11px;font-size:max(var(--font-min),calc(18px * var(--font-scale)))}
html.side-collapsed .userbox.v2{padding:5px 3px;border-radius:13px}
html.side-collapsed .user-avatar{width:38px;height:38px;border-radius:11px}
.side-collapse{right:8px!important;top:11px!important;width:34px!important;height:34px!important;border:1px solid rgba(153,201,229,.28)!important;border-radius:11px!important;background:rgba(255,255,255,.075)!important;color:#d8effb!important;box-shadow:none!important;backdrop-filter:blur(10px)}
.side-collapse:hover{background:rgba(255,255,255,.14)!important;border-color:rgba(172,220,244,.46)!important;transform:none!important}
.side-collapse .n-icon{width:16px;height:16px;stroke-width:2.1}
html.side-collapsed .side-collapse{right:18px!important;top:55px!important;width:28px!important;height:28px!important;border-radius:9px!important;transform:none!important;background:rgba(255,255,255,.09)!important}
html.side-collapsed .side-collapse:hover{transform:none!important;background:rgba(255,255,255,.16)!important}
html.side-collapsed .side-collapse .n-icon{width:14px;height:14px;transform:rotate(180deg)}
.dark .side-collapse{background:rgba(255,255,255,.07)!important;border-color:rgba(157,207,234,.22)!important;color:#d8effb!important}

.classic-mobile-journal{display:none}
@media(max-width:760px){
  .classic-journal-scroll{display:none}
  .classic-mobile-journal{display:grid;gap:10px}
  .mobile-journal-student{border:1px solid var(--line);border-radius:17px;background:var(--card);overflow:hidden}
  .mobile-journal-student>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 11px;border-bottom:1px solid var(--line);background:#f8fbfd}
  .dark .mobile-journal-student>header{background:#0a1c2b}
  .mobile-journal-student .classic-student-button{min-width:0;grid-template-columns:34px minmax(0,1fr);padding:0}
  .mobile-journal-student .classic-student-button b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mobile-journal-average{min-width:58px;text-align:right}
  .mobile-journal-average small,.mobile-journal-average b{display:block}
  .mobile-journal-average small{color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));font-weight:900}
  .mobile-journal-average b{margin-top:2px;font-size:max(var(--font-min),calc(13px * var(--font-scale)))}
  .mobile-journal-cells{display:flex;gap:8px;overflow-x:auto;padding:10px 11px 12px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
  .mobile-journal-cell{flex:0 0 92px;min-width:92px;padding:8px;border:1px solid var(--line);border-radius:14px;background:#fbfdfe;text-align:center;scroll-snap-align:start}
  .dark .mobile-journal-cell{background:#091a28}
  .mobile-journal-cell>small,.mobile-journal-cell>em{display:block}
  .mobile-journal-cell>small{font-weight:900;color:#0b84c5}
  .mobile-journal-cell>.cell{width:46px;height:46px;margin:7px auto;border:1px solid rgba(34,74,96,.35);font-size:max(var(--font-min),calc(15px * var(--font-scale)));touch-action:manipulation}
  .mobile-journal-cell>.cell.readonly{opacity:.7}
  .mobile-journal-cell>em{font-style:normal;color:var(--muted);font-size:max(var(--font-min),calc(8px * var(--font-scale)));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .grade-picker.premium{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grade-picker.premium button{min-height:64px;touch-action:manipulation}
  .journal-modal-footer{gap:10px}
}

.leader-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.leader-mode-switch>button{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:17px;background:var(--card);color:var(--text);text-align:left;cursor:pointer;box-shadow:0 7px 20px rgba(20,61,90,.035)}
.leader-mode-switch>button>span{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eef7fc;font-size:max(var(--font-min),calc(19px * var(--font-scale)))}
.leader-mode-switch>button b,.leader-mode-switch>button small{display:block}.leader-mode-switch>button small{margin-top:2px;color:var(--muted)}
.leader-mode-switch>button.active{border-color:#6fc9ef;background:linear-gradient(180deg,#f9fdff,#eef9ff);box-shadow:0 0 0 3px rgba(8,167,255,.07)}
.dark .leader-mode-switch>button.active{background:linear-gradient(180deg,#0c2a3e,#0b2031)}
.dark .leader-mode-switch>button>span{background:#0c2b3f}
.leaders-toolbar-common{grid-template-columns:minmax(130px,170px) minmax(180px,220px) minmax(220px,1fr) minmax(420px,1.7fr)}
.leader-mode-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.leader-mode-controls:has(#leaderXPSort){grid-template-columns:repeat(2,minmax(0,1fr))}
.xp-leader-info{display:grid;gap:10px;margin-bottom:14px}
.xp-ranking-note{margin-bottom:0}.xp-ranking-note>span{font-size:max(var(--font-min),calc(18px * var(--font-scale)))}
.xp-costs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.xp-costs>span{padding:10px;border:1px solid var(--line);border-radius:14px;background:#fafcfe;text-align:center}.dark .xp-costs>span{background:#091a28}
.xp-costs b,.xp-costs small{display:block}.xp-costs b{font-size:max(var(--font-min),calc(17px * var(--font-scale)))}.xp-costs small{margin-top:3px;color:var(--muted);font-weight:800}
.xp-level-reference{padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.xp-level-reference-title{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:9px}.xp-level-reference-title b,.xp-level-reference-title small{display:block}.xp-level-reference-title small{color:var(--muted)}
.xp-level-reference-road{display:flex;gap:7px;overflow-x:auto;padding-bottom:3px}
.xp-level-reference-road>span{flex:0 0 105px;padding:9px 7px;border:1px solid var(--line);border-radius:13px;text-align:center;background:#f9fbfd}.dark .xp-level-reference-road>span{background:#091824}
.xp-level-reference-road i,.xp-level-reference-road b,.xp-level-reference-road small,.xp-level-reference-road em{display:block}.xp-level-reference-road i{font-style:normal;font-size:max(var(--font-min),calc(18px * var(--font-scale)))}.xp-level-reference-road small{margin-top:2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.xp-level-reference-road em{margin-top:4px;font-style:normal;color:#9a7624;font-weight:850}
.xp-leader-card>strong small{display:block;color:var(--muted);font-size:.45em;text-align:right}.xp-score{font-size:max(var(--font-min),calc(14px * var(--font-scale)));color:#1383c1}.xp-level-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border-radius:10px;background:#fff6d9;color:#8c6919;font-weight:900}.dark .xp-level-badge{background:#342a0f;color:#f0cf75}
@media(max-width:1050px){.leaders-toolbar-common{grid-template-columns:1fr 1fr}.leader-mode-controls{grid-column:1/-1}}
@media(max-width:680px){.leader-mode-switch{grid-template-columns:1fr 1fr}.leader-mode-switch>button{grid-template-columns:1fr;text-align:center}.leader-mode-switch>button>span{margin:auto}.leaders-toolbar-common{grid-template-columns:1fr}.leader-mode-controls,.leader-mode-controls:has(#leaderXPSort){grid-column:auto;grid-template-columns:1fr}.xp-costs{grid-template-columns:1fr 1fr}.xp-level-reference-title{display:block}.xp-level-reference-title small{margin-top:3px}.xp-leaders-table{min-width:760px}}

/* v2.6.0 hotfix 4: keep every academic group visible as its own card. */
.group-strip .group-chip{min-width:0}
.group-chip.course-selected{border-color:#9ddfff}
.group-chip.active{border-color:#18a7ee;box-shadow:0 0 0 2px #18a7ee2b,var(--shadow);background:linear-gradient(180deg,#f8fdff,var(--card))}
.dark .group-chip.active{background:linear-gradient(180deg,#0a2b40,var(--card));border-color:#24b6ff}
@media(max-width:680px){.group-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.group-chip{min-height:104px}}
@media(max-width:430px){.group-strip{grid-template-columns:1fr 1fr;gap:9px}.group-chip{padding:13px 14px}}
