:root{--bg: #081423;--panel: #0f2033;--accent: #4cc9f0;--muted: #9ab3c9;--text: #ebf3fb;--assignment-col-width: 170px;font-family:Space Grotesk,Avenir Next,Segoe UI,sans-serif;background:radial-gradient(1200px circle at 0% 0%,#0f3154 0%,transparent 45%),radial-gradient(900px circle at 100% 0%,#145f78 0%,transparent 40%),linear-gradient(180deg,#07111e,#081423 60%,#091a2b);color:var(--text);min-height:100vh}*{box-sizing:border-box}body{margin:0}.page{min-height:100vh;display:flex;flex-direction:column;padding:16px 22px 32px}.top{display:flex;align-items:center;justify-content:space-between;padding:10px 0}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.3px}.dot{width:12px;height:12px;border-radius:50%;background:var(--accent);display:inline-block}.badge{padding:6px 10px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:12px;letter-spacing:.3px}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.session-pill{padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#ffffff0a;color:var(--text);font-size:12px;letter-spacing:.2px}.hero{background:#0a1828cc;border:1px solid rgba(154,179,201,.25);border-radius:18px;padding:32px;box-shadow:0 25px 60px #00000059;display:flex;flex-direction:column;gap:18px}.hero-app{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;align-items:start}.hero-home{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;align-items:start}.hero-copy h1{margin:0 0 12px;font-size:clamp(28px,4vw,42px);line-height:1.1}.hero-copy p{margin:0 0 16px;color:var(--muted)}.hero-panel{background:#ffffff05;border:1px solid rgba(148,163,184,.15)}.home-panel{background:linear-gradient(180deg,#0c2034eb,#081423eb);border:1px solid rgba(154,179,201,.2)}.home-security-note{margin-top:10px}.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;margin-top:8px}.resource-card{padding:12px 14px;border-radius:12px;border:1px solid rgba(154,179,201,.2);background:#ffffff08}.resource-card h3{margin:2px 0 8px;font-size:17px}.resource-card p{margin:0}.feature-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:6px}.feature{padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.15);background:#ffffff05}.cta{display:flex;flex-wrap:wrap;gap:12px;margin:4px 0 8px}.btn{border:none;border-radius:10px;padding:12px 18px;font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,opacity .15s;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn-primary{background:var(--accent);color:#0b1224;box-shadow:0 10px 30px #38bdf84d}.btn-secondary{background:transparent;color:var(--text);border:1px solid rgba(148,163,184,.4)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0);opacity:.9}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:10px}.card{padding:14px 16px;border-radius:12px;background:#ffffff08;border:1px solid rgba(148,163,184,.15)}.card h3{margin:0 0 6px;font-size:16px}.card p{margin:0;color:var(--muted);font-size:14px}.app-shell{display:flex;margin-top:18px;gap:16px}.sidebar{width:240px;background:#111827e6;border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.nav-section{display:flex;flex-direction:column;gap:6px}.nav-label{margin:0;color:var(--muted);font-size:12px;letter-spacing:.4px}.nav-btn{border:1px solid rgba(148,163,184,.18);background:#ffffff05;color:var(--text);border-radius:8px;padding:10px 12px;text-align:left;cursor:pointer}.nav-btn:hover{border-color:var(--accent)}.nav-btn.active{border-color:var(--accent);box-shadow:0 0 0 1px #38bdf84d;background:#38bdf80f}.content{flex:1;background:#111827cc;border:1px solid rgba(148,163,184,.15);border-radius:12px;padding:18px}.view{display:none}.view.active{display:block}.card-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}.content-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.eyebrow{margin:0 0 6px;text-transform:uppercase;letter-spacing:.6px;font-size:11px;color:var(--muted)}.content-actions{display:flex;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#ffffff0d;color:var(--text);font-size:12px;letter-spacing:.2px}.pill-ok{border-color:#22c55e;color:#22c55e}.pill-warn{border-color:#f97316;color:#f97316}.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px}.meta-card{padding:14px}.meta-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.meta-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin-top:12px}.meta-row{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;padding:8px 10px;border-radius:8px;background:#ffffff05;border:1px solid rgba(148,163,184,.12)}.meta-row strong{color:var(--text)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:14px}.summary-card{padding:14px}.summary-card h3{margin:4px 0;font-size:26px}.list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:10px;border:1px solid rgba(148,163,184,.15);background:#ffffff05}.list-row strong{font-size:15px}.list-row .tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.progress-student-item{border:1px solid rgba(148,163,184,.15);border-radius:8px;background:#ffffff05;overflow:hidden}.progress-student-row{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px}.progress-student-main{min-width:0}.progress-student-main strong{display:block;font-size:14px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-student-main p{margin:2px 0 0}.progress-track-panel{border-top:1px solid rgba(148,163,184,.12);padding:8px 10px 10px;background:#0f172a73}.progress-track-panel .tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.track-student-btn{min-width:74px;flex-shrink:0}.pill-ghost{border-color:#94a3b859;color:var(--text);background:#ffffff0a}.tags label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.tags input[type=checkbox]{accent-color:var(--accent)}.checkbox-grid{display:flex;flex-wrap:wrap;gap:8px 12px}.input{width:100%;padding:12px;border-radius:10px;border:1px solid rgba(148,163,184,.2);background:#ffffff05;color:var(--text);outline:none}.input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #38bdf840}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.input-row{display:flex;align-items:center;gap:8px}.filter-field{display:flex;flex-direction:column;gap:4px;min-width:160px;flex:1 1 180px}.progress{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden;margin-top:8px}.progress .bar{height:100%;background:linear-gradient(90deg,#6366f1,#22d3ee)}.checkbox-field{display:inline-flex;align-items:center;gap:8px}.classroom-board{margin-top:12px}.board-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.board-card{padding:14px 16px;border-radius:12px;border:1px solid rgba(148,163,184,.18);background:#ffffff08}.board-card h3{margin:6px 0}.board-card p{margin:0}.board-title{margin:0 0 6px;text-transform:uppercase;letter-spacing:.5px;font-size:12px;color:var(--muted)}.board-progress{background:#e2e8f038;border-radius:999px;height:10px;overflow:hidden;margin:10px 0}.board-progress .bar{height:100%;background:linear-gradient(90deg,#38bdf8,#22c55e)}.board-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:8px}.board-highlight{border-color:#38bdf866;box-shadow:0 10px 35px #00000040;background:#38bdf80d}.board-message h3{font-size:24px}.banner-config{margin-top:14px;display:flex;flex-direction:column;gap:8px}.banner-form{display:grid;grid-template-columns:1fr 120px auto;gap:8px;align-items:center}.banner-list{display:flex;flex-direction:column;gap:8px}.banner-slide{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#ffffff08}.banner-slide strong{font-size:14px}.banner-slide .muted{font-size:12px}.banner-slide button{padding:6px 10px}.pdf-config{margin-top:10px;display:flex;flex-direction:column;gap:6px}.pdf-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gradebook-table-wrapper{overflow:auto;border:1px solid rgba(148,163,184,.2);border-radius:10px;background:#ffffff05}.gradebook-table{border-collapse:collapse;min-width:720px;width:max-content;table-layout:fixed}.gradebook-table col.col-student{width:var(--student-col-width, 200px)}.gradebook-table col.col-assignment{width:var(--assignment-col-width, 170px)}.gradebook-table th,.gradebook-table td{padding:10px 12px;border:1px solid rgba(148,163,184,.15);text-align:left}.gradebook-table thead th{position:sticky;top:0;background:#111827e6;z-index:2}.gradebook-table th:first-child,.gradebook-table td:first-child{position:sticky;left:0;z-index:3;background:#111827f2;width:var(--student-col-width, 220px);min-width:0;max-width:var(--student-col-width, 220px)}.gradebook-table th.assignment-col,.gradebook-table td.assignment-col{width:var(--assignment-col-width, 160px);min-width:var(--assignment-col-width, 160px);max-width:var(--assignment-col-width, 160px)}.gradebook-table th.assignment-col .assignment-head{display:flex;flex-direction:column;gap:4px}.assignment-title{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-title .gradebook-assignment-btn{display:block;width:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.assignment-meta-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.assignment-tags{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.assignment-tags .type-pill,.assignment-tags .grade-weight{font-size:11px;padding:3px 6px}.assignment-date{white-space:nowrap;font-size:11px}.assignment-due-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.assignment-weight{font-size:11px}.gradebook-table tbody tr:nth-child(2n) td{background:#ffffff04}.gradebook-student{font-weight:600}.grade-status{min-width:120px;border-radius:6px;text-align:center}.type-pill{padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid rgba(148,163,184,.4)}.type-formative{background:#3b82f61f;border-color:#3b82f680;color:#bfdbfe}.type-summative{background:#ec48991f;border-color:#ec489980;color:#fbcfe8}.grade-weight{font-size:12px;color:var(--muted)}.status-done{background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#bbf7d0}.status-progress{background:#38bdf81f;border:1px solid rgba(56,189,248,.4);color:#bae6fd}.status-review{background:#f973161f;border:1px solid rgba(249,115,22,.4);color:#fed7aa}.status-notstarted{background:#94a3b81f;border:1px solid rgba(148,163,184,.3);color:#cbd5e1}.status-empty{background:transparent;color:var(--muted)}.grade-input{width:90px;padding:6px 8px;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#ffffff08;color:var(--text)}.grade-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px #38bdf84d}.grade-tooltip{position:fixed;background:#111827f2;color:var(--text);padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.25);box-shadow:0 10px 30px #00000059;max-width:360px;z-index:20;font-size:13px}.grade-tooltip p{margin:4px 0}.grade-tooltip .muted{color:var(--muted)}.gradebook-assignment-btn{background:none;border:none;color:inherit;cursor:pointer;padding:0;font:inherit;text-align:left}.gradebook-assignment-btn:hover{color:var(--accent)}.attendance-student-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:0;font:inherit}.attendance-student-btn:hover{color:var(--accent)}.attendance-calendar-panel{max-width:640px;width:100%}.attendance-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.attendance-calendar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.attendance-calendar-month{font-weight:700;letter-spacing:.3px}.attendance-calendar-legend{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px}.attendance-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(70px,1fr));gap:6px}.attendance-calendar-weekday{text-align:center;font-size:12px;color:var(--muted);letter-spacing:.3px}.attendance-calendar-cell{min-height:82px;padding:7px;border-radius:10px;border:1px solid rgba(148,163,184,.2);background:#ffffff05;display:flex;flex-direction:column;gap:6px}.attendance-calendar-cell.empty{background:transparent;border:1px dashed rgba(148,163,184,.2)}.attendance-calendar-day{font-weight:700}.attendance-calendar-body{display:flex;flex-direction:column;gap:6px}.attendance-chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:12px;border:1px solid rgba(148,163,184,.3);width:fit-content}.attendance-status-present{background:#22c55e1f;border-color:#22c55e80;color:#bbf7d0}.attendance-status-absent{background:#ef44441f;border-color:#ef444480;color:#fecdd3}.attendance-status-tardy{background:#f973161f;border-color:#f9731680;color:#fed7aa}.attendance-status-excused{background:#38bdf81f;border-color:#38bdf880;color:#bae6fd}.attendance-status-unknown{background:#94a3b81f;border-color:#94a3b866;color:#cbd5e1}.attendance-list-card{background:#11182799;border:1px solid rgba(148,163,184,.15);border-radius:14px;overflow:hidden}.attendance-row{display:grid;grid-template-columns:200px 1fr;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid rgba(148,163,184,.1)}.attendance-row:last-child{border-bottom:none}.attendance-student-info{overflow:hidden}.attendance-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.attendance-status-btns{display:flex;gap:5px;flex-wrap:wrap}.status-btn{padding:5px 13px;border-radius:6px;border:1px solid rgba(148,163,184,.3);background:transparent;color:var(--muted);font-size:13px;cursor:pointer;white-space:nowrap;transition:border-color .12s,color .12s,background .12s}.status-btn-present.active{background:#22c55e26;border-color:#22c55e;color:#bbf7d0}.status-btn-absent.active{background:#ef444426;border-color:#ef4444;color:#fecdd3}.status-btn-tardy.active{background:#f9731626;border-color:#f97316;color:#fed7aa}.status-btn-excused.active{background:#38bdf826;border-color:#38bdf8;color:#bae6fd}.status-btn-present:hover:not(.active){border-color:#22c55e;color:#bbf7d0}.status-btn-absent:hover:not(.active){border-color:#ef4444;color:#fecdd3}.status-btn-tardy:hover:not(.active){border-color:#f97316;color:#fed7aa}.status-btn-excused:hover:not(.active){border-color:#38bdf8;color:#bae6fd}.attendance-note-input{flex:1;min-width:120px;max-width:260px;font-size:13px;padding:5px 10px}.attendance-unrecorded{font-style:italic}.attendance-student-name-row{display:flex;align-items:center;gap:6px}.attendance-history-row-btn{background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;padding:1px 5px;border-radius:4px;border:1px solid rgba(148,163,184,.25);white-space:nowrap}.attendance-history-row-btn:hover{color:var(--accent);border-color:var(--accent)}.attendance-history-panel{max-width:680px;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.attendance-history-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-shrink:0}.attendance-history-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;flex-shrink:0}.attendance-history-body{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:16px}.history-date-group{display:flex;flex-direction:column;gap:1px}.history-date-label{font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.4px;text-transform:uppercase;padding:4px 0 6px;border-bottom:1px solid rgba(148,163,184,.15);margin-bottom:2px}.history-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 4px;border-bottom:1px solid rgba(148,163,184,.08)}.history-row:last-child{border-bottom:none}.history-row-left{flex:1}.history-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.history-note{margin:2px 0 0;font-style:italic}.tooltip-date-btn{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.tooltip-date-btn:hover{color:#7dd3fc}.projector-shell{position:fixed;inset:0;display:none;flex-direction:column;background:linear-gradient(180deg,#0b1220,#0f172a);color:var(--text)}.projector-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#0b5ea9;color:#e8f1ff;box-shadow:0 6px 18px #0000004d}.projector-header-left{display:flex;align-items:center;gap:12px}.projector-header-right{display:flex;align-items:center;gap:16px}.projector-class-select-wrap{display:flex;flex-direction:column;gap:4px}.projector-class-select{background:#ffffff1a;color:#e8f1ff;border:1px solid rgba(232,241,255,.6);border-radius:8px;padding:6px 10px;min-width:140px}.projector-class-select:hover{border-color:#fff}.projector-class-select option{color:#0f172a;background:#e8f1ff}.projector-body{flex:1;display:grid;grid-template-columns:280px 1fr;gap:0;min-height:0}.projector-sidebar{background:#0d182c;border-right:1px solid rgba(148,163,184,.2);padding:16px;display:flex;flex-direction:column;gap:12px}.projector-main{background:#0a1222;padding:12px;overflow:hidden;display:flex;min-height:0}.projector-main.projector-main-full{padding:0}.projector-main-inner{width:100%;padding:12px;height:100%;overflow:auto}.projector-main #projectorBoard{flex:1;display:flex;min-height:0;height:100%}.projector-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.projector-panel{border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:14px;background:#ffffff08}.projector-panel-title{margin:0 0 8px;text-transform:uppercase;letter-spacing:.5px;font-size:12px;color:var(--muted)}.projector-add-box{background:#38bdf814;border-color:#38bdf866}.projector-pdf-wrap{position:relative;width:100%;height:100%;background:#0a1222;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid rgba(148,163,184,.2);overflow:hidden;min-height:0}.projector-pdf-canvas{max-width:100%;max-height:100%;background:#0a1222}.projector-pdf-controls{position:absolute;top:12px;right:12px;display:flex;gap:8px;align-items:center;background:#00000073;padding:8px 10px;border-radius:10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.projector-pdf-btn{background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:6px 10px;cursor:pointer}.projector-pdf-btn:disabled{opacity:.5;cursor:not-allowed}.projector-pdf-page{color:#e2e8f0;font-size:12px}.projector-pdf-status{position:absolute;bottom:12px;left:12px;color:#94a3b8;font-size:12px;background:#00000073;padding:6px 10px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px;z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.login-panel{background:#111827f2;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:18px;box-shadow:0 18px 45px #00000059;max-width:420px;width:100%}.detail-panel{max-width:620px;width:100%;max-height:80vh;overflow-y:auto}.login-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.login-form{display:flex;flex-direction:column;gap:12px}.login-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.login-form input[type=email],.login-form input[type=password]{padding:12px;border-radius:10px;border:1px solid rgba(148,163,184,.25);background:#ffffff05;color:var(--text);outline:none}.login-form input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #38bdf840}.row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}.remember{display:inline-flex;align-items:center;gap:6px}.link{color:var(--accent);text-decoration:none}.link:hover{text-decoration:underline}.muted{color:var(--muted)}.small{font-size:13px}.admin-grid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(260px,.95fr);gap:12px;align-items:start;margin-top:12px}.admin-card{display:flex;flex-direction:column;gap:10px}.admin-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.admin-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:6px}.admin-form-actions{display:flex;justify-content:flex-end}.admin-row-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;min-width:220px}.btn-compact{padding:8px 12px;font-size:13px}.admin-device-meta{font-size:13px;color:var(--muted);margin:4px 0 0}.admin-device-heading{display:inline-flex;align-items:center;gap:8px}.admin-upgrade{border:1px dashed rgba(148,163,184,.35);background:#ffffff05;border-radius:10px;padding:12px;color:var(--muted)}.admin-student-controls{display:flex;flex-direction:column;gap:10px}.admin-student-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pagination{display:inline-flex;align-items:center;gap:8px}.admin-student-table{display:flex;flex-direction:column;gap:1px;padding:0;background:#94a3b833;border:1px solid rgba(148,163,184,.2);border-radius:8px;overflow:hidden}.admin-student-row{display:grid;grid-template-columns:var(--col-name, 2fr) var(--col-id, 1fr) var(--col-updated, 1fr) var(--col-actions, .9fr);align-items:center;gap:0;padding:0;margin:0;border:1px solid rgba(148,163,184,.2);border-radius:4px;background:#0f172af5;min-height:20px}.admin-student-row:nth-child(odd):not(.admin-student-header){background:#0f172afa}.admin-student-row:nth-child(2n):not(.admin-student-header){background:#0f172af5}.admin-student-row:hover{background:#38bdf81f}.admin-student-header{background:#ffffff05;font-weight:600;position:sticky;top:0;z-index:2;padding-top:0;padding-bottom:0;min-height:18px}.admin-student-cell{min-width:0;font-size:12px;line-height:1;position:relative;padding:1px 4px}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-student-actions{justify-content:flex-end;gap:1px}.resize-handle{position:absolute;right:-6px;top:0;bottom:0;width:12px;cursor:col-resize;display:inline-block}.resize-handle:after{content:"";position:absolute;left:50%;top:25%;bottom:25%;width:2px;background:#94a3b899;border-radius:2px}.admin-console{display:none;flex-direction:column;min-height:100vh;background:var(--bg)}.admin-console-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(148,163,184,.15);background:#111827eb;position:sticky;top:0;z-index:10}.admin-console-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-console-body{flex:1;display:grid;grid-template-columns:240px 1fr;min-height:0}.admin-console-sidebar{padding:16px;border-right:1px solid rgba(148,163,184,.12);background:#0f172af2;display:flex;flex-direction:column;gap:8px}.admin-console-nav-btn{border:1px solid rgba(148,163,184,.18);background:#ffffff05;color:var(--text);border-radius:8px;padding:10px 12px;text-align:left;cursor:pointer}.admin-console-nav-btn.active{border-color:var(--accent);box-shadow:0 0 0 1px #38bdf84d;background:#38bdf80f}.admin-console-content{padding:18px;display:flex;flex-direction:column;gap:16px;overflow:auto}.admin-section{display:none;flex-direction:column;gap:12px}.admin-section.active{display:flex}@media(max-width:960px){.app-shell{flex-direction:column}.hero-home,.resource-grid{grid-template-columns:1fr}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;gap:8px}.nav-btn{width:calc(50% - 6px)}.admin-grid{grid-template-columns:1fr}.admin-row-actions{justify-content:flex-start}.admin-console-body{grid-template-columns:1fr}.admin-console-sidebar{flex-direction:row;flex-wrap:wrap}}.admin-student-table.list{display:flex;flex-direction:column;gap:1px;margin-top:0;background:#94a3b833}.game-shell{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:16px;position:relative;padding:12px;border-radius:16px}.game-shell:before{content:"";position:absolute;inset:0;border-radius:16px;background:radial-gradient(900px circle at 0% 0%,rgba(56,189,248,.14),transparent 55%),radial-gradient(720px circle at 100% 0%,rgba(34,197,94,.12),transparent 55%),linear-gradient(135deg,#0f172a99,#020617e6);pointer-events:none}.game-left,.game-right{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px}.game-panel{border:1px solid rgba(148,163,184,.18);background:#0f172ab3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.game-scoreboard{border-color:#38bdf859;background:linear-gradient(135deg,#38bdf82e,#0f172ad9)}.game-scoreboard-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.game-timer{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:140px}.game-timer-label{font-size:28px;font-weight:700;letter-spacing:.5px}.game-timer-bar{width:160px;height:8px;background:#02061799;border-radius:999px;overflow:hidden}.game-timer-bar .bar{height:100%;background:linear-gradient(90deg,#38bdf8,#22c55e);transition:width .2s ease}.game-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:12px}.game-score-tile{border-radius:12px;padding:10px 12px;border:1px solid rgba(148,163,184,.15);background:#0f172a99}.game-score-tile strong{font-size:24px;display:block;margin-top:4px}.game-team-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.game-team-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.25);background:#ffffff08;font-size:12px}.game-team-dot{width:8px;height:8px;border-radius:50%;background:var(--team-color);display:inline-block}.game-panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.game-chip-section{margin-top:8px}.game-chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:8px}.game-chip{border-radius:10px;padding:10px 12px;border:1px solid rgba(148,163,184,.25);background:#ffffff08;color:var(--text);font-weight:600;text-align:left;cursor:pointer;transition:transform .12s ease,border-color .12s ease}.game-chip:hover{transform:translateY(-1px);border-color:var(--accent)}.game-chip.positive{border-color:#22c55e66;background:#22c55e1f;color:#bbf7d0}.game-chip.negative{border-color:#ef444466;background:#ef44441f;color:#fecaca}.game-quick-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.game-event-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow:auto}.game-event-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid rgba(148,163,184,.15);background:#0f172a99;font-size:13px}.game-event-row .delta{font-weight:700}.game-event-row .delta.positive{color:#86efac}.game-event-row .delta.negative{color:#fecaca}.game-student-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.game-search{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.game-search .input{min-width:160px}.game-avatar-panel{display:flex;flex-direction:column;gap:8px}.game-background-panel{display:flex;flex-direction:column;gap:10px}.game-background-preview{height:120px;border-radius:12px;border:1px dashed rgba(148,163,184,.35);background:#0f172a80;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px}.game-avatar-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-avatar-controls input[type=file]{width:100%;color:var(--muted)}.game-student-grid{display:flex;flex-direction:column;gap:16px;margin-top:10px}.game-period{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:14px;border:1px solid rgba(148,163,184,.15);background:#0f172a73}.game-period-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.game-period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.game-student-card{position:relative;padding:12px;border-radius:14px;border:1px solid rgba(148,163,184,.2);background:#0f172a99;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;animation:gameCardIn .42s ease both;animation-delay:calc(var(--index, 0) * 40ms)}.game-student-card:hover{transform:translateY(-2px)}.game-student-card.selected{border-color:var(--accent);box-shadow:0 10px 30px #38bdf833}.game-student-card.delta-positive{box-shadow:0 0 0 1px #22c55e80,0 12px 28px #22c55e26}.game-student-card.delta-negative{box-shadow:0 0 0 1px #ef444480,0 12px 28px #ef444426}.game-student-name{font-weight:600}.game-student-full{color:var(--muted);font-size:12px}.game-avatar{width:56px;height:56px;border-radius:16px;border:1px solid rgba(148,163,184,.3);background:#0f172ab3;display:flex;align-items:center;justify-content:center;overflow:hidden;font-weight:700}.game-avatar img{width:100%;height:100%;object-fit:cover}.game-projector-shell{position:fixed;inset:0;display:none;z-index:2000;background:#05070f}.game-projector-canvas{width:100%;height:100%;display:block}.game-projector-board{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}.game-projector-hud{position:absolute;top:20px;left:20px;z-index:2;display:flex;gap:12px;align-items:center;padding:8px 12px;border-radius:999px;background:#05070f73;border:1px solid rgba(148,163,184,.25);color:var(--text);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.game-projector-token{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:grab;z-index:2;-webkit-user-select:none;user-select:none;touch-action:none;transition:transform .12s ease}.game-projector-token:active,.game-projector-token.dragging{cursor:grabbing}.game-projector-token.dragging{transform:translate(-50%,-50%) scale(1.05)}.game-projector-token.dragging .game-projector-avatar{box-shadow:0 18px 40px #00000073}.game-projector-avatar{width:72px;height:72px;border-radius:20px;border:2px solid rgba(248,250,252,.6);background:#0f172abf;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:26px;font-weight:700;color:#f8fafc;box-shadow:0 12px 30px #00000059}.game-projector-avatar img{width:100%;height:100%;object-fit:cover}.game-projector-name{padding:4px 10px;border-radius:999px;background:#05070f80;border:1px solid rgba(148,163,184,.3);color:#f8fafc;font-size:13px;font-weight:600;letter-spacing:.2px;text-align:center}.game-student-stats{display:flex;flex-direction:column;gap:6px}.game-life-row,.game-xp-row{display:flex;align-items:center;justify-content:space-between}.game-life-bar{height:6px;border-radius:999px;background:#94a3b833;overflow:hidden}.game-life-bar .bar{height:100%;background:linear-gradient(90deg,#22c55e,#38bdf8);transition:width .2s ease}.game-xp-row strong{font-size:16px}.game-student-actions{display:flex;gap:6px}.game-student-actions button{flex:1;padding:6px 10px;border-radius:8px;border:1px solid rgba(148,163,184,.3);background:#ffffff05;color:var(--text);cursor:pointer;font-weight:600}.game-student-actions button.positive{border-color:#22c55e66;color:#bbf7d0}.game-student-actions button.negative{border-color:#ef444466;color:#fecaca}.game-student-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}@keyframes gameCardIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.game-shell{grid-template-columns:1fr}.game-timer{align-items:flex-start}}
