/* ============================================================
   SOPMS v3.0 – Complete style.css (fully merged)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600;700&family=DM+Mono:wght@400;500&display=swap');

:root {
  --primary:    #1d4ed8;
  --primary-d:  #1e3a8a;
  --primary-l:  #3b82f6;
  --primary-xl: #eff6ff;
  --success:    #059669;
  --success-l:  #d1fae5;
  --warning:    #d97706;
  --warning-l:  #fef3c7;
  --danger:     #dc2626;
  --danger-l:   #fee2e2;
  --purple:     #7c3aed;
  --purple-l:   #ede9fe;
  --teal:       #0d9488;
  --teal-l:     #ccfbf1;
  --sky:        #0284c7;
  --sky-l:      #e0f2fe;
  --orange:     #c2410c;
  --orange-l:   #ffedd5;
  --bg:         #f0f4f8;
  --bg-card:    #ffffff;
  --bg-hover:   #f8fafc;
  --border:     #e2e8f0;
  --border-d:   #cbd5e1;
  --sidebar:    #111827;
  --sidebar-2:  #1f2937;
  --sidebar-3:  #374151;
  --text:       #0f172a;
  --text-2:     #334155;
  --text-muted: #64748b;
  --sidebar-w:  256px;
  --topbar-h:   60px;
  --r:          8px;
  --r-lg:       14px;
  --shadow:     0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);
  --shadow-md:  0 4px 12px rgba(0,0,0,.08);
  --shadow-lg:  0 20px 40px rgba(0,0,0,.12);
  --font: 'DM Sans', system-ui, -apple-system, sans-serif;
  --mono: 'DM Mono', monospace;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;min-height:100vh}
a{text-decoration:none;color:inherit;cursor:pointer}
button{font-family:var(--font);cursor:pointer}
input,select,textarea{font-family:var(--font)}

/* ── GLOBAL SEARCH ────────────────────────────────────────── */
.search-overlay{display:none;position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.7);backdrop-filter:blur(4px);align-items:flex-start;justify-content:center;padding-top:8vh}
.search-overlay.open{display:flex}
.search-box{width:min(640px,94vw);animation:searchSlide .18s ease}
@keyframes searchSlide{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
.search-input-wrap{display:flex;align-items:center;gap:.75rem;background:#fff;border-radius:var(--r-lg);padding:.875rem 1.1rem;box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.search-input-wrap>i{color:var(--text-muted);font-size:1.1rem;flex-shrink:0}
.search-input-wrap input{flex:1;border:none;outline:none;font-size:1rem;font-family:var(--font)}
.search-close-btn{background:none;border:none;color:var(--text-muted);font-size:1.1rem;padding:.2rem}
.search-results{margin-top:.5rem;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border);max-height:55vh;overflow-y:auto}
.sr-section{padding:.5rem 0}
.sr-label{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:.4rem 1.1rem}
.sr-item{display:flex;align-items:center;gap:.75rem;padding:.55rem 1.1rem;cursor:pointer;transition:background .1s}
.sr-item:hover{background:var(--primary-xl)}
.sr-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:#fff;flex-shrink:0}
.sr-item .sr-name{font-size:.85rem;font-weight:600}
.sr-item .sr-sub{font-size:.73rem;color:var(--text-muted)}
.sr-empty{padding:2rem;text-align:center;color:var(--text-muted);font-size:.85rem}

/* ── SIDEBAR ──────────────────────────────────────────────── */
.sidebar{position:fixed;left:0;top:0;width:var(--sidebar-w);height:100vh;background:var(--sidebar);display:flex;flex-direction:column;z-index:200;transition:transform .25s cubic-bezier(.4,0,.2,1);overflow:hidden}
.sidebar-brand{padding:1rem;display:flex;align-items:center;gap:.75rem;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}
.brand-logo{width:36px;height:36px;background:var(--primary);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.95rem;flex-shrink:0}
.brand-name{color:#f1f5f9;font-weight:700;font-size:.88rem;line-height:1.2}
.brand-tagline{color:#475569;font-size:.68rem}
.brand-text{flex:1;min-width:0}
.sidebar-close-btn{display:none;background:none;border:none;color:#64748b;font-size:1rem;padding:.2rem}
.sidebar-nav{flex:1;overflow-y:auto;padding:.4rem 0}
.sidebar-nav::-webkit-scrollbar{width:3px}
.sidebar-nav::-webkit-scrollbar-thumb{background:#374151;border-radius:2px}
.nav-section{margin-bottom:.25rem}
.nav-section-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#4b5563;padding:.7rem .9rem .2rem}
.nav-link{display:flex;align-items:center;gap:.65rem;padding:.52rem .9rem;color:#9ca3af;cursor:pointer;transition:background .12s,color .12s;position:relative;font-size:.82rem;font-weight:500}
.nav-link i{width:16px;text-align:center;font-size:.82rem;flex-shrink:0}
.nav-link>span:first-of-type{flex:1}
.nav-link:hover{background:rgba(255,255,255,.05);color:#e5e7eb}
.nav-link.active{background:var(--primary);color:#fff}
.nav-badge{background:var(--danger);color:#fff;font-size:.63rem;font-weight:700;padding:.1rem .38rem;border-radius:99px;min-width:18px;text-align:center;display:none}
.nav-badge.warning{background:var(--warning)}
.nav-badge:not(:empty){display:inline-block}
.sidebar-footer{padding:.6rem;border-top:1px solid rgba(255,255,255,.06);display:flex;gap:.4rem;flex-shrink:0}
.sf-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);color:#6b7280;padding:.48rem;border-radius:7px;font-size:.72rem;font-family:var(--font);transition:all .12s;cursor:pointer}
.sf-btn:hover{background:rgba(255,255,255,.1);color:#e5e7eb}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:199}

/* ── MAIN / TOPBAR ───────────────────────────────────────── */
.main{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column;position:relative}
.topbar{position:sticky;top:0;height:var(--topbar-h);z-index:100;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 0 var(--border)}
.topbar-left{display:flex;align-items:center;gap:.875rem}
.menu-toggle{width:34px;height:34px;background:var(--bg);border:1px solid var(--border);border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.9rem;cursor:pointer}
.page-info h1{font-size:1rem;font-weight:700;line-height:1.2}
.page-info span{font-size:.72rem;color:var(--text-muted)}
.topbar-right{display:flex;align-items:center;gap:.35rem}
.topbar-btn{width:34px;height:34px;background:var(--bg);border:1px solid var(--border);border-radius:7px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.85rem;cursor:pointer;position:relative;transition:all .12s}
.topbar-btn:hover{color:var(--primary);border-color:var(--primary);background:var(--primary-xl)}
.search-trigger{width:auto;padding:0 .75rem;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--text-2)}
.search-trigger::after{content:'Ctrl+K';font-size:.65rem;color:var(--text-muted);margin-left:.5rem}
.notif-badge{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--danger);border-radius:50%;border:2px solid #fff}

/* ── NOTIF PANEL ─────────────────────────────────────────── */
.notif-panel{position:absolute;top:calc(var(--topbar-h)+8px);right:1rem;width:320px;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);z-index:150}
.notif-panel-head{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:.85rem}
.notif-panel-head button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem}
.notif-list{max-height:300px;overflow-y:auto}
.notif-item{padding:.6rem 1rem;border-bottom:1px solid var(--border);font-size:.78rem;line-height:1.5;border-left:3px solid transparent}
.notif-item:last-child{border-bottom:none}
.notif-item.warn{border-left-color:var(--warning)}
.notif-item.danger{border-left-color:var(--danger)}
.notif-item.info{border-left-color:var(--primary)}

/* ── MODULES ─────────────────────────────────────────────── */
.module{display:none;padding:1.25rem 1.5rem;animation:modIn .18s ease}
.module.active{display:block}
@keyframes modIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ── INFO BANNER ─────────────────────────────────────────── */
.info-banner{background:var(--sky-l);border:1px solid #bae6fd;border-radius:var(--r);padding:.65rem 1rem;font-size:.82rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.info-banner a{color:var(--sky);font-weight:600}

/* ── STAT CARDS ──────────────────────────────────────────── */
.stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:.875rem;margin-bottom:1.25rem}
.stat-card{background:#fff;border-radius:var(--r-lg);padding:1rem 1.1rem;display:flex;align-items:center;gap:.875rem;border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-d)}
.stat-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:#fff;flex-shrink:0}
.stat-card.blue   .stat-icon{background:var(--primary)}
.stat-card.green  .stat-icon{background:var(--success)}
.stat-card.orange .stat-icon{background:var(--warning)}
.stat-card.red    .stat-icon{background:var(--danger)}
.stat-card.teal   .stat-icon{background:var(--teal)}
.stat-card.purple .stat-icon{background:var(--purple)}
.stat-card.sky    .stat-icon{background:var(--sky)}
.stat-card.indigo .stat-icon{background:#4f46e5}
.stat-value{font-size:1.35rem;font-weight:800;line-height:1;font-family:var(--mono);letter-spacing:-.02em}
.stat-label{font-size:.68rem;color:var(--text-muted);margin-top:.2rem;font-weight:500}

/* ── DASHBOARD ───────────────────────────────────────────── */
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.dash-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.dash-card-head{padding:.875rem 1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.dash-card-head h3{font-size:.85rem;font-weight:700;display:flex;align-items:center;gap:.45rem}
.dash-card-head h3 i{color:var(--primary)}
.dash-card-head a{font-size:.72rem;color:var(--primary);font-weight:600}
.dash-list{overflow-y:auto;max-height:255px}
.dash-item{display:flex;align-items:center;gap:.65rem;padding:.5rem 1rem;transition:background .1s}
.dash-item:hover{background:var(--bg-hover)}
.dash-item-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.72rem;flex-shrink:0}
.di-text{flex:1;min-width:0}
.di-name{font-size:.8rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.di-sub{font-size:.7rem;color:var(--text-muted)}
.di-val{font-size:.8rem;font-weight:700;white-space:nowrap}
.dash-empty{padding:2.5rem 1rem;text-align:center;color:var(--text-muted)}
.dash-empty i{font-size:1.75rem;display:block;margin-bottom:.5rem;opacity:.25}
.dash-empty p{font-size:.8rem}

/* ── PROGRESS BAR ────────────────────────────────────────── */
.prog-bar{height:5px;background:var(--border);border-radius:3px;overflow:hidden;flex:1}
.prog-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .3s ease}
.prog-fill.success{background:var(--success)}
.prog-fill.warning{background:var(--warning)}
.prog-fill.danger{background:var(--danger)}

/* ── TOOLBAR ─────────────────────────────────────────────── */
.module-toolbar{display:flex;align-items:center;gap:.625rem;margin-bottom:1rem;flex-wrap:wrap}
.filters{display:flex;gap:.4rem;flex:1;flex-wrap:wrap}
.filter-input{padding:.46rem .7rem;border:1px solid var(--border);border-radius:var(--r);background:#fff;color:var(--text);font-size:.78rem;font-family:var(--font);outline:none;transition:border-color .12s;min-width:100px}
.filter-input:focus{border-color:var(--primary)}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn-primary,.btn-outline,.btn-danger,.btn-success{padding:.46rem .9rem;border-radius:var(--r);font-size:.8rem;font-weight:600;font-family:var(--font);display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;white-space:nowrap;transition:all .15s;border:1px solid transparent}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary-d)}
.btn-outline{background:#fff;color:var(--text-2);border-color:var(--border)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary)}
.btn-danger{background:var(--danger);color:#fff}
.btn-success{background:var(--success);color:#fff}
.btn-sm{padding:.22rem .55rem;border-radius:6px;border:none;cursor:pointer;font-size:.72rem;font-family:var(--font);font-weight:600;transition:opacity .1s;display:inline-flex;align-items:center;gap:.25rem}
.btn-sm:hover{opacity:.8}
.btn-sm.view{background:#e0f2fe;color:#0369a1}
.btn-sm.edit{background:#f1f5f9;color:#334155}
.btn-sm.del{background:#fee2e2;color:#dc2626}
.btn-sm.approve{background:var(--success-l);color:var(--success)}
.btn-sm.reject{background:var(--danger-l);color:var(--danger)}
.btn-sm.driver{background:var(--purple-l);color:var(--purple)}
.btn-sm.print{background:var(--warning-l);color:var(--warning)}

/* ── TABLE ───────────────────────────────────────────────── */
.table-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.table-card.overflow{overflow-x:auto}
.data-table{width:100%;border-collapse:collapse}
.data-table thead{background:#f8fafc}
.data-table th{padding:.65rem 1rem;text-align:left;font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}
.data-table td{padding:.58rem 1rem;border-bottom:1px solid var(--border);font-size:.8rem;vertical-align:middle}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr:hover td{background:var(--bg-hover)}
.tbl-actions{display:flex;gap:.25rem;flex-wrap:wrap}

/* ── CHIPS / STATUS ──────────────────────────────────────── */
.chip{padding:.16rem .55rem;border-radius:99px;font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}
.chip.pending{background:var(--warning-l);color:var(--warning)}
.chip.approved{background:var(--success-l);color:var(--success)}
.chip.rejected{background:var(--danger-l);color:var(--danger)}
.chip.active{background:var(--primary-xl);color:var(--primary)}
.chip.submitted{background:var(--purple-l);color:var(--purple)}
.chip.out{background:var(--orange-l);color:var(--orange)}
.chip.returned{background:var(--teal-l);color:var(--teal)}
.chip.new-v{background:var(--success-l);color:var(--success)}
.chip.old-v{background:var(--warning-l);color:var(--warning)}
.chip.store{background:var(--success-l);color:var(--success)}
.chip.branch{background:var(--sky-l);color:var(--sky)}
.chip.site{background:var(--orange-l);color:var(--orange)}
.chip.on-hold{background:var(--warning-l);color:var(--warning)}
.chip.completed{background:var(--success-l);color:var(--success)}
.chip.high{background:var(--danger-l);color:var(--danger)}
.chip.medium{background:var(--warning-l);color:var(--warning)}
.chip.low{background:var(--success-l);color:var(--success)}
.chip.critical{background:#1a0000;color:#ff4444}
.chip.sunny{background:#fef9c3;color:#854d0e}
.chip.cloudy{background:#f1f5f9;color:#475569}
.chip.rainy{background:#dbeafe;color:#1d4ed8}
.chip.windy{background:#ecfdf5;color:#065f46}
.chip.stormy{background:#fee2e2;color:#991b1b}
.chip.foggy{background:#f8fafc;color:#64748b}
.chip.hot{background:#fff7ed;color:#9a3412}

.ot-tag{background:var(--warning-l);color:var(--warning);padding:.1rem .45rem;border-radius:99px;font-size:.7rem;font-weight:700}
.days-ok{color:var(--success);font-weight:700;font-size:.78rem}
.days-warn{color:var(--warning);font-weight:700;font-size:.78rem}
.days-danger{color:var(--danger);font-weight:700;font-size:.78rem}

.rental-tag{background:var(--orange-l);color:var(--orange);padding:.15rem .5rem;border-radius:99px;font-size:.68rem;font-weight:700}
.company-tag{background:var(--teal-l);color:var(--teal);padding:.15rem .5rem;border-radius:99px;font-size:.68rem;font-weight:700}
.otherdept-tag{background:var(--purple-l,#f3e8ff);color:var(--purple,#7c3aed);padding:.15rem .5rem;border-radius:99px;font-size:.68rem;font-weight:700}

/* ── EMPLOYEE ROLE TABS ──────────────────────────────────── */
.emp-role-tabs{display:flex;gap:.2rem;background:#fff;padding:.3rem;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:.75rem;box-shadow:var(--shadow);overflow-x:auto;flex-wrap:nowrap}
.emp-rtab{padding:.38rem .8rem;border:none;background:none;cursor:pointer;border-radius:7px;font-size:.78rem;font-weight:600;color:var(--text-muted);font-family:var(--font);white-space:nowrap;transition:all .12s}
.emp-rtab.active{background:var(--primary);color:#fff}
.emp-rtab:hover:not(.active){background:var(--bg);color:var(--text)}
.emp-rtab .rtab-count{background:rgba(255,255,255,.25);padding:.05rem .35rem;border-radius:99px;font-size:.65rem;margin-left:.25rem}
.emp-rtab:not(.active) .rtab-count{background:var(--border);color:var(--text-muted)}

/* ── SAFETY PPE ──────────────────────────────────────────── */
.safety-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.75rem}
.safety-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:.875rem;box-shadow:var(--shadow)}
.si-ok{background:var(--success-l);border-color:#a7f3d0}
.si-warn{background:var(--warning-l);border-color:#fcd34d}
.si-expired{background:var(--danger-l);border-color:#fca5a5}
.si-none{background:var(--bg);border-style:dashed}

/* ── ASSETS ──────────────────────────────────────────────── */
.asset-tag{display:inline-flex;align-items:center;gap:.3rem;background:var(--sky-l);color:var(--sky);padding:.18rem .55rem;border-radius:99px;font-size:.7rem;font-weight:600;margin:.1rem}
.asset-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;background:var(--bg);border-radius:var(--r);border:1px solid var(--border);margin-bottom:.35rem}
.asset-row-info{flex:1;min-width:0}
.asset-row-name{font-size:.82rem;font-weight:700}
.asset-row-detail{font-size:.72rem;color:var(--text-muted)}

/* ── PROJECTS GRID v2 ────────────────────────────────────── */
.projects-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:1200px){.projects-grid{grid-template-columns:1fr 1fr}}@media(min-width:1800px){.projects-grid{grid-template-columns:1fr 1fr 1fr}}
.proj-card-v2{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .15s}
.proj-card-v2:hover{box-shadow:var(--shadow-md)}
.proj-card-v2 .pc2-header{padding:1rem 1.1rem;border-bottom:1px solid var(--border);background:linear-gradient(135deg,var(--primary-xl) 0%,#fff 100%)}
.proj-card-v2 .pc2-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}
.proj-card-v2 .pc2-title{font-size:.98rem;font-weight:800;color:var(--primary-d)}
.proj-card-v2 .pc2-client{font-size:.73rem;color:var(--text-muted);margin-top:.15rem}
.proj-card-v2 .pc2-meta-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.65rem}
.proj-card-v2 .pc2-pct-big{font-size:1.6rem;font-weight:900;line-height:1;font-family:var(--mono)}
.proj-card-v2 .pc2-pct-label{font-size:.68rem;color:var(--text-muted);font-weight:600}
.proj-card-v2 .pc2-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.65rem;text-align:center}
.proj-card-v2 .pc2-stat-val{font-size:1.1rem;font-weight:800;font-family:var(--mono)}
.proj-card-v2 .pc2-stat-label{font-size:.65rem;color:var(--text-muted);font-weight:600;text-transform:uppercase}
.proj-card-v2 .pc2-body{padding:.875rem 1.1rem}
.proj-card-v2 .pc2-loc{margin-bottom:.75rem;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.proj-card-v2 .pc2-loc-head{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg);border-bottom:1px solid var(--border)}
.proj-card-v2 .pc2-loc-name{font-size:.8rem;font-weight:700}
.proj-card-v2 .pc2-loc-pct{font-size:.75rem;font-weight:800;color:var(--primary)}
.proj-card-v2 .pc2-tests{padding:.4rem .75rem}
.proj-card-v2 .pc2-test-row{display:flex;align-items:center;gap:.5rem;padding:.22rem 0;border-bottom:1px solid var(--border)}
.proj-card-v2 .pc2-test-row:last-child{border-bottom:none}
.proj-card-v2 .pc2-test-name{flex:1;font-size:.75rem;color:var(--text-2)}
.proj-card-v2 .pc2-test-qty{font-size:.73rem;font-weight:700;font-family:var(--mono);min-width:100px;text-align:right}
.proj-card-v2 .pc2-footer{padding:.65rem 1.1rem;border-top:1px solid var(--border);display:flex;gap:.4rem;background:var(--bg)}
.proj-card-actions{display:flex;gap:.25rem;flex-wrap:wrap;flex-shrink:0}

/* ── PETTY TABS ──────────────────────────────────────────── */
.petty-tabs,.hse-tabs,.equip-tabs{display:flex;gap:.2rem;background:#fff;padding:.3rem;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:1rem;box-shadow:var(--shadow);overflow-x:auto}
.petty-tab,.hse-tab,.equip-tab{padding:.42rem .85rem;border:none;background:none;cursor:pointer;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--text-muted);font-family:var(--font);white-space:nowrap;transition:all .12s}
.petty-tab.active,.hse-tab.active,.equip-tab.active{background:var(--primary);color:#fff}
.petty-tab:hover:not(.active),.hse-tab:hover:not(.active),.equip-tab:hover:not(.active){background:var(--bg);color:var(--text)}
.petty-panel,.hse-panel,.equip-panel{display:none}
.petty-panel.active,.hse-panel.active,.equip-panel.active{display:block}

/* ── CASH SUMMARY ────────────────────────────────────────── */
.cash-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.875rem;margin-bottom:1.5rem}
.cash-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem;box-shadow:var(--shadow)}
.cc-label{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}
.cc-val{font-size:1.2rem;font-weight:800;margin-top:.25rem;font-family:var(--mono)}
.cc-change{font-size:.7rem;margin-top:.2rem;color:var(--text-muted)}

/* ── INVOICE SUBMIT BAR ──────────────────────────────────── */
.invoice-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--primary-xl);border:1px solid #bfdbfe;border-radius:var(--r);padding:.75rem 1rem;margin-top:.75rem;flex-wrap:wrap}
#invSelectedInfo{font-size:.82rem;font-weight:600;color:var(--primary)}

/* ── REPORT TABS ─────────────────────────────────────────── */
.report-tabs-row{display:flex;gap:.2rem;background:#fff;padding:.3rem;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:1rem;box-shadow:var(--shadow);overflow-x:auto;flex-wrap:nowrap}
.rtab{padding:.42rem .85rem;border:none;background:none;cursor:pointer;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--text-muted);font-family:var(--font);white-space:nowrap;transition:all .12s}
.rtab.active{background:var(--primary);color:#fff}
.rtab:hover:not(.active){background:var(--bg);color:var(--text)}
.rpt-panel{display:none}
.rpt-panel.active{display:block}
.rpt-section{margin-bottom:2rem}
.rpt-section-title{font-size:.92rem;font-weight:700;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:2px solid var(--border);display:flex;align-items:center;gap:.5rem}
.rpt-meta-row{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:.75rem}
.rpt-meta-item{font-size:.8rem}
.rpt-meta-item label{color:var(--text-muted);font-size:.7rem;display:block}
.rpt-meta-item strong{color:var(--primary)}

/* ── SETTINGS ────────────────────────────────────────────── */
.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.settings-col{display:flex;flex-direction:column;gap:1rem}
.settings-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem;box-shadow:var(--shadow)}
.settings-card h3{font-size:.88rem;font-weight:700;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.settings-card h3 i{color:var(--primary)}
.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;min-height:40px}
.tag-item{background:var(--primary-xl);color:var(--primary);padding:.2rem .55rem;border-radius:99px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.4rem}
.tag-item button{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.75rem;line-height:1;padding:0}
.storage-info{font-size:.8rem;color:var(--text-muted);line-height:2}
.text-muted{color:var(--text-muted)}

/* ── FORMS ───────────────────────────────────────────────── */
.form-group{margin-bottom:.875rem}
.form-group label{display:block;font-size:.7rem;font-weight:700;color:var(--text-muted);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}
.form-input{width:100%;padding:.56rem .75rem;border:1px solid var(--border);border-radius:var(--r);font-size:.875rem;color:var(--text);background:#fff;outline:none;font-family:var(--font);transition:border-color .12s,box-shadow .12s}
.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(29,78,216,.08)}
textarea.form-input{resize:vertical;min-height:70px}
select.form-input{cursor:pointer}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}
.form-hint{font-size:.7rem;color:var(--text-muted);margin-top:.2rem}
.form-section{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}
.form-section-title{font-size:.8rem;font-weight:700;color:var(--text-2);margin-bottom:.875rem;display:flex;align-items:center;gap:.4rem}
.multi-sel{min-height:100px;font-size:.8rem}

/* ── HOURS BOX ───────────────────────────────────────────── */
.hours-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:.75rem;font-size:.82rem;line-height:1.8;margin-top:.25rem}

/* ── ROLE CHECKBOXES ─────────────────────────────────────── */
.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.4rem;margin-top:.3rem}
.role-check{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;border:1px solid var(--border);border-radius:7px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .12s}
.role-check:has(input:checked){background:var(--primary-xl);border-color:var(--primary-l);color:var(--primary)}
.role-check input{accent-color:var(--primary);width:14px;height:14px}

/* ── CERT ITEM ───────────────────────────────────────────── */
.cert-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .6rem;background:var(--bg);border-radius:var(--r);border:1px solid var(--border);margin-bottom:.35rem}

/* ── EQUIP PARTS ─────────────────────────────────────────── */
.part-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:.65rem .75rem;margin-bottom:.4rem}
.part-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}

/* ── MULTI-TEST ENTRY ROWS ───────────────────────────────── */
.test-entry-row{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:.65rem .75rem;margin-bottom:.4rem;position:relative}
.test-entry-row .ter-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.78rem;font-weight:700;color:var(--primary)}

/* ── DATE RANGE FILTER ───────────────────────────────────── */
.date-range-filter{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.date-range-filter label{font-size:.72rem;color:var(--text-muted);font-weight:600;white-space:nowrap}

/* ── MODAL ───────────────────────────────────────────────── */
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.6);backdrop-filter:blur(2px);z-index:500}
.modal-backdrop.show{display:block}
.modal-container{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:var(--r-lg);box-shadow:0 25px 60px rgba(0,0,0,.2);z-index:501;width:min(94vw,680px);max-height:92vh;flex-direction:column;overflow:hidden}
.modal-container.show{display:flex}
.modal-container.wide{width:min(96vw,860px)}
.modal-container.xlwide{width:min(98vw,1100px)}
.modal-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.modal-header h2{font-size:.95rem;font-weight:700}
.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;padding:.2rem}
.modal-body{padding:1.25rem;overflow-y:auto;flex:1}
.modal-footer{padding:.875rem 1.25rem;border-top:1px solid var(--border);display:flex;gap:.5rem;justify-content:flex-end;flex-shrink:0}

/* ── TOAST ───────────────────────────────────────────────── */
.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:999;display:flex;flex-direction:column;gap:.4rem}
.toast{padding:.65rem 1rem;border-radius:10px;font-size:.82rem;font-weight:600;background:#0f172a;color:#fff;box-shadow:var(--shadow-lg);transform:translateX(80px);opacity:0;transition:all .25s cubic-bezier(.4,0,.2,1);max-width:280px}
.toast.in{transform:translateX(0);opacity:1}
.toast.success{background:var(--success)}
.toast.error{background:var(--danger)}
.toast.warn{background:var(--warning);color:#1a1a1a}

/* ── EMPTY STATE ─────────────────────────────────────────── */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}
.empty-state i{font-size:2rem;display:block;margin-bottom:.75rem;opacity:.25}
.empty-state p{font-size:.85rem}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:1100px){.settings-layout{grid-template-columns:1fr}}
@media(max-width:900px){.dash-grid{grid-template-columns:1fr}}
@media(max-width:768px){
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0)}
  .sidebar-overlay.open{display:block}
  .sidebar-close-btn{display:block}
  .main{margin-left:0}
  .search-trigger::after{display:none}
  .form-row,.form-row-3{grid-template-columns:1fr}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .module{padding:1rem}
  .modal-body{padding:1rem}
}
@media(max-width:480px){
  .stats-row{grid-template-columns:1fr 1fr}
  .topbar{padding:0 .75rem}
}

/* ── PRINT ───────────────────────────────────────────────── */
@media print{
  .sidebar,.topbar,.module-toolbar,.report-tabs-row,.modal-backdrop,.modal-container,.toast-container,.notif-panel,.search-overlay{display:none!important}
  .main{margin-left:0!important}
  .module.active{padding:0!important}
  .rpt-panel{display:block!important}
  .table-card{box-shadow:none!important;border:1px solid #ccc!important}
  body{font-size:12px}
}

/* ── VEHICLE TABS ─────────────────────────────────────────── */
.veh-tabs{display:flex;gap:.2rem;background:#fff;padding:.3rem;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:1rem;box-shadow:var(--shadow);overflow-x:auto}
.veh-tab{padding:.42rem .85rem;border:none;background:none;cursor:pointer;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--text-muted);font-family:var(--font);white-space:nowrap;transition:all .12s}
.veh-tab.active{background:var(--primary);color:#fff}
.veh-tab:hover:not(.active){background:var(--bg);color:var(--text)}
.veh-panel{display:none}
.veh-panel.active{display:block}

/* ── DRIVER CARDS ─────────────────────────────────────────── */
.veh-drivers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.875rem}
.veh-driver-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:.875rem}
.vdc-veh-icon{width:48px;height:48px;border-radius:12px;background:var(--primary-xl);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0}
.vdc-info{flex:1;min-width:0}
.vdc-veh-name{font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vdc-plate{font-size:.72rem;font-family:var(--mono);color:var(--text-muted)}
.vdc-driver{display:flex;align-items:center;gap:.4rem;margin-top:.4rem;font-size:.82rem;font-weight:600;color:var(--primary)}
.vdc-driver i{font-size:.75rem}
.vdc-since{font-size:.7rem;color:var(--text-muted)}
.vdc-nodriver{color:var(--text-muted);font-size:.8rem;font-style:italic;margin-top:.35rem}

/* ── EXCHANGE / ISSUES ────────────────────────────────────── */
.issue-row{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .6rem;background:var(--danger-l);border:1px solid #fca5a5;border-radius:var(--r);margin-bottom:.35rem}
.issue-row-fields{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:.4rem}
.chip.has-issues{background:var(--danger-l);color:var(--danger)}
.chip.no-issues{background:var(--success-l);color:var(--success)}

/* ── FINES ────────────────────────────────────────────────── */
.chip.unpaid{background:var(--danger-l);color:var(--danger)}
.chip.paid{background:var(--success-l);color:var(--success)}
.chip.disputed{background:var(--warning-l);color:var(--warning)}
.fine-amount{font-weight:800;font-family:var(--mono);color:var(--danger)}

/* ── UPCOMING STRIP ───────────────────────────────────────── */
.upcoming-strip{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:.25rem}
.upcoming-strip::-webkit-scrollbar{height:3px}
.upcoming-strip::-webkit-scrollbar-thumb{background:var(--border-d);border-radius:2px}
.upcoming-card{flex-shrink:0;width:230px;background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:.875rem;box-shadow:var(--shadow);border-top:3px solid var(--primary);cursor:pointer;transition:box-shadow .15s}
.upcoming-card:hover{box-shadow:var(--shadow-md)}
.upcoming-card.urgent{border-top-color:var(--danger)}
.upcoming-card.soon{border-top-color:var(--warning)}
.upcoming-card.done{border-top-color:var(--success);opacity:.7}
.uc-date{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.25rem}
.uc-title{font-size:.85rem;font-weight:700;line-height:1.3;margin-bottom:.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uc-sub{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uc-badge{display:inline-block;margin-top:.4rem;font-size:.65rem;font-weight:700;padding:.12rem .45rem;border-radius:99px}
.uc-countdown{font-size:.72rem;font-weight:700;margin-top:.35rem}
.uc-countdown.urgent{color:var(--danger)}
.uc-countdown.soon{color:var(--warning)}
.uc-countdown.ok{color:var(--success)}

/* ── MEETING TYPE CHIPS ───────────────────────────────────── */
.chip.mtg-hse{background:#fef3c7;color:#92400e}
.chip.mtg-aramco{background:#dbeafe;color:#1e40af}
.chip.mtg-third{background:var(--purple-l);color:var(--purple)}
.chip.mtg-training{background:var(--teal-l);color:var(--teal)}
.chip.mtg-drill{background:var(--danger-l);color:var(--danger)}
.chip.mtg-other{background:var(--bg);color:var(--text-muted)}
.chip.upcoming{background:var(--primary-xl);color:var(--primary)}
.chip.inprogress{background:var(--warning-l);color:var(--warning)}
.chip.postponed{background:var(--orange-l);color:var(--orange)}

/* ── ATTENDEE PILLS ───────────────────────────────────────── */
.attendee-pills{display:flex;flex-wrap:wrap;gap:.2rem;max-width:200px}
.att-pill{background:var(--bg);border:1px solid var(--border);border-radius:99px;padding:.1rem .45rem;font-size:.68rem;font-weight:600;white-space:nowrap}

/* ── ASSET MODULE ─────────────────────────────────────────── */
.asset-mod-tabs{display:flex;gap:.2rem;background:#fff;padding:.3rem;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:1rem;box-shadow:var(--shadow);overflow-x:auto}
.asset-mtab{padding:.42rem .85rem;border:none;background:none;cursor:pointer;border-radius:7px;font-size:.8rem;font-weight:600;color:var(--text-muted);font-family:var(--font);white-space:nowrap;transition:all .12s}
.asset-mtab.active{background:var(--primary);color:#fff}
.asset-mtab:hover:not(.active){background:var(--bg);color:var(--text)}
.asset-mpanel{display:none}
.asset-mpanel.active{display:block}

.asset-cat-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.asset-cat-col{display:flex;flex-direction:column;gap:.75rem}
.asset-cat-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:var(--bg);border-radius:var(--r);border:1px solid var(--border);margin-bottom:.3rem}
.asset-cat-item .aci-name{flex:1;font-size:.82rem;font-weight:600}
.asset-cat-item .aci-count{font-size:.72rem;color:var(--text-muted)}

.asset-emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.875rem}
.asset-emp-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem;box-shadow:var(--shadow)}
.aec-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}
.aec-avatar{width:36px;height:36px;border-radius:10px;background:var(--primary-xl);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0}
.aec-name{font-weight:700;font-size:.88rem}
.aec-role{font-size:.7rem;color:var(--text-muted)}
.aec-items{display:flex;flex-direction:column;gap:.3rem}
.aec-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--bg);border-radius:6px;font-size:.78rem}
.aec-item-cat{font-size:.67rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;min-width:60px}
.aec-item-name{flex:1;font-weight:600}
.aec-item-serial{font-size:.68rem;font-family:var(--mono);color:var(--text-muted)}
.chip.in-store{background:var(--success-l);color:var(--success)}
.chip.assigned{background:var(--primary-xl);color:var(--primary)}

/* ── PROJECT CARD IMPROVEMENTS ────────────────────────────── */
.proj-card-v2 .pc2-header{background:linear-gradient(160deg,#f0f6ff 0%,#fff 60%)}
.proj-card-v2 .pc2-footer{background:#fafbfc}
.proj-card-v2:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px);transition:all .2s}
.proj-card-v2 .pc2-test-row{padding:.25rem .4rem;border-radius:5px;transition:background .1s}
.proj-card-v2 .pc2-test-row:hover{background:var(--bg)}
.proj-card-v2 .pc2-loc{border-radius:var(--r);overflow:hidden;margin-bottom:.65rem;box-shadow:0 1px 3px rgba(0,0,0,.05)}

/* ── DASHBOARD SEARCH ─────────────────────────────────────── */
#dash-search-bar>div:hover{border-color:var(--primary)!important;box-shadow:0 0 0 3px rgba(29,78,216,.08)!important}

/* ── MODAL FIX - prevent layout shift ────────────────────── */
.modal-container{max-width:min(94vw,680px)}
.modal-container.wide{max-width:min(96vw,860px)}

/* ── ROLE CHECK HOVER FIX ─────────────────────────────────── */
.role-check{user-select:none}
.role-check input:focus{outline:2px solid var(--primary)}

/* ── PPE TRACKER TABLE ────────────────────────────────────── */
#ppe-table th { white-space:nowrap; }
#ppe-table td { vertical-align:middle; }
#ppe-tbody tr:hover td { filter:brightness(.97); }
#ppe-thead th:not(:first-child):not(:nth-child(2)):not(:last-child) {
  background:var(--primary-xl); color:var(--primary-d); font-size:.65rem;
}

/* ── PROJECT SUB-TESTS ────────────────────────────────────── */
.test-row { display:flex; align-items:center; gap:.5rem; padding:.35rem .5rem; border-radius:var(--r); font-size:.8rem; }
.test-row .t-name { flex:1; font-weight:600; }
.test-row .t-qty  { font-family:var(--mono); font-size:.75rem; color:var(--text-muted); white-space:nowrap; }

/* ── PROJECT CARD FULL WIDTH ──────────────────────────────── */
.proj-card-v2 { width:100%; }
.proj-card-v2 .pc2-body { max-height:none; }
.proj-card-v2 .pc2-tests { max-height:300px; overflow-y:auto; }
.proj-card-v2 .pc2-stats { grid-template-columns:repeat(3,1fr); }

/* ── SETTINGS LAYOUT 3-col on wide ───────────────────────── */
@media(min-width:1400px) {
  .settings-layout { grid-template-columns:1fr 1fr 1fr; }
}

/* ── TEAM MEMBER GROUPS ───────────────────────────────────── */
.team-member-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.625rem;margin-top:.5rem}
.team-role-group{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.trg-head{padding:.45rem .7rem;background:var(--primary-xl);color:var(--primary-d);font-size:.72rem;font-weight:700;display:flex;align-items:center;gap:.35rem;border-bottom:1px solid var(--border)}
.trg-checks{padding:.35rem .5rem;display:flex;flex-direction:column;gap:.1rem;max-height:180px;overflow-y:auto}
.trg-checks label:hover{background:var(--bg)!important}
.trg-checks input[type="checkbox"]{accent-color:var(--primary);width:14px;height:14px;flex-shrink:0}

/* ── FRIDAY / HOLIDAY OT BADGE ────────────────────────────── */
.ot-banner-fri{background:var(--warning-l);border:1px solid #fcd34d;border-radius:var(--r);padding:.5rem .875rem;font-size:.82rem;display:flex;align-items:center;gap:.5rem}

/* ── SETTINGS 3-COL ───────────────────────────────────────── */
@media(min-width:1100px){.settings-layout{grid-template-columns:1fr 1fr 1fr}}

/* ── ASSET INVENTORY HISTORY BTN ─────────────────────────── */
.btn-sm.history{background:#f0fdf4;color:#16a34a}

/* ── DASHBOARD GRID ────────────────────────────────────────── */
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(min-width:1400px){.dash-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:900px){.dash-grid{grid-template-columns:1fr}}

/* ── COMPANY ID BADGE ─────────────────────────────────────── */
.company-id-badge{display:inline-block;font-family:var(--mono);font-size:.65rem;color:var(--sky);background:var(--sky-l);padding:.1rem .35rem;border-radius:4px;margin-top:.15rem}

/* ── VEHICLE HISTORY CARDS ────────────────────────────────── */
.vhc-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:.75rem;cursor:pointer;transition:all .15s}
.vhc-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.vhc-name{font-weight:700;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.2rem}
.vhc-driver{font-size:.75rem;color:var(--primary);display:flex;align-items:center;gap:.3rem;margin-bottom:.15rem}
.vhc-count{font-size:.68rem;color:var(--text-muted)}

/* ── WARNING LETTERS ──────────────────────────────────────── */
.chip.issued{background:var(--warning-l);color:var(--warning)}
.chip.acknowledged{background:var(--success-l);color:var(--success)}
.chip.disputed{background:var(--danger-l);color:var(--danger)}
.chip.withdrawn{background:var(--bg);color:var(--text-muted)}

/* ── ASSET HISTORY TIMELINE ───────────────────────────────── */
.timeline-dot{position:absolute;left:-28px;top:3px;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}

/* ── LOGO PREVIEW BOX ─────────────────────────────────────── */
#logoPreviewBox{transition:border-color .15s}
#logoPreviewBox:hover{border-color:var(--primary)}

/* ── VEHICLE TICK GRID (team modal) ──────────────────────── */
.team-veh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.4rem;margin-top:.35rem}
.team-veh-chk-lbl{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--r);cursor:pointer;font-size:.78rem;font-weight:600;transition:all .12s;min-width:0}
.team-veh-chk-lbl:hover{border-color:var(--primary)}
.team-veh-chk-lbl input[type="checkbox"]{accent-color:var(--primary);width:15px;height:15px;flex-shrink:0}
.team-veh-chk-lbl i{color:var(--primary);flex-shrink:0}

/* ── HOURS BOX ENHANCED ───────────────────────────────────── */
.hours-box{background:var(--bg);border:1px solid var(--border);border-radius:var(--r);padding:.875rem 1rem;margin-top:.25rem;min-height:52px}

/* ── REMINDERS ────────────────────────────────────────────── */
.chip.in-progress{background:var(--sky-l);color:var(--sky)}

/* ── PROJECT CARD V3 ──────────────────────────────────────── */
.proj-card-v3{background:#fff;border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}
.pcv3-header{padding:1rem 1.125rem .75rem;border-bottom:1px solid var(--border)}
.pcv3-title-row{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.5rem}
.pcv3-title{font-size:1rem;font-weight:800;color:var(--text-1);line-height:1.3}
.pcv3-sub{font-size:.72rem;color:var(--text-muted);margin-top:.15rem}
.pcv3-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:0;border-bottom:1px solid var(--border)}
.pcv3-stat{padding:.5rem .75rem;text-align:center;border-right:1px solid var(--border)}
.pcv3-stat:last-child{border-right:none}
.pcv3-stat-val{display:block;font-size:1rem;font-weight:800;font-family:var(--mono)}
.pcv3-stat-lbl{display:block;font-size:.65rem;text-transform:uppercase;font-weight:700;color:var(--text-muted);margin-top:.1rem}
.pcv3-locs{padding:.625rem 1rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.3rem}
.pcv3-loc-row{display:flex;align-items:center;gap:.5rem;font-size:.78rem}
.pcv3-loc-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcv3-loc-bar{width:80px;height:5px;background:var(--border);border-radius:99px;overflow:hidden;flex-shrink:0}
.pcv3-loc-fill{height:100%;background:var(--primary);border-radius:99px}
.pcv3-loc-pct{width:30px;text-align:right;font-size:.7rem;font-family:var(--mono);font-weight:700;color:var(--text-muted)}
.pcv3-actions{padding:.625rem 1rem;display:flex;gap:.4rem;margin-top:auto}

/* ── PROJECT CARD V3 ─────────────────────────────────────── */
.projects-grid{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:1100px){.projects-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1700px){.projects-grid{grid-template-columns:1fr 1fr 1fr}}

.pcv3-card{background:#fff;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s}
.pcv3-card:hover{box-shadow:var(--shadow-md)}
.projects-grid.list-view{grid-template-columns:1fr !important}
.projects-grid.list-view .pcv3-card{flex-direction:row;align-items:stretch}
.projects-grid.list-view .pcv3-card .proj-locs-col{display:none}
.projects-grid.list-view .pcv3-card .proj-ms-col{display:none}
.pcv3-head{padding:.875rem 1rem .625rem;display:flex;align-items:flex-start;gap:.625rem;border-bottom:1px solid var(--border)}
.pcv3-name{font-weight:800;font-size:1rem;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcv3-client{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}
.pcv3-client code{background:var(--bg);border-radius:4px;padding:.05rem .3rem;font-family:var(--mono);font-size:.7rem}
.pcv3-progress{padding:.625rem 1rem;border-bottom:1px solid var(--border);background:#fafbff}
.pcv3-locs{padding:.375rem .875rem .5rem;border-bottom:1px solid var(--border)}
.pcv3-loc-row{display:flex;align-items:center;gap:.5rem;padding:.2rem 0}
.pcv3-loc-name{font-size:.78rem;font-weight:700;min-width:90px;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcv3-loc-tests{flex:1;font-size:.68rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcv3-foot{padding:.625rem 1rem;display:flex;justify-content:space-between;align-items:center;background:var(--bg)}

/* ── ASSET INSPECTION STATUS ─────────────────────────────── */
.chip.insp-ok{background:var(--success-l);color:var(--success)}
.chip.insp-exp{background:var(--danger-l);color:var(--danger)}

/* ── SETTINGS TABS ───────────────────────────────────────── */
.sett-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem;border-bottom:2px solid var(--border);padding-bottom:.25rem;flex-wrap:wrap}
.sett-tab{padding:.5rem 1.1rem;border-radius:var(--r) var(--r) 0 0;background:transparent;border:1px solid transparent;border-bottom:none;font-weight:600;font-size:.82rem;color:var(--text-muted);cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.4rem}
.sett-tab:hover{background:var(--bg);color:var(--text-1)}
.sett-tab.active{background:#fff;border-color:var(--border);border-bottom-color:#fff;color:var(--primary);margin-bottom:-2px}
.sett-panel{display:none}
.sett-panel.active{display:block}

/* ── SETTINGS LAYOUT ALWAYS 2 EQUAL COLS ─────────────────── */
.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}}

/* ── THEME SWATCH BUTTONS ─────────────────────────────────── */
.theme-swatch{width:30px;height:30px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform .12s,border-color .12s}
.theme-swatch:hover{transform:scale(1.15)}
.theme-swatch.active{border-color:var(--text-1);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--primary)}

/* ── EMPLOYEE PROFILE MODAL ──────────────────────────────── */
.emp-profile-section{margin-bottom:1rem;border-top:1px solid var(--border);padding-top:.75rem}
.eps-title{font-size:.82rem;font-weight:700;color:var(--text-1);margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem}
.eps-title i{color:var(--primary)}

/* ── WARNING TAG (Other Dept) ─────────────────────────────── */
.warning-tag{background:#fef3c7;color:#92400e;padding:.15rem .5rem;border-radius:99px;font-size:.72rem;font-weight:700;white-space:nowrap}

/* ── EMPLOYEE TABLE IMPROVED ─────────────────────────────── */
#emp-tbody tr { transition: background .12s; }
#emp-tbody tr:hover { background: var(--primary-xl) !important; }
#emp-tbody td { vertical-align: middle; }

/* ── PETTY CASH SUMMARY CARDS ────────────────────────────── */
.cash-summary-grid .cash-card { transition: transform .12s, box-shadow .12s; }
.cash-summary-grid .cash-card[onclick]:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.1); }

/* ── FLOAT LEDGER TABLE ──────────────────────────────────── */
#float-tbody tr { cursor: pointer; transition: background .1s; }
#float-tbody tr:hover { background: var(--primary-xl) !important; }

/* ── EMP MODAL FORM SECTIONS ─────────────────────────────── */
.form-section-title { font-size:.8rem;font-weight:700;color:var(--text-1);margin-bottom:.625rem;display:flex;align-items:center;gap:.4rem }

/* ═══════════════════════════════════════════════════════════
   PETTY CASH V7 — Dashboard cards
   ═══════════════════════════════════════════════════════════ */
.petty-dash-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: .875rem;
  padding: .25rem 0 1.25rem;
}
.petty-stat-card {
  background: #fff;
  border-radius: var(--r-lg);
  padding: 1rem 1.125rem .875rem;
  border: 1px solid var(--border);
  transition: transform .12s, box-shadow .12s;
}
.petty-stat-card[onclick]:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.1);
}
.psc-header { display: flex; align-items: center; margin-bottom: .5rem; }
.psc-icon {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: .95rem; flex-shrink: 0;
}
.psc-val { font-size: 1.35rem; font-weight: 800; line-height: 1; margin-bottom: .25rem; }
.psc-label { font-size: .75rem; font-weight: 700; color: var(--text-1); margin-bottom: .1rem; }
.psc-sub { font-size: .68rem; color: var(--text-muted); line-height: 1.4; }

/* ═══════════════════════════════════════════════════════════
   PETTY CASH TABS — improved
   ═══════════════════════════════════════════════════════════ */
.petty-tabs {
  display: flex;
  gap: .25rem;
  border-bottom: 2px solid var(--border);
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
  padding-bottom: 0;
}
.petty-tab {
  padding: .55rem 1rem;
  border: 1px solid transparent;
  border-bottom: none;
  border-radius: var(--r) var(--r) 0 0;
  background: transparent;
  color: var(--text-muted);
  font-weight: 600;
  font-size: .78rem;
  cursor: pointer;
  transition: all .15s;
  display: flex;
  align-items: center;
  gap: .35rem;
  margin-bottom: -2px;
}
.petty-tab:hover { color: var(--text-1); background: var(--bg); }
.petty-tab.active {
  background: #fff;
  border-color: var(--border);
  border-bottom-color: #fff;
  color: var(--primary);
}
.petty-panel { display: none; }
.petty-panel.active { display: block; }

/* ═══════════════════════════════════════════════════════════
   EMPLOYEE TABLE V7 — avatar + better spacing
   ═══════════════════════════════════════════════════════════ */
.module-toolbar { gap: .625rem; }
#emp-tbody tr { transition: background .1s; }
#emp-tbody tr:hover td { background: var(--primary-xl) !important; }
.emp-avatar {
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--primary-xl); border: 2px solid #bfdbfe;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: .85rem; color: var(--primary);
  flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   PRINT OVERLAY — ensure Print button is prominent
   ═══════════════════════════════════════════════════════════ */
#print-overlay .print-btn {
  background: #2563eb;
  color: #fff;
  border: none;
  padding: .55rem 1.25rem;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 700;
  font-size: .875rem;
  display: flex;
  align-items: center;
  gap: .4rem;
  transition: background .15s;
}
#print-overlay .print-btn:hover { background: #1d4ed8; }

/* ═══════════════════════════════════════════════════════════
   FLOAT LEDGER — cleared indicator
   ═══════════════════════════════════════════════════════════ */
.float-cleared { background: var(--success-l) !important; }
.float-open    { background: var(--warning-l) !important; }

/* ── BALANCE TRACKER TABLE (full-width, not in grid) ─────── */
#cashBalanceTracker table {
  width: 100%;
  border-collapse: collapse;
  min-width: 500px;
}
#cashBalanceTracker th {
  padding: .5rem .875rem;
  text-align: left;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  border-bottom: 2px solid var(--border);
  background: var(--bg);
  white-space: nowrap;
}
#cashBalanceTracker td {
  padding: .625rem .875rem;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
#cashBalanceTracker tr:last-child td { border-bottom: none; }
#cashBalanceTracker tr:hover td { background: var(--primary-xl); }

/* ── PETTY DASH GRID ─────────────────────────────────────── */
.petty-dash-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: .875rem;
}

/* ── TEST ENTRY ROW (work entry) ─────────────────────────── */
.ter-sub-row {
  animation: fadeIn .2s ease;
}
@keyframes fadeIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }

/* ── PROJECT CARDS V2 ─────────────────────────────────────── */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1rem;
}
.pcv3-card {
  background: #fff;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: box-shadow .15s, transform .15s;
}
.pcv3-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
  transform: translateY(-1px);
}

/* ── WORK ENTRY SUB-TEST ROW ─────────────────────────────── */
.ter-sub-row {
  transition: all .2s ease;
}

/* ── MODULE TOOLBAR BUTTON ALIGNMENT ─────────────────────── */
.module-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1rem;
}

/* ── PROJECT PLAN ─────────────────────────────────────────── */
#project-plans-list .data-table td,
#project-plans-list .data-table th { padding: .45rem .625rem; font-size: .8rem; }

/* ── SETTINGS GEO TESTS ──────────────────────────────────── */
#geoTestCatList .form-input { height: 32px; padding: .35rem .625rem; }

/* ── HSE TABLE ───────────────────────────────────────────── */
#hse-inc-tbody .btn-sm, #hse-tb-tbody .btn-sm { margin-bottom: .1rem; }

/* ─── Nav Accordion Groups ───────────────────── */
.nav-group { margin-bottom:.125rem; }
.nav-group-head {
  display:flex;align-items:center;gap:.5rem;width:100%;border:none;
  background:transparent;padding:.5rem .75rem;font-size:.72rem;font-weight:700;
  color:#94a3b8;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;
  text-align:left;transition:color .15s;
}
.nav-group-head:hover { color:#e2e8f0; }
.nav-group-head span.nav-badge { margin-left:auto; }
.nav-chevron { margin-left:auto;font-size:.55rem;transition:transform .2s; }
.nav-group-head.open .nav-chevron { transform:rotate(180deg); }
.nav-group-items { overflow:hidden;max-height:500px;transition:max-height .3s ease; }
.nav-group-items.hidden { max-height:0!important; }
.nav-group-items .nav-link { padding-left:2rem;font-size:.82rem; }

/* ─── Compact mode ───────────────────────────── */
body.compact-mode .module-toolbar { padding:.375rem .5rem; }
body.compact-mode td, body.compact-mode th { padding:.3rem .5rem; }
body.compact-mode .cash-card { padding:.625rem; }
