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

/* ── CSS Variables ── */
:root {
  --bg:           #f0f2f5;
  --surface:      #ffffff;
  --surface-2:    #f8f9fb;
  --border:       #cbd5e1;
  --border-light: #e5e7eb;
  --navy:         #0f172a;
  --navy-light:   #1e293b;
  --text-1:       #0f172a;
  --text-2:       #475569;
  --text-3:       #64748b;
  --blue:         #2563eb;
  --blue-hover:   #1d4ed8;
  --blue-bg:      #eff6ff;
  --blue-border:  #bfdbfe;
  --blue-light:   #60a5fa;
  --shadow-sm:    0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow:       0 2px 8px rgba(0,0,0,.07), 0 4px 20px rgba(0,0,0,.05);
  --shadow-md:    0 4px 16px rgba(0,0,0,.09), 0 8px 32px rgba(0,0,0,.06);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--bg);color:#1e293b;min-height:100vh;overflow-x:hidden;font-size:14px;line-height:1.6}

/* ── Layout ── */
.app-layout{display:flex;min-height:100vh}
.sidebar{background-color:#0f172a !important;width:240px !important;height:100vh !important;position:fixed !important;left:0 !important;top:0 !important;z-index:100 !important;overflow-y:auto !important;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.06);transition:transform .3s ease}
.sidebar *{color:#ffffff !important}
[dir=rtl] .sidebar{left:auto !important;right:0 !important;border-right:none;border-left:1px solid rgba(255,255,255,.06)}
.main-content{margin-left:240px;flex:1;padding:2rem 2.5rem;min-height:100vh;position:relative;z-index:1}
[dir=rtl] .main-content{margin-left:0;margin-right:240px}

/* ── Nav section labels (non-collapsible, e.g. MAIN) ── */
.nav-section-label{color:#94a3b8 !important;font-size:10px !important;text-transform:uppercase !important;letter-spacing:0.1em !important;padding:16px 20px 6px !important;display:block;font-weight:600;font-family:'Inter',sans-serif}

/* ── Nav group labels ── */
.nav-group-label{color:#94a3b8 !important;font-size:10px !important;text-transform:uppercase !important;letter-spacing:0.1em !important;padding:16px 20px 8px !important;display:block;font-weight:600;font-family:'Inter',sans-serif;background:none;border:none;width:100%;text-align:left;cursor:pointer}
[dir=rtl] .nav-group-label{text-align:right}
.nav-group-label:hover{color:#cbd5e1 !important}

/* ── Nav items ── */
.nav-item{display:flex !important;align-items:center !important;padding:10px 20px !important;color:#ffffff !important;text-decoration:none !important;font-size:14px !important;cursor:pointer !important;gap:10px;font-weight:500;border-left:3px solid transparent;transition:background .15s,border-color .15s}
[dir=rtl] .nav-item{border-left:none;border-right:3px solid transparent}
.nav-item:hover{background-color:#1e293b !important}
.nav-item.active{background-color:#1e40af !important;border-left:3px solid #60a5fa !important}
[dir=rtl] .nav-item.active{border-right:3px solid #60a5fa !important;border-left:none !important}
.nav-item svg{flex-shrink:0;opacity:.7}
.nav-item:hover svg,.nav-item.active svg{opacity:1}

/* ── Group collapse animation ── */
.nav-group-items{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;overflow:hidden}
.nav-group-items.expanded{grid-template-rows:1fr}
.nav-group-items>div{min-height:0}
.nav-group-arrow{transition:transform .25s ease;flex-shrink:0;margin-left:auto}
[dir=rtl] .nav-group-arrow{margin-left:0;margin-right:auto}
.nav-group-arrow.open{transform:rotate(180deg)}

/* ── Orbs (very subtle on light bg) ── */
.orb{position:fixed;border-radius:50%;filter:blur(100px);pointer-events:none;z-index:0;animation:orbFloat 20s ease-in-out infinite}
.orb-1{width:600px;height:600px;background:rgba(37,99,235,.045);top:-200px;right:0%;animation-delay:0s}
.orb-2{width:400px;height:400px;background:rgba(37,99,235,.035);bottom:0%;left:10%;animation-delay:-7s}
.orb-3{width:320px;height:320px;background:rgba(16,185,129,.03);top:40%;right:20%;animation-delay:-14s}
@keyframes orbFloat{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(20px,-20px) scale(1.03)}66%{transform:translate(-15px,15px) scale(.98)}}

/* ── Sidebar Logo ── */
.sidebar-logo{padding:1.5rem 1.25rem;display:flex;align-items:center;gap:.875rem;border-bottom:1px solid rgba(255,255,255,.08)}
.logo-icon{width:40px;height:40px;background:#2563eb;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.1rem;color:#fff;flex-shrink:0;box-shadow:0 4px 12px rgba(37,99,235,.35)}
.logo-text{display:flex;flex-direction:column;line-height:1}
.logo-main{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.95rem;color:#fff}
.logo-sub{font-size:.65rem;color:#60a5fa;letter-spacing:.12em;text-transform:uppercase;margin-top:2px}

/* ── Nav ── */
.sidebar-nav{flex:1;padding:1rem .75rem;display:flex;flex-direction:column;gap:.2rem;overflow-y:auto}
.nav-link{display:flex;align-items:center;gap:.75rem;padding:.7rem .875rem;border-radius:10px;text-decoration:none;color:rgba(255,255,255,.55);font-size:.875rem;font-weight:500;transition:all .2s;border:1px solid transparent;border-left:3px solid transparent}
[dir=rtl] .nav-link{border-left:none;border-right:3px solid transparent}
.nav-link:hover{color:rgba(255,255,255,.9);background:#1e293b;border-left-color:transparent}
[dir=rtl] .nav-link:hover{border-right-color:transparent}
.nav-link.active{color:#fff;background:#1e40af;border-left-color:#60a5fa}
[dir=rtl] .nav-link.active{border-right-color:#60a5fa;border-left-color:transparent}
.nav-icon{flex-shrink:0;display:flex;align-items:center;opacity:.65}
.nav-link:hover .nav-icon,.nav-link.active .nav-icon{opacity:1}

/* ── Sidebar Footer ── */
.sidebar-footer{padding:.875rem .75rem;border-top:1px solid #1e293b;display:flex;flex-direction:column;gap:.5rem}
.sidebar-footer-btns{display:flex;flex-direction:column;gap:.3rem}
.lang-toggle{width:100%;display:flex;align-items:center;gap:.5rem;padding:.575rem 1rem;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);cursor:pointer;font-size:.8rem;font-family:'Inter',sans-serif;transition:all .2s}
.lang-toggle:hover{background:rgba(255,255,255,.12);color:#fff}
.logout-btn{width:100%;display:flex;align-items:center;gap:.5rem;padding:.575rem 1rem;border-radius:8px;background:transparent;border:none;color:#ef4444;cursor:pointer;font-size:.8rem;font-family:'Inter',sans-serif;transition:all .2s}
.logout-btn:hover{background:rgba(239,68,68,.1);color:#fca5a5}

/* ── Sidebar User ── */
.sidebar-user{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07)}
.sidebar-user-avatar{width:32px;height:32px;border-radius:8px;background:#2563eb;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.7rem;color:#fff;flex-shrink:0}
.sidebar-user-info{min-width:0;flex:1}
.sidebar-user-name{font-size:.8rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user-email{font-size:.68rem;color:rgba(255,255,255,.38);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}

/* ── Mobile ── */
.mobile-menu-btn{display:none;position:fixed;top:1rem;left:1rem;z-index:200;width:40px;height:40px;background:#0f172a;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;cursor:pointer;align-items:center;justify-content:center;box-shadow:var(--shadow)}
[dir=rtl] .mobile-menu-btn{left:auto;right:1rem}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:90}
@media(max-width:768px){
  .sidebar{transform:translateX(-100%)}
  [dir=rtl] .sidebar{transform:translateX(100%)}
  .sidebar.mobile-open{transform:translateX(0)}
  .main-content{margin-left:0!important;margin-right:0!important;padding:1rem;padding-top:4rem}
  .mobile-menu-btn{display:flex}
  .sidebar-overlay.active{display:block}
  .grid-4,.kpi-grid{grid-template-columns:repeat(2,1fr)!important}
  .grid-3{grid-template-columns:1fr 1fr!important}
  .grid-2,.form-row,.form-row-3{grid-template-columns:1fr!important}
}

/* ── Page Header ── */
.page-header{margin-bottom:2rem}
.page-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:1.75rem;color:#0f172a;letter-spacing:-.02em}
.page-subtitle{color:#475569;font-size:.875rem;margin-top:.35rem}

/* ── Card ── */
.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.5rem;position:relative;box-shadow:var(--shadow)}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.card-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:1.125rem;color:#0f172a}

/* ── KPI ── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-bottom:2rem}
@media(max-width:1100px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:500px){.kpi-grid{grid-template-columns:1fr}}
.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.5rem;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.kpi-glow{position:absolute;top:-50px;right:-50px;width:130px;height:130px;border-radius:50%;opacity:.08;filter:blur(30px)}
[dir=rtl] .kpi-glow{right:auto;left:-50px}
.kpi-label{font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#475569;margin-bottom:.5rem}
.kpi-value{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:2rem;color:#0f172a;line-height:1}
.kpi-delta{font-size:.78rem;color:#64748b;margin-top:.4rem}
.kpi-delta.up{color:#059669}
.kpi-delta.dn{color:#dc2626}

/* ── Grids ── */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}

/* ── Badge ── */
.badge{display:inline-flex;align-items:center;padding:.25rem .7rem;border-radius:99px;font-size:.72rem;font-weight:600;white-space:nowrap}
.badge-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}
.badge-warning{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.badge-danger{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}
.badge-info{background:#e0f2fe;color:#0c4a6e;border:1px solid #7dd3fc}
.badge-primary{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.badge-gray{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}
.badge-orange{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}

/* ── Table ── */
.table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border)}
table{width:100%;border-collapse:collapse}
thead th{padding:.875rem 1rem;text-align:left;font-size:.72rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:#374151;background:#f1f5f9;border-bottom:1px solid #cbd5e1;white-space:nowrap}
[dir=rtl] thead th{text-align:right}
tbody tr{border-bottom:1px solid #e5e7eb;transition:background .15s}
tbody tr:last-child{border-bottom:none}
tbody tr:hover{background:#f8fafc}
tbody td{padding:.875rem 1rem;font-size:.875rem;color:#1e293b}
[dir=rtl] tbody td{text-align:right}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:0 1.125rem;height:36px;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:all .2s;text-decoration:none;font-family:'Inter',sans-serif;white-space:nowrap}
.btn-primary{background:#2563eb;color:#fff;border:1px solid #2563eb}
.btn-primary:hover{background:#1d4ed8;border-color:#1d4ed8}
.btn-outline{background:#fff;border:1px solid #d1d5db;color:#374151}
.btn-outline:hover{background:#f9fafb;border-color:#9ca3af}
.btn-success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}
.btn-success:hover{background:#a7f3d0}
.btn-danger{background:#ef4444;border:1px solid #ef4444;color:#fff}
.btn-danger:hover{background:#dc2626;border-color:#dc2626}
.btn-warning{background:#fef3c7;border:1px solid #fcd34d;color:#92400e}
.btn-warning:hover{background:#fde68a}
.btn-sm{padding:0 .75rem;height:30px;font-size:.78rem;border-radius:6px}
.btn-icon{padding:.5rem;border-radius:6px;height:auto}

/* ── Forms ── */
.form-group{margin-bottom:1.25rem}
.form-label{display:block;font-size:.8rem;font-weight:500;color:#374151;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}
.form-control{width:100%;padding:.625rem .875rem;background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#0f172a;font-size:.875rem;outline:none;transition:border-color .2s,box-shadow .2s;font-family:'Inter',sans-serif}
.form-control:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.form-control::placeholder{color:#9ca3af}
select.form-control option{background:#fff;color:#1e293b}
textarea.form-control{resize:vertical;min-height:100px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}
.form-hint{font-size:.75rem;color:#9ca3af;margin-top:.35rem}

/* ── Stage Track ── */
.stage-track{display:flex;align-items:flex-start;position:relative;margin:1.5rem 0 2.5rem}
.stage-track::before{content:'';position:absolute;top:15px;left:32px;right:32px;height:2px;background:#e5e7eb;z-index:0}
.stage-item{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;flex:1}
.stage-dot{width:32px;height:32px;border-radius:50%;border:2px solid #e2e8f0;background:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:#94a3b8;transition:all .3s;box-shadow:0 1px 3px rgba(0,0,0,.07)}
.stage-item.done .stage-dot{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 2px 8px rgba(37,99,235,.25)}
.stage-item.current .stage-dot{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.15),0 2px 8px rgba(37,99,235,.3);animation:stagePulse 2s ease-in-out infinite}
@keyframes stagePulse{0%,100%{box-shadow:0 0 0 4px rgba(37,99,235,.15),0 2px 8px rgba(37,99,235,.3)}50%{box-shadow:0 0 0 8px rgba(37,99,235,.08),0 2px 8px rgba(37,99,235,.3)}}
.stage-name{font-size:.68rem;color:#64748b;margin-top:.5rem;text-align:center;max-width:72px;line-height:1.3;font-weight:500}
.stage-item.done .stage-name{color:#2563eb;font-weight:600}
.stage-item.current .stage-name{color:#2563eb;font-weight:600}

/* ── Toast ── */
.toast{position:fixed;bottom:2rem;right:2rem;padding:.875rem 1.5rem;border-radius:10px;background:#0f172a;border:1px solid rgba(255,255,255,.12);color:#fff;font-size:.875rem;transform:translateY(80px);opacity:0;transition:all .3s;z-index:9999;max-width:340px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.toast.show{transform:translateY(0);opacity:1}
.toast-success{border-color:#6ee7b7;border-left:3px solid #059669}
.toast-error{border-color:#fca5a5;border-left:3px solid #dc2626}
.toast-info{border-color:#7dd3fc;border-left:3px solid #2563eb}
[dir=rtl] .toast{right:auto;left:2rem}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--surface-2)}
::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#9ca3af}

/* ── Search ── */
.search-bar{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:.625rem 1rem;box-shadow:var(--shadow-sm)}
.search-bar input{background:transparent;border:none;outline:none;color:#0f172a;font-size:.875rem;width:100%;font-family:'Inter',sans-serif}
.search-bar input::placeholder{color:#9ca3af}

/* ── Timeline ── */
.timeline{position:relative;padding-left:2rem}
[dir=rtl] .timeline{padding-left:0;padding-right:2rem}
.timeline::before{content:'';position:absolute;left:.625rem;top:0;bottom:0;width:2px;background:#e5e7eb}
[dir=rtl] .timeline::before{left:auto;right:.625rem}
.tl-item{position:relative;margin-bottom:1.5rem}
.tl-dot{position:absolute;left:-1.375rem;top:.25rem;width:16px;height:16px;border-radius:50%;border:2px solid #e5e7eb;background:#fff;z-index:1}
[dir=rtl] .tl-dot{left:auto;right:-1.375rem}
.tl-dot.done{background:#2563eb;border-color:#2563eb}
.tl-dot.current{background:#2563eb;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.2)}
.tl-dot.pending-dot{background:#f3f4f6;border-color:#e5e7eb}
.tl-dot.rejected{background:#dc2626;border-color:#dc2626}
.tl-content{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:1rem;box-shadow:var(--shadow-sm)}
.tl-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem;gap:.5rem}
.tl-title{font-weight:600;font-size:.875rem;color:#0f172a}
.tl-date{font-size:.72rem;color:#64748b;white-space:nowrap}
.tl-body{font-size:.8rem;color:#475569}

/* ── Filters row ── */
.filters-row{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap;margin-bottom:1.5rem}
.filter-select{padding:.5rem .875rem;background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#1e293b;font-size:.8rem;outline:none;cursor:pointer;font-family:'Inter',sans-serif;box-shadow:var(--shadow-sm)}
.filter-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.filter-select option{background:#fff;color:#1e293b}

/* ── Empty state ── */
.empty-state{text-align:center;padding:4rem 2rem;color:#64748b}
.empty-icon{font-size:3rem;margin-bottom:1rem}
.empty-text{font-size:.9rem;line-height:1.6}

/* ── Stars ── */
.stars{display:inline-flex;gap:1px}
.star{font-size:.875rem;color:#e5e7eb}
.star.on{color:#2563eb}

/* ── Success / Confirmation state ── */
.success-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:2.5rem 2rem;text-align:center;border-top:3px solid #2563eb;box-shadow:var(--shadow)}
.success-icon{width:52px;height:52px;margin:0 auto 1.25rem;display:flex;align-items:center;justify-content:center;border:2px solid #2563eb;border-radius:50%;color:#2563eb}
.success-icon svg{width:26px;height:26px}
.success-title{font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:1.375rem;color:#0f172a;margin-bottom:.375rem}
.success-subtitle{font-size:.875rem;color:#6b7280;margin-bottom:1.5rem}
.success-pill{display:inline-block;background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;border-radius:99px;padding:.35rem 1rem;font-size:.8rem;font-weight:500;margin-bottom:1.75rem}
.success-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* ── Utilities ── */
.flex-between{display:flex;align-items:center;justify-content:space-between}
.flex-gap{display:flex;align-items:center;gap:.75rem}
.flex-wrap{flex-wrap:wrap}
.mb-0{margin-bottom:0}
.mb-1{margin-bottom:.5rem}
.mb-2{margin-bottom:1rem}
.mb-3{margin-bottom:1.5rem}
.mb-4{margin-bottom:2rem}
.mt-1{margin-top:.5rem}
.mt-2{margin-top:1rem}
.mt-3{margin-top:1.5rem}
.text-muted{color:#9ca3af;font-size:.8rem}
.text-blue{color:#2563eb}
.text-sm{font-size:.8rem}
.font-jakarta{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700}
.divider{height:1px;background:#e5e7eb;margin:2rem 0}
.chart-wrap{position:relative;width:100%;height:260px}
.chart-wrap-sm{position:relative;width:100%;height:200px}

/* ── Line items table ── */
.li-table{width:100%;border-collapse:collapse;margin-top:.5rem}
.li-table th{padding:.5rem .75rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid #e5e7eb;text-align:left}
[dir=rtl] .li-table th{text-align:right}
.li-table td{padding:.375rem .5rem;border-bottom:1px solid #f3f4f6}
.li-table td input,.li-table td select{width:100%;background:#f9fafb;border:1px solid #e5e7eb;border-radius:5px;color:#1e293b;font-size:.8rem;padding:.375rem .5rem;outline:none;font-family:'Inter',sans-serif}
.li-table td input:focus,.li-table td select:focus{border-color:#2563eb;background:#fff;box-shadow:0 0 0 2px rgba(37,99,235,.1)}
.li-total-row td{padding:.625rem .75rem;font-weight:600;color:#2563eb;border-top:1px solid #e5e7eb;border-bottom:none}

/* ── Approval action card ── */
.vendor-approval-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}
.vendor-approval-card:hover{border-color:#d1d5db;box-shadow:var(--shadow)}
.vac-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:.75rem}
.vac-name{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:1rem;color:#0f172a}
.vac-meta{font-size:.78rem;color:#64748b;margin-top:.2rem}
.vac-actions{display:flex;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}

/* ── Donut legend ── */
.legend{display:flex;flex-direction:column;gap:.5rem}
.legend-item{display:flex;align-items:center;gap:.625rem;font-size:.8rem;color:#1e293b}
.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}

/* ── Sidebar logo aliases (used by buildSidebar) ── */
.logo-mark{width:40px;height:40px;background:#2563eb;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;font-size:1.1rem;color:#fff;flex-shrink:0;box-shadow:0 4px 12px rgba(37,99,235,.35)}
.logo-text{font-family:'Plus Jakarta Sans',sans-serif;font-weight:700;font-size:.95rem;color:#fff;line-height:1.2}
.logo-pro{color:#60a5fa;font-size:.95rem;font-weight:700}

/* ── Sidebar bottom section ── */
.sidebar-bottom{padding:.875rem .75rem;border-top:1px solid #1e293b;display:flex;flex-direction:column;gap:.5rem}
.sidebar-signout{width:100%;display:flex;align-items:center;gap:.5rem;padding:.575rem 1rem;border-radius:8px;background:transparent;border:none;color:#ef4444;cursor:pointer;font-size:.8rem;font-family:'Inter',sans-serif;transition:all .2s;text-align:left}
.sidebar-signout:hover{background:rgba(239,68,68,.1);color:#fca5a5}

/* ── Collapsible sidebar groups ── */
.sidebar-group { margin-bottom: .125rem; }

.sidebar-group-label {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .5rem 1rem .375rem;
  background: none;
  border: none;
  cursor: pointer;
  color: #94a3b8;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-family: 'Inter', sans-serif;
  border-radius: 8px;
  transition: color .2s;
  margin-top: .375rem;
}
.sidebar-group-label:hover { color: #cbd5e1; }
.sidebar-group-label.collapsed { color: #64748b; }

.group-arrow {
  transition: transform .25s ease;
  flex-shrink: 0;
  color: #64748b;
}
.group-arrow.open { transform: rotate(180deg); }

.sidebar-group-items {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .25s ease;
  overflow: hidden;
}
.sidebar-group-items.expanded { grid-template-rows: 1fr; }
.sidebar-group-items > * { min-height: 0; }

/* Direct sidebar items (non-grouped) */
.sidebar-item {
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: .625rem 1rem;
  border-radius: 10px;
  text-decoration: none;
  color: rgba(255,255,255,.55);
  font-size: .82rem;
  font-weight: 500;
  transition: all .2s;
  border: 1px solid transparent;
  cursor: pointer;
  line-height: 1.35;
  font-family: 'Inter', sans-serif;
}
.sidebar-item:hover { color: rgba(255,255,255,.9); background: #1e293b; }
.sidebar-item.active { color: #fff; background: #1e40af; border-left: 3px solid #60a5fa; }
.sidebar-item svg, .sidebar-icon { flex-shrink: 0; opacity: .65; }
.sidebar-item:hover .sidebar-icon, .sidebar-item.active .sidebar-icon { opacity: 1; }

.sidebar-avatar {
  width: 32px; height: 32px;
  border-radius: 8px;
  background: #2563eb;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .85rem;
  color: #fff; flex-shrink: 0;
}

/* ── Logo integration ───────────────────────────────────── */
.logo-wrapper-sidebar {
  padding: 20px 16px 16px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 8px;
}
.logo-sidebar {
  height: 34px;
  width: auto;
  max-width: 152px;
  object-fit: contain;
  object-position: left center;
  display: block;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}
.logo-wrapper-auth {
  text-align: center;
  margin-bottom: 28px;
}
.logo-auth {
  height: 44px;
  width: auto;
  max-width: 200px;
  object-fit: contain;
  display: inline-block;
  image-rendering: -webkit-optimize-contrast;
}
