:root{
  --navy-950:#071a2d; --navy-900:#0a2745; --navy-850:#0b3158; --navy-800:#113d68;
  --blue-700:#096fd0; --blue-600:#0b84ff; --blue-500:#3199ff; --blue-100:#e8f3ff;
  --orange-600:#f86618; --orange-500:#ff7b24; --orange-100:#fff0e6;
  --green-700:#087a4a; --green-600:#0dac6c; --green-100:#def8eb;
  --red-700:#c92c2c; --red-600:#e84545; --red-100:#ffe5e5;
  --amber-700:#9a5d00; --amber-500:#f59e0b; --amber-100:#fff2d5;
  --purple-700:#6a39d0; --purple-500:#8b5cf6; --purple-100:#efe8ff;
  --cyan-600:#0899b8; --cyan-100:#dff8fc;
  --ink:#10243d; --ink-2:#2c4968; --muted:#708298; --muted-2:#94a3b5;
  --bg:#f4f7fb; --surface:#ffffff; --surface-2:#f9fbfd; --line:#dfe8f1; --line-2:#edf2f7;
  --shadow-sm:0 2px 10px rgba(11,49,88,.045); --shadow:0 8px 30px rgba(11,49,88,.075); --shadow-lg:0 24px 70px rgba(8,34,61,.18);
  --radius-sm:9px; --radius:14px; --radius-lg:20px;
  --sidebar:274px; --topbar:72px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-width:320px;min-height:100%;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;color:var(--ink);background:var(--bg)}
