@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap");
:root{--bg:#061c18;--bg2:#082f2a;--bg3:#0b3f49;--surface:#0b211d;--surface2:#0e2d28;--surface3:#123b34;--text:#effff9;--muted:#a9c9c0;--line:rgba(173,245,224,.16);--accent:#27d3a2;--accent2:#5bb7ff;--danger:#ff6b7a;--warning:#ffc857;--shadow:0 18px 50px rgba(0,0,0,.24)}
*{box-sizing:border-box}html,body{min-height:100%;background:var(--bg);color:var(--text)}body{margin:0;background:radial-gradient(circle at 8% 0%,rgba(39,211,162,.16),transparent 32%),radial-gradient(circle at 95% 8%,rgba(91,183,255,.16),transparent 30%),linear-gradient(135deg,var(--bg),var(--bg2) 52%,var(--bg3));font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}.app-navbar{position:sticky;top:0;z-index:1030;background:linear-gradient(105deg,#043c32,#08735f 50%,#124e70)!important;border-bottom:1px solid rgba(255,255,255,.10);backdrop-filter:blur(14px)}.navbar-brand{min-width:0}.brand-logo{width:38px;height:38px;object-fit:contain;border-radius:10px;background:#fff;padding:2px}.brand-title{font-size:1rem;letter-spacing:.2px;white-space:nowrap}.brand-sub{font-size:.68rem;opacity:.78;white-space:nowrap}.top-user{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-layout{display:flex;min-height:calc(100vh - 65px)}.sidebar{width:258px;flex:0 0 258px;background:linear-gradient(180deg,rgba(5,28,24,.98),rgba(5,45,39,.98));border-right:1px solid var(--line);transition:width .25s ease,flex-basis .25s ease;overflow:hidden}.app-main{min-width:0;flex:1;padding:24px}.sidebar-head{padding:20px 18px 12px}.sidebar-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#4de3bd;font-weight:800}.sidebar-name{font-weight:800;margin-top:4px}.side-link{display:flex;align-items:center;gap:10px;padding:11px 16px;margin:2px 10px;border-radius:12px;color:#b9d4cf;text-decoration:none;white-space:nowrap}.side-link i{font-size:1.05rem;width:20px;text-align:center}.side-link:hover,.side-link.active{background:linear-gradient(90deg,rgba(39,211,162,.20),rgba(91,183,255,.12));color:#fff}.side-section{padding:18px 16px 5px;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#4de3bd;font-weight:800}.sidebar-toggle-label{font-size:.75rem}.sidebar-collapsed .sidebar{width:76px;flex-basis:76px}.sidebar-collapsed .sidebar-head{padding-left:14px;padding-right:14px}.sidebar-collapsed .sidebar-name,.sidebar-collapsed .sidebar-label,.sidebar-collapsed .side-text,.sidebar-collapsed .side-section,.sidebar-collapsed .logout-text{display:none}.sidebar-collapsed .side-link{justify-content:center;margin-left:10px;margin-right:10px;padding-left:0;padding-right:0}.sidebar-collapsed .side-link i{width:auto}.card{border:1px solid var(--line);background:linear-gradient(145deg,rgba(10,35,30,.97),rgba(8,48,42,.92));box-shadow:var(--shadow);color:var(--text);border-radius:18px}.card h1,.card h2,.card h3,.card h4,.card h5,.card h6{color:#f5fffc}.form-label{color:#d9f0ea;font-weight:650}.form-control,.form-select,.form-control:disabled,.form-select:disabled{background:#071c19;color:#effff9;border:1px solid var(--line)}.form-control:focus,.form-select:focus{background:#09231f;color:#fff;border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(39,211,162,.12)}.form-control::placeholder{color:#7e9f97}.form-select option{background:#0a2420;color:#fff}.text-secondary{color:var(--muted)!important}.table{--bs-table-bg:transparent;--bs-table-color:var(--text);border-color:var(--line);vertical-align:middle}.table thead th{color:#c9eee4;background:rgba(39,211,162,.10);border-bottom-color:var(--line)}.table tbody td{color:#d9eeea;border-bottom-color:var(--line)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:rgba(39,211,162,.06)}.table.bg-white,.bg-white{background:var(--surface)!important}.list-group-item{border:0;border-bottom:1px solid var(--line);padding:.75rem 1rem;background:transparent;color:#c2ddd7}.list-group-item:hover,.list-group-item.active{background:linear-gradient(90deg,rgba(39,211,162,.20),rgba(91,183,255,.12));color:#fff}.stat{font-size:2rem;font-weight:850;color:#72f0c9}.badge-soft{background:rgba(39,211,162,.13);color:#8ff5d9;border:1px solid rgba(39,211,162,.24)}.btn-primary{--bs-btn-bg:#0e9f7b;--bs-btn-border-color:#0e9f7b;--bs-btn-hover-bg:#18b98e;--bs-btn-hover-border-color:#18b98e}.btn-success{--bs-btn-bg:#0f9f78;--bs-btn-border-color:#0f9f78;--bs-btn-hover-bg:#18bd91;--bs-btn-hover-border-color:#18bd91}.btn-outline-primary{--bs-btn-color:#72d8ff;--bs-btn-border-color:#247da1;--bs-btn-hover-bg:#17627f;--bs-btn-hover-border-color:#2b93bb}.btn-outline-info{--bs-btn-color:#72d8ff;--bs-btn-border-color:#247da1}.alert{border:1px solid var(--line);color:#eefbf8}.alert-secondary{background:rgba(255,255,255,.06);color:#d6ebe6}.section-title{font-weight:850;letter-spacing:.1px;color:#f4fffc}.photo-square{width:74px;height:74px;object-fit:cover;border-radius:14px;border:2px solid rgba(39,211,162,.28);background:#102c31}.photo-preview{width:150px;height:150px;object-fit:cover;border-radius:18px;border:2px dashed rgba(39,211,162,.35);background:#102c31}.avatar-sm{width:42px;height:42px;object-fit:cover;border-radius:50%;border:1px solid var(--line)}.qr-box{background:#fff;border-radius:18px;padding:14px;display:inline-flex}.camera-panel{border-radius:18px;overflow:hidden;background:#04171b;border:1px solid var(--line)}.splash{position:fixed;inset:0;z-index:9999;background:radial-gradient(circle at center,#0b5a4a,#031c22 72%);display:flex;align-items:center;justify-content:center}.splash.hide{animation:fadeout .35s ease forwards}@keyframes fadeout{to{opacity:0;visibility:hidden}}.splash img{width:120px;height:120px;object-fit:contain}.splash .brand{font-weight:850;margin-top:14px;font-size:1.2rem;text-align:center;color:#effffb}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px}.login-card{max-width:480px;width:100%}.login-card .card-body{padding:2.2rem}.login-logo{width:96px;height:96px;object-fit:contain;border-radius:22px;background:#fff;padding:6px;box-shadow:0 12px 35px rgba(0,0,0,.24)}.login-brand{font-weight:900;font-size:1.55rem;letter-spacing:.3px}.login-brand span{display:block;color:#74e7c7;font-size:.9rem;font-weight:700;margin-top:3px}.default-login{border:1px solid rgba(39,211,162,.20);background:rgba(39,211,162,.07);border-radius:14px;padding:10px 12px;color:#c9e9e1}.chart-wrap{position:relative;min-height:290px}.theme-menu{min-width:230px;background:#071e1a;border:1px solid var(--line);box-shadow:var(--shadow)}.theme-menu .dropdown-item{color:#d8eee8}.theme-menu .dropdown-item:hover{background:rgba(39,211,162,.13);color:#fff}.theme-dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:1px solid rgba(255,255,255,.3)}.import-drop{border:1px dashed rgba(114,240,201,.35);border-radius:18px;padding:18px;background:rgba(39,211,162,.04)}.import-drop input[type=file]{cursor:pointer}.footer-logo{width:42px;height:42px;object-fit:contain;border-radius:10px}.app-footer{font-size:.84rem;color:#86aaa2;border-top:1px solid var(--line)}.mobile-menu-title{font-weight:850}.offcanvas{background:#061c18!important;color:#effff9}.offcanvas .side-link{margin-left:6px;margin-right:6px}.mobile-sidebar-wrap{display:block}.mobile-sidebar-wrap .sidebar{display:block!important;width:100%;border-right:0}.mobile-sidebar-wrap .side-link{margin-left:6px;margin-right:6px}.mobile-sidebar-wrap .sidebar-head{padding-left:18px}.mobile-sidebar-wrap .side-text{display:inline!important}.mobile-sidebar-wrap .side-section{display:block!important}@media(max-width:767px){.app-main{padding:14px}.sidebar{display:none}.brand-sub,.top-user{display:none!important}.brand-title{font-size:.9rem}.chart-wrap{min-height:230px}}@media print{nav,aside,.offcanvas,form,.no-print,.btn,.theme-picker{display:none!important}.app-main{width:100%!important;padding:0}body{background:#fff;color:#111}.card{box-shadow:none;background:#fff;color:#111;border:0}.table,.table tbody td,.table thead th{color:#111}}
/* Theme variants */
body[data-theme="emerald"]{--bg:#031812;--bg2:#075044;--bg3:#0b5270;--surface:#08231f;--surface2:#0c332d;--accent:#35e0b0;--accent2:#63c7ff}
body[data-theme="forest"]{--bg:#101b0e;--bg2:#21431b;--bg3:#174b38;--surface:#16251a;--surface2:#20331f;--accent:#9bd34a;--accent2:#70d6c0}
body[data-theme="midnight"]{--bg:#07111d;--bg2:#10233a;--bg3:#0c3851;--surface:#0b1725;--surface2:#11253a;--accent:#51d5c2;--accent2:#7db7ff}
body[data-theme="royal"]{--bg:#10121e;--bg2:#182f38;--bg3:#123f4e;--surface:#141a25;--surface2:#1c2837;--accent:#5ee7c1;--accent2:#79a7ff}

/* V5.1 readability hardening */
.text-muted{color:var(--muted)!important}.text-dark{color:#eafff8!important}.bg-light,.bg-body,.bg-body-secondary{background:var(--surface)!important;color:var(--text)!important}.border{border-color:var(--line)!important}.dropdown-menu{background:#071e1a;border-color:var(--line)}.dropdown-menu .dropdown-item{color:#dff5ef}.dropdown-menu .dropdown-item:hover,.dropdown-menu .dropdown-item:focus{background:rgba(39,211,162,.14);color:#fff}.modal-content{background:var(--surface);color:var(--text);border:1px solid var(--line)}.modal-header,.modal-footer{border-color:var(--line)}.btn-close{filter:invert(1) grayscale(1) brightness(2)}.form-check-label{color:#d9f0ea}.nav-tabs{border-color:var(--line)}.nav-tabs .nav-link{color:#b9d4cf}.nav-tabs .nav-link.active{background:var(--surface2);color:#fff;border-color:var(--line)}.theme-menu .dropdown-item.active{background:rgba(39,211,162,.2);color:#fff}.camera-switch{display:flex;gap:8px;flex-wrap:wrap}.camera-switch .btn{flex:1 1 140px}.teacher-status-card{background:linear-gradient(145deg,rgba(39,211,162,.10),rgba(91,183,255,.08));border:1px solid var(--line);border-radius:16px}.selfie-preview{width:100%;max-height:420px;object-fit:cover;border-radius:18px;border:1px solid var(--line);background:#03110e}.login-theme-picker{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.login-theme-picker button{border:1px solid var(--line);background:rgba(255,255,255,.05);color:#eafff8;border-radius:10px;padding:7px 10px}.login-theme-picker button:hover{background:rgba(39,211,162,.16)}
body[data-theme="forest"] .app-navbar{background:linear-gradient(105deg,#183b13,#2c6b25 50%,#17634e)!important}body[data-theme="midnight"] .app-navbar{background:linear-gradient(105deg,#071522,#123a57 50%,#154d63)!important}body[data-theme="royal"] .app-navbar{background:linear-gradient(105deg,#0f1726,#1b4d59 50%,#29416e)!important}


/* ADZ DZAKY V6 visual system: accessible light default + dark green options. */
body[data-theme="light"]{--bg:#f4f7f6;--bg2:#ffffff;--bg3:#eef5f2;--surface:#ffffff;--surface2:#f7faf9;--surface3:#edf5f2;--text:#17211e;--muted:#5b6b65;--line:#dbe5e1;--accent:#087f5b;--accent2:#1769aa;--danger:#b42318;--warning:#9a6700;--shadow:0 12px 35px rgba(24,52,43,.10)}
body[data-theme="darkgreen"]{--bg:#061a15;--bg2:#073b32;--bg3:#0a4660;--surface:#0b211d;--surface2:#0e2d28;--surface3:#123b34;--text:#effff9;--muted:#b5cec6;--line:rgba(173,245,224,.16);--accent:#27d3a2;--accent2:#62b5ff;--danger:#ff8a98;--warning:#ffd166;--shadow:0 18px 50px rgba(0,0,0,.24)}
body[data-theme="forest"]{--bg:#f2f6ee;--bg2:#ffffff;--bg3:#edf4e8;--surface:#ffffff;--surface2:#f8fbf6;--surface3:#edf5e8;--text:#172217;--muted:#5e6d5b;--line:#d9e4d4;--accent:#2f7d32;--accent2:#2878a8;--danger:#b42318;--warning:#9a6700;--shadow:0 12px 35px rgba(40,70,35,.10)}
body[data-theme="midnight"]{--bg:#0d1421;--bg2:#111b2d;--bg3:#142d43;--surface:#121c2b;--surface2:#18253a;--surface3:#1c3149;--text:#f3f7ff;--muted:#b7c4d8;--line:rgba(205,221,246,.15);--accent:#68d8c0;--accent2:#78a9ff;--danger:#ff8f9c;--warning:#ffd166;--shadow:0 18px 50px rgba(0,0,0,.35)}
body{background:var(--bg);color:var(--text)}
body[data-theme="light"],body[data-theme="forest"]{background:linear-gradient(135deg,var(--bg),var(--bg2) 52%,var(--bg3))}
body[data-theme="darkgreen"]{background:radial-gradient(circle at 8% 0%,rgba(39,211,162,.16),transparent 32%),radial-gradient(circle at 95% 8%,rgba(98,181,255,.13),transparent 30%),linear-gradient(135deg,var(--bg),var(--bg2) 52%,var(--bg3))}
body[data-theme="midnight"]{background:radial-gradient(circle at 10% 0%,rgba(104,216,192,.08),transparent 32%),linear-gradient(135deg,var(--bg),var(--bg2) 52%,var(--bg3))}
.app-navbar{background:linear-gradient(105deg,#075e54,#087f5b 50%,#1769aa)!important;color:#fff}
body[data-theme="light"] .app-navbar,body[data-theme="forest"] .app-navbar{color:#fff}
.sidebar{background:var(--surface);border-right:1px solid var(--line)}
.side-link{color:var(--muted)}.side-link:hover,.side-link.active{color:var(--accent);background:rgba(8,127,91,.09)}
.side-section,.sidebar-label{color:var(--accent)}.sidebar-name{color:var(--text)}
.card{background:var(--surface);color:var(--text);border-color:var(--line)}
.card h1,.card h2,.card h3,.card h4,.card h5,.card h6,.section-title{color:var(--text)}
.form-label{color:var(--text)}
.form-control,.form-select,.form-control:disabled,.form-select:disabled{background:var(--surface2);color:var(--text);border-color:var(--line)}
.form-control:focus,.form-select:focus{background:var(--surface);color:var(--text);border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(8,127,91,.12)}
.form-control::placeholder{color:color-mix(in srgb,var(--muted) 80%,transparent)}
.form-select option{background:var(--surface);color:var(--text)}
.text-secondary{color:var(--muted)!important}
.table{--bs-table-color:var(--text);--bs-table-bg:transparent;border-color:var(--line)}
.table thead th{color:var(--text);background:rgba(8,127,91,.08);border-color:var(--line)}
.table tbody td{color:var(--text);border-color:var(--line)}
.table.bg-white,.bg-white{background:var(--surface)!important}
.list-group-item{background:var(--surface);color:var(--text);border-color:var(--line)}
.alert{color:var(--text)}
.theme-menu{background:var(--surface);border-color:var(--line)}.theme-menu .dropdown-item{color:var(--text)}.theme-menu .dropdown-item:hover,.theme-menu .dropdown-item.active{background:rgba(8,127,91,.10);color:var(--accent)}
.btn-outline-primary{color:var(--accent2);border-color:var(--accent2)}
.btn-outline-info{color:var(--accent2);border-color:var(--accent2)}
.camera-panel{background:var(--surface2);border:1px solid var(--line);border-radius:16px}
.live-clock{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.04em}
.scan-success{animation:adzPop .28s ease-out}@keyframes adzPop{from{transform:scale(.98);opacity:.55}to{transform:scale(1);opacity:1}}
.login-shell{background:transparent}.login-card .card{background:var(--surface);color:var(--text)}
.login-brand,.default-login,.login-card p{color:var(--text)}
.default-login{background:var(--surface2)!important;border:1px solid var(--line)!important}
@media(max-width:767.98px){.app-main{padding:16px}.brand-title{font-size:.92rem}.brand-sub{font-size:.62rem}}

/* ADZ DZAKY V7.0 accessibility + navigation hardening */
:root{--font-ui:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html,body{font-family:var(--font-ui)!important}
.sidebar{background:linear-gradient(180deg,#063c31 0%,#075645 55%,#06483c 100%)!important;color:#f3fffb;overflow-y:auto;overflow-x:hidden;max-height:calc(100vh - 65px);scrollbar-width:thin;scrollbar-color:#36cfa7 rgba(255,255,255,.08)}
.sidebar::-webkit-scrollbar{width:7px}.sidebar::-webkit-scrollbar-track{background:rgba(255,255,255,.06)}.sidebar::-webkit-scrollbar-thumb{background:#36cfa7;border-radius:99px}
.side-link{color:#e9fff8!important}.side-link:hover,.side-link.active{color:#fff!important;background:linear-gradient(90deg,rgba(54,207,167,.28),rgba(91,183,255,.14))!important}
.sidebar-name{color:#fff!important}.sidebar-label,.side-section{color:#72f0cf!important}
.sidebar-collapsed .sidebar{overflow-y:hidden}
/* Light theme must remain truly light with dark text. */
body[data-theme="light"] .card h1,body[data-theme="light"] .card h2,body[data-theme="light"] .card h3,body[data-theme="light"] .card h4,body[data-theme="light"] .card h5,body[data-theme="light"] .card h6,body[data-theme="light"] .section-title,body[data-theme="light"] .form-label{color:#14211d!important}
body[data-theme="light"] .table thead th,body[data-theme="light"] .table tbody td{color:#17221f!important}
body[data-theme="light"] .form-control,body[data-theme="light"] .form-select{color:#17221f!important;background:#fff!important}
body[data-theme="light"] .form-control::placeholder{color:#6b7974!important}
body[data-theme="light"] .dropdown-menu .dropdown-item{color:#17221f!important}
body[data-theme="light"] .default-login{color:#17221f!important;background:#f3f8f6!important}
body[data-theme="light"] .text-secondary{color:#52625d!important}
body[data-theme="light"] .alert{color:#17221f}
/* Dark themes: enforce bright foreground. */
body[data-theme="darkgreen"] .card h1,body[data-theme="darkgreen"] .card h2,body[data-theme="darkgreen"] .card h3,body[data-theme="darkgreen"] .card h4,body[data-theme="darkgreen"] .card h5,body[data-theme="darkgreen"] .card h6,body[data-theme="darkgreen"] .section-title,body[data-theme="darkgreen"] .form-label,body[data-theme="midnight"] .card h1,body[data-theme="midnight"] .card h2,body[data-theme="midnight"] .card h3,body[data-theme="midnight"] .card h4,body[data-theme="midnight"] .card h5,body[data-theme="midnight"] .card h6,body[data-theme="midnight"] .section-title,body[data-theme="midnight"] .form-label{color:#f5fffc!important}
body[data-theme="darkgreen"] .table thead th,body[data-theme="darkgreen"] .table tbody td,body[data-theme="midnight"] .table thead th,body[data-theme="midnight"] .table tbody td{color:#effff9!important}
.pdf-options{display:flex;gap:8px;flex-wrap:wrap}
@media print{body{font-family:Arial,sans-serif!important}.pdf-report{page-break-inside:auto}.pdf-report tr{page-break-inside:avoid}.print-landscape{page:report-landscape}@page{margin:12mm}.app-footer{display:none!important}}
@page report-landscape{size:A4 landscape;margin:10mm}
/* V7.1 dashboard visual polish: subtle 3D depth + animated chart stage */
.chart-3d{perspective:900px;transform-style:preserve-3d}
.chart-3d canvas{transform:rotateX(7deg) translateY(-2px);transform-origin:center center;filter:drop-shadow(0 14px 16px rgba(0,0,0,.10));transition:transform .35s ease,filter .35s ease}
.chart-3d:hover canvas{transform:rotateX(2deg) translateY(-5px) scale(1.015);filter:drop-shadow(0 20px 22px rgba(0,0,0,.16))}

/* ADZ DZAKY V8.0 clean visual layer — palette preserved, layout simplified. */
body{line-height:1.55;letter-spacing:.005em}
.app-main{padding:20px 22px 28px}
.app-navbar{box-shadow:0 2px 14px rgba(8,40,32,.10)!important;backdrop-filter:none}
.sidebar{box-shadow:2px 0 14px rgba(8,40,32,.08)!important}
.card{border-radius:16px!important;box-shadow:0 6px 22px rgba(24,52,43,.08)!important;background:var(--surface)!important}
.card:hover{box-shadow:0 9px 28px rgba(24,52,43,.10)!important}
.btn{border-radius:10px;font-weight:650}
.form-control,.form-select{border-radius:10px;min-height:42px}
.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px rgba(8,127,91,.10)!important}
.table-responsive{border-radius:12px}
.table>thead>tr>th{font-weight:700}
.section-title{letter-spacing:-.01em}
.chart-wrap{height:320px;min-height:320px;position:relative;overflow:visible}
.chart-wrap canvas{max-width:100%!important;max-height:100%!important}
.chart-3d{perspective:none;transform:none}
.chart-3d canvas{transform:none!important;filter:drop-shadow(0 8px 12px rgba(0,0,0,.08));transition:filter .3s ease}
.chart-3d:hover canvas{transform:none!important;filter:drop-shadow(0 12px 16px rgba(0,0,0,.12))}
.history-viewport{height:430px;overflow-y:auto;overflow-x:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface2);scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}
.history-viewport::-webkit-scrollbar{width:6px}.history-viewport::-webkit-scrollbar-thumb{background:var(--accent);border-radius:99px}
.history-item{display:grid;grid-template-columns:180px minmax(220px,1fr) minmax(190px,auto);gap:16px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--surface)}
.history-item:last-child{border-bottom:0}.history-time{font-variant-numeric:tabular-nums;font-size:.78rem;color:var(--muted);white-space:nowrap}.history-main{min-width:0}.history-main strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-main span{display:block;font-size:.78rem;color:var(--muted);margin-top:2px}.history-meta{display:flex;align-items:center;gap:8px;justify-content:flex-end;white-space:nowrap}.history-meta small{font-size:.72rem;color:var(--muted)}
.assignment-item{transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.assignment-item:hover{box-shadow:0 5px 15px rgba(8,127,91,.08)}
@media(max-width:991.98px){.app-main{padding:16px}.history-viewport{height:360px}.history-item{grid-template-columns:1fr auto}.history-time{grid-column:1/-1}.chart-wrap{height:290px;min-height:290px}}
@media(max-width:575.98px){.chart-wrap{height:270px;min-height:270px}.history-item{grid-template-columns:1fr}.history-meta{justify-content:flex-start}.history-viewport{height:330px}}

/* V8.9 login splash polish */
.splash-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:240px}.splash img{width:150px;height:150px}.splash-loader{display:flex;gap:7px;justify-content:center;align-items:center;margin-top:22px;height:20px}.splash-loader span{width:9px;height:9px;border-radius:50%;background:#72f0cf;animation:adzLoad 1s ease-in-out infinite}.splash-loader span:nth-child(2){animation-delay:.12s}.splash-loader span:nth-child(3){animation-delay:.24s}.splash-loader span:nth-child(4){animation-delay:.36s}.splash-loading-text{margin-top:8px;font-size:.72rem;color:#c9eee4;letter-spacing:.08em}@keyframes adzLoad{0%,100%{transform:translateY(0) scale(.75);opacity:.45}50%{transform:translateY(-7px) scale(1.15);opacity:1}}
@media(max-width:575.98px){.splash img{width:135px;height:135px}}

/* V9 clean + smartphone friendly visual layer */
.eyebrow{display:inline-flex;align-items:center;gap:6px;color:#087f5b;font-size:.7rem;font-weight:800;letter-spacing:.12em;margin-bottom:5px}.scanner-page{max-width:1180px;margin:0 auto}.scanner-hero{background:linear-gradient(145deg,#ffffff,#f5fbf8)!important}.scanner-mode{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(8,127,91,.045)}.scanner-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:#e5f8f1;color:#087f5b;font-size:.76rem;font-weight:700}.scanner-camera{min-height:360px;background:#0b211c!important;border-radius:18px!important;overflow:hidden}.scanner-camera #reader{width:100%!important}.scanner-camera #reader video{width:100%!important;max-height:58vh;object-fit:cover;border-radius:14px}.scanner-result{display:flex;flex-direction:column;justify-content:center}.result-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:#e6f7f1;color:#087f5b;font-size:1.5rem;margin-bottom:14px}.scanner-tip{display:flex;gap:8px;align-items:flex-start;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted);font-size:.78rem}.scanner-tip i{color:#087f5b}.dashboard-history-card .history-viewport{height:390px}.dashboard-public-card{background:linear-gradient(145deg,#ffffff,#f1faf6)!important;justify-content:center}.chart-compact{height:285px;min-height:285px}.stat{font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.card{transition:box-shadow .2s ease,transform .2s ease}.card:focus-within{box-shadow:0 10px 30px rgba(8,127,91,.11)!important}.table-responsive{scrollbar-width:thin}.table-responsive::-webkit-scrollbar{height:5px}.table-responsive::-webkit-scrollbar-thumb{background:#a7cfc2;border-radius:99px}
@media(max-width:991.98px){.dashboard-history-card .history-viewport{height:330px}.scanner-camera{min-height:300px}.chart-compact{height:270px;min-height:270px}}
@media(max-width:575.98px){.app-main{padding:12px!important}.section-title{font-size:1.08rem}.scanner-mode{align-items:flex-start;flex-direction:column}.scanner-camera{min-height:240px;padding:4px!important}.scanner-camera #reader video{max-height:46vh}.scanner-result{min-height:280px}.scanner-tip{font-size:.72rem}.dashboard-history-card .history-viewport{height:300px}.history-item{padding:10px 11px}.history-time{font-size:.7rem}.history-meta{gap:5px}.chart-wrap{height:250px;min-height:250px}.chart-compact{height:245px;min-height:245px}.monitor-public-card{padding:14px!important}}
