/* ══ CLOUDAEON ITSM — MAIN CSS ══════════════════════════════════════════════ */
:root {
  --bg:#f5f3ff;--sb:#fff;--card:#fff;--card2:#faf8ff;--card3:#f0eeff;
  --border:#ede9fe;--border2:#ddd6fe;
  --txt:#1e1b4b;--txt2:#3730a3;--txt3:#6b7280;--txt4:#9ca3af;
  --primary:#7c3aed;--primary-h:#6d28d9;--primary-lt:#f5f3ff;
  --success:#22c55e;--success-lt:#f0fdf4;--success-bd:#bbf7d0;
  --warn:#f59e0b;--warn-lt:#fffbeb;--warn-bd:#fde68a;
  --danger:#ef4444;--danger-lt:#fef2f2;--danger-bd:#fecaca;
  --purple:#8b5cf6;--purple-lt:#ede9fe;
  --teal:#06b6d4;--orange:#f97316;
  --sb-w:250px;--top:64px;
  --r:10px;--r2:14px;--r3:18px;
  --sh:0 2px 8px rgba(124,58,237,.06);
  --sh2:0 6px 24px rgba(124,58,237,.10);
  --sh3:0 16px 48px rgba(124,58,237,.14);
  --f:'Plus Jakarta Sans',system-ui,sans-serif;
  --fm:'JetBrains Mono',monospace;
}
[data-theme="dark"] {
  --bg:#100a24;--sb:#1a1035;--card:#1a1035;--card2:#1f153f;--card3:#261b4d;
  --border:#2e1f5c;--border2:#3d2b78;
  --txt:#ede9fe;--txt2:#c4b5fd;--txt3:#a78bfa;--txt4:#7c6eaa;
  --primary:#a78bfa;--primary-h:#8b5cf6;--primary-lt:rgba(167,139,250,.15);
  --success-lt:rgba(34,197,94,.12);--warn-lt:rgba(245,158,11,.12);--danger-lt:rgba(239,68,68,.12);
}

/* ── Dark-theme safety net ───────────────────────────────────────────────────
   Many widgets use hard-coded inline colours (built in JS) that don't follow
   the theme variables. These overrides remap the common hard-coded values so
   dark mode stays readable. !important is required to beat inline styles. */