body{line-height:1.45}
a{text-decoration:none;color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
[hidden]{display:none!important}

/* Hard guard against oversized SVG icons. */
svg.icon{display:inline-block!important;vertical-align:middle;flex:0 0 auto!important;max-width:32px!important;max-height:32px!important;overflow:visible}
.icon-compact svg.icon,.nav-icon svg.icon,.icon-btn svg.icon,.btn svg.icon,.stat-icon svg.icon{max-width:26px!important;max-height:26px!important}

/* Shell */
.app-shell{min-height:100vh;display:flex}
.sidebar{
  width:var(--sidebar);position:fixed;inset:0 auto 0 0;z-index:70;overflow-y:auto;overflow-x:hidden;
  background:linear-gradient(180deg,#0b3158 0%,#0a2b4e 52%,#071f38 100%);color:#fff;
  padding:14px 12px 18px;border-right:1px solid rgba(255,255,255,.04);box-shadow:12px 0 36px rgba(5,28,50,.08)
}
.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px}
.sidebar-top{display:flex;align-items:center;gap:6px;position:sticky;top:-14px;background:linear-gradient(180deg,#0b3158 82%,rgba(11,49,88,0));padding-top:14px;z-index:2}
.brand{display:flex;align-items:center;gap:12px;padding:4px 7px 15px;min-width:0;flex:1}
.brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:50%;border:2px solid rgba(255,255,255,.75);box-shadow:0 7px 22px rgba(0,0,0,.16)}
.brand strong{display:block;font-size:20px;letter-spacing:.4px}.brand span{display:block;margin-top:2px;font-size:10.5px;color:#a9bfd3}
.sidebar-close{display:none;width:38px;height:38px;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.06);color:#fff}
.nav-section{margin:10px 0 5px;padding:0 11px;font-size:10px;letter-spacing:1.15px;font-weight:800;color:#86a7c4;text-transform:uppercase}
.nav-link{display:flex;align-items:center;gap:11px;min-height:44px;padding:9px 11px;margin:3px 0;border-radius:11px;color:#edf5fc;transition:background .16s,transform .16s,color .16s}
.nav-link:hover{background:rgba(255,255,255,.075);transform:translateX(1px)}
.nav-link.active{background:linear-gradient(90deg,#f86618,#ff812e);box-shadow:0 9px 24px rgba(248,102,24,.27);color:#fff}
.nav-icon{width:25px;height:25px;display:grid;place-items:center;flex:0 0 auto}.nav-label{min-width:0}
.sidebar-bottom{margin-top:17px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09)}
.system-mini{display:flex;align-items:center;gap:10px;margin:4px 5px 10px;padding:10px 11px;border-radius:12px;background:rgba(255,255,255,.055)}
.system-mini strong,.system-mini small{display:block}.system-mini small{font-size:10px;color:#9bb3ca}.system-dot{width:8px;height:8px;border-radius:50%;background:#35d08a;box-shadow:0 0 0 5px rgba(53,208,138,.12)}
.danger-link{color:#ffdddd}
.main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-height:100vh;display:flex;flex-direction:column}
.topbar{height:var(--topbar);display:flex;align-items:center;gap:14px;padding:0 28px;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.menu-toggle{display:none;width:40px;height:40px;place-items:center;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--navy-850)}
.global-search-wrap{position:relative;max-width:580px;flex:1}
.global-search{display:flex;align-items:center;gap:10px;min-height:43px;padding:0 13px;background:#fbfdff;border:1px solid #cfdce9;border-radius:11px;transition:.18s}
.global-search:focus-within{border-color:#6bb0f3;box-shadow:0 0 0 4px rgba(11,132,255,.08)}
.global-search input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;margin:0!important;padding:0!important;width:100%;min-width:0;color:var(--ink)}
.search-results{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:90;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-lg);overflow:hidden;display:none;max-height:420px;overflow-y:auto}
.search-results.show{display:block}.search-result{display:flex;align-items:center;gap:11px;padding:11px 13px;border-bottom:1px solid var(--line-2)}.search-result:last-child{border-bottom:0}.search-result:hover{background:#f7fbff}.search-result .search-type{margin-left:auto;font-size:10px;color:var(--muted);background:#eef4fa;padding:3px 6px;border-radius:6px}.search-empty{padding:18px;text-align:center;color:var(--muted)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:11px}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid #d8e4ef;border-radius:11px;background:#fff;color:var(--navy-850);position:relative;transition:.16s}.icon-btn:hover{background:#f5faff;border-color:#b9d4ec}
.counter{position:absolute;top:-6px;right:-5px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:var(--red-600);color:#fff;font-size:10px;display:grid;place-items:center;border:2px solid #fff}
.admin-chip{display:flex;align-items:center;gap:9px;padding-left:3px}.admin-chip strong{font-size:12px;display:block}.admin-chip small{font-size:10.5px;color:var(--muted);display:block}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#0b3158,#0b84ff);color:#fff;font-weight:850;box-shadow:0 4px 12px rgba(11,49,88,.15)}
.content{width:100%;max-width:1780px;margin:0 auto;padding:25px 28px 42px;flex:1}
.app-footer{display:flex;justify-content:space-between;gap:18px;padding:15px 28px;background:#fff;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.sidebar-overlay{display:none}

/* Page elements */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.page-head h1{margin:0 0 5px;font-size:31px;line-height:1.08;letter-spacing:-.65px}.page-head p{margin:0;color:var(--muted);font-size:13.5px}.page-head .actions{margin-top:1px}
.eyebrow{font-size:10px;font-weight:850;letter-spacing:1.15px;color:var(--blue-700);text-transform:uppercase;margin-bottom:4px}
.breadcrumbs{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;margin-bottom:8px}.breadcrumbs a:hover{color:var(--blue-700)}
.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.btn{min-height:39px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 13px;border:1px solid #c7d7e6;border-radius:9px;background:#fff;color:#173c60;font-weight:750;font-size:12.5px;transition:.16s;white-space:nowrap}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(23,60,96,.08);border-color:#9fc0dc}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.primary{background:linear-gradient(135deg,#168cf7,#0676e6);border-color:#0b7fe8;color:#fff}.btn.orange{background:linear-gradient(135deg,#ff8b29,#f86618);border-color:#f86618;color:#fff}.btn.success{background:linear-gradient(135deg,#21c982,#0eac69);border-color:#0eac69;color:#fff}.btn.danger{background:linear-gradient(135deg,#f45b5b,#df3939);border-color:#df3939;color:#fff}.btn.purple{background:linear-gradient(135deg,#9368f7,#7543dc);border-color:#7543dc;color:#fff}.btn.ghost{background:transparent;border-color:transparent}.btn.small{min-height:30px;padding:5px 8px;font-size:11px;border-radius:8px}.btn.icon-only{width:32px;height:32px;padding:0}.wide{width:100%}
.card{background:var(--surface);border:1px solid #e3ebf3;border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;margin-bottom:16px;min-width:0}.card.soft{background:var(--surface-2);box-shadow:none}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.card h2,.card h3{margin:0;letter-spacing:-.25px}.card h2{font-size:16px}.card h3{font-size:14px}.card-subtitle{color:var(--muted);font-size:11.5px;margin-top:3px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:17px}.stats.five{grid-template-columns:repeat(5,minmax(0,1fr))}.stat{display:flex;align-items:center;gap:13px;min-width:0;padding:15px 16px;background:#fff;border:1px solid #e3ecf4;border-radius:14px;box-shadow:var(--shadow-sm)}.stat-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;color:#fff}.stat small{font-size:10.5px;color:var(--muted)}.stat .value{margin-top:2px;font-size:22px;font-weight:850;letter-spacing:-.35px;white-space:nowrap}.stat .trend{font-size:10px;font-weight:800;margin-left:4px}.stat-detail{margin-top:2px;font-size:10px;color:var(--muted)}
.bg-blue{background:linear-gradient(135deg,#3199ff,#0875df)}.bg-green{background:linear-gradient(135deg,#25ca82,#0ca85f)}.bg-orange{background:linear-gradient(135deg,#ff9f2a,#f86618)}.bg-red{background:linear-gradient(135deg,#ff6767,#e33b3b)}.bg-purple{background:linear-gradient(135deg,#9967f5,#7040d6)}.bg-cyan{background:linear-gradient(135deg,#1dc8df,#0899b8)}
.kpi-green{color:var(--green-600)}.kpi-red{color:var(--red-600)}.kpi-orange{color:var(--orange-600)}.muted{color:var(--muted)}
.grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);gap:16px}.grid-equal{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stack{display:grid;gap:16px}

/* Forms */
.form-grid{display:grid;gap:13px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
label{display:block;font-size:11.5px;font-weight:720;color:#2c4b69}.field-hint{display:block;margin-top:5px;font-size:10px;color:var(--muted);font-weight:400}
input,select,textarea{width:100%;margin-top:5px;padding:9px 10px;border:1px solid #ccd9e6;border-radius:8px;background:#fff;color:var(--ink);outline:0;min-height:38px;transition:border .15s,box-shadow .15s}textarea{min-height:84px;resize:vertical}input::placeholder,textarea::placeholder{color:#9aa9b8}input:focus,select:focus,textarea:focus{border-color:#6baff0;box-shadow:0 0 0 3px rgba(11,132,255,.08)}input[type=checkbox],input[type=radio]{width:auto;min-height:0;margin:0;accent-color:var(--blue-600)}input[type=file]{padding:7px;background:#f9fbfd}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:2px}
.switch{display:inline-flex;align-items:center;gap:8px}.switch input{display:none}.switch-ui{width:38px;height:22px;border-radius:99px;background:#aebdcc;position:relative;transition:.18s}.switch-ui:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;left:3px;top:3px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.22);transition:.18s}.switch input:checked+.switch-ui{background:#16b873}.switch input:checked+.switch-ui:after{transform:translateX(16px)}
.filters{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.filters label{min-width:145px;flex:1}.filters label.search-field{min-width:220px;flex:2}.filter-panel{margin-bottom:12px;padding:11px;background:#f8fbfe;border:1px solid #e2ebf4;border-radius:11px}.filter-actions{display:flex;gap:7px;align-items:flex-end}.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:8px 10px;background:#f7fafc;border:1px solid #e1e9f1;border-radius:10px}.bulk-bar .spacer{flex:1}.bulk-count{font-size:11px;color:var(--muted)}

/* Tables */
.table-wrap{position:relative;overflow:auto;border:1px solid #e3ebf3;border-radius:11px;background:#fff}.table-wrap.loading:after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.74) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 24 24' fill='none' stroke='%230b84ff' stroke-width='2'%3E%3Cpath d='M21 12a9 9 0 1 1-6.2-8.56'/%3E%3C/svg%3E") center/26px no-repeat;z-index:3}.table{width:100%;border-collapse:collapse;font-size:11.5px;background:#fff}.table th{position:relative;padding:9px 9px;background:#f4f8fc;color:#365574;text-align:left;font-size:10.5px;font-weight:800;white-space:nowrap;border-bottom:1px solid #e2ebf4}.table td{padding:9px;border-bottom:1px solid #edf2f6;vertical-align:middle;white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fbfdff}.table .wrap{white-space:normal;min-width:170px}.table .numeric{text-align:right;font-variant-numeric:tabular-nums}.table-avatar{display:flex;align-items:center;gap:9px}.mini-avatar{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#edf5ff,#dcecff);color:#1265ad;font-weight:850;overflow:hidden;flex:0 0 auto}.mini-avatar img{width:100%;height:100%;object-fit:cover}.action-icons{display:flex;gap:5px;align-items:center}.action-icons .btn{min-width:30px;padding:5px 7px;min-height:29px}.row-title{font-weight:780;color:#173a5c}.row-sub{display:block;margin-top:2px;font-size:10px;color:var(--muted)}
.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border-radius:7px;font-size:9.5px;font-weight:800;line-height:1.2}.badge-success{background:var(--green-100);color:var(--green-700)}.badge-danger{background:var(--red-100);color:var(--red-700)}.badge-warning{background:var(--amber-100);color:var(--amber-700)}.badge-info{background:var(--blue-100);color:var(--blue-700)}.badge-muted{background:#edf1f5;color:#667687}.badge-purple{background:var(--purple-100);color:var(--purple-700)}
.pagination{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:11px}.pagination a,.pagination span{min-width:31px;height:31px;padding:0 8px;display:grid;place-items:center;border:1px solid #cfdae5;border-radius:8px;background:#fff;font-size:11px}.pagination a:hover{background:#f4f9fd}.pagination .active{background:var(--blue-600);border-color:var(--blue-600);color:#fff}.pagination-meta{margin-right:auto;color:var(--muted);font-size:10.5px}

/* Utility content */
.alert{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin-bottom:13px;border-radius:10px;font-size:12px}.alert.success{background:#e9faf2;border:1px solid #c6eedb;color:#087848}.alert.danger{background:#fff0f0;border:1px solid #ffd1d1;color:#bd2929}.alert.warning{background:#fff8e9;border:1px solid #ffe2a9;color:#975a00}.alert.info{background:#edf6ff;border:1px solid #d4e9ff;color:#1269b9}
.notice-list{display:grid;gap:7px}.notice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #e3ebf3;border-radius:9px;background:#f9fbfd}.notice strong{font-size:11.5px}.notice small{font-size:9.5px}.notice:hover:is(a){background:#f4f9fe;border-color:#d4e4f2}
.metric-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.metric{padding:11px;border:1px solid #e3ebf3;border-radius:10px;background:#f8fbfe;text-align:center}.metric span{display:block;font-size:10px}.metric strong{display:block;margin-top:3px;font-size:17px}
.profile-row{display:flex;align-items:center;gap:14px}.profile-photo{width:84px;height:84px;border-radius:14px;display:grid;place-items:center;overflow:hidden;background:#e8f2fb;color:#0b5d9f;font-size:28px;font-weight:850}.profile-photo img{width:100%;height:100%;object-fit:cover}
.tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{display:inline-flex;align-items:center;gap:6px;padding:9px 11px;color:#667b91;white-space:nowrap;font-size:11.5px}.tab.active{color:var(--blue-700);font-weight:800;border-bottom:2px solid var(--blue-600)}
.empty-state{padding:28px;text-align:center;color:var(--muted)}.empty-state .empty-icon{width:44px;height:44px;margin:0 auto 8px;border-radius:12px;background:#edf4fb;display:grid;place-items:center;color:#7d98b2}
.data-summary{display:flex;align-items:center;gap:15px;flex-wrap:wrap;font-size:10.5px;color:var(--muted)}

/* Simple charts, no third-party requirement */
.fake-chart{height:205px;display:flex;align-items:flex-end;gap:9px;padding:18px 10px 24px;border-left:1px solid #dbe6f0;border-bottom:1px solid #dbe6f0;background:repeating-linear-gradient(to top,#fff,#fff 39px,#eef4f9 40px)}.bar{flex:1;min-width:12px;border-radius:5px 5px 0 0;background:linear-gradient(#3199ff,#0b74d9)}
.donut{width:168px;height:168px;border-radius:50%;position:relative;margin:auto;background:conic-gradient(var(--blue-600) 0 32%,var(--green-600) 32% 50%,var(--orange-500) 50% 64%,var(--red-600) 64% 76%,var(--purple-500) 76% 86%,#8798aa 86%)}.donut:after{content:"";position:absolute;inset:40px;background:#fff;border-radius:50%}

/* Modal / toast */
.modal-backdrop{position:fixed;inset:0;z-index:120;display:none;place-items:center;padding:18px;background:rgba(4,20,36,.55);backdrop-filter:blur(2px)}.modal-backdrop.show{display:grid}.modal{width:min(640px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;border:1px solid #dce7f1;box-shadow:var(--shadow-lg)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-body{padding:16px}.modal-close{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:9px;background:#f1f5f9;color:var(--ink)}
.toast-stack{position:fixed;right:18px;bottom:18px;z-index:140;display:grid;gap:8px;width:min(360px,calc(100vw - 36px))}.toast{padding:11px 13px;border-radius:10px;background:#102b46;color:#fff;box-shadow:var(--shadow-lg);font-size:12px;animation:toastIn .2s ease}.toast.success{background:#0b8452}.toast.danger{background:#c23a3a}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Settings */
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-card{padding:0;overflow:hidden}.settings-card-head{display:flex;align-items:center;gap:11px;padding:15px 16px;border-bottom:1px solid var(--line);background:#fbfdff}.settings-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:#fff;flex:0 0 auto}.settings-card-head h2{font-size:15px}.settings-card-body{padding:16px}

/* Authentication */
.auth-body{min-height:100vh;display:grid;place-items:center;padding:22px;background:#eef3f8;position:relative;overflow:auto}.auth-body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 15% 15%,rgba(49,153,255,.12),transparent 33%),radial-gradient(circle at 85% 82%,rgba(248,102,24,.10),transparent 30%);pointer-events:none}.auth-shell{position:relative;width:min(980px,100%);min-height:570px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border:1px solid #dce7f0;border-radius:22px;overflow:hidden;box-shadow:0 25px 80px rgba(10,39,69,.18)}.auth-brand-panel{padding:42px;background:linear-gradient(145deg,#0b3158,#0a2745 68%,#071a2d);color:#fff;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-brand-panel:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-150px;bottom:-140px;border:58px solid rgba(255,255,255,.045)}.auth-brand{display:flex;align-items:center;gap:15px;position:relative;z-index:1}.auth-brand img{width:78px;height:78px;object-fit:contain;background:#fff;border-radius:50%;border:3px solid rgba(255,255,255,.7)}.auth-brand h1{font-size:26px;margin:0}.auth-brand p{margin:4px 0 0;color:#bcd1e4;font-size:12px}.auth-feature-list{display:grid;gap:10px;position:relative;z-index:1}.auth-feature{display:flex;align-items:center;gap:10px;color:#dceaf6;font-size:12px}.auth-feature .feature-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.08)}.auth-form-panel{padding:46px;display:flex;align-items:center}.auth-form{width:100%}.auth-form h2{font-size:27px;margin:0 0 5px}.auth-form>p{color:var(--muted);margin:0 0 23px}.auth-form label{margin-bottom:13px}.auth-logo-mobile{display:none;width:80px;height:80px;object-fit:contain;margin:0 auto 16px}.login-meta{display:flex;justify-content:space-between;align-items:center;margin:6px 0 18px;font-size:11px;color:var(--muted)}.login-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #dfe8f1;border-radius:8px;background:#f9fbfd;font-size:10px;color:var(--muted)}
.install-card{position:relative;width:min(820px,100%);padding:28px;background:#fff;border:1px solid #dce7f0;border-radius:18px;box-shadow:var(--shadow-lg)}.install-card .auth-logo{display:block;width:86px;height:86px;object-fit:contain;margin:0 auto 8px}.install-card h1,.install-card>p{text-align:center}.install-card>p{color:var(--muted)}

/* Portal */
.portal-shell{max-width:1240px;margin:auto;padding:18px}.portal-head{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 18px;border-radius:15px;background:linear-gradient(135deg,#0b3158,#0d4d85);color:#fff;box-shadow:var(--shadow)}.portal-logo{display:flex;align-items:center;gap:12px}.portal-logo img{width:58px;height:58px;object-fit:contain;border-radius:50%;background:#fff}.portal-head .btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}

/* Printable documents */
.print-page{max-width:980px;margin:0 auto}.receipt{max-width:920px;margin:0 auto;background:#fff;border:1px solid #cfdde9;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.receipt-band{height:8px;background:linear-gradient(90deg,#f86618 0 30%,#0b3158 30% 76%,#0b84ff 76%)}.receipt-inner{padding:26px}.receipt-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:15px;border-bottom:2px solid var(--navy-850)}.receipt-brand{display:flex;align-items:center;gap:13px}.receipt-logo{width:76px;height:76px;object-fit:contain}.receipt-brand h2{margin:0;color:var(--navy-850);font-size:18px;line-height:1.25}.receipt-brand p{margin:4px 0 0;font-size:10.5px;color:var(--muted)}.receipt-title{text-align:right}.receipt-title .doc-label{display:inline-block;padding:4px 7px;border-radius:6px;background:#eef5fb;color:#46627e;font-size:9px;font-weight:800;letter-spacing:.7px}.receipt-title h1{margin:5px 0 2px;font-size:24px;color:var(--navy-850)}.receipt-title strong{font-size:11px}.receipt-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0;padding:13px 14px;border:1px solid #e0e9f2;border-radius:10px;background:#f8fbfe}.doc-info{display:grid;grid-template-columns:125px 1fr;gap:4px 10px;font-size:11px}.doc-info .label{color:var(--muted)}.receipt-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;border:1px solid #d8e6f1;border-radius:9px;background:linear-gradient(90deg,#edf7ff,#fff4eb);font-size:16px;font-weight:850}.receipt-footer{display:flex;justify-content:space-between;gap:20px;margin-top:20px;padding-top:14px;border-top:1px dashed #b9cbdc;color:var(--muted);font-size:10px}.signature-line{min-width:160px;padding-top:26px;border-bottom:1px solid #7f91a3;text-align:center;font-size:9.5px;color:#566c82}.print-watermark{display:none}.print-only{display:none}.challan-copies{display:grid;gap:18px}.challan-copy{border:1px solid #cbd9e5;border-radius:12px;padding:18px;position:relative}.copy-label{position:absolute;top:11px;right:12px;padding:3px 7px;border-radius:5px;background:#edf4fa;color:#60768d;font-size:9px;font-weight:800}

/* ID cards */
.id-card{width:520px;max-width:100%;aspect-ratio:1.58/1;border-radius:16px;overflow:hidden;border:1px solid #cbd9e7;background:#fff;box-shadow:var(--shadow-lg);position:relative}.id-accent{height:8px;background:linear-gradient(90deg,#f86618 0 31%,#0b3158 31% 77%,#0b84ff 77%)}.id-top{height:78px;padding:11px 15px;display:flex;align-items:center;gap:10px;background:linear-gradient(110deg,#0b3158,#0c4e87);color:#fff}.id-top img{width:54px;height:54px;object-fit:contain;border-radius:50%;background:#fff}.id-top strong{font-size:12px}.id-top small{display:block;color:#cbdff0}.id-body{display:grid;grid-template-columns:1fr 104px;gap:13px;padding:14px 16px}.id-details{font-size:10.5px;display:grid;grid-template-columns:78px 1fr;gap:5px}.id-details span{color:var(--muted)}.id-photo{height:112px;border-radius:10px;display:grid;place-items:center;overflow:hidden;background:#e8f2fb;color:#0b5d9f;font-weight:850}.id-photo img{width:100%;height:100%;object-fit:cover}.id-code{font-size:9px;letter-spacing:.5px;margin-top:7px;text-align:center;color:#415d78}

/* Responsive */
@media(max-width:1280px){.stats.five{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1100px){
  .sidebar{transform:translateX(-103%);transition:transform .22s ease;width:min(86vw,320px)}.sidebar.open{transform:translateX(0)}.sidebar-close{display:grid}.sidebar-overlay{display:block;position:fixed;inset:0;z-index:65;background:rgba(4,19,34,.55);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:.2s}.sidebar-overlay.open{opacity:1;pointer-events:auto}.main{margin-left:0;width:100%}.menu-toggle{display:grid}.grid-2,.grid-equal,.grid-3,.settings-grid{grid-template-columns:1fr}.topbar{padding:0 18px}
}
@media(max-width:760px){
  html,body{font-size:13px}.content{padding:15px 12px 28px}.topbar{height:62px;padding:0 11px;gap:8px}.global-search-wrap{max-width:none}.global-search{min-height:39px;padding:0 10px}.admin-chip>div:last-child{display:none}.top-actions{gap:7px}.icon-btn{width:37px;height:37px}.page-head{flex-direction:column;margin-bottom:15px}.page-head h1{font-size:26px}.page-head .actions,.page-head>.btn{width:100%}.page-head .actions .btn{flex:1}.stats,.stats.five{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:12px;gap:10px}.stat-icon{width:42px;height:42px}.stat .value{font-size:18px}.grid-4{grid-template-columns:1fr}.form-grid.two,.form-grid.three,.form-grid.four{grid-template-columns:1fr}.form-actions{justify-content:stretch}.form-actions .btn{flex:1}.metric-list{grid-template-columns:1fr}.card{padding:13px;border-radius:12px}.filters{display:grid;grid-template-columns:1fr 1fr}.filters label,.filters label.search-field{min-width:0}.filter-actions{grid-column:1/-1}.filter-actions .btn{flex:1}.bulk-bar{align-items:stretch}.bulk-bar .spacer{display:none}.bulk-bar select{width:100%!important}.table{font-size:10.5px}.table th,.table td{padding:8px 7px}.app-footer{display:block;text-align:center;padding:13px}.app-footer span{display:block;margin:2px}.receipt-inner{padding:15px}.receipt-head{align-items:flex-start}.receipt-brand h2{font-size:14px}.receipt-logo{width:58px;height:58px}.receipt-title h1{font-size:18px}.receipt-meta{grid-template-columns:1fr}.receipt-footer{display:block}.signature-line{margin-left:auto}.auth-shell{grid-template-columns:1fr;min-height:auto}.auth-brand-panel{display:none}.auth-form-panel{padding:30px 22px}.auth-logo-mobile{display:block}.portal-head{align-items:flex-start;flex-direction:column}.id-card{border-radius:12px}.id-top{height:68px}.id-body{grid-template-columns:1fr 88px}.settings-card-body{padding:13px}
}
@media(max-width:480px){.stats,.stats.five{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.global-search input::placeholder{font-size:11px}.page-head .actions{display:grid;grid-template-columns:1fr 1fr}.page-head .actions .btn{width:100%}.profile-row{align-items:flex-start}.profile-photo{width:68px;height:68px}.receipt-title{max-width:130px}.receipt-title h1{font-size:16px}.receipt-brand p{display:none}}

@media print{
  @page{size:A4;margin:10mm}body{background:#fff!important}.sidebar,.topbar,.no-print,.app-footer,.sidebar-overlay,.toast-stack{display:none!important}.main{margin:0!important;width:100%!important}.content{padding:0!important;max-width:none!important}.card{box-shadow:none!important}.receipt{max-width:none;border:0;box-shadow:none;border-radius:0}.receipt-inner{padding:0}.receipt-band{height:5px}.table-wrap{overflow:visible;border-color:#bdcbd8}.table{font-size:9.5pt}.table th,.table td{white-space:normal}.print-only{display:block!important}.print-watermark{display:block;position:fixed;inset:42% 0 auto;text-align:center;opacity:.032;font-size:86pt;font-weight:900;transform:rotate(-24deg);z-index:-1}.challan-copy{break-inside:avoid;page-break-inside:avoid}.btn{display:none!important}
}

/* v3 professional controls */
.check-label{display:inline-flex!important;align-items:center;gap:8px;font-weight:700;color:var(--ink-2);margin:0}.check-label input{width:auto!important;margin:0}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.permission-grid.compact{max-height:310px;overflow:auto;padding-right:4px}.permission-item{display:grid!important;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 11px!important;border:1px solid var(--line)!important;background:#fbfdff!important;border-radius:10px!important;margin:0!important;font-weight:600!important}.permission-item:hover{border-color:#b9d4ec!important;background:#f6faff!important}.permission-item input{width:17px!important;height:17px!important;margin:0!important}.permission-item small{display:block;font-size:9.5px;color:var(--muted);margin-top:2px}.permission-icon{width:30px;height:30px;border-radius:8px;background:var(--blue-100);color:var(--blue-700);display:grid;place-items:center}
.modal.small-modal{max-width:480px}.modal .form-actions{margin-top:4px}
.metric-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.metric-tile{padding:11px;border:1px solid var(--line);border-radius:11px;background:#fbfdff}.metric-tile small{display:block;color:var(--muted);font-size:10px}.metric-tile strong{display:block;margin-top:3px;font-size:15px;color:var(--navy-850)}
.section-tabs{display:flex;gap:6px;overflow-x:auto;padding:3px;border-bottom:1px solid var(--line);margin-bottom:14px}.section-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:9px 9px 0 0;font-weight:750;font-size:12px;color:var(--muted);white-space:nowrap}.section-tab:hover{background:#f3f8fc;color:var(--navy-850)}.section-tab.active{color:var(--blue-700);background:var(--blue-100);box-shadow:inset 0 -2px var(--blue-600)}
.portal-actions{display:flex;gap:8px;flex-wrap:wrap}.portal-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center}.portal-user{display:flex;align-items:center;gap:10px}.portal-user .mini-avatar{width:38px;height:38px}.portal-nav{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 20px}.portal-nav a{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:750;color:var(--ink-2)}.portal-nav a:hover{border-color:#a8c9e5;color:var(--blue-700)}
.print-copy-label{display:inline-flex;padding:4px 8px;border-radius:6px;background:#eef5fb;color:#456681;font-size:9px;font-weight:850;letter-spacing:.8px}.document-note{padding:12px 14px;border:1px dashed #bacddd;border-radius:10px;background:#f8fbfe;color:var(--ink-2);font-size:11px}.amount-words{font-size:11px;color:var(--muted);margin-top:8px}.print-signatures{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px}.print-signature{padding-top:7px;border-top:1px solid #7b8da0;text-align:center;font-size:10px;color:#536a80}
.data-toolbar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.data-toolbar label{min-width:150px;flex:1}.data-toolbar .grow{min-width:230px;flex:2}.table-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.table-status-dot.green{background:var(--green-600)}.table-status-dot.red{background:var(--red-600)}.table-status-dot.orange{background:var(--amber-500)}
@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.metric-strip{grid-template-columns:1fr}.portal-topbar{align-items:flex-start;flex-direction:column}.print-signatures{grid-template-columns:1fr;gap:24px}.section-tabs{margin-left:-2px;margin-right:-2px}}
.lookup-wrap{position:relative;flex:1;min-width:240px}.lookup-results{display:none;position:absolute;left:0;right:0;top:calc(100% + 7px);z-index:95;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;max-height:380px;overflow-y:auto}.lookup-results.show{display:block}.lookup-result{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line-2)}.lookup-result:last-child{border-bottom:0}.lookup-result:hover{background:#f6faff}.lookup-result strong{display:block;font-size:12px}.lookup-result small{display:block;color:var(--muted);font-size:10.5px;margin-top:2px}.lookup-go{margin-left:auto;font-size:10px;font-weight:800;color:var(--blue-700)}

/* ===== v4.0 professional visual hardening ===== */
/* Prevent the oversized-icon failure seen in earlier builds. All UI icons are fixed-size SVG glyphs. */
svg.icon, .icon, [class*="-icon"] > svg.icon, button > svg.icon, a > svg.icon, label > svg.icon{
  width:var(--icon-size,18px)!important;height:var(--icon-size,18px)!important;min-width:var(--icon-size,18px)!important;min-height:var(--icon-size,18px)!important;
  max-width:var(--icon-size,18px)!important;max-height:var(--icon-size,18px)!important;display:inline-block!important;flex:0 0 var(--icon-size,18px)!important;
  aspect-ratio:1/1!important;object-fit:contain!important;contain:size layout!important;
}
.stat-icon > svg.icon{--icon-size:23px}.settings-icon > svg.icon{--icon-size:18px}.nav-icon > svg.icon{--icon-size:18px}.feature-icon > svg.icon{--icon-size:15px}.icon-btn > svg.icon{--icon-size:17px}.btn > svg.icon{--icon-size:15px}

.content{overflow:visible}.content>.page-head:first-child{margin-top:0}
.topbar{box-shadow:0 2px 12px rgba(10,39,69,.035)}
.admin-menu-trigger{border:0;background:transparent;color:var(--ink);cursor:pointer;border-radius:12px;padding:4px 7px;transition:.16s}.admin-menu-trigger:hover,.admin-menu-trigger[aria-expanded="true"]{background:#f1f6fa}.admin-menu-trigger>svg{transform:rotate(90deg);color:var(--muted)}
.admin-menu{position:absolute;right:24px;top:62px;width:230px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-lg);display:none;z-index:100}.admin-menu.show{display:block;animation:menuIn .14s ease}.admin-menu-head{padding:9px 10px 11px;border-bottom:1px solid var(--line-2);margin-bottom:5px}.admin-menu-head strong,.admin-menu-head span{display:block}.admin-menu-head span{font-size:10px;color:var(--muted);margin-top:2px}.admin-menu a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;font-size:11.5px;font-weight:700;color:var(--ink-2)}.admin-menu a:hover{background:#f5f9fd;color:var(--blue-700)}.admin-menu a.admin-menu-danger{color:var(--red-700)}
@keyframes menuIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

.page-head{padding:2px 0}.page-head h1{color:#0b2c4e}.eyebrow{display:flex;align-items:center;gap:6px}.eyebrow:before{content:"";width:18px;height:2px;border-radius:3px;background:var(--orange-500)}
.card{transition:border-color .16s,box-shadow .16s}.card:hover{border-color:#d7e4ee}.card-head h2{color:#123454}
.stat{position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:72px;height:72px;border-radius:50%;right:-28px;top:-30px;background:rgba(23,85,135,.035);pointer-events:none}.stat .value{font-variant-numeric:tabular-nums}

.notice.with-icon{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px}.notice-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eef5fb;color:var(--navy-850)}.notice-icon.danger{background:var(--red-100);color:var(--red-700)}.notice-icon.warning{background:var(--amber-100);color:var(--amber-700)}.notice-icon.success{background:var(--green-100);color:var(--green-700)}.notice-icon.purple{background:var(--purple-100);color:var(--purple-700)}

.filter-panel{padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfdff;margin-bottom:11px}.filter-panel label{margin:0}.filter-panel .filter-actions{align-self:flex-end}.bulk-bar{border:1px solid var(--line);border-radius:10px 10px 0 0;background:#f7fafc;padding:8px 10px;margin:0}.bulk-bar+.table-wrap{border-top-left-radius:0;border-top-right-radius:0;border-top:0}
.table-wrap{box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}.table th{letter-spacing:.02em;text-transform:none}.table tbody tr{transition:background .12s}.table input[type="checkbox"]{width:16px;height:16px;accent-color:var(--blue-600)}

/* Mobile data tables remain usable and actions never disappear off screen. */
@media(max-width:760px){
  .admin-copy{display:none}.admin-menu{right:10px;top:56px}.global-search input::placeholder{color:transparent}.global-search-wrap{min-width:0}.top-actions{margin-left:0}.content{padding-top:14px}
  .table-wrap{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}.table{min-width:760px}.action-icons{position:sticky;right:0;background:#fff;padding-left:4px}.table tbody tr:hover .action-icons{background:#fbfdff}
  .filters.filter-panel{grid-template-columns:1fr}.filter-actions{grid-column:auto}.bulk-bar{display:grid;grid-template-columns:1fr auto;gap:8px}.bulk-bar .spacer{display:none}.bulk-bar select,.bulk-bar .btn{grid-column:1/-1;width:100%!important}
  .sidebar{padding-bottom:calc(22px + env(safe-area-inset-bottom))}.sidebar-close{position:sticky;top:10px;z-index:8}
}
@media(max-width:480px){.topbar .icon-btn{display:grid}.stats,.stats.five{grid-template-columns:1fr}.page-head .actions{grid-template-columns:1fr}.btn{min-height:40px}.content{padding-left:10px;padding-right:10px}.card{padding:12px}}

/* Professional login/install refinements */
.auth-shell{isolation:isolate}.auth-brand-panel{background:linear-gradient(150deg,#092944 0%,#0b3158 56%,#0c426f 100%)}.auth-brand-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.035),transparent 42%),radial-gradient(circle at 90% 10%,rgba(49,153,255,.17),transparent 28%);pointer-events:none}.auth-brand img,.auth-logo-mobile,.install-card .auth-logo{box-shadow:0 8px 30px rgba(7,26,45,.16)}.auth-form input{min-height:44px}.auth-form .btn{min-height:44px}.auth-feature .feature-icon{flex:0 0 30px}

/* Print output is deliberately plain, official and ink-efficient. */
@media print{.receipt,.challan-copy,.id-card{box-shadow:none!important}.receipt-head{page-break-inside:avoid}.receipt-brand img{max-width:72px!important}.print-signatures{page-break-inside:avoid}.receipt-band,.id-accent{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.report-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-action{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfdff;transition:.16s}.report-action:hover{border-color:#9ec7e8;background:#f5faff;transform:translateY(-1px)}.report-action-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--blue-100);color:var(--blue-700)}.report-action strong,.report-action small{display:block}.report-action small{color:var(--muted);font-size:10px;margin-top:2px}.report-action>svg{color:var(--muted)}
@media(max-width:1000px){.report-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.report-actions{grid-template-columns:1fr}}

/* ======================================================================
   v5.0 compact professional UI
   List-first layout, desktop collapsible navigation and calmer information density.
   ====================================================================== */
:root{
  --sidebar:244px;
  --sidebar-collapsed:76px;
  --topbar:64px;
  --radius:12px;
  --radius-lg:16px;
  --shadow-sm:0 1px 3px rgba(7,31,56,.045),0 6px 18px rgba(7,31,56,.035);
  --shadow:0 10px 28px rgba(7,31,56,.075);
}
html,body{font-size:13.5px;background:#f5f7fa}
.sidebar{width:var(--sidebar);padding:12px 10px 16px;transition:width .2s ease,transform .22s ease;box-shadow:none;border-right:1px solid rgba(255,255,255,.055)}
.sidebar-top{top:-12px;padding-top:12px;gap:5px}.brand{gap:10px;padding:3px 6px 12px}.brand img{width:46px;height:46px}.brand strong{font-size:18px}.brand span{font-size:9.5px}.nav-section{margin:9px 0 4px;padding:0 10px;font-size:9px;letter-spacing:1.05px}.nav-link{min-height:39px;padding:7px 9px;margin:2px 0;border-radius:9px;gap:9px}.nav-icon{width:23px;height:23px}.nav-link.active{box-shadow:0 5px 16px rgba(248,102,24,.20)}
.sidebar-collapse{display:grid;width:32px;height:32px;place-items:center;border:1px solid rgba(255,255,255,.11);border-radius:9px;background:rgba(255,255,255,.055);color:#dceaf6;transition:.18s}.sidebar-collapse:hover{background:rgba(255,255,255,.11)}.sidebar-collapse svg{transition:transform .2s}.sidebar-close{width:34px;height:34px}
.main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));transition:margin-left .2s ease,width .2s ease}.topbar{height:var(--topbar);padding:0 22px;gap:11px}.content{max-width:1580px;padding:19px 22px 34px}.app-footer{padding:12px 22px}.global-search{min-height:39px;border-radius:9px}.global-search-wrap{max-width:520px}.icon-btn{width:36px;height:36px;border-radius:9px}.avatar{width:36px;height:36px}.admin-chip strong{font-size:11.5px}.admin-chip small{font-size:9.5px}
.page-head{margin-bottom:13px;gap:14px}.page-head h1{font-size:27px;letter-spacing:-.45px;margin-bottom:3px}.page-head p{font-size:12px;max-width:780px}.eyebrow{font-size:9px;margin-bottom:3px}.actions{gap:6px}.btn{min-height:35px;padding:7px 11px;border-radius:8px;font-size:11.5px;box-shadow:none}.btn:hover{transform:none;box-shadow:none}.btn.small{min-height:28px;font-size:10.5px;padding:4px 7px}.btn.icon-only{width:29px;height:29px;padding:0}.btn.icon-only.danger-ghost{color:var(--red-700);border-color:#f0caca;background:#fff}.btn.icon-only.danger-ghost:hover{background:#fff4f4}.btn.icon-only.primary-ghost{color:var(--blue-700);border-color:#c8dff2;background:#fff}
.card{border-radius:11px;padding:13px;margin-bottom:12px;box-shadow:var(--shadow-sm)}.card-head{margin-bottom:9px}.card h2{font-size:14.5px}.card h3{font-size:13px}.card-subtitle{font-size:10.5px}.stats{gap:9px;margin-bottom:12px}.stat{padding:11px 12px;border-radius:11px;gap:10px}.stat-icon{width:39px;height:39px;border-radius:10px}.stat .value{font-size:18px}.stat small,.stat-detail{font-size:9.5px}.stats.five{gap:8px}.stats.five .stat{padding:10px}.stats.five .stat-icon{width:36px;height:36px}.stats.five .stat .value{font-size:16.5px}
.filter-panel{padding:9px;margin-bottom:8px;border-radius:9px}.filters{gap:6px}.filters label{min-width:130px;font-size:10.5px}.filters label.search-field{min-width:200px}.filters input,.filters select{min-height:34px;margin-top:4px;padding:7px 8px}.bulk-bar{padding:6px 8px;border-radius:8px 8px 0 0}.table-wrap{border-radius:9px}.table{font-size:10.9px}.table th{padding:8px;background:#f6f8fb;font-size:9.7px;color:#526b83}.table td{padding:7px 8px}.mini-avatar{width:28px;height:28px;border-radius:8px}.row-title{font-weight:760}.row-sub{font-size:9.3px}.badge{font-size:9.3px;padding:3px 6px}.pagination{margin-top:8px}.pagination a,.pagination span{min-width:28px;height:28px;font-size:10px;border-radius:7px}.notice{padding:8px 9px;border-radius:8px}.notice strong{font-size:10.8px}.notice small{font-size:9px}.modal{border-radius:13px}.modal-head{padding:12px 14px}.modal-body,.modal>form{padding:14px}.form-grid{gap:10px}.form-grid.two,.form-grid.three,.form-grid.four{gap:10px}label{font-size:10.8px}input,select,textarea{min-height:35px;padding:7px 9px;border-radius:7px;margin-top:4px}textarea{min-height:76px}

/* Desktop collapsible sidebar. */
@media(min-width:1101px){
  body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}
  body.sidebar-collapsed .main{margin-left:var(--sidebar-collapsed);width:calc(100% - var(--sidebar-collapsed))}
  body.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}
  body.sidebar-collapsed .brand img{width:43px;height:43px}
  body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .system-copy{display:none}
  body.sidebar-collapsed .sidebar-top{display:grid;grid-template-columns:1fr;justify-items:center}
  body.sidebar-collapsed .sidebar-collapse{position:absolute;right:-13px;top:18px;background:#0b3158;border-color:#355c7f;box-shadow:0 4px 12px rgba(3,24,43,.18)}
  body.sidebar-collapsed .sidebar-collapse svg{transform:rotate(180deg)}
  body.sidebar-collapsed .nav-section{height:1px;padding:0;margin:10px 9px;background:rgba(255,255,255,.10);overflow:hidden}
  body.sidebar-collapsed .nav-link{justify-content:center;padding-left:0;padding-right:0}
  body.sidebar-collapsed .nav-icon{width:26px;height:26px}
  body.sidebar-collapsed .system-mini{justify-content:center;padding:10px 3px}
}

/* Compact content patterns used by v5 pages. */
.list-card{padding:0;overflow:hidden}.list-card>.card-head{padding:13px 13px 0}.list-card>.filter-panel{margin:9px 13px 8px}.list-card>.bulk-bar,.list-card>form>.bulk-bar{margin-left:13px;margin-right:13px}.list-card>.table-wrap,.list-card>form>.table-wrap{border-left:0;border-right:0;border-radius:0}.list-card>.pagination,.list-card>[id$="Pagination"]{padding:0 13px 10px}.compact-section{margin-bottom:12px}.details-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.detail-tile{padding:9px 10px;background:#f8fafc;border:1px solid var(--line);border-radius:8px}.detail-tile small{display:block;color:var(--muted);font-size:9px}.detail-tile strong{display:block;margin-top:3px;font-size:11.5px}.inline-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 11px;background:#f8fafc;border:1px solid var(--line);border-radius:9px}.inline-summary .summary-item{display:flex;gap:5px;align-items:baseline}.inline-summary small{color:var(--muted);font-size:9px}.inline-summary strong{font-size:11px}.subtle-panel{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:10px}.table-actions{display:flex;gap:4px;align-items:center}.table-actions form{display:inline-flex}.toolbar-end{margin-left:auto}.modal.wide-modal{width:min(860px,100%)}.modal.xwide-modal{width:min(1080px,100%)}
.data-list{display:grid;gap:0;border:1px solid var(--line);border-radius:9px;overflow:hidden}.data-list-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.7fr) auto;gap:10px;align-items:center;padding:9px 10px;border-bottom:1px solid var(--line-2);background:#fff}.data-list-row:last-child{border-bottom:0}.data-list-row:hover{background:#fbfcfe}.data-list-row strong{font-size:11px}.data-list-row small{display:block;color:var(--muted);font-size:9px}.action-menu{display:flex;gap:4px}.section-action-bar{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.section-action-bar h2{margin:0;font-size:14px}.section-action-bar p{margin:2px 0 0;color:var(--muted);font-size:10px}

/* Settings are intentionally clean cards, not oversized icon panels. */
.settings-grid{gap:12px}.settings-card-head{padding:12px 13px;gap:9px}.settings-card-body{padding:13px}.settings-icon{width:32px;height:32px;border-radius:8px}.settings-card-head h2{font-size:13.5px}

/* Document print typography: readable even in three-column bank/student/institute layout. */
.compact-copy{font-size:9.5pt!important}.compact-copy .receipt-brand h2{font-size:11.2pt!important}.compact-copy .receipt-brand p{font-size:8.1pt!important;line-height:1.28}.compact-copy .receipt-title h1{font-size:15.5pt!important}.compact-copy .receipt-title strong{font-size:9.1pt!important}.compact-copy .doc-info{font-size:8.8pt!important;line-height:1.28}.compact-copy .table{font-size:8.7pt!important}.compact-copy .table th,.compact-copy .table td{padding:4.8px 5px!important}.compact-copy .receipt-total{font-size:10.8pt!important}.compact-copy .amount-words,.compact-copy .document-note,.compact-copy .receipt-footer,.compact-copy .print-signature{font-size:8.2pt!important;line-height:1.32}.compact-copy .copy-label{font-size:8pt!important}.compact-copy .print-signatures{margin-top:20px!important}

@media(max-width:1280px){.stats.five{grid-template-columns:repeat(5,minmax(0,1fr))}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){
  .sidebar{width:min(86vw,300px);padding:12px 10px 18px}.sidebar-collapse{display:none!important}.sidebar-close{display:grid}.brand-copy,.nav-label,.system-copy{display:block!important}.sidebar-top{display:flex!important}.nav-section{height:auto!important;background:transparent!important;margin:9px 0 4px!important;padding:0 10px!important}.nav-link{justify-content:flex-start!important;padding:7px 9px!important}
  .main,body.sidebar-collapsed .main{margin-left:0;width:100%}.menu-toggle{display:grid}.grid-2,.grid-equal,.grid-3,.settings-grid{grid-template-columns:1fr}.topbar{padding:0 14px}
}
@media(max-width:760px){
  .content{padding:12px 10px 24px}.topbar{height:58px;padding:0 9px}.page-head h1{font-size:23px}.page-head p{font-size:11px}.stats,.stats.five{grid-template-columns:1fr 1fr}.stat{padding:9px}.stat-icon{width:35px;height:35px}.stat .value{font-size:16px}.card{padding:11px}.details-grid{grid-template-columns:1fr 1fr}.section-action-bar{align-items:flex-start;flex-direction:column}.table{min-width:720px}.list-card>.filter-panel{margin-left:10px;margin-right:10px}.list-card>.bulk-bar,.list-card>form>.bulk-bar{margin-left:10px;margin-right:10px}.modal-backdrop{padding:10px}.modal{max-height:94vh}.modal-head{position:sticky;top:0;background:#fff;z-index:3}.admin-menu{right:8px}.global-search input::placeholder{color:#9aa9b8}
}
@media(max-width:480px){.stats,.stats.five{grid-template-columns:1fr 1fr}.details-grid{grid-template-columns:1fr}.page-head .actions{display:flex}.page-head .actions .btn{width:auto;flex:1}.admin-chip{display:none}.global-search{min-height:36px}.menu-toggle{width:36px;height:36px}.top-actions{gap:5px}.btn{font-size:11px}}
@media print{
  .compact-copy{font-size:9.4pt!important}.compact-copy .receipt-meta{margin:7px 0!important;padding:6px!important}.compact-copy .document-note{padding:6px 7px!important;margin-top:6px!important}.compact-copy .receipt-footer{margin-top:9px!important;padding-top:6px!important}
}

/* ===== v5.0 compact professional layout ===== */
.compact-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-panel{padding:13px}.compact-chart{height:142px}.chart-months{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:5px;color:var(--muted);font-size:8.5px;text-align:center}.list-card .card-head{align-items:center}
.table-actions .btn{background:#fff}.table-actions .btn:hover{background:#f4f9fd}.danger-outline{color:var(--red-700)!important;border-color:#efd0d0!important;background:#fff!important}.danger-outline:hover{background:#fff3f3!important}.primary-ghost{color:var(--blue-700)!important;border-color:#c7ddf0!important;background:#fff!important}.primary-ghost:hover{background:#f1f8ff!important}
@media(max-width:980px){.compact-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-months{font-size:8px}}
@media(max-width:480px){.compact-stats{grid-template-columns:1fr 1fr}.chart-months{display:none}}
.settings-nav{display:flex;align-items:center;gap:6px;position:sticky;top:calc(var(--topbar) + 7px);z-index:20;margin:0 0 12px;padding:6px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-sm);overflow-x:auto}.settings-nav a{display:inline-flex;align-items:center;gap:6px;min-height:31px;padding:6px 9px;border-radius:7px;color:var(--ink-2);font-size:10.8px;font-weight:750;white-space:nowrap}.settings-nav a:hover{background:#f1f7fc;color:var(--blue-700)}.settings-stack{display:grid;gap:11px}.settings-stack .settings-card{margin-bottom:0}.settings-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-split>form+form{border-left:1px solid var(--line);padding-left:18px}.settings-card:target{border-color:#9cc9ed;box-shadow:0 0 0 3px rgba(11,132,255,.06)}
@media(max-width:900px){.settings-split{grid-template-columns:1fr}.settings-split>form+form{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:16px}.settings-nav{top:64px}}

/* v6 flexible billing */
.billing-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.billing-choice{border:1px solid var(--border,#dce5ee);border-radius:14px;padding:16px;background:#fff;min-width:0}.billing-choice.accent{background:linear-gradient(180deg,#fffaf5 0,#fff 40%);border-color:#f5d5bd}.choice-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.choice-head h3{margin:0 0 3px;font-size:16px}.choice-head p{margin:0;color:#708298;font-size:12.5px;line-height:1.45}.choice-icon{width:32px;height:32px;border-radius:9px;background:#eef5ff;color:#1269d3;display:grid;place-items:center;flex:0 0 auto}.billing-choice.accent .choice-icon{background:#fff0e5;color:#f26922}.compact-list{max-height:330px;overflow:auto}.mini-alert{padding:9px 10px;font-size:12px}.bulk-amount{width:132px!important;min-width:110px!important;height:34px!important;padding:6px 9px!important;font-size:12px!important}.detail-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.detail-tile{background:#f7f9fc;border:1px solid #e2e9f0;border-radius:10px;padding:10px;min-width:0}.detail-tile small{display:block;color:#718196;font-size:10px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.detail-tile strong{font-size:13px;color:#102f55;word-break:break-word}
@media(max-width:900px){.billing-choice-grid{grid-template-columns:1fr}.detail-strip{grid-template-columns:1fr 1fr}.bulk-bar .bulk-amount{width:100%!important}}
@media(max-width:600px){.detail-strip{grid-template-columns:1fr}.billing-choice{padding:12px}}


/* v7 secure login + inactivity lock */
.auth-v7{background:#eaf0f6;padding:18px}.auth-v7:before{background:radial-gradient(circle at 10% 10%,rgba(18,105,211,.14),transparent 28%),radial-gradient(circle at 90% 90%,rgba(248,102,24,.10),transparent 24%),linear-gradient(135deg,#eef4fa,#f7f9fc)}
.auth-stage{position:relative;width:min(1080px,100%);min-height:620px;display:grid;grid-template-columns:1.08fr .92fr;background:#fff;border:1px solid #dbe5ee;border-radius:24px;overflow:hidden;box-shadow:0 30px 90px rgba(8,42,74,.18)}
.auth-showcase{position:relative;padding:42px 46px;background:linear-gradient(145deg,#072844 0%,#0b3158 54%,#0b4779 100%);color:#fff;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.auth-showcase:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,black,transparent 78%)}.auth-showcase:after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;right:-180px;top:-130px;background:rgba(70,169,255,.11);box-shadow:0 0 0 55px rgba(255,255,255,.025)}
.auth-brand-v7,.auth-message,.auth-mini-grid,.auth-secure-note{position:relative;z-index:1}.auth-brand-v7{display:flex;align-items:center;gap:13px}.auth-brand-v7 img{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:16px;padding:5px;box-shadow:0 10px 25px rgba(0,0,0,.14)}.auth-brand-v7 strong{font-size:21px;display:block;letter-spacing:.03em}.auth-brand-v7 span{font-size:11px;color:#bcd1e4}.eyebrow.light{color:#83c6ff}.auth-message{max-width:480px}.auth-message h1{font-size:36px;line-height:1.13;margin:7px 0 14px;letter-spacing:-.025em}.auth-message p{color:#c4d7e8;line-height:1.65;max-width:450px}.auth-mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.auth-mini-grid>div{padding:12px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.055);border-radius:11px}.auth-mini-grid strong{display:block;font-size:11px}.auth-mini-grid span{display:block;color:#abc5da;font-size:9.5px;margin-top:3px}.auth-secure-note{display:flex;align-items:center;gap:6px;color:#aac5da;font-size:10px}
.auth-login-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:42px;background:#fff}.auth-card-v7{width:min(390px,100%)}.auth-mobile-brand{display:none}.auth-card-v7 h2{font-size:27px;letter-spacing:-.02em;margin:13px 0 5px;color:#102f55}.auth-card-v7>p{margin:0 0 22px;color:var(--muted)}.login-form-v7{display:grid;gap:13px}.field-with-icon{position:relative;margin-top:5px}.field-with-icon>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#6f8498;pointer-events:none}.field-with-icon input{margin:0;padding-left:38px;padding-right:42px;min-height:46px;background:#fbfdff}.password-peek{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;background:transparent;color:#6f8498;border-radius:8px;display:grid;place-items:center}.password-peek:hover,.password-peek.active{background:#eef5fb;color:#1269d3}.login-submit{min-height:46px;justify-content:center;font-size:12px}.auth-help{margin-top:24px;padding-top:17px;border-top:1px solid #e8eef4}.auth-help span{display:block;font-size:10.5px;font-weight:750;color:#415d78}.auth-help small{display:block;margin-top:3px;color:#8292a3}.auth-copyright{margin-top:15px;font-size:9.5px;color:#8b99a8;text-align:center}
.session-lock{position:fixed;inset:0;z-index:9999;background:rgba(4,19,34,.78);backdrop-filter:blur(12px);display:none;align-items:center;justify-content:center;padding:18px}.session-lock.show{display:flex}.session-is-locked{overflow:hidden!important}.session-lock-card,.lock-page-card{width:min(430px,100%);background:#fff;border:1px solid #dce6ef;border-radius:20px;padding:27px;box-shadow:0 28px 90px rgba(0,0,0,.28)}.lock-brand{display:flex;align-items:center;gap:10px;padding-bottom:16px;border-bottom:1px solid #e8eef4}.lock-brand img{width:46px;height:46px;object-fit:contain;border-radius:11px;background:#fff;border:1px solid #e0e7ee}.lock-brand strong{display:block;color:#102f55;font-size:13px}.lock-brand span{display:block;color:#77899b;font-size:9.5px;margin-top:2px}.lock-symbol{width:48px;height:48px;margin:22px auto 13px;display:grid;place-items:center;border-radius:14px;background:#edf5fc;color:#0b5fa7;border:1px solid #d9e8f4}.session-lock-card h2,.lock-page-card h1{text-align:center;margin:0 0 7px;color:#102f55;font-size:23px}.session-lock-card>p,.lock-page-card>p{text-align:center;color:#708298;line-height:1.55;margin:0 0 18px;font-size:11.5px}.session-lock-card form,.lock-page-card form{display:grid;gap:11px}.lock-error{min-height:17px;color:#bd2731;font-size:10.5px;text-align:center}.lock-signout{display:block;text-align:center;margin-top:14px;color:#61788f;font-size:10.5px}.lock-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#eaf1f7,#f8fafc)}.lock-page-card .eyebrow{text-align:center;margin-top:16px}.lock-page-card .lock-symbol{margin-top:18px}.security-preview{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid #dde8f1;border-radius:10px;background:#f8fbfe}.security-preview-icon{width:35px;height:35px;border-radius:9px;display:grid;place-items:center;background:#eaf3fb;color:#0d66b1;flex:0 0 auto}.security-preview strong{display:block;font-size:11px}.security-preview span{display:block;font-size:9.5px;color:#708298;line-height:1.45;margin-top:3px}
.bulk-danger-option{color:#b4232d;font-weight:750}.bulk-bar select:has(option:checked[value="delete"]){border-color:#efb6ba;background:#fff7f7}.danger-note{font-size:9.5px;color:#8c3440}
@media(max-width:760px){.auth-v7{padding:0;background:#fff}.auth-stage{min-height:100vh;border:0;border-radius:0;display:block;box-shadow:none}.auth-showcase{display:none}.auth-login-panel{min-height:100vh;padding:26px 22px}.auth-mobile-brand{display:flex;align-items:center;gap:10px;margin-bottom:26px}.auth-mobile-brand img{width:52px;height:52px;object-fit:contain;border-radius:12px;border:1px solid #dfe8ef}.auth-mobile-brand strong{display:block;color:#102f55;font-size:16px}.auth-mobile-brand span{display:block;color:#7d8ea0;font-size:10px}.auth-card-v7 h2{font-size:25px}.session-lock-card,.lock-page-card{padding:22px;border-radius:16px}}
