/* FINOVERVIEW1021: one ledger surface, scoped to the Overview route. */
#content[data-section="finance"] .fo-overview{--fs-sm:max(13px,.875rem);--fs-2xl:2.125rem;--fs-xl:1.5rem;--fs-lg:1rem;min-width:0;color:var(--ink);font-size:var(--fs-sm)}
.main-inner:has(.fo-overview){--fs-sm:max(13px,.875rem);--fs-xl:1.5rem;max-width:1120px;margin-left:0}
.main-inner:has(.fo-overview) .top{margin-bottom:0}
.main-inner:has(.fo-overview) h1{font-size:var(--fs-xl);font-weight:600}
.main-inner:has(.fo-overview) .search,.main-inner:has(.fo-overview) .btn{box-shadow:none;color:var(--ink);background:transparent;border-color:var(--line);font-weight:500}
#content[data-section="finance"] .fo-overview .num{font-family:var(--f-num);font-variant-numeric:lining-nums tabular-nums}
#content[data-section="finance"] .fo-overview .num.is-zero{color:var(--muted);font-weight:400}
#content[data-section="finance"] .fo-overview .cents{color:var(--ink-2);font-size:max(13px,.6em)}
#content[data-section="finance"] .fo-overview h2{font-size:var(--fs-xl);font-weight:500;margin:0}
#content[data-section="finance"] .fo-fresh{color:var(--ink-2);font-size:var(--fs-label);margin:6px 0 18px}
#content[data-section="finance"] .fo-fresh.is-stale{color:var(--warn-ink)}
#content[data-section="finance"] .fo-fresh .btn{padding:0;text-decoration:underline;min-height:24px;border:0}
#content[data-section="finance"] .fo-overview .finance-header{position:static;display:block;background:transparent;border:0;padding:0;margin:0;box-shadow:none}
#content[data-section="finance"] .fo-overview [data-finance-tabs]{display:flex;gap:var(--s5);padding:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;overflow-x:auto;scrollbar-width:none}
#content[data-section="finance"] .fo-overview [data-finance-tabs] a{flex:none;white-space:nowrap;padding:10px 0;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--ink-2);font-weight:500;box-shadow:none;min-width:0}
#content[data-section="finance"] .fo-overview [data-finance-tabs] a[aria-current="page"]{border-bottom-color:var(--accent);color:var(--ink);font-weight:600;background:transparent;box-shadow:none}
#content[data-section="finance"] .fo-overview [data-finance-tabs] .count{background:transparent;color:var(--ink-2);box-shadow:none}
#content[data-section="finance"] .fo-overview>section,.fo-overview>.trend{padding:32px 0;border-bottom:1px solid var(--line);margin:0}
#content[data-section="finance"] .fo-ledger{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--s5)}
#content[data-section="finance"] .fo-cell{min-width:0}
#content[data-section="finance"] .fo-cell+.fo-cell{border-left:1px solid var(--line);padding-left:var(--s5)}
#content[data-section="finance"] .fo-label{display:flex;align-items:center;gap:var(--s1);color:var(--ink-2);font-size:var(--fs-sm)}
#content[data-section="finance"] .fo-cell>.value{display:block;font-size:var(--fs-xl);font-weight:600;line-height:1.4;margin:4px 0}
/* FIN-LOOK-A: the net-worth figure is the one big Fraunces number; the sentence below says how it adds up. */
#content[data-section="finance"] .fo-net>.value{font-family:var(--f-head);font-size:clamp(3.5rem,2.2rem + 5vw,7rem);font-weight:400;line-height:1.05;letter-spacing:-.02em;margin:var(--s2) 0}
#content[data-section="finance"] .fo-net>.value .cents{font-size:.4em;letter-spacing:0}
#content[data-section="finance"] .fo-sentence{font-size:var(--fs-lg);line-height:1.6;max-width:40em;margin:var(--s3) 0 var(--s4)}
#content[data-section="finance"] .fo-sentence .value{font-weight:600}
#content[data-section="finance"] .fo-ledger:has(.fo-sentence){grid-template-columns:minmax(0,1fr)}
#content[data-section="finance"] .fo-ledger:has(.fo-sentence)>.fo-cell:not(.fo-net){display:none}
#content[data-section="finance"] .fo-cell small{display:block;color:var(--ink-2);font-size:var(--fs-label)}
#content[data-section="finance"] .fo-split{display:flex;height:8px;gap:2px;margin-top:var(--s2)}
#content[data-section="finance"] .fo-split i{border-radius:4px;min-width:0}
#content[data-section="finance"] .fo-sgd{background:var(--asset-cash)}
#content[data-section="finance"] .fo-usd{background:var(--secondary)}
#content[data-section="finance"] .fo-split-legend{font-size:var(--fs-label);color:var(--ink-2);margin:var(--s1) 0 0}
#content[data-section="finance"] .fo-split-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
#content[data-section="finance"] .fo-reconcile,.fo-excluded,.fo-partial{font-size:var(--fs-label);color:var(--ink-2);line-height:1.5;margin:var(--s2) 0 0}
#content[data-section="finance"] .fo-contribution{display:inline-block}
#content[data-section="finance"] .fo-section-head{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s4)}
#content[data-section="finance"] .fo-section-head h2{margin-right:auto}
#content[data-section="finance"] .fo-hide{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-label);color:var(--ink-2)}
#content[data-section="finance"] .fo-hide input{width:auto}
#content[data-section="finance"] .fo-table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:var(--fs-sm)}
#content[data-section="finance"] .fo-table th{color:var(--ink-2);font-size:var(--fs-label);font-weight:500;text-align:left;white-space:nowrap}
#content[data-section="finance"] .fo-table th,.fo-table td{padding:var(--s3);border-bottom:1px solid var(--line)}
#content[data-section="finance"] .fo-table tr:last-child td{border-bottom:0}
#content[data-section="finance"] .fo-table th:nth-child(4),.fo-balance{text-align:right;font-variant-numeric:lining-nums tabular-nums}
#content[data-section="finance"] .fo-updated,.fo-table small{color:var(--ink-2);font-size:var(--fs-label)}
#content[data-section="finance"] .fo-table small{display:block}
#content[data-section="finance"] .fo-action{text-align:right}
#content[data-section="finance"] .fo-phone-source{display:none!important}
#content[data-section="finance"] .fo-overview .card{box-shadow:none;border-radius:var(--r-sm);padding:var(--s4) var(--s5)}
#content[data-section="finance"] .fo-overview .trend{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none}
#content[data-section="finance"] .fo-overview .trend .card-h{margin-bottom:var(--s4)}
#content[data-section="finance"] .fo-overview .trend .seg{box-shadow:none;background:transparent;border:1px solid var(--line)}
#content[data-section="finance"] .fo-overview .trend .seg button{color:var(--ink-2);background:transparent;box-shadow:none;font-weight:500}
#content[data-section="finance"] .fo-overview .trend .seg button[aria-pressed="true"]{color:var(--on-accent);background:var(--accent)}
#content[data-section="finance"] .fo-trend-frame{display:block;width:100%;height:120px}
#content[data-section="finance"] .fo-overview .data-drawer{margin-top:32px}
#content[data-section="finance"] .fo-overview .data-drawer>summary{font-weight:600}
#content[data-section="finance"] .fo-overview .data-drawer section,#content[data-section="finance"] .fo-overview .data-drawer details{box-shadow:none;background:transparent}
#content[data-section="finance"] .fo-overview .data-drawer .tip{display:none}
#content[data-section="finance"] .fo-overview .btn{color:var(--ink);background:transparent;border-color:var(--line);box-shadow:none;font-weight:500}
#content[data-section="finance"] .fo-overview :is(button,a,input,summary):focus-visible,.main-inner:has(.fo-overview) :is(button,a,summary):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.main-inner:has(.fo-overview) #open-jump-mobile{display:none!important}
.main-inner:has(.fo-overview) .fo-desktop-actions{display:flex;gap:var(--s2);align-items:center}
.main-inner:has(.fo-overview) .fo-more{display:none}
@media(max-width:720px){
 .main-inner:has(.fo-overview) .top{flex-wrap:nowrap;gap:var(--s2)}
 /* FIN-LOOK-A: the wider serif title must not wrap the loading header's actions to a second row (CLS). */
 .main-inner:has(#content[data-section="finance"]) .top h1{font-size:1.375rem}
 .main-inner:has(.fo-overview) #page-actions{flex-wrap:nowrap;margin-left:auto}
 .main-inner:has(.fo-overview) .fo-desktop-actions{display:none}
 .main-inner:has(.fo-overview) .fo-more{display:block}
 .main-inner:has(.fo-overview) .fo-more>summary{min-height:44px;min-width:44px;display:grid;place-items:center;list-style:none}
 .main-inner:has(.fo-overview) .fo-more .pop-panel{right:0;left:auto;min-width:200px}
 .main-inner:has(.fo-overview) .fo-more .pop-panel .btn{display:flex;width:100%}
 #content[data-section="finance"] .fo-overview [data-finance-tabs]{mask-image:linear-gradient(to right,var(--ink) calc(100% - 24px),transparent);gap:var(--s5)}
 #content[data-section="finance"] .fo-ledger{display:block}
 #content[data-section="finance"] .fo-cell+.fo-cell{border-left:0;padding:var(--s3) 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2)}
 #content[data-section="finance"] .fo-cell+.fo-cell>.value{font-size:var(--fs-lg);margin:0;text-align:right}
 #content[data-section="finance"] .fo-cell+.fo-cell small{display:none}
 #content[data-section="finance"] .fo-net{padding-bottom:var(--s4)}
 #content[data-section="finance"] .fo-overview .fo-table{display:block}
 #content[data-section="finance"] .fo-table thead{display:none}
 #content[data-section="finance"] .fo-table tbody{display:block}
 #content[data-section="finance"] .fo-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid var(--line);gap:var(--s2);align-items:center;padding:var(--s3)}
 #content[data-section="finance"] .fo-table tr:last-child{border-bottom:0}
 #content[data-section="finance"] .fo-table td{padding:0;border:0;min-width:0}
 #content[data-section="finance"] .fo-table .fo-source,#content[data-section="finance"] .fo-table .fo-currency,#content[data-section="finance"] .fo-table .fo-updated{display:none}
 #content[data-section="finance"] .fo-phone-source{display:block!important}
 #content[data-section="finance"] .fo-account{overflow-wrap:anywhere}
 #content[data-section="finance"] .fo-balance{text-align:right}
 #content[data-section="finance"] .fo-action{grid-column:1/-1}
 #content[data-section="finance"] .fo-action:empty{display:none}
 #content[data-section="finance"] .fo-action .btn{min-height:24px}
 #content[data-section="finance"] .fo-hide{margin-left:0}
 #content[data-section="finance"] .fo-overview .trend .card-h{flex-wrap:wrap}
}
#content[data-section="finance"] .fo-overview :not(dialog):not(.pop-panel){box-shadow:none}
.main-inner:has(.fo-overview) #page-actions .seg,.main-inner:has(.fo-overview) #page-actions .seg button{box-shadow:none;color:var(--ink);font-weight:500}
.main-inner:has(.fo-overview) #page-actions .seg button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
/* FIN-LOOK-A: on wide screens the trend sits beside the figure, as in the owner's pick (dense flow fills the cell
   beside the ledger; phones keep the DOM order so the loading chart never pushes the table). */
@media(min-width:1024px){
 #content[data-section="finance"] .fo-overview:has(>.fo-ledger .fo-sentence){display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);grid-auto-flow:row dense;column-gap:var(--s5)}
 #content[data-section="finance"] .fo-overview:has(>.fo-ledger .fo-sentence)>*{grid-column:1/-1;min-width:0}
 #content[data-section="finance"] .fo-overview:has(>.fo-ledger .fo-sentence)>.fo-ledger{grid-column:1}
 #content[data-section="finance"] .fo-overview:has(>.fo-ledger .fo-sentence)>.trend{grid-column:2;border-left:1px solid var(--line);padding-left:var(--s5)}
}
#content[data-section="finance"] .fo-overview .data-drawer :is(p,span,small,td,th,label){font-size:var(--fs-label);font-weight:400}
#content[data-section="finance"] .fo-hide .switch{width:44px;accent-color:var(--ink)}
#content[data-section="finance"] .fo-hide .switch:checked{background:var(--ink);border-color:var(--ink)}
#content[data-section="finance"] .fo-hide .switch::after{box-shadow:none}
#content[data-section="finance"] .fo-overview .num.is-zero .cents{color:inherit}
/* D27 APP-FINANCE-FIX-1101: net-worth readout and keyboard focus. */
#content[data-section="finance"] .trend-readout{color:var(--ink-2);margin:var(--s1) 0 0;min-height:1.5em}
#content[data-section="finance"] .trend-chart-wrap:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}
/* FINOVERVIEW1105: approved phone glance, using the existing Look A tokens. */
.main-inner:has(.fo-overview) .top{display:none}
/* FINCASHFLOW1106 R1: Cash flow's phone actions remain in the bottom-bar Finance menu. */
@media(max-width:720px){
.main-inner:has(.fin-cf) .top{display:none}
/* FINCASHFLOW1106 R2 N1: preserve the viewer status, as Overview does. */
:root[data-read-only="true"] .main-inner:has(.fin-cf) .top{display:flex}
.main-inner:has(.fin-cf) .top>:not(#read-only-badge){display:none}
}
/* FINOVERVIEW1105 B5: preserve the viewer status while keeping Overview chrome out of the glance. */
:root[data-read-only="true"] .main-inner:has(.fo-overview) .top{display:flex}
.main-inner:has(.fo-overview) .top>:not(#read-only-badge){display:none}
#content[data-section="finance"] .fo-first-screen{--fs-lg:1.25rem;display:flex;flex-direction:column;gap:var(--s6);padding:var(--s2)}
/* FINOVERVIEWB1106: natural hero height puts accounts at the existing section gap. */
#content[data-section="finance"] .fo-glance-hero{display:flex;flex-direction:column}
#content[data-section="finance"] .fo-glance-hero h1{font:500 var(--fs-md)/1.3 var(--f-body);color:var(--ink-2);margin:0}
#content[data-section="finance"] .fo-glance-total{font:400 46px/1.05 var(--f-head);letter-spacing:-.02em;margin:var(--s2) 0 0;white-space:nowrap}
#content[data-section="finance"] .fo-glance-total .value{font:inherit;letter-spacing:inherit}
#content[data-section="finance"] .fo-glance-total .cents{font-size:.42em}
#content[data-section="finance"] .fo-glance-change{margin:var(--s3) 0 0;color:var(--ink-2);font-size:var(--fs-sm)}
#content[data-section="finance"] .fo-glance-change:empty{display:none}
#content[data-section="finance"] .fo-risk-link{display:flex;align-items:center;gap:var(--s1);min-height:44px;color:var(--warn-ink);font-size:var(--fs-label);align-self:flex-start}
#content[data-section="finance"] :is(.fo-glance-where,.fo-glance-spent){display:block;color:var(--ink);text-decoration:none}
#content[data-section="finance"] .fo-glance-where{padding:var(--s4) var(--s4) var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
#content[data-section="finance"] .fo-first-screen h2{display:flex;align-items:center;justify-content:space-between;font:500 var(--fs-lg)/1.3 var(--f-head);margin:0}
#content[data-section="finance"] .fo-where-label{display:inline-flex;align-items:center;gap:var(--s2)}
#content[data-section="finance"] .fo-attention{display:inline-flex;color:var(--warn-ink)}
#content[data-section="finance"] .fo-account-strip{display:flex;height:14px;gap:var(--s1);margin:var(--s3) 0 var(--s2);border-radius:var(--r-xs);overflow:hidden}
#content[data-section="finance"] .fo-key{display:block;width:var(--s3);height:var(--s3);border-radius:var(--r-xs);flex-basis:0;min-width:0;background:var(--band)}
#content[data-section="finance"] .fo-tone-1{background:var(--accent)}
#content[data-section="finance"] .fo-tone-2{background:var(--accent-ink)}
#content[data-section="finance"] .fo-account-strip .fo-key{height:100%}
#content[data-section="finance"] .fo-hatched{background:repeating-linear-gradient(135deg,var(--accent) 0,var(--accent) var(--s1),var(--surface) var(--s1),var(--surface) var(--s2))}
#content[data-section="finance"] .fo-glance-row{display:grid;grid-template-columns:var(--s3) minmax(0,1fr) auto;gap:var(--s3);align-items:center;min-height:calc(var(--s7) + var(--s2))}
#content[data-section="finance"] .fo-glance-row+.fo-glance-row{border-top:1px solid var(--line)}
#content[data-section="finance"] .fo-who{display:flex;flex-direction:column;min-width:0}
#content[data-section="finance"] .fo-name{font-size:var(--fs-sm);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#content[data-section="finance"] .fo-age{display:flex;align-items:center;gap:var(--s1);color:var(--ink-2);font-size:var(--fs-label);line-height:1.35}
#content[data-section="finance"] .fo-age.old{color:var(--warn-ink);font-weight:600}
#content[data-section="finance"] .fo-age .i{width:var(--s4);height:var(--s4)}
#content[data-section="finance"] .fo-amt{font-size:var(--fs-md);font-weight:600;white-space:nowrap}
#content[data-section="finance"] .fo-more-accounts{display:block;padding-top:var(--s2);font-size:var(--fs-label)}
#content[data-section="finance"] .fo-glance-spent{padding:0 var(--s4)}
#content[data-section="finance"] .fo-spent-month{display:grid;grid-template-columns:1fr auto;column-gap:var(--s3);align-items:baseline;margin-top:var(--s3);font-size:var(--fs-sm)}
#content[data-section="finance"] .fo-spent-month .fo-amt{font-size:var(--fs-sm)}
#content[data-section="finance"] .fo-spent-bar{grid-column:1/-1;display:block;height:var(--s2);margin-top:var(--s1);border-radius:var(--r-xs);background:var(--ink-2)}
#content[data-section="finance"] .fo-spent-bar.fo-hatched{background:repeating-linear-gradient(135deg,var(--ink-2) 0,var(--ink-2) var(--s1),var(--bg) var(--s1),var(--bg) var(--s2))}
#content[data-section="finance"] .fo-overview>.data-drawer{margin-top:var(--s7)}
#content[data-section="finance"] .fo-overview>.data-drawer>summary{min-height:44px;display:flex;align-items:center}
#content[data-section="finance"] .fo-glance-where:active,#content[data-section="finance"] .fo-glance-spent:active{background:var(--surface-hover)}
.finance-menu{width:min(calc(100% - var(--s6)),28rem);max-height:calc(100dvh - var(--s7));padding:var(--s5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--ink)}
.finance-menu::backdrop{background:var(--scrim)}
.finance-menu-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
.finance-menu :is(nav,.finance-menu-controls){display:grid;gap:var(--s2);margin-top:var(--s4)}
.finance-menu :is(a,button,label){min-height:44px;display:flex;align-items:center;gap:var(--s2)}
.finance-menu :is(a,button,input):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(max-width:720px){.fo-desktop-menu{display:none!important}}
@media(min-width:721px){#content[data-section="finance"] .fo-first-screen{max-width:36rem}}
/* /FINOVERVIEW1021 */

/* Page layouts. Tokens only. */

/* ---------- Login ---------- */
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.login-art{position:relative;overflow:hidden;padding:var(--s6) clamp(24px,5vw,64px);background:var(--rail-bg);display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line)}
.login-art .brand{padding:0}
.login-copy{position:relative;max-width:520px}
.login-copy>:not(.blob){position:relative}
.login-copy .blob.a{width:340px;height:300px;left:-60px;top:-80px;background:var(--accent-tint)}
.login-copy .blob.b{width:180px;height:160px;right:-20px;bottom:-60px;background:var(--secondary-tint);animation-duration:18s}
.eyebrow{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--ink-2);margin-bottom:var(--s3)}
.login-big{font:var(--head-weight) clamp(2rem,4.2vw,3.2rem)/1.12 var(--f-head);letter-spacing:-.02em;color:var(--ink)}
.login-art small{color:var(--ink-2);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.login-side{display:grid;place-items:center;padding:var(--s6) var(--s4)}
.login-card{width:100%;max-width:400px;display:grid;gap:var(--s4);padding:var(--s6)}
.login-card .chip{justify-self:start}
.login-foot{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-size:var(--fs-sm);font-weight:600}
@media (max-width:820px){.login{grid-template-columns:1fr}.login-art{display:none}.login-side{min-height:100vh}}

/* ---------- Shared page bits ---------- */
.subnav{display:flex;align-items:center;gap:var(--s3);margin:calc(-1 * var(--s2)) 0 var(--s5);flex-wrap:wrap}
.status-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.section-h{display:flex;align-items:center;gap:var(--s2);margin:var(--s5) 0 var(--s3)}
.section-h h2{font-size:1.1rem}
.section-h svg{color:var(--ink-2)}
.pane-label{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase}
.small-note{font-size:var(--fs-sm)}
.approvals-ops-note a{color:var(--accent-ink);text-decoration:underline}
.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.pager{display:flex;align-items:center;gap:var(--s3);justify-content:center;margin-top:var(--s4);flex-wrap:wrap}
.disclosure>summary,.records>summary,.disclosure-inline>summary{list-style:none;display:flex;align-items:center;gap:var(--s2);font-weight:800}
.disclosure>summary::-webkit-details-marker,.records>summary::-webkit-details-marker,.disclosure-inline>summary::-webkit-details-marker{display:none}
.disclosure>summary svg,.records>summary>svg{transition:transform var(--t) var(--ease);color:var(--ink-2)}
.disclosure[open]>summary>svg,.records[open]>summary>svg{transform:rotate(90deg)}
.disclosure[open]>summary{margin-bottom:var(--s4)}
.disclosure-inline{margin-top:var(--s4)}
.disclosure-inline>summary{color:var(--ink-2);font-size:var(--fs-sm);margin-bottom:var(--s3)}
.quote{padding:var(--s3) var(--s4);border-radius:var(--r-sm);background:var(--surface-2);font-family:var(--f-body);font-size:var(--fs-sm);line-height:1.55;max-height:360px;overflow:auto;color:var(--ink)}
.quote.json{font-family:var(--f-mono);font-size:.8rem}
.quote.scroll{max-height:420px}
.module-root{min-width:0}

/* ---------- Home ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s5);margin-bottom:var(--s5)}
.ask{overflow:hidden;padding:var(--s6);background:linear-gradient(135deg,var(--surface-2),var(--surface) 70%);min-height:260px;display:flex;flex-direction:column}
.ask .blob.a{width:280px;height:250px;right:-70px;top:-90px;background:var(--accent-tint)}
.ask .blob.b{width:150px;height:140px;right:120px;bottom:-80px;background:var(--secondary-tint);animation-duration:18s}
.ask>:not(.blob){position:relative}
.ask h2{font-size:clamp(1.4rem,2.4vw,2rem);font-weight:500;max-width:16ch}
.who-pick{display:flex;gap:6px;margin:var(--s3) 0 var(--s5);flex-wrap:wrap}
.who-pick label{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px 0 5px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--glass);font-weight:800;font-size:var(--fs-sm);cursor:pointer}
.who-pick input:checked+label{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-ink)}
.who-pick input:focus-visible+label{outline:2px solid var(--focus);outline-offset:2px}
.mini-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}
.mini-av.t{background:var(--secondary);color:var(--on-secondary)}
.mini-av svg.i{width:15px;height:15px}
.composer{display:flex;align-items:center;gap:8px;min-height:60px;padding:6px 8px 6px 20px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-2)}
.ask .composer{margin-top:auto}
.composer input,.composer textarea{flex:1;min-width:0;border:0!important;outline:0;background:transparent!important;font-size:1.05rem;font-weight:600;box-shadow:none!important;padding:0!important;min-height:44px}
.composer textarea{resize:none;line-height:1.45;padding:10px 0!important;max-height:200px}
.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint),var(--sh-2)}
.composer .spark-ic{color:var(--secondary-ink)}
.composer .send{width:46px;height:46px;border-radius:50%;border:0;background:var(--accent);color:var(--on-accent);display:grid;place-items:center;flex:none;cursor:pointer;transition:transform var(--t-fast) var(--ease)}
.composer .send:hover{transform:scale(1.05)}
.composer .send:disabled{opacity:.5}
.sugg{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s3)}
.sugg button{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border-radius:var(--r-pill);background:var(--glass);border:1px dashed var(--line-strong);color:var(--ink-2);font-size:var(--fs-sm);font-weight:700;cursor:pointer}
.sugg button:hover{border-style:solid;color:var(--ink)}
.needs{display:flex;flex-direction:column}
.needs-h{display:flex;align-items:baseline;gap:10px;margin-bottom:var(--s3)}
.needs-h .tip{align-self:center}
.big-count{font-size:2.6rem;line-height:1;color:var(--secondary-ink)}
.todo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.todo a{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 10px 8px 8px;border-radius:var(--r-md);color:var(--ink);text-decoration:none;transition:background var(--t-fast)}
.todo a:hover{background:var(--surface-2);text-decoration:none}
.todo .t{display:block;font-weight:600;line-height:1.25}
.todo .s{display:block;color:var(--ink-2);font-size:var(--fs-sm);font-weight:600}
.todo .go{color:var(--muted)}
.todo .all-clear .empty{padding:var(--s4)}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s5);margin-bottom:var(--s5)}
.tile{display:flex;flex-direction:column;gap:6px;min-height:188px}
.tile .tip{position:relative;z-index:2}
.tile .label .go{margin-left:auto;color:var(--muted);transition:transform var(--t-fast) var(--ease)}
.tile:hover .label .go{transform:translate(2px,-2px);color:var(--accent-ink)}
.tile .big{font-size:1.75rem;line-height:1.1;overflow-wrap:anywhere}
.tile .sub{font-size:var(--fs-sm);color:var(--ink-2);font-weight:700}
.tile .viz{margin-top:auto}
.tile .skeleton{height:100%;min-height:140px}
.ring-row{display:flex;align-items:center;gap:14px}
.legend-mini{display:grid;gap:4px;font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.legend-mini span{display:flex;align-items:center;gap:6px}
.lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--s5)}
.bots{display:grid;gap:var(--s3)}
.bot{display:flex;align-items:center;gap:14px;padding:12px;border-radius:var(--r-md);background:var(--surface-2)}
.bot b{display:block;font-family:var(--f-head);font-weight:var(--head-weight);font-size:1.05rem}
.bot small{color:var(--ink-2);font-weight:700;font-size:var(--fs-sm)}
.av{position:relative;width:44px;height:44px;flex:none;border-radius:46% 54% 50% 50%/52% 48% 52% 48%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent)}
.av.t{background:var(--secondary);color:var(--on-secondary)}
.feed{list-style:none;margin:0;padding:0;position:relative}
.feed::before{content:"";position:absolute;left:19px;top:12px;bottom:12px;width:2px;background:repeating-linear-gradient(var(--line) 0 6px,transparent 6px 11px)}
.feed li{position:relative;display:flex;align-items:center;gap:14px;min-height:54px}
.feed .ic{border:3px solid var(--surface)}
.feed .t{font-weight:700;line-height:1.3;min-width:0;overflow-wrap:anywhere}
.feed time{margin-left:auto;color:var(--ink-2);font-size:var(--fs-xs);font-weight:800;white-space:nowrap}
@media (max-width:1240px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:980px){.hero,.lower{grid-template-columns:1fr}}
/* DOBBY-UIUX-8: "Needs me now" comes first in the DOM so phones lead with it; wide screens keep Ask on the left. */
@media (min-width:981px){.hero>.needs{grid-column:2;grid-row:1}.hero>.ask{grid-column:1;grid-row:1}}
@media (max-width:720px){.ask{padding:var(--s5);min-height:0}.tiles{gap:var(--s3)}.tile{min-height:150px}.tile .big{font-size:1.35rem}.ring-row .legend-mini{display:none}.composer{min-height:54px}}
@media (max-width:420px){.tiles{grid-template-columns:1fr 1fr}.tile .sub{display:none}}

/* ---------- Finance: shared ---------- */
.fin-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s5)}
.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-7{grid-column:span 7}.span-5{grid-column:span 5}.span-4{grid-column:span 4}
@media (max-width:1240px){.span-8,.span-7,.span-5,.span-4{grid-column:span 12}}
.portfolio>.status-chips{margin:calc(-1 * var(--s3)) 0 var(--s4);justify-content:flex-end}
.currency-switch{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap}
.value{overflow:visible}
.value .blob{width:180px;height:110px;right:0;bottom:0;clip-path:inset(0);background:var(--accent-tint);opacity:.7}
.value>:not(.blob){position:relative}
.v-big{display:block;font-size:clamp(2rem,4vw,3rem);line-height:1.05;margin:var(--s2) 0;overflow-wrap:anywhere}
.v-meta{display:flex;gap:var(--s5);margin:var(--s3) 0 var(--s4);flex-wrap:wrap}
.v-meta>div{display:grid;gap:2px}
.v-meta b{font-size:1.15rem}
.stackbar.big{height:16px;margin-top:var(--s2)}
.legend.inline{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-top:var(--s3);gap:6px var(--s4)}
.legend.inline li{grid-template-columns:auto minmax(0,1fr) auto}
.alloc .card-h{flex-wrap:wrap}
.alloc-view{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s5);align-items:center;animation:rise var(--t) var(--ease) both}
.alloc-view>.chip{grid-column:1/-1;justify-self:start}
.conc{display:grid;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s4);border-top:1px dashed var(--line)}
.conc-row{display:flex;align-items:center;gap:10px}
.conc-row .bar{flex:1}
.conc>.chip{justify-self:start;max-width:100%;white-space:normal}
.concentration-item{min-width:0}
.concentration-item .conc-row{flex-wrap:wrap}
.concentration-item .small-note{margin:4px 0;overflow-wrap:anywhere}
.hl-head,.hl>summary{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(90px,1fr) minmax(110px,1.2fr) 80px 120px 24px;align-items:center;gap:var(--s4)}
.hl-head{padding:0 var(--s3) var(--s2);color:var(--ink-2);font-size:var(--fs-xs);font-weight:800}
.hl-head span:nth-child(2),.hl-head span:nth-child(4),.r{text-align:right}
.hl{border-top:1px solid var(--line)}
.hl>summary{list-style:none;cursor:pointer;min-height:68px;padding:var(--s2) var(--s3);border-radius:16px;transition:background var(--t-fast)}
.hl>summary::-webkit-details-marker{display:none}
.hl>summary:hover{background:var(--surface-hover)}
.hl[open]>summary{background:var(--surface-2)}
.sec{display:flex;align-items:center;gap:12px;min-width:0}
.sec .tk{width:40px;height:40px;flex:none;border-radius:14px;display:grid;place-items:center;font:800 .72rem var(--f-body);color:var(--surface);background:var(--c,var(--chart-1))}
.sec>span:last-child{min-width:0}
.sec b{display:block;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sec small{display:block;color:var(--ink-2);font-weight:700;font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.w{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.w .bar{flex:1}
.w em{font-style:normal;min-width:48px;text-align:right;font-variant-numeric:tabular-nums}
.stc{display:flex;justify-content:flex-end}
.hl .i:last-child,.chev{color:var(--muted);transition:transform var(--t) var(--ease)}
.hl[open]>summary>svg:last-child{transform:rotate(90deg)}
.more{padding:var(--s3) var(--s3) var(--s4) 64px;animation:rise var(--t) var(--ease) both}
@media (max-width:860px){
  .hl-head{display:none}
  .hl>summary{grid-template-columns:minmax(0,1fr) auto 24px;row-gap:6px}
  .hl>summary .w{grid-column:1/-1;order:5}
  .hl>summary .pl{display:none}
  .hl>summary .stc{grid-column:1/-1;order:6;justify-content:flex-start}
  .more{padding-left:var(--s3)}
}
.income-block{display:grid;gap:var(--s2);padding:var(--s3) 0;border-top:1px dashed var(--line)}
.income-block:first-of-type{border-top:0}
.income-head{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.income-head .chip:last-child{margin-left:auto}
.income-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:var(--s3)}
.income-row b{font-size:var(--fs-sm)}
.fresh{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2)}
.fresh li{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:18px;background:var(--surface-2)}
.fresh b{display:block;font-weight:800}
.fresh small{display:block;color:var(--ink-2);font-weight:700;font-size:var(--fs-xs)}
.pulse{width:10px;height:10px;border-radius:50%;flex:none;background:var(--ok);box-shadow:0 0 0 4px var(--ok-tint)}
.pulse.stale{background:var(--warn);box-shadow:0 0 0 4px var(--warn-tint)}
.mini-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3)}
.mini-stat{display:grid;gap:2px;padding:var(--s3) var(--s4);border-radius:var(--r-md);background:var(--surface-2)}
.mini-stat b{font-size:1.2rem}
.mini-stat small{color:var(--ink-2);font-weight:700}
.sub-h{display:flex;align-items:center;gap:var(--s2);margin:var(--s5) 0 var(--s3)}
.sub-h h3,h3.sub-h{font-size:var(--fs-md)}
.nav-card>.sub-h:first-of-type{margin-top:var(--s3)}
.nav-card>.records{margin-top:var(--s3)}

