:root{--bg-primary: #FAFAF8;--bg-secondary: #FFFFFF;--bg-tertiary: #F4F3F0;--bg-card: #FFFFFF;--bg-hover: #F0EFEC;--bg-input: #FFFFFF;--border-subtle: #E8E6E1;--border-medium: #D4D1CA;--border-strong: #B8B4AD;--text-primary: #1B1B1E;--text-secondary: #4A4A50;--text-tertiary: #7A7A82;--text-muted: #A8A8B0;--teal: #2D6A4F;--teal-dim: rgba(45,106,79,.08);--teal-glow: rgba(45,106,79,.15);--amber: #D97706;--amber-dim: rgba(217,119,6,.08);--coral: #DC2626;--coral-dim: rgba(220,38,38,.06);--blue: #2563EB;--blue-dim: rgba(37,99,235,.08);--purple: #7C3AED;--accent: #2D6A4F;--chart-1: #2D6A4F;--chart-2: #2563EB;--chart-3: #D97706;--chart-4: #7C3AED;--chart-5: #DC2626;--chart-6: #059669;--font-display: "Instrument Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-panel: 0 1px 3px rgba(0,0,0,.04), 0 0 0 1px rgba(0,0,0,.04);--shadow-card: 0 1px 2px rgba(0,0,0,.03), 0 0 0 1px rgba(0,0,0,.03);--shadow-elevated: 0 4px 16px rgba(0,0,0,.08), 0 0 0 1px rgba(0,0,0,.04)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-display);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.app-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.top-bar{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);box-shadow:0 1px 2px #00000008;flex-shrink:0;z-index:100}.top-bar-left{display:flex;align-items:center;gap:16px}.app-logo{font-family:var(--font-mono);font-weight:600;font-size:13px;letter-spacing:.08em;color:var(--teal);text-transform:uppercase}.calculating-indicator{font-size:11px;color:var(--text-tertiary);font-style:italic;animation:calc-pulse 1.5s ease-in-out infinite}@keyframes calc-pulse{0%,to{opacity:.5}50%{opacity:1}}.top-bar-center{display:flex;align-items:center;gap:8px}.top-bar-right{display:flex;align-items:center;gap:6px}.topbar-action-btn{font-family:var(--font-display);font-size:12px;font-weight:500;height:32px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-tertiary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.topbar-action-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-medium)}.topbar-dropdown{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);z-index:200;overflow:hidden;animation:fadeIn .1s ease}.topbar-dropdown-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:10px 14px;border:none;background:none;text-align:left;cursor:pointer;transition:background .1s ease;font-family:var(--font-display);font-size:13px;color:var(--text-primary)}.topbar-dropdown-item:hover{background:var(--bg-hover)}.topbar-dropdown-item+.topbar-dropdown-item{border-top:1px solid var(--border-subtle)}.scenario-select{font-family:var(--font-display);font-size:14px;font-weight:500;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;outline:none;min-width:160px;height:32px}.scenario-select:focus{border-color:var(--teal)}.scenario-select option{background:var(--bg-secondary);color:var(--text-primary)}.btn{font-family:var(--font-display);font-size:13px;font-weight:500;height:32px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.btn-primary{background:var(--teal);color:#fff;border-color:var(--teal);font-weight:600}.btn-primary:hover{background:#245a43;border-color:#245a43;color:#fff}.btn-danger{color:var(--coral);border-color:#dc262640}.btn-danger:hover{background:var(--coral-dim);border-color:var(--coral)}.btn-sm{font-size:12px;height:28px;padding:0 10px}.btn-icon{padding:0 8px;display:inline-flex;align-items:center;gap:4px}.icon-btn{font-family:var(--font-display);font-size:13px;font-weight:500;width:32px;height:32px;padding:0;border-radius:var(--radius-sm);border:1px solid var(--border-medium);background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.tab-nav{display:flex;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);padding:0 24px;flex-shrink:0}.tab-item{font-family:var(--font-display);font-size:13px;font-weight:500;color:var(--text-tertiary);padding:12px 20px;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s ease;background:none;border-top:none;border-left:none;border-right:none}.tab-item:hover{color:var(--text-secondary)}.tab-item.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:600}.content-with-chat{display:flex;flex:1;overflow:hidden}.main-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 24px 24px;min-width:0}.panel{background:var(--bg-card);border:none;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-panel)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-subtle)}.panel-title{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.panel-body{padding:24px}.pill-toggle{display:inline-flex;background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px;gap:2px}.pill-option{font-family:var(--font-display);font-size:11px;font-weight:500;padding:4px 12px;border-radius:3px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.pill-option:hover{color:var(--text-secondary)}.pill-option.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:0 1px 2px #0000000d}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);text-align:left;padding:10px 12px;border-bottom:2px solid var(--border-medium);position:sticky;top:0;background:var(--bg-tertiary);z-index:2;white-space:nowrap}.data-table th.num{text-align:right}.data-table td{padding:5px 12px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);white-space:nowrap}.data-table td.num{text-align:right;font-family:var(--font-mono);font-size:12px}.data-table td.negative{color:var(--coral);background:var(--coral-dim)}.data-table td.positive{color:var(--teal)}.data-table td.muted{color:var(--text-tertiary)}.data-table tr:hover td{background:var(--bg-hover)}.data-table tr.total-row td{font-weight:600;border-top:2px solid var(--border-medium);background:var(--bg-tertiary);color:var(--text-primary)}.data-table tr.total-row td:first-child{box-shadow:inset 3px 0 0 var(--teal)}.data-table tr.subtotal-row td{font-weight:500;color:var(--text-secondary);background:#00000004;border-top:1px solid var(--border-medium)}.data-table tr.dept-header td{font-weight:600;font-size:12px;color:var(--text-primary);background:#eceae6;padding:6px 12px;border-top:6px solid var(--bg-card);border-bottom:1px solid var(--border-medium);letter-spacing:.02em;box-shadow:inset 0 1px 0 0 var(--border-medium)}.data-table tr.dept-header td{vertical-align:middle}.data-table tr.dept-header:hover td{background:#e5e3de}.data-table tr.dept-last td{box-shadow:inset 0 -1px 0 0 var(--border-medium)}.table-scroll .data-table tr.dept-last td:first-child{box-shadow:inset 0 -1px 0 0 var(--border-medium),2px 0 4px #0000000a}.data-table tr.cost-breakdown td{font-weight:500;font-size:12px;color:var(--text-secondary);background:#f5f4f1;border-top:none;padding:6px 12px}.data-table tr.cost-breakdown td:first-child,.data-table tr.cost-breakdown td.sticky-col{padding-left:16px;font-style:italic}.expand-arrow{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--radius-sm);color:var(--text-tertiary);transition:transform .15s ease;vertical-align:middle;margin-right:4px;flex-shrink:0}.expand-arrow.open{transform:rotate(90deg)}.table-scroll{overflow-x:auto;overflow-y:clip}.table-scroll .data-table thead{position:relative;z-index:5;will-change:transform}.table-scroll .data-table thead.stuck{box-shadow:0 2px 6px #0000001a}.table-scroll .data-table thead th{background:var(--bg-tertiary)}.table-scroll .data-table th:first-child{position:sticky;left:0;background:var(--bg-tertiary);z-index:6;min-width:180px;border-right:2px solid var(--border-medium)}.table-scroll .data-table td:first-child{position:sticky;left:0;background:var(--bg-card);z-index:3;min-width:180px;border-right:2px solid var(--border-medium);box-shadow:2px 0 4px #0000000a}.table-scroll .data-table tr:hover td:first-child{background:var(--bg-hover)}.table-scroll .data-table tr.total-row td:first-child{background:var(--bg-tertiary);box-shadow:inset 3px 0 0 var(--teal),2px 0 4px #0000000a}.table-scroll .data-table tr.dept-header td:first-child{background:#eceae6;box-shadow:inset 0 1px 0 0 var(--border-medium),2px 0 4px #0000000a}.table-scroll .data-table tr.cost-breakdown td:first-child{background:#f5f4f1}.data-table th.summary-col{background:#eceae6;border-left:2px solid var(--border-medium);font-weight:700}.data-table td.summary-col{background:#f5f4f0;border-left:2px solid var(--border-medium);font-weight:600}.data-table tr:hover td.summary-col{background:var(--bg-hover)}.data-table tr.total-row td.summary-col{background:#e8e6e0}.data-table tr.subtotal-row td.summary-col{background:#eceae6}.data-table tr.dept-header td.summary-col{background:#e5e3de}.data-table tr.cost-breakdown td.summary-col{background:#eeecea}.table-scroll .data-table th+th{border-left:1px solid var(--border-subtle)}.table-scroll .data-table td+td{border-left:1px solid var(--border-subtle)}.table-scroll .data-table th.quarter-start,.table-scroll .data-table td.quarter-start{border-left:2px solid var(--border-medium)}.data-table tr.section-header td{font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-primary);background:#ddd9d1;border-top:14px solid var(--bg-card);padding:10px 12px 6px}.data-table tbody:first-of-type tr.section-header td{border-top:none}.table-scroll .data-table tr.section-header td:first-child{background:#ddd9d1}.data-table tr.section-header td.summary-col{background:#d5d1c9}.page-toggle-bar{display:flex;justify-content:space-between;align-items:center;padding:24px 0 12px;margin-bottom:4px;position:sticky;top:0;z-index:10;background:var(--bg-primary)}.page-toggle-bar .add-buttons{display:flex;gap:8px;flex-wrap:wrap}.field-group{display:flex;flex-direction:column;gap:4px}.field-label{font-size:11px;font-weight:500;color:var(--text-tertiary);letter-spacing:.04em}.field-input{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:0 10px;outline:none;transition:border-color .15s ease;width:100%;height:32px}.field-input:focus{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-dim)}.field-input::placeholder{color:var(--text-muted)}.field-row{display:flex;gap:16px;align-items:flex-end}.editable-cell{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:2px;padding:2px 4px;width:80px;text-align:right;outline:none;transition:all .15s ease}.editable-cell:hover{border-color:var(--border-medium);background:var(--bg-primary)}.editable-cell:focus{border-color:var(--teal);background:var(--bg-input);box-shadow:0 0 0 2px var(--teal-dim)}.toggle{position:relative;width:36px;height:20px;cursor:pointer;display:inline-block}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;inset:0;background:var(--border-medium);border:1px solid var(--border-medium);border-radius:10px;transition:all .2s ease}.toggle input:checked+.toggle-track{background:var(--teal);border-color:var(--teal)}.toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:all .2s ease;pointer-events:none;box-shadow:0 1px 2px #0000001a}.toggle input:checked~.toggle-thumb{left:19px;background:#fff}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px}.grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:16px}.split-panel{display:grid;grid-template-columns:55% 45%;gap:24px;align-items:start}.section{margin-bottom:32px}.section-title{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:16px;display:flex;align-items:center;gap:8px}.modal-overlay{position:fixed;inset:0;background:#0003;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.modal{background:var(--bg-secondary);border:none;border-radius:var(--radius-lg);width:90vw;max-width:600px;max-height:85vh;animation:slideUp .2s ease;box-shadow:var(--shadow-elevated);display:flex;flex-direction:column;overflow:hidden}.modal-lg{max-width:1100px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.modal-title{font-size:16px;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;color:var(--text-tertiary);font-size:20px;cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.modal-close:hover{color:var(--text-primary);background:var(--bg-hover)}.modal-body{padding:24px;overflow-y:auto;flex:1;min-height:0}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.type-choice-card{flex:1;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:20px;cursor:pointer;text-align:left;color:var(--text-primary);transition:all .15s ease}.type-choice-card:hover{border-color:var(--teal);background:var(--teal-dim)}.sticky-col{position:sticky;left:0;background:inherit;z-index:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.chart-container{width:100%;height:300px;padding:16px 0}.chart-container-sm{height:200px}.month-strip{display:flex;gap:1px;overflow-x:auto;padding:8px 0;background:var(--border-subtle);border-radius:var(--radius-sm)}.month-cell{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:6px 4px;background:var(--bg-card)}.month-cell-label{font-size:9px;font-weight:600;color:var(--text-tertiary);letter-spacing:.05em;margin-bottom:4px}.month-cell-input{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:2px;width:48px;text-align:center;padding:4px 2px;outline:none;height:28px}.month-cell-input:focus{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-dim)}.deal-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden;margin-bottom:8px;transition:all .15s ease;box-shadow:var(--shadow-card)}.deal-card:hover{border-color:var(--border-medium);box-shadow:var(--shadow-panel)}.deal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;background:var(--bg-primary)}.deal-name{font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.deal-body{padding:16px;border-top:1px solid var(--border-subtle)}.deal-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.deal-indicator.active{background:var(--teal);box-shadow:0 0 6px var(--teal-glow)}.milestone-card{padding:16px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);box-shadow:var(--shadow-card)}.milestone-label{font-size:11px;color:var(--text-tertiary);font-weight:500;margin-bottom:4px}.milestone-value{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--text-primary)}.milestone-value.not-reached{color:var(--text-muted);font-style:italic}.checkpoint-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.checkpoint-card{padding:10px 12px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-card)}.checkpoint-label{font-size:10px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.checkpoint-value{font-family:var(--font-mono);font-size:15px;font-weight:500}.compare-overlay{position:fixed;inset:0;background:var(--bg-primary);z-index:900;display:flex;flex-direction:column;animation:fadeIn .2s ease}.compare-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);box-shadow:0 1px 2px #00000008}.compare-body{flex:1;overflow-y:auto;padding:24px}.diff-table td.changed{background:var(--amber-dim)}.fundraise-row{display:flex;align-items:center;gap:16px;padding:8px 16px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:8px}.schedule-box{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.schedule-box .data-table th{background:var(--bg-tertiary)}.schedule-box .data-table tr:hover td{background:var(--bg-hover)}.empty-state{text-align:center;padding:48px;color:var(--text-tertiary);font-size:13px}.row-actions{opacity:0;transition:opacity .15s ease}tr:hover .row-actions,.deal-card:hover .row-actions{opacity:1}.delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 4px;border-radius:var(--radius-sm)}.delete-btn:hover{color:var(--coral);background:var(--coral-dim)}.reorder-btns{display:inline-flex;flex-direction:column;vertical-align:middle;line-height:0}.reorder-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0;line-height:0;border-radius:var(--radius-sm);display:block;height:10px}.reorder-btn:hover{color:var(--teal)}.reorder-btn:disabled{opacity:0;cursor:default;pointer-events:none}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.text-mono{font-family:var(--font-mono)}.text-right{text-align:right}.w-full{width:100%}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:var(--border-subtle)!important}.recharts-text{font-family:var(--font-mono)!important;font-size:10px!important;fill:var(--text-tertiary)!important}.custom-tooltip{background:var(--bg-secondary)!important;border:1px solid var(--border-medium)!important;border-radius:var(--radius-sm)!important;padding:8px 12px!important;font-family:var(--font-mono);font-size:12px;box-shadow:var(--shadow-elevated);color:var(--text-primary)}.custom-tooltip .label{color:var(--text-secondary);margin-bottom:4px;font-size:11px}.custom-select-wrapper{position:relative;width:100%}.custom-select-trigger{display:flex!important;align-items:center;justify-content:space-between;cursor:pointer;text-align:left;gap:8px;font-family:var(--font-display)!important}.custom-select-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-label.placeholder{color:var(--text-muted)}.custom-select-chevron{flex-shrink:0;display:inline-flex;align-items:center;color:var(--text-tertiary);transition:transform .15s ease;transform:rotate(90deg)}.custom-select-chevron.open{transform:rotate(-90deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-elevated);z-index:1100;max-height:240px;overflow-y:auto;animation:fadeIn .1s ease}.custom-select-option{padding:7px 12px;font-size:13px;font-family:var(--font-display);color:var(--text-primary);cursor:pointer;transition:background .1s ease}.custom-select-option:hover{background:var(--bg-hover)}.custom-select-option.selected{background:var(--teal-dim);color:var(--teal);font-weight:500}.metric-label{display:inline-flex;align-items:center;gap:4px}.metric-info{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--border-subtle);color:var(--text-tertiary);font-size:9px;font-weight:700;font-family:var(--font-mono);cursor:default;position:relative;flex-shrink:0;line-height:1}.metric-info:hover{background:var(--border-medium);color:var(--text-secondary)}.metric-info .metric-tip{display:none;position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--bg-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:8px 10px;font-size:11px;font-weight:400;font-family:var(--font-display);color:var(--text-secondary);white-space:nowrap;box-shadow:var(--shadow-elevated);z-index:100;pointer-events:none;line-height:1.5}.metric-info .metric-tip strong{color:var(--text-primary);font-weight:600}.metric-info:hover .metric-tip{display:block}.metric-info:hover{z-index:20}.data-table tr:has(.metric-info:hover) td:first-child{z-index:20}.data-table th.actual-month{background:#2563eb12}.data-table td.actual-month{background:#2563eb0a}.data-table tr:hover td.actual-month{background:#2563eb14}.data-table tr.total-row td.actual-month{background:#2563eb1a}.data-table tr.subtotal-row td.actual-month{background:#2563eb0f}.data-table th.actual-month:has(+th:not(.actual-month)),.data-table td.actual-month:has(+td:not(.actual-month)){border-right:2px solid rgba(37,99,235,.35)}.data-table tr.unmapped-row td{color:var(--amber);background:var(--amber-dim)}.data-table tr.unmapped-row td:first-child{font-weight:500}.mapping-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.mapping-badge.mapped{background:var(--teal-dim);color:var(--teal)}.mapping-badge.unmapped{background:var(--amber-dim);color:var(--amber)}.mapping-badge.ignored{background:var(--bg-tertiary);color:var(--text-tertiary)}.actuals-status-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 24px;background:#2563eb0d;border-bottom:1px solid rgba(37,99,235,.15);flex-shrink:0}.actuals-status-left,.actuals-status-right{display:flex;align-items:center;gap:8px}.actuals-badge{font-size:11px;font-weight:600;color:var(--blue);padding:2px 8px;background:#2563eb14;border-radius:10px}.actuals-unmapped-badge{font-size:11px;font-weight:500;color:var(--amber);padding:2px 8px;background:var(--amber-dim);border-radius:10px;cursor:pointer}.actuals-unmapped-badge:hover{background:#d9770626}.login-container{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary)}.login-card{width:100%;max-width:360px;padding:32px;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated)}.login-header{text-align:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary);font-size:13px;color:var(--text-tertiary)}.model-selector{min-height:100vh;background:var(--bg-primary);display:flex;flex-direction:column}.model-selector-header{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-subtle);box-shadow:0 1px 2px #00000008}.model-selector-body{max-width:600px;width:100%;margin:48px auto;padding:0 24px}.model-list{display:flex;flex-direction:column;gap:8px}.model-card{display:block;width:100%;text-align:left;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-card);font-family:var(--font-display);color:var(--text-primary)}.model-card:hover{border-color:var(--teal);background:var(--teal-dim);box-shadow:var(--shadow-panel)}.topbar-action-btn-active{background:var(--teal-dim);border-color:var(--teal);color:var(--teal);font-weight:600}.feedback-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;text-align:center;color:#fff;background:var(--coral);border-radius:8px}.feedback-card{padding:14px 16px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-secondary)}.feedback-category{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.feedback-status{font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px}.feedback-status-open{color:var(--teal);background:var(--teal-dim)}.feedback-status-closed{color:var(--text-muted);background:var(--bg-tertiary)}.topbar-chat-btn.topbar-action-btn{background:var(--teal-dim);border-color:var(--teal);color:var(--teal)}.topbar-chat-btn.topbar-action-btn:hover{background:var(--teal-glow);color:var(--teal)}.chat-panel{display:flex;flex-direction:column;border-left:1px solid var(--border-subtle);background:var(--bg-secondary);height:100%;position:relative;flex-shrink:0}.chat-resize-handle{position:absolute;left:-3px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:10}.chat-resize-handle:hover,.chat-resize-handle:active{background:var(--teal-glow)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.chat-header-left{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-primary)}.chat-header-left svg{color:var(--teal)}.chat-header-actions{display:flex;gap:4px}.chat-header-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all .15s ease}.chat-header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:8px;padding:24px 16px}.chat-empty-icon{opacity:.4;margin-bottom:4px}.chat-empty-title{font-size:14px;font-weight:600;color:var(--text-primary)}.chat-empty-subtitle{font-size:12px;color:var(--text-tertiary);text-align:center}.chat-suggestions{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:12px}.chat-suggestion{font-family:var(--font-display);font-size:12px;color:var(--text-secondary);text-align:left;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;transition:all .15s ease;line-height:1.4}.chat-suggestion:hover{border-color:var(--teal);background:var(--teal-dim);color:var(--text-primary)}.chat-suggestion:disabled{opacity:.5;cursor:not-allowed}.chat-msg{display:flex;flex-direction:column;gap:8px}.chat-msg-user .chat-msg-content{align-self:flex-end;background:var(--teal);color:#fff;padding:10px 14px;border-radius:16px 16px 4px;font-size:13px;line-height:1.5;max-width:90%;word-wrap:break-word}.chat-msg-assistant .chat-msg-content{background:var(--bg-tertiary);color:var(--text-primary);padding:10px 14px;border-radius:16px 16px 16px 4px;font-size:13px;line-height:1.5;max-width:95%;word-wrap:break-word}.chat-msg-assistant .chat-msg-content h1,.chat-msg-assistant .chat-msg-content h2,.chat-msg-assistant .chat-msg-content h3,.chat-msg-assistant .chat-msg-content h4{font-size:13px;font-weight:700;margin:12px 0 4px;line-height:1.3}.chat-msg-assistant .chat-msg-content h3{color:var(--teal)}.chat-msg-assistant .chat-msg-content p{margin:4px 0}.chat-msg-assistant .chat-msg-content ul,.chat-msg-assistant .chat-msg-content ol{margin:4px 0;padding-left:20px}.chat-msg-assistant .chat-msg-content li{margin:2px 0}.chat-msg-assistant .chat-msg-content hr{border:none;border-top:1px solid var(--border-subtle);margin:10px 0}.chat-msg-assistant .chat-msg-content code{font-family:var(--font-mono);font-size:12px;background:#0000000f;padding:1px 5px;border-radius:3px}.chat-msg-assistant .chat-msg-content pre{background:#0000000a;padding:8px 10px;border-radius:var(--radius-sm);overflow-x:auto;margin:6px 0}.chat-msg-assistant .chat-msg-content pre code{background:none;padding:0}.chat-msg-assistant .chat-msg-content strong{font-weight:600}.chat-msg-assistant .chat-msg-content table{border-collapse:collapse;width:max-content;min-width:100%;margin:8px 0;font-size:12px}.chat-msg-assistant .chat-msg-content{overflow-x:auto}.chat-msg-assistant .chat-msg-content th,.chat-msg-assistant .chat-msg-content td{border:1px solid var(--border-subtle);padding:4px 8px;text-align:left}.chat-msg-assistant .chat-msg-content th{background:var(--bg-hover);font-weight:600;white-space:nowrap}.chat-msg-assistant .chat-msg-content td{white-space:nowrap}.chat-msg-assistant .chat-msg-content blockquote{border-left:3px solid var(--teal);padding-left:10px;margin:6px 0;color:var(--text-secondary)}.chat-query-disclosure{font-size:12px;max-width:95%}.chat-query-toggle{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:12px;font-weight:500;color:var(--text-tertiary);background:none;border:none;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);transition:all .15s ease;width:100%}.chat-query-toggle:hover{background:var(--bg-hover);color:var(--text-secondary)}.chat-query-toggle-label{flex:1;text-align:left}.chat-query-spinner{width:12px;height:12px;border:2px solid var(--border-subtle);border-top-color:var(--teal);border-radius:50%;animation:chat-spin .8s linear infinite;flex-shrink:0}@keyframes chat-spin{to{transform:rotate(360deg)}}.chat-query-steps{display:flex;flex-direction:column;gap:2px;margin:4px 0 4px 16px}.chat-query-step{border-left:2px solid var(--border-subtle);padding-left:10px}.chat-query-step-header{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-tertiary);transition:all .15s ease}.chat-query-step-header:hover{background:var(--bg-hover);color:var(--text-secondary)}.chat-query-step-label{font-size:11px;font-family:var(--font-mono)}.chat-query-step-result{font-family:var(--font-mono);font-size:10px;line-height:1.4;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:8px 10px;margin:4px 0 6px;max-height:200px;overflow:auto;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all}.chat-tool-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-md);border:1px solid var(--teal);background:var(--teal-dim);font-size:12px;max-width:95%}.chat-tool-card.chat-tool-undone{border-color:var(--border-subtle);background:var(--bg-tertiary);opacity:.6}.chat-tool-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--teal-glow);border-radius:var(--radius-sm);color:var(--teal)}.chat-tool-undone .chat-tool-icon{background:var(--bg-hover);color:var(--text-tertiary)}.chat-tool-body{flex:1;min-width:0}.chat-tool-label{font-weight:600;color:var(--teal);margin-bottom:2px}.chat-tool-undone .chat-tool-label{color:var(--text-tertiary)}.chat-tool-summary{color:var(--text-secondary);line-height:1.4}.chat-tool-undone-label{font-size:11px;color:var(--text-muted);font-style:italic;margin-top:4px}.chat-tool-undo-btn{flex-shrink:0;display:flex;align-items:center;gap:4px;font-family:var(--font-display);font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-tertiary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.chat-tool-undo-btn:hover{border-color:var(--coral);color:var(--coral);background:var(--coral-dim)}.chat-typing{display:flex;gap:4px;padding:12px 14px;background:var(--bg-tertiary);border-radius:16px 16px 16px 4px;width:fit-content}.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:chat-bounce 1.4s ease-in-out infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chat-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-4px)}}.chat-input-area{padding:12px 16px;border-top:1px solid var(--border-subtle);flex-shrink:0}.chat-stop-btn{font-family:var(--font-display);font-size:11px;font-weight:500;width:100%;padding:6px;margin-bottom:8px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.chat-stop-btn:hover{border-color:var(--coral);color:var(--coral)}.chat-input-row{display:flex;gap:8px;align-items:flex-end}.chat-input{flex:1;font-family:var(--font-display);font-size:13px;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);resize:none;outline:none;min-height:40px;max-height:120px;line-height:1.4;transition:border-color .15s ease}.chat-input:focus{border-color:var(--teal)}.chat-input::placeholder{color:var(--text-muted)}.chat-input:disabled{opacity:.6}.chat-send-btn{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-md);background:var(--teal);color:#fff;cursor:pointer;transition:all .15s ease}.chat-send-btn:hover{opacity:.9}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.chat-thread-list{display:flex;flex-direction:column;gap:8px}.chat-thread-card{padding:12px 14px;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;transition:all .15s ease;position:relative}.chat-thread-card:hover{border-color:var(--teal);background:var(--teal-dim)}.chat-thread-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.chat-thread-title{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.chat-thread-delete-btn{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);opacity:0;transition:all .15s ease}.chat-thread-card:hover .chat-thread-delete-btn{opacity:1}.chat-thread-delete-btn:hover{color:var(--coral);background:var(--coral-dim)}.chat-thread-meta{display:flex;gap:10px;margin-top:6px;font-size:11px;color:var(--text-tertiary)}.chat-thread-confirm{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--text-secondary)}.chat-thread-confirm-btn{font-family:var(--font-display);font-size:11px;font-weight:500;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.chat-thread-confirm-btn:hover{border-color:var(--border-medium);color:var(--text-primary)}.chat-thread-confirm-yes{border-color:var(--coral);color:var(--coral)}.chat-thread-confirm-yes:hover{background:var(--coral-dim)}.chat-new-thread-btn{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:13px;font-weight:500;padding:10px 20px;margin-top:12px;border:1px solid var(--teal);border-radius:var(--radius-md);background:var(--teal-dim);color:var(--teal);cursor:pointer;transition:all .15s ease}.chat-new-thread-btn:hover{background:var(--teal-glow)}.chat-header-thread-info{display:flex;flex-direction:column;min-width:0}.chat-header-thread-title{font-size:13px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.chat-header-readonly{font-size:10px;color:var(--text-muted);font-style:italic}.chat-thread-filter{display:flex;gap:4px;margin-bottom:12px}.chat-thread-filter-btn{font-family:var(--font-display);font-size:11px;font-weight:500;padding:4px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-tertiary);cursor:pointer;transition:all .15s ease}.chat-thread-filter-btn:hover{border-color:var(--border-medium);color:var(--text-primary)}.chat-thread-filter-btn.active{background:var(--teal-dim);border-color:var(--teal);color:var(--teal);font-weight:600}.chat-thread-owner{font-weight:600;color:var(--text-secondary)}.chat-proposal-card{border:1px solid var(--amber);background:var(--amber-dim);border-radius:var(--radius-md);padding:12px;max-width:95%;font-size:12px}.chat-proposal-card.chat-proposal-accepted{border-color:var(--teal);background:var(--teal-dim)}.chat-proposal-card.chat-proposal-rejected{border-color:var(--border-subtle);background:var(--bg-tertiary);opacity:.6}.chat-proposal-header{display:flex;align-items:flex-start;gap:10px}.chat-proposal-label{font-weight:600;color:var(--amber);margin-bottom:2px}.chat-proposal-accepted .chat-proposal-label{color:var(--teal)}.chat-proposal-rejected .chat-proposal-label{color:var(--text-tertiary)}.chat-proposal-items{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,0,0,.06)}.chat-proposal-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);cursor:pointer;padding:3px 0}.chat-proposal-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--teal);cursor:pointer;flex-shrink:0}.chat-proposal-items-summary{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.chat-proposal-item-applied{font-size:11px;padding:2px 8px;background:var(--teal-glow);color:var(--teal);border-radius:3px;font-weight:500}.chat-proposal-actions{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,0,0,.06)}.chat-proposal-btn{display:flex;align-items:center;gap:5px;font-family:var(--font-display);font-size:12px;font-weight:600;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .15s ease}.chat-proposal-accept{background:var(--teal);color:#fff;border-color:var(--teal)}.chat-proposal-accept:hover{opacity:.9}.chat-proposal-reject{background:var(--bg-secondary);color:var(--text-tertiary);border-color:var(--border-subtle)}.chat-proposal-reject:hover{border-color:var(--coral);color:var(--coral)}.chat-proposal-status{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.chat-proposal-status-accepted{color:var(--teal)}.chat-proposal-status-rejected{color:var(--text-muted)}.chat-msg-usage{font-size:10px;color:var(--text-muted);margin-top:4px;font-family:var(--font-mono)}
