:root{
  --blue:#6558d8;--blue2:#2aa7a0;--navy:#202748;--sky:#efedff;
  --line:#dfe3ef;--bg:#f5f6fb;--text:#29304f;--muted:#77809c;
  --green:#23a36d;--orange:#f28a3c;--red:#df5360;--purple:#7358d6;
  --white:#fff;--shadow:0 12px 34px rgba(39,45,83,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 92% 4%,#ece9ff 0,transparent 24%),linear-gradient(180deg,#fafaff,#f3f5fa);min-height:100vh}
a{color:var(--blue);text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}

/* Authenticated app shell */
.teacher-topbar{position:fixed;z-index:50;top:0;left:250px;right:0;height:72px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);box-shadow:0 8px 28px rgba(35,42,78,.06);backdrop-filter:blur(16px);color:var(--navy)}
.topbar-left,.topbar-user,.topbar-brand{display:flex;align-items:center;gap:11px;min-width:0}
.menu-button{display:none;width:40px;height:40px;border:1px solid #dfddf6;border-radius:12px;background:#f3f1ff;color:var(--blue)}
.topbar-brand{color:var(--navy);min-width:0}.topbar-brand img{width:42px;height:42px;object-fit:contain;background:#fff;padding:3px;border:1px solid var(--line);border-radius:12px}.topbar-brand div{min-width:0}.topbar-brand strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}.topbar-brand span{display:block;margin-top:2px;font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}
.teacher-copy{text-align:right}.teacher-copy strong{display:block;font-size:11px}.teacher-copy span{display:block;font-size:7px;color:var(--muted);margin-top:2px}.teacher-avatar{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,var(--blue),#8a72e8);color:#fff;display:grid;place-items:center;font-size:15px;font-weight:900;box-shadow:0 8px 18px rgba(101,88,216,.23)}
.teacher-sidebar{position:fixed;z-index:60;left:0;top:0;bottom:0;width:250px;background:linear-gradient(180deg,#202748,#171d38);border-right:1px solid #30395e;box-shadow:12px 0 38px rgba(24,29,55,.14);display:flex;flex-direction:column;color:#fff}
.sidebar-brand{height:82px;padding:14px 17px;display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.025);border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-logo{width:45px;height:45px;border-radius:13px;background:#fff;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;padding:3px}.sidebar-logo img{width:100%;height:100%;object-fit:contain;border-radius:9px}.sidebar-brand strong{display:block;color:#fff;font-size:12px}.sidebar-brand span{display:block;color:#aeb6d1;font-size:8px;margin-top:3px}
.sidebar-links{padding:14px 12px;display:flex;flex-direction:column;gap:5px;overflow:auto;flex:1}.sidebar-links small{font-size:7px;font-weight:900;letter-spacing:1.1px;color:#818baa;margin:13px 10px 5px}.sidebar-links small:first-child{margin-top:2px}.sidebar-links a{min-height:44px;border:1px solid transparent;border-radius:12px;padding:0 13px;display:flex;align-items:center;gap:12px;color:#c4cae0;font-size:10px;font-weight:750;transition:.18s}.sidebar-links a i{width:21px;text-align:center;color:#929cbd;font-size:15px}.sidebar-links a:hover{background:rgba(255,255,255,.07);color:#fff}.sidebar-links a.active{background:linear-gradient(100deg,rgba(123,107,232,.28),rgba(42,167,160,.13));color:#fff;border-color:rgba(150,135,241,.32)}.sidebar-links a.active i{color:#a99df5}
.sidebar-footer{padding:13px 15px;background:rgba(0,0,0,.08);border-top:1px solid rgba(255,255,255,.08)}.sidebar-footer>div{padding:0 4px 10px}.sidebar-footer span{display:block;font-size:7px;color:#929bb9}.sidebar-footer strong{font-size:10px;color:#fff}.sidebar-footer form{margin:0}.sidebar-footer button{width:100%;border:0;background:rgba(255,99,122,.11);color:#ffabb7;border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;font-size:9px;font-weight:800}.sidebar-footer button span{color:inherit;font-size:9px}
.sidebar-overlay{display:none}
.teacher-main{margin-left:250px;padding-top:72px;min-height:100vh}.content-shell{max-width:1280px;margin:auto;padding:22px 24px 70px}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.page-heading h1{font-size:27px;letter-spacing:-.6px;color:var(--navy);margin:0}.page-heading p{font-size:10px;color:var(--muted);margin:5px 0 0}
.mobile-bottom-nav{display:none}

/* Shared components */
.card{background:#fff;border:1px solid #d9e6f7;border-radius:20px;padding:20px;margin-bottom:16px;box-shadow:var(--shadow)}
.card h2{font-size:17px;color:var(--navy);margin:0 0 13px}.card h3{font-size:12px;color:var(--navy);margin:16px 0 7px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:13px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.scroll{width:100%;overflow:auto}.muted{color:var(--muted)}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#edf5ff;color:var(--blue);padding:6px 10px;font-size:8px;font-weight:850}
.notice,.alert{border:1px solid #ffe0b6;background:#fff7e8;color:#995a1b;border-radius:13px;padding:12px 14px;margin:0 0 15px;font-size:10px;display:flex;align-items:flex-start;gap:9px}.notice.success,.alert.success{background:#eaf8f0;border-color:#ceeede;color:#18794f}.alert.error{background:#fff0f2;border-color:#f4d3d8;color:#a13e49}
button,.button{border:0;border-radius:11px;padding:11px 16px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;font-size:10px;font-weight:850;box-shadow:0 8px 17px rgba(10,87,200,.16)}button:hover,.button:hover{filter:brightness(.98);transform:translateY(-1px)}button.secondary,.secondary{background:#edf5ff;color:var(--blue);box-shadow:none}.plain{background:transparent;color:inherit;box-shadow:none}
label{display:block;color:#526b8e;font-size:8px;font-weight:850;letter-spacing:.03em;margin:0 0 12px}input,select,textarea{display:block;width:100%;margin-top:6px;border:1px solid #cfdef2;border-radius:11px;background:#fff;color:var(--text);padding:11px 12px;font-size:12px;outline:none}input:focus,select:focus,textarea:focus{border-color:#6aa6ef;box-shadow:0 0 0 3px rgba(23,121,237,.11)}input[type=checkbox],input[type=radio]{display:inline-block;width:auto;margin:0}textarea{min-height:115px;resize:vertical}.inline{display:flex;align-items:center;gap:8px;margin:0;padding:9px 12px;background:#f5f9ff;border:1px solid #dce8f7;border-radius:11px;color:#355278}
table{width:100%;border-collapse:collapse;font-size:9px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #edf2f8;white-space:nowrap}th{background:#eef5ff;color:#50698d;font-size:7px;text-transform:uppercase;letter-spacing:.45px}td{color:#314d73}tbody tr:hover{background:#f9fbff}

/* Dashboard */
.welcome-hero{position:relative;overflow:hidden;border-radius:23px;padding:24px 25px;margin-bottom:14px;color:#fff;background:linear-gradient(135deg,#0a52c4,#1780ef);box-shadow:0 16px 34px rgba(15,90,198,.22);display:flex;align-items:center;justify-content:space-between;gap:20px}.welcome-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-70px;top:-105px;background:rgba(255,255,255,.1)}.welcome-copy{position:relative;z-index:2}.welcome-copy small{font-size:8px;opacity:.78}.welcome-copy h2{font-size:25px;margin:5px 0 4px;color:#fff}.welcome-copy p{font-size:9px;margin:0;opacity:.82}.hero-status{position:relative;z-index:2;min-width:220px;padding:14px 15px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.13);border-radius:16px;backdrop-filter:blur(8px)}.hero-status span{font-size:7px;opacity:.78}.hero-status strong{display:block;font-size:16px;margin:4px 0}.hero-times{display:flex;gap:14px;font-size:8px;opacity:.88}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:0 0 16px}.summary-card{position:relative;min-height:105px;border:1px solid transparent;border-radius:18px;padding:14px;box-shadow:0 8px 20px rgba(30,74,136,.06)}.summary-card i{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;margin-bottom:8px;background:rgba(255,255,255,.75)}.summary-card span{display:block;font-size:8px;font-weight:800;opacity:.78}.summary-card strong{display:block;font-size:20px;margin-top:3px;letter-spacing:-.4px}.summary-card small{display:block;font-size:7px;margin-top:4px;opacity:.7}.summary-card.present{background:#e8f8ee;color:#187c51;border-color:#d4f0df}.summary-card.late{background:#fff2e8;color:#b96527;border-color:#ffe0cc}.summary-card.diary{background:#f0edff;color:#5941ad;border-color:#e0dafc}.summary-card.classes{background:#e8f2ff;color:#1559ae;border-color:#d4e5fb}
.section-label{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 10px}.section-label strong{font-size:14px;color:var(--navy)}.section-label span{font-size:8px;color:var(--muted)}
.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quick-card{min-height:112px;padding:15px;border-radius:17px;background:#fff;border:1px solid #dbe7f7;color:#173660;box-shadow:0 7px 18px rgba(28,71,130,.05);display:flex;flex-direction:column;justify-content:space-between;transition:.2s}.quick-card:hover{transform:translateY(-2px);border-color:#bdd8fb}.quick-card i{width:39px;height:39px;border-radius:12px;background:#edf5ff;color:var(--blue);display:grid;place-items:center;font-size:16px}.quick-card:nth-child(2) i{background:#eaf8f0;color:#238e61}.quick-card:nth-child(3) i{background:#fff2e9;color:#eb7b2d}.quick-card:nth-child(4) i{background:#f1edff;color:#6e53cc}.quick-card strong{font-size:11px}.quick-card span{font-size:8px;color:var(--muted);margin-top:3px}
.dashboard-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.assignment-list{display:grid;gap:8px}.assignment-item{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;border:1px solid #e1eaf7;border-radius:13px;padding:10px}.assignment-icon{width:40px;height:40px;border-radius:12px;background:#edf5ff;color:var(--blue);display:grid;place-items:center}.assignment-item strong{display:block;font-size:10px}.assignment-item small{font-size:8px;color:var(--muted)}
.mini-record{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f8}.mini-record:last-child{border:0}.mini-record div strong{display:block;font-size:9px}.mini-record div span{font-size:7px;color:var(--muted)}
.status-chip{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:7px;font-weight:850;background:#edf5ff;color:var(--blue)}.status-chip.present{background:#e7f7ed;color:#18794f}.status-chip.late{background:#fff0e5;color:#b65c24}.status-chip.absent{background:#ffedf0;color:#b6404c}
.status-chip.leave,.status-chip.half_day{background:#f0edff;color:#654bbd}
.quick-card button,.quick-card[type=button]{text-align:left}

/* Attendance scanner */
.attendance-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:15px}.scanner-card{padding:0;overflow:hidden}.scanner-head{padding:19px 20px;background:linear-gradient(135deg,#0a52c4,#1780ef);color:#fff}.scanner-head h2{color:#fff;margin:0 0 5px}.scanner-head p{font-size:9px;opacity:.82;margin:0}.scanner-body{padding:20px}.punch-toggle{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.punch-option{position:relative;margin:0}.punch-option input{position:absolute;opacity:0}.punch-option span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border-radius:12px;border:1px solid #d4e2f4;background:#f7faff;color:#536d91;font-size:10px;font-weight:850}.punch-option input:checked+span{background:#e8f2ff;border-color:#85b6f1;color:var(--blue);box-shadow:0 0 0 3px rgba(23,121,237,.09)}
#reader{max-width:520px;margin:15px auto;border-radius:16px;overflow:hidden;border:1px solid #dbe7f6;background:#f5f8fc}#reader video{border-radius:14px}.scan-message{margin-top:13px}
.timing-card{background:linear-gradient(145deg,#fff,#f8fbff)}.timing-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #edf2f8}.timing-row:last-child{border:0}.timing-row i{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf5ff;color:var(--blue)}.timing-row span{display:block;font-size:7px;color:var(--muted)}.timing-row strong{display:block;font-size:11px;margin-top:2px;color:var(--navy)}
.steps{counter-reset:step;display:grid;gap:9px}.step{position:relative;padding:10px 10px 10px 42px;border:1px solid #e1eaf7;border-radius:12px;font-size:9px;color:#536d91}.step:before{counter-increment:step;content:counter(step);position:absolute;left:10px;top:8px;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#e8f2ff;color:var(--blue);font-weight:900}

/* Profile and login */
.profile-hero{display:flex;align-items:center;gap:15px;padding:20px;border-radius:20px;background:linear-gradient(135deg,#0a52c4,#1780ef);color:#fff;margin-bottom:15px}.profile-avatar{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.25);font-size:23px;font-weight:900}.profile-hero h2{color:#fff;margin:0;font-size:20px}.profile-hero p{margin:4px 0 0;font-size:9px;opacity:.8}.profile-meta{margin-left:auto;text-align:right}.profile-meta span{display:block;font-size:7px;opacity:.72}.profile-meta strong{font-size:10px}
.account-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:15px}
.teacher-login-page{background:#f3f7fc}.login-main{min-height:100vh}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr}.login-brand{position:relative;overflow:hidden;padding:55px 7vw;color:#fff;background:linear-gradient(145deg,#07347f,#0b58c7 60%,#1780ef);display:flex;flex-direction:column;justify-content:center}.login-brand:before,.login-brand:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.13)}.login-brand:before{width:420px;height:420px;right:-170px;top:-160px}.login-brand:after{width:280px;height:280px;left:-120px;bottom:-130px}.login-school{position:absolute;top:35px;left:7vw;display:flex;align-items:center;gap:12px}.login-school img{width:48px;height:48px;border-radius:14px;background:#fff;padding:3px;object-fit:contain}.login-school strong{display:block;font-size:12px}.login-school span{display:block;font-size:8px;opacity:.76;margin-top:3px}.login-brand h1{position:relative;z-index:2;max-width:600px;font-size:44px;line-height:1.08;letter-spacing:-1.6px;margin:0 0 15px}.login-brand>p{position:relative;z-index:2;max-width:580px;font-size:12px;line-height:1.75;opacity:.8}.login-features{position:relative;z-index:2;display:flex;gap:9px;flex-wrap:wrap;margin-top:21px}.login-features span{padding:8px 11px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.11);border-radius:999px;font-size:8px;font-weight:800}
.login-side{display:grid;place-items:center;padding:35px;background:radial-gradient(circle at 80% 10%,#e3f0ff,transparent 32%),#f6f9fd}.login-card{width:min(430px,100%);background:#fff;border:1px solid #dce8f7;border-radius:24px;padding:30px;box-shadow:0 25px 65px rgba(31,75,140,.13)}.login-logo-mobile{display:none;text-align:center}.login-card h2{font-size:25px;color:var(--navy);margin:0}.login-card>p{font-size:9px;color:var(--muted);margin:7px 0 20px}.login-alert{background:#fff0f2;border:1px solid #f3d2d8;color:#a4404b;padding:11px;border-radius:11px;font-size:9px;margin-bottom:13px}.input-wrap{position:relative}.input-wrap i{position:absolute;left:12px;top:20px;color:#7d94b6}.input-wrap input{padding-left:36px;padding-right:42px;min-height:47px}.password-toggle{position:absolute;right:5px;top:11px;padding:8px 10px;background:transparent;color:#6f85a6;box-shadow:none}.login-btn{width:100%;min-height:47px;margin-top:4px}.login-help{margin-top:17px;padding:12px;border-radius:12px;background:#f4f8ff;color:#687e9e;font-size:8px;line-height:1.6}.login-security{text-align:center;color:#8a9bb3;font-size:7px;margin-top:14px}

@media(max-width:1020px){.summary-grid{grid-template-columns:repeat(2,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}.dashboard-columns,.attendance-layout,.account-grid{grid-template-columns:1fr}}
@media(max-width:900px){
  body.teacher-authenticated{padding-bottom:70px}.teacher-sidebar{transform:translateX(-105%);transition:.22s;z-index:80}.teacher-sidebar.open{transform:translateX(0)}.sidebar-overlay{display:block;position:fixed;z-index:70;inset:0;border:0;background:rgba(5,28,62,.4);opacity:0;pointer-events:none;transition:.2s}.sidebar-overlay.show{opacity:1;pointer-events:auto}.nav-open{overflow:hidden}
  .teacher-topbar{left:0;height:66px;padding:0 12px}.menu-button{display:grid;place-items:center}.teacher-main{margin-left:0;padding-top:66px}.content-shell{padding:15px 13px 82px}.mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:60;height:66px;padding:5px 8px calc(5px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #dce8f7;box-shadow:0 -8px 26px rgba(31,75,140,.09);backdrop-filter:blur(12px)}.mobile-bottom-nav a,.mobile-bottom-nav button{border:0;background:transparent;box-shadow:none;color:#7789a5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:7px;font-weight:750}.mobile-bottom-nav i{font-size:15px}.mobile-bottom-nav a.active{color:var(--blue)}
  .login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-side{min-height:100vh;padding:20px}.login-logo-mobile{display:block;margin-bottom:18px}.login-logo-mobile img{width:62px;height:62px;object-fit:contain}.login-card{padding:25px 22px}
}
@media(max-width:600px){
  .teacher-topbar{height:62px;padding:0 8px;gap:7px}.teacher-main{padding-top:62px}.menu-button{width:36px;height:36px}.topbar-brand{gap:7px}.topbar-brand img{width:35px;height:35px;border-radius:10px}.topbar-brand strong{font-size:9px;max-width:45vw}.topbar-brand span{font-size:6px}.teacher-copy{display:none}.teacher-avatar{width:35px;height:35px}.content-shell{padding:11px 9px 80px}.page-heading{margin-bottom:12px}.page-heading h1{font-size:21px}.page-heading p{font-size:8px}.card{padding:14px;border-radius:16px}.welcome-hero{padding:18px 16px;display:block;border-radius:19px}.welcome-copy h2{font-size:21px}.hero-status{min-width:0;margin-top:14px}.summary-grid{gap:8px}.summary-card{min-height:94px;padding:11px;border-radius:15px}.summary-card strong{font-size:18px}.quick-grid{gap:8px}.quick-card{min-height:95px;padding:12px}.dashboard-columns{gap:10px}.assignment-item{grid-template-columns:36px 1fr}.assignment-item .status-chip{display:none}.attendance-layout{gap:10px}.scanner-body{padding:14px}.profile-hero{padding:15px}.profile-avatar{width:52px;height:52px}.profile-meta{display:none}th,td{padding:9px 8px}.login-card h2{font-size:22px}
}
@media(max-width:370px){.summary-grid{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr 1fr}.topbar-brand strong{max-width:42vw}}
@media print{.teacher-topbar,.teacher-sidebar,.mobile-bottom-nav,.sidebar-overlay,.no-print,button{display:none!important}.teacher-main{margin:0;padding:0}.content-shell{max-width:none;padding:0}.page-heading{margin-bottom:12px}.card{box-shadow:none;break-inside:avoid}.scroll{overflow:visible}thead{display:table-header-group}tr{break-inside:avoid}}

/* Teacher Portal v2 theme */
.teacher-topbar{background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);box-shadow:0 8px 28px rgba(35,42,78,.06);backdrop-filter:blur(16px);color:var(--navy)}
.menu-button{border-color:#dfddf6;background:#f3f1ff;color:var(--blue)}
.topbar-brand{color:var(--navy)}.topbar-brand img{border:1px solid var(--line)}.topbar-brand span,.teacher-copy span{color:var(--muted);opacity:1}
.teacher-avatar{border:0;border-radius:13px;background:linear-gradient(135deg,var(--blue),#8a72e8);color:#fff;box-shadow:0 8px 18px rgba(101,88,216,.23)}
.welcome-hero,.profile-hero,.scanner-head{background:linear-gradient(125deg,#4f46b8 0%,#6558d8 52%,#299f9b 100%)}
.welcome-hero{box-shadow:0 18px 38px rgba(70,63,154,.24)}
.teacher-login-page{background:#f4f5fa}.login-brand{background:linear-gradient(145deg,#202748,#4f46b8 58%,#299f9b)}
.login-side{background:radial-gradient(circle at 80% 10%,#ebe8ff,transparent 32%),#f6f7fb}
.card,.quick-card,.assignment-item,.mini-record,.timing-row,.class-card,.class-card *{min-width:0}
.quick-card strong,.quick-card span,.assignment-item strong,.assignment-item small,.mini-record strong,.mini-record span,.timing-row strong{overflow-wrap:anywhere}

/* My Classes and academic overview */
.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.class-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:19px;padding:18px;box-shadow:var(--shadow)}
.class-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--blue2))}
.class-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:15px}
.class-icon{width:43px;height:43px;border-radius:13px;background:#efedff;color:var(--blue);display:grid;place-items:center;font-size:16px;flex:0 0 auto}
.class-card h2{font-size:15px;margin:0;color:var(--navy);overflow-wrap:anywhere}.class-card h2 span{display:block;margin-top:4px;font-size:8px;font-weight:700;color:var(--muted)}
.class-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.class-fact{padding:10px;border-radius:12px;background:#f7f7fc;border:1px solid #e8e8f2}.class-fact span{display:block;font-size:7px;color:var(--muted);text-transform:uppercase;font-weight:800}.class-fact strong{display:block;font-size:10px;color:var(--navy);margin-top:3px;overflow-wrap:anywhere}
.class-actions{display:flex;gap:7px;flex-wrap:wrap}.class-actions .button{padding:9px 11px;font-size:8px}.class-actions .secondary{border:1px solid #e0def6}
.progress-track{height:7px;border-radius:999px;background:#ececf4;overflow:hidden}.progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--blue2))}
.insight-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:13px}.insight{padding:11px;border-radius:12px;background:#f7f7fc;text-align:center}.insight strong{display:block;font-size:15px;color:var(--navy)}.insight span{font-size:7px;color:var(--muted)}
.empty-state{text-align:center;padding:32px 15px}.empty-state i{width:58px;height:58px;border-radius:18px;background:#efedff;color:var(--blue);display:grid;place-items:center;font-size:23px;margin:0 auto 12px}.empty-state h2{margin:0 0 5px}.empty-state p{color:var(--muted);font-size:9px}
.due-list{display:grid;gap:8px}.due-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:10px;border:1px solid #e6e7f0;border-radius:13px}.due-date{width:42px;height:42px;border-radius:12px;background:#fff2e8;color:#b96527;display:grid;place-items:center;text-align:center}.due-date strong{font-size:14px;line-height:1}.due-date span{font-size:7px;text-transform:uppercase}.due-item h3{font-size:10px;margin:0;color:var(--navy);overflow-wrap:anywhere}.due-item p{font-size:7px;color:var(--muted);margin:3px 0 0;overflow-wrap:anywhere}

@media(max-width:1020px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.class-grid{grid-template-columns:1fr}.class-card{padding:15px}.insight-row{grid-template-columns:repeat(3,minmax(0,1fr))}.due-item{grid-template-columns:38px 1fr}.due-item>.status-chip{display:none}.due-date{width:38px;height:38px}}
