@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_fe8b9d92-module__LINzvG__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_fe8b9d92-module__LINzvG__variable{--font-inter:"Inter", "Inter Fallback"}
:root{--bg:#f7f7f8;--surface:#fff;--subtle:#f2f3f5;--border:#e3e5e8;--text:#16181d;--muted:#646a73;--faint:#9399a2;--accent:#1f5eff;--accent-text:#fff;--accent-soft:#eaf0ff;--good:#16803c;--warn:#b45309;--bad:#c42b1c;--info:#1f5eff;--radius:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1013;--surface:#16181c;--subtle:#1d2025;--border:#2a2e35;--text:#e8eaed;--muted:#a0a6b0;--faint:#6d737d;--accent:#5b8bff;--accent-soft:#1a2546;--good:#4ade80;--warn:#fbbf24;--bad:#f87171;--info:#7aa2ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--text)}body{font-family:var(--font-inter), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}.shell{grid-template-columns:220px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:2px;height:100vh;padding:16px 10px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 8px 20px;font-weight:600;display:flex}.brand small{color:var(--muted);font-size:12px;font-weight:400;display:block}.brand-logo{background:#fff;border-radius:6px;width:auto;height:40px;padding:3px 5px}.login-card .brand-logo{height:60px}.sidebar nav{flex-direction:column;gap:2px;display:flex}.nav-link{border-radius:var(--radius);height:38px;color:var(--muted);align-items:center;gap:10px;padding:0 10px;font-weight:500;display:flex}.nav-link svg{flex:none;width:18px;height:18px}.nav-link:hover{background:var(--subtle);color:var(--text)}.nav-link.active{background:var(--subtle);color:var(--text);font-weight:600}.nav-link.active svg{color:var(--accent)}.sidebar-foot{color:var(--muted);flex-direction:column;gap:8px;margin-top:auto;padding:8px 10px;font-size:12px;display:flex}.sidebar-foot b{color:var(--text);font-weight:500}.signout{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;align-self:flex-start;height:30px;padding:0 10px;font-size:12px;font-weight:500}.signout:hover{background:var(--subtle)}.login-wrap{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;max-width:380px;padding:28px}.login-card h1{font-size:20px;font-weight:600}.login-form{flex-direction:column;gap:14px;display:flex}.login-form label{flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.login-form input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;height:40px;padding:0 12px;font-weight:400}.login-form input:focus{border-color:var(--accent);background:var(--surface)}.login-form .btn{justify-content:center;height:40px;margin-top:4px}.login-form .btn:disabled{opacity:.7;cursor:default}.form-error{color:var(--bad);font-size:13px}.content{width:100%;min-width:0;max-width:1280px;padding:28px 36px 64px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-header h1{letter-spacing:-.01em;font-size:22px;font-weight:600}.page-header p{color:var(--muted);margin-top:4px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;height:36px;padding:0 14px;font-weight:500;display:inline-flex}.btn:hover{background:var(--subtle)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{filter:brightness(.94)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.panel-head h2{font-size:14px;font-weight:600}.panel-head a{color:var(--accent);font-size:13px;font-weight:500}.section-title{color:var(--muted);margin:28px 0 10px;font-size:13px;font-weight:600}.stats{background:var(--surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat{border-left:1px solid var(--border);padding:16px 18px}.stat:first-child{border-left:0}.stat-label{color:var(--muted);font-size:13px}.stat-value{letter-spacing:-.02em;margin-top:4px;font-size:24px;font-weight:600}.stat-value.bad{color:var(--bad)}.stat-value.warn{color:var(--warn)}.stat-note{color:var(--muted);margin-top:2px;font-size:12px}.quick{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.quick a{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;padding:14px 16px;display:flex}.quick a:hover{border-color:var(--accent)}.quick b{font-weight:600}.quick span{color:var(--muted);font-size:12px}.tasks li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;list-style:none;display:flex}.tasks li:first-child{border-top:0}.tasks .what{font-weight:500}.tasks .why{color:var(--muted);margin-top:1px;font-size:12px}.status{white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.status:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.status.good{color:var(--good)}.status.warn{color:var(--warn)}.status.bad{color:var(--bad)}.status.info{color:var(--info)}.status.neutral{color:var(--muted)}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:12px;display:flex}.search{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);outline:none;flex:0 320px;min-width:260px;height:36px;padding:0 12px}.search:focus{border-color:var(--accent);background:var(--surface)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;height:32px;color:var(--muted);border-radius:999px;padding:0 12px;font-size:13px;font-weight:500}.chip span{color:var(--faint);margin-left:6px}.chip.on{background:var(--text);border-color:var(--text);color:var(--surface)}.chip.on span{color:inherit;opacity:.7}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 16px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--subtle)}.num{text-align:right}.empty{text-align:center;color:var(--muted);padding:32px}.strong{font-weight:500}.muted{color:var(--muted)}.small{font-size:12px}.year-tabs{flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.year-tabs a{border:1px solid var(--border);background:var(--surface);height:32px;color:var(--muted);border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.year-tabs a:hover{color:var(--text)}.year-tabs a.on{background:var(--text);border-color:var(--text);color:var(--surface)}.row-link{color:var(--accent);white-space:nowrap;font-weight:500}.row-link:hover{text-decoration:underline}.nowrap{white-space:nowrap}.back{color:var(--muted);margin-bottom:10px;font-size:13px;display:inline-block}.back:hover{color:var(--text)}.headline-amount{text-align:right}.headline-amount span{letter-spacing:-.01em;font-size:22px;font-weight:600;display:block}.headline-amount small{color:var(--muted);font-size:13px}.detail-grid{grid-template-columns:2fr 1fr;align-items:start;gap:12px;display:grid}.facts{padding:4px 16px 8px}.facts div{border-top:1px solid var(--border);justify-content:space-between;gap:16px;padding:9px 0;display:flex}.facts div:first-child{border-top:0}.facts dt{color:var(--muted)}.facts dd{text-align:right;font-weight:500}.facts .total dt,.facts .total dd{color:var(--text);font-weight:600}.chart{position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--border);stroke-width:1px}.chart .axis-base{stroke:var(--faint);stroke-width:1px}.chart .tick{fill:var(--muted);font-size:11px}.chart .value{fill:var(--text);font-size:11px;font-weight:600}.chart .bar{fill:var(--accent);transition:opacity .12s}.chart .bar.dim{opacity:.35}.tooltip{pointer-events:none;background:var(--text);color:var(--surface);white-space:nowrap;border-radius:6px;gap:8px;padding:6px 10px;font-size:12px;display:flex;position:absolute;top:0;transform:translate(-50%)}.board{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:12px;display:grid}.lane{background:var(--subtle);border-radius:10px;padding:8px}.lane h2{justify-content:space-between;padding:6px 6px 10px;font-size:13px;font-weight:600;display:flex}.lane h2 span{color:var(--muted);font-weight:500}.job{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;padding:12px}.job .top{color:var(--muted);justify-content:space-between;font-size:12px;display:flex}.job .name{margin:4px 0 8px;font-weight:500}.meter{background:var(--subtle);border-radius:99px;height:4px;overflow:hidden}.meter i{background:var(--accent);height:100%;display:block}.job .foot{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.notice{color:var(--muted);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);margin-bottom:20px;padding:10px 14px;font-size:13px}@media (max-width:1080px){.stats,.quick{grid-template-columns:repeat(2,minmax(0,1fr))}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--border)}.board{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}}@media (max-width:760px){.shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;height:auto;padding:8px 16px;position:static;overflow-x:auto}.brand{padding:0 12px 0 0}.brand-logo{height:30px}.brand small,.sidebar-foot .user{display:none}.sidebar-foot{margin:0 0 0 auto;padding:0 0 0 12px}.sidebar nav{flex-direction:row}.content{padding:20px 16px 48px}.search{flex:100%;min-width:0}.board,.quick{grid-template-columns:1fr}}.totals td{background:var(--subtle);border-bottom:1px solid var(--border);font-weight:600}.filter-groups{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px 20px;padding:10px 12px;display:flex}.filter-groups .chips{align-items:center}.filter-groups b{color:var(--muted);margin-right:2px;font-size:12px;font-weight:500}.invoice-form{flex-direction:column;gap:16px;display:flex}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 16px;padding:16px;display:grid}.form-grid label{flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.form-grid label.wide{grid-column:1/-1}.invoice-form input,.invoice-form select{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);height:36px;color:var(--text);font:inherit;outline:none;min-width:0;padding:0 10px;font-weight:400}.invoice-form input:focus,.invoice-form select:focus{border-color:var(--accent);background:var(--surface)}.lines-table td{vertical-align:middle;padding:6px 4px}.lines-table td:first-child{padding-left:12px}.lines-table input{width:130px}.lines-table input.desc{width:280px}.lines-table input.short{width:80px}.lines-table input.n{text-align:right;width:90px}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:13px}.link-btn:hover{color:var(--bad)}.form-actions{justify-content:flex-end;display:flex}.print-page{padding:16px}.print-bar{justify-content:space-between;max-width:210mm;margin:0 auto 12px;display:flex}.inv{color:#000;background:#fff;border:1px solid #ddd;max-width:210mm;margin:0 auto;padding:10mm;font-size:11px;line-height:1.4}.inv h1{text-align:center;letter-spacing:.08em;font-size:16px;font-weight:700}.inv-sub{text-align:center;margin:2px 0 8px;font-size:11px}.inv table{border-collapse:collapse;width:100%;margin-top:-1px}.inv td,.inv th{vertical-align:top;text-align:left;color:#000;white-space:normal;border:1px solid #000;padding:4px 6px;font-size:11px}.inv th{background:#f2f2f2;font-weight:600}.inv .num{text-align:right}.inv b{text-transform:uppercase;letter-spacing:.03em;color:#333;margin-bottom:2px;font-size:9.5px;font-weight:600;display:block}.inv b.gap{margin-top:8px}.inv .half{width:50%}.inv .tall{height:80px}.inv .strong{font-weight:700}.inv .fill{border-bottom:1px dotted #888;height:15px;display:block}.inv .fill.inline{vertical-align:baseline;width:140px;height:12px;display:inline-block}.inv-items tfoot td{font-weight:600}.inv-items tr.grand td{font-size:12px;font-weight:700}.inv .sign{text-align:right;display:table-cell}.inv .sign-line{text-align:center;border-top:1px solid #000;min-width:160px;margin-top:56px;padding-top:2px;display:inline-block}@page{size:A4;margin:10mm}@media print{body{background:#fff!important}.no-print{display:none!important}.print-page{padding:0}.inv{border:0;max-width:none;padding:0}.inv thead{display:table-header-group}.inv tr{break-inside:avoid}}