/* Overview */
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4);margin-bottom:var(--s2)}
.stat{display:grid;gap:var(--s2)}
.stat .big{font-size:1.6rem;line-height:1.1;overflow-wrap:anywhere}
.worth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s4);margin-bottom:var(--s5)}
.worth-bars{display:grid;gap:var(--s2);margin:var(--s3) 0}
.excluded{margin-top:var(--s2)}
.acct-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.acct-list li{display:flex;align-items:center;gap:var(--s3);padding:10px;border-radius:var(--r-sm)}
.acct-list li:hover{background:var(--surface-hover)}
.acct-list b{display:block;font-weight:800}
.acct-list small{display:block;color:var(--ink-2);font-weight:600}
.acct-list .ic{width:36px;height:36px;border-radius:12px}
.disclosure{margin-bottom:var(--s5)}
@media (max-width:980px){.stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.acct-list li>.chip:nth-last-child(2){display:none}}

/* Cash flow */
.legend-inline{display:flex;gap:var(--s3);font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.legend-inline span{display:flex;align-items:center;gap:6px}
.flow-chart{display:flex;align-items:flex-end;gap:var(--s2);height:180px;padding:var(--s2) 0 0;margin-bottom:var(--s4);border-bottom:1px solid var(--line);overflow-x:auto}
.flow-col{flex:1;min-width:32px;height:100%;display:flex;flex-direction:column;align-items:center;gap:4px}
.flow-pair{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}
.flow-pair i{width:min(16px,40%);height:var(--v,0%);min-height:2px;border-radius:6px 6px 2px 2px;background:var(--c);transform-origin:bottom;animation:up var(--t-slow) var(--ease) both}
.flow-col small{font-weight:800;color:var(--ink-2)}
.month-head,.month>summary{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(80px,1fr)) 110px 24px;align-items:center;gap:var(--s3)}
.month-head{padding:0 var(--s3) var(--s2);font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.month-head span:nth-child(n+2):nth-child(-n+4){text-align:right}
.month{border-top:1px solid var(--line)}
.month>summary{list-style:none;padding:var(--s2) var(--s3);min-height:58px;border-radius:14px}
.month>summary::-webkit-details-marker{display:none}
.month>summary:hover{background:var(--surface-hover)}
.month[open]>summary{background:var(--surface-2)}
.month[open]>summary .chev{transform:rotate(90deg)}
.m-name b{display:block}
.m-name small{color:var(--ink-2);font-weight:600}
.month>summary .chip{justify-self:end}
.month .more{padding-left:var(--s3);display:grid;gap:var(--s4)}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.cat-list li{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr) auto;align-items:center;gap:var(--s3);font-size:var(--fs-sm);font-weight:700}
@media (max-width:720px){.month-head{display:none}.month>summary{grid-template-columns:minmax(0,1fr) auto 24px}.month>summary>.num:nth-child(2),.month>summary>.num:nth-child(3){display:none}.month>summary .chip{display:none}}

/* Imports */
.imports-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.import-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.import-list li{display:flex;align-items:center;gap:var(--s3);padding:10px;border-radius:var(--r-sm);flex-wrap:wrap}
.import-list li.on{background:var(--accent-tint)}
.import-list li:hover{background:var(--surface-hover)}
.import-list li.on:hover{background:var(--accent-tint)}
.import-list b{display:block;font-weight:800;overflow-wrap:anywhere}
.import-list small{display:block;color:var(--ink-2);font-weight:600}
.match{display:grid;gap:var(--s2);padding:var(--s3) 0;border-top:1px dashed var(--line)}
.match-pair{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;font-size:var(--fs-sm);font-weight:600}
.review-meta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s4);align-items:start;margin-bottom:var(--s4)}
.residual{display:grid;gap:2px;padding:var(--s3) var(--s4);border-radius:var(--r-md);min-width:180px}
.residual.ok{background:var(--ok-tint)}.residual.warn{background:var(--warn-tint)}
.residual small{color:var(--ink-2);font-weight:700}
.progress-line{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--s3);margin-bottom:var(--s4)}
.clip{display:block;max-width:360px;min-width:180px}
@media (max-width:1100px){.imports-grid{grid-template-columns:1fr}.review-meta{grid-template-columns:1fr}}

/* ---------- Investments flow ---------- */
.inv-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--s5);align-items:start;margin-bottom:var(--s5)}
.queue{display:grid;gap:var(--s3);position:sticky;top:var(--s5)}
.drop{position:relative;display:grid;gap:var(--s3);padding:var(--s4);border:2px dashed var(--line-strong);border-radius:32px 26px 34px 24px/26px 34px 24px 32px;background:var(--surface-2);transition:border-color var(--t-fast),background var(--t-fast)}
.drop.over,.drop:focus-within{border-color:var(--accent);background:var(--accent-tint)}
.drop-head{display:flex;align-items:center;gap:var(--s3)}
.drop-head b{display:block;font-weight:800}
.drop-head small{color:var(--ink-2);font-weight:700}
.drop-head .tip{margin-left:auto}
.drop .ic{background:var(--surface);color:var(--accent-ink);box-shadow:var(--sh-1)}
.drop .field{font-size:var(--fs-sm);font-weight:700;color:var(--ink-2)}
.qh{display:flex;align-items:center;justify-content:space-between;margin:var(--s2) 4px 0;color:var(--ink-2);font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.doc,.accts-open{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:20px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--sh-1);text-align:left;cursor:pointer;color:var(--ink)}
.doc:hover,.accts-open:hover{border-color:var(--line-strong)}
.doc[aria-current="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint),var(--sh-1)}
.fi{width:42px;height:48px;border-radius:10px 16px 10px 10px;display:grid;place-items:center;flex:none;font:800 .62rem var(--f-body);color:var(--surface);background:var(--info)}
.fi.csv{background:var(--secondary);color:var(--on-secondary)}
.doc b,.accts-open b{display:block;font-weight:800;font-size:var(--fs-sm)}
.doc small,.accts-open small{color:var(--ink-2);font-weight:700;font-size:var(--fs-xs)}
.hist>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:16px;color:var(--ink-2);font-weight:800;font-size:var(--fs-sm)}
.hist>summary::-webkit-details-marker{display:none}
.hist>summary:hover{background:var(--surface-2)}
.hist[open]>summary svg{transform:rotate(90deg)}
.hist .doc{margin-top:var(--s2);box-shadow:none}
.flow{padding:0}
.f-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s5) var(--s5) var(--s4);flex-wrap:wrap}
.f-head h2{font-size:1.25rem}
.f-head small{display:block;color:var(--ink-2);font-weight:700;font-size:var(--fs-sm)}
.f-head .end{margin-left:auto;display:flex;gap:8px;align-items:center}
.pad{padding:0 var(--s5) var(--s5)}
.sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}
.sum .s{position:relative;padding:14px 16px;border-radius:20px;background:var(--surface-2);display:grid;gap:2px}
.sum .s b{font-size:1.7rem;line-height:1.1}
.sum .s span{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.sum .s.ok{background:var(--ok-tint)}.sum .s.ok b{color:var(--ok-ink)}
.sum .s.info{background:var(--info-tint)}.sum .s.info b{color:var(--info-ink)}
.sum .s.warn{background:var(--warn-tint)}.sum .s.warn b{color:var(--warn-ink)}
.sum .s .tip{position:absolute;top:10px;right:10px}
.split{display:flex;height:10px;gap:3px;margin:var(--s3) 0 var(--s4)}
.split i{flex:var(--f,1) 1 0;border-radius:var(--r-pill);background:var(--c);animation:grow var(--t-slow) var(--ease) both}
.callout form.activate{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:var(--s2);align-items:end;width:100%}
.callout form.activate .field{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.callout{margin-bottom:var(--s3)}
.rows-h{display:flex;align-items:center;gap:var(--s3);margin:var(--s4) 0 var(--s2);flex-wrap:wrap}
.rows-h .seg{margin-left:auto}
.rsecs{display:grid;gap:var(--s3)}
.rsec{border:1px solid var(--line);border-radius:var(--r-md);padding:0 var(--s3);background:var(--surface)}
.rsec>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--s3);min-height:56px;font-weight:800;font-size:var(--fs-sm)}
.rsec>summary::-webkit-details-marker{display:none}
.rsec>summary>.ic{order:-1;width:34px;height:34px;border-radius:12px}
.rsec>summary>svg{margin-left:auto;color:var(--ink-2);transition:transform var(--t) var(--ease)}
.rsec[open]>summary>svg{transform:rotate(90deg)}
.rsec>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}
.rsec.problem{background:var(--surface-2)}
.rsec-bar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;justify-content:flex-end;padding-bottom:var(--s2)}
.rsec-bar small{margin-right:auto;font-weight:700}
.rsec .pager{margin:var(--s2) 0 var(--s3)}
.rl{list-style:none;margin:0;padding:0}
.rl>li{display:grid;grid-template-columns:22px 40px minmax(0,1fr) 100px 150px 128px;align-items:center;gap:var(--s3);min-height:64px;padding:6px 10px;border-top:1px solid var(--line);border-radius:14px;transition:background var(--t-fast)}
.rl>li:hover{background:var(--surface-hover)}
.rl>li.off{opacity:.7}
.rl .what{min-width:0}
.rl .what b{display:block;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rl .what small{color:var(--ink-2);font-weight:700;font-size:var(--fs-xs)}
.rl .u{text-align:right;font-weight:700;color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}
.rl .c{text-align:right;font-variant-numeric:tabular-nums;font-size:var(--fs-sm);overflow-wrap:anywhere}
.rl>li>.chip{justify-self:end}
.row-more{grid-column:3/-1}
.row-more>summary{list-style:none;font-size:var(--fs-xs);font-weight:800;color:var(--ink-2);display:inline-flex;gap:6px;padding:2px 0}
.row-more>summary::-webkit-details-marker{display:none}
.row-more>summary::before{content:"+";font-weight:800}
.row-more[open]>summary::before{content:"−"}
.row-more .kv{padding:var(--s3);border-radius:var(--r-sm);background:var(--surface-2);margin:var(--s2) 0}
.cf{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);margin:var(--s2) 0 var(--s5)}
.cf .box{padding:var(--s5) var(--s4) var(--s4);border-radius:26px;text-align:center;display:grid;justify-items:center;gap:6px}
.cf .box .ic{width:52px;height:52px;border-radius:var(--r-blob);background:var(--surface);box-shadow:var(--sh-1)}
.cf .box b{font-size:2.2rem;line-height:1}
.cf .box span{font-weight:800;font-size:var(--fs-sm)}
.cf .box.ok{background:var(--ok-tint);color:var(--ok-ink)}
.cf .box.info{background:var(--info-tint);color:var(--info-ink)}
.cf .box.warn{background:var(--warn-tint);color:var(--warn-ink)}
.impact{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:var(--s4);font-weight:800;font-size:var(--fs-sm);color:var(--ink-2)}
.btnrow{display:flex;gap:var(--s3);justify-content:flex-end;margin-top:var(--s5);flex-wrap:wrap}
.done{position:relative;text-align:center;padding:var(--s6) var(--s5);overflow:visible}
.done .blob{width:220px;height:200px;left:50%;top:10px;margin-left:-110px;clip-path:inset(0);background:var(--accent-tint)}
.done .badge{position:relative;width:96px;height:96px;margin:30px auto var(--s4);border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);box-shadow:0 14px 30px rgb(var(--sh-tint) / .3);animation:pop var(--t-slow) var(--ease) both}
.done .badge svg{width:44px;height:44px;stroke-width:2.4}
.done h2{position:relative;font-size:1.8rem}
.done .chips{position:relative;display:flex;justify-content:center;gap:8px;margin:var(--s3) 0 var(--s5);flex-wrap:wrap}
.done .btnrow{justify-content:center;position:relative}
.records-card{margin-bottom:var(--s5)}
.accts-open .ic{width:42px;height:42px;background:var(--accent-tint);color:var(--accent-ink)}
.accts-open>svg{color:var(--ink-2);flex:none}
.actionbar .grow small{display:block}
.inv-accts li{display:block;padding:0}
.inv-accts .acct-view{display:flex;align-items:center;gap:var(--s3);padding:10px}
.inv-accts .acct-view .grow{min-width:0;flex:1 1 auto}
.inv-accts .acct-view .chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.inv-accts .acct-view>.btn{flex:none}
.inv-accts .acct-view b{overflow-wrap:anywhere}
.inv-accts .acct-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,150px);gap:var(--s2);align-items:end;padding:var(--s3);border-radius:var(--r-sm);background:var(--surface-2)}
.inv-accts .acct-edit .field{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.inv-accts .acct-edit .btn{justify-self:start}
.inv-accts .acct-edit .btn.primary{grid-column:1}
.records{border-top:1px solid var(--line);padding:var(--s3) 0}
.records>summary{padding:var(--s2) 0}
.records[open]>summary{margin-bottom:var(--s3)}
@media (max-width:1100px){.inv-layout{grid-template-columns:1fr}.queue{position:static;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.queue .drop{grid-column:1/-1}.queue .qh{grid-column:1/-1}.callout form.activate{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  .sum{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rl>li{grid-template-columns:22px 40px minmax(0,1fr) auto;row-gap:2px}
  .rl .u{display:none}
  .rl>li>.chip{grid-column:3/5;justify-self:start}
  .row-more{grid-column:1/-1}
  .cf{grid-template-columns:1fr}
  .steps li span.t{display:none}
}
@media (max-width:720px){
  .f-head,.pad{padding-left:var(--s4);padding-right:var(--s4)}
  .actionbar{bottom:calc(var(--tabbar-h) + 24px);border-radius:var(--r-md)}
  .actionbar small{display:none}
  .callout form.activate{grid-template-columns:1fr}
}

/* ---------- Assistants ---------- */
.chat-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--s4);height:calc(100vh - 210px);min-height:520px}
.chat-grid.with-context{grid-template-columns:280px minmax(0,1fr) 280px}
.threads{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s4);overflow:hidden}
.bot-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border-radius:22px;background:var(--surface-2)}
.bot-switch a{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 6px;min-width:0;border-radius:18px;font-weight:800;font-size:var(--fs-sm);color:var(--ink-2);text-decoration:none;white-space:nowrap;overflow:hidden}
.bot-switch a span:last-child{overflow:hidden;text-overflow:ellipsis}
.bot-switch a[aria-current]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.bot-switch .av,.convo-h .av{width:32px;height:32px}
.bot-switch .av svg,.convo-h .av svg{width:17px;height:17px}
.tl{list-style:none;margin:0 -6px;padding:0;overflow:auto;display:grid;gap:2px;align-content:start}
.tl a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:10px 12px;border-radius:16px;color:var(--ink);text-decoration:none}
.tl a:hover{background:var(--surface-hover);text-decoration:none}
.tl a[aria-current]{background:var(--accent-tint)}
.tl b{font-weight:800;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl time{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.tl small{grid-column:1/-1;color:var(--ink-2);font-weight:600;font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pending-link{margin-top:auto;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:16px;background:var(--warn-tint);color:var(--warn-ink);font-weight:800;font-size:var(--fs-sm)}
.convo{display:flex;flex-direction:column;padding:0;overflow:hidden}
.convo-h{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);flex-wrap:wrap}
.convo-h h2{font-size:1.1rem}
.convo-h small{color:var(--ink-2);font-weight:700}
.chatlog{flex:1;overflow:auto;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3);overscroll-behavior:contain}
.chatlog .empty{margin:auto}
.bubble{max-width:min(78ch,86%);padding:12px 16px;border-radius:20px 20px 20px 6px;background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;align-self:flex-start;line-height:1.5}
.bubble.user{align-self:flex-end;background:var(--accent-tint);border-radius:20px 20px 6px 20px}
.bubble small{display:block;margin-bottom:4px;font-weight:800;color:var(--ink-2)}
.message-source{display:inline-block;margin-left:var(--s2);padding:1px 6px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink-2);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}
.bubble.thinking{color:var(--ink-2);font-style:italic}
.convo .composer{margin:var(--s3) var(--s4) var(--s4);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding-left:var(--s4)}
.ctx{overflow:auto;display:grid;gap:var(--s3);align-content:start;padding:var(--s4)}
.ctx h3{font-size:var(--fs-sm);font-family:var(--f-body);font-weight:800;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em}
.ctx-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.ctx-head .icon-btn,.ctx-scrim{display:none}
.ctx-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ctx-list li{display:grid;grid-template-columns:minmax(0,1fr) 70px auto;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:700}
.ctx-list.plain li{grid-template-columns:auto minmax(0,1fr) auto}
.ctx-list a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
@media (max-width:1240px){.chat-grid.with-context{grid-template-columns:220px minmax(0,1fr) 260px}}
.chat-bot-select{display:none}
html.chat-context-modal{overflow:hidden;overscroll-behavior:none}
.chat-context-modal body{position:fixed;width:100%;overflow:hidden}
/* Tablet and phone: context is an on-demand modal drawer over a scrim, never a column. */
@media (max-width:1100px){
  .chat-grid,.chat-grid.with-context{grid-template-columns:minmax(0,1fr)}
  .threads{display:none}
  .chat-bot-select{display:block;max-width:150px}
  .ctx{position:fixed;right:var(--s4);top:var(--s4);bottom:var(--s4);width:min(320px,calc(100vw - 2 * var(--s4)));z-index:70;box-shadow:var(--sh-3);overscroll-behavior:contain}
  .ctx-head .icon-btn{display:inline-grid}
  .ctx-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:69;background:var(--scrim)}
}
@media (max-width:720px){
  .chat-grid{height:calc(100vh - 230px);min-height:420px}
  .ctx{top:auto;left:var(--s3);right:var(--s3);bottom:calc(var(--tabbar-h) + var(--s5) + env(safe-area-inset-bottom));width:auto;max-height:min(70vh,calc(100vh - var(--tabbar-h) - 48px));border-radius:var(--r-lg)}
  .convo .composer{margin:var(--s2)}
  /* Keep the name beside the context button; the shared-history chip wraps below. */
  .convo-h .grow{flex:1 1 0;min-width:0;overflow-wrap:anywhere}
  .convo-h>.chip{order:1;margin-left:calc(32px + var(--s3))}
}

