:root{font-family:Inter,system-ui,sans-serif;color:#eaf1fa;background:#09121e;font-synthesis:none}:root[data-theme=dark]{--canvas: #09121e;--surface: #111d2c;--surface-raised: #172638;--surface-hover: #1b2e44;--line: #26394f;--text: #eaf1fa;--muted: #91a3b9;--soft: #c6d3e2;--blue: #5d8eff;--blue-soft: #193563;--green: #42d49a;--orange: #f19a56;--gold: #f4c15d;--danger: #fb7780;--sidebar: #0d1826;--shadow: 0 18px 48px rgba(0,0,0,.22)}:root[data-theme=light]{--canvas: #f4f7fb;--surface: #ffffff;--surface-raised: #f7f9fc;--surface-hover: #edf3fb;--line: #dbe4ef;--text: #142238;--muted: #64758a;--soft: #42546a;--blue: #3268df;--blue-soft: #e7efff;--green: #0b9f67;--orange: #df741e;--gold: #b77a08;--danger: #d53d50;--sidebar: #ffffff;--shadow: 0 18px 48px rgba(29,52,80,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--canvas);color:var(--text);font-size:14px;line-height:1.5}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:2px}.app-shell{display:flex;min-height:100vh;background:radial-gradient(circle at 90% -10%,color-mix(in srgb,var(--blue) 12%,transparent),transparent 28%),var(--canvas)}.sidebar{width:256px;flex:none;position:sticky;top:0;height:100vh;padding:22px 14px 16px;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:11px;padding:4px 8px 20px}.brand span:last-child{display:grid}.brand strong{font-size:16px;letter-spacing:-.03em}.brand small{color:var(--muted);font-size:11px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;color:#fff;border-radius:11px;background:linear-gradient(135deg,#4b8cff,#3158cd);box-shadow:0 8px 20px #3669e554}.workspace-indicator{display:flex;align-items:center;gap:8px;margin:0 8px 18px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:11px}.workspace-indicator span,.live-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 13%,transparent)}.workspace-indicator p{margin:0}.nav-label,.eyebrow{margin:0;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.nav-label{padding:10px 10px 6px}.sidebar nav{flex:1;min-height:0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:11px;min-height:42px;padding:9px 11px;margin:2px 0;border:0;border-radius:8px;color:var(--muted);background:transparent;text-decoration:none;font-weight:600}.nav-item:hover{color:var(--text);background:var(--surface-hover)}.router-link-active{color:#fff;background:linear-gradient(90deg,var(--blue),#436de0);box-shadow:0 7px 17px color-mix(in srgb,var(--blue) 24%,transparent)}.logout{flex:none;margin-top:12px;width:100%}.logout:hover{color:var(--danger)}.content-shell{min-width:0;flex:1}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 clamp(22px,3vw,56px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--canvas) 88%,transparent)}.topbar-context,.topbar-actions{display:flex;align-items:center;gap:10px;color:var(--muted)}.topbar-context{font-size:12px}.topbar-actions{gap:12px}.theme-toggle,.mobile-menu,.mobile-logout{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;color:var(--soft);background:var(--surface)}.theme-toggle:hover{color:var(--gold);background:var(--surface-hover)}.profile{display:flex;align-items:center;gap:9px;padding-left:4px}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;color:#dce8ff;background:linear-gradient(135deg,#3e6ed9,#7e59d0);font-weight:700;font-size:12px}.profile-copy{display:grid;line-height:1.25}.profile-copy strong{font-size:12px;color:var(--text)}.profile-copy small{max-width:160px;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.profile-chevron{color:var(--muted)}.mobile-menu,.mobile-logout{display:none}.main{width:100%;max-width:1720px;margin:0 auto;padding:clamp(28px,3.5vw,54px) clamp(22px,3vw,56px) 64px}.page-header{margin-bottom:28px}.page-header h1{margin:4px 0 6px;font-size:clamp(27px,2.2vw,35px);letter-spacing:-.045em;line-height:1.1}.page-header>p,.muted{margin:0;color:var(--muted)}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap}main>.toolbar:not(.page-header){margin-bottom:18px}.month-nav{display:flex;align-items:center;gap:8px}.month-step,.month-picker{height:42px;border:1px solid var(--line);color:var(--soft);background:var(--surface)}.month-step{width:42px;display:grid;place-items:center;border-radius:9px}.month-step:hover{background:var(--surface-hover);color:var(--text)}.month-picker{min-width:176px;position:relative;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:9px;font-weight:650}.month-picker input{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:8px 13px;color:var(--text);background:var(--surface-raised);text-decoration:none;font-weight:700}.btn:hover{background:var(--surface-hover)}.btn.primary{border-color:transparent;color:#fff;background:linear-gradient(135deg,var(--blue),#456bd9);box-shadow:0 8px 17px color-mix(in srgb,var(--blue) 24%,transparent)}.btn.primary:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:not-allowed}.icon{min-height:32px;padding:5px 9px}.panel,.stat-card,.company-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.panel{padding:clamp(18px,2vw,26px);margin-bottom:20px}.panel h2{margin:3px 0 0;font-size:17px;letter-spacing:-.025em}.panel-heading{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:22px}.text-link{display:inline-flex;align-items:center;gap:4px;color:var(--blue);font-weight:700;text-decoration:none;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{min-height:166px;position:relative;padding:21px;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-28px;bottom:-38px;width:120px;height:120px;border-radius:50%;background:currentColor;opacity:.06}.stat-card>*{position:relative;z-index:1}.stat-icon{width:35px;height:35px;display:grid;place-items:center;margin-bottom:16px;border-radius:9px;background:color-mix(in srgb,currentColor 15%,transparent)}.stat-card>span{display:block;color:var(--muted);font-size:12px;font-weight:650}.stat-card strong{display:block;margin-top:5px;color:var(--text);font-size:clamp(22px,1.8vw,30px);letter-spacing:-.045em}.stat-card small{display:block;margin-top:6px;color:var(--muted)}.stat-blue{color:var(--blue)}.stat-orange{color:var(--orange)}.stat-green{color:var(--green)}.stat-gold{color:var(--gold)}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,.8fr);gap:20px}.performance-panel{min-height:366px}.chart-legend{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.chart-legend span{width:18px;height:3px;border-radius:2px;background:var(--green)}.profit-chart{width:100%;height:260px;color:var(--green);overflow:visible}.profit-chart line{stroke:var(--line);stroke-dasharray:3 5}.profit-chart circle{fill:var(--surface);stroke:currentColor;stroke-width:3}.profit-chart text{fill:var(--muted);font-family:Inter,sans-serif;font-size:11px}.receivables-panel{min-height:366px}.company-balances{display:grid;gap:18px}.balance-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.balance-title{min-width:0;display:grid}.balance-title span{overflow:hidden;color:var(--soft);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.balance-title small{color:var(--muted);font-size:11px}.balance-row strong{color:var(--text);font-size:13px}.balance-track{grid-column:1 / -1;height:5px;overflow:hidden;border-radius:10px;background:var(--surface-hover)}.balance-track span{display:block;height:100%;border-radius:inherit;background:var(--gold)}.balance-track span.paid{background:var(--green)}.company-list-panel{margin-top:20px}.company-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.company-summary>div{display:grid}.company-summary strong{color:var(--soft)}.company-summary small{color:var(--muted)}.company-summary-end{display:flex;align-items:center;justify-content:end;gap:14px}.company-summary-total{display:grid;text-align:right}.company-summary-end .btn{white-space:nowrap}.company-summary-total span{color:var(--text);font-weight:800}.success,.green{color:var(--green)!important}.amber{color:var(--gold)!important}.red{color:var(--danger)!important}.state-block{display:grid;place-items:center;min-height:180px;color:var(--muted);text-align:center}.state-block p{margin:8px 0}.spinner{width:24px;height:24px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;align-items:end}.form-grid h2{grid-column:1 / -1}.form-grid label,.panel label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.form-grid input,.panel input,.panel select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;color:var(--text);background:var(--surface-raised)}.form-help{grid-column:1 / -1;margin:0;color:var(--muted);font-size:12px}.company-card{overflow:hidden;margin-bottom:12px}.company-head{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;padding:17px 18px;color:var(--text);background:transparent;text-align:left}.company-head:hover{background:var(--surface-hover)}.company-head span:first-child{display:grid}.company-head small{color:var(--muted)}.pill{padding:4px 10px;border-radius:99px;color:var(--soft);background:var(--surface-hover);font-size:11px}.company-body{padding:18px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-raised) 70%,transparent)}table{width:100%;border-collapse:collapse}th{padding:9px 10px;color:var(--muted);font-size:10px;letter-spacing:.07em;text-align:left;text-transform:uppercase}td{padding:12px 10px;border-top:1px solid var(--line);color:var(--soft)}.mono{font-family:JetBrains Mono,monospace}.trend{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.history{list-style:none;padding:0;margin:0}.history li{position:relative;padding:13px 0 13px 18px;border-bottom:1px solid var(--line)}.history li:before{content:"";position:absolute;top:20px;left:0;width:7px;height:7px;border-radius:50%;background:var(--blue)}.history small{color:var(--muted)}.login{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 0%,#1c3f75,transparent 40%),#09121e}.login-card{width:min(100%,400px);padding:30px;border:1px solid #294160;border-radius:15px;color:#eaf1fa;background:#111d2c;box-shadow:0 25px 65px #00000059}.login-card h1{margin:0}.login-card>p{color:#91a3b9}.login-card label{display:grid;gap:6px;margin-top:15px;color:#91a3b9;font-size:12px;font-weight:700}.login-card input{border:1px solid #294160;border-radius:8px;padding:10px;color:#eaf1fa;background:#172638}.full{width:100%;margin-top:21px}.form-error{color:var(--danger)!important}@media(max-width:1020px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-layout{grid-template-columns:1fr}.performance-panel,.receivables-panel{min-height:auto}}@media(max-width:720px){.sidebar{position:fixed;z-index:20;width:min(280px,85vw);transform:translate(-110%);transition:transform .2s ease;box-shadow:var(--shadow)}.sidebar.open{transform:translate(0)}.mobile-menu{position:fixed;z-index:15;top:16px;left:16px;display:grid}.topbar{height:64px;padding:0 16px 0 68px}.topbar-context,.profile,.profile-chevron{display:none}.topbar-actions{margin-left:auto}.mobile-logout{display:grid}.main{padding:28px 16px 44px}.page-header{margin-bottom:22px}.page-header h1{font-size:28px}.toolbar{align-items:start}.month-nav{width:100%}.month-picker{flex:1}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{min-height:142px;padding:15px}.stat-card strong{font-size:20px}.stat-icon{margin-bottom:12px}.panel{padding:17px;border-radius:11px}.panel-heading{margin-bottom:17px}.profit-chart{height:210px}.company-body{overflow-x:auto}.company-head{align-items:start}.pill{white-space:nowrap}.company-summary{align-items:start}.invoice-masthead,.invoice-parties{padding-left:20px;padding-right:20px}}@media print{:root,body{background:#fff;color:#111}.sidebar,.topbar,.mobile-menu,.mobile-logout,.no-print{display:none!important}.main{padding:0;max-width:none}}.form-help{grid-column:1 / -1;margin:0;color:#6b7280;font-size:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.section-heading h2{margin-bottom:2px}.company-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid #edeff3;padding:12px 0}.company-summary div{display:grid}.company-summary small{color:#6b7280}.company-summary-total{text-align:right}.company-summary-total span{font-weight:700}.invoice{max-width:720px;padding:0;overflow:hidden;color:#172638;background:#fff;border-color:#dbe4ef;box-shadow:0 18px 48px #0003}.invoice-masthead{display:flex;justify-content:space-between;gap:20px;background:#173b66;color:#fff;padding:30px 34px}.invoice-brand{display:grid;gap:2px}.invoice-brand strong{font-size:19px;letter-spacing:-.02em}.invoice-brand span{color:#bfd2e8}.invoice-heading{text-align:right;display:grid;gap:3px}.invoice-heading h2{margin:0;color:#fff;font-size:28px;text-transform:uppercase;letter-spacing:.06em}.invoice-heading span{font-family:JetBrains Mono,monospace;color:#bfd2e8}.invoice-parties{display:flex;justify-content:space-between;gap:28px;padding:30px 34px 22px}.invoice-label{display:block;color:#6b7280;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:5px}.invoice-parties>div>strong{font-size:16px}.invoice-parties p{margin:2px 0;color:#6b7280}.invoice-parties dl{margin:0;min-width:210px}.invoice-parties dl>div{display:flex;justify-content:space-between;gap:18px;padding:2px 0}.invoice-parties dt{color:#6b7280}.invoice-parties dd{margin:0;font-weight:600;text-align:right}.invoice-unpaid{color:#b45309}.invoice-lines{border-top:1px solid #e3e6ec}.invoice-lines th{background:#f4f7fa;color:#52677d;padding:11px 34px}.invoice-lines td{padding:13px 34px}.invoice-lines th:nth-last-child(-n+2),.invoice-lines td:nth-last-child(-n+2){text-align:right}.invoice-total{display:flex;justify-content:flex-end;align-items:baseline;gap:32px;margin:22px 34px 0;padding-top:15px;border-top:2px solid #173b66}.invoice-total span{font-weight:700}.invoice-total strong{font-size:24px;color:#173b66}.invoice-note{margin:28px 34px;color:#6b7280;font-size:12px}.invoice-actions{display:flex;gap:10px;margin:20px 34px 30px}@media(max-width:720px){.invoice-masthead,.invoice-parties{padding-left:20px;padding-right:20px}.invoice-parties{display:grid}.invoice-lines th,.invoice-lines td{padding-left:14px;padding-right:14px}.invoice-total,.invoice-note,.invoice-actions{margin-left:20px;margin-right:20px}}@media print{@page{margin:12mm}.invoice{border:0;max-width:none}.invoice-masthead{background:#173b66!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto}.logout{flex-shrink:0}.mobile-logout{display:none}@media(max-width:720px){.mobile-logout{display:flex;align-items:center;gap:6px;position:fixed;z-index:6;top:14px;right:14px;border:1px solid #e3e6ec;border-radius:6px;background:#fff;color:#161925;padding:7px 10px;font-weight:600}}
