:root{--font-family: "Geist", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: "Monaco", "Consolas", "Courier New", monospace;--t-2xs: .733rem;--t-xs: .8rem;--t-sm: .933rem;--t-base: 1rem;--t-md: 1.133rem;--t-lg: 1.5rem;--t-xl: 1.8rem;--t-2xl: 2rem;--leading-body: 1.5;--leading-heading: 1.2;--space-0: 0;--space-half: calc(1rem * 4 / 15);--space-1: calc(1rem * 8 / 15);--space-2: calc(1rem * 16 / 15);--space-3: 1.6rem ;--space-4: calc(1rem * 32 / 15);--space-5: 3.2rem ;--space-6: calc(1rem * 64 / 15);--bg-color: oklch(1 0 0);--card-bg: oklch(1 0 0);--surface-subtle: oklch(.97 0 0);--text-primary: oklch(.218 0 0);--text-secondary: oklch(.528 0 0);--border-color: oklch(0 0 0 / .12);--tick-color: oklch(.749 .007 17.3);--filter-color: oklch(.973 0 0);--primary-color: oklch(.218 0 0);--secondary-color: oklch(.722 .006 264.5);--discussion-color: oklch(70.531% .15324 36.515);--proposal-color: oklch(83.168% .15042 80.557);--active-color: oklch(71.79% .13361 290.521);--completed-color: oklch(.845 .09 217.7);--paid-color: oklch(87.557% .15125 154.19);--paid-ink: oklch(from var(--paid-color) .52 c h);--confirmed-color: var(--active-color);--success-color: oklch(.84 .151 153.7);--warning-color: oklch(.705 .187 47.6);--danger-color: oklch(.718 .134 21);--text-on-color: oklch(1 0 0);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-bar: 8px;--rollup-bg: oklch(.9 .004 265);--shadow-sm: 0 1px 2px oklch(0 0 0 / .04);--shadow: 0 2px 8px oklch(0 0 0 / .08);--shadow-lg: 0 8px 32px oklch(0 0 0 / .12);--shadow-float: 0 12px 48px oklch(0 0 0 / .15);--page-inset: clamp(var(--space-1), 2vw, var(--space-2));--header-height: 108px;--sidebar-width: 480px;--chat-panel-width: clamp(320px, 30vw, 480px);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .25s;--ease-default: ease}[data-theme=dark]{--bg-color: oklch(.191 0 0);--card-bg: oklch(.218 0 0);--surface-subtle: oklch(.252 0 0);--rollup-bg: oklch(.35 .004 265);--paid-ink: oklch(from var(--paid-color) .82 c h);--text-primary: oklch(.955 0 0);--text-secondary: oklch(.627 0 0);--border-color: oklch(0 0 0);--tick-color: oklch(.389 0 0);--filter-color: oklch(.278 0 0);--primary-color: oklch(.955 0 0);--secondary-color: oklch(.627 0 0);--success-color: oklch(.8 .182 151.7);--warning-color: oklch(.758 .159 55.9);--danger-color: oklch(.711 .166 22.2);--text-on-color: var(--bg-color);--shadow-sm: none;--shadow: none;--shadow-lg: none;--shadow-float: 0 12px 48px oklch(0 0 0 / .35)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{font-size:93.75%;-webkit-text-size-adjust:100%}body{min-height:100vh;line-height:var(--leading-body);font-family:var(--font-family);font-size:var(--t-base);color:var(--text-primary);background-color:var(--surface-subtle);transition:background-color var(--duration-normal) var(--ease-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit;touch-action:manipulation}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}h1,h2,h3,h4,h5,h6{line-height:var(--leading-heading);text-wrap:balance}ul,ol{list-style:none;padding:0}a{color:inherit;text-decoration:none;touch-action:manipulation}table{border-collapse:collapse;border-spacing:0}:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.panel{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle}.panel--rounded{border-radius:var(--radius-md)}.panel--pill{border-radius:var(--radius-xl)}.panel--flush{overflow:clip}.panel--raised{box-shadow:var(--shadow)}.panel--float{box-shadow:var(--shadow-float)}.panel--keyline{background-color:var(--border-color)}.panel--subtle{background-color:var(--surface-subtle)}.form-field,.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--space-1) 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);background-color:var(--card-bg);color:var(--text-primary);font-family:inherit;transition:outline-color var(--duration-fast) var(--ease-default)}.form-field:focus-visible,.form-group input:focus-visible,.form-group textarea:focus-visible,.form-group select:focus-visible{outline:2px solid var(--border-color);outline-offset:2px}.form-field--compact{padding:var(--space-half) var(--space-1)}.form-label,.form-group label{display:block;font-size:var(--t-xs);color:var(--text-secondary);letter-spacing:.01em;font-weight:500;margin-bottom:6px}.form-label--compact{font-size:10px;margin-bottom:2px}.btn-remove{background:none;border:none;color:var(--danger-color);cursor:pointer;padding:var(--space-half);font-size:1.1rem;line-height:1;opacity:.6;transition:opacity var(--duration-fast) var(--ease-default)}.btn-remove:hover{opacity:1}.tab{padding:var(--space-1) var(--space-2);background:none;border:none;font-family:inherit;font-size:var(--t-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;position:relative;white-space:nowrap;flex-shrink:0;transition:color var(--duration-fast) var(--ease-default)}.tab:hover{color:var(--text-primary)}.app-shell{position:relative;height:100vh;height:100dvh}.app-shell__main{position:relative;z-index:2;height:100%;overflow-y:auto;background-color:var(--surface-subtle);transition:margin-right var(--duration-normal) var(--ease-default),border-radius var(--duration-normal) var(--ease-default),box-shadow var(--duration-normal) var(--ease-default)}body.chat-open{background-color:#090909}body.chat-open .app-shell__main{margin-right:var(--chat-panel-width);border-radius:0 var(--radius-xl) var(--radius-xl) 0;box-shadow:12px 0 48px #00000040}[data-theme=dark] body.chat-open .app-shell__main{box-shadow:8px 0 40px #00000059}.app-layout{padding-inline:var(--page-inset);padding-bottom:var(--page-inset)}.main-header{position:sticky;top:0;margin:var(--page-inset) var(--page-inset) 0;z-index:100}.header-content{display:flex;align-items:center}.main-header h1{font-size:var(--t-lg);font-weight:500;white-space:nowrap;flex-shrink:0;width:260px;text-align:center}[data-theme=dark] .main-header h1{color:#fff}h1 sup{font-size:10px;font-weight:400;margin-inline-start:var(--space-half);vertical-align:super}.metrics-bar{display:flex;align-items:stretch;flex:1;min-width:0;margin-inline-start:1px}.metric-block{text-align:center;border-left:1px solid var(--border-color);flex:1;padding:var(--space-4);color:var(--text-secondary);background-color:var(--card-bg);transition:background-color var(--duration-fast) var(--ease-default);display:flex;flex-direction:column;justify-content:center;gap:2px;position:relative;cursor:pointer}.metric-block--active{background-color:var(--surface-subtle)}#metricTarget,#metricDays{cursor:default}.metric-block__header{display:flex;align-items:center;gap:4px;position:absolute;top:var(--space-1);left:var(--space-1)}.metric-block__icon{width:18px;height:18px;opacity:.5;flex-shrink:0;transition:opacity .2s ease,color .2s ease}.metric-block__label{font-size:9px;letter-spacing:.01em}.metric-block__header .metric-block__label{opacity:0;max-width:0;overflow:hidden;white-space:nowrap;transition:opacity .2s ease,max-width .2s ease}.metric-block:hover .metric-block__header .metric-block__label,.metric-block--active .metric-block__header .metric-block__label{opacity:1;max-width:6rem}.metric-block:hover .metric-block__icon,.metric-block--active .metric-block__icon{opacity:1}#metricTarget:hover .metric-block__icon,#metricTarget.metric-block--active .metric-block__icon{color:var(--danger-color)}#metricPaid:hover .metric-block__icon,#metricPaid.metric-block--active .metric-block__icon{color:var(--paid-color)}#metricInvoiced:hover .metric-block__icon,#metricInvoiced.metric-block--active .metric-block__icon{color:var(--completed-color)}#metricUnbilled:hover .metric-block__icon,#metricUnbilled.metric-block--active .metric-block__icon{color:var(--confirmed-color)}#metricProposal:hover .metric-block__icon,#metricProposal.metric-block--active .metric-block__icon{color:var(--proposal-color)}#metricDiscussion:hover .metric-block__icon,#metricDiscussion.metric-block--active .metric-block__icon{color:var(--discussion-color)}.metric-block__primary{font-size:var(--t-lg);font-weight:500;color:var(--text-primary);white-space:nowrap;font-variant-numeric:tabular-nums}.metric-block__super{display:inline-block;width:0;overflow:visible;white-space:nowrap;vertical-align:super;font-size:10px;font-weight:400;color:var(--text-secondary);margin-inline-start:2px}.metric-block__super.trajectory--on-track{color:var(--success-color)}.metric-block__super.trajectory--behind{color:var(--warning-color)}.metric-block__super.trajectory--at-risk{color:var(--danger-color)}.metric-block__support{font-size:10px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums;text-overflow:ellipsis}.metric-block__delta{font-size:10px;line-height:1.4;color:var(--text-tertiary, var(--text-secondary));white-space:nowrap;font-variant-numeric:tabular-nums;opacity:.7;transition:opacity var(--duration-fast, .15s) var(--ease-default, ease)}.metric-block:hover .metric-block__delta{opacity:1}.metric-block__delta--up{color:var(--success-color);opacity:1}.metric-block__delta--down{color:var(--text-secondary);opacity:1}.metric-block__age{font-variant-numeric:tabular-nums}.metric-block__age:not(:empty):before{content:" · ";color:var(--text-secondary)}.metric-block__age--warning{color:var(--warning-color);font-weight:600}.metric-block__age--danger{color:var(--danger-color);font-weight:600}.metric-block--urgent{box-shadow:inset 0 -2px 0 0 var(--warning-color)}.coverage-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3);margin:0;padding:var(--space-1) var(--space-2);border-top:1px solid var(--border-color);font-size:var(--t-xs, .8rem);color:var(--text-secondary)}.coverage-line__item{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.coverage-line__label{font-size:10px;letter-spacing:.02em;text-transform:uppercase;color:var(--text-secondary);opacity:.7}.coverage-line__value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-weight:500}.coverage-line__item--gap .coverage-line__value{color:var(--danger-color)}.coverage-line--covered .coverage-line__item--gap .coverage-line__value{color:var(--success-color)}.coverage-line__note{color:var(--text-secondary);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}[data-financial-filter=paid] .project-card:not(.billing--paid),[data-financial-filter=invoiced] .project-card:not(.billing--invoiced),[data-financial-filter=unbilled] .project-card:not(.billing--unbilled),[data-financial-filter=proposal] .project-card:not(.billing--proposal),[data-financial-filter=discussion] .project-card:not(.billing--discussion){background-color:var(--filter-color);color:var(--filter-color);transition:background-color .2s ease,color .2s ease}[data-financial-filter=paid] tr:not(.billing--paid) td,[data-financial-filter=invoiced] tr:not(.billing--invoiced) td,[data-financial-filter=unbilled] tr:not(.billing--unbilled) td,[data-financial-filter=proposal] tr:not(.billing--proposal) td,[data-financial-filter=discussion] tr:not(.billing--discussion) td{background-color:var(--filter-color);color:var(--filter-color);transition:background-color .2s ease,color .2s ease}[data-financial-filter=paid] tr:not(.billing--paid) .project-status,[data-financial-filter=invoiced] tr:not(.billing--invoiced) .project-status,[data-financial-filter=unbilled] tr:not(.billing--unbilled) .project-status,[data-financial-filter=proposal] tr:not(.billing--proposal) .project-status,[data-financial-filter=discussion] tr:not(.billing--discussion) .project-status{background-color:var(--filter-color);color:var(--filter-color)}[data-financial-filter=paid] .timeline-view__project-label:not(.billing--paid),[data-financial-filter=invoiced] .timeline-view__project-label:not(.billing--invoiced),[data-financial-filter=unbilled] .timeline-view__project-label:not(.billing--unbilled),[data-financial-filter=proposal] .timeline-view__project-label:not(.billing--proposal),[data-financial-filter=discussion] .timeline-view__project-label:not(.billing--discussion){color:var(--filter-color);transition:color .2s ease}[data-financial-filter=paid] :is(.timeline-view__bar,.timeline-view__invoice-block,.timeline-view__retainer-cell):not(.billing--paid),[data-financial-filter=invoiced] :is(.timeline-view__bar,.timeline-view__invoice-block,.timeline-view__retainer-cell):not(.billing--invoiced),[data-financial-filter=unbilled] :is(.timeline-view__bar,.timeline-view__invoice-block,.timeline-view__retainer-cell):not(.billing--unbilled),[data-financial-filter=proposal] :is(.timeline-view__bar,.timeline-view__invoice-block,.timeline-view__retainer-cell):not(.billing--proposal),[data-financial-filter=discussion] :is(.timeline-view__bar,.timeline-view__invoice-block,.timeline-view__retainer-cell):not(.billing--discussion){background-color:var(--filter-color);color:var(--filter-color);transition:background-color .2s ease,color .2s ease}#gapAmount.gap--on-track{color:var(--success-color)}#gapAmount.gap--behind{color:var(--text-primary)}.utility-btn-wrap{position:relative}.utility-popover{position:absolute;bottom:calc(100% + var(--space-1));right:0;min-width:160px;z-index:200;box-shadow:var(--shadow-lg);padding:var(--space-half)}.utility-popover__item{display:block;width:100%;padding:var(--space-1) var(--space-2);border:none;background:none;text-align:left;font-size:var(--t-sm);color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);corner-shape:squircle;font-family:inherit;transition:background-color var(--duration-fast) var(--ease-default)}.utility-popover__item:hover{background-color:var(--surface-subtle)}[data-share-mode=true] .blur{filter:blur(8px);transition:filter .3s var(--ease-default);-webkit-user-select:none;user-select:none}[data-share-mode=true] .blur:hover{filter:blur(0)}.controls-section{padding:var(--space-2)}.controls-container{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.controls-hidden{display:none}.search-wrapper{position:relative;flex:1;min-width:min(250px,100%);max-width:400px}.search-input{padding:var(--space-1) var(--space-5) var(--space-1) var(--space-2);background-color:var(--surface-subtle)}.search-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.filter-controls{display:flex;gap:var(--space-3);align-items:center;flex:1}.filter-group{display:flex;gap:var(--space-1);flex-wrap:wrap}.filter-chip{padding:6px var(--space-2);border:1px solid var(--border-color);background-color:var(--surface-subtle);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-xs);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);white-space:nowrap}.filter-chip:hover{color:var(--text-primary)}.filter-chip.active{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--text-on-color)}.sort-wrapper{margin-inline-start:auto}.sort-select{padding:6px var(--space-4) 6px var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);background-color:var(--surface-subtle);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236B7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-1) center}.sort-select:focus-visible{outline:2px solid var(--border-color);outline-offset:2px}.archive-toggle{display:flex;align-items:center;gap:var(--space-1);padding:6px var(--space-2);border:1px solid var(--border-color);background-color:var(--surface-subtle);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color var(--duration-fast) var(--ease-default)}.archive-toggle:hover{color:var(--text-primary)}.archive-toggle.active{background-color:var(--surface-subtle);color:var(--text-primary)}.view-toggle{display:flex;border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;overflow:hidden}.view-toggle__btn{padding:6px var(--space-1);border:none;background:var(--surface-subtle);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.view-toggle__btn:not(:last-child){border-right:1px solid var(--border-color)}.view-toggle__btn:hover{color:var(--text-primary);background-color:var(--surface-subtle)}.view-icon__shape-1,.view-icon__shape-2,.view-icon__shape-3,.view-icon__shape-4{transition:fill var(--duration-fast) var(--ease-default)}.view-toggle__btn:not(.view-toggle__btn--active):hover .view-icon__shape-1{fill:var(--discussion-color)}.view-toggle__btn:not(.view-toggle__btn--active):hover .view-icon__shape-2{fill:var(--proposal-color)}.view-toggle__btn:not(.view-toggle__btn--active):hover .view-icon__shape-3{fill:var(--confirmed-color)}.view-toggle__btn:not(.view-toggle__btn--active):hover .view-icon__shape-4{fill:var(--paid-color)}.view-toggle__btn--active,.view-toggle__btn--active:hover{background-color:var(--primary-color);color:var(--text-on-color)}.type-toggle{display:flex;border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;overflow:hidden;width:fit-content}.type-toggle__btn{padding:var(--space-1) var(--space-3);border:none;background:var(--card-bg);color:var(--text-secondary);cursor:pointer;font-size:var(--t-sm);font-weight:500;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);font-family:inherit}.type-toggle__btn:not(:last-child){border-right:1px solid var(--border-color)}.type-toggle__btn:hover{color:var(--text-primary);background-color:var(--surface-subtle)}.type-toggle__btn--active,.type-toggle__btn--active:hover{background-color:var(--primary-color);color:var(--text-on-color)}.export-controls{position:relative}.export-btn{display:flex;align-items:center;gap:var(--space-1);padding:6px var(--space-2);border:1px solid var(--border-color);background-color:var(--surface-subtle);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);font-weight:500;color:var(--text-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.export-btn:hover{background-color:var(--surface-subtle)}.export-menu{position:absolute;top:100%;right:0;margin-top:var(--space-1);min-width:160px;z-index:10;box-shadow:var(--shadow-lg)}.export-menu.hidden{display:none}.export-option{display:block;width:100%;padding:var(--space-1) var(--space-2);border:none;background:none;text-align:left;font-size:var(--t-sm);color:var(--text-primary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.export-option:hover{background-color:var(--surface-subtle)}main{padding-block:var(--space-2)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:var(--space-1)}.empty-state{grid-column:1 / -1;text-align:center;padding:var(--space-5);color:var(--text-secondary)}.project-card{padding:var(--space-3) var(--space-3) var(--space-6);cursor:move;transition:box-shadow var(--duration-normal) var(--ease-default);aspect-ratio:3 / 4;display:flex;flex-direction:column;position:relative;overflow:hidden}.project-card:hover{box-shadow:var(--shadow-lg)}.project-card.dragging{opacity:.5;cursor:grabbing}.project-card__indicator{height:24px;max-width:24px;border-radius:100px;overflow:hidden;display:inline-flex;align-items:center;align-self:flex-start;flex-shrink:0;transition:max-width .28s cubic-bezier(.25,.1,.25,1)}.project-card__indicator-label{padding-inline:var(--space-1);white-space:nowrap;opacity:0;font-size:9px;font-weight:500;letter-spacing:.01em;color:#000000a6;transition:opacity .15s ease}.project-card:hover .project-card__indicator{max-width:8rem}.project-card:hover .project-card__indicator-label{opacity:1;transition-delay:.1s}.project-card__body{flex:1;display:flex;flex-direction:column;padding-top:var(--space-6)}.project-card__client{font-size:var(--t-sm);font-weight:400;color:var(--text-secondary);margin-bottom:var(--space-1)}.project-card__name{font-size:2.667rem;font-weight:300;text-wrap:balance;color:var(--primary-color);line-height:var(--leading-heading)}.project-card__budget{font-size:var(--t-xl);font-weight:400;color:var(--text-primary);margin-top:auto}.project-status{border-radius:var(--radius-sm);corner-shape:squircle;font-size:9px;font-weight:500;color:#000000a6;padding:6px var(--space-1) 4px;letter-spacing:.01em;white-space:nowrap}.status-discussion{background-color:var(--discussion-color)}.status-proposal{background-color:var(--proposal-color)}.status-active{background-color:var(--active-color)}.status-completed{background-color:var(--completed-color)}.progress-bar{height:4px;background-color:var(--surface-subtle);border-radius:var(--radius-sm);corner-shape:squircle;overflow:hidden;flex-grow:1}.progress-fill{height:100%;background-color:var(--success-color);transition:width .3s var(--ease-default)}.progress-container{margin:var(--space-2) 0}.progress-container .progress-bar{height:8px;border-radius:var(--radius-sm);corner-shape:squircle}.row-view{width:100%;padding:0;overflow-x:auto}.row-view__grid{display:grid;grid-template-columns:auto 1fr auto auto auto auto auto auto;gap:1px;font-size:var(--t-sm);min-width:800px}.row-view__th{padding:var(--space-2);font-weight:600;font-size:var(--t-xs);letter-spacing:.01em;color:var(--text-secondary);background-color:var(--surface-subtle);white-space:nowrap}.row-view__th--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--duration-fast) var(--ease-default)}.row-view__th--sortable:hover{color:var(--text-primary)}.row-view__th--sorted-asc:after{content:" ↑"}.row-view__th--sorted-desc:after{content:" ↓"}.row-view__body{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;gap:1px}.row-view__row{display:grid;grid-template-columns:subgrid;grid-column:1 / -1;cursor:pointer}.row-view__cell{padding:var(--space-2);background-color:var(--card-bg);transition:background-color var(--duration-fast) var(--ease-default)}.row-view__row:hover .row-view__cell{background-color:var(--surface-subtle)}.row-view__row:focus-visible{outline:2px solid var(--text-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.row-view__row:focus-visible .row-view__cell{background-color:var(--surface-subtle)}.row-view__cell--fee{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.row-view__cell--status{white-space:nowrap}.row-view__cell--status .project-status{display:inline-block}.row-view__cell--code{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary)}.row-view__cell--entity,.row-view__cell--account{font-size:13px;color:var(--text-secondary)}.row-view__cell--date{font-size:13px;color:var(--text-secondary);white-space:nowrap}.row-view__empty{grid-column:1 / -1;padding:var(--space-4);text-align:center;color:var(--text-secondary);background-color:var(--card-bg)}.timeline-view__nav{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.timeline-view__nav-btn{padding:var(--space-half);border:1px solid var(--border-color);background:var(--card-bg);border-radius:var(--radius-sm);corner-shape:squircle;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:color var(--duration-fast) var(--ease-default)}.timeline-view__nav-btn:hover{color:var(--text-primary)}.timeline-view__year{font-size:var(--t-md);font-weight:600}.timeline-view__grid{display:grid;grid-template-columns:min(240px,22vw) repeat(12,1fr);gap:1px;min-width:900px}.timeline-view__header{background-color:var(--surface-subtle);padding:var(--space-half) var(--space-1);font-size:var(--t-xs);letter-spacing:.01em;color:var(--text-secondary);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.timeline-view__header-month{display:block}.timeline-view__header-totals{display:block;font-size:var(--t-2xs);letter-spacing:0;text-transform:none;font-weight:600}.timeline-view__header-committed{color:#2e9e5a;color:var(--paid-ink)}.timeline-view__header-potential{color:var(--text-secondary);opacity:.6}.timeline-view__header--label{text-align:left;font-size:var(--t-xs);font-weight:600;color:var(--text-primary)}.timeline-view__now-label{background-color:var(--card-bg)}.timeline-view__now-track{grid-column:2 / -1;background-color:var(--card-bg);display:grid;grid-template-columns:repeat(12,1fr);position:relative}.timeline-view__now-track:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--border-color) 1px);background-size:calc(100% / 12) 100%}.timeline-view__now-month{display:flex;align-items:center;justify-content:space-evenly;padding-block:4px}.timeline-view__now-tick{width:4px;height:4px;border-radius:50%;background-color:var(--tick-color)}.timeline-view__now-tick--active{width:6px;height:6px;background-color:var(--text-primary)}.timeline-view__now-line{position:absolute;bottom:0;width:1px;transform:translate(-2px);background:repeating-linear-gradient(to bottom,var(--text-primary) 0 3px,transparent 3px 6px);opacity:1;pointer-events:none;z-index:2}.timeline-view__row{display:contents}.timeline-view__project-label{background-color:var(--card-bg);padding:var(--space-2);font-size:var(--t-xs);display:flex;align-items:center;cursor:pointer;white-space:nowrap;overflow:hidden;position:relative;transition:background-color var(--duration-fast) var(--ease-default)}.timeline-view__project-label:after{content:"";position:absolute;inset-block:0;inset-inline-end:0;width:32px;background:linear-gradient(to right,transparent,var(--card-bg));pointer-events:none}.timeline-view__row:has(:hover)>.timeline-view__project-label{background-color:var(--surface-subtle)}.timeline-view__row:has(:hover)>.timeline-view__project-label:after{background:linear-gradient(to right,transparent,var(--surface-subtle))}.timeline-view__row:has(:hover)>.timeline-view__bar-track{background-color:var(--surface-subtle)}.timeline-view__bar-track{grid-column:2 / -1;background-color:var(--card-bg);position:relative;min-height:32px;display:grid;grid-template-columns:repeat(12,1fr);transition:background-color var(--duration-fast) var(--ease-default)}.timeline-view__row--client{font-weight:600}.timeline-view__row--client>.timeline-view__bar-track{min-height:32px;cursor:pointer}.timeline-view__client-label{display:flex;align-items:center;gap:var(--space-half);padding-block:var(--space-half);padding-inline-end:var(--space-1)}.timeline-view__client-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-1);border:0;background:none;padding:0;font:inherit;color:inherit;text-align:start;cursor:pointer;border-radius:var(--radius-sm)}.timeline-view__client-toggle:focus-visible{outline:2px solid var(--accent-color, var(--success-color));outline-offset:2px}.timeline-view__client-name{text-align:start;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-view__client-chips{flex:none;display:flex;align-items:center;gap:var(--space-half);margin-inline-end:auto}.timeline-view__client-chip{min-width:16px;height:16px;padding-inline:3px;display:grid;place-items:center;border-radius:var(--radius-bar);corner-shape:squircle;background-color:var(--bar-color, var(--border-color));color:#1b1b1b;color:oklch(from var(--bar-color, oklch(.75 0 0)) .27 calc(c*.55) h);font-size:var(--t-2xs);font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.timeline-view__client-chip.billing--discussion{--bar-color: var(--discussion-color)}.timeline-view__client-chip.billing--proposal{--bar-color: var(--proposal-color)}.timeline-view__client-chip.billing--paid{--bar-color: var(--paid-color)}.timeline-view__client-chip.billing--invoiced{--bar-color: var(--completed-color)}.timeline-view__client-chip.billing--unbilled{--bar-color: var(--active-color)}.timeline-view__client-edit{flex:none;width:24px;height:24px;padding:0;border:0;border-radius:var(--radius-bar);corner-shape:squircle;background:none;color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity var(--duration-fast) var(--ease-default),background-color var(--duration-fast) var(--ease-default)}.timeline-view__client-edit:before{content:"";display:block;width:14px;height:14px;margin:auto;background-color:currentColor;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"/><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20h9"/><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"/></svg>');-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.timeline-view__row--client:has(:hover) .timeline-view__client-edit,.timeline-view__client-edit:focus-visible{opacity:1}.timeline-view__client-edit:hover{background-color:var(--surface-subtle);color:var(--text-primary)}.timeline-view__client-edit:focus-visible{outline:2px solid var(--accent-color, var(--success-color));outline-offset:2px}.timeline-view__bar-track--client{position:relative}.timeline-view__client-rollup{height:24px;align-self:center;margin:var(--space-half);border-radius:var(--radius-bar);corner-shape:squircle;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-half);padding-inline:var(--space-half);min-width:0;overflow:hidden;font-size:var(--t-xs);font-weight:600;z-index:1;pointer-events:none;background-color:var(--rollup-bg);color:var(--text-primary)}.timeline-view__client-total{font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-view__children{grid-column:1 / -1;display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s ease}.timeline-view__children[data-expanded=true]{grid-template-rows:1fr}.timeline-view__children-inner{overflow:hidden;display:grid;grid-template-columns:min(240px,22vw) repeat(12,1fr);gap:1px}.timeline-view__row--child{font-size:var(--t-xs, .8rem)}.timeline-view__row--child>.timeline-view__project-label{padding-block:var(--space-1);padding-inline-start:var(--space-2);font-size:var(--t-xs);color:var(--text-secondary)}.timeline-view__row--child>.timeline-view__bar-track{min-height:40px}.timeline-view__row--child .timeline-view__bar{height:32px;align-self:center;border-radius:var(--radius-bar)}.timeline-view__row--child .timeline-view__invoice-block{font-size:var(--t-xs, .8rem);padding-block:var(--space-half);border-radius:var(--radius-bar)}.timeline-view__group-toggle{display:inline-flex;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;margin-inline-start:var(--space-2)}.timeline-view__group-btn{border:0;background:transparent;color:var(--text-secondary);padding:4px 10px;font:inherit;font-size:var(--t-xs, .8rem);cursor:pointer}.timeline-view__group-btn+.timeline-view__group-btn{border-inline-start:1px solid var(--border-color)}.timeline-view__group-btn:hover{background:var(--surface-subtle)}.timeline-view__group-btn--active{background:var(--text-primary);color:var(--card-bg)}.timeline-view__group-btn--active:hover{background:var(--text-primary)}.timeline-view__bar-track:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--border-color) 1px);background-size:calc(100% / 12) 100%}.timeline-view__bar{grid-row:1;position:relative;margin:var(--space-half);border-radius:var(--radius-bar);corner-shape:squircle;cursor:pointer;display:flex;align-items:center;justify-content:center;padding-inline:var(--space-1);font-size:var(--t-2xs);font-weight:500;color:#1a1a1a;color:oklch(from var(--bar-color, oklch(.75 0 0)) .27 calc(c*.55) h);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--duration-fast) var(--ease-default)}.timeline-view__bar:hover{opacity:.85}.timeline-view__bar-track[data-draggable=true] .timeline-view__bar:hover{outline:1.5px dashed oklch(0 0 0 / .35);outline-offset:0}.timeline-view__bar-track[data-draggable=false] .timeline-view__bar{cursor:pointer}.timeline-view__bar--discussion{background-color:var(--discussion-color);--bar-color: var(--discussion-color)}.timeline-view__bar--proposal{background-color:var(--proposal-color);--bar-color: var(--proposal-color)}.timeline-view__bar--active{background-color:var(--active-color);--bar-color: var(--active-color)}.timeline-view__bar--completed{background-color:var(--completed-color);--bar-color: var(--completed-color)}.timeline-view__bar--has-invoices{background-color:color-mix(in oklab,var(--bar-color, var(--border-color)) 18%,var(--card-bg))}[data-theme=dark] .timeline-view__bar--has-invoices{color:oklch(from var(--bar-color, oklch(.75 0 0)) .93 calc(c*.3) h)}[data-financial-filter=paid] .timeline-view__bar.billing--paid,[data-financial-filter=invoiced] .timeline-view__bar.billing--invoiced,[data-financial-filter=unbilled] .timeline-view__bar.billing--unbilled,[data-financial-filter=proposal] .timeline-view__bar.billing--proposal,[data-financial-filter=discussion] .timeline-view__bar.billing--discussion{background-color:var(--bar-color)}.timeline-view__invoice-month{display:flex;flex-direction:row;gap:1px;min-width:0}.timeline-view__invoice-block{flex:1;min-height:0;border-radius:var(--radius-bar);corner-shape:squircle;display:flex;align-items:center;justify-content:center;font-size:var(--t-2xs);font-weight:500;color:#1a1a1a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-inline:4px;transition:opacity var(--duration-fast) var(--ease-default)}.timeline-view__invoice-block:hover{opacity:.85}.timeline-view__invoice-block--paid{background-color:var(--paid-color)}.timeline-view__invoice-block--invoiced{background-color:var(--completed-color)}.timeline-view__invoice-block--active{background-color:var(--active-color)}.timeline-view__invoice-block--pending{background-color:var(--active-color);opacity:.5;border:1px dashed var(--text-secondary)}.timeline-view__invoice-block--detached{align-self:center;margin:var(--space-half);flex:none;min-width:0;padding-inline:var(--space-half);box-shadow:inset 0 0 0 1px var(--card-bg);opacity:.9}.timeline-view__invoice-block--detached[data-after-delivery=true]:before{content:"";position:absolute;inset-inline-end:100%;inset-block-start:50%;inline-size:100vw;block-size:1px;background:repeating-linear-gradient(to right,var(--border-color) 0 3px,transparent 3px 6px);pointer-events:none;z-index:-1}.timeline-view__invoice-block--detached{position:relative;isolation:isolate}.timeline-view__pip{position:absolute;top:50%;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:auto;cursor:default;border:2px solid var(--card-bg)}.timeline-view__pip--completed{background-color:var(--completed-color)}.timeline-view__pip--invoice{background-color:var(--secondary-color)}.timeline-view--dragging{-webkit-user-select:none;user-select:none}.timeline-view__bar--dragging{z-index:10;opacity:.8;box-shadow:var(--shadow);transition:none}.timeline-view__bar--retainer,.timeline-view__bar--has-invoices{display:grid;grid-template-columns:repeat(var(--bar-span, 1),1fr);align-items:stretch;padding-inline:0;gap:1px}.timeline-view__retainer-cell{flex:1;display:flex;align-items:center;justify-content:center;font-size:var(--t-2xs);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.timeline-view__retainer-cell--paid{background-color:var(--paid-color)}.timeline-view__retainer-cell--invoiced{background-color:var(--completed-color)}.timeline-view__retainer-cell--unbilled{background-color:var(--confirmed-color)}.timeline-view__invoice-block--unbilled{background-color:var(--confirmed-color);border:1px dashed oklch(.218 0 0 / .2)}.timeline-view__empty{grid-column:1 / -1;background-color:var(--card-bg);padding:var(--space-4);text-align:center;color:var(--text-secondary)}@media(max-width:900px){.timeline-view{overflow-x:auto;-webkit-overflow-scrolling:touch}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sidebar{position:fixed;top:var(--page-inset);right:var(--page-inset);bottom:var(--page-inset);width:min(var(--sidebar-width),calc(100vw - var(--page-inset) * 2));z-index:200;display:flex;flex-direction:column;transform:translate(calc(100% + var(--page-inset) * 2));will-change:transform;transition:transform .3s cubic-bezier(.32,.72,0,1)}.sidebar--open{transform:translate(0)}.sidebar__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);flex-shrink:0}.sidebar__header h2{font-size:var(--t-md);font-weight:500}.sidebar__close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--space-half);display:flex;align-items:center;justify-content:center;transition:color var(--duration-fast) var(--ease-default)}.sidebar__close:hover{color:var(--text-primary)}.sidebar__body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-3)}.sidebar__actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;flex-shrink:0;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.sidebar__actions-left,.sidebar__actions-right{display:flex;gap:var(--space-1)}.btn{padding:var(--space-2) var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-md);corner-shape:squircle;font-weight:500;font-size:var(--t-xs);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);white-space:nowrap;line-height:1}.btn-primary{background-color:var(--text-primary);color:var(--bg-color);border-color:var(--text-primary)}.btn-primary:hover{opacity:.85}.btn-secondary{background-color:transparent;border-color:transparent;color:var(--text-primary)}.btn-secondary:hover{background-color:var(--surface-subtle)}.btn-cancel{background-color:transparent;color:var(--text-secondary)}.btn-cancel:hover{background-color:var(--surface-subtle)}.btn-danger{background-color:transparent;color:var(--danger-color);border-color:var(--danger-color)}.btn-danger:hover{background-color:var(--danger-color);color:var(--text-on-color)}.header-content .btn{flex-shrink:0}.status-button-group{display:flex;gap:var(--space-half);font-size:var(--t-xs);margin-bottom:var(--space-3);padding:var(--space-1);background-color:var(--surface-subtle);border-radius:var(--radius-sm);corner-shape:squircle}.status-button-group__item{position:relative;flex:1;display:flex;flex-direction:column;align-items:center}.status-button-group input[type=radio]{display:none}.status-btn{width:100%;padding:var(--space-1) var(--space-2);text-align:center;border-radius:var(--radius-sm);corner-shape:squircle;font-weight:500;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default);background-color:var(--card-bg);color:var(--text-secondary);border:1px solid transparent}.status-btn:hover{background-color:var(--surface-subtle)}.status-btn--disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.status-button-group input[type=radio]:checked+.status-btn{color:var(--text-on-color);border-color:transparent;background-color:var(--primary-color)}.status-date-tooltip{position:absolute;top:calc(100% + var(--space-half));left:50%;transform:translate(-50%);z-index:10;padding:var(--space-1);background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-default)}.status-button-group__item:hover .status-date-tooltip:not([hidden]){opacity:1;pointer-events:auto}.status-date-tooltip:hover{opacity:1;pointer-events:auto}.status-date-tooltip--editing{opacity:1!important;pointer-events:auto!important}.status-date-tooltip__date{display:block;font-size:var(--t-2xs);color:var(--text-secondary);cursor:pointer;padding:2px var(--space-half);border-radius:2px;transition:color var(--duration-fast) var(--ease-default)}.status-date-tooltip__date:hover{color:var(--text-primary)}.status-date-tooltip--editing .status-date-tooltip__date{display:none}.status-date-tooltip__edit{display:flex;align-items:center;gap:var(--space-half)}.status-date-tooltip .status-date-input{font-size:var(--t-2xs);padding:2px var(--space-half);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-primary);width:120px}.status-date-tooltip__update{font-size:var(--t-2xs);padding:2px var(--space-1);white-space:nowrap;background:var(--primary-color);color:var(--bg-color);border:none;border-radius:var(--radius-sm);cursor:pointer}[data-theme=dark] .status-date-tooltip__update{background:var(--text-primary);color:var(--bg-color)}[data-theme=dark] .status-date-tooltip{background:var(--card-bg);border-color:var(--border-color)}[data-theme=dark] .status-date-tooltip .status-date-input{color-scheme:dark}.modal-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.modal-tabs::-webkit-scrollbar{display:none}.modal-tab{padding:var(--space-2) var(--space-3)}.modal-tab.active{color:var(--primary-color)}.modal-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background-color:var(--primary-color)}.tab-panels{min-height:300px}.tab-panel{display:none}.tab-panel.active{display:block}.form-section{margin-bottom:var(--space-4)}.form-section h3{font-size:var(--t-base);font-weight:500;margin-bottom:var(--space-3);color:var(--text-primary)}.form-group{margin-bottom:var(--space-2)}.form-group input[readonly]{background-color:var(--surface-subtle);cursor:not-allowed;color:var(--text-secondary)}.form-group input.calculated-field{background-color:#fef3c7;border-color:#f59e09}[data-theme=dark] .form-group input.calculated-field{background-color:#422006;border-color:#d97708}.form-group small{display:block;margin-top:var(--space-half);font-size:11px;color:var(--text-secondary)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:var(--space-2)}.notes-timeline{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2);max-height:min(320px,50vh);overflow-y:auto}.notes-timeline__empty{color:var(--text-muted);font-size:var(--t-sm)}.notes-timeline__entry{display:flex;flex-direction:column;gap:2px;padding:var(--space-1) var(--space-2);background-color:var(--surface-subtle);border-radius:var(--radius-sm);border-inline-start:3px solid var(--border-color)}.notes-timeline__date{font-size:var(--t-xs);color:var(--text-muted);font-weight:600}.notes-timeline__text{font-size:var(--t-sm);line-height:1.5;white-space:pre-wrap}.notes-add{display:flex;flex-direction:column;gap:var(--space-1)}.notes-add__input{resize:vertical}.invoices-list{margin-bottom:var(--space-2)}.invoice-row,.expense-row{padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.invoice-row__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.invoice-row__number{font-weight:600;font-size:var(--t-sm)}.invoice-row__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1)}.invoices-actions{display:flex;gap:var(--space-1)}.field-hint{display:block;margin-block-start:2px;font-size:var(--t-2xs);color:var(--text-secondary);min-height:1em}.billing-plan{margin-bottom:var(--space-3)}.billing-plan__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-1);margin-bottom:var(--space-1)}.billing-plan__title{font-size:var(--t-sm);font-weight:600;margin:0}.billing-plan__title--log{margin-bottom:var(--space-1)}.billing-plan__controls{display:flex;gap:var(--space-1);align-items:center}.billing-plan__summary{font-size:var(--t-xs);color:var(--text-secondary);margin:0 0 var(--space-1)}.billing-plan__summary[data-state=mismatch]{color:var(--warning-color, var(--text-primary));font-weight:500}.billing-point{padding:var(--space-1) var(--space-2);margin-bottom:var(--space-1)}.billing-point__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.billing-point__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1)}.billing-point__status{font-size:var(--t-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px var(--space-half);border-radius:var(--radius-pill, 999px);color:var(--text-secondary);background-color:var(--surface-subtle)}.billing-point__status[data-state=invoiced]{color:#1a1a1a;background-color:var(--completed-color)}.billing-point__status[data-state=paid]{color:#1a1a1a;background-color:var(--paid-color)}.expenses-section{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-color)}.expenses-section>label{display:block;font-weight:600;margin-bottom:var(--space-1)}.expense-row__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.expense-row__label{font-weight:600;font-size:var(--t-sm)}.expense-row__fields{display:grid;grid-template-columns:2fr 1fr auto;gap:var(--space-1);align-items:end}.expense-row__passthrough{display:flex;align-items:center;gap:4px;padding-bottom:4px}.expense-row__passthrough input[type=checkbox]{margin:0}.expense-row__passthrough label{font-size:var(--t-xs);margin-bottom:0}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:start;padding-top:10vh;z-index:1000}.modal-content{width:min(600px,90vw);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-header{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.modal-header h2{font-size:var(--t-md);font-weight:500}.modal-close{background:none;border:none;font-size:21px;color:var(--text-secondary);cursor:pointer;padding:var(--space-half);line-height:1;transition:color var(--duration-fast) var(--ease-default)}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:var(--space-3);overflow-y:auto;overscroll-behavior:contain}.modal-actions{display:flex;justify-content:space-between;gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-color)}.modal-actions-left{display:flex;gap:var(--space-1)}.modal-actions-right{display:flex;gap:var(--space-2)}.modal-wide{width:min(960px,95vw)}.text-muted{color:var(--text-secondary)}.metrics-modal-body{padding:0;display:flex;flex-direction:column;height:calc(90vh - 120px)}.focus-modal-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-3);overflow-y:auto}.focus-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-color);padding-block-end:0}.focus-tabs__btn{border-bottom:2px solid transparent;margin-block-end:-1px}.focus-tabs__btn.active{color:var(--text-primary);border-bottom-color:var(--text-primary)}.focus-tab-panel{display:none}.focus-tab-panel.active{display:flex;flex-direction:column;gap:var(--space-4)}.focus-scorecard__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px}.focus-metric{padding:var(--space-2) var(--space-3);background-color:var(--card-bg);border:none;border-radius:0;cursor:pointer;position:relative;transition:background-color .2s ease}.focus-metric:hover,.focus-metric:focus-visible{background-color:var(--surface-subtle)}.focus-metric:focus-visible{outline:2px solid var(--accent-color, var(--text-secondary));outline-offset:2px}.focus-metric[aria-expanded=true]{background-color:var(--surface-subtle)}.focus-metric__value{font-size:var(--t-lg);font-weight:500;color:var(--text-primary);line-height:var(--leading-heading);font-variant-numeric:tabular-nums}.focus-metric__label{font-size:var(--t-sm);color:var(--text-secondary);margin-top:var(--space-half)}.focus-metric__status{font-size:var(--t-xs);font-weight:500;margin-top:var(--space-half)}.focus-metric__status--good{color:var(--success-color)}.focus-metric__status--warning{color:var(--warning-color)}.focus-metric__status--danger{color:var(--danger-color)}.focus-metric__insight{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease,margin-top .25s ease,padding-top .25s ease;font-size:var(--t-xs);color:var(--text-secondary);line-height:1.5}.focus-metric__insight-text{overflow:hidden}.focus-metric[aria-expanded=true] .focus-metric__insight{grid-template-rows:1fr;margin-top:var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--border-color)}.focus-section__title{font-size:var(--t-base);font-weight:600;color:var(--text-primary);margin:0}.focus-attention__list{margin-top:var(--space-2);display:flex;flex-direction:column;gap:1px}.attention-item{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-1) var(--space-2);background-color:var(--card-bg);border:none;border-radius:0;font-size:var(--t-sm)}.attention-item__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.attention-item__dot--danger{background-color:var(--danger-color)}.attention-item__dot--warning{background-color:var(--warning-color)}.attention-item__dot--info{background-color:var(--secondary-color)}.attention-item__text{flex:1;color:var(--text-primary);min-width:0}.attention-item__text strong{font-weight:600}.attention-item__amount{font-weight:600;color:var(--text-primary);white-space:nowrap}.attention-item__action-btn{font-size:var(--t-xs);color:var(--accent-color, oklch(.629 .199 264.4));background:none;border:none;cursor:pointer;padding:var(--space-half) var(--space-1);white-space:nowrap;border-radius:var(--radius-sm);transition:background-color .15s ease}.attention-item__action-btn:hover{background-color:var(--surface-subtle)}.attention-item__action-btn:focus-visible{outline:2px solid var(--accent-color, oklch(.629 .199 264.4));outline-offset:2px}.attention-item__inline-action{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;width:100%}.attention-item__inline-content{overflow:hidden;display:flex;flex-direction:column;gap:var(--space-1);padding-top:0;transition:padding-top .25s ease}.attention-item__inline-action.is-open{grid-template-rows:1fr}.attention-item__inline-action.is-open>.attention-item__inline-content{padding-top:var(--space-1)}.attention-item__instruction{width:80%;padding:var(--space-1) var(--space-2);font-size:var(--t-sm);font-family:inherit;border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--card-bg);color:var(--text-primary)}.attention-item__instruction:focus{outline:2px solid var(--accent-color, oklch(.629 .199 264.4));outline-offset:1px;border-color:transparent}.attention-item__controls{display:flex;gap:var(--space-1)}.attention-item__execute,.attention-item__snooze{font-size:var(--t-xs);padding:var(--space-half) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-primary);transition:background-color .15s ease,border-color .15s ease}.attention-item__execute:hover{background-color:var(--accent-color, oklch(.629 .199 264.4));color:var(--text-on-color);border-color:var(--accent-color, oklch(.629 .199 264.4))}.attention-item__snooze:hover{background-color:var(--surface-subtle)}.attention-item__execute:focus-visible,.attention-item__snooze:focus-visible{outline:2px solid var(--accent-color, oklch(.629 .199 264.4));outline-offset:2px}.attention-item__execute:disabled{opacity:.5;cursor:not-allowed}.attention-item__result{font-size:var(--t-xs);line-height:1.5;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.attention-item__result:empty{display:none}.attention-item__result--loading{color:var(--text-secondary);font-style:italic}.attention-item__result--success{color:var(--success-color);background-color:color-mix(in oklch,var(--success-color) 8%,transparent)}.attention-item__result--error{color:var(--danger-color);background-color:color-mix(in oklch,var(--danger-color) 8%,transparent)}.attention-clear{padding:var(--space-3);text-align:center;color:var(--text-secondary);font-size:var(--t-sm);background-color:var(--card-bg);border:none;border-radius:0}.focus-coach__header{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.focus-coach__modes{display:flex;gap:var(--space-1)}.focus-coach__mode{padding:var(--space-half) var(--space-2);border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-secondary);border-radius:var(--radius-sm);corner-shape:squircle;cursor:pointer;font-size:var(--t-sm);font-weight:500;transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.focus-coach__mode:hover{background:var(--surface-subtle);color:var(--text-primary)}.focus-coach__mode.active{background:var(--primary-color);color:var(--text-on-color);border-color:var(--primary-color)}.btn--sm{padding:var(--space-1) var(--space-1);font-size:var(--t-xs)}.btn--xs{padding:2px var(--space-half);font-size:var(--t-xs);line-height:1.4}.focus-coach__content{margin-top:var(--space-2);padding:var(--space-3);background:var(--surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;min-height:120px;color:var(--text-primary);line-height:1.6}.focus-coach__content h3{font-size:var(--t-md);margin:var(--space-2) 0 var(--space-1)}.focus-coach__content h3:first-child{margin-top:0}.focus-coach__content p{margin:var(--space-1) 0}.focus-coach__content ul,.focus-coach__content ol{margin:var(--space-1) 0;padding-left:var(--space-3);list-style:revert}.focus-coach__content li{margin:var(--space-half) 0}.focus-coach__content strong{font-weight:600}.focus-coach__controls{display:flex;align-items:center;gap:var(--space-1);flex:1}.coach-onboarding{margin-top:var(--space-2);padding:var(--space-3);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.coach-onboarding__message{font-size:var(--t-sm);color:var(--text-secondary)}.onboarding-modal{align-items:center;padding-top:0;z-index:1100}.onboarding-modal__container{max-width:420px;width:90%;display:flex;flex-direction:column;align-items:center;gap:var(--space-3);position:relative}.onboarding-modal__progress{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.onboarding-modal__step-label{font-size:var(--t-xs);color:var(--text-secondary)}.onboarding-modal__dots{display:flex;gap:var(--space-1)}.onboarding-modal__dot{width:8px;height:8px;border-radius:50%;background:var(--border-color);transition:background .2s ease}.onboarding-modal__dot--active{background:var(--text-primary)}.onboarding-modal__dot--done{background:var(--text-secondary)}.onboarding-card{position:relative;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-xl);corner-shape:squircle;box-shadow:var(--shadow-float);width:100%;min-height:360px;display:flex;flex-direction:column;transition:opacity .2s ease,transform .2s ease}.onboarding-card__body{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-5) var(--space-4) var(--space-2);text-align:center}.onboarding-card__question{font-size:var(--t-lg);font-weight:500;color:var(--text-primary);line-height:var(--leading-heading);max-width:32ch}.onboarding-card__footer{padding:var(--space-3);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--space-2)}.onboarding-card__textarea{width:100%;padding:var(--space-1) 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);background:var(--card-bg);color:var(--text-primary);font-family:inherit;resize:vertical;min-height:2.5rem;max-height:8rem;line-height:1.5}.onboarding-card__textarea:focus-visible{outline:2px solid var(--border-color);outline-offset:2px}.onboarding-card--summary{min-height:0;max-height:80vh}.onboarding-card--summary .onboarding-card__body{align-items:flex-start;text-align:left;flex-direction:column;gap:var(--space-3);padding:var(--space-4);overflow-y:auto}.onboarding-card--summary .onboarding-card__footer{align-items:center}.onboarding-summary__title{font-size:var(--t-md);font-weight:600;color:var(--text-primary)}.onboarding-summary__intro{font-size:var(--t-sm);color:var(--text-secondary)}.onboarding-summary__list{display:grid;grid-template-columns:auto 1fr;gap:var(--space-half) var(--space-2);width:100%}.onboarding-summary__list dt{font-size:var(--t-xs);font-weight:600;color:var(--text-secondary);letter-spacing:.01em;padding-top:2px}.onboarding-summary__list dd{font-size:var(--t-sm);color:var(--text-primary);line-height:1.5}.onboarding-summary__section-title{font-size:var(--t-sm);font-weight:600;color:var(--text-primary)}.onboarding-summary__bullets{list-style:none;padding:0}.onboarding-summary__bullets li{font-size:var(--t-sm);color:var(--text-secondary);padding-block:var(--space-half);padding-inline-start:var(--space-2);position:relative}.onboarding-summary__bullets li:before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;border-radius:50%;background-color:var(--border-color);transform:translateY(-50%)}.onboarding-modal__close{position:absolute;top:var(--space-2);right:var(--space-2);background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:var(--space-half);line-height:1}.onboarding-modal__close:hover{color:var(--text-primary)}.onboarding-modal__close:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.onboarding-card__thinking{display:flex;align-items:center;justify-content:center}.onboarding-card__thinking .loading-spinner{width:24px;height:24px;border-width:2px;margin:0}.onboarding-card--exiting{opacity:0;transform:translateY(-16px)}.onboarding-card--entering{opacity:0;transform:translateY(16px)}@media(prefers-reduced-motion:reduce){.onboarding-card{transition:none}.onboarding-card--exiting,.onboarding-card--entering{opacity:1;transform:none}}.coach-checkin,.coach-weekly-review{margin-top:var(--space-2);padding:var(--space-3)}.coach-checkin__greeting{font-size:var(--t-sm);color:var(--text-secondary);margin-bottom:var(--space-2)}.coach-checkin__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.coach-checkin__actions{display:flex;gap:var(--space-1);margin-top:var(--space-2);justify-content:flex-end}.coach-weekly-review__intro{font-size:var(--t-sm);color:var(--text-secondary);margin-bottom:var(--space-2)}.coach-weekly-review__fields{display:flex;flex-direction:column;gap:var(--space-2)}.coach-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:120px;text-align:center;color:var(--text-secondary)}.coach-loading .loading-spinner{width:24px;height:24px;border:2px solid var(--surface-subtle);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-1)}.coach-empty{color:var(--text-secondary);font-size:var(--t-sm);text-align:center;padding:var(--space-3)}.coach-error{color:var(--danger-color);font-size:var(--t-sm);text-align:center;padding:var(--space-3)}.coach-chat{margin-top:var(--space-2)}.coach-chat__history{display:flex;flex-direction:column;gap:var(--space-1);max-height:min(320px,50vh);overflow-y:auto;padding:var(--space-2);background:var(--surface-subtle);border:1px solid var(--border-color);border-radius:var(--radius-sm);corner-shape:squircle;margin-bottom:var(--space-1)}.coach-chat__history:empty{display:none}.coach-chat__message{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);line-height:1.5;max-width:85%}.coach-chat__message--user{align-self:flex-end;background:var(--primary-color);color:var(--text-on-color)}.coach-chat__message--assistant{align-self:flex-start;background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-primary)}.coach-chat__message--assistant h3,.coach-chat__message--assistant h4{font-size:var(--t-sm);margin:var(--space-1) 0 var(--space-half)}.coach-chat__message--assistant h3:first-child,.coach-chat__message--assistant h4:first-child{margin-top:0}.coach-chat__message--assistant ul,.coach-chat__message--assistant ol{margin:var(--space-half) 0;padding-left:var(--space-3);list-style:revert}.coach-chat__message--assistant li{margin:var(--space-half) 0}.coach-chat__message--assistant strong{font-weight:600}.coach-chat__message--typing{align-self:flex-start;font-style:italic;color:var(--text-secondary);font-size:var(--t-sm);padding:var(--space-1) var(--space-2)}.coach-chat__input{display:flex;gap:var(--space-1);align-items:flex-end}.coach-chat__input textarea{flex:1;resize:vertical;min-height:2.5rem;max-height:8rem;line-height:1.5}.status-indicator{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-half) 12px;border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-sm);font-weight:500}.status-good{background-color:#71e79c33;color:var(--success-color)}.status-warning{background-color:#f9731533;color:var(--warning-color)}.status-danger{background-color:#ec7f7f33;color:var(--danger-color)}.risk-item{background-color:var(--surface-subtle);padding:var(--space-2);border-radius:var(--radius-sm);corner-shape:squircle;margin-bottom:12px;border:1px solid var(--border-color)}.risk-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.risk-item-title{font-weight:500}.risk-badge{padding:var(--space-half) var(--space-1);border-radius:var(--radius-sm);corner-shape:squircle;font-size:var(--t-xs);font-weight:600}.risk-high{background-color:var(--danger-color);color:var(--text-on-color)}.risk-medium{background-color:var(--warning-color);color:var(--text-on-color)}.risk-low{background-color:var(--success-color);color:var(--text-on-color)}.contacts-list{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-2)}.contact-row{display:grid;grid-template-columns:1fr 1fr auto auto;gap:var(--space-1);align-items:start;padding:12px}.contact-row__fields{display:contents}.contact-row__field{width:100%}.contact-row__field input,.contact-row__field select{font-size:13px}.contact-row__field label{font-size:11px;letter-spacing:.01em;margin-bottom:var(--space-half)}.contact-row__meta{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-1)}.contact-row__actions{display:flex;align-items:center;gap:var(--space-1);padding-top:20px}.contact-row__primary{display:flex;align-items:center;gap:var(--space-half);font-size:var(--t-xs);color:var(--text-secondary);padding-top:20px;white-space:nowrap}.contact-row__primary input[type=checkbox]{width:1rem;height:1rem}.project-contacts{display:flex;flex-direction:column;gap:6px;padding:var(--space-1);background-color:var(--surface-subtle);border-radius:var(--radius-sm);corner-shape:squircle;min-height:var(--space-4);border:1px solid var(--border-color)}.project-contacts .text-muted{color:var(--text-secondary);font-size:13px}.project-contact-item{display:flex;align-items:center;gap:var(--space-1);font-size:var(--t-sm)}.project-contact-item input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;flex-shrink:0;border:2px solid var(--border-color);border-radius:6px;corner-shape:squircle;background-color:var(--card-bg);cursor:pointer;position:relative;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default)}.project-contact-item input[type=checkbox]:after{content:"";position:absolute;inset:0;opacity:0;width:5px;height:9px;border-right:2px solid var(--text-on-color);border-bottom:2px solid var(--text-on-color);margin:auto;transform:rotate(45deg) translateY(-1px);transition:opacity var(--duration-fast) var(--ease-default)}.project-contact-item input[type=checkbox]:checked{background-color:var(--primary-color);border-color:var(--primary-color)}.project-contact-item input[type=checkbox]:checked:after{opacity:1}.project-contact-item input[type=checkbox]:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.project-contact-item input[type=checkbox]:hover:not(:checked){border-color:var(--text-secondary)}.project-contact-item__role{color:var(--text-secondary);font-size:var(--t-xs)}.loading-spinner{width:40px;height:40px;border:3px solid var(--surface-subtle);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:var(--space-2)}@keyframes spin{to{transform:rotate(360deg)}}.utility-buttons{position:fixed;bottom:clamp(var(--space-2),3vw,var(--space-3));right:clamp(var(--space-2),3vw,var(--space-3));display:flex;flex-direction:column;gap:var(--space-1);z-index:100;transition:right var(--duration-normal) ease}body.chat-open .utility-buttons{right:calc(var(--chat-panel-width) + var(--page-inset))}.utility-btn{width:40px;height:40px;border:1px solid var(--border-color);background-color:var(--card-bg);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--duration-fast) var(--ease-default),background-color var(--duration-fast) var(--ease-default);border-radius:var(--radius-lg);corner-shape:squircle;box-shadow:var(--shadow-sm)}.utility-btn:hover,.utility-btn--active{color:var(--text-primary);background-color:var(--surface-subtle)}.utility-btn svg{width:18px;height:18px}.demo-banner{position:fixed;bottom:0;z-index:1000;width:100dvw;display:flex;align-items:center;gap:var(--space-2);padding-block:var(--space-1);padding-inline:var(--space-3);background-color:#e5f0fc;border-block-end:1px solid oklch(.85 .04 250);font-size:var(--t-sm)}.demo-banner__label{font-weight:600;color:#224a71;letter-spacing:.01em;font-size:var(--t-xs)}.demo-banner__hint{color:var(--text-secondary);flex:1}.demo-banner__exit{padding:var(--space-half) var(--space-2);border:1px solid oklch(.85 .04 250);border-radius:4px;background:transparent;color:#224a71;font-size:var(--t-xs);font-weight:600;cursor:pointer;transition:background-color .15s ease}.demo-banner__exit:hover{background-color:#d0e0f2}.demo-banner__exit:focus-visible{outline:2px solid oklch(.5 .1 250);outline-offset:2px}[data-theme=dark] .demo-banner{background-color:#1a222b;border-block-end-color:#2a3c4f}[data-theme=dark] .demo-banner__label{color:#87b2df}[data-theme=dark] .demo-banner__exit{border-color:#374a5d;color:#87b2df}[data-theme=dark] .demo-banner__exit:hover{background-color:#222f3c}.hidden{display:none}[hidden]{display:none!important}@media(max-width:768px){.metrics-bar{display:none}.coverage-line{border-top:0;gap:var(--space-1) var(--space-2)}.coverage-line__note{display:none}.controls-container{gap:var(--space-2)}.search-wrapper{max-width:none}.filter-controls{width:100%;flex-direction:column;gap:var(--space-2);align-items:stretch}.sort-wrapper{margin-inline-start:0;width:100%}.sort-select{width:100%}.focus-scorecard__grid{grid-template-columns:repeat(2,1fr)}.focus-coach__header{flex-direction:column;align-items:stretch}.focus-coach__controls{flex-wrap:wrap}.focus-coach__modes{justify-content:center}.coach-checkin__fields{grid-template-columns:1fr}}body.chat-open [data-explore]{position:relative;cursor:copy;transition:background-color var(--duration-normal) var(--ease-default)}body.chat-open [data-explore]:after{content:"";position:absolute;top:8px;right:8px;width:10px;height:10px;background:var(--confirmed-color);clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%);opacity:.35;animation:ec-twinkle 4s ease-in-out infinite;pointer-events:none;z-index:1}body.chat-open [data-explore]:nth-child(2n):after{animation-delay:-1.3s}body.chat-open [data-explore]:nth-child(3n):after{animation-delay:-2.6s}body.chat-open [data-explore]:nth-child(5n):after{animation-delay:-.7s}@keyframes ec-twinkle{0%,to{opacity:.2;transform:scale(.7) rotate(0)}50%{opacity:.55;transform:scale(1) rotate(45deg)}}body.chat-open [data-explore]:hover{background-color:color-mix(in srgb,var(--confirmed-color) 7%,transparent)}body.chat-open [data-explore]:hover:after{animation:ec-twinkle-hover 1.5s ease-in-out infinite}@keyframes ec-twinkle-hover{0%,to{opacity:.5;transform:scale(1) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(90deg)}}[data-explore].ec-active{outline:2px solid var(--confirmed-color);outline-offset:-2px}body.chat-open [data-explore].ec-active:after{opacity:1;animation:none;transform:scale(1.2)}.ec{position:fixed;top:0;right:0;z-index:1;width:var(--chat-panel-width);height:100vh;height:100dvh;display:flex;flex-direction:column;padding:var(--space-2);padding-left:var(--space-3);background-color:#090909;opacity:0;pointer-events:none;transition:opacity var(--duration-normal) var(--ease-default)}.ec--open{opacity:1;pointer-events:auto}.ec__body{flex:1;min-height:0;display:flex;flex-direction:column;background-color:var(--card-bg);border-radius:var(--radius-xl);corner-shape:squircle;overflow:hidden}.ec__body--empty .ec__history{display:none}.ec__body--empty .ec__input-area{flex:1;display:flex;flex-direction:column;justify-content:center;border-top:none;background:transparent;padding-bottom:20%}.ec__body--empty .ec__input-wrap{background-color:var(--surface-subtle);border-radius:100dvw;align-items:center}.ec__body--empty .ec__send{width:40px;height:40px}[data-theme=dark] .ec__body--empty .ec__input-wrap{background-color:#e4e4e4}.ec__body--empty .ec__input{padding:var(--space-2) var(--space-3);padding-right:0;color:var(--text-secondary)}[data-theme=dark] .ec__body--empty .ec__input{color:#555}[data-theme=dark] .ec__body--empty .ec__send{background-color:#bebebe}.ec__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-color);flex-shrink:0}.ec__title{font-size:var(--t-md);font-weight:600;line-height:var(--leading-heading)}.ec__close{background:none;border:none;cursor:pointer;padding:var(--space-half);line-height:1;color:var(--text-secondary);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-default)}.ec__close:hover{color:var(--text-primary)}.ec__close:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.ec__context-bar{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-half) 0;flex-shrink:0}.ec__context-label{flex:1;font-size:var(--t-xs);font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec__context-clear{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-default)}.ec__context-clear:hover{color:var(--text-primary)}.ec__context-clear:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.ec__history{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.ec__msg{font-size:var(--t-sm);line-height:var(--leading-body)}.ec__msg--user{align-self:flex-end;max-width:85%;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background-color:var(--text-secondary);color:var(--text-on-color)}.ec__msg--assistant{align-self:stretch;color:var(--text-primary)}.ec__msg--thinking .ec__msg-content:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background-color:var(--text-secondary);animation:ec-thinking 1.4s ease-in-out infinite;box-shadow:12px 0 var(--text-secondary),24px 0 var(--text-secondary)}@keyframes ec-thinking{0%,80%,to{opacity:.25}40%{opacity:.9}}.ec__msg--error .ec__msg-content{color:var(--danger-color);font-size:var(--t-xs)}.ec__tools{display:flex;flex-flow:row wrap;gap:var(--space-half);margin-bottom:var(--space-half)}.ec__tools:empty{display:none}.ec__tool{font-size:var(--t-2xs);background-color:var(--surface-subtle);color:var(--text-secondary);border-radius:var(--radius-md);padding:var(--space-1);line-height:1.4}.ec__tool--pending{animation:ec-tool-pulse 1.5s ease-in-out infinite}@keyframes ec-tool-pulse{0%,to{opacity:.7}50%{opacity:.3}}.ec__msg-content h3{font-size:var(--t-sm);font-weight:600;margin:var(--space-1) 0 var(--space-half)}.ec__msg-content h3:first-child{margin-top:0}.ec__msg-content h4{font-size:var(--t-sm);font-weight:600;margin:var(--space-1) 0 var(--space-2)}.ec__msg-content p{margin:var(--space-2) 0}.ec__msg-content ul,.ec__msg-content ol{margin:var(--space-half) 0;padding-left:var(--space-3);list-style:disc}.ec__msg-content ol{list-style:decimal}.ec__msg-content li{margin:4px 0 12px}.ec__msg-content hr{margin-block:16px;border:2px solid var(--border-color)}.ec__msg-content strong{font-weight:600}.ec__msg-content code{font-family:var(--font-mono);font-size:.9em;background-color:var(--surface-subtle);padding:1px var(--space-half);border-radius:4px}.ec__input-area{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-color);flex-shrink:0;background-color:#f9f9f9}.ec__input-wrap{position:relative;display:flex;align-items:flex-end;transition:border-color var(--duration-fast) var(--ease-default)}.ec__input-wrap:focus-within{outline:none}.ec__input{flex:1;resize:none;border:none;background:transparent;padding:var(--space-1) var(--space-2);padding-right:0;font-family:inherit;font-size:var(--t-sm);line-height:var(--leading-body);color:var(--text-primary);max-height:160px}.ec__input::placeholder{color:var(--text-secondary)}.ec__input:focus-visible{outline:none}.ec__send{width:32px;height:32px;flex-shrink:0;margin:var(--space-half);border:none;border-radius:100dvw;background-color:var(--text-primary);color:var(--bg-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity var(--duration-fast) var(--ease-default)}.ec__send:hover{opacity:.85}.ec__send:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.ec__send:disabled{opacity:.4;cursor:not-allowed}[data-theme=dark] .ec__input-area{--ec-input-bg: oklch(.175 0 0)}@media(prefers-reduced-motion:reduce){.utility-buttons,.ec,.app-shell__main{transition:none}.ec__msg--thinking .ec__msg-content:before{animation:none;opacity:.5}.ec__tool--pending{animation:none;opacity:.5}}.setup-wizard{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;background-color:#00000080;padding:var(--space-2)}.setup-wizard__card{background:var(--surface-subtle);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 8px 32px #0000001f;width:min(520px,100%);max-height:calc(100vh - var(--space-4));overflow-y:auto}.setup-wizard__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-3) 0}.setup-wizard__title{font-size:var(--t-lg);font-weight:600;line-height:1.2;color:var(--text-primary);margin:0}.setup-wizard__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:4px;color:var(--text-secondary);font-size:var(--t-md);cursor:pointer;flex-shrink:0;transition:background-color .15s ease,color .15s ease}.setup-wizard__close:hover{background-color:var(--border-color);color:var(--text-primary)}.setup-wizard__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setup-wizard__steps{display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2) var(--space-3) 0}.setup-wizard__dot{width:8px;height:8px;padding:0;border:none;border-radius:50%;background-color:var(--border-color);flex-shrink:0;cursor:pointer;transition:background-color .2s ease}.setup-wizard__dot--active{background-color:var(--text-primary)}.setup-wizard__dot--done{background-color:var(--text-secondary)}.setup-wizard__body{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.setup-wizard__step-title{font-size:var(--t-md);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-1);line-height:1.3}.setup-wizard__step-subtitle{font-size:var(--t-sm);color:var(--text-secondary);margin:0 0 var(--space-2);line-height:1.5}.setup-wizard__repeatable{display:flex;flex-direction:column;gap:0}.setup-wizard__repeatable-item{display:flex;align-items:flex-end;gap:var(--space-1);padding-block:var(--space-2);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.setup-wizard__repeatable-item:first-child{padding-top:0}.setup-wizard__repeatable-item:last-child{border-bottom:none;padding-bottom:0}.setup-wizard__repeatable-item>.form-group,.setup-wizard__repeatable-item>.form-group--inline{flex:1;min-width:0}.setup-wizard__repeatable-item>.btn-remove{flex-shrink:0;margin-bottom:1px}.setup-wizard__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);border-top:1px solid var(--border-color)}.form-group--inline{display:flex;flex-direction:column;gap:4px}.setup-banner{position:fixed;bottom:0;left:0;right:0;z-index:200;padding:var(--space-2) var(--space-3);background-color:color-mix(in srgb,var(--accent) 8%,var(--card-bg));border-top:1px solid color-mix(in srgb,var(--accent) 24%,transparent);display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--t-sm);color:var(--text-primary);text-align:center}.setup-banner p{margin:0}.setup-banner .btn{flex-shrink:0}.setup-banner__dismiss{flex-shrink:0;background:none;border:none;cursor:pointer;padding:var(--space-half);color:var(--text-secondary);border-radius:var(--radius-sm);line-height:1;transition:color var(--duration-fast) var(--ease-default)}.setup-banner__dismiss:hover{color:var(--text-primary)}.setup-banner__dismiss:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.setup-wizard__close,.setup-wizard__dot{transition:none}}.treasury-view{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-4)}.treasury__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding-block-end:var(--space-2);border-block-end:1px solid var(--border-color)}.treasury__title{font-size:var(--t-xl);line-height:var(--leading-heading);font-weight:700;margin:0}.treasury__subtitle{font-size:var(--t-sm);color:var(--text-secondary);margin:var(--space-half) 0 0}.treasury__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.treasury__synced{font-size:var(--t-xs);color:var(--text-secondary)}.treasury__sync-btn{font:inherit;font-size:var(--t-sm);padding:var(--space-1) var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text-primary);cursor:pointer;transition:background var(--duration-fast) var(--ease-default)}.treasury__sync-btn:hover{background:var(--surface-subtle)}.treasury__sync-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.treasury__sync-btn:disabled{opacity:.6;cursor:default}.treasury__chip{display:inline-flex;align-items:baseline;gap:var(--space-half);font-size:var(--t-2xs);padding:var(--space-half) var(--space-1);border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--surface-subtle)}.treasury__chip-name{font-weight:600}.treasury__chip-state{color:var(--text-secondary)}.treasury__chip--ok{border-color:color-mix(in oklch,var(--success-color) 50%,var(--border-color))}.treasury__chip--partial{border-color:color-mix(in oklch,var(--warning-color) 50%,var(--border-color))}.treasury__chip--error{border-color:color-mix(in oklch,var(--danger-color) 55%,var(--border-color))}.treasury__chip--off{opacity:.7}.treasury__section{display:flex;flex-direction:column;gap:var(--space-2)}.treasury__section-title{font-size:var(--t-2xs);letter-spacing:.01em;color:var(--text-secondary);font-weight:600;margin:0}.treasury__ccy-strip{display:flex;flex-wrap:wrap;gap:var(--space-1)}.treasury__ccy-pill{display:inline-flex;align-items:baseline;gap:var(--space-1);padding:var(--space-half) var(--space-2);border-radius:var(--radius-lg);background:var(--surface-subtle)}.treasury__ccy-code{font-size:var(--t-2xs);color:var(--text-secondary);font-weight:600}.treasury__ccy-total{font-size:var(--t-sm);font-weight:600;font-variant-numeric:tabular-nums}.treasury__balance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:var(--space-2)}.treasury__balance-card{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--card-bg);box-shadow:var(--shadow-sm)}.treasury__balance-card--muted{opacity:.65}.treasury__balance-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-1)}.treasury__balance-provider{font-size:var(--t-sm);color:var(--text-secondary)}.treasury__balance-ccy{font-size:var(--t-2xs);font-weight:600;letter-spacing:.04em;color:var(--text-secondary)}.treasury__balance-amount{font-size:var(--t-lg);font-weight:700;font-variant-numeric:tabular-nums;margin:0}.treasury__balance-sub{font-size:var(--t-xs);color:var(--text-secondary)}.treasury__balance-flag{font-size:var(--t-2xs);color:var(--warning-color);font-weight:600}.treasury__ledger{list-style:none;margin:0;padding:0}.treasury__ledger-day{font-size:var(--t-2xs);letter-spacing:.06em;color:var(--text-secondary);padding:var(--space-2) 0 var(--space-half);position:sticky;top:0;background:var(--card-bg)}.treasury__txn{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) 0;border-block-end:1px solid var(--border-color)}.treasury__txn-main{display:flex;flex-direction:column;gap:2px;min-width:0}.treasury__txn-party{font-size:var(--t-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.treasury__txn-sub{font-size:var(--t-xs);color:var(--text-secondary)}.treasury__txn-amount{font-size:var(--t-sm);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.treasury__txn--credit .treasury__txn-amount{color:var(--success-color)}.treasury__txn--debit .treasury__txn-amount{color:var(--text-primary)}.treasury__placeholder{font-size:var(--t-sm);color:var(--text-secondary);padding:var(--space-4) var(--space-2);text-align:center}.treasury__placeholder--error{color:var(--danger-color)}.treasury__placeholder-detail{font-size:var(--t-xs);color:var(--text-secondary);margin-top:var(--space-1)}.toast-stack{position:fixed;inset-block-end:var(--space-3);inset-inline-end:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);z-index:1200;max-inline-size:min(360px,calc(100vw - var(--space-4)));pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--bg-color);border:1px solid var(--border-color);border-inline-start:3px solid var(--text-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:var(--t-sm);line-height:1.4;pointer-events:auto;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.toast--visible{opacity:1;transform:translateY(0)}.toast--success{border-inline-start-color:var(--success-color)}.toast--error{border-inline-start-color:var(--danger-color)}.toast__message{flex:1}.toast__action{flex-shrink:0;background:none;border:none;padding:var(--space-half) var(--space-1);font:inherit;font-weight:600;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm)}.toast__action:hover{background:var(--surface-subtle)}.toast__action:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}.toast__dismiss{flex-shrink:0;background:none;border:none;padding:0;inline-size:24px;block-size:24px;font-size:var(--t-lg);line-height:1;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.toast__dismiss:hover{color:var(--text-primary)}.toast__dismiss:focus-visible{outline:2px solid var(--text-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){.toast{transition:opacity .12s linear;transform:none}.toast--visible{transform:none}}.next-steps{position:fixed;top:clamp(var(--space-2),3vw,var(--space-3));right:clamp(var(--space-2),3vw,var(--space-3));width:min(22rem,calc(100vw - var(--space-4)));z-index:900;transition:right var(--duration-normal) ease}.next-steps[hidden]{display:none}body.chat-open .next-steps{right:calc(var(--chat-panel-width) + var(--page-inset))}.next-step{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.next-step--ghost{position:absolute;inset-inline:0;top:0;height:100%;padding:0;pointer-events:none}.next-step--depth-1{transform:translateY(6px) scaleX(.96);opacity:.6}.next-step--depth-2{transform:translateY(12px) scaleX(.92);opacity:.35}.next-step__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-1)}.next-step__kind{font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--text-secondary)}.next-step--high .next-step__kind{color:var(--danger-color)}.next-step--medium .next-step__kind{color:var(--warning-color)}.next-step__count{font-size:10px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.next-step__title{margin:0;font-size:var(--t-md);font-weight:600;line-height:1.3;color:var(--text-primary)}.next-step__reason{margin:0;font-size:var(--t-sm);line-height:1.5;color:var(--text-secondary)}.next-step__meta{margin:0;font-size:10px;letter-spacing:.02em;color:var(--text-secondary);opacity:.7;font-variant-numeric:tabular-nums}.next-step__actions{display:flex;align-items:center;gap:var(--space-1);margin-block-start:var(--space-1)}.next-step__cta{flex:1}.next-step__secondary{background:none;border:0;padding:6px 8px;font:inherit;font-size:var(--t-xs);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm)}.next-step__secondary:hover{background-color:var(--surface-subtle);color:var(--text-primary)}.next-step__secondary:focus-visible,.next-step__cta:focus-visible{outline:2px solid var(--accent-color, currentColor);outline-offset:2px}.next-step-draft{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:var(--space-2);background-color:#0006}.next-step-draft__panel{width:min(40rem,100%);max-height:90vh;overflow-y:auto;background-color:var(--card-bg);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.next-step-draft__heading{margin:0;font-size:var(--t-lg);font-weight:600;color:var(--text-primary)}.next-step-draft__note,.next-step-draft__status{margin:0 0 var(--space-1);font-size:var(--t-sm);color:var(--text-secondary)}.next-step-draft__body{resize:vertical;min-height:12rem;line-height:1.6;font-family:inherit}.next-step-draft__actions{display:flex;align-items:center;gap:var(--space-1);margin-block-start:var(--space-2)}@media(prefers-reduced-motion:reduce){.next-steps{transition:none}}@media(max-width:768px){.next-steps{width:auto;inset-inline:clamp(var(--space-1),3vw,var(--space-2))}}