.memory-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--s5);align-items:start}
.sources{display:grid;gap:4px}
.source{display:grid;gap:6px;padding:10px 12px;border-radius:16px;color:var(--ink);text-decoration:none}
.source>span{display:flex;align-items:baseline;gap:8px}
.source b{font-weight:800}
.source small{margin-left:auto;color:var(--ink-2)}
.source:hover{background:var(--surface-hover);text-decoration:none}
.source[aria-current="page"]{background:var(--accent-tint)}
.search-row{display:flex;align-items:center;gap:var(--s2);padding:4px 4px 4px 16px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);margin-bottom:var(--s3)}
.search-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.search-row svg{color:var(--ink-2)}
.search-row input{border:0!important;box-shadow:none!important;outline:0!important;background:transparent!important;padding:0!important}
.records-list{display:grid}
.memory-item{border-top:1px solid var(--line);padding:var(--s2) 0}
.memory-item>summary{list-style:none;display:flex;align-items:center;gap:8px;padding:var(--s2);border-radius:12px;font-weight:700}
.memory-item>summary::-webkit-details-marker{display:none}
.memory-item>summary:hover{background:var(--surface-hover)}
.memory-item[open]>summary .chev{transform:rotate(90deg)}
.memory-item .chev{color:var(--muted);transition:transform var(--t) var(--ease)}
.mem-text{padding:var(--s3);font-family:var(--f-body);font-size:var(--fs-sm);line-height:1.6;max-height:380px;overflow:auto}
.meta{padding:0 var(--s3) var(--s2)}
.meta>summary{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.meta pre{font-size:.78rem;color:var(--ink-2);max-height:260px;overflow:auto;padding:var(--s2) 0}
@media (max-width:980px){.memory-layout{grid-template-columns:1fr}.sources{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}

.channels-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.wa-accounts{display:grid;gap:var(--s3)}
.account{display:grid;gap:var(--s3);padding:var(--s4);border-radius:var(--r-md);background:var(--surface-2)}
.acct-h{display:flex;align-items:center;gap:var(--s3)}
.acct-h small{color:var(--ink-2);font-weight:700}
.account .actions{display:flex;gap:var(--s2);flex-wrap:wrap}
.qr-wrap{display:grid;justify-items:center;gap:var(--s2);padding:var(--s3);border-radius:var(--r-md);background:var(--surface)}
.qr-wrap small{color:var(--ink-2);font-weight:700;text-align:center}
.qr{width:200px;max-width:100%;border-radius:var(--r-sm);background:var(--qr-bg);padding:8px}
.qr-wrap.big .qr{width:240px}
.pair-steps{margin-bottom:var(--s4)}
.qr-slot:not(:empty){margin-top:var(--s4)}
.how{margin:var(--s4) 0 0;padding:var(--s3) var(--s4) var(--s3) calc(var(--s4) + 16px);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);font-weight:700;color:var(--ink-2);display:grid;gap:4px}
.wa-log{max-height:420px;min-height:160px;padding:0}
@media (max-width:1100px){.channels-grid{grid-template-columns:1fr}}

/* ---------- Approvals ---------- */
.approval-group{margin-bottom:var(--s5)}
.draft{display:grid;gap:var(--s3)}
/* DOBBY-UIUX-4: the approval a Telegram "Open on dashboard" button pointed at. */
.card.is-target{outline:3px solid var(--accent);outline-offset:2px;background:var(--accent-tint);scroll-margin:var(--s6)}
.item-gone{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
.item-gone p{margin:0}
.draft-h{display:flex;align-items:center;gap:var(--s3)}
.draft-h h3{overflow-wrap:anywhere}
.draft-h small{color:var(--ink-2);font-weight:700}
.decide{display:flex;gap:var(--s2);flex-wrap:wrap}
/* L9 / C8 F15 F19: reuse cards and native sheets; long facts fit narrow screens. */
.l9-content{min-width:0;overflow-wrap:anywhere}
.l9-content .quote{white-space:pre-wrap;overflow-wrap:anywhere}
.l9-actions{display:flex;flex-wrap:wrap;gap:var(--s2);margin-block:var(--s2)}
.l9-form{display:grid;gap:var(--s3);min-width:0}
.l9-form input,.l9-form textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.l9-content .search-row{flex-wrap:wrap;border-radius:var(--r-md)}
.l9-content .search-row input{flex:1 1 10rem;min-width:0;max-width:100%}
.l9-events{padding-left:var(--s4)}
.l9-events li{margin-block:var(--s2)}
.l9-sheet{max-width:100%}

/* ---------- Settings ---------- */
.appearance-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:var(--s5);align-items:start}
.settings-controls{min-width:0}
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s3);margin-bottom:var(--s4)}
.preset{display:grid;gap:4px;padding:var(--s3);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.preset:hover{border-color:var(--line-strong)}
.preset:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.preset:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:3px}
.preset b{font-weight:800}
.preset small{color:var(--ink-2);font-weight:600;line-height:1.35}
.preset-swatch{display:flex;height:40px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line);margin-bottom:var(--s2)}
.preset-swatch i{flex:1}
.preset-swatch i.sw0{flex:2}
.setting{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:var(--s3);align-items:center;padding:var(--s3) 0;border-top:1px solid var(--line)}
.setting-l{display:flex;align-items:center;gap:6px}
.setting-title{font-weight:800}
.setting-c{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap;min-width:0}
.setting-c select{max-width:360px}
.seg.radios label{position:relative}
.seg.radios label:has(input:checked){background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
.seg.radios label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}
.colour-row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.colour-row .hex{width:110px!important;font-family:var(--f-mono)}
.colour-row output{min-width:72px;color:var(--ink-2)}
.contrast{display:grid;gap:var(--s2);margin-top:var(--s3)}
.contrast-row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;padding:var(--s2) var(--s3);border-radius:var(--r-sm);background:var(--surface-2)}
.contrast-row>b{min-width:84px}
.swatch{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong)}
.range-row{display:flex;align-items:center;gap:var(--s3);width:100%;max-width:420px}
.range-row output{min-width:80px;font-weight:800;color:var(--ink-2)}
.file-btn{cursor:pointer}
.file-btn:focus-within{outline:2px solid var(--focus);outline-offset:3px}
.theme-preview{position:sticky;top:var(--s5);display:grid;gap:var(--s2)}
.pv{display:grid;grid-template-columns:56px minmax(0,1fr);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--bg);box-shadow:var(--sh-2)}
.pv-rail{display:flex;flex-direction:column;align-items:center;gap:10px;padding:var(--s4) 0;background:var(--rail-bg);border-right:1px solid var(--line)}
.pv-rail .mark{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--r-blob);background:var(--accent);color:var(--on-accent);font:600 .9rem var(--f-head);margin-bottom:var(--s2)}
.pv-rail i{width:30px;height:30px;border-radius:var(--r-pill);background:var(--surface-3)}
.pv-rail i.on{background:var(--accent)}
.pv-main{display:grid;gap:var(--s3);padding:var(--s4);min-width:0}
.pv-card{display:grid;gap:4px;padding:var(--s4)}
.pv-card .big{font-size:1.6rem}
.pv .bubble{max-width:100%}
.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--s5);align-items:start}
.terminal-auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:var(--s2);margin-bottom:var(--s3)}
.terminal-wrap{background:var(--terminal-bg);padding:12px;border-radius:var(--r-md);height:540px;margin-top:var(--s3)}
#terminal-host,.xterm{height:100%;width:100%}
@media (max-width:1100px){.appearance-layout{grid-template-columns:1fr}.theme-preview{position:static;order:-1}}
@media (max-width:720px){.setting{grid-template-columns:1fr}.terminal-auth{grid-template-columns:1fr}.terminal-wrap{height:420px}}
.preset,.who-pick,.file-btn,.check{position:relative}

/* WA2 / TD1 controls share the redesigned card and form styles. */
.history-account { border-top: 1px solid var(--line); padding-top: var(--s4); }
.history-account .field { max-width: 24rem; }
.trust-device { display: flex; align-items: center; gap: var(--s2); }
.trust-device input { flex: none; }
.native-cash-heading { margin-bottom: 0; border-bottom: 0; border-radius: var(--r-lg) var(--r-lg) 0 0; }
.native-cash-table { margin-top: 0; border-top: 0; border-radius: 0 0 var(--r-lg) var(--r-lg); }
/* FW3 / QW8 / QW10 */
.freshness-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 var(--s4); }
.freshness-bar .chip { white-space: normal; }
.trend { margin-bottom: var(--s5); }
.trend .seg button { min-width: 0; }
.trend-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s3); }
.trend-head .seg, .trend-head > .chip { margin-left: auto; }
.trend .spark { height: 72px; margin: var(--s3) 0; }
.export-panel .btn { justify-content: flex-start; }

/* ---------- UXR1 C1/F01: Home tiles and Settings theme presets on the shared KPI scale (UX-ROLLOUT a+d) ----------
   Home and Settings scope only; placed after Settings and before the Finance-only blocks so Finance (FINUI1017) is untouched.
   The value size and weight equal the Finance KPI rule (FINUX2-L1: --fs-xl, phone 1.375rem); labels and
   subtitles use --fs-sm so no text drops below 13 px. Labels never clip, so tooltip bubbles can escape. */
#content[data-section="home"] .tiles{align-items:stretch}
#content[data-section="home"] .tile{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);row-gap:var(--s2);align-content:start;container-type:inline-size}
#content[data-section="home"] .tile>.viz{align-self:end;margin-top:0}
#content[data-section="home"] .tile .has-tt{position:relative;z-index:2}
#content[data-section="home"] .tile .legend-mini{font-weight:600}
#content[data-section="home"] .tiles-note{grid-column:1/-1;margin:0}
#content[data-section="home"] .kpi-label,#content[data-section="settings"] .kpi-label{font:600 var(--fs-sm)/1.43 var(--f-body);color:var(--ink-2);text-transform:none;letter-spacing:0;display:flex;align-items:center;gap:var(--s1);min-height:24px;margin:0;white-space:nowrap;font-size:max(13px,var(--fs-sm))}
/* A full amount never breaks mid-number: it shrinks with the tile, never above the shared KPI size. */
#content[data-section="home"] .tile>.big,#content[data-section="home"] .tile>.big .value,#content[data-section="settings"] .kpi-value{font-family:var(--f-num);font-weight:600;font-size:var(--fs-xl);font-size:clamp(var(--fs-md),13cqi,var(--fs-xl));line-height:1.1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:0;margin:0}
#content[data-section="home"] .kpi-sub,#content[data-section="settings"] .kpi-sub{font:400 var(--fs-sm)/1.43 var(--f-body);color:var(--ink-2);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1);align-self:start;min-width:0;margin:0;font-size:max(13px,var(--fs-sm))}
#content[data-section="home"] .kpi-sub .value,#content[data-section="home"] .kpi-sub .num{font-family:var(--f-num);font-variant-numeric:lining-nums tabular-nums}
#content[data-section="home"] .kpi-sub .chip{min-height:22px;padding:1px 8px}
/* 13 px floor at every supported base (14-20 px), the UXF2R --fs-label expression: chips, legends and tooltips
   would otherwise inherit .75rem/.8rem (12 px at the default base). */
#content[data-section="home"] .tile .chip,#content[data-section="home"] .tiles-note .chip,#content[data-section="home"] .tile .legend-mini,#content[data-section="home"] .tile [role="tooltip"],#content[data-section="home"] .tiles-note [role="tooltip"],#content[data-section="settings"] .presets [role="tooltip"],#content[data-section="settings"] .pv-card [role="tooltip"],#content[data-section="settings"] #theme-save-status,#content[data-section="settings"] #theme-save-status [role="tooltip"]{font-size:max(13px,var(--fs-sm))}
#content[data-section="settings"] .presets{align-items:stretch}
#content[data-section="settings"] .preset{grid-template-rows:auto 1fr;align-content:start}
#content[data-section="settings"] .preset b{font-weight:600}
#content[data-section="settings"] .pv-card{grid-template-rows:auto auto auto minmax(0,1fr);row-gap:var(--s2);align-content:start;container-type:inline-size}
#content[data-section="settings"] .pv-card>.vbars{align-self:end}
/* The sample change is money going up: the FINUI1017 gain colour, never the status colour. */
#content[data-section="settings"] .kpi-sub.delta-up{font-family:var(--f-num);font-variant-numeric:lining-nums tabular-nums;font-weight:600;color:var(--gain-ink)}
@media (max-width:720px){
  #content[data-section="home"] .tile>.big,#content[data-section="home"] .tile>.big .value,#content[data-section="settings"] .kpi-value{font-size:1.375rem;font-size:clamp(var(--fs-md),13cqi,1.375rem)}
}
@media (max-width:420px){
  #content[data-section="home"] .tile .kpi-sub{display:flex}
  #content[data-section="home"] .tile .kpi-sub>.sub-text{display:none}
}

