:root{
  --navy:#143a67;--navy-2:#0b2747;--blue:#2868a7;--blue-soft:#eaf3fc;--teal:#0e8c88;
  --green:#16805b;--green-soft:#e8f6ef;--amber:#bd7415;--amber-soft:#fff3df;--red:#bd454d;--red-soft:#fdebed;
  --purple:#6f55b7;--purple-soft:#f0edfb;--bg:#f3f6fa;--surface:#fff;--surface-2:#f8fafc;
  --text:#192234;--muted:#667085;--border:#dfe7f1;--shadow:0 14px 36px rgba(19,48,82,.10);
  --shadow-soft:0 6px 18px rgba(19,48,82,.06);--radius:18px;--topbar:72px;--bottom:78px;--drawer:282px;
}
[data-theme="dark"]{
  --bg:#0b1421;--surface:#111d2d;--surface-2:#172437;--text:#f3f6fb;--muted:#a8b4c6;--border:#29384d;
  --blue-soft:#142a45;--green-soft:#143127;--amber-soft:#342817;--red-soft:#381e23;--purple-soft:#29223e;
  --shadow:0 16px 42px rgba(0,0,0,.34);--shadow-soft:0 6px 20px rgba(0,0,0,.20)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
body{overflow-x:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}
.hidden{display:none!important}
.full{width:100%}
.muted{color:var(--muted)}
.small-text{font-size:12px;line-height:1.55}
.section-gap{margin-top:20px}
.section-gap-small{margin-top:14px}
.button-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}

.app-shell{min-height:100vh;padding-left:var(--drawer)}
.drawer{position:fixed;inset:0 auto 0 0;width:var(--drawer);background:linear-gradient(180deg,#174671 0%,#0b2b50 56%,#071d35 100%);color:#fff;z-index:60;display:flex;flex-direction:column;padding:22px 16px}
.brand-block{display:flex;gap:12px;align-items:center;padding:4px 8px 24px}
.brand-mark{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,#92e1ff,#73d8b0);display:grid;place-items:center;color:#103a5d;font-weight:900;box-shadow:0 9px 20px rgba(0,0,0,.2)}
.brand-block strong{display:block;font-size:18px}.brand-block span{display:block;font-size:11px;opacity:.72;margin-top:3px}
.drawer-nav{display:grid;gap:5px;overflow:auto;padding-right:2px}.nav-item{border:0;background:transparent;color:rgba(255,255,255,.76);padding:12px 13px;border-radius:13px;text-align:left;display:flex;gap:12px;align-items:center;transition:.18s ease}.nav-item span{width:20px;text-align:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.14);color:#fff;transform:translateX(2px)}
.drawer-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding:16px 8px 4px}.storage-meter{display:flex;justify-content:space-between;font-size:12px}.drawer-footer small{opacity:.64;display:block;margin-top:6px}
.scrim{display:none}

.topbar{position:fixed;left:var(--drawer);right:0;top:0;height:var(--topbar);background:rgba(255,255,255,.93);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 24px;gap:10px;z-index:50}
[data-theme="dark"] .topbar{background:rgba(17,29,45,.92)}
.topbar-title{display:flex;flex-direction:column;min-width:0}.topbar-title strong{font-size:19px}.topbar-title span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:760px}.topbar-actions{margin-left:auto;display:flex;gap:8px;align-items:center}
.icon-btn,.pill-btn,.mini-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;transition:.16s ease}.icon-btn{min-width:42px;height:42px;border-radius:13px}.icon-btn.small{min-width:34px;height:34px;border-radius:10px}.pill-btn{height:42px;padding:0 16px;border-radius:13px;color:#fff;background:var(--navy);border-color:var(--navy)}.icon-btn:hover,.mini-btn:hover{background:var(--surface-2);transform:translateY(-1px)}
.mini-btn{width:34px;height:34px;border-radius:11px;font-weight:800}
.view-host{min-height:100vh;padding:calc(var(--topbar) + 22px) 24px 38px;outline:none}.page{animation:pageIn .2s ease;max-width:1500px;margin:0 auto}.page-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.page-head h1{font-size:28px;letter-spacing:-.6px;margin:3px 0 6px}.page-head p{margin:0;color:var(--muted);max-width:800px;line-height:1.55}
@keyframes pageIn{from{opacity:.45;transform:translateY(7px)}to{opacity:1;transform:none}}
.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:900;opacity:.78}.eyebrow.dark{color:var(--blue);opacity:1}

