:root{color-scheme:light;--bg: #f5f2ea;--surface: #fffdfa;--surface-2: #f0ece3;--text: #253128;--muted: #667267;--line: #ddd5c8;--olive: #64715f;--olive-soft: #e4ebe0;--success: #dff0df;--warning: #f8e8cb;--shadow: 0 8px 22px rgba(37, 49, 40, .08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,select,input,textarea{font:inherit}input[type=checkbox]{width:18px;height:18px;accent-color:var(--olive)}.shell{max-width:1560px;margin:0 auto;padding:20px}.shell-wide.shell-movements{max-width:1780px}.hero{display:flex;justify-content:space-between;gap:16px;align-items:center;background:linear-gradient(180deg,#fcfbf7,#f2eee5);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow)}.hero-finance{background:radial-gradient(circle at top left,rgba(100,113,95,.14),transparent 34%),linear-gradient(180deg,#fcfbf7,#f2eee5)}.hero-brand{display:flex;align-items:center;gap:16px;min-width:0}.hero-logo{width:56px;height:56px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#edf3ea,#dfe8d8);color:var(--olive);border:1px solid #ccd8c7;box-shadow:inset 0 1px #ffffffbf;flex:0 0 auto}.hero-logo svg{width:30px;height:30px}.hero-copy{display:grid;gap:4px;min-width:0}.hero-kicker{color:var(--olive);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}h1,h2{margin:0}.hero-copy h1{font-size:clamp(30px,4vw,42px);line-height:1.05}.hero-meta,.tabs,.panel-header,.account-card-top,.mini-row,.stats-grid,.two-col,.filters-grid,.review-summary-row,.search-inline,.cluster-meta,.cluster-head,.batch-left{display:flex;gap:12px}.mini-inline,.panel-actions-wrap,.source-actions,.banner-row,.card-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-meta,.tabs,.review-summary-row{flex-wrap:wrap}.tabs{margin:18px 0}.tabs button,.ghost-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:10px 14px;border-radius:999px;cursor:pointer}.tabs button.active{background:var(--olive);color:#fff;border-color:var(--olive)}.ghost-btn:hover{background:var(--surface-2)}.primary-ghost{background:#e8efe6;border-color:#cbd7c6}.primary-ghost:hover{background:#dde8da}.danger-btn{border-color:#e5c3bb;color:#8a3f35}.danger-btn:hover{background:#fbefec}.file-btn{position:relative;overflow:hidden}.file-btn input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.stack{display:grid;gap:16px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow);min-width:0}.panel-header{justify-content:space-between;align-items:center;margin-bottom:14px}.batch-header{align-items:flex-start;gap:16px}.batch-left{align-items:center;flex-wrap:wrap}.panel-actions-wrap{justify-content:flex-end}.cards-grid,.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.menu-card{display:grid;gap:14px;padding:18px;background:var(--surface-2);border:1px solid var(--line);border-radius:18px}.menu-card-copy{display:grid;gap:8px}.merchant-helper-line{color:#4b6150;font-size:12px;line-height:1.4}.review-enrichment-input{width:100%;min-width:220px;border:1px solid #d7dfd3;border-radius:10px;padding:7px 10px;font:inherit;font-size:13px;background:#fbfcfa;color:#1f2a20}.review-enrichment-input:focus{outline:none;border-color:#93b08a;box-shadow:0 0 0 3px #93b08a24}.menu-card h3,.menu-card p{margin:0}.stats-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.account-card,.stat-card,.account-config-card{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:14px}.account-config-card{display:grid;gap:12px}.account-edit-card{background:var(--surface-2)}.account-edit-row td{padding:0;background:#fcfaf5}.account-edit-row .account-config-card{border:0;border-radius:0;box-shadow:none;padding:16px}.account-read-grid{display:grid;gap:8px}.account-notes-readonly{display:grid;gap:4px;margin-top:4px}.account-notes-readonly p{margin:0}.account-card-top{justify-content:space-between;align-items:center;margin-bottom:10px}.mini-row{justify-content:space-between;margin-bottom:6px;color:var(--muted)}.stat-value{display:block;font-size:22px;line-height:1.15;margin:6px 0 4px}.muted{color:var(--muted)}.small{font-size:13px}.config-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.account-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.account-form-grid label{display:grid;gap:8px;color:var(--muted);font-size:13px}.account-form-grid input,.account-form-grid select,.account-form-grid textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--text)}.account-form-grid textarea{resize:vertical;min-height:72px}.pillar-create-grid{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:end}.inline-panel{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:14px}.category-create-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.category-create-grid label{display:grid;gap:8px;color:var(--muted);font-size:13px}.category-create-grid input,.category-create-grid select{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--text)}.pillar-create-grid label{display:grid;gap:8px;color:var(--muted);font-size:13px}.pillar-create-grid input,.inline-input{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--text)}.category-name-edit,.category-title-row{display:flex;align-items:center;gap:8px}.category-indent{color:var(--muted);min-width:16px;font-weight:700}.category-child-row td:first-child{background:#fcfaf5}.category-readonly-name{gap:2px}.category-readonly-name strong{line-height:1.35}.icon-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px}.icon-btn:hover{background:var(--surface-2)}.primary-icon{color:#2f6945;border-color:#cfe0cb;background:#e8efe6}.primary-icon:hover{background:#dde8da}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.success-icon{color:#2f6945;border-color:#cfe0cb}.danger-icon{color:#8a3f35;border-color:#e5c3bb}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c231d61;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal-card{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 24px 64px #141c162e;padding:20px}.source-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.source-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}.compact-list li{padding:12px 14px}.cluster-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.clusters-wide{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.cluster-card{text-align:left;border:1px solid var(--line);background:var(--surface-2);border-radius:16px;padding:14px;cursor:pointer;display:grid;gap:10px}.cluster-card:hover{background:#ece6da}.cluster-head{justify-content:space-between;align-items:flex-start;gap:8px}.cluster-title{font-size:14px;line-height:1.4;word-break:break-word}.cluster-meta{display:grid;gap:8px}.cluster-action{font-size:13px;font-weight:600;color:var(--olive);padding-top:4px;border-top:1px solid var(--line)}.two-col{display:grid;grid-template-columns:1.2fr .8fr}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.stats-grid-4{grid-template-columns:repeat(4,1fr)}.stat-card span{display:block;color:var(--muted);margin-bottom:8px;font-size:13px}.stat-card strong{font-size:24px}.chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;border:1px solid transparent}.chip-default{background:#ece8df;color:#4f5a50}.chip-success{background:var(--success);color:#305a34}.chip-warning{background:var(--warning);color:#7b5520}.chip-olive{background:var(--olive-soft);color:var(--olive)}.filters-panel{padding-bottom:14px}.filters-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.movement-filters-grid,.analysis-filters-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:end}.analysis-compare-filters-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.filters-grid label,.filters-search-row label{display:grid;gap:8px;color:var(--muted);font-size:13px}.filters-search-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;margin-top:12px}.preset-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}.filters-grid select,.filters-grid input,.review-table select{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--text)}.filter-inline-pair{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.filter-operator-select{min-width:0}.review-insights-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px}.analysis-grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.analysis-account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.analysis-filter-actions{display:flex;gap:10px;align-items:end;justify-content:flex-end;flex-wrap:wrap}.review-select,.review-type-select,.review-category-select,.review-account-select,.review-status-select,.search-field{min-width:0}.search-field-wide{width:min(100%,680px)}.search-inline{align-items:center;width:100%;min-width:0}.search-inline input{flex:1 1 auto;min-width:0;min-height:46px;padding:12px 14px;border-radius:14px;line-height:1.35}.search-inline .ghost-btn{white-space:nowrap}.bulk-editor{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:12px;min-width:0;width:100%;max-width:100%}.bulk-editor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.bulk-grid{display:grid;grid-template-columns:1.3fr 1.4fr 1fr auto;gap:10px;align-items:end}.bulk-grid label{display:grid;gap:8px;color:var(--muted);font-size:13px}.bulk-actions-row{display:flex;justify-content:flex-end;margin-top:10px}.learn-banner{margin:12px 0 0;padding:12px 14px;border-radius:14px;font-size:14px}.success-banner{background:#edf6ec;border:1px solid #cfe0cb;color:#2e5633}.error-banner{background:#fbefec;border:1px solid #ebc9c2;color:#7f3a2d}.warning-banner{background:#faf1dc;border:1px solid #ead8af;color:#745521}.neutral-banner{background:#f1eee7;border:1px solid #ddd5c8;color:#59655c}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.table-wrap-compact table{min-width:0;table-layout:auto}.table-wrap-compact th,.table-wrap-compact td{white-space:normal}.ibkr-filter-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ibkr-table-stack{display:grid;gap:18px}.ibkr-table-block{display:grid;gap:10px}.ibkr-detail-modal{width:min(1180px,100%)}.ibkr-detail-stack{display:grid;gap:18px}.analysis-matrix-wrap table{min-width:760px}.heat-cell{display:block;min-width:92px;padding:8px 10px;border-radius:10px;text-align:right;color:#2f312a}.analysis-chart-shell{display:grid;gap:16px}.analysis-chart-legend{display:flex;flex-wrap:wrap;gap:10px 14px}.analysis-legend-item{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.analysis-legend-dot{width:12px;height:12px;border-radius:999px;flex:0 0 auto}.analysis-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;align-items:end;min-height:320px}.analysis-month-col{display:grid;gap:10px}.analysis-bar-stack{height:240px;display:flex;flex-direction:column-reverse;justify-content:flex-start;border-radius:16px 16px 10px 10px;overflow:hidden;background:#f3eee4;border:1px solid var(--line)}.analysis-bar-segment{width:100%;min-height:2px}.analysis-month-meta{display:grid;gap:2px;text-align:center}.analysis-month-meta strong{font-size:13px}.analysis-month-meta span{color:var(--muted);font-size:12px}.ingestion-account-row td{background:#fff}.row-icon-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap}.ingestion-detail-row td{padding:0;background:#fcfaf5}.ingestion-detail-card{display:grid;gap:14px;padding:16px}.ingestion-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.ingestion-loads-wrap table{min-width:920px}.ingestion-empty-state{display:grid;gap:4px;padding:14px;background:#fff;border:1px dashed var(--line);border-radius:14px}.ingestion-create-panel{display:grid;gap:12px}.ingestion-create-grid{display:grid;grid-template-columns:1fr 220px 1.2fr auto;gap:12px;align-items:end}.ingestion-create-grid label,.ingestion-file-field{display:grid;gap:8px;color:var(--muted);font-size:13px}.ingestion-file-btn{justify-content:center}.ingestion-create-actions{display:flex;align-items:end}table{width:100%;border-collapse:collapse;min-width:960px;background:#fff}.review-table{width:100%;min-width:0;table-layout:fixed}th,td{padding:12px 10px;border-bottom:1px solid #eee7da;text-align:left;vertical-align:top;font-size:14px}tr.is-selected{background:#f4efe5}th{position:sticky;top:0;background:#faf7f0;color:var(--muted);font-weight:700}.bulk-account-row{margin-top:10px}.bulk-account-row label{display:grid;gap:8px;color:var(--muted);font-size:13px}.bulk-account-row select{width:100%;max-width:440px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;color:var(--text)}.bulk-account-hint{margin-top:8px}.desc-cell{min-width:0;width:29%;max-width:none}.review-account-cell{min-width:0}.review-account-hint{font-size:12px;line-height:1.25}.review-account-hint.is-required{color:#8a5a12}.review-account-hint.is-resolved{color:var(--muted)}.cell-stack{display:grid;gap:4px}.neg{color:#8a2f2f}.pos{color:#2f6945}.loading{padding:40px 20px;color:var(--muted)}.review-summary-row{margin-top:14px}.analysis-compare-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.panel-header.batch-header{display:grid;grid-template-columns:1fr;align-items:start}.panel-header.batch-header>*{min-width:0}.batch-left{min-width:0}.table-wrap{width:100%;max-width:100%;min-width:0}.review-table td,.review-table th{white-space:normal;overflow-wrap:anywhere}.review-table .review-enrichment-input,.review-table .review-select{width:100%;max-width:100%;min-width:0}.review-table th:nth-child(1),.review-table td:nth-child(1){width:44px}.review-table th:nth-child(2),.review-table td:nth-child(2){width:92px}.review-table th:nth-child(3),.review-table td:nth-child(3){width:150px}.review-table th:nth-child(5),.review-table td:nth-child(5){width:112px}.review-table th:nth-child(6),.review-table td:nth-child(6){width:170px}.review-table th:nth-child(7),.review-table td:nth-child(7){width:210px}.review-table th:nth-child(8),.review-table td:nth-child(8){width:230px}.review-table th:nth-child(9),.review-table td:nth-child(9){width:86px}.review-table th:nth-child(10),.review-table td:nth-child(10){width:112px}@media (max-width: 980px){.hero,.two-col,.stats-grid,.stats-grid-4,.filters-grid,.movement-filters-grid,.analysis-filters-grid,.analysis-compare-filters-grid,.ibkr-filter-grid,.review-insights-grid,.analysis-grid-two,.analysis-compare-grid,.bulk-grid,.account-form-grid,.ingestion-create-grid{grid-template-columns:1fr;display:grid}.filters-search-row,.panel-header.batch-header{grid-template-columns:1fr}.search-field-wide{width:100%}.search-inline input{min-width:0}.analysis-filter-actions{justify-content:stretch}.analysis-filter-actions .ghost-btn{flex:1 1 auto}.analysis-chart{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.filter-inline-pair,.pillar-create-grid,.category-create-grid{grid-template-columns:1fr}.shell{padding:14px}.hero{padding:18px;align-items:flex-start}.hero-brand{align-items:flex-start}.hero-copy h1,h1{font-size:28px}.modal-backdrop{align-items:flex-end;padding:0}.modal-card{width:100%;max-height:92vh;border-radius:22px 22px 0 0;padding:18px}}
