@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
:root{
  --primary:#ff902f;--primary-h:#e07820;--primary-lt:rgba(255,144,47,.12);
  --secondary:#7a4a10;--success:#ff902f;--warning:#F59E0B;--danger:#EF4444;
  --info:#06B6D4;--orange:#F97316;--purple:#8B5CF6;
  --sidebar:#0a0a0a;--sw:252px;--hh:62px;
  --bg:#F3F4F9;--card:#fff;--border:rgba(0,0,0,.08);
  --txt:#1E2D24;--muted:#6B7280;--shadow:0 2px 12px rgba(0,0,0,.06);
  --r:8px;--rl:12px;--font:'Inter',sans-serif;
  /* premium tokens (derived from existing palette only) */
  --shadow-sm:0 1px 3px rgba(20,20,30,.05),0 1px 2px rgba(20,20,30,.04);
  --shadow-md:0 4px 16px rgba(20,20,30,.07),0 1px 3px rgba(20,20,30,.05);
  --shadow-lg:0 12px 32px rgba(20,20,30,.10),0 4px 10px rgba(20,20,30,.06);
  --shadow-primary:0 8px 20px rgba(255,144,47,.22);
  --tint-1:linear-gradient(180deg,rgba(255,144,47,.05) 0%,rgba(255,144,47,0) 100%);
  --tint-2:linear-gradient(135deg,rgba(255,144,47,.06) 0%,rgba(122,74,16,.04) 100%);
  --grad-primary:linear-gradient(135deg,#ff902f 0%,#e07820 100%);
  --ease:cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg);color:var(--txt);font-size:14px;min-height:100vh;margin:0;-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;line-height:1.25}
p{line-height:1.6}
a{text-decoration:none;color:inherit;transition:color .18s var(--ease)}a:hover{color:var(--primary)}
::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:#c8d8cf;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}

/* subtle page backdrop tint so plain gray areas feel intentional, not empty */
.page-wrapper{background:
  radial-gradient(600px 300px at 100% 0%, rgba(255,144,47,.05), transparent 60%),
  radial-gradient(500px 260px at 0% 100%, rgba(122,74,16,.035), transparent 60%);
}

@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.page-content{animation:fadeInUp .35s var(--ease)}

/* SIDEBAR */
.sidebar{position:fixed;top:0;left:0;width:var(--sw);height:100%;background:var(--sidebar);background-image:linear-gradient(180deg,#0d0d0d 0%,#000 100%);overflow-y:auto;overflow-x:hidden;z-index:1000;transition:width .3s var(--ease);box-shadow:2px 0 24px rgba(0,0,0,.15)}
.sidebar::-webkit-scrollbar{width:3px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1)}
.s-logo{height:150px;display:flex;align-items:center;justify-content:flex-start;padding:8px 18px;border-bottom:1px solid rgba(255,255,255,.07);box-sizing:border-box;background:transparent}
.s-logo-icon{width:36px;height:36px;background:var(--grad-primary);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;box-shadow:var(--shadow-primary)}
.s-logo-txt{color:#fff;font-weight:800;font-size:16px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s-logo-txt span{color:var(--success);font-size:11px;font-weight:500;display:block}
.app-logo{height:98px;width:auto;max-width:100%;object-fit:contain;display:block;flex-shrink:0;image-rendering:-webkit-optimize-contrast}
@media (max-width:768px){.app-logo{height:70px}}
.s-nav{padding:6px 0 24px}
.s-cat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.3);padding:16px 20px 6px}
.s-link{display:flex;align-items:center;gap:10px;padding:9px 20px;margin:1px 8px;border-radius:8px;color:rgba(255,255,255,.65);font-size:13.5px;font-weight:500;transition:.2s var(--ease);cursor:pointer;border:none;background:none;width:calc(100% - 16px);text-align:left;position:relative;text-decoration:none;line-height:1.3}
.s-link:hover{background:rgba(255,255,255,.07);color:#fff;text-decoration:none;transform:translateX(2px)}
.s-link.active{background:linear-gradient(90deg,rgba(255,144,47,.28) 0%,rgba(255,144,47,.12) 100%);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,144,47,.25)}.s-link.active::before{content:'';position:absolute;left:-8px;top:6px;bottom:6px;width:3px;background:var(--grad-primary);border-radius:0 3px 3px 0}
.s-link i.ic{font-size:15px;width:18px;text-align:center;flex-shrink:0}
.s-link .arr{margin-left:auto;font-size:11px;transition:transform .2s}.s-link[aria-expanded="true"] .arr{transform:rotate(90deg)}.s-link[aria-expanded="true"]{color:#fff}
.s-sub{background:rgba(0,0,0,.15)}.s-sub .s-link{padding:7px 20px 7px 48px;font-size:13px}.s-sub .s-link::before{display:none}.s-sub .s-link.active{color:var(--success);background:transparent;font-weight:600}.s-sub .s-link.active::before{display:block}

/* HEADER */
.header{position:fixed;top:0;left:var(--sw);right:0;height:var(--hh);background:rgba(255,255,255,.85);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);z-index:999;display:flex;align-items:center;padding:0 24px;gap:12px;box-shadow:0 1px 2px rgba(0,0,0,.03);transition:left .3s var(--ease)}
.h-left{display:flex;align-items:center;gap:12px;flex:1}
.h-right{display:flex;align-items:center;gap:6px}
.h-search{position:relative;width:260px}
.h-search input{width:100%;padding:7px 36px 7px 14px;border:1.5px solid var(--border);border-radius:8px;font-size:13px;background:var(--bg);color:var(--txt);font-family:var(--font);outline:none;transition:.2s var(--ease)}
.h-search input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px rgba(255,144,47,.1)}
.h-search .si{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px;pointer-events:none}
.tog-btn{background:none;border:none;width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--txt);transition:.2s var(--ease)}
.tog-btn:hover{background:var(--bg);color:var(--primary)}
.h-btn{background:var(--bg);border:none;width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--txt);transition:.2s var(--ease);position:relative}
.h-btn:hover{background:var(--primary-lt);color:var(--primary);transform:translateY(-1px)}
.h-badge{position:absolute;top:2px;right:2px;width:16px;height:16px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
.h-user{display:flex;align-items:center;gap:8px;cursor:pointer;padding:5px 10px;border-radius:8px;border:none;background:none;transition:.2s var(--ease)}
.h-user:hover{background:var(--bg)}.h-user img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--border)}
.h-uname{font-size:13px;font-weight:600;color:var(--txt)}.h-urole{font-size:11px;color:var(--muted)}

