:root{--ink:#14123b;--navy:#1e1b5e;--royal:#4f46e5;--teal:#0d9488;--orange:#ea580c;--red:#e11d48;--line:#dcd9f0;--bg:#f4f3fb;--text:#1c1a3a;--muted:#6b6a8a;--card:#fff;--ring:#e8e6f6;--font:'Plus Jakarta Sans','Segoe UI',system-ui,-apple-system,sans-serif}
*{-webkit-tap-highlight-color:transparent}
body{background:var(--bg);font-family:var(--font);color:var(--text);margin:0;font-size:.94rem;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5,h6{font-family:var(--font);letter-spacing:-.01em}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #a78bfa;outline-offset:2px}

/* ---------- Sidebar ---------- */
#side{position:fixed;top:0;bottom:0;left:0;width:264px;background:linear-gradient(190deg,#14123b 0%,#1e1a5a 55%,#2b1d6b 100%);padding:16px 14px 24px;overflow:auto;z-index:50;transition:left .25s;scrollbar-width:thin;scrollbar-color:#3d3892 transparent}
#side .brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;padding:6px 8px 20px;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.08)}
#side .mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:1.4rem;color:#fff;background:linear-gradient(135deg,#8b5cf6,#ec4899 60%,#f59e0b);box-shadow:0 8px 20px rgba(139,92,246,.45)}
#side .bn{font-weight:800;font-size:1.3rem;letter-spacing:.06em;line-height:1}
#side .bn small{display:block;font-weight:500;font-size:.78rem;letter-spacing:.14em;color:#b5b0ee;margin-top:4px}
#side nav a{display:flex;align-items:center;gap:12px;color:#cfcdf3;padding:5px 10px;border-radius:14px;text-decoration:none;margin-bottom:2px;font-weight:500;font-size:.92rem;transition:background .15s,color .15s}
#side .ni{width:32px;height:32px;border-radius:11px;display:grid;place-items:center;font-size:1.02rem;color:var(--h,#fff);background:rgba(255,255,255,.07);flex:none;transition:background .15s,color .15s,transform .15s}
#side nav a:hover{background:rgba(255,255,255,.08);color:#fff}
#side nav a.on{background:linear-gradient(90deg,rgba(167,139,250,.38),rgba(167,139,250,.07));color:#fff;font-weight:700}
#side nav a.on .ni{background:var(--h);color:#14123b;box-shadow:0 6px 16px rgba(0,0,0,.28)}
#side .sec{color:#8f8ad0;font-size:.78rem;font-weight:600;padding:12px 12px 4px}
#scrim{display:none}

/* ---------- Header ---------- */
main{margin-left:264px}
header{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--ring);position:sticky;top:0;z-index:40}
.menu{display:none;border:0;background:#efedfb;color:var(--navy);width:40px;height:40px;border-radius:12px;font-size:1.4rem;line-height:1}
.gs{position:relative;flex:1;max-width:420px}.gs i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#8a88b0}
.gs .form-control{border-radius:14px;border:1px solid var(--ring);background:#f7f6fd;padding:10px 14px 10px 40px;font-family:var(--font);font-size:.9rem}
.gs .form-control:focus{background:#fff;border-color:#a78bfa;box-shadow:0 0 0 4px rgba(167,139,250,.2)}
.avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#7c3aed,#ec4899)}
.who{font-weight:600;font-size:.9rem}
.hbtn{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#f1effb;color:var(--navy);text-decoration:none;font-size:1.05rem;transition:background .15s}
.hbtn:hover{background:#e3dffa;color:var(--navy)}.hbtn.out{color:#be123c;background:#ffe4ea}.hbtn.out:hover{background:#ffd0da}
.content{padding:26px 28px 40px;max-width:1700px}

/* ---------- Shared components (used on every page) ---------- */
.cardx{background:var(--card);border-radius:20px;padding:22px;box-shadow:0 1px 2px rgba(20,18,59,.04),0 10px 30px rgba(20,18,59,.06);border:1px solid var(--ring)}
.cardx h6{color:var(--ink);font-weight:700;font-size:1rem;margin:0}
.btn-heera{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border:0;border-radius:12px;font-weight:600;box-shadow:0 6px 16px rgba(79,70,229,.28)}.btn-heera:hover{color:#fff;filter:brightness(1.08)}
.tbl-wrap{overflow-x:auto;border-radius:16px;border:1px solid var(--line);background:#fff}
.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{border:1px solid #e6e4f4;padding:11px 14px;white-space:nowrap}
.tbl thead th{background:var(--navy);color:#fff;border-color:#34308a;font-weight:600}.tbl tbody tr:nth-child(even){background:#f7f6fd}.tbl tbody tr:hover{background:#edeafb}
.bdg{padding:4px 11px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:capitalize}
.b-green{background:#d1fae5;color:#047857}.b-red{background:#ffe4e6;color:#be123c}.b-orange{background:#ffedd5;color:#c2410c}.b-blue{background:#dbeafe;color:#1d4ed8}
/* simple stat boxes still used by other pages */
.kpi{display:flex;gap:14px;align-items:center;background:#fff;border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(20,18,59,.06);border:1px solid var(--ring);border-left:5px solid var(--c)}
.k-navy{--c:var(--navy)}.k-blue{--c:#2563eb}.k-teal{--c:var(--teal)}.k-red{--c:var(--red)}.k-orange{--c:var(--orange)}
.kpi .ic{width:48px;height:48px;border-radius:14px;background:color-mix(in srgb,var(--c) 12%,#fff);color:var(--c);display:grid;place-items:center;font-size:1.4rem}
.kt{font-size:.8rem;color:var(--muted)}.kv{font-size:1.35rem;font-weight:800;color:var(--ink)}.ks{font-size:.72rem;color:#9a98bb}
.login-bg{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#14123b,#4f46e5 70%,#7c3aed)}
.login-card{background:#fff;border-radius:24px;padding:36px;width:min(400px,92vw);box-shadow:0 24px 60px rgba(0,0,0,.35)}.brand-lg{font-size:1.6rem;font-weight:800;color:var(--navy)}.brand-lg i{color:#7c3aed}

/* ---------- Dashboard ---------- */
.hello{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.hello h1{font-size:1.85rem;font-weight:800;margin:0;color:var(--ink)}.hello p{margin:4px 0 0;color:var(--muted)}
.qa{display:flex;flex-wrap:wrap;gap:8px}
.qa a{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ring);border-radius:14px;padding:8px 14px 8px 8px;color:var(--ink);text-decoration:none;font-weight:600;font-size:.86rem;box-shadow:0 2px 6px rgba(20,18,59,.05);transition:border-color .15s,box-shadow .15s}
.qa a:hover{border-color:var(--c);box-shadow:0 6px 16px rgba(20,18,59,.1);color:var(--ink)}
.qa i{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:#fff;background:var(--c);font-size:.95rem}

.tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(176px,auto);gap:16px;margin-bottom:22px}
.tile{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:18px;border-radius:24px;color:#fff;text-decoration:none;background:linear-gradient(145deg,var(--a),var(--b));box-shadow:0 14px 28px -10px var(--a);transition:filter .15s,transform .15s;animation:rise .5s both;animation-delay:calc(var(--n)*45ms)}
.tile:hover{color:#fff;filter:brightness(1.07);transform:translateY(-2px)}
.tile .top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}
.tile .chip{width:46px;height:46px;border-radius:15px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:1.35rem;backdrop-filter:blur(2px)}
.tile .go{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;font-size:.85rem}
.tile .mk{position:absolute;right:-14px;bottom:-22px;font-size:7.2rem;line-height:1;opacity:.13;transform:rotate(-12deg)}
.tile .lb{font-weight:600;font-size:.88rem;opacity:.95;position:relative;z-index:1}
.tile .vl{font-weight:800;font-size:clamp(1.4rem,1.1vw + .95rem,2rem);line-height:1.1;white-space:nowrap;letter-spacing:-.02em;position:relative;z-index:1;font-variant-numeric:tabular-nums}
.tile .sb{font-size:.78rem;opacity:.9;margin-top:2px;position:relative;z-index:1}
.tile.wide{grid-column:span 2}.tile.wide .spark{position:absolute;left:46%;right:12px;bottom:12px;height:58%!important;width:auto!important}
.tile.wide .mk{display:none}
.t-violet{--a:#5b21b6;--b:#7c3aed}.t-sky{--a:#1d4ed8;--b:#3b82f6}.t-green{--a:#047857;--b:#10b981;}.t-orange{--a:#c2410c;--b:#f97316}
.t-indigo{--a:#3730a3;--b:#6366f1}.t-rose{--a:#be123c;--b:#f43f5e}.t-fuchsia{--a:#a21caf;--b:#d946ef}.t-teal{--a:#0f766e;--b:#14b8a6}
.t-cyan{--a:#0e7490;--b:#06b6d4}.t-amber{--a:#b45309;--b:#f59e0b}.t-slate{--a:#334155;--b:#64748b}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.ch{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.ch .ci{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:1.1rem;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff)}
.ch small{display:block;color:var(--muted);font-size:.78rem;margin-top:1px}
.dash>[class*=col-]>.cardx{height:100%}
.box{position:relative;height:300px}.box.sm{height:240px}
.empty{height:240px;border:2px dashed var(--ring);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;color:var(--muted);padding:16px}
.empty i{font-size:1.9rem;color:#b9b5e6}.empty b{color:var(--ink)}.empty span{font-size:.82rem}
.lst{width:100%}.lst td{padding:11px 6px;border-top:1px solid var(--ring);vertical-align:middle}.lst tr:first-child td{border-top:0}
.lst .nm{font-weight:700;color:var(--ink)}.lst .sub{font-size:.78rem;color:var(--muted)}.lst .amt{text-align:right;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.lst a{color:inherit;text-decoration:none}.lst a:hover .nm{color:#6d28d9}
.dd{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.74rem;font-weight:700;white-space:nowrap}
.dd.l1{background:#ffedd5;color:#c2410c}.dd.l2{background:#fee2e2;color:#b91c1c}.dd.l3{background:#ffe4e6;color:#9f1239}

@media(max-width:1399px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:991px){
 #side{left:-280px;box-shadow:none}body.nav-open #side{left:0;box-shadow:12px 0 40px rgba(0,0,0,.35)}
 body.nav-open #scrim{display:block;position:fixed;inset:0;background:rgba(10,8,40,.5);z-index:45}
 main{margin-left:0}.menu{display:grid;place-items:center}.content{padding:18px 14px 32px}header{padding:10px 14px}
 .tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hello h1{font-size:1.5rem}}
@media(max-width:640px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{padding:14px;border-radius:20px}.tile .chip{width:40px;height:40px}.tile .mk{font-size:5.5rem}}
@media(prefers-reduced-motion:reduce){.tile{animation:none}.tile:hover{transform:none}}
@media print{#side,header,.btn,form,.qa{display:none!important}main{margin:0}}
@media print{.np{display:none!important}}
