:root{--bg:#f7f8fa;--paper:#fff;--ink:#24302e;--muted:#6d7976;--line:#e3e8e5;--green:#365d4d;--pale:#edf2ee;--lime:#dcecbb;--orange:#a36a39;--blue:#577890;--serif:Georgia,'Times New Roman',serif;--sans: -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 var(--sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #82a88a;outline-offset:3px}button{transition:background .15s,transform .15s}button:hover:not(:disabled){filter:brightness(.97)}[hidden]{display:none!important}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:#f0f3ef;border-right:1px solid #dde4dc;display:flex;flex-direction:column;padding:34px 22px}.brand{text-decoration:none;display:flex;align-items:center;font:600 36px/1 var(--serif);letter-spacing:-2px;margin:0 10px 42px;gap:11px}.brand-mark{font:42px/1 var(--sans);color:var(--green);letter-spacing:0}.brand-dot{color:#7c9c74;margin-left:-10px}.household-control{padding:0 10px 24px}.household-control label,.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:var(--muted);margin:0 0 10px}.household-control select{margin-top:9px;width:100%;border:0;background:transparent;font-weight:600;overflow:hidden;text-overflow:ellipsis}.nav-section{font-size:9px;letter-spacing:1.5px;color:var(--muted);padding:25px 12px 8px}.nav-link{display:flex;align-items:center;gap:13px;padding:11px 13px;margin:3px 0;border-radius:6px;text-decoration:none;color:#64706b;font-size:13px}.nav-link svg{width:18px;height:18px}.nav-link[aria-current=page]{background:#e0e8df;color:#284837;font-weight:650}.nav-link:hover{background:#e7ece5}.sidebar-bottom{margin-top:auto;padding:30px 12px 0}.sidebar-bottom p{font:18px/1.4 var(--serif);color:#677b67}.local-label{font-size:10px;color:var(--muted);display:flex;gap:6px;align-items:center}.local-label:before{content:'';width:5px;height:5px;background:#819974;border-radius:50%}.together-art{height:55px;display:flex;align-items:flex-end;padding-left:12px}.together-art i{display:block;width:27px;height:44px;border:1px solid #95a98c;border-radius:25px 25px 2px 2px;transform:rotate(-18deg);margin-left:-7px;background:#e3eacf}.together-art i:nth-child(2){height:57px;transform:rotate(0);background:#d4dfc4}.together-art i:nth-child(3){transform:rotate(18deg);background:#c5d5b8}.workspace{margin-left:224px}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;color:var(--muted);font-size:12px}.person-control{display:flex;align-items:center;gap:9px}.person-control label{font-size:11px}.person-control select{border:0;background:transparent;max-width:150px;font-weight:600;color:var(--ink)}.avatar{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#e5ebdb;color:#536749;font-size:12px;font-weight:600;flex-shrink:0}.avatar.small{width:29px;height:29px;font-size:10px}main{max-width:1440px;margin:auto;padding:40px 42px 48px;min-height:calc(100vh - 132px)}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}h1{font:normal clamp(30px,3vw,43px)/1.17 var(--serif);letter-spacing:-1.4px;margin:0 0 10px}h2{font:normal 23px/1.25 var(--serif);letter-spacing:-.5px;margin:0}h3{font-size:14px;font-weight:600;margin:0}p{margin:0}.subtitle{color:var(--muted);font-size:13px}.button{border:1px solid var(--line);background:white;border-radius:6px;padding:10px 15px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:18px;text-decoration:none;white-space:nowrap}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.text{background:none;border:0;color:var(--green);padding:0}.button.secondary{background:var(--pale)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{padding:24px 26px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head p{font-size:12px;color:var(--muted);margin-top:5px}.overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:22px}.hero{background:#e9efdf;border:1px solid #dce5d0;border-radius:10px;padding:28px 30px;position:relative;overflow:hidden;min-height:207px}.hero .eyebrow{color:#5b6f51}.hero-number{font-size:48px;line-height:1.15;letter-spacing:-2px;font-weight:450;font-variant-numeric:tabular-nums;margin:12px 0 10px}.hero-number small{font-size:13px;letter-spacing:0;color:#64745b;font-weight:400}.hero p{color:#5f7055;max-width:75%;font-size:12px}.hero .orb{position:absolute;width:144px;height:144px;right:-24px;top:47px;border:1px solid #b8caa7;border-radius:50%}.hero .orb:before,.hero .orb:after{content:'';position:absolute;inset:18px;border:1px solid #b8caa7;border-radius:50%}.hero .orb:after{inset:37px}.period-pill{font-size:10px;padding:4px 9px;border:1px solid #cfdabe;border-radius:30px;float:right;color:#5c704f}.overview-left,.overview-right{display:flex;flex-direction:column;gap:22px;min-width:0}.split-content{display:grid;grid-template-columns:150px 1fr;gap:25px;align-items:center;padding:4px 26px 28px}.donut{width:140px;height:140px;border-radius:50%;position:relative;display:grid;place-items:center;background:var(--pale)}.donut:before{content:'';position:absolute;inset:19px;background:#fff;border-radius:50%}.donut-center{position:relative;text-align:center;font:22px var(--serif)}.donut-center small{display:block;font:10px var(--sans);color:var(--muted);margin-top:4px}.funder{display:flex;align-items:center;gap:9px;padding:12px 0;border-bottom:1px solid var(--line)}.funder:last-child{border:0}.funder .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.funder-name{flex:1;font-size:12px}.funder-name small{display:block;color:var(--muted);font-size:10px}.funder-value{text-align:right;font-size:14px;font-weight:550;font-variant-numeric:tabular-nums}.funder-value small{display:block;color:var(--muted);font-size:10px;font-weight:400}.attention-count{width:24px;height:24px;background:#f5eee4;border-radius:50%;display:grid;place-items:center;color:#91673b;font-size:11px}.attention-item{padding:18px 24px;border-top:1px solid var(--line);display:flex;align-items:flex-start;gap:12px}.attention-icon{background:#f5eee4;width:29px;height:29px;display:grid;place-items:center;border-radius:8px;color:#9b753e;flex-shrink:0}.attention-item p{font-size:12px;color:var(--muted);margin:5px 0 11px;line-height:1.6}.attention-item h3{font-size:13px}.attention-item .button{font-size:11px}.plan-note{background:#edf0f5;border:1px solid #e0e5ed;border-radius:10px;padding:24px}.plan-note h2{font-size:22px;margin:7px 0 14px}.plan-note p{font-size:12px;color:#687585;line-height:1.8}.plan-note .button{margin-top:18px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:9px;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-weight:550;padding:11px 24px;background:#fafbf9;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}td{padding:16px 24px;border-bottom:1px solid #eef0ed}tr:last-child td{border-bottom:0}.right{text-align:right}.numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.transfer-person{display:flex;align-items:center;gap:10px}.transfer-person .avatar{width:29px;height:29px;font-size:10px}.muted{color:var(--muted)}.small-text{font-size:11px}.tag{font-size:9px;display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:4px;white-space:nowrap;background:#eef1ee;color:#657467}.tag:before{content:'';width:4px;height:4px;background:currentColor;border-radius:50%}.tag.estimated{color:#8c693a;background:#f8f1e4}.tag.asserted{color:#5b768b;background:#edf2f7}.tag.confirmed{color:#3e7052;background:#eaf3e9}.subtle-note{font-size:11px;color:var(--muted);padding:15px 24px;border-top:1px solid var(--line)}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}.search{background:white;border:1px solid var(--line);border-radius:6px;padding:10px 14px;min-width:240px;flex:1}.filter{border:1px solid var(--line);background:white;border-radius:6px;padding:10px}.empty{padding:48px 24px;text-align:center;color:var(--muted)}.empty h2{color:var(--ink);margin-bottom:10px}.empty p{max-width:400px;margin:auto;font-size:13px}.empty .button{margin-top:20px}.loading{padding:50px;color:var(--muted);text-align:center}.loading:before{content:'';display:block;width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;margin:0 auto 16px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{padding:15px 18px;background:#f8ede7;border:1px solid #ecd7c9;border-radius:7px;color:#865435;margin-bottom:18px;font-size:12px}.error-banner button{margin-left:15px}.evidence-list{padding:0 25px}.evidence{padding:22px 0;border-bottom:1px solid var(--line)}.evidence:last-child{border:0}.evidence h3{margin:8px 0;font-weight:500;font-size:15px}.evidence p{font-size:12px;color:var(--muted)}.evidence-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.evidence details{font-size:12px;color:var(--muted);margin-top:12px}.evidence summary{cursor:pointer}.evidence details p{padding-top:8px;overflow-wrap:anywhere}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:22px}.bank-card{background:#3a5549;color:white;border-radius:10px;padding:26px;min-height:180px;display:flex;flex-direction:column;justify-content:space-between;margin:24px}.bank-card .card-number{font-size:22px;letter-spacing:5px}.bank-card p{font-size:11px;color:#dbe3da}.status-line{display:flex;align-items:center;gap:12px;padding:28px}.status-line h2{font-size:30px}.status-orb{width:48px;height:48px;border-radius:50%;background:var(--pale);display:grid;place-items:center;font-size:22px;color:var(--green)}.danger{color:#9c5543}.actions{display:flex;gap:8px;margin-top:16px;align-items:center}.proposal{padding:24px;border-bottom:1px solid var(--line)}.proposal h3{font-size:16px;margin:12px 0 8px}.proposal p{color:var(--muted);font-size:12px}.conversation-layout{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:30px}.chat-panel{background:white;border:1px solid var(--line);border-radius:10px;padding:25px;display:flex;flex-direction:column;min-height:590px}.chat-heading{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:20px}.chat-heading p{font-size:11px;color:var(--muted);margin-top:3px}.agent-symbol{font-size:31px;color:var(--green)}#thread{flex:1;max-height:48vh;min-height:240px;overflow:auto;padding:25px 0;display:flex;flex-direction:column;gap:18px}.welcome{text-align:center;padding:38px 10px}.welcome .agent-symbol{font-size:44px}.welcome h2{font-size:27px;margin:10px 0}.welcome p{font-size:12px;color:var(--muted)}.message{max-width:90%;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.message.member{align-self:flex-end;background:#edf2ea;padding:12px 17px;border-radius:10px 10px 0 10px}.message.agent{padding:8px 3px}.message.blocked{background:#f9f0e8;color:#855d39;padding:13px;border-radius:7px}.message.status{color:var(--muted);font-size:11px}.message .citation{font-size:10px;color:var(--green);display:block;margin-top:9px;white-space:normal}.composer-bottom{display:flex;align-items:center;justify-content:space-between;padding:10px 13px}#composer{border:1px solid #d9e1d7;border-radius:9px;background:#fcfdfb}textarea{width:100%;background:none;border:0;resize:vertical;min-height:76px;max-height:220px;padding:16px;display:block;font-size:13px;color:var(--ink)}textarea:focus{outline:0}#composer:focus-within{box-shadow:0 0 0 2px #c3d5bb}.send-button{border:0;background:var(--green);color:white;width:34px;height:34px;border-radius:7px;font-size:23px}.mode{display:flex;gap:3px}.mode button{border:0;background:none;border-radius:4px;font-size:10px;padding:6px 9px;color:var(--muted)}.mode button[aria-pressed=true]{background:#e9eee5;color:#3e5936}.chat-footnote{text-align:center;font-size:9px;color:var(--muted);margin-top:12px}.chat-context{padding:20px 0}.chat-context h2{font-size:29px;margin:15px 0}.chat-context>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.8;margin-bottom:22px}.prompt{width:100%;border:0;background:none;border-top:1px solid var(--line);padding:17px 0;display:flex;justify-content:space-between;font-size:12px;text-align:left;gap:10px}.prompt span{color:#69825d}.context-note{font-size:11px;line-height:1.8;color:#7b857a;background:#edf1e8;padding:18px;border-radius:7px;margin-top:25px}footer{border-top:1px solid var(--line);padding:20px 42px;font-size:10px;color:#859087;display:flex;justify-content:space-between;gap:20px}.sr-only,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip:focus{clip:auto;width:auto;height:auto;z-index:20;background:white;padding:10px}.member-sections{display:flex;flex-direction:column;gap:22px}.member-title{display:flex;align-items:center;gap:10px}.date-cell{white-space:nowrap;color:var(--muted)}.entry-detail{display:flex;gap:10px;justify-content:space-between;padding:4px 0}.flow-details summary{cursor:pointer;font-size:11px;color:var(--green)}.flow-details div{min-width:210px;padding-top:8px}.ledger-label{font-weight:500}.scope-note{font-size:11px;color:var(--muted);margin:0 0 20px}
@media(min-width:1550px){main{padding-top:50px}.overview-grid{gap:28px}.hero{min-height:225px}}
@media(max-width:1100px){.sidebar{width:188px;padding:30px 15px}.workspace{margin-left:188px}main{padding:30px 26px}.topbar{padding:0 26px}.overview-grid{grid-template-columns:minmax(0,1.3fr) minmax(260px,1fr);gap:16px}.split-content{grid-template-columns:110px 1fr;gap:15px;padding:5px 20px 24px}.donut{width:110px;height:110px}.panel-head{padding:20px}.hero{padding:25px}.hero-number{font-size:42px}.conversation-layout{grid-template-columns:minmax(0,1fr) 205px;gap:20px}td,th{padding-left:18px;padding-right:18px}}
@media(max-width:850px){.sidebar{position:static;width:100%;padding:16px 22px;display:block;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:29px;margin:0 0 18px}.brand-mark{font-size:32px}.household-control{position:absolute;right:20px;top:16px;max-width:210px;padding:0}.household-control label{font-size:8px}.household-control select{display:block;margin-top:2px;font-size:12px}.sidebar nav{display:flex;overflow:auto;gap:4px}.nav-link{white-space:nowrap;padding:9px 12px;font-size:12px;gap:8px}.nav-section,.sidebar-bottom{display:none}.workspace{margin-left:0}.topbar{height:55px;padding:0 24px}.overview-grid{grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr)}.page-heading{margin-bottom:24px}h1{font-size:35px}.split-content{grid-template-columns:1fr}.donut{display:none}.conversation-layout{grid-template-columns:1fr}.chat-context{display:none}main{min-height:65vh}footer{padding:18px 24px}}
@media(max-width:600px){main{padding:25px 18px 35px}.topbar{padding:0 18px}.page-heading{align-items:flex-start;gap:12px}h1{font-size:31px}.page-heading>.button{padding:9px 11px;font-size:10px;gap:8px;margin-top:23px}.subtitle{font-size:12px;max-width:250px}.eyebrow{font-size:9px}.overview-grid{grid-template-columns:1fr}.overview-right{gap:18px}.hero{min-height:196px}.hero-number{font-size:43px}.split-content{grid-template-columns:110px 1fr}.donut{display:grid}.panel-head{padding:20px}.overview-left{gap:18px}.panel-head h2{font-size:21px}.person-control label{display:none}.topbar #breadcrumb{font-size:11px}.chat-panel{padding:17px;min-height:530px}.chat-heading p{max-width:220px}#thread{max-height:46vh}.mode button{font-size:9px;padding:6px}.chat-footnote{font-size:9px}.search{min-width:160px}.toolbar{gap:8px}.filter{max-width:150px;font-size:12px}.period-pill{float:none;display:inline-block;margin-bottom:8px}.hero .eyebrow{margin-bottom:0}.hero p{max-width:85%}footer span{display:none}td,th{padding:13px 15px}.table-wrap table{min-width:470px}.attention-item{padding:18px 20px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:600px){.overview-grid .table-wrap table{min-width:0}.overview-grid th,.overview-grid td{padding:13px 12px}.overview-grid th{font-size:8px;letter-spacing:.6px}.overview-grid td{font-size:11px}.split-content{grid-template-columns:95px 1fr;gap:14px}.donut{width:95px;height:95px}.donut:before{inset:14px}.donut-center{font-size:17px}.donut-center small{font-size:8px}.hero .orb{opacity:.45;right:-60px}.funder-name small{font-size:9px}.funder-value{font-size:12px}.funder-value small{font-size:9px}}

/* Personal records and the amount-free clan map. */
.personal-scope{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.personal-scope h2{font-size:24px}.personal-scope p{font-size:12px;color:var(--muted);margin-top:5px}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.map-toolbar .search{flex:0 1 300px}.map-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--green)}.map-badge>span{width:7px;height:7px;border-radius:50%;background:#809a70}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;overflow:hidden}.map-canvas{position:relative;min-width:0;background-color:#fafbf8;background-image:radial-gradient(#bdc9ba 0.7px,transparent .7px);background-size:22px 22px}.map-caption{position:absolute;top:25px;left:26px;pointer-events:none}.map-caption>p:last-child{font-size:10px;color:var(--muted);margin-top:7px}.clan-graph{display:block;width:100%;height:580px;touch-action:none;cursor:grab}.clan-graph:active{cursor:grabbing}.map-edge{fill:none;stroke:#9cad9e;stroke-width:1.6}.map-node{cursor:grab;outline:none}.node-core{fill:#e9eedf;stroke:#8da17d;stroke-width:1.3}.node-halo{fill:#eef2e9;opacity:.7}.node-initials{fill:#526449;font:14px var(--sans);pointer-events:none}.node-name{fill:#384d40;font:17px var(--serif);pointer-events:none}.node-you{fill:#6b8063;font:8px var(--sans);letter-spacing:2px;pointer-events:none}.is-you .node-core{fill:#3b6050;stroke:#3b6050}.is-you .node-initials{fill:white}.selected .node-halo,.map-node:focus-visible .node-halo{stroke:#57784b;stroke-width:1.5;fill:#e4edda}.dimmed{opacity:.18}.search-miss{opacity:.12}.map-controls{position:absolute;bottom:25px;left:25px;display:flex;gap:6px}.map-controls .button{background:#fff;border:1px solid var(--line);padding:8px 12px;font-size:12px}.map-hint{position:absolute;bottom:26px;right:20px;font-size:9px;color:var(--muted);max-width:185px;text-align:right}.map-detail{border-left:1px solid var(--line);padding:30px 26px;background:#fff}.map-detail-symbol{display:block;color:#69845a;font:38px var(--serif);margin:18px 0 24px}.map-detail h2{font-size:28px;line-height:1.2;margin:15px 0}.map-detail h2 small{font:12px var(--sans);color:var(--muted)}.map-detail>p:not(.eyebrow){font-size:12px;line-height:1.8;color:var(--muted);margin:13px 0}.map-people{margin-top:25px}.map-person-button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:var(--green);font-size:12px}.map-person-button:hover{color:#293e28;background:#f5f8f1}.map-connection-group{margin-top:25px}.map-connection-group>p:not(.eyebrow){font-size:11px;color:var(--muted);padding-top:10px}.map-detail-note{border-top:1px solid var(--line);padding-top:18px}.map-legend{display:flex;gap:25px;flex-wrap:wrap;color:var(--muted);font-size:10px;padding-top:17px}.map-legend span{display:flex;align-items:center;gap:8px}.legend-person{width:9px;height:9px;background:#dce6cf;border:1px solid #8da17d;border-radius:50%}.legend-flow{width:24px;height:1px;background:#8da17d;position:relative}.legend-flow:after{content:'›';position:absolute;right:-1px;top:-9px;font-size:17px;color:#8da17d}
@media(max-width:1100px){.map-layout{grid-template-columns:minmax(0,1fr) 230px}.map-detail{padding:22px 18px}.map-hint{display:none}.clan-graph{height:510px}}
@media(max-width:700px){.map-layout{grid-template-columns:1fr}.clan-graph{height:410px}.map-detail{border-left:0;border-top:1px solid var(--line);padding:22px}.map-detail-symbol{margin:6px 0;font-size:28px}.map-detail h2{font-size:25px}.map-toolbar{flex-wrap:wrap;gap:12px}.map-toolbar .search{flex:1 1 100%}.map-caption{left:18px;top:18px}.map-caption>p:last-child{max-width:230px}.map-controls{left:18px;bottom:15px}.map-legend{gap:14px}.personal-scope{align-items:flex-start;flex-direction:column}.personal-scope h2{font-size:22px}.node-name{font-size:22px}.node-you{font-size:12px}}

/* Keep the SVG viewport flush with its grid cell, even when the detail panel
   makes the row taller. A fixed-height SVG clipped nodes above blank canvas. */
.map-canvas{min-height:580px;overflow:hidden}.clan-graph{position:absolute;inset:0;width:100%;height:100%}.map-caption,.map-controls,.map-hint{z-index:1}.map-tooltip{position:absolute;z-index:3;width:240px;max-width:calc(100% - 24px);max-height:calc(100% - 24px);overflow:auto;background:#fff;border:1px solid #d9e2d3;border-radius:12px;padding:16px 18px;box-shadow:0 8px 30px #2945341a;color:var(--ink);font-size:12px;overflow-wrap:anywhere}.map-tooltip strong{display:block;font:22px var(--serif);margin-bottom:10px}.map-tooltip strong span{font:10px var(--sans);color:var(--green);background:#edf2e7;border-radius:12px;padding:3px 7px;margin-left:6px}.map-tooltip p{margin:9px 0;line-height:1.6}.map-tooltip p>span{display:block;font-size:10px;color:var(--muted);margin-bottom:2px}.map-tooltip small{display:block;border-top:1px solid var(--line);padding-top:10px;margin-top:12px;font-size:10px;color:var(--muted)}
@media(max-width:1100px){.map-canvas{min-height:510px}}
@media(max-width:700px){.map-canvas{min-height:410px}}
.view-switch{display:flex;padding:3px;border:1px solid var(--line);border-radius:7px;background:#eef2ea}.view-switch button{border:0;background:none;color:var(--muted);padding:8px 16px;border-radius:5px;font-size:12px}.view-switch button[aria-pressed=true]{background:white;color:var(--green);box-shadow:0 1px 4px #293e2812}#flow-graph{margin-bottom:24px}
.budget-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px}.budget-stat{padding:24px}.budget-stat h2{font-size:35px;margin:14px 0 10px}.budget-stat p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.7}.budget-columns{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.bill-list{padding:0 24px}.bill-row{display:flex;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.bill-date{flex-shrink:0;width:44px;background:#eef2e8;border-radius:8px;text-align:center;padding:7px}.bill-date strong{display:block;font:23px var(--serif)}.bill-date span{font-size:10px;color:var(--muted)}.bill-body{flex:1;min-width:0}.bill-body h3{font-size:13px}.bill-body p{font-size:10px;color:var(--muted);margin-top:6px}.bill-amount{text-align:right;font-size:14px;font-variant-numeric:tabular-nums}.bill-amount small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.bill-search{padding:0 24px}
@media(max-width:1000px){.budget-columns{grid-template-columns:1fr}.budget-stat{padding:18px}.budget-stat h2{font-size:28px}}
@media(max-width:600px){.budget-summary{grid-template-columns:1fr;gap:12px}.budget-stat h2{font-size:30px;margin:8px 0}.bill-list{padding:0 15px}.bill-row{gap:10px;flex-wrap:wrap}.bill-amount{font-size:12px}.bill-body h3{font-size:12px}.bill-search{padding:0 15px}.budget-stat p:not(.eyebrow){font-size:11px}}

.grocery-setup{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;margin-bottom:24px}.grocery-actions{display:flex;gap:10px;flex-wrap:wrap;padding:0 24px 24px}.grocery-routines{display:grid;gap:22px}.grocery-routine .panel-head{gap:15px;flex-wrap:wrap}.grocery-routine-body{padding:0 24px 24px;font-size:13px;line-height:1.8}.grocery-routine-body p{margin-bottom:8px}.grocery-routine-body details{margin:15px 0}.grocery-routine-body summary{color:var(--green);cursor:pointer}.grocery-routine-body ul{padding-left:20px}.grocery-root a{color:var(--green)}.grocery-routine-body .actions{flex-wrap:wrap;margin-bottom:15px}.grocery-history{margin-top:26px}.grocery-audit{padding:20px 24px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.grocery-audit p{margin:10px 0}.grocery-attention{padding:24px;margin-bottom:24px;border-color:#d4dec4;background:#fbfcf6}.grocery-attention h2{margin:12px 0}.grocery-attention p{font-size:13px;line-height:1.7}.grocery-attention .actions{flex-wrap:wrap;margin-bottom:12px}.grocery-form{margin-bottom:24px}.grocery-form-body{padding:0 24px 26px}.grocery-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.grocery-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:var(--muted)}.grocery-form input,.grocery-form select{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;padding:11px;background:#fff;color:var(--ink);font-size:13px}.grocery-form h3{margin-bottom:10px}.grocery-item{display:grid;grid-template-columns:1fr 1.3fr 80px 35px;gap:12px;align-items:end;padding:14px 0;border-top:1px solid var(--line)}.grocery-form .actions{margin-top:25px}.grocery-item button{padding:8px;font-size:20px}.grocery-worker{border-top:1px solid #dbe2d8;margin-top:18px;padding-top:14px}
@media(max-width:1000px){.grocery-setup{grid-template-columns:1fr}.grocery-item{grid-template-columns:1fr 1fr 70px 30px}}
@media(max-width:600px){.grocery-fields{grid-template-columns:1fr}.grocery-item{grid-template-columns:1fr 60px}.grocery-item label:nth-child(1),.grocery-item label:nth-child(2){grid-column:1/-1}.grocery-form-body{padding:0 18px 22px}.grocery-actions{padding:0 18px 20px}.grocery-routine-body{padding:0 18px 22px}.grocery-root .personal-scope>.button{width:100%}}
.grocery-receipt-label{display:flex;flex-direction:column;gap:5px;font-size:11px;min-width:220px;flex:1}.grocery-receipt-label input{padding:10px;border:1px solid var(--line);border-radius:6px;min-width:0;width:100%;font-size:12px}

.budget-back{display:inline-block;color:var(--green);font-size:12px;text-decoration:none;margin-bottom:17px}.budget-parts{margin-bottom:28px}.budget-parts-heading{margin:0 0 18px}.budget-parts-heading h2{font-size:26px}.budget-parts-heading p{font-size:12px;color:var(--muted);margin-top:7px}.budget-part-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:16px}.budget-part-card{display:flex;flex-direction:column;min-height:210px;padding:23px;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);text-decoration:none;transition:border-color .15s,box-shadow .15s}.budget-part-card:hover{border-color:#9bb18d;box-shadow:0 5px 20px #2f50330b}.budget-part-card.grocery-part{background:#f0f4e9;border-color:#d9e2ce}.budget-part-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.budget-part-icon{font-size:24px;color:var(--green)}.budget-part-card h3{font:25px var(--serif);margin-bottom:8px}.budget-part-card p{font-size:12px;color:var(--muted);line-height:1.7}.budget-part-open{display:flex;justify-content:space-between;gap:15px;color:var(--green);font-size:12px;margin-top:auto;padding-top:23px}.budget-part-value{font-size:18px;margin-top:15px}.budget-part-value small{font-size:10px;color:var(--muted);margin-left:6px}.budget-parts-note{margin-top:13px}.bill-detail-link{color:var(--green);text-decoration:none}.bill-detail-link:hover{text-decoration:underline}.budget-bill-detail .panel-head{flex-wrap:wrap;gap:15px}.bill-detail-facts{display:grid;grid-template-columns:1fr 1fr;margin:0 24px;gap:0 24px}.bill-detail-facts>div{padding:20px 0;border-top:1px solid var(--line)}.bill-detail-facts dt{font-size:10px;color:var(--muted);margin-bottom:8px}.bill-detail-facts dd{margin:0;font-size:16px;overflow-wrap:anywhere}.bill-detail-bottom{padding:20px 24px;border-top:1px solid var(--line)}.bill-detail-bottom p{font-size:12px;color:var(--muted);margin-bottom:16px}.bill-occurrences{margin-top:22px}.bill-occurrences ul{list-style:none;margin:0;padding:0 24px 20px}.bill-occurrences li{display:flex;justify-content:space-between;gap:15px;padding:15px 0;border-top:1px solid var(--line);font-size:13px}
@media(max-width:600px){.budget-part-grid{grid-template-columns:1fr}.budget-part-card{min-height:190px;padding:20px}.budget-parts-heading h2{font-size:24px}.bill-detail-facts{grid-template-columns:1fr}.budget-section-content .personal-scope{margin-top:0}}

/* Budget categories open as pages, with the budget as their only navigation. */
.sample-banner{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 17px;background:#edf2e8;border:1px solid #dce5d3;border-radius:7px;margin-bottom:23px;font-size:11px;color:#62715b}.sample-banner strong{font-weight:650;color:var(--green)}.sample-banner a{color:var(--green);white-space:nowrap}.sample-plan{padding:27px 30px;margin-bottom:24px}.sample-plan-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.sample-plan-heading h2{font-size:29px}.sample-plan-heading p:not(.eyebrow){font-size:12px;color:var(--muted);margin-top:9px}.sample-remaining{text-align:right;flex-shrink:0}.sample-remaining strong{display:block;font:35px var(--serif)}.sample-remaining span{font-size:11px;color:var(--muted)}.sample-allocation{display:flex;gap:4px;height:12px;border-radius:10px;overflow:hidden;margin:26px 0 12px}.sample-plan-caption{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted)}.sample-row-label{display:flex;justify-content:space-between;padding:15px 58px 15px 26px;font-size:10px;color:var(--muted);background:#fafbf8;border-bottom:1px solid var(--line)}.sample-category{display:grid;grid-template-columns:44px minmax(0,1fr) 120px 95px 12px;align-items:center;gap:17px;padding:22px 26px;text-decoration:none;border-bottom:1px solid var(--line);transition:background .15s}.sample-category:last-child{border-bottom:0}.sample-category:hover{background:#f3f6ee}.sample-category-icon{width:42px;height:42px;border-radius:12px;background:#f0f3ec;display:grid;place-items:center;font-size:25px}.sample-category-name strong{display:block;font:21px var(--serif)}.sample-category-name small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.sample-mode{color:var(--muted);font-size:10px;text-align:right}.sample-category-amount{text-align:right;font-size:18px;font-variant-numeric:tabular-nums}.sample-chevron{color:#899b80;font-size:25px}.sample-footnote{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.7}.sample-detail-grid{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:24px;align-items:start}.sample-detail-summary{padding:26px}.sample-detail-summary h2{font-size:40px;margin-bottom:17px}.sample-detail-summary h2 small{font:12px var(--sans);color:var(--muted)}.sample-detail-summary>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.8}.sample-detail-summary hr{border:0;border-top:1px solid var(--line);margin:25px 0}.sample-detail-summary h3{margin-bottom:8px}.sample-detail-summary .button{margin-top:22px;white-space:normal}.sample-routine-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 26px 26px}.sample-routine label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:var(--muted)}.sample-routine input,.sample-routine select,.sample-routine textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:6px;background:white;padding:11px;color:var(--ink);font-size:13px}.sample-routine textarea{resize:vertical}.sample-field-wide,.sample-save{grid-column:1/-1}.sample-save{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.sample-save [role=status]{font-size:11px;color:var(--green)}
@media(max-width:1100px){.sample-category{grid-template-columns:42px minmax(0,1fr) 85px 12px;gap:13px}.sample-mode{display:none}.sample-detail-grid{grid-template-columns:1fr}}
@media(max-width:600px){.sample-banner{align-items:flex-start;flex-direction:column;gap:7px}.sample-plan{padding:22px 18px}.sample-plan-heading h2{font-size:24px}.sample-remaining strong{font-size:28px}.sample-plan-caption{flex-direction:column}.sample-category{padding:18px 14px;grid-template-columns:32px minmax(0,1fr) 65px 9px;gap:10px}.sample-category-icon{width:32px;height:36px;font-size:21px}.sample-category-name strong{font-size:19px}.sample-category-name small{font-size:10px}.sample-category-amount{font-size:15px}.sample-row-label{padding:13px 33px 13px 15px}.sample-routine-fields{grid-template-columns:1fr;padding:0 20px 22px}.sample-detail-summary{padding:22px}}

.budget-detail-stack{display:grid;gap:22px;min-width:0}.budget-routine-note{margin-top:17px}.budget-breakdown-row{padding:21px 26px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.budget-breakdown-row h3{font-size:14px}.budget-breakdown-row p{color:var(--muted);font-size:11px;margin:6px 0 11px}.budget-breakdown-row>strong{font-size:17px;white-space:nowrap;font-weight:500}.budget-breakdown-row strong small{font-size:10px;color:var(--muted);font-weight:400;display:block;text-align:right}.budget-breakdown-row .button{white-space:normal;text-align:left}.budget-breakdown-total{display:flex;justify-content:space-between;padding:18px 26px;background:#f3f6ef;border-top:1px solid var(--line);font-size:12px}.budget-conversation{padding:26px}.budget-conversation>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.8;margin-top:14px}.budget-conversation .button{margin-top:20px;white-space:normal}
.budget-evidence{margin-top:22px;font-size:12px;color:var(--muted)}.budget-evidence summary{cursor:pointer;color:var(--green)}.budget-evidence blockquote{margin:16px 0;padding:12px 16px;border-left:2px solid #b0c3a2;background:#f4f7ef;white-space:pre-wrap;overflow-wrap:anywhere}.budget-evidence p{overflow-wrap:anywhere}

/* First-use journey and prepared decisions share the everyday budget language. */
.journey-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.8fr);gap:45px;align-items:start}.journey-main{min-width:0}.journey-welcome{padding:6px 0 28px}.journey-symbol{display:block;font:55px var(--serif);color:#7c9870;margin-bottom:18px}.journey-welcome h2{font:38px/1.16 var(--serif);margin-bottom:20px;letter-spacing:-1px}.journey-welcome>p:last-child{font-size:14px;line-height:1.8;color:var(--muted);max-width:520px}.journey-introduction,.journey-story{padding:28px}.journey-introduction label{display:block;font-size:14px;font-weight:600;margin:0 0 8px}.journey-introduction p{font-size:12px;color:var(--muted);line-height:1.8;margin:8px 0 18px}.journey-introduction textarea,.journey-introduction input{width:100%;border:1px solid var(--line);border-radius:8px;padding:15px;background:#fbfcf9;color:var(--ink);margin:0 0 20px;resize:vertical;min-width:0}.journey-submit{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.journey-submit [role=status]{font-size:12px}.journey-story blockquote{font:23px/1.55 var(--serif);margin:15px 0 25px;white-space:pre-wrap;overflow-wrap:anywhere}.journey-progress{background:#eef3e7;border-color:#dce5d3;padding:30px;margin-top:16px}.journey-progress h2{font-size:26px}.journey-progress>p:not(.eyebrow){font-size:11px;color:var(--muted);margin-top:12px}.journey-progress ol{list-style:none;margin:28px 0 0;padding:0}.journey-progress li{display:flex;gap:14px;padding:0 0 25px}.journey-progress li>span{display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;border:1px solid #b8c9a8;color:#738668;border-radius:50%;font-size:11px}.journey-progress li.is-complete>span{background:var(--green);color:white;border-color:var(--green)}.journey-progress li strong{font-size:12px}.journey-progress li p{font-size:11px;color:var(--muted);margin:6px 0 10px;line-height:1.7}.journey-progress li:last-child{padding-bottom:0}.journey-next{padding:30px 0}.journey-next h2{font-size:25px}.journey-next p{font-size:12px;color:var(--muted);line-height:1.8;margin:12px 0 20px}.journey-next>a{display:inline-block;margin:14px;font-size:11px;color:var(--green)}.journey-connection-note{font-size:11px;color:var(--muted);padding:16px 3px;line-height:1.8}.journey-sources{margin-top:24px;border-top:1px solid #d1dcc7;padding-top:20px}.journey-sources p{font-size:12px;margin:10px 0}.journey-entry{margin-bottom:24px;padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:#edf2e7;border:1px solid #dce5d2;border-radius:10px}.journey-entry p{font-size:12px;color:var(--muted);margin-top:6px}.chat-context .button{margin-top:16px;white-space:normal}.context-note p{overflow-wrap:anywhere}.decision-intro{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:10px 0 30px}.decision-intro h2{font-size:34px}.decision-intro>p{font-size:12px;color:var(--muted);max-width:230px}.decision-list{display:grid;gap:23px}.decision-card{padding:30px}.decision-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.decision-card h2{font-size:30px;margin:12px 0 18px}.decision-recommendation{font-size:15px;line-height:1.8;max-width:780px}.decision-reasons{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:25px 0;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.decision-reasons h3{font-size:12px;margin-bottom:8px}.decision-reasons p{font-size:12px;color:var(--muted);line-height:1.8}.decision-sources{font-size:11px;color:var(--muted)}.decision-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:25px}.decision-note{font-size:11px;color:var(--muted);margin-top:18px}.decision-history{margin-top:28px;color:var(--muted)}.decision-history summary{cursor:pointer;margin-bottom:18px}.decision-card [role=status]{font-size:12px;margin-top:12px}.decision-card{overflow-wrap:anywhere}
@media(max-width:1000px){.journey-layout{gap:24px;grid-template-columns:1fr}.journey-progress{margin-top:0}.journey-progress ol{display:grid;grid-template-columns:1fr 1fr;gap:20px}.journey-progress li{padding-bottom:0}}
@media(max-width:600px){.journey-welcome h2{font-size:32px}.journey-introduction,.journey-story,.journey-progress{padding:22px}.journey-progress ol{grid-template-columns:1fr}.journey-entry,.decision-intro{align-items:flex-start;flex-direction:column}.decision-card{padding:22px}.decision-card h2{font-size:26px}.decision-reasons{grid-template-columns:1fr}.decision-actions .button{white-space:normal}.decision-intro h2{font-size:29px}}
@media(max-width:850px){.chat-context{display:block;border-top:1px solid var(--line);padding-top:22px}.chat-context h2{font-size:24px}.chat-context h2 br{display:none}.chat-context .context-note{margin-top:18px}}

.overview-perspective{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:23px}.overview-perspective>p{font-size:12px;color:var(--muted)}.role-overview .hero .hero-number{margin-top:18px}.receiver-hero{background:#e8efeb;border-color:#d9e5dd}.overview-metrics{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:0 26px 26px}.overview-metrics span,.overview-metrics small{display:block;font-size:11px;color:var(--muted)}.overview-metrics strong{display:block;font:31px var(--serif);margin:10px 0}.overview-support-list{padding:0 26px 18px}.overview-support-list>div{display:flex;gap:13px;align-items:center;padding:16px 0;border-top:1px solid var(--line);font-size:13px}.overview-support-list strong{margin-left:auto;font-weight:500}.overview-budget-parts{padding:0 26px}.overview-budget-parts a{display:flex;justify-content:space-between;gap:18px;padding:17px 0;border-top:1px solid var(--line);text-decoration:none;font-size:13px}.overview-budget-parts a:hover{color:var(--green)}.overview-budget-parts strong{font-weight:500}.overview-footnote{font-size:11px;color:var(--muted);padding:15px 26px 22px}.overview-upcoming{padding:0 22px 16px}.overview-upcoming a{display:flex;gap:11px;align-items:center;padding:17px 0;border-top:1px solid var(--line);text-decoration:none;font-size:11px}.overview-upcoming time{color:var(--green);min-width:42px}.overview-upcoming strong{font-size:12px;display:block}.overview-upcoming small{display:block;color:var(--muted);margin-top:4px}.overview-upcoming a>span{margin-left:auto;white-space:nowrap}.overview-grid.role-overview{grid-template-columns:minmax(0,1.5fr) minmax(290px,1fr)}
@media(max-width:1000px){.overview-grid.role-overview{grid-template-columns:1fr}.overview-perspective{align-items:flex-start;flex-direction:column}}
@media(max-width:600px){.overview-metrics{grid-template-columns:1fr;gap:22px}.overview-support-list{padding:0 20px 15px}.overview-budget-parts{padding:0 20px}.overview-upcoming{padding:0 18px 15px}.overview-perspective .view-switch{width:100%}.overview-perspective .view-switch button{flex:1}}

/* Identity gate: private views stay hidden while session state is checked. */
.auth-pending body > :not(.auth-screen) { display:none !important; }
.auth-screen { min-height:100dvh; display:grid; place-items:center; padding:32px 20px; background:#f0f3ed; }
.auth-card { width:min(100%,510px); padding:40px; border:1px solid #dce3d8; border-radius:18px; background:#fafbf8; }
.auth-card h1 { font-size:42px; line-height:1.1; margin:20px 0; }
.auth-card .eyebrow { margin-top:36px; }
.auth-card form, .auth-dialog form:not([method]) { display:grid; gap:18px; margin:24px 0; }
.auth-card label, .auth-dialog label { display:grid; gap:8px; font-size:14px; }
.auth-card input, .auth-dialog input, .auth-dialog select { width:100%; min-width:0; box-sizing:border-box; padding:12px; border:1px solid #b9c6b8; border-radius:7px; background:white; font:inherit; }
.auth-card [role=alert], .auth-dialog [role=alert] { color:#8c3838; }
.auth-dialog { width:min(560px,calc(100vw - 40px)); max-height:85dvh; overflow:auto; padding:28px; border:1px solid #c5d0c1; border-radius:14px; color:#293c34; }
.auth-dialog::backdrop { background:#1e352a77; }
.auth-dialog details { margin:24px 0; }
@media(max-width:550px) { .auth-card { padding:24px; } .auth-card h1 { font-size:34px; } .person-control { flex-wrap:wrap; } }
.google-signin { display:flex; align-items:center; justify-content:center; gap:16px; width:100%; min-height:44px; margin-top:28px; padding:10px 16px; background:white; border:1px solid #747775; border-radius:6px; color:#1f1f1f; font:500 14px Arial,sans-serif; cursor:pointer; }
.google-signin:disabled { opacity:.6; cursor:default; }
#google-status { margin-top:12px; font-size:13px; color:#718078; }
.auth-card form[hidden], .auth-card button[hidden] { display:none; }

/* A letter that opens into the product, after identity and before setup. */
.letter-open body > .sidebar,.letter-open body > .workspace,.letter-open body > .skip { display:none; }
.letter-open body { background:#f8f7f2; }
.letter-shell { color:#2d4037; background:radial-gradient(ellipse at 50% 3%,#ecefe3 0,transparent 30%),#f8f7f2; min-height:100dvh; transition:opacity .4s,transform .4s; }
.letter-shell.letter-leaving { opacity:0; transform:translateY(-12px); }
.letter-top { height:100px; max-width:1260px; padding:0 48px; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.letter-top .brand { font-size:36px; }
.letter-top > span { color:#7a867a; font-family:Georgia,serif; font-style:italic; }
.letter-progress { height:2px; position:fixed; inset:0 0 auto; z-index:30; background:transparent; }
.letter-progress i { display:block; height:100%; background:#788e6e; transition:width .12s linear; }
.founder-letter { padding:0; max-width:none; }
.letter-opening { text-align:center; padding:64px 24px 0; }
.letter-opening .eyebrow { font-size:10px; letter-spacing:.22em; }
.letter-opening h1 { font:normal clamp(52px,6vw,84px)/1.03 Georgia,serif; letter-spacing:-.055em; margin:25px 0; }
.letter-deck { color:#7a867a; font-size:16px; }
.founder-photo { width:min(100%,510px); margin:48px auto 64px; position:relative; }
.founder-photo img { display:block; width:100%; max-height:570px; object-fit:cover; border-radius:180px 180px 8px 8px; }
.founder-photo figcaption { color:#7c8679; font-size:11px; margin:16px 0 0; letter-spacing:.04em; }
.photo-mat { aspect-ratio:1.2; border-radius:210px 210px 8px 8px; background:#e6e9df; border:1px solid #d7dece; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; box-shadow:inset 0 0 0 18px #eef0e8; }
.photo-mat span { font:italic 42px Georgia,serif; color:#74836c; }
.photo-mat span em { color:#a6b099; }
.photo-mat i { font:12px Georgia,serif; color:#809176; letter-spacing:.07em; }
.letter-prose { width:min(100% - 48px,560px); margin:0 auto; font:18px/1.85 Georgia,serif; }
.letter-prose p { margin:0 0 25px; }
.letter-prose .letter-salutation { font-size:26px; margin-bottom:28px; }
.letter-prose .letter-pullquote { font-size:38px; line-height:1.25; letter-spacing:-.035em; margin:48px 0; color:#59764f; }
.letter-economics { margin:84px auto 0; }
.letter-prose .eyebrow { font:10px/1.5 Arial,sans-serif; letter-spacing:.2em; margin-bottom:20px; }
.letter-economics h2,.letter-conversation h2 { font:normal clamp(34px,4vw,46px)/1.13 Georgia,serif; letter-spacing:-.035em; margin:0 0 24px; }
.letter-prose .button { font:14px/1.5 Arial,sans-serif; }
.letter-economics [data-expand] { padding-left:0; }
.economics-fold { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .65s ease,opacity .5s ease; }
.economics-fold.is-open { grid-template-rows:1fr; opacity:1; }
.economics-fold > div { overflow:hidden; min-height:0; }
.economics-card { width:min(100% - 48px,880px); margin:28px auto 8px; padding:36px; background:#edf0e7; border:1px solid #dce2d3; border-radius:16px; }
.economics-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.economics-heading .eyebrow { font-size:10px; }
.example-badge { font-size:11px; border:1px solid #c6cfbd; border-radius:100px; padding:5px 9px; white-space:nowrap; color:#697560; }
.economics-card h3 { font:normal 32px/1.12 Georgia,serif; margin:24px 0 12px; letter-spacing:-.025em; }
.economics-note { font-size:13px; max-width:490px; line-height:1.6; color:#727c6e; }
.economics-income { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:32px 0 16px; font-size:13px; }
.economics-income strong { font:32px Georgia,serif; }
.cost-bar { display:flex; gap:4px; height:24px; border-radius:5px; overflow:hidden; }
.cost-bar i { width:var(--share); background:var(--cost-color); }
.cost-layout { display:grid; grid-template-columns:1.2fr 1fr; gap:34px; margin-top:28px; }
.cost-choices { display:grid; gap:5px; }
.cost-choices button { display:flex; justify-content:space-between; gap:15px; border:1px solid transparent; border-radius:7px; padding:12px; background:transparent; font:13px Arial,sans-serif; color:inherit; text-align:left; cursor:pointer; }
.cost-choices button[aria-pressed=true] { background:#fafbf7; border-color:#d4ddc9; }
.cost-choices button span { display:flex; align-items:center; gap:9px; }
.cost-choices i { width:8px; height:8px; border-radius:50%; background:var(--cost-color); flex-shrink:0; }
.cost-detail { align-self:center; }
.cost-detail .eyebrow { font-size:9px; line-height:1.5; }
.cost-detail h4 { font:normal 24px Georgia,serif; margin:15px 0; }
.cost-detail > p:last-child { font-size:14px; line-height:1.7; color:#6b7966; }
.letter-subscribe { padding-top:58px; }
.letter-checkout { margin:34px 0 52px; }
.letter-checkout .button { min-height:48px; display:inline-flex; gap:24px; align-items:center; padding:14px 22px; }
.letter-checkout .unavailable { opacity:.55; cursor:default; }
.letter-checkout p { font:12px/1.6 Arial,sans-serif; color:#7d8678; margin-top:14px; max-width:400px; }
.letter-prose .letter-signoff { margin:0 0 10px; font-size:16px; }
.founder-signature { font:italic 43px 'Snell Roundhand','Apple Chancery',cursive; letter-spacing:-.04em; }
.founder-signature span { color:#889675; }
.letter-prose .signature-caption { font:10px/1.5 Arial,sans-serif; color:#889080; margin-top:12px; }
.letter-conversation { margin:56px auto 76px; padding:0; background:transparent; text-align:left; }
.letter-connect-link { display:inline; padding:0; border:0; background:none; font:inherit; color:#355e4e; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; cursor:pointer; }
.letter-composer { width:100%; padding:16px 18px 12px; margin:28px 0 0; border:1px solid #d3d9cd; border-radius:8px; background:#fffefa; text-align:left; box-shadow:none; }
.letter-composer textarea { display:block; width:100%; resize:vertical; border:0; padding:0; background:transparent; color:#34472e; font:16px/1.65 Georgia,serif; min-height:80px; }
.letter-compose-footer { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:10px; }
.letter-compose-footer input { min-width:0; width:180px; max-width:calc(100% - 58px); padding:6px 0; border:0; border-bottom:1px solid #e1e5da; border-radius:0; background:transparent; color:inherit; font:13px/1.5 Arial,sans-serif; }
.letter-send { width:36px; height:36px; flex-shrink:0; display:grid; place-items:center; border:0; border-radius:50%; background:#355e4e; color:white; font:22px/1 Arial,sans-serif; cursor:pointer; }
.letter-send:disabled { opacity:.5; cursor:wait; }
.letter-composer .letter-status { font:12px/1.5 Arial,sans-serif; color:#74816b; margin:8px 0 0; }
.letter-composer .letter-status:empty { display:none; }
.letter-footer { display:flex; justify-content:space-between; gap:20px; padding:25px 40px; background:#edf1e8; border:0; font-size:10px; color:#86917f; }
.letter-reveal { opacity:0; transform:translateY(18px); transition:opacity .7s ease,transform .7s ease; }
.letter-reveal.is-visible { opacity:1; transform:none; }
@media(max-width:620px) {
 .letter-top { padding:0 22px; height:80px; }.letter-top > span { display:none; }.letter-top .brand { font-size:29px; }
 .letter-opening { padding-top:34px; }.letter-opening h1 { font-size:54px; }.letter-deck { font-size:14px; }
 .founder-photo { margin-top:34px; margin-bottom:48px; max-width:330px; }.photo-mat span { font-size:34px; }
 .letter-prose { font-size:17px; line-height:1.8; }.letter-prose .letter-pullquote { font-size:33px; }
 .economics-card { padding:22px; width:calc(100% - 28px); }.economics-card h3 { font-size:29px; }
 .cost-layout { grid-template-columns:1fr; gap:22px; }.cost-detail { border-top:1px solid #d5ddcc; padding:18px 12px 0; }
 .economics-income { align-items:start; }.economics-income span { max-width:125px; }.economics-heading { gap:8px; }
 .letter-economics { margin-top:60px; }.letter-conversation { margin-top:44px; padding:0; }.letter-composer { padding:16px; }
 .letter-footer { padding:24px; flex-direction:column; text-align:center; gap:8px; }
}
@media(prefers-reduced-motion:reduce) {
 .letter-reveal { opacity:1; transform:none; }.letter-shell,.economics-fold,.letter-reveal,.letter-progress i { transition:none; }
}
.letter-extension { margin:48px auto 0; padding:22px 0; border-top:1px solid #dce2d5; border-bottom:1px solid #dce2d5; }
.letter-extension h3 { font:24px Georgia,serif; margin:0 0 16px; }.letter-extension [role=status] { font:12px/1.6 Arial,sans-serif; margin:15px 0 0; color:#6a7965; }
.browser-connections { width:min(600px,calc(100vw - 40px)); max-height:85dvh; padding:28px; border:1px solid #ccd7c4; border-radius:12px; color:#30483a; }.browser-connections::backdrop { background:#23362966; }.browser-connections h2 { font:30px Georgia,serif; }.browser-connections section { border-top:1px solid #ddd; padding:16px 0; }.browser-connections section button { margin:6px 8px 0 0; }.browser-connections [role=status] { line-height:1.6; }.connection-waiting { background:#e6eddc; }
.extension-install { background:#f8f7f2; color:#30483a; }.extension-install main { max-width:680px; padding:48px 24px; margin:auto; }.extension-install h1 { font:42px Georgia,serif; margin:32px 0; }.extension-install p,.extension-install li { line-height:1.8; margin-bottom:16px; }
.conversation-browser-action { margin:0 24px 18px; padding:18px 20px; border:1px solid #cbd8c2; border-radius:10px; background:#f0f4ea; }
.conversation-browser-action[hidden] { display:none; }.conversation-browser-action h3 { font:22px Georgia,serif; margin:0 0 10px; }.conversation-browser-action p { font-size:13px; line-height:1.6; margin:8px 0; }.conversation-browser-action section { border-top:1px solid #d9e1d1; padding-top:12px; margin-top:12px; }.conversation-browser-action button { margin:5px 8px 5px 0; }.conversation-browser-action [role=status]:empty { display:none; }
.message a { color:#355e4e; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
@media(max-width:600px){.conversation-browser-action{margin:0 12px 12px;padding:16px;}}
/* A provider connection is one conversational handoff, not a second control panel. */
.conversation-browser-action { background:#f5f7f1; padding:0; overflow:hidden; }
.conversation-browser-action .provider-handoff { display:flex; gap:16px; border:0; padding:22px; margin:0; }
.conversation-browser-action .provider-handoff + .provider-handoff { border-top:1px solid #dde4d8; }
.provider-mark { display:grid; place-items:center; flex:0 0 40px; height:40px; border-radius:50%; background:#e3eadb; color:#355e4e; font:18px Georgia,serif; }
.provider-handoff-body { min-width:0; flex:1; }.provider-handoff h3 { font:20px/1.35 Georgia,serif; margin:0 0 5px; }.provider-handoff p { margin:0; max-width:60ch; color:#66756a; font-size:14px; line-height:1.6; }
.provider-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:12px; }.provider-actions .button { margin:0; }.provider-handoff[data-phase=done] .provider-mark { background:#355e4e; color:#fff; }
@media(max-width:600px){.conversation-browser-action .provider-handoff{padding:16px;gap:12px;}.provider-handoff h3{font-size:18px;}.provider-actions{gap:4px;}}
.conversation-layout { grid-template-columns:190px minmax(0,1fr) 260px;gap:20px;align-items:start; }
.conversation-navigation { position:sticky;top:20px;min-width:0; }.conversation-navigation .search { width:100%;min-width:0;margin:14px 0;box-sizing:border-box; }.conversation-link { display:block;width:100%;border:0;background:transparent;text-align:left;padding:12px;border-radius:8px;color:#58675d;font:13px/1.5 inherit;overflow-wrap:anywhere;cursor:pointer; }.conversation-link[aria-current=true]{background:#e8eee2;color:#304d3d;}.conversation-link:disabled{opacity:.6;}
#conversation .chat-panel { min-height:70vh; }.research-card { border:1px solid #dde3d8;background:#f5f7f1;border-radius:10px;padding:16px;margin:14px 0;font-size:13px;overflow-wrap:anywhere; }.research-card p{font-size:12px;margin:8px 0;}.research-card details{line-height:1.7;white-space:pre-wrap;}.research-card summary{cursor:pointer;color:#355e4e;}.chat-context h2{font-size:25px;}
@media(max-width:1250px){.conversation-layout{grid-template-columns:160px minmax(0,1fr);}.chat-context{grid-column:2;display:block;padding:0;}}
@media(max-width:700px){.conversation-layout{grid-template-columns:minmax(0,1fr);}.conversation-navigation{position:static;}.conversation-navigation #conversation-list{display:flex;overflow:auto;gap:6px;max-height:100px;}.conversation-link{min-width:150px;}.chat-context{grid-column:1;display:block;}.conversation-navigation .search{margin:8px 0;}}

/* Commitments: the collapsed queue.
   A disclosure rather than a list, because the rows behind it are the ones that
   need nobody — and a page about automation should be quiet when it is working. */
.queue-details{padding:0}
.queue-details>summary{padding:20px 26px;cursor:pointer;font-size:13px;color:var(--green);list-style:none;display:flex;align-items:center;gap:9px}
.queue-details>summary::-webkit-details-marker{display:none}
.queue-details>summary:before{content:'▸';font-size:11px;transition:transform .15s}
.queue-details[open]>summary:before{transform:rotate(90deg)}
.queue-details[open]>summary{border-bottom:1px solid var(--line)}
.queue-group{padding:18px 26px 4px}
.queue-group+.queue-group{border-top:1px solid var(--line)}
.queue-group h3{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}
.rationale{font:15px/1.7 var(--serif);color:#5d6b62;padding:0 26px 4px;font-style:italic}
.budget-back{display:inline-block;font-size:12px;color:var(--green);text-decoration:none;margin-bottom:18px}
.attention-item .bill-amount{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums;font-size:15px;white-space:nowrap}

/* Budget: the cash tray.
   Time across, level up, every payment on the day it really happens. Colour
   runs from the promises nothing outranks (darkest) to the first thing to go
   (lightest), and money arriving is the one warm tone. */
.cf-panel .panel-head p{max-width:none}
.cashflow{display:block;width:100%;height:auto}
.cf-controls{display:flex;align-items:center;gap:16px;padding:4px 26px 14px;flex-wrap:wrap}
.cf-controls .button{min-width:82px}
.cf-scrub{flex:1;min-width:180px;display:flex}
.cf-scrub input{width:100%;accent-color:#4a6b58}
.cf-zoom{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted)}
.cf-zoom select{border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:#fff}
.cf-readout{display:flex;align-items:baseline;gap:14px;padding:0 26px 10px;flex-wrap:wrap}
.cf-readout strong{font:19px/1 var(--serif);min-width:78px}
.cf-readout span{font-size:19px;font-variant-numeric:tabular-nums}
.cf-readout span.cf-warn{color:var(--orange)}
.cf-readout span.cf-neg{color:#c0553f}
.cf-readout em{font-size:12px;color:var(--muted);font-style:normal}
.cf-legend{display:flex;gap:16px;flex-wrap:wrap;padding:6px 26px 20px}
.cf-key{font-size:10px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.cf-key:before{content:'';width:9px;height:9px;border-radius:2px;background:currentColor}
.cf-key.cf-in{color:#6f9a5f}.cf-key.cf-floor{color:#40624f}.cf-key.cf-obligation{color:#5f8069}
.cf-key.cf-goal{color:#87a184}.cf-key.cf-discretionary{color:#b9cca9}.cf-key.cf-support_out{color:#5f7f95}

.cf-area{fill:#cfe0c4}
.cf-area-neg{fill:#e8b6a5}
.cf-line{fill:none;stroke:#4a6b58;stroke-width:2;stroke-linejoin:round}
.cf-ghost{stroke:#b9c4bb;stroke-width:1.25}
.cf-floor{stroke:#a3b0a6;stroke-width:1;stroke-dasharray:4 4}
.cf-zero{stroke:#c0553f;stroke-width:1;stroke-opacity:.55}
.cf-short-band{fill:#c0553f;fill-opacity:.55;rx:2}
.cf-axis{font-size:11px;fill:#8d9891}
.cf-head{stroke:#2f4a3b;stroke-width:1.5}

.cf-flow{opacity:.18;transition:opacity .2s}
.cf-flow.is-dim{opacity:.06}
.cf-flow.is-dim.is-live,.cf-flow.is-dim.is-past{opacity:.12}
.cf-flow.is-dim .cf-flow-label,.cf-flow.is-dim .cf-flow-date{opacity:0}
.cf-flow.is-past{opacity:.34}
.cf-flow.is-live{opacity:1}
.cf-stem{stroke:currentColor;stroke-width:1.5;stroke-dasharray:3 3}
.cf-drop{fill:currentColor}
.cf-flow-label{font-size:11px;fill:currentColor;opacity:0}
.cf-flow-date{font-size:9.5px;fill:#8d9891;opacity:0;letter-spacing:.4px}
.cf-flow.is-live .cf-flow-label,.cf-flow.is-live .cf-flow-date{opacity:1}
.cf-flow.cf-in{color:#6f9a5f}.cf-flow.cf-floor{color:#40624f}.cf-flow.cf-obligation{color:#5f8069}
.cf-flow.cf-goal{color:#87a184}.cf-flow.cf-discretionary{color:#a8bd95}.cf-flow.cf-support_out{color:#5f7f95}

/* The explorer: breadcrumb, one level of children, constant columns. */
.ex-crumbs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:4px 26px 12px;font-size:12px}
.ex-crumbs button{border:0;background:none;padding:0;color:var(--green);font-size:12px}
.ex-crumbs button:hover{text-decoration:underline}
.ex-crumbs [aria-current]{color:var(--ink);font-weight:600}
.ex-sep{color:#b3bdb5}
.ex-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:0 26px 16px;flex-wrap:wrap}
.ex-head h3{font:normal 21px/1.25 var(--serif);letter-spacing:-.4px}
.ex-head p{font-size:12px;color:var(--muted);margin-top:4px}
.ex-drill{border:0;background:none;padding:0;color:var(--green);font-size:12px;font-weight:600;text-align:left}
.ex-drill:hover{text-decoration:underline}
.ex-drill:after{content:' ›';color:#9aa89c}
.ex-leaf{font-weight:600}
tfoot td{border-top:1px solid var(--line);font-weight:600;background:#fafbf9}

/* Budget, Monarch-shaped: Budget / Actual / Remaining on every row, buckets by
   predictability, and a pace tick on every bar. */
.mb-monthbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.mb-monthbar .button{padding:8px 13px;min-width:0}
.mb-monthbar strong{font:normal 21px/1 var(--serif);min-width:180px;text-align:center}
.mb-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:22px;align-items:start}
.mb-main{display:flex;flex-direction:column;gap:20px;min-width:0}
.mb-section{background:var(--paper);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mb-strip,.mb-group,.mb-row,.mb-total{display:grid;grid-template-columns:minmax(0,1fr) 108px 108px 104px;align-items:center;gap:10px}
.mb-strip{padding:11px 20px;background:#fafbf9;border-bottom:1px solid var(--line);font-size:9px;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-weight:550}
.mb-strip span:first-child{letter-spacing:1.1px}
.mb-strip span:not(:first-child),.mb-group span:not(:first-child),.mb-row span:not(:first-child),.mb-total span:not(:first-child){text-align:right}
.mb-note{padding:12px 20px 0;font-size:12px;color:var(--muted)}
.mb-group{padding:15px 20px;font-weight:600;font-size:15px}
.mb-row{padding:13px 20px 17px;border-top:1px solid #eef0ed;position:relative;row-gap:0}
.mb-name{display:flex;flex-direction:column;gap:3px;min-width:0}
.mb-name a{color:inherit;text-decoration:none}
.mb-name a:hover{text-decoration:underline}
.mb-band{font-size:10px;color:var(--muted);font-style:normal;letter-spacing:.3px}
.mb-track{grid-column:1/-1;position:relative;height:3px;background:#eceee9;border-radius:2px;margin-top:11px}
.mb-track .mb-fill{position:absolute;left:0;top:0;bottom:0;width:var(--w,0);background:#4a8a58;border-radius:2px}
.mb-track .mb-fill.is-over{background:#c0553f}
.mb-pace{position:absolute;top:-3px;bottom:-3px;left:var(--w,0);width:1px;background:#8b978d}
.mb-total{padding:16px 22px;background:var(--paper);border:1px solid var(--line);border-radius:10px;font-weight:600}
.mb-pill{display:inline-block;min-width:62px;padding:4px 9px;border-radius:20px;font-size:12px;background:#eef1ee;color:#657467;font-variant-numeric:tabular-nums}
.mb-pill.is-pos{background:#e6f2e5;color:#2f6b3f}
.mb-pill.is-neg{background:#fbe9e4;color:#b0452f}
.mb-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:18px}
.mb-left{background:#e6f2e5;border:1px solid #cfe4cd;border-radius:10px;padding:22px;text-align:center}
.mb-left.is-over{background:#fbe9e4;border-color:#f0cfc5}
.mb-left strong{display:block;font:normal 33px/1.1 var(--serif);color:#2f6b3f;letter-spacing:-1px}
.mb-left.is-over strong{color:#b0452f}
.mb-left span{font-size:11px;color:#5f7059;display:block;margin-top:7px}
.mb-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.mb-card h3{font:normal 17px/1 var(--serif);margin-bottom:14px}
.mb-sum+.mb-sum{margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}
.mb-sum-top,.mb-sum-bot{display:flex;justify-content:space-between;gap:10px;font-size:12px}
.mb-sum-top{margin-bottom:7px}
.mb-sum-bot{margin-top:7px;font-variant-numeric:tabular-nums}
.mb-pos{color:#2f6b3f}.mb-neg{color:#b0452f}
.mb-bar{height:6px;background:#eceee9;border-radius:3px;position:relative;overflow:hidden}
.mb-bar .mb-fill{position:absolute;left:0;top:0;bottom:0;width:var(--w,0);background:#4a8a58;border-radius:3px}
.mb-bar .mb-fill.is-over{background:#c0553f}
@media(max-width:1080px){.mb-layout{grid-template-columns:minmax(0,1fr)}.mb-side{position:static}}
@media(max-width:620px){.mb-strip,.mb-group,.mb-row,.mb-total{grid-template-columns:minmax(0,1fr) 74px 74px 72px;gap:6px;font-size:12px}.mb-pill{min-width:0;padding:3px 7px;font-size:11px}}
.mb-banner{background:#f6f1e4;border:1px solid #e8dcc2;border-radius:8px;padding:13px 17px;font-size:12px;color:#6d6145;line-height:1.7;margin-bottom:18px}
.mb-banner strong{color:#544a33}
.mb-axis{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-left:auto}
.mb-axis button{border:0;background:#fff;padding:8px 13px;font-size:11px;color:var(--muted)}
.mb-axis button[aria-pressed=true]{background:#e9eee5;color:#3e5936;font-weight:600}
.mb-aside{display:block;font-size:9.5px;color:var(--muted);font-style:normal;letter-spacing:.3px;margin-top:2px}


/* Conversation: the home screen, and the emptiest page in the app.
   Empty state centres the composer; a thread pins it to the bottom. The
   controls do not move between the two, because the thing people learn first
   should not be relearned the moment they use it. */
.cv{display:grid;grid-template-columns:212px minmax(0,1fr);gap:26px;align-items:start}
.cv-rail{display:flex;flex-direction:column;gap:12px;position:sticky;top:18px}
.cv-new{justify-content:flex-start;font-size:12px}
.cv-list{display:flex;flex-direction:column;gap:2px}
.cv-link{border:0;background:none;text-align:left;padding:9px 11px;border-radius:7px;display:flex;flex-direction:column;gap:2px}
.cv-link:hover{background:#eef1ec}
.cv-link[aria-current=true]{background:#e4ebe1;font-weight:600}
.cv-link span{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-link small{font-size:10px;color:var(--muted)}
.cv-none{font-size:11px;color:var(--muted);padding:9px 11px}

.cv-main{display:flex;flex-direction:column;min-width:0}
.cv.is-empty .cv-main{min-height:min(62vh,540px);justify-content:center}
.cv-hero{text-align:center;margin-bottom:26px}
.cv-hero .agent-symbol{font-size:40px;display:block;margin-bottom:10px}
.cv-hero h2{font-size:31px;letter-spacing:-.7px}
.cv-hero p{font-size:13px;color:var(--muted);margin-top:9px}

.cv-composer{border:1px solid #d9e1d7;border-radius:12px;background:#fcfdfb;position:relative}
.cv-composer:focus-within{box-shadow:0 0 0 2px #c3d5bb}
.cv-composer textarea{min-height:auto;padding:16px 18px 6px}
.cv-bar{display:flex;align-items:center;gap:10px;padding:8px 12px 10px;flex-wrap:wrap}
.cv-modes{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.cv-modes button{border:0;background:none;padding:6px 11px;font-size:11px;color:var(--muted)}
.cv-modes button[aria-pressed=true]{background:#e9eee5;color:#3e5936;font-weight:600}
.cv-context{border:1px solid var(--line);background:#fff;border-radius:7px;padding:6px 10px;font-size:11px;color:var(--muted)}
.cv-hint{margin-left:auto;font-size:10px;color:#9aa89c}
.cv-send{border:0;background:var(--green);color:#fff;width:32px;height:32px;border-radius:8px;font-size:20px;flex-shrink:0}
.cv-chips{display:flex;gap:6px;flex-wrap:wrap;padding:12px 14px 0}
.cv-chips.is-sent{padding:8px 0 0}
.cv-chip{border:1px solid #cddcc6;background:#eef4ea;color:#41603c;border-radius:20px;padding:3px 9px;font-size:11px}
.cv-picker{position:absolute;bottom:calc(100% + 7px);left:0;right:0;max-height:250px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;z-index:5}
.cv-picker button{display:flex;justify-content:space-between;width:100%;border:0;background:none;padding:9px 11px;border-radius:7px;font-size:12.5px;text-align:left;gap:12px}
.cv-picker button:hover{background:#eef1ec}
.cv-picker small{color:var(--muted);font-size:10px}

.cv-suggestions{display:flex;flex-direction:column;gap:1px;margin-top:22px}
.cv-suggestion{border:0;background:none;border-top:1px solid var(--line);padding:14px 4px;display:flex;justify-content:space-between;gap:16px;text-align:left;font-size:13px}
.cv-suggestion:hover{background:#f2f5f1}
.cv-suggestion small{color:var(--muted);font-size:11.5px;text-align:right;flex-shrink:0;max-width:52%}

.cv-thread{display:flex;flex-direction:column;gap:20px;padding:4px 0 26px;max-height:58vh;overflow:auto}
.cv-turn{max-width:86%;font-size:13.5px;line-height:1.8}
.cv-turn p+p{margin-top:12px}
.cv-turn.is-member{align-self:flex-end;background:#edf2ea;padding:12px 17px;border-radius:12px 12px 2px 12px}
.cv-turn.is-agent{align-self:flex-start;max-width:100%;width:100%}
.cv-turn .table-wrap{margin-top:14px;border:1px solid var(--line);border-radius:9px}
.cv-notes{margin:12px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted);line-height:1.9}
.cv-thinking{color:var(--muted);font-size:12px}
@media(max-width:900px){.cv{grid-template-columns:minmax(0,1fr)}.cv-rail{position:static;flex-direction:row;overflow:auto}.cv-list{flex-direction:row}.cv-link{min-width:150px}}
.empty .empty-more{margin-top:14px}

/* Onboarding: the form that finally lets a household be entered. */
.ob{display:flex;flex-direction:column;gap:20px}
.ob-step .panel-head p{max-width:72ch}
.ob-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;padding:4px 24px 20px;align-items:end}
.ob-grid.ob-tight{padding:0 0 12px}
.ob-grid label,.ob-sub label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:var(--muted)}
.ob-grid .ob-wide{grid-column:1/-1}
.ob input,.ob select,.ob textarea{border:1px solid var(--line);border-radius:7px;padding:9px 11px;background:#fff;font-size:13px;color:var(--ink);min-height:0}
.ob textarea{resize:vertical;padding:10px 11px}
.ob-row{border-top:1px solid var(--line);padding-top:16px}
.ob-row:first-child{border-top:0;padding-top:4px}
.ob-sub{padding:0 24px 16px;margin-left:14px;border-left:2px solid #e8ece6}
.ob-note{font-size:11px;color:var(--muted);padding:0 24px 14px;max-width:80ch;line-height:1.7}
.ob-check{flex-direction:row!important;align-items:center;gap:8px}
.ob-check input{min-height:auto}
.ob-unit{font-size:11px;color:var(--muted)}
.ob [data-add]{margin:0 24px 22px}
.ob-footer{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:16px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ob-footer p{font-size:12px;color:var(--muted)}
.ob-footer p.ob-error{color:#b0452f}
.mercury-dialog{width:min(900px,94vw);max-height:90vh;border:1px solid #dce4d9;border-radius:18px;padding:32px;color:#293a32;background:#fafbf8;overflow:auto}.mercury-dialog::backdrop{background:#17271f66}.mercury-dialog header,.mercury-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.mercury-dialog h2{margin:6px 0}.mercury-dialog section,.mercury-dialog details{margin:20px 0}.mercury-dialog label,.mercury-action label{display:block;margin:12px 0}.mercury-dialog input,.mercury-dialog select,.mercury-dialog textarea,.mercury-action input{display:block;box-sizing:border-box;width:100%;padding:12px;border:1px solid #d1dbcf;border-radius:8px;background:white;color:inherit;font:inherit}.mercury-dialog pre,.mercury-action pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:320px;overflow:auto;background:#f0f3ed;padding:16px;border-radius:8px;font-size:13px}.mercury-action{padding:20px 0;border-top:1px solid #dce4d9}.mercury-dialog [role=status]{color:#85472f}.mercury-dialog summary,.mercury-action summary{cursor:pointer}.mercury-dialog small{margin-left:12px}.mercury-row{padding:10px 0}@media(max-width:600px){.mercury-dialog{padding:18px}.mercury-dialog header{align-items:flex-start}}

/* Shared shell and focused conversation workspace. */
.sidebar { overflow-y:auto; }
.sidebar-bottom { padding-top:22px; }
.topbar { gap:20px; }
.person-control { flex-wrap:nowrap; min-width:0; }
.utility-menu { position:relative; margin-left:12px; color:var(--ink); }
.utility-menu > summary { display:flex; align-items:center; gap:16px; list-style:none; cursor:pointer; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--paper); }
.utility-menu > summary::-webkit-details-marker { display:none; }
.utility-menu[open] > summary { background:var(--pale); }
.utility-actions { position:absolute; top:calc(100% + 8px); right:0; z-index:40; min-width:210px; padding:8px; background:white; border:1px solid var(--line); border-radius:10px; box-shadow:0 12px 36px #24302e16; }
.utility-actions .button.text { display:flex; width:100%; justify-content:flex-start; padding:12px; border-radius:5px; font-size:13px; }
.utility-actions .button:hover { background:var(--pale); }
summary:focus-visible { outline:3px solid #82a88a; outline-offset:3px; border-radius:5px; }
body[data-view=thread] main { padding-top:24px; padding-bottom:24px; min-height:0; }
body[data-view=thread] .page-heading { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
body[data-view=thread] .workspace > footer { display:none; }
.conversation-layout { grid-template-columns:200px minmax(0,1fr); gap:24px; max-width:1160px; margin:auto; }
.conversation-navigation { position:static; padding-top:10px; }
.conversation-navigation .eyebrow { margin:0 0 18px 10px; }
.conversation-navigation > .button { width:100%; justify-content:flex-start; font-size:13px; min-height:42px; }
.conversation-navigation .search { min-height:42px; font-size:13px; background:transparent; }
#conversation-list { max-height:calc(100dvh - 295px); overflow:auto; }
.conversation-link { font:400 13px/1.5 var(--sans); margin-bottom:4px; min-height:44px; }
.conversation-link[aria-current=true] { font-weight:600; background:#e4ebe1; }
.conversation-no-results { padding:12px; color:var(--muted); font-size:13px; }
#conversation .chat-panel { height:calc(100dvh - 124px); min-height:480px; padding:0; overflow:hidden; }
.chat-heading { flex-shrink:0; padding:18px 26px; gap:14px; }
.chat-heading strong { font-size:16px; font-weight:600; overflow-wrap:anywhere; }
.chat-heading p { font-size:12px; margin-top:2px; }
#conversation .chat-context { display:block; grid-column:auto; padding:0; min-width:0; }
.research-summary > summary { padding:12px 26px; font-size:12px; color:var(--green); cursor:pointer; border-bottom:1px solid var(--line); background:#fafbf8; }
.research-body { max-height:200px; overflow:auto; padding:0 26px; border-bottom:1px solid var(--line); background:#fafbf8; }
.research-body:has(.research-empty) { padding:14px 26px; }
.research-empty { font-size:13px; color:var(--muted); }
.research-card { margin:0; padding:16px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.research-card:last-child { border-bottom:0; }
.research-card .button.text { min-height:32px; }
#thread { min-height:100px; max-height:none; padding:28px; gap:22px; overscroll-behavior:contain; }
.message { font-size:15px; line-height:1.75; max-width:88%; }
.message.agent { max-width:100%; }
.message.member { background:#edf2ea; border-radius:14px 14px 3px 14px; padding:12px 18px; }
.message.status { color:var(--muted); font-size:13px; font-style:italic; }
/* The row is always here, even before the message has an id and the controls
   can appear, so nothing shifts under the pointer mid-turn. */
.message-actions { display:flex; justify-content:flex-end; gap:2px; height:20px; margin-top:4px; }
.message-action { opacity:0; transition:opacity .12s ease; font-size:11px; min-height:20px; padding:2px 6px; color:#5a6b62; }
.message.member:hover .message-action, .message.member:focus-within .message-action { opacity:1; }
.message-action:focus-visible { opacity:1; }
.message-action[disabled] { opacity:0; }
/* Nothing hovers on a phone, so the controls simply stay. */
@media (hover:none) { .message-action { opacity:1; } .message-action[disabled] { opacity:.4; } }
.message-edit { display:grid; gap:8px; }
.message-edit textarea { width:100%; font:inherit; color:var(--ink); background:var(--paper); border:1px solid #ccd8c8; border-radius:10px; padding:10px 12px; resize:vertical; }
.message-edit-bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.message-edit-note { margin-right:auto; font-size:11px; color:var(--muted); }
.send-button.is-stop { background:var(--orange); border-color:var(--orange); color:#fff; font-size:11px; }
.welcome { margin:auto 0; padding:24px 12px; }
.welcome h2 { font-size:32px; }
.welcome p { font-size:14px; }
#composer { flex-shrink:0; margin:0 22px; background:white; border-color:#ccd8c8; border-radius:12px; box-shadow:0 3px 12px #24302e06; }
#composer textarea { font-size:15px; min-height:70px; padding:16px 18px 8px; resize:none; }
.composer-bottom { padding:8px 12px 12px; }
.mode button { font-size:11px; min-height:34px; padding:7px 10px; }
.send-button { width:38px; height:38px; border-radius:9px; }
.chat-footnote { flex-shrink:0; font-size:10px; line-height:1.5; padding:10px 22px 14px; margin:0; }
.chat-footnote #history-note { display:none; }
.conversation-browser-action { flex-shrink:0; max-height:190px; overflow:auto; margin:0 22px 12px; }
.mercury-dialog { width:min(760px,94vw); background:var(--paper); padding:28px; }
.mercury-dialog header { padding-bottom:16px; border-bottom:1px solid var(--line); margin-bottom:16px; }
.mercury-dialog h2 { font-size:32px; }
.mercury-dialog > p { color:var(--muted); font-size:14px; }
.mercury-dialog > details { padding:16px 18px; border:1px solid var(--line); border-radius:9px; }
.mercury-dialog > details > summary { font-weight:600; font-size:14px; }
.mercury-dialog > section { padding-top:12px; }
.mercury-dialog section h3 { font-size:16px; margin-bottom:10px; }
.mercury-dialog section > p { font-size:13px; color:var(--muted); }
.mercury-dialog [role=status]:empty { display:none; }
.mercury-dialog .button.text { min-height:36px; padding:6px 8px; }
.mercury-action { padding:22px 0; }
.mercury-action h4 { font-size:16px; margin:0 0 6px; }
.mercury-action > p { color:var(--muted); font-size:12px; }
.mercury-action > .button { margin:8px 8px 0 0; min-height:40px; }
.action-facts { margin:18px 0; padding:4px 16px; background:#f6f8f4; border-radius:8px; }
.action-facts > div { display:grid; grid-template-columns:minmax(100px,1fr) minmax(0,2fr); gap:20px; padding:10px 0; border-bottom:1px solid var(--line); }
.action-facts > div:last-child { border:0; }
.action-facts dt { color:var(--muted); font-size:12px; }
.action-facts dd { margin:0; font-size:14px; overflow-wrap:anywhere; text-align:right; font-variant-numeric:tabular-nums; }
.request-details { font-size:12px; color:var(--muted); }
.execution-review { margin-top:24px; }
.execution-review > .mercury-action { margin:0 26px; }
.execution-review > p { margin:0 26px 20px; color:var(--muted); }
@media(max-width:1100px) {
 .conversation-layout { grid-template-columns:170px minmax(0,1fr); gap:18px; }
 .topbar { padding-left:26px; padding-right:26px; }
 .person-control label { display:none; }
}
@media(max-width:850px) {
 .sidebar { padding:14px 20px 8px; }
 .brand { margin-bottom:12px; }
 .sidebar nav { scrollbar-width:none; }
 .topbar { padding:0 20px; }
 body[data-view=thread] main { padding:16px 20px; }
 #conversation .chat-panel { height:calc(100dvh - 216px); min-height:470px; }
 .household-control { max-width:180px; }
}
@media(max-width:700px) {
 .conversation-layout { display:flex; flex-direction:column; gap:12px; }
 .conversation-navigation { width:100%; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 .conversation-navigation .eyebrow { display:none; }
 .conversation-navigation .search { margin:0; background:white; width:100%; }
 .conversation-navigation > .button { font-size:12px; padding:10px; }
 .conversation-navigation #conversation-list { grid-column:1/-1; display:flex; gap:6px; max-height:54px; overflow:auto; scrollbar-width:thin; }
 .conversation-link { width:auto; min-width:0; flex:0 0 auto; max-width:230px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:10px 12px; margin:0; min-height:40px; }
 #conversation .chat-panel { width:100%; height:calc(100dvh - 318px); min-height:410px; }
 .chat-heading { padding:14px 18px; }
 .chat-heading p { display:none; }
 .chat-heading strong { font-size:15px; }
 .research-summary > summary { padding:10px 18px; }
 .research-body { max-height:160px; padding:0 18px; }
 #thread { padding:20px 18px; }
 .message { font-size:14px; max-width:94%; }
 #composer { margin:0 12px; }
 #composer textarea { font-size:16px; min-height:60px; }
 .chat-footnote { padding:8px 12px 12px; }
 .mode button { font-size:10px; padding:6px 8px; }
 .topbar #breadcrumb { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
 .person-control { gap:6px; flex-shrink:0; }
 .person-control select { max-width:90px; }
 .utility-menu { margin-left:4px; }
 .utility-menu > summary { padding:8px; gap:8px; }
 .mercury-dialog { padding:20px; }
 .action-facts > div { grid-template-columns:100px minmax(0,1fr); gap:12px; }
}
@media(max-width:420px) {
 .topbar #breadcrumb { display:none; }
 .topbar { justify-content:flex-end; }
 body[data-view=thread] main { padding:12px; }
 .household-control { max-width:155px; }
 .chat-footnote { font-size:9px; }
}
.mercury-dialog header { position:sticky; top:-28px; z-index:2; background:white; margin:-28px -28px 16px; padding:20px 28px; }
@media(max-width:700px) { .mercury-dialog header { top:-20px; margin:-20px -20px 16px; padding:16px 20px; } }
.provider-handoff.dismissible-notice { position:relative; padding-right:54px; touch-action:pan-y pinch-zoom; }
.dismiss-notice { position:absolute; right:10px; top:10px; width:34px; height:34px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:24px; line-height:1; }
.dismiss-notice:hover { background:#e6ede2; color:var(--ink); }
@media(max-width:600px){.conversation-browser-action .provider-handoff.dismissible-notice{padding-right:50px;}.dismiss-notice{width:40px;height:40px;right:4px;top:4px;}}
.provider-handoff.collapsible-notice { position:relative; padding-right:54px; touch-action:pan-y pinch-zoom; }
.collapse-notice { position:absolute; right:10px; top:10px; width:34px; height:34px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; background:transparent; color:#66756a; font:20px/1 Georgia,serif; cursor:pointer; }
.collapse-notice:hover { background:#e6ede2; color:var(--ink); }
.conversation-browser-action .provider-handoff.is-collapsed { padding:12px 54px 12px 16px; gap:10px; align-items:center; cursor:pointer; }
.provider-handoff.is-collapsed .provider-mark { flex:0 0 26px; height:26px; font-size:13px; }
.provider-handoff.is-collapsed h3 { font-size:16px; margin:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.provider-handoff.is-collapsed p, .provider-handoff.is-collapsed .provider-actions, .provider-handoff.is-collapsed .provider-handoff-body > button { display:none; }
.provider-handoff.is-collapsed .collapse-notice { top:50%; transform:translateY(-50%); }
@media(max-width:600px){.conversation-browser-action .provider-handoff.collapsible-notice{padding-right:50px;}.collapse-notice{width:40px;height:40px;right:4px;top:4px;}.conversation-browser-action .provider-handoff.is-collapsed{padding:10px 48px 10px 12px;}}

.letter-compose-footer { justify-content:flex-end; }
/* Shared conversation / work / browser workspace. */
.workspace-controls{display:flex;gap:4px;margin-left:auto;flex-shrink:0}.workspace-controls .button{min-height:36px;padding:6px 10px;font-size:12px}.workspace-body{display:flex;flex:1;min-height:0;min-width:0}.workspace-chat{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.workspace-chat #thread{flex:1;overflow:auto}.workspace-chat #composer{flex-shrink:0}.workspace-open{overflow:hidden}#conversation .chat-panel.workspace-expanded{position:fixed;inset:12px;z-index:90;width:auto;height:auto;min-height:0;border-radius:14px;box-shadow:0 0 0 30px var(--paper,#f4f6f3)}.live-browser{width:53%;min-width:0;overflow:auto;padding:16px;border-left:1px solid var(--line);background:#f8faf6;font:13px/1.6 var(--sans)}.live-browser[hidden]{display:none}.live-browser header,.browser-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.live-browser .button{font-size:12px;padding:8px 10px;min-height:36px}.live-browser form{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.live-browser input,.live-browser select{min-width:0;width:100%;padding:10px;border:1px solid var(--line);border-radius:7px;background:white;font:inherit}.live-browser [data-open] input{flex:1;width:auto}.live-browser [data-type] input{width:100%}.browser-frame{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:crosshair}.browser-address{overflow-wrap:anywhere;font-size:11px;color:var(--muted);margin:10px 0}.browser-control-note{font-size:12px;margin:10px 0}.browser-actions article{padding:16px 0;border-top:1px solid var(--line)}.browser-actions details{margin:10px 0;overflow-wrap:anywhere}.browser-focused .workspace-chat{display:none}.browser-focused .live-browser{width:100%;border-left:0}.work-dialog{width:min(820px,95vw);max-height:88dvh;border:1px solid var(--line);border-radius:16px;padding:28px;background:var(--paper,#fff);color:var(--ink)}.work-dialog::backdrop{background:#14291f66}.work-dialog>header,.work-card>header{display:flex;justify-content:space-between;align-items:center;gap:16px}.work-dialog h2{font-size:30px}.work-dialog>p{font-size:14px;margin:14px 0}.work-list{display:grid;gap:16px}.work-card{border:1px solid var(--line);border-radius:10px;padding:20px;background:white;font:14px/1.65 var(--sans)}.work-card h3{font-size:17px}.work-state{font-size:11px;text-transform:capitalize;white-space:nowrap;color:var(--green);background:#edf2e9;padding:3px 9px;border-radius:20px}.work-card p{margin:10px 0}.work-meta{font-size:12px;color:var(--muted)}.work-artifact{white-space:pre-wrap;padding:12px 0}.work-card summary{cursor:pointer;color:var(--green)}.work-card pre{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:300px;overflow:auto}.work-steps{padding-left:20px;margin:14px 0}.work-steps small{color:var(--muted);margin-left:8px}.work-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.work-actions .button{font-size:12px}.work-empty,.browser-empty{padding:28px 0}.work-empty p,.browser-empty p{margin-top:10px;color:var(--muted)}
@media(max-width:1000px){.has-browser .workspace-body{flex-direction:column}.has-browser .workspace-chat{flex:1;min-height:220px}.live-browser{width:100%;max-height:55%;border-left:0;border-top:1px solid var(--line)}.browser-focused .live-browser{max-height:none;flex:1}.chat-heading{flex-wrap:wrap}.workspace-controls{gap:0}.work-dialog{padding:18px}}
@media(max-width:600px){#conversation .chat-panel.workspace-expanded{inset:0;border-radius:0}.workspace-controls .button{padding:6px;font-size:11px}.chat-heading{gap:8px}.work-card{padding:14px}.work-dialog h2{font-size:25px}}
.browser-upload{font-size:12px;display:block;padding:10px 0;color:var(--green)}.browser-upload input{font-size:11px;margin-top:6px}.browser-files{font-size:12px;overflow-wrap:anywhere}.browser-files a{text-decoration:underline;cursor:pointer}
.browser-setup{margin:10px 0}.browser-setup>summary{cursor:pointer;font-size:12px;color:var(--green)}
@media(max-width:1000px){.has-browser .workspace-chat{display:none}.has-browser .live-browser{max-height:none;flex:1}.has-browser .workspace-body{min-height:0}}

/* The conversation, harmonised with the preview.
   The app's existing IDs and transport are untouched — only the chrome is
   replaced — so these rules dress the real streaming thread as the preview's
   agent screen rather than reimplementing it. */
.conversation-layout.cv{grid-template-columns:200px minmax(0,1fr) 256px;gap:24px;align-items:start}
.cv .chat-panel{background:none;border:0;padding:0;min-height:0;display:flex;flex-direction:column}
/* Empty means empty: the hero says what this is, so no panel chrome around it. */
.cv:has(.welcome) .cv-main{min-height:min(58vh,520px);justify-content:center}
/* The thread keeps its own scroll region so a long conversation can never run
   underneath the composer — which it did once the max-height was removed. */
.cv #thread{max-height:52vh;overflow:auto;padding:0 0 20px;gap:20px}
.cv:has(.welcome) #thread{padding:0;overflow:visible}
.cv .welcome{padding:0 0 26px;text-align:center}
.cv .welcome .agent-symbol{font-size:40px;display:block;margin-bottom:10px}
.cv .welcome h2{font-size:31px;letter-spacing:-.7px}
.cv .welcome p{font-size:13px;color:var(--muted);margin-top:9px;max-width:46ch;margin-left:auto;margin-right:auto}
.cv #composer{border:1px solid #d9e1d7;border-radius:12px;background:#fcfdfb}
.cv #composer textarea{min-height:auto;padding:16px 18px 6px}
.cv .composer-bottom{padding:8px 12px 10px;gap:10px;flex-wrap:wrap}
.cv .mode{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff;gap:0}
.cv .mode button{padding:6px 11px;font-size:11px}
.cv .mode button[aria-pressed=true]{background:#e9eee5;color:#3e5936;font-weight:600}
.cv .chat-footnote{text-align:left;margin-top:10px;font-size:10px}
/* Starter prompts sit under the composer, not in a right-hand rail. */
.cv .cv-suggestions{margin-top:20px}
.cv .cv-suggestion{border:0;background:none;border-top:1px solid var(--line);padding:14px 4px;display:flex;justify-content:space-between;gap:16px;text-align:left;font-size:13px;width:100%}
.cv .cv-suggestion:hover{background:#f2f5f1}
.cv .cv-suggestion small{color:var(--muted);font-size:11.5px;text-align:right;flex-shrink:0;max-width:52%}
.cv .conversation-navigation{position:sticky;top:18px}
.cv .message.member{border-radius:12px 12px 2px 12px}
@media(max-width:1200px){.conversation-layout.cv{grid-template-columns:200px minmax(0,1fr)}.cv .cv-side{grid-column:2}}
@media(max-width:900px){.conversation-layout.cv{grid-template-columns:minmax(0,1fr)}.cv .conversation-navigation{position:static}.cv .cv-side{grid-column:1}}
/* The research panel only earns space once there is research to show. */
.cv .chat-context{padding:0;margin-top:22px}
.cv .chat-context:empty{display:none}
/* Structural anchor for workspace.js and the conversation title; not shown. */
.cv .chat-heading{display:none}
/* With the hero up, the thread must not take the slack — otherwise it grows and
   shoves the composer to the bottom of the screen, splitting the one thing the
   empty state is meant to present as a single block. */
.cv:has(.welcome) #thread{flex:0 0 auto}
.cv .cv-suggestion span{color:var(--ink)}

/* The side rail: where to start, and research once there is any. */
.cv-side{position:sticky;top:18px;padding-top:2px}
.cv-side .eyebrow{margin-bottom:4px}
.cv .cv-side .cv-suggestions{margin-top:0;display:flex;flex-direction:column}
.cv .cv-side .cv-suggestion{flex-direction:column;align-items:flex-start;gap:3px;padding:13px 0;font-size:12.5px}
.cv .cv-side .cv-suggestion small{text-align:left;max-width:none;font-size:11px}
.cv-side .context-note{margin-top:18px}
@media(max-width:900px){.cv-side{position:static}}

/* Consent, second factor, deletion */
.auth-card label.consent { display:flex; grid-template-columns:none; gap:10px; align-items:flex-start; font-size:13px; line-height:1.5; color:var(--muted); margin:14px 0 12px; text-align:left; }
.auth-card label.consent input { width:16px; height:16px; margin:3px 0 0; padding:0; flex:0 0 auto; accent-color:#365d4d; }
.auth-card label.consent span { flex:1 1 auto; }
.auth-card .consent a, .auth-dialog .small-text a { color:#355e4e; text-decoration:underline; text-underline-offset:3px; }
.mfa-qr { display:block; margin:12px auto; border:1px solid var(--line); border-radius:12px; background:#fff; max-width:100%; }
.recovery-codes { font:14px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace; background:var(--pale); border-radius:10px; padding:12px 16px; user-select:all; white-space:pre; overflow-x:auto; }
details.danger { margin-top:18px; border-top:1px solid var(--line); padding-top:12px; }
details.danger summary { color:#8a3a2a; cursor:pointer; }
details.danger em { font-style:normal; font-weight:600; }
.button.danger { background:#8a3a2a; border-color:#8a3a2a; color:#fff; }
.auth-dialog h3 { margin-top:22px; }

/* Images in the conversation */
.attach-button { width:34px; height:34px; border-radius:9px; border:1px solid transparent; background:transparent; font-size:16px; cursor:pointer; color:var(--muted); }
.attach-button:hover { background:#e6ede2; color:var(--ink); }
#composer.is-dropping { outline:2px dashed #365d4d; outline-offset:-6px; }
.attachment-strip { display:flex; flex-wrap:wrap; gap:8px; padding:6px 12px 0; }
.attachment { position:relative; display:grid; grid-template-columns:56px 1fr; gap:8px; align-items:center; max-width:320px; padding:6px 30px 6px 6px; border:1px solid var(--line); border-radius:10px; background:var(--pale); font-size:12px; }
.attachment img { width:56px; height:56px; object-fit:cover; border-radius:6px; background:#fff; }
.attachment-wait { width:56px; height:56px; display:grid; place-items:center; color:var(--muted); font-size:11px; }
.attachment-caption { color:var(--ink); overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; line-height:1.35; }
.attachment.is-flagged { border-color:#c98a2e; background:#fbf3e4; }
.attachment-warning { grid-column:1/-1; color:#8a5a12; font-size:11px; }
.attachment-remove { position:absolute; top:4px; right:4px; width:22px; height:22px; border:0; border-radius:50%; background:transparent; color:var(--muted); font-size:16px; line-height:1; cursor:pointer; }
.attachment-remove:hover { background:#e6ede2; color:var(--ink); }
.message-images { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.message-images img { max-width:min(100%,260px); max-height:220px; border-radius:10px; border:1px solid var(--line); background:#fff; }

.research-actions { display:flex; flex-wrap:wrap; gap:4px; margin-top:6px; }
.research-actions .button { padding:2px 6px; }

/* The workspace controls sit with the composer's other actions. */
#composer .workspace-controls { display:flex; gap:2px; margin-left:auto; }
#composer .workspace-controls .button { padding:4px 7px; font-size:11px; min-height:28px; color:var(--muted); }
#composer .workspace-controls .button:hover { background:#e6ede2; color:var(--ink); }
#composer .workspace-controls .button[aria-pressed=true] { background:#e6ede2; color:var(--ink); }
@media(max-width:600px){#composer .workspace-controls .button{padding:4px;font-size:10px}}

/* The conversation rail: each thread, and the control to put it away. */
.conversation-row { display:flex; align-items:stretch; gap:2px; }
.conversation-row .conversation-link { flex:1; min-width:0; }
.conversation-archive { flex:0 0 auto; width:26px; border:0; border-radius:7px; background:transparent; color:var(--muted); font-size:14px; line-height:1; cursor:pointer; opacity:0; transition:opacity .12s ease; }
.conversation-row:hover .conversation-archive, .conversation-row:focus-within .conversation-archive { opacity:1; }
.conversation-archive:hover { background:#e6ede2; color:var(--ink); }
.conversation-archive:disabled { opacity:0; }
@media (hover:none) { .conversation-archive { opacity:1; } }
.conversation-archive-toggle { display:block; width:100%; margin-top:8px; text-align:left; font-size:11px; padding:6px 8px; }
