:root{--navy-900:#0d1a33;--navy-800:#15254a;--navy-line:#31416a;--blue-600:#1463f3;--blue-700:#0f52d4;--page-bg:#edf2f8;--surface:#fff;--surface-alt:#e7edf6;--border:#d9e1ec;--text:#111827;--text-muted:#4b5563;--green-600:#1a8a3a;--green-bg:#e3f6ec;--green-border:#bfe6cf;--red-600:#d42a2a;--red-bg:#fdecec;--radius:12px;--shadow:0 1px 2px #0f172a0f, 0 2px 8px #0f172a0a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{color:var(--text);background:var(--page-bg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif}h1,h2,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid color-mix(in srgb, var(--blue-600) 55%, transparent);outline-offset:2px}.layout{grid-template-columns:300px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--navy-900);color:#fff;flex-direction:column;gap:18px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;align-items:center;gap:12px;padding:4px 10px;font-size:22px;font-weight:700;display:flex}.brand svg{color:#4c8dff}.company-badge{border:1px solid var(--navy-line);background:var(--navy-800);border-radius:8px;align-items:center;gap:10px;padding:11px 14px;font-size:15px;font-weight:600;display:flex}.company-badge span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar nav ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.nav-item{color:#e5e9f2;border-radius:8px;align-items:center;gap:16px;padding:13px 18px;font-size:18px;text-decoration:none;display:flex}.nav-item.active{background:var(--blue-600);color:#fff;font-weight:700}.nav-item.disabled{opacity:.6;cursor:default}.main{min-width:0;padding:14px 28px 28px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}h1{letter-spacing:-.02em;font-size:36px;line-height:1.15}.subtitle{color:var(--text-muted);margin-top:2px;font-size:17px}.company-header{text-align:right;gap:4px;display:grid}.company-header strong{font-size:22px}.company-header span{color:var(--text-muted)}.content{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:22px;display:grid}.primary-column{gap:22px;min-width:0;display:grid}.panel,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:18px}.panel-heading{margin-bottom:12px}.panel h2{letter-spacing:-.01em;font-size:22px}.hint{color:var(--text-muted);margin-top:4px;font-size:13px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.month-picker{align-items:center;gap:10px;display:flex}.month-select{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:10px;height:46px;padding:0 12px;display:flex}.month-select select{cursor:pointer;background:0 0;border:0;min-width:170px;padding:8px 4px;font-size:18px}.month-select select:focus{outline:none}.month-select:focus-within{outline:3px solid color-mix(in srgb, var(--blue-600) 55%, transparent);outline-offset:2px}.icon-button{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;place-items:center;width:46px;height:46px;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--surface-alt)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button.ghost{border-color:#0000;width:38px;height:38px}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;height:46px;padding:0 22px;font-size:17px;font-weight:600;display:inline-flex}.button.primary{background:var(--blue-600);color:#fff}.button.primary:hover{background:var(--blue-700)}.button.secondary{border-color:var(--border);background:#fff}.button.secondary:hover{background:var(--surface-alt)}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:17px}.data-table thead th{background:var(--surface-alt);text-align:left;padding:10px 12px;font-size:16px;font-weight:600}.data-table thead th:first-child{border-radius:6px 0 0 6px}.data-table thead th:last-child{border-radius:0 6px 6px 0}.data-table td,.data-table tbody th{border-bottom:1px solid var(--border);text-align:left;padding:9px 12px;font-weight:400}.data-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.data-table .strong{font-weight:600}.data-table .nowrap{white-space:nowrap}.budget-table tbody th.category-cell{align-items:center;gap:14px;font-weight:600;display:flex}.category-icon{color:#5b6475;flex:none}.budget-table tfoot th,.budget-table tfoot td{background:var(--surface-alt);text-align:left;padding:12px;font-size:19px;font-weight:700}.budget-table tfoot td.num{text-align:right}.budget-table tfoot th{border-radius:6px 0 0 6px}.budget-table tfoot td:last-child{border-radius:0 6px 6px 0}.amount-positive{color:var(--green-600)}.amount-negative{color:var(--red-600)}.budget-edit{cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px dashed #0000;border-radius:6px;align-items:center;gap:6px;margin:-3px -6px;padding:3px 6px;display:inline-flex}.budget-edit .pencil{opacity:0;color:var(--blue-600);transition:opacity .15s}.budget-edit:hover,.budget-edit:focus-visible{border-color:var(--blue-600);background:#f3f7ff}.budget-edit:hover .pencil,.budget-edit:focus-visible .pencil{opacity:1}.budget-input{text-align:right;border:1px solid var(--blue-600);font-variant-numeric:tabular-nums;border-radius:6px;width:120px;margin:-5px 0;padding:4px 8px}.budget-input.invalid{border-color:var(--red-600);background:var(--red-bg)}.muted{color:var(--text-muted)}.small{font-size:14px}.empty{color:var(--text-muted);text-align:center;padding:20px 4px}.prototype-note{color:var(--text-muted);text-align:center;font-size:13px}.link-button{color:var(--blue-600);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.summary{gap:18px;display:grid}.card{padding:20px 22px}.stat{align-items:flex-start;gap:16px;display:flex}.stat h2{font-size:19px}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:4px 0;font-size:36px;font-weight:700}.stat-note{color:var(--text-muted);font-size:15px}.stat-hero{background:var(--green-bg);border-color:var(--green-border)}.stat-hero .stat-icon{color:var(--green-600)}.stat-hero.over{background:var(--red-bg);border-color:#f3c4c4}.stat-hero.over .stat-icon,.stat-hero.over .stat-value{color:var(--red-600)}.stat-icon{flex:none;margin-top:2px}.stat-icon.blue{color:var(--blue-600)}.stat-icon.red{color:var(--red-600)}.card-title{align-items:center;gap:10px;margin-bottom:10px;font-size:21px;display:flex}.watch-list{margin:0;padding:0;list-style:none}.watch-list li{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.watch-list li:last-child{border-bottom:0}.watch-list li div{display:grid}.watch-list li span{color:var(--text-muted);font-size:15px}.watch-list li>span{color:var(--text);font-size:17px}.watch-list li>span.amount-negative{color:var(--red-600)}.dialog{border:0;border-radius:14px;width:min(520px,100vw - 32px);padding:0;box-shadow:0 20px 50px #0f172a40}.dialog::backdrop{background:#0d1a3373}.dialog-header{justify-content:space-between;align-items:center;padding:18px 22px 6px;display:flex}.dialog-header h2{font-size:22px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;padding:12px 22px;display:grid}.field{align-content:start;gap:6px;display:grid}.field.span-2{grid-column:span 2}.field label{font-size:15px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:10px 12px}.field textarea{resize:vertical}.field [aria-invalid=true]{border-color:var(--red-600)}.input-prefix{position:relative}.input-prefix span{color:var(--text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-prefix input{padding-left:26px}.field-error{color:var(--red-600);font-size:13px}.dialog-footer{justify-content:flex-end;gap:10px;padding:14px 22px 20px;display:flex}.toast-region{z-index:10;pointer-events:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--navy-900);color:#fff;border-radius:10px;max-width:min(560px,100vw - 32px);padding:12px 18px;font-size:15px;box-shadow:0 8px 24px #0003}.button:disabled{opacity:.6;cursor:progress}.icon-button.ghost:disabled{opacity:.4;cursor:not-allowed}.budget-input.saving{background:var(--surface-alt);color:var(--text-muted);cursor:progress}.form-error{color:var(--red-600);background:var(--red-bg);border:1px solid #f3c4c4;border-radius:8px;margin:0 22px;padding:10px 12px;font-size:14px}.form-info{color:var(--green-600);background:var(--green-bg);border:1px solid var(--green-border);border-radius:8px;padding:10px 12px;font-size:14px}.toast-region{justify-items:center;gap:8px;display:grid}.toast.error{background:var(--red-600);pointer-events:auto;align-items:flex-start;gap:10px;display:flex}.toast.error .icon-button.ghost{color:#fff;flex:none;width:28px;height:28px}.toast.error .icon-button.ghost:hover{background:#ffffff26}.account-line{font-size:14px}.badge-unresolved{vertical-align:middle;color:#8a5a00;background:#fff4dc;border:1px solid #f1d49a;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:600;line-height:18px;display:inline-block}.screen{grid-template-columns:minmax(0,1fr);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.screen-card{gap:16px;width:100%;min-width:0;max-width:440px;padding:28px;display:grid}.screen-brand{color:var(--navy-900);align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.screen-brand svg{color:var(--blue-600)}.screen-title{letter-spacing:-.01em;font-size:26px}.screen-text{color:var(--text-muted);font-size:15px;line-height:1.5}.screen-form{gap:14px;display:grid}.screen-form .field input{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;padding:10px 12px}.screen-card .form-error{margin:0}.screen-actions{flex-wrap:wrap;gap:10px;display:flex}.screen-footnote{color:var(--text-muted);text-align:center;font-size:14px}.screen-footnote a{color:var(--blue-600)}.screen-loading{color:var(--text-muted);font-size:17px}.button.block{justify-content:center;width:100%}@media (width<=1280px){.content{grid-template-columns:1fr}.summary{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}@media (width<=860px){.layout{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar nav ul{grid-auto-flow:column;overflow-x:auto}.nav-item{gap:8px;padding:10px 12px;font-size:15px}.main{padding:14px 16px 24px}.page-header{flex-direction:column}.company-header{text-align:left}h1{font-size:28px}.data-table{font-size:15px}.month-select select{min-width:0;font-size:16px}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}}