/* ---------- Builds (read-only project progress) ---------- */
.builds{display:grid;gap:var(--s5)}
.bbanner{display:flex;align-items:flex-start;gap:var(--s2);padding:var(--s3) var(--s4);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:700;overflow-wrap:anywhere;background:var(--surface-2)}
.bbanner.ok{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok-ink)}
.bbanner.warn{background:color-mix(in srgb,var(--warn) 16%,var(--surface))}
.bbanner.bad{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger-ink)}
.bbanner .grow{min-width:0;display:grid;gap:var(--s2)}
.bnow-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:var(--s4)}
.bnow-sec{min-width:0}
.bnow-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3);font-size:var(--fs-sm)}
.bnow-list li{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}
.bnow-row{display:flex;align-items:flex-start;gap:var(--s2);flex-wrap:wrap;min-width:0}
.bnow-row .grow{flex:1 1 140px;min-width:0}
.bsrc{color:var(--ink-2);font-size:var(--fs-xs);font-weight:700}
.bstale-body{display:grid;gap:var(--s5);padding:var(--s3);border:2px dashed var(--danger);border-radius:var(--r-sm);opacity:.72;filter:grayscale(.6)}
.bstale-label{margin:0;font-size:var(--fs-sm);font-weight:800;color:var(--danger-ink)}
.bmeta{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;color:var(--ink-2);font-size:var(--fs-sm);font-weight:700}
.bstrip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
.bstrip-tile{padding:var(--s4)}
.bstrip-h{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}
.bstrip-h .ic{width:36px;height:36px;border-radius:12px}
.bstrip-h .num{font-size:1.6rem;line-height:1}
.bstrip-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);font-size:var(--fs-sm)}
.bstrip-list li{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;min-width:0;overflow-wrap:anywhere}
.bstrip-list small{color:var(--ink-2);font-weight:700}
.bcmd{display:flex;align-items:center;gap:var(--s2);margin-top:4px;min-width:0}
.bcmd code{flex:1;min-width:0;padding:6px 10px;border-radius:var(--r-xs);background:var(--surface-2);font-size:var(--fs-xs);white-space:nowrap;overflow-x:auto;user-select:all}
.bprojects{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s4);align-items:start}
.bproj{--proj:var(--accent);display:grid;gap:var(--s3);padding:var(--s4) var(--s5);border-top:4px solid var(--proj)}
.bproj-h{display:flex;align-items:flex-start;gap:var(--s3);flex-wrap:wrap}
.bproj-h .grow{flex-basis:140px}
.builds .chip{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.bproj-h h3{overflow-wrap:anywhere}
.bproj-h p{font-size:var(--fs-sm);font-weight:600;overflow-wrap:anywhere}
.bproj-ic{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:14px;color:var(--ink);background:color-mix(in srgb,var(--proj) 22%,var(--surface))}
.bproj-progress{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s3)}
.bproj-progress .num{font-size:1.15rem}
.bprog{height:10px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}
.bprog>i{display:block;height:100%;width:var(--w,0%);border-radius:inherit;background:var(--proj,var(--chart-1));transform-origin:left;animation:grow var(--t-slow) var(--ease) both}
.bproj-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;font-size:var(--fs-sm);font-weight:700}
.bproj-meta>span:not(.chip){display:inline-flex;align-items:center;gap:6px;min-width:0}
.bwhy{display:grid;gap:2px;font-size:var(--fs-sm);padding:var(--s2) var(--s3);border-radius:var(--r-sm);background:var(--surface-2)}
.bwhy .label{font-size:var(--fs-xs)}
.bwhy-line,.bchanges li{overflow-wrap:anywhere}
.bwhy-line time,.bchanges time{color:var(--ink-2);font-weight:700}
.bmove{font-weight:800;margin-right:4px}
.bmove.down{color:var(--danger-ink)}
.bmove.up{color:var(--ok-ink)}
.bmove.neutral{color:var(--ink-2)}
.bhist>summary{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:800;color:var(--accent-ink);list-style:none}
.bhist>summary::-webkit-details-marker{display:none}
.bhist>summary svg{transition:transform var(--t-fast)}
.bhist[open]>summary svg{transform:rotate(90deg)}
.bhist>div{margin-top:var(--s3)}
.bhist h4{font-size:var(--fs-sm);margin-bottom:var(--s2)}
.bchanges,.bsteps{margin:0;padding:0;list-style:none;display:grid;gap:var(--s2);font-size:var(--fs-sm)}
.bsteps li{display:flex;align-items:center;gap:var(--s2);min-width:0}
.bsteps li .grow{overflow-wrap:anywhere}
.bside{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);align-items:start}
.busage{display:grid;gap:var(--s4)}
.bmeter{display:grid;gap:6px}
.bmeter-h{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}
.bmeter-h b{margin-right:auto}
.bmeter-track{position:relative;height:10px;border-radius:var(--r-pill);background:var(--surface-2)}
.bmeter-track>i{display:block;height:100%;width:var(--w,0%);border-radius:inherit;background:var(--ok)}
.bmeter.warn .bmeter-track>i{background:var(--warn)}
.bmeter.bad .bmeter-track>i{background:var(--danger)}
.bpace{position:absolute;top:-4px;bottom:-4px;left:var(--x,0%);width:3px;margin-left:-1px;border-radius:2px;background:var(--ink)}
.binsights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4);margin:0}
.binsights div{display:grid;gap:2px}
.binsights dt{font-size:var(--fs-xs);font-weight:800;color:var(--ink-2)}
.binsights dd{margin:0;font-size:1.5rem;line-height:1.1}
.btimeline{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:var(--s3)}
.btimeline::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line)}
.btimeline li{--proj:var(--accent);position:relative;display:grid;grid-template-columns:12px 64px minmax(0,1fr);align-items:baseline;gap:var(--s2);font-size:var(--fs-sm)}
.btimeline li.past{opacity:.7}
.btimeline small{display:block;color:var(--ink-2);font-weight:700}
.bdot{width:12px;height:12px;border-radius:50%;background:var(--proj);border:2px solid var(--surface);align-self:center}
.bdate{font-weight:800;color:var(--ink-2);overflow-wrap:anywhere}
@media (max-width:1240px){.bstrip{grid-template-columns:repeat(2,minmax(0,1fr))}.bside{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.bstrip,.bside,.bprojects{grid-template-columns:1fr}.bproj{padding:var(--s4)}}

/* ---------- UX-ROLLOUT (e) Builds: strip tiles, insights and usage numbers on the shared KPI scale ----------
   Builds scope only. Same values as the UXR1 Home/Settings block: labels and subtitles at --fs-sm with the 13 px
   floor, values at the Finance KPI size and weight (--fs-xl, phone 1.375rem). Labels never clip, so tooltip
   bubbles can escape. Placed right after the Builds base rules, before the later lane blocks whose tests scan
   from their own marker onward (FINUX2-L7, PA6, FINUX2-L1). */
#content[data-section="builds"] .bstrip{align-items:stretch}
#content[data-section="builds"] .bstrip-tile{display:grid;grid-template-rows:24px auto minmax(0,1fr);row-gap:var(--s2);align-content:start}
#content[data-section="builds"] .bstrip-tile .bstrip-h{height:24px;margin:0;gap:var(--s2)}
#content[data-section="builds"] .bstrip-tile .bstrip-h .ic{width:24px;height:24px;border-radius:8px}
#content[data-section="builds"] .bstrip-tile .bstrip-list{align-self:start}
#content[data-section="builds"] .kpi-label{font:600 var(--fs-sm)/1.43 var(--f-body);color:var(--ink-2);text-transform:none;letter-spacing:0;display:flex;align-items:center;gap:var(--s1);min-height:24px;margin:0;white-space:nowrap;font-size:max(13px,var(--fs-sm))}
#content[data-section="builds"] .kpi-value{font-family:var(--f-num);font-weight:600;font-size:var(--fs-xl);line-height:1.1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:0;margin:0}
#content[data-section="builds"] .kpi-value.kpi-2{font-size:var(--fs-lg)}
#content[data-section="builds"] .kpi-sub{font:400 var(--fs-sm)/1.43 var(--f-body);color:var(--ink-2);margin:0;font-family:var(--f-num);font-variant-numeric:lining-nums tabular-nums;font-size:max(13px,var(--fs-sm))}
/* Insights: label and value side by side, baseline-aligned. */
#content[data-section="builds"] .binsights{grid-template-columns:max-content 1fr;align-items:baseline;column-gap:var(--s3);row-gap:var(--s3)}
#content[data-section="builds"] .binsights div{display:contents}
#content[data-section="builds"] .binsights dd{text-align:right}
#content[data-section="builds"] .binsights .tip{position:relative;z-index:2}
#content[data-section="builds"] .bstrip-tile [role="tooltip"],#content[data-section="builds"] .binsights [role="tooltip"],#content[data-section="builds"] .empty [role="tooltip"]{font-size:max(13px,var(--fs-sm))}
@media (max-width:720px){
  #content[data-section="builds"] .kpi-value{font-size:1.375rem}
}
/* ---------- /UX-ROLLOUT (e) ---------- */

/* Personal WhatsApp conversation workspace. */
.wa-web{display:grid;grid-template-columns:minmax(260px,32%) minmax(0,1fr);height:min(760px,calc(100dvh - 210px));min-height:420px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}
.wa-sidebar,.wa-pane{display:flex;flex-direction:column;min-width:0;min-height:0}.wa-sidebar{border-right:1px solid var(--line)}
.wa-toolbar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);background:var(--surface-2);min-height:65px;flex-wrap:wrap}.wa-toolbar select{min-width:0;flex:1}.wa-sidebar>input{margin:10px;width:calc(100% - 20px)}
.wa-chat-list{overflow:auto;flex:1}.wa-chat{display:flex;gap:var(--s3);align-items:center;width:100%;text-align:left;padding:var(--s3);border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.wa-chat:hover,.wa-chat.selected{background:var(--surface-2)}
.wa-avatar{position:relative;display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;overflow:hidden;background:var(--accent);color:var(--on-accent)}.wa-avatar img{position:absolute;width:100%;height:100%;object-fit:cover}.wa-avatar img[hidden]{display:none}
.wa-chat-text{min-width:0;flex:1}.wa-chat-text strong,.wa-preview{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wa-preview{font-size:var(--fs-sm);color:var(--muted);margin-top:4px}.wa-chat-status{color:var(--ink-2);display:flex;align-items:flex-end;flex-direction:column;gap:var(--s1);font-size:var(--fs-xs)}.wa-unread{background:var(--accent);color:var(--on-accent);border-radius:20px;padding:2px 6px}
.wa-conversation{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:var(--s2);background:var(--bg);overscroll-behavior:contain}.wa-day{align-self:center;font-size:var(--fs-xs);background:var(--surface);padding:5px 12px;border-radius:var(--r-sm);margin:10px 0}.wa-bubble{position:relative;align-self:flex-start;max-width:82%;min-width:90px;background:var(--surface);border:1px solid var(--line);border-radius:0 var(--r-sm) var(--r-sm);padding:var(--s2) var(--s3);overflow-wrap:anywhere}.wa-bubble.outgoing{align-self:flex-end;border-radius:var(--r-sm) 0 var(--r-sm) var(--r-sm);background:var(--surface-2);border-color:var(--accent)}
.wa-body{white-space:pre-wrap;margin:4px 0}.wa-author{font-size:var(--fs-sm);color:var(--accent)}.wa-meta{display:flex;justify-content:flex-end;gap:3px;color:var(--muted);font-size:var(--fs-xs);margin-top:5px}.wa-read{color:var(--accent);font-weight:bold}.wa-quote{border-left:3px solid var(--accent);padding:6px 10px;margin:0;background:var(--surface-2);white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--fs-sm)}.wa-media{display:block;max-width:100%;max-height:360px;border-radius:var(--r-sm)}.wa-media-link{display:block;font-size:var(--fs-xs)}.wa-pdf{width:100%;height:300px}
.wa-compose{padding:var(--s3);border-top:1px solid var(--line)}.wa-compose[hidden]{display:none}.wa-compose-row{display:flex;gap:var(--s3);align-items:center}.wa-compose textarea{flex:1;min-width:0;resize:none;max-height:150px}.wa-reply-slot{display:flex;align-items:center;gap:var(--s2)}.wa-reply-slot:empty{display:none}.wa-reply-slot blockquote{flex:1;margin-bottom:8px}.wa-back{display:none}.wa-empty{margin:auto;color:var(--muted)}
@media(max-width:700px){.wa-web{display:block;height:calc(100dvh - 220px);min-height:400px}.wa-sidebar,.wa-pane{height:100%}.wa-pane{display:none}.wa-open .wa-sidebar{display:none}.wa-open .wa-pane{display:flex}.wa-back{display:block}.wa-bubble{max-width:90%}.wa-conversation{padding:10px}.wa-toolbar{padding:var(--s2)}.wa-compose{padding:var(--s2)}}
/* Manual account appearance: sprite glyphs and colour swatches. */
.manual-icons,.manual-swatches{display:flex;flex-wrap:wrap;gap:var(--s2)}
.manual-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer}
.manual-icon[aria-checked=true]{border:2px solid var(--accent);background:var(--accent-tint);box-shadow:0 0 0 2px var(--accent)}
.manual-icon:focus-visible,.manual-swatch:focus-within{outline:2px solid var(--ink);outline-offset:3px}
.manual-swatch{display:flex;align-items:center;gap:var(--s1);padding:var(--s1) var(--s2);border:1px solid var(--line-strong);border-radius:var(--r-sm);cursor:pointer}
.manual-swatch:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.manual-colour{font-size:28px;line-height:1}

/* WAB / C2 F08: draft controls and archive search. */
.wa-ai-toolbar{display:flex;flex-wrap:wrap;gap:var(--s2);padding:var(--s2);border-bottom:1px solid var(--line)}
.wa-ai-toolbar input{flex:1;min-width:140px}.wa-ai-result{max-height:min(180px,25vh);overflow:auto;padding:0 12px;overflow-wrap:anywhere;white-space:pre-wrap}
.wa-ai-result:empty{display:none}.wa-draft{display:block;white-space:pre-wrap;text-align:left;margin:6px 0;overflow-wrap:anywhere}
.wa-ai-chip{font-size:var(--fs-xs);white-space:normal;overflow-wrap:anywhere}.wa-search-results{max-height:35vh;overflow:auto}
.wa-search-hit{display:block;text-align:left;width:100%;padding:var(--s2);overflow-wrap:anywhere}.wa-search-hit p{margin:4px 0}
.wa-search-target{outline:2px solid var(--accent)}.wa-ai-toolbar,.wa-ai-result{flex-shrink:0}

.wa-ai-toolbar[hidden]{display:none}

/* ---------- UX-ROLLOUT (g) WhatsApp archive: section `assistants` ----------
   Placed after the WhatsApp base rules, not at the end of the file, so the Finance scans that read to the end of
   pages.css are unchanged (the same placement as UXR1). Assistants scope only. The unread badge uses tabular
   figures; a chat's name and time share one baseline; import progress uses the shared KPI label and value roles.
   Labels never clip, so tooltip bubbles can escape. */