/* PAGE WRAPPER */
.page-wrapper{margin-left:var(--sw);padding-top:var(--hh);min-height:100vh;transition:margin-left .3s var(--ease)}
.page-content{padding:26px 28px}
/* Desktop icon-rail mode. Text stays available as a tooltip while the rail is collapsed. */
body.sidebar-collapsed .sidebar{width:72px}
body.sidebar-collapsed .s-logo{height:78px;padding:10px 14px;justify-content:center}
body.sidebar-collapsed .app-logo{height:48px;width:44px;object-fit:cover;object-position:left center}
body.sidebar-collapsed .s-link{justify-content:center;padding:10px 0;margin-left:8px;margin-right:8px;width:56px}
body.sidebar-collapsed .s-link span,body.sidebar-collapsed .s-link .arr,body.sidebar-collapsed .s-cat{display:none}
body.sidebar-collapsed .s-link i.ic{margin:0;font-size:17px}
body.sidebar-collapsed .s-sub .s-link{padding:10px 0}
body.sidebar-collapsed .header{left:72px}
body.sidebar-collapsed .page-wrapper{margin-left:72px}
.pg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.pg-title{font-size:21px;font-weight:800;margin:0;letter-spacing:-.02em}
.pg-bread{font-size:12.5px;color:var(--muted);margin-top:3px}.pg-bread a{color:var(--primary);font-weight:500}

/* CARDS */
.cc{background:var(--card);border-radius:var(--rl);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow .25s var(--ease),transform .25s var(--ease)}
.cc:hover{box-shadow:var(--shadow-md)}
.cc-h{display:flex;align-items:center;justify-content:space-between;padding:17px 22px;border-bottom:1px solid var(--border);background:var(--tint-1);border-radius:var(--rl) var(--rl) 0 0}
.cc-t{font-size:15px;font-weight:700;margin:0;letter-spacing:-.01em}.cc-b{padding:22px}

/* STAT CARDS */
.sc{background:var(--card);background-image:var(--tint-2);border-radius:var(--rl);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:20px 22px;display:flex;align-items:center;gap:16px;transition:.25s var(--ease);position:relative;overflow:hidden}
.sc::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad-primary);opacity:0;transition:opacity .25s var(--ease)}
.sc:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.sc:hover::after{opacity:1}
.sc-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.03)}
.ic-gr{background:rgba(255,144,47,.12);color:var(--primary)}
.ic-or{background:rgba(249,115,22,.12);color:var(--orange)}
.ic-bl{background:rgba(6,182,212,.12);color:var(--info)}
.ic-pu{background:rgba(139,92,246,.12);color:var(--purple)}
.ic-rd{background:rgba(239,68,68,.12);color:var(--danger)}
.ic-am{background:rgba(245,158,11,.12);color:var(--warning)}
.sc-val{font-size:23px;font-weight:800;line-height:1.1;letter-spacing:-.02em;overflow:hidden;white-space:nowrap;max-width:100%}.sc-lbl{font-size:12.5px;color:var(--muted);margin-top:3px;font-weight:500}
.sc{min-width:0}.sc>div:last-child{min-width:0;flex:1;overflow:hidden}
.sc-trend{font-size:12px;font-weight:600;margin-top:5px;display:flex;align-items:center;gap:3px}.t-up{color:var(--success)}.t-dn{color:var(--danger)}

