@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#f5f7fb;--surface:#fff;--surface2:#f8faff;--text:#14213d;--muted:#6f7c96;--line:#e7ebf3;--primary:#2158f5;--primary2:#6b4df6;--success:#159b66;--warning:#d68b10;--danger:#d84c63;--shadow:0 16px 44px rgba(24,45,93,.08);--radius:20px;--sidebar:270px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.icon{width:20px;height:20px;flex:none}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#0e1b36;color:#cbd5ea;padding:24px 18px;display:flex;flex-direction:column;z-index:40}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;color:white;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#2d67ff,#7c57f6);box-shadow:0 10px 30px rgba(58,98,255,.25)}.brand strong{display:block;color:#fff;font-size:15px}.brand small{display:block;color:#7f8dab;font-size:10px;margin-top:3px;text-transform:uppercase;letter-spacing:.08em}.nav-list{display:flex;flex-direction:column;gap:4px;overflow:auto;padding-right:3px}.nav-list::-webkit-scrollbar{width:4px}.nav-list::-webkit-scrollbar-thumb{background:#263757;border-radius:10px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;color:#9eacc6;transition:.2s}.nav-link:hover{background:#15284a;color:white}.nav-link.active{background:linear-gradient(135deg,#245af1,#5d49e8);color:#fff;box-shadow:0 12px 24px rgba(36,90,241,.25)}.nav-link span{font-weight:600;font-size:13px}.sidebar-user{margin-top:auto;border-top:1px solid #21314d;padding:18px 6px 0;display:flex;align-items:center;gap:10px}.sidebar-user-copy{min-width:0;flex:1}.sidebar-user-copy strong,.sidebar-user-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-copy strong{font-size:12px;color:#fff}.sidebar-user-copy small{font-size:10px;color:#7f8dab;margin-top:3px}.avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#eaf0ff;color:#2758da;font-weight:800}.avatar.large{width:48px;height:48px;border-radius:15px}.icon-button{border:0;background:transparent;color:inherit;width:36px;height:36px;display:grid;place-items:center;border-radius:10px}.icon-button:hover{background:rgba(255,255,255,.08)}.main-area{margin-left:var(--sidebar);min-height:100vh}.topbar{height:92px;padding:0 32px;display:flex;align-items:center;gap:16px;background:rgba(245,247,251,.86);backdrop-filter:blur(14px);position:sticky;top:0;z-index:25;border-bottom:1px solid rgba(229,234,244,.8)}.topbar h1{font-size:22px;margin:2px 0 0;letter-spacing:-.04em}.eyebrow{font-size:10px;letter-spacing:.12em;font-weight:800;color:#8b97ad;text-transform:uppercase;margin:0}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.date-pill{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:#6c7890;font-size:11px}.top-avatar{display:none}.mobile-menu{display:none}.content-wrap{padding:28px 32px 60px;max-width:1640px;margin:auto}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 24px}.page-intro h2{font-size:21px;margin:0 0 7px;letter-spacing:-.035em}.page-intro p{color:var(--muted);margin:0;line-height:1.6;max-width:720px}.btn{border:1px solid transparent;border-radius:11px;padding:10px 14px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s;white-space:nowrap}.btn .icon{width:16px;height:16px}.btn-primary{background:linear-gradient(135deg,#245cf5,#6349e7);color:#fff;box-shadow:0 10px 24px rgba(53,82,231,.18)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(53,82,231,.24)}.btn-secondary{background:#fff;border-color:var(--line);color:#4d5b76}.btn-secondary:hover{background:#f6f8fc}.btn-light{background:#fff;color:#234fca}.btn-ghost{background:transparent;color:#50607e;padding:6px 8px}.btn-sm{padding:7px 10px;font-size:11px;border-radius:9px}.btn-lg{padding:12px 16px;font-size:13px}.full{width:100%}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(32,55,99,.045)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line)}.panel-head h3{margin:0;font-size:15px;letter-spacing:-.02em}.panel-head p{margin:5px 0 0;font-size:11px;color:var(--muted)}.text-link{font-size:11px;font-weight:700;color:var(--primary)}.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.kpi-grid.four{grid-template-columns:repeat(4,1fr)}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;display:flex;align-items:center;gap:15px;min-height:112px}.kpi-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center}.kpi-icon.blue{color:#2561e9;background:#eaf1ff}.kpi-icon.green{color:#15835c;background:#e8f8f1}.kpi-icon.violet{color:#6b4de3;background:#f0ecff}.kpi-icon.amber{color:#b9780e;background:#fff4dc}.kpi-icon.rose{color:#c64560;background:#ffedf1}.kpi-card span{display:block;color:#7f8aa2;font-size:11px;font-weight:600}.kpi-card strong{display:block;font-size:25px;letter-spacing:-.04em;margin:3px 0}.kpi-card small{display:block;color:#98a2b6;font-size:10px}.welcome-banner{background:radial-gradient(circle at 80% 10%,rgba(130,105,255,.4),transparent 30%),linear-gradient(135deg,#214dcc,#203c9f 60%,#4b3ca9);color:white;border-radius:22px;padding:27px 30px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 16px 38px rgba(36,66,169,.17)}.welcome-banner h2{margin:10px 0 5px;font-size:25px;letter-spacing:-.04em}.welcome-banner p{margin:0;color:#d7e2ff;max-width:670px;line-height:1.6}.hero-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.17);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-bottom:20px}.schedule-list{padding:8px 20px 18px}.schedule-item{display:flex;align-items:center;gap:14px;padding:12px 0}.time-block{width:52px;text-align:right}.time-block strong,.time-block span{display:block}.time-block strong{font-size:12px}.time-block span{font-size:10px;color:#9aa4b7;margin-top:2px}.schedule-line{width:8px;height:42px;border-radius:10px;background:linear-gradient(#2c64f5,#7455ed)}.schedule-item>div:last-child strong{font-size:12px}.schedule-item p{font-size:10px;color:#8390a6;margin:4px 0 0}.mini-chart{height:235px;padding:28px 20px 20px;display:flex;align-items:flex-end;gap:12px}.bar-col{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px}.bar-value{font-size:9px;color:#8894a8}.bar-track{width:100%;max-width:28px;height:160px;background:#f0f3fa;border-radius:8px;overflow:hidden;display:flex;align-items:flex-end}.bar-fill{width:100%;background:linear-gradient(#4f76f7,#6b52ec);border-radius:8px}.bar-col span{font-size:9px;color:#8b96aa}.timeline-list,.announcement-list{padding:8px 20px 18px}.timeline-list.large{padding:10px 20px}.timeline-row{display:flex;align-items:center;gap:13px;padding:11px 0;border-bottom:1px solid #f0f2f7}.timeline-row:last-child{border:0}.date-box{width:46px;height:48px;border-radius:12px;background:#eef3ff;color:#2858d3;display:grid;place-items:center;align-content:center}.date-box strong{font-size:15px;line-height:1}.date-box span{font-size:8px;text-transform:uppercase;margin-top:4px}.timeline-row>div:nth-child(2) strong{font-size:11px}.timeline-row p{font-size:10px;color:#8894a8;margin:4px 0 0}.grow{flex:1}.announcement-row{display:flex;gap:11px;padding:12px 0;border-bottom:1px solid #f0f2f7}.announcement-row:last-child{border:0}.dot-indicator{width:8px;height:8px;border-radius:50%;background:#5267ee;margin-top:5px;box-shadow:0 0 0 5px #eef0ff}.announcement-row strong{font-size:11px}.announcement-row p{font-size:10px;color:#7f8ba0;margin:4px 0;line-height:1.5}.announcement-row small{font-size:9px;color:#a1aabb}.alert{padding:11px 14px;border-radius:12px;margin-bottom:18px;font-size:12px;font-weight:600}.alert.success{background:#eaf9f3;color:#0e8056;border:1px solid #c9eedf}.alert.danger{background:#fff0f3;color:#b83e56;border:1px solid #ffd5dd}.alert.warning{background:#fff7e8;color:#a76b08}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;min-width:780px}.table-wrap th{text-align:left;font-size:9px;color:#8b96a9;letter-spacing:.06em;text-transform:uppercase;background:#fafbfe;padding:11px 16px;border-bottom:1px solid var(--line)}.table-wrap td{padding:13px 16px;border-bottom:1px solid #eef1f6;font-size:11px;vertical-align:middle}.table-wrap tr:last-child td{border-bottom:0}.cell-sub{display:block;color:#9aa4b5;font-size:9px;margin-top:4px}.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;background:#f0f3f8;color:#6d7890}.badge.success{background:#e8f8f1;color:#0d8056}.badge.warning{background:#fff4dc;color:#a96b04}.badge.danger{background:#ffedf1;color:#b33b52}.badge.muted{background:#f0f2f6;color:#717c90}.actions-cell{display:flex;gap:3px;justify-content:flex-end}.actions-cell form,.row-actions form{display:inline}.danger-text{color:#c44158!important}.empty-cell{text-align:center!important;color:#97a1b4!important;padding:30px!important}.empty-state{text-align:center;color:#8c97aa;padding:42px 22px}.empty-state strong{display:block;color:#526078;margin-bottom:6px}.empty-state p{margin:0;font-size:11px}.empty-state.compact{padding:24px 10px;font-size:11px}.form-panel{padding-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px}.form-grid.compact-grid{padding:0 0 20px}.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field label{font-size:10px;font-weight:800;color:#67758e;letter-spacing:.015em}.field input,.field select,.field textarea,.toolbar input,.panel-head select,.inline-reset input{width:100%;border:1px solid #dfe5ef;background:#fff;color:#20304d;border-radius:10px;padding:10px 11px;outline:none;transition:.18s}.field input:focus,.field select:focus,.field textarea:focus,.toolbar input:focus{border-color:#6f8ff2;box-shadow:0 0 0 3px rgba(70,106,235,.09)}.field textarea{resize:vertical;line-height:1.55}.span-2{grid-column:span 2}.form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:4px}.form-section-title{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:2px 0 12px;margin-top:4px}.form-section-title>span{width:30px;height:30px;border-radius:9px;background:#edf2ff;color:#2a5be0;display:grid;place-items:center;font-size:10px;font-weight:800}.form-section-title strong{font-size:12px}.form-section-title p{margin:3px 0 0;font-size:10px;color:#8995aa}.stack-form{display:flex;flex-direction:column;gap:14px;padding:20px 22px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-divider{border-top:1px solid var(--line);position:relative;margin:8px 0 2px}.form-divider span{position:absolute;top:-9px;background:white;padding-right:8px;color:#8591a5;font-size:9px;font-weight:800}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}.search-form{position:relative;max-width:360px;flex:1}.search-form span{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:#9ba5b7}.search-form .icon{width:16px}.search-form input{padding-left:35px}.mini-kpis{display:flex;gap:12px;margin-bottom:16px}.mini-kpis>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 15px;min-width:120px}.mini-kpis span{display:block;font-size:9px;color:#8b96a8}.mini-kpis strong{font-size:17px}.pagination{display:flex;gap:5px;padding:15px 18px}.pagination a{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#f5f7fb;color:#67758d;font-size:10px;font-weight:700}.pagination a.active{background:var(--primary);color:#fff}.tenant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tenant-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.tenant-card-head{display:flex;align-items:center;gap:11px}.tenant-card-head>div:nth-child(2){flex:1}.tenant-card-head h3{margin:0;font-size:13px}.tenant-card-head p{margin:4px 0 0;color:#8b95a8;font-size:10px}.tenant-class{display:flex;gap:10px;align-items:center;background:#f8faff;padding:12px;border-radius:12px;margin-top:15px}.tenant-class>span{color:#4e67e8}.tenant-class strong{font-size:10px}.tenant-class p{margin:4px 0 0;color:#8190a8;font-size:9px}.tenant-db{padding:14px 2px;border-bottom:1px solid var(--line)}.tenant-db small,.tenant-db code,.tenant-db span{display:block}.tenant-db small{font-size:8px;color:#9aa4b4;margin-bottom:5px}.tenant-db code{font-size:10px;color:#294fb2}.tenant-db span{font-size:9px;color:#9aa4b5;margin-top:3px}.tenant-meta{display:flex;justify-content:space-between;padding:12px 0;font-size:9px;color:#8a95a8}.tenant-meta strong{color:#58667c}.tenant-actions{display:flex;gap:8px}.inline-reset{display:flex;gap:8px;margin-top:10px}.hidden{display:none!important}.full-span{grid-column:1/-1}.attendance-summary{display:grid;grid-template-columns:1.6fr repeat(4,.6fr);gap:12px;margin-bottom:16px}.date-picker-card,.att-stat{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px}.date-picker-card label{font-size:9px;color:#8490a4;font-weight:700;display:block;margin-bottom:6px}.date-picker-card input{border:0;font-size:15px;font-weight:800;color:#293a58;outline:0}.att-stat span{font-size:9px;color:#8793a7;display:block}.att-stat strong{font-size:20px;display:block;margin-top:3px}.att-stat.present{border-left:3px solid #1aa16c}.att-stat.sick{border-left:3px solid #e3a227}.att-stat.permit{border-left:3px solid #5c76e9}.att-stat.absent{border-left:3px solid #d64b62}.bulk-buttons{display:flex;gap:8px}.attendance-list{padding:0 20px}.attendance-row{display:grid;grid-template-columns:30px minmax(160px,1fr) minmax(310px,1.4fr) minmax(150px,.8fr);align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #eef1f6}.student-number{width:26px;height:26px;border-radius:8px;background:#f1f4fa;display:grid;place-items:center;font-size:9px;font-weight:800;color:#728099}.student-main strong,.student-main span{display:block}.student-main strong{font-size:11px}.student-main span{font-size:9px;color:#9aa4b6;margin-top:3px}.status-options{display:flex;gap:5px;flex-wrap:wrap}.status-chip input{display:none}.status-chip span{display:block;padding:7px 9px;border-radius:8px;background:#f4f6fa;color:#7a8598;font-size:9px;font-weight:800;border:1px solid transparent}.status-chip input:checked+span{background:#eaf2ff;color:#2559ce;border-color:#cbdcff}.status-chip.s input:checked+span{background:#fff4dd;color:#a96b08;border-color:#f5d89f}.status-chip.i input:checked+span{background:#f0edff;color:#6548c8;border-color:#dcd3ff}.status-chip.a input:checked+span{background:#ffedf1;color:#b63e56;border-color:#ffd1da}.attendance-note{border:1px solid #e2e7f0;border-radius:9px;padding:8px 9px;font-size:9px;outline:0;width:100%}.sticky-form-action{display:flex;justify-content:flex-end;padding:16px 20px}.two-col-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}.sticky-panel{position:sticky;top:112px}.schedule-board{display:grid;grid-template-columns:1fr 1fr;gap:14px}.day-panel{overflow:hidden}.day-title{padding:14px 16px;background:#fafbfe;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.day-title strong{font-size:11px}.day-title span{font-size:9px;color:#8b96a8}.lesson-card{display:flex;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid #eef1f5}.lesson-card:last-child{border:0}.lesson-time{width:48px}.lesson-time strong,.lesson-time span{display:block;font-size:9px}.lesson-time span{color:#a0a8b8;margin-top:3px}.lesson-copy{flex:1}.lesson-copy strong{font-size:10px}.lesson-copy p{font-size:9px;color:#8b96a9;margin:3px 0 0}.lesson-actions{display:flex;gap:5px}.lesson-actions a,.lesson-actions button,.row-actions a,.row-actions button,.delete-inline button{border:0;background:transparent;color:#5269d4;padding:3px;font-size:9px;font-weight:700}.lesson-actions button,.row-actions button,.delete-inline button{color:#c84a60}.journal-list,.assignment-list,.note-list,.communication-list{padding:10px 18px 18px}.journal-card{display:flex;gap:13px;padding:14px 0;border-bottom:1px solid #eef1f6}.journal-date{width:44px;height:48px;background:#eff3ff;border-radius:12px;display:grid;place-items:center;align-content:center;color:#2d5bd2}.journal-date strong{font-size:14px}.journal-date span{font-size:8px;text-transform:uppercase}.journal-copy{flex:1}.journal-top{display:flex;align-items:center;gap:8px}.journal-top small{font-size:9px;color:#8a95a7}.journal-copy h4,.assignment-card h4,.note-card h4,.communication-card h4{margin:8px 0 5px;font-size:12px}.journal-copy p,.assignment-card p,.note-card p,.communication-card p{margin:0;color:#748198;font-size:10px;line-height:1.55}.row-actions{display:flex;gap:8px;margin-top:8px}.assignment-card{padding:15px 2px;border-bottom:1px solid #eef1f6}.assignment-status{display:flex;align-items:center;justify-content:space-between}.assignment-status small{font-size:9px;color:#8d98aa}.assignment-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.assignment-meta span{font-size:9px;color:#909bad;background:#f8f9fc;padding:8px;border-radius:8px}.assignment-meta strong{display:block;color:#4d5a70;margin-top:3px}.grade-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:20px;align-items:start}.score-entry-list{border-top:1px solid var(--line)}.score-head,.score-row{display:grid;grid-template-columns:1fr 110px;align-items:center;gap:15px;padding:10px 22px}.score-head{font-size:9px;color:#8e99aa;background:#fafbfe;font-weight:800}.score-row{border-top:1px solid #eef1f6}.score-row span{font-size:10px;font-weight:600}.score-row b{color:#a0a9b9;margin-right:5px}.score-row small{display:block;color:#9ba5b5;font-size:8px;margin-top:3px}.score-row input{border:1px solid #dfe5ef;border-radius:8px;padding:8px;text-align:center;width:100%}.rank-list{padding:10px 18px}.rank-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:9px 0}.rank-no{width:24px;height:24px;border-radius:8px;background:#f0f3fb;display:grid;place-items:center;font-size:9px;font-weight:800}.rank-row strong{font-size:10px}.rank-row small{display:block;color:#9ba5b6;font-size:8px;margin-top:2px}.rank-score{font-size:15px!important;color:#345ad4}.panel-divider{height:1px;background:var(--line);margin:4px 0}.recent-assessments{padding:2px 20px 18px}.recent-assessments>div{padding:9px 0;border-bottom:1px solid #eef1f5}.recent-assessments strong,.recent-assessments small{display:block}.recent-assessments strong{font-size:10px;margin-top:6px}.recent-assessments small{font-size:8px;color:#929daf;margin-top:3px}.note-card{padding:14px;border:1px solid #edf0f5;border-radius:14px;margin:8px 0}.note-card-top{display:flex;justify-content:space-between;gap:10px}.note-card-top strong,.note-card-top small{display:block}.note-card-top strong{font-size:10px}.note-card-top small{font-size:8px;color:#929dad;margin-top:3px}.follow-up{background:#f8faff;border-left:3px solid #6578df;border-radius:7px;padding:8px 10px;margin-top:9px}.follow-up small,.follow-up span{display:block}.follow-up small{font-size:7px;color:#8994a8;font-weight:800;text-transform:uppercase}.follow-up span{font-size:9px;color:#5c6880;margin-top:3px}.delete-inline{text-align:right;margin-top:5px}.announcement-board{display:flex;flex-direction:column;gap:14px}.announcement-card-full{padding:19px 21px}.announcement-card-head{display:flex;justify-content:space-between;align-items:center}.announcement-card-head small{font-size:9px;color:#929cad}.announcement-card-full h3{font-size:14px;margin:13px 0 8px}.announcement-card-full>p{font-size:10px;line-height:1.7;color:#68768e}.announcement-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.announcement-footer>span{font-size:9px;color:#8e99ab}.communication-card{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #eef1f5}.communication-icon{width:38px;height:38px;border-radius:12px;background:#eef2ff;color:#4f61d6;display:grid;place-items:center}.communication-icon .icon{width:17px}.communication-copy{flex:1}.communication-top{display:flex;align-items:center;gap:8px}.communication-copy>small{font-size:8px;color:#9ba5b5;display:block;margin-top:8px}.report-header{padding:20px 22px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.report-header h2{font-size:22px;margin:5px 0}.report-header p{margin:0;color:#7f8a9f;font-size:10px}.export-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.export-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;display:flex;align-items:center;gap:11px;transition:.15s}.export-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.export-card>.icon{color:#4a64df}.export-card div{flex:1}.export-card strong,.export-card span{display:block}.export-card strong{font-size:10px}.export-card span{font-size:8px;color:#96a0b2;margin-top:3px}.export-card b{font-size:8px;color:#5670df;background:#eff2ff;padding:5px 6px;border-radius:6px}.settings-tabs{display:flex;gap:7px;margin-bottom:16px}.settings-tabs a{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:10px;font-weight:700;color:#718098}.settings-tabs a.active{background:#1f51da;color:#fff;border-color:#1f51da}.narrow-panel{max-width:620px}.security-note{margin:0 22px 10px;background:#f6f8ff;border:1px solid #e3e8fb;border-radius:12px;padding:13px}.security-note strong{font-size:10px}.security-note p{font-size:9px;color:#7a879d;margin:4px 0 0}.login-body,.install-body{min-height:100vh;background:#f4f6fb}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-showcase{position:relative;overflow:hidden;background:linear-gradient(145deg,#11285b,#193aa1 58%,#5a42bf);color:#fff;padding:42px}.showcase-glow{position:absolute;border-radius:50%;filter:blur(2px);opacity:.45}.glow-a{width:420px;height:420px;background:radial-gradient(circle,#6e75ff,transparent 65%);right:-100px;top:-120px}.glow-b{width:360px;height:360px;background:radial-gradient(circle,#41b9ff,transparent 68%);left:-130px;bottom:-120px}.showcase-content{position:relative;z-index:1;min-height:calc(100vh - 84px);display:flex;flex-direction:column}.brand.light{padding:0}.showcase-copy{margin:auto 0;max-width:680px}.showcase-copy h1{font-size:49px;line-height:1.06;letter-spacing:-.055em;margin:18px 0}.showcase-copy p{color:#d4defc;font-size:14px;line-height:1.7;max-width:580px}.showcase-stats{display:flex;gap:45px;border-top:1px solid rgba(255,255,255,.18);padding-top:22px}.showcase-stats strong,.showcase-stats span{display:block}.showcase-stats strong{font-size:18px}.showcase-stats span{font-size:9px;color:#bac8ee;margin-top:4px}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(100%,420px);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:0 20px 60px rgba(26,43,83,.08)}.login-card h2{font-size:26px;letter-spacing:-.04em;margin:7px 0}.muted{color:#7f8ba0}.login-card>.muted{font-size:11px;margin-bottom:22px}.login-card .stack-form{padding:0}.login-foot{text-align:center;color:#a0a9b8;font-size:9px;margin:20px 0 0}.mobile-login-brand{display:none}.install-shell{max-width:800px;margin:0 auto;padding:42px 20px}.install-brand{display:flex;align-items:center;gap:11px;margin-bottom:22px}.install-brand strong,.install-brand small{display:block}.install-brand small{font-size:9px;color:#8b96a9;margin-top:3px}.install-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px}.install-heading{display:flex;gap:14px;align-items:center;margin-bottom:12px}.install-heading h1{font-size:23px;margin:0}.install-heading p{margin:5px 0 0;color:#8290a6;font-size:11px}.step-badge{width:38px;height:38px;border-radius:12px;background:#edf2ff;color:#2558d8;display:grid;place-items:center;font-weight:800}.install-card .form-grid{padding:16px 0 0}.tiny{font-size:9px}.center-card{text-align:center;max-width:580px;margin:80px auto}.success-mark{width:58px;height:58px;border-radius:18px;background:#e8f8f1;color:#13835b;display:grid;place-items:center;font-size:28px;font-weight:800;margin:0 auto}.center-card h1{font-size:25px}.center-card p{color:#748198;line-height:1.7}.sidebar-backdrop,.mobile-bottom-nav{display:none}
@media(max-width:1180px){.kpi-grid.four{grid-template-columns:repeat(2,1fr)}.tenant-grid{grid-template-columns:repeat(2,1fr)}.export-grid{grid-template-columns:repeat(2,1fr)}.attendance-summary{grid-template-columns:1.3fr repeat(2,.7fr)}.attendance-row{grid-template-columns:30px 1fr 1.4fr}.attendance-note{grid-column:2/-1}.grade-layout{grid-template-columns:1fr}.login-showcase{padding:34px}.showcase-copy h1{font-size:42px}}
@media(max-width:900px){:root{--sidebar:250px}.sidebar{transform:translateX(-100%);transition:.22s}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(8,18,39,.46);z-index:35;opacity:0;pointer-events:none;transition:.2s}.sidebar-backdrop.show{opacity:1;pointer-events:auto}.main-area{margin-left:0}.mobile-menu{display:grid}.topbar{padding:0 20px;height:80px}.content-wrap{padding:22px 20px 90px}.two-col-layout{grid-template-columns:1fr}.sticky-panel{position:static}.schedule-board{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-showcase{display:none}.login-panel{min-height:100vh}.mobile-login-brand{display:flex;align-items:center;gap:10px;margin-bottom:25px}.mobile-login-brand .brand-mark{width:38px;height:38px}.mobile-bottom-nav{position:fixed;display:flex;z-index:30;left:12px;right:12px;bottom:10px;padding:7px;background:rgba(14,27,54,.95);backdrop-filter:blur(14px);border-radius:18px;box-shadow:0 15px 40px rgba(7,20,49,.28);padding-bottom:max(7px,env(safe-area-inset-bottom))}.mobile-bottom-nav a{flex:1;color:#8392af;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px}.mobile-bottom-nav .icon{width:17px;height:17px}.mobile-bottom-nav span{font-size:7px;font-weight:700}.mobile-bottom-nav a.active{color:#fff}.sidebar-user{padding-bottom:12px}}
@media(max-width:680px){body{font-size:13px}.topbar{height:72px;padding:0 14px}.topbar h1{font-size:17px}.topbar .eyebrow{font-size:8px}.date-pill{display:none}.top-avatar{display:grid}.content-wrap{padding:18px 13px 88px}.page-intro{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-intro h2{font-size:18px}.page-intro p{font-size:11px}.page-intro .btn{width:100%}.welcome-banner{padding:20px;align-items:flex-start;flex-direction:column}.welcome-banner h2{font-size:21px}.welcome-banner p{font-size:11px}.welcome-banner .btn{width:100%}.kpi-grid,.kpi-grid.four{grid-template-columns:1fr 1fr;gap:10px}.kpi-card{padding:13px;min-height:95px;gap:10px}.kpi-icon{width:38px;height:38px;border-radius:11px}.kpi-icon .icon{width:17px}.kpi-card strong{font-size:20px}.kpi-card small{font-size:8px}.panel{border-radius:16px}.panel-head{padding:15px}.panel-head h3{font-size:13px}.panel-head p{font-size:9px}.schedule-board{grid-template-columns:1fr}.tenant-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr;padding:16px}.span-2{grid-column:span 1}.form-section-title.span-2{grid-column:span 1}.form-actions.span-2{grid-column:span 1}.field-row{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.search-form{max-width:none}.mini-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mini-kpis>div{min-width:0;padding:9px}.attendance-summary{grid-template-columns:1fr 1fr}.date-picker-card{grid-column:1/-1}.attendance-row{grid-template-columns:28px 1fr;padding:14px 0}.status-options{grid-column:1/-1;padding-left:40px}.attendance-note{grid-column:1/-1;margin-left:40px;width:calc(100% - 40px)}.bulk-buttons{flex-direction:column}.assignment-meta{grid-template-columns:1fr}.export-grid{grid-template-columns:1fr}.settings-tabs{overflow:auto;white-space:nowrap}.report-header{align-items:flex-start;gap:15px;flex-direction:column}.login-panel{padding:18px}.login-card{padding:25px 20px;border-radius:20px}.install-shell{padding:22px 13px}.install-card{padding:20px}.center-card{margin:30px auto}.topbar-actions{gap:5px}}
@media(max-width:420px){.kpi-grid,.kpi-grid.four{grid-template-columns:1fr}.mini-kpis{grid-template-columns:1fr 1fr}.attendance-summary{grid-template-columns:1fr 1fr}.announcement-footer{align-items:flex-start;gap:8px;flex-direction:column}.score-head,.score-row{grid-template-columns:1fr 82px;padding:10px 14px}}
@media print{.sidebar,.topbar,.mobile-bottom-nav,.page-intro,.btn,.settings-tabs{display:none!important}.main-area{margin:0}.content-wrap{padding:0}.panel,.kpi-card{box-shadow:none;break-inside:avoid}.report-header{margin-top:0}body{background:#fff}.table-wrap{overflow:visible}.table-wrap table{min-width:0}.kpi-grid.four{grid-template-columns:repeat(4,1fr)}}
/* ClassCare v2 additions */
html[data-theme="ocean"]{--primary:#2158f5;--primary2:#6b4df6}
html[data-theme="emerald"]{--primary:#0f9f75;--primary2:#16a085}
html[data-theme="sunset"]{--primary:#e06b27;--primary2:#e9a23b}
html[data-theme="rose"]{--primary:#d94f79;--primary2:#9e5de7}
html[data-theme="midnight"]{--primary:#4b5bdc;--primary2:#7a56d8;--bg:#f3f4fa}
html[data-theme="emerald"] .brand-mark,html[data-theme="emerald"] .nav-link.active,html[data-theme="emerald"] .btn-primary{background:linear-gradient(135deg,#0f9f75,#15b89a)}
html[data-theme="emerald"] .welcome-banner,html[data-theme="emerald"] .login-showcase{background:radial-gradient(circle at 80% 10%,rgba(56,216,177,.35),transparent 30%),linear-gradient(135deg,#075b50,#0d8a72 60%,#116c62)}
html[data-theme="sunset"] .brand-mark,html[data-theme="sunset"] .nav-link.active,html[data-theme="sunset"] .btn-primary{background:linear-gradient(135deg,#e0642a,#eca23a)}
html[data-theme="sunset"] .welcome-banner,html[data-theme="sunset"] .login-showcase{background:radial-gradient(circle at 80% 10%,rgba(255,190,97,.35),transparent 30%),linear-gradient(135deg,#8c3522,#c5572b 60%,#d7892f)}
html[data-theme="rose"] .brand-mark,html[data-theme="rose"] .nav-link.active,html[data-theme="rose"] .btn-primary{background:linear-gradient(135deg,#d94f79,#9e5de7)}
html[data-theme="rose"] .welcome-banner,html[data-theme="rose"] .login-showcase{background:radial-gradient(circle at 80% 10%,rgba(236,124,177,.35),transparent 30%),linear-gradient(135deg,#73295a,#9f3f77 60%,#6846a5)}
html[data-theme="midnight"] .brand-mark,html[data-theme="midnight"] .nav-link.active,html[data-theme="midnight"] .btn-primary{background:linear-gradient(135deg,#3947c4,#7450d7)}
.access-pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;font-size:9px;font-weight:800;border:1px solid var(--line);background:#fff;color:#66748e}.access-pill.trial{background:#fff7e8;color:#a76b08;border-color:#f5dfb2}.access-pill.lifetime,.access-pill.admin{background:#eaf9f3;color:#0e8056;border-color:#c9eedf}.access-pill.expired,.access-pill.revoked,.access-pill.invalid,.access-pill.verify_required{background:#fff0f3;color:#b83e56;border-color:#ffd5dd}
.register-link{margin-top:10px}.register-card{width:min(100%,520px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.field small{display:block;margin-top:5px;color:#8c97aa;font-size:9px}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-radius:14px;padding:14px}.toggle-row strong,.toggle-row span{display:block}.toggle-row strong{font-size:11px}.toggle-row span{font-size:9px;color:var(--muted);margin-top:4px}.toggle-row input{width:20px;height:20px;accent-color:var(--primary)}
.system-inline{padding:0 22px 22px}.firmware-panel{overflow:hidden}.firmware-body{display:flex;gap:20px;align-items:flex-start;padding:24px}.upgrade-visual{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:linear-gradient(135deg,#eaf1ff,#f0ecff);color:var(--primary)}.upgrade-visual .icon{width:30px;height:30px}.firmware-body h3{margin:0 0 7px}.firmware-body p{font-size:10px;color:var(--muted);line-height:1.6}.firmware-actions{display:flex;gap:8px;margin-top:15px}.release-box{margin-top:15px;border:1px solid #cfe8dd;background:#f3fbf7;border-radius:14px;padding:14px}.release-box strong{display:block;margin:9px 0 6px;font-size:12px}.release-box small{font-size:9px;color:#718079}
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:22px}.theme-card{position:relative;border:1px solid var(--line);border-radius:17px;padding:14px;cursor:pointer;background:#fff;transition:.18s}.theme-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.theme-card input{position:absolute;right:12px;top:12px;accent-color:var(--primary)}.theme-card strong,.theme-card small,.theme-card b{display:block}.theme-card strong{font-size:11px;margin-top:11px}.theme-card small{font-size:9px;color:var(--muted);margin-top:4px;line-height:1.5}.theme-card b{font-size:8px;text-transform:uppercase;letter-spacing:.08em;margin-top:12px;color:var(--primary)}.theme-swatch{display:block;height:76px;border-radius:12px}.theme-preview-ocean .theme-swatch{background:linear-gradient(135deg,#245cf5,#6349e7)}.theme-preview-emerald .theme-swatch{background:linear-gradient(135deg,#0f9f75,#15b89a)}.theme-preview-sunset .theme-swatch{background:linear-gradient(135deg,#e0642a,#eca23a)}.theme-preview-rose .theme-swatch{background:linear-gradient(135deg,#d94f79,#9e5de7)}.theme-preview-midnight .theme-swatch{background:linear-gradient(135deg,#263287,#7450d7)}.theme-save{grid-column:1/-1;display:flex;justify-content:flex-end}
.license-hero{display:flex;align-items:center;gap:18px;padding:22px;margin-bottom:18px}.license-hero h2{font-size:24px;margin:5px 0}.license-hero p{font-size:10px;color:var(--muted);margin:0 0 9px}.license-icon{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:#eef3ff;color:#2d5fe6}.license-icon.lifetime{background:#e8f8f1;color:#0d8056}.license-icon.expired,.license-icon.revoked,.license-icon.invalid,.license-icon.verify_required{background:#ffedf1;color:#b33b52}.license-icon .icon{width:27px;height:27px}.trial-progress{height:7px;background:#edf0f5;border-radius:10px;overflow:hidden;max-width:420px;margin:12px 0 6px}.trial-progress>div{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:10px}.license-hero small{font-size:9px;color:#8491a5}.license-key-input{text-transform:uppercase;letter-spacing:.08em;font-weight:700}.license-grid{align-items:start}
@media(max-width:900px){.theme-grid{grid-template-columns:repeat(2,1fr)}.access-pill{display:none}}
@media(max-width:680px){.theme-grid{grid-template-columns:1fr;padding:14px}.firmware-body,.license-hero{flex-direction:column}.firmware-actions{flex-direction:column;align-items:stretch}.firmware-actions .btn{width:100%}.license-hero>.badge{align-self:flex-start}}
.new-key-panel{padding:20px;margin-bottom:18px;border-color:#c9eedf;background:#f5fcf9}.new-license-key{display:flex;align-items:center;gap:12px;margin:10px 0}.new-license-key code{display:block;flex:1;padding:14px;border-radius:12px;background:#0e1b36;color:#e8efff;font-size:13px;letter-spacing:.06em;overflow:auto}.new-key-panel>p:last-child{font-size:9px;color:#718079;margin:8px 0 0}
@media(max-width:680px){.new-license-key{flex-direction:column;align-items:stretch}.new-license-key .btn{width:100%}}
.metric-list{padding:16px 22px 22px}.metric-row{padding:13px 0;border-bottom:1px solid #eef1f6}.metric-row:last-child{border:0}.metric-copy{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.metric-copy strong{font-size:12px}.metric-copy span{font-size:10px;color:var(--muted)}.progress{height:7px;background:#eef2f8;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,#245cf5,#694ce9);border-radius:99px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.product-card{padding:20px}.product-card-top{display:flex;align-items:center;gap:12px}.product-card h3{margin:0 0 4px;font-size:15px}.product-card p{margin:0;color:var(--muted);font-size:11px}.product-logo{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#245cf5,#684ae8)}.product-desc{min-height:36px!important;line-height:1.6;margin:16px 0!important}.product-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.product-stats>div{background:#f8faff;border:1px solid var(--line);border-radius:12px;padding:11px}.product-stats strong,.product-stats span{display:block}.product-stats strong{font-size:17px}.product-stats span{font-size:9px;color:var(--muted);margin-top:3px}.api-box{background:#0e1b36;color:#dce7ff;border-radius:12px;padding:12px;margin:12px 0}.api-box small,.api-box code{display:block}.api-box small{font-size:9px;color:#8ea0c4;margin-bottom:6px}.api-box code{font-size:10px;word-break:break-all}.row-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.checkbox-field{display:flex;flex-direction:column;justify-content:center}.checkbox-field label{display:flex;gap:8px;align-items:center}.checkbox-field input{width:auto}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#66738d;font-size:10px;font-weight:700}.filter-chip.active{background:#1f55e5;color:#fff;border-color:#1f55e5}.page-actions{display:flex;justify-content:flex-end;margin:-10px 0 14px}.integration-card{margin-top:20px;background:#f7f9fd;border:1px solid var(--line);border-radius:14px;padding:16px}.integration-card strong{display:block;font-size:12px;margin-bottom:5px}.integration-card p{font-size:10px;color:var(--muted);line-height:1.6;margin:0}.integration-card code{font-size:10px}.field small{display:block;color:#8b96aa;font-size:9px;margin-top:6px;line-height:1.45}
@media(max-width:1100px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.product-grid{grid-template-columns:1fr}.product-card{padding:16px}.filter-row{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.filter-chip{flex:none}}
/* LicenseHub v2.1.1 management actions */
.btn-danger{background:#fff0f3;border-color:#ffd1da;color:#b72f4c}.btn-danger:hover{background:#ffe4ea;border-color:#ffbdca}.btn-danger:disabled{opacity:.45;cursor:not-allowed;transform:none}.danger-zone{margin-top:18px;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#ffd7df;background:#fffafb}.danger-zone strong{display:block;color:#a82f48;font-size:12px}.danger-zone p{margin:5px 0 0;color:#7e6670;font-size:10px;line-height:1.6;max-width:760px}.danger-zone small{display:block;margin-top:7px;color:#9a7a83;font-size:9px}.danger-zone form{flex:none}.actions-cell{min-width:220px;flex-wrap:wrap}
@media(max-width:680px){.danger-zone{align-items:stretch;flex-direction:column}.danger-zone form,.danger-zone .btn{width:100%}.actions-cell{min-width:260px}}