[data-theme="dark"] [style*="color:#1e1b4b"]{color:#ede9fe!important}
[data-theme="dark"] [style*="color:#1e293b"]{color:#e7e0fb!important}
[data-theme="dark"] [style*="color:#1f2937"]{color:#e7e0fb!important}
[data-theme="dark"] [style*="color:#111827"]{color:#f1ecff!important}
[data-theme="dark"] [style*="color:#312e81"]{color:#c4b5fd!important}
[data-theme="dark"] [style*="color:#3730a3"]{color:#c4b5fd!important}
[data-theme="dark"] [style*="color:#4c1d95"]{color:#c4b5fd!important}
[data-theme="dark"] [style*="color:#374151"]{color:#cbd5e1!important}
[data-theme="dark"] [style*="color:#4b5563"]{color:#aeb6c4!important}
[data-theme="dark"] [style*="color:#6b7280"]{color:#9aa3b2!important}
/* Light surfaces → dark */
[data-theme="dark"] [style*="background:#f5f3ff"]{background:rgba(167,139,250,.13)!important}
[data-theme="dark"] [style*="background:#faf8ff"]{background:#1f153f!important}
[data-theme="dark"] [style*="background:#f9f7ff"]{background:#1f153f!important}
[data-theme="dark"] [style*="background:#f0eeff"]{background:#261b4d!important}
[data-theme="dark"] [style*="background:#f3f0ff"]{background:#261b4d!important}
[data-theme="dark"] [style*="background:#ede9fe"]{background:#2e1f5c!important}
[data-theme="dark"] [style*="background:#fff;"]{background:#1a1035!important}
[data-theme="dark"] [style*="background:#ffffff"]{background:#1a1035!important}
/* Neutral light surfaces (grey/white cards & table headers) → dark */
[data-theme="dark"] [style*="background:#f9fafb"]{background:#1f153f!important}
[data-theme="dark"] [style*="background:#f8fafc"]{background:#1f153f!important}
[data-theme="dark"] [style*="background:#f3f4f6"]{background:#231843!important}
[data-theme="dark"] [style*="background:#f9f7ff"]{background:#1f153f!important}
[data-theme="dark"] [style*="background:#fafafa"]{background:#1f153f!important}
/* Status-tint surfaces → matching dark translucent tint */
[data-theme="dark"] [style*="background:#fef2f2"]{background:rgba(239,68,68,.14)!important}
[data-theme="dark"] [style*="background:#fee2e2"]{background:rgba(239,68,68,.14)!important}
[data-theme="dark"] [style*="background:#f0fdf4"]{background:rgba(34,197,94,.14)!important}
[data-theme="dark"] [style*="background:#dcfce7"]{background:rgba(34,197,94,.14)!important}
[data-theme="dark"] [style*="background:#ecfdf5"]{background:rgba(34,197,94,.14)!important}
[data-theme="dark"] [style*="background:#fffbeb"]{background:rgba(245,158,11,.14)!important}
[data-theme="dark"] [style*="background:#fef3c7"]{background:rgba(245,158,11,.14)!important}
[data-theme="dark"] [style*="background:#fff7ed"]{background:rgba(249,115,22,.14)!important}
[data-theme="dark"] [style*="background:#eff6ff"]{background:rgba(59,130,246,.14)!important}
[data-theme="dark"] [style*="background:#ecfeff"]{background:rgba(6,182,212,.14)!important}
[data-theme="dark"] [style*="background:#cffafe"]{background:rgba(6,182,212,.14)!important}
[data-theme="dark"] [style*="background:#ede9fe"]{background:#2e1f5c!important}
/* Dark saturated status text → lighter so it reads on dark tints */
[data-theme="dark"] [style*="color:#b91c1c"]{color:#fca5a5!important}
[data-theme="dark"] [style*="color:#991b1b"]{color:#fca5a5!important}
[data-theme="dark"] [style*="color:#dc2626"]{color:#fca5a5!important}
[data-theme="dark"] [style*="color:#9f1239"]{color:#fca5a5!important}
[data-theme="dark"] [style*="color:#15803d"]{color:#6ee7b7!important}
[data-theme="dark"] [style*="color:#166534"]{color:#6ee7b7!important}
[data-theme="dark"] [style*="color:#065f46"]{color:#6ee7b7!important}
[data-theme="dark"] [style*="color:#92400e"]{color:#fcd34d!important}
[data-theme="dark"] [style*="color:#b45309"]{color:#fcd34d!important}
[data-theme="dark"] [style*="color:#854d0e"]{color:#fcd34d!important}
[data-theme="dark"] [style*="color:#1e40af"]{color:#93c5fd!important}
[data-theme="dark"] [style*="color:#1d4ed8"]{color:#93c5fd!important}
[data-theme="dark"] [style*="color:#0369a1"]{color:#7dd3fc!important}
/* Light borders → dark */
[data-theme="dark"] [style*="solid #e9d5ff"]{border-color:#3d2b78!important}
[data-theme="dark"] [style*="solid #ddd6fe"]{border-color:#3d2b78!important}
[data-theme="dark"] [style*="solid #ede9fe"]{border-color:#2e1f5c!important}
[data-theme="dark"] [style*="solid #e5deff"]{border-color:#3d2b78!important}
[data-theme="dark"] [style*="solid #f3f0ff"]{border-color:#2e1f5c!important}
[data-theme="dark"] [style*="solid #e5e7eb"]{border-color:#2e1f5c!important}
[data-theme="dark"] [style*="solid #f3f4f6"]{border-color:#2e1f5c!important}
[data-theme="dark"] [style*="solid #bbf7d0"]{border-color:rgba(34,197,94,.35)!important}
[data-theme="dark"] [style*="solid #fecaca"]{border-color:rgba(239,68,68,.35)!important}
[data-theme="dark"] [style*="solid #fed7aa"]{border-color:rgba(249,115,22,.35)!important}
[data-theme="dark"] [style*="solid #fde68a"]{border-color:rgba(245,158,11,.35)!important}
[data-theme="dark"] [style*="solid #bfdbfe"]{border-color:rgba(59,130,246,.35)!important}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;width:100%;font-family:var(--f);background:var(--bg);color:var(--txt);font-size:13.5px;-webkit-font-smoothing:antialiased}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

/* ── LAYOUT ── */
.layout{display:flex;height:100vh;width:100%;overflow:hidden}
.main{display:flex;flex-direction:column;flex:1;overflow:hidden;min-width:0}
.content{flex:1;overflow-y:auto;padding:20px;background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--border2) transparent}
.page{animation:fadeUp .25s ease;display:block}

/* ── SIDEBAR ── */
.sidebar{width:var(--sb-w);background:var(--sb);display:flex;flex-direction:column;flex-shrink:0;border-right:1.5px solid var(--border);box-shadow:2px 0 16px rgba(124,58,237,.06);z-index:100;overflow:hidden}
.sb-brand{padding:18px;border-bottom:2px solid var(--border);display:flex;align-items:center}
.sb-logo{display:flex;align-items:center;gap:10px}
.sb-brand-txt{font-size:14px;font-weight:800;color:var(--txt);letter-spacing:-.02em}
.sb-brand-sub{font-family:var(--fm);font-size:7.5px;color:var(--primary);text-transform:uppercase;letter-spacing:.18em;margin-top:3px;font-weight:600}
.sb-nav{flex:1;overflow-y:auto;padding:10px 0;scrollbar-width:none}
.sb-nav::-webkit-scrollbar{display:none}
.sb-sec{padding:14px 20px 4px;font-family:var(--fm);font-size:8px;font-weight:700;color:var(--txt4);text-transform:uppercase;letter-spacing:.22em}
.ni{display:flex;align-items:center;gap:10px;padding:9px 14px;margin:2px 8px;cursor:pointer;border-radius:10px;color:var(--txt3);font-size:12.5px;font-weight:500;transition:all .16s;user-select:none}
.ni:hover{color:var(--primary);background:var(--primary-lt)}
.ni.active{color:#fff;background:linear-gradient(135deg,#7c3aed,#6d28d9);font-weight:600;box-shadow:0 4px 14px rgba(124,58,237,.35)}
.ni .ico{font-size:14px;flex-shrink:0;width:20px;text-align:center}
.sb-foot{padding:12px 14px;border-top:1.5px solid var(--border)}
.sb-user{display:flex;align-items:center;gap:9px;background:var(--card2);border-radius:12px;padding:9px 11px;border:1.5px solid var(--border)}
.sb-av{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;color:#fff;flex-shrink:0}
.sb-nm{font-size:12px;font-weight:700;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.sb-rl{font-family:var(--fm);font-size:9px;color:var(--txt4);text-transform:uppercase;letter-spacing:.08em;margin-top:1px}
.sb-out{background:transparent;border:1.5px solid var(--border);border-radius:8px;padding:6px 8px;cursor:pointer;color:var(--txt3);font-size:13px;transition:all .14s;flex-shrink:0}
.sb-out:hover{background:var(--danger-lt);border-color:var(--danger-bd);color:var(--danger)}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99}
.sb-overlay.show{display:block}
.ham-btn{display:none;width:36px;height:36px;background:var(--card2);border:1.5px solid var(--border);border-radius:var(--r);align-items:center;justify-content:center;cursor:pointer;font-size:18px;flex-shrink:0}

/* ── TOPBAR ── */
.topbar{height:var(--top);background:var(--sb);border-bottom:1.5px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:12px;flex-shrink:0;box-shadow:0 1px 0 var(--border)}
.tb-title{font-size:16px;font-weight:800;color:var(--txt);letter-spacing:-.02em}
.tb-sub{font-size:11px;color:var(--txt4);margin-top:1px}
.search-w{display:flex;align-items:center;gap:8px;background:var(--card2);border:1.5px solid var(--border);border-radius:var(--r);padding:7px 12px;transition:all .16s;width:220px}
.search-w:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(124,58,237,.12);background:var(--card);width:260px}
.search-inp{border:none;background:transparent;outline:none;font-size:12.5px;font-family:var(--f);color:var(--txt);flex:1}
.icon-btn{width:38px;height:38px;border-radius:50%;background:var(--card2);border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:15px;position:relative;transition:all .14s;box-shadow:0 1px 4px rgba(124,58,237,.08)}
.icon-btn:hover{border-color:var(--primary);background:var(--primary-lt)}
.notif-dot{width:8px;height:8px;background:#ef4444;border-radius:50%;position:absolute;top:5px;right:5px;border:2px solid var(--sb);animation:pulse 2s infinite}
.d-none{display:none!important}

/* ── NOTIFICATIONS ── */
.notif-panel{position:absolute;top:calc(var(--top) + 8px);right:16px;width:360px;background:var(--card);border:1.5px solid var(--border);border-radius:16px;box-shadow:var(--sh3);z-index:200;display:none;overflow:hidden}
.notif-panel.open{display:block;animation:fadeIn .18s ease}
.np-hd{padding:14px 16px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;gap:8px}
.np-hd-title{font-weight:800;font-size:13.5px;flex:1}

/* ── CARDS ── */
.card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);overflow:hidden;box-shadow:var(--sh);margin-bottom:16px}
.card.nmb{margin-bottom:0}
.ch{padding:13px 18px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--card)}
.cht{font-size:13px;font-weight:700;flex:1;display:flex;align-items:center;gap:8px;color:var(--txt)}
.cht::before{content:'';width:4px;height:16px;background:linear-gradient(180deg,var(--primary),#a78bfa);border-radius:4px;flex-shrink:0}
.cnt{font-family:var(--fm);font-size:10px;color:var(--primary);padding:3px 10px;background:var(--primary-lt);border:1.5px solid var(--border2);border-radius:20px;font-weight:700}

/* ── STATS GRID ── */
.sgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:18px}
.stat{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);padding:16px;text-align:center;box-shadow:var(--sh);animation:fadeUp .3s ease both}
.stat-ico{font-size:22px;margin-bottom:8px;opacity:.8}
.stat-lbl{font-size:10.5px;color:var(--txt3);font-family:var(--fm);text-transform:uppercase;letter-spacing:.1em;margin-bottom:4px}
.stat-val{font-size:24px;font-weight:800;letter-spacing:-.03em;color:var(--txt)}
.stat-note{font-size:10.5px;color:var(--txt3);margin-top:4px}

/* ── ASSET DASHBOARD HERO CARDS ── */
.ad-hero-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-bottom:18px}
.ad-hero-card{background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:18px 16px;position:relative;overflow:hidden;box-shadow:var(--sh);transition:all .2s;animation:fadeUp .3s ease both;cursor:default}
.ad-hero-card:hover{transform:translateY(-3px);box-shadow:var(--sh2);border-color:var(--border2)}
.ad-hero-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px}
.ad-hero-val{font-size:26px;font-weight:800;color:var(--txt);letter-spacing:-.03em;line-height:1}
.ad-hero-lbl{font-size:11px;color:var(--txt3);margin-top:5px;font-weight:500}
.ad-hero-bar{position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:0 0 16px 16px}

/* ── BUTTONS ── */
.btn{padding:7px 16px;border-radius:var(--r);font-size:12.5px;font-weight:600;font-family:var(--f);cursor:pointer;border:1.5px solid transparent;transition:all .16s;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.btn-p{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;border-color:transparent;box-shadow:0 2px 8px rgba(124,58,237,.28)}
.btn-p:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6);box-shadow:0 4px 16px rgba(124,58,237,.36);transform:translateY(-1px)}
.btn-g{background:var(--card);color:var(--txt2);border-color:var(--border2)}
.btn-g:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-lt)}
.btn-s{background:var(--success-lt);color:#15803d;border-color:var(--success-bd)}
.btn-s:hover{background:var(--success-lt);filter:brightness(1.06)}
.btn-d{background:var(--danger-lt);color:var(--danger);border-color:var(--danger-bd)}
.btn-d:hover{background:var(--danger-lt);filter:brightness(1.06)}
.btn-sm{padding:4px 12px;font-size:11.5px}
.btn-xs{padding:2px 8px;font-size:10.5px}
.ib{background:transparent;border:1px solid var(--border);border-radius:6px;padding:4px 8px;cursor:pointer;font-size:12px;transition:all .12s;color:var(--txt3)}
.ib:hover{background:var(--primary-lt);border-color:var(--primary);color:var(--primary)}
.ib.del:hover{background:var(--danger-lt);border-color:var(--danger-bd);color:var(--danger)}

/* ── FORMS ── */
.finp,.fsel,.ftxt{width:100%;padding:9px 12px;border:1.5px solid var(--border);border-radius:var(--r);font-family:var(--f);font-size:12.5px;background:var(--card);color:var(--txt);transition:all .14s;outline:none}
.finp:focus,.fsel:focus,.ftxt:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(124,58,237,.12);background:var(--card)}
.ftxt{resize:vertical;min-height:70px}
.flbl{font-size:11.5px;font-weight:600;color:var(--txt2);display:block;margin-bottom:5px}
.req-star{color:var(--danger);margin-left:6px;font-weight:800}
.fg{display:flex;flex-direction:column}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fg.s2{grid-column:span 2}

/* ── MODALS ── */
.overlay{display:none;position:fixed;inset:0;background:rgba(15,10,36,.6);z-index:500;align-items:center;justify-content:center;padding:8px;backdrop-filter:blur(4px)}
.overlay.open{display:flex;animation:fadeIn .18s ease}
.modal{background:var(--card);border-radius:var(--r3);width:100%;box-shadow:var(--sh3);overflow:hidden;max-height:96vh;height:auto;display:flex;flex-direction:column}
.modal-sm{max-width:440px}
.modal-md{max-width:600px}
.modal-lg{max-width:820px}
.pm-item{padding:11px 15px;font-size:13px;font-weight:600;color:var(--txt,#374151);cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .12s}
.pm-item:hover{background:var(--primary-lt)}
.mhd{padding:16px 20px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--primary-lt),var(--card))}
.mhd-t{font-size:14px;font-weight:800;flex:1;color:var(--txt)}
.mcls{background:transparent;border:none;cursor:pointer;font-size:18px;color:var(--txt3);padding:2px;border-radius:6px;transition:all .12s;line-height:1}
.mcls:hover{color:var(--danger);background:var(--danger-lt)}
.mbody{padding:18px 20px;overflow-y:auto;flex:1}
.mft{padding:14px 20px;border-top:1.5px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:var(--card2)}

/* ── TABLES ── */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{padding:10px 14px;text-align:left;font-size:11px;font-weight:700;color:var(--txt3);font-family:var(--fm);text-transform:uppercase;letter-spacing:.08em;background:var(--card2);border-bottom:1.5px solid var(--border);white-space:nowrap}
td{padding:11px 14px;border-bottom:1px solid var(--border);font-size:12.5px;color:var(--txt);vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--primary-lt)}
.ra{text-align:right}

/* ── CHIPS ── */
.chips{display:flex;gap:5px;flex-wrap:wrap}
.chip{padding:5px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--card);font-size:11.5px;font-weight:600;color:var(--txt3);cursor:pointer;transition:all .14s;font-family:var(--fm)}
.chip.on{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px rgba(124,58,237,.28)}

/* ── TAGS & PILLS ── */
.tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:6px;font-size:10.5px;font-weight:600;background:var(--primary-lt);color:var(--primary);border:1px solid var(--border2);white-space:nowrap;font-family:var(--fm)}
.id-c{font-family:var(--fm);font-size:10.5px;font-weight:700;color:var(--primary);background:var(--primary-lt);border:1px solid var(--border2);padding:2px 8px;border-radius:6px;white-space:nowrap}
.dim{color:var(--txt4);font-size:11.5px}
.fw6{font-weight:700}
.f12{font-size:12px}
.f13{font-size:13px}
.blue{color:#2563eb}
.green{color:#22c55e}
.red{color:#ef4444}

/* ── WELCOME BANNER ── */
.wb{background:linear-gradient(135deg,#ede9fe 0%,#e8e0ff 40%,#ddd5ff 100%);border-radius:var(--r3);padding:24px 28px;display:flex;align-items:center;gap:20px;margin-bottom:20px;box-shadow:0 4px 24px rgba(124,58,237,.10);position:relative;overflow:hidden;min-height:110px;border:1.5px solid #d8ccff}
.wb-icon-wrap{width:56px;height:56px;border-radius:16px;background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;border:1.5px solid rgba(124,58,237,.15);box-shadow:0 2px 12px rgba(124,58,237,.12)}
.wb-body{flex:1}
.wb-h{font-size:20px;font-weight:800;color:#2d1069;letter-spacing:-.02em}
.wb-s{font-size:12px;color:#6d28d9;margin:4px 0 12px;font-weight:500;opacity:.8}
.wb-pills{display:flex;gap:8px;flex-wrap:wrap}
.wb-pill{padding:5px 14px;background:rgba(255,255,255,.65);border-radius:20px;font-size:11.5px;font-weight:600;color:#5b21b6;border:1.5px solid rgba(124,58,237,.2);font-family:var(--fm)}
/* Welcome banner — dark theme */
[data-theme="dark"] .wb{background:linear-gradient(135deg,#241847 0%,#2b1a54 45%,#1f153f 100%);border-color:var(--border2)}
[data-theme="dark"] .wb-icon-wrap{background:rgba(255,255,255,.06);border-color:rgba(167,139,250,.25)}
[data-theme="dark"] .wb-h{color:#ede9fe}
[data-theme="dark"] .wb-s{color:#c4b5fd}
[data-theme="dark"] .wb-pill{background:rgba(167,139,250,.12);color:#c4b5fd;border-color:rgba(167,139,250,.28)}

/* ── TICKETS ── */
.tk-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;margin-bottom:10px;cursor:pointer;transition:all .18s;box-shadow:var(--sh)}
.tk-card:hover{box-shadow:var(--sh2);border-color:var(--border2)}
.tk-card.sla-overdue{border-left:3px solid var(--danger)!important}
.tk-card.sla-expiring{border-left:3px solid var(--warn)!important}
.tk-sub{font-size:13.5px;font-weight:700;color:var(--txt);margin-bottom:4px}
.tk-meta{font-size:11px;color:var(--txt4);font-family:var(--fm)}
.sla-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-family:var(--fm);font-size:10px;font-weight:700}
.sla-ok{background:var(--success-lt);color:#15803d;border:1px solid var(--success-bd)}
.sla-warn{background:var(--warn-lt);color:#92400e;border:1px solid var(--warn-bd)}
.sla-breach{background:var(--danger-lt);color:var(--danger);border:1px solid var(--danger-bd)}

/* ── ASSET REQUESTS ── */
.req-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);margin-bottom:10px;overflow:hidden;box-shadow:var(--sh);transition:box-shadow .18s}
.req-card:hover{box-shadow:var(--sh2)}
.req-hd{padding:12px 16px;display:flex;align-items:center;gap:12px}
.req-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;background:var(--primary-lt)}

/* ── USERS ── */
.u-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1.5px solid var(--border);transition:background .12s}
.u-row:hover{background:var(--card2)}
.u-av{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:#fff;flex-shrink:0}

/* ── CHECKOUT ── */
.co-card{background:var(--card);border:1.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;margin-bottom:10px;transition:all .18s;box-shadow:var(--sh)}
.co-card:hover{box-shadow:var(--sh2)}
.co-hd{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.co-ico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.co-badge{padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;font-family:var(--fm)}
.co-active{background:#ede9fe;color:#6d28d9;border:1px solid #ddd6fe}
.co-overdue{background:#fef2f2;color:#ef4444;border:1px solid #fecaca;animation:pulse 2s infinite}
.co-returned{background:#f3f4f6;color:#6b7280;border:1px solid #e5e7eb}
[data-theme="dark"] .co-active{background:rgba(167,139,250,.15);color:#c4b5fd;border-color:var(--border2)}
[data-theme="dark"] .co-overdue{background:rgba(239,68,68,.15);color:#fca5a5;border-color:rgba(239,68,68,.35)}
[data-theme="dark"] .co-returned{background:#231843;color:#9aa3b2;border-color:var(--border)}
.co-meta{font-size:11px;color:var(--txt4);margin-top:4px;font-family:var(--fm)}
.co-progress{height:5px;background:var(--border);border-radius:3px;margin-top:8px;overflow:hidden}
.co-progress-fill{height:100%;border-radius:3px;transition:width .3s}

/* ── BAR CHARTS ── */
.bar-item{margin-bottom:10px}
.bar-item:last-child{margin-bottom:0}
.bar-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.bar-lbl{font-size:12px;font-weight:600;color:var(--txt2)}
.bar-num{font-family:var(--fm);font-size:11px;font-weight:700;color:var(--primary)}
.bar-track{height:8px;background:var(--card2);border-radius:4px;overflow:hidden;border:1px solid var(--border)}
.bar-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1)}

/* ── DEPT BARS ── */
.ad-dept-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border)}
.ad-dept-row:last-child{border-bottom:none}
.ad-dept-name{font-size:12px;font-weight:600;color:var(--txt2);min-width:90px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-dept-bar-track{flex:1;height:7px;background:var(--card3);border-radius:4px;overflow:hidden}
.ad-dept-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#7c3aed,#a78bfa)}
.ad-dept-num{font-family:var(--fm);font-size:11px;font-weight:700;color:var(--primary);min-width:24px;text-align:right}

/* ── DETAIL PANEL ── */
.dp-panel{position:fixed;top:0;right:0;bottom:0;width:420px;background:var(--card);z-index:300;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:var(--sh3);border-left:1.5px solid var(--border)}
.dp-panel.open{transform:none}
.dp-hd{padding:16px 18px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--primary-lt),var(--card));flex-shrink:0}
.dp-title{font-size:14px;font-weight:800;flex:1;color:var(--txt)}
/* Left-edge drag handle to resize the right-anchored detail panels. */
.dp-resize{position:absolute;top:0;left:0;bottom:0;width:8px;cursor:ew-resize;z-index:10;display:flex;align-items:center;justify-content:center;touch-action:none;background:transparent;transition:background .15s}
.dp-resize::after{content:"";width:4px;height:44px;border-radius:3px;background:var(--border);transition:background .15s,height .15s}
.dp-resize:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}
.dp-resize:hover::after,.dp-resize.dragging::after{background:var(--primary);height:64px}
.dp-resize.dragging{background:color-mix(in srgb,var(--primary) 18%,transparent)}

/* ── BULK ACTIONS ── */
.bulk-bar{position:sticky;top:0;z-index:50;background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff;padding:9px 16px;display:none;align-items:center;gap:10px;flex-wrap:wrap;border-radius:var(--r) var(--r) 0 0;box-shadow:0 4px 20px rgba(37,99,235,.3);animation:fadeUp .2s ease}
.bulk-bar.show{display:flex}
.bulk-count{font-family:var(--fm);font-size:11px;font-weight:700;background:rgba(255,255,255,.2);padding:2px 10px;border-radius:20px}
.bulk-btn{padding:5px 13px;border-radius:var(--r);font-size:11.5px;font-weight:600;cursor:pointer;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;transition:all .15s}
.bulk-btn:hover{background:rgba(255,255,255,.25)}
.bulk-btn.del{background:rgba(239,68,68,.2);border-color:rgba(239,68,68,.4)}
.bulk-close{margin-left:auto;background:transparent;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:16px;padding:0 4px}
tr.row-selected{background:var(--primary-lt)!important}
.row-chk{width:16px;height:16px;cursor:pointer;accent-color:var(--primary)}

/* ── PAGINATOR ── */
.paginator{display:flex;align-items:center;gap:6px;padding:12px 16px;border-top:1.5px solid var(--border);background:var(--card2);flex-wrap:wrap}
.pg-info{font-family:var(--fm);font-size:11px;color:var(--txt3);flex:1}
.pg-btn{min-width:32px;height:32px;padding:0 8px;border-radius:var(--r);background:var(--card);border:1.5px solid var(--border);font-family:var(--fm);font-size:11.5px;font-weight:600;color:var(--txt2);cursor:pointer;transition:all .14s}
.pg-btn:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-lt)}
.pg-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.pg-btn:disabled{opacity:.4;cursor:not-allowed}
.pg-size{font-family:var(--fm);font-size:11px;padding:4px 8px;border-radius:var(--r);border:1.5px solid var(--border);background:var(--card);color:var(--txt2);cursor:pointer}

/* ── OTP DIGITS ── */
.otp-digit{width:52px;height:60px;border:2px solid #e5e7eb;border-radius:12px;font-size:28px;font-weight:800;font-family:var(--fm);text-align:center;color:#1e1b4b;transition:all .15s;background:#f9fafb;outline:none}
.otp-digit:focus{border-color:#7c3aed;background:#fff;box-shadow:0 0 0 3px rgba(124,58,237,.15)}

/* ── EMPTY STATE ── */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}
.empty-i{font-size:40px;margin-bottom:12px;opacity:.6}
.empty-t{font-size:15px;font-weight:700;color:var(--txt2);margin-bottom:6px}
.empty-s{font-size:12px;color:var(--txt4);margin-bottom:16px}
.empty-cta{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* ── MISC ── */
.row{display:flex;align-items:center}
.mb12{margin-bottom:12px}
.mb8{margin-bottom:8px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.dash-view-all{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-top:1.5px solid var(--border);font-size:12px;font-weight:600;color:var(--primary);cursor:pointer;transition:background .14s}
.dash-view-all:hover{background:var(--primary-lt)}
.no-access-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;min-height:400px;text-align:center}
.no-access-icon{width:88px;height:88px;border-radius:24px;background:var(--primary-lt);border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:38px;margin:0 auto 20px}
.no-access-title{font-size:20px;font-weight:800;color:var(--txt);margin-bottom:8px}
.no-access-sub{font-size:13px;color:var(--txt3);margin-bottom:24px;line-height:1.7;max-width:380px}
.backup-card{background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:22px 24px;margin-bottom:14px;box-shadow:var(--sh)}

/* ── MOBILE ── */
@media(max-width:768px){
  .ham-btn{display:flex}
  .sidebar{position:fixed;top:0;left:0;height:100vh;z-index:100;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1)}
  .sidebar.mobile-open{transform:none;box-shadow:var(--sh3)}
  .main{width:100%}
  .topbar{padding:0 14px;gap:8px}
  .search-w{width:140px}
  .content{padding:14px}
  .fg2{grid-template-columns:1fr}
  .fg.s2{grid-column:span 1}
  .dp-panel{width:100%!important}
  .dp-resize{display:none}
  .ad-hero-grid{grid-template-columns:repeat(2,1fr)}
  .g2,.g3{grid-template-columns:1fr}
  .overlay{padding:4px}
  .modal{max-height:99vh;border-radius:12px}
}

/* ══ IMPORT PREVIEW TABLE ══════════════════════════════════════════════════ */
#import-preview table th { white-space: nowrap; }
#import-preview table td { white-space: nowrap; max-width: 140px; overflow: hidden; text-overflow: ellipsis; }

/* ══ ASSET DASHBOARD STATUS BUTTONS ══════════════════════════════════════════ */
.ad-st-btn {
  padding: 5px 13px; border-radius: 20px; border: 1.5px solid #e5e7eb;
  background: var(--card); font-size: 11.5px; font-weight: 600; color: var(--txt3);
  cursor: pointer; transition: all .15s; font-family: var(--f); white-space: nowrap;
}
.ad-st-btn:hover { border-color: var(--primary); color: var(--primary); background: var(--primary-lt); }
.ad-st-btn.active { background: #7c3aed; color: #fff; border-color: #7c3aed; box-shadow: 0 2px 8px rgba(124,58,237,.28); }

/* ══ AD LEGEND ════════════════════════════════════════════════════════════════ */
.ad-legend-item:hover { background: var(--primary-lt) !important; }