/* TABLES */
.ct th{background:var(--bg);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:12px 14px;border-bottom:1.5px solid var(--border);white-space:nowrap;border-top:none}
.ct td{padding:13px 14px;vertical-align:middle;font-size:13.5px;border-color:var(--border)}
.ct tbody tr{transition:background .15s var(--ease)}
.ct tbody tr:hover{background:rgba(255,144,47,.04)}.ct th:first-child,.ct td:first-child{padding-left:22px}.ct th:last-child,.ct td:last-child{padding-right:22px}

/* BADGES */
.cb{display:inline-flex;align-items:center;padding:4px 11px;border-radius:20px;font-size:11.5px;font-weight:700;letter-spacing:.01em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}
.cb-s{background:rgba(255,144,47,.12);color:#e07820}
.cb-w{background:rgba(245,158,11,.12);color:#B45309}
.cb-d{background:rgba(239,68,68,.12);color:#DC2626}
.cb-i{background:rgba(6,182,212,.12);color:#0E7490}
.cb-p{background:rgba(255,144,47,.12);color:var(--primary)}
.cb-pu{background:rgba(139,92,246,.12);color:var(--purple)}
.cb-or{background:rgba(249,115,22,.12);color:var(--orange)}
.cb-m{background:rgba(107,114,128,.12);color:#4B5563}
.cb-r{background:rgba(16,185,129,.12);color:#047857}

/* AVATARS */
.av{border-radius:50%;object-fit:cover}
.av-sm{width:32px;height:32px}.av-md{width:38px;height:38px}.av-lg{width:48px;height:48px}
.av-grp{display:flex}.av-grp .av{border:2px solid #fff;margin-left:-8px}.av-grp .av:first-child{margin-left:0}
.av-init{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;flex-shrink:0;font-size:14px;box-shadow:0 2px 6px rgba(0,0,0,.15)}

/* BUTTONS */
.btn-p,.btn-o,.btn-l,.btn-danger{position:relative;overflow:hidden}
.btn-p{background:var(--grad-primary);color:#fff;border:none;padding:9px 17px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:transform .18s var(--ease),box-shadow .18s var(--ease);font-family:var(--font);box-shadow:0 2px 8px rgba(255,144,47,.25)}
.btn-p:hover{color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-primary)}
.btn-p:active{transform:translateY(0) scale(.98)}
.btn-o{background:transparent;color:var(--primary);border:1.5px solid var(--primary);padding:7.5px 15px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.2s var(--ease);font-family:var(--font)}
.btn-o:hover{background:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(255,144,47,.2)}
.btn-l{background:var(--bg);color:var(--txt);border:1px solid transparent;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.2s var(--ease);font-family:var(--font)}
.btn-l:hover{background:#e9edf0;border-color:var(--border);transform:translateY(-1px)}
.btn-sm{padding:5px 12px;font-size:12px}.btn-icon{width:32px;height:32px;padding:0;justify-content:center;border-radius:8px}
.btn-icon:hover{transform:translateY(-1px) scale(1.04)}
.btn-danger{background:var(--danger);color:#fff;border:none;padding:8px 16px;border-radius:8px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:var(--font);transition:.2s var(--ease);box-shadow:0 2px 8px rgba(239,68,68,.22)}
.btn-danger:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(239,68,68,.3)}
/* ripple */
.btn-p::after,.btn-o::after,.btn-danger::after{content:'';position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.35);transform:translate(-50%,-50%);transition:width .4s var(--ease),height .4s var(--ease),opacity .5s}
.btn-p:active::after,.btn-o:active::after,.btn-danger:active::after{width:220px;height:220px;opacity:0;transition:width 0s,height 0s,opacity .4s}

/* PROGRESS */
.cprog{height:7px;border-radius:10px;background:var(--bg);overflow:hidden}
.cprog-b{height:100%;border-radius:10px;transition:width .6s ease}

/* FORMS */
.f-lbl{font-size:12.5px;font-weight:600;margin-bottom:6px;display:block;color:var(--txt);letter-spacing:.01em}
.f-ctrl{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:9px;font-size:13.5px;color:var(--txt);font-family:var(--font);outline:none;transition:.2s var(--ease);background:#fcfcfd}
.f-ctrl:hover{border-color:#d5d9df}
.f-ctrl:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(255,144,47,.12);background:#fff}
textarea.f-ctrl{resize:vertical;min-height:80px}
/* Date/filter actions line up with the form controls, even when labels are above inputs. */
.filter-action{display:flex;align-items:flex-end;padding-bottom:18px}.filter-action .btn-p,.filter-action .btn-l{min-height:42px;justify-content:center}
.filter-action-plain{padding-bottom:0}.filter-action-plain>.flex-fill{flex:1 1 0!important}

/* Shared pagination for static data tables. Input/edit tables remain untouched. */
.table-pager{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:14px 16px;background:var(--card);border-top:1px solid var(--border)}
.table-pager-info{margin-right:auto;color:var(--muted);font-size:12px}.table-pager button{min-width:34px;height:32px;padding:0 9px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--txt);font:inherit;cursor:pointer}.table-pager button:hover:not(:disabled),.table-pager button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.table-pager button:disabled{opacity:.45;cursor:not-allowed}
@media print{.table-pager{display:none!important}.stmt-table tbody tr[style*="display: none"]{display:table-row!important}}
.f-group{margin-bottom:18px}
.input-icon-wrap{position:relative}.input-icon-wrap .f-ctrl{padding-left:36px}.input-icon-wrap .inp-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted)}

/* DROPDOWN */
.dd-menu{border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;min-width:160px}
.dd-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;color:var(--txt);font-size:13px;cursor:pointer;transition:.15s var(--ease);text-decoration:none}
.dd-item:hover{background:var(--primary-lt);color:var(--primary);transform:translateX(2px)}

/* KANBAN */
.kb-board{display:flex;gap:16px;overflow-x:auto;padding-bottom:12px}
.kb-col{min-width:240px;max-width:240px;background:var(--bg);border-radius:10px;padding:12px}
.kb-col-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.kb-col-t{font-weight:600;font-size:13px}.kb-cnt{width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--txt)}
.kb-card{background:#fff;border-radius:8px;padding:12px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;transition:.2s;border-left:3px solid transparent}
.kb-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(-2px)}
.kb-c-t{font-size:13px;font-weight:600;margin-bottom:4px}.kb-c-v{font-size:14px;font-weight:700;color:var(--primary);margin-bottom:6px}.kb-c-m{font-size:11.5px;color:var(--muted)}

/* QUOTATION BUILDER */
.qb-item{background:var(--bg);border:1.5px solid var(--border);border-radius:8px;padding:14px;margin-bottom:10px;position:relative}
.qb-item:hover{border-color:var(--primary)}
.qb-remove{position:absolute;top:10px;right:10px;background:rgba(239,68,68,.1);color:var(--danger);border:none;width:26px;height:26px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px}
.qb-total{background:var(--primary-lt);border:1.5px solid rgba(255,144,47,.3);border-radius:8px;padding:16px}
.qb-total-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13.5px}
.qb-total-row.final{border-top:1.5px solid rgba(255,144,47,.3);padding-top:10px;margin-top:6px;font-size:16px;font-weight:700;color:var(--primary)}

/* INVOICE */
.inv-card{background:#fff;border-radius:12px;padding:40px;box-shadow:0 4px 24px rgba(0,0,0,.08)}
.inv-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid var(--bg)}
.inv-logo{display:flex;align-items:center;gap:12px}.inv-logo-icon{display:flex;align-items:center;justify-content:flex-start}
.inv-company-name{font-size:20px;font-weight:800;color:var(--txt)}.inv-company-sub{font-size:12px;color:var(--muted)}
.inv-badge{background:var(--primary-lt);color:var(--primary);font-weight:700;font-size:11px;padding:4px 12px;border-radius:20px}
.inv-table th{background:#FFF5EB;color:var(--secondary);font-size:12px;font-weight:700;text-transform:uppercase;padding:10px 14px}
.inv-table td{padding:10px 14px;border-color:#F5E6D5;font-size:13.5px}
.inv-total-box{background:#FFF5EB;border-radius:8px;padding:16px}

/* PROGRESS STEPS */
.steps{display:flex;gap:0;margin-bottom:24px;position:relative}
.step{flex:1;text-align:center;position:relative}
.step::before{content:'';position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--border);z-index:0}
.step:first-child::before{display:none}
.step.done::before{background:var(--primary)}
.step-dot{width:30px;height:30px;border-radius:50%;background:var(--border);color:var(--muted);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 6px;position:relative;z-index:1}
.step.done .step-dot{background:var(--primary);color:#fff}
.step.active .step-dot{background:var(--primary);color:#fff;box-shadow:0 0 0 4px rgba(255,144,47,.2)}
.step-lbl{font-size:11px;color:var(--muted);font-weight:500}.step.done .step-lbl,.step.active .step-lbl{color:var(--primary);font-weight:600}

/* AUTH */
.auth-pg{min-height:100vh;background:linear-gradient(135deg,#0F4D2A 0%,#ff902f 60%,#ff902f 100%);display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}
.auth-pg::before{content:'☀';position:absolute;top:-40px;right:-40px;font-size:200px;opacity:.06}
.auth-pg::after{content:'⚡';position:absolute;bottom:-20px;left:-30px;font-size:160px;opacity:.06}
.auth-card{background:#fff;border-radius:20px;padding:40px;width:100%;max-width:440px;box-shadow:0 24px 70px rgba(0,0,0,.22);position:relative;z-index:1}
.auth-logo{text-align:center;margin-bottom:28px}
.auth-logo-ico{width:64px;height:64px;background:var(--grad-primary);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 12px;box-shadow:var(--shadow-primary)}
.auth-title{font-size:22px;font-weight:800;margin-bottom:6px;letter-spacing:-.02em}.auth-sub{color:var(--muted);font-size:13.5px;margin-bottom:24px}
.auth-btn{width:100%;padding:12px;background:var(--grad-primary);color:#fff;border:none;border-radius:10px;font-size:14.5px;font-weight:700;cursor:pointer;font-family:var(--font);transition:.2s var(--ease);margin-top:6px;box-shadow:0 4px 14px rgba(255,144,47,.28)}
.auth-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-primary)}

/* NOTIFICATION DROPDOWN */
.nd{width:360px;padding:0}
.nd-h{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.nd-item{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:.15s}
.nd-item:hover{background:var(--bg)}.nd-item.unr{background:rgba(255,144,47,.04)}
.nd-ico{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.nd-nm{font-size:13px;font-weight:600}.nd-tx{font-size:12.5px;color:var(--muted);margin-top:1px}.nd-tm{font-size:11px;color:var(--muted);margin-top:3px}
.nd-f{padding:12px 16px;text-align:center}.nd-f a{color:var(--primary);font-size:13px;font-weight:500}

/* FOOTER */
.pg-footer{padding:16px 28px;border-top:1px solid var(--border);font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;align-items:center;margin-top:12px;background:var(--tint-1)}
.pg-footer a{color:var(--primary);font-weight:600}

/* CHART CONTAINERS */
.chart-wrap{position:relative;width:100%}

/* QUICK ACTIONS */
.qa-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;border-radius:12px;border:1.5px solid var(--border);cursor:pointer;transition:.22s var(--ease);background:#fff;text-align:center;text-decoration:none;color:var(--txt)}
.qa-btn:hover{border-color:var(--primary);background:var(--primary-lt);color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow-md)}
.qa-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px}
.qa-lbl{font-size:12px;font-weight:700}

/* TIMELINE */
.timeline{position:relative;padding-left:28px}
.timeline::before{content:'';position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--border)}
.tl-item{position:relative;padding-bottom:20px}
.tl-dot{position:absolute;left:-28px;top:2px;width:16px;height:16px;border-radius:50%;border:2px solid #fff;flex-shrink:0}
.tl-title{font-size:13.5px;font-weight:600}.tl-sub{font-size:12px;color:var(--muted);margin-top:2px}.tl-time{font-size:11px;color:var(--muted);margin-top:3px}

/* DARK MODE */
body.dark{--bg:#161D31;--card:#283046;--sidebar:#000000;--border:rgba(255,255,255,.07);--txt:#CFD1D8;--muted:#676D7D;--shadow:0 2px 12px rgba(0,0,0,.2)}
body.dark .header{background:var(--card)}
body.dark .h-search input{background:var(--bg);color:var(--txt);border-color:var(--border)}
body.dark .ct th{background:var(--bg)}
body.dark .f-ctrl,body.dark select,body.dark input,body.dark textarea{background:var(--bg);color:var(--txt);border-color:var(--border)}
body.dark .f-ctrl:focus{background:var(--card)}
body.dark .btn-l{background:var(--card);color:var(--txt)}
body.dark .table{--bs-table-bg:var(--card);--bs-table-color:var(--txt);--bs-table-border-color:var(--border)}

/* RESPONSIVE */
@media(max-width:992px){.sidebar{width:252px;transform:translateX(-100%)}.sidebar.mob,body.sidebar-open .sidebar{transform:translateX(0)}.header{left:0}.page-wrapper{margin-left:0}body.sidebar-collapsed .header{left:0}body.sidebar-collapsed .page-wrapper{margin-left:0}body.sidebar-collapsed .sidebar{width:252px;transform:translateX(-100%)}.h-search{width:160px}.h-uinfo{display:none}}
@media(max-width:576px){.page-content{padding:16px}.kb-col{min-width:220px}.pg-title{font-size:18px}.cc-b{padding:16px}.filter-action{padding-bottom:0}}

/* MODALS — premium polish, no layout change */
.modal-content{border:none;border-radius:16px;box-shadow:var(--shadow-lg);overflow:hidden}
.modal-header{border-bottom:1px solid var(--border);padding:18px 22px;background:var(--tint-1)}
.modal-title{font-weight:700;font-size:16px}
.modal-body{padding:22px}
.modal-footer{border-top:1px solid var(--border);padding:16px 22px}

/* ---- Notification filter buttons ---- */
.notif-filter.active{background:var(--primary);color:#fff}

/* ---- Generic View Record Modal ---- */
.view-modal-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--bg);font-size:13.5px}
.view-modal-row:last-child{border-bottom:none}
.view-modal-row span:first-child{color:var(--muted);font-weight:500}
.view-modal-row span:last-child{font-weight:600;text-align:right;max-width:60%}

/* ---- Invoice item rows ---- */
.inv-item-row{display:grid;grid-template-columns:2fr 1.4fr .7fr 1fr 1fr 36px;gap:8px;align-items:center;margin-bottom:8px}
@media(max-width:768px){.inv-item-row{grid-template-columns:1fr 1fr;}}

/* ---- Print styles for invoices & quotations ---- */
@media print{
  .sidebar,.header,.pg-header,.pg-footer,.pg-bread,#listView,.no-print,#newInvBtn,#backBtn{display:none !important}
  .page-wrapper{margin-left:0 !important}
  .page-content{padding:0 !important}
  .inv-card{box-shadow:none !important}
}

/* ===== VIEW MODAL STYLES ===== */
.view-modal-row { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--bg,#F1F5F9); font-size:14px; }
.view-modal-row span:first-child { color:var(--muted,#6B7280); font-weight:500; min-width:140px; }
.view-modal-row span:last-child { font-weight:600; color:var(--txt,#1F2937); text-align:right; }

/* ===== QUICK ADD DROPDOWN ===== */
.dropdown .btn-p { display:inline-flex; align-items:center; gap:6px; }
.dd-menu { border:1px solid var(--border,#E5E7EB); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.12); padding:6px; min-width:220px; }
.dd-item { display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:8px; color:var(--txt); text-decoration:none; font-size:13.5px; transition:background .15s; }
.dd-item:hover { background:var(--bg,#F1F5F9); }
.dd-item i { font-size:15px; width:18px; text-align:center; color:var(--primary,#ff902f); }

/* ===== CRUD SEARCH BAR ===== */
.crud-search { margin-bottom:12px; }
.crud-search .form-control:focus, .crud-search .form-select:focus { border-color:var(--primary,#ff902f); box-shadow:0 0 0 3px rgba(255,144,47,.15); }

/* ===== TAB BUTTONS ===== */
.tab-btn-active { background:var(--primary,#ff902f)!important; color:#fff!important; border:none!important; border-radius:8px!important; padding:7px 16px!important; font-size:13px!important; cursor:pointer!important; }
.tab-btn-inactive { background:transparent!important; color:var(--txt)!important; border:1.5px solid var(--border,#E5E7EB)!important; border-radius:8px!important; padding:7px 16px!important; font-size:13px!important; cursor:pointer!important; }
.tab-btn-inactive:hover { background:var(--bg,#F1F5F9)!important; }

/* ===== CONVERSION BUTTON ===== */
.btn-convert { background:rgba(6,182,212,.1); color:#06B6D4; border:1px solid rgba(6,182,212,.3); border-radius:8px; padding:4px 12px; font-size:12px; cursor:pointer; transition:all .2s; }
.btn-convert:hover { background:#06B6D4; color:#fff; }

/* ===== NET METERING ===== */
.nm-active { color:#16A34A; }
.nm-pending { color:#F59E0B; }
.nm-rejected { color:#EF4444; }

/* ===== PRINT STYLES ===== */
@media print {
  .sidebar, .header, .pg-header .d-flex, .btn-p, .btn-l, footer, .crud-search { display:none!important; }
  .page-wrapper { margin-left:0!important; }
  .page-content { padding:0!important; }
}

.qty-stepper{gap:0}
.qty-stepper .item-qty{border-radius:0;text-align:center;padding-left:4px;padding-right:4px}
.qty-stepper .qty-dec,.qty-stepper .qty-inc{width:28px;flex:0 0 28px;padding:0;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center}
.qty-stepper .qty-dec{border-radius:8px 0 0 8px}
.qty-stepper .qty-inc{border-radius:0 8px 8px 0}

/* Dashboard hero + recent-list polish */
.dash-hero{background:var(--grad-primary);border-radius:var(--rl);padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;box-shadow:0 10px 28px rgba(255,144,47,.28);position:relative;overflow:hidden}
.dash-hero::after{content:'';position:absolute;top:-40%;right:-6%;width:220px;height:220px;background:rgba(255,255,255,.10);border-radius:50%}
.dash-hero-l{position:relative;z-index:1}
.dash-hero-lbl{font-size:13px;font-weight:600;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.04em}
.dash-hero-val{font-size:34px;font-weight:800;color:#fff;letter-spacing:-.02em;margin-top:2px}
.dash-hero-sub{font-size:12.5px;color:rgba(255,255,255,.8);margin-top:4px}
.dash-hero-r{display:flex;gap:28px;position:relative;z-index:1}
.dh-mini-lbl{font-size:11.5px;color:rgba(255,255,255,.8);font-weight:600;margin-bottom:2px}
.dh-mini-val{font-size:19px;font-weight:700}
.dash-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:26px 10px;color:var(--muted)}
.dash-empty i{font-size:26px;opacity:.5}
.dash-tbl tr:not(:last-child) td{border-bottom:1px solid var(--border)}
.dash-tbl td{padding:10px 4px;vertical-align:middle;font-size:13px}
.dash-bank-card{border:1px solid var(--border);border-radius:10px;padding:12px 16px;background:var(--tint-2);transition:.2s var(--ease)}
.dash-bank-card:hover{border-color:rgba(255,144,47,.35);transform:translateY(-2px);box-shadow:var(--shadow-md)}
@media(max-width:576px){.dash-hero{padding:20px}.dash-hero-val{font-size:26px}.dash-hero-r{gap:18px}}

/* ===== Dashboard v2 ===== */
.dv-greet{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.dv-greet h4{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--txt)}
.dv-greet .sub{font-size:13px;color:var(--muted);margin-top:3px}
.dv-date-chip{background:var(--card);border:1px solid var(--border);border-radius:30px;padding:9px 18px;font-size:12.5px;font-weight:600;color:var(--txt);display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}
.dv-date-chip i{color:var(--primary)}

.dv-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
@media(max-width:992px){.dv-kpi-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:576px){.dv-kpi-row{grid-template-columns:1fr}}
.dv-kpi{border-radius:var(--rl);padding:20px 22px;position:relative;overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border);background:var(--card);transition:.25s var(--ease)}
.dv-kpi-link,.dv-kpi-row>a{color:inherit;text-decoration:none}
.dv-kpi-row>a:hover{color:inherit;text-decoration:none}
.dv-kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.dv-kpi.is-primary{background:var(--grad-primary);border:none;box-shadow:0 10px 26px rgba(255,144,47,.28)}
.dv-kpi.is-primary .dv-kpi-lbl,.dv-kpi.is-primary .dv-kpi-sub{color:rgba(255,255,255,.85)}
.dv-kpi.is-primary .dv-kpi-val{color:#fff}
.dv-kpi.is-primary .dv-kpi-ico{background:rgba(255,255,255,.2);color:#fff}
.dv-kpi-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;margin-bottom:14px}
.dv-kpi-lbl{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.dv-kpi-val{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-top:4px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dv-kpi-sub{font-size:12px;color:var(--muted);margin-top:7px;display:flex;align-items:center;gap:5px}
.dv-kpi-sub.up{color:#16a34a;font-weight:600}
.dv-kpi-sub.dn{color:var(--danger);font-weight:600}

.dv-section-title{font-size:15px;font-weight:700;margin:0 0 14px;display:flex;align-items:center;gap:8px;color:var(--txt)}
.dv-section-title i{color:var(--primary);font-size:16px}

.dv-quick{display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border:1px solid var(--border);border-radius:var(--rl);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:22px}
@media(max-width:768px){.dv-quick{grid-template-columns:repeat(2,1fr)}}
.dv-quick-item{padding:18px 20px;display:flex;align-items:center;gap:12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:.2s var(--ease)}
.dv-quick-item:hover{background:var(--tint-2)}
.dv-quick-item:nth-child(4n){border-right:none}
.dv-quick-item:nth-last-child(-n+4){border-bottom:none}
@media(max-width:768px){.dv-quick-item:nth-child(2n){border-right:none}.dv-quick-item:nth-last-child(-n+4){border-bottom:1px solid var(--border)}.dv-quick-item:nth-last-child(-n+2){border-bottom:none}}
.dv-quick-ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.dv-quick-val{font-size:18px;font-weight:800;line-height:1.1;color:var(--txt)}
.dv-quick-lbl{font-size:11.5px;color:var(--muted);margin-top:2px}

.dv-bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.dv-bank-card{border:1px solid var(--border);border-radius:12px;padding:16px 18px 16px 20px;background:var(--card);position:relative;overflow:hidden;transition:.2s var(--ease)}
.dv-bank-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(255,144,47,.3)}
.dv-bank-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--grad-primary)}
.dv-bank-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dv-bank-ico{width:32px;height:32px;border-radius:8px;background:var(--primary-lt);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.dv-bank-name{font-weight:700;font-size:13.5px;color:var(--txt)}
.dv-bank-sub{font-size:11px;color:var(--muted);margin-top:1px}
.dv-bank-bal{font-size:19px;font-weight:800;color:var(--txt);margin-top:2px}
.dv-bank-bal-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.dv-client-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}
.dv-client-card{border:1px solid var(--border);border-radius:12px;padding:16px 18px;background:var(--card);text-decoration:none;color:inherit;transition:.2s var(--ease)}
.dv-client-card:hover{background:var(--tint-2);border-color:rgba(255,144,47,.4);transform:translateY(-2px);color:inherit}
.dv-client-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.dv-client-value{font-size:26px;font-weight:800;color:var(--txt);margin-top:4px}
.dv-client-note{font-size:11px;color:var(--muted);margin-top:3px}
@media(max-width:768px){.dv-client-grid{grid-template-columns:1fr}}

.dv-list-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--border)}
.dv-list-row:last-child{border-bottom:none}
.dv-list-ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.dv-list-ico.in{background:rgba(255,144,47,.12);color:var(--primary)}
.dv-list-ico.out{background:rgba(239,68,68,.12);color:var(--danger)}
.dv-list-body{flex:1;min-width:0}
.dv-list-title{font-size:13.5px;font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-list-date{font-size:11.5px;color:var(--muted);margin-top:1px}
.dv-list-amt{font-size:14px;font-weight:800;white-space:nowrap;flex-shrink:0}
.dv-list-amt.in{color:var(--primary)}
.dv-list-amt.out{color:var(--danger)}

/* Recycle Bin & Logs extras */
.ic-bl{background:rgba(59,130,246,.12);color:#2563EB}
.ic-pu{background:rgba(139,92,246,.12);color:#7C3AED}

/* Shared live database search in the top bar. */
.global-search{position:relative;width:clamp(180px,26vw,380px);margin-right:12px;min-width:0}
.global-search-input{display:flex;align-items:center;gap:9px;border:1px solid var(--border);border-radius:10px;background:var(--bg);padding:8px 10px;color:var(--muted)}
.global-search-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-lt)}
.global-search-input input{width:100%;min-width:0;background:transparent;border:0;outline:0;color:var(--txt);font:inherit;font-size:13px}
.global-search-input input::-webkit-search-cancel-button{display:none}
.global-search-input button{border:0;background:transparent;color:var(--muted);padding:0;cursor:pointer}
.global-search [hidden]{display:none!important}
.global-search-results{position:absolute;top:calc(100% + 10px);right:0;width:min(480px,calc(100vw - 24px));max-height:min(65vh,540px);overflow:auto;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);z-index:1100}
.global-search-status{padding:13px 15px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}
.global-search-group{padding:9px 15px;background:var(--bg);color:var(--primary);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.global-search-result{display:flex;flex-direction:column;gap:4px;padding:11px 15px;border-bottom:1px solid var(--border);color:var(--txt);overflow-wrap:anywhere}
.global-search-result strong{font-size:13px;font-weight:600}.global-search-result small{font-size:11px;color:var(--muted)}
.global-search-result:hover,.global-search-result:focus-visible,.global-search-result.is-active{background:var(--primary-lt);color:var(--txt);outline:0}
.global-search-selected>td{background:var(--primary-lt)!important}
@media(max-width:600px){.header{padding:0 10px;gap:5px}.header .h-right{flex:1;min-width:0;justify-content:flex-end}.global-search{flex:1;width:auto;margin-right:3px;max-width:260px}.header .h-right>span{display:none}.global-search-results{position:fixed;top:calc(var(--hh) + 5px);right:12px}.header .h-right>.btn-l{font-size:11px;padding:7px}.global-search-input{padding:7px}.global-search-input input{font-size:12px}}
