:root{--gray-0: #ffffff;--gray-50: #f6f8f7;--gray-100: #eef1f0;--gray-200: #dde3e1;--gray-300: #c3cdca;--gray-400: #9caaa7;--gray-500: #6b7d7a;--gray-600: #4a5e5c;--gray-700: #304745;--gray-800: #1c3634;--gray-900: #112b2a;--gray-950: #0a1615;--color-bg: var(--gray-0);--color-surface: var(--gray-50);--color-surface-raised: var(--gray-100);--color-border: var(--gray-200);--color-border-strong: var(--gray-300);--color-text: var(--gray-900);--color-text-muted: var(--gray-500);--color-text-faint: var(--gray-400);--color-accent: #008c88;--color-accent-hover: #006b68;--color-accent-contrast: #ffffff;--color-accent-tint: #e3f4f3;--color-committed: #0e7a4a;--color-committed-bg: #e6f6ee;--color-pipeline: #c99700;--color-pipeline-bg: #fdf2e3;--color-lost: var(--gray-500);--color-danger: #c22a2a;--color-danger-bg: #fcebea;--color-danger-hover: #a52222;--color-status-none: var(--gray-500);--color-status-none-bg: var(--gray-100);--color-status-sent: #c99700;--color-status-sent-bg: #fdf2e3;--color-status-paid: #0e7a4a;--color-status-paid-bg: #e6f6ee;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 4px;--radius: 4px;--radius-pill: 999px;--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-size-xs: 11px;--font-size-sm: 12.5px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 22px;--font-size-2xl: 36px;--transition: .12s ease;--sidebar-width: 248px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg: var(--gray-950);--color-surface: var(--gray-900);--color-surface-raised: var(--gray-800);--color-border: var(--gray-800);--color-border-strong: var(--gray-700);--color-text: var(--gray-50);--color-text-muted: var(--gray-400);--color-text-faint: var(--gray-600);--color-accent: #34c2bc;--color-accent-hover: #5ed4cf;--color-accent-contrast: #0a1615;--color-accent-tint: #123230;--color-pipeline: #b08f14;--color-committed-bg: #0e2419;--color-pipeline-bg: #2a1c09;--color-status-none-bg: var(--gray-800);--color-status-sent: #b08f14;--color-status-sent-bg: #2a1c09;--color-status-paid-bg: #0e2419;--color-danger-bg: #2a1414}}:root[data-theme=dark]{--color-bg: var(--gray-950);--color-surface: var(--gray-900);--color-surface-raised: var(--gray-800);--color-border: var(--gray-800);--color-border-strong: var(--gray-700);--color-text: var(--gray-50);--color-text-muted: var(--gray-400);--color-text-faint: var(--gray-600);--color-accent: #34c2bc;--color-accent-hover: #5ed4cf;--color-accent-contrast: #0a1615;--color-accent-tint: #123230;--color-pipeline: #b08f14;--color-committed-bg: #0e2419;--color-pipeline-bg: #2a1c09;--color-status-none-bg: var(--gray-800);--color-status-sent: #b08f14;--color-status-sent-bg: #2a1c09;--color-status-paid-bg: #0e2419;--color-danger-bg: #2a1414}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.5;font-feature-settings:"tnum" 1,"cv11" 1}h1,h2,h3{font-weight:600;letter-spacing:-.01em;margin:0}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-base);margin-bottom:var(--space-4)}h3{font-size:var(--font-size-base)}a{color:var(--color-accent)}.row{display:flex;align-items:center;gap:var(--space-3)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.row-wrap{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--space-2)}.stack-lg{display:flex;flex-direction:column;gap:var(--space-4)}.mt-0{margin-top:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.m-0{margin:0}.list-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border)}.list-row:last-child{border-bottom:none}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-muted{color:var(--color-text-muted)}.text-faint{color:var(--color-text-faint)}.font-mono{font-family:var(--font-mono)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.clickable{cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:var(--space-4) var(--space-3);position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-5);font-weight:700;font-size:var(--font-size-lg);letter-spacing:-.01em}.sidebar-brand-mark{width:18px;height:18px;background:var(--color-accent);flex-shrink:0}.sidebar-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-faint);padding:0 var(--space-2);margin:var(--space-4) 0 var(--space-1)}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;transition:background var(--transition),color var(--transition)}.sidebar-link:hover{background:var(--color-surface-raised);color:var(--color-text)}.sidebar-link.active{background:var(--color-accent-tint);color:var(--color-accent)}.sidebar-link-icon{width:16px;height:16px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-signout{display:flex;align-items:center;gap:var(--space-2);justify-content:flex-start}.sidebar-footer .segmented{display:flex;width:100%}.sidebar-footer .segmented button{flex:1;text-align:center}.main{flex:1;min-width:0}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--color-border)}.page{padding:var(--space-6);max-width:1280px;width:100%;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.page-header h1{font-size:var(--font-size-xl)}.page-subtitle{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:2px}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-muted)}input,select,textarea{font:inherit;color:inherit;background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);transition:border-color var(--transition)}input:hover,select:hover,textarea:hover{border-color:var(--color-text-faint)}input:focus,select:focus,textarea:focus{outline:1px solid var(--color-accent);outline-offset:-1px;border-color:var(--color-accent)}.btn{font:inherit;font-weight:500;font-size:var(--font-size-sm);border:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn:hover{background:var(--color-surface);border-color:var(--color-text-faint)}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-danger{border-color:var(--color-danger);color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-ghost{border-color:transparent;background:transparent}.btn-ghost:hover{background:var(--color-surface)}.btn:disabled{opacity:.5;cursor:not-allowed}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-4)}.ct-select,.ct-datepicker{position:relative}.ct-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font:inherit;color:inherit;background:var(--color-bg);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer;text-align:left;transition:border-color var(--transition)}.ct-select-trigger:hover{border-color:var(--color-text-faint)}.ct-select-trigger[aria-expanded=true]{border-color:var(--color-accent);outline:1px solid var(--color-accent);outline-offset:-1px}.ct-select-trigger:disabled{opacity:.5;cursor:not-allowed}.ct-select-trigger svg{flex-shrink:0;color:var(--color-text-faint)}.ct-popover-portal{position:fixed;z-index:1000}.ct-select-menu{background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);max-height:280px;overflow-y:auto;padding:4px}.ct-select-option{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer}.ct-select-option:hover{background:var(--color-surface)}.ct-select-option.selected{background:var(--color-accent-tint);color:var(--color-accent);font-weight:500}.ct-select-option-action{color:var(--color-accent);border-top:1px solid var(--color-border);margin-top:4px;padding-top:var(--space-2)}.ct-datepicker-clear{display:inline-flex;color:var(--color-text-faint)}.ct-datepicker-clear:hover{color:var(--color-danger)}.ct-datepicker-popup{background:var(--color-surface-raised);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-3);width:280px}.ct-datepicker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.ct-datepicker-header .btn{padding:var(--space-1) var(--space-2)}.ct-datepicker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.ct-datepicker-weekday{text-align:center;font-size:var(--font-size-xs);color:var(--color-text-faint);padding:var(--space-1) 0}.ct-datepicker-day{font:inherit;font-size:var(--font-size-sm);border:none;background:transparent;color:var(--color-text);aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer}.ct-datepicker-day:hover{background:var(--color-surface)}.ct-datepicker-day.outside{color:var(--color-text-faint)}.ct-datepicker-day.today{font-weight:700;color:var(--color-accent)}.ct-datepicker-day.selected{background:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.card{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5)}.card-title{font-size:var(--font-size-base);font-weight:600;margin:0 0 var(--space-4)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border);margin-bottom:var(--space-6)}.tile{background:var(--color-surface-raised);padding:var(--space-4) var(--space-5)}.tile-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-1)}.tile-value{font-size:var(--font-size-2xl);font-weight:600;letter-spacing:-.01em}.tile-note{font-size:var(--font-size-xs);color:var(--color-text-faint);margin-top:var(--space-1)}.tile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.tile-icon{color:var(--color-text-faint)}.tile-accent-committed{border-left:3px solid var(--color-committed)}.tile-accent-pipeline{border-left:3px solid var(--color-pipeline)}.tile-accent-cost{border-left:3px solid var(--color-danger)}.tile-hero{padding:var(--space-6);border-left:3px solid var(--color-accent);background:var(--color-surface-raised);border-top:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-radius:var(--radius)}.tile-hero .tile-value{font-size:var(--font-size-2xl)}@media (min-width: 640px){.tile-hero .tile-value{font-size:44px}}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.scroll-x{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}th,td{text-align:left;padding:var(--space-3);white-space:nowrap}th{color:var(--color-text-faint);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border);position:sticky;top:0;background:var(--color-surface-raised)}th.sorted{color:var(--color-text)}th.sorted:after{content:" ↓"}th.sorted.desc:after{content:" ↑"}tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition)}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--color-surface)}.expanded-row{background:var(--color-surface);white-space:normal}.chip{display:inline-flex;align-items:center;gap:var(--space-1);border-radius:999px;padding:3px var(--space-3);font-size:var(--font-size-xs);font-weight:600;border:none;font:inherit;transition:filter var(--transition)}.chip:hover{filter:brightness(.96)}:root[data-theme=dark] .chip:hover,:root:not([data-theme=light]) .chip:hover{filter:brightness(1.15)}.chip-none{color:var(--color-status-none);background:var(--color-status-none-bg)}.chip-sent{color:var(--color-status-sent);background:var(--color-status-sent-bg)}.chip-paid{color:var(--color-status-paid);background:var(--color-status-paid-bg)}.badge-committed{color:var(--color-committed);background:var(--color-committed-bg);border-radius:var(--radius-sm);padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:600}.badge-pipeline{color:var(--color-pipeline);background:var(--color-pipeline-bg);border-radius:var(--radius-sm);padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:600}.badge-lost{color:var(--color-lost)}.legend-swatch{display:inline-block;width:8px;height:8px;border-radius:var(--radius-pill)}.chart-grid{stroke:var(--color-border);stroke-width:1}.chart-axis-label{font-size:9px;fill:var(--color-text-faint)}.chart-row-label{font-size:10px;fill:var(--color-text-muted)}.chart-bar-label-inside{font-size:10px;font-weight:600}.chart-bar-label-outside{font-size:10px;font-weight:600;fill:var(--color-text-muted)}.mini-bar-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-3);padding:var(--space-1) 0}.mini-bar-track{grid-column:1 / -1;height:4px;background:var(--color-surface);margin-top:2px}.mini-bar-fill{height:100%;background:var(--color-accent)}.percent-tag{font-size:var(--font-size-xs);color:var(--color-text-faint);min-width:34px;text-align:right}.percent-tag.elevated{color:var(--color-pipeline);font-weight:600}.percent-tag.concentrated{color:var(--color-danger);font-weight:600}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-4)}.stat-strip-value{font-size:var(--font-size-lg);font-weight:600}.stat-strip-label{font-size:var(--font-size-xs);color:var(--color-text-muted)}.toggle-link{background:none;border:none;color:var(--color-accent);cursor:pointer;font:inherit;font-weight:500;padding:0}.filter-bar{display:flex;gap:var(--space-2);align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);overflow:hidden}.segmented button{font:inherit;font-size:var(--font-size-sm);font-weight:500;border:none;border-right:1px solid var(--color-border-strong);background:var(--color-bg);color:var(--color-text-muted);padding:var(--space-2) var(--space-3);cursor:pointer;transition:background var(--transition),color var(--transition)}.segmented button:last-child{border-right:none}.segmented button:hover{background:var(--color-surface);color:var(--color-text)}.segmented button.active{background:var(--color-text);color:var(--color-bg)}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.error-banner{background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-size:var(--font-size-sm)}.empty-state{color:var(--color-text-muted);padding:var(--space-10) var(--space-5);text-align:center;font-size:var(--font-size-sm)}
