:root {
  --jw-green:#00d6a9;--jw-green-dark:#00b98f;--jw-green-deeper:#007f71;--jw-green-pale:#d7fff6;
  --jw-blue:#2563eb;--jw-blue-dark:#1d4ed8;--jw-blue-pale:#dbe7ff;--jw-blue-mid:#5b8cff;
  --bg:#f2f6ff;--surface:#ffffff;--surface2:#f0f6ff;--nav-bg:#0a1628;--sidebar-bg:linear-gradient(180deg,#1a2744 0%,#1e3060 60%,#1a2540 100%);--sidebar-text:#c8d8f0;--border:#d8e3f3;--login-bg:linear-gradient(135deg,#eef2f8 0%,#e4ecf7 50%,#dde8f5 100%);--login-card-bg:rgba(255,255,255,0.92);--login-card-border:rgba(10,22,40,0.12);--login-text:#0a1628;--login-text-muted:rgba(10,22,40,0.5);--login-input-bg:rgba(10,22,40,0.06);--login-input-border:rgba(10,22,40,0.15);--login-label:rgba(10,22,40,0.5);--login-feat-text:rgba(10,22,40,0.65);--login-feat-border:rgba(10,22,40,0.08);--login-trust-bg:rgba(10,22,40,0.04);--login-trust-border:rgba(10,22,40,0.1);
  --text:#0a1628;--text-muted:#5f7693;--text-light:#8fa6c2;--red:#ff3b5c;--orange:#ff8c00;
  --font-display:'Inter',sans-serif;--font-body:'DM Sans',sans-serif;--radius:14px;
  /* UI polish tokens (used progressively) */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
  --r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:24px;
  --shadow-1:0 1px 4px rgba(10,22,40,0.06),0 4px 16px rgba(10,22,40,0.04);
  --shadow-2:0 10px 40px rgba(10,22,40,0.16),0 2px 10px rgba(10,22,40,0.08);
  --accent:var(--jw-green);--accent-2:var(--jw-blue);--accent-contrast:#ffffff;
  --danger:var(--red);--warning:var(--orange);--success:var(--jw-green);--info:var(--jw-blue);
}
*{box-sizing:border-box;margin:0;padding:0;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
body{
  background:var(--bg);
  /* subtle texture only (no gradients) */
  background-image:radial-gradient(rgba(37,99,235,0.06) 1px,transparent 1px);
  background-size:26px 26px;
  color:var(--text);
  font-family:var(--font-body);
  font-size:14px;
  min-height:100vh;
}

/* Scrollbars (make sidebar/main match theme) */
:root{
  --scrollbar-track: rgba(10,22,40,0.08);
  --scrollbar-thumb: rgba(10,22,40,0.22);
  --scrollbar-thumb-hover: rgba(10,22,40,0.34);
}
[data-theme="dark"]{
  --scrollbar-track: rgba(255,255,255,0.06);
  --scrollbar-thumb: rgba(200,220,255,0.20);
  --scrollbar-thumb-hover: rgba(200,220,255,0.32);
}
.nav,.main,.sidebar,.modal-body,#tenant-drawer{
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}
.nav::-webkit-scrollbar,
.main::-webkit-scrollbar,
.sidebar::-webkit-scrollbar,
.modal-body::-webkit-scrollbar,
#tenant-drawer::-webkit-scrollbar{
  width: 10px;
  height: 10px;
}
.nav::-webkit-scrollbar-track,
.main::-webkit-scrollbar-track,
.sidebar::-webkit-scrollbar-track,
.modal-body::-webkit-scrollbar-track,
#tenant-drawer::-webkit-scrollbar-track{
  background: var(--scrollbar-track);
}
.nav::-webkit-scrollbar-thumb,
.main::-webkit-scrollbar-thumb,
.sidebar::-webkit-scrollbar-thumb,
.modal-body::-webkit-scrollbar-thumb,
#tenant-drawer::-webkit-scrollbar-thumb{
  background: var(--scrollbar-thumb);
  border-radius: 999px;
  border: 3px solid transparent;
  background-clip: padding-box;
}
.nav::-webkit-scrollbar-thumb:hover,
.main::-webkit-scrollbar-thumb:hover,
.sidebar::-webkit-scrollbar-thumb:hover,
.modal-body::-webkit-scrollbar-thumb:hover,
#tenant-drawer::-webkit-scrollbar-thumb:hover{
  background: var(--scrollbar-thumb-hover);
  background-clip: padding-box;
}

/* ===== SETUP SCREEN ===== */
#setup-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--nav-bg);padding:20px;}
.setup-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:20px;padding:40px;width:100%;max-width:520px;backdrop-filter:blur(12px);}
.setup-title{font-family:var(--font-display);font-size:22px;font-weight:800;color:#fff;margin-bottom:6px;}
.setup-sub{font-size:13px;color:rgba(255,255,255,0.4);margin-bottom:24px;}
.setup-step{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;padding:14px;background:rgba(255,255,255,0.04);border-radius:10px;border:1px solid rgba(255,255,255,0.08);}
.step-num{width:24px;height:24px;border-radius:50%;background:var(--jw-green);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.step-text{font-size:12.5px;color:rgba(255,255,255,0.6);line-height:1.5;}
.step-text strong{color:#fff;}

/* ===== LOGIN ===== */
#login-screen{min-height:100vh;display:flex;background:var(--login-bg,#060f1e);position:relative;overflow:hidden;transition:background 0.4s,color 0.4s;}
/* ===== LOGIN PAGE — REDESIGNED ===== */
@keyframes floatA{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-18px) rotate(3deg)}}
@keyframes floatB{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-12px) rotate(-4deg)}}
@keyframes pulseGlow{0%,100%{opacity:0.6}50%{opacity:1}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%{background-position:-200% center}100%{background-position:200% center}}
@keyframes orbFloat{0%{transform:translate(0,0) scale(1)}25%{transform:translate(30px,-20px) scale(1.05)}50%{transform:translate(10px,30px) scale(0.95)}75%{transform:translate(-20px,10px) scale(1.02)}100%{transform:translate(0,0) scale(1)}}

/* login-screen background handled by theme CSS below */

/* Animated mesh background */
.login-glow-1{position:absolute;top:-80px;left:-100px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(0,196,114,0.22) 0%,rgba(0,196,114,0.08) 40%,transparent 70%);pointer-events:none;animation:orbFloat 12s ease-in-out infinite;}
.login-glow-2{position:absolute;bottom:-120px;right:-80px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(0,98,255,0.2) 0%,rgba(0,98,255,0.06) 45%,transparent 70%);pointer-events:none;animation:orbFloat 16s ease-in-out infinite reverse;}
.login-glow-3{position:absolute;top:50%;right:30%;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(0,196,114,0.1) 0%,transparent 65%);pointer-events:none;animation:orbFloat 9s ease-in-out infinite 3s;}

/* Grid overlay for texture */
#login-screen::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(0,196,114,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,196,114,0.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0;}

