:root{--bg: #070d1a;--sf: #0b1426;--card: #142239;--b: #23395c;--acc: #d6a26f;--acc-hover: #ecc9a1;--acc-rgb: 214, 162, 111;--font-display: "Montserrat", "Segoe UI", system-ui, sans-serif;--font-body: "Inter", "Segoe UI", system-ui, sans-serif;--blue: #3d7fff;--green: #22c55e;--red: #ef4444;--amb: #f59e0b;--pur: #a855f7;--tx: #eef1f7;--mu: #8a95a8;--sub: #c5ccd8}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--tx);font-family:var(--font-body);min-height:100vh;font-size:13px;-webkit-font-smoothing:antialiased}.pt,.st,.mv,.sb-co,.empty-title,.insights h3,.modal .mh{font-family:var(--font-display);letter-spacing:-.01em}a{color:var(--acc);text-decoration:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--b);border-radius:3px}.app{display:flex;height:100vh;height:100dvh;overflow:hidden}.sb{width:212px;flex-shrink:0;background:var(--sf);border-right:1px solid var(--b);display:flex;flex-direction:column;transition:transform .25s}.sb-logo{padding:16px;border-bottom:1px solid var(--b)}.sb-co{font-size:14px;font-weight:700;color:var(--acc)}.sb-logo img{display:block;height:46px;width:auto}.login-brand img{display:block;height:72px;width:auto;margin:0 auto 6px}.sb-tag{font-size:9px;color:var(--mu);letter-spacing:1px;text-transform:uppercase;margin-top:2px}.sb-user{padding:10px 16px;border-bottom:1px solid var(--b)}.sb-nm{font-size:12px;font-weight:700}.sb-em{font-size:10px;color:var(--mu);margin-top:1px}.sb-role{display:inline-block;padding:1px 7px;border-radius:3px;font-size:9px;font-weight:700;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.r-admin{background:#a855f726;color:var(--pur)}.r-dispatcher{background:#3d7fff26;color:var(--blue)}.r-sdr{background:#f59e0b26;color:var(--amb)}.nav{flex:1;overflow-y:auto;padding:8px 0}.nsec{font-size:9px;color:var(--mu);font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:10px 16px 3px}.ni{display:flex;align-items:center;gap:9px;padding:8px 16px;font-size:12px;color:var(--mu);border-left:3px solid transparent;transition:all .12s;position:relative;-webkit-user-select:none;user-select:none}.ni:hover{color:var(--tx);background:#ffffff08}.ni.active{color:var(--acc);border-left-color:var(--acc);background:rgba(var(--acc-rgb),.07)}.nbadge{position:absolute;right:10px;background:var(--red);color:#fff;border-radius:10px;padding:1px 6px;font-size:9px;font-weight:700}.sb-foot{padding:12px 16px;border-top:1px solid var(--b)}.lo-btn{width:100%;background:transparent;border:1px solid var(--b);color:var(--mu);border-radius:6px;padding:7px;font-size:11px;cursor:pointer;font-family:inherit}.lo-btn:hover{border-color:var(--red);color:var(--red)}.main{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}.tb{padding:12px 24px;border-bottom:1px solid var(--b);display:flex;align-items:center;justify-content:space-between;background:var(--sf);position:sticky;top:0;z-index:10;gap:8px;flex-wrap:wrap}.tb-left{display:flex;align-items:center;gap:8px}.pt{font-size:14px;font-weight:600}.ps{font-size:11px;color:var(--mu);margin-top:2px}.con{padding:20px 24px}.mg{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin-bottom:20px}.mc{background:var(--card);border:1px solid var(--b);border-radius:10px;padding:14px 16px}.ml{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.7px;margin-bottom:7px}.mv{font-size:24px;font-weight:700;line-height:1}.msub{font-size:11px;color:var(--mu);margin-top:4px}.cg{color:var(--green)}.ca{color:var(--amb)}.cb{color:var(--blue)}.cp{color:var(--pur)}.cr{color:var(--red)}.cacc{color:var(--acc)}.cmu{color:var(--mu)}.tw{background:var(--card);border:1px solid var(--b);border-radius:10px;overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}table{width:100%;border-collapse:collapse;font-size:12px;min-width:380px}th{background:var(--sf);padding:9px 12px;text-align:left;font-size:10px;font-weight:600;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--b);white-space:nowrap;position:sticky;top:0;z-index:1}td{padding:9px 12px;border-bottom:1px solid rgba(35,57,92,.5);vertical-align:middle;white-space:nowrap}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff04}.bdg{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600}.bg{background:#22c55e26;color:var(--green)}.br{background:#ef444426;color:var(--red)}.ba{background:#f59e0b26;color:var(--amb)}.bb{background:#3d7fff26;color:var(--blue)}.bp{background:#a855f726;color:var(--pur)}.bx{background:#6b728033;color:var(--sub)}.btn{padding:7px 13px;border-radius:7px;border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .12s;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-p{background:var(--acc);color:var(--bg)}.btn-p:hover:not(:disabled){background:var(--acc-hover)}.btn-s{background:var(--b);color:var(--tx)}.btn-s:hover:not(:disabled){background:#2d4670}.btn-d{background:#ef44441f;color:var(--red);border:1px solid rgba(239,68,68,.25)}.btn-g{background:#22c55e1f;color:var(--green);border:1px solid rgba(34,197,94,.25)}.btn-sm{padding:4px 9px;font-size:11px}.al{padding:9px 14px;border-radius:8px;font-size:12px;margin-bottom:14px;display:flex;align-items:flex-start;gap:8px;line-height:1.5}.alw{background:#f59e0b14;border:1px solid rgba(245,158,11,.25);color:var(--amb)}.ald{background:#ef444414;border:1px solid rgba(239,68,68,.25);color:var(--red)}.ali{background:#3d7fff14;border:1px solid rgba(61,127,255,.25);color:var(--blue)}.als{background:#22c55e14;border:1px solid rgba(34,197,94,.25);color:var(--green)}.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.st{font-size:13px;font-weight:600}.card{background:var(--card);border:1px solid var(--b);border-radius:10px;padding:18px;margin-bottom:14px}.fg{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fl{display:flex;flex-direction:column;gap:5px}.fl.s2{grid-column:span 2}.fl-row{display:flex;flex-direction:row;align-items:center;gap:8px}label{font-size:10px;color:var(--mu);font-weight:600;text-transform:uppercase;letter-spacing:.5px}input,select,textarea{background:var(--sf);border:1px solid var(--b);border-radius:7px;padding:8px 11px;font-size:14px;color:var(--tx);font-family:inherit;width:100%;transition:border .12s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc)}select option{background:var(--card)}textarea{resize:vertical;min-height:60px;font-size:13px}input[type=checkbox]{width:17px;height:17px;accent-color:var(--green);cursor:pointer;flex-shrink:0}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:200;display:flex;align-items:center;justify-content:center;padding:14px}.modal{background:var(--card);border:1px solid var(--b);border-radius:12px;width:100%;max-width:580px;max-height:90vh;overflow-y:auto}.mh{padding:14px 18px;border-bottom:1px solid var(--b);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--card);z-index:1}.mb{padding:16px 18px}.mf{padding:12px 18px;border-top:1px solid var(--b);display:flex;gap:8px;justify-content:flex-end;position:sticky;bottom:0;background:var(--card)}.xbtn{background:none;border:none;color:var(--mu);cursor:pointer;font-size:18px;padding:2px;line-height:1}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{width:100%;max-width:320px;background:var(--card);border:1px solid var(--b);border-radius:12px;padding:28px 24px}.login-brand{text-align:center;margin-bottom:22px}.login-brand .sb-co{font-size:20px}.google-btn{width:100%;justify-content:center;gap:9px;background:#fff;color:#1f1f1f;border:1px solid #dadce0}.google-btn:hover:not(:disabled){background:#f6f7f8}.login-or{display:flex;align-items:center;gap:10px;color:var(--mu);font-size:10px;text-transform:uppercase;letter-spacing:.6px;margin:16px 0}.login-or:before,.login-or:after{content:"";flex:1;height:1px;background:var(--b)}.empty{text-align:center;padding:60px 20px;color:var(--mu)}.empty-icon{font-size:34px;margin-bottom:10px}.empty-title{font-size:14px;font-weight:600;color:var(--tx);margin-bottom:6px}.uzone{border:2px dashed var(--b);border-radius:10px;padding:18px;text-align:center;cursor:pointer;transition:all .2s}.uzone:hover{border-color:var(--acc);background:rgba(var(--acc-rgb),.04)}.doc-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid rgba(35,57,92,.6)}.doc-row:first-of-type{border-top:none}.doc-icon{font-size:20px;width:40px;text-align:center}.doc-thumb{width:40px;height:40px;object-fit:cover;border-radius:5px;border:1px solid var(--b)}.doc-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seg{display:inline-flex;gap:2px;background:var(--sf);border:1px solid var(--b);border-radius:8px;padding:2px}.seg button{background:none;border:none;color:var(--mu);font:inherit;font-size:11px;font-weight:600;padding:5px 10px;border-radius:6px;cursor:pointer}.seg button.on{background:var(--card);color:var(--tx)}.sbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;align-items:center}.sbar input:not([type=checkbox]),.sbar select{width:auto;min-width:120px;font-size:12px;padding:7px 10px}.split{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.kv{display:grid;grid-template-columns:120px 1fr;gap:6px 10px;font-size:12px}.kv>:nth-child(odd){color:var(--mu);font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding-top:2px}.sect{font-size:9px;font-weight:700;color:var(--acc);text-transform:uppercase;letter-spacing:1px;margin:16px 0 8px}.sect:first-child{margin-top:0}.row-click{cursor:pointer}.row-sel td{background:rgba(var(--acc-rgb),.06)!important}.row-cancel td{opacity:.45;text-decoration:line-through}.mono{font-family:Consolas,Courier New,monospace}.sub{font-size:10px;color:var(--mu)}.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:10px;font-weight:600}.inv-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#2a2f3a;overflow:auto}.inv-toolbar{position:sticky;top:0;z-index:2;display:flex;gap:8px;align-items:center;padding:10px 18px;background:var(--sf);border-bottom:1px solid var(--b)}.inv-doc{color:#1c2333;font-family:Arial,Helvetica,sans-serif;font-size:12px}.inv-page{background:#fff;width:8.5in;min-height:11in;margin:18px auto;padding:.45in;position:relative;box-shadow:0 4px 24px #00000059;display:flex;flex-direction:column}.inv-head{background:#142239;color:#fff;border-radius:6px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center}.inv-brand{font-size:20px;font-weight:700}.inv-brand small{display:block;font-size:10px;font-weight:400;opacity:.8;margin-top:3px}.inv-title{text-align:right}.inv-title b{display:block;font-size:24px;letter-spacing:4px}.inv-title span{font-size:10px;opacity:.85}.inv-meta{display:flex;flex-wrap:wrap;gap:0;border:1px solid #e0e4ef;border-radius:6px;margin:14px 0}.inv-meta div{flex:1;min-width:110px;padding:9px 12px;border-right:1px solid #e0e4ef}.inv-meta div:last-child{border-right:none}.inv-meta label{display:block;color:#6b7590;font-size:9px;letter-spacing:.6px;margin-bottom:3px}.inv-meta strong{font-size:13px;color:#142239}.inv-client{background:#eef2fa;border-left:4px solid #142239;padding:10px 14px;display:flex;justify-content:space-between;margin:10px 0;font-size:12px}.inv-client b{color:#142239;font-size:13px}.inv-table{width:100%;border-collapse:collapse;font-size:11px;min-width:0}.inv-table th{background:#142239;color:#fff;text-align:left;padding:7px 8px;font-size:9.5px;letter-spacing:.5px;position:static;border:none}.inv-table td{padding:6px 8px;border-bottom:1px solid #e0e4ef;color:#1c2333;white-space:nowrap}.inv-table tr:nth-child(2n) td{background:#f8f9fc}.inv-table tr:hover td{background:inherit}.inv-table .num{text-align:right;font-variant-numeric:tabular-nums}.inv-total{align-self:flex-end;margin-top:12px;background:#142239;color:#fff;border-radius:6px;padding:10px 16px;text-align:right;min-width:240px}.inv-total span{display:block;font-size:10px;opacity:.85}.inv-total b{font-size:20px}.inv-total.light{background:#eef2fa;color:#142239}.inv-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.inv-card{border:1px solid #e0e4ef;border-radius:6px;padding:12px 14px;white-space:pre-line;line-height:1.55}.inv-card h4{color:#142239;font-size:10px;letter-spacing:.8px;margin-bottom:6px}.inv-foot{margin-top:auto;padding-top:14px;border-top:2px solid #142239;color:#6b7590;font-size:9.5px;text-align:center}.inv-stamp{position:absolute;top:2.6in;right:.7in;transform:rotate(-14deg);border:4px solid;border-radius:8px;padding:6px 18px;font-size:34px;font-weight:800;letter-spacing:4px;opacity:.22}.inv-stamp.paid{color:#16a34a}.inv-stamp.void{color:#dc2626}@page{size:letter;margin:0}@media print{body.print-invoice{background:#fff!important}body.print-invoice>*:not(.inv-viewer){display:none!important}body.print-invoice .inv-viewer{position:static;overflow:visible;background:#fff}body.print-invoice .inv-toolbar{display:none!important}body.print-invoice .inv-page{margin:0;box-shadow:none;width:auto;min-height:11in;page-break-after:always;break-after:page}body.print-invoice .inv-page:last-child{page-break-after:auto;break-after:auto}}.ops-input{font-size:11px;padding:4px 8px;min-width:110px}.mob-btn{display:none;background:none;border:none;color:var(--tx);font-size:22px;cursor:pointer;padding:2px 8px;line-height:1}.mob-ov{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:89}@media (max-width: 768px){.mob-btn,.mob-ov.show{display:block}.sb{position:fixed;left:0;top:0;height:100vh;z-index:90;transform:translate(-100%)}.sb.show{transform:translate(0)}.con{padding:14px 12px}.fg{grid-template-columns:1fr}.fl.s2{grid-column:span 1}.mg{grid-template-columns:1fr 1fr}.tb{padding:10px 12px}.split,.two-col{grid-template-columns:1fr}}@media print{.sb,.tb,.btn,.no-print{display:none!important}.main{overflow:visible}}.chart-tip{position:absolute;pointer-events:none;background:var(--sf);border:1px solid var(--b);border-radius:8px;padding:6px 10px;font-size:12px;min-width:140px;box-shadow:0 4px 16px #0006}.share{height:4px;background:var(--b);border-radius:2px;margin-top:4px;overflow:hidden}.share>div{height:100%;background:var(--green);border-radius:2px}.delta{font-size:10px;font-weight:600;margin-top:3px}.delta.up{color:var(--green)}.delta.down{color:var(--red)}.delta.flat{color:var(--mu)}.insights{background:#a855f70f;border:1px solid rgba(168,85,247,.25);border-radius:10px;padding:14px 16px;margin-bottom:14px}.insights h3{font-size:13px;color:var(--tx);margin-bottom:10px}.insights li{list-style:none;padding:7px 0;border-top:1px solid var(--b);font-size:12px;line-height:1.5}.insights li:first-child{border-top:none}.chat{display:grid;grid-template-columns:220px 1fr;height:calc(100vh - 66px)}.chat-list{border-right:1px solid var(--b);overflow-y:auto;background:var(--sf)}.chat-thread{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:none;border:none;border-bottom:1px solid var(--b);color:var(--tx);font:inherit;text-align:left;cursor:pointer}.chat-thread:hover{background:var(--card)}.chat-thread.on{background:var(--card);box-shadow:inset 3px 0 0 var(--acc)}.chat-thread .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread{background:var(--acc);color:var(--bg);border-radius:9px;font-size:10px;font-weight:700;padding:1px 6px;min-width:18px;text-align:center}.chat-main{display:flex;flex-direction:column;min-width:0}.chat-msgs{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:8px}.cmsg{max-width:72%;align-self:flex-start}.cmsg.mine{align-self:flex-end;text-align:right}.cmsg .bubble{display:inline-block;text-align:left;background:var(--card);border:1px solid var(--b);border-radius:10px;padding:7px 11px;white-space:pre-wrap;word-break:break-word;line-height:1.45}.cmsg.mine .bubble{background:rgba(var(--acc-rgb),.12);border-color:rgba(var(--acc-rgb),.3)}.cmsg .meta{font-size:10px;color:var(--mu);margin:2px 4px}.cmsg .del{background:none;border:none;color:var(--mu);cursor:pointer;font-size:10px;margin-left:6px}.chat-day{align-self:center;font-size:10px;color:var(--mu);margin:6px 0}.chat-compose{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--b);background:var(--sf)}.chat-compose textarea{flex:1;resize:none;min-height:38px;max-height:120px}.ni .unread{margin-left:auto}@media (max-width: 768px){.chat{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:calc(100vh - 56px)}.chat-list{display:flex;overflow-x:auto;border-right:none;border-bottom:1px solid var(--b)}.chat-thread{width:auto;white-space:nowrap;border-bottom:none;border-right:1px solid var(--b)}.cmsg{max-width:88%}}@media print{body.print-invoice .inv-table thead{display:table-header-group}body.print-invoice .inv-table tr,body.print-invoice .inv-total,body.print-invoice .inv-cards{break-inside:avoid}}.dv-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:400;display:flex;align-items:center;justify-content:center;padding:14px}.dv{background:var(--card);border:1px solid var(--b);border-radius:12px;width:min(1100px,100%);height:min(92vh,1000px);display:flex;flex-direction:column;overflow:hidden}.dv-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--b);flex-wrap:wrap}.dv-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#2a2f3a}.dv-body iframe{width:100%;height:100%;border:0;background:#fff}.dv-body img{max-width:100%;max-height:100%;object-fit:contain}.pg-btn{padding:2px 7px;font-size:10px;margin-right:3px}.thumb-strip{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.thumb-strip img,.thumb-strip .ph{width:44px;height:36px;object-fit:cover;border-radius:4px;border:1px solid var(--b);cursor:pointer;background:var(--sf);display:flex;align-items:center;justify-content:center;font-size:16px}.inv-build{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}.inv-side{background:var(--sf);border:1px solid var(--b);border-radius:10px;display:flex;align-items:center;justify-content:center;min-height:300px;align-self:stretch}.inv-picks{max-height:280px;overflow-y:auto;border:1px solid var(--b);border-radius:6px}.inv-pick{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid rgba(35,57,92,.4);border-left:3px solid transparent;cursor:pointer;font-size:11px;transition:background .1s}.inv-pick:hover{background:#ffffff05}.inv-pick.on{background:#22c55e1f;border-left-color:#22c55e}.inv-pick .tick{width:17px;height:17px;border-radius:4px;border:2px solid var(--b);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:11px;font-weight:900}.inv-pick.on .tick{border-color:#22c55e;background:#22c55e}.inv-box{background:var(--sf);border:1px solid var(--b);border-radius:7px;padding:10px 12px;margin-bottom:8px}.btn-w{background:#f3f4f6;color:#111;border:1px solid #e5e7eb}.btn-w:hover{background:#fff}input.switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:24px;height:14px;border-radius:8px;background:var(--b);position:relative;cursor:pointer;flex-shrink:0;transition:background .15s}input.switch:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;border-radius:50%;background:var(--mu);transition:transform .15s,background .15s}input.switch:checked{background:#22c55e59}input.switch:checked:after{transform:translate(10px);background:var(--green)}@media (max-width: 768px){.inv-build{grid-template-columns:1fr}}.split>*,.two-col>*,.inv-build>*,.fg>*,.mg>*{min-width:0}.side-sticky{position:sticky;top:70px}.rc-previews{margin-top:10px;max-height:620px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.rc-previews img{width:100%;border-radius:6px;border:1px solid var(--b)}.mg4{grid-template-columns:repeat(4,1fr)}.touch-only{display:none}@media (pointer: coarse){.touch-only{display:inline-flex}}.swipe-hint{display:none}@media (max-width: 768px){.app .sb{height:100dvh}.side-sticky{position:static}.rc-previews{max-height:360px}.mg4{grid-template-columns:1fr 1fr}.swipe-hint{display:block;font-size:10px;color:var(--mu);margin:0 0 6px}.tw{background:linear-gradient(to right,var(--card) 30%,rgba(20,34,57,0)) left / 32px 100% no-repeat local,linear-gradient(to left,var(--card) 30%,rgba(20,34,57,0)) right / 32px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.55),transparent) left / 12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.55),transparent) right / 12px 100% no-repeat scroll,var(--card)}.doc-row{flex-wrap:wrap}.doc-row .doc-name{flex-basis:calc(100% - 48px)}.btn-sm{padding:6px 10px}}
