*,:before,:after{box-sizing:border-box}:root{--royal-950:#100e2c;--royal-900:#17153b;--royal-800:#211c57;--royal-700:#2c2670;--brand:#4b3fbb;--brand-dark:#382e96;--brand-light:#eeecfb;--gold:#c9a227;--gold-light:#e7ce7a;--gold-dark:#9a7b1a;--accent:#c9a227;--ok:#127c57;--bad:#b4232a;--warn:#b7791f;--text:#1e1b33;--muted:#6e6a85;--border:#e7e4f1;--panel:#fff;--bg:#f3f1f8;--radius:12px;--radius-lg:16px;--shadow-sm:0 1px 2px #17153b0f,0 1px 3px #17153b0d;--shadow:0 6px 18px #17153b17,0 2px 6px #17153b0f;--shadow-lg:0 24px 60px #17153b47;--glow-1:#eae6f8;--glow-2:#ede9f6;--sb-bg:linear-gradient(185deg,var(--royal-900) 0%,var(--royal-950) 100%);--sb-text:#ffffffc7;--sb-text-strong:#fff;--sb-hover:#ffffff17;--sb-active-bg:linear-gradient(90deg,#c9a22733,#c9a2270f);--sb-active-text:#fff;--sb-active-bar:var(--gold);--sb-border:#ffffff1a;--sb-chip-bg:#ffffff1a;--sb-chip-border:#c9a22747;--sb-shadow:3px 0 24px #100e2c59;--sb-logo-pump:radial-gradient(circle at 40% 30%,#c9a227e6,#c9a22759);--sb-label:#ffffff8c;--font-body:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-display:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}:root[data-theme=emerald]{--royal-950:#082a1e;--royal-900:#0c3a2a;--royal-800:#114a37;--royal-700:#155c45;--brand:#0e9f6e;--brand-dark:#0a7d56;--brand-light:#e1f5ec;--gold:#c9a227;--gold-light:#e7ce7a;--gold-dark:#9a7b1a;--accent:#c9a227;--bg:#eff5f2;--glow-1:#dcf0e7;--glow-2:#e6f2ec}:root[data-theme=sapphire]{--royal-950:#081a34;--royal-900:#0d2a50;--royal-800:#153a6a;--royal-700:#1b4b86;--brand:#2563eb;--brand-dark:#1d4ed8;--brand-light:#e4edfb;--gold:#38bdf8;--gold-light:#7dd3fc;--gold-dark:#0ea5e9;--accent:#38bdf8;--bg:#eef3fb;--glow-1:#dce9fa;--glow-2:#e4effb}:root[data-theme=ruby]{--royal-950:#2a0a16;--royal-900:#3b0f1f;--royal-800:#52172b;--royal-700:#6e1f3a;--brand:#b01e4b;--brand-dark:#8c1740;--brand-light:#f7e1e9;--gold:#d4af37;--gold-light:#e7ce7a;--gold-dark:#9a7b1a;--accent:#d4af37;--bg:#f7f0f3;--glow-1:#f3dee6;--glow-2:#f5e6ec}:root[data-theme=slate]{--royal-950:#0f1720;--royal-900:#1b2630;--royal-800:#2a3745;--royal-700:#3a4a5c;--brand:#3e5c76;--brand-dark:#2e4759;--brand-light:#eaeef3;--gold:#e0a82e;--gold-light:#efc868;--gold-dark:#b07e13;--accent:#e0a82e;--bg:#f1f3f6;--glow-1:#e4e8ee;--glow-2:#e9ecf1}:root[data-theme=teal]{--royal-950:#062a2a;--royal-900:#083a3a;--royal-800:#0c4c4c;--royal-700:#0f5e5e;--brand:#0d9488;--brand-dark:#0a756b;--brand-light:#def3f1;--gold:#c9a227;--gold-light:#e7ce7a;--gold-dark:#9a7b1a;--accent:#c9a227;--bg:#eef5f4;--glow-1:#dcf0ee;--glow-2:#e6f2f0}:root[data-theme=amber]{--royal-950:#3a2410;--royal-900:#4a2f12;--royal-800:#5e3d18;--royal-700:#744c1e;--brand:#d97706;--brand-dark:#b45309;--brand-light:#fdf0dd;--gold:#eab308;--gold-light:#fde68a;--gold-dark:#a16207;--accent:#eab308;--bg:#f7f2ea;--glow-1:#f3e7d2;--glow-2:#f5edde}:root[data-theme=plum]{--royal-950:#2a1145;--royal-900:#37175c;--royal-800:#481f74;--royal-700:#5a288f;--brand:#7c3aed;--brand-dark:#6d28d9;--brand-light:#efe7fb;--gold:#e0a82e;--gold-light:#efc868;--gold-dark:#b07e13;--accent:#e0a82e;--bg:#f4f0fa;--glow-1:#e9e0f7;--glow-2:#efe8f9}:root[data-theme=rose]{--royal-950:#3a0f24;--royal-900:#4c1530;--royal-800:#631c3f;--royal-700:#7d2450;--brand:#db2777;--brand-dark:#be185d;--brand-light:#fbe4ef;--gold:#d4af37;--gold-light:#e7ce7a;--gold-dark:#9a7b1a;--accent:#d4af37;--bg:#f9f0f4;--glow-1:#f5deea;--glow-2:#f7e6ee}:root[data-theme=lightlime],:root[data-theme=lightsky],:root[data-theme=lightcyan],:root[data-theme=lightfuchsia]{--sb-bg:linear-gradient(185deg,#fff 0%,#f4f3fa 100%);--sb-text:#5c5873;--sb-text-strong:var(--royal-800);--sb-hover:var(--brand-light);--sb-active-bg:var(--brand-light);--sb-active-text:var(--brand-dark);--sb-active-bar:var(--brand);--sb-border:#e7e4f1;--sb-chip-bg:#f4f2fb;--sb-chip-border:var(--border);--sb-shadow:2px 0 18px #17153b14;--sb-logo-pump:radial-gradient(circle at 40% 30%,var(--brand),var(--brand-dark));--sb-label:#9a96ae}:root[data-theme=lightlime]{--royal-950:#365314;--royal-900:#3f6212;--royal-800:#4d7c0f;--royal-700:#5d960e;--brand:#65a30d;--brand-dark:#4d7c0f;--brand-light:#ecf6d9;--gold:#84cc16;--gold-light:#bef264;--gold-dark:#4d7c0f;--accent:#65a30d;--bg:#f4f7ec;--glow-1:#e9f1d6;--glow-2:#eff4e2}:root[data-theme=lightsky]{--royal-950:#0b3a5a;--royal-900:#0e4a70;--royal-800:#0f5e8c;--royal-700:#1173a8;--brand:#0284c7;--brand-dark:#0369a1;--brand-light:#e1f1fb;--gold:#0ea5e9;--gold-light:#7dd3fc;--gold-dark:#0369a1;--accent:#0284c7;--bg:#f1f7fc;--glow-1:#deeefa;--glow-2:#e8f2fb}:root[data-theme=lightcyan]{--royal-950:#083344;--royal-900:#0e4a5e;--royal-800:#155e75;--royal-700:#1b7a96;--brand:#0891b2;--brand-dark:#0e7490;--brand-light:#d9f1f7;--gold:#06b6d4;--gold-light:#67e8f9;--gold-dark:#0e7490;--accent:#0891b2;--bg:#eff6f8;--glow-1:#dceef3;--glow-2:#e7f2f5}:root[data-theme=lightfuchsia]{--royal-950:#4a044e;--royal-900:#5b0a5f;--royal-800:#701a75;--royal-700:#86198f;--brand:#c026d3;--brand-dark:#a21caf;--brand-light:#f7e1fa;--gold:#d946ef;--gold-light:#f0abfc;--gold-dark:#a21caf;--accent:#c026d3;--bg:#f9f0fb;--glow-1:#f3def7;--glow-2:#f6e7f9}html,body{font-family:var(--font-body);color:var(--text);background:radial-gradient(1100px 620px at 100% -8%,var(--glow-1) 0%,transparent 58%), radial-gradient(900px 500px at -6% 110%,var(--glow-2) 0%,transparent 55%), var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;margin:0;padding:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{color:var(--text);margin:0 0 8px}h1{font-family:var(--font-display);letter-spacing:-.022em;font-size:25px;font-weight:800}h2{font-family:var(--font-display);letter-spacing:-.02em;font-size:21px;font-weight:800}h3{letter-spacing:-.01em;font-size:16px;font-weight:700}h4{letter-spacing:-.005em;font-size:14px;font-weight:700}a{color:var(--brand);text-decoration:none;transition:color .15s}a:hover{color:var(--brand-dark)}input,select,textarea,button{font-family:inherit;font-size:14px}input,select,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:9px;outline:none;width:100%;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #4b3fbb29}input::placeholder,textarea::placeholder{color:#a7a2bc}textarea{resize:vertical;min-height:72px}button{cursor:pointer;border:none;border-radius:9px;padding:9px 16px;font-weight:600;transition:transform .12s,box-shadow .15s,background .15s,filter .15s}button:active{transform:translateY(1px)}.btn{background:linear-gradient(180deg,var(--brand) 0%,var(--brand-dark) 100%);color:#fff;padding:9px 16px;box-shadow:0 2px 8px #4b3fbb47}.btn:hover{filter:brightness(1.06);box-shadow:0 5px 16px #4b3fbb57}.btn-sec{color:var(--brand);border:1px solid var(--border);box-shadow:var(--shadow-sm);background:#fff}.btn-sec:hover{background:var(--brand-light);border-color:#c9c2ee}.btn-gold{background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 60%,var(--gold-dark) 100%);color:#3a2e05;box-shadow:0 2px 10px #c9a22766}.btn-gold:hover{filter:brightness(1.05)}.btn-ok{color:#fff;background:linear-gradient(#1ca06e,#127c57);box-shadow:0 2px 8px #127c574d}.btn-ok:hover{filter:brightness(1.06)}.btn-bad{color:#fff;background:linear-gradient(#d23a40,#b4232a);box-shadow:0 2px 8px #b4232a47}.btn-bad:hover{filter:brightness(1.06)}.btn-warn{color:#fff;background:linear-gradient(#d69a2e,#b7791f)}.btn-warn:hover{filter:brightness(1.06)}.btn-gray{color:#fff;background:#6e6a85}.btn-gray:hover{background:#565270}.btn-sm{border-radius:8px;padding:6px 11px;font-size:12px}.btn-lg{border-radius:11px;padding:13px 22px;font-size:16px}.btn-wide{width:100%}button:disabled{opacity:.55;cursor:not-allowed;filter:none;box-shadow:none}#login-screen{z-index:1000;background:radial-gradient(900px 600px at 80% -10%,#c9a22733 0%,#c9a22700 55%), radial-gradient(800px 700px at 12% 115%,#7c6cec47 0%,#7c6cec00 55%), linear-gradient(150deg,var(--royal-950) 0%,var(--royal-800) 55%,var(--royal-700) 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}#login-screen:before{content:"";opacity:.1;background-image:radial-gradient(#ffffff59 .6px,#0000 .6px);background-size:26px 26px;position:absolute;inset:0}.login-box{text-align:center;background:#fffffffa;border:1px solid #fff9;border-radius:20px;width:400px;max-width:calc(100vw - 32px);padding:40px 40px 30px;position:relative;box-shadow:0 30px 80px #09071e8c}.login-box:before{content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);border-radius:0 0 4px 4px;height:3px;position:absolute;top:0;left:24px;right:24px}.login-logo{background:linear-gradient(160deg,var(--royal-800),var(--royal-950));border-radius:50%;justify-content:center;align-items:center;width:74px;height:74px;margin:2px auto 12px;font-size:38px;display:flex;box-shadow:0 8px 22px #17153b66,0 0 0 3px #c9a22780,0 0 0 4px #fff9}.login-box h1{font-family:var(--font-display);color:var(--royal-900);letter-spacing:-.02em;margin-bottom:2px;font-size:28px;font-weight:800}.login-box .tagline{color:var(--gold-dark);text-transform:uppercase;letter-spacing:2.5px;margin-bottom:26px;font-size:11px;font-weight:700}.login-box input{text-align:center;border-radius:11px;margin-bottom:11px;padding:13px;font-size:15px}.login-err{color:var(--bad);min-height:18px;margin-bottom:6px;font-size:13px;font-weight:600;display:none}.login-err.show{display:block}.login-info{border-top:1px solid var(--border);color:var(--muted);letter-spacing:.3px;margin-top:24px;padding-top:16px;font-size:11px;line-height:1.6}.app-layout{min-height:100vh;display:flex}.sidebar{width:222px;min-width:222px;height:100vh;color:var(--sb-text-strong);background:var(--sb-bg);box-shadow:var(--sb-shadow);border-right:1px solid var(--sb-border);flex-direction:column;flex-shrink:0;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-logo{font-family:var(--font-display);letter-spacing:-.01em;border-bottom:1px solid var(--sb-border);color:var(--sb-text-strong);flex-shrink:0;align-items:center;gap:10px;padding:20px 18px 16px;font-size:18px;font-weight:800;display:flex}.sidebar-logo .pump{background:var(--sb-logo-pump);border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:20px;display:flex;box-shadow:inset 0 0 0 1px #c9a22780}.sidebar-nav{flex-direction:column;flex:1;gap:3px;padding:12px 10px;display:flex}.nav-btn{color:var(--sb-text);cursor:pointer;letter-spacing:.2px;white-space:nowrap;text-align:left;background:0 0;border:none;border-radius:9px;width:100%;padding:10px 13px;font-size:13px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.nav-btn:hover{background:var(--sb-hover);color:var(--sb-text-strong)}.nav-btn.active{background:var(--sb-active-bg);color:var(--sb-active-text);box-shadow:inset 3px 0 0 var(--sb-active-bar)}.sidebar-footer{border-top:1px solid var(--sb-border);flex-direction:column;gap:7px;padding:12px 10px 16px;display:flex}.user-chip{background:var(--sb-chip-bg);border:1px solid var(--sb-chip-border);border-radius:10px;padding:9px 12px;font-size:11.5px;font-weight:600;line-height:1.5}.nav-btn.logout{color:#fff;text-align:center;background:#b4232ae6;padding:9px 13px;font-weight:700}.nav-btn.logout:hover{background:var(--bad)}.theme-picker{flex-wrap:wrap;align-items:center;gap:8px;padding:2px 2px 4px;display:flex}.theme-picker .tp-label{text-transform:uppercase;letter-spacing:.6px;color:var(--sb-label);width:100%;margin-bottom:1px;font-size:10px;font-weight:700}.theme-swatch{cursor:pointer;border:2px solid #ffffff47;border-radius:50%;width:22px;height:22px;padding:0;transition:transform .12s,border-color .12s,box-shadow .12s}.theme-swatch:hover{transform:scale(1.14)}.theme-swatch.active{border-color:var(--gold);box-shadow:0 0 0 2px #0000004d}.theme-swatch:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.main{flex:1;min-width:0;max-width:1760px;padding:26px 30px;overflow-x:hidden}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-head h2{margin:0;padding-bottom:6px;position:relative}.page-head h2:after{content:"";background:linear-gradient(90deg,var(--gold),var(--gold-light));border-radius:3px;width:44px;height:3px;position:absolute;bottom:0;left:0}.page-head .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--panel);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border);margin-bottom:18px;padding:20px;position:relative}.card h3{font-family:var(--font-display);border-bottom:1px solid var(--border);color:var(--royal-800);margin-bottom:15px;padding-bottom:11px;font-weight:700}.grid{gap:14px;display:grid}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid>*,.stats>*{min-width:0}@media (width<=780px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:700}.field .sub{color:var(--muted);text-transform:none;letter-spacing:0;font-size:11px;font-weight:500}.field label .sub{margin-top:2px;line-height:1.4;display:block}.grid>.field{justify-content:flex-start}.grid>.field>input,.grid>.field>select,.grid>.field>textarea{margin-top:auto}.stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px;display:grid}.stat{background:var(--panel);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm),inset 4px 0 0 var(--brand);padding:16px 18px;position:relative}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:700}.stat .value{font-family:var(--font-display);color:var(--royal-800);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:3px;font-size:22px;font-weight:800;line-height:1.2}.stat.ok{box-shadow:var(--shadow-sm),inset 4px 0 0 var(--ok)}.stat.ok .value{color:var(--ok)}.stat.warn{box-shadow:var(--shadow-sm),inset 4px 0 0 var(--warn)}.stat.warn .value{color:var(--warn)}.stat.bad{box-shadow:var(--shadow-sm),inset 4px 0 0 var(--bad)}.stat.bad .value{color:var(--bad)}.stat .sub{color:var(--muted);margin-top:3px;font-size:11px}.tech-stats-row{border-top:1px solid var(--border);color:var(--muted);gap:12px;margin-top:8px;padding-top:8px;font-size:12px;display:flex}.tech-stat-item strong{color:var(--text);font-weight:700}.table-wrap{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--royal-700);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;background:linear-gradient(#f6f4fc,#efedf8);padding:12px 14px;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 14px}tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:hover td{background:#faf9fe}td.right,th.right{text-align:right}td.right{font-variant-numeric:tabular-nums;white-space:nowrap}td.center,th.center{text-align:center}td.actions{white-space:nowrap;flex-wrap:wrap;align-items:center;gap:6px;display:flex}.badge{text-transform:uppercase;letter-spacing:.4px;border:1px solid #0000;border-radius:20px;padding:3px 10px;font-size:10.5px;font-weight:700;display:inline-block}.badge.contractor{color:#8a6a15;background:#fcf3d9;border-color:#f0e0ae}.badge.station{color:#33338a;background:#e6eafb;border-color:#d0d6f5}.badge.assigned{color:#3b34a0;background:#e7e5fb;border-color:#d5d1f4}.badge.traveling{color:#8a6410;background:#fcf0d6;border-color:#f1dfa9}.badge.onsite{color:#0b6b47;background:#d6f3e5;border-color:#b4e6ce}.badge.complete{color:#136b37;background:#d9f6e4;border-color:#b7e8c7}.badge.invoiced{color:#1c5c86;background:#deeefb;border-color:#bfddf3}.badge.ok{color:#136b37;background:#d9f6e4;border-color:#b7e8c7}.badge.low{color:#9a3412;background:#fce6ce;border-color:#f4cfa6}.badge.out{color:#8f1d22;background:#fbdcdc;border-color:#f2bfc0}.badge.pending{color:#7a5a0e;background:#fbf3ce;border-color:#f0e2a2}.badge.approved{color:#136b37;background:#d9f6e4;border-color:#b7e8c7}.badge.declined{color:#8f1d22;background:#fbdcdc;border-color:#f2bfc0}.badge.converted{color:#1c5c86;background:#deeefb;border-color:#bfddf3}.badge.expired{color:#6e6a85;background:#eeecf4;border-color:#ded9ea}.badge.paid{color:#136b37;background:#d9f6e4;border-color:#b7e8c7}.badge.overdue{color:#8f1d22;background:#fbdcdc;border-color:#f2bfc0}.badge.on-hold{color:#413b5c;background:#eeecf4;border-color:#ded9ea}.badge.reimbursed{color:#0b6b47;background:#d6f3e5;border-color:#b4e6ce}.badge.rejected{color:#8f1d22;background:#fbdcdc;border-color:#f2bfc0}.mfr-tabs{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:7px;margin-bottom:16px;padding:10px;display:flex}.mfr-tab{color:var(--text);cursor:pointer;text-transform:uppercase;letter-spacing:.3px;background:#f3f1f9;border:1px solid #0000;border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:600;transition:all .15s}.mfr-tab:hover{background:var(--brand-light);border-color:#d5d1f4}.mfr-tab.active{background:linear-gradient(180deg,var(--brand),var(--brand-dark));color:#fff;box-shadow:0 3px 10px #4b3fbb4d}.mfr-tab .count{opacity:.7;margin-left:5px;font-size:11px}.fbar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);z-index:40;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-bottom:16px;padding:12px 14px;display:flex;position:relative}.fbar .search-wrap{flex:220px;min-width:180px;max-width:340px;position:relative}.fbar .search-wrap .ico{opacity:.5;pointer-events:none;font-size:13px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.fbar .search-wrap input{height:40px;padding-left:34px}.fbar select{min-width:210px;height:40px;padding:0 32px 0 12px;font-weight:500}.fbar .fsel{align-items:center;gap:8px;min-width:0;display:flex}.fbar .fsel .filter-lbl{color:var(--muted);text-transform:uppercase;letter-spacing:.7px;white-space:nowrap;font-size:10px;font-weight:700}.seg2{background:var(--bg);border:1px solid var(--border);border-radius:11px;gap:3px;padding:3px;display:inline-flex}.seg2 button{height:34px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:7px;padding:0 13px;font-size:12.5px;font-weight:600;transition:background .12s,color .12s,box-shadow .12s;display:inline-flex}.seg2 button:hover:not(.active){color:var(--text);background:#786eb414}.seg2 button .cnt{color:inherit;text-align:center;font-variant-numeric:tabular-nums;background:#5a508c1f;border-radius:20px;min-width:20px;padding:1px 7px;font-size:11px;font-weight:800}.seg2 button.active{background:var(--panel);box-shadow:var(--shadow-sm);color:var(--royal-800)}.seg2 button.active[data-k=all]{color:var(--brand)}.seg2 button.active[data-k=all] .cnt{background:var(--brand-light);color:var(--brand-dark)}.seg2 button.active[data-k=paid]{color:var(--ok)}.seg2 button.active[data-k=paid] .cnt{color:#136b37;background:#d9f6e4}.seg2 button.active[data-k=due]{color:var(--warn)}.seg2 button.active[data-k=due] .cnt{color:#7a5a0e;background:#fbf3ce}.seg2 button.active[data-k=overdue]{color:var(--bad)}.seg2 button.active[data-k=overdue] .cnt{color:#8f1d22;background:#fbdcdc}.ss{position:relative}.ss-control{border:1px solid var(--border);width:100%;height:40px;color:var(--text);cursor:pointer;background:#fff;border-radius:9px;justify-content:space-between;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:500;transition:border-color .12s,box-shadow .12s;display:flex}.ss-control:hover{border-color:#c9c2ee}.ss-control:focus-visible{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #4b3fbb29}.ss-control>span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ss-ph{color:#a7a2bc}.ss-caret{color:var(--muted);flex:none;font-size:11px}.ss-menu{z-index:30;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:12px;min-width:250px;padding:7px;position:absolute;top:calc(100% + 5px);left:0;right:0}.ss-menu.ss-menu-portal{z-index:4000;position:fixed;right:auto}.ss-search{height:36px;margin-bottom:7px}.ss-list{max-height:280px;overflow-y:auto}.ss-opt{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:8px;flex:none;margin-top:1px;padding:8px 10px;font-size:13px;line-height:1.3;transition:background .1s,color .1s;overflow:hidden}.ss-opt:hover{background:var(--brand-light);color:var(--brand-dark)}.ss-opt.sel{background:linear-gradient(180deg,var(--brand),var(--brand-dark));color:#fff;font-weight:600}.ss-empty{color:var(--muted);text-align:center;padding:12px;font-size:13px}.tech-grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:14px;display:grid}.tech-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:16px 16px 16px 20px;transition:transform .15s,box-shadow .15s;position:relative}.tech-card:before{content:"";background:#b7b2c9;border-radius:0 3px 3px 0;width:4px;position:absolute;top:14px;bottom:14px;left:0}.tech-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.tech-card.available:before{background:#b7b2c9}.tech-card.assigned:before{background:linear-gradient(180deg,var(--brand),var(--brand-dark))}.tech-card.traveling:before{background:linear-gradient(180deg,var(--gold),var(--warn))}.tech-card.onsite:before{background:linear-gradient(180deg,#1ca06e,var(--ok))}.tech-card .tech-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tech-card .tech-name{color:var(--royal-800);align-items:center;gap:6px;font-size:16px;font-weight:700;display:flex}.tech-card .tech-job{border:1px solid var(--border);background:#f7f6fc;border-radius:9px;margin:8px 0;padding:9px 11px;font-size:13px;line-height:1.45}.tech-card .tech-job.none{color:var(--muted);background:0 0;border:none;padding:4px 0;font-style:italic}.tech-card .tech-stats{border-top:1px solid var(--border);justify-content:space-between;padding-top:10px;font-size:12px;display:flex}.tech-card .tech-stat{text-align:center;flex:1}.tech-card .tech-stat .v{color:var(--text);font-size:15px;font-weight:800}.tech-card .tech-stat .l{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:10px}.modal-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#100e2c8c;justify-content:center;align-items:flex-start;padding:44px 16px;display:none;position:fixed;inset:0;overflow-y:auto}.modal-bg.show{animation:.18s ease-out fadeIn;display:flex}.modal{background:var(--panel);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:calc(100vh - 88px);box-shadow:var(--shadow-lg);border:1px solid #ffffffb3;animation:.2s cubic-bezier(.2,.8,.3,1) popIn;overflow-y:auto}.modal.wide{max-width:920px}.modal-head{border-bottom:1px solid var(--border);z-index:1;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(#fbfaff,#f6f4fc);justify-content:space-between;align-items:center;padding:17px 22px;display:flex;position:sticky;top:0}.modal-head h3{font-family:var(--font-display);color:var(--royal-800);margin:0;font-size:18px}.modal-close{cursor:pointer;width:34px;height:34px;color:var(--muted);background:#efedf6;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px;transition:background .15s,color .15s;display:flex}.modal-close:hover{background:var(--bad);color:#fff}.modal-body{padding:22px}.modal-foot{border-top:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:linear-gradient(#fff,#fbfaff);flex-wrap:wrap;justify-content:flex-end;gap:9px;padding:15px 22px;display:flex;position:sticky;bottom:0}#toast{background:var(--royal-900);color:#fff;box-shadow:var(--shadow-lg);z-index:200;border:1px solid #c9a22780;border-radius:12px;max-width:420px;padding:15px 22px;font-size:15px;font-weight:700;display:none;position:fixed;top:24px;right:24px}#toast.show{animation:.28s cubic-bezier(.2,.8,.3,1) slideIn;display:block}#toast.ok{background:linear-gradient(160deg,#1ca06e,var(--ok));border-color:#ffffff59;padding:16px 24px;font-size:16px}#toast.bad{background:linear-gradient(160deg,#d23a40,var(--bad));border-color:#ffffff59}#toast.warn{background:linear-gradient(160deg,var(--gold),var(--warn));border-color:#ffffff59}@keyframes slideIn{0%{opacity:0;transform:translate(360px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.empty{text-align:center;color:var(--muted);padding:48px 20px}.empty .icon{filter:drop-shadow(0 6px 14px #17153b26);margin-bottom:12px;font-size:52px}.empty h4{color:var(--text);margin-bottom:4px;font-size:16px}.empty p{margin:0 0 16px;font-size:13px}.wo-list{gap:14px;display:grid}.wo-card{background:var(--panel);border-radius:var(--radius-lg);border:1px solid var(--border);cursor:pointer;box-shadow:var(--shadow-sm);padding:16px 16px 16px 20px;transition:transform .15s,box-shadow .15s;position:relative}.wo-card:before{content:"";background:linear-gradient(180deg,var(--brand),var(--brand-dark));border-radius:0 3px 3px 0;width:4px;position:absolute;top:14px;bottom:14px;left:0}.wo-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.wo-card.assigned:before{background:linear-gradient(180deg,var(--brand),var(--brand-dark))}.wo-card.traveling:before{background:linear-gradient(180deg,var(--gold),var(--warn))}.wo-card.onsite:before{background:linear-gradient(180deg,#1ca06e,var(--ok))}.wo-card.complete:before{background:linear-gradient(#1ca06e,#059669)}.wo-card.complete{opacity:.9}.wo-card .row1{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.wo-card .wo-num{color:var(--royal-800);letter-spacing:.2px;font-size:15px;font-weight:800}.wo-card .cust{margin-bottom:2px;font-weight:700}.wo-card .loc{color:var(--muted);font-size:12px}.wo-card .desc{border-top:1px solid var(--border);color:var(--text);margin-top:9px;padding-top:9px;font-size:13px;line-height:1.45}body:not([data-role=owner]) #invoice-backend-cost-card,body:not([data-role=owner]) .owner-only-card{display:none!important}.invoice-doc{border:1px solid var(--border);color:#111;background:#fff;max-width:820px;margin:0 auto;padding:40px}.inv-head{border-bottom:3px solid var(--brand);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;display:flex}.inv-co .co-name{font-family:var(--font-display);color:var(--brand);letter-spacing:.5px;font-size:26px;font-weight:700}.inv-co .co-addr{color:#374151;margin-top:6px;font-size:13px;line-height:1.5}.inv-nums{text-align:right;flex-shrink:0;min-width:220px;font-size:13px}.inv-nums .inv-nums-table{border-collapse:collapse;margin-left:auto}.inv-nums .inv-nums-table td{padding:3px 8px;font-size:13px}.inv-nums .inv-nums-table td:first-child{color:#6b7280;text-align:right;white-space:nowrap;font-weight:600}.inv-nums .inv-nums-table td:last-child{color:#111;text-align:right;font-weight:700}.inv-nums .wo-n{color:var(--brand);font-size:17px;font-weight:800}.inv-nums .inv-n{color:#111;font-size:17px;font-weight:800}.inv-block{margin-top:18px}.inv-block-title{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px;font-weight:700}.inv-block-body{color:#111;font-size:13px;line-height:1.5}.inv-two{grid-template-columns:1fr 1fr;gap:20px;margin-top:16px;display:grid}.inv-desc,.inv-work{border-left:3px solid var(--brand);background:#f9fafb;border-radius:4px;margin-top:16px;padding:12px 14px}.inv-work{border-left-color:var(--ok)}.inv-table{border-collapse:collapse;width:100%;margin-top:18px;font-size:13px}.inv-table th{background:var(--brand);color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.3px;padding:8px 10px;font-size:11px;font-weight:700}.inv-table th.right{text-align:right}.inv-table td{border-bottom:1px solid #e5e7eb;padding:8px 10px}.inv-table td.right{text-align:right}.inv-totals{justify-content:flex-end;margin-top:12px;display:flex}.inv-totals table{width:280px;font-size:13px}.inv-totals td{border-bottom:none;padding:5px 10px}.inv-totals td.lbl{text-align:right;color:var(--muted)}.inv-totals td.val{text-align:right;font-weight:600}.inv-totals tr.total td{color:var(--brand);border-top:2px solid var(--brand);padding-top:8px;font-size:17px;font-weight:700}.inv-foot{color:var(--muted);text-align:center;border-top:1px solid #e5e7eb;margin-top:24px;padding-top:14px;font-size:12px;line-height:1.6}@media print{body{background:#fff}.sidebar,#toast,.modal-bg,.no-print{display:none!important}.main{padding:0}.invoice-doc{border:none;max-width:100%;padding:20px}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.cq-two,.cq-block,.cq-spec,.cq-totals,.inv-two,.inv-block{page-break-inside:avoid;break-inside:avoid}}@media (width<=780px){.sidebar{width:184px;min-width:184px}.nav-btn{padding:8px 11px;font-size:12px}.main{padding:16px}.page-head{flex-direction:column;align-items:flex-start}.invoice-doc{padding:18px}.inv-nums{min-width:180px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.hide{display:none!important}.upper{text-transform:uppercase}.mono{font-family:JetBrains Mono,Courier New,monospace}.text-muted{color:var(--muted)}.text-ok{color:var(--ok)}.text-bad{color:var(--bad)}.text-warn{color:var(--warn)}.fw-600{font-weight:600}.fw-700{font-weight:700}.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-0{margin-bottom:0}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.flex{align-items:center;gap:8px;display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-12{gap:12px}.w-100{width:100%}.loading{text-align:center;color:var(--muted);padding:44px}.spinner{border:2px solid var(--border);border-top-color:var(--brand);vertical-align:middle;border-radius:50%;width:18px;height:18px;margin-right:6px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--brand)}