.login-left{flex:1;display:flex;flex-direction:column;justify-content:center;padding:60px 70px;position:relative;z-index:1;animation:slideInLeft 0.7s ease both;}
.login-tagline{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--jw-green);margin-bottom:8px;font-weight:700;opacity:0.85;}
.login-headline{font-family:var(--font-display);font-size:48px;font-weight:900;color:var(--login-text,#fff);line-height:1.1;letter-spacing:-1.5px;margin-bottom:20px;margin-top:0;}
.login-headline span{background:linear-gradient(135deg,var(--jw-green) 0%,#00e5a0 50%,var(--jw-green) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 3s linear infinite;}
.login-desc{font-size:15px;color:var(--login-text-muted,rgba(255,255,255,0.5));line-height:1.7;max-width:380px;margin-bottom:44px;}

.login-features{display:flex;flex-direction:column;gap:0;}
.lf-item{display:flex;align-items:center;gap:14px;font-size:13.5px;color:var(--login-feat-text,rgba(255,255,255,0.65));font-weight:500;padding:12px 0;border-bottom:1px solid var(--login-feat-border,rgba(255,255,255,0.05));}
.lf-item:last-child{border-bottom:none;}
.lf-dot{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;}
.lf-dot.green{background:rgba(0,196,114,0.15);border:1px solid rgba(0,196,114,0.3);}
.lf-dot.blue{background:rgba(0,98,255,0.15);border:1px solid rgba(0,98,255,0.3);}

/* Trust badge */
.login-trust{display:flex;align-items:center;gap:10px;margin-top:40px;padding:12px 16px;background:var(--login-trust-bg,rgba(255,255,255,0.04));border:1px solid var(--login-trust-border,rgba(255,255,255,0.08));border-radius:12px;width:fit-content;}
.login-trust-text{font-size:12px;color:var(--login-text-muted,rgba(255,255,255,0.4));font-weight:500;line-height:1.4;}
.login-trust-badge{font-size:18px;flex-shrink:0;}

/* RIGHT PANEL */
.login-right{width:460px;display:flex;align-items:center;justify-content:center;padding:40px;position:relative;z-index:1;animation:slideInRight 0.7s ease both;}
.login-card{background:var(--login-card-bg,rgba(255,255,255,0.04));border:1px solid var(--login-card-border,rgba(255,255,255,0.1));border-radius:24px;padding:40px;width:100%;backdrop-filter:blur(20px);box-shadow:0 32px 80px rgba(0,0,0,0.3),0 0 0 1px rgba(255,255,255,0.05) inset;}

/* Green top accent bar */
.login-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,var(--jw-green),#00e5a0,var(--jw-green));border-radius:3px;margin-bottom:32px;background-size:200% auto;animation:shimmer 3s linear infinite;}

.login-card-title{font-family:var(--font-display);font-size:24px;font-weight:900;color:var(--login-text,#fff);margin-bottom:4px;letter-spacing:-0.5px;}
.login-card-sub{font-size:13px;color:var(--login-text-muted,rgba(255,255,255,0.38));margin-bottom:28px;}
.lf-group{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.lf-group label{font-size:11px;font-weight:700;letter-spacing:0.8px;text-transform:uppercase;color:var(--login-label,rgba(255,255,255,0.45));}
.lf-input{background:var(--login-input-bg,rgba(255,255,255,0.05));border:1.5px solid var(--login-input-border,rgba(255,255,255,0.1));border-radius:12px;padding:13px 16px;color:var(--login-text,#fff);font-family:var(--font-body);font-size:14.5px;outline:none;transition:all 0.2s;width:100%;box-sizing:border-box;}
.lf-input::placeholder{color:rgba(255,255,255,0.2);}
.lf-input:focus{border-color:var(--jw-green);background:rgba(0,196,114,0.06);box-shadow:0 0 0 3px rgba(0,196,114,0.12);}
.lf-input.error{border-color:var(--red);background:rgba(255,59,92,0.07);}
.lf-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;margin-top:-2px;}
.lf-check-wrap{display:flex;align-items:center;gap:8px;cursor:pointer;}
.lf-check-wrap input[type=checkbox]{width:16px;height:16px;accent-color:var(--jw-green);cursor:pointer;}
.lf-check-label{font-size:13px;color:rgba(255,255,255,0.4);font-weight:500;}
.lf-forgot{font-size:13px;color:var(--jw-green);text-decoration:none;font-weight:600;background:none;border:none;cursor:pointer;padding:0;}
.lf-forgot:hover{color:#00e084;text-decoration:underline;}
.btn-login{width:100%;padding:14px;border-radius:12px;border:none;background:linear-gradient(135deg,#00c472 0%,#00a860 100%);color:#fff;font-family:var(--font-display);font-size:15px;font-weight:800;cursor:pointer;transition:all 0.2s;letter-spacing:0.3px;box-shadow:0 4px 20px rgba(0,196,114,0.4),0 1px 0 rgba(255,255,255,0.2) inset;}
.btn-login:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,196,114,0.5),0 1px 0 rgba(255,255,255,0.2) inset;}
.btn-login:active{transform:translateY(0);}
.btn-login:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none;}
.login-error{background:rgba(255,59,92,0.12);border:1px solid rgba(255,59,92,0.3);border-radius:8px;padding:10px 14px;font-size:13px;color:#ff8fa3;margin-bottom:16px;display:none;}
.login-error.show{display:block;}
.login-success{background:rgba(0,196,114,0.12);border:1px solid rgba(0,196,114,0.3);border-radius:8px;padding:10px 14px;font-size:13px;color:#00e084;margin-bottom:16px;display:none;}
.login-success.show{display:block;}
.forgot-view{display:none;}
.forgot-view.show{display:block;}
.back-btn{background:none;border:none;color:var(--login-text-muted,rgba(255,255,255,0.4));font-size:13px;cursor:pointer;font-family:var(--font-body);padding:0;margin-bottom:20px;display:flex;align-items:center;gap:6px;}
.back-btn:hover{color:#fff;}

/* ===== APP ===== */
#app-screen{display:none;}
#app-screen.show{display:flex;height:100vh;overflow:hidden;}
.app{display:flex;height:100%;width:100%;}
.sidebar{width:228px;background:var(--sidebar-bg,linear-gradient(180deg,#0a1628 0%,#0d1e35 60%,#0a1a2e 100%));display:flex;flex-direction:column;flex-shrink:0;position:relative;overflow:hidden;}
.sidebar::before{content:'';position:absolute;top:-80px;right:-60px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(0,201,167,0.22) 0%,transparent 70%);pointer-events:none;}.sidebar::after{content:'';position:absolute;bottom:-60px;left:-40px;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(26,86,219,0.15) 0%,transparent 70%);pointer-events:none;}
.logo-area{padding:22px 20px 20px;border-bottom:1px solid rgba(255,255,255,0.06);border-left:3px solid var(--jw-green);}
.logo-j{font-family:var(--font-display);font-size:15px;font-weight:800;}
.lg{color:var(--jw-green);}.lb{color:var(--jw-blue-mid);}.lw{color:#fff;}
.logo-sub{font-size:9.5px;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,0.28);margin-top:3px;}
.nav{padding:14px 0;flex:1;overflow-y:auto;overflow-x:hidden;}
.nav-section{padding:14px 22px 5px;font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.22);font-weight:700;}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 22px;cursor:pointer;color:var(--sidebar-text,#8899b4);transition:all 0.15s;font-weight:500;font-size:13px;border-left:3px solid transparent;-webkit-tap-highlight-color:transparent;}
.nav-item:active{background:rgba(255,255,255,0.06);transform:scale(0.98);}
.nav-item:hover{color:#fff;background:rgba(255,255,255,0.07);}
.nav-item.active{color:#fff;border-left-color:var(--jw-green);background:linear-gradient(90deg,rgba(0,201,167,0.18) 0%,rgba(0,201,167,0.04) 100%);border-left-width:3px;font-weight:700;}
.nav-icon{font-size:15px;width:18px;text-align:center;flex-shrink:0;}
.nav-badge{font-size:10px;font-weight:800;border-radius:20px;padding:1px 7px;margin-left:auto;}
.main{flex:1;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;}
.page-header{padding:24px 32px 20px;display:flex;align-items:flex-end;justify-content:space-between;border-bottom:1px solid var(--border);margin-bottom:4px;}
.page-title{font-family:var(--font-display);font-size:26px;font-weight:800;background:linear-gradient(135deg,#0a1628 0%,#1a56db 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.page-sub{font-size:13px;color:var(--text-muted);margin-top:3px;}
.page-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.page-actions .btn{flex-shrink:0;}
.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:9px;border:none;cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;transition:transform 0.08s ease,box-shadow 0.08s ease,background 0.15s;white-space:nowrap;-webkit-tap-highlight-color:transparent;}
.btn:active{transform:scale(0.96) translateY(1px)!important;box-shadow:none!important;filter:brightness(0.92);}
.btn-primary{background:linear-gradient(135deg,var(--jw-green) 0%,var(--jw-green-dark) 100%);color:#fff;box-shadow:0 2px 8px rgba(0,196,114,0.30);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,196,114,0.40);}
.btn-primary:active{transform:scale(0.96) translateY(1px)!important;box-shadow:0 1px 4px rgba(0,196,114,0.20)!important;}
.btn-blue{background:linear-gradient(135deg,var(--jw-blue-mid),var(--jw-blue));color:#fff;}
.btn-blue:hover{transform:translateY(-1px);}
.btn-blue:active{transform:scale(0.96) translateY(1px)!important;box-shadow:none!important;}
.btn-ghost{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);}
.btn-ghost:hover{color:var(--text);}
.btn-ghost:active{transform:scale(0.96) translateY(1px)!important;background:var(--surface2)!important;}
.btn-sm{padding:6px 12px;font-size:12px;border-radius:7px;}
/* Icon action buttons — fixed size for consistency across all tables */
.btn-icon{padding:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:15px;transition:transform 0.08s ease,background 0.12s;-webkit-tap-highlight-color:transparent;flex-shrink:0;}
.btn-icon:hover{color:var(--text);background:var(--surface2);}
.btn-icon:active{transform:scale(0.88)!important;background:var(--border)!important;}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:22px 32px;}
.stat-card{background:var(--surface);border-radius:var(--radius);padding:20px;border:1px solid var(--border);border-left:3px solid transparent;position:relative;overflow:hidden;box-shadow:0 2px 12px rgba(10,22,40,0.07);transition:transform 0.15s,box-shadow 0.15s;}.s-green{border-left-color:var(--jw-green)!important;}.s-blue{border-left-color:var(--jw-blue)!important;}.s-red{border-left-color:var(--red)!important;}.s-orange{border-left-color:var(--orange)!important;}
.sc-glow{position:absolute;top:-20px;right:-20px;width:90px;height:90px;border-radius:50%;opacity:0.22;filter:blur(2px);}
.stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(10,22,40,0.10);}.s-green .sc-glow{background:var(--jw-green);}.s-blue .sc-glow{background:var(--jw-blue);}
.s-red .sc-glow{background:var(--red);}.s-orange .sc-glow{background:var(--orange);}
.sc-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:14px;}
.s-green .sc-icon{background:var(--jw-green-pale);}.s-blue .sc-icon{background:var(--jw-blue-pale);}
.s-red .sc-icon{background:rgba(255,59,92,0.1);}.s-orange .sc-icon{background:rgba(255,140,0,0.1);}
.sc-label{font-size:11.5px;font-weight:600;color:var(--text-muted);}
.sc-value{font-family:var(--font-display);font-size:25px;font-weight:800;margin:6px 0 3px;letter-spacing:-0.5px;}
.sc-sub{font-size:11.5px;color:var(--text-light);}
/* Dashboard charts + insight row */
.dash-insight-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;}
.dash-insight-pad{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:0 1px 4px rgba(10,22,40,0.05);}
.dash-insight-pad .di-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.4px;margin-bottom:4px;}
.dash-insight-pad .di-value{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--text);letter-spacing:-0.3px;}
.dash-insight-pad .di-hint{font-size:11.5px;color:var(--text-light);margin-top:4px;}
.dash-chart-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:14px;padding:0 2px;}
.dash-chart-toolbar label{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.5px;margin-right:auto;}
.dash-chart-toolbar select.form-control{width:auto;min-width:140px;font-size:13px;padding:8px 12px;border-radius:10px;}
.dash-chart-toolbar select:focus-visible{outline:2px solid var(--jw-green);outline-offset:2px;}
.dash-chart-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:16px;margin-bottom:12px;}
.dash-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 12px rgba(10,22,40,0.06);}
.dash-chart-card .card-header{padding:12px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface) 0%,var(--surface2) 100%);flex-wrap:wrap;gap:8px;}
.dash-chart-card .card-title{font-size:14px;}
.dash-chart-wrap{position:relative;height:260px;padding:8px 12px 16px;}
.dash-chart-wrap canvas{max-height:240px;}
.dash-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.dash-aging-wrap,.dash-top-wrap{padding:12px 14px 18px;}
.dash-aging-wrap canvas{max-height:220px;}
.dash-aging-note{font-size:11px;color:var(--text-muted);margin-top:10px;line-height:1.45;padding:0 4px;}
.dash-top-table{font-size:13px;width:100%;border-collapse:collapse;}
.dash-top-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:0.8px;color:#7a90aa;padding:8px 12px;border-bottom:1px solid var(--border);}
.dash-top-table td{padding:10px 12px;border-bottom:1px solid var(--border);}
.dash-top-table td:last-child{text-align:right;font-weight:700;color:var(--jw-green-deeper);}
.dash-top-q{font-size:11px;color:var(--text-muted);font-weight:600;margin-left:8px;}
.dash-empty-panel{display:none;background:linear-gradient(145deg,var(--jw-blue-pale) 0%,rgba(0,201,167,0.06) 100%);border:1px dashed var(--border);border-radius:var(--radius);padding:28px 24px;margin-bottom:22px;text-align:center;}
[data-theme="dark"] .dash-empty-panel{background:linear-gradient(145deg,rgba(26,86,219,0.12),rgba(0,201,167,0.06));border-color:rgba(255,255,255,0.08);}
.dash-empty-panel .dep-title{font-family:var(--font-display);font-size:18px;font-weight:800;margin-bottom:8px;color:var(--text);}
.dash-empty-panel .dep-sub{font-size:13px;color:var(--text-muted);margin-bottom:18px;line-height:1.5;max-width:440px;margin-left:auto;margin-right:auto;}
.dash-empty-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
@media (max-width:960px){.dash-chart-grid{grid-template-columns:1fr;}.dash-insight-row{grid-template-columns:1fr;}.dash-extra-grid{grid-template-columns:1fr;}}
.content{padding:0 32px 32px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.tabs{display:flex;gap:2px;padding:18px 32px 0;}
.tab{padding:7px 16px;cursor:pointer;color:var(--text-muted);font-weight:600;font-size:13px;border-bottom:2.5px solid transparent;transition:all 0.15s;border-radius:8px 8px 0 0;}
.tab.active{color:var(--jw-green-deeper);border-bottom-color:var(--jw-green);background:linear-gradient(180deg,rgba(0,214,169,0.16) 0%,rgba(37,99,235,0.05) 100%);font-weight:800;}
.tab:hover:not(.active){color:var(--text);}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-1);}
.card-header{padding:16px 20px;border-bottom:1.5px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.card-title{font-weight:700;font-size:14.5px;}
.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:16px;box-shadow:var(--shadow-1);}
.table-toolbar{padding:12px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 100%);}
.search-box{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 14px;color:var(--text);font-family:var(--font-body);font-size:13px;outline:none;transition:border-color 0.15s,box-shadow 0.15s;}
.search-box::placeholder{color:var(--text-light);}
.search-box:focus{border-color:var(--jw-green);box-shadow:0 0 0 3px rgba(0,196,114,0.12);}.form-control:focus{border-color:var(--jw-green);box-shadow:0 0 0 3px rgba(0,196,114,0.12);}
table{width:100%;border-collapse:collapse;}
th{padding:10px 16px;text-align:left;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#7a90aa;font-weight:700;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f2f6fb 0%,var(--surface2) 100%);}
td{padding:13px 16px;border-bottom:1px solid var(--border);font-size:13px;transition:background 0.1s;}tr:hover td{background:var(--surface2);}
tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(0,196,114,0.03);}
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:20px;font-size:11.5px;font-weight:700;letter-spacing:0.2px;}
.badge::before{content:'';width:5px;height:5px;border-radius:50%;flex-shrink:0;}
.b-paid{background:var(--jw-green-pale);color:var(--jw-green-deeper);}.b-paid::before{background:var(--jw-green);}
.b-partial{background:rgba(230,126,0,0.12);color:#b85c00;}.b-partial::before{background:#e67e00;}
.b-refunded{background:rgba(255,59,92,0.1);color:#cc0033;}.b-refunded::before{background:#ff3b5c;}
.b-pending{background:rgba(0,98,255,0.1);color:var(--jw-blue-dark);}.b-pending::before{background:var(--jw-blue);}
.b-overdue{background:rgba(255,59,92,0.1);color:#c0002a;}.b-overdue::before{background:var(--red);}
.b-draft{background:rgba(107,126,150,0.12);color:var(--text-muted);}.b-draft::before{background:var(--text-muted);}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(10,22,40,0.55);backdrop-filter:blur(6px);z-index:100;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border-radius:18px;width:800px;max-width:100%;max-height:90vh;display:flex;flex-direction:column;border:1px solid var(--border);overflow:hidden;box-shadow:0 8px 40px rgba(10,22,40,0.16),0 2px 8px rgba(10,22,40,0.08);}
.modal.elevated{box-shadow:var(--shadow-2);}
.modal-header.sticky{position:sticky;top:0;z-index:1;background:var(--surface);}
.modal-header{padding:20px 26px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,var(--surface) 0%,var(--surface2) 100%);border-radius:18px 18px 0 0;border-top:3px solid var(--jw-green);}
.modal-title{font-family:var(--font-display);font-size:18px;font-weight:800;}
.modal-close{background:var(--bg);border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 10px;border-radius:7px;transition:transform 0.08s ease;-webkit-tap-highlight-color:transparent;}
.modal-close:active{transform:scale(0.88);}
.modal-body{padding:26px;overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0;}
.modal-footer{padding:16px 26px 22px;display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;border-top:1.5px solid var(--border);}
.modal-footer .btn{flex-shrink:0;}
.ns-step{display:flex;align-items:flex-start;gap:12px;padding:12px 12px;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 1px 4px rgba(10,22,40,0.04);margin-bottom:10px;}
.ns-step:last-child{margin-bottom:0;}
.ns-ico{width:36px;height:36px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:rgba(0,196,114,0.10);border:1px solid rgba(0,196,114,0.18);font-size:18px;}
.ns-body{flex:1;min-width:0;}
.ns-h{font-size:14px;font-weight:800;color:var(--text);margin-bottom:3px;}
.ns-p{font-size:12.5px;color:var(--text-muted);line-height:1.45;}
.ns-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.ns-step.done{opacity:0.72;}
.ns-step.done .ns-ico{background:rgba(0,196,114,0.14);border-color:rgba(0,196,114,0.24);}
.ns-step.done .ns-h{text-decoration:line-through;color:var(--text-muted);}
.batch-bar{display:none;align-items:center;gap:10px;padding:10px 16px;border-radius:10px;margin-bottom:10px;border:1px solid rgba(255,59,92,0.15);background:rgba(255,59,92,0.06);}
.batch-bar.show{display:flex;}
.batch-bar .count{font-size:13px;font-weight:800;color:var(--text);}
.batch-bar .spacer{flex:1;}
.batch-bar .btn-danger{background:rgba(255,59,92,0.10);color:var(--danger);border:1px solid rgba(255,59,92,0.22);font-weight:800;}
.select-cell{width:28px;padding:0 6px;text-align:center;}
.select-cell input[type="checkbox"]{cursor:pointer;width:15px;height:15px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.form-row.three{grid-template-columns:1fr 1fr 1fr;}
.form-row.full{grid-template-columns:1fr;}
.form-group{display:flex;flex-direction:column;gap:5px;}
.form-group label{font-size:11.5px;font-weight:700;letter-spacing:0.5px;color:var(--text-muted);text-transform:uppercase;}
.form-control{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 13px;color:var(--text);font-family:var(--font-body);font-size:13.5px;outline:none;transition:border-color 0.15s,box-shadow 0.15s;}
.form-control:focus{border-color:var(--jw-green);background:var(--surface);}
.form-control::placeholder{color:var(--text-light);}
.li-header{display:grid;grid-template-columns:2.5fr 0.7fr 1fr 1fr 36px;gap:8px;padding:6px 0;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--text-light);font-weight:700;}
.li-row{display:grid;grid-template-columns:2.5fr 0.7fr 1fr 1fr 36px;gap:8px;align-items:center;margin-bottom:7px;}
.li-total{font-weight:700;color:var(--jw-green-deeper);}
.btn-del{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:17px;padding:3px 6px;border-radius:5px;}
.btn-del:hover{color:var(--red);background:rgba(255,59,92,0.08);}
.totals-section{border-top:1.5px solid var(--border);padding-top:14px;margin-top:6px;max-width:300px;margin-left:auto;}
.tot-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13.5px;}
.tot-grand{font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--jw-green-deeper);border-top:1.5px solid var(--border);margin-top:8px;padding-top:10px;display:flex;justify-content:space-between;}
.inv-print{background:#fff;color:#0a1628;border-radius:10px;padding:48px;font-family:var(--font-body);}
.inv-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:36px;}
.inv-logo-large{font-family:'Inter',sans-serif;font-size:22px;font-weight:800;}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:32px;padding:20px;background:var(--surface2);border-radius:10px;}
.inv-party-label{font-size:9.5px;text-transform:uppercase;letter-spacing:1.5px;color:#9aafc7;font-weight:700;margin-bottom:6px;}
.inv-party-name{font-size:14.5px;font-weight:700;}
.inv-party-detail{font-size:12.5px;color:#6b7e96;margin-top:3px;}
.inv-table{width:100%;border-collapse:collapse;margin-bottom:20px;}
.inv-table th{background:var(--surface2);padding:9px 14px;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#9aafc7;font-weight:700;}
.inv-table td{padding:11px 14px;border-bottom:1px solid #e4eaf2;font-size:13.5px;}
.inv-totals{max-width:260px;margin-left:auto;}
.inv-tot-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;color:#6b7e96;}
.inv-tot-grand{display:flex;justify-content:space-between;font-family:'Inter',sans-serif;font-size:18px;font-weight:800;color:#00a05e;border-top:2px solid #e4eaf2;margin-top:8px;padding-top:10px;}
.inv-pay-box{margin-top:28px;background:var(--surface2);border-left:4px solid #00c472;border-radius:0 8px 8px 0;padding:14px 18px;font-size:12.5px;color:#6b7e96;}
.inv-pay-box strong{color:#0a1628;display:block;margin-bottom:4px;}
.inv-footer-print{text-align:center;margin-top:28px;font-size:11.5px;color:#9aafc7;padding-top:16px;border-top:1px solid #e4eaf2;}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.bar-lbl{font-size:12px;color:var(--text-muted);width:110px;text-align:right;flex-shrink:0;font-weight:500;}
.bar-track{flex:1;background:var(--bg);border-radius:5px;height:24px;overflow:hidden;}
.bar-fill{height:100%;border-radius:5px;display:flex;align-items:center;padding-left:9px;font-size:10.5px;font-weight:700;}
.bar-val{width:72px;font-size:12px;font-weight:700;color:var(--text);}
.client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px;}
.client-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;cursor:pointer;transition:all 0.18s;box-shadow:0 1px 4px rgba(10,22,40,0.05),0 2px 12px rgba(10,22,40,0.03);}.client-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px rgba(10,22,40,0.10);border-color:#d0dbe8;}
.client-card:hover{border-color:var(--jw-green);transform:translateY(-2px);}
.ca-avatar{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:16px;font-weight:800;margin-bottom:12px;}
.ca-name{font-weight:700;font-size:14px;}.ca-contact{font-size:12px;color:var(--text-muted);margin-top:2px;}
.ca-stats{display:flex;gap:14px;margin-top:14px;padding-top:12px;border-top:1.5px solid var(--border);}
.ca-stat-val{font-size:13.5px;font-weight:700;display:block;}.ca-stat-lbl{font-size:11px;color:var(--text-muted);margin-top:1px;}
.reminder-item{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:16px 20px;display:flex;align-items:center;gap:14px;margin-bottom:10px;}
.recon-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);padding:20px;}
.recon-card h3{font-family:var(--font-display);font-size:15px;font-weight:800;margin-bottom:14px;}
.toast{position:fixed;bottom:24px;right:24px;background:#1a2d4a;color:#ffffff;border:1px solid rgba(255,255,255,.15);border-radius:11px;padding:13px 20px;font-size:13.5px;font-weight:600;z-index:9999;display:none;align-items:center;gap:10px;box-shadow:0 8px 32px rgba(0,0,0,.35);max-width:380px;}
.toast.show{display:flex;animation:tIn 0.25s ease;}
@keyframes tIn{from{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.page-section{display:none;}.page-section.active{display:block;}
.loading-overlay{position:fixed;inset:0;background:rgba(10,22,40,0.7);z-index:200;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;}
.loading-overlay.hide{display:none;}
.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,0.1);border-top-color:var(--jw-green);border-radius:50%;animation:spin 0.8s linear infinite;}
.loading-text{color:#fff;font-size:14px;font-weight:500;}
hr{border:none;border-top:1.5px solid var(--border);margin:18px 0;}
.act-row{display:flex;gap:5px;}
.empty-state{text-align:center;padding:60px 20px 48px;color:var(--text-muted);}
.empty-state .es-icon{font-size:48px;margin-bottom:16px;display:block;filter:drop-shadow(0 4px 12px rgba(0,0,0,0.15));}
.empty-state .es-title{font-size:17px;font-weight:800;color:var(--text);margin-bottom:8px;letter-spacing:-0.2px;}
.empty-state .es-sub{font-size:13px;color:var(--text-muted);line-height:1.6;max-width:320px;margin:0 auto 20px;}
.empty-state .es-action{display:inline-block;margin-top:4px;padding:10px 24px;background:var(--primary,#1a56db);color:#fff;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;border:none;font-family:inherit;}
.empty-state .es-action:hover{opacity:0.9;}
.exp-cat-badge{padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:700;}
@media print{.sidebar,.page-header,.stats-row,.tabs,.table-toolbar,.modal-overlay,.toast{display:none!important;}body{background:#fff;}}
@media (display-mode:standalone){html,body{background:var(--nav-bg);}}
/* Invoice preview scaling on mobile */
#preview-body .wrap, #preview-body > div > div {overflow-x:auto;}
#quote-preview-body .wrap, #quote-preview-body > div {overflow-x:auto;}
@media (max-width:640px){
  #preview-body {padding:0!important;}
  #preview-body table[width="600"]{width:100%!important;min-width:0!important;}
  #preview-body table[width="544"]{width:100%!important;min-width:0!important;}
  #preview-body table[width="260"]{width:100%!important;}
  #preview-body td[width="300"]{width:50%!important;}
  #preview-body td[width="262"]{width:48%!important;}
  #preview-body .wrap{border-radius:0!important;}
  #quote-preview-body table[width="600"]{width:100%!important;}
  #quote-preview-body table[width="544"]{width:100%!important;}
  #quote-preview-body td[width="300"]{width:50%!important;}
  #quote-preview-body td[width="262"]{width:48%!important;}
}
/* ===== MOBILE RESPONSIVE ===== */
#mobile-menu-btn{display:none;position:fixed;top:14px;left:14px;z-index:300;background:var(--nav-bg);border:1.5px solid rgba(255,255,255,0.15);color:#fff;width:44px;height:44px;border-radius:10px;font-size:20px;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,0.3);}
#mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:149;backdrop-filter:blur(2px);}
.sidebar-user-area{padding:14px 22px 18px;border-top:1px solid rgba(255,255,255,0.06);margin-top:auto;flex-shrink:0;}

@keyframes scanline{0%,100%{top:20%}50%{top:80%}}
@media (max-width:600px){
  #mobile-menu-btn{display:flex;}
  /* #mobile-topbar removed — sidebar handles nav */
  .logo-area{padding-top:68px!important;}
  .page-section{padding-top:68px;}
  #page-loyalty .content, #page-vendors .content, #page-inventory .content,
  #page-expenses .content, #page-reports .content, #page-reminders .content,
  #page-users .content, #page-quotes .content, #page-invoices .content,
  #page-clients .content, #page-payments .content, #page-settings .content,
  #page-dashboard .content {
    -webkit-overflow-scrolling: touch;
    overflow-y: auto;
    overflow-x: auto;
  }
  /* Loyalty tabs scroll horizontally within their own wrappers */
  #loyalty-tab-customers, #loyalty-tab-history {
    overflow-x: visible;
  }
  #li-container > div {
    grid-template-columns: 1fr 52px 88px 70px 28px !important;
    gap: 4px !important;
  }
  #li-container textarea.form-control {
    font-size: 14px !important;
    min-height: 48px !important;
  }
  .app{flex-direction:column;}
  .sidebar{position:fixed;left:0;top:0;height:100vh;height:100dvh;z-index:150;width:260px;transform:translateX(-260px);transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);box-shadow:none;will-change:transform;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;overflow-y:auto;}
  .sidebar.mobile-open{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,0.4);}
  #mobile-overlay.show{display:block;}
  .main{margin-left:0!important;width:100%!important;}
  /* padding-top handled above */
  .page-header{padding:16px;flex-direction:column;gap:10px;align-items:flex-start;}
  .page-header > div:last-child{width:100%;display:flex;gap:8px;flex-wrap:wrap;}
  .page-header > div:last-child .btn{flex:1;justify-content:center;min-width:100px;}
  .stats-row{grid-template-columns:1fr 1fr!important;gap:10px;padding:0 16px;}
  .stat-card{padding:14px;}
  .sc-value{font-size:18px!important;}
  .content{padding:16px!important;}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  table{min-width:500px;}
  .inv-table{min-width:unset!important;}
  .inv-hide-mobile{display:none!important;}
  #page-settings .content{overflow-x:hidden;}
  #page-settings .card{overflow:hidden;}
  #page-settings .form-row{flex-direction:column;}
  #page-settings input,#page-settings select,#page-settings textarea{width:100%!important;box-sizing:border-box;}
  #page-settings .form-group{width:100%!important;}
  .modal{width:100%!important;max-width:100%!important;max-height:95vh;border-radius:18px 18px 0 0;margin:0;position:fixed;bottom:0;left:0;right:0;display:flex!important;flex-direction:column!important;}
  .modal-overlay{align-items:flex-end!important;padding:0!important;}
  #modal-preview .modal,
  #modal-quote-preview .modal,
  #modal-statement .modal{max-height:92vh;overflow-y:auto;}
  #modal-preview .modal-body,
  #modal-quote-preview .modal-body,
  #modal-statement .modal-body{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  #preview-body table,
  #quote-preview-body table{font-size:11px!important;}
  #preview-body td,
  #quote-preview-body td{padding:6px 8px!important;}
  .modal-body{padding:16px!important;}
  .form-row{flex-direction:column;}
  .form-row.three{flex-direction:column;}
  .form-group{width:100%!important;}
  .card{margin-bottom:12px;}
  .clients-grid{grid-template-columns:1fr 1fr!important;}
  .login-left{display:none;}
  .login-right{width:100%;padding:20px 16px;}
  .login-card{padding:28px 20px;border-radius:20px;}
  .rpt-custom-range{flex-direction:column;}
}

@media (max-width:480px){
  .stats-row{grid-template-columns:1fr!important;}
  .clients-grid{grid-template-columns:1fr!important;}
  .page-header > div:last-child .btn{font-size:12px;padding:8px 10px;}
}


/* ===== MOBILE: LINE ITEMS ===== */
@media (max-width:600px){
  .li-header{display:none!important;}
  .li-row{display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;position:relative;}
  .li-row input[type="number"]{width:100%!important;}
  .li-row .btn-del{font-size:18px;}
  .li-row input:first-child{font-weight:600;}
  .li-row .li-total{text-align:right;font-size:14px;padding-top:4px;border-top:1px solid var(--border);margin-top:2px;}
  .totals-section{max-width:100%!important;margin-left:0!important;}
  /* Invoice action buttons — stack on mobile */
  .inv-action-btns{flex-direction:column!important;gap:8px!important;}
  .inv-action-btns .btn{width:100%!important;justify-content:center;}
  /* Send invoice modal buttons — stack on mobile */
  .sie-btns{flex-direction:column!important;gap:8px!important;}
  .sie-btns .btn{width:100%!important;justify-content:center;}
  /* Modal footer buttons — always wrap on mobile */
  .modal-footer{flex-wrap:wrap!important;gap:8px!important;}
  .modal-footer .btn{flex:1 1 auto!important;min-width:120px;justify-content:center;}
  /* View invoice panel */
  #modal-view-invoice .modal{max-height:95vh;}
  /* Modal body scrolls via flex:1;min-height:0 on base rule — no max-height override needed */
  /* Fix send-invoice-email modal button row */
  #modal-send-invoice-email .modal-body > div:last-child,
  #modal-send-receipt .modal-footer{flex-direction:column!important;gap:8px!important;}
  #modal-send-invoice-email .modal-body > div:last-child .btn,
  #modal-send-receipt .modal-footer .btn{width:100%!important;justify-content:center;}
  /* Scan modal adjustments */
  #modal-scan-invoice .modal,
  #modal-scan-received-invoice .modal{max-height:95vh;}
  /* Stats row improvements */
  .sc-icon{font-size:20px!important;}
  /* Table horizontal scroll */
  .content > .table-wrap{margin:0 -16px;padding:0 16px;width:calc(100% + 32px);}
  /* Page header action buttons full width on mobile */
  .page-header .btn{font-size:12px!important;}
}
@media (max-width:480px){
  .modal-body{padding:12px!important;}
  .modal-header{padding:14px 14px 12px!important;}
  .form-row{gap:8px!important;}
  .form-group label{font-size:11px!important;}
  .btn{font-size:12px!important;padding:9px 12px!important;}
  .btn-sm{font-size:11px!important;padding:6px 10px!important;}
  /* Totals section on very small screens */
  .tot-grand{font-size:16px!important;}
}

/* ═══════════════════════════════════════════════════════════════
   TOOLTIP SYSTEM
═══════════════════════════════════════════════════════════════ */
/* Tooltip handled by JS */
#cb-tooltip{
  position:fixed;
  background:rgba(10,22,40,0.93);
  color:#fff;
  font-size:11.5px;
  font-weight:600;
  padding:5px 12px;
  border-radius:7px;
  white-space:nowrap;
  pointer-events:none;
  z-index:90;
  letter-spacing:0.2px;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);
  font-family:var(--font-body);
  display:none;
  transition:opacity 0.1s;
}
[data-theme="dark"] #cb-tooltip{background:rgba(200,220,255,0.95);color:#0a1628;}

/* ═══════════════════════════════════════════════════════════════
   DARK THEME
═══════════════════════════════════════════════════════════════ */
[data-theme="dark"]{
  --bg:#0b1220;
  --surface:#0f1c2e;
  --surface2:#152741;
  --nav-bg:#0a1120;
  --sidebar-bg:linear-gradient(180deg,#080f1c 0%,#0b1524 60%,#080e1a 100%);
  --sidebar-text:#8899b4;
  --border:#213a5d;
  --login-bg:#060f1e;
  --login-card-bg:rgba(255,255,255,0.04);
  --login-card-border:rgba(255,255,255,0.1);
  --login-text:#e8eef6;
  --login-text-muted:rgba(255,255,255,0.5);
  --login-input-bg:rgba(255,255,255,0.05);
  --login-input-border:rgba(255,255,255,0.1);
  --login-label:rgba(255,255,255,0.45);
  --login-feat-text:rgba(255,255,255,0.65);
  --login-feat-border:rgba(255,255,255,0.05);
  --login-trust-bg:rgba(255,255,255,0.04);
  --login-trust-border:rgba(255,255,255,0.08);
  --text:#e8eef6;
  --text-muted:#9ab1cc;
  --text-light:#6a88ad;
  --jw-green-pale:rgba(0,214,169,0.16);
  --jw-blue-pale:rgba(37,99,235,0.16);
}
[data-theme="dark"] body{
  background:var(--bg);
  /* subtle texture only (no gradients) */
  background-image:radial-gradient(rgba(37,99,235,0.10) 1px,transparent 1px);
  background-size:26px 26px;
}
[data-theme="dark"] .sidebar{background:linear-gradient(180deg,#080f1c 0%,#0b1524 60%,#080e1a 100%)!important;}
[data-theme="dark"] .modal{background:var(--surface);border-color:var(--border);}
[data-theme="dark"] .modal-header{background:linear-gradient(180deg,#192638 0%,var(--surface) 100%)!important;}
[data-theme="dark"] .table-toolbar{background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 100%)!important;}
[data-theme="dark"] th{background:linear-gradient(180deg,#192638 0%,var(--surface2) 100%)!important;color:#8aaac8!important;}
[data-theme="dark"] .lf-input{background:rgba(255,255,255,0.05)!important;color:#e8eef6!important;}
[data-theme="dark"] .form-control{background:var(--surface2)!important;color:var(--text)!important;border-color:var(--border)!important;}
[data-theme="dark"] .search-box{background:var(--surface2)!important;color:var(--text)!important;border-color:var(--border)!important;}
[data-theme="dark"] select.form-control option{background:var(--surface2);color:var(--text);}
[data-theme="dark"] .client-card{background:var(--surface)!important;border-color:var(--border)!important;}
[data-theme="dark"] .card{background:var(--surface)!important;border-color:var(--border)!important;}
[data-theme="dark"] .stat-card{background:var(--surface)!important;border-color:var(--border)!important;}
[data-theme="dark"] .table-wrap{background:var(--surface)!important;border-color:var(--border)!important;}
[data-theme="dark"] td{color:var(--text);}
[data-theme="dark"] tr:hover td{background:var(--surface2)!important;}
[data-theme="dark"] .page-title{background:linear-gradient(135deg,#e8eef6 0%,#4a7fe8 100%)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;}
[data-theme="dark"] [data-tip]:hover::after{background:rgba(200,220,255,0.95);color:#0a1628;}
[data-theme="dark"] [data-tip]:hover::before{border-top-color:rgba(200,220,255,0.95);}
[data-theme="dark"] .btn-ghost{background:var(--surface2)!important;border-color:var(--border)!important;color:var(--text-muted)!important;}
[data-theme="dark"] .btn-icon{background:var(--surface2)!important;border-color:var(--border)!important;color:var(--text-muted)!important;}

/* Theme toggle button */
#theme-toggle{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,0.07);border:1.5px solid rgba(255,255,255,0.12);
  cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;
  transition:all 0.2s;color:#fff;
}
#theme-toggle:hover{background:rgba(255,255,255,0.14);}

/* merged from duplicate block */
/* Tooltip handled by JS */
#cb-tooltip{
  position:fixed;
  background:rgba(10,22,40,0.93);
  color:#fff;
  font-size:11.5px;
  font-weight:600;
  padding:5px 12px;
  border-radius:7px;
  white-space:nowrap;
  pointer-events:none;
  z-index:99999;
  letter-spacing:0.2px;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);
  font-family:var(--font-body);
  display:none;
  transition:opacity 0.1s;}

/* Standalone admin shell (no marketing column) */
.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;position:relative;z-index:1;width:100%;}
.login-wrap .login-card{max-width:420px;}
#app-screen.admin-shell{flex-direction:column;}
.admin-shell-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:var(--nav-bg,#0a1628);color:#c8d8f0;border-bottom:1px solid rgba(255,255,255,0.08);flex-shrink:0;}
.admin-shell-top .admin-shell-user{font-size:13px;color:#9aafc7;}
.admin-shell-main{flex:1;overflow:auto;min-height:0;}
.admin-subnav{display:flex;gap:8px;padding:10px 20px 12px;background:var(--surface2);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;}
.admin-nav-btn{opacity:0.85;}
.admin-nav-btn--active,.admin-nav-btn.admin-nav-btn--active{opacity:1;box-shadow:0 0 0 2px rgba(0,201,167,0.35);border-color:rgba(0,201,167,0.45);}
.lf-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;padding:4px;line-height:1;}

/* Master admin dashboard (layout + CSS-only charts) */
.adm-dash-layout{background:linear-gradient(180deg,var(--surface2) 0%,var(--bg) 28%);min-height:100%;}
.adm-dash-hero{
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;
  padding:28px clamp(20px,4vw,40px) 24px;
  background:linear-gradient(125deg,rgba(10,22,40,0.04) 0%,rgba(37,99,235,0.07) 38%,rgba(0,201,167,0.09) 100%);
  border-bottom:1px solid var(--border);
  box-shadow:0 12px 40px rgba(10,22,40,0.06);
}
[data-theme="dark"] .adm-dash-hero{
  background:linear-gradient(125deg,rgba(0,0,0,0.25) 0%,rgba(37,99,235,0.12) 45%,rgba(0,201,167,0.08) 100%);
  box-shadow:none;
}
.adm-dash-badge{
  display:inline-block;font-size:10px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--jw-green-deeper);background:rgba(0,201,167,0.14);padding:4px 10px;border-radius:100px;margin:0 0 10px;
}
.adm-dash-title{font-size:clamp(22px,3vw,28px);margin:0;font-family:var(--font-display);font-weight:800;color:var(--text);letter-spacing:-0.02em;}
.adm-dash-sub{font-size:13.5px;color:var(--text-muted);margin-top:10px;max-width:52ch;line-height:1.6;}
.adm-dash-hero-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.adm-dash-inner{max-width:1180px;margin:0 auto;padding-top:24px!important;padding-bottom:40px!important;}
.adm-dash-kpis{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;margin-bottom:22px;
}
@media (min-width:720px){ .adm-dash-kpis{grid-template-columns:repeat(5,minmax(0,1fr));} }
.adm-dash-kpi{
  display:flex;align-items:flex-start;gap:12px;padding:16px 16px;border-radius:var(--r-lg);
  border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-1);
  position:relative;overflow:hidden;
}
.adm-dash-kpi::after{
  content:'';position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px;opacity:0.85;
}
.adm-dash-kpi[data-accent="neutral"]::after{background:var(--text-muted);}
.adm-dash-kpi[data-accent="green"]::after{background:var(--jw-green);}
.adm-dash-kpi[data-accent="red"]::after{background:var(--red);}
.adm-dash-kpi[data-accent="blue"]::after{background:var(--jw-blue-mid);}
.adm-dash-kpi[data-accent="gold"]::after{background:linear-gradient(180deg,#f4c430,#e67e22);}
.adm-dash-kpi--wide{grid-column:span 1;}
@media (min-width:720px){ .adm-dash-kpi--wide{grid-column:span 2;} }
.adm-dash-kpi-icon{
  width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:16px;background:var(--surface2);flex-shrink:0;
}
.adm-dash-kpi-body{min-width:0;}
.adm-dash-kpi-label{font-size:10px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.6px;}
.adm-dash-kpi-val{font-size:26px;font-weight:900;color:var(--text);margin-top:4px;font-variant-numeric:tabular-nums;line-height:1.1;}
.adm-dash-kpi-val--sm{font-size:20px;}
.adm-dash-viz-grid{
  display:grid;grid-template-columns:1fr;gap:16px;align-items:stretch;
}
@media (min-width:960px){ .adm-dash-viz-grid{grid-template-columns:1fr 1fr 0.95fr;} }
.adm-dash-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:20px 20px 18px;box-shadow:var(--shadow-1);
  display:flex;flex-direction:column;min-height:0;
}
.adm-dash-card--viz{min-height:260px;}
.adm-dash-card--trials{min-height:260px;}
.adm-dash-card-head{margin-bottom:14px;}
.adm-dash-card-title{font-size:15px;font-weight:800;color:var(--text);margin:0;letter-spacing:-0.01em;}
.adm-dash-card-hint{font-size:12px;color:var(--text-muted);margin:6px 0 0;line-height:1.45;}
.adm-viz{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:180px;}
.adm-viz-empty{margin:0;font-size:13px;color:var(--text-muted);text-align:center;padding:24px 8px;}
.adm-stack-track{
  display:flex;flex-direction:row;height:18px;border-radius:9px;overflow:hidden;width:100%;
  box-shadow:inset 0 1px 3px rgba(10,22,40,0.12);background:var(--surface2);
}
.adm-stack-seg{flex:0 0 auto;height:100%;min-width:3px;box-sizing:border-box;transition:opacity 0.15s;}
.adm-stack-seg:hover{opacity:0.88;}
.adm-stack-legend{
  list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px 16px;
  grid-template-columns:repeat(auto-fill,minmax(140px,1fr));font-size:12.5px;color:var(--text-muted);
}
.adm-stack-legend li{display:flex;align-items:center;gap:8px;}
.adm-stack-legend strong{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums;}
.adm-leg-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.adm-bars{
  display:flex;align-items:flex-end;justify-content:space-between;gap:6px;height:168px;padding:0 4px 4px;
  border-bottom:1px solid var(--border);
}
.adm-bar-col{
  flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;
}
.adm-bar-meter{
  flex:1;width:100%;max-width:44px;margin:0 auto;display:flex;align-items:flex-end;justify-content:center;
  background:linear-gradient(180deg,transparent,rgba(10,22,40,0.04));border-radius:8px 8px 4px 4px;
}
[data-theme="dark"] .adm-bar-meter{background:linear-gradient(180deg,transparent,rgba(255,255,255,0.04));}
.adm-bar-fill{
  display:block;width:72%;min-height:4px;border-radius:6px 6px 2px 2px;
  background:linear-gradient(180deg,#7eb0ff 0%,var(--jw-blue-mid) 45%,#2563eb 100%);
  box-shadow:0 2px 8px rgba(37,99,235,0.25);transition:height 0.25s ease;
}
.adm-bar-count{font-size:12px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;}
.adm-bar-lbl{font-size:10px;font-weight:600;color:var(--text-muted);text-align:center;line-height:1.2;max-width:100%;word-break:break-word;}
.adm-dash-trial-list{flex:1;overflow:auto;max-height:220px;padding-right:4px;}
.adm-dash-trial-item{
  display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--border);
}
.adm-dash-trial-item:last-child{border-bottom:none;padding-bottom:0;}
.adm-dash-trial-date{font-size:11.5px;color:var(--text-muted);}

.adm-quick-invite{
  background:var(--surface);
  border:1.5px solid var(--border);
  border-radius:var(--r-md);
  padding:16px 18px;
  margin-bottom:16px;
  box-shadow:var(--shadow-1);
}
.adm-quick-invite-title{font-size:12px;font-weight:800;color:var(--text);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:10px;}
.adm-quick-invite-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.adm-quick-invite-row .form-control{min-width:200px;flex:1;}
.adm-quick-invite-hint{font-size:11.5px;color:var(--text-muted);margin-top:10px;line-height:1.5;}
.adm-quick-invite-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);white-space:nowrap;cursor:pointer;}
.adm-quick-invite-check input{accent-color:var(--jw-green);width:16px;height:16px;}

/* Platform co-admins (master console) */
.adm-pa-header{padding-bottom:4px;}
.adm-pa-content{max-width:820px;margin:0 auto;padding-top:12px!important;}
.adm-pa-lead{font-size:13.5px;color:var(--text-muted);margin-top:10px;line-height:1.55;max-width:68ch;}
.adm-pa-invite{
  background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-md);
  padding:18px 20px;margin-bottom:22px;box-shadow:var(--shadow-1);
}
.adm-pa-h2{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0.65px;color:var(--text);margin:0 0 12px;}
.adm-pa-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.adm-pa-row .form-control{min-width:180px;flex:1;}
.adm-pa-check{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;white-space:nowrap;}
.adm-pa-check input{accent-color:var(--jw-green);width:16px;height:16px;}
.adm-pa-note{font-size:11.5px;color:var(--text-muted);margin:12px 0 0;line-height:1.5;}
.adm-pa-rls-note{font-size:12px;color:var(--text-muted);margin:0 0 12px;line-height:1.5;max-width:68ch;}
.adm-pa-table-wrap .adm-pa-h2{margin-top:4px;}
