:root{--vo-primary:#4f46e5;--vo-primary-dark:#4338ca;--vo-bg:#f5f6fa;--vo-card:#fff;--vo-text:#1f2433;--vo-muted:#6b7280;--vo-border:#e5e7ef;--vo-side:#111827;--vo-side-text:#c7cbd6}
@media (prefers-color-scheme:dark){:root{--vo-bg:#0f1220;--vo-card:#181c2e;--vo-text:#e8eaf3;--vo-muted:#9aa1b5;--vo-border:#272c44;--vo-side:#0a0c18}}
body{background:var(--vo-bg);color:var(--vo-text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans Bengali",sans-serif}
.card{background:var(--vo-card);border:1px solid var(--vo-border);border-radius:12px;color:var(--vo-text)}
.table{--bs-table-bg:transparent;--bs-table-color:var(--vo-text);--bs-table-border-color:var(--vo-border)}
.form-control,.form-select{background-color:var(--vo-card);color:var(--vo-text);border-color:var(--vo-border)}
.form-control:focus,.form-select:focus{background-color:var(--vo-card);color:var(--vo-text)}
.text-muted{color:var(--vo-muted)!important}
.btn-primary{--bs-btn-bg:var(--vo-primary);--bs-btn-border-color:var(--vo-primary);--bs-btn-hover-bg:var(--vo-primary-dark);--bs-btn-hover-border-color:var(--vo-primary-dark);--bs-btn-active-bg:var(--vo-primary-dark)}
a{color:var(--vo-primary)}
.vo-shell{display:flex;min-height:100vh}
.vo-side{width:248px;background:var(--vo-side);color:var(--vo-side-text);flex-shrink:0;padding:1rem .75rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.vo-side .brand{color:#fff;font-weight:700;font-size:1.25rem;padding:.5rem .75rem 1rem;display:block;text-decoration:none}
.vo-side a.nav-i{display:block;color:var(--vo-side-text);padding:.55rem .75rem;border-radius:8px;text-decoration:none;font-size:.93rem;margin-bottom:2px}
.vo-side a.nav-i:hover{background:rgba(255,255,255,.07);color:#fff}
.vo-side a.nav-i.active{background:var(--vo-primary);color:#fff}
.vo-side .nav-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.55;padding:.9rem .75rem .3rem}
.vo-main{flex:1;min-width:0}
.vo-top{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--vo-border);background:var(--vo-card);position:sticky;top:0;z-index:5}
.vo-content{padding:1.25rem}
.stat{padding:1rem 1.1rem}.stat .v{font-size:1.65rem;font-weight:700;line-height:1.1}.stat .l{font-size:.78rem;color:var(--vo-muted);text-transform:uppercase;letter-spacing:.04em}
.badge-s{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.74rem;font-weight:600}
.s-ok{background:#dcfce7;color:#166534}.s-warn{background:#fef3c7;color:#92400e}.s-bad{background:#fee2e2;color:#991b1b}.s-info{background:#dbeafe;color:#1e40af}.s-mute{background:#e5e7eb;color:#374151}
.empty{padding:2.5rem 1rem;text-align:center;color:var(--vo-muted)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}
.secret-box{background:#0f172a;color:#a7f3d0;border-radius:8px;padding:.75rem 1rem;word-break:break-all}
.hero{background:linear-gradient(135deg,#312e81,#4f46e5 55%,#7c3aed);color:#fff;padding:5rem 0}
.hero h1{font-weight:800;letter-spacing:-.02em}
.feature{height:100%}
.landing-nav a{text-decoration:none}
.btn-loading .spinner-border{width:1rem;height:1rem;margin-right:.4rem}
@media (max-width:991px){.vo-side{position:fixed;left:-260px;z-index:20;transition:left .2s}.vo-side.open{left:0}.vo-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:15;display:none}.vo-scrim.open{display:block}}
.secret-box button{flex-shrink:0;align-self:flex-start}
