:root{--navy:#006241;--navy-dark:#004D40;--blue:#00754A;--blue-soft:#E8F3EF;--ink:#1E3932;--muted:#66766E;--bg:#F7F7F3;--surface:#fff;--line:#DDE7E1;--green:#006241;--green-soft:#E8F3EF;--red:#c0394b;--red-soft:#fff1f2;--amber:#9a6700;--amber-soft:#fff7df;--shadow:0 8px 28px rgba(0,98,65,.055);--radius:14px}*{box-sizing:border-box}html{font-size:14px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}a{text-decoration:none;color:var(--blue)}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--navy-dark),var(--navy));color:#fff;position:sticky;top:0;height:100vh;padding:20px 14px;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;padding:3px 10px 24px}.brand-mark{width:40px;height:40px;border-radius:12px;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900;font-size:18px}.brand strong{display:block;font-size:15px;letter-spacing:.02em}.brand small{display:block;color:#B8D8CB;font-size:10px;margin-top:3px}.sidebar-nav{overflow:auto;padding-right:2px}.nav-section{color:#A9CFC0;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;padding:17px 11px 7px}.nav-link{display:flex;align-items:center;gap:11px;color:#E1F0EA;padding:10px 11px;border-radius:10px;margin:2px 0;font-size:13px;font-weight:600}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.12);color:#fff}.nav-icon{width:19px;text-align:center;font-size:13px}.sidebar-foot{margin-top:auto;padding:12px 11px;color:#C9DED5;font-size:11px;display:flex;align-items:center;gap:8px}.status-dot{width:7px;height:7px;background:#7CC9A5;border-radius:50%}.app-main{min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;gap:18px;position:sticky;top:0;z-index:10}.top-search{height:40px;display:flex;align-items:center;gap:9px;background:#F7F7F3;border:1px solid #E1EAE4;border-radius:10px;width:min(500px,55vw);padding:0 12px;color:#7A8B82}.top-search input{border:0;outline:0;background:transparent;width:100%;color:var(--ink)}.top-user{margin-left:auto;display:flex;align-items:center;gap:10px}.notif{font-size:8px;color:var(--blue);padding-right:5px}.avatar{width:38px;height:38px;border-radius:50%;background:#DCEDE6;color:var(--navy);display:grid;place-items:center;font-weight:800}.top-user-copy strong,.top-user-copy span{display:block}.top-user-copy strong{font-size:12px}.top-user-copy span{font-size:10px;color:var(--muted);margin-top:2px}.mobile-menu{display:none;border:0;background:transparent;font-size:20px}.content{padding:30px 34px 42px;max-width:1600px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.eyebrow{font-size:10px;color:var(--blue);font-weight:800;text-transform:uppercase;letter-spacing:.12em;margin-bottom:5px}.page-head h1{margin:0;font-size:27px;line-height:1.15;letter-spacing:-.025em}.page-head p{margin:7px 0 0;color:var(--muted);font-size:13px}.hero{background:linear-gradient(135deg,#fff,#EEF6F2);border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:18px}.hero h2{margin:0;font-size:23px}.hero p{margin:7px 0 0;color:var(--muted)}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.main-side{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}.panel,.form-card,.stat-card,.quick-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:20px}.panel + .panel{margin-top:14px}.form-card{padding:24px}.form-card form{width:100%}.panel-title{font-size:15px;font-weight:800;margin:0}.panel-subtitle{font-size:12px;color:var(--muted);margin-top:4px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{padding:18px}.stat-icon{width:38px;height:38px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800}.stat-label{font-size:11px;color:var(--muted);margin-top:12px}.stat-value{font-size:24px;font-weight:850;margin:3px 0}.stat-note{font-size:11px;color:var(--green)}.quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-card{padding:16px;color:var(--ink);transition:.15s}.quick-card:hover{transform:translateY(-1px);border-color:#A9CFC0}.quick-card b{display:block;margin-bottom:5px}.quick-card span{font-size:11px;color:var(--muted);line-height:1.5}.section-head,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.toolbar > div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.section-head{margin:26px 0 12px}.section-head h2{font-size:16px;margin:0}.muted{color:var(--muted)}.tiny{font-size:11px}.badge,.chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:750;background:#f0f5f1;color:#5E7167}.chip a{color:inherit}.chip.info a{color:inherit}.success{background:var(--green-soft);color:var(--green)}.warning{background:var(--amber-soft);color:var(--amber)}.danger{background:var(--red-soft);color:var(--red)}.info{background:var(--blue-soft);color:var(--blue)}.flash{display:flex;gap:9px;align-items:center;border-radius:11px;padding:12px 14px;margin-bottom:16px;font-size:13px}.flash-success{background:var(--green-soft);color:#006241;border:1px solid #CBE5D9}.flash-danger{background:var(--red-soft);color:#a22d3d;border:1px solid #f2ccd3}.form-section{padding:0 0 8px;margin:2px 0 16px;border-bottom:1px solid var(--line)}.form-section strong{font-size:13px}.form-section span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.form-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}.span-3{grid-column:span 3}.form-grid > .field{grid-column:span 4}.form-grid > .field.span-12{grid-column:span 12}.form-grid > .field.span-8{grid-column:span 8}.form-grid > .field.span-6{grid-column:span 6}.form-grid > .field.span-4{grid-column:span 4}.form-grid > .field.span-3{grid-column:span 3}.field{min-width:0}.field label{display:block;font-size:12px;font-weight:750;margin:0 0 7px;color:#29473B}.field small{display:block;color:var(--muted);font-size:10px;margin-top:5px;line-height:1.4}.input{display:block;width:100%;min-height:42px;border:1px solid #D6E2DB;background:#fff;border-radius:9px;padding:9px 11px;outline:0;color:var(--ink)}textarea.input{min-height:92px;resize:vertical}.input:focus{border-color:#70A98F;box-shadow:0 0 0 3px rgba(0,117,74,.08)}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.check-item{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:9px 10px;font-size:11px;background:#FAFCFA}.check-item input{accent-color:var(--blue)}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.btn{display:inline-flex;white-space:nowrap;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:750;cursor:pointer}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#005A3C}.btn-light{background:#fff;border-color:var(--line);color:var(--ink)}.btn-danger{background:#fff;border-color:#efc5cc;color:var(--red)}.btn-success{background:var(--green);color:#fff}.btn-block{width:100%}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:650px}.data-table th{text-align:left;background:#F7FAF8;color:#7b8697;font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}.data-table tbody tr:hover{background:#fcfefc}.data-table tr:last-child td{border-bottom:0}.user-cell{display:flex;align-items:center;gap:9px}.avatar-sm{width:32px;height:32px;border-radius:9px;background:#eaf5ec;color:var(--navy);display:grid;place-items:center;font-weight:800}.empty{text-align:center;padding:40px 15px;color:var(--muted);font-size:12px}.list{display:flex;flex-direction:column}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.wallet-card{background:linear-gradient(135deg,#006241,#00754A);color:#fff;border-radius:16px;padding:24px;box-shadow:0 12px 28px rgba(0,98,65,.18)}.wallet-label{font-size:11px;opacity:.75}.money{font-size:31px;font-weight:900;letter-spacing:-.03em;margin:5px 0 10px}.wallet-meta{font-size:11px;opacity:.78}.wallet-actions{display:flex;gap:8px;margin-top:17px}.wallet-actions .btn{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff}.table-search{width:220px}.note{padding:12px 14px;border:1px solid #D5E6DC;background:#EEF7F2;color:#526A5E;border-radius:10px;font-size:12px;line-height:1.5}.demo-box{background:#FAFCFA;border:1px dashed #C4D9CD;border-radius:12px;padding:14px}.demo-box code{background:#E9F2ED;padding:3px 6px;border-radius:5px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 460px}.login-brand{background:linear-gradient(145deg,#006241,#006241);color:#fff;padding:70px;display:flex;flex-direction:column;justify-content:center}.login-brand h1{font-size:42px;max-width:600px;line-height:1.05;margin:20px 0 12px}.login-brand p{max-width:520px;color:#D3E5DD;line-height:1.7}.login-points{margin-top:26px;display:grid;gap:10px;color:#DCEBE4;font-size:13px}.login-form-wrap{display:grid;place-items:center;padding:35px;background:#fff}.login-card{width:min(380px,100%)}.login-card .brand{padding:0 0 28px}.login-card h2{font-size:25px;margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 24px;font-size:13px}.login-demo{margin-top:16px;padding:12px;border-radius:10px;background:#f7f9fc;color:var(--muted);font-size:10px;line-height:1.6}.rfid-box{text-align:center;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fafcff}.rfid-icon{width:60px;height:60px;border-radius:18px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:26px;margin:0 auto 10px}.large-input{font-size:18px;text-align:center;letter-spacing:.05em}.money-input{font-size:22px;font-weight:800}.mobile-only{display:none}@media(max-width:1100px){.form-grid > .field.span-8,.form-grid > .field.span-6,.form-grid > .field.span-4,.form-grid > .field.span-3{grid-column:span 6}.stats,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:1fr 1fr}.main-side{grid-template-columns:1fr}.login-page{grid-template-columns:1fr 420px}}@media(max-width:800px){.form-grid > .field,.form-grid > .field.span-12,.form-grid > .field.span-8,.form-grid > .field.span-6,.form-grid > .field.span-4,.form-grid > .field.span-3{grid-column:span 12}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:250px;z-index:30;transition:.2s}.sidebar-open .sidebar{left:0}.sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:20}.mobile-menu{display:block}.topbar{padding:0 16px}.top-search{width:auto;flex:1}.top-user-copy{display:none}.content{padding:22px 16px}.page-head h1{font-size:23px}.form-grid{gap:11px}.span-8,.span-6,.span-4,.span-3{grid-column:span 12}.check-grid{grid-template-columns:1fr 1fr}.login-page{display:block}.login-brand{display:none}.login-form-wrap{min-height:100vh}.grid-2,.grid-3{grid-template-columns:1fr}}@media(max-width:480px){.stats,.quick-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.top-search{display:none}.content{padding:18px 12px}.form-card,.panel{padding:16px}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}
/* V5 consistency fixes */
.form-card{overflow:hidden}.form-section{margin-bottom:20px}.form-grid + .form-actions{margin-top:20px}.form-actions .btn{min-width:110px}.toolbar .chip{margin:0}.data-table th:first-child,.data-table td:first-child{padding-left:16px}.data-table th:last-child,.data-table td:last-child{padding-right:16px}.data-table td .btn{min-height:32px;padding:6px 10px}.check-item{cursor:pointer;min-height:40px}.check-item:hover{border-color:#B8D8CB;background:#F7FAF8}.table-wrap{border:1px solid var(--line);border-radius:11px}.table-wrap .data-table{border:0}.table-wrap .data-table th:first-child{border-top-left-radius:10px}.table-wrap .data-table th:last-child{border-top-right-radius:10px}.input::placeholder{color:#a2acba}.input[type="file"]{padding:8px;background:#FAFCFA}.form-section strong{color:#1b2a42}.page-head{min-height:54px}.page-head > div{min-width:0}.quick-grid a{display:block}.empty{border-top:1px solid var(--line)}

/* =========================================================
   LOGIN V6 — clean split layout, independent from app UI
   ========================================================= */
.login-body{background:#f5f8fc;min-height:100vh}
.login-page-v6{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(440px,.85fr);overflow:hidden}
.login-hero{position:relative;overflow:hidden;background:linear-gradient(145deg,#004D40 0%,#006241 52%,#00754A 100%);color:#fff}
.login-hero:before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;right:-260px;bottom:-310px;background:rgba(255,255,255,.08)}
.login-hero:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;left:-230px;bottom:-180px;background:rgba(255,255,255,.05)}
.login-hero-inner{position:relative;z-index:1;min-height:100vh;padding:34px clamp(34px,6vw,84px) 38px;display:flex;flex-direction:column}
.login-brand-top{display:flex;align-items:center;gap:13px;position:relative}
.login-brand-top strong,.mobile-brand strong{display:block;font-size:18px;letter-spacing:.01em}
.login-brand-top span,.mobile-brand span{display:block;margin-top:3px;font-size:11px;letter-spacing:.06em;color:#C4D9CD}
.school-mark{width:50px;height:50px;border-radius:15px;background:#fff;color:#006241;display:grid;place-items:center;font-weight:900;font-size:23px;box-shadow:0 8px 25px rgba(0,0,0,.12);flex:0 0 auto}
.school-mark.small{width:42px;height:42px;border-radius:12px;font-size:18px}
.hero-motto{margin-left:auto;font-size:12px;color:#d9e6f6;align-self:flex-start;padding-top:8px;white-space:nowrap}
.hero-copy{margin:auto 0;max-width:730px;padding:35px 0 20px}
.hero-kicker{font-size:10px;letter-spacing:.16em;font-weight:800;color:#B8D8CB}
.hero-copy h1{font-size:clamp(38px,4.7vw,64px);line-height:1.02;letter-spacing:-.045em;margin:16px 0 19px;color:#fff}
.hero-copy h1 em{font-style:normal;color:#d9ebff}
.hero-copy>p{max-width:670px;color:#D5E6DC;font-size:16px;line-height:1.7;margin:0}
.feature-row{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:38px;max-width:680px}
.feature-item{padding:12px 10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.07);border-radius:13px;backdrop-filter:blur(6px)}
.feature-icon{width:37px;height:37px;border-radius:11px;background:rgba(255,255,255,.15);display:grid;place-items:center;margin-bottom:10px;font-size:17px}
.feature-item b{display:block;font-size:12px}.feature-item span{display:block;color:#B8D8CB;font-size:10px;margin-top:3px}
.hero-bottom{max-width:700px;padding-top:16px}
.quote-mark{font-family:Georgia,serif;font-size:50px;line-height:.7;color:#a9d0f7}
.hero-bottom p{max-width:470px;font-size:15px;line-height:1.65;font-style:italic;color:#EEF7F2;margin:7px 0 7px}
.hero-bottom>span{font-size:11px;color:#C4D9CD}
.hero-pills{display:flex;gap:8px;margin-top:22px}
.hero-pills span{padding:9px 14px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.08);font-size:10px;color:#e5eef8}
.login-panel{background:#F7F7F3;display:grid;place-items:center;padding:36px 44px}
.login-card-v6{width:min(100%,500px);background:#fff;border:1px solid #e0e9e2;border-radius:22px;padding:34px;box-shadow:0 18px 55px rgba(23,59,114,.09)}
.mobile-brand{display:none}
.login-heading h2{font-size:30px;line-height:1.1;margin:0;color:#006241;letter-spacing:-.03em}.login-heading h2 span{font-size:25px}.login-heading p{color:#728198;line-height:1.55;font-size:13px;margin:9px 0 25px}
.login-alert{display:flex;gap:10px;align-items:center;padding:11px 13px;border-radius:10px;background:#fff1f2;color:#a33342;border:1px solid #f2ccd3;font-size:12px;margin-bottom:17px}.login-alert b{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:#d94d5f;color:#fff}
.login-form-v6{display:grid;gap:16px}.login-field label{display:block;font-size:12px;font-weight:800;color:#25334a;margin-bottom:7px}.login-input-wrap{height:48px;border:1px solid #D6E2DB;border-radius:11px;display:flex;align-items:center;background:#fff;transition:.15s}.login-input-wrap:focus-within{border-color:#6f9ee4;box-shadow:0 0 0 4px rgba(0,117,74,.08)}
.input-icon{width:43px;text-align:center;color:#8192ab;font-size:16px}.login-input-wrap input{height:100%;flex:1;min-width:0;border:0;outline:0;background:transparent;color:#17231b;font-size:13px}.login-input-wrap input::placeholder{color:#a2acba}.password-toggle{border:0;background:transparent;color:#8192ab;cursor:pointer;padding:0 14px;height:100%}
.login-options{display:flex;justify-content:space-between;align-items:center;margin-top:-3px;font-size:11px;color:#78869a}.login-options label{display:flex;align-items:center;gap:6px}.login-options input{accent-color:#00754A}.login-options a{color:#00754A;font-weight:700}
.login-submit{height:48px;border:0;border-radius:11px;background:linear-gradient(135deg,#2878ed,#006241);color:#fff;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(37,99,235,.2);transition:.15s}.login-submit:hover{transform:translateY(-1px);box-shadow:0 10px 22px rgba(37,99,235,.25)}.login-submit span{font-size:19px;margin-left:7px;vertical-align:-1px}
.role-divider{display:flex;align-items:center;gap:10px;color:#9aa5b5;font-size:10px;margin:24px 0 12px}.role-divider:before,.role-divider:after{content:"";height:1px;background:#e6eaf0;flex:1}.role-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.role-card{min-height:68px;border:1px solid #e4e9f0;border-radius:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:10px;color:#25334a}.role-card b{font-size:18px}.role-admin{background:#EEF7F2;color:#00754A}.role-guru{background:#edf9f4;color:#00754A}.role-siswa{background:#f3f0ff;color:#7354df}.role-ortu{background:#fff0f4;color:#dc4969}.role-koperasi{background:#fff6e8;color:#d68116}
.security-note{display:flex;align-items:center;gap:10px;margin-top:18px;padding:11px 12px;border-radius:11px;background:#EEF7F2}.security-note>span{width:28px;height:28px;border-radius:8px;background:#DCEFE6;color:#00754A;display:grid;place-items:center;font-weight:900}.security-note b{display:block;font-size:11px;color:#24334b}.security-note small{display:block;color:#7b899c;font-size:10px;margin-top:2px}.login-footer{text-align:center;color:#8793a4;font-size:9px;margin-top:17px}.demo-credentials{margin-top:12px;padding:9px 11px;border:1px dashed #dbe2eb;border-radius:9px;color:#8490a0;font-size:9px;line-height:1.5;display:grid;gap:2px}.demo-credentials b{color:#647286}
@media(max-width:1050px){.login-page-v6{grid-template-columns:1fr 460px}.login-hero-inner{padding-left:45px;padding-right:35px}.hero-copy h1{font-size:43px}.feature-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.login-page-v6{display:block}.login-hero{display:none}.login-panel{min-height:100vh;padding:24px 15px}.login-card-v6{max-width:520px;padding:28px 22px;border-radius:18px}.mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:30px}.mobile-brand span{color:#8491a4;letter-spacing:0}.login-heading h2{font-size:27px}.role-grid{grid-template-columns:repeat(5,1fr)}}
@media(max-width:480px){.login-panel{padding:12px}.login-card-v6{padding:23px 17px}.role-grid{gap:5px}.role-card{min-height:62px}.role-card b{font-size:16px}.login-options{font-size:10px}}

/* ===== V7 UI FOUNDATION ===== */
:root{--v7-blue:#00754A;--v7-navy:#006241;--v7-text:#17243a;--v7-muted:#728198;--v7-border:#e2e8f0;--v7-bg:#f5f8fc}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.login-body{margin:0;background:#fff;color:var(--v7-text)}
.login-v7{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(430px,.85fr)}
.login-left{background:linear-gradient(145deg,#E8F3EF 0%,#F7FAF8 54%,#DCEFE6 100%);position:relative;overflow:hidden}
.login-left:after{content:"";position:absolute;width:760px;height:760px;border-radius:50%;right:-430px;bottom:-390px;background:rgba(23,105,224,.10)}
.login-left-inner{min-height:100vh;padding:34px clamp(30px,5vw,78px) 42px;display:flex;flex-direction:column;position:relative;z-index:1}
.school-brand{display:flex;align-items:center;gap:12px}.school-logo{width:48px;height:48px;border-radius:14px;background:var(--v7-navy);color:#fff;display:grid;place-items:center;font-size:21px;font-weight:900;box-shadow:0 8px 20px rgba(16,47,93,.16)}.school-brand strong,.mobile-school-brand strong{display:block;color:var(--v7-navy);font-size:17px;letter-spacing:.01em}.school-brand span,.mobile-school-brand span{display:block;color:#627796;font-size:11px;margin-top:3px}.school-motto{margin-left:auto;color:#526a8d;font-size:11px;font-weight:700}
.login-hero-copy{margin:auto 0}.login-kicker,.mini-label{font-size:10px;font-weight:850;letter-spacing:.14em;color:var(--v7-blue)}.login-hero-copy h1{font-size:clamp(42px,4.3vw,66px);line-height:1.04;letter-spacing:-.045em;margin:14px 0 17px;color:var(--v7-navy)}.login-hero-copy h1 span{color:#00754A}.login-hero-copy>p{max-width:720px;color:#536b8c;font-size:16px;line-height:1.65;margin:0}
.login-features{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-top:32px;max-width:730px}.login-features div{display:grid;gap:4px}.login-features i{font-style:normal;width:48px;height:48px;border-radius:14px;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.8);display:grid;place-items:center;color:var(--v7-blue);font-size:20px;margin-bottom:5px}.login-features b{font-size:12px;color:var(--v7-navy)}.login-features span{font-size:10px;color:#6d819e}.login-quote{max-width:440px;padding-left:20px;border-left:3px solid #73a7ed;color:#526b8e}.login-quote b{font-size:42px;line-height:.6;color:#73a7ed}.login-quote p{font-size:14px;line-height:1.65;margin:4px 0 5px;font-style:italic}.login-quote span{font-size:10px;font-weight:700}
.login-right{background:#F7F7F3;display:grid;place-items:center;padding:34px}.login-card-v7{width:min(100%,500px);background:#fff;border:1px solid var(--v7-border);border-radius:24px;padding:34px 36px;box-shadow:0 22px 60px rgba(16,47,93,.10)}.mobile-school-brand{display:none}.login-title h2{font-size:30px;letter-spacing:-.035em;margin:8px 0 8px;color:var(--v7-navy)}.login-title h2 span{font-size:25px}.login-title p{margin:0 0 25px;color:var(--v7-muted);font-size:13px;line-height:1.55}.login-form{display:grid;gap:17px}.login-form>label{display:grid;gap:7px;font-size:12px;font-weight:800;color:#29473B}.login-input,.password-box{height:48px;width:100%;border:1px solid #d7e3da;border-radius:11px;background:#fff;box-sizing:border-box}.login-input{padding:0 13px;outline:none;color:var(--v7-text);font-size:13px}.login-input:focus,.password-box:focus-within{border-color:#69A38B;box-shadow:0 0 0 4px rgba(0,117,74,.08)}.login-input::placeholder{color:#a2adbd}.password-box{display:flex;overflow:hidden}.password-box .login-input{border:0;box-shadow:none;height:100%;min-width:0}.password-box button{width:46px;border:0;background:#fff;color:#8494aa;cursor:pointer}.login-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#78879b;margin-top:-4px}.login-row a{color:var(--v7-blue);font-weight:750}.remember{display:flex;align-items:center;gap:6px}.remember input{accent-color:var(--v7-blue)}.login-button{height:49px;border:0;border-radius:11px;background:linear-gradient(135deg,#00754A,#006241);color:#fff;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 9px 20px rgba(23,105,224,.20)}.login-button span{font-size:19px;margin-left:7px}.login-divider{display:flex;align-items:center;gap:12px;color:#9aa7b8;font-size:9px;font-weight:800;letter-spacing:.08em;margin:25px 0 12px}.login-divider:before,.login-divider:after{content:"";height:1px;background:#e6ebf1;flex:1}.role-grid-v7{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.role-grid-v7 div{height:68px;border:1px solid #e0e9e2;border-radius:11px;display:grid;place-items:center;align-content:center;gap:5px;background:#FAFCFA}.role-grid-v7 b{font-size:17px;color:#00754A}.role-grid-v7 span{font-size:10px;font-weight:750;color:#355B4B}.secure-box{display:flex;gap:10px;align-items:center;margin-top:17px;padding:11px 12px;border-radius:11px;background:#f3f7fc}.secure-box>b{width:28px;height:28px;border-radius:8px;background:#DCEFE6;color:#00754A;display:grid;place-items:center}.secure-box strong,.secure-box span{display:block}.secure-box strong{font-size:10px}.secure-box span{font-size:9px;color:#7d8ca0;margin-top:2px}.demo-box-v7{margin-top:11px;padding:9px 11px;border:1px dashed #d7e0ea;border-radius:9px;display:grid;gap:2px;color:#8390a1;font-size:8px;line-height:1.45}.demo-box-v7 strong{font-size:9px;color:#63748b}.login-card-v7 footer{text-align:center;color:#9aa5b4;font-size:9px;margin-top:15px}.login-error{display:flex;align-items:center;gap:9px;background:#fff1f3;border:1px solid #f2cbd2;color:#a23242;padding:10px 12px;border-radius:10px;font-size:11px;margin-bottom:16px}.login-error b{width:21px;height:21px;border-radius:50%;background:#d84d5e;color:#fff;display:grid;place-items:center}
/* global form cleanup */
.form-card,.panel{overflow:hidden}.form-grid{align-items:start}.field .input{width:100%}.form-actions{background:#FAFCFA;margin-left:-24px;margin-right:-24px;margin-bottom:-24px;padding:16px 24px}.form-card .field label{line-height:1.3}.check-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.data-table th,.data-table td{padding-left:14px;padding-right:14px}.quick-card{min-height:108px}.section-head{align-items:flex-end}
@media(max-width:1100px){.login-v7{grid-template-columns:1fr 440px}.login-hero-copy h1{font-size:46px}.login-features{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.login-v7{display:block}.login-left{display:none}.login-right{min-height:100vh;padding:18px}.login-card-v7{max-width:520px;padding:28px 24px}.mobile-school-brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.mobile-school-brand .school-logo{width:40px;height:40px;font-size:18px}.login-title h2{font-size:27px}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;top:0;bottom:0;width:250px;z-index:50}.sidebar-open .sidebar{left:0}.mobile-menu{display:block}.topbar{padding:0 16px}.content{padding:20px 16px}}
@media(max-width:560px){.login-right{padding:10px}.login-card-v7{padding:23px 17px;border-radius:18px}.role-grid-v7{gap:5px}.role-grid-v7 div{height:61px}.role-grid-v7 b{font-size:15px}.form-card,.panel{padding:16px}.form-actions{margin-left:-16px;margin-right:-16px;margin-bottom:-16px;padding:14px 16px}.stats,.quick-grid{grid-template-columns:1fr}.grid-2,.grid-3{grid-template-columns:1fr}.top-search{display:none}}
/* ===== STUDENT UX ===== */
.student-welcome{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,#EDF6F1,#fff);border:1px solid #D5E6DC;border-radius:18px;padding:22px 24px;margin-bottom:18px}.student-welcome h2{margin:3px 0 4px;color:var(--v7-navy);font-size:23px;letter-spacing:-.02em}.student-welcome p{margin:0;color:var(--v7-muted);font-size:12px}.student-mini-stats{display:flex;gap:8px}.student-mini-stats span{padding:10px 13px;border:1px solid var(--v7-border);background:#fff;border-radius:10px;font-size:10px;color:var(--v7-muted)}.student-mini-stats b{display:block;font-size:17px;color:var(--v7-navy)}.student-tabs{display:flex;gap:5px;border-bottom:1px solid var(--v7-border);margin-bottom:20px}.student-tabs a{padding:10px 14px;color:#748299;font-size:12px;font-weight:750;border-bottom:2px solid transparent}.student-tabs a.active,.student-tabs a:hover{color:var(--v7-blue);border-bottom-color:var(--v7-blue)}.student-section{margin-bottom:28px}.student-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.student-material{background:#fff;border:1px solid var(--v7-border);border-radius:14px;padding:18px;box-shadow:0 6px 22px rgba(23,59,114,.045)}.material-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.student-material h3,.assignment-card h3{font-size:15px;margin:14px 0 7px;color:var(--v7-navy)}.student-material p,.assignment-card p{font-size:11px;color:var(--v7-muted);line-height:1.6;min-height:36px}.student-material .btn{margin-top:8px}.student-assignment-list{display:grid;gap:12px}.assignment-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:22px;background:#fff;border:1px solid var(--v7-border);border-radius:15px;padding:19px}.assignment-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#7c899c;font-size:10px}.assignment-meta b{color:#33445d}.assignment-action{border-left:1px solid var(--v7-border);padding-left:22px}.assignment-action label{display:grid;gap:7px;font-size:11px;font-weight:800;color:#2b3c55}.assignment-action textarea{min-height:105px}.mini-card{display:grid;gap:6px}.mini-card b{font-size:13px}.mini-card span{font-size:10px;color:var(--v7-muted)}.mini-card a{font-size:10px;font-weight:800;margin-top:5px}@media(max-width:900px){.student-material-grid{grid-template-columns:1fr 1fr}.assignment-card{grid-template-columns:1fr}.assignment-action{border-left:0;border-top:1px solid var(--v7-border);padding-left:0;padding-top:18px}}@media(max-width:560px){.student-welcome{display:block}.student-mini-stats{margin-top:15px}.student-material-grid{grid-template-columns:1fr}.student-tabs{overflow:auto}.student-tabs a{white-space:nowrap}.assignment-card{padding:15px}.student-welcome{padding:17px}.student-mini-stats span{flex:1}}
/* ===== V8 TEACHER WORKSPACE ===== */
.teacher-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#006241 0%,#00754A 100%);color:#fff;border-radius:18px;padding:24px 26px;margin-bottom:18px;box-shadow:0 14px 35px rgba(16,43,82,.16)}
.teacher-hero h2{margin:3px 0 7px;font-size:25px;letter-spacing:-.03em}.teacher-hero p{margin:0;color:#DCEBE4;font-size:12px;line-height:1.55}.teacher-hero .btn{background:#fff;color:#006241;border:0}.teacher-hero-mark{width:62px;height:62px;border-radius:17px;background:rgba(255,255,255,.12);display:grid;place-items:center;font-size:28px;border:1px solid rgba(255,255,255,.16)}
.teacher-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}.teacher-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;gap:12px;align-items:center}.teacher-stat .icon{width:42px;height:42px;border-radius:12px;background:#ecfdf3;color:#00754A;display:grid;place-items:center;font-weight:900}.teacher-stat strong{display:block;font-size:21px;line-height:1.1}.teacher-stat span{display:block;color:var(--muted);font-size:10px;margin-top:4px}
.teacher-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacher-action{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--ink);min-height:118px;transition:.15s}.teacher-action:hover{border-color:#B8D8CB;transform:translateY(-1px);box-shadow:var(--shadow)}.teacher-action .action-icon{width:36px;height:36px;border-radius:10px;background:#EEF7F2;color:var(--blue);display:grid;place-items:center;margin-bottom:12px}.teacher-action b{display:block;font-size:13px}.teacher-action span{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:4px}
.teacher-section{margin:24px 0 11px;display:flex;justify-content:space-between;align-items:end}.teacher-section h2{margin:0;font-size:16px}.teacher-section p{margin:3px 0 0;color:var(--muted);font-size:11px}.teacher-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.config-list{display:grid;gap:8px;margin-top:13px}.config-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#FAFCFA;font-size:11px}.config-empty{padding:18px;border:1px dashed #cfd8e5;border-radius:10px;color:var(--muted);font-size:11px;text-align:center}
.teacher-form-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:17px}.teacher-form-head h2{margin:0;font-size:17px}.teacher-form-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.teacher-switch{display:flex;gap:5px;background:#f3f6fa;padding:4px;border-radius:10px}.teacher-switch a{padding:8px 11px;border-radius:7px;font-size:11px;font-weight:800;color:#718078}.teacher-switch a.active{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(20,40,70,.08)}
.teacher-form-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:var(--shadow)}.teacher-form-card .form-grid{gap:15px}.teacher-form-card .form-actions{margin:18px -20px -20px;padding:14px 20px}.teacher-help{padding:10px 12px;background:#F7F7F3;border:1px solid #e0e8f3;border-radius:9px;color:#667892;font-size:10px;line-height:1.5}.teacher-list-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:22px 0 10px}.teacher-list-head h2{margin:0;font-size:15px}.teacher-table-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.teacher-table-card .table-wrap{padding:0}.teacher-table-card .data-table th{background:#F7F7F3}.teacher-table-card .data-table td{padding-top:13px;padding-bottom:13px}.teacher-table-card .input{min-height:36px}
.assessment-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:15px}.assessment-tab{display:flex;align-items:center;gap:9px;padding:12px 13px;background:#fff;border:1px solid var(--line);border-radius:11px;color:#6c7a90;font-size:11px;font-weight:800}.assessment-tab.active{border-color:#C4D9CD;background:#F3F8F5;color:var(--blue)}.assessment-tab i{width:28px;height:28px;border-radius:8px;background:#ecfdf3;display:grid;place-items:center;font-style:normal}.assessment-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:15px}.assessment-side{background:#F7F7F3;border:1px solid var(--line);border-radius:13px;padding:16px}.assessment-side h3{margin:0;font-size:13px}.assessment-side p{font-size:10px;color:var(--muted);line-height:1.55}.assessment-side ul{margin:12px 0 0;padding-left:17px;color:#65748a;font-size:10px;line-height:1.8}
.grade-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 15px;border-bottom:1px solid var(--line);background:#FAFCFA}.grade-toolbar strong{font-size:13px}.grade-toolbar span{font-size:10px;color:var(--muted)}.grade-form{display:grid;grid-template-columns:78px minmax(170px,1fr) minmax(210px,1fr) auto;gap:8px;align-items:center}.grade-form .input{min-height:36px}.submission-name{display:flex;align-items:center;gap:9px}.submission-name b{font-size:11px}.submission-name span{font-size:9px;color:var(--muted);display:block;margin-top:2px}.submission-title b{font-size:11px}.submission-title span{display:block;font-size:9px;color:var(--muted);margin-top:2px}
.setup-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.setup-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.setup-box h2{margin:0;font-size:15px}.setup-box p{margin:4px 0 14px;color:var(--muted);font-size:10px}.choice-list{display:grid;gap:7px;max-height:390px;overflow:auto}.choice{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#FAFCFA;font-size:11px}.choice:has(input:checked){border-color:#B8D8CB;background:#F7FAF8}.choice input{accent-color:var(--blue)}.setup-actions{margin-top:15px;display:flex;justify-content:flex-end}
@media(max-width:1050px){.teacher-stat-grid,.teacher-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.assessment-layout{grid-template-columns:1fr}.setup-columns{grid-template-columns:1fr}}
@media(max-width:720px){.teacher-hero{align-items:flex-start}.teacher-hero-mark{display:none}.teacher-config-grid{grid-template-columns:1fr}.assessment-tabs{grid-template-columns:repeat(2,1fr)}.grade-form{grid-template-columns:70px 1fr}.grade-form .feedback{grid-column:1/-1}.grade-form .save{grid-column:1/-1}}
@media(max-width:560px){.teacher-stat-grid,.teacher-actions{grid-template-columns:1fr}.teacher-hero{padding:19px}.teacher-hero h2{font-size:21px}.teacher-form-card{padding:15px}.teacher-form-card .form-actions{margin:16px -15px -15px;padding:13px 15px}.teacher-form-head{display:block}.teacher-switch{margin-top:12px;width:max-content}.assessment-tabs{grid-template-columns:1fr 1fr}.assessment-tab{padding:10px 9px}.assessment-tab span{font-size:10px}.setup-box{padding:14px}}

/* =========================================================
   V9 VISUAL RESET — clean, spacious, consistent UI
   ========================================================= */
:root{
  --navy:#006241;
  --navy-dark:#004D40;
  --blue:#00754A;
  --blue-soft:#EEF7F2;
  --ink:#1E3932;
  --muted:#718078;
  --bg:#f4f7fb;
  --surface:#ffffff;
  --line:#DDE7E1;
  --green:#00754A;
  --green-soft:#E8F3EF;
  --red:#c53d50;
  --red-soft:#fff1f2;
  --amber:#9a6500;
  --amber-soft:#fff7df;
  --shadow:0 8px 26px rgba(18,51,95,.055);
  --radius:16px;
}
html{font-size:15px}
body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.45}
*{box-sizing:border-box}
button,input,select,textarea{font:inherit}

/* APP SHELL */
.app-shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh}
.sidebar{padding:20px 13px;background:linear-gradient(180deg,#004D40 0%,#006241 100%);border-right:1px solid rgba(255,255,255,.06)}
.brand{padding:4px 10px 22px;gap:11px}
.brand-mark{width:40px;height:40px;border-radius:11px;background:#fff;color:#006241;box-shadow:0 5px 16px rgba(0,0,0,.10)}
.brand strong{font-size:14px}.brand small{font-size:10px;color:#B8D8CB}
.nav-section{padding:17px 11px 7px;color:#8da6c8;font-size:9px}
.nav-link{min-height:40px;padding:9px 11px;border-radius:10px;font-size:12px;color:#DCEBE4}
.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.11);color:#fff}
.sidebar-foot{font-size:10px}
.topbar{height:70px;padding:0 30px;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line)}
.top-search{width:min(440px,52vw);height:40px;border-radius:11px;background:#f7f9fc;border-color:#edf1f6}
.top-user-copy strong{font-size:12px}.top-user-copy span{font-size:10px}
.content{width:100%;max-width:1420px;padding:30px 36px 48px;margin:0 auto}
.page-head{margin-bottom:24px;align-items:flex-start}
.eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:6px}
.page-head h1{font-size:28px;font-weight:800;letter-spacing:-.03em}
.page-head p{font-size:12px;margin-top:6px}

/* CARDS / GRIDS */
.panel,.form-card,.stat-card,.quick-card{border-color:var(--line);border-radius:15px;box-shadow:var(--shadow)}
.panel{padding:20px}.form-card{padding:24px}.stat-card{padding:19px}.quick-card{padding:17px}
.stats{gap:14px}.stat-icon{width:40px;height:40px;border-radius:11px}.stat-label{font-size:10px;margin-top:11px}.stat-value{font-size:25px}.stat-note{font-size:10px}
.quick-grid{gap:13px}.quick-card b{font-size:12px}.quick-card span{font-size:10px}
.hero{padding:25px;border-radius:16px}.hero h2{font-size:22px}.hero p{font-size:12px}
.section-head{margin:25px 0 12px}.section-head h2{font-size:15px}

/* FORMS */
.form-card,.teacher-form-card{background:#fff}
.form-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.form-grid>.field{grid-column:span 4}
.form-grid>.field.span-12{grid-column:1/-1}
.form-grid>.field.span-8{grid-column:span 8}
.form-grid>.field.span-6{grid-column:span 6}
.form-grid>.field.span-4{grid-column:span 4}
.form-grid>.field.span-3{grid-column:span 3}
.field label{font-size:11px;margin-bottom:7px;color:#26364e}
.field small{font-size:9px;margin-top:5px}
.input{min-height:43px;padding:9px 12px;border-radius:10px;border-color:#d7e3da;font-size:12px}
textarea.input{min-height:100px;line-height:1.5}
.input:focus{border-color:#79a5e4;box-shadow:0 0 0 3px rgba(0,117,74,.08)}
.check-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.check-item{min-height:42px;padding:9px 11px;border-radius:10px;font-size:10px}
.form-actions{margin-top:21px;padding-top:17px}
.btn{min-height:39px;padding:8px 14px;border-radius:9px;font-size:11px}

/* TABLES */
.data-table{min-width:720px}
.data-table th{padding:12px 13px;font-size:9px}
.data-table td{padding:13px;font-size:11px}
.table-wrap{border-radius:12px}

/* TEACHER */
.teacher-hero{padding:27px 29px;border-radius:17px;margin-bottom:18px}
.teacher-hero h2{font-size:25px}.teacher-hero p{font-size:12px}
.teacher-stat-grid{gap:13px;margin-bottom:22px}
.teacher-stat{padding:18px;border-radius:14px}.teacher-stat .icon{width:40px;height:40px}
.teacher-stat strong{font-size:22px}.teacher-stat span{font-size:10px}
.teacher-actions{gap:13px}.teacher-action{min-height:128px;padding:17px;border-radius:14px}
.teacher-action .action-icon{width:37px;height:37px;margin-bottom:12px}
.teacher-action b{font-size:12px}.teacher-action span{font-size:10px}
.teacher-section{margin:26px 0 12px}.teacher-section h2{font-size:15px}.teacher-section p{font-size:10px}
.teacher-config-grid{gap:13px}.config-item{padding:11px 12px;font-size:10px}
.teacher-form-head{margin-bottom:16px}.teacher-form-head h2{font-size:16px}.teacher-form-head p{font-size:10px}
.teacher-switch{padding:4px;border-radius:10px}.teacher-switch a{font-size:10px;padding:8px 11px}
.teacher-form-card{padding:22px;border-radius:15px}.teacher-form-card .form-actions{margin:19px -22px -22px;padding:14px 22px}
.teacher-table-card{border-radius:14px}

/* ASSESSMENT */
.assessment-tabs{gap:9px;margin-bottom:16px}.assessment-tab{padding:12px 13px;border-radius:11px;font-size:10px}
.assessment-layout{gap:15px}.assessment-side{padding:17px;border-radius:13px}

/* STUDENT */
.student-welcome{padding:22px 24px;border-radius:16px}
.student-welcome h2{font-size:22px}.student-welcome p{font-size:11px}
.student-material-grid{gap:13px}.student-material{padding:17px;border-radius:14px}
.student-material h3,.assignment-card h3{font-size:14px}
.student-material p,.assignment-card p{font-size:10px}
.assignment-card{padding:18px;border-radius:14px;gap:20px}
.assignment-action{padding-left:20px}

/* LOGIN — intentional full redesign */
.login-body{min-height:100vh;background:#F7F7F3;color:#1E3932}
.login-v7{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);background:#fff}
.login-left{display:block;position:relative;overflow:hidden;background:linear-gradient(145deg,#EDF6F1 0%,#F8FBF9 52%,#DCEFE6 100%)}
.login-left:before{content:"";position:absolute;width:620px;height:620px;border-radius:50%;left:-330px;bottom:-280px;background:rgba(0,117,74,.08)}
.login-left:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-300px;top:-270px;background:rgba(255,255,255,.75)}
.login-left-inner{min-height:100vh;padding:32px clamp(34px,5vw,76px) 38px;display:flex;flex-direction:column;position:relative;z-index:1}
.school-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:2}
.school-logo{width:48px;height:48px;border-radius:13px;background:#006241;color:#fff;display:grid;place-items:center;font-size:20px;font-weight:900;box-shadow:0 7px 18px rgba(20,83,45,.16)}
.school-brand strong{font-size:17px;color:#006241}.school-brand span{font-size:10px;color:#6A8176;margin-top:2px}
.school-motto{margin-left:auto;color:#567268;font-size:10px;font-weight:750;white-space:nowrap}
.login-hero-copy{margin:auto 0 32px;max-width:760px}
.login-kicker,.mini-label{font-size:9px;letter-spacing:.14em;font-weight:850;color:#00754A}
.login-hero-copy h1{font-size:clamp(42px,4.4vw,62px);line-height:1.04;letter-spacing:-.05em;margin:13px 0 17px;color:#006241}
.login-hero-copy h1 span{color:#00754A}
.login-hero-copy>p{max-width:690px;margin:0;color:#557260;font-size:15px;line-height:1.65}
.login-features{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:13px;margin-top:30px;max-width:730px}
.login-features div{display:grid;gap:4px}.login-features i{width:45px;height:45px;border-radius:13px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.95);display:grid;place-items:center;color:#00754A;font-size:18px;margin-bottom:4px;font-style:normal;box-shadow:0 5px 14px rgba(40,100,60,.05)}
.login-features b{font-size:11px;color:#006241}.login-features span{font-size:9px;color:#708078}
.login-quote{max-width:480px;padding-left:18px;border-left:3px solid #79A995;color:#567268}.login-quote b{font-size:38px;color:#79A995;line-height:.6}.login-quote p{font-size:13px;line-height:1.65;margin:4px 0 4px;font-style:italic}.login-quote span{font-size:9px;font-weight:750}
.login-right{min-height:100vh;background:#F7F7F3;display:grid;place-items:center;padding:32px}
.login-card-v7{width:min(100%,500px);padding:34px 35px;background:#fff;border:1px solid #e0e9e2;border-radius:20px;box-shadow:0 18px 50px rgba(20,83,45,.09)}
.mobile-school-brand{display:none}.login-title h2{font-size:28px;line-height:1.15;letter-spacing:-.035em;margin:7px 0 8px;color:#006241}.login-title h2 span{font-size:23px}.login-title p{font-size:12px;line-height:1.55;margin:0 0 23px;color:#718078}
.login-form{display:grid;gap:15px}.login-form>label{display:grid;gap:7px;font-size:11px;font-weight:800;color:#29473B}
.login-input,.password-box{width:100%;height:47px;border:1px solid #d8e4da;border-radius:10px;background:#fff}.login-input{padding:0 12px;color:#1E3932;font-size:12px;outline:none}.login-input:focus,.password-box:focus-within{border-color:#69A38B;box-shadow:0 0 0 3px rgba(0,117,74,.08)}.login-input::placeholder{color:#9AAA9E}.password-box{display:flex;overflow:hidden}.password-box .login-input{border:0;box-shadow:none;height:100%;min-width:0}.password-box button{width:45px;border:0;background:#fff;color:#7A8B82;cursor:pointer}
.login-row{font-size:10px}.login-row a{font-weight:750;color:#00754A}.remember{display:flex;align-items:center;gap:6px}.remember input{accent-color:#00754A}
.login-button{height:48px;border:0;border-radius:10px;background:#00754A;color:#fff;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(22,163,74,.18)}.login-button:hover{background:#006241}.login-button span{font-size:17px}
.login-divider{margin:22px 0 12px;font-size:8px;letter-spacing:.1em}.role-grid-v7{grid-template-columns:repeat(5,1fr);gap:7px}.role-grid-v7 div{height:64px;border-radius:10px;background:#FAFCFA;border:1px solid #e0e9e2}.role-grid-v7 b{font-size:16px;color:#00754A}.role-grid-v7 span{font-size:9px;color:#355B4B}
.secure-box{margin-top:15px;padding:10px 11px;border-radius:10px;background:#EEF7F2}.secure-box>b{width:27px;height:27px}.secure-box strong{font-size:9px}.secure-box span{font-size:8px}
.demo-box-v7{margin-top:9px;padding:8px 10px;font-size:7px}.demo-box-v7 strong{font-size:8px}.login-card-v7 footer{font-size:8px;margin-top:13px}.login-error{font-size:10px;padding:9px 11px;margin-bottom:14px}

/* RESPONSIVE */
@media(max-width:1100px){
  .content{padding:26px 26px 40px}
  .login-v7{grid-template-columns:1fr 430px}
  .login-left-inner{padding-left:42px;padding-right:42px}
  .login-hero-copy h1{font-size:44px}
  .login-features{grid-template-columns:repeat(2,1fr)}
  .teacher-stat-grid,.teacher-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .assessment-layout{grid-template-columns:1fr}
}
@media(max-width:820px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-270px;top:0;bottom:0;width:250px;height:100vh;z-index:30;transition:left .2s ease}
  body.sidebar-open .sidebar{left:0}
  body.sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(10,28,52,.35);z-index:20}
  .mobile-menu{display:block;color:#006241;font-size:21px;padding:3px 5px}
  .topbar{padding:0 18px}.content{padding:22px 18px 36px}
  .top-search{display:none}
  .login-v7{display:block;background:#F7F7F3}
  .login-left{display:none}
  .login-right{min-height:100vh;padding:22px 16px}
  .login-card-v7{max-width:500px;padding:28px 25px;border-radius:18px}
  .mobile-school-brand{display:flex;align-items:center;gap:10px;margin-bottom:24px}.mobile-school-brand .school-logo{width:40px;height:40px;font-size:17px}.mobile-school-brand strong{font-size:14px}.mobile-school-brand span{font-size:9px}
}
@media(max-width:600px){
  .page-head h1{font-size:24px}.page-head p{font-size:11px}
  .stats,.quick-grid,.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .form-grid>.field,.form-grid>.field.span-3,.form-grid>.field.span-4,.form-grid>.field.span-6,.form-grid>.field.span-8,.form-grid>.field.span-12{grid-column:1/-1}
  .check-grid{grid-template-columns:1fr}
  .teacher-stat-grid,.teacher-actions,.teacher-config-grid{grid-template-columns:1fr}
  .teacher-form-card{padding:17px}.teacher-form-card .form-actions{margin:17px -17px -17px;padding:13px 17px}
  .teacher-form-head{display:block}.teacher-switch{margin-top:11px;width:max-content}
  .assessment-tabs{grid-template-columns:1fr 1fr}.assessment-tab{padding:10px 9px}
  .grade-form{grid-template-columns:1fr}.grade-form .feedback,.grade-form .save{grid-column:auto}
  .student-welcome{display:block;padding:18px}.student-mini-stats{margin-top:13px}.student-material-grid{grid-template-columns:1fr}.assignment-card{grid-template-columns:1fr;padding:15px}.assignment-action{border-left:0;border-top:1px solid var(--line);padding:17px 0 0}
  .login-card-v7{padding:23px 18px}.role-grid-v7{grid-template-columns:repeat(3,1fr)}.login-title h2{font-size:25px}.login-divider{margin-top:21px}
}

/* GREEN THEME OVERRIDE — LMS SEKOLAH */
:root{
  --navy:#006241;--navy-dark:#004D40;--blue:#00754A;--blue-soft:#E8F3EF;
  --ink:#1E3932;--muted:#66766E;--bg:#F7F7F3;--surface:#fff;--line:#DDE7E1;
  --green:#006241;--green-soft:#E8F3EF;--shadow:0 8px 28px rgba(22,101,52,.07)
}
.sidebar{background:linear-gradient(180deg,#006241,#006241)}
.brand-mark{color:#006241}
.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.13)}
.eyebrow,.top-search svg,.notif{color:#00754A}
.avatar,.avatar-sm{background:#DCEDE6;color:#006241}
.stat-icon{background:#ecfdf3;color:#00754A}
.btn-primary{background:#00754A}.btn-primary:hover{background:#006241}
.btn-success{background:#006241}
.input:focus{border-color:#70A98F;box-shadow:0 0 0 3px rgba(22,163,74,.09)}
.check-item input,.remember input{accent-color:#00754A}
.wallet-card{background:linear-gradient(135deg,#006241,#00754A);box-shadow:0 12px 28px rgba(0,98,65,.18)}
.login-left{background:linear-gradient(145deg,#EDF6F1 0%,#F8FBF9 52%,#DCEFE6 100%)}
.login-left:before{background:rgba(0,117,74,.08)}
.school-logo{background:#006241;box-shadow:0 7px 18px rgba(20,83,45,.16)}
.school-brand strong,.login-title h2,.login-hero-copy h1{color:#006241}
.login-kicker,.mini-label,.login-hero-copy h1 span{color:#00754A}
.login-features i{color:#00754A}
.login-quote{border-left-color:#79A995}
.login-quote b{color:#79A995}
.login-card-v7{box-shadow:0 18px 50px rgba(20,83,45,.09)}
.login-input:focus,.password-box:focus-within{border-color:#70A98F;box-shadow:0 0 0 3px rgba(22,163,74,.09)}
.login-row a{color:#00754A}
.login-button{background:#00754A;box-shadow:0 8px 18px rgba(22,163,74,.18)}
.login-button:hover{background:#006241}
.role-grid-v7 b{color:#00754A}
.secure-box{background:#EEF7F2}

/* V11 STARBUCKS-INSPIRED GREEN THEME OVERRIDE
   Green school identity: #006241 / #00754A / #D4E9E2 */
:root{
  --navy:#006241;
  --navy-dark:#004D40;
  --blue:#00754A;
  --blue-soft:#E8F3EF;
  --ink:#1E3932;
  --muted:#66766E;
  --bg:#F7F7F3;
  --surface:#FFFFFF;
  --line:#DDE7E1;
  --green:#006241;
  --green-soft:#E8F3EF;
  --shadow:0 8px 28px rgba(0,98,65,.07);
}
body{background:#F7F7F3;color:#1E3932}
a{color:#00754A}
.sidebar{background:linear-gradient(180deg,#004D40 0%,#006241 100%)}
.brand-mark,.avatar,.avatar-sm{color:#006241}
.nav-section{color:#A8CFC0}
.nav-link{color:#E3F0EB}
.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.13);color:#fff}
.status-dot{background:#7CC9A5}
.topbar{background:#fff;border-color:#DDE7E1}
.top-search{background:#F7F7F3;border-color:#E1EAE4;color:#718078}
.eyebrow,.notif{color:#00754A}
.hero{background:linear-gradient(135deg,#fff 0%,#EEF6F2 100%);border-color:#DDE7E1}
.panel,.form-card,.stat-card,.quick-card{border-color:#DDE7E1;box-shadow:0 8px 28px rgba(0,98,65,.055)}
.stat-icon{background:#E8F3EF;color:#00754A}
.quick-card:hover{border-color:#A9CFC0}
.success,.info{background:#E8F3EF;color:#006241}
.flash-success{background:#E8F3EF;color:#006241;border-color:#CBE5D9}
.field label{color:#29473B}
.input{border-color:#D6E2DB;background:#fff;color:#1E3932}
.input:focus{border-color:#70A98F;box-shadow:0 0 0 3px rgba(0,117,74,.10)}
.check-item{background:#FAFCFA;border-color:#DDE7E1}
.check-item input{accent-color:#00754A}
.btn-primary,.login-button{background:#00754A;color:#fff}
.btn-primary:hover,.login-button:hover{background:#006241}
.btn-success{background:#006241;color:#fff}
.data-table th{background:#F7FAF8;color:#6F8077}
.data-table tbody tr:hover{background:#F9FCFA}
.avatar-sm{background:#E8F3EF}
.wallet-card{background:linear-gradient(135deg,#004D40 0%,#006241 55%,#00754A 100%);box-shadow:0 12px 28px rgba(0,98,65,.18)}
.note{border-color:#D5E6DC;background:#EEF7F2;color:#526A5E}
.demo-box{background:#FAFCFA;border-color:#C4D9CD}
.rfid-icon{background:#E8F3EF;color:#00754A}
/* all remaining legacy blue accents */
[style*="#00754A"],[style*="#006241"],[style*="#00754A"],[style*="#16a34a"]{color:#00754A !important}
.login-brand{background:linear-gradient(145deg,#004D40,#006241)}
.login-left{background:linear-gradient(145deg,#E8F3EF 0%,#F8FBF9 55%,#D4E9E2 100%)}
.login-left:before{background:rgba(0,117,74,.08)}
.school-logo{background:#006241;color:#fff}
.school-brand strong,.login-hero-copy h1,.login-title h2{color:#006241}
.login-hero-copy h1 span,.login-kicker,.mini-label{color:#00754A}
.login-hero-copy>p,.login-quote{color:#567268}
.login-features i{color:#00754A}
.login-quote{border-left-color:#79A995}
.login-right{background:#F7F7F3}
.login-card-v7{border-color:#DDE7E1;box-shadow:0 18px 50px rgba(0,98,65,.09)}
.login-input,.password-box{border-color:#D8E4DA}
.login-input:focus,.password-box:focus-within{border-color:#70A98F;box-shadow:0 0 0 3px rgba(0,117,74,.09)}
.login-row a{color:#00754A}
.remember input{accent-color:#00754A}
.role-grid-v7 div{border-color:#DDE7E1;background:#FAFCFA}
.role-grid-v7 b{color:#00754A}
.secure-box{background:#EEF7F2}
.secure-box>b{background:#D4E9E2;color:#006241}
/* headings / badges */
.chip.info a,.info a{color:#00754A}
/* Remove blue-looking legacy hero/button rules */
.teacher-hero{background:linear-gradient(135deg,#004D40,#006241) !important}
.teacher-hero .btn{color:#006241;background:#fff}

/* V12 STUDENT MASTER + EXCEL IMPORT */
.master-tabs{display:flex;gap:6px;flex-wrap:wrap}.master-tab{padding:8px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font-size:12px;font-weight:750}.master-tab:hover,.master-tab.active{background:#E8F3EF;color:#006241;border-color:#BFDACD}.master-import-card{background:linear-gradient(135deg,#004D40,#006241);color:#fff;border-radius:16px;padding:22px;margin:0 0 18px;box-shadow:0 12px 30px rgba(0,98,65,.14)}.import-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.import-head .eyebrow{color:#A9D9C5}.import-head h2{margin:3px 0 5px;font-size:19px}.import-head p{margin:0;color:#D9EEE6;font-size:11px}.btn-light{background:#fff;color:#006241;border:1px solid #fff}.btn-light:hover{background:#EEF7F2}.import-form{display:flex;align-items:center;gap:12px;margin-top:18px}.file-drop{flex:1;min-height:84px;border:1px dashed rgba(255,255,255,.55);border-radius:12px;background:rgba(255,255,255,.08);display:grid;grid-template-columns:38px 1fr;column-gap:10px;align-items:center;padding:12px 14px;cursor:pointer}.file-drop input{display:none}.file-icon{grid-row:span 3;width:34px;height:34px;border-radius:10px;background:#D4E9E2;color:#006241;display:grid;place-items:center;font-weight:900}.file-drop strong{font-size:12px}.file-drop small{font-size:9px;color:#CBE3D9}.import-note{margin-top:11px;font-size:9px;color:#CBE3D9}.import-errors{margin-top:13px;background:#fff2f3;color:#8d2534;border-radius:10px;padding:10px;font-size:10px}.section-head{margin-top:22px}.class-tabs{display:flex;gap:7px;overflow:auto;padding:3px 0 12px}.class-tab{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:9px;padding:9px 13px;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.class-tab span{display:inline-grid;place-items:center;min-width:20px;height:18px;border-radius:20px;background:#EEF5F1;color:#006241;margin-left:5px;font-size:9px}.class-tab.active{background:#006241;color:#fff;border-color:#006241}.class-tab.active span{background:rgba(255,255,255,.18);color:#fff}.student-datatable-panel{padding:18px}.dt-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.dt-info,.dt-footer{font-size:10px;color:var(--muted)}.dt-search{width:min(330px,100%);height:37px;border:1px solid var(--line);border-radius:9px;background:#FAFCFA;display:flex;align-items:center;gap:8px;padding:0 10px;color:#789087}.dt-search input{border:0;outline:0;background:transparent;width:100%;font-size:11px;color:var(--ink)}.student-table th[data-sort]{cursor:pointer;user-select:none}.badge-login{display:inline-flex;align-items:center;padding:5px 8px;border-radius:20px;background:#E8F3EF;color:#006241;font-size:9px;font-weight:800}.dt-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:13px}.dt-pages{display:flex;gap:4px}.dt-page{min-width:27px;height:27px;border:1px solid var(--line);background:#fff;border-radius:7px;color:var(--muted);font-size:9px;cursor:pointer}.dt-page.active{background:#006241;border-color:#006241;color:#fff}
@media(max-width:700px){.import-head,.import-form,.dt-toolbar,.dt-footer{display:block}.import-head .btn{margin-top:12px}.import-form .btn{width:100%;margin-top:10px}.dt-search{margin-top:10px;width:100%}.dt-footer{padding-top:12px}.dt-pages{margin-top:8px;flex-wrap:wrap}.master-tab{font-size:11px;padding:7px 10px}}

.form-help{font-size:13px;color:#64748b;padding:4px 2px 0}.span-12{grid-column:1/-1}.tiny{font-size:12px}

/* V14 EXCEL UPLOAD FEEDBACK */
.file-drop{position:relative;transition:.18s ease;border:1px dashed rgba(255,255,255,.55)}
.file-drop:hover,.file-drop.dragging{background:rgba(255,255,255,.14);border-color:#fff;transform:translateY(-1px)}
.file-drop.has-file{background:rgba(212,233,226,.14);border-color:#D4E9E2}
.file-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.file-copy strong{font-size:13px;color:#fff}
.file-copy small{line-height:1.45}
.file-copy small:nth-child(2){color:#E8F3EF;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.file-check{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-weight:900;opacity:.65}
.file-drop.has-file .file-check{background:#D4E9E2;color:#006241;opacity:1}
.import-form .btn-primary{white-space:nowrap;min-height:46px;padding:0 20px}
@media(max-width:760px){.import-form{flex-direction:column;align-items:stretch}.import-form .btn-primary{width:100%}.file-drop{width:100%}}

/* V17 EDIT SISWA */
.table-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.table-actions .btn{white-space:nowrap}
#siswaForm:has(.form-actions .btn-light){border:1px solid #BFDACD;box-shadow:0 12px 30px rgba(0,98,65,.08)}
#siswaForm:has(.form-actions .btn-light) .form-section{background:#F2F8F5}
@media(max-width:700px){.table-actions{gap:5px}.table-actions .btn{flex:1;text-align:center}}

.checkbox-field{display:flex;align-items:center;padding-top:28px}.checkbox-field label{display:flex;align-items:center;gap:10px;font-weight:600}.checkbox-field input{width:18px;height:18px;accent-color:#00754A}
.check-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.chip-list{display:flex;flex-wrap:wrap;gap:6px}.recipient-class{transition:.15s ease}.teaching-class{transition:.15s ease}
@media(max-width:700px){.check-grid-2{grid-template-columns:1fr}}
.file-chip{margin-top:6px;color:#006241}.student-material-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
input[type=file].input{padding:12px;background:#f8fbf9}

.dt-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-bottom:1px solid #dfe9e4;background:#fbfdfc;flex-wrap:wrap}.dt-left{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.dt-label{font-size:13px;color:#64746e;display:flex;align-items:center;gap:7px}.dt-select{height:38px;border:1px solid #dfe9e4;border-radius:10px;background:#fff;padding:0 10px;color:#173c31}.dt-search{width:280px;min-width:220px}.dt-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;gap:12px;flex-wrap:wrap}.dt-pages{display:flex;gap:6px;flex-wrap:wrap}.dt-page{min-width:34px;height:34px;border:1px solid #dfe9e4;border-radius:9px;background:#fff;color:#173c31;cursor:pointer}.dt-page:hover,.dt-page.active{background:#00754a;color:#fff;border-color:#00754a}.sort-mark{font-size:11px;color:#8ca099;margin-left:4px}.data-table th[data-sort]{cursor:pointer;user-select:none}.action-cell{white-space:normal}.btn-sm{padding:8px 10px;font-size:12px;margin:2px 0}.modal{display:none;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;padding:24px}.modal.show{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(7,38,29,.62);backdrop-filter:blur(4px)}.modal-card{position:relative;z-index:2;background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(0,40,30,.25);width:min(900px,95vw);padding:22px}.modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:#eef5f2;color:#164b3b;font-size:25px;cursor:pointer}.modal-title{font-weight:800;font-size:18px;color:#173c31;padding-right:45px;margin-bottom:16px}.youtube-frame-wrap{position:relative;width:100%;padding-top:56.25%;overflow:hidden;border-radius:14px;background:#102d25}.youtube-frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}@media(max-width:700px){.dt-toolbar{align-items:stretch}.dt-left,.dt-right{width:100%}.dt-search{width:100%}.dt-footer{align-items:flex-start}.action-cell .btn{display:inline-block}.modal{padding:12px}.modal-card{padding:16px;border-radius:16px}}

/* DISCUSSION — simple & minimal */
.discussion-page{max-width:1080px;margin:0 auto;padding-bottom:40px}
.discussion-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;margin-bottom:14px}
.discussion-head .eyebrow{font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--green);margin-bottom:9px}
.discussion-head h2{margin:0 0 7px;font-size:22px;line-height:1.25;letter-spacing:-.02em}
.discussion-head p{margin:0;color:var(--muted);font-size:12px}
.discussion-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.discussion-list,.discussion-compose{padding:20px}
.discussion-list .section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.discussion-list .section-head h2,.discussion-compose h2{font-size:16px;margin:0}
.discussion-compose{position:sticky;top:18px}
.discussion-compose p{font-size:11px;line-height:1.55;margin:7px 0 15px}
.discussion-post{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;padding:14px 0;border-bottom:1px solid #edf2ee}
.discussion-post:last-child{border-bottom:0}
.discussion-avatar{width:36px;height:36px;border-radius:50%;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-size:12px;font-weight:800}
.discussion-avatar.small{width:30px;height:30px;font-size:10px}
.discussion-body{min-width:0}
.discussion-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;line-height:1.2}
.discussion-meta strong{font-size:12px}
.discussion-message{font-size:12px;line-height:1.6;margin:7px 0 7px;color:var(--ink);word-break:break-word}
.discussion-reply-btn{border:0;background:transparent;color:var(--green);font-size:10px;font-weight:800;padding:2px 0;cursor:pointer}
.discussion-reply-btn:hover{text-decoration:underline}
.reply-post{margin:10px 0 0 18px;padding:10px 0 0;border-top:1px solid #f0f3f1;border-bottom:0}
.empty{padding:28px 10px;text-align:center;color:var(--muted);font-size:11px}
.discussion-compose .input{width:100%;resize:vertical;min-height:120px}
.discussion-compose .btn-block{width:100%;margin-top:9px}
.discussion-compose .btn-light{border:1px solid var(--line)}
@media(max-width:850px){
  .discussion-layout{grid-template-columns:1fr}
  .discussion-compose{position:static}
  .discussion-head{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
  .discussion-page{padding:0 2px 28px}
  .discussion-head,.discussion-list,.discussion-compose{padding:16px}
  .discussion-head h2{font-size:19px}
  .discussion-post{grid-template-columns:32px minmax(0,1fr);gap:8px}
  .discussion-avatar{width:32px;height:32px}
  .reply-post{margin-left:8px}
}

/* V50 — student task minimal UI */
.task-simple-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.task-simple-head h2{margin:0 0 10px;font-size:25px;letter-spacing:-.02em}.task-simple-meta{display:flex;gap:7px;flex-wrap:wrap}.task-simple-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.task-simple-main{display:grid;gap:14px}.task-simple-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.task-section-label{font-size:9px;font-weight:850;letter-spacing:.13em;color:var(--blue);margin-bottom:12px}.task-description{font-size:14px;line-height:1.8;color:var(--ink)}.task-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.task-link,.text-link{border:0;background:none;padding:0;font-size:11px;font-weight:800;color:var(--blue);cursor:pointer}.task-deadline{font-size:14px;font-weight:800;line-height:1.6;color:var(--ink);margin-bottom:12px}.task-note{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0 0}.task-field{display:grid;gap:7px;margin-top:14px}.task-field>span,.task-file>span{font-size:11px;font-weight:800}.task-file{display:grid;gap:7px;margin:14px 0;padding:12px;border:1px dashed #cbdcd4;border-radius:10px;background:#f8fbf9;font-size:11px}.task-file small{font-size:10px;color:var(--muted);font-weight:500}.task-file input{width:100%;font-size:11px}.task-submitted{margin-top:0}.task-sub-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.task-submitted p{font-size:12px;line-height:1.7;color:var(--muted)}.task-feedback{margin-top:12px;padding:11px 12px;background:#f7faf8;border:1px solid var(--line);border-radius:10px;font-size:11px;line-height:1.6}.task-feedback b{display:block;margin-bottom:4px;color:var(--ink)}.task-youtube-modal{display:none;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center;padding:20px}.task-youtube-modal.show{display:flex}.task-youtube-backdrop{position:absolute;inset:0;background:rgba(11,35,29,.68);backdrop-filter:blur(3px)}.task-youtube-dialog{position:relative;z-index:2;width:min(880px,94vw);background:#fff;border-radius:16px;padding:18px;box-shadow:0 25px 70px rgba(0,0,0,.3)}.task-youtube-close{position:absolute;right:10px;top:9px;width:34px;height:34px;border:0;border-radius:50%;background:#edf5f1;color:#164b3b;font-size:23px;cursor:pointer}.task-youtube-title{font-size:15px;font-weight:800;padding-right:42px;margin-bottom:12px}.task-youtube-frame{position:relative;padding-top:56.25%;overflow:hidden;border-radius:11px;background:#102d25}.task-youtube-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}@media(max-width:850px){.task-simple-grid{grid-template-columns:1fr}.task-simple-side{order:-1}.task-simple-head{display:block}.task-simple-head>.text-link{display:inline-block;margin-top:10px}.task-simple-card{padding:17px}}@media(max-width:560px){.task-simple-head h2{font-size:22px}.task-links{gap:12px}.task-simple-card{padding:15px}}

/* V51 — clean student task UI */
.learning-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin:4px 0 20px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.learning-head h2{margin:4px 0 5px;font-size:28px;letter-spacing:-.03em}
.learning-head p{margin:0;color:var(--muted);font-size:12px}
.learning-tabs{display:flex;gap:20px;align-self:flex-end}.learning-tabs a{padding:9px 2px;color:var(--muted);font-size:12px;font-weight:800;border-bottom:2px solid transparent}.learning-tabs a.active{color:var(--blue);border-bottom-color:var(--blue)}
.learning-list{display:grid;gap:10px;max-width:1000px}
.learning-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px 18px}
.learning-item-main{min-width:0}.learning-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:7px}.learning-item h3{margin:0 0 5px;font-size:15px;color:var(--ink)}.learning-item p{margin:0 0 8px;font-size:11px;line-height:1.55;color:var(--muted);max-width:700px}.learning-small,.deadline,.score-line{font-size:10px;color:var(--muted);line-height:1.6}.deadline strong{color:var(--ink)}.score-line{margin-top:5px}.score-line strong{color:var(--blue)}
.learning-item-actions{display:flex;align-items:center;justify-content:flex-end;gap:13px;flex-wrap:wrap;min-width:180px}.learning-item-actions .btn{white-space:nowrap}.learning-item-actions .text-link{white-space:nowrap}
.assignment-simple{border-left:3px solid #d7ebe2}.assignment-simple:hover{border-left-color:var(--blue);box-shadow:0 6px 18px rgba(20,70,55,.06)}
@media(max-width:800px){.learning-head{align-items:flex-start;display:block}.learning-tabs{margin-top:12px}.learning-item{grid-template-columns:1fr}.learning-item-actions{justify-content:flex-start;min-width:0;padding-top:4px;border-top:1px solid var(--line)}.learning-list{max-width:none}}

/* V53 — notification & discussion controls cleanup */
.notification-wrap{position:relative;display:flex;align-items:center}
.notif{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0!important;border-radius:10px;color:var(--green)!important;font-size:18px!important;line-height:1}
.notif:hover{background:var(--green-soft)}
.notif-count{position:absolute;right:1px;top:1px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--red);color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}
.notification-popover{position:absolute;right:0;top:44px;width:310px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 35px rgba(0,60,40,.14);overflow:hidden;z-index:100}
.notification-popover[hidden]{display:none}.notification-popover:not([hidden]){display:block}
.notification-popover-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);font-size:12px}
.notification-popover-head a{font-size:10px;font-weight:800;color:var(--green)}
.notification-empty{padding:18px 14px;color:var(--muted);font-size:11px}
.notification-mini{display:flex;gap:9px;padding:11px 14px;color:var(--ink);border-bottom:1px solid #eef3ef;background:#fff}
.notification-mini:last-child{border-bottom:0}
.notification-mini:hover,.notification-mini.unread{background:#f7fbf9}
.notification-mini-icon{width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:var(--green-soft);display:grid;place-items:center;font-size:13px}
.notification-mini span:nth-child(2){min-width:0;display:block}
.notification-mini strong,.notification-mini small,.notification-mini em{display:block}
.notification-mini strong{font-size:11px;margin-bottom:2px}
.notification-mini small{font-size:10px;color:var(--muted);line-height:1.4}
.notification-mini em{font-size:9px;color:#91a099;font-style:normal;margin-top:4px}
.discussion-delete-form{display:inline-flex;margin:2px 0 0 10px;vertical-align:middle}
.discussion-delete-btn{border:0;background:transparent;color:#b43b4c;font-size:10px;font-weight:800;padding:2px 0;cursor:pointer}
.discussion-delete-btn:hover{text-decoration:underline}
.discussion-delete-btn:focus{outline:2px solid #f0cbd1;outline-offset:3px;border-radius:4px}
@media(max-width:600px){.notification-popover{position:fixed;right:12px;top:58px;width:min(310px,calc(100vw - 24px))}.discussion-delete-form{margin-left:8px}}

/* V54 — clean student learning UI */
.student-clean-page{max-width:1080px}
.student-clean-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:2px 0 18px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.student-clean-head h2{margin:3px 0 4px;font-size:27px;letter-spacing:-.03em}
.student-clean-head p{margin:0;color:var(--muted);font-size:11px}
.student-clean-tabs{display:flex;gap:20px}
.student-clean-tabs a{padding:8px 1px;color:var(--muted);font-size:11px;font-weight:800;border-bottom:2px solid transparent;text-decoration:none}
.student-clean-tabs a.active{color:var(--blue);border-color:var(--blue)}
.student-clean-filter{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}
.student-clean-filter label{font-size:11px;font-weight:700;color:var(--muted)}
.student-clean-filter select{width:280px;height:38px;font-size:11px}
.student-clean-list{display:grid;gap:8px}
.student-clean-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px 16px}
.student-clean-item:hover{border-color:#cbded5;box-shadow:0 4px 14px rgba(20,70,55,.045)}
.student-clean-main{min-width:0}
.student-clean-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.student-clean-date{font-size:9px;color:var(--muted)}
.student-clean-item h3{margin:0 0 4px;font-size:15px;line-height:1.35}
.student-clean-item p{margin:0 0 5px;color:var(--muted);font-size:10px;line-height:1.55;max-width:720px}
.student-clean-info{font-size:9px;color:var(--muted);line-height:1.6}
.student-clean-info strong{color:var(--ink)}
.student-clean-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;min-width:175px}
.student-clean-actions .btn{font-size:10px;padding:8px 11px}
.clean-link{border:0;background:none;padding:0;color:var(--blue);font-size:10px;font-weight:800;cursor:pointer;text-decoration:none;white-space:nowrap}
.clean-link:hover{text-decoration:underline}
.student-clean-empty{background:#fff;border:1px solid var(--line);border-radius:11px;padding:25px;text-align:center;color:var(--muted);font-size:11px}
.clean-video-modal{display:none;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center;padding:16px}
.clean-video-modal.show{display:flex}
.clean-video-backdrop{position:absolute;inset:0;background:rgba(8,35,28,.7);backdrop-filter:blur(3px)}
.clean-video-dialog{position:relative;z-index:2;width:min(850px,94vw);background:#fff;border-radius:14px;padding:15px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.clean-video-close{position:absolute;right:9px;top:8px;width:33px;height:33px;border:0;border-radius:50%;background:#edf5f1;color:#164b3b;font-size:21px;cursor:pointer}
.clean-video-title{font-size:13px;font-weight:800;padding:2px 40px 11px}
.clean-video-frame{position:relative;padding-top:56.25%;overflow:hidden;border-radius:9px;background:#102d25}
.clean-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.assignment-clean-item{border-left:3px solid #dcece5}
.assignment-clean-item:hover{border-left-color:var(--blue)}
@media(max-width:760px){.student-clean-head{display:block}.student-clean-tabs{margin-top:10px}.student-clean-filter{display:block}.student-clean-filter select{width:100%;margin-top:6px}.student-clean-item{grid-template-columns:1fr}.student-clean-actions{justify-content:flex-start;min-width:0;padding-top:10px;border-top:1px solid var(--line)}.student-clean-head h2{font-size:23px}}

/* V55 - student material detail clean */
.content-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.content-detail-main{padding:24px}.content-detail-main h2{margin:8px 0 12px;font-size:28px;line-height:1.2;letter-spacing:-.025em}.detail-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.detail-date{font-size:11px;color:var(--muted)}.detail-description{font-size:14px;line-height:1.8;color:var(--ink);margin:14px 0}.detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.detail-back{margin-top:18px}.detail-back .text-link{font-size:11px;font-weight:800}.content-detail-side{padding:20px}.detail-period{display:grid;gap:14px;margin-top:12px}.detail-period>div{display:grid;gap:4px}.detail-period b{font-size:12px}.detail-period span{font-size:12px;color:var(--muted);line-height:1.55}.content-detail-side p{font-size:11px;line-height:1.6;margin-top:18px}@media(max-width:800px){.content-detail-grid{grid-template-columns:1fr}.content-detail-side{order:2}.content-detail-main h2{font-size:24px}.content-detail-main,.content-detail-side{padding:18px}}

/* V56 — clean teacher grading */
.grading-page{max-width:1280px;margin:0 auto}
.grading-filter-card,.grading-selected-card,.grading-class-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.grading-filter-card{padding:20px;margin-bottom:14px}
.grading-section-head{margin-bottom:16px}.grading-section-head h2{margin:3px 0 4px;font-size:20px;letter-spacing:-.02em}.grading-section-head p{margin:0;color:var(--muted);font-size:11px}
.grading-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.grading-filter-grid .field label{font-size:11px}.grading-filter-actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:2px}.grading-filter-actions .btn{min-width:150px}
.grading-selected-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:18px 20px;margin-bottom:14px;align-items:center}.grading-selected-main h2{margin:3px 0 8px;font-size:21px}.grading-meta{display:flex;gap:6px;flex-wrap:wrap}.grading-meta .badge{padding:5px 9px;font-size:10px}.grading-stats{display:flex;gap:8px}.grading-stats>div{min-width:88px;text-align:center;padding:10px 12px;background:#f7faf8;border:1px solid var(--line);border-radius:10px}.grading-stats strong{display:block;font-size:18px;color:var(--green)}.grading-stats span{display:block;font-size:9px;color:var(--muted);margin-top:2px}
.grading-class-card{overflow:hidden}.grading-card-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fbfdfc}.grading-card-head h3{margin:0;font-size:15px}.grading-card-head h3 span{font-weight:500;color:var(--muted)}.grading-card-head p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.grading-legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;color:var(--muted);font-size:9px;white-space:nowrap}.grading-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%;background:#b8c5bf}.legend-dot.submitted{background:#2d9a6a}.legend-dot.pending{background:#c5cbc7}
.grading-table-wrap{overflow:auto}.grading-table{min-width:980px}.grading-table th{padding:10px 10px;background:#f6f9f7;font-size:9px}.grading-table td{padding:10px;vertical-align:middle}.grading-table .row-no{color:var(--muted);width:36px}.student-grade-name{display:flex;align-items:center;gap:8px;min-width:170px}.student-grade-name .avatar-sm{width:30px;height:30px;border-radius:8px}.student-grade-name b{display:block;font-size:11px}.student-grade-name span{display:block;color:var(--muted);font-size:9px;margin-top:2px}.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;white-space:nowrap}.status-chip.success{background:#e8f3ef;color:#006241}.status-chip.warning{background:#fff7df;color:#8a6500}.status-chip.muted{background:#f2f4f2;color:#77837d}.submitted-at{font-size:10px;color:var(--muted);white-space:nowrap}.muted-text{font-size:10px;color:#9aa59f}.answer-cell{min-width:145px}.answer-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.text-action{font-size:10px;font-weight:800;color:var(--green)}.text-action:hover{text-decoration:underline}.answer-cell details{font-size:10px}.answer-cell summary{cursor:pointer;color:var(--green);font-weight:800}.answer-text{margin-top:6px;padding:8px;background:#f7faf8;border-radius:7px;color:var(--ink);line-height:1.5;max-width:260px;white-space:normal}.grade-cell{width:125px}.grade-score{min-width:88px;min-height:36px!important;padding:7px 9px!important}.manual-check{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:800;color:var(--green);margin-bottom:5px;cursor:pointer}.manual-check input{accent-color:var(--green)}.feedback-cell{min-width:180px}.feedback-cell .input{min-height:36px!important;padding:7px 9px!important;font-size:10px}.locked-grade{display:inline-flex;padding:7px 9px;border-radius:7px;background:#f5f6f5;color:#a0aaa5;font-size:9px}.locked-note{font-size:9px;color:#9b6b72}.grading-save-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-top:1px solid var(--line);background:#fbfdfc;font-size:10px;color:var(--muted)}.grading-save-bar b{color:var(--ink)}.grading-empty{margin-top:14px;padding:30px;text-align:center;color:var(--muted);font-size:11px}
@media(max-width:900px){.grading-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grading-filter-actions{grid-column:1/-1}.grading-selected-card{grid-template-columns:1fr}.grading-stats{justify-content:flex-start}.grading-card-head{align-items:flex-start;flex-direction:column}.grading-legend{justify-content:flex-start}}
@media(max-width:600px){.grading-filter-grid{grid-template-columns:1fr}.grading-filter-actions{justify-content:stretch}.grading-filter-actions .btn{width:100%}.grading-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.grading-stats>div{min-width:0}.grading-save-bar{align-items:stretch;flex-direction:column}.grading-save-bar .btn{width:100%}}

/* V57 — nilai siswa lebih jelas */
.student-score-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#dff2e9;color:#006241;font-size:9px;font-weight:850;white-space:nowrap}
.student-score-text{color:#006241;font-weight:850}

/* V58 — notification center */
.notification-wrap{position:relative;display:flex;align-items:center}
.notif-link{position:relative;border:0;background:transparent;cursor:pointer;width:34px;height:34px;display:grid;place-items:center;font-size:17px;padding:0;color:var(--ink)}
.notif-link:hover{background:var(--green-soft);border-radius:9px}
.notif-count{position:absolute;right:-1px;top:-1px;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:#d83b4d;color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}
.notification-popover{right:0;top:42px;width:340px;max-width:min(340px,calc(100vw - 24px))}
.notification-mini{cursor:pointer}
@media(max-width:600px){.notification-popover{position:fixed;right:12px;top:58px;width:min(340px,calc(100vw - 24px))}}

/* V59 — realtime notification polling */
.notif-new{animation:notifPulse .55s ease-in-out 2}
@keyframes notifPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.notification-mini{transition:background .15s ease}
/* V60 notification polish */
.notification-wrap{position:relative;display:flex;align-items:center}
.notif{position:relative;width:42px;height:42px;border:0;background:transparent;border-radius:12px;display:grid;place-items:center;cursor:pointer;font-size:20px}
.notif:hover{background:#eef7f3}
.notif-count{position:absolute;right:1px;top:1px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d92d20;color:#fff;font:700 10px/18px Arial,sans-serif;text-align:center;border:2px solid #fff}
.notification-popover[hidden]{display:none!important}
.notification-popover{position:absolute;right:0;top:48px;width:360px;max-width:calc(100vw - 24px);background:#fff;border:1px solid #dce8e3;border-radius:16px;box-shadow:0 18px 45px rgba(20,45,38,.14);z-index:1000;overflow:hidden}
.notification-popover-head{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;border-bottom:1px solid #edf2ef}
.notification-popover-head a{font-size:12px;font-weight:700;color:#007f55;text-decoration:none}
.notification-mini{display:flex;gap:10px;padding:12px 15px;color:#173b31;text-decoration:none;border-bottom:1px solid #f0f3f2}
.notification-mini:hover{background:#f7fbf9}.notification-mini.unread{background:#f2faf6}
.notification-mini-icon{flex:0 0 30px;width:30px;height:30px;border-radius:9px;background:#e5f3ed;display:grid;place-items:center;font-size:15px}
.notification-mini span:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:2px}.notification-mini strong{font-size:12px}.notification-mini small{font-size:11px;line-height:1.35;color:#61746d}.notification-mini em{font-style:normal;font-size:10px;color:#92a19b}
.notification-empty{padding:22px 16px;color:#74857f;font-size:12px}
.notif-new{animation:notifPulse .7s ease}
@keyframes notifPulse{50%{transform:scale(1.12)}}
@media(max-width:700px){.notification-popover{right:-8px;width:330px}.top-user-copy{display:none}}


/* V65 — Notification center clean + clear read/unread */
.notification-page{max-width:1000px;margin:0 auto}
.notification-page .section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}
.notification-page .section-head h2{margin:0 0 4px;font-size:18px;letter-spacing:-.02em}
.notification-page .section-head p{margin:0;font-size:11px;color:var(--muted)}
.notification-page .section-head form{margin:0}
.notification-page .section-head .btn{font-size:10px;padding:8px 11px}
.notification-list{display:grid;gap:0}
.notification-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;padding:15px 18px;border-bottom:1px solid #edf2ef;transition:background .15s ease}
.notification-item:last-child{border-bottom:0}
.notification-item.unread{background:#eef8f3;border-left:4px solid var(--green);padding-left:14px}
.notification-item.read{background:#fff;border-left:4px solid transparent}
.notification-item:hover{background:#f7fbf9}
.notification-icon{width:32px;height:32px;border-radius:9px;background:#e8f3ee;display:grid;place-items:center;font-size:15px}
.notification-item.read .notification-icon{background:#f1f4f2;opacity:.82}
.notification-copy{min-width:0}
.notification-copy strong{display:block;font-size:12px;line-height:1.4;color:var(--ink);margin-bottom:3px}
.notification-item.unread .notification-copy strong{font-weight:850}
.notification-copy p{margin:0 0 5px;color:var(--muted);font-size:11px;line-height:1.5}
.notification-copy .tiny{font-size:9px;color:#93a19b}
.notification-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;min-width:105px}
.notification-actions form{margin:0}
.notification-actions .btn{font-size:10px;padding:7px 10px;white-space:nowrap}
.notification-actions .btn-light{background:#fff;border:1px solid var(--line)}
.notification-empty{padding:44px 20px;text-align:center;color:var(--muted);font-size:11px}
@media(max-width:700px){
 .notification-page .section-head{align-items:flex-start;flex-direction:column}
 .notification-page .section-head form,.notification-page .section-head .btn{width:100%}
 .notification-item{grid-template-columns:32px minmax(0,1fr);gap:10px;padding:13px 14px}
 .notification-item.unread{padding-left:10px}
 .notification-actions{grid-column:2;justify-content:flex-start;min-width:0;padding-top:3px}
}

/* Popover: unread is green, read is white */
.notification-mini.read{background:#fff;border-left:3px solid transparent}
.notification-mini.unread{background:#eef8f3;border-left:3px solid var(--green)}
.notification-mini.unread strong{font-weight:850}
.notification-mini.read strong{font-weight:700}
.notification-mini:hover{background:#f7fbf9}

/* V66 — notification clean, newest-first, read/unread clarity */
.notification-page-wrap{max-width:1120px;margin:0 auto;padding:4px 0 34px}
.notification-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:4px 0 16px;padding:0 2px}
.notification-page-head h2{margin:4px 0 4px;font-size:28px;letter-spacing:-.03em;color:var(--ink)}
.notification-page-head p{margin:0;color:var(--muted);font-size:12px}
.notification-read-all-form{margin-bottom:4px}.notification-read-all-form .text-link{font-size:11px}
.notification-page-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:0 8px 24px rgba(20,70,55,.04)}
.notification-page-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);font-size:11px}.notification-page-toolbar span{color:var(--muted);font-size:10px}
.notification-list{display:block}
.notification-item{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;gap:12px;align-items:center;padding:16px 18px;color:var(--ink);text-decoration:none;border-bottom:1px solid #edf2ef;transition:background .15s ease,border-color .15s ease}.notification-item:last-child{border-bottom:0}
.notification-item.unread{background:#eef8f3;border-left:4px solid var(--green);padding-left:14px}.notification-item.read{background:#fff;border-left:4px solid transparent}.notification-item:hover{background:#f7fbf9}.notification-item.unread:hover{background:#e7f4ee}
.notification-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:15px;background:#f1f5f3}.notification-item.unread .notification-icon{background:var(--green-soft)}
.notification-copy{min-width:0}.notification-copy strong{display:block;font-size:12px;margin-bottom:4px}.notification-copy p{margin:0 0 6px;color:var(--muted);font-size:11px;line-height:1.55}.notification-time{font-size:9px;color:#8a9993}.notification-time b{font-weight:700;margin:0 2px}.notification-arrow{font-size:22px;color:#9aaba4;text-align:right}.notification-item.unread .notification-arrow{color:var(--green)}
.notification-empty-page{padding:45px 20px;text-align:center;color:var(--muted);font-size:12px}
.notification-popover{width:360px;max-width:min(360px,calc(100vw - 24px));border-radius:14px;box-shadow:0 18px 45px rgba(0,60,40,.16)}
.notification-popover-head{padding:13px 15px}.notification-mini{padding:12px 14px;min-height:70px}.notification-mini.unread{background:#eef8f3;border-left:4px solid var(--green);padding-left:10px}.notification-mini.read{background:#fff;border-left:4px solid transparent}.notification-mini:hover{background:#f7fbf9}.notification-mini.unread:hover{background:#e7f4ee}
.notification-mini strong{font-size:11px}.notification-mini small{font-size:10px}.notification-mini em{font-size:9px}
@media(max-width:700px){.notification-page-wrap{padding-left:0;padding-right:0}.notification-page-head{display:block}.notification-read-all-form{margin-top:10px}.notification-page-head h2{font-size:24px}.notification-item{grid-template-columns:34px minmax(0,1fr) 14px;padding:14px}.notification-item.unread{padding-left:10px}.notification-page-toolbar{padding:12px 14px}}
/* V69 — realtime discussion */
.discussion-list{min-height:180px}
.discussion-list .section-head{position:relative}
.discussion-list .section-head:after{content:'● realtime';font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--green);margin-left:auto}
.discussion-delete-form{display:inline-block;margin-left:10px}.discussion-delete-btn{border:0;background:transparent;color:#b35a5a;font-size:10px;font-weight:700;padding:2px 0;cursor:pointer}.discussion-delete-btn:hover{text-decoration:underline}
@media(max-width:600px){.discussion-list .section-head:after{font-size:8px}.discussion-delete-form{margin-left:7px}}
/* Dashboard Guru - clean operational view */
.teacher-dash-greeting{background:linear-gradient(135deg,#fff,#eef7f3);border:1px solid var(--line);border-radius:16px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.teacher-dash-greeting h2{margin:2px 0 4px;font-size:25px;letter-spacing:-.02em}.teacher-dash-greeting p{margin:0;color:var(--muted);font-size:12px}.teacher-dash-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.teacher-dash-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;display:grid;grid-template-columns:38px 1fr;column-gap:11px;align-items:center}.teacher-dash-stat .dash-stat-icon{grid-row:1/3;width:38px;height:38px;border-radius:11px;background:var(--green-soft);display:grid;place-items:center}.teacher-dash-stat strong{font-size:22px;line-height:1}.teacher-dash-stat small{font-size:11px;color:var(--muted);margin-top:3px}.teacher-dash-section-head{margin-top:22px;margin-bottom:10px}.teacher-dash-section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.attention-list{display:grid;gap:8px}.attention-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--ink)}.attention-item:hover{border-color:#acd0c1}.attention-icon{width:34px;height:34px;border-radius:10px;background:#f0f5f1;display:grid;place-items:center;flex:0 0 auto}.attention-item span:nth-child(2){min-width:0;flex:1}.attention-item b,.attention-item small{display:block}.attention-item b{font-size:12px}.attention-item small{font-size:11px;color:var(--muted);margin-top:3px}.attention-item>strong{font-size:11px;white-space:nowrap}.danger-item{border-left:3px solid #c85a66}.warning-item{border-left:3px solid #c69627}.info-item{border-left:3px solid #3f8c75}.success-item{border-left:3px solid #71a890}.teacher-dash-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:14px}.lower-dash{grid-template-columns:1fr 1fr}.dash-panel{padding:17px}.dash-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.dash-panel-head h2{font-size:15px;margin:0}.dash-panel-head p{font-size:11px;color:var(--muted);margin:4px 0 0}.dash-panel-head>a,.dash-panel-head>b{font-size:11px;color:var(--green)}.dash-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #edf1ee;padding:11px 0}.dash-row:first-of-type{border-top:0}.dash-row b,.dash-row small{display:block}.dash-row b{font-size:12px}.dash-row small{font-size:10.5px;color:var(--muted);margin-top:4px}.dash-link{font-size:11px;font-weight:800;white-space:nowrap}.dash-row-link{color:var(--ink)}.dash-row-link>span{font-size:20px;color:#88a095}.dash-empty{padding:18px 0;color:var(--muted);font-size:12px}.progress{height:9px;background:#edf3ef;border-radius:999px;overflow:hidden;margin:15px 0 8px}.progress span{display:block;height:100%;background:var(--green);border-radius:999px}.progress-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10.5px}.class-chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.class-chip{padding:7px 10px;border-radius:999px;background:var(--green-soft);font-size:10.5px;font-weight:750;color:var(--green)}.dash-subjects{font-size:11px;color:var(--muted)}.dash-subjects b{color:var(--ink)}.dash-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.dash-quick-actions a{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--ink);font-size:11px;font-weight:750}.dash-quick-actions a:hover{border-color:#acd0c1;color:var(--green)}
@media(max-width:900px){.teacher-dash-stats{grid-template-columns:repeat(2,1fr)}.teacher-dash-columns,.lower-dash{grid-template-columns:1fr}.teacher-dash-greeting{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.teacher-dash-stats{grid-template-columns:1fr}.attention-item{align-items:flex-start}.attention-item>strong{margin-left:auto}.teacher-dash-greeting h2{font-size:21px}}

/* V92 DASHBOARD GURU & SISWA — clean dashboard layout */
.teacher-dash-greeting{background:linear-gradient(135deg,#ffffff 0%,#f1f8f4 100%);border:1px solid var(--line);border-radius:18px;padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px}
.teacher-dash-greeting .eyebrow{margin-bottom:8px}.teacher-dash-greeting h2{margin:0 0 7px;font-size:27px;line-height:1.2;color:var(--ink)}.teacher-dash-greeting p{margin:0;color:var(--muted);font-size:13px}.teacher-dash-greeting .btn{flex:0 0 auto}
.teacher-dash-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacher-dash-stat{min-width:0;background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px 18px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;color:var(--ink);transition:.18s ease}.teacher-dash-stat:hover{border-color:#b8d5c8;transform:translateY(-1px)}.teacher-dash-stat .dash-stat-icon{grid-row:1/3;width:42px;height:42px;border-radius:12px;background:var(--green-soft);display:grid;place-items:center;font-size:18px}.teacher-dash-stat strong{font-size:23px;line-height:1}.teacher-dash-stat small{font-size:11px;color:var(--muted);margin-top:4px}
.teacher-dash-section-head{margin-top:24px;margin-bottom:10px}.teacher-dash-section-head h2{font-size:17px;margin:0}.teacher-dash-section-head p{margin:4px 0 0;color:var(--muted);font-size:12px}
.attention-list{display:grid;gap:9px}.attention-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 15px;color:var(--ink);transition:.18s ease}.attention-item:hover{border-color:#b8d5c8;background:#fcfefd}.attention-icon{width:36px;height:36px;border-radius:10px;background:#f1f6f3;display:grid;place-items:center}.attention-item span:nth-child(2){min-width:0}.attention-item b,.attention-item small{display:block}.attention-item b{font-size:12px}.attention-item small{font-size:11px;color:var(--muted);margin-top:3px}.attention-item>strong{font-size:11px;color:var(--green);white-space:nowrap}.danger-item{border-left:3px solid #c85a66}.warning-item{border-left:3px solid #c69627}.info-item{border-left:3px solid #3f8c75}.success-item{border-left:3px solid #71a890}
.teacher-dash-columns{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin-top:14px}.teacher-dash-columns.lower-dash{grid-template-columns:1fr 1fr}.dash-panel{padding:19px}.dash-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.dash-panel-head h2{font-size:16px;margin:0;color:var(--ink)}.dash-panel-head p{font-size:11px;color:var(--muted);margin:4px 0 0}.dash-panel-head>a,.dash-panel-head>b{font-size:11px;color:var(--green);white-space:nowrap}.dash-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #edf1ee;padding:12px 0}.dash-row:first-of-type{border-top:0}.dash-row b,.dash-row small{display:block}.dash-row b{font-size:12px}.dash-row small{font-size:10.5px;color:var(--muted);margin-top:4px}.dash-link{font-size:11px;font-weight:800;white-space:nowrap;color:var(--green)}.dash-row-link{color:var(--ink)}.dash-row-link>span{font-size:19px;color:#88a095}.dash-empty{padding:18px 0;color:var(--muted);font-size:12px}.progress{height:9px;background:#edf3ef;border-radius:999px;overflow:hidden;margin:15px 0 8px}.progress span{display:block;height:100%;background:var(--green);border-radius:999px}.progress-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10.5px}.class-chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.class-chip{padding:7px 10px;border-radius:999px;background:var(--green-soft);font-size:10.5px;font-weight:750;color:var(--green)}.dash-subjects{font-size:11px;color:var(--muted)}.dash-subjects b{color:var(--ink)}.dash-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.dash-quick-actions a{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;color:var(--ink);font-size:11px;font-weight:750}.dash-quick-actions a:hover{border-color:#acd0c1;color:var(--green)}
/* Student dashboard */
.student-dash-greeting{background:linear-gradient(135deg,#fff 0%,#f1f8f4 100%);border:1px solid var(--line);border-radius:18px;padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.student-dash-greeting h2{margin:0 0 6px;font-size:25px;line-height:1.2}.student-dash-greeting p{margin:0;color:var(--muted);font-size:12px}.student-dash-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.student-dash-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:4px 11px;align-items:center;color:var(--ink)}.student-dash-stat>span{grid-row:1/3;width:38px;height:38px;border-radius:11px;background:var(--green-soft);display:grid;place-items:center}.student-dash-stat strong{font-size:21px;line-height:1}.student-dash-stat small{font-size:10.5px;color:var(--muted)}.student-dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.student-dash-grid-main{grid-template-columns:1.05fr .95fr}.student-dash-panel{padding:18px}.student-attention-row{display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:11px;padding:11px 0;border-top:1px solid #edf1ee;color:var(--ink)}.student-attention-row:first-of-type{border-top:0}.student-attention-row>span{width:34px;height:34px;border-radius:10px;background:#f0f5f1;display:grid;place-items:center}.student-attention-row b,.student-attention-row small{display:block}.student-attention-row b{font-size:12px}.student-attention-row small{font-size:10.5px;color:var(--muted);margin-top:3px}.student-attention-row i{font-style:normal;font-size:20px;color:#89a097}.attention-green>span{background:var(--green-soft)}.attention-muted{opacity:.82}.student-score-row,.student-task-row,.student-discussion-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #edf1ee;padding:11px 0;color:var(--ink)}.student-score-row:first-of-type,.student-task-row:first-of-type,.student-discussion-row:first-of-type{border-top:0}.student-score-row b,.student-score-row small,.student-task-row b,.student-task-row small,.student-discussion-row b,.student-discussion-row small{display:block}.student-score-row b,.student-task-row b,.student-discussion-row b{font-size:12px}.student-score-row small,.student-task-row small,.student-discussion-row small{font-size:10.5px;color:var(--muted);margin-top:4px}.student-score-row>strong{font-size:15px;color:var(--green);white-space:nowrap}.student-task-row>span,.student-discussion-row>i{font-style:normal;font-size:20px;color:#89a097}.student-task-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:5px}.student-discussion-row{align-items:flex-start}.student-discussion-row>span{width:32px;height:32px;border-radius:9px;background:var(--green-soft);display:grid;place-items:center;flex:0 0 auto}.student-discussion-row>div{flex:1;min-width:0}.student-discussion-row p{margin:5px 0 0;font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.student-summary-grid a{border:1px solid var(--line);border-radius:11px;padding:11px;color:var(--ink);display:grid;gap:3px}.student-summary-grid b{font-size:16px;color:var(--green)}.student-summary-grid span{font-size:9.5px;color:var(--muted)}
@media(max-width:900px){.teacher-dash-stats,.student-dash-stats{grid-template-columns:repeat(2,1fr)}.teacher-dash-columns,.teacher-dash-columns.lower-dash,.student-dash-grid,.student-dash-grid-main{grid-template-columns:1fr}.teacher-dash-greeting,.student-dash-greeting{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.teacher-dash-stats,.student-dash-stats{grid-template-columns:1fr}.attention-item{grid-template-columns:34px minmax(0,1fr)}.attention-item>strong{grid-column:2}.teacher-dash-greeting h2,.student-dash-greeting h2{font-size:21px}.student-summary-grid{grid-template-columns:1fr}}


/* =========================================================
   ADMIN DASHBOARD V2 — clean, compact, scoped
   ========================================================= */
.admin-dashboard-v2{width:100%;max-width:1480px;margin:0 auto;padding-bottom:28px;color:#17382f}
.admin-dashboard-v2 *{box-sizing:border-box}
.admin-dashboard-v2 .admin-greeting{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:6px 0 24px}
.admin-dashboard-v2 .admin-greeting h2{margin:7px 0 5px;font-size:30px;line-height:1.15;letter-spacing:-.025em;color:#12382f}
.admin-dashboard-v2 .admin-greeting p{margin:0;color:#718078;font-size:13px}
.admin-dashboard-v2 .admin-system-status{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #dbe8e1;border-radius:999px;background:#fff;color:#5d7068;font-size:11px;white-space:nowrap}
.admin-dashboard-v2 .status-dot{width:8px;height:8px;border-radius:50%;background:#00875a;display:inline-block}
.admin-dashboard-v2 .admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
.admin-dashboard-v2 .admin-stat{min-height:132px;padding:19px 20px;border:1px solid #dce7e1;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(21,61,49,.035)}
.admin-dashboard-v2 .admin-stat .stat-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#eaf5f0;font-size:17px;margin-bottom:12px}
.admin-dashboard-v2 .admin-stat .stat-label{font-size:11px;color:#687a73;margin-bottom:3px}
.admin-dashboard-v2 .admin-stat .stat-value{font-size:28px;font-weight:850;line-height:1.1;color:#12382f;letter-spacing:-.02em}
.admin-dashboard-v2 .admin-stat .stat-note{font-size:10px;color:#87948f;margin-top:5px}
.admin-dashboard-v2 .panel{border:1px solid #dce7e1;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(21,61,49,.035);overflow:hidden}
.admin-dashboard-v2 .dash-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 15px;border-bottom:1px solid #edf2ef}
.admin-dashboard-v2 .dash-panel-head h2{margin:0;font-size:17px;line-height:1.25;color:#17382f}
.admin-dashboard-v2 .dash-panel-head p{margin:5px 0 0;font-size:11px;color:#7a8983;line-height:1.4}
.admin-dashboard-v2 .dash-panel-head>a{font-size:11px;font-weight:750;color:#007c55;text-decoration:none;white-space:nowrap}
.admin-dashboard-v2 .admin-grid-top{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.85fr);gap:14px;margin-bottom:14px}
.admin-dashboard-v2 .admin-attention-list{padding:6px 12px 12px}
.admin-dashboard-v2 .admin-alert{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 8px;border-bottom:1px solid #edf2ef;text-decoration:none;color:inherit}
.admin-dashboard-v2 .admin-alert:last-child{border-bottom:0}
.admin-dashboard-v2 .admin-alert-icon{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#eef6f2;color:#007c55;font-size:13px}
.admin-dashboard-v2 .admin-alert b{display:block;font-size:12px;color:#24443b;line-height:1.3}
.admin-dashboard-v2 .admin-alert small{display:block;margin-top:3px;font-size:10px;color:#81908a;line-height:1.35}
.admin-dashboard-v2 .admin-alert strong{font-size:10px;color:#007c55;white-space:nowrap}
.admin-dashboard-v2 .admin-alert.warning .admin-alert-icon{background:#fff5df;color:#a36a00}.admin-dashboard-v2 .admin-alert.danger .admin-alert-icon{background:#fff0f1;color:#b63d49}.admin-dashboard-v2 .admin-alert.info .admin-alert-icon{background:#edf4ff;color:#3e68a7}
.admin-dashboard-v2 .admin-attendance-card{padding-bottom:15px}
.admin-dashboard-v2 .admin-attendance-card .dash-panel-head{border-bottom:0;padding-bottom:11px}
.admin-dashboard-v2 .admin-big-percent{font-size:24px;color:#007c55;line-height:1}
.admin-dashboard-v2 .admin-progress{height:8px;background:#edf3ef;border-radius:99px;margin:0 20px 16px;overflow:hidden}
.admin-dashboard-v2 .admin-progress span{display:block;height:100%;background:#00875a;border-radius:99px}
.admin-dashboard-v2 .admin-attendance-legend{display:grid;grid-template-columns:repeat(4,1fr);padding:0 20px 16px;gap:8px}
.admin-dashboard-v2 .admin-attendance-legend div{padding:9px 6px;text-align:center;background:#fafcfb;border-radius:9px}
.admin-dashboard-v2 .admin-attendance-legend b{display:block;font-size:16px;color:#17382f}.admin-dashboard-v2 .admin-attendance-legend span{display:block;font-size:9px;color:#81908a;margin-top:2px}
.admin-dashboard-v2 .btn{font-size:11px;min-height:36px;border-radius:9px}.admin-dashboard-v2 .btn-light{border-color:#dce7e1;color:#276052;background:#fff}
.admin-dashboard-v2 .admin-attendance-card .btn-block{margin:0 20px;width:calc(100% - 40px)}
.admin-dashboard-v2 .admin-grid-main{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.85fr);gap:14px;margin-bottom:14px}
.admin-dashboard-v2 .admin-activity-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 20px;border-bottom:1px solid #edf2ef}
.admin-dashboard-v2 .admin-activity-row:last-child{border-bottom:0}
.admin-dashboard-v2 .admin-activity-icon{width:30px;height:30px;border-radius:9px;background:#eef6f2;display:grid;place-items:center;font-size:13px}
.admin-dashboard-v2 .admin-activity-row b{display:block;font-size:11px;color:#24443b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-dashboard-v2 .admin-activity-row small{display:block;font-size:9px;color:#87948f;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-dashboard-v2 .admin-activity-row time{font-size:9px;color:#97a29e;white-space:nowrap}
.admin-dashboard-v2 .admin-learning-grid{display:grid;grid-template-columns:1fr 1fr;padding:16px 20px;gap:9px}
.admin-dashboard-v2 .admin-learning-grid div{padding:13px;border:1px solid #e5ece8;border-radius:10px;background:#fbfdfc}.admin-dashboard-v2 .admin-learning-grid b{display:block;font-size:20px;color:#17382f}.admin-dashboard-v2 .admin-learning-grid span{display:block;font-size:9px;color:#7d8c86;margin-top:3px}
.admin-dashboard-v2 .admin-learning-panel .btn-block{margin:0 20px 18px;width:calc(100% - 40px)}
.admin-dashboard-v2 .admin-grid-bottom{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px}
.admin-dashboard-v2 .admin-rank-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid #edf2ef}.admin-dashboard-v2 .admin-rank-row:last-child{border-bottom:0}.admin-dashboard-v2 .rank-no{width:25px;height:25px;border-radius:8px;background:#eef6f2;display:grid;place-items:center;font-size:10px;font-weight:800;color:#007c55}.admin-dashboard-v2 .admin-rank-row b{display:block;font-size:11px}.admin-dashboard-v2 .admin-rank-row small{font-size:9px;color:#89958f}.admin-dashboard-v2 .admin-rank-row strong{font-size:12px;color:#007c55}
.admin-dashboard-v2 .admin-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:16px 20px}.admin-dashboard-v2 .admin-quick-grid a{min-width:0;padding:13px 10px;border:1px solid #e5ece8;border-radius:10px;text-decoration:none;color:#24443b;background:#fbfdfc}.admin-dashboard-v2 .admin-quick-grid a:hover{border-color:#bfd9cc;background:#f5faf7}.admin-dashboard-v2 .admin-quick-grid a:first-letter{font-size:16px}.admin-dashboard-v2 .admin-quick-grid b{display:block;margin-top:7px;font-size:10px}.admin-dashboard-v2 .admin-quick-grid small{display:block;margin-top:2px;font-size:9px;color:#89958f}
.admin-dashboard-v2 .dash-empty{padding:25px 20px;text-align:center;color:#87948f;font-size:11px}
@media(max-width:1050px){.admin-dashboard-v2 .admin-stats{grid-template-columns:repeat(2,1fr)}.admin-dashboard-v2 .admin-grid-top,.admin-dashboard-v2 .admin-grid-main,.admin-dashboard-v2 .admin-grid-bottom{grid-template-columns:1fr}}
@media(max-width:650px){.admin-dashboard-v2 .admin-greeting{align-items:flex-start;flex-direction:column}.admin-dashboard-v2 .admin-stats{grid-template-columns:1fr 1fr;gap:9px}.admin-dashboard-v2 .admin-stat{min-height:115px;padding:14px}.admin-dashboard-v2 .admin-stat .stat-value{font-size:23px}.admin-dashboard-v2 .admin-alert{grid-template-columns:31px minmax(0,1fr)}.admin-dashboard-v2 .admin-alert strong{display:none}.admin-dashboard-v2 .admin-quick-grid{grid-template-columns:1fr 1fr}.admin-dashboard-v2 .admin-activity-row time{display:none}.admin-dashboard-v2 .admin-attendance-legend{padding-left:12px;padding-right:12px}.admin-dashboard-v2 .admin-progress{margin-left:12px;margin-right:12px}.admin-dashboard-v2 .admin-attendance-card .btn-block,.admin-dashboard-v2 .admin-learning-panel .btn-block{margin-left:12px;margin-right:12px;width:calc(100% - 24px)}}
.pwa-actions{display:flex;gap:8px;align-items:center;margin-left:auto;margin-right:12px}.pwa-btn{border:1px solid #d7e3de;background:#fff;color:#075d42;border-radius:10px;padding:8px 11px;font-weight:700;cursor:pointer;font-size:12px}.pwa-btn:hover{background:#f0f8f4}@media(max-width:900px){.pwa-actions{display:none}}
.mobile-pwa-banner{display:none}
@media(max-width:900px){
  .pwa-actions{display:none!important}
  .mobile-pwa-banner{display:flex;position:relative;margin:12px 12px 0;padding:14px 15px;border:1px solid #cfe4da;border-radius:16px;background:linear-gradient(135deg,#f2fbf7,#fff);box-shadow:0 6px 20px rgba(0,0,0,.06);gap:12px;align-items:flex-start;z-index:5}
  .mobile-pwa-icon{font-size:28px;line-height:1}
  .mobile-pwa-copy{flex:1;min-width:0}.mobile-pwa-copy strong{display:block;font-size:14px;color:#073f31;margin-bottom:4px}.mobile-pwa-copy span{display:block;font-size:12px;line-height:1.5;color:#5b6d66}
  .mobile-pwa-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.mobile-pwa-actions .pwa-btn{font-size:11px;padding:8px 10px}.mobile-pwa-actions .primary{background:#08704b;color:#fff;border-color:#08704b}.mobile-pwa-actions .pwa-help{border:0;background:transparent;color:#08704b;font-weight:700;padding:7px 4px;font-size:11px}
}

/* V117 */
.pwa-btn.is-active{opacity:.85}

/* V125 notification popup cleanup */
.notification-popover{max-height:min(72vh,620px);overflow:hidden;}
.notification-popover-head{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #edf2ef;}
.notification-mini{min-height:68px;}
.notification-mini.unread{position:relative;}
.notification-mini.unread:after{content:'Baru';margin-left:auto;align-self:flex-start;font-size:9px;font-weight:800;color:var(--green);background:#e7f5ee;border-radius:999px;padding:3px 6px;}
.notification-popover .notification-mini{padding-right:12px;}

/* V126 notification popup: header tetap, daftar notifikasi yang scrollable */
.notification-popover{display:flex;flex-direction:column;max-height:min(560px,calc(100vh - 90px));overflow:hidden;}
.notification-popover .notification-popover-head{flex:0 0 auto;}
.notification-mini-list{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
.notification-mini-list::-webkit-scrollbar{width:7px;}
.notification-mini-list::-webkit-scrollbar-thumb{background:#cbdad4;border-radius:99px;}
.notification-mini-list::-webkit-scrollbar-track{background:#f7faf8;}
@media(max-width:700px){
  /* Mobile notification dropdown: compact, anchored, and independently scrollable */
  .notification-popover{
    position:fixed !important;
    top:64px !important;
    right:12px !important;
    left:auto !important;
    width:min(300px,calc(100vw - 32px)) !important;
    max-width:calc(100vw - 32px) !important;
    max-height:calc(100vh - 82px) !important;
    border-radius:16px !important;
    box-shadow:0 18px 45px rgba(20,45,38,.18) !important;
    z-index:9999 !important;
  }
  .notification-popover-head{padding:13px 14px !important;}
  .notification-popover-head strong{font-size:12px !important;}
  .notification-popover-head a{font-size:10px !important;}
  .notification-mini-list{max-height:calc(100vh - 145px) !important;overflow-y:auto !important;}
  .notification-mini{padding:11px 12px !important;gap:9px !important;min-height:0 !important;}
  .notification-mini-icon{width:30px !important;height:30px !important;flex-basis:30px !important;}
  .notification-mini strong{font-size:11px !important;line-height:1.35 !important;}
  .notification-mini small{font-size:10px !important;line-height:1.45 !important;}
  .notification-mini em{font-size:9px !important;}
  .notification-mini.unread:after{display:none;}
}

@media(max-width:820px){.mobile-pwa-banner{display:none!important}}


/* =========================================================
   LMS SIDEBAR MODERN V1
   Visual-only enhancement: keeps existing navigation/functionality.
   ========================================================= */
.sidebar{
  width:260px;
  padding:18px 12px 14px;
  background:
    radial-gradient(circle at 20% 0%,rgba(57,190,143,.18),transparent 34%),
    linear-gradient(180deg,#004b3e 0%,#005f49 55%,#006b50 100%);
  border-right:1px solid rgba(255,255,255,.07);
  box-shadow:8px 0 30px rgba(0,61,48,.08);
}
.app-shell{grid-template-columns:260px minmax(0,1fr)}
.brand{
  position:relative;
  margin:0 3px 8px;
  padding:8px 9px 16px;
  gap:12px;
}
.brand:after{
  content:"";
  position:absolute;
  left:9px;right:9px;bottom:0;
  height:1px;
  background:rgba(255,255,255,.10);
}
.brand-mark{
  width:42px;height:42px;border-radius:13px;
  box-shadow:0 8px 20px rgba(0,0,0,.16);
  font-size:17px;
}
.brand strong{font-size:13px;letter-spacing:.035em;color:#fff}
.brand small{font-size:9px;color:#b9ded1;margin-top:4px}
.sidebar-nav{
  padding:4px 3px 8px 3px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.30) transparent;
}
.sidebar-nav::-webkit-scrollbar{width:6px}
.sidebar-nav::-webkit-scrollbar-track{background:transparent}
.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.28);border-radius:20px}
.nav-section{
  position:relative;
  padding:18px 10px 7px;
  color:#91c8b6;
  font-size:9px;
  font-weight:850;
  letter-spacing:.14em;
}
.nav-section:first-child{padding-top:10px}
.nav-section:after{
  content:"";
  position:absolute;
  right:10px;left:auto;
  top:50%;
  width:22px;height:1px;
  background:rgba(255,255,255,.10);
}
.nav-link{
  position:relative;
  min-height:40px;
  margin:2px 0;
  padding:9px 10px;
  gap:10px;
  border:1px solid transparent;
  border-radius:11px;
  color:#dceee8;
  font-size:11.5px;
  font-weight:650;
  transition:background .16s ease,border-color .16s ease,transform .16s ease,color .16s ease;
}
.nav-link .nav-icon{
  flex:0 0 28px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.075);
  color:#bfe3d7;
  font-size:12px;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
.nav-link:hover{
  background:rgba(255,255,255,.075);
  border-color:rgba(255,255,255,.08);
  color:#fff;
  transform:translateX(2px);
}
.nav-link:hover .nav-icon{
  background:rgba(255,255,255,.12);
  color:#fff;
}
.nav-link.active{
  background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.095));
  border-color:rgba(255,255,255,.10);
  color:#fff;
  box-shadow:0 5px 16px rgba(0,0,0,.08);
}
.nav-link.active:before{
  content:"";
  position:absolute;
  left:-3px;top:8px;bottom:8px;
  width:3px;
  border-radius:0 5px 5px 0;
  background:#b9f0dc;
  box-shadow:0 0 10px rgba(185,240,220,.28);
}
.nav-link.active .nav-icon{
  background:rgba(255,255,255,.16);
  color:#fff;
}
.sidebar-foot{
  margin:8px 3px 0;
  padding:11px 10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:11px;
  background:rgba(255,255,255,.045);
  color:#b8d8ce;
  font-size:9px;
}
.status-dot{box-shadow:0 0 0 4px rgba(124,201,165,.10),0 0 10px rgba(124,201,165,.35)}
@media(max-width:800px){
  .app-shell{grid-template-columns:1fr}
  .sidebar{width:260px;left:-280px}
  .sidebar-open .sidebar{left:0}
}

/* LMS KEREN mobile notification fix V127 */

/* V137 PWA Install: mobile hanya tampil di sidebar/menu, bukan banner/topbar. */
.nav-pwa-install{display:none;border:0;width:100%;text-align:left;background:transparent;color:inherit;font:inherit;cursor:pointer;}
.nav-pwa-install[hidden]{display:none!important;}
@media(max-width:900px){
  .nav-pwa-install:not([hidden]){display:flex!important;}
}


/* V138 — PWA controls in mobile sidebar */
.nav-pwa-tools{margin-top:10px;display:grid;gap:8px;padding:0 2px 4px;}
.nav-pwa-tools .nav-link.nav-pwa-install,.nav-pwa-tools .nav-link.nav-pwa-notify{width:100%;min-height:54px;height:auto;margin:0;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.10);color:#fff;display:flex;align-items:center;gap:11px;padding:9px 12px;box-sizing:border-box;box-shadow:0 6px 18px rgba(0,0,0,.08);text-decoration:none;}
.nav-pwa-tools .nav-link.nav-pwa-install:hover,.nav-pwa-tools .nav-link.nav-pwa-notify:hover{background:rgba(255,255,255,.17);border-color:rgba(255,255,255,.26);transform:translateY(-1px);}
.nav-pwa-tools .nav-icon.nav-pwa-icon,.nav-pwa-tools .nav-icon.nav-notify-icon{width:34px;height:34px;min-width:34px;margin:0;border-radius:10px;display:grid;place-items:center;background:#fff;color:#006b50;font-size:21px;font-weight:900;line-height:1;box-shadow:0 3px 10px rgba(0,0,0,.12);}
.nav-pwa-tools .nav-icon.nav-notify-icon{background:#fff4b8;color:#806400;font-size:17px;}
.nav-pwa-tools .nav-link span:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;}
.nav-pwa-tools .nav-link strong{font-size:11px;line-height:1.2;font-weight:800;color:#fff;}
.nav-pwa-tools .nav-link small{font-size:9px;line-height:1.2;color:rgba(255,255,255,.68);font-weight:500;}
.nav-pwa-tools .nav-link.is-active{background:rgba(52,211,153,.16);border-color:rgba(52,211,153,.28);}
.nav-pwa-tools .nav-link.is-active .nav-notify-icon{background:#d9fbe9;color:#08704b;}
.nav-pwa-tools .nav-link.is-disabled{opacity:.68;cursor:not-allowed;}
.nav-pwa-tools .nav-link:disabled{opacity:.72;cursor:wait;}
@media(min-width:901px){.nav-pwa-tools{display:none!important;}}
@media(max-width:900px){.sidebar .nav-pwa-tools{display:grid;}.sidebar .nav-section-account{margin-top:8px;}}

/* V139 — clearer mobile PWA section */
.nav-section-pwa{margin-top:14px!important;}
@media(max-width:900px){
  .sidebar .nav-pwa-tools{margin:4px 0 8px;gap:7px;}
  .sidebar .nav-pwa-tools .nav-link{min-height:58px!important;}
  .sidebar .nav-section-account{margin-top:6px!important;}
}
/* TAHFIDZ V2 — class/date -> student list -> per-student modal */
.tahfidz-filter{display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(180px,.8fr) auto 145px 145px;gap:12px;align-items:end;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:15px;box-shadow:var(--shadow)}
.tahfidz-stat{min-height:61px;border:1px solid #d8e9e0;border-radius:13px;background:#f4faf7;padding:10px 13px}.tahfidz-stat span,.tahfidz-stat small{display:block;color:var(--muted);font-size:9px}.tahfidz-stat strong{display:inline-block;font-size:20px;color:var(--blue);line-height:1.1;margin-top:3px}.tahfidz-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:15px}.tahfidz-student-card{padding:0}.tahfidz-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:18px 19px;border-bottom:1px solid var(--line)}.tahfidz-card-head h2{margin:0;font-size:16px}.tahfidz-card-head p{margin:4px 0 0;color:var(--muted);font-size:10px}.tahfidz-table th{white-space:nowrap}.student-name{display:flex;align-items:center;gap:9px}.student-name b{display:block;font-size:11px}.student-name small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.status-pill{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800}.status-pill.done{background:#e9f8f0;color:#00754A}.status-pill.pending{background:#fff2e7;color:#a45c00}.last-test{display:block;color:var(--muted);font-size:8px;margin-top:4px}.btn-sm{padding:8px 10px;font-size:10px;white-space:nowrap}.tahfidz-flow{padding:18px}.flow-step{display:flex;gap:9px;padding:12px 0;border-bottom:1px solid #e4ece8}.flow-step:last-child{border-bottom:0}.flow-step>b{width:25px;height:25px;flex:0 0 25px;border-radius:50%;display:grid;place-items:center;background:#35b77b;color:#fff;font-size:10px}.flow-step span{font-size:9px;color:var(--muted);line-height:1.5}.flow-step strong{display:block;color:var(--ink);font-size:10px;margin-bottom:2px}.tahfidz-empty{margin-top:15px;text-align:center;padding:45px 20px}.empty-icon{font-size:38px;margin-bottom:8px}.tahfidz-empty h3{margin:0;font-size:16px}.tahfidz-empty p{color:var(--muted);font-size:11px}.tahfidz-modal{display:none;position:fixed;inset:0;z-index:9999}.tahfidz-modal.show{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(7,35,27,.52);backdrop-filter:blur(3px)}.tahfidz-dialog{position:relative;width:min(760px,calc(100vw - 28px));max-height:calc(100vh - 32px);overflow:auto;margin:16px auto;background:#fff;border-radius:20px;box-shadow:0 25px 80px rgba(0,0,0,.22);z-index:2}.modal-head{display:flex;justify-content:space-between;gap:15px;padding:20px 22px 16px;border-bottom:1px solid var(--line)}.modal-kicker{font-size:9px;font-weight:900;color:#00754A;letter-spacing:.12em}.modal-head h2{margin:4px 0 2px;font-size:19px}.modal-head p{margin:0;color:var(--muted);font-size:10px}.modal-close{border:0;background:#f2f6f4;width:34px;height:34px;border-radius:10px;font-size:23px;color:#52645e;cursor:pointer}.tahfidz-form{padding:18px 22px}.tahfidz-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.tahfidz-form-grid .field{min-width:0}.notify-box{margin-top:15px;border:1px solid #cfe5da;background:#f5fbf8;border-radius:14px;padding:13px}.notify-box-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.notify-box-head strong{display:block;font-size:11px}.notify-box-head small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.notify-fields{display:grid;gap:10px;margin-top:11px}.notify-fields textarea{resize:vertical}.switch{position:relative;width:43px;height:24px;flex:0 0 43px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;inset:0;background:#b9c9c2;border-radius:99px;cursor:pointer;transition:.2s}.switch span:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch input:checked+span{background:#00875a}.switch input:checked+span:before{transform:translateX(19px)}.history-box{margin-top:15px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.history-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 13px;background:#f1f9f5}.history-head strong{font-size:11px}.history-head span{font-size:9px;color:#00754A;background:#dff2e8;padding:5px 8px;border-radius:99px}.history-list{max-height:190px;overflow:auto}.history-item{display:flex;gap:11px;padding:11px 13px;border-top:1px solid #edf1ef}.history-time{font-size:9px;color:#718078;width:38px}.history-item strong{display:block;font-size:10px}.history-item span,.history-item small{display:block;font-size:9px;color:var(--muted);margin-top:2px}.modal-actions{display:flex;justify-content:space-between;gap:10px;margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}body.modal-open{overflow:hidden}.btn-soft{background:#eef3f1;color:#42564f;border:0}
@media(max-width:1000px){.tahfidz-filter{grid-template-columns:1fr 1fr auto}.tahfidz-stat{min-width:0}.tahfidz-main-grid{grid-template-columns:1fr}.tahfidz-flow{display:none}}
@media(max-width:650px){.tahfidz-filter{grid-template-columns:1fr 1fr}.tahfidz-filter>.btn{grid-column:1/-1;width:100%}.tahfidz-stat{min-height:54px}.tahfidz-card-head{display:block}.tahfidz-card-head .chip{display:inline-flex;margin-top:9px}.tahfidz-table th:nth-child(2),.tahfidz-table td:nth-child(2){display:none}.tahfidz-table th:nth-child(4){width:105px}.tahfidz-table td{padding:10px 7px}.student-name{gap:6px}.student-name .avatar-sm{width:28px;height:28px}.btn-sm{padding:7px 8px;font-size:9px}.tahfidz-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 12px);margin:6px auto;border-radius:16px}.modal-head{padding:15px 16px 13px}.tahfidz-form{padding:14px 16px}.tahfidz-form-grid{grid-template-columns:1fr;gap:10px}.history-list{max-height:160px}.modal-actions{position:sticky;bottom:0;background:#fff;padding-bottom:2px}.modal-actions .btn{flex:1}.notify-box{padding:11px}.notify-fields{margin-top:9px}}

/* Bank Mini Admin dashboard */
.bm-admin-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.bm-admin-head h1{margin:4px 0 6px;font-size:34px;letter-spacing:-.7px}.bm-admin-head p{margin:0;color:#6b7b76}.bm-admin-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.bm-today{padding:11px 14px;border:1px solid #dce9e3;border-radius:12px;background:#fff;color:#52645e;font-size:13px}.bm-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.bm-kpi{display:flex;align-items:center;gap:14px;padding:20px;border:1px solid #dce9e3;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(16,69,57,.045)}.bm-kpi-icon{width:44px;height:44px;border-radius:13px;background:#eaf6f1;display:grid;place-items:center;font-size:21px;flex:0 0 44px}.bm-kpi span,.bm-kpi small{display:block;color:#71807c;font-size:12px}.bm-kpi strong{display:block;margin:5px 0 2px;font-size:23px;letter-spacing:-.3px}.bm-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.9fr);gap:16px;margin-bottom:16px}.bm-content-grid,.bm-bottom-grid{margin-bottom:16px}.bm-bottom-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:16px}.bm-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.bm-section-head h2{margin:0;font-size:18px}.bm-section-head p{margin:4px 0 0;color:#7a8783;font-size:12px}.bm-section-head a{font-size:12px;color:#087a5b;text-decoration:none;font-weight:700;white-space:nowrap}.bm-chart-panel,.bm-teller-panel,.bm-content-grid .panel,.bm-bottom-grid .panel{padding:20px}.bm-chart-box{height:285px;position:relative}.bm-teller-list{display:flex;flex-direction:column;gap:2px}.bm-teller-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #edf2ef}.bm-teller-row:last-child{border-bottom:0}.bm-avatar{width:34px;height:34px;border-radius:10px;background:#eef7f3;display:grid;place-items:center}.bm-teller-name{flex:1;min-width:0}.bm-teller-name b,.bm-teller-name small{display:block}.bm-teller-name small{color:#84918d;font-size:11px;margin-top:2px}.bm-teller-money{text-align:right}.bm-teller-money span{display:block;font-size:12px;font-weight:700}.bm-teller-money small{display:block;color:#9a6a50;margin-top:2px}.bm-rank{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#eef7f3;color:#087a5b;font-size:11px;margin-right:8px}.bm-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bm-quick-grid a{padding:14px;border:1px solid #e3ece8;border-radius:13px;text-decoration:none;color:inherit;background:#fbfdfc}.bm-quick-grid a:hover{border-color:#bcded1;background:#f5fbf8}.bm-quick-grid span{display:block;font-size:20px;margin-bottom:8px}.bm-quick-grid b,.bm-quick-grid small{display:block}.bm-quick-grid b{font-size:13px}.bm-quick-grid small{font-size:11px;color:#7b8985;margin-top:3px}.bm-control-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;border:1px solid #dce9e3;border-radius:15px;background:#f7fbf9;margin-bottom:18px}.bm-control-strip b,.bm-control-strip span{font-size:12px}.bm-control-strip>div:first-child span{display:block;color:#71807c;margin-top:4px}.bm-control-items{display:flex;gap:14px;white-space:nowrap;color:#087a5b}.bm-empty{text-align:center;padding:28px 10px;color:#7d8985;font-size:13px}
@media(max-width:1100px){.bm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bm-main-grid,.bm-bottom-grid{grid-template-columns:1fr}.bm-admin-head{align-items:flex-start;flex-direction:column}.bm-control-strip{align-items:flex-start;flex-direction:column}.bm-control-items{flex-wrap:wrap;white-space:normal}}
@media(max-width:650px){.bm-kpi-grid{grid-template-columns:1fr}.bm-quick-grid{grid-template-columns:1fr}.bm-admin-head h1{font-size:28px}.bm-chart-box{height:230px}}