#content[data-section="assistants"] .wa-chat{align-items:baseline}
#content[data-section="assistants"] .wa-chat>.wa-avatar{align-self:center}
#content[data-section="assistants"] .wa-chat-status{align-self:baseline}
#content[data-section="assistants"] b.wa-unread{font:600 var(--fs-xs)/1 var(--f-num);font-variant-numeric:lining-nums tabular-nums;align-self:center;min-width:20px;text-align:center}
#content[data-section="assistants"] .wa-empty{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s2)}
#content[data-section="assistants"] .wa-history-note,#content[data-section="assistants"] .wa-ai-result p:has(>.tip),#content[data-section="assistants"] .wa-suggest-hint{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1)}
#content[data-section="assistants"] .history-account [role="status"]{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4)}
#content[data-section="assistants"] .wa-import-stat{display:inline-grid;grid-template-rows:24px auto;row-gap:var(--s1);align-content:start}
#content[data-section="assistants"] .wa-import-stat .kpi-label{font:600 var(--fs-sm)/24px var(--f-body);color:var(--ink-2);height:24px;white-space:nowrap;display:flex;align-items:center;gap:var(--s1);letter-spacing:0;text-transform:none;margin:0}
#content[data-section="assistants"] .wa-import-stat .kpi-value.kpi-2{font-family:var(--f-num);font-weight:600;font-size:var(--fs-xl);line-height:1.1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:0;color:var(--ink);margin:0}
@media (max-width:720px){
  #content[data-section="assistants"] .wa-import-stat .kpi-value.kpi-2{font-size:1.375rem}
}
#content[data-section="assistants"] .wa-qr-picker,#content[data-section="assistants"] .wa-qr-manager{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s3);max-height:50vh;overflow:auto}
#content[data-section="assistants"] .wa-qr-picker[hidden],#content[data-section="assistants"] .wa-qr-manager[hidden]{display:none}
#content[data-section="assistants"] .wa-qr-tabs,#content[data-section="assistants"] .wa-qr-actions{display:flex;gap:var(--s2);flex-wrap:wrap}
#content[data-section="assistants"] .wa-qr-tabs [aria-pressed="true"]{font-weight:600;text-decoration:underline}
#content[data-section="assistants"] .wa-qr-item{padding:var(--s2) 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
#content[data-section="assistants"] .wa-qr-item>span{margin-left:var(--s2)}
#content[data-section="assistants"] .wa-qr-item p{white-space:pre-wrap}
#content[data-section="assistants"] .wa-qr-item button,#content[data-section="assistants"] .wa-qr-form button{margin:var(--s1)}
#content[data-section="assistants"] .wa-qr-form{display:grid;gap:var(--s2);margin-top:var(--s3)}
#content[data-section="assistants"] .wa-qr-form label{display:grid;gap:var(--s1)}
#content[data-section="assistants"] .wa-qr-form input,#content[data-section="assistants"] .wa-qr-form textarea{width:100%;min-width:0}
#content[data-section="assistants"] .wa-qr-note:empty{display:none}
#content[data-section="assistants"] .wa-mute-choices,#content[data-section="assistants"] .wa-reaction-choices{display:flex;flex-wrap:wrap;gap:var(--s1)}
#content[data-section="assistants"] .wa-archived-toggle{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:56px;padding:var(--s2) var(--s3);border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font-weight:600;font-size:var(--fs-sm);text-align:left;justify-content:flex-start;border-radius:0;cursor:pointer}
#content[data-section="assistants"] .wa-archived-toggle:hover,#content[data-section="assistants"] .wa-archived-toggle[aria-pressed="true"]{background:var(--surface-2)}
#content[data-section="assistants"] .wa-menu-button{min-width:44px;padding:0;font-size:var(--fs-lg)}
#content[data-section="assistants"] .wa-menu-row{display:flex;gap:var(--s2)}
#content[data-section="assistants"] .wa-menu-row .btn{flex:1}
#content[data-section="assistants"] .wa-filters{display:flex;gap:var(--s2);padding:0 10px var(--s2);overflow-x:auto;flex-shrink:0}
#content[data-section="assistants"] .wa-filter{min-height:44px;padding:0 var(--s4);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer}
#content[data-section="assistants"] .wa-filter[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
#content[data-section="assistants"] .wa-list-empty{padding:var(--s4) var(--s3)}
#content[data-section="assistants"] .wa-unread-divider{align-self:stretch;text-align:center;font-size:var(--fs-xs);font-weight:600;color:var(--ink-2);background:var(--surface-2);padding:var(--s1) var(--s3);margin:var(--s2) 0;border-radius:var(--r-xs)}
#content[data-section="assistants"] .wa-scroll-bottom{position:sticky;bottom:0;align-self:flex-end;flex-shrink:0;min-width:44px;min-height:44px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;box-shadow:var(--sh-1)}
#content[data-section="assistants"] .wa-reaction-chip{display:block;width:fit-content;margin-top:var(--s1)}
#content[data-section="assistants"] .wa-chat-actions[hidden],#content[data-section="assistants"] .wa-mute-choices[hidden],#content[data-section="assistants"] .wa-reaction-choices[hidden],#content[data-section="assistants"] .wa-reaction-chip[hidden],#content[data-section="assistants"] .wa-react[hidden],#content[data-section="assistants"] .wa-archived-toggle[hidden],#content[data-section="assistants"] .wa-menu[hidden],#content[data-section="assistants"] .wa-scroll-bottom[hidden]{display:none}
#content[data-section="assistants"] .wa-web{--z-wa-pop:60;height:calc(100dvh - var(--wa-top,210px) - var(--s7));min-height:420px}
@media (max-width:700px){#content[data-section="assistants"] .wa-web.wa-open{height:calc(100dvh - var(--wa-top,var(--s4)) - var(--tabbar-h) - var(--s4) - env(safe-area-inset-bottom));min-height:320px}}
#content[data-section="assistants"] .wa-web .btn{font-weight:600}
#content[data-section="assistants"] .wa-web strong,#content[data-section="assistants"] .wa-web b{font-weight:600}
#content[data-section="assistants"] .wa-read{font-weight:400}
#content[data-section="assistants"] .wa-sidebar>input{box-sizing:border-box;width:calc(100% - 2 * var(--s3));margin:var(--s2) var(--s3)}
#content[data-section="assistants"] .wa-notice{margin:0;padding:var(--s2) var(--s3)}
#content[data-section="assistants"] .wa-toolbar{flex-wrap:nowrap}
#content[data-section="assistants"] .wa-chat-name{border-color:transparent;flex:1 1 auto;min-width:0;justify-content:flex-start;height:auto;min-height:var(--control-h);white-space:normal;text-align:left;overflow-wrap:anywhere}
#content[data-section="assistants"] .wa-anchor{position:relative;flex:none}
#content[data-section="assistants"] .wa-pop{position:absolute;z-index:var(--z-wa-pop);top:calc(100% + var(--s1));right:0;display:flex;flex-direction:column;gap:var(--s1);min-width:200px;max-width:min(280px,80vw);overflow:auto;padding:var(--s1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--sh-2)}
#content[data-section="assistants"] .wa-pop .btn{justify-content:flex-start;width:100%;min-height:var(--control-h-sm);border-color:transparent;text-align:left}
#content[data-section="assistants"] .wa-chat-actions .wa-mute-choices{padding-left:var(--s4)}
#content[data-section="assistants"] .wa-flags{display:inline-flex;align-items:center;gap:var(--s1);color:var(--ink-2)}
#content[data-section="assistants"] .wa-conversation{padding:var(--s4);gap:var(--s2)}
#content[data-section="assistants"] .wa-bubble,#content[data-section="assistants"] .wa-bubble.outgoing{display:flex;align-items:flex-start;gap:var(--s1);padding:0;border:0;border-radius:0;background:transparent}
#content[data-section="assistants"] .wa-bubble.outgoing{flex-direction:row-reverse}
#content[data-section="assistants"] .wa-bubble.wa-cont{margin-top:calc(var(--s1) * -1)}
#content[data-section="assistants"] .wa-bubble.wa-system{display:inline-flex;padding:var(--s1) var(--s3);border-radius:var(--r-pill);white-space:normal}
#content[data-section="assistants"] .wa-bubble.wa-system .wa-bubble-body{padding:0;border:0;background:transparent}
#content[data-section="assistants"] .wa-bubble-body{display:flex;flex-wrap:wrap;align-items:flex-end;column-gap:var(--s2);min-width:0;padding:var(--s2) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:0 var(--r-sm) var(--r-sm) var(--r-sm)}
#content[data-section="assistants"] .wa-bubble-body>*{flex:1 1 100%;min-width:0}
#content[data-section="assistants"] .wa-bubble-body>.wa-body{flex:1 1 auto;margin:0}
#content[data-section="assistants"] .wa-bubble-body>.wa-meta{flex:none;margin:0 0 0 auto;align-items:center;white-space:nowrap}
#content[data-section="assistants"] .wa-bubble-body>.wa-rich-message:empty,#content[data-section="assistants"] .wa-bubble-body>.wa-attachments:empty,#content[data-section="assistants"] .wa-bubble-body>.wa-action-panel:empty{display:none}
#content[data-section="assistants"] .wa-bubble.outgoing .wa-bubble-body{background:var(--accent-tint);border:0;border-radius:var(--r-sm) 0 var(--r-sm) var(--r-sm)}
#content[data-section="assistants"] .wa-bubble.wa-cont .wa-bubble-body,#content[data-section="assistants"] .wa-bubble.outgoing.wa-cont .wa-bubble-body{border-radius:var(--r-sm)}
#content[data-section="assistants"] .wa-ticks{display:inline-flex;align-items:center}
#content[data-section="assistants"] .wa-ticks svg.i+svg.i{margin-left:calc(var(--s2) * -1)}
#content[data-section="assistants"] .wa-ticks.wa-read{color:var(--accent-ink)}
#content[data-section="assistants"] .wa-ticks.wa-failed{color:var(--danger-ink)}
#content[data-section="assistants"] .wa-hover{position:relative;flex:none;display:flex;align-items:center;gap:var(--s1)}
#content[data-section="assistants"] .wa-bubble.outgoing .wa-message-menu{right:auto;left:0}
#content[data-section="assistants"] .wa-hover>.wa-icon-btn{opacity:0;transition:opacity var(--t-fade) var(--ease)}
#content[data-section="assistants"] .wa-bubble:hover .wa-hover>.wa-icon-btn,#content[data-section="assistants"] .wa-bubble:focus-within .wa-hover>.wa-icon-btn,#content[data-section="assistants"] .wa-hover>.wa-icon-btn[aria-expanded="true"]{opacity:1}
#content[data-section="assistants"] .wa-message-menu.up{top:auto;bottom:calc(100% + var(--s1))}
#content[data-section="assistants"] .wa-icon-btn{min-width:var(--control-h-sm);padding:0}
#content[data-section="assistants"] .wa-action-panel{display:grid;gap:var(--s2);margin-top:var(--s2)}
#content[data-section="assistants"] .wa-action-panel textarea{width:100%;box-sizing:border-box}
#content[data-section="assistants"] .wa-forward-list{display:grid;max-height:min(240px,40dvh);overflow:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
#content[data-section="assistants"] .wa-forward-chat{display:flex;align-items:center;gap:var(--s2);min-height:var(--control-h-sm);padding:0 var(--s2)}
#content[data-section="assistants"] .wa-emoji-choice{min-width:var(--control-h-sm);padding:0;font-size:var(--fs-md)}
#content[data-section="assistants"] .wa-split{display:flex;flex:1;min-height:0}
#content[data-section="assistants"] .wa-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}
#content[data-section="assistants"] .wa-dobby{display:flex;flex-direction:column;gap:var(--s3);flex:0 0 min(320px,40%);min-width:0;min-height:0;overflow:auto;padding:var(--s3);background:var(--surface);border-left:1px solid var(--line)}
#content[data-section="assistants"] .wa-dobby>header{display:flex;align-items:center;justify-content:space-between}
#content[data-section="assistants"] .wa-dobby .wa-ai-toolbar{display:flex;flex-wrap:wrap;gap:var(--s2);padding:0;border:0}
#content[data-section="assistants"] .wa-dobby .wa-ai-toolbar select,#content[data-section="assistants"] .wa-dobby .wa-ai-toolbar input{flex:1 1 100%;min-width:0;width:100%;box-sizing:border-box}
#content[data-section="assistants"] .wa-dobby .wa-ai-result{max-height:none;padding:0}
#content[data-section="assistants"] .wa-chips{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s2);padding-bottom:var(--s2)}
#content[data-section="assistants"] .wa-suggest{display:flex;flex-wrap:wrap;flex:1 1 0;min-width:0;gap:var(--s2)}
#content[data-section="assistants"] .wa-suggest:empty{display:none}
#content[data-section="assistants"] .wa-suggest-hint{flex-basis:100%;margin:0;color:var(--ink-2);font-size:var(--fs-sm)}
#content[data-section="assistants"] .wa-suggest .wa-draft{display:inline-flex;max-width:100%;height:auto;min-height:var(--control-h-sm);margin:0;padding:var(--s1) var(--s3);border-radius:var(--r-md);white-space:normal;text-align:left;font-weight:400}
#content[data-section="assistants"] .wa-compose-row{gap:var(--s2);align-items:flex-end}
#content[data-section="assistants"] .wa-send-wrap{display:inline-flex;flex:none}
#content[data-section="assistants"] .wa-reactions{display:flex;flex-wrap:wrap;gap:var(--s1)}
#content[data-section="assistants"] .wa-reactions .wa-reaction-chip{margin-top:0}
#content[data-section="assistants"] .wa-rich-message section{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2)}
#content[data-section="assistants"] .wa-emoji-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--control-h-sm),1fr));gap:var(--s1);margin-bottom:var(--s2);padding:var(--s2);border:1px solid var(--line);border-radius:var(--r-sm)}
@media(max-width:720px){#content[data-section="assistants"] .wa-pane>.wa-toolbar{gap:var(--s2)}#content[data-section="assistants"] .wa-pane>.wa-toolbar .wa-avatar{display:none}#content[data-section="assistants"] .wa-chat-name{padding:0 var(--s2)}#content[data-section="assistants"] .wa-web{height:calc(100dvh - var(--wa-top,220px) - var(--tabbar-h) - var(--s4) - env(safe-area-inset-bottom))}#content[data-section="assistants"] .wa-message-menu,#content[data-section="assistants"] .wa-bubble.outgoing .wa-message-menu{position:fixed;top:auto;right:0;bottom:0;left:0;max-width:none;max-height:70dvh;overflow:auto;border-radius:var(--r-md) var(--r-md) 0 0;padding-bottom:calc(var(--s1) + env(safe-area-inset-bottom))}#content[data-section="assistants"] .wa-dobby{position:fixed;z-index:var(--z-wa-pop);right:0;bottom:0;left:0;flex:none;max-height:75dvh;padding-bottom:calc(var(--s3) + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;box-shadow:var(--sh-2)}#content[data-section="assistants"] .wa-dobby-btn span{display:none}}
@media(max-width:720px),(pointer:coarse){#content[data-section="assistants"] .wa-web .btn.sm,#content[data-section="assistants"] .wa-web .wa-pop .btn,#content[data-section="assistants"] .wa-web .wa-icon-btn,#content[data-section="assistants"] .wa-web .wa-emoji-choice,#content[data-section="assistants"] .wa-forward-chat{min-height:44px}#content[data-section="assistants"] .wa-icon-btn,#content[data-section="assistants"] .wa-emoji-choice{min-width:44px}#content[data-section="assistants"] .wa-emoji-panel{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}}
@media(pointer:coarse){#content[data-section="assistants"] .wa-hover>.wa-icon-btn:not(:focus){position:absolute;inline-size:1px;block-size:1px;min-height:0;min-width:0;padding:0;clip-path:inset(50%);pointer-events:none}}
/* ---------- /UX-ROLLOUT (g) ---------- */

/* ---------- UX-ROLLOUT (h) Home rest and preset consistency (UX-ROLLOUT-HOME/THEMES) ---------- */
/* C1/F01: preserve UXR1's tile roles and all markup/copy. The existing --fs-lg is the nearest
   title token (no --t-title in this checkout); --fs-label supplies the shared 13 px floor. */
#content[data-section="home"]{font-family:var(--f-body);font-size:max(13px,var(--fs-md));font-weight:400;line-height:var(--lh);overflow-wrap:anywhere}
#content[data-section="home"] h2{font-family:var(--f-head);font-size:var(--fs-lg);font-weight:600;line-height:1.3;letter-spacing:0}
#content[data-section="home"] b,#content[data-section="home"] strong,#content[data-section="home"] .num,
#content[data-section="home"] .btn,#content[data-section="home"] .who-pick label,#content[data-section="home"] .sugg button,
#content[data-section="home"] .bot small,#content[data-section="home"] .feed .t,#content[data-section="home"] .feed time,
#content[data-section="home"] .empty{font-weight:600;letter-spacing:0;text-transform:none}
#content[data-section="home"] .btn,#content[data-section="home"] .who-pick label,#content[data-section="home"] .sugg button,
#content[data-section="home"] .todo .s,#content[data-section="home"] .bot small,#content[data-section="home"] .feed time,
#content[data-section="home"] .empty,#content[data-section="home"] [role="tooltip"]{font-size:var(--fs-label)}
#content[data-section="home"] .composer input{font-size:max(13px,var(--fs-md))}
#content[data-section="home"] .bot b{font-family:var(--f-head);font-size:max(13px,var(--fs-md))}
#content[data-section="home"] .needs-h{flex-wrap:wrap}
#content[data-section="home"] .big-count{font-family:var(--f-num);font-size:var(--fs-xl);font-weight:600;line-height:1.1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:0}
#content[data-section="home"] .blob{display:none}
#content[data-section="home"] .ask{background:var(--surface)}
/* Owner-approved local layer tokens: keep the existing link < trigger < bubble order. */
#content[data-section="home"],#content[data-section="settings"]{--z-home-link:1;--z-home-trigger:2;--z-home-tooltip:90}
#content[data-section="home"] .cover{z-index:var(--z-home-link)}
#content[data-section="home"] .tile .tip,#content[data-section="home"] .tile .has-tt{z-index:var(--z-home-trigger)}
#content[data-section="home"] [role="tooltip"],#content[data-section="settings"] [role="tooltip"]{z-index:var(--z-home-tooltip)}
/* The ring mask needs opaque alpha, not a fixed black palette entry. */
#content[data-section="home"] .donut{-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - var(--ring,22px)),var(--ink) calc(100% - var(--ring,22px) + 1px));mask:radial-gradient(farthest-side,transparent calc(100% - var(--ring,22px)),var(--ink) calc(100% - var(--ring,22px) + 1px))}
#content[data-section="home"] .btn.primary,#content[data-section="settings"] .btn.primary{box-shadow:var(--sh-1)}
/* ---------- /UX-ROLLOUT (h) ---------- */

/* ---------- UX-ROLLOUT (p) Portfolio first view (UIUX-FINANCE-WALK-1105, jobs 2 and 7): one main figure, two groups, one Details ----------
   Phone first. Spacing only from --s tokens; one --s5 rhythm between blocks. Colour never stands alone: stale has a clock,
   missing a dash, converted or partial an approximate sign plus hatching. No motion. */
#content[data-section="finance"] .pf-glance{display:flex;flex-direction:column;gap:var(--s5);margin-bottom:var(--s5)}
#content[data-section="finance"] .pf-hero{display:flex;flex-direction:column;gap:var(--s2)}
#content[data-section="finance"] .pf-glance h2.pf-title{margin:0;font:500 var(--fs-md)/1.3 var(--f-body);color:var(--ink-2)}
#content[data-section="finance"] .pf-glance p.pf-total{margin:0;font:400 var(--fs-2xl)/1.05 var(--f-head);letter-spacing:var(--track-title);color:var(--ink)}
#content[data-section="finance"] .pf-total .num{font-family:var(--f-head);font-weight:400}
#content[data-section="finance"] .pf-cents{font-size:.5em;letter-spacing:0;color:var(--ink-2)}
#content[data-section="finance"] .pf-line{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5)}
#content[data-section="finance"] .pf-stat{display:flex;flex-direction:column;min-width:0}
#content[data-section="finance"] .pf-label{font-size:var(--fs-label);line-height:1.35;color:var(--ink-2)}
#content[data-section="finance"] .pf-stat b{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}
#content[data-section="finance"] .pf-stat b+b{margin-left:var(--s2)}
#content[data-section="finance"] .pf-glance b.pf-gain{color:var(--gain-ink)}
#content[data-section="finance"] .pf-glance b.pf-loss{color:var(--danger-ink)}
#content[data-section="finance"] .pf-glance .pf-missing{font-weight:600;color:var(--ink-2)}
#content[data-section="finance"] .pf-approx{padding-bottom:var(--s1);background:repeating-linear-gradient(45deg,var(--ink-2) 0 1px,transparent 1px var(--s1)) left bottom/100% var(--s1) no-repeat}
#content[data-section="finance"] .pf-flags{display:flex;flex-wrap:wrap;gap:var(--s3)}
#content[data-section="finance"] .pf-flag{display:inline-flex;align-items:center;gap:var(--s1);font:600 var(--fs-label)/1.3 var(--f-body);color:var(--warn-ink)}
#content[data-section="finance"] a.pf-flag{min-height:var(--control-h);text-decoration:underline}
#content[data-section="finance"] .pf-flag .i,#content[data-section="finance"] .pf-age .i{width:1em;height:1em}
#content[data-section="finance"] a.pf-group{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--ink);text-decoration:none}
#content[data-section="finance"] a.pf-group:hover{background:var(--surface-hover)}
#content[data-section="finance"] a.pf-group:focus-visible,#content[data-section="finance"] .pf-details>summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
#content[data-section="finance"] .pf-glance h3.pf-head{display:flex;align-items:center;gap:var(--s2);min-height:var(--control-h);margin:0;font:500 var(--fs-lg)/1.3 var(--f-head);color:var(--ink)}
#content[data-section="finance"] .pf-head .pf-go{margin-left:auto;color:var(--ink-2)}
#content[data-section="finance"] .pf-age{display:inline-flex;align-items:center;gap:var(--s1);font:400 var(--fs-label)/1.3 var(--f-body);color:var(--ink-2)}
#content[data-section="finance"] .pf-age.is-stale{font-weight:600;color:var(--warn-ink)}
#content[data-section="finance"] .pf-bar{display:flex;height:var(--s3);overflow:hidden;border-radius:var(--r-xs);background:var(--surface-2)}
#content[data-section="finance"] .pf-pair .pf-bar{height:var(--s2)}
#content[data-section="finance"] .pf-bar>i{display:block;flex:none;width:var(--w)}
#content[data-section="finance"] .pf-k1{background-color:var(--band)}
#content[data-section="finance"] .pf-k2{background-color:var(--accent)}
#content[data-section="finance"] .pf-k3{background-color:var(--cat-4)}
#content[data-section="finance"] .pf-k4{background-color:var(--cat-1)}
#content[data-section="finance"] .pf-krest{background-color:var(--line-strong)}
#content[data-section="finance"] .pf-ink{background-color:var(--ink-2)}
#content[data-section="finance"] .pf-bar>i.pf-hatch{background-image:repeating-linear-gradient(45deg,transparent 0 var(--s1),var(--surface) var(--s1) var(--s2))}
#content[data-section="finance"] .pf-rows{display:flex;flex-direction:column}
#content[data-section="finance"] .pf-row{display:grid;grid-template-columns:var(--s3) minmax(0,1fr) auto;gap:var(--s3);align-items:center;min-height:var(--control-h);padding:var(--s1) 0}
#content[data-section="finance"] .pf-row+.pf-row,#content[data-section="finance"] .pf-pair+.pf-pair{border-top:1px solid var(--line)}
#content[data-section="finance"] .pf-key{display:block;width:var(--s3);height:var(--s3);border-radius:var(--s1)}
#content[data-section="finance"] .pf-who{display:flex;flex-direction:column;min-width:0}
#content[data-section="finance"] .pf-name{overflow:hidden;font-size:var(--fs-sm);line-height:1.35;white-space:nowrap;text-overflow:ellipsis}
#content[data-section="finance"] .pf-who .num,#content[data-section="finance"] .pf-who .pf-missing{font-size:var(--fs-label);line-height:1.35;color:var(--ink-2)}
#content[data-section="finance"] .pf-row>b{font-size:var(--fs-md);font-weight:600;white-space:nowrap}
#content[data-section="finance"] .pf-pair{display:flex;flex-direction:column;justify-content:center;gap:var(--s1);min-height:var(--control-h);padding:var(--s2) 0}
#content[data-section="finance"] .pf-pair-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);font-size:var(--fs-sm)}
#content[data-section="finance"] .pf-pair-top .num{font-weight:600}
#content[data-section="finance"] .pf-glance p.pf-empty{margin:0;color:var(--ink-2)}
#content[data-section="finance"] .pf-details>summary{display:flex;align-items:center;justify-content:space-between;min-height:var(--control-h);padding:0 var(--s4);list-style:none;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);font-weight:500;color:var(--ink)}
#content[data-section="finance"] .pf-details>summary::-webkit-details-marker{display:none}
#content[data-section="finance"] .pf-details>summary .i{color:var(--ink-2)}
#content[data-section="finance"] .pf-details[open]>summary{margin-bottom:var(--s5)}
#content[data-section="finance"] .pf-details[open]>summary .i{transform:rotate(180deg)}
/* R2 (approved mock, rank D): as on Overview, the shared Finance title and icon row leave the Portfolio first view
   and the viewer badge stays. The data pill and the tab row with Export open at the top of Details, not sticky there. */
.main-inner:has(.pf-glance) .top>:not(#read-only-badge),.main-inner:has(.breakdown) .top>:not(#read-only-badge),.main-inner:has(.fin-subs) .top>:not(#read-only-badge){display:none}
:root:not([data-read-only="true"]) .main-inner:has(.pf-glance) .top,:root:not([data-read-only="true"]) .main-inner:has(.breakdown) .top,:root:not([data-read-only="true"]) .main-inner:has(.fin-subs) .top{display:none}
#content[data-section="finance"] .pf-details>.finance-header,#content[data-section="finance"] .bd-details>.finance-header,#content[data-section="finance"] .fin-subs-details>.finance-header{position:static;margin-bottom:var(--s4)}
@media (min-width:960px){
  #content[data-section="finance"] .pf-glance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  #content[data-section="finance"] .pf-glance>.pf-hero,#content[data-section="finance"] .pf-glance>[role="status"]{grid-column:1/-1}
}
/* ---------- /UX-ROLLOUT (p) ---------- */

@media (max-width:720px){.fin-grid>*,.worth-grid>*,.module-root,.alloc-view{min-width:0;max-width:100%}.conc-row{flex-wrap:wrap}.conc-row .bar{min-width:40px}.portfolio .card-h .seg{flex-wrap:wrap}.portfolio .donut-wrap .c b{font-size:.9rem;overflow-wrap:anywhere}.portfolio .table-wrap{max-width:100%}.worth .income-row{min-width:0}.worth .income-row>*{min-width:0;overflow-wrap:anywhere}}

.flow-chart.amounts-hidden .flow-pair i{height:0;min-height:0}
@media (max-width:720px){.alloc-view{grid-template-columns:1fr}.alloc-view .donut-wrap{justify-self:center}.conc-row> b{overflow-wrap:anywhere}.income-row{grid-template-columns:minmax(0,1fr) minmax(24px,1fr) auto}}

/* Secondary destinations remain visible together on phones. */
.more-pages{display:grid;gap:var(--s2)}
.more-pages .btn{justify-content:flex-start}

/* FIN24: account controls stay reachable on phone-sized freshness cards. */
.fresh .account-freshness{flex-wrap:wrap}
.fresh .account-freshness>.btn{flex-basis:100%;white-space:normal}

/* C7/F13 PA5: analyser controls and responsive exposure cards. */
.analyser-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));align-items:end;gap:var(--s3);margin-block:var(--s4)}
.analyser-controls>*{min-width:0}.analyser-controls .field{min-width:0}
.analyser-controls select,.analyser-controls input[type=search]{width:100%;min-width:0;max-width:100%}
.analyser-view{border:0;margin:0;padding:var(--s2);min-width:0;gap:var(--s2)}
.analyser-view legend{font-size:var(--fs-sm);font-weight:800}.analyser-view .field{display:flex;align-items:center;gap:var(--s2)}
.analyser-table{width:100%;font-size:var(--fs-sm)}.analyser-table td{overflow-wrap:anywhere}
.analyser-table th button{font:inherit;text-align:inherit}.analyser-paths summary{cursor:pointer;font-weight:800}
.analyser-paths ul{padding-left:var(--s4)}.analyser-paths li{margin-block:var(--s2)}
.analyser-badges{display:flex;flex-wrap:wrap;gap:var(--s2)}
.analyser-ok{color:var(--ok-ink)}.analyser-bad{color:var(--danger-ink)}
.analyser-coverage{height:var(--s3);background:var(--warn-tint);border-radius:var(--r-pill);overflow:hidden}
.analyser-coverage i{display:block;height:100%;background:var(--ok)}
@media (max-width:720px){
  .analyser{min-width:0;max-width:100%}.analyser-controls{grid-template-columns:1fr}
  .analyser .table-wrap{overflow:visible;min-width:0;max-width:100%}
  .analyser-table,.analyser-table tbody{display:block;min-width:0;width:100%}
  .analyser-table thead{display:block}.analyser-table thead tr{display:flex;flex-wrap:wrap;gap:var(--s2)}
  .analyser-table thead th{display:block;padding:var(--s2)}
  .analyser-table tbody tr{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s2);margin-block:var(--s3);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-sm)}
  .analyser-table td{display:block;min-width:0;border:0;padding:0;white-space:normal}
  .analyser-table .analyser-cell-benchmark_pct,.analyser-table .analyser-cell-difference_pp,.analyser-table .analyser-cell-status{grid-row:2}
  .analyser-table .analyser-cell-date{grid-column:1/-1;grid-row:3;color:var(--ink-2)}
  .analyser-cell-benchmark_pct::before{content:'Benchmark ';font-size:var(--fs-xs)}
  .analyser-cell-date::before{content:'Data date ';font-size:var(--fs-xs)}
}

/* FINUX2-L5 C7/F13 P2/P3/I1: additive lane styles; fixed class colours stay on marks. */
#content[data-section="finance"] .l5-allocation .legend{width:100%;display:grid;gap:var(--s3);margin:0}
#content[data-section="finance"] .l5-allocation-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2)!important;min-width:0}
#content[data-section="finance"] .l5-allocation-row .bar{grid-column:1/-1;width:100%;height:var(--s2)}
#content[data-section="finance"] .l5-allocation-row>span:first-child{overflow-wrap:anywhere}
#content[data-section="finance"] .l5-holding-sheet .sheet-body{min-width:0}
#content[data-section="finance"] .l5-holding-sheet .form-grid{grid-template-columns:minmax(0,1fr)}
#content[data-section="finance"] .l5-holding-sheet input,#content[data-section="finance"] .l5-holding-sheet select{max-width:100%;min-width:0}
#content[data-section="finance"] .l5-period{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s4)}
#content[data-section="finance"] .l5-period label{display:flex;align-items:center;gap:var(--s2);min-width:0}
#content[data-section="finance"] .l5-period select{max-width:100%}
#content[data-section="finance"] .l5-columns{position:relative;font-size:var(--fs-sm)}
#content[data-section="finance"] .l5-columns[open]{display:grid;gap:var(--s2)}
#content[data-section="finance"] .l5-columns label{display:flex;align-items:center;gap:var(--s2)}
#content[data-section="finance"] .l5-drift{list-style:none;padding:0;display:grid;gap:var(--s4)}
#content[data-section="finance"] .l5-drift li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2);min-width:0}
#content[data-section="finance"] .l5-drift li>b,#content[data-section="finance"] .l5-drift-values{grid-column:1/-1;overflow-wrap:anywhere}
#content[data-section="finance"] .l5-drift-values{font-size:var(--fs-sm);font-family:var(--f-num);font-variant-numeric:tabular-nums}
#content[data-section="finance"] .l5-bullet{display:block;position:relative;background:var(--surface-2);height:var(--s3);align-self:center;min-width:0}
#content[data-section="finance"] .l5-bullet>i{display:block;width:var(--width);height:100%;background:var(--c)}
#content[data-section="finance"] .l5-bullet>b{position:absolute;left:clamp(1px,var(--target),calc(100% - 2px));top:-3px;bottom:-3px;width:2px;background:var(--ink)}
#content[data-section="finance"] .l5-monthly{display:grid;grid-template-columns:repeat(var(--count),minmax(0,1fr));gap:var(--s2);min-width:0}
#content[data-section="finance"] .l5-month{min-width:0;text-align:center}
#content[data-section="finance"] .l5-month-track{height:144px;position:relative;background:var(--surface-2);border-radius:var(--r-sm)}
#content[data-section="finance"] .l5-month-track::after{content:'';position:absolute;left:0;right:0;bottom:var(--baseline);border-bottom:1px solid var(--ink-2)}
#content[data-section="finance"] .l5-month-track>i{position:absolute;left:15%;width:70%;height:var(--height);bottom:var(--bottom)}
#content[data-section="finance"] .l5-positive{background:var(--asset-cash)}#content[data-section="finance"] .l5-negative{background:var(--chart-4)}
#content[data-section="finance"] .l5-month-label{font-size:var(--fs-xs);display:block;margin-top:var(--s2);overflow-wrap:anywhere}
@media(max-width:720px){
  #content[data-section="finance"] .l5-drift li{grid-template-columns:minmax(0,1fr)}
  #content[data-section="finance"] .l5-drift .l5-bullet{width:100%}
  #content[data-section="finance"] .l5-monthly{gap:var(--s1)}
  #content[data-section="finance"] .l5-month-track{height:112px}
  #content[data-section="finance"] .l5-income-details td{overflow-wrap:anywhere;white-space:normal}
}

