:root{--ink-950: #0a1f2b;--ink-800: #173848;--ink-600: #45616d;--paper: #f3f6f4;--surface: #ffffff;--line: #d8e2df;--teal: #0f9f7a;--teal-dark: #08745a;--amber: #d98a2b;--shadow-panel: 0 18px 50px rgb(13 42 52 / 9%);--radius-panel: 16px;--control-height: 32px;--control-font: 13px;--page-bg-a: #f8faf9;--page-bg-b: var(--paper);--panel-surface: #ffffff;--panel-border: #d7dee8;--field-surface: #ffffff;--field-border: #b9c9c4;--tile-surface: #f4f8f6;--tile-border: #dbe6e2;--tile-accent: #cfe3dc;--table-head-surface: #f5f8f7;--table-row-hover: #f7fbfa;--text-strong: var(--ink-950);--text-muted: var(--ink-600);--success-surface: #e9f5f0;--success-text: #165c47;--warning-surface: #fdf4e6;--warning-text: #7a4a0e;--link-accent: #155eef;--danger-surface: #fdeeeb;--danger-border: #e3b3a8;--danger-text: #8a3120;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-strong);background:var(--page-bg-b);font-synthesis:none;text-rendering:optimizeLegibility;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--surface: #14242b;--line: #27414a;--teal: #35d0aa;--amber: #e2a552;--page-bg-a: #0b171c;--page-bg-b: #0d1a1f;--panel-surface: #14242b;--panel-border: #27414a;--field-surface: #0f1e24;--field-border: #35525c;--tile-surface: #10212a;--tile-border: #27414a;--tile-accent: #2c5a55;--table-head-surface: #0f1e24;--table-row-hover: #172b33;--text-strong: #e7f2ef;--text-muted: #9db3ad;--success-surface: #10362c;--success-text: #8ddcc0;--warning-surface: #3a2a12;--warning-text: #f0c184;--link-accent: #7fb4ff;--danger-surface: #3a1f19;--danger-border: #7a4034;--danger-text: #efab99;--shadow-panel: 0 18px 50px rgb(0 0 0 / 38%);color-scheme:dark}}:root[data-theme=dark]{--surface: #14242b;--line: #27414a;--teal: #35d0aa;--amber: #e2a552;--page-bg-a: #0b171c;--page-bg-b: #0d1a1f;--panel-surface: #14242b;--panel-border: #27414a;--field-surface: #0f1e24;--field-border: #35525c;--tile-surface: #10212a;--tile-border: #27414a;--tile-accent: #2c5a55;--table-head-surface: #0f1e24;--table-row-hover: #172b33;--text-strong: #e7f2ef;--text-muted: #9db3ad;--success-surface: #10362c;--success-text: #8ddcc0;--warning-surface: #3a2a12;--warning-text: #f0c184;--link-accent: #7fb4ff;--danger-surface: #3a1f19;--danger-border: #7a4034;--danger-text: #efab99;--shadow-panel: 0 18px 50px rgb(0 0 0 / 38%);color-scheme:dark}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2345616d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:11px 7px;padding-right:28px;line-height:1.2}select::-ms-expand{display:none}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 88% 4%,rgb(15 159 122 / 8%),transparent 28rem),linear-gradient(135deg,var(--page-bg-a) 0%,var(--page-bg-b) 100%)}button,input,select{font:inherit}input,select,textarea{border:1px solid var(--field-border);border-radius:8px;color:var(--text-strong);background-color:var(--field-surface);outline:none;transition:border-color .16s ease,box-shadow .16s ease}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f9f7a24}textarea{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-layout{min-height:100vh;display:grid;grid-template-columns:264px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:18px;padding:20px 16px;color:#f8fafc;background:linear-gradient(180deg,rgb(255 255 255 / 3%),transparent 18rem),repeating-linear-gradient(135deg,rgb(255 255 255 / 1.5%) 0 1px,transparent 1px 8px),var(--ink-950);box-shadow:12px 0 34px #091f2b1a}.brand-mark{display:flex;align-items:center;gap:10px;height:44px;padding:0 8px;font-weight:700}.sidebar nav{display:grid;gap:6px}.nav-button{width:100%;height:40px;display:flex;align-items:center;gap:10px;border:0;border-left:3px solid transparent;border-radius:8px;padding:0 10px;color:#dbe7f3;background:transparent;text-align:left}.nav-button:hover,.nav-button.is-active{color:#fff;background:#ffffff17;border-left-color:#35d0aa}.theme-toggle{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border:1px solid rgb(255 255 255 / 12%);border-radius:9px;padding:4px;background:#ffffff0f}.theme-toggle-button{min-height:30px;display:grid;place-items:center;border:0;border-radius:6px;color:#b9c8d8;background:transparent;transition:color .16s ease,background .16s ease}.theme-toggle-button:hover{color:#fff;background:#ffffff14}.theme-toggle-button.is-active{color:#0a1f2b;background:#63e0be}.user-panel{margin-top:0;display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:8px;border-top:1px solid rgba(255,255,255,.16);padding-top:14px}.user-panel strong,.user-panel span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-panel strong{font-size:.9rem}.user-panel span{color:#b9c8d8;font-size:.78rem}.icon-button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:6px;color:#f8fafc;background:#ffffff14}.content-shell{min-width:0;padding:clamp(22px,3vw,42px);padding-top:clamp(11px,1.5vw,21px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:18px}.page-heading h1,.login-panel h1,.state h2{margin:0;letter-spacing:0}.page-heading h1{font-size:1.55rem}.content-shell h2{font-size:1.125rem}.eyebrow{margin:0 0 4px;color:var(--text-muted);font-size:.78rem;font-weight:700;text-transform:uppercase}.state{border:1px solid var(--panel-border);border-radius:8px;background:var(--panel-surface)}.state-empty{padding:24px}.state-empty p{margin:8px 0 0;color:var(--text-muted)}.state-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:10px}.spinner{width:18px;height:18px;border:2px solid #c7d1de;border-top-color:#1f6feb;border-radius:50%}.status-badge{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:4px 10px;color:var(--success-text);background:var(--success-surface);font-size:.8rem;font-weight:700;text-transform:capitalize}.status-badge.status-open{color:#0a1f2b;background:#fff;box-shadow:inset 0 0 0 1px #c3d0d6}.status-badge.status-pending-review{color:#7a4a0e;background:#fbe3ab;box-shadow:inset 0 0 0 1px #e0bd71}.status-badge.status-settled{color:#0f4e3a;background:#b6e7d2;box-shadow:inset 0 0 0 1px #7cc6a8}.status-badge.status-closed{color:#3b474d;background:#d3dade;box-shadow:inset 0 0 0 1px #adb8bd}.accounting-year-card .data-table{table-layout:fixed}.accounting-year-card .period-column{width:88px}.accounting-year-card .status-column{width:124px}.accounting-year-card .period-column,.accounting-year-card tbody td:first-child,.accounting-year-card .status-badge{white-space:nowrap}.accounting-year-card .actions-column{width:118px}.accounting-year-card .status-badge{min-height:24px;padding:3px 8px;font-size:.74rem}.accounting-year-card .reason-column{width:auto}.accounting-year-card td{overflow-wrap:anywhere}.period-actions{white-space:nowrap}.period-actions .secondary-button{min-height:var(--control-height);padding:0 10px;font-size:var(--control-font)}.import-skipped-closed{margin-top:4px;color:var(--warning-text);font-size:.78rem;font-weight:700}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(420px,100%);display:grid;gap:16px;border:1px solid var(--panel-border);border-radius:8px;padding:28px;background:var(--panel-surface)}.login-panel label{display:grid;gap:6px;color:var(--text-strong);font-weight:700}.login-panel input{width:100%;min-height:42px;border:1px solid var(--panel-border);border-radius:6px;padding:8px 10px;color:var(--text-strong);background:var(--panel-surface)}.primary-button{min-height:var(--control-height);height:var(--control-height);border:0;border-radius:8px;padding:0 14px;color:#fff;background:#2364aa;font-size:var(--control-font);font-weight:700}.login-panel .primary-button{min-height:42px;height:42px;font-size:.95rem}.primary-button:disabled{cursor:progress;opacity:.72}.form-error{margin:0;border-radius:6px;padding:10px 12px;color:#8a1f11;background:#fde7df}.workflow-page{display:grid;gap:18px}.accounting-year-controls{align-items:end;display:flex;gap:12px}.accounting-year-controls label{min-width:0}.accounting-year-controls select{min-width:110px}.accounting-year-controls .primary-button{min-height:var(--control-height);height:var(--control-height);padding:4px 12px;color:#0a1f2b;background:#63e0be;font-size:var(--control-font)}.accounting-year-list{display:grid;gap:16px}.accounting-year-card{overflow:hidden}.accounting-year-heading{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:14px}.accounting-year-heading h2{margin:0}.data-table-wrap{overflow-x:auto}.dashboard-page{gap:20px}.report-control-rail,.operational-control-panel{position:relative;overflow:hidden;border:1px solid rgb(255 255 255 / 8%);border-radius:var(--radius-panel);color:#eef8f5;background:radial-gradient(circle at 90% -20%,rgb(53 208 170 / 24%),transparent 21rem),repeating-linear-gradient(135deg,rgb(255 255 255 / 2%) 0 1px,transparent 1px 9px),var(--ink-950);box-shadow:0 22px 50px #0a1f2b29}.report-control-rail:before,.operational-control-panel:before{position:absolute;content:"";inset:0 auto 0 0;width:4px;background:#35d0aa}.report-control-rail{display:flex;align-items:end;gap:20px;padding:18px 20px}.segmented-control,.comparison-basis{display:inline-flex;gap:4px;border:1px solid rgb(255 255 255 / 12%);border-radius:10px;padding:4px;background:#ffffff0f}.segmented-control button,.comparison-basis button{min-height:var(--control-height);border:0;border-radius:7px;padding:6px 12px;color:#bcd0d6;background:transparent;font-size:.78rem;font-weight:750}.segmented-control button[aria-pressed=true],.comparison-basis button[aria-pressed=true]{color:#0a1f2b;background:#63e0be;box-shadow:0 5px 14px #0000002e}.period-picker{display:flex;gap:12px;flex-wrap:wrap}.period-picker label{display:grid;gap:4px;color:var(--text-strong);font-size:.82rem;font-weight:700}.report-control-rail .period-picker label,.year-selector legend,.cutoff-field>span,.operational-control-panel label>span,.operational-control-panel .file-picker>span{color:#bcd0d6;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.period-picker input,.period-picker select{min-height:36px;border:1px solid var(--panel-border);border-radius:6px;padding:6px 8px;background-color:var(--panel-surface)}.period-picker select{padding-right:28px}.report-control-rail .period-picker input,.report-control-rail .period-picker select,.cutoff-field select,.operational-control-panel input,.operational-control-panel select{min-height:var(--control-height);font-size:var(--control-font);border-color:#ffffff24;border-radius:9px;padding-left:10px;color:#0a1f2b;background-color:#fffffff5}.report-control-rail .period-picker input,.operational-control-panel input{padding-right:10px}.report-control-rail .period-picker input:focus,.report-control-rail .period-picker select:focus,.cutoff-field select:focus,.operational-control-panel input:focus,.operational-control-panel select:focus{color:#0a1f2b;background-color:#fff}.year-controls{min-width:0;display:flex;align-items:end;gap:14px;flex-wrap:wrap}.year-selector{margin:0;border:0;padding:0}.year-selector legend{margin-bottom:5px}.year-selector>div{display:flex;gap:5px;flex-wrap:wrap}.year-chip{min-height:var(--control-height);display:inline-flex;align-items:center;border:1px solid rgb(255 255 255 / 14%);border-radius:8px;padding:5px 10px;color:#bcd0d6;background:#ffffff0d;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;font-weight:700;cursor:pointer}.year-chip input{position:absolute;opacity:0;pointer-events:none}.year-chip.is-selected{border-color:#63e0be73;color:#aaf1dd;background:#0f9f7a33}.cutoff-field{display:grid;gap:5px}.cutoff-field select{min-width:88px;padding:4px 28px 4px 10px}.dashboard-grid,.dashboard-section{display:grid;gap:14px}.dashboard-section h2{margin:0;letter-spacing:0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.section-heading .eyebrow{margin-bottom:3px}.report-amount-button{border:0;padding:0;color:var(--link-accent);background:transparent;font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.dialog-backdrop{position:fixed;z-index:50;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#1018288c}.transaction-dialog{width:min(1100px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;border-radius:10px;padding:20px;background:var(--panel-surface);box-shadow:0 24px 64px #10182847}.transaction-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.transaction-dialog-header h2,.transaction-dialog-header p,.transaction-dialog-total{margin:0}.transaction-dialog-total{margin-top:18px}.transaction-dialog-table-wrap{margin-top:14px;overflow-x:auto}.transaction-dialog .data-table{min-width:850px}.table-secondary{display:block;margin-top:3px;color:var(--text-muted);font-size:.82rem}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.kpi-tile{min-height:92px;display:grid;align-content:center;gap:6px;border:1px solid var(--panel-border);border-radius:8px;padding:14px;background:var(--panel-surface)}.kpi-tile,.dashboard-section,.transaction-row,.rules-table-scroll{border-color:var(--line)}.kpi-tile span{color:var(--text-muted);font-size:.78rem;font-weight:700}.kpi-tile strong{font-size:1.2rem}.blocked-period{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;border:1px solid #edc27f;border-radius:8px;padding:18px;color:#5f3b05;background:#fff6e8}.blocked-period h2,.blocked-period p{margin:0}.blocked-period div{display:grid;gap:8px;justify-items:start}.ytd-column-chart{min-height:330px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:clamp(5px,.8vw,12px);border:1px solid var(--line);border-radius:var(--radius-panel);padding:20px 18px 16px;background:repeating-linear-gradient(to top,transparent 0 54px,rgb(23 56 72 / 7%) 54px 55px),var(--surface);box-shadow:var(--shadow-panel)}.ytd-column{min-width:0;display:grid;grid-template-rows:28px 220px auto;gap:7px;text-align:center}.ytd-column-value{overflow:hidden;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap}.ytd-column-stage{min-height:0;display:flex;flex-direction:column}.ytd-stage-half{min-height:0;display:flex;justify-content:center}.ytd-stage-positive{align-items:flex-end;border-bottom:1px solid #9db1b4}.ytd-stage-negative{align-items:flex-start}.ytd-column-bar{width:min(54px,68%);border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#35c8a1 0%,var(--teal-dark) 100%);box-shadow:0 9px 24px #0f9f7a33;transform-origin:bottom;animation:ytd-column-rise .42s cubic-bezier(.2,.8,.2,1) both}.ytd-column-bar.is-empty{height:2px;min-height:2px;background:#d9e3e0;box-shadow:none;animation:none}.ytd-column-bar[data-direction=positive],.ytd-column-bar[data-direction=negative]{min-height:3px}.ytd-column-bar[data-direction=negative]{border-radius:2px 2px 7px 7px;transform-origin:top;background:linear-gradient(180deg,#b86222,#e8a24e);box-shadow:0 -9px 24px #d98a2b33}.ytd-column-month{color:var(--text-strong);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}@keyframes ytd-column-rise{0%{opacity:0;transform:scaleY(.08)}to{opacity:1;transform:scaleY(1)}}.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.operational-control-panel{padding:18px 20px}.operational-control-panel label{display:grid;gap:5px}.import-controls{align-items:end}.file-picker-control{display:flex;align-items:center;gap:10px;min-width:0;height:var(--control-height);border:1px solid rgb(255 255 255 / 14%);border-radius:9px;padding:0 4px 0 0;background:#fffffff5}.file-picker-button{display:inline-flex;align-items:center;height:calc(var(--control-height) - 10px);border-radius:7px;padding:0 12px;color:#fff;background:#2f4a56;font-size:var(--control-font);font-weight:700;cursor:pointer;margin-left:5px}.file-picker-button input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.file-picker-status{overflow:hidden;color:#43606b;font-size:var(--control-font);font-weight:500;text-overflow:ellipsis;white-space:nowrap;padding-right:8px}.import-controls .primary-button{min-height:var(--control-height);height:var(--control-height);padding:4px 12px;color:#0a1f2b;background:#63e0be;font-size:var(--control-font)}.file-picker{display:grid;gap:6px;min-width:0}.file-picker input{min-height:var(--control-height);max-width:100%}.muted{margin:0;color:var(--text-muted)}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-height);height:var(--control-height);border:1px solid var(--panel-border);border-radius:8px;padding:0 12px;color:var(--text-strong);background:var(--panel-surface);font-size:var(--control-font);font-weight:700;white-space:nowrap}.secondary-button:disabled,.icon-table-button:disabled{cursor:not-allowed;opacity:.5}.form-success{margin:0;border-radius:6px;padding:10px 12px;color:var(--success-text);background:#e2f3ec}.data-table{width:100%;border-collapse:collapse;border:1px solid var(--panel-border);border-radius:8px;overflow:hidden;background:var(--panel-surface)}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.data-table th{color:var(--text-muted);background:var(--table-head-surface);font-size:.82rem}.rules-table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--field-surface);box-shadow:var(--shadow-panel)}.rules-table{min-width:1040px}.rules-table .rule-priority-cell,.rules-table .rule-name-cell{color:var(--text-muted);font-size:.78rem;font-weight:400}.rules-table .rule-edit-button{min-height:32px;padding:5px 9px;font-size:.74rem;font-weight:800}.rules-table td:nth-child(4),.rules-table td:nth-child(5){max-width:330px;color:var(--text-strong);font-size:.84rem}.rule-row-actions,.rule-editor-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rule-row-actions{flex-wrap:nowrap;justify-content:flex-end}.rules-table td:last-child,.rules-table th:last-child{width:156px}.icon-table-button{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--panel-border);border-radius:6px;color:var(--text-strong);background:var(--panel-surface)}.rule-editor-row>td{padding:0;background:var(--tile-surface)}.rule-editor{display:grid;gap:16px;padding:18px}.rule-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.rule-form-grid label,.rule-allocation-row label{display:grid;gap:4px;color:var(--text-strong);font-size:.82rem;font-weight:700}.rule-form-grid input,.rule-form-grid select,.rule-allocation-row input,.rule-allocation-row select{min-width:0;min-height:var(--control-height);height:var(--control-height);border:1px solid var(--panel-border);border-radius:8px;padding:0 10px;background-color:var(--panel-surface);font-size:var(--control-font)}.rule-form-grid select,.rule-allocation-row select{padding-right:28px}.rule-form-grid .checkbox-field{display:flex;align-items:center;gap:8px;min-height:36px}.rule-form-grid .checkbox-field input{min-height:0}.rule-result-editor{display:grid;gap:12px;border:1px solid #cbd4df;border-radius:8px;padding:14px}.rule-result-editor legend{color:var(--text-strong);font-weight:700}.rule-allocation-list,.rule-preview{display:grid;gap:10px}.rule-allocation-row{display:grid;grid-template-columns:160px minmax(190px,1fr) 160px auto;align-items:end;gap:10px}@media (max-width: 1100px){.rule-form-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media (max-width: 720px){.rule-form-grid,.rule-allocation-row{grid-template-columns:1fr}}.transaction-filters,.transaction-source-fields,.transaction-accounting-fields{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.transaction-filters{align-items:end;background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:14px;padding:1rem}.transaction-filters label,.transaction-source-fields label,.transaction-accounting-fields>label,.reporting-period-field label,.transaction-assignment-row label{display:grid;gap:.35rem}.reporting-period-field{display:grid;gap:.6rem;grid-template-columns:1fr 1fr}.transaction-detail-panel{position:relative;overflow:hidden;display:grid;gap:18px;border:1px solid rgb(255 255 255 / 8%);border-radius:var(--radius-panel);padding:20px;color:#eef8f5;background:radial-gradient(circle at 90% -20%,rgb(53 208 170 / 24%),transparent 21rem),repeating-linear-gradient(135deg,rgb(255 255 255 / 2%) 0 1px,transparent 1px 9px),var(--ink-950);box-shadow:0 22px 50px #0a1f2b29}.transaction-detail-panel:before{position:absolute;content:"";inset:0 auto 0 0;width:4px;background:#35d0aa}.transaction-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.transaction-detail-title{display:flex;align-items:center;gap:11px;min-width:0}.transaction-detail-meta{flex-shrink:0}.transaction-section-heading{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--text-strong);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.transaction-section-heading>svg{flex-shrink:0;color:var(--teal)}.transaction-fact-toggle{justify-self:start;margin-top:2px;border:0;padding:0;color:var(--link-accent);background:transparent;font:inherit;font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.transaction-fact.is-clamped dd{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}.transaction-detail-title>svg{width:38px;height:38px;padding:9px;border:1px solid rgb(255 255 255 / 15%);border-radius:10px;color:#63e0be;background:#ffffff0f}.transaction-detail-title h2,.transaction-detail-title p{margin:0}.transaction-detail-title h2{font-size:20px}.transaction-detail-title p{overflow:hidden;max-width:62ch;color:#eef8f5b8;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.transaction-detail-title>div{min-width:0}.transaction-detail-meta{display:flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums}.transaction-detail-meta strong{font-size:18px}.transaction-detail-back{justify-self:start;min-height:var(--control-height);border-color:#ffffff38;color:#eef8f5;background:#ffffff14}.transaction-source-fields{display:block;min-inline-size:0}.transaction-fact-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(114px,1fr));margin:0}.transaction-fact{display:grid;align-content:start;align-self:start;gap:5px;min-width:0;grid-column:span 2;border:1px solid var(--tile-border);border-left:3px solid var(--tile-accent);border-radius:10px;padding:11px 13px;background:var(--tile-surface)}.transaction-accounting-fields{display:block;min-inline-size:0}.transaction-accounting-fields>label,.transaction-accounting-controls>label,.reporting-period-field label,.transaction-assignment-row label{display:grid;gap:6px}.transaction-accounting-fields>label>span,.transaction-accounting-controls>label>span,.reporting-period-field label>span,.transaction-assignment-row label>span{white-space:nowrap;color:var(--text-strong);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.transaction-accounting-heading{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px;margin-bottom:18px}.transaction-accounting-heading .transaction-section-heading{margin:0;flex-shrink:0}.transaction-accounting-controls{display:flex;align-items:end;flex-wrap:wrap;gap:14px}.transaction-accounting-controls>label,.reporting-period-field label{width:190px}.reporting-period-field{display:flex;gap:14px;grid-template-columns:none}.transaction-accounting-fields select,.transaction-accounting-fields input{min-height:var(--control-height);font-size:var(--control-font);border:1px solid var(--field-border);border-radius:8px;padding:0 11px;color:var(--text-strong);background:var(--panel-surface);font-size:14px}.transaction-accounting-fields select:hover,.transaction-accounting-fields input:hover{border-color:#8fb0a8}.transaction-accounting-fields select:focus,.transaction-accounting-fields input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f9f7a2e}.transaction-assignment-caption{margin:0 0 10px;color:var(--text-strong);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.transaction-assignment-list{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--tile-surface)}.transaction-assignment-row{display:grid;align-items:start;gap:14px;grid-template-columns:minmax(260px,2fr) 130px auto;border:1px solid var(--tile-border);border-radius:10px;padding:10px 12px;background:var(--surface)}.transaction-assignment-row input,.transaction-assignment-row select{width:100%;height:var(--control-height);min-height:var(--control-height)}.transaction-assignment-row input{font-variant-numeric:tabular-nums;text-align:right}.transaction-assignment-row .secondary-button,.transaction-add-assignment{min-height:28px;gap:6px;border-radius:6px;padding:4px 10px;font-size:12px}.transaction-assignment-row .secondary-button{border-color:var(--danger-border);color:var(--danger-text);background:var(--danger-surface)}.transaction-assignment-row .secondary-button:hover:not(:disabled){border-color:var(--danger-text)}.transaction-add-assignment{border-color:var(--teal);color:var(--success-text);background:var(--success-surface)}.transaction-assignment-row .secondary-button{align-self:end;margin-bottom:6px}.transaction-add-assignment{justify-self:start}.allocation-summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:16px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:11px 14px;font-variant-numeric:tabular-nums}.allocation-summary strong{font-size:15px}.allocation-summary span{color:var(--text-muted);font-size:13px}.allocation-summary.is-complete{border-left-color:var(--teal);color:var(--success-text);background:var(--success-surface)}.allocation-summary.is-incomplete{border-left-color:var(--amber);color:var(--warning-text);background:var(--warning-surface)}@media (max-width: 700px){.transaction-assignment-row{grid-template-columns:1fr;align-items:stretch}}.transaction-fact.is-wide{grid-column:span 3}.transaction-fact.is-double{grid-column:span 4}@media (max-width: 900px){.transaction-fact-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.transaction-fact,.transaction-fact.is-wide,.transaction-fact.is-double{grid-column:auto}}.transaction-fact dt{color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.transaction-fact dd{margin:0;overflow-wrap:anywhere;color:var(--text-strong);font-size:14px;font-variant-numeric:tabular-nums}.transaction-source-payload{margin-top:16px}.transaction-source-payload>summary{cursor:pointer;color:var(--text-strong);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.transaction-source-payload>textarea{width:100%;margin-top:10px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px}.transaction-editor-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border:1px solid var(--line);border-radius:var(--radius-panel);padding:14px 18px;background:var(--surface);box-shadow:var(--shadow-panel)}.transaction-editor-hint{color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.transaction-editor-buttons{display:flex;flex-wrap:wrap;gap:10px}.transaction-editor-actions .save-button{min-height:42px;border:0;border-radius:6px;padding:8px 14px;color:#fff;background:var(--teal);box-shadow:0 5px 14px #0f9f7a47;font-weight:700}.transaction-editor-actions .save-button:disabled{cursor:not-allowed;color:var(--text-muted);background:var(--tile-surface);box-shadow:none}.transaction-editor-actions .cancel-button{min-height:42px;border-color:var(--amber);color:#8a5410;background:#fdf3e4}.transaction-filters input,.transaction-filters select,.transaction-source-fields input,.transaction-accounting-fields input,.transaction-accounting-fields select{min-width:0}.transaction-workspace-detail{display:grid;gap:1.25rem}.transaction-source-fields,.transaction-accounting-fields{background:var(--panel-surface);border:1px solid var(--panel-border);border-radius:14px;padding:1rem}.transaction-source-fields legend,.transaction-accounting-fields legend{font-weight:700;padding:0 .35rem}.transaction-source-fields input[readonly]{background:#f3f6f9;color:var(--text-muted)}.transaction-assignment-list{display:grid;gap:.75rem;grid-column:1 / -1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.transactions-page{gap:20px}.transaction-filter-panel{position:relative;overflow:hidden;display:grid;gap:18px;border:1px solid rgb(255 255 255 / 8%);border-radius:var(--radius-panel);padding:20px;color:#eef8f5;background:radial-gradient(circle at 90% -20%,rgb(53 208 170 / 24%),transparent 21rem),repeating-linear-gradient(135deg,rgb(255 255 255 / 2%) 0 1px,transparent 1px 9px),var(--ink-950);box-shadow:0 22px 50px #0a1f2b29}.transaction-filter-panel:before{position:absolute;content:"";inset:0 auto 0 0;width:4px;background:#35d0aa}.transaction-filter-heading,.transaction-filter-title{display:flex;align-items:center}.transaction-filter-heading{justify-content:space-between;gap:18px}.transaction-filter-title{gap:11px}.transaction-filter-title>svg{width:38px;height:38px;padding:9px;border:1px solid rgb(255 255 255 / 15%);border-radius:10px;color:#63e0be;background:#ffffff0f}.transaction-filter-title h2,.transaction-filter-title p{margin:0}.transaction-filter-title h2{letter-spacing:.01em}.transaction-filter-title p{margin-top:3px;color:#a9c0c8;font-size:.78rem}.transaction-count{border:1px solid rgb(99 224 190 / 35%);border-radius:999px;padding:5px 10px;color:#aaf1dd;background:#0f9f7a1f;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem;font-variant-numeric:tabular-nums}.transaction-filter-panel .transaction-filters{grid-template-columns:100px 100px minmax(130px,.7fr) minmax(180px,1fr) minmax(260px,1.6fr);gap:12px;border:0;border-radius:0;padding:0;background:transparent}.transaction-filter-panel .transaction-filters label>span{color:#bcd0d6;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.transaction-filter-panel .transaction-filters input,.transaction-filter-panel .transaction-filters select{width:100%;min-height:var(--control-height);height:var(--control-height);border:1px solid rgb(255 255 255 / 12%);border-radius:9px;padding:0 10px;color:#0a1f2b;background:#fffffff0;font-size:var(--control-font);outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.transaction-filter-panel .transaction-filters select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2345616d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:11px 7px;padding-right:28px}.transaction-filter-panel .transaction-filters input:focus,.transaction-filter-panel .transaction-filters select:focus{border-color:#63e0be;background-color:#fff;box-shadow:0 0 0 3px #35d0aa2e}.transaction-search-field>div{position:relative}.transaction-search-field svg{position:absolute;z-index:1;top:50%;left:12px;color:#6d858d;transform:translateY(-50%)}.transaction-filter-panel .transaction-search-field input{padding-left:38px}.transaction-table-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);box-shadow:var(--shadow-panel);animation:transaction-card-in .28s ease-out both}.transaction-table-scroll{overflow-x:auto}.transaction-table{min-width:980px;border:0;border-radius:0}.transaction-table th{border-bottom-color:var(--line);padding:12px 16px;color:var(--text-muted);background:var(--table-head-surface);font-size:.69rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.transaction-table td{padding:16px;vertical-align:top}.transaction-table tbody tr{transition:background .16s ease,box-shadow .16s ease}.transaction-table tbody tr:hover{background:var(--table-row-hover);box-shadow:inset 3px 0 0 var(--teal)}.transaction-date-cell>strong,.transaction-description-cell>strong,.transaction-amount-cell>strong,.transaction-date-cell>span,.transaction-description-cell>span,.transaction-amount-cell>span{display:block}.transaction-date-cell>strong+span,.transaction-description-cell>strong+span,.transaction-amount-cell>strong+span{margin-top:4px}.transaction-date-cell strong,.transaction-amount-cell strong{color:var(--text-strong);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-date-cell span,.transaction-description-cell span,.transaction-amount-cell span{color:var(--text-muted);font-size:.75rem}.transaction-description-cell{min-width:280px;max-width:500px}.transaction-description-cell strong{color:var(--text-strong);font-size:.88rem}.transaction-description-cell span{line-height:1.45}.transaction-kind{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.transaction-kind-income{color:#076148;background:#dff5ed}.transaction-kind-expense{color:#8a4a10;background:#fff0dc}.transaction-amount-cell{min-width:145px}.transaction-amount-cell strong{font-size:.93rem;white-space:nowrap}.transaction-assignment-chips{min-width:210px;display:flex;gap:6px;flex-wrap:wrap}.transaction-assignment-chips span{border:1px solid #d6e0de;border-radius:6px;padding:4px 7px;color:#536b73;background:#f5f8f7;font-size:.7rem;white-space:nowrap}.transaction-assignment-chips span.is-selected{border-color:#0f9f7a61;color:#08745a;background:#e5f6f0;font-weight:800}.transaction-open-button{min-height:var(--control-height);height:var(--control-height);display:inline-flex;align-items:center;gap:7px;border:1px solid #b8cbc7;border-radius:8px;padding:0 10px;font-size:var(--control-font);color:var(--text-strong);background:var(--field-surface);font-weight:800;transition:color .16s ease,border-color .16s ease,transform .16s ease}.transaction-open-button:hover,.transaction-open-button:focus-visible{border-color:var(--teal);color:var(--teal-dark);transform:translateY(-1px)}.transaction-workspace-detail>header{border-left:4px solid var(--teal);border-radius:0 var(--radius-panel) var(--radius-panel) 0;padding:18px 20px;background:var(--field-surface);box-shadow:var(--shadow-panel)}.transaction-workspace-detail>header h2,.transaction-workspace-detail>header p:last-child{margin:0}.transaction-source-fields,.transaction-accounting-fields{border-color:var(--line);box-shadow:var(--shadow-panel)}.transaction-source-fields input[readonly],.transaction-source-fields textarea[readonly]{border-color:#dde6e3;color:var(--text-muted);background:#f3f7f5}@keyframes transaction-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1080px){.transaction-filter-panel .transaction-filters{grid-template-columns:repeat(2,minmax(150px,1fr))}.transaction-search-field{grid-column:1 / -1}}@media (prefers-reduced-motion: reduce){.transaction-table-card,.ytd-column-bar{animation:none}.transaction-open-button,.transaction-table tbody tr{transition:none}}@media (max-width: 720px){.transaction-assignment-row{grid-template-columns:1fr}.transaction-filter-heading{align-items:flex-start;flex-direction:column}.transaction-filter-panel .transaction-filters{grid-template-columns:1fr}.transaction-search-field{grid-column:auto}.ytd-column-chart{grid-template-columns:repeat(3,minmax(72px,1fr));overflow-x:auto}}.period-chip{display:inline-flex;align-items:center;gap:6px;margin-right:8px}.period-section{display:grid;gap:12px}.period-header{display:flex;align-items:center;gap:10px}.period-header h2,.transaction-row h3{margin:0;letter-spacing:0}.transaction-list{display:grid;gap:12px}.transaction-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:18px;border:1px solid var(--panel-border);border-radius:var(--radius-panel);padding:18px;background:var(--panel-surface);box-shadow:var(--shadow-panel)}.transaction-row dl,.transaction-row dd{margin:0}.transaction-row dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.transaction-row dt{color:var(--text-muted);font-size:.76rem;font-weight:700}.transaction-actions,.decision-form,.rule-builder{display:grid;gap:10px}.decision-form,.rule-builder{grid-template-columns:repeat(2,minmax(0,1fr))}.decision-form label,.rule-builder label{display:grid;gap:4px;color:var(--text-strong);font-size:.82rem;font-weight:700}.decision-form input,.decision-form select,.rule-builder input,.rule-builder select{min-width:0;min-height:var(--control-height);border:1px solid var(--field-border);border-radius:8px;padding:7px 9px}.checkbox-field{align-items:center;grid-template-columns:auto 1fr}.checkbox-field input{min-height:auto}.switch-field{align-items:center;grid-template-columns:auto 1fr}.switch-field input{width:36px;min-height:20px;accent-color:#2364aa}.shared-cost-editor{grid-column:1 / -1;min-width:0;container-type:inline-size;margin:0;border:1px solid var(--panel-border);border-radius:6px;padding:12px}.shared-cost-editor legend{padding:0 4px;color:var(--text-strong);font-size:.82rem;font-weight:700}.shared-parts-field{width:min(180px,100%);display:grid;gap:4px;color:var(--text-strong);font-size:.82rem;font-weight:700}.shared-parts-field input,.shared-allocation-row input,.shared-allocation-row select{min-width:0;min-height:34px;border:1px solid var(--panel-border);border-radius:6px;padding:6px 8px;background:var(--panel-surface)}.shared-allocation-list{display:grid;gap:8px;margin-top:12px}.shared-allocation-row{display:grid;grid-template-columns:36px minmax(104px,.55fr) minmax(0,1fr) minmax(72px,.45fr) minmax(0,116px);align-items:end;gap:8px}.shared-allocation-row label{min-width:0;display:grid;gap:4px;color:var(--text-strong);font-size:.82rem;font-weight:700}.shared-allocation-index{min-height:34px;display:flex;align-items:center;color:var(--text-muted);font-size:.8rem;font-weight:700}.shared-allocation-property-placeholder{min-width:0}.shared-allocation-row output{min-height:34px;display:flex;align-items:center;color:var(--text-strong);font-size:.88rem;font-variant-numeric:tabular-nums;font-weight:700}.shared-allocation-summary{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;color:var(--text-strong);font-size:.82rem;font-variant-numeric:tabular-nums;font-weight:700}@container (max-width: 440px){.shared-allocation-row{grid-template-columns:36px minmax(0,1fr) minmax(84px,112px)}.shared-allocation-row label:nth-of-type(1){grid-column:2 / -1}.shared-allocation-row label:nth-of-type(2),.shared-allocation-property-placeholder{grid-column:2 / 3}.shared-allocation-row output{grid-column:2 / -1}}@container (max-width: 340px){.shared-allocation-row{grid-template-columns:36px minmax(0,1fr)}.shared-allocation-row label:nth-of-type(1),.shared-allocation-row label:nth-of-type(2),.shared-allocation-row label:nth-of-type(3),.shared-allocation-property-placeholder,.shared-allocation-row output{grid-column:2}}.preview-count{align-self:center;color:#2364aa;font-weight:700}.year-comparison{display:grid;gap:16px}.year-comparison-section{border:1px solid var(--line);border-radius:var(--radius-panel);padding:20px;background:var(--field-surface);box-shadow:var(--shadow-panel)}.comparison-legend{display:flex;gap:8px;flex-wrap:wrap}.comparison-legend span{border-radius:999px;padding:4px 9px;color:var(--teal-dark);background:#e5f6f0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:800;display:inline-flex;align-items:center;gap:6px}.comparison-legend span:before{width:9px;height:9px;border-radius:50%;background:var(--series-color, var(--teal));content:""}.year-comparison-chart{min-height:300px;display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));align-items:end;gap:24px;padding:24px 8px 4px;background:repeating-linear-gradient(to top,transparent 0 54px,rgb(23 56 72 / 7%) 54px 55px)}.year-metric{min-width:0;display:grid;grid-template-rows:220px auto;gap:9px;color:var(--text-muted);font-size:.72rem;font-weight:800;text-align:center}.year-metric-bars{display:flex;align-items:stretch;justify-content:center;gap:6px}.year-bar-stage{width:min(36px,28%);height:100%;display:flex;flex-direction:column}.year-stage-half{min-height:0;display:flex}.year-stage-positive{align-items:flex-end;border-bottom:1px solid #9db1b4}.year-stage-negative{align-items:flex-start}.year-bar{width:100%;border-radius:5px 5px 1px 1px;background:var(--series-color, var(--teal));box-shadow:0 8px 18px #0f9f7a2e}.year-bar[data-direction=positive],.year-bar[data-direction=negative]{min-height:4px}.year-bar[data-direction=negative]{border-radius:1px 1px 5px 5px;box-shadow:0 -8px 18px #b862222e}.comparison-unavailable-list{display:grid;gap:8px}.comparison-unavailable{display:flex;align-items:center;gap:10px;border:1px solid #edc27f;border-radius:10px;padding:11px 13px;color:#5f3b05;background:#fff6e8}.comparison-unavailable div{display:grid;gap:2px}.comparison-unavailable span{font-size:.78rem}.year-comparison-table-wrap{overflow-x:auto;border-radius:var(--radius-panel);box-shadow:var(--shadow-panel)}.year-comparison-table th:not(:first-child),.year-comparison-table td{text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 760px){.app-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.sidebar{position:static;height:auto;min-height:auto;overflow:visible;display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand theme user" "nav nav nav";align-items:center;gap:10px;padding:10px 12px;box-shadow:0 10px 26px #091f2b2e}.brand-mark{grid-area:brand;height:auto;padding:0}.sidebar nav{grid-area:nav;display:flex;flex-wrap:wrap;gap:4px}.nav-button{width:auto;height:36px;border-left:0;border-bottom:3px solid transparent;padding:0 10px}.nav-button:hover,.nav-button.is-active{border-left-color:transparent;border-bottom-color:#35d0aa}.theme-toggle{grid-area:theme;margin-top:0}.user-panel{grid-area:user;grid-template-columns:36px;border-top:0;padding-top:0}.user-panel>div{display:none}.transaction-accounting-controls>label,.reporting-period-field label{flex:1 1 150px;width:auto}.reporting-period-field{flex-wrap:wrap}.content-shell{padding:20px}.kpi-grid,.chart-row,.transaction-row,.decision-form,.rule-builder{grid-template-columns:1fr}.report-control-rail,.year-controls,.section-heading{align-items:stretch;flex-direction:column}.year-comparison-chart{grid-template-columns:repeat(2,minmax(120px,1fr))}.ytd-column-chart{min-width:820px}.dashboard-section:has(.ytd-column-chart){overflow-x:auto}}