.btn{border:0;border-radius:12px;padding:11px 15px;font-weight:750;display:inline-flex;gap:8px;align-items:center;justify-content:center;transition:.16s ease;min-height:42px}.btn:hover{transform:translateY(-1px);filter:brightness(1.02)}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(135deg,var(--navy),#245d92);color:#fff;box-shadow:0 7px 16px rgba(20,58,103,.16)}.btn-soft{background:var(--blue-soft);color:var(--navy)}.btn-outline{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-danger{background:var(--red-soft);color:var(--red)}.btn-light{background:#fff;color:#143a67}.btn-glass{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff}.link-btn{border:0;background:transparent;color:var(--blue);font-weight:800;padding:5px}

.hero{background:linear-gradient(135deg,#143a67 0%,#24669b 56%,#0f8b87 100%);color:#fff;border-radius:26px;padding:28px;display:grid;grid-template-columns:1.35fr .65fr;gap:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:260px;height:260px;border:42px solid rgba(255,255,255,.07);border-radius:50%;right:-95px;top:-100px}.hero:before{content:"";position:absolute;width:150px;height:150px;background:rgba(255,255,255,.05);border-radius:30px;transform:rotate(25deg);right:190px;bottom:-85px}.hero>div{position:relative;z-index:1}.hero h1{margin:5px 0 9px;font-size:30px;letter-spacing:-.7px}.hero p{margin:0;color:rgba(255,255,255,.82);max-width:720px;line-height:1.6}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}.hero .btn-primary{background:#fff;color:#143a67;box-shadow:none}.hero .btn-soft{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.23)}.hero-status{display:grid;align-content:center;justify-items:end}.date-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:17px 20px;min-width:195px;backdrop-filter:blur(8px)}.date-card small,.date-card span{display:block;opacity:.76}.date-card strong{display:block;font-size:36px;margin:2px 0}

.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.metric-grid.compact{margin-top:16px}.metric-grid.three{grid-template-columns:repeat(3,1fr)}.metric-grid.two{grid-template-columns:repeat(2,1fr)}
.metric-card,.panel,.folder-card,.report-card,.setting-card,.class-folder-card,.subject-folder-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.metric-card{padding:16px;display:flex;gap:13px;align-items:center;min-width:0}.metric-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.metric-icon.blue{background:var(--blue-soft);color:var(--blue)}.metric-icon.green{background:var(--green-soft);color:var(--green)}.metric-icon.amber{background:var(--amber-soft);color:var(--amber)}.metric-icon.red{background:var(--red-soft);color:var(--red)}.metric-icon.purple{background:var(--purple-soft);color:var(--purple)}.metric-card small{color:var(--muted);display:block}.metric-card strong{font-size:22px;display:block;margin-top:3px}.metric-card em{font-size:10px;color:var(--muted);font-style:normal;display:block;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.content-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:18px;margin-top:18px}.panel{padding:19px}.panel.embedded{box-shadow:none;margin-top:14px;background:var(--surface-2)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.panel-head h2{font-size:16px;margin:0}.panel-head p{font-size:12px;color:var(--muted);margin:4px 0 0;line-height:1.45}
.schedule-list,.alert-list,.activity-list{display:grid;gap:10px}.schedule-item{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.schedule-time{font-weight:900;color:var(--navy)}[data-theme="dark"] .schedule-time{color:#91c3f4}.schedule-item strong{display:block}.schedule-item small{color:var(--muted)}
.status{font-size:10.5px;font-weight:850;padding:6px 9px;border-radius:999px;white-space:nowrap;display:inline-flex;align-items:center}.status.done{background:var(--green-soft);color:var(--green)}.status.next{background:var(--blue-soft);color:var(--blue)}.status.pending{background:var(--amber-soft);color:var(--amber)}.status.alert{background:var(--red-soft);color:var(--red)}
.insight-list{display:grid;gap:9px}.insight-list button,.stack-actions button,.global-results button{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:14px;padding:11px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;text-align:left}.insight-list button:hover,.stack-actions button:hover,.global-results button:hover{border-color:#b7cce2;background:var(--blue-soft)}.insight-list strong,.stack-actions strong,.global-results strong{display:block;font-size:13px}.insight-list small,.stack-actions small,.global-results small{display:block;color:var(--muted);margin-top:2px;line-height:1.35}.insight-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-weight:900}.insight-icon.red{background:var(--red-soft);color:var(--red)}.insight-icon.green{background:var(--green-soft);color:var(--green)}.insight-icon.amber{background:var(--amber-soft);color:var(--amber)}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick-grid.two{grid-template-columns:repeat(2,1fr)}.quick-action{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:15px;padding:14px;text-align:left;transition:.16s ease}.quick-action:hover{border-color:#b8cde3;background:var(--blue-soft);transform:translateY(-2px)}.quick-action span{display:block;font-size:22px;margin-bottom:9px}.quick-action strong{font-size:13px;display:block}.quick-action small{display:block;color:var(--muted);font-size:10.5px;margin-top:4px;line-height:1.35}

.tabs{display:flex;gap:8px;overflow:auto;padding-bottom:5px;margin-bottom:18px}.tab{border:1px solid var(--border);background:var(--surface);color:var(--muted);padding:9px 13px;border-radius:999px;white-space:nowrap}.tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.structure-banner{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:15px 18px;display:grid;grid-template-columns:repeat(7,auto);justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px;box-shadow:var(--shadow-soft)}.structure-banner>i{color:var(--muted);font-style:normal;font-size:21px}.structure-step{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center}.structure-step span{grid-row:1/3;width:32px;height:32px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:900}.structure-step strong{font-size:12px}.structure-step small{font-size:10px;color:var(--muted)}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.folder-card{padding:18px;position:relative;overflow:hidden}.folder-card:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--blue)}.folder-card.home:before{background:var(--green)}.folder-card.centre:before{background:var(--purple)}.folder-card.school:before{background:var(--blue)}.folder-top{display:flex;justify-content:space-between;align-items:center}.folder-icon{width:46px;height:46px;border-radius:14px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:21px;font-weight:900}.folder-card.home .folder-icon{background:var(--green-soft);color:var(--green)}.folder-card.centre .folder-icon{background:var(--purple-soft);color:var(--purple)}.folder-kicker{display:block;font-size:9px;letter-spacing:1.2px;font-weight:900;color:var(--muted);margin-top:16px}.folder-card h3{margin:6px 0 6px;font-size:18px}.folder-card p{color:var(--muted);margin:0;min-height:38px;line-height:1.45;font-size:12px}.folder-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:15px 0}.folder-stat-row span{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:9px;text-align:center}.folder-stat-row b,.folder-stat-row small{display:block}.folder-stat-row b{font-size:16px}.folder-stat-row small{font-size:9px;color:var(--muted);margin-top:2px}.add-card{border-style:dashed;display:grid;place-items:center;text-align:center;min-height:280px}.add-card:before{display:none}.add-card .folder-icon{margin:0 auto 13px}

.breadcrumb{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);margin-bottom:13px;overflow:auto;white-space:nowrap}.breadcrumb button{border:0;background:transparent;color:var(--blue);font-weight:750;padding:0}.breadcrumb b{color:var(--text)}
.folder-hero,.class-hero,.subject-hero{border-radius:23px;padding:22px 24px;color:#fff;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.folder-hero:after,.class-hero:after,.subject-hero:after{content:"";position:absolute;width:190px;height:190px;border:34px solid rgba(255,255,255,.07);border-radius:50%;right:-70px;top:-80px}.folder-hero.home{background:linear-gradient(135deg,#125f50,#1b8a74)}.folder-hero.centre{background:linear-gradient(135deg,#493278,#7357b5)}.folder-hero.school,.class-hero{background:linear-gradient(135deg,#153b6b,#2c6d9d)}.subject-hero.blue{background:linear-gradient(135deg,#1c4d7f,#2d79b1)}.subject-hero.purple{background:linear-gradient(135deg,#483477,#7457b4)}.subject-hero.green{background:linear-gradient(135deg,#145e4e,#218b70)}.subject-hero.amber{background:linear-gradient(135deg,#8d5410,#c07b1c)}.subject-hero.red{background:linear-gradient(135deg,#70273a,#a84960)}.folder-hero>* , .class-hero>* , .subject-hero>*{position:relative;z-index:1}.folder-hero-icon,.subject-hero-icon{width:60px;height:60px;border-radius:18px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;font-size:25px;font-weight:900}.folder-hero h1,.class-hero h1,.subject-hero h1{margin:4px 0 5px;font-size:25px}.folder-hero p,.class-hero p,.subject-hero p{margin:0;color:rgba(255,255,255,.8)}.folder-hero-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.section-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin:25px 0 13px}.section-title-row h2{margin:0;font-size:19px}.section-title-row p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.class-folder-grid,.subject-folder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.class-folder-card{padding:20px;position:relative;overflow:hidden}.class-folder-tab{position:absolute;top:0;left:18px;width:88px;height:7px;background:var(--blue);border-radius:0 0 7px 7px}.class-card-head{display:flex;justify-content:space-between;align-items:center}.class-badge{background:var(--blue-soft);color:var(--blue);font-size:10px;font-weight:900;padding:6px 9px;border-radius:999px}.class-folder-card h3{margin:15px 0 6px}.class-folder-card>p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.class-data-strip{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0;color:var(--muted);font-size:10.5px}.class-data-strip b{color:var(--text)}.subject-mini-list{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 15px}.subject-chip{font-size:9.5px;font-weight:800;padding:5px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.subject-chip.blue{background:var(--blue-soft);color:var(--blue);border-color:transparent}.subject-chip.green{background:var(--green-soft);color:var(--green);border-color:transparent}.subject-chip.purple{background:var(--purple-soft);color:var(--purple);border-color:transparent}.subject-chip.amber{background:var(--amber-soft);color:var(--amber);border-color:transparent}.subject-chip.red{background:var(--red-soft);color:var(--red);border-color:transparent}
.class-rule-banner,.inherit-banner,.inherit-modal-note{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;background:var(--green-soft);border:1px solid rgba(22,128,91,.17);border-radius:16px;padding:14px 16px;margin-top:15px}.class-rule-banner>span:first-child,.inherit-banner>span:first-child,.inherit-modal-note>span:first-child{width:39px;height:39px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:900}.class-rule-banner strong,.inherit-banner strong,.inherit-modal-note strong{display:block}.class-rule-banner p,.inherit-banner p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.inherit-modal-note small{display:block;color:var(--muted);font-size:11px;margin-top:3px;line-height:1.4}.inherit-banner{background:var(--blue-soft);border-color:rgba(40,104,167,.16)}.inherit-banner>span:first-child{background:var(--blue)}
.subject-folder-card{padding:18px;position:relative;overflow:hidden}.subject-folder-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--blue)}.subject-folder-card.purple:before{background:var(--purple)}.subject-folder-card.green:before{background:var(--green)}.subject-folder-card.amber:before{background:var(--amber)}.subject-folder-card.red:before{background:var(--red)}.subject-folder-top{display:flex;justify-content:space-between;align-items:center}.subject-folder-top>span{font-size:9px;letter-spacing:1.1px;color:var(--muted);font-weight:900}.subject-icon{width:46px;height:46px;border-radius:14px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:18px;font-weight:900;margin-top:12px}.subject-folder-card.purple .subject-icon,.subject-icon.purple{background:var(--purple-soft);color:var(--purple)}.subject-folder-card.green .subject-icon,.subject-icon.green{background:var(--green-soft);color:var(--green)}.subject-folder-card.amber .subject-icon,.subject-icon.amber{background:var(--amber-soft);color:var(--amber)}.subject-folder-card.red .subject-icon,.subject-icon.red{background:var(--red-soft);color:var(--red)}.subject-icon.mini{width:38px;height:38px;margin:0;font-size:14px}.subject-folder-card h3{margin:12px 0 5px}.subject-folder-card>p{margin:0;color:var(--muted);font-size:11px}.inherit-badge{display:flex;gap:9px;align-items:center;background:var(--green-soft);border-radius:12px;padding:10px;margin:14px 0}.inherit-badge>span{color:var(--green);font-size:18px;font-weight:900}.inherit-badge strong,.inherit-badge small{display:block}.inherit-badge strong{font-size:11px}.inherit-badge small{font-size:9px;color:var(--muted);margin-top:2px}.add-subject-card{border-style:dashed;display:grid;place-items:center;text-align:center;min-height:290px}.add-subject-card:before{display:none}.add-subject-card .subject-icon{margin:0 auto 12px}.add-subject-card p{max-width:220px;line-height:1.45;margin-bottom:14px}
.data-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:14px}.data-table{border-collapse:collapse;width:100%;min-width:820px;background:var(--surface)}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid var(--border);text-align:left;font-size:11.5px}.data-table th{background:var(--surface-2);font-size:9.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}.data-table tbody tr:hover{background:var(--blue-soft)}.data-table tr:last-child td{border-bottom:0}.student-cell{display:flex;align-items:center;gap:9px}.student-cell strong,.student-cell small{display:block}.student-cell small{color:var(--muted);font-size:9.5px}.avatar{width:43px;height:43px;border-radius:14px;background:linear-gradient(135deg,var(--blue-soft),var(--purple-soft));color:var(--navy);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.avatar.small{width:34px;height:34px;border-radius:11px;font-size:11px}.avatar.large{width:60px;height:60px;border-radius:18px;font-size:18px}
.comparison-list{display:grid;gap:14px}.comparison-label{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:6px}.comparison-label strong{font-size:12px}.comparison-label small{color:var(--muted);font-size:10px}.comparison-track{height:9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);position:relative}.comparison-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--teal))}.comparison-track span{position:absolute;top:-4px;width:3px;height:15px;border-radius:3px;background:var(--amber);transform:translateX(-1px)}