/* C7/F13 PA6: token-based, bespoke SVG charts. */
.analyser-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.analyser-chart{min-width:0;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-sm)}
.analyser-svg{display:block;width:100%;height:auto;overflow:visible}
.analyser-svg g[role=button]{cursor:pointer}.analyser-svg g[role=button]:focus{outline:2px solid var(--accent)}
.analyser-country-label{font:12px var(--f-body);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:2px}
.analyser-svg>text{font:14px var(--f-body)}
.analyser-legend{display:flex;flex-wrap:wrap;gap:var(--s3);list-style:none;padding:0;font-size:var(--fs-sm)}
.analyser-legend li{display:flex;align-items:center;gap:var(--s2)}.analyser-legend i{width:var(--s3);height:var(--s3);border-radius:var(--r-sm)}
.analyser-region-list{list-style:none;padding:0}.analyser-region-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:var(--s2);font-size:var(--fs-sm);margin-block:var(--s2)}
.analyser-region-list li>:last-child{grid-column:3}
/* C7/F13 PA7: long security names and contribution paths stay within cards. */
.analyser-chart .field{min-width:0;max-width:100%}
.analyser-chart select{max-width:100%}
.analyser-matrix-wrap{max-width:100%;overflow-x:auto}
.analyser-matrix{min-width:560px}
.analyser-matrix-value{font:10px var(--f-body);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:2px}
.analyser-fund-labels,.analyser-company-paths{padding-inline-start:var(--s4);font-size:var(--fs-sm);overflow-wrap:anywhere}
.analyser-company-paths li{margin-block:var(--s2)}
.analyser-others{min-width:0;overflow-wrap:anywhere}
.analyser-others summary{cursor:pointer;font-size:var(--fs-sm)}
@media (max-width:1040px){.analyser-charts{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){.analyser-charts{grid-template-columns:minmax(0,1fr)}.analyser-chart{padding:var(--s2)}.analyser-country-label{font-size:20px}}


/* DASH-TOGGLES / C1 F05: shared settings layout, long labels wrap on mobile. */
.function-setting{grid-template-columns:minmax(0,1fr) auto;gap:var(--s4)}
.function-setting small{display:block;overflow-wrap:anywhere}
#function-banner{border-color:var(--warn);margin-bottom:var(--s4)}

/* C7/F13 FINUX2-L7: additive analyser alignment, preserving PA5–PA7 layout and chart semantics. */
.analyser-aligned{min-width:0;max-width:100%;font-size:var(--fs-md)}
.analyser-aligned h2,.analyser-aligned-charts h3{font-size:var(--fs-lg);font-weight:600}
.analyser-aligned-controls{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s4)}
.analyser-display-view{display:flex;flex-wrap:wrap;gap:var(--s2);min-width:0}
.analyser-aligned .analyser-view legend,.analyser-aligned .analyser-paths summary{font-weight:600}
.analyser-more-filters{min-width:0;align-self:start;padding:var(--s2)}
.analyser-more-filters summary{cursor:pointer;font-size:var(--fs-sm);font-weight:600}
.analyser-filter-fields{display:grid;gap:var(--s3);margin-top:var(--s3);min-width:0}
.analyser-filter-fields select,.analyser-filter-fields input[type=search]{width:100%;min-width:0;max-width:100%}
.analyser-total{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s2)}
.analyser-aligned .analyser-numeric{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums lining-nums}
.analyser-class-swatch{display:inline-block;vertical-align:middle;width:var(--s3);height:var(--s3);margin-inline-end:var(--s2);border-radius:var(--r-xs)}
.analyser-aligned-charts .analyser-svg>text{font:var(--fs-sm) var(--f-body)}
.analyser-aligned-charts .analyser-country-label{font:var(--fs-xs) var(--f-body)}
.analyser-aligned-charts .analyser-chart-number{font:var(--fs-xs) var(--f-num);font-variant-numeric:tabular-nums lining-nums}
.analyser-aligned-charts .analyser-matrix-value{font:calc(var(--fs-xs) * 5 / 6) var(--f-num);font-variant-numeric:tabular-nums lining-nums}
.analyser-aligned-charts .analyser-region-list .value{font-size:var(--fs-sm);line-height:var(--lh)}
@media (max-width:720px){
  .analyser-aligned-controls{grid-template-columns:minmax(0,1fr)}
  .analyser-aligned-charts .analyser-country-label{font-size:var(--fs-lg)}
  .analyser-aligned .analyser-numeric{text-align:left}
  .analyser-aligned .analyser-table tbody tr{grid-template-columns:minmax(0,1fr)}
  .analyser-aligned .analyser-table td{grid-column:1;grid-row:auto;overflow-wrap:anywhere}
  .analyser-aligned .analyser-table td::before{content:attr(data-label);display:block;color:var(--ink-2);font:var(--fs-xs) var(--f-body)}
  .analyser-aligned .analyser-table .analyser-cell-status[data-label=""]{display:none}
  .analyser-aligned-charts .analyser-region-list li{grid-template-columns:minmax(0,1fr) auto}
  .analyser-aligned-charts .analyser-region-list li>:last-child{grid-column:1/-1}
}

