:root{--privium-dark-green: #244419;--privium-mid-green: #6B8250;--privium-tan: #A58062;--privium-light-green: #A3B583;--privium-brown: #5E483A;--privium-light-gray: #9C9BA1;--bg: #0d1810;--panel: #1a2a1f;--fg: #e8eee4;--muted: #9ba89e;--accent: #6B8250;--accent-hi: #A3B583;--gold: #A58062;--danger: #c2410c;--border: #2d4232}*{box-sizing:border-box}body{margin:0;font-family:Open Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--fg)}.privium-logo{height:36px;display:block}button{font-family:inherit;font-size:.85rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.45rem .9rem;cursor:pointer;transition:all .12s;font-weight:500;line-height:1.2}button:hover:not(:disabled){background:#6b825026;border-color:var(--accent);color:var(--accent-hi)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{background:var(--panel);color:var(--muted);border-color:var(--border);cursor:not-allowed;opacity:.6}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:var(--accent-hi);border-color:var(--accent-hi);color:var(--bg)}button.primary:disabled{background:var(--panel);color:var(--muted);border-color:var(--border)}select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],textarea{font-family:inherit;font-size:.9rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.45rem .7rem;transition:border-color .12s,box-shadow .12s}select:focus,input:focus,textarea:focus{outline:none;border-color:var(--accent-hi);box-shadow:0 0 0 1px var(--accent-hi)}select:hover:not(:disabled),input:hover:not(:disabled){border-color:var(--accent)}select:disabled,input:disabled{opacity:.5;cursor:not-allowed}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%23A3B583' d='M2 4l4 4 4-4z'/></svg>");background-repeat:no-repeat;background-position:right .6rem center;background-size:12px;padding-right:2rem;cursor:pointer}select option{background:var(--panel);color:var(--fg);padding:.5rem}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1.5px solid var(--border);border-radius:3px;background:var(--bg);cursor:pointer;vertical-align:middle;position:relative;flex-shrink:0}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"✓";position:absolute;top:-2px;left:1px;color:#fff;font-size:13px;font-weight:700}input[type=checkbox]:hover{border-color:var(--accent-hi)}.landing,.auth,.dashboard,.loading{min-height:100vh;padding:2rem}.landing{text-align:center}.landing header h1{font-size:3rem;margin-bottom:.5rem}.landing .cta{display:inline-block;margin-top:2rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;text-decoration:none;border-radius:6px}.auth{display:flex;align-items:center;justify-content:center}.auth form{background:var(--panel);padding:2rem;border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column;gap:1rem;min-width:320px}.auth input,.auth button{padding:.75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg);font-size:1rem}.auth button{background:var(--accent);border:none;cursor:pointer}.auth .error{color:var(--danger);margin:0}.dashboard header{display:flex;flex-wrap:nowrap;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid var(--border);gap:1rem}.dashboard .brand{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.dashboard .brand .privium-logo{height:90px;width:auto;object-fit:contain;flex-shrink:0}.dashboard .brand .app-name{font-weight:600;color:var(--accent-hi);font-size:1.05rem}.wc-settings-form{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1rem}.wc-form-row{display:flex;gap:1rem;flex-wrap:wrap}.wc-form-row label{display:flex;flex-direction:column;flex:1;min-width:160px;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500;gap:.3rem}.wc-form-row input,.wc-form-row select{padding:.55rem .75rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;font-family:inherit;font-size:.95rem;text-transform:none;letter-spacing:normal;font-weight:400}.wc-form-row input:focus,.wc-form-row select:focus{outline:none;border-color:var(--accent-hi)}.wc-settings-form button.primary{align-self:flex-start;background:var(--accent);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:600}.wc-settings-form button.primary:hover{background:var(--accent-hi)}.wc-form-row .help-link{font-size:.7rem;color:var(--gold);text-transform:none;letter-spacing:normal;margin-left:.5rem;text-decoration:underline}.wc-form-row .help-link:hover{color:var(--accent-hi)}.wc-form-row code{background:var(--bg);padding:.05rem .4rem;border-radius:3px;font-size:.78rem;color:var(--gold)}.wc-fieldset{border:1px solid var(--border);border-radius:6px;padding:1rem 1.25rem;margin:0}.wc-fieldset legend{padding:0 .5rem;color:var(--accent-hi);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.wc-section-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--panel);border:1px solid var(--border);border-radius:6px;margin-bottom:1rem;font-size:.85rem}.wc-section-toggles strong{color:var(--muted);margin-right:.5rem}.wc-section-toggles label{display:flex;align-items:center;gap:.4rem;cursor:pointer;color:var(--fg)}.adj-summary{margin-left:auto;font-size:.85rem;color:var(--muted)}.adj-summary strong{color:var(--gold);margin:0 .3rem}.adj-summary em{color:var(--accent-hi);font-style:normal}.wc-report-actions{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.wc-report-actions button{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.wc-report-actions .adj-controls{display:flex;gap:.5rem;align-items:center;margin-left:auto;font-size:.85rem;color:var(--muted)}.wc-report-actions .adj-controls input{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:.25rem .4rem;margin:0 .2rem}.wc-report-actions .adj-controls .reset{background:transparent;color:var(--muted);border:1px solid var(--border);padding:.25rem .5rem;font-size:.75rem}.wc-report-paper{background:#fefefe;color:#1a1a1a;padding:2.5rem 3rem;border-radius:4px;box-shadow:0 4px 16px #0006;font-family:Open Sans,-apple-system,sans-serif;max-width:900px;margin:0 auto}.wc-report-header{display:flex;flex-direction:row;align-items:flex-end;gap:7rem;border-bottom:3px solid #244419;padding-bottom:1rem;margin-bottom:1.5rem}.wc-report-logo{height:90px;width:auto;flex-shrink:0}.wc-report-title{flex:1;padding-left:10%;padding-top:3%}.wc-report-title h1{margin:0;font-size:1.4rem;color:#244419;font-weight:700}.wc-report-title .subtitle{margin:.25rem 0 0;color:#6b8250;font-size:.95rem;font-weight:600}.wc-report-title .period{margin:.25rem 0 0;color:#5e483a;font-size:.85rem}.wc-policy-bar{background:#244419;color:#fefefe;padding:1rem 1.25rem;margin-bottom:1.25rem;border-radius:4px}.wc-policy-bar table{width:100%;border-collapse:collapse}.wc-policy-bar th{text-align:left;padding:.3rem 1rem .3rem 0;font-weight:500;font-size:.78rem;color:#a3b583;text-transform:uppercase;letter-spacing:.5px;width:220px}.wc-policy-bar td{padding:.3rem 0;font-size:.9rem;color:#fefefe}.wc-policy-bar td strong{color:#a58062;font-family:SF Mono,Menlo,monospace}.wc-report-paper .anon-notice{background:#f5f3ee;border-left:4px solid #A58062;padding:.6rem .9rem;font-size:.82rem;color:#5e483a;margin-bottom:1.5rem;border-radius:0 4px 4px 0}.wc-report-paper section{margin-bottom:2rem}.wc-report-paper h2{font-size:1.05rem;color:#244419;border-bottom:1px solid #c4c4c4;padding-bottom:.4rem;margin:0 0 .75rem}.wc-summary,.wc-table{width:100%;border-collapse:collapse;font-size:.85rem}.wc-summary th,.wc-table th{text-align:left;padding:.5rem .75rem;background:#f5f3ee;color:#244419;font-weight:600;border-bottom:1px solid #c4c4c4}.wc-summary th.num,.wc-table th.num{text-align:right}.wc-summary td,.wc-table td{padding:.5rem .75rem;border-bottom:1px solid #e5e5e5}.wc-summary td.num,.wc-table td.num{text-align:right;font-variant-numeric:tabular-nums}.wc-summary td.money,.wc-table td.money{font-family:SF Mono,Menlo,monospace}.wc-summary tr.hl,.wc-table tr.hl{background:#a580621f}.wc-summary tr.hl td.strong,.wc-table tr.hl td.strong{color:#244419;font-weight:700;font-size:.95rem}.wc-table tr.totals-row{background:#244419;color:#fefefe}.wc-table tr.totals-row td{padding:.65rem .75rem;border-bottom:none}.wc-report-paper footer{margin-top:2rem;padding-top:.75rem;border-top:1px solid #c4c4c4;text-align:center}.wc-report-paper footer p{margin:0;font-size:.75rem;color:#6b8250}@media print{html,body{background:#fff!important;color:#000!important;height:auto!important;min-height:unset!important}body *:not(:has(.wc-report-paper)):not(.wc-report-paper):not(.wc-report-paper *){display:none!important}.no-print{display:none!important}body *:has(.wc-report-paper){padding:0!important;margin:0!important;border:none!important;background:transparent!important}.wc-report-paper{display:block!important;background:#fff!important;box-shadow:none;border-radius:0;padding:1.5rem!important;width:100%}.wc-summary tr.hl,.wc-table tr.hl{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f5f0eb!important}.wc-table tr.totals-row,.wc-policy-bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}.wc-report-paper section{margin-bottom:1.25rem}.wc-report-paper h2{margin:0 0 .5rem}.wc-summary td,.wc-summary th,.wc-table td,.wc-table th{padding:.3rem .6rem}}.dashboard header button{background:transparent;color:var(--muted);border:1px solid var(--border);padding:.4rem .75rem;border-radius:6px;cursor:pointer;margin-left:0}.loading{display:flex;align-items:center;justify-content:center;color:var(--muted)}.dashboard .nav-stack{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;flex:1 1 0;min-width:0;gap:.4rem}.dashboard .main-nav,.dashboard .settings-nav{display:contents}.dashboard .main-nav button,.dashboard .settings-nav button{background:transparent;color:var(--muted);border:1px solid var(--border);padding:.45rem .85rem;border-radius:6px;cursor:pointer;white-space:nowrap;font-size:.88rem}.dashboard nav button.active,.dashboard .main-nav button.active,.dashboard .settings-nav button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.settings-dropdown{position:relative}.settings-trigger{display:flex;align-items:center;gap:.4rem}.settings-trigger .caret{font-size:.7rem;margin-left:.2rem}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.settings-menu{position:absolute;top:calc(100% + .4rem);right:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.4rem;display:flex;flex-direction:column;gap:.25rem;min-width:200px;box-shadow:0 8px 24px #00000080;z-index:51}.settings-menu button{background:transparent;color:var(--fg);border:1px solid transparent;padding:.5rem .75rem;text-align:left;border-radius:4px;cursor:pointer;font-family:inherit;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.settings-menu button:hover{background:#6b82501a}.settings-menu button.active{background:var(--accent);color:#fff}.nav-running-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent-hi);margin-left:.5rem;vertical-align:middle;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.dashboard .user-bar{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;color:var(--muted);font-size:.85rem;flex:0 0 auto}.dashboard .user-bar em{color:var(--accent);font-style:normal}.dashboard .user-bar-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:nowrap}.dashboard .user-bar-meta{display:flex;align-items:center;gap:.4rem;justify-content:flex-end;flex-wrap:nowrap}.diag-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:999px;font-size:.65rem;font-family:ui-monospace,SFMono-Regular,monospace;cursor:pointer;transition:all .15s;background:#00000040;border:1px solid var(--border);color:var(--muted)}.diag-badge:hover:not(:disabled){background:#ffffff0d;border-color:var(--accent-hi);color:var(--fg)}.diag-badge:disabled{opacity:.6;cursor:progress}.diag-badge code{font-family:inherit;color:var(--fg);background:none;padding:0}.diag-badge .diag-label{opacity:.6}.diag-badge .diag-sep{opacity:.4}.diag-badge .diag-action{margin-left:.2rem}.diag-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem}.diag-modal{background:var(--bg);border:1px solid var(--border);border-radius:8px;width:min(900px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.diag-modal-header{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.diag-modal-header button{padding:.3rem .75rem;font-size:.85rem}.waterfall-body{display:flex;flex-direction:row;gap:.75rem;min-height:0;flex:1}.waterfall-body .chart-area{flex:1;min-width:0}.waterfall-body.has-pinned .chart-area{flex:1}.pinned-panel{flex:0 0 45%;border:1px solid var(--border);border-radius:8px;background:#00000059;display:flex;flex-direction:column;overflow:hidden;min-height:0}@media (max-width: 700px){.waterfall-body{flex-direction:column}.pinned-panel{flex:0 0 auto;max-height:320px}}.pinned-panel-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);font-size:.9rem}.pinned-close{border:none;background:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:.2rem .4rem}.pinned-close:hover{color:var(--fg)}.pinned-panel-body{overflow-y:auto;padding:.25rem .75rem .5rem}.pinned-row{display:flex;align-items:flex-start;gap:.75rem;padding:.35rem 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:.85rem}.pinned-row:last-child{border-bottom:none}.pinned-contact{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.diag-modal textarea{flex:1;width:100%;border:none;padding:1rem;font-family:ui-monospace,SFMono-Regular,monospace;font-size:.78rem;background:#00000040;color:var(--fg);resize:none;outline:none;white-space:pre;overflow:auto}.sync-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:999px;font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s;background:#0003;border:1px solid var(--border);color:var(--fg)}.sync-pill:hover:not(:disabled){background:#ffffff0d;border-color:var(--accent-hi)}.sync-pill.fresh{border-color:#10b981;color:#10b981}.sync-pill.fresh:hover:not(:disabled){background:#10b9811a}.sync-pill.stale{border-color:#ef4444;color:#ef4444}.sync-pill.stale:hover:not(:disabled){background:#ef44441a}.sync-pill.syncing{border-color:var(--accent-hi);color:var(--accent-hi)}.sync-pill:disabled{cursor:not-allowed;opacity:.7}.sync-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sync-dot.fresh{background:#10b981;box-shadow:0 0 6px #10b98199}.sync-dot.stale{background:#ef4444;box-shadow:0 0 6px #ef444499}.sync-dot.syncing{background:var(--accent-hi);animation:pulse-dot 1s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.dashboard .user-bar .user-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1100px){.dashboard .nav-stack{margin:0 .5rem}.dashboard .main-nav button,.dashboard .settings-nav button{padding:.4rem .7rem;font-size:.82rem}.dashboard .brand .privium-logo{height:30px}.dashboard .user-bar{font-size:.78rem}.dashboard .user-bar .user-email{max-width:140px}}@media (max-width: 800px){.dashboard header{flex-wrap:wrap;gap:.6rem}.dashboard .nav-stack{margin:0;flex:1 1 100%;order:3}.dashboard .user-bar{flex:1 1 auto;justify-content:flex-end}}@media (max-width: 480px){.dashboard .brand .privium-logo{height:24px}.dashboard .brand-x{font-size:1.3rem}.dashboard .main-nav button,.dashboard .settings-nav button{padding:.35rem .6rem;font-size:.78rem}}.admin-users{padding-top:1rem}.admin-users .admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.admin-users .admin-header button{background:var(--accent);border:none;color:#fff;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.admin-users .new-user-form{display:flex;gap:.5rem;margin-bottom:1rem;padding:1rem;background:var(--panel);border-radius:8px;border:1px solid var(--border)}.admin-users .new-user-form input,.admin-users .new-user-form select,.admin-users .new-user-form button{padding:.5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--fg)}.admin-users .new-user-form button{background:var(--accent);border:none;color:#fff;cursor:pointer}.admin-users table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:8px;overflow:hidden}.admin-users th,.admin-users td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.admin-users th{background:#0b1220;color:var(--muted);font-weight:500}.admin-users .role-owner{background:var(--accent);color:#fff;padding:.15rem .5rem;border-radius:4px;font-size:.8rem}.admin-users .role-staff{background:#334155;color:var(--muted);padding:.15rem .5rem;border-radius:4px;font-size:.8rem}.admin-users .actions{display:flex;gap:.5rem}.admin-users .actions button{background:transparent;color:var(--fg);border:1px solid var(--border);padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem}.admin-users .actions button.danger{border-color:var(--danger);color:var(--danger)}.admin-users .error{color:var(--danger)}.card-host{position:relative}.card-host .card-expand-btn{position:absolute;top:.6rem;right:.6rem;z-index:10;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#00000059;border:1px solid var(--border);border-radius:4px;color:var(--accent-hi);cursor:pointer;font-size:1rem;padding:0;transition:all .12s}.card-host .card-expand-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.card-host.expanded{position:fixed;top:1rem;left:1rem;right:1rem;bottom:1rem;z-index:1000;display:flex;flex-direction:column;background:var(--bg);border:3px solid var(--gold);border-radius:10px;box-shadow:0 0 0 4px #a5806240,0 24px 64px #000c;overflow:hidden;grid-column:auto!important}.card-host.expanded>.chart-card{flex:1;display:flex;flex-direction:column;margin:0;border:none;border-radius:0;padding:1.5rem 2rem;overflow:auto;min-height:0;background:var(--panel)}.card-host.expanded>.chart-card h3{font-size:1.4rem;margin-bottom:1rem;color:var(--gold)}.weekly-costs-scroll{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:#0a120c}.weekly-costs-table{width:100%;border-collapse:collapse;font-size:.78rem}.weekly-costs-table thead th{position:sticky;top:0;background:#0b1810;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.4px;padding:.5rem .6rem;border-bottom:1px solid var(--border);text-align:left;z-index:1;font-weight:600}.weekly-costs-table thead th.num{text-align:right}.weekly-costs-table td{padding:.4rem .6rem;border-bottom:1px solid rgba(255,255,255,.04)}.weekly-costs-table td.num{text-align:right;font-variant-numeric:tabular-nums}.weekly-costs-table .money{font-family:SF Mono,Menlo,monospace}.weekly-costs-table .money.strong{color:var(--accent-hi);font-weight:600}.weekly-costs-table tbody tr:hover{background:#6b82500f}.weekly-costs-table .totals-row{background:#0b1810!important;border-top:2px solid var(--accent);position:sticky;bottom:0}.weekly-costs-table .totals-row td{padding:.6rem}.custom-tooltip{background:#0a120c;border:1px solid var(--accent-hi);border-radius:6px;padding:.6rem .85rem;box-shadow:0 8px 24px #0009;min-width:220px;font-size:.85rem}.custom-tooltip .tt-header{color:var(--accent-hi);font-weight:600;border-bottom:1px solid var(--border);padding-bottom:.35rem;margin-bottom:.4rem;display:flex;flex-direction:column}.custom-tooltip .tt-sub{color:var(--muted);font-size:.7rem;font-weight:400;margin-top:.15rem;font-family:SF Mono,Menlo,monospace}.custom-tooltip .tt-row{display:flex;justify-content:space-between;gap:1rem;padding:.18rem 0;color:var(--fg)}.custom-tooltip .tt-row span{color:var(--muted)}.custom-tooltip .tt-row strong{font-variant-numeric:tabular-nums;font-family:SF Mono,Menlo,monospace}.custom-tooltip .tt-accent{color:var(--accent-hi);font-size:1rem}.custom-tooltip .tt-green{color:#10b981}.custom-tooltip .tt-orange{color:#f59e0b}.chart-area{height:280px;width:100%}.chart-area-tall{height:340px}.card-host.expanded .chart-area,.card-host.expanded .chart-area-tall{flex:1 1 auto!important;height:auto!important;min-height:0!important}.card-host.expanded .recharts-responsive-container{height:100%!important;width:100%!important}.card-host.expanded .recharts-wrapper,.card-host.expanded .recharts-wrapper svg{width:100%!important;height:100%!important}.card-host.expanded>.chart-card table{font-size:.95rem}.card-host.expanded>.chart-card .active-clients-scroll{max-height:calc(100vh - 280px);flex:1}.card-host.expanded>.chart-card .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:999;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(480px,1fr));gap:1rem;padding-top:1rem}.chart-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem}.chart-card h3{margin:0 0 .75rem;color:var(--fg);font-size:1rem}.muted{color:var(--muted)}.mono{font-family:SF Mono,Menlo,monospace;font-size:.85rem}.xero-connect,.account-review,.amort-review,.workers-comp{padding-top:1rem}.xero-connect button.primary,.account-review button.primary,.amort-review button.primary,.workers-comp button,.new-user-form button{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.xero-connect table,.account-review table,.amort-review table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:8px;overflow:hidden;margin-top:1rem}.xero-connect th,.xero-connect td,.account-review th,.account-review td,.amort-review th,.amort-review td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.xero-connect th,.account-review th,.amort-review th{background:#0b1220;color:var(--muted);font-weight:500}.xero-connect .actions{margin-top:1rem;display:flex;gap:.5rem}.source-ai{color:#f59e0b;font-size:.85rem}.source-user{color:#10b981;font-size:.85rem}.source-none{color:var(--muted)}.num{text-align:right;font-variant-numeric:tabular-nums}.status-row{display:flex;gap:1rem;font-size:.85rem;color:var(--muted);margin:.5rem 0 1rem}.status-row .status-confirmed{color:#10b981}.status-row .status-ai{color:#f59e0b}.status-row .status-none{color:var(--muted)}.status-banner{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:center;gap:.75rem;font-size:.9rem}.status-banner.busy{background:#1e3a8a;color:#dbeafe;border:1px solid #3b82f6}.status-banner.done{background:#064e3b;color:#d1fae5;border:1px solid #10b981}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.details-table{width:auto;margin:1rem 0 2rem}.details-table th{text-align:left;padding:.5rem 1rem .5rem 0;color:var(--muted);font-weight:500;vertical-align:top}.details-table td{padding:.5rem 0;color:var(--fg)}button.danger{background:transparent!important;color:var(--danger)!important;border:1px solid var(--danger)!important;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem}.category-legend{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.5rem}.category-legend h3{margin:0 0 .75rem}.category-legend table{width:100%;border-collapse:collapse}.category-legend th,.category-legend td{padding:.4rem .75rem;border-bottom:1px solid #2d3a52;text-align:left;font-size:.85rem}.category-legend th{color:var(--muted);font-weight:500}.cat-pill{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-family:SF Mono,Menlo,monospace;color:#fff}.cat-asset{background:#7c3aed}.cat-shareholder{background:#be123c}.cat-job_materials{background:#db2777}.cat-work_expense{background:#ea580c}.cat-overhead{background:#6366f1}.cat-gross_wages{background:#10b981}.cat-employee_cost{background:#14b8a6}.cat-revenue{background:#2563eb}.cat-other{background:#64748b}.droppable{cursor:pointer;transition:background .15s}.droppable.drag-over{background:#6b825040!important;box-shadow:inset 0 0 0 2px var(--accent-hi)}.draggable-row{cursor:grab}.draggable-row:active{cursor:grabbing}.draggable-row:hover td:first-child{color:var(--accent-hi)}.account-chips{display:flex;flex-wrap:wrap;gap:.4rem;max-width:600px;min-height:1.5rem;padding:.25rem 0}.account-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;background:var(--bg);border:1px solid var(--border);border-radius:12px;font-size:.78rem;cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:all .1s}.account-chip:hover{background:var(--panel);border-color:var(--accent-hi)}.account-chip{cursor:pointer}.account-chip.picked{background:var(--accent-hi);color:var(--bg);border-color:var(--accent-hi);box-shadow:0 0 0 2px var(--accent-hi);font-weight:600}.droppable.place-target{background:#6b82501a}.droppable.place-target:hover{background:#6b82504d;box-shadow:inset 0 0 0 2px var(--accent-hi)}.account-chip.confirmed{border-color:#10b981;border-left-width:3px}.account-chip.ai{border-color:#f59e0b;border-left-width:3px;font-style:italic}.chip-handle{color:var(--muted);font-size:.7rem}.chip-name{color:var(--fg)}.chip-code{background:#ffffff14;color:var(--accent-hi);font-family:SF Mono,Menlo,monospace;font-size:.7rem;font-weight:600;padding:.05rem .35rem;border-radius:3px}.chip-meta{color:var(--muted);background:#ffffff0d;padding:0 .35rem;border-radius:8px;font-size:.7rem}.recon-status{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.75rem;font-weight:600}.recon-ok{background:#10b981;color:#fff}.recon-suspicious{background:#f59e0b;color:#fff}.recon-critical{background:#c2410c;color:#fff}.recon-not_reviewed{background:var(--border);color:var(--muted)}.status-pending{color:var(--muted);margin-left:auto;font-style:italic}.recon-review tr.suspicious{background:#f59e0b0d}.recon-review tr.critical{background:#c2410c14}.recon-table{table-layout:auto;width:100%}.recon-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;padding:.5rem .75rem;background:#0b1810;border-bottom:2px solid var(--border)}.recon-table td{vertical-align:top;padding:.7rem .75rem;border-bottom:1px solid var(--border)}.recon-table tbody tr:hover{background:#6b82500d}.recon-table tbody tr:nth-child(2n){background:#ffffff03}.recon-table tbody tr:nth-child(2n):hover{background:#6b825012}.recon-table tbody tr.suspicious{background:#f59e0b12!important}.recon-table tbody tr.critical{background:#c2410c1a!important}.recon-date{font-family:SF Mono,Menlo,monospace;font-size:.8rem;color:var(--muted);white-space:nowrap}.recon-amt{font-family:SF Mono,Menlo,monospace;font-weight:600;font-variant-numeric:tabular-nums}.recon-amt.pos{color:#10b981}.recon-amt.neg{color:#c2410c}.recon-desc{color:var(--fg);font-size:.9rem;line-height:1.3;word-break:break-word}.recon-contact{font-size:.75rem;margin-top:.2rem}.recon-acct{display:flex;flex-direction:column;gap:.3rem;min-width:180px}.acct-code-pill{display:inline-block;font-family:SF Mono,Menlo,monospace;font-size:.72rem;font-weight:700;padding:.1rem .45rem;border-radius:3px;align-self:flex-start}.acct-code-pill.current{background:#ffffff14;color:var(--muted);border:1px solid var(--border)}.acct-code-pill.suggested{background:var(--gold);color:var(--bg)}.acct-name{font-size:.85rem;color:var(--fg);line-height:1.2}.acct-name.suggested{color:var(--gold);font-weight:600}.recon-monthly-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem}.recon-monthly-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;font-size:.85rem}.recon-monthly-scroll{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.recon-monthly-scroll table{width:100%;border-collapse:collapse;font-size:.78rem}.recon-monthly-scroll thead th{position:sticky;top:0;background:#0b1810;color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;padding:.4rem .6rem;border-bottom:1px solid var(--border);text-align:left}.recon-monthly-scroll th.num{text-align:right}.recon-monthly-scroll td{padding:.35rem .6rem;border-bottom:1px solid rgba(255,255,255,.04)}.recon-monthly-scroll td.num{text-align:right;font-variant-numeric:tabular-nums}.recon-monthly-scroll tbody tr:hover{background:#6b82500d}.recon-monthly-scroll tbody tr.clickable-row{cursor:pointer}.recon-monthly-scroll tbody tr.clickable-row.selected{background:#a580622e!important;box-shadow:inset 3px 0 0 var(--gold)}.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.collapsible:hover strong{color:var(--accent-hi)}.pct-bar-wrap{position:relative;display:inline-block;width:60px;height:14px;background:#ffffff0d;border-radius:7px;overflow:hidden;text-align:center}.pct-bar{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-hi) 100%)}.pct-bar-wrap span{position:relative;font-size:.7rem;color:var(--fg);line-height:14px;z-index:1}.recon-scope{margin-bottom:.75rem;padding:.5rem .75rem;background:var(--panel);border:1px solid var(--border);border-radius:6px;font-size:.85rem;color:var(--muted)}.recon-scope select{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:4px;padding:.2rem .4rem;margin-left:.25rem}.recon-reason{font-size:.82rem;font-style:italic;color:var(--muted);line-height:1.35;word-break:break-word;max-width:360px}.employee-totals{width:100%;border-collapse:collapse;background:var(--panel);border-radius:8px;overflow:hidden;margin-top:.5rem}.employee-totals th{background:#0b1810;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;padding:.6rem .75rem;border-bottom:2px solid var(--border);text-align:left}.employee-totals th.num{text-align:right}.employee-totals td{padding:.55rem .75rem;border-bottom:1px solid var(--border)}.employee-totals td.money{font-family:SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.employee-totals td.money.strong{color:var(--accent-hi);font-weight:600}.employee-totals tbody tr:hover{background:#6b82500f}.employee-totals .totals-row{background:#0b1810!important;border-top:2px solid var(--accent);font-size:.92rem}.employee-totals .totals-row td{padding-top:.75rem;padding-bottom:.75rem}.window-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.window-nav{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.window-nav button{background:transparent;border:1px solid var(--border);color:var(--fg);padding:.2rem .55rem;border-radius:4px;cursor:pointer;font-size:1rem;line-height:1}.window-nav button:disabled{opacity:.3;cursor:not-allowed}.window-nav button.reset{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-hi);border-color:var(--accent-hi)}.window-dates{font-family:SF Mono,Menlo,monospace;font-size:.78rem;color:var(--muted);min-width:220px;text-align:center}.active-clients-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.4rem;margin-bottom:.5rem}.active-clients-stats .stat{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.5rem;background:#0003;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .12s;font-family:inherit;color:inherit}.active-clients-stats .stat:not(.readonly):hover{background:#6b82501a;border-color:var(--accent)}.active-clients-stats .stat.active{background:#6b82502e;border-color:var(--accent-hi);box-shadow:0 0 0 1px var(--accent-hi)}.active-clients-stats .stat.readonly{cursor:default}.active-clients-stats .label{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.15rem}.active-clients-stats .value{color:var(--accent-hi);font-weight:600;font-size:.95rem;font-variant-numeric:tabular-nums}.filter-pill{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;margin-bottom:.5rem;background:#6b825026;border:1px solid var(--accent-hi);border-radius:6px;font-size:.8rem;color:var(--fg)}.filter-pill .clear-x{margin-left:auto;background:transparent;border:1px solid var(--accent-hi);color:var(--accent-hi);width:22px;height:22px;border-radius:50%;cursor:pointer;font-size:.95rem;line-height:1;display:flex;align-items:center;justify-content:center}.filter-pill .clear-x:hover{background:var(--accent-hi);color:var(--bg)}.active-clients-table th.sortable:hover{background:#6b82501a}.active-clients-scroll{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:#0a120c}.active-clients-table{width:100%;border-collapse:collapse;font-size:.85rem}.active-clients-table thead th{position:sticky;top:0;background:#0b1810;color:var(--muted);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;padding:.55rem .75rem;border-bottom:2px solid var(--border);text-align:left;z-index:1;white-space:nowrap}.active-clients-table thead th.num{text-align:right}.active-clients-table td{padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap}.active-clients-table td:first-child{font-weight:500;color:var(--fg);max-width:240px;overflow:hidden;text-overflow:ellipsis}.active-clients-table tbody tr:nth-child(2n){background:#ffffff04}.active-clients-table tbody tr:hover{background:#6b825014}.active-clients-table .money{font-family:SF Mono,Menlo,monospace;font-variant-numeric:tabular-nums}.active-clients-table td.num{text-align:right}.ai-log{background:#0a120c;border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.8rem}.ai-log-header{padding:.5rem .75rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.ai-log-header button{background:transparent;border:1px solid var(--border);color:var(--muted);padding:.2rem .5rem;border-radius:4px;cursor:pointer;font-size:.75rem}.ai-log-body{max-height:300px;overflow-y:auto;padding:.5rem .75rem}.ai-log-line{padding:.15rem 0;display:flex;gap:.75rem;white-space:pre-wrap}.ai-log-ts{color:var(--muted);flex-shrink:0}.ai-log-info .ai-log-msg{color:var(--fg)}.ai-log-ok .ai-log-msg{color:#10b981}.ai-log-error .ai-log-msg{color:#ef4444}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;grid-column:1 / -1}.kpi-card{background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:8px;padding:1rem 1.25rem;display:flex;flex-direction:column}.kpi-card.negative{border-left-color:var(--danger)}.kpi-card .kpi-label{color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.4rem}.kpi-card .kpi-value{color:var(--accent-hi);font-size:1.5rem;font-weight:600}.kpi-card .kpi-sub{color:var(--muted);font-size:.85rem;margin-top:.25rem}.pnl-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin-bottom:.75rem}.pnl-metric{background:#00000040;border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;display:flex;flex-direction:column}.pnl-metric .label{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.3rem}.pnl-metric .value{font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums;font-family:SF Mono,Menlo,monospace}.pnl-metric .sub{font-size:.7rem;color:var(--muted);margin-top:.2rem}.wc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.5rem 0}.wc-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem;display:flex;flex-direction:column}.wc-card .label{color:var(--muted);font-size:.85rem;margin-bottom:.5rem}.wc-card .value{font-size:1.5rem;color:var(--accent);font-weight:600}.chat-fab{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--accent);color:#fff;border:none;border-radius:999px;padding:.75rem 1.25rem;cursor:pointer;box-shadow:0 4px 12px #0000004d;font-size:.95rem;z-index:100}.chat-panel{position:fixed;bottom:1rem;right:1rem;width:380px;max-width:calc(100vw - 2rem);height:560px;max-height:calc(100vh - 2rem);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;z-index:100}.chat-header{padding:.75rem 1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.chat-header button{background:transparent;color:var(--muted);border:none;font-size:1.5rem;cursor:pointer}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.chat-welcome{color:var(--muted);font-size:.9rem}.chat-welcome ul{padding-left:1.25rem}.chat-msg{padding:.5rem .75rem;border-radius:8px;max-width:85%;white-space:pre-wrap;word-wrap:break-word;font-size:.9rem}.chat-msg.user{align-self:flex-end;background:var(--accent);color:#fff}.chat-msg.assistant{align-self:flex-start;background:var(--bg);color:var(--fg)}.chat-msg.busy{font-style:italic;color:var(--muted)}.chat-msg.error{background:var(--danger);color:#fff}.chat-input{border-top:1px solid var(--border);padding:.75rem;display:flex;gap:.5rem}.chat-input input{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.5rem}.chat-input button{background:var(--accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer}.job-costing{padding:1.5rem;max-width:1400px}.job-costing-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.job-costing-header h2{margin:0;font-size:1.3rem}.job-costing-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-left:auto}.view-toggle{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.view-toggle button{background:transparent;color:var(--muted);border:none;padding:.35rem .9rem;font-size:.85rem;cursor:pointer}.view-toggle button.active{background:var(--accent);color:#fff}.jc-section-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem;margin:1.5rem 0 .5rem;color:var(--fg)}.jc-count{background:var(--accent);color:#fff;font-size:.72rem;padding:.1rem .45rem;border-radius:10px;font-weight:600}.jc-badge{font-size:.7rem;padding:.05rem .35rem;border-radius:8px;font-weight:600;margin-left:.4rem;vertical-align:middle}.jc-badge.amber{background:#f59e0b33;color:#f59e0b}.jc-table{width:100%;border-collapse:collapse;font-size:.85rem;background:var(--panel);border-radius:8px;overflow:hidden}.jc-table th{text-align:left;padding:.5rem .75rem;background:#0003;color:var(--muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.jc-table th.num{text-align:right}.jc-table td{padding:.5rem .75rem;border-bottom:1px solid var(--border);vertical-align:middle}.jc-table td.num{text-align:right}.jc-table td.money{font-variant-numeric:tabular-nums}.jc-table td.nowrap{white-space:nowrap}.jc-sub{color:var(--muted);font-size:.78rem;display:block}td .jc-sub{display:inline}.jc-reason{font-size:.8rem;color:var(--muted);max-width:200px}.jc-confidence{font-weight:600;font-size:.82rem}.jc-actions{display:flex;gap:.3rem;white-space:nowrap}.jc-btn{border:1px solid var(--border);background:transparent;border-radius:4px;padding:.2rem .5rem;font-size:.8rem;cursor:pointer;color:var(--fg)}.jc-btn.confirm{border-color:#10b981;color:#10b981}.jc-btn.confirm:hover{background:#10b98126}.jc-btn.reassign{border-color:#6366f1;color:#6366f1}.jc-btn.reassign:hover{background:#6366f126}.jc-btn.skip{border-color:#ef4444;color:#ef4444}.jc-btn.skip:hover{background:#ef444426}.jc-btn.small{padding:.15rem .4rem;font-size:.75rem}.jc-job-row{cursor:pointer}.jc-job-row:hover td{background:#ffffff08}.jc-job-row.expanded td{background:#6b825014}.jc-expand-btn{color:var(--muted);text-align:right;font-size:.75rem}.jc-status{font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;text-transform:uppercase;letter-spacing:.04em}.jc-status.paid{background:#10b98126;color:#10b981}.jc-status.authorised{background:#6366f126;color:#6366f1}.jc-job-detail>td{padding:0}.jc-detail-panel{background:#00000026;padding:1rem 1.5rem;border-bottom:2px solid var(--accent);display:flex;flex-direction:column;gap:1rem}.jc-detail-header{font-size:.85rem;margin-bottom:.4rem;color:var(--muted)}.jc-detail-table{width:100%;border-collapse:collapse;font-size:.82rem}.jc-detail-table td{padding:.3rem .5rem;border-bottom:1px solid var(--border);vertical-align:middle}.jc-detail-table td.num{text-align:right;font-variant-numeric:tabular-nums}.jc-detail-table td.money{font-variant-numeric:tabular-nums}.jc-detail-table tr.jc-totals td{border-top:2px solid var(--border);border-bottom:none;padding-top:.5rem}.jc-detail-table tr.jc-totals.profit td{color:#10b981}.jc-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center}.jc-modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.5rem;width:min(480px,90vw);display:flex;flex-direction:column;gap:.75rem;max-height:80vh}.jc-modal h3{margin:0;font-size:1rem}.jc-search{background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-size:.9rem;width:100%;box-sizing:border-box}.jc-invoice-list{overflow-y:auto;max-height:320px;display:flex;flex-direction:column;gap:.3rem}.jc-invoice-option{display:grid;grid-template-columns:7rem 1fr 6rem 6rem;gap:.5rem;padding:.5rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:left;font-size:.85rem;color:var(--fg);align-items:center}.jc-invoice-option:hover{border-color:var(--accent);background:#6b82501a}.jc-inv-num{font-weight:600}.jc-inv-date,.jc-inv-total{color:var(--muted);font-size:.8rem;text-align:right}