.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:15px;flex-wrap:wrap}.search-field{display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface);border-radius:13px;padding:0 12px;min-height:44px;flex:1;min-width:260px}.search-field input{border:0;outline:0;background:transparent;color:var(--text);width:100%}.select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:12px;padding:10px 12px;min-height:44px}.student-list{display:grid;gap:8px}.student-row{display:grid;grid-template-columns:auto 1.15fr 1.15fr .8fr .55fr auto;gap:13px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:15px;padding:11px 13px;box-shadow:0 3px 10px rgba(20,49,83,.03)}.student-row>div>strong,.student-row>div>small{display:block}.student-row small{color:var(--muted);font-size:10.5px}.progress-bar{height:7px;border-radius:999px;background:var(--border);overflow:hidden;margin-top:5px}.progress-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--teal))}.progress-bar.thick{height:10px}.row-actions{justify-self:end}
.profile-banner{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:15px}.profile-banner>div>strong{display:block;font-size:17px}.profile-banner>div>small{display:block;color:var(--muted);margin-top:3px}
.empty-state{padding:34px;text-align:center;color:var(--muted);background:var(--surface-2);border:1px dashed var(--border);border-radius:16px}.empty-state.wide{grid-column:1/-1}.empty-state>span{font-size:30px}.empty-state h3,.empty-state h2{color:var(--text);margin:10px 0 4px}.empty-state p{margin:0 0 14px}