/* L11S-C C2/F08: phone-sized owner review cards. */
.wa-gate-card{min-width:0;overflow-wrap:anywhere}
.wa-gate-card .quote{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
.wa-gate-card .decide{display:flex;flex-wrap:wrap;gap:var(--s2)}
.wa-gate-card button{min-height:44px;max-width:100%;white-space:normal}
.wa-gate-recovery{margin-top:var(--s3)}
@media(max-width:480px){.wa-gate-card .decide button{flex:1 1 100%}}

/* ---------- FINUX2-L1 finance foundation (fin-ux2 C1-C4), scoped to the Finance section only ---------- */
#content[data-section="finance"] .num,#content[data-section="finance"] .tabular,#content[data-section="finance"] .value,#content[data-section="finance"] .legend .pct{font-family:var(--f-num);font-variant-numeric:lining-nums tabular-nums;letter-spacing:0}
#content[data-section="finance"] .value{white-space:nowrap}
#content[data-section="finance"] .v-big,#content[data-section="finance"] .value-hero{font-size:var(--fs-2xl);line-height:1.05;font-weight:600}
#content[data-section="finance"] .tile .big,#content[data-section="finance"] .stat .big,#content[data-section="finance"] .sum .s b,#content[data-section="finance"] .cf .box b,#content[data-section="finance"] .value-kpi,#content[data-section="finance"] .donut-wrap .c b{font-size:var(--fs-xl);line-height:1.1;font-weight:600}
/* The Portfolio allocation donut is small: its centre value is compact at title size so it stays inside the ring. */
#content[data-section="finance"] .portfolio .donut-wrap .c b,#content[data-section="finance"] .portfolio .donut-wrap .c .value-kpi{font-size:var(--fs-lg)}
#content[data-section="finance"] .mini-stat b,#content[data-section="finance"] .v-meta b{font-size:var(--fs-lg);font-weight:600}
#content[data-section="finance"] .card-h h2,#content[data-section="finance"] .f-head h2,#content[data-section="finance"] .section-h h2{font-size:var(--fs-lg);font-weight:600}
#content[data-section="finance"] td.num,#content[data-section="finance"] th.num{text-align:right}
@media (max-width:720px){
  #content[data-section="finance"] .v-big,#content[data-section="finance"] .value-hero{font-size:2rem}
  #content[data-section="finance"] .tile .big,#content[data-section="finance"] .stat .big,#content[data-section="finance"] .sum .s b,#content[data-section="finance"] .cf .box b,#content[data-section="finance"] .value-kpi{font-size:1.375rem}
  #content[data-section="finance"] .portfolio .donut-wrap .c b,#content[data-section="finance"] .portfolio .donut-wrap .c .value-kpi{font-size:var(--fs-sm)}
  #content[data-section="finance"] table.card-table:not(.sortable) thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #content[data-section="finance"] table.card-table.sortable thead,#content[data-section="finance"] table.card-table.sortable thead tr{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2)}
  #content[data-section="finance"] table.card-table.sortable thead th{display:block;border:0;padding:0;text-align:left}
  #content[data-section="finance"] table.card-table,#content[data-section="finance"] table.card-table tbody,#content[data-section="finance"] table.card-table tr{display:block;width:100%}
  #content[data-section="finance"] table.card-table tr{border:1px solid var(--line);border-radius:var(--round);padding:var(--s2) var(--s3);margin-block:var(--s2)}
  #content[data-section="finance"] table.card-table td{display:flex;justify-content:space-between;gap:var(--s3);text-align:right;border:0;padding:var(--s1) 0;min-width:0;overflow-wrap:anywhere}
  #content[data-section="finance"] table.card-table td::before{content:attr(data-label);color:var(--ink-2);text-align:left;font-family:var(--f-body);font-size:var(--fs-xs)}
}

/* ---------- FINUX2-L3a overview layout (fin-ux2 O1-O5, H1), finance scope only ---------- */
#content[data-section="finance"] .fin-hero{display:grid;gap:var(--s3)}
#content[data-section="finance"] .fin-hero-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s3)}
#content[data-section="finance"] .fin-hero-value{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3)}
#content[data-section="finance"] .fin-balance{display:grid;gap:var(--s2)}
#content[data-section="finance"] .fin-balance .stackbar{height:10px}
#content[data-section="finance"] .fin-balance-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);align-items:center}
#content[data-section="finance"] .fin-balance-legend .dot-s{display:inline-block;margin-right:var(--s1)}
#content[data-section="finance"] .stat-row.kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
#content[data-section="finance"] .data-health>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:var(--s1);padding:var(--s1) var(--s3);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600;background:var(--surface-2);color:var(--ink)}
#content[data-section="finance"] .data-health>summary::-webkit-details-marker{display:none}
#content[data-section="finance"] .data-health>summary.ok{background:var(--ok-tint,var(--surface-2));color:var(--ok-ink,var(--ink))}
#content[data-section="finance"] .data-health>summary.warn{background:var(--warn-tint,var(--surface-2));color:var(--warn-ink,var(--ink))}
#content[data-section="finance"] .data-health[open] .freshness-bar{margin-top:var(--s2)}
#content[data-section="finance"] .data-drawer>summary{font-weight:600}
#content[data-section="finance"] .data-drawer[open]>summary{margin-bottom:var(--s3)}
@media (max-width:720px){#content[data-section="finance"] .stat-row.kpi-strip{grid-template-columns:1fr}}

/* ---------- FINUX2-L3b net-worth history (uPlot; in-house SVG fallback) ---------- */
#content[data-section="finance"] .trend-chart{min-height:180px;width:100%;overflow:hidden}
#content[data-section="finance"] .trend-chart .uplot{font-family:var(--f-body);font-size:var(--fs-xs);color:var(--ink-2)}
#content[data-section="finance"] .trend-chart .u-select{background:var(--accent-tint)}
#content[data-section="finance"] .trend-chart svg.spark{width:100%;height:180px}
#content[data-section="finance"] .trend-delta{font-size:var(--fs-lg)}

/* ---------- FINUX2-L4 manual-account cards (fin-ux2 C7), finance scope only ---------- */
#content[data-section="finance"] .manual-group{margin-top:var(--s4)}
#content[data-section="finance"] .manual-group-h{font-size:var(--fs-sm);font-weight:600;margin:0 0 var(--s2)}
#content[data-section="finance"] .manual-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:var(--s3)}
#content[data-section="finance"] .manual-card{border:1px solid var(--line);border-radius:var(--round);padding:var(--s3);display:grid;gap:var(--s2);min-width:0}
#content[data-section="finance"] .manual-card-head{display:flex;gap:var(--s2);align-items:center;min-width:0}
#content[data-section="finance"] .manual-card-head .grow{min-width:0;overflow-wrap:anywhere}
#content[data-section="finance"] .manual-card-head .grow>b,#content[data-section="finance"] .manual-card-head .grow>small{display:block}
#content[data-section="finance"] .manual-card-value .value{white-space:normal;overflow-wrap:anywhere}
#content[data-section="finance"] .manual-card-meta{display:flex;flex-wrap:wrap;gap:var(--s1)}
#content[data-section="finance"] .manual-spark svg{width:100%;height:40px;display:block}
#content[data-section="finance"] .manual-update>summary{list-style:none;cursor:pointer;width:max-content}
#content[data-section="finance"] .manual-update>summary::-webkit-details-marker{display:none}
#content[data-section="finance"] .manual-update[open]>summary{margin-bottom:var(--s2)}
/* ---------- FINUX2-L4b asset groups, equity bar, investable vs illiquid split (finance scope only) ---------- */
#content[data-section="finance"] .manual-splits{display:grid;gap:var(--s3);margin-top:var(--s2)}
#content[data-section="finance"] .manual-equity{display:grid;gap:var(--s1);min-width:0}
#content[data-section="finance"] .manual-equity .stackbar{height:8px}
#content[data-section="finance"] .manual-equity .value-kpi,#content[data-section="finance"] .manual-owed .value-kpi{font-size:var(--fs-sm);line-height:1.4;font-weight:600}
#content[data-section="finance"] .manual-equity-sum{margin:0;overflow-wrap:anywhere}
#content[data-section="finance"] .manual-owed{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:var(--fs-sm);color:var(--ink-2)}
#content[data-section="finance"] .manual-link{display:flex;gap:var(--s1);align-items:center;margin:0;overflow-wrap:anywhere}
/* FINUX2-L6 C1/F01: additive Cash flow and recurring-charge layouts. */
#content[data-section="finance"] .fin-cashflow,#content[data-section="finance"] .fin-recurring{min-width:0}
#content[data-section="finance"] .fin-flow-group{min-width:0;padding:var(--s4) 0;border-top:1px solid var(--line)}
#content[data-section="finance"] .fin-flow-group h3{font-size:var(--fs-md);font-weight:600;margin:var(--s4) 0 var(--s2)}
#content[data-section="finance"] .fin-flow-axis{display:block;width:100%;max-width:720px;height:auto;margin:var(--s3) auto}
#content[data-section="finance"] .fin-flow-tick{font-family:var(--f-num);font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap;line-height:1}
#content[data-section="finance"] .fin-flow-layout{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--s2)}
#content[data-section="finance"] .fin-flow-y{position:relative;min-width:7em;font-family:var(--f-num);font-size:var(--fs-xs)}
#content[data-section="finance"] .fin-flow-gutter{display:grid;visibility:hidden;white-space:nowrap}
#content[data-section="finance"] .fin-flow-gutter>span{grid-area:1 / 1}
#content[data-section="finance"] .fin-flow-y>.fin-flow-tick{position:absolute;right:0;transform:translateY(-50%)}
#content[data-section="finance"] .fin-flow-y>.fin-flow-tick:nth-child(1){top:82.727%}
#content[data-section="finance"] .fin-flow-y>.fin-flow-tick:nth-child(2){top:45.455%}
#content[data-section="finance"] .fin-flow-y>.fin-flow-tick:nth-child(3){top:8.182%}
#content[data-section="finance"] .fin-flow-plot{position:relative;min-width:0}
#content[data-section="finance"] .fin-flow-plot>svg{display:block;width:100%;height:auto}
#content[data-section="finance"] .fin-flow-months{position:absolute;display:flex;top:92.727%;left:2.222%;right:2.222%;transform:translateY(-50%)}
#content[data-section="finance"] .fin-flow-months>.fin-flow-tick{flex:1;min-width:0;text-align:center}
#content[data-section="finance"] .fin-flow-grid{stroke:var(--line);stroke-width:1}
#content[data-section="finance"] .fin-flow-zero{stroke:var(--ink-2);stroke-width:1}
#content[data-section="finance"] .fin-flow-income{fill:var(--asset-cash)}
#content[data-section="finance"] .fin-flow-spending{fill:var(--surface);stroke:var(--asset-other);stroke-width:1.5}
#content[data-section="finance"] .fin-flow-legend{font-size:var(--fs-xs);color:var(--ink-2)}
#content[data-section="finance"] .fin-flow-categories{list-style:none;padding:0;margin:var(--s3) 0;display:grid;gap:var(--s3)}
#content[data-section="finance"] .fin-flow-categories li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);gap:var(--s3);align-items:center}
#content[data-section="finance"] .fin-flow-categories li>span,#content[data-section="finance"] .fin-subscription>*{min-width:0;overflow-wrap:anywhere}
#content[data-section="finance"] .fin-flow-categories small{display:block;font-size:var(--fs-xs)}
#content[data-section="finance"] .fin-flow-category{background:var(--asset-cash)}
#content[data-section="finance"] .fin-flow-category-value{text-align:right}
#content[data-section="finance"] .fin-flow-category-value .value,#content[data-section="finance"] .fin-subscription-amount .value{white-space:normal;overflow-wrap:anywhere}
#content[data-section="finance"] .fin-cashflow .table-wrap{max-width:100%}
#content[data-section="finance"] .fin-cashflow th:nth-child(n+2):nth-child(-n+4),#content[data-section="finance"] .fin-cashflow td:nth-child(n+2):nth-child(-n+4){text-align:right}
#content[data-section="finance"] .fin-flow-month-detail{font-size:var(--fs-sm)}
#content[data-section="finance"] .fin-flow-sources{margin:var(--s4) 0}
#content[data-section="finance"] .fin-recurring-totals{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);margin-bottom:var(--s3)}
#content[data-section="finance"] .fin-subscriptions{list-style:none;margin:var(--s4) 0 0;padding:0}
#content[data-section="finance"] .fin-subscription{display:grid;grid-template-columns:40px minmax(0,2fr) minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s3);align-items:center;padding:var(--s4) 0;border-top:1px solid var(--line)}
#content[data-section="finance"] .fin-subscription-initial{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-lg);font-weight:600}
#content[data-section="finance"] .fin-subscription-name small,#content[data-section="finance"] .fin-subscription-amount small,#content[data-section="finance"] .fin-subscription-next small{display:block;font-size:var(--fs-xs)}
#content[data-section="finance"] .fin-subscription-amount{text-align:right;font-family:var(--f-num);font-variant-numeric:tabular-nums}
#content[data-section="finance"] .fin-subscription-cadence{justify-self:center}
#content[data-section="finance"] .fin-subscription-next{text-align:right;font-size:var(--fs-sm)}
@media(max-width:719px){
  #content[data-section="finance"] .fin-flow-categories li{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  #content[data-section="finance"] .fin-flow-categories .bar{grid-column:1 / -1;grid-row:2}
  #content[data-section="finance"] .fin-cashflow table.card-table td:nth-child(n+2):nth-child(-n+4){text-align:left}
  #content[data-section="finance"] .fin-cashflow table.card-table td{overflow-wrap:anywhere;min-width:0}
  #content[data-section="finance"] .fin-cashflow table.card-table .value{white-space:normal;overflow-wrap:anywhere}
  #content[data-section="finance"] .fin-flow-sources table{table-layout:fixed;width:100%}
  #content[data-section="finance"] .fin-flow-sources td{overflow-wrap:anywhere}
  #content[data-section="finance"] .fin-flow-sources .value{white-space:normal;overflow-wrap:anywhere}
  #content[data-section="finance"] .fin-recurring-totals .value{white-space:normal;overflow-wrap:anywhere}
  #content[data-section="finance"] .fin-subscription{grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);gap:var(--s2) var(--s3)}
  #content[data-section="finance"] .fin-subscription-initial{grid-row:1 / 3}
  #content[data-section="finance"] .fin-subscription-cadence{grid-column:2;justify-self:start}
  #content[data-section="finance"] .fin-subscription-next{grid-column:3}
}

/* FINUX2-L8 C1/F01 C2/MB1: additive Finance-only tablet and phone layouts. */
#content[data-section="finance"]{min-width:0;max-width:100%;overflow-wrap:anywhere}
#content[data-section="finance"] .fin-grid>*,#content[data-section="finance"] .card,#content[data-section="finance"] .module-root,#content[data-section="finance"] .table-wrap{min-width:0;max-width:100%}
#content[data-section="finance"] .fin-grid>.span-12{grid-column:span 12}
#content[data-section="finance"] .fin-grid>.span-8{grid-column:span 8}
#content[data-section="finance"] .fin-grid>.span-7{grid-column:span 7}
#content[data-section="finance"] .fin-grid>.span-5{grid-column:span 5}
#content[data-section="finance"] .fin-grid>.span-4{grid-column:span 4}
#content[data-section="finance"] .finance-header{position:sticky;top:0;z-index:30;background:var(--bg);padding-block:var(--s2);margin-top:0;gap:var(--s2);isolation:isolate}
#content[data-section="finance"] .finance-header>[data-finance-tabs]{flex:1 1 24rem;min-width:0}
#content[data-section="finance"] .finance-header-actions{min-width:0;max-width:100%;margin-left:auto}
#content[data-section="finance"] .view-currency{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);min-width:0;max-width:100%}
#content[data-section="finance"] .view-currency select{min-width:0;max-width:100%}
#content[data-section="finance"] .view-currency button{min-height:var(--control-h)}
#content[data-section="finance"] .finance-header~*{scroll-margin-top:8rem}
@media (min-width:720px) and (max-width:1239px){
  #content[data-section="finance"] .fin-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  #content[data-section="finance"] .fin-grid>.span-12{grid-column:span 6}
  #content[data-section="finance"] .fin-grid>.span-8,#content[data-section="finance"] .fin-grid>.span-7,#content[data-section="finance"] .fin-grid>.span-5,#content[data-section="finance"] .fin-grid>.span-4{grid-column:span 3}
  #content[data-section="finance"] .alloc-view{grid-template-columns:minmax(0,1fr)}
  #content[data-section="finance"] .alloc-view .donut-wrap{justify-self:center}
  #content[data-section="finance"] .legend.inline{grid-template-columns:minmax(0,1fr)}
}
/* Earlier lanes used an inclusive 720px phone breakpoint. Tables stay tables from 720px. */
@media (min-width:720px){
  #content[data-section="finance"] table.card-table{display:table;width:100%}
  #content[data-section="finance"] table.card-table tbody{display:table-row-group}
  #content[data-section="finance"] table.card-table thead,#content[data-section="finance"] table.card-table:not(.sortable) thead,#content[data-section="finance"] table.card-table.sortable thead{display:table-header-group;position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}
  #content[data-section="finance"] table.card-table tr,#content[data-section="finance"] table.card-table.sortable thead tr,#content[data-section="finance"] .analyser-table tbody tr{display:table-row;padding:0;border:0;margin:0}
  #content[data-section="finance"] table.card-table td,#content[data-section="finance"] table.card-table.sortable thead th{display:table-cell;padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
  #content[data-section="finance"] table.card-table tbody tr:last-child>td{border-bottom:0}
  #content[data-section="finance"] .analyser .table-wrap{overflow:auto}
  #content[data-section="finance"] table.card-table td::before{display:none}
  #content[data-section="finance"] table.card-table td.num,#content[data-section="finance"] table.card-table th.num,#content[data-section="finance"] .analyser-table .analyser-numeric{text-align:right}
}
@media (max-width:719px){
  #content[data-section="finance"] .fin-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4)}
  #content[data-section="finance"] .fin-grid>.span-12,#content[data-section="finance"] .fin-grid>.span-8,#content[data-section="finance"] .fin-grid>.span-7,#content[data-section="finance"] .fin-grid>.span-5,#content[data-section="finance"] .fin-grid>.span-4{grid-column:span 4}
  #content[data-section="finance"] .worth-grid,#content[data-section="finance"] .manual-grid,#content[data-section="finance"] .queue,#content[data-section="finance"] .analyser-controls{grid-template-columns:minmax(0,1fr)}
  #content[data-section="finance"] .stat-row.kpi-strip{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(14rem,80%);overflow-x:auto;max-width:100%;min-width:0;padding-bottom:var(--s2);scroll-snap-type:x proximity}
  #content[data-section="finance"] .kpi-strip>.stat{scroll-snap-align:start;min-width:0}
  #content[data-section="finance"] .value,#content[data-section="finance"] .num{white-space:normal;overflow-wrap:anywhere;min-width:0}
  #content[data-section="finance"] .card-h,#content[data-section="finance"] .card-h .end,#content[data-section="finance"] .row-flex,#content[data-section="finance"] .acct-list li{flex-wrap:wrap;min-width:0}
  #content[data-section="finance"] .acct-list li>.chip:nth-last-child(2){display:inline-flex}
  #content[data-section="finance"] .chip{max-width:100%;white-space:normal;overflow-wrap:anywhere}
  #content[data-section="finance"] .card-h .end{margin-left:0}
  #content[data-section="finance"] .table-wrap{overflow:auto}
  #content[data-section="finance"] table.card-table{min-width:0;table-layout:fixed}
  #content[data-section="finance"] table.card-table td,#content[data-section="finance"] .analyser-table td{display:block;min-width:0;width:auto;max-width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;grid-column:1;grid-row:auto}
  #content[data-section="finance"] table.card-table td::before{display:block;content:attr(data-label);font:var(--fs-xs) var(--f-body);color:var(--ink-2);text-align:left}
  #content[data-section="finance"] table.card-table td[data-label=""]::before,#content[data-section="finance"] table.card-table td[colspan]::before{display:none}
  #content[data-section="finance"] .analyser-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr)}
  #content[data-section="finance"] table.card-table.sortable thead th{position:static;white-space:normal}
  #content[data-section="finance"] .hl{border:1px solid var(--line);border-radius:var(--round);margin-block:var(--s3)}
  #content[data-section="finance"] .hl-head{display:none}
  #content[data-section="finance"] .hl>summary{grid-template-columns:minmax(0,1fr) auto;gap:var(--s2);padding:var(--s3)}
  #content[data-section="finance"] .hl>summary>[data-label]{grid-column:1/-1;order:0;min-width:0;text-align:left}
  #content[data-section="finance"] .hl>summary>[data-label="Security"]{grid-column:1;grid-row:1}
  #content[data-section="finance"] .hl>summary>[data-label]::before{content:attr(data-label);display:block;font:var(--fs-xs) var(--f-body);color:var(--ink-2)}
  #content[data-section="finance"] .hl>summary .pl{display:block}
  #content[data-section="finance"] .hl>summary .w{display:flex;flex-wrap:wrap}
  #content[data-section="finance"] .hl>summary .w::before{flex-basis:100%}
  #content[data-section="finance"] .hl>summary .stc{flex-wrap:wrap;justify-content:flex-start}
  #content[data-section="finance"] .hl>summary .stc::before,#content[data-section="finance"] .hl>summary .sec::before{flex-basis:100%}
  #content[data-section="finance"] .hl>summary .sec{flex-wrap:wrap}
  #content[data-section="finance"] .sec>span:last-child{flex:1}
  #content[data-section="finance"] .hl>summary>svg:last-child{grid-column:2;grid-row:1}
  #content[data-section="finance"] .sec b,#content[data-section="finance"] .sec small{white-space:normal;overflow-wrap:anywhere}
  #content[data-section="finance"] .hl .more{padding:var(--s3)}
  #content[data-section="finance"] input,#content[data-section="finance"] select,#content[data-section="finance"] textarea{min-width:0;max-width:100%}
  #content[data-section="finance"] .form-grid{grid-template-columns:minmax(0,1fr)}
  #content[data-section="finance"] .clip,#content[data-section="finance"] .residual{min-width:0;max-width:100%}
}

/* C7/F13 PA14A owner classification controls */
#content[data-section="finance"] .analyser-owner-actions{display:flex;flex-wrap:wrap;gap:var(--s3)}
#content[data-section="finance"] .analyser-editor:empty{display:none}
#content[data-section="finance"] .analyser-editor{padding:var(--s3);border:1px solid var(--line);border-radius:var(--round)}
/* C7/F13 FAN-A: one centre stage; labels stay in HTML at the body/small
   token size rather than shrinking with an SVG viewBox. FAN-B motion hook. */
#content[data-section="finance"] .analyser-stage-controls{display:flex;flex-wrap:wrap;gap:var(--s2);min-width:0}
#content[data-section="finance"] .analyser-stage-controls fieldset{display:flex;flex-wrap:wrap;gap:var(--s2);min-width:0;max-width:100%}
#content[data-section="finance"] .analyser-stage-controls .field{display:flex;flex-direction:row;align-items:center;gap:var(--s2);min-height:44px;margin:0;min-width:0;max-width:100%;padding:var(--s2)}
#content[data-section="finance"] .analyser-stage-controls input[type=radio]{width:auto;flex:none}
#content[data-section="finance"] .analyser-stage-controls>p{flex-basis:100%;margin:0}
#content[data-section="finance"] .analyser-stage,#content[data-section="finance"] .analyser-stage-host,#content[data-section="finance"] .analyser-stage-plot{min-width:0;max-width:100%;overflow-wrap:anywhere}
#content[data-section="finance"] .analyser-stage{font-size:var(--fs-sm);color:var(--ink)}
#content[data-section="finance"] .analyser-stage .value,#content[data-section="finance"] .analyser-stage summary,#content[data-section="finance"] .analyser-stage .chip,#content[data-section="finance"] .analyser-stage .small-note{font-size:var(--fs-sm);line-height:1.5}
#content[data-section="finance"] .analyser-stage h3{font-size:var(--fs-lg);font-weight:600}
#content[data-section="finance"] .analyser-stage-plot{display:grid;gap:var(--s4)}
#content[data-section="finance"] .analyser-stage-pie,#content[data-section="finance"] .analyser-stage-donut{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
#content[data-section="finance"] .analyser-stage-stacked>.analyser-stage-svg{height:64px}
#content[data-section="finance"] .analyser-stage-table th{font-size:var(--fs-sm);font-weight:500}
#content[data-section="finance"] .analyser-stage-svg{display:block;width:100%;height:auto}
#content[data-section="finance"] .analyser-stage-bar{display:block;width:100%;height:32px}
#content[data-section="finance"] .analyser-stage-bars-rows,#content[data-section="finance"] .analyser-stage-labels{display:grid;gap:var(--s3);min-width:0}
#content[data-section="finance"] .analyser-stage-item{min-width:0}
#content[data-section="finance"] .analyser-stage-item>summary{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);cursor:pointer;min-height:44px}
#content[data-section="finance"] .analyser-stage-item>summary>span:first-of-type{flex:1;min-width:0;overflow-wrap:anywhere}
#content[data-section="finance"] .analyser-stage-swatch{display:inline-block;flex:none;width:var(--s3);height:var(--s3)}
#content[data-section="finance"] .analyser-stage-item ul{padding-inline-start:var(--s4)}
#content[data-section="finance"] .analyser-stage-table>summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
#content[data-section="finance"] .analyser-stage-table table{font-size:var(--fs-md)}
/* C7/F13 FAN-B: WAAPI controls only geometry; no inherited money/label tween. */
#content[data-section="finance"] .analyser-stage-host *{transition:none;animation:none}
@media (max-width:720px){
  #content[data-section="finance"] .analyser-stage-pie,#content[data-section="finance"] .analyser-stage-donut{grid-template-columns:minmax(0,1fr)}
  #content[data-section="finance"] .analyser-stage-item>summary>.value{white-space:normal}
}

#content[data-section="finance"] .analyser-stage-host{position:relative}
#content[data-section="finance"] .analyser-motion-snapshot{position:absolute;inset:0;overflow:hidden;pointer-events:none;user-select:none}
@media (prefers-reduced-motion:reduce){
  #content[data-section="finance"] .analyser-stage-host *{transition:none!important;animation:none!important}
  #content[data-section="finance"] .analyser-motion-snapshot{display:none!important}
}

/* C7/F13 PA7R: the restored overlap matrix keeps its natural size (labels stay at the 14px token)
   and scrolls inside its card; the page never scrolls sideways. Ranked companies reuse stage bar rows. */
#content[data-section="finance"] .analyser-stage-matrix{grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
#content[data-section="finance"] .analyser-stage .analyser-matrix-wrap{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
#content[data-section="finance"] .analyser-stage .analyser-matrix-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#content[data-section="finance"] .analyser-stage .analyser-matrix{min-width:0;max-width:none;overflow:visible}
#content[data-section="finance"] .analyser-stage .analyser-matrix text{font:var(--fs-sm) var(--f-body);fill:var(--ink)}
#content[data-section="finance"] .analyser-stage .analyser-matrix .analyser-matrix-value{font:var(--fs-sm) var(--f-num);font-variant-numeric:tabular-nums lining-nums;paint-order:stroke;stroke:var(--surface);stroke-width:2px}

/* UI-GUIDE C7/F13: only money going up uses green; health and coverage stay blue. */
#content[data-section="finance"] .delta-up{color:var(--gain-ink)}

/* UXF3 / UXT1 C7/F13: Finance type floor and weight cap (UI-GUIDE 2.2, 2.4, 9 C3). Shared rules above keep
   their 700/800 weights and sub-13px sizes for other sections; inside Finance every listed selector is capped at 600
   and lifted to the 13 px floor. The lists are derived from components.css and pages.css; a frontend test re-derives
   them so a new heavy or small shared rule fails until it is added here. Analyser stage sizes stay with PA7R. */
#content[data-section="finance"] b,
#content[data-section="finance"] strong,
#content[data-section="finance"] th,
#content[data-section="finance"] .skip,
#content[data-section="finance"] .delta-up,
#content[data-section="finance"] .delta-down,
#content[data-section="finance"] .btn,
#content[data-section="finance"] .link-btn,
#content[data-section="finance"] .chip,
#content[data-section="finance"] .count,
#content[data-section="finance"] .seg>a,
#content[data-section="finance"] .seg>button,
#content[data-section="finance"] .seg>label,
#content[data-section="finance"] .label,
#content[data-section="finance"] .donut-wrap .c small,
#content[data-section="finance"] .legend li,
#content[data-section="finance"] .field>span,
#content[data-section="finance"] .field-label,
#content[data-section="finance"] .check,
#content[data-section="finance"] .error-text,
#content[data-section="finance"] thead th,
#content[data-section="finance"] .kv>div>span,
#content[data-section="finance"] .kv>div>b,
#content[data-section="finance"] .empty,
#content[data-section="finance"] .callout b,
#content[data-section="finance"] .callout small,
#content[data-section="finance"] .note-line,
#content[data-section="finance"] .pop .pop-panel p,
#content[data-section="finance"] .steps li,
#content[data-section="finance"] .actionbar b,
#content[data-section="finance"] .actionbar small,
#content[data-section="finance"] .toast,
#content[data-section="finance"] .eyebrow,
#content[data-section="finance"] .login-art small,
#content[data-section="finance"] .pane-label,
#content[data-section="finance"] .disclosure>summary,
#content[data-section="finance"] .records>summary,
#content[data-section="finance"] .disclosure-inline>summary,
#content[data-section="finance"] .who-pick label,
#content[data-section="finance"] .sugg button,
#content[data-section="finance"] .todo .t,
#content[data-section="finance"] .tile .sub,
#content[data-section="finance"] .legend-mini,
#content[data-section="finance"] .bot small,
#content[data-section="finance"] .feed .t,
#content[data-section="finance"] .feed time,
#content[data-section="finance"] .hl-head,
#content[data-section="finance"] .sec .tk,
#content[data-section="finance"] .sec b,
#content[data-section="finance"] .sec small,
#content[data-section="finance"] .w,
#content[data-section="finance"] .fresh b,
#content[data-section="finance"] .fresh small,
#content[data-section="finance"] .mini-stat small,
#content[data-section="finance"] .acct-list b,
#content[data-section="finance"] .legend-inline,
#content[data-section="finance"] .flow-col small,
#content[data-section="finance"] .month-head,
#content[data-section="finance"] .cat-list li,
#content[data-section="finance"] .import-list b,
#content[data-section="finance"] .residual small,
#content[data-section="finance"] .drop-head b,
#content[data-section="finance"] .drop-head small,
#content[data-section="finance"] .drop .field,
#content[data-section="finance"] .qh,
#content[data-section="finance"] .fi,
#content[data-section="finance"] .doc b,
#content[data-section="finance"] .accts-open b,
#content[data-section="finance"] .doc small,
#content[data-section="finance"] .accts-open small,
#content[data-section="finance"] .hist>summary,
#content[data-section="finance"] .f-head small,
#content[data-section="finance"] .sum .s span,
#content[data-section="finance"] .callout form.activate .field,
#content[data-section="finance"] .rsec>summary,
#content[data-section="finance"] .rsec-bar small,
#content[data-section="finance"] .rl .what b,
#content[data-section="finance"] .rl .what small,
#content[data-section="finance"] .rl .u,
#content[data-section="finance"] .row-more>summary,
#content[data-section="finance"] .cf .box span,
#content[data-section="finance"] .impact,
#content[data-section="finance"] .inv-accts .acct-edit .field,
#content[data-section="finance"] .bot-switch a,
#content[data-section="finance"] .tl b,
#content[data-section="finance"] .tl time,
#content[data-section="finance"] .pending-link,
#content[data-section="finance"] .convo-h small,
#content[data-section="finance"] .bubble small,
#content[data-section="finance"] .ctx h3,
#content[data-section="finance"] .ctx-list li,
#content[data-section="finance"] .source b,
#content[data-section="finance"] .memory-item>summary,
#content[data-section="finance"] .meta>summary,
#content[data-section="finance"] .acct-h small,
#content[data-section="finance"] .qr-wrap small,
#content[data-section="finance"] .how,
#content[data-section="finance"] .draft-h small,
#content[data-section="finance"] .preset b,
#content[data-section="finance"] .setting-title,
#content[data-section="finance"] .range-row output,
#content[data-section="finance"] .bbanner,
#content[data-section="finance"] .bsrc,
#content[data-section="finance"] .bstale-label,
#content[data-section="finance"] .bmeta,
#content[data-section="finance"] .bstrip-list small,
#content[data-section="finance"] .bproj-meta,
#content[data-section="finance"] .bwhy-line time,
#content[data-section="finance"] .bchanges time,
#content[data-section="finance"] .bmove,
#content[data-section="finance"] .bhist>summary,
#content[data-section="finance"] .binsights dt,
#content[data-section="finance"] .btimeline small,
#content[data-section="finance"] .bdate,
#content[data-section="finance"] .wa-read,
#content[data-section="finance"] .analyser-view legend,
#content[data-section="finance"] .analyser-paths summary{font-weight:600}
#content[data-section="finance"] input[type="file"]::file-selector-button{font-weight:600}
#content[data-section="finance"] .row-more>summary::before{font-weight:600}
#content[data-section="finance"] .seg .count,
#content[data-section="finance"] [role="tooltip"],
#content[data-section="finance"] .steps .n,
#content[data-section="finance"] .quote.json,
#content[data-section="finance"] .sec .tk,
#content[data-section="finance"] .fi,
#content[data-section="finance"] .meta pre{font-size:var(--fs-xs)}
#content[data-section="finance"] .eyebrow,#content[data-section="finance"] .pane-label,#content[data-section="finance"] .qh{text-transform:none;letter-spacing:0}
/* No decorative blobs or grain in Finance (UI-GUIDE 2.4); grain is zeroed in the Finance token block. */
#content[data-section="finance"] .blob{display:none}

/* UXF3 C7/F13 Imports: the statement residual sits on the Finance KPI scale (re-applies the layout half of draft
   f8e817d without its copy cuts): label above value at 14/500, value at the title step 600 with tabular figures. */
#content[data-section="finance"] .residual{row-gap:var(--s1);align-content:start}
#content[data-section="finance"] .residual .label{display:flex;align-items:center;gap:var(--s1);font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0}
#content[data-section="finance"] .residual b.num{font-family:var(--f-num);font-size:var(--fs-lg);font-weight:600;font-variant-numeric:lining-nums tabular-nums}
#content[data-section="finance"] .residual small{font-size:var(--fs-xs);font-weight:500}

/* UXF3 C7/F13 Subscriptions: recurring totals are label-above-value stats on the KPI scale. */
#content[data-section="finance"] .fin-recurring-stat{display:grid;gap:var(--s1);min-width:0}
#content[data-section="finance"] .fin-recurring-stat .label{font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0}

/* UXF2R (UXF2 residual): Finance exception chips and phone KPI grids, Finance scope only.
   Chips: one look (--fs-label = --fs-sm, never below 13 px at the 14 px base; icon + short text, explanation on tap/hover/focus) and they wrap on phones.
   KPIs: Overview and Portfolio key figures sit in a compact two-column grid at phone widths; no sideways scroll. */
#content[data-section="finance"] .portfolio .chip,#content[data-section="finance"] .status-chips .chip,#content[data-section="finance"] .fin-hero .chip,#content[data-section="finance"] .freshness-bar .chip,#content[data-section="finance"] .data-health>summary{font-size:var(--fs-label)}
#content[data-section="finance"] .kpi-strip .label,#content[data-section="finance"] .v-meta .label{font-size:var(--fs-label)}
#content[data-section="finance"] .portfolio .chip svg.i,#content[data-section="finance"] .status-chips .chip svg.i,#content[data-section="finance"] .fin-hero .chip svg.i{flex:none}
#content[data-section="finance"] .status-chips,#content[data-section="finance"] .income-head{flex-wrap:wrap;min-width:0;max-width:100%}
@media (max-width:719px){
  #content[data-section="finance"] .stat-row.kpi-strip{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;overflow-x:visible;scroll-snap-type:none;gap:var(--s3);padding-bottom:0}
  #content[data-section="finance"] .kpi-strip>.stat{padding:var(--s3);gap:var(--s1)}
  #content[data-section="finance"] .kpi-strip>.stat:last-child:nth-child(odd){grid-column:1/-1}
  #content[data-section="finance"] .kpi-strip>.stat .big{font-size:var(--fs-lg)}
  #content[data-section="finance"] .kpi-strip .label,#content[data-section="finance"] .v-meta .label{flex-wrap:wrap;min-width:0}
  #content[data-section="finance"] .v-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
  #content[data-section="finance"] .v-meta>div{min-width:0}
  #content[data-section="finance"] .v-meta>div:last-child:nth-child(odd){grid-column:1/-1}
  #content[data-section="finance"] .v-meta b{font-size:var(--fs-md);overflow-wrap:anywhere}
  #content[data-section="finance"] .status-chips,#content[data-section="finance"] .portfolio>.status-chips{justify-content:flex-start;margin-left:0}
}

/* FINANCE-CASHFLOW-1105 (UIUX-FINANCE-WALK-1105, job 5): Cash flow's first view, this month beside last. Spacing from the
 * --s tokens only; one rhythm (--s5) between blocks; each group is one tap; part-month and estimated bars are hatched. */
#content[data-section="finance"] .fin-cf{display:flex;flex-direction:column;gap:var(--s5)}
#content[data-section="finance"] .fin-cf p{margin:0}
#content[data-section="finance"] .fin-cf-label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-bottom:var(--s1);font-size:var(--fs-sm);color:var(--ink-2)}
#content[data-section="finance"] .fin-cf-total{font:400 var(--fs-2xl)/1.1 var(--f-head);letter-spacing:-.02em;overflow-wrap:anywhere}
#content[data-section="finance"] .fin-cf-total>.value,#content[data-section="finance"] .fin-cf-total>span:not(.fin-cf-also)>.value{font-family:var(--f-head)}
#content[data-section="finance"] .fin-cf-also,#content[data-section="finance"] .fin-cf-also .value{font:600 var(--fs-md)/1.3 var(--f-num);letter-spacing:0;white-space:nowrap}
#content[data-section="finance"] .fin-cf-line{margin-top:var(--s2);font-size:var(--fs-sm);color:var(--ink-2)}
#content[data-section="finance"] .fin-cf-line b{font-weight:600;color:var(--ink)}
#content[data-section="finance"] .fin-cf-group{position:relative;padding:var(--s2) var(--s4) var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
#content[data-section="finance"] .fin-cf-group:hover{background:var(--surface-hover)}
#content[data-section="finance"] .fin-cf-group h2{margin:0;font:500 var(--fs-lg)/1.3 var(--f-head)}
#content[data-section="finance"] .fin-cf-open{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:max(44px,var(--control-h));padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
#content[data-section="finance"] .fin-cf-open::after{content:"";position:absolute;inset:0;border-radius:inherit}
#content[data-section="finance"] .fin-cf-open:focus-visible{outline:none}
#content[data-section="finance"] .fin-cf-open:focus-visible::after{outline:2px solid var(--focus);outline-offset:2px}
#content[data-section="finance"] .fin-cf-go{flex:none;width:.5em;height:.5em;margin-right:var(--s2);border:solid var(--ink-2);border-width:2px 2px 0 0;transform:rotate(45deg)}
#content[data-section="finance"] .fin-cf-row{display:grid;grid-template-columns:minmax(0,1fr) 6em 6em;column-gap:var(--s2);row-gap:var(--s1);align-items:baseline;padding:var(--s1) 0;font-size:var(--fs-sm)}
#content[data-section="finance"] .fin-cf-row+.fin-cf-row{border-top:1px solid var(--line)}
#content[data-section="finance"] .fin-cf-row>span{min-width:0;overflow-wrap:anywhere}
#content[data-section="finance"] .fin-cf-amt{text-align:right;font-weight:600}
#content[data-section="finance"] .fin-cf-cols{min-height:0;padding:0 0 var(--s1);font-size:var(--fs-label);color:var(--ink-2)}
#content[data-section="finance"] .fin-cf-cols>span{text-align:right}
#content[data-section="finance"] .fin-cf-key{display:inline-block;width:.75em;height:.75em;margin-right:var(--s1);border-radius:var(--r-xs);background:var(--line-strong);vertical-align:-.05em}
#content[data-section="finance"] .fin-cf-key.is-now,#content[data-section="finance"] .fin-cf-bar.is-now>i{background:var(--accent)}
#content[data-section="finance"] .fin-cf-bars{grid-column:1 / -1;display:grid;gap:calc(var(--s1) / 2)}
#content[data-section="finance"] .fin-cf-bar{display:block;min-width:0;height:calc(var(--s1) * 1.5);border-radius:var(--r-xs);background:none}
#content[data-section="finance"] .fin-cf-bar>i{border-radius:var(--r-xs);background:var(--line-strong)}
#content[data-section="finance"] .fin-cf-key.is-partial,#content[data-section="finance"] .fin-cf-bar.is-now.is-partial>i{background:repeating-linear-gradient(45deg,var(--accent) 0 calc(var(--s1) / 2),var(--surface) 0 var(--s1));box-shadow:inset 0 0 0 1px var(--accent)}
#content[data-section="finance"] .fin-cf-bar.is-before.is-partial>i{background:repeating-linear-gradient(45deg,var(--line-strong) 0 calc(var(--s1) / 2),var(--surface) 0 var(--s1));box-shadow:inset 0 0 0 1px var(--line-strong)}
#content[data-section="finance"] .fin-cf-rest{padding-top:var(--s2);font-size:var(--fs-sm);color:var(--ink-2)}
#content[data-section="finance"] .fin-cf-more{margin-top:var(--s5)}
#content[data-section="finance"] .fin-cf-more>summary{display:flex;align-items:center;min-height:max(44px,var(--control-h));font-weight:600;cursor:pointer}
#content[data-section="finance"] .fin-cf-more>.card{margin-top:var(--s3)}
/* FINCASHFLOW1106 R1: the bottom-bar Finance item opens the menu on phone. */
@media(max-width:720px){
 #content[data-section="finance"]:has(.fin-cf)>.finance-header,
 #content[data-section="finance"]:has(.fin-cf)>.data-health{display:none}
}
/* /FINANCE-CASHFLOW-1105 */

/* ---------- UX-ROLLOUT (s) Finance Subscriptions (UIUX-FINANCE-WALK-1105): three groups, one main item, spacing from --s* only; taps keep a 44 px floor ---------- */
#content[data-section="finance"] .fin-subs{display:flex;flex-direction:column;gap:var(--s5)}
/* With no card title the shared Finance card top line and padding read as an empty band; the doubled id outranks looka.css. */
#content[data-section="finance"]#content .card.fin-subs{padding-top:0;border-top-color:transparent}
#content[data-section="finance"] .fin-subs-hero{display:flex;flex-direction:column;gap:var(--s3)}
#content[data-section="finance"] .fin-subs .fin-recurring-totals{flex-direction:column;align-items:flex-start;gap:var(--s3);margin:0}
#content[data-section="finance"] .fin-subs .fin-subs-main{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--s2)}
#content[data-section="finance"] .fin-subs .fin-subs-main>.label{flex-basis:100%}
#content[data-section="finance"] .fin-subs-main .value-hero{color:var(--ink)}
#content[data-section="finance"] .fin-subs-also{font-family:var(--f-num);font-size:var(--fs-md);font-weight:600;font-variant-numeric:lining-nums tabular-nums;color:var(--ink)}
#content[data-section="finance"] .fin-subs-missing{color:var(--ink-2)}
#content[data-section="finance"] .fin-subs-stale{display:inline-flex;margin-inline-start:var(--s1);vertical-align:middle;color:var(--warn-ink)}
#content[data-section="finance"] .fin-subs-main>.fin-subscription-key{display:inline-block;margin-inline-start:var(--s2)}
#content[data-section="finance"] .fin-subs .fin-subscriptions{margin:0}
#content[data-section="finance"] .fin-subs .fin-subscription{display:block;padding:0}
#content[data-section="finance"] .fin-subs .fin-subscription:first-child{border-top:0}
#content[data-section="finance"] .fin-subs details>summary{list-style:none;min-height:max(44px,var(--control-h))}
#content[data-section="finance"] .fin-subs details>summary::-webkit-details-marker{display:none}
#content[data-section="finance"] .fin-subscription-head{display:grid;grid-template-columns:var(--s3) minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s2) 0}
#content[data-section="finance"] .fin-subscription-key{display:grid;place-items:center;width:var(--s3);height:var(--s3);border-radius:calc(var(--s1) / 2);font-size:var(--fs-xs);line-height:1;color:var(--ink-2)}
#content[data-section="finance"] .fin-subscription-key.is-bill{background:var(--accent)}
#content[data-section="finance"] .fin-subscription-key.is-estimate{border:1px solid var(--accent);background:repeating-linear-gradient(45deg,var(--accent) 0 calc(var(--s1) / 2),var(--surface) calc(var(--s1) / 2) var(--s1))}
#content[data-section="finance"] .fin-subscription-name{display:flex;flex-direction:column;min-width:0}
#content[data-section="finance"] .fin-subscription-name b{font-size:var(--fs-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#content[data-section="finance"] .fin-subs .fin-subscription-name small.fin-subscription-when{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1);font-size:var(--fs-label);color:var(--ink-2)}
#content[data-section="finance"] .fin-subs .fin-subscription-amount{font-weight:600;font-size:var(--fs-md);white-space:nowrap;text-align:right}
#content[data-section="finance"] .fin-subscription-more{display:flex;flex-direction:column;gap:var(--s1);padding:0 0 var(--s3) calc(var(--s3) * 2);font-size:var(--fs-sm)}
#content[data-section="finance"] .fin-subscription-more p{margin:0}
#content[data-section="finance"] .fin-subscription-more small{display:inline;font-size:inherit}
#content[data-section="finance"] .fin-subs .fin-subscription-next{text-align:left;font-size:inherit}
#content[data-section="finance"] .fin-subs-details>summary{display:flex;align-items:center;font-weight:500;color:var(--ink-2)}
#content[data-section="finance"] .fin-subs-details>p{margin:var(--s2) 0 0;font-size:var(--fs-sm);color:var(--ink-2)}
/* ---------- /UX-ROLLOUT (s) ---------- */

/* ---------- UX-ROLLOUT (c) Approvals: short safety words, one heading scale, one card-head baseline ----------
   Approvals scope only, tokens only. Each full safety sentence stays in a tooltip and describes its Approve button
   (aria-describedby). Text stays at or above 13 px (the UXR1 floor); nothing clips, so tooltip bubbles can escape. */
#content[data-section="approvals"] .section-h h2{font:600 var(--fs-lg)/1.2 var(--f-head)}
#content[data-section="approvals"] .draft-h{align-items:baseline;flex-wrap:wrap}
#content[data-section="approvals"] .draft-h>.grow{flex:1 1 12rem}
#content[data-section="approvals"] .draft-h>.ic,#content[data-section="approvals"] .draft-h>.chip{align-self:center}
#content[data-section="approvals"] .kpi-label{font:600 var(--fs-sm)/1.43 var(--f-body);color:var(--ink-2);text-transform:none;letter-spacing:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1);min-height:24px;margin:0;overflow-wrap:anywhere;font-size:max(13px,var(--fs-sm))}
#content[data-section="approvals"] .approval-safety,#content[data-section="approvals"] .approval-flags,#content[data-section="approvals"] .approvals-ops-note{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1)}
#content[data-section="approvals"] .approval-flags{margin:0}
#content[data-section="approvals"] .approval-hint{text-decoration:underline dotted;text-underline-offset:3px;cursor:help}
#content[data-section="approvals"] .chip,#content[data-section="approvals"] [role="tooltip"]{font-size:max(13px,var(--fs-sm))}
/* ---------- /UX-ROLLOUT (c) ---------- */

/* DASHSMALL1021 B2: High contrast Home headings use the preset weight. */
:root[data-preset="contrast"] #content[data-section="home"] h2{font-weight:var(--head-weight)}
/* /DASHSMALL1021 B2 */

/* FINUI1022: chart colours by series (UI-GUIDE 2.4/3.3) and Finance readability fixes. */
#content[data-section="finance"] .fin-flow-income,#content[data-section="finance"] .fin-flow-key-in{fill:var(--cat-1);background:var(--cat-1)}
#content[data-section="finance"] .fin-flow-spending{fill:var(--surface);stroke:var(--cat-2);stroke-width:2}
#content[data-section="finance"] .fin-flow-key-out{background:var(--surface);box-shadow:inset 0 0 0 2px var(--cat-2)}
#content[data-section="finance"] .fin-flow-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin:var(--s2) 0;font-weight:500;color:var(--ink-2)}
#content[data-section="finance"] .fin-flow-legend li{display:flex;align-items:center;gap:var(--s2);font-size:var(--fs-sm);font-weight:500}
#content[data-section="finance"] .fin-flow-key{display:inline-block;width:.75rem;height:.75rem;border-radius:2px;flex:none}
/* Insights month bars: money in solid slot 1, a negative month slot 2 (same pair as the cash-flow key), not preset colours. */
#content[data-section="finance"] .l5-positive{background:var(--cat-1)}#content[data-section="finance"] .l5-negative{background:var(--cat-2)}
/* Inherited overflow-wrap:anywhere (section rule) let tables shrink money to one digit per line; numbers now break
   only when they would overflow, and short labels stay on one line. */
#content[data-section="finance"] :is(.num,.value,.pl,.pct,td.num){overflow-wrap:break-word}
#content[data-section="finance"] .hl>summary .pl,#content[data-section="finance"] .hl>summary .w>em{white-space:nowrap}
#content[data-section="finance"] .l5-period label>span,#content[data-section="finance"] .analyser-stage-controls label.field>span:first-child{white-space:nowrap}
#content[data-section="finance"] .hl>summary .stc small{white-space:nowrap;overflow-wrap:normal;color:var(--ink-2)}
/* Segmented controls that wrap (Allocation at 1280 under presets, Analyser groups on phones) use a card radius,
   not a pill, so two rows read as one control instead of an oval. */
#content[data-section="finance"] .alloc .card-h .seg{flex-wrap:wrap;max-width:100%;border-radius:var(--r-sm)}
#content[data-section="finance"] fieldset.analyser-view.seg{border-radius:var(--r-sm)}
@media (min-width:861px){
  #content[data-section="finance"] .hl>summary .stc{flex-direction:column;align-items:flex-end;gap:4px}
}
@media (min-width:720px) and (max-width:1023px){
  #content[data-section="finance"] .fo-ledger{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--s4)}
  #content[data-section="finance"] .fo-cell:nth-child(3){border-left:0;padding-left:0}
}
/* /FINUI1022 */

/* UIUX-FINANCE-WALK-1105 Breakdown (C7/F13): one rhythm, --s5 between blocks; the total is the one place for the eye.
   Old data: clock mark plus warn colour. Converted or partial: hatched bars beside the ≈/≥ sign. Missing: a dashed empty bar. */
#content[data-section="finance"] .breakdown{display:flex;flex-direction:column;gap:var(--s5)}
#content[data-section="finance"] .breakdown h2,#content[data-section="finance"] .breakdown h3,#content[data-section="finance"] .breakdown p{margin:0}
#content[data-section="finance"] .bd-head{display:flex;align-items:center;gap:var(--s1);min-height:44px}
#content[data-section="finance"] .bd-head h2{font:500 var(--fs-md)/1.3 var(--f-body);color:var(--ink-2)}
#content[data-section="finance"] .bd-back{display:grid;place-items:center;aspect-ratio:1;min-height:44px;margin-inline-start:calc(-1 * var(--s3));border-radius:var(--r-pill);color:var(--ink)}
#content[data-section="finance"] .bd-total{min-height:1.05em;font:400 var(--fs-2xl)/1.05 var(--f-head);letter-spacing:-.02em;color:var(--ink)}
#content[data-section="finance"] .bd-total .value{font-family:var(--f-head);font-size:var(--fs-2xl)}
#content[data-section="finance"] .bd-total .cents{font-size:var(--fs-md);letter-spacing:0;color:var(--ink-2)}
#content[data-section="finance"] .bd-line{display:flex;flex-wrap:wrap;column-gap:var(--s5);margin-top:var(--s2);font-size:var(--fs-sm);color:var(--ink-2)}
#content[data-section="finance"] .bd-line b{font-weight:600;color:var(--ink)}
#content[data-section="finance"] .bd-line .is-stale,#content[data-section="finance"] .bd-row.is-stale .bd-amt{color:var(--warn-ink)}
#content[data-section="finance"] .bd-old,#content[data-section="finance"] .bd-warn{display:inline-flex;vertical-align:-.15em;margin-inline-end:var(--s1);color:var(--warn-ink)}
#content[data-section="finance"] .bd-warn{margin-inline:var(--s2) 0}
#content[data-section="finance"] .bd-group{display:flex;flex-direction:column;padding:var(--s2) var(--s4) var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer}
#content[data-section="finance"] .bd-group:hover{background:var(--surface-hover)}
#content[data-section="finance"] .bd-choose{display:flex;align-items:center;gap:var(--s2);width:100%;min-height:44px;padding:0;border:0;background:none;color:var(--ink);font:500 var(--fs-lg)/1.3 var(--f-head);text-align:start;cursor:pointer}
#content[data-section="finance"] .bd-choose .i{margin-inline-start:auto;color:var(--ink-2)}
#content[data-section="finance"] .bd-rows{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
#content[data-section="finance"] .bd-row{display:flex;flex-direction:column;justify-content:center;gap:var(--s1);min-height:calc(var(--s7) + var(--s1));padding-block:var(--s2)}
#content[data-section="finance"] .bd-row+.bd-row{border-top:1px solid var(--line)}
#content[data-section="finance"] .bd-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);font-size:var(--fs-sm)}
#content[data-section="finance"] .bd-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#content[data-section="finance"] .bd-amt{flex:none;font-weight:600;white-space:nowrap}
#content[data-section="finance"] .bd-bar{position:relative;display:block;width:100%;height:var(--s2);border-radius:var(--r-xs);background:var(--surface-2);overflow:hidden}
#content[data-section="finance"] .bd-bar>i{background:var(--line-strong)}
#content[data-section="finance"] .bd-row:nth-child(1) .bd-bar>i{background:var(--ink)}
#content[data-section="finance"] .bd-row:nth-child(2) .bd-bar>i{background:var(--accent)}
#content[data-section="finance"] .bd-row:nth-child(3) .bd-bar>i{background:var(--cat-4)}
#content[data-section="finance"] .bd-bar.is-approx>i{background-image:repeating-linear-gradient(45deg,transparent 0 var(--s1),var(--surface) var(--s1) var(--s2))}
#content[data-section="finance"] .bd-bar.is-missing{background:none;border:1px dashed var(--line-strong)}
#content[data-section="finance"] .bd-bar.is-hidden{background:var(--surface-2)}
#content[data-section="finance"] .bd-row.is-wait .bd-bar{background:var(--surface-2)}
#content[data-section="finance"] .bd-more{padding-block:var(--s2);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-2)}
#content[data-section="finance"] .bd-none{display:flex;gap:var(--s2);min-height:calc(var(--s7) + var(--s1));align-items:center;color:var(--ink-2)}
#content[data-section="finance"] .bd-details>summary{display:flex;align-items:center;min-height:44px;font-weight:600;cursor:pointer}
#content[data-section="finance"] .bd-details[open]>:not(summary){margin-top:var(--s3)}
#content[data-section="finance"] .bd-details>summary{list-style:none}
#content[data-section="finance"] .bd-details>summary::-webkit-details-marker{display:none}
#content[data-section="finance"] .bd-open{margin-inline-start:auto;color:var(--ink-2)}
#content[data-section="finance"] .bd-details[open] .bd-open{transform:rotate(180deg)}
#content[data-section="finance"] .breakdown :is(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:var(--s1)}
@media (prefers-reduced-motion:reduce){#content[data-section="finance"] .breakdown *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* /UIUX-FINANCE-WALK-1105 */

/* D26 APP-UX-ANALYSER-1101: one compact analyser toolbar (segmented radios, icon chart types, secondary views under
   "More views"), actions as buttons in the card head or the call-to-action, a plain heading and a normal-size total. */
#content[data-section="finance"] .analyser-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s3)}
#content[data-section="finance"] .analyser-head h2{margin:0}
#content[data-section="finance"] .analyser-title{flex:1 1 18rem;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);min-width:0}
#content[data-section="finance"] .analyser-native{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s3);min-width:0}
#content[data-section="finance"] .analyser-native .field{display:flex;align-items:center;gap:var(--s2);margin:0;font-size:var(--fs-sm);font-weight:600}
#content[data-section="finance"] .analyser-native select{width:auto;min-height:var(--control-h-sm)}
#content[data-section="finance"] .analyser-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);margin-block:var(--s4) var(--s1)}
#content[data-section="finance"] .analyser-toolbar .analyser-display-view,#content[data-section="finance"] .analyser-toolbar .analyser-group-controls,#content[data-section="finance"] .analyser-toolbar .analyser-stage-controls{display:contents}
#content[data-section="finance"] .analyser-toolbar [data-seg=display]{order:1}
#content[data-section="finance"] .analyser-toolbar [data-seg=view]{order:2}
#content[data-section="finance"] .analyser-toolbar [data-seg=type]{order:3}
#content[data-section="finance"] .analyser-toolbar [data-seg=group],#content[data-section="finance"] .analyser-group-controls>.field{order:4}
#content[data-section="finance"] .analyser-toolbar .analyser-stage-controls>.field{order:5}
#content[data-section="finance"] .analyser-toolbar .analyser-more-filters{order:6;padding:0;align-self:center}
#content[data-section="finance"] .analyser-toolbar .analyser-stage-controls>p{order:7;flex-basis:100%;margin:0;color:var(--ink-2);font-size:var(--fs-xs)}
#content[data-section="finance"] .analyser-toolbar p:empty{display:none}
#content[data-section="finance"] .analyser-group-controls>.field{display:flex;align-items:center;gap:var(--s2);margin:0;font-size:var(--fs-sm);font-weight:600}
#content[data-section="finance"] .analyser-group-controls>.field select{width:auto;min-height:var(--control-h-sm)}
#content[data-section="finance"] .analyser-toolbar .analyser-seg{display:inline-flex;flex-wrap:wrap;gap:2px;margin:0;padding:3px;min-width:0;max-width:100%;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2)}
#content[data-section="finance"] .analyser-toolbar .analyser-seg>.field{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0;min-height:var(--control-h-sm);margin:0;padding:0 var(--s3);border-radius:var(--r-pill);color:var(--ink-2);font-size:var(--fs-sm);font-weight:600;white-space:nowrap;cursor:pointer;flex:none}
#content[data-section="finance"] .analyser-toolbar .analyser-seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
#content[data-section="finance"] .analyser-toolbar .analyser-seg>.field:hover{color:var(--ink)}
#content[data-section="finance"] .analyser-toolbar .analyser-seg>.field:has(input:checked){background:var(--surface);color:var(--ink);box-shadow:var(--sh-1)}
#content[data-section="finance"] .analyser-toolbar .analyser-seg>.field:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}
#content[data-section="finance"] .analyser-toolbar .analyser-seg>.field:has(input:disabled){opacity:.45;cursor:not-allowed}
#content[data-section="finance"] .analyser-toolbar .analyser-seg>.analyser-icon{width:var(--control-h-sm);padding:0}
#content[data-section="finance"] .analyser-icon::before{content:'';width:1.125rem;height:1.125rem;background:currentColor;mask-position:center;mask-size:contain;mask-repeat:no-repeat}
#content[data-section="finance"] .analyser-icon[data-icon=bars]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 2h14v3H1zM1 6.5h9v3H1zM1 11h5v3H1z'/%3E%3C/svg%3E")}
#content[data-section="finance"] .analyser-icon[data-icon=pie]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M7 2a7 7 0 1 0 7 7H7z'/%3E%3Cpath d='M8.5 0.5V7.5H15.5A7 7 0 0 0 8.5 0.5z'/%3E%3C/svg%3E")}
#content[data-section="finance"] .analyser-icon[data-icon=donut]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8 1a7 7 0 1 1 0 14A7 7 0 0 1 8 1zm0 4a3 3 0 1 0 0 6a3 3 0 0 0 0-6z'/%3E%3C/svg%3E")}
#content[data-section="finance"] .analyser-icon[data-icon=stacked]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 4h6v8H1zM8 4h4v8H8zM13 4h2v8h-2z'/%3E%3C/svg%3E")}
#content[data-section="finance"] .analyser-toolbar .analyser-seg[data-more=false]>.analyser-more-option{display:none}
#content[data-section="finance"] .analyser-toolbar .analyser-more-toggle{min-height:var(--control-h-sm);padding:0 var(--s3);border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-2);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer}
#content[data-section="finance"] .analyser-toolbar .analyser-more-toggle::after{content:' +'}
#content[data-section="finance"] .analyser-toolbar .analyser-more-toggle[aria-expanded=true]::after{content:' −'}
#content[data-section="finance"] .analyser-toolbar .analyser-more-toggle:hover{color:var(--ink)}
#content[data-section="finance"] .analyser-toolbar details>summary{display:inline-flex;align-items:center;min-height:var(--control-h-sm);padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:600;cursor:pointer}
#content[data-section="finance"] .analyser-toolbar details[open]{flex-basis:100%}
#content[data-section="finance"] .analyser-toolbar details[open]>:not(summary){margin-top:var(--s2)}
#content[data-section="finance"] .analyser-toolbar [data-seg=view][data-moot=true]>.field{opacity:.55}
#content[data-section="finance"] .analyser-total{align-items:baseline;font-size:var(--fs-sm);color:var(--ink-2);margin:0 0 var(--s2)}
/* Beats the Finance look-A hero size (looka.css); the analyser total is context, not the page's headline figure. */
#content[data-section="finance"] .card.analyser.analyser-aligned .analyser-total .value-hero{font-size:var(--fs-xl);color:var(--ink)}
#content[data-section="finance"] .analyser-lead{align-items:center;justify-content:space-between;margin-block:var(--s2)}
#content[data-section="finance"] .analyser-lead p{margin:0}
#content[data-section="finance"] .analyser-key{margin-inline-start:var(--s1);color:var(--ink-2);font-size:var(--fs-xs);font-weight:500}
@media (max-width:720px){
  #content[data-section="finance"] .analyser-toolbar .analyser-seg{border-radius:var(--r-md)}
  #content[data-section="finance"] .analyser-toolbar .analyser-seg>.field,#content[data-section="finance"] .analyser-toolbar details>summary,#content[data-section="finance"] .analyser-toolbar .analyser-more-toggle,
  #content[data-section="finance"] .analyser-owner-actions .btn,#content[data-section="finance"] .analyser-native select,
  #content[data-section="finance"] .analyser-group-controls>.field select{min-height:var(--control-h)}
  #content[data-section="finance"] .analyser-toolbar .analyser-seg>.analyser-icon{width:var(--control-h)}
}
/* /D26 APP-UX-ANALYSER-1101 */