.report-feature-banner{background:linear-gradient(135deg,#163b69,#286e9c);color:#fff;border-radius:21px;padding:22px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px;box-shadow:var(--shadow)}.report-feature-banner span{font-size:9px;letter-spacing:1.3px;font-weight:900;opacity:.72}.report-feature-banner h2{margin:5px 0 5px;font-size:21px}.report-feature-banner p{margin:0;color:rgba(255,255,255,.79);max-width:850px;line-height:1.5}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.report-card{padding:18px}.report-icon{width:45px;height:45px;border-radius:14px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:19px;font-weight:900}.report-card h3{margin:13px 0 6px}.report-card p{color:var(--muted);font-size:11px;line-height:1.5;min-height:48px}.report-card .btn{width:100%}

.more-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.more-tile{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:16px;padding:18px;text-align:left;box-shadow:var(--shadow-soft);transition:.16s ease}.more-tile:hover{transform:translateY(-2px);border-color:#b9cee3}.more-tile>span{font-size:24px;display:block}.more-tile strong{display:block;margin-top:12px}.more-tile small{display:block;color:var(--muted);margin-top:4px;line-height:1.4}.feature-check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.feature-check-grid>div{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:13px;display:grid;grid-template-columns:auto 1fr;column-gap:9px}.feature-check-grid span{grid-row:1/3;width:28px;height:28px;border-radius:9px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:900}.feature-check-grid strong{font-size:12px}.feature-check-grid small{color:var(--muted);font-size:10px;line-height:1.35;margin-top:3px}
.activity-timeline{display:grid;gap:12px}.activity-timeline>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;position:relative}.activity-timeline i{grid-row:1/3;width:10px;height:10px;border-radius:50%;margin-top:4px}.activity-timeline i.green{background:var(--green)}.activity-timeline i.blue{background:var(--blue)}.activity-timeline i.amber{background:var(--amber)}.activity-timeline strong{font-size:12px}.activity-timeline small{color:var(--muted);font-size:10px;margin-top:2px}.stack-actions{display:grid;gap:8px}
.safety-note{background:var(--amber-soft);border:1px solid rgba(189,116,21,.16);border-radius:13px;padding:12px;margin-top:16px}.safety-note strong,.safety-note span{display:block}.safety-note strong{font-size:12px;color:var(--amber)}.safety-note span{font-size:10.5px;color:var(--muted);line-height:1.45;margin-top:3px}

.syllabus-list{display:grid;gap:8px}.syllabus-row{display:grid;grid-template-columns:auto 1.15fr 1fr auto auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:14px;padding:11px;background:var(--surface-2)}.syllabus-row strong,.syllabus-row small{display:block}.syllabus-row small{color:var(--muted);font-size:10px;margin-top:3px}.big-progress>div:first-child{display:flex;justify-content:space-between;align-items:end}.big-progress strong{font-size:32px}.big-progress small{color:var(--muted)}.big-progress p{color:var(--muted);font-size:11px;line-height:1.5}
.settings-list{display:grid;gap:10px}.setting-card{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:15px}.setting-icon{width:42px;height:42px;border-radius:13px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:18px}.setting-text strong,.setting-text small{display:block}.setting-text small{color:var(--muted);font-size:11px;margin-top:3px}.switch{width:50px;height:28px;border:0;border-radius:999px;background:#cfd8e3;padding:3px;transition:.2s}.switch i{display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.2s}.switch.on{background:var(--green)}.switch.on i{transform:translateX(22px)}

.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.form-grid.tight{gap:10px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:10.5px;font-weight:800;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;padding:10px 11px;outline:0;min-height:42px}.field textarea{min-height:84px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7ca8d0;box-shadow:0 0 0 3px rgba(40,104,167,.10)}.check-list{display:grid;gap:8px}.check-list label,.check-card{display:flex;gap:9px;align-items:flex-start;color:var(--text)}.check-list input,.check-card input{accent-color:var(--navy);margin-top:2px}.check-list.boxed{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:13px}.check-card{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:10px}.check-card b,.check-card small{display:block}.check-card b{font-size:11px}.check-card small{font-size:9.5px;color:var(--muted);margin-top:2px;line-height:1.35}
.attendance-list{display:grid;gap:8px;max-height:430px;overflow:auto}.attendance-list>div{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--border);border-radius:13px;padding:9px;background:var(--surface-2)}.attendance-list select{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:8px}

.modal-wrap{position:fixed;inset:0;background:rgba(7,18,32,.56);backdrop-filter:blur(4px);z-index:100;display:grid;place-items:center;padding:18px}.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.modal.small{width:min(560px,100%)}.modal-head,.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.modal-close{width:38px;height:38px;border:0;border-radius:12px;background:var(--surface-2);color:var(--text);font-size:20px}.modal-body{padding:20px}.modal-foot{border-bottom:0;border-top:1px solid var(--border);justify-content:flex-end}.toast-host{position:fixed;right:22px;bottom:22px;z-index:150;display:grid;gap:8px}.toast{background:#173a62;color:#fff;border-radius:12px;padding:12px 15px;box-shadow:0 12px 30px rgba(0,0,0,.24);font-size:12px;max-width:360px}.toast.error{background:#9e3440}

.pdf-studio-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:18px;align-items:start}.pdf-controls{position:sticky;top:calc(var(--topbar) + 16px);max-height:calc(100vh - var(--topbar) - 34px);overflow:auto;padding:0}.control-section{padding:16px;border-bottom:1px solid var(--border)}.control-section h3{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.7px}.control-section .field+.field{margin-top:10px}.pdf-engine-note{margin:15px;background:var(--green-soft);border:1px solid rgba(22,128,91,.15);border-radius:13px;padding:11px;display:flex;gap:9px}.pdf-engine-note>span{width:29px;height:29px;border-radius:9px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.pdf-engine-note strong,.pdf-engine-note small{display:block}.pdf-engine-note strong{font-size:11px}.pdf-engine-note small{font-size:9.5px;color:var(--muted);line-height:1.4;margin-top:3px}.pdf-preview-panel{background:#dce4ec;border:1px solid #c8d3de;border-radius:18px;overflow:hidden;min-height:700px}.pdf-preview-toolbar{height:60px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;align-items:center;padding:0 15px}.pdf-preview-toolbar strong,.pdf-preview-toolbar small{display:block}.pdf-preview-toolbar small{font-size:10px;color:var(--muted);margin-top:2px}.pdf-preview-viewport{padding:24px;overflow:auto;max-height:calc(100vh - var(--topbar) - 120px)}.pdf-preview-stack{display:grid;gap:22px;margin:0 auto;transform-origin:top center;transition:.18s}.pdf-preview-page{background:#fff;box-shadow:0 8px 28px rgba(20,34,50,.22);margin:0 auto;width:min(100%,850px);line-height:0}.pdf-preview-page svg{display:block;width:100%;height:auto}.pdf-preview-page[data-page]:before{content:"Page " attr(data-page);position:absolute}.pdf-preview-page{position:relative}.pdf-preview-page:before{top:8px;right:-42px;font-size:9px;color:#6b7684;line-height:1}

.global-results{display:grid;gap:7px}.global-results button span{width:34px;height:34px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}.global-results b{font-size:18px;color:var(--muted)}
.bottom-nav{display:none}

@media(max-width:1180px){
  .card-grid,.class-folder-grid,.subject-folder-grid,.report-grid{grid-template-columns:repeat(2,1fr)}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .more-grid{grid-template-columns:repeat(3,1fr)}
  .feature-check-grid{grid-template-columns:repeat(2,1fr)}
  .pdf-studio-layout{grid-template-columns:320px minmax(0,1fr)}
  .structure-banner{grid-template-columns:repeat(4,1fr)}.structure-banner>i{display:none}
}
@media(max-width:900px){
  :root{--drawer:0px;--topbar:66px}.app-shell{padding-left:0}.drawer{width:282px;transform:translateX(-102%);transition:.2s}.drawer.open{transform:none}.scrim{position:fixed;inset:0;background:rgba(4,15,27,.48);z-index:55}.scrim.show{display:block}.topbar{left:0;padding:0 14px}.topbar-title span{max-width:54vw}.view-host{padding:calc(var(--topbar) + 16px) 15px calc(var(--bottom) + 24px)}.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;height:var(--bottom);background:var(--surface);border-top:1px solid var(--border);z-index:45;padding-bottom:env(safe-area-inset-bottom)}.bottom-item{border:0;background:transparent;color:var(--muted);display:grid;place-items:center;padding:8px 3px}.bottom-item span{font-size:19px}.bottom-item small{font-size:9px}.bottom-item.active{color:var(--blue)}.hero{grid-template-columns:1fr}.hero-status{display:none}.content-grid{grid-template-columns:1fr}.folder-hero,.class-hero,.subject-hero{grid-template-columns:auto 1fr}.folder-hero-actions{grid-column:1/-1;justify-content:flex-start}.pdf-studio-layout{grid-template-columns:1fr}.pdf-controls{position:static;max-height:none}.pdf-preview-viewport{max-height:none}.student-row{grid-template-columns:auto 1fr auto}.hide-mobile{display:none}.syllabus-row{grid-template-columns:auto 1fr auto}.syllabus-row>div:nth-child(3){grid-column:1/-1}.syllabus-row .status{display:none}.structure-banner{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .page-head{display:grid}.page-head .button-row,.page-head>.btn{justify-self:stretch}.page-head>.btn{width:100%}.page-head h1{font-size:24px}.hero{padding:21px;border-radius:21px}.hero h1{font-size:25px}.metric-grid,.metric-grid.three,.metric-grid.two{grid-template-columns:1fr 1fr}.metric-card{padding:12px}.metric-icon{width:38px;height:38px}.metric-card strong{font-size:18px}.quick-grid,.quick-grid.two{grid-template-columns:1fr 1fr}.card-grid,.class-folder-grid,.subject-folder-grid,.report-grid,.more-grid,.feature-check-grid{grid-template-columns:1fr}.section-title-row{display:grid;align-items:start}.section-title-row .button-row{width:100%}.section-title-row .btn{flex:1}.folder-hero,.class-hero,.subject-hero{grid-template-columns:1fr;text-align:left}.folder-hero-icon,.subject-hero-icon{width:50px;height:50px}.folder-hero-actions{grid-column:auto}.folder-hero-actions .btn{flex:1}.class-rule-banner,.inherit-banner{grid-template-columns:auto 1fr}.class-rule-banner>.status,.inherit-banner>.btn{grid-column:1/-1}.structure-banner{grid-template-columns:1fr}.structure-step{min-width:0}.report-feature-banner{display:grid}.report-feature-banner .btn{width:100%}.toolbar{display:grid}.search-field{min-width:0}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.pdf-preview-viewport{padding:10px}.pdf-preview-toolbar{height:auto;padding:11px;display:grid}.pdf-preview-toolbar .button-row{justify-content:flex-start}.modal-wrap{padding:8px}.modal{border-radius:18px;max-height:96vh}.modal-head,.modal-body,.modal-foot{padding:14px}.attendance-list>div{align-items:flex-start;display:grid}.attendance-list select{width:100%}.toast-host{left:12px;right:12px;bottom:calc(var(--bottom) + 10px)}.toast{max-width:none}.topbar-actions .pill-btn{display:none}.metric-card em{display:none}
}
@media(max-width:420px){.metric-grid,.metric-grid.three,.metric-grid.two{grid-template-columns:1fr}.quick-grid,.quick-grid.two{grid-template-columns:1fr 1fr}.topbar-title span{display:none}.btn{padding:10px 12px}.folder-hero-actions{display:grid;grid-template-columns:1fr}.subject-folder-grid{grid-template-columns:1fr}}

/* Progress Pilot v3: class-first records and assessment evidence */
.workplace-quick-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.workplace-quick-strip>button,.class-picker-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;box-shadow:0 5px 16px rgba(20,49,83,.05)}
.workplace-quick-strip>button{padding:16px;text-align:left;color:var(--text);display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center}
.workplace-quick-strip>button>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--sky);font-size:20px}
.workplace-quick-strip strong,.workplace-quick-strip small{display:block}.workplace-quick-strip small{color:var(--muted);margin-top:4px;line-height:1.35}.workplace-quick-strip b{font-size:22px;color:var(--muted)}
.action-hero{background:linear-gradient(135deg,var(--navy),#246b9e 62%,var(--teal));color:#fff;border-radius:24px;padding:22px;display:grid;grid-template-columns:62px 1fr auto;gap:17px;align-items:center;box-shadow:var(--shadow)}
.action-hero>span{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-size:28px}.action-hero h1{margin:0 0 6px;font-size:24px}.action-hero p{margin:0;color:rgba(255,255,255,.78)}
.class-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}.class-picker-card{padding:19px}.class-picker-card h3{margin:12px 0 6px}.class-picker-card p{margin:0 0 15px;color:var(--muted);min-height:38px}
.compact-hero{padding-block:20px}.table-actions{display:flex;gap:6px;align-items:center}.danger-mini{color:var(--red)!important;background:#fff0f0!important;border-color:#f3caca!important}.table-sub{display:block;color:var(--muted);margin-top:3px}
.record-list{display:grid;gap:10px}.record-list>article{border:1px solid var(--border);border-radius:14px;padding:13px;display:grid;grid-template-columns:86px 1fr auto;gap:12px;align-items:start;background:var(--surface-2)}.record-list p{margin:5px 0 0;color:var(--muted);font-size:12px}.record-list small{display:block;color:var(--muted);margin-top:3px}.record-date{font-weight:800;color:var(--navy);font-size:12px}
.assessment-mini-list{display:grid;gap:9px}.assessment-mini-list>article{border:1px solid var(--border);border-radius:13px;padding:12px;display:grid;grid-template-columns:1fr auto auto;gap:9px;align-items:center;background:var(--surface-2)}.assessment-mini-list strong,.assessment-mini-list small{display:block}.assessment-mini-list small{color:var(--muted);margin-top:3px}.score-badge{border-radius:999px;background:var(--sky);color:var(--navy);font-weight:800;padding:6px 9px}.evidence-count{border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);padding:7px 9px;font-weight:700}
.evidence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.evidence-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:17px;box-shadow:0 5px 16px rgba(20,49,83,.05)}.evidence-select{position:absolute;top:13px;right:13px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 9px;font-size:11px;display:flex;gap:5px;align-items:center}.evidence-card-head{display:flex;justify-content:space-between;gap:12px;padding-right:72px}.evidence-card h3{margin:5px 0 6px}.evidence-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.score-circle{min-width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:19px;font-weight:900}.score-circle small{font-size:10px;margin-left:-8px;margin-top:25px;position:absolute}.evidence-thumb-strip{height:145px;margin:15px 0;border-radius:14px;background:var(--surface-2);border:1px dashed var(--border);display:flex;gap:6px;align-items:center;justify-content:center;overflow:hidden;position:relative}.evidence-thumb-strip img{height:100%;min-width:0;max-width:33%;object-fit:cover;flex:1}.evidence-thumb-strip>span{position:absolute;right:8px;bottom:8px;background:rgba(14,43,80,.86);color:#fff;border-radius:999px;padding:5px 8px;font-weight:800}.evidence-placeholder{color:var(--muted);font-size:12px}.evidence-card-foot{display:flex;justify-content:space-between;gap:10px;align-items:center}.evidence-card-foot>span{font-size:11px;color:var(--muted)}
.hybrid-note{border:1px solid #b9d9ef;background:linear-gradient(135deg,#edf7ff,#f4fffb);border-radius:18px;padding:16px;display:grid;grid-template-columns:45px 1fr auto;gap:12px;align-items:center;color:#17304d}.hybrid-note>span:first-child{width:44px;height:44px;border-radius:14px;background:#d9efff;display:grid;place-items:center;font-size:22px}.hybrid-note p{margin:4px 0 0;color:#5b7187;font-size:12px}
.evidence-upload-box{border:1px dashed #9bbbd7;border-radius:16px;background:var(--sky);padding:14px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.evidence-upload-box>span{color:var(--muted);font-size:12px;flex:1;min-width:180px}.pending-evidence-grid,.evidence-manager-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.pending-evidence-grid article,.evidence-manager-grid article{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;padding:8px;position:relative}.pending-evidence-grid img,.evidence-manager-grid img{width:100%;height:140px;object-fit:cover;border-radius:9px;background:#eef2f7}.pending-evidence-grid span{display:block;font-size:11px;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-evidence-grid button{position:absolute;right:12px;top:12px;border:0;background:rgba(160,35,35,.9);color:#fff;border-radius:50%;width:26px;height:26px}.evidence-manager-grid article{display:grid;grid-template-columns:86px 1fr auto;gap:9px;align-items:center}.evidence-manager-grid img{height:92px}.evidence-manager-grid strong,.evidence-manager-grid small{display:block}.evidence-manager-grid small{color:var(--muted);margin-top:4px}
.selected-test-list{display:grid;gap:8px}.selected-test-list>div{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.selected-test-list small{display:block;color:var(--muted);margin-top:3px}.selected-test-list>div>span{grid-row:1/3;color:var(--green);font-weight:900}
.evidence-preview-page{background:#e6ebf2!important}.evidence-sheet{position:relative;aspect-ratio:595.28/841.89;background:#fff;color:var(--pdf-text);overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.18);font-family:Arial,Helvetica,sans-serif}.evidence-sheet header{height:11.2%;background:var(--pdf-primary);color:#fff;display:flex;align-items:center;gap:14px;padding:3.5% 6%}.evidence-logo{width:8.5%;aspect-ratio:1;border-radius:50%;background:#fff;color:var(--pdf-primary);display:grid;place-items:center;font-weight:900;font-size:1.1vw}.evidence-sheet header small{font-weight:800;font-size:.65vw;letter-spacing:.08em}.evidence-sheet header h2{margin:.5% 0;font-size:1.55vw}.evidence-sheet header p{margin:0;opacity:.8;font-size:.7vw}.evidence-cover{padding:5% 6%}.evidence-cover h3{font-size:1.1vw;margin:0 0 1%}.evidence-cover p{font-size:.7vw;color:#64748b}.evidence-cover table{border-collapse:collapse;width:100%;font-size:.58vw}.evidence-cover th{background:var(--pdf-primary);color:#fff;text-align:left;padding:1.3%}.evidence-cover td{border:1px solid #d9e4ef;padding:1.25%}.evidence-images{padding:3.4% 6% 7%;height:80%;display:grid;grid-template-columns:1fr;gap:2%}.evidence-images.two{grid-template-rows:1fr 1fr}.evidence-images section{border:1px solid #d9e4ef;border-radius:1%;padding:1.5%;display:flex;flex-direction:column;min-height:0}.evidence-meta{background:var(--pdf-pale);padding:1.2%;display:flex;justify-content:space-between;font-size:.62vw}.evidence-images img{flex:1;min-height:0;width:100%;object-fit:contain;margin-top:1%;background:#f5f7fa}.evidence-images p{font-size:.55vw;margin:.7% 0 0}.evidence-empty{flex:1;display:grid;place-items:center;background:#f5f7fa;color:#64748b;font-size:.7vw}.evidence-sheet footer{position:absolute;left:6%;right:6%;bottom:2.4%;border-top:1px solid #d9e4ef;padding-top:1%;font-size:.55vw;color:#64748b}

@media(max-width:1050px){.workplace-quick-strip,.class-picker-grid,.evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.workplace-quick-strip{grid-template-columns:1fr 1fr}.workplace-quick-strip>button{grid-template-columns:36px 1fr;padding:12px}.workplace-quick-strip>button>b{display:none}.workplace-quick-strip>button>span{width:36px;height:36px}.action-hero{grid-template-columns:48px 1fr}.action-hero>span{width:46px;height:46px}.action-hero>.btn{grid-column:1/-1}.class-picker-grid,.evidence-grid{grid-template-columns:1fr}.record-list>article{grid-template-columns:72px 1fr}.record-list .table-actions{grid-column:2}.pending-evidence-grid{grid-template-columns:1fr 1fr}.evidence-manager-grid{grid-template-columns:1fr}.hybrid-note{grid-template-columns:42px 1fr}.hybrid-note>.status{grid-column:2}.evidence-card-head{padding-right:62px}.evidence-sheet header h2{font-size:3vw}.evidence-sheet header small,.evidence-sheet header p,.evidence-cover p,.evidence-meta,.evidence-images p{font-size:1.4vw}.evidence-cover h3{font-size:2.3vw}.evidence-cover table{font-size:1.15vw}.evidence-sheet footer{font-size:1.1vw}.evidence-logo{font-size:2.4vw}}

/* Progress Pilot V4 additions */
.brand-mark.image-mark{overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.32);padding:3px}.brand-mark.image-mark img{width:100%;height:100%;object-fit:contain;display:block}.hero-brand-logo{width:74px;height:74px;object-fit:contain;background:#fff;border-radius:20px;padding:6px;box-shadow:0 12px 30px rgba(11,37,70,.18)}
.one-page-rule{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;border:1px solid #cfe0f0;background:linear-gradient(135deg,var(--blue-soft),var(--surface));border-radius:15px;padding:13px;margin-bottom:14px}.one-page-rule>span{width:36px;height:36px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900}.one-page-rule strong,.one-page-rule small{display:block}.one-page-rule small{color:var(--muted);margin-top:3px;line-height:1.45}
.pdf-preview-stack .one-page-canvas{background:#e6ebf2;padding:18px;display:flex;justify-content:center;align-items:flex-start;min-height:100%}.pdf-preview-stack .one-page-canvas canvas{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 5px 24px rgba(15,32,50,.22);border-radius:2px}.pdf-preview-stack canvas{image-rendering:auto}
.unit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.unit-card{border:1px solid var(--border);background:var(--surface-2);border-radius:16px;padding:14px;min-width:0}.unit-card.complete{border-color:#a9dccb;background:linear-gradient(135deg,var(--green-soft),var(--surface))}.unit-card-head{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.unit-card-head .folder-kicker{margin-top:0}.unit-card h3{margin:4px 0 0;font-size:15px}.unit-complete-toggle{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:var(--muted);white-space:nowrap}.unit-complete-toggle input{accent-color:var(--green)}.topic-chip-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.topic-chip{padding:5px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:9.5px;font-weight:750}.topic-chip.done{background:var(--green-soft);color:var(--green);border-color:transparent}
.attendance-filter-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}.attendance-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.attendance-day-card{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;padding:10px;text-align:center}.attendance-day-card strong,.attendance-day-card small{display:block}.attendance-day-card small{color:var(--muted);margin-top:3px}.attendance-summary-strip{display:flex;gap:8px;flex-wrap:wrap}.attendance-summary-strip span{background:var(--surface-2);border:1px solid var(--border);padding:7px 10px;border-radius:999px;font-size:10.5px;font-weight:800}
.daily-record-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}.daily-student-grid{display:grid;gap:12px}.daily-student-card{border:1px solid var(--border);background:var(--surface-2);border-radius:16px;padding:14px}.daily-student-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.daily-student-head .student-cell{min-width:0}.daily-record-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.daily-record-fields .field.activity,.daily-record-fields .field.note{grid-column:span 2}.daily-record-fields label{font-size:9.5px}.daily-record-fields select,.daily-record-fields input,.daily-record-fields textarea{font-size:11px;padding:9px}.daily-record-history{display:grid;gap:8px}.daily-record-history article{display:grid;grid-template-columns:82px 1fr auto;gap:10px;align-items:start;padding:11px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2)}.daily-record-history small{display:block;color:var(--muted);margin-top:3px;line-height:1.4}
.schedule-fieldset{border:1px solid var(--border);border-radius:15px;padding:13px;margin:14px 0 0}.schedule-fieldset legend{padding:0 7px;color:var(--navy);font-weight:850;font-size:11px}[data-theme="dark"] .schedule-fieldset legend{color:#91c3f4}.day-check-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.day-check{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--border);background:var(--surface-2);border-radius:10px;padding:8px 5px;font-size:9.5px;font-weight:800}.day-check input{accent-color:var(--blue)}
.identity-settings-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:18px}.signature-settings-card,.brand-preview-card{border:1px solid var(--border);background:var(--surface-2);border-radius:16px;padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.signature-preview{width:210px;max-width:100%;height:88px;object-fit:contain;background:#fff;border:1px dashed #b7c8da;border-radius:10px;padding:8px}.signature-preview.placeholder-logo{width:92px;height:92px;border-radius:18px}.brand-preview-card img{width:130px;height:130px;object-fit:contain;background:#fff;border-radius:20px;padding:8px;border:1px solid var(--border)}
.feature-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.feature-check-grid>div{display:grid;grid-template-columns:30px 1fr;gap:8px;border:1px solid var(--border);background:var(--surface-2);border-radius:13px;padding:11px}.feature-check-grid span{grid-row:1/3;width:27px;height:27px;border-radius:9px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:900}.feature-check-grid strong,.feature-check-grid small{display:block}.feature-check-grid small{color:var(--muted);line-height:1.35}
.evidence-logo{overflow:hidden}.evidence-logo img{width:92%;height:92%;object-fit:contain;display:block}
.class-schedule-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:10px;color:var(--muted);font-weight:750}

@media(max-width:980px){.attendance-filter-panel,.daily-record-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-filter-panel>.button-row,.daily-record-toolbar>.button-row{grid-column:1/-1}.attendance-day-grid{grid-template-columns:repeat(4,1fr)}.daily-record-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.identity-settings-grid{grid-template-columns:1fr}.feature-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day-check-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:720px){.hero-brand-logo{width:58px;height:58px;border-radius:16px}.unit-grid{grid-template-columns:1fr}.attendance-filter-panel,.daily-record-toolbar{grid-template-columns:1fr}.attendance-day-grid{grid-template-columns:repeat(2,1fr)}.daily-record-fields{grid-template-columns:1fr}.daily-record-fields .field.activity,.daily-record-fields .field.note{grid-column:auto}.daily-record-history article{grid-template-columns:68px 1fr}.daily-record-history article>:last-child{grid-column:2}.feature-check-grid{grid-template-columns:1fr}.day-check-grid{grid-template-columns:repeat(2,1fr)}.pdf-preview-stack .one-page-canvas{padding:8px}.signature-preview{height:76px}}

/* Progress Pilot V4.3 — identity, security, reminders and improved selectors */
.teacher-mini{display:flex;align-items:center;gap:9px;padding:0 0 12px;margin-bottom:11px;border-bottom:1px solid rgba(255,255,255,.12)}
.teacher-mini .avatar{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.2)}
.teacher-mini strong,.teacher-mini small{display:block}.teacher-mini strong{font-size:12px}.teacher-mini small{font-size:9.5px;opacity:.68;margin-top:2px}
.notification-button{position:relative}.notification-badge{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;border-radius:999px;padding:0 5px;background:var(--red);color:#fff;border:2px solid var(--surface);font-size:9px;font-weight:900;display:grid;place-items:center;font-style:normal}
.danger-text{color:var(--red)!important}.mini-btn.danger{color:var(--red);background:var(--red-soft)}
.settings-list.embedded{margin-top:0}.security-panel{overflow:hidden}.security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.security-grid article{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:15px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,var(--surface-2),var(--surface))}.security-grid article>.link-btn{grid-column:3}.security-icon{width:44px;height:44px;border-radius:14px;background:var(--blue-soft);color:var(--navy);display:grid;place-items:center;font-size:19px}.security-grid strong,.security-grid small{display:block}.security-grid small{color:var(--muted);margin-top:3px;line-height:1.4}.privacy-note{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;margin-top:14px;padding:12px;border-radius:13px;background:var(--blue-soft);border:1px solid #cfe0f0}.privacy-note>span{width:30px;height:30px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:900}.privacy-note p{margin:0;font-size:11px;line-height:1.55;color:var(--muted)}
.notification-capability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.notification-capability-grid>div{display:grid;grid-template-columns:30px 1fr;column-gap:8px;padding:12px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2)}.notification-capability-grid span{grid-row:1/3;width:28px;height:28px;border-radius:9px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:900}.notification-capability-grid strong,.notification-capability-grid small{display:block}.notification-capability-grid small{font-size:10px;color:var(--muted);margin-top:2px;line-height:1.35}
.reminder-list{display:grid;gap:11px}.reminder-card{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:start;border:1px solid var(--border);background:var(--surface-2);padding:14px;border-radius:16px;transition:.18s ease}.reminder-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);border-color:#b8cee4}.reminder-card.paused{opacity:.64}.reminder-type-icon{width:45px;height:45px;border-radius:14px;background:var(--blue-soft);display:grid;place-items:center;font-size:18px}.reminder-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reminder-main>small{display:block;color:var(--muted);font-size:10.5px;margin-top:4px}.reminder-main p{margin:7px 0 0;font-size:11px;line-height:1.45;color:var(--muted)}.reminder-actions{display:flex;gap:6px}
.onboarding-modal{text-align:center;padding:7px 3px}.onboarding-modal>img{width:155px;height:105px;object-fit:contain;margin-bottom:4px}.onboarding-modal h1{font-size:25px;margin:7px 0}.onboarding-modal>p{color:var(--muted);line-height:1.55;max-width:520px;margin:0 auto 17px}.onboarding-modal form{text-align:left}.onboarding-note{display:block;color:var(--muted);margin-top:13px;font-size:10px}
.app-is-locked{overflow:hidden}.app-lock-screen{position:fixed;inset:0;z-index:10000;background:radial-gradient(circle at 80% 15%,rgba(54,122,188,.25),transparent 35%),linear-gradient(145deg,#071b32,#123d6c 58%,#0a6d72);display:grid;place-items:center;padding:20px}.lock-card{width:min(440px,100%);background:rgba(255,255,255,.97);color:#182235;border:1px solid rgba(255,255,255,.5);border-radius:27px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.34);text-align:center}.lock-card>img{width:86px;height:86px;object-fit:contain;background:#fff;border:1px solid #dbe5ef;border-radius:22px;padding:6px}.lock-card h1{font-size:27px;margin:8px 0}.lock-card>p{color:#667085;margin:0 0 19px}.lock-card form{text-align:left}.lock-card form label{display:block;font-size:11px;font-weight:850;margin-bottom:7px}.unlock-input{display:grid;grid-template-columns:1fr auto;border:1px solid #cbd8e5;border-radius:14px;overflow:hidden;background:#fff}.unlock-input input{border:0;padding:14px;outline:none;min-width:0}.unlock-input button{border:0;background:#153b6b;color:#fff;font-weight:850;padding:0 18px}.lock-card #unlockError{min-height:20px;display:block;color:#b93842;margin:6px 2px 0}.biometric-unlock{width:100%;margin-top:12px;border:1px solid #cfdeec;border-radius:14px;background:#edf5fc;color:#173f6b;padding:12px;display:grid;grid-template-columns:40px 1fr;gap:10px;text-align:left;align-items:center}.biometric-unlock>span{width:38px;height:38px;border-radius:12px;background:#fff;display:grid;place-items:center;font-size:20px}.biometric-unlock strong,.biometric-unlock small{display:block}.biometric-unlock small{color:#667085;margin-top:2px}
.field-help{display:block;color:var(--muted);font-size:9.5px;line-height:1.35;margin-top:5px}.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,104,167,.12);outline:none}.modal{animation:modalRise .2s ease}@keyframes modalRise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.quick-action,.folder-card,.class-folder-card,.subject-folder-card,.report-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.quick-action:hover,.folder-card:hover,.class-folder-card:hover,.subject-folder-card:hover,.report-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#bad0e5}

@media(max-width:980px){.security-grid,.notification-capability-grid{grid-template-columns:1fr}}
@media(max-width:720px){.topbar{padding:0 12px}.topbar-actions{gap:5px}.topbar-actions .icon-btn{min-width:38px;height:38px}.notification-button{display:grid}.security-grid article{grid-template-columns:auto 1fr}.security-grid article>.btn,.security-grid article>.link-btn{grid-column:1/-1;width:100%}.reminder-card{grid-template-columns:auto 1fr}.reminder-actions{grid-column:2}.onboarding-modal>img{width:125px;height:86px}.lock-card{padding:22px 18px;border-radius:22px}.lock-card h1{font-size:23px}.unlock-input{grid-template-columns:1fr}.unlock-input button{min-height:45px}.notification-capability-grid{grid-template-columns:1fr}}

/* Progress Pilot V4.3 — general timetable folders, class folders and day-wise planner */
.timetable-folder-grid,.timetable-class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.timetable-folder-card,.timetable-class-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-soft);padding:18px;position:relative;overflow:hidden;transition:.18s ease}
.timetable-folder-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--blue)}
.timetable-folder-card.tone-purple:before{background:var(--purple)}.timetable-folder-card.tone-green:before{background:var(--green)}.timetable-folder-card.tone-amber:before{background:var(--amber)}.timetable-folder-card.tone-red:before{background:var(--red)}
.timetable-folder-card:hover,.timetable-class-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#b9cee3}
.timetable-folder-top,.timetable-class-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.timetable-folder-icon{width:48px;height:48px;border-radius:15px;background:var(--blue-soft);color:var(--navy);display:grid;place-items:center;font-size:22px;font-weight:900}
.timetable-folder-card h3,.timetable-class-card h3{font-size:18px;margin:9px 0 6px}.timetable-folder-card p,.timetable-class-card p{font-size:11px;line-height:1.5;color:var(--muted);min-height:34px;margin:0 0 14px}.timetable-folder-card.add-card,.timetable-class-card.add-card{display:grid;place-items:center;text-align:center;border-style:dashed;background:var(--surface-2)}
.timetable-folder-hero{border-radius:24px;padding:24px;background:linear-gradient(135deg,#143a67,#2868a7);color:#fff;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;box-shadow:var(--shadow)}.timetable-folder-hero.tone-purple{background:linear-gradient(135deg,#36276b,#765bc2)}.timetable-folder-hero.tone-green{background:linear-gradient(135deg,#0a5c46,#159170)}.timetable-folder-hero.tone-amber{background:linear-gradient(135deg,#7f4a09,#c98522)}.timetable-folder-hero.tone-red{background:linear-gradient(135deg,#7c2630,#c6535c)}
.timetable-folder-hero h1,.timetable-class-hero h1{margin:4px 0 6px;font-size:27px}.timetable-folder-hero p,.timetable-class-hero p{margin:0;color:rgba(255,255,255,.82)}.timetable-hero-icon{width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;font-size:27px}
.timetable-class-hero{background:linear-gradient(135deg,#143a67,#0e8c88)}
.week-board{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));gap:10px;overflow-x:auto;padding-bottom:4px}.week-day{border:1px solid var(--border);border-radius:15px;background:var(--surface-2);min-height:170px;overflow:hidden}.week-day.today{border-color:#78add8;box-shadow:inset 0 0 0 1px #78add8}.week-day>header{display:flex;justify-content:space-between;align-items:center;padding:10px 11px;background:var(--surface);border-bottom:1px solid var(--border);font-size:11px}.week-day>header span{width:23px;height:23px;border-radius:999px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:900}.week-day>div{padding:8px;display:grid;gap:7px}
.week-period{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:11px;padding:8px;text-align:left;display:grid;gap:2px;transition:.15s ease}.week-period:hover{border-color:#93b7d8;transform:translateY(-1px)}.week-period.conflict{border-color:#df8c93;background:var(--red-soft)}.week-period time{font-size:9px;font-weight:900;color:var(--blue)}.week-period strong{font-size:11px}.week-period small,.week-period em{font-size:8.5px;color:var(--muted);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-empty{text-align:center;color:var(--muted);font-size:9px;margin:24px 0}
.timetable-agenda{display:grid;gap:9px}.timetable-entry{display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:start;padding:12px;border:1px solid var(--border);background:var(--surface-2);border-radius:15px}.timetable-entry.has-conflict{border-color:#dc8a92;background:linear-gradient(90deg,var(--red-soft),var(--surface-2))}.timetable-day-badge{width:66px;border-radius:12px;padding:8px;background:var(--blue-soft);color:var(--navy);text-align:center}.timetable-day-badge strong,.timetable-day-badge small{display:block}.timetable-day-badge strong{font-size:11px}.timetable-day-badge small{font-size:9px;margin-top:2px}.timetable-entry-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.timetable-entry-main>small,.timetable-entry-main>p,.timetable-entry-main>em{display:block;color:var(--muted);font-size:10px;line-height:1.45}.timetable-entry-main>p{margin:4px 0 0}.timetable-entry-main>em{margin-top:4px;font-style:normal}.timetable-entry-actions{display:flex;gap:6px}
.filter-row{display:flex;gap:8px;flex-wrap:wrap}.filter-row select,.filter-row input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 10px;font-size:11px}.filter-row input{min-width:210px}.hero-empty{padding:36px 20px;border:1px dashed #a9c1d9;background:linear-gradient(135deg,var(--surface),var(--blue-soft));border-radius:22px}.hero-empty h2{margin:8px 0}.conflict-preview{margin-top:12px;border:1px solid #df9aa0;background:var(--red-soft);color:var(--red);border-radius:12px;padding:10px;font-size:11px}
@media(max-width:1150px){.timetable-folder-grid,.timetable-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.week-board{grid-template-columns:repeat(7,170px)}}
@media(max-width:720px){.timetable-folder-grid,.timetable-class-grid{grid-template-columns:1fr}.timetable-folder-hero{grid-template-columns:auto 1fr}.timetable-folder-hero .folder-hero-actions{grid-column:1/-1}.timetable-entry{grid-template-columns:58px 1fr}.timetable-entry-actions{grid-column:2}.timetable-day-badge{width:56px}.filter-row{width:100%}.filter-row select,.filter-row input{width:100%;min-width:0}.week-board{grid-template-columns:repeat(7,155px)}}
