:root{
  --teal:#3db98a;--teal-dark:#2a9270;--teal-pale:#d4f2e7;--teal-dim:#1a6b4e;
  --navy:#1e3a7a;--navy-mid:#162e61;--navy-dark:#0e1f47;
  --cream:#f5f3ee;--cream-mid:#eceae3;--cream-dark:#d8d4c6;
  --white:#fff;--ink:#181614;--ink2:#2e2b27;--muted:#72706a;
  --line:#dbd8d0;--line-soft:#eceae4;
  --ok:#1e6b3a;--warn:#8a5a10;--danger:#8a1e1e;--info:#1e3a7a;
  --gold:#e8c96a;--gold-deep:#b8954a;--rust:#c0563c;--sky:#5aa0d0;--plum:#b478c8;
  --fs:'Instrument Serif',Georgia,serif;
  --fd:'DM Sans',system-ui,sans-serif;
  --fm:'DM Mono','Courier New',monospace;
}
/* ---- Modern appearance (Account → Appearance): Inter for UI, Space
   Grotesk for display, professional green palette. Layout untouched —
   this block only re-points the variables and the few hardcoded navy
   gradient surfaces. Toggled by html.theme-modern (localStorage). ---- */
html.theme-modern{
  /* Ink & Emerald: surfaces are near-black ink and warm neutral paper; green
     appears ONLY as meaning — the score, positive numbers, active states —
     so it reads as signal instead of wallpaper. */
  --teal:#43b581;--teal-dark:#186f4a;--teal-pale:#e6f2ec;--teal-dim:#0f3d2e;
  --navy:#181d1b;--navy-mid:#121715;--navy-dark:#0c100e;
  --cream:#f7f7f4;--cream-mid:#eeeee9;--cream-dark:#dbdbd2;
  --ink:#1f2937;--ink2:#374151;--muted:#6b7280;
  --line:#e2e2da;--line-soft:#efefe9;
  --info:#186f4a;
  /* one superfamily: Inter Tight for display, Inter for text — and Inter
     replaces the mono for labels/data too. Digit alignment (the mono's only
     functional job) comes from Inter's tabular figures, enabled theme-wide
     below. */
  --fs:'Inter Tight','Inter',system-ui,sans-serif;
  --fd:'Inter','DM Sans',system-ui,sans-serif;
  --fm:'Inter','DM Sans',system-ui,sans-serif;
}
/* every digit one width, so KPI stacks and table columns align without a
   monospace face (font-variant-numeric inherits everywhere from body) */
html.theme-modern body{font-variant-numeric:tabular-nums}
/* the hardcoded gradient surfaces follow the sidebar into dark ink — the
   score ring's greens then carry the color against a neutral ground */
html.theme-modern .rf-rail{background:linear-gradient(165deg,#202723,#0c100e);border-color:#202723;box-shadow:0 10px 30px rgba(10,14,12,.28)}
html.theme-modern .rf-roe.after{background:linear-gradient(155deg,#202723,#0c100e);border-color:#202723}
html.theme-modern .gated-bar{background:linear-gradient(155deg,#0c100e,#232b26);box-shadow:0 12px 34px rgba(10,14,12,.35)}
html.theme-modern .sm-score-card{background:linear-gradient(155deg,#111514,#222a25)}
/* Inter Tight carries more visual weight than the serif it replaces —
   pull display type in slightly so titles keep their measure, and give
   display figures a touch of weight so they read as headlines */
html.theme-modern .ptit,html.theme-modern h1,html.theme-modern .sm-score-big{letter-spacing:-.015em}
html.theme-modern .db-pcard .v,html.theme-modern .owner-tile .v,html.theme-modern .sm-score-big{font-weight:600}
html.theme-modern .db-title h1,html.theme-modern .ptit{font-weight:600}
html.theme-modern .panel-head h2{font-weight:500}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%;font-family:var(--fd);font-size:14px;line-height:1.5;background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased}
body{overflow-x:hidden}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--cream-dark);border-radius:3px}

/* ---- shell + dashboard top bar ---- */
.shell{min-height:100vh;display:flex;flex-direction:row}
/* ---- collapsed icon rail (expands on hover / while a flyout is open) ---- */
.sidebar{flex:0 0 60px}
.sb{position:fixed;left:0;top:0;bottom:0;width:60px;z-index:900;background:var(--navy-dark);border-right:1px solid rgba(61,185,138,.16);display:flex;flex-direction:column;gap:3px;padding:14px 10px;transition:width .18s ease}
.sb:hover{width:212px;box-shadow:10px 0 34px rgba(10,23,51,.28)}
.sb-brand{display:flex;align-items:baseline;padding:0 11px;margin:10px 0 6px;white-space:nowrap}
.sb-brand .m{font-size:26px;font-weight:500;color:var(--teal);letter-spacing:-.01em;line-height:1.15}
/* the Mentes mark (five bars forming an M) + lowercase wordmark */
.sb-brand{align-items:center}
.sb-logo{display:block;flex:0 0 auto}
.sb-wordmark{font-family:var(--fd);font-size:20px;font-weight:700;letter-spacing:-.6px;color:#fff;line-height:1;padding-left:9px;text-transform:lowercase}
/* the M sits in a box the width of the nav icons (17px + 1px border inset),
   so its center lines up with the icon centers directly below */
.sb-brand-m{display:inline-flex;justify-content:center;min-width:19px}
.sb-brand-full{display:inline-block;max-width:0;overflow:hidden;transition:max-width .18s ease;vertical-align:baseline}
.sb:hover .sb-brand-full{max-width:110px}
/* Planning sub-menus in the main toolbar: 360 Compare / Refinance / Decision
   Guide slide out only while hovering the Planning item (or the sub-menu) */
.sb-plan{display:flex;flex-direction:column}
.sb-sub{display:flex;flex-direction:column;gap:2px;margin:0 0 0 7px;padding-left:4px;border-left:2px solid rgba(61,185,138,.28);max-height:0;opacity:0;overflow:hidden;transition:max-height .2s ease,opacity .15s ease,margin .2s ease}
.sb-plan:hover .sb-sub{max-height:150px;opacity:1;margin:2px 0 3px 7px}
.sb-sub .sb-subtab{padding:8px 9px;font-size:12px;gap:11px;color:rgba(255,255,255,.5)}
.sb-sub .sb-subtab.on{background:rgba(61,185,138,.10);border-color:rgba(61,185,138,.25)}
/* refinance tool & decision-guide subviews */
.smr-note{font-size:11px;color:var(--muted);margin-top:10px;line-height:1.45}
.smr-note b{color:var(--navy)}
.rf-layout{display:grid;grid-template-columns:310px 1fr;gap:20px;align-items:start}
@media(max-width:1000px){.rf-layout{grid-template-columns:1fr}}
/* let the 1fr column shrink below the table's intrinsic width so the wide
   partner table scrolls inside its panel instead of pushing off-screen */
.rf-main{min-width:0}
.rf-main .panel{min-width:0}
.rf-client{font-size:13px;color:var(--muted);margin-top:2px}
/* navy control rail, echoing the standalone CMAC widget */
.rf-rail{position:sticky;top:16px;background:linear-gradient(165deg,#14335a,#0e1f47);border:1px solid #14335a;border-radius:14px;padding:18px 18px 22px;color:#fff;box-shadow:0 10px 30px rgba(10,23,51,.22)}
/* collapse the rail to a slim strip so more of the three pages shows */
.rf-rail-head{display:flex;justify-content:space-between;align-items:center;margin:-8px -8px 10px 0;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12)}
.rf-rail-title{font-family:var(--fs);font-size:17px;color:#fff;letter-spacing:.01em}
.rf-layout.rail-min .rf-rail-title{display:none}
.rf-rail-toggle{width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#e9d9b4;cursor:pointer;font-size:15px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.rf-rail-toggle:hover{border-color:#c6a15b;color:#fff}
.rf-rail-min-lbl{display:none}
.rf-layout.rail-min{grid-template-columns:46px 1fr}
.rf-layout.rail-min .rf-rail{padding:12px 6px 16px;cursor:pointer}
.rf-layout.rail-min .rf-rail>*:not(.rf-rail-head):not(.rf-rail-min-lbl){display:none}
.rf-layout.rail-min .rf-rail-head{justify-content:center;margin:0}
.rf-layout.rail-min .rf-rail-toggle{transform:rotate(180deg)}
.rf-layout.rail-min .rf-rail-min-lbl{display:block;writing-mode:vertical-rl;font-family:var(--fm);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#e9d9b4;margin:14px auto 0}
.rf-lever{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px 15px;margin-bottom:16px}
.rf-lever-lab{font-family:var(--fm);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:#e9d9b4;font-weight:500}
.rf-ltv-big{font-family:var(--fs);font-size:44px;line-height:1;margin:3px 0 6px;color:#fff}
.rf-ltv-big small{font-size:19px;color:#c6a15b;font-family:var(--fm);vertical-align:super}
.rf-rail input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:linear-gradient(90deg,#c6a15b var(--fill,80%),rgba(255,255,255,.18) var(--fill,80%));outline:none;margin:4px 0 6px}
.rf-rail input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:21px;height:21px;border-radius:50%;background:#fff;border:3px solid #c6a15b;box-shadow:0 2px 8px rgba(0,0,0,.35);cursor:pointer}
.rf-rail input[type=range]::-moz-range-thumb{width:17px;height:17px;border-radius:50%;background:#fff;border:3px solid #c6a15b;cursor:pointer}
.rf-ticks{display:flex;justify-content:space-between;font-family:var(--fm);font-size:9.5px;color:rgba(255,255,255,.5)}
/* sizing basis (LTV vs DSCR) sits above the lever it drives; the derived
   line beneath reports what that lever implies for the other test */
.rf-size-seg{margin:-3px 0 11px}
.rf-lever-drv{font-family:var(--fm);font-size:10.5px;line-height:1.5;color:rgba(255,255,255,.6);margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.12)}
.rf-lever-drv b{color:#e9d9b4;font-weight:600}
.rf-grp{margin-top:15px}
.rf-grp-h{font-family:var(--fm);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:#c6a15b;font-weight:600;margin:0 0 9px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.12)}
.rf-date{display:flex;gap:8px;min-width:0}
.rf-date select{flex:1;min-width:0;max-width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:7px;color:#fff;font-family:var(--fd);font-size:12.5px;padding:8px 8px;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rf-date select:focus{border-color:#c6a15b}
.rf-date select option{color:var(--ink);background:#fff}
.rf-fld{margin-bottom:10px}
.rf-fld label{display:block;font-size:11px;color:#b9c6d8;margin-bottom:4px}
.rf-lock{font-family:var(--fm);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:1px 6px;margin-left:5px;vertical-align:middle}
.rf-ibx{display:flex;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:7px;transition:border-color .12s,box-shadow .12s}
.rf-ibx:focus-within{border-color:#c6a15b;box-shadow:0 0 0 3px rgba(198,161,91,.22)}
.rf-ibx.locked{background:rgba(255,255,255,.03);border-style:dashed}
.rf-ibx .pre{padding-left:9px;color:rgba(255,255,255,.55);font-family:var(--fm);font-size:12.5px}
.rf-ibx .post{padding-right:9px;color:rgba(255,255,255,.55);font-family:var(--fm);font-size:12.5px}
.rf-ibx input{border:0;background:transparent;width:100%;min-width:0;padding:8px 8px;font-family:var(--fm);font-size:13px;color:#fff;outline:none}
.rf-ibx.locked input{color:rgba(255,255,255,.75)}
.rf-fld2{display:flex;gap:9px}
.rf-fld2 .rf-fld{flex:1}
/* saved-project chips across the top of New Project */
.pj-chips{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px}
.pj-chip{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:var(--white);border:1px solid var(--line);border-radius:9px;padding:8px 26px 8px 13px;font-family:var(--fd);font-size:12.5px;font-weight:500;color:var(--navy);cursor:pointer;text-align:left}
.pj-chip:hover{border-color:#c6a15b}
.pj-chip.on{border-color:#c6a15b;background:rgba(198,161,91,.10);box-shadow:0 2px 8px rgba(10,23,51,.06)}
.pj-chip-sub{font-family:var(--fm);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:400}
.pj-chip-x{position:absolute;top:4px;right:7px;font-size:13px;color:var(--muted);line-height:1}
.pj-chip-x:hover{color:#c0563c}
.pj-chip-add{justify-content:center;color:var(--teal-dark);border-style:dashed;padding:8px 13px}
.pj-owned-cb{display:flex;align-items:center;gap:7px;font-size:11.5px;color:#b9c6d8;margin:0 0 9px;cursor:pointer}
.pj-owned-cb input{accent-color:#c6a15b}
/* construction draw schedule (step 04) */
.pj-dw-table td input.rf-share-in{width:96px}
.pj-dw-cell{white-space:nowrap}
.pj-dw-lockic{display:inline-block;width:16px;font-size:11px;vertical-align:middle}
.pj-dw-locked td{background:rgba(198,161,91,.06)}
.pj-dw-locked .pj-dw-in{border-color:rgba(198,161,91,.6);background:rgba(198,161,91,.10);font-weight:600}
.pj-dw-unlock{background:none;border:none;color:var(--muted);font-size:14px;cursor:pointer;padding:2px 4px;vertical-align:middle}
.pj-dw-unlock:hover{color:#c0563c}
.pj-dw-lockic small{font-family:var(--fm);font-size:7.5px;font-weight:700;color:#a2793a;vertical-align:super}
/* individual-owner accounts: personal outcome strip + restricted pages */
/* Key Metrics: the same rounded hairline frame as Cash Flow and the
   balance sheet — gold label, tiles beneath, no fill and no rule */
.owner-strip{margin:0 0 18px;padding:14px 18px;border-radius:12px;border:1px solid var(--line);border-left:3px solid var(--navy)}
.owner-strip-t{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:12px}
.owner-strip-t svg{width:16px;height:16px;flex:0 0 auto}
/* tiles mirror the portfolio cards' type exactly (9.5px mono label over a
   30px serif figure) so the personal and entity numbers read as one system */
.owner-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.owner-tile{position:relative}
.owner-tile .l{font-family:var(--fm);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.owner-tile-info{border:none;background:none;cursor:pointer;font-size:13px;color:var(--muted);line-height:1;padding:0 2px;vertical-align:middle;transition:color .12s}
.owner-tile-info:hover{color:var(--teal-dark)}
.owner-tile-note{display:none;position:absolute;left:0;top:100%;margin-top:6px;min-width:230px;max-width:320px;z-index:6;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:9px 11px;box-shadow:0 6px 18px rgba(0,0,0,.1);font-family:var(--fd);font-size:11.5px;line-height:1.5;color:var(--ink2);text-transform:none;letter-spacing:0}
.owner-tile-note.open{display:block}
.owner-tile .v{font-family:var(--fs);font-size:24px;color:var(--navy);line-height:1.1}
.owner-tile .s{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.35}
.owner-lock{display:flex;align-items:center;justify-content:center;min-height:60vh}
.owner-lock-card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:36px 42px;max-width:480px;text-align:center;color:var(--muted)}
.owner-lock-card svg{color:var(--cream-dark);margin-bottom:10px}
.owner-lock-card h2{font-family:var(--fs);font-size:21px;color:var(--navy);margin:0 0 10px;font-weight:500}
.owner-lock-card p{font-size:13px;line-height:1.55;margin:0 0 18px}
.owner-lock-card .gi-btn{display:inline-block;text-decoration:none}
.team-partner-note{font-size:10.5px;color:var(--muted);margin-top:4px;max-width:230px;line-height:1.35}
.team-partner{margin-top:5px;display:block}
/* Users grouped by organization (CMAC team first) */
.team-group{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden}
.team-group>summary{display:flex;align-items:baseline;gap:10px;padding:10px 14px;cursor:pointer;list-style:none;background:var(--cream)}
.team-group>summary::-webkit-details-marker{display:none}
.team-group>summary::after{content:'\25B8';margin-left:auto;color:var(--muted);font-size:11px;transition:transform .15s ease}
.team-group[open]>summary::after{transform:rotate(90deg)}
.team-group>summary b{font-size:13px;letter-spacing:.02em}
.team-group-sub{font-size:11px;color:var(--muted)}
.team-group .ins-scroll{padding:2px 10px 10px}
/* inline lever warnings (e.g. no-downpayment internal financing) */
.sm-ctl-warn{flex-basis:100%;margin-top:7px;font-size:11px;line-height:1.45;color:#8a5a10;background:rgba(232,201,106,.14);border:1px solid rgba(232,201,106,.5);border-radius:7px;padding:6px 9px}
/* no-origination loans: the payments-this-year assumption chip */
.gi-noorig-start{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0 10px;font-size:11.5px;color:var(--muted)}
.gi-noorig-start .seg-row{flex-wrap:wrap;gap:4px}
.gi-noorig-start .seg{padding:5px 10px;font-size:11px;white-space:nowrap}
/* note rows: keep the Years/Months/Payment and Monthly/Annual segments from
   truncating in the grid (the "Payme…" overlap) */
.gi-field .seg-row{flex-wrap:wrap;gap:4px}
.gi-field .seg-row .seg{padding:6px 8px;font-size:11px;white-space:nowrap;flex:0 1 auto;min-width:0}
.pj-dw-eq{font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#a2793a;background:rgba(198,161,91,.16);border:1px solid rgba(198,161,91,.45);border-radius:5px;padding:1px 7px}
.pj-dw-loan{font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#2b7d5c;background:rgba(61,185,138,.14);border:1px solid rgba(61,185,138,.4);border-radius:5px;padding:1px 7px}
/* live badge on saved-project chips */
.pj-chip-live{font-family:var(--fm);font-size:8.5px;letter-spacing:.08em;font-weight:600;color:#2b7d5c;background:rgba(61,185,138,.16);border:1px solid rgba(61,185,138,.45);border-radius:4px;padding:1px 5px;margin-left:7px;vertical-align:1px}
/* live bar under the saved-project chips */
.pj-live-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--panel,#fff);border:1px solid var(--line);border-radius:10px;padding:9px 14px;margin:2px 0 12px}
.pj-live-bar.on{border-color:rgba(61,185,138,.55);background:rgba(61,185,138,.06)}
.pj-live-cb{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;white-space:nowrap}
.pj-live-cb input{accent-color:#2b7d5c;width:15px;height:15px}
.pj-live-note{font-size:11.5px;color:var(--muted);line-height:1.4}
.pj-debt-seg{margin:2px 0 8px}
/* include/exclude strips: inside the Strategy card (Projections) and the
   New Projects rail group (360 Compare) — stacked, no toolbar squeeze */
.pj-apply-strip{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:10px 0 4px}
#cs-projects .pj-apply-chip,#sm-projects .pj-apply-chip{justify-content:flex-start}
#cs-projects .pj-eq-src,#sm-projects .pj-eq-src{max-width:100%;margin-left:0}
#cs-projects .pj-eq-note,#sm-projects .pj-eq-note{margin-left:0;white-space:normal;text-align:left}
.pj-apply-t{font-family:var(--fm);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:500}
.pj-apply-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-size:12px;color:var(--muted);background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer;transition:border-color .15s,color .15s}
.pj-apply-chip input{accent-color:#2b7d5c;margin:0}
.pj-apply-chip small{font-size:10px;color:var(--muted)}
.pj-apply-chip.on{color:var(--ink);border-color:rgba(61,185,138,.55);background:rgba(61,185,138,.07)}
.pj-eq-src{font-family:var(--fd);font-size:11.5px;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:5px 8px;max-width:230px;margin-left:-4px}
.pj-eq-note{font-family:var(--fd);font-size:11px;color:#a2793a;background:rgba(198,161,91,.14);border:1px solid rgba(198,161,91,.4);border-radius:999px;padding:5px 11px;margin-left:-4px;white-space:nowrap}
/* quickbooks test panel */
.qb-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.qb-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:10px}
@media(max-width:1000px){.qb-map{grid-template-columns:1fr}}
.qb-map-hint{font-size:11px;color:var(--muted);margin-bottom:8px;line-height:1.4}
.qb-map-row{display:flex;align-items:flex-start;gap:8px;padding:5px 0;border-bottom:1px solid var(--line-soft);cursor:pointer}
.qb-map-row input{margin-top:3px;accent-color:var(--teal-dark,#2a9270);flex:0 0 auto}
.qb-map-name{font-size:12.5px;color:var(--ink);min-width:0}
.qb-map-name small{display:block;font-size:10.5px;color:var(--muted)}
/* role-select mapping rows (expenses & balance sheet) */
.qb-map-selrow{cursor:default;justify-content:space-between;align-items:center}
.qb-map-selrow .qb-map-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis}
.qb-map-role{flex:0 0 auto;font-family:var(--fd);font-size:11px;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:3px 5px;max-width:150px}
/* QuickBooks live annotations (dashboard) */
.db-qb-tag{display:inline-block;font-family:var(--fm);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#2b7d5c;background:rgba(61,185,138,.14);border:1px solid rgba(61,185,138,.35);border-radius:5px;padding:1px 6px;margin-right:6px;vertical-align:1px}
#db-qb-flow{margin-top:9px;padding-top:8px;border-top:1px dashed var(--line);font-size:12px;color:var(--ink)}
#db-qb-flow b{font-family:var(--fm)}
.db-qb-sub{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}
.db-qb-block{margin-top:9px;padding-top:7px;border-top:1px dashed var(--line)}
.db-qb-t{font-size:10.5px;color:var(--muted);margin-bottom:3px}
.db-qb-item .db-item-l,.db-qb-item .db-item-v{color:var(--muted);font-size:11.5px}
.db-qb-total .db-item-l,.db-qb-total .db-item-v{color:var(--ink);font-weight:600}
/* quickbooks on/off view switch (dashboard header, left of YTD/Full Year) */
.db-qb-switch{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-size:12px;color:var(--muted);background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:6px 13px;cursor:pointer;transition:border-color .15s,color .15s}
.db-qb-switch b{font-family:var(--fm);font-size:10px;letter-spacing:.06em;font-weight:600;color:var(--muted)}
.db-qb-switch .db-qb-sdot{width:8px;height:8px;border-radius:50%;background:#c9c4b8;flex:0 0 auto;transition:background .15s,box-shadow .15s}
.db-qb-switch.on{color:var(--ink);border-color:rgba(61,185,138,.55)}
.db-qb-switch.on b{color:#2b7d5c}
.db-qb-switch.on .db-qb-sdot{background:#3db98a;box-shadow:0 0 0 3px rgba(61,185,138,.18)}
/* portfolio cards: expand/collapse control (assets card, top right) */
.db-pcard{position:relative}
/* expand control: pinned to the framed box's bottom-right corner, wearing the
   score box's dark surface */
.db-port{position:relative}
.db-port-toggle{position:absolute;bottom:12px;right:12px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(155deg,#0a1733,#173266);border:none;border-radius:50%;color:rgba(255,255,255,.85);cursor:pointer;padding:0;z-index:2}
.db-port-toggle:hover{color:#fff}
html.theme-modern .db-port-toggle{background:linear-gradient(155deg,#111514,#222a25)}
@media(max-width:1100px){.db-port-toggle{position:static}}
.db-port-toggle:hover{color:var(--ink);border-color:var(--muted)}
.db-port-toggle svg{transition:transform .18s ease}
/* mentes360 score bands (info overlay) */
.m360-grades{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.m360-grades-t{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:600}
.m360-grade{display:flex;align-items:baseline;gap:10px;padding:4px 0;font-size:12.5px}
.m360-grade b{font-family:var(--fm);font-size:11.5px;min-width:64px;color:var(--ink)}
.m360-grade-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;align-self:center}
.m360-grade-name{font-weight:600;min-width:74px;color:var(--ink)}
.m360-grade-sub{color:var(--muted);font-size:11.5px}
/* property cards — the owner Key Metrics language applied per property,
   with an LTV bar colored by leverage band */
.db-prop-cards{display:grid;grid-template-columns:1fr;gap:12px}
.db-prop-card{display:grid;grid-template-columns:minmax(170px,1.1fr) 2.6fr minmax(190px,1fr);gap:10px 22px;align-items:center;border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:12px;padding:13px 16px;cursor:pointer;transition:border-color .12s}
.db-prop-card:hover{border-color:var(--teal)}
.db-prop-name{font-family:var(--fs);font-size:17px;color:var(--navy);font-weight:500;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.db-prop-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 16px}
@media(max-width:980px){
  .db-prop-card{grid-template-columns:1fr}
  .db-prop-facts{grid-template-columns:1fr 1fr}
}
.db-prop-f .l{font-family:var(--fm);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.db-prop-f .v{font-family:var(--fs);font-size:18px;color:var(--navy)}
html.theme-modern .db-prop-f .v{font-weight:600}
.db-prop-ltv{display:flex;align-items:center;gap:9px}
.db-prop-ltv .l{font-family:var(--fm);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.db-prop-ltv .v{font-family:var(--fm);font-size:12px;font-weight:600;color:var(--navy);min-width:44px;text-align:right}
.db-ltv-bar{flex:1;height:7px;border-radius:4px;background:var(--cream-mid);overflow:hidden}
/* one neutral fill — leverage is information, not a verdict. Fixed navy blue
   in both themes so it never reads as the ink surface color. */
.db-ltv-fill{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#24418a,#1e3a7a)}
.db-prop-detail{grid-column:1 / -1;padding-top:9px;border-top:1px solid var(--line-soft);font-size:11.5px;line-height:1.55;color:var(--muted)}
/* add-owner shortcut on the partner cards (Projections, client/CMAC only):
   vertically centered, wearing the dark toggle surface */
.pcard{position:relative}
.pcard-inv{position:absolute;top:50%;transform:translateY(-50%);right:10px;width:25px;height:25px;display:inline-flex;align-items:center;justify-content:center;border:none;background:linear-gradient(155deg,#0a1733,#173266);border-radius:50%;color:rgba(255,255,255,.85);cursor:pointer;padding:0;transition:color .12s;z-index:2}
.pcard-inv:hover{color:#fff}
html.theme-modern .pcard-inv{background:linear-gradient(155deg,#111514,#222a25)}
.pcard-inv svg{width:13px;height:13px}
.pcard .pcard-name{padding-right:28px}
/* owner-view invite block at the foot of the partner modal (Projections) */
.ms-inv-t{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;padding-top:14px;border-top:1px solid var(--line-soft)}
.ms-inv-row{display:flex;gap:8px;flex-wrap:wrap}
.ms-inv-row input{flex:1;min-width:200px;padding:9px 12px;border:1px solid var(--line);border-radius:7px;font-size:13px;font-family:var(--fd);background:var(--cream)}
.ms-inv-row input:focus{border-color:var(--teal);background:var(--white);outline:none}
.ms-inv-note{font-size:11.5px;color:var(--muted);line-height:1.5;margin-top:8px}
/* quick tour — spotlight + walkthrough card. The toolbar stays expanded and
   ABOVE the shade for the whole tour, with the current page's item lit, so
   the user always sees where each component lives on the left. */
.sb.tour-lit{z-index:12001;transition:width .12s ease}
.sb.tour-open{width:212px;box-shadow:10px 0 34px rgba(10,23,51,.28)}
.sb.tour-open .sb-brand-full{max-width:110px}
.sb.tour-lit .sb-sub{max-height:150px;opacity:1;margin:2px 0 3px 7px}
.tour-nav-hi{outline:2px solid var(--teal);outline-offset:1px;border-radius:9px;background:rgba(61,185,138,.14)}
.tour-hint{font-family:var(--fm);font-size:10px;letter-spacing:.05em;color:var(--teal-dark);margin-top:9px}
/* quick tour — spotlight + walkthrough card */
.tour-spot{position:fixed;z-index:12000;pointer-events:none;border-radius:12px;border:2px solid var(--teal);box-shadow:0 0 0 200vmax rgba(12,16,14,.55);transition:all .28s ease}
.tour-card{position:fixed;z-index:12001;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:0 18px 48px rgba(0,0,0,.28)}
.tour-step{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.tour-title{font-family:var(--fs);font-size:19px;color:var(--navy);margin-bottom:6px}
.tour-body{font-size:13px;line-height:1.55;color:var(--ink2)}
.tour-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.tour-nav{display:inline-flex;gap:8px}
.tour-btn{border:1px solid var(--line);background:var(--white);color:var(--ink2);border-radius:7px;padding:7px 14px;font-size:12.5px;font-weight:600;cursor:pointer}
.tour-btn.primary{background:var(--teal-dark);border-color:var(--teal-dark);color:#fff}
.tour-btn.primary:hover{background:var(--teal-dim)}
.tour-skip{border:none;background:none;color:var(--muted);font-size:12px;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px}
.tour-skip:hover{color:var(--ink2)}
/* hover-expanding qb circle — the Historicals pull-from-QuickBooks bubble */
.db-qb-circle{height:31px;min-width:31px;padding:0 6px;border-radius:999px;justify-content:center;gap:0}
.db-qb-cx-label{max-width:0;opacity:0;overflow:hidden;white-space:nowrap;font-family:var(--fd);font-size:12px;font-weight:600;color:var(--ink);transition:max-width .22s ease,opacity .16s ease,margin .22s ease}
.db-qb-circle:hover{border-color:rgba(44,160,28,.5)}
.db-qb-circle:hover .db-qb-cx-label{max-width:170px;opacity:1;margin:0 8px 0 5px}
/* Connected Apps tab: one row per app — identity, status, controls right */
.db-app-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 2px;border-bottom:1px solid var(--line-soft)}
.db-app-id{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--ink)}
.db-app-desc{flex:1;min-width:220px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.db-app-ctl{display:flex;align-items:center;gap:6px;margin-left:auto}
.db-app-ctl .db-qb-mini-msg{max-width:230px;text-align:right}
.db-qb-env{font-family:var(--fm);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#a2793a;background:rgba(198,161,91,.16);border:1px solid rgba(198,161,91,.45);border-radius:5px;padding:1px 6px}
.db-qb-logo{flex:0 0 auto;display:block}
.db-qb-logo.dim{filter:grayscale(1);opacity:.55}
.db-qb-mini{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;background:var(--cream);border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:13px;line-height:1;cursor:pointer;flex:0 0 auto;padding:0}
.db-qb-mini:hover{color:var(--ink);border-color:var(--muted)}
.db-qb-mini-yes{color:#2b7d5c;border-color:rgba(61,185,138,.55)}
.db-qb-mini-msg{font-size:11px;color:var(--muted);max-width:260px;line-height:1.35}
.db-qb-pend{cursor:default;opacity:.75}
.db-qb-pend .db-qb-sdot{background:#c6a15b}
/* historicals page */
.hist-vt{margin-left:auto}
.hist-yrs-l{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.hist-yrs-l select{font-family:var(--fd);font-size:12px;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:4px 6px}
.hist-manual{font-family:var(--fm);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:#a2793a;background:rgba(198,161,91,.16);border:1px solid rgba(198,161,91,.45);border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:1px;font-weight:500}
.hist-val{width:110px;max-width:100%;text-align:right;font-family:var(--fm);font-size:12px;color:var(--ink);background:rgba(198,161,91,.08);border:1px solid rgba(198,161,91,.5);border-radius:6px;padding:4px 7px}
.hist-val:focus{outline:none;border-color:#c6a15b;background:#fff}
.hist-val::placeholder{color:var(--muted)}
/* derived-but-editable cells: quiet until touched */
.hist-cell{width:110px;max-width:100%;text-align:right;font-family:var(--fm);font-size:12px;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 7px}
.hist-cell:hover{border-color:var(--line)}
.hist-cell:focus{outline:none;border-color:#c6a15b;background:#fff}
.hist-cell::placeholder{color:var(--muted)}
.hist-cell.hist-edited{background:rgba(198,161,91,.08);border-color:rgba(198,161,91,.5)}
.hist-check th,.hist-check td{color:var(--muted)!important;font-size:11.5px;font-weight:400}
/* boxed sub-calculations on the project budget step */
.pj-block{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.pj-block:last-child{margin-bottom:0}
.pj-block h3{font-family:var(--fm);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-weight:500}
.pj-setrents{width:100%;margin:-2px 0 10px;background:rgba(198,161,91,.16);border:1px solid #c6a15b;color:#e9d9b4;border-radius:7px;padding:7px 8px;font-family:var(--fd);font-size:11.5px;cursor:pointer}
.pj-setrents:hover{background:rgba(198,161,91,.28);color:#fff}
/* inline confirmation that lives right under the set-rents button */
.pj-confirm{background:rgba(198,161,91,.10);border:1px solid #c6a15b;border-radius:9px;padding:11px 12px;margin:-4px 0 12px}
.pj-confirm-t{font-family:var(--fm);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#e9d9b4;font-weight:600;margin-bottom:5px}
.pj-confirm-b{font-size:12px;color:#d7dfeb;line-height:1.5}
.pj-confirm-b b{color:#fff}
.pj-confirm-actions{display:flex;gap:8px;margin-top:10px}
.pj-confirm-actions button{flex:1;border-radius:7px;padding:7px 8px;font-family:var(--fd);font-size:12px;cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.75)}
.pj-confirm-actions button:hover{color:#fff}
.pj-confirm-actions button.ok{background:#c6a15b;border-color:#c6a15b;color:#0e1f47;font-weight:600}
.pj-confirm-actions button.ok:hover{background:#d4b370;color:#0e1f47}
.rf-seg{display:flex;gap:6px}
.rf-seg button{flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:7px;color:rgba(255,255,255,.6);font-family:var(--fd);font-size:12px;padding:7px 8px;cursor:pointer}
.rf-seg button:hover{border-color:rgba(198,161,91,.6)}
.rf-seg button.on{background:rgba(198,161,91,.22);border-color:#c6a15b;color:#fff}
.rf-rail-note{font-size:10.5px;color:rgba(255,255,255,.45);line-height:1.45;margin-top:8px}
/* partner detail: roster controls + widget columns */
.rf-pt-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.rf-pt-btns{display:flex;gap:8px}
.rf-warn-inline{color:#c0563c;font-weight:600}
.rf-table.rf-pt{min-width:980px}
.rf-ptag{display:inline-block;font-family:var(--fm);font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;padding:1px 6px;border-radius:99px;margin-left:6px;vertical-align:middle}
.rf-ptag.new{background:var(--teal-pale,#d4f2e7);color:var(--teal-dark)}
.rf-ptag.exit{background:rgba(192,86,60,.12);color:#c0563c}
.rf-rmv{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;padding:1px 6px;border-radius:6px;margin-left:4px}
.rf-rmv:hover{background:rgba(192,86,60,.12);color:#c0563c}
.rf-share-in{font-family:var(--fm);font-size:12px;width:64px;text-align:right;border:1px solid var(--line);border-radius:6px;padding:4px 6px;background:var(--cream);outline:none}
.rf-share-in:focus{border-color:#c6a15b;box-shadow:0 0 0 2px rgba(198,161,91,.18)}
.rf-name-in{font-family:var(--fd);font-weight:500;color:var(--navy);font-size:12.5px;border:0;border-bottom:1px dashed var(--line);background:transparent;width:150px;outline:none;padding:2px 0}
.rf-name-in:focus{border-bottom-color:#c6a15b}
.rf-kpis{display:flex;gap:0;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--white);margin-bottom:16px}
.rf-kpi{flex:1;padding:12px 16px;border-right:1px solid var(--line)}
.rf-kpi:last-child{border-right:none}
.rf-kpi .l{font-family:var(--fm);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.rf-kpi .v{font-family:var(--fm);font-size:19px;color:var(--navy);margin-top:3px}
.rf-kpi.hero{background:var(--navy)}
.rf-kpi.hero .l{color:rgba(255,255,255,.6)}
.rf-kpi.hero .v{color:#6fdcae}
.rf-kpi .pos{color:var(--teal-dark)}
.rf-kpi .neg{color:#c0563c}
.rf-tabs{display:flex;gap:6px;margin-bottom:14px}
.rf-tabs-top{margin:-6px 0 18px;padding-bottom:0;border-bottom:1px solid var(--line)}
.rf-tabs-top .rf-tab{font-size:14px;padding:10px 16px}
.rf-tab{font-family:var(--fd);font-size:12.5px;font-weight:500;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;padding:8px 13px;cursor:pointer;display:flex;align-items:center;gap:7px}
.rf-tab .tnum{font-family:var(--fm);font-size:10px;color:#b8954a}
.rf-tab:hover{color:var(--navy)}
.rf-tab.on{color:var(--navy);border-bottom-color:#b8954a}
.rf-cov-h{font-family:var(--fs);font-size:16px;color:var(--navy);margin:0 0 14px}
.rf-su{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:860px){.rf-su{grid-template-columns:1fr}}
.rf-su-col h3{font-family:var(--fm);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-weight:500}
.rf-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line-soft);font-size:13px}
.rf-row .val{font-family:var(--fm);font-variant-numeric:tabular-nums;white-space:nowrap}
.rf-row.total{border-bottom:none;border-top:2px solid var(--navy);margin-top:4px;padding-top:10px;font-weight:600}
.rf-row.hero .lab,.rf-row.hero .val{color:var(--teal-dark);font-weight:600}
.rf-row .neg{color:#c0563c}
.rf-indent{padding-left:16px;font-size:12px;color:var(--muted)}
.rf-sub{font-size:11px;color:var(--muted);margin:2px 0 4px}
.rf-bar{height:12px;border-radius:99px;overflow:hidden;display:flex;margin-top:18px;border:1px solid var(--line)}
.rf-bar span{display:block;height:100%}
.rf-legend{display:flex;flex-wrap:wrap;gap:13px;margin-top:10px;font-size:11.5px;color:var(--muted)}
.rf-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:middle}
.rf-warn{margin-top:14px;padding:10px 13px;background:rgba(192,86,60,.08);border:1px solid rgba(192,86,60,.3);border-radius:8px;font-size:12.5px;color:#c0563c}
.rf-table{width:100%;border-collapse:collapse;font-size:12.5px}
.rf-table th{font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:right;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--cream-mid)}
.rf-table th:first-child{text-align:left}
.rf-table td{text-align:right;padding:9px 14px;border-bottom:1px solid var(--line-soft);font-family:var(--fm);font-variant-numeric:tabular-nums;color:var(--ink)}
.rf-table td:first-child{text-align:left;font-family:var(--fd);color:var(--navy);font-weight:500}
.rf-table td .neg{color:#c0563c}
.rf-table td.rf-cash{color:var(--teal-dark);font-weight:500}
.rf-table tr.rf-total td{border-top:2px solid #b8954a;background:rgba(184,149,74,.10);font-weight:600;border-bottom:none}
.rf-roe-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:18px;align-items:stretch}
@media(max-width:1000px){.rf-roe-grid{grid-template-columns:1fr}}
.rf-roe{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.rf-roe.after{background:linear-gradient(155deg,#14335a,#0e1f47);border-color:#14335a;color:#fff}
.rf-roe .tag{font-family:var(--fm);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500}
.rf-roe.after .tag{color:#d9c79a}
.rf-roe .big{font-family:var(--fs);font-size:44px;line-height:1;margin:8px 0 2px;color:var(--navy)}
.rf-roe.after .big{color:#6fdcae}
.rf-roe .big.neg{color:#c0563c}
.rf-roe.after .big.neg{color:#f0a6ae}
.rf-roe .note{font-size:11.5px;color:var(--muted);margin-bottom:12px}
.rf-roe.after .note{color:rgba(255,255,255,.55)}
.rf-roe .ln{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line-soft);font-size:12.5px}
.rf-roe.after .ln{border-color:rgba(255,255,255,.14)}
.rf-roe .ln:last-child{border-bottom:none}
.rf-roe .ln .v{font-family:var(--fm);font-variant-numeric:tabular-nums}
.rf-cc{display:flex;align-items:flex-end;gap:6px;height:140px;margin-top:8px}
.rf-cc-wrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%}
.rf-cc-bar{width:100%;border-radius:4px 4px 0 0;background:var(--teal,#3db98a);min-height:2px}
.rf-cc-bar.neg{background:#c0563c;border-radius:0 0 4px 4px}
.rf-cc-yr{font-family:var(--fm);font-size:10px;color:var(--muted)}
.oa-sect{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px}
.oa-sect-t{font-family:var(--fs);font-size:17px;color:var(--navy);margin-bottom:3px}
.oa-cur{font-family:var(--fm);font-size:11px;color:var(--teal-dark);margin-bottom:8px}
.oa-body{font-size:12.5px;color:var(--ink2);line-height:1.55}
.oa-lever{font-size:11px;color:var(--muted);margin-top:8px;font-style:italic}
.sb-powered{position:absolute;left:21px;top:10px;font-size:9px;letter-spacing:.04em;color:rgba(255,255,255,.45);white-space:nowrap;opacity:0;transition:opacity .15s ease;pointer-events:none}
.sb:hover .sb-powered{opacity:1}
.sb-nav{display:flex;flex-direction:column;gap:3px}
.sb-grow{flex:1}
.sb-bottom{display:flex;flex-direction:column;gap:3px;padding-bottom:2px}
.sb-lbl{opacity:0;transition:opacity .15s ease;pointer-events:none;white-space:nowrap}
.sb:hover .sb-lbl{opacity:1}
.sb-ico{position:relative;display:inline-flex;flex:0 0 auto}
.pc{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden}
.pg{padding:24px 34px 56px}
.phd{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ey{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-family:var(--fm)}
.ptit{font-family:var(--fs);font-size:28px;color:var(--navy);line-height:1.1}
.ptit em{font-style:italic;color:var(--teal-dark)}
.psub{font-size:13px;color:var(--muted);margin-top:4px;max-width:920px}

/* ---- layout ---- */
.sm-layout{display:grid;grid-template-columns:340px 1fr;gap:22px;align-items:start}
@media(max-width:1080px){.sm-layout{grid-template-columns:1fr}}
.rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:16px}
@media(max-width:1080px){.rail{position:static}}
/* gated (preview) accounts — slim bar pinned to the viewport bottom */
.gated-bar{position:fixed;left:76px;right:18px;bottom:14px;z-index:600;display:flex;align-items:center;gap:16px;background:linear-gradient(155deg,#0a1733,#173266);color:#fff;padding:11px 18px;border-radius:11px;box-shadow:0 12px 34px rgba(10,23,51,.35)}
.gated-bar-t{font-size:13px;color:rgba(255,255,255,.9)}
.gated-bar .gi-msg{color:#6fdcae;flex:1;min-width:0}
.gated-pad{padding-bottom:96px}
.gated-lock{pointer-events:none;opacity:.5;filter:saturate(.6)}
.pcard-locked{justify-content:center;border-style:dashed;color:var(--muted);font-size:12.5px;background:var(--cream)}
.pcard-locked:hover{border-color:var(--teal);color:var(--teal-dark)}
.fin-gated-note{font-size:12px;color:var(--muted);margin-top:10px}
.fin-gated-note a{color:var(--teal-dark);text-decoration:underline;cursor:pointer}
/* gated proforma: columns beyond the opening years fall progressively out of
   focus (col 1 is the row label; cols 2-4 are the clear preview years) */
.fin-gated th:nth-child(n+5),.fin-gated td:nth-child(n+5){filter:blur(1.5px);opacity:.85;user-select:none;pointer-events:none}
.fin-gated th:nth-child(n+6),.fin-gated td:nth-child(n+6){filter:blur(2.5px);opacity:.7}
.fin-gated th:nth-child(n+7),.fin-gated td:nth-child(n+7){filter:blur(3.5px);opacity:.55}
.fin-gated th:nth-child(n+8),.fin-gated td:nth-child(n+8){filter:blur(4.5px);opacity:.42}
.fin-gated th:nth-child(n+9),.fin-gated td:nth-child(n+9){filter:blur(5.5px);opacity:.3}
.fin-gated th:nth-child(n+10),.fin-gated td:nth-child(n+10){filter:blur(6.5px);opacity:.2}
.fin-gated th:nth-child(n+11),.fin-gated td:nth-child(n+11){filter:blur(7.5px);opacity:.14}
.pcard-blur{pointer-events:none;user-select:none;cursor:default}
/* sidebar notifications */
.notif{position:relative;display:block}
.notif-btn.has{color:#fff}
.notif-badge{position:absolute;top:-7px;right:-9px;background:var(--rust);color:#fff;font-family:var(--fm);font-size:9px;font-weight:500;border-radius:9px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}
.notif-panel{position:absolute;left:calc(100% + 14px);bottom:0;z-index:950;width:430px;max-width:80vw;background:var(--white);border:1px solid var(--line);border-radius:11px;box-shadow:0 18px 50px rgba(10,23,51,.24);padding:14px;max-height:70vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.notif-t{font-family:var(--fm);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.notif-item{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line-soft);border-radius:9px;padding:11px 13px;background:var(--cream)}
.notif-body{flex:1;min-width:0}
.notif-title{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--ink);margin-bottom:3px}
.notif-sub{font-size:11.5px;color:var(--ink2);line-height:1.5}
.notif-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
.notif-act{border:1px solid var(--teal);background:var(--teal-pale);color:var(--teal-dim);font-family:var(--fd);font-size:11px;font-weight:500;padding:5px 11px;border-radius:6px;cursor:pointer;white-space:nowrap}
.notif-act:hover{background:var(--teal);color:#fff}
.notif-dis{border:none;background:transparent;color:var(--muted);font-family:var(--fd);font-size:10.5px;cursor:pointer;padding:3px 6px}
.notif-dis:hover{color:var(--rust);text-decoration:underline}
.notif-empty{font-size:12px;color:var(--muted);padding:6px 2px}
.notif-fld-sub{font-size:11px;color:var(--muted);line-height:1.5;margin-top:4px}
/* alerts bell (charts header) */
.sm-view-row{display:flex;align-items:center;gap:10px;min-width:0}
.sm-bell-wrap{position:relative;display:inline-flex;align-items:center}
.sm-bell{position:relative;border:1px solid var(--line);background:var(--white);border-radius:7px;padding:6px 8px;cursor:pointer;color:var(--muted);line-height:0;transition:color .14s,border-color .14s}
.sm-bell:hover{border-color:var(--teal);color:var(--teal-dark)}
.sm-bell.has{color:var(--navy)}
.sm-bell-badge{position:absolute;top:-6px;right:-6px;background:#b8954a;color:#fff;font-family:var(--fm);font-size:9px;font-weight:500;border-radius:9px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}
.sm-bell-badge.danger{background:var(--rust)}
.sm-bell-pop{position:absolute;left:0;top:calc(100% + 9px);z-index:600;width:400px;max-width:84vw;background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 44px rgba(10,23,51,.2);padding:13px;max-height:430px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.sm-bell-pop-t{font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.main{display:flex;flex-direction:column;gap:22px;min-width:0}

/* ---- score card (navy) ---- */
.sm-score-card{background:linear-gradient(155deg,#0a1733,#173266);border-radius:10px;padding:24px 26px;color:#fff}
.sm-score-tag{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-family:var(--fm);margin-bottom:8px}
/* the tag itself opens the score explainer (replaces the info icon) */
.sm-score-tag-btn{border:none;background:none;padding:0;cursor:pointer;text-decoration:underline dotted rgba(111,220,174,.5);text-underline-offset:3px}
/* in the hero pair the tag matches the YTD / Full Year tab size */
.db-hero-pair .sm-score-tag{font-size:11.5px}
.sm-score-tag-btn:hover{color:#6fdcae}
.sm-score-big{font-family:var(--fs);font-size:72px;line-height:1;letter-spacing:-.02em}
.sm-score-grade{font-size:15px;font-weight:500;margin-top:2px}
.sm-score-mode{font-family:var(--fm);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:7px}
.sm-score-delta{display:inline-flex;align-items:center;gap:5px;margin-top:14px;font-family:var(--fm);font-size:11px;font-weight:500;padding:5px 12px;border-radius:20px}
.sm-score-delta.up{background:rgba(61,185,138,.16);color:#6fdcae;border:1px solid rgba(61,185,138,.32)}
.sm-score-delta.down{background:rgba(232,120,100,.14);color:#e89486;border:1px solid rgba(232,120,100,.32)}
.sm-score-delta.flat{background:rgba(255,255,255,.07);color:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.14)}
.sm-baseline-note{font-size:11px;color:rgba(255,255,255,.42);margin-top:14px;line-height:1.45}
.sm-breakdown{margin-top:18px;border-top:1px solid rgba(255,255,255,.1);padding-top:16px;display:flex;flex-direction:column;gap:13px}
.sm-bd-top{display:flex;justify-content:space-between;font-size:11px;margin-bottom:5px}
.sm-bd-label{color:rgba(255,255,255,.65)}
.sm-bd-val{font-family:var(--fm);color:#fff}
.sm-bd-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden;position:relative}
.sm-bd-fill{height:100%;border-radius:3px;transition:width .3s}
.sm-bd-mark{position:absolute;top:0;bottom:0;width:2px;background:rgba(255,255,255,.85);border-radius:1px;transform:translateX(-1px)}
.sm-bd-cur{color:rgba(255,255,255,.45)}
.sm-bd-arr{color:rgba(255,255,255,.35);font-size:9px}
/* modeler score rings: arc = score/100 so the ceiling is visible */
.sm-ring{position:relative;width:128px;height:128px;margin:6px 0 2px}
.sm-ring.sm{width:92px;height:92px;margin:2px 0 0}
.sm-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.sm-ring-bg{fill:none;stroke:rgba(255,255,255,.12);stroke-width:8}
.sm-ring-fg{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dasharray .35s}
.sm-ring-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--fs);font-size:44px;line-height:1;letter-spacing:-.02em}
.sm-ring.sm .sm-ring-num{font-size:30px}
/* current vs alternative comparison header — symmetric, centered in the card */
.sm-compare{display:flex;align-items:center;justify-content:center;gap:14px;margin:10px 0 4px}
.sm-cmp-col{flex:0 0 auto;min-width:0;display:flex;flex-direction:column;align-items:center}
.sm-cmp-l{font-family:var(--fm);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:5px;line-height:1.3;text-align:center;max-width:110px;min-height:22px;display:flex;align-items:flex-end;justify-content:center}
.sm-cmp-vs{color:rgba(255,255,255,.4);font-size:17px;margin-top:16px}
/* score cards center their tag, ring, grade and pill; info icon pins right */
.sm-score-tag-row .m360-info-btn{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.sm-score-tag-row .sm-tag-btns{position:absolute;right:0;top:50%;transform:translateY(-50%)}
#page-modeler .sm-score-card{text-align:center}
.sm-score-big{display:flex;justify-content:center}
.sm-ring{margin-left:auto;margin-right:auto}
.db-score{text-align:center;align-items:center}
.db-score .sm-score-tag-row{width:100%}
.db-score .db-improve{align-self:center}
.cs-scorebar-main{text-align:center}

/* ---- controls ---- */
.sm-controls{display:flex;flex-direction:column;gap:12px}
.ctl-head{font-family:var(--fm);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);font-weight:500;display:flex;justify-content:space-between;align-items:baseline}
.ctl-head span{font-family:var(--fd);font-size:11px;text-transform:none;letter-spacing:0;color:var(--muted)}
.sm-group{background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.sm-group>summary{padding:11px 16px;background:var(--cream);border-bottom:1px solid var(--line-soft);font-family:var(--fs);font-size:14px;color:var(--navy);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;user-select:none}
.sm-group>summary::-webkit-details-marker{display:none}
.sm-group>summary::after{content:'+';font-family:var(--fm);color:var(--muted);font-size:14px}
.sm-group[open]>summary::after{content:'\2212'}
.sm-group[open]>summary{border-bottom:1px solid var(--line-soft)}
.sm-group:not([open])>summary{border-bottom:none}
.sm-group-body{padding:2px 16px 10px}
.sm-ctl{padding:13px 0;border-bottom:1px solid var(--line-soft)}
.sm-ctl:last-child{border-bottom:none}
.sm-ctl-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px}
.sm-ctl-label{font-size:13px;color:var(--ink);font-weight:500}
.sm-ctl-sub{font-size:10.5px;color:var(--muted);margin-top:1px}
.sm-ctl-val{font-family:var(--fm);font-size:14px;font-weight:500;color:var(--navy);white-space:nowrap}
.sm-ctl-val.changed{color:var(--teal-dark)}
.sm-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:4px;background:var(--cream-dark);outline:none;cursor:pointer;accent-color:var(--teal)}
.sm-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--teal);border:3px solid #fff;box-shadow:0 1px 4px rgba(14,31,71,.3);cursor:pointer;margin-top:-6px}
.sm-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--teal);border:3px solid #fff;box-shadow:0 1px 4px rgba(14,31,71,.3);cursor:pointer}
.sm-ctl-base{font-size:10px;color:var(--muted);font-family:var(--fm);margin-top:6px}
.sm-ctl-info .sm-ctl-top{margin-bottom:0}
.sm-ctl-info .sm-ctl-val{color:var(--ink2)}
.sm-toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line-soft);gap:12px}
.sm-toggle-row:last-child{border-bottom:none}
.sm-toggle-row .tlab{font-size:13px;color:var(--ink);font-weight:500}
.sm-toggle-row .tsub{font-size:10.5px;color:var(--muted);margin-top:1px}
.toggle{width:38px;height:21px;border-radius:11px;background:var(--cream-dark);position:relative;cursor:pointer;flex-shrink:0;transition:background .15s}
.toggle::after{content:'';position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(14,31,71,.25);transition:left .15s}
.toggle.on{background:var(--teal)}
.toggle.on::after{left:19px}
.sm-actions{display:flex;gap:10px;margin-top:4px}
.sm-btn{flex:1;font-size:12px;font-weight:500;font-family:var(--fd);padding:10px 14px;border-radius:6px;border:1px solid var(--line);background:var(--white);color:var(--navy);cursor:pointer;transition:background .14s}
.sm-btn:hover{background:var(--cream)}
.sm-btn.primary{background:var(--teal);border-color:var(--teal);color:var(--navy-dark)}
.sm-btn.primary:hover{background:#4dcca0}

/* ---- KPI outputs ---- */
.sm-outputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.sm-out{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:12px 15px}
.sm-out-label{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-family:var(--fm)}
.sm-out-val{font-family:var(--fm);font-size:18px;font-weight:500;color:var(--navy);margin-top:4px}
.sm-out-delta{font-family:var(--fm);font-size:10px;margin-top:3px;color:var(--muted)}
.sm-out-delta.up{color:var(--ok)}.sm-out-delta.down{color:var(--rust)}

/* ---- section label + scenario cards ---- */
.sm-section-label{font-family:var(--fm);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--navy);font-weight:500;margin-bottom:11px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.sm-section-label span{font-family:var(--fd);font-size:11px;text-transform:none;letter-spacing:0;color:var(--muted);font-weight:400}
.sm-scenarios{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:10px}
.sm-scn{text-align:left;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:13px 15px;cursor:pointer;transition:border-color .14s,box-shadow .14s,background .14s;font-family:var(--fd)}
.sm-scn:hover{border-color:var(--teal);background:var(--cream)}
.sm-scn.on{border-color:var(--teal);box-shadow:0 0 0 2px rgba(61,185,138,.25);background:var(--teal-pale)}
.sm-scn-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.sm-scn-name{font-size:12.5px;font-weight:500;color:var(--ink);line-height:1.25}
.sm-scn-cur{font-family:var(--fm);font-size:8px;letter-spacing:.07em;background:var(--navy);color:#fff;border-radius:3px;padding:1px 5px;margin-left:3px;position:relative;top:-1px}
.sm-scn-score{font-family:var(--fm);font-size:23px;font-weight:500;line-height:1;color:var(--navy)}
.sm-scn-score.up{color:var(--ok)}.sm-scn-score.down{color:var(--rust)}
.sm-scn-tag{font-size:10.5px;color:var(--muted);margin-top:6px;line-height:1.35}
.sm-scn-delta{font-family:var(--fm);font-size:10px;margin-top:8px}
.sm-scn-delta.up{color:var(--ok)}.sm-scn-delta.down{color:var(--rust)}.sm-scn-delta.flat{color:var(--muted)}

/* ---- panels ---- */
.panel{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:18px 20px 20px}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line-soft)}
.panel-head h2{font-family:var(--fs);font-size:19px;color:var(--navy);font-weight:400}
.panel-head .meta{font-family:var(--fm);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}

/* ---- charts ---- */
.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:720px){.charts-grid{grid-template-columns:1fr}}
.chart-card{display:flex;flex-direction:column}
.chart-title{font-size:13px;font-weight:500;color:var(--ink)}
.chart-sub{font-size:10.5px;color:var(--muted);margin-top:1px;margin-bottom:8px}
.chart-wrapper{position:relative;height:210px}

/* ---- alerts ---- */
.alerts{display:flex;flex-direction:column;gap:10px}
.alert{display:flex;gap:12px;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--cream-dark);border-radius:8px;padding:13px 16px}
.alert.ok{border-left-color:var(--teal)}
.alert.warn{border-left-color:var(--gold-deep)}
.alert.danger{border-left-color:var(--rust)}
.alert .icon{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:#fff;background:var(--cream-dark)}
.alert.ok .icon{background:var(--teal-dark)}
.alert.warn .icon{background:var(--gold-deep)}
.alert.danger .icon{background:var(--rust)}
.alert .body strong{font-size:13px;color:var(--ink);font-weight:500}
.alert .detail{font-size:11.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.alert .yearlist{font-family:var(--fm);font-size:10.5px;color:var(--navy);margin-top:5px}

/* ---- partner table ---- */
.ptbl-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}
.search-wrap input{font-family:var(--fd);font-size:12.5px;padding:8px 13px;border:1px solid var(--line);border-radius:6px;background:var(--cream);color:var(--ink);width:240px;outline:none}
.search-wrap input:focus{border-color:var(--teal);background:#fff}
.pills{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-family:var(--fd);font-size:11.5px;font-weight:500;padding:6px 12px;border-radius:20px;border:1px solid var(--line);background:var(--white);color:var(--muted);cursor:pointer;transition:all .14s}
.pill:hover{border-color:var(--teal)}
.pill.active{background:var(--navy);border-color:var(--navy);color:#fff}
table.partners{width:100%;border-collapse:collapse;font-size:12.5px}
table.partners thead th{text-align:left;font-family:var(--fm);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line);cursor:pointer;white-space:nowrap}
table.partners thead th:hover{color:var(--navy)}
table.partners thead th.sorted{color:var(--navy)}
.sort-arrow{font-size:9px;opacity:.5;margin-left:2px}
table.partners tbody tr{border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .1s}
table.partners tbody tr:hover{background:var(--cream)}
table.partners td{padding:9px 10px;color:var(--ink2)}
table.partners td.num{text-align:right;font-family:var(--fm)}
table.partners td.name{font-weight:500;color:var(--ink)}
/* partner outcome cards (replaces the old spreadsheet rows) */
.partner-cards{display:flex;flex-direction:column;gap:8px}
.pcard{display:flex;align-items:center;gap:20px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:13px 18px;cursor:pointer;transition:border-color .14s,box-shadow .14s}
.pcard:hover{border-color:var(--teal);box-shadow:0 3px 14px rgba(10,23,51,.06)}
.pcard-name{flex:0 0 190px;min-width:0;font-family:var(--fd);font-size:13.5px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard-facts{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;min-width:0}
.pcard-f{min-width:0}
.pcard-l{font-family:var(--fm);font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-v{font-family:var(--fm);font-size:13.5px;color:var(--navy);white-space:nowrap}
@media(max-width:900px){.pcard{flex-direction:column;align-items:flex-start;gap:8px}.pcard-facts{grid-template-columns:repeat(2,1fr);width:100%}.pcard-name{flex:0 0 auto}}
.ptype{display:inline-block;font-family:var(--fm);font-size:8px;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;border-radius:3px;margin-left:7px;background:var(--cream-dark);color:var(--ink2);position:relative;top:-1px}
.ptype.new{background:var(--teal-pale);color:var(--teal-dim)}
.irr-bar-cell{min-width:96px}
.irr-bar-bg{height:4px;border-radius:2px;background:var(--cream-mid);margin-top:4px;overflow:hidden}
.irr-bar-fill{height:100%;border-radius:2px;background:var(--teal)}
.irr-bar-fill.low{background:var(--gold-deep)}
.irr-bar-fill.bad{background:var(--rust)}
.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}
.pagination span{font-family:var(--fm);font-size:11px;color:var(--muted)}
.pagination button{font-family:var(--fd);font-size:11.5px;font-weight:500;padding:6px 13px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--navy);cursor:pointer;margin-left:8px}
.pagination button:hover:not(:disabled){background:var(--cream)}
.pagination button:disabled{opacity:.4;cursor:not-allowed}

/* ---- modal ---- */
.modal-backdrop{position:fixed;inset:0;background:rgba(10,23,51,.55);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:50;padding:24px}
.modal-backdrop.show{display:flex}
.modal{background:var(--cream);border-radius:12px;width:min(560px,100%);max-height:88vh;overflow-y:auto;padding:26px 28px;position:relative;box-shadow:0 20px 60px rgba(10,23,51,.4)}
.close-x{position:absolute;top:16px;right:18px;border:none;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer}
.close-x:hover{color:var(--ink)}
.modal h3{font-family:var(--fs);font-size:24px;color:var(--navy);font-weight:400}
.modal h4{font-family:var(--fm);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.partner-meta{font-size:12px;color:var(--muted);margin-top:3px}
.modal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}
.modal-stats .stat{background:var(--white);border:1px solid var(--line);border-radius:7px;padding:10px 12px}
.modal-stats .lbl{font-family:var(--fm);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.modal-stats .val{font-family:var(--fm);font-size:15px;font-weight:500;color:var(--navy);margin-top:3px}
footer{padding:18px 34px 30px;font-size:11px;color:var(--muted);max-width:980px}
.foot-brand{display:inline-block;margin-left:8px;font-family:var(--fm);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-dark)}
@media(max-width:700px){.pg{padding:20px 18px 44px}.modal-stats{grid-template-columns:1fr 1fr}}

/* ---- group library ---- */
.gl-save-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:6px}
.gl-save-row .gi-field{flex:1;min-width:220px;margin-bottom:0}
.gl-backend-note{font-size:11px;color:var(--muted);margin:2px 0 14px}
.gl-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.gl-item{display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:11px 14px}
.gl-item-name{font-family:var(--fd);font-size:13.5px;font-weight:500;color:var(--navy)}
.gl-item-meta{font-size:10.5px;color:var(--muted);margin-top:2px}
.gl-item-btns{display:flex;gap:6px;flex-shrink:0}
.gl-empty{font-size:12px;color:var(--muted);padding:14px;text-align:center;border:1px dashed var(--line);border-radius:8px}
.gl-import-lbl{display:inline-block;cursor:pointer}
.gl-import-lbl input{display:none}

/* ---- group inputs page ---- */
.gi-bld{background:var(--bld-bg,var(--white));border:1px solid var(--line);border-left:4px solid var(--bld-accent,var(--line));border-radius:10px;padding:16px 18px;margin-bottom:14px}
.gi-bld.gi-bld-min{padding-top:10px;padding-bottom:10px}
.gi-bld.gi-bld-min .gi-bld-head{margin-bottom:0}
.gi-bld-toggle{border:none;background:transparent;color:var(--muted);font-size:13px;line-height:1;cursor:pointer;padding:3px 6px;border-radius:5px;flex:0 0 auto}
.gi-bld-toggle:hover{color:var(--navy);background:rgba(0,0,0,.05)}
.gi-bld-mini{font-family:var(--fm);font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.gi-bld .gi-field input[type=number],.gi-bld .gi-field input[type=date],.gi-bld .gi-field input[type=text]{background:var(--white)}
.gi-bld .seg{background:var(--white)}
.gi-bld .seg.on{background:var(--navy)}
.gi-bld-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.gi-bld-name{font-family:var(--fs);font-size:20px;color:var(--navy);border:none;border-bottom:1px dashed transparent;background:transparent;padding:2px 0;flex:1;min-width:0}
.gi-bld-name:hover,.gi-bld-name:focus{border-bottom-color:var(--line);outline:none}
.gi-bld-tag{font-family:var(--fm);font-size:10.5px;color:var(--teal-dark);background:rgba(61,185,138,.1);padding:3px 9px;border-radius:20px;white-space:nowrap}
.gi-bld-kind{display:flex;align-items:center;gap:12px;margin:6px 0 14px}
.gi-bld-kind .seg-row{margin-top:0;flex:0 0 auto;width:220px}
.gi-bld-kind-sub{font-family:var(--fd);font-size:11.5px;color:var(--muted)}
.gi-sect{border-top:1px solid var(--line-soft);padding-top:13px;margin-top:13px}
.gi-sect:first-of-type{border-top:none;padding-top:6px;margin-top:6px}
.gi-sect-t{font-family:var(--fm);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-dark);font-weight:500;margin-bottom:11px}
.gi-subsect{margin-bottom:12px}
.gi-subsect:last-child{margin-bottom:0}
.gi-subsect-t{font-family:var(--fd);font-size:11px;font-weight:500;color:var(--ink2);margin-bottom:8px}
.gi-subsect-t span{color:var(--muted);font-weight:400;font-style:italic}
.gi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:13px 18px}
.gi-grid3{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr));gap:11px 14px;max-width:640px}
.gi-grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:11px 14px}
.gi-loanrow{background:var(--bld-bg2,transparent);border:1px dashed var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px}
.gi-loanrow .gi-subsect-t{display:flex;align-items:center;gap:6px}
.gi-loanrow .seg-row{margin-top:0}
.gi-loankind{margin-bottom:14px;padding-bottom:13px;border-bottom:1px solid var(--line-soft)}
.gi-loan-status{margin-top:10px;background:var(--cream-mid);border-radius:6px;padding:8px 12px;font-size:11.5px;color:var(--ink2);line-height:1.5}
.gi-loan-status b{color:var(--navy)}
.gi-loan-status.warn{background:rgba(184,149,74,.1);color:var(--gold-deep)}
.gi-loan-docs{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-soft)}
.gi-loan-docs .gi-subsect-t span{font-weight:400;color:var(--muted);font-size:10px;letter-spacing:.04em}
.gi-select{width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-family:var(--fd);font-size:13px;color:var(--ink)}
.gi-cov-block{margin-top:10px}
.gi-cov-label{display:block;font-family:var(--fm);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.gi-cov-row{display:flex;gap:8px;align-items:center;margin-bottom:7px;max-width:480px}
.gi-cov-row .gi-select{flex:1}
.gi-cov-lvl{width:150px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-family:var(--fd);font-size:13px}
.gi-btn-sm{font-size:11.5px;padding:6px 12px}
/* ---- dashboard ---- */
#db-loans-panel{margin-bottom:20px}
.db-title{margin-bottom:20px}
.db-title h1{font-family:var(--fs);font-size:44px;line-height:1.05;letter-spacing:-.015em;color:var(--navy);margin:0 0 6px}
.db-title-sub{font-family:var(--fm);font-size:11.5px;letter-spacing:.04em;color:var(--muted)}
/* owner view: their name leads, the entity sits beneath in larger italics */
.db-title-sub.db-sub-ent{display:block;font-family:var(--fs);font-style:italic;font-size:18px;letter-spacing:0;color:var(--muted);margin-top:2px;text-transform:none}
/* client view: the page label shrinks to an all-caps eyebrow and the entity
   name takes the headline slot (still italic) */
.db-title h1.db-name-eyebrow{font-family:var(--fm);font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 5px}
.db-title-sub.db-sub-big{font-size:38px;line-height:1.08;color:var(--navy);margin-top:0;letter-spacing:-.01em;font-weight:700}
.db-hero{display:grid;grid-template-columns:minmax(0,1.6fr) 1.15fr;gap:16px 26px;margin-bottom:16px}
/* the score card's surface extends to enclose Key Insights: one dark box
   holds both, and the insights text flips to light-on-dark */
.db-hero-pair{display:grid;grid-template-columns:300px minmax(270px,1fr);gap:14px;border-radius:12px;padding:9px;background:linear-gradient(155deg,#0a1733,#173266);color:#fff}
html.theme-modern .db-hero-pair{background:linear-gradient(155deg,#111514,#222a25)}
/* the inner card goes transparent in BOTH themes so the pair's gradient is
   one continuous surface (the Modern override outranked the base rule) */
.db-hero-pair .sm-score-card,html.theme-modern .db-hero-pair .sm-score-card{background:none;padding:15px 17px}
/* the title clears the box's top edge without hugging it; Cash Flow's
   padding is tuned to sit on the same line */
.db-hero-pair .db-ki-wrap{padding:8px 12px 8px 2px}
.db-hero-pair .db-ki-t{color:var(--gold)}
.db-hero-pair .db-ki-sub{color:rgba(255,255,255,.55)}
.db-hero-pair .db-ki-row{color:rgba(255,255,255,.88)}
.db-hero-pair button.db-ki-row:hover .db-ki-l{color:#fff}
.db-hero-pair .db-ki-d{color:rgba(255,255,255,.55)}
.db-hero-pair .db-ki-yr{color:#6fdcae}
.db-hero-pair .db-ki-none{color:rgba(255,255,255,.6)}
.db-hero-pair .csi-score.good{background:rgba(61,185,138,.22);color:#6fdcae}
.db-hero-pair .csi-score.warn{background:rgba(232,201,106,.22);color:#e8c96a}
.db-hero-pair .csi-score.bad{background:rgba(192,86,60,.26);color:#f0a48e}
/* Key Insights panel: score detractors up top, upcoming events below — the
   same gold-label-over-hairline grammar as the rest of the page */
/* seamless overflow cues: tiny centered chevrons fading in only when more
   content exists in that direction; clicking nudges the scroll */
.db-ki-more{position:absolute;right:12px;border:none;background:none;color:rgba(255,255,255,.5);cursor:pointer;padding:2px;line-height:0;opacity:0;transition:opacity .25s,color .12s;z-index:5}
.db-ki-more:hover{color:#fff}
.db-ki-more svg{width:15px;height:15px}
.db-ki-more.up{top:40px}      /* directly below the settings toggle */
.db-ki-more.down{bottom:10px} /* same axis, at the box's foot */
/* the panel contributes no height of its own: the inner scroller fills
   whatever the score card / cash flow set, with a subtle right scrollbar */
.db-ki{min-width:0;position:relative;min-height:300px}
.db-ki-wrap{position:absolute;inset:0;display:flex;flex-direction:column;padding:10px 2px}
/* content below the title still scrolls if it must, but with no visible bar */
.db-ki-in{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none}
.db-ki-in::-webkit-scrollbar{display:none}
.db-ki-t{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:12px}
.db-ki-t svg{width:16px;height:16px;flex:0 0 auto}
.db-ki-sub{font-family:var(--fm);font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.db-ki-row{display:flex;align-items:flex-start;gap:9px;width:100%;text-align:left;border:none;background:none;padding:6px 0;font-size:16.5px;color:var(--ink2);line-height:1.45}
button.db-ki-row{cursor:pointer;border-radius:7px}
button.db-ki-row:hover .db-ki-l{color:var(--ink)}
.db-ki-row .csi-score{flex:0 0 auto;min-width:32px;height:21px;font-size:11.5px;margin-top:2px}
.db-ki-l{display:flex;flex-direction:column;min-width:0}
.db-ki-d{font-size:13px;color:var(--muted)}
.db-ki-yr{flex:0 0 auto;font-family:var(--fm);font-size:14px;font-weight:600;color:var(--navy);min-width:46px;margin-top:2px}
.db-ki-none{font-size:14px;color:var(--muted);line-height:1.5;padding:2px 0}
@media(max-width:1100px){
  .db-ki{min-height:0}
  .db-ki-wrap{position:static}
  .db-ki-in{max-height:300px}
}
@media(max-width:760px){.db-hero-pair{grid-template-columns:1fr}}
.db-score{min-height:0;display:flex;flex-direction:column;justify-content:center}
.db-improve{margin-top:14px;align-self:flex-start;background:rgba(61,185,138,.14);border:1px solid rgba(61,185,138,.35);color:#6fdcae;font-family:var(--fd);font-size:12px;font-weight:500;padding:8px 15px;border-radius:7px;cursor:pointer;transition:all .14s}
.db-improve:hover{background:rgba(61,185,138,.24);border-color:rgba(61,185,138,.55)}
.db-kpis{display:block}
.tb-basis{display:flex;gap:2px;margin-left:18px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:7px;padding:2px}
.tbseg{font-family:var(--fd);font-size:11px;font-weight:500;padding:5px 12px;border:none;border-radius:5px;background:transparent;color:rgba(255,255,255,.55);cursor:pointer;transition:all .14s}
.tbseg:hover{color:#fff}
.tbseg.on{background:rgba(61,185,138,.2);color:#6fdcae}
/* the NOI -> debt service -> distributions equation beside the score */
/* boxless: the cash-flow figures sit flat on the page, seamless with the
   tab-strip sections below (the score card beside it keeps its gradient) */
.db-flow{display:flex;flex-direction:column;padding:14px 18px;height:100%;box-sizing:border-box;border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:12px}
/* section labels (Cash Flow / Assets / Liabilities / Equity): pronounced,
   in the gold the planning pages use as their accent */
.db-flow-basis{display:inline-flex;align-items:center;gap:8px;font-family:var(--fm);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.db-flow-basis svg{width:16px;height:16px;flex:0 0 auto}
.db-flow-when{color:var(--muted);font-weight:400}
/* the three equation rows share the card's height evenly */
/* tight statement rows (the Key Insights rhythm); DSCR pins to the bottom */
.db-flow-row{flex:0 0 auto;padding:8px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px dashed var(--line-soft)}
.db-flow-row .l{font-size:17.5px;color:var(--ink2);display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.db-flow-row .r{display:inline-flex;align-items:center;gap:10px}
.db-flow-row .v{font-family:var(--fm);font-size:17.5px;color:var(--navy);white-space:nowrap}
/* DSCR reads as a lighter statement row directly beneath distributions */
/* the DSCR keeps its row layout but wears the old callout box again */
.db-flow-dscr-row{border-bottom:none;margin-top:auto;background:rgba(30,58,122,.06);border-left:3px solid var(--navy);border-radius:8px;padding:9px 13px}
.db-flow-dscr-row .l{font-size:14.5px;color:var(--muted)}
.db-flow-dscr-row .v{font-size:16px;color:var(--ink2)}
.db-flow-total .l{color:var(--ink)}
.db-flow-bar{margin-top:10px}
.db-flow .db-leg{margin-top:9px}
.db-flow .pill{display:inline-block;font-family:var(--fm);font-size:9.5px;letter-spacing:.05em;padding:3px 9px;border-radius:10px}
/* cash-flow section header: title left; YTD / Full Year tabs + settings gear
   right, on the same line */
/* the faint rule under YTD / Full Year runs the full row — through the
   Portfolio Cash Flow title — like the table-header rule on Property
   Performance; the active tab's underline overlaps it */
.db-flow-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:4px}
.db-flow-head .db-flow-basis{padding-bottom:9px}
.db-flow-ctl{display:flex;align-items:flex-end;gap:10px;position:relative}
.db-flow-gearwrap{position:relative}
/* the controls sit at the top right of the Key Insights box, light-on-dark */
.db-ki .db-flow-gearwrap{position:absolute;top:12px;right:12px;z-index:6}
.db-ki .db-flow-gear{color:rgba(255,255,255,.6);padding:2px}
.db-ki .db-flow-gear:hover{color:#fff}
.db-flow-gear{border:none;background:none;cursor:pointer;color:var(--muted);padding:2px 2px 7px;line-height:1;transition:color .12s}
.db-flow-gear:hover{color:var(--ink2)}
.db-flow-gear svg{width:14px;height:14px}
.db-flow-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:30;background:var(--white);border:1px solid var(--line);border-radius:9px;padding:11px 13px;box-shadow:0 10px 26px rgba(0,0,0,.12);min-width:330px}
.db-pop-sep{border-top:1px solid var(--line-soft);margin:11px 0 1px}
/* the QuickBooks row rendered inside the controls popover */
.db-flow-pop .db-app-row{border-bottom:none;padding:9px 0 2px;gap:10px}
.db-flow-pop .db-app-desc{min-width:0;flex-basis:100%;order:3}
.db-flow-pop .db-app-ctl{margin-left:auto}
.db-flow-pop-t{font-family:var(--fm);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.db-flow-pop-opt{display:flex;gap:8px;align-items:flex-start;font-size:12px;line-height:1.45;color:var(--ink2);cursor:pointer}
.db-flow-pop-opt input{margin-top:2px}
.db-flow-pop-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.db-flow-pop-l{font-size:12px;color:var(--ink2)}
.db-pop-seg{display:inline-flex;gap:2px;background:var(--cream-mid);border-radius:7px;padding:2px}
.db-pop-segb{border:none;background:none;font-family:var(--fm);font-size:11px;font-weight:600;padding:3px 11px;border-radius:5px;color:var(--muted);cursor:pointer}
.db-pop-segb.on{background:var(--white);color:var(--navy);box-shadow:0 1px 2px rgba(0,0,0,.1)}
/* YTD / Full Year mini-tabs — the same underline treatment as the page strips
   (the hairline itself lives on .db-flow-head so it spans the full row) */
.db-basis-tabs{display:flex;gap:18px}
.db-btab{border:none;background:none;cursor:pointer;position:relative;padding:2px 1px 8px;font-family:var(--fm);font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .12s}
.db-btab:hover{color:var(--ink2)}
.db-btab.on{color:var(--teal-dark)}
.db-btab.on::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--teal-dark);border-radius:2px}
.db-flow .pill.good{background:rgba(61,185,138,.14);color:var(--teal-dark)}
.db-flow .pill.near{background:rgba(184,149,74,.15);color:var(--gold-deep)}
.db-flow .pill.bad{background:rgba(196,90,56,.13);color:var(--rust)}
/* boxless: one header row carries the three labels over a single continuous
   hairline (the Cash Flow treatment), values flow beneath in their columns */
/* the balance sheet gets the same enclosing frame as the score/insights box,
   but on the page's own background — a hairline, not a fill */
.db-port{margin-bottom:18px;border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:12px;padding:14px 18px}
.db-port-head{display:grid;grid-template-columns:1.4fr 1.4fr 1fr;gap:24px;margin-bottom:10px}
.db-port-head .l{display:flex;align-items:center;gap:8px;font-family:var(--fm);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.db-port-head .l svg{width:16px;height:16px;flex:0 0 auto}
/* header and body share identical tracks so every value starts flush under
   its own label (the expand control lives at the bottom-left now, so no
   right gutter is reserved) */
.db-port-grid{display:grid;grid-template-columns:1.4fr 1.4fr 1fr;gap:24px}
.db-pcard{padding:2px 0 0}
/* card-level labels exist for narrow screens where the header row can't
   align with stacked columns */
.db-pcard .l{display:none;align-items:center;gap:8px;font-family:var(--fm);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:7px}
.db-pcard .l svg{width:15px;height:15px;flex:0 0 auto}
@media(max-width:1100px){
  .db-port-head{display:flex;justify-content:flex-end;border-bottom:none;padding:0;margin-bottom:4px}
  .db-port-head .l{display:none}
  .db-pcard .l{display:inline-flex}
  .db-pcard{border-top:1px solid var(--line);padding-top:12px}
}
.db-pcard .v{font-family:var(--fs);font-size:24px;color:var(--navy);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* the expanded breakdowns provide their own top spacing */
.db-pcard .db-2col{margin-top:12px}
.db-pcard .db-bar{margin-top:12px}
.db-pcard .pill{display:inline-block;font-family:var(--fm);font-size:9.5px;letter-spacing:.05em;padding:3px 9px;border-radius:10px;font-weight:500}
.db-pcard .pill.good{background:rgba(61,185,138,.14);color:var(--teal-dark)}
.db-pcard .pill.bad{background:rgba(196,90,56,.13);color:var(--rust)}
.db-pcard .pill[data-yoy]{cursor:pointer}
/* YoY derivation popup: component-by-component prior vs today */
.db-yoy-pop{position:fixed;z-index:11000;background:var(--white);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 40px rgba(0,0,0,.18);padding:13px 15px;max-width:480px;max-height:340px;overflow:auto}
.db-yoy-pop .t{font-family:var(--fm);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.db-yoy-pop table{border-collapse:collapse;width:100%;font-size:12px}
.db-yoy-pop th{font-family:var(--fm);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:right;padding:3px 8px;border-bottom:1px solid var(--line-soft)}
.db-yoy-pop td{padding:5px 8px;text-align:right;border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums;white-space:nowrap;vertical-align:top}
.db-yoy-pop td:first-child,.db-yoy-pop th:first-child{text-align:left;white-space:normal}
.db-yoy-l{color:var(--ink);font-weight:500}
.db-yoy-how{font-size:10.5px;color:var(--muted);line-height:1.35;max-width:210px}
.db-yoy-tot td{font-weight:600;color:var(--navy);border-top:2px solid var(--navy);border-bottom:none}
.db-yoy-pop .n{font-size:10.5px;color:var(--muted);line-height:1.45;margin-top:9px;max-width:440px}
.db-bar{display:flex;height:9px;border-radius:5px;overflow:hidden;background:var(--cream-mid);margin-bottom:9px}
.db-bar span{display:block;height:100%}
.db-leg{font-size:10.5px;color:var(--ink2);line-height:1.7}
.db-leg .dot{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px;vertical-align:1px}
.db-leg .amt{color:var(--muted);font-family:var(--fm);font-size:10px}
.db-table{width:100%;border-collapse:collapse;font-size:12px}
.db-table th{font-family:var(--fm);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:right;padding:9px 10px;border-bottom:1px solid var(--line)}
.db-table th:first-child{text-align:left}
.db-table td{padding:10px;border-bottom:1px solid var(--line-soft);text-align:right;font-family:var(--fm);font-size:11.5px;color:var(--ink)}
.db-table td:first-child{text-align:left;font-family:var(--fd);font-size:12.5px}
.db-table tr.db-prow{cursor:pointer}
.db-table tr.db-prow:hover td{background:var(--cream-mid)}
.db-table tr.db-detail td{background:var(--cream-mid);text-align:left;font-family:var(--fd);font-size:12px;padding:12px 14px}
.db-chip{display:inline-block;font-family:var(--fm);font-size:9px;letter-spacing:.05em;padding:2px 8px;border-radius:9px;background:var(--cream-mid);color:var(--ink2);margin-left:6px}
.db-chip.pre{background:rgba(184,149,74,.15);color:var(--gold-deep)}
.db-chip.exist{background:rgba(30,58,122,.09);color:var(--navy)}
.db-cov-chip{display:inline-block;font-family:var(--fm);font-size:9px;padding:2px 7px;border-radius:8px;background:rgba(61,185,138,.11);color:var(--teal-dark);margin:1px 3px 1px 0}
.db-step-pen{font-family:var(--fm);font-size:10px;color:var(--gold-deep);margin-top:3px}
@media(max-width:1100px){.db-hero{grid-template-columns:1fr}.db-port-grid{grid-template-columns:1fr}}
@media(max-width:560px){.gi-grid3{grid-template-columns:1fr 1fr}}
.gi-cur{display:flex;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:0 9px}
.gi-cur:focus-within{border-color:var(--teal)}
.gi-cur-sym{font-family:var(--fd);font-size:13px;color:var(--muted);padding-right:2px}
.gi-cur input{flex:1;min-width:0;border:none;background:transparent;font-family:var(--fd);font-size:13px;color:var(--ink);padding:7px 0;text-align:right}
.gi-cur input:focus{outline:none}
.gi-field label{display:block;font-family:var(--fm);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.gi-field input[type=number],.gi-field input[type=date],.gi-field input[type=text]{width:100%;box-sizing:border-box;font-family:var(--fd);font-size:13px;color:var(--ink);background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:7px 9px}
.gi-field input:focus{outline:none;border-color:var(--teal)}
.gi-sub{font-size:10px;color:var(--muted);margin-top:3px}
.gi-pct{display:flex;align-items:center;gap:5px}
.gi-pct input{flex:1}
.gi-pct span{font-size:12px;color:var(--muted)}
.gi-x{border:none;background:transparent;color:var(--muted);font-size:17px;cursor:pointer;padding:2px 7px;border-radius:5px;line-height:1}
.gi-x:hover{color:var(--rust);background:var(--cream-mid)}
.gi-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.gi-nofin{font-size:12.5px;color:var(--muted);background:var(--bld-bg2,var(--cream));border:1px dashed var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px}
.gi-loan-title{display:flex;align-items:center;gap:6px}
.gi-loan-row2{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line-soft)}
.gi-vidx{width:100%;box-sizing:border-box;font-family:var(--fd);font-size:13px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:6px;padding:7px 9px;cursor:pointer}
.gi-vidx:focus{outline:none;border-color:var(--teal)}
.gi-loan-name{flex:1;min-width:0;font-family:inherit;font-size:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;background:transparent;border:none;border-bottom:1px dashed transparent;padding:1px 0}
.gi-loan-name:hover,.gi-loan-name:focus{border-bottom-color:var(--line);outline:none}
.gi-loan-name::placeholder{color:inherit;opacity:.85}
.db-basis-wrap{display:flex;align-items:flex-end;gap:16px}
.db-notes-chk{display:inline-flex;align-items:center;gap:7px;font-family:var(--fd);font-size:11.5px;color:var(--ink2);cursor:pointer;white-space:nowrap;padding-bottom:2px}
.db-notes-chk input{accent-color:var(--teal);cursor:pointer}
.db-debt-split{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:7px 0 0;padding-top:6px;border-top:1px solid var(--line-soft)}
.db-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin-top:8px}
.db-col{min-width:0}
.db-col-t{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line-soft);padding-bottom:5px;margin-bottom:5px}
.db-col-t b{font-family:var(--fm);font-size:11.5px;font-weight:500;color:var(--navy);letter-spacing:0;text-transform:none}
.db-item{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:11.5px;color:var(--ink2);padding:2.5px 0}
.db-item-l{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.db-item-l .dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;position:relative;top:-1px}
.db-item-v{font-family:var(--fm);font-size:11px;color:var(--ink);white-space:nowrap}
.db-item-off .db-item-v,.db-item-off .db-item-l{color:var(--muted);text-decoration:none;opacity:.65}
.db-item-none{color:var(--muted);font-style:italic}
.db-item-chk{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.db-item-chk input{accent-color:var(--teal);cursor:pointer;margin:0}
.db-item-x{color:var(--muted);cursor:pointer;padding:0 3px;border-radius:3px}
.db-item-x:hover{color:var(--rust);background:var(--cream-mid)}
.db-add-item{display:block;margin-top:6px;border:none;background:transparent;padding:0;font-family:var(--fd);font-size:11px;color:var(--teal-dark);cursor:pointer}
.db-add-item:hover{text-decoration:underline}
/* inline add form (replaces the + Add link in place) */
.db-add-form{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.db-add-form input{border:1px solid var(--line);border-radius:6px;background:var(--cream);padding:5px 8px;font-family:var(--fd);font-size:11.5px;color:var(--ink);outline:none}
.db-add-form input:focus{border-color:var(--teal,#3db98a)}
.db-add-name{flex:1 1 110px;min-width:0}
.db-add-amt{display:flex;align-items:center;gap:3px;flex:0 1 96px}
.db-add-amt .sym{font-family:var(--fm);font-size:11px;color:var(--muted)}
.db-add-amt input{width:100%;min-width:0}
.db-add-ok{background:var(--navy);color:#fff;border:none;border-radius:6px;padding:5px 10px;font-family:var(--fm);font-size:10px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.db-add-cxl{background:none;border:none;font-size:15px;color:var(--muted);cursor:pointer;padding:0 3px;line-height:1}
.db-add-cxl:hover{color:#c0563c}
/* in-place balance-sheet edits: hover pencil on property/loan rows + popover */
.db-item-edit{display:inline-flex;align-items:center;margin-left:6px;opacity:0;cursor:pointer;color:var(--muted);transition:opacity .12s;flex:0 0 auto}
.db-item:hover .db-item-edit,.db-item-edit:focus{opacity:.8}
.db-item-edit:hover{color:var(--navy)}
.db-bs-pop{min-width:280px;max-width:380px}
.db-bs-lbl{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 5px}
.db-bs-row{display:flex;gap:8px;align-items:center;margin-top:10px}
.db-bs-pop .db-bs-row:first-of-type{margin-top:2px}
.db-bs-pop input[type=text]{padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-size:13px;font-family:var(--fd);font-variant-numeric:tabular-nums;background:var(--cream);color:var(--ink);outline:none}
.db-bs-pop input[type=text]:focus{border-color:var(--teal,#3db98a)}
.db-bs-pop .db-add-amt{flex:0 1 150px}
.db-bs-danger{display:block;width:100%;margin-top:12px;padding:7px 10px;border:1px solid var(--line);border-radius:7px;background:none;color:var(--rust,#8a1e1e);font-size:12px;font-family:var(--fd);cursor:pointer;text-align:left}
.db-bs-danger:hover{border-color:var(--rust,#8a1e1e)}
.db-bs-danger.on{background:var(--rust,#8a1e1e);color:#fff;border-color:var(--rust,#8a1e1e);width:auto;text-align:center;margin-top:0;font-weight:600}
.db-bs-ghost{padding:7px 12px;border:1px solid var(--line);border-radius:7px;background:none;color:var(--ink);font-size:12px;font-family:var(--fd);cursor:pointer}
.db-bs-ghost:hover{background:var(--cream-mid)}
.db-bs-chk{display:flex;gap:7px;align-items:flex-start;font-size:12px;color:var(--ink);margin:11px 0 2px;cursor:pointer;line-height:1.4}
.db-bs-chk input{accent-color:var(--teal-dark,#2a9270);margin-top:2px;flex:0 0 auto}
.db-bs-moverow{font-size:12px;color:var(--ink);margin:7px 0 2px;display:flex;gap:7px;align-items:center}
.db-bs-moverow select{padding:4px 6px;border:1px solid var(--line);border-radius:6px;font-size:12px;font-family:var(--fd);background:var(--white);color:var(--ink)}
/* Documents portal */
.docs-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
#docs-search{flex:0 1 320px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--cream);color:var(--ink);font-family:var(--fd);font-size:13px;outline:none}
#docs-search:focus{border-color:var(--teal,#3db98a);background:var(--white)}
.docs-org-note{font-size:11.5px;color:var(--muted)}
.docs-group{font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin:16px 0 8px}
.docs-sum{font-family:var(--fd);font-size:11.5px;font-weight:400;color:var(--muted);letter-spacing:0;text-transform:none;flex:1 1 auto;text-align:right;padding-right:2px}
.docs-chev{color:var(--muted);flex:0 0 auto;transition:transform .15s}
.docs-bldg[open] .docs-chev{transform:rotate(180deg)}
.docs-hit-ctx{display:block;font-size:10.5px;color:var(--muted);margin-top:1px}
.docs-up-note{font-size:11px;color:var(--muted);margin-bottom:12px}
#docs-up-msg{font-size:11.5px;color:var(--rust);margin-left:8px}
/* building / entity sections framed like the app's boxless modules */
.docs-bldg{border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:12px;padding:4px 16px 12px;margin-bottom:14px;background:var(--white)}
.docs-bldg summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;font-family:var(--fd);font-size:14px;font-weight:600;color:var(--ink);padding:11px 0 9px}
.docs-bldg summary::-webkit-details-marker{display:none}
.docs-bldg summary svg{color:var(--gold-deep);flex:0 0 auto}
.docs-cnt{font-family:var(--fm);font-size:10.5px;color:var(--muted);background:var(--cream-mid);border-radius:9px;padding:2px 8px}
.docs-folder{margin:2px 0 10px 24px}
.docs-folder-h{display:flex;align-items:center;gap:10px;font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep);padding-bottom:5px;border-bottom:1px solid var(--line-soft)}
.docs-add{border:none;background:none;color:var(--teal-dark);font-family:var(--fd);font-size:11px;cursor:pointer;padding:0}
.docs-add:hover{text-decoration:underline}
.docs-none{font-size:11.5px;color:var(--muted);padding:7px 2px}
/* drag-and-drop filing */
.docs-row[draggable="true"]{cursor:grab}
.docs-row.dragging{opacity:.45}
.docs-folder.dragover{outline:1.5px dashed var(--teal-dark,#2a9270);outline-offset:3px;border-radius:8px;background:var(--cream)}
/* desktop-file dropzone: whole page lights up while files hover over it */
#docs-body.docs-dropzone{outline:2px dashed var(--teal-dark,#2a9270);outline-offset:6px;border-radius:12px;position:relative}
#docs-body.docs-dropzone::after{content:'Drop to upload & auto-file — or drop onto a folder to file there';position:sticky;bottom:14px;display:block;text-align:center;font-family:var(--fd);font-size:12.5px;font-weight:600;color:#fff;background:var(--teal-dark,#2a9270);border-radius:8px;padding:9px 14px;margin-top:10px;pointer-events:none}
/* auto-file review queue: amber-framed, impossible to miss */
.docs-review{border:1px solid var(--gold-deep);border-left:3px solid var(--gold-deep);border-radius:12px;padding:12px 16px 8px;margin-bottom:16px;background:var(--white)}
.docs-review-h{font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep);padding-bottom:7px;border-bottom:1px solid var(--line-soft)}
.docs-rrow select{padding:4px 6px;border:1px solid var(--line);border-radius:6px;font-size:11.5px;font-family:var(--fd);background:var(--white);color:var(--ink);max-width:150px}
.docs-rb-txt{padding:4px 8px;border:1px solid var(--line);border-radius:6px;font-size:11.5px;font-family:var(--fd);background:var(--cream);color:var(--ink);max-width:170px}
.docs-appr{color:var(--teal-dark,#2a9270);font-weight:600}
/* parsed-data expansion: chip on the row, definition grid below */
.docs-terms-chip{font-family:var(--fm);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-dark,#2a9270);background:var(--teal-pale,#d4f2e7);border-radius:8px;padding:2px 8px;flex:0 0 auto;white-space:nowrap}
.docs-row[data-exp]{cursor:pointer}
.docs-detail{margin:2px 0 10px 25px;padding:12px 16px;background:var(--cream);border:1px solid var(--line-soft);border-left:3px solid var(--teal-dark,#2a9270);border-radius:8px}
.docs-dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 20px}
.docs-dt span{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.docs-dt b{font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.45}
.docs-det-foot{margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft)}
/* staging manifest before upload & auto-file */
.cmac-modal-card.docs-stage{max-width:680px}
.docs-st-list{max-height:52vh;overflow:auto;margin:8px 0 4px}
.docs-st-row{display:flex;gap:10px;align-items:center;padding:8px 2px;border-bottom:1px solid var(--line-soft,#eceae4)}
.docs-st-row:last-child{border-bottom:none}
.docs-st-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--ink,#181614)}
.docs-st-size{color:var(--muted,#72706a);font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.docs-st-row select{font-size:11.5px;padding:4px 6px;max-width:150px;flex:0 0 auto}
.docs-st-bad{color:var(--rust,#c0563c);font-size:11px}
/* per-lease terms in the Leases & Timing section of the building card */
.gi-lease-bd{margin:2px 0 10px;padding:8px 12px;background:rgba(0,0,0,.03);border:1px solid var(--line-soft,#eceae4);border-radius:8px}
.gi-lease-item{padding:6px 0;border-bottom:1px dashed var(--line-soft,#eceae4)}
.gi-lease-item:last-of-type{border-bottom:0}
.gi-lease-doc{font-size:12px;font-weight:600;color:var(--ink,#181614);word-break:break-word}
.gi-lease-meta{font-size:10.5px;color:var(--muted,#72706a);padding:1px 0 3px}
.gi-lease-nums{display:flex;gap:14px;flex-wrap:wrap;margin-top:3px}
.gi-lease-cell{flex:1 1 150px;min-width:130px}
.gi-lease-cell label{display:block;font-family:var(--fm);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#72706a);margin-bottom:2px}
.gi-lease-cell b{display:block;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;padding:5px 0 2px}
.gi-lease-cell em{display:block;font-style:normal;font-size:10px;color:var(--muted,#72706a)}
.gi-lease-cell input{width:100%;box-sizing:border-box;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;padding:5px 8px;border:1px solid var(--line-soft,#d8d5cd);border-radius:6px;background:var(--card,#fff);color:var(--ink,#181614)}
.gi-lease-cell input:focus{outline:none;border-color:var(--gold-deep,#b8954a)}
.gi-lease-t{font-family:var(--fm);font-size:9.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-deep,#b8954a);margin-bottom:4px}
.gi-lease-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:3px 0;font-size:12px;color:var(--ink,#181614)}
.gi-lease-row em{font-style:normal;font-size:10px;color:var(--muted,#72706a);margin-left:6px}
.gi-lease-row b{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.gi-lease-diff{font-style:normal;font-size:10.5px;color:var(--rust,#c0563c)}
.gi-lease-note{font-size:10.5px;color:var(--muted,#72706a);margin-top:6px;padding-top:6px;border-top:1px dashed var(--line-soft,#eceae4)}
/* dashboard rent-roll: building band rows, per-property subtotals, grand total */
.db-rr-bld td{background:var(--cream-mid,#eceae3);font-family:var(--fm);font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--gold-deep,#b8954a);padding-top:9px;padding-bottom:5px}
.db-rr-sub td{font-weight:600;border-top:1px solid var(--line-soft,#eceae4);color:var(--ink2,#2e2b27)}
.db-rr-tot td{font-weight:700;border-top:2px solid var(--line,#dbd8d0);color:var(--ink,#181614)}
/* review-queue hint: a parsed lease whose premises only loosely matched a building */
.docs-rrow:has(.docs-rhint){flex-wrap:wrap}
.docs-rhint{flex:1 1 100%;order:9;font-size:11px;color:var(--gold-deep,#b8954a);padding:2px 0 0 26px}
.docs-rhint b{font-weight:600}
/* Documents -> Model refresh bar at the top of Group Inputs */
.gi-refresh-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:12px;background:var(--white);padding:12px 18px;margin-bottom:18px}
.gi-refresh-t{font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
#gi-pull-docs-msg{flex:1 1 260px;min-width:0;line-height:1.45}
/* upload queue panel: lives above the tree, survives page re-renders */
#docs-queue{border:1px solid var(--line);border-left:3px solid var(--teal-dark,#2a9270);border-radius:12px;padding:10px 16px 12px;margin-bottom:14px;background:var(--white)}
.docs-q-h{display:flex;justify-content:space-between;align-items:center;font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-dark,#2a9270);margin-bottom:4px}
.docs-q-clear{border:none;background:none;color:var(--teal-dark,#2a9270);font-family:var(--fd);font-size:11px;letter-spacing:0;text-transform:none;cursor:pointer;padding:0}
.docs-q-clear:hover{text-decoration:underline}
.docs-q-row{display:flex;align-items:center;gap:12px;padding:6px 0;border-bottom:1px solid var(--line-soft)}
.docs-q-row:last-child{border-bottom:none}
.docs-q-name{flex:0 1 32%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--ink)}
.docs-q-st{flex:1 1 auto;font-size:11.5px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docs-q-bar{flex:0 0 160px;height:8px;border-radius:4px;background:var(--cream-mid,#eceae3);overflow:hidden}
.docs-q-bar i{display:block;height:100%;background:var(--teal-dark,#2a9270);border-radius:4px;transition:width .25s}
.docs-q-bar.ok i{background:var(--teal,#3db98a)}
.docs-q-bar.warn i{background:var(--gold-deep,#b8954a)}
.docs-q-bar.bad i{background:var(--rust,#c0563c)}
.docs-q-bar.busy i{animation:docsqpulse 1.2s ease-in-out infinite}
@keyframes docsqpulse{0%,100%{opacity:.45}50%{opacity:1}}
.db-empty-note{border:1px solid var(--line);border-left:3px solid var(--gold-deep);border-radius:10px;background:var(--white);padding:12px 16px;margin:-6px 0 18px;font-size:13px;line-height:1.55;color:var(--ink)}
.docs-rfile{background:var(--navy);color:#fff;border-color:var(--navy)}
.docs-rfile:hover{border-color:var(--navy);opacity:.9}
.docs-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line-soft);color:var(--ink)}
.docs-row svg{color:var(--muted);flex:0 0 auto}
.docs-name{font-size:13px;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.docs-info{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.docs-dl{border:1px solid var(--line);background:none;color:var(--navy);border-radius:6px;padding:4px 10px;font-size:11.5px;font-family:var(--fd);cursor:pointer}
.docs-dl:hover{border-color:var(--navy)}
.docs-dl:disabled{opacity:.5;cursor:default}
.docs-empty{font-size:12.5px;color:var(--muted);padding:14px 2px;line-height:1.5}
.db-debt-split b{font-family:var(--fm);font-size:11.5px;font-weight:500;color:var(--ink2)}
.db-total td{border-top:2px solid var(--line);font-weight:600;color:var(--navy);background:var(--cream);font-family:var(--fm);font-size:12px}
.db-total td:first-child{font-family:var(--fd);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.db-xcol{border:none;background:transparent;padding:0;font:inherit;color:inherit;border-bottom:1px dotted var(--teal-dark);color:var(--teal-dark);cursor:pointer;white-space:nowrap}
.db-xcol:hover{border-bottom-style:solid}
.db-xcol-pop{position:fixed;z-index:10001;background:var(--white);border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 32px rgba(10,23,51,.18);padding:10px 14px;min-width:150px}
.db-xcol-pop-t{font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.db-xcol-pop-i{font-family:var(--fd);font-size:12.5px;color:var(--ink);padding:2.5px 0}
.qu-loan-name{font-family:var(--fm);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--teal-dark);margin-bottom:5px}
.gi-xcol{margin:2px 0 10px}
.gi-xcol-row{display:flex;flex-wrap:wrap;gap:6px 16px;padding:4px 0 2px}
.gi-xcol-item{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink2);cursor:pointer;text-transform:none;letter-spacing:0;font-family:var(--fd)}
.gi-xcol-item input{accent-color:var(--teal)}
.gi-toolbar-pipe{align-items:flex-end}
.gi-toolbar-pipe .gi-field{margin-bottom:0}
.gi-buyin-hint{max-width:640px;margin:-4px 0 14px}
.gi-retage{font-family:var(--fd);font-size:11.5px;font-weight:500;color:var(--ink2);display:inline-flex;align-items:center;gap:7px}
.gi-retage input{width:52px;font-family:var(--fm);font-size:12px;text-align:center;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink)}
.gi-retage input:focus{outline:none;border-color:var(--teal)}
.gi-badge{font-family:var(--fm);font-size:10.5px;padding:4px 10px;border-radius:20px;background:var(--cream-mid);color:var(--ink2)}
.gi-badge.ok{background:rgba(61,185,138,.12);color:var(--teal-dark)}
.gi-badge.warn{background:rgba(192,86,60,.1);color:var(--rust)}
.gi-btn{font-family:var(--fd);font-size:11.5px;font-weight:500;padding:6px 13px;border-radius:6px;border:1px solid var(--line);background:var(--white);color:var(--ink2);cursor:pointer}
.gi-btn:hover{border-color:var(--teal);color:var(--teal-dark)}
.gi-btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}
.gi-btn.primary:hover{background:var(--navy-deep,#16295a)}
.gi-btn.primary.attn{box-shadow:0 0 0 3px rgba(61,185,138,.35);background:var(--teal-dark);border-color:var(--teal-dark)}
.gi-ptable-wrap{max-height:430px;overflow-y:auto;border:1px solid var(--line);border-radius:8px}
.gi-ptable{width:100%;border-collapse:collapse;font-size:12px}
.gi-ptable th{position:sticky;top:0;background:var(--cream-mid);font-family:var(--fm);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;z-index:1}
.gi-ptable td{padding:3px 6px;border-top:1px solid var(--line-soft)}
.gi-cell{width:100%;box-sizing:border-box;font-family:var(--fd);font-size:12px;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:5px;padding:5px 7px}
.gi-cell:hover{border-color:var(--line)}
.gi-cell:focus{outline:none;border-color:var(--teal);background:var(--white)}
.gi-cell.num{text-align:right;max-width:110px}
.gi-pct.sm{max-width:120px}
.gi-import-wrap{margin-top:12px;padding:13px;border:1px dashed var(--line);border-radius:8px;background:var(--cream)}
.gi-import-wrap textarea{width:100%;box-sizing:border-box;min-height:110px;font-family:var(--fm);font-size:11.5px;border:1px solid var(--line);border-radius:6px;padding:9px;background:var(--white);color:var(--ink)}
.gi-import-wrap textarea:focus{outline:none;border-color:var(--teal)}
.gi-msg{font-size:11.5px;color:var(--teal-dark);margin-top:6px;min-height:14px}
/* ---- import preview ---- */
.gi-prev{margin-top:14px}
.gi-prev-summary{font-family:var(--fd);font-size:12px;font-weight:500;color:var(--teal-dark);margin-bottom:8px}
.gi-prev-summary.warn{color:var(--gold-deep)}
.gi-prev-summary.err{color:var(--rust)}
.gi-prev-scroll{max-height:300px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--white)}
.gi-prev-table{width:100%;border-collapse:collapse;font-size:11.5px;white-space:nowrap}
.gi-prev-table th{position:sticky;top:0;background:var(--cream-mid);font-family:var(--fm);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:7px 10px;z-index:1}
.gi-prev-table td{padding:5px 10px;border-top:1px solid var(--line-soft);color:var(--ink)}
.gi-prev-table td.gi-prev-issues,.gi-prev-table th.gi-prev-issues{white-space:normal;min-width:200px;font-size:10.5px;color:var(--muted)}
.gi-prev-warn td{background:rgba(184,149,74,.06)}
.gi-prev-error td{background:rgba(192,86,60,.07);color:var(--muted)}
.gi-chip{display:inline-block;font-family:var(--fm);font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;border-radius:8px;vertical-align:1px}
.gi-chip.ok{background:rgba(61,185,138,.14);color:var(--teal-dark)}
.gi-chip.warn{background:rgba(184,149,74,.16);color:var(--gold-deep)}
.gi-chip.err{background:rgba(192,86,60,.14);color:var(--rust)}
.gi-prev-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.gi-prev-note{font-size:10.5px;color:var(--muted)}
.gi-derived{font-family:var(--fd);font-size:12px;color:var(--muted);text-align:right;padding-right:14px!important}
/* ---- partner pro-forma in modal ---- */
.modal{width:min(720px,100%)!important}
.pf-scroll{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--white)}
.pf-table th[scope=col]{text-align:right}
.pf-table th[scope=col]:first-child{text-align:left}
.pf-empty{font-size:12px;color:var(--muted);padding:14px;text-align:center}
.gi-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:sticky;bottom:0;background:linear-gradient(to top,var(--cream) 75%,transparent);padding:16px 0 6px;z-index:5}
.sm-score-tag-row{display:flex;align-items:center;justify-content:center;gap:6px;position:relative;padding:0 22px}
.m360-info-btn{border:none;background:none;cursor:pointer;font-size:17px;color:var(--muted);line-height:1;padding:2px 4px;border-radius:4px;transition:color .12s}
.m360-info-btn:hover{color:var(--teal-dark)}
/* ---- M360 info overlay ---- */
.m360-overlay{position:fixed;inset:0;background:rgba(10,23,51,.5);backdrop-filter:blur(2px);align-items:center;justify-content:center;z-index:60;padding:24px;display:none}
.m360-overlay.open,.m360-overlay[style*="flex"]{display:flex}
.m360-panel{background:var(--cream);border-radius:12px;width:min(660px,100%);max-height:88vh;overflow-y:auto;padding:26px 28px 22px;position:relative;box-shadow:0 20px 60px rgba(10,23,51,.4)}
.m360-panel-head{margin-bottom:18px}
.m360-panel-title{font-family:var(--fs);font-size:26px;color:var(--navy);margin-bottom:7px}
.m360-panel-sub{font-size:12.5px;color:var(--ink2);line-height:1.55}
.m360-components{display:flex;flex-direction:column;gap:0}
.m360-comp{border-top:1px solid var(--line-soft);padding:14px 0 4px}
.m360-comp-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.m360-comp-name{font-family:var(--fd);font-size:13.5px;font-weight:600;color:var(--navy)}
.m360-comp-weight{font-family:var(--fm);font-size:10px;letter-spacing:.06em;color:var(--muted);background:var(--cream-mid);padding:2px 8px;border-radius:10px}
.m360-comp-bar{flex:1;height:4px;border-radius:2px;background:rgba(0,0,0,.07);position:relative}
.m360-comp-bar::after{content:'';position:absolute;inset:0;right:0;border-radius:2px;background:var(--c)}
.m360-comp-body{font-size:12px;color:var(--ink2);line-height:1.55;padding-bottom:10px}
.m360-formula{background:var(--cream-mid);border-radius:6px;padding:8px 12px;margin:8px 0 4px;font-family:var(--fm);font-size:11px;color:var(--navy);line-height:1.55}
.m360-note{font-size:11px;color:var(--muted);margin-top:4px;font-style:italic}
.m360-example{background:rgba(61,185,138,.06);border-left:2px solid var(--teal);border-radius:4px;padding:9px 12px;margin-top:8px;font-size:11.5px;color:var(--ink2);line-height:1.6}
.m360-example b{color:var(--navy);font-weight:600}
.m360-composite-note{font-family:var(--fm);font-size:10.5px;color:var(--muted);border-top:1px solid var(--line);margin-top:14px;padding-top:12px;letter-spacing:.02em}
.sm-scn-right{display:flex;align-items:center;gap:10px}
.scn-info-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:pointer;color:var(--muted);border-radius:50%;transition:color .12s,background .12s;user-select:none;flex-shrink:0}
.scn-info-btn:hover{color:var(--teal-dark);background:rgba(61,185,138,.08)}
.scn-info-btn svg{display:block}
.scen-info-panel{width:min(560px,100%)}
.scen-info-body{font-size:13px;color:var(--ink2);line-height:1.65}
.scen-info-body p{margin:0 0 12px}
.scen-info-body b{color:var(--navy)}
.scen-info-body .m360-example{margin:12px 0}

/* ---- additions: nav tabs, segmented control, current-page facts/timeline, modal events ---- */
.nav-tab{display:flex;align-items:center;gap:13px;width:100%;font-family:var(--fd);font-size:12.5px;font-weight:500;padding:11px 11px;border-radius:8px;border:1px solid transparent;background:transparent;color:rgba(255,255,255,.55);cursor:pointer;transition:color .14s,background .14s;white-space:nowrap;text-align:left}
.nav-tab svg{flex:0 0 auto}
.nav-tab:hover{color:#fff}
.nav-tab.on{background:rgba(61,185,138,.14);border-color:rgba(61,185,138,.35);color:#6fdcae}
.acct{position:relative}
.acct-menu{position:absolute;left:calc(100% + 14px);bottom:0;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 10px 32px rgba(10,23,51,.18);min-width:190px;padding:6px;z-index:950}
.acct-item{display:block;width:100%;text-align:left;border:none;background:none;font-family:var(--fd);font-size:12.5px;color:var(--ink);padding:9px 12px;border-radius:6px;cursor:pointer}
.acct-item:hover{background:var(--cream-mid)}
.seg-row{display:flex;gap:6px;margin-top:2px}
.seg{flex:1;font-family:var(--fd);font-size:11.5px;font-weight:500;padding:7px 8px;border-radius:6px;border:1px solid var(--line);background:var(--white);color:var(--muted);cursor:pointer;transition:all .14s;text-align:center}
.seg:hover{border-color:var(--teal)}
.seg.on{background:var(--navy);border-color:var(--navy);color:#fff}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.fact{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.fact-l{font-family:var(--fm);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.fact-v{font-family:var(--fs);font-size:24px;color:var(--navy);margin-top:5px;line-height:1.1}
.fact-s{font-size:10.5px;color:var(--muted);margin-top:4px;line-height:1.35}
.tl-list{display:flex;flex-direction:column;gap:0}
.tl-item{display:flex;gap:14px;align-items:baseline;padding:9px 4px;border-bottom:1px solid var(--line-soft);font-size:12.5px;color:var(--ink2)}
.tl-item:last-child{border-bottom:none}
.tl-y{font-family:var(--fm);font-size:12px;font-weight:500;color:var(--navy);flex-shrink:0;width:44px}
.tl-item.refi .tl-y{color:var(--gold-deep)}
.tl-item.buyout .tl-y{color:var(--rust)}
.tl-item.buyin .tl-y{color:var(--teal-dark)}
.mev{display:flex;gap:12px;align-items:baseline;padding:7px 2px;border-bottom:1px solid var(--line-soft);font-size:12px;color:var(--ink2)}
.mev:last-child{border-bottom:none}
.mev-y{font-family:var(--fm);font-size:11.5px;font-weight:500;color:var(--navy);flex-shrink:0;width:40px}
.sm-ctl-val.changed{color:var(--teal-dark)}
.collapse-panel{padding:0}
/* 360 Compare's scenario module mirrors the dashboard cash-flow frame:
   transparent, hairline border, navy left edge — with the balance sheet's
   dark round chevron as its expand control */
#sm-scn-panel{background:transparent;border:1px solid var(--line);border-left:3px solid var(--navy);border-radius:12px}
#sm-scn-panel>summary::after,#sm-scn-panel[open]>summary::after{
  content:'';width:26px;height:26px;border-radius:50%;flex:0 0 auto;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.85)' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"),linear-gradient(155deg,#0a1733,#173266);
  background-size:13px 13px,cover;background-position:center;background-repeat:no-repeat;
  transition:transform .18s ease}
#sm-scn-panel[open]>summary::after{transform:rotate(180deg)}
html.theme-modern #sm-scn-panel>summary::after,html.theme-modern #sm-scn-panel[open]>summary::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.85)' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"),linear-gradient(155deg,#111514,#222a25)}
.collapse-panel>summary{list-style:none;cursor:pointer;user-select:none;padding:18px 20px;margin-bottom:0;border-bottom:none;align-items:center}
.collapse-panel>summary::-webkit-details-marker{display:none}
.collapse-panel>summary::after{content:'+';font-family:var(--fm);color:var(--muted);font-size:18px;margin-left:auto;line-height:1}
.collapse-panel[open]>summary::after{content:'\2212'}
.collapse-panel[open]>summary{border-bottom:1px solid var(--line-soft)}
.collapse-panel>summary>h2{pointer-events:none}
.collapse-panel>.tl-list,.collapse-panel>.sm-scenarios{padding:0 20px 20px}
/* group-inputs collapsible panels: meta hugs the marker, body gets padding */
.gi-clp>summary .meta{margin-left:auto}
.gi-clp>summary::after{margin-left:12px}
.gi-clp>.gi-clp-body{padding:16px 20px 20px}
/* ---- financial statements ---- */
.collapse-panel>.fin-wrap{padding:16px 20px 20px}
.fin-sect-t{font-family:var(--fm);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-dark);font-weight:500;margin-bottom:9px}
.fin-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
.fin-table{width:100%;border-collapse:collapse;font-family:var(--fd);font-size:12px;white-space:nowrap}
.fin-table th[scope=col]{background:var(--cream-mid);font-family:var(--fm);font-size:10px;letter-spacing:.04em;color:var(--muted);text-align:right;padding:8px 12px;font-weight:500;position:sticky;top:0;z-index:2}
.fin-table th.fin-corner{text-align:left;left:0;z-index:3}
.fin-table th[scope=row]{text-align:left;font-family:var(--fd);font-size:12px;font-weight:400;color:var(--ink2);padding:6px 14px 6px 16px;position:sticky;left:0;background:var(--white);border-right:1px solid var(--line-soft);z-index:1}
.fin-table td{text-align:right;padding:6px 12px;color:var(--ink);font-variant-numeric:tabular-nums}
.fin-table tbody tr:hover td,.fin-table tbody tr:hover th[scope=row]{background:var(--cream)}
.fin-subtotal th[scope=row],.fin-subtotal td{font-weight:500;border-top:1px solid var(--line);color:var(--ink)}
.fin-total th[scope=row],.fin-total td{font-weight:600;border-top:2px solid var(--navy);color:var(--navy);background:rgba(30,58,122,.03)}
/* the sticky row-header column must stay OPAQUE while the years scroll
   underneath it — a translucent wash or transparent spacer lets the later
   columns bleed through. Paint the wash over a solid base instead. */
.fin-total th[scope=row]{background:linear-gradient(rgba(30,58,122,.03),rgba(30,58,122,.03)),var(--white)}
.fin-highlight th[scope=row],.fin-highlight td{color:var(--teal-dark);font-weight:500}
.fin-spacer td,.fin-spacer th{padding:3px;border:none;background:transparent!important}
.fin-spacer th{background:var(--white)!important}
/* Projections & 360 Compare render the financials flat on the page (no white
   panel), so the sticky label column masks scrolled columns with the PAGE
   color — still opaque, but matching the translucent look of the rest of the
   table. Row hover steps to cream-mid so it stays visible on the cream page. */
#page-current .fin-table th[scope=row],#sm-sub-model .fin-table th[scope=row]{background:var(--cream)}
#page-current .fin-total th[scope=row],#sm-sub-model .fin-total th[scope=row]{background:linear-gradient(rgba(30,58,122,.03),rgba(30,58,122,.03)),var(--cream)}
#page-current .fin-spacer th,#sm-sub-model .fin-spacer th{background:var(--cream)!important}
#page-current .fin-table tbody tr:hover td,#page-current .fin-table tbody tr:hover th[scope=row],
#sm-sub-model .fin-table tbody tr:hover td,#sm-sub-model .fin-table tbody tr:hover th[scope=row]{background:var(--cream-mid)}
.fin-note{font-size:10.5px;color:var(--muted);margin-top:12px;line-height:1.4}
/* 5 scenario cards: stretch to fill wide rows, wrap cleanly when narrow */
.sm-scenarios{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:640px){.sm-scenarios{grid-template-columns:1fr}}
/* ---- chart resize fix: let 1fr grid tracks shrink below canvas intrinsic size ---- */
.charts-grid{min-width:0}
.chart-card{min-width:0}
.chart-wrapper{min-width:0;width:100%}
.charts-grid canvas{max-width:100%!important;box-sizing:border-box}
.panel{overflow:hidden}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
@media(max-width:900px){.two-col{grid-template-columns:1fr}}
/* ---- year distribution breakdown popup (click a bar on the cash-flow charts) ---- */
.yb-overlay{position:fixed;inset:0;background:rgba(10,23,51,.55);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:10002;padding:24px}
.yb-overlay.show{display:flex}
.yb-panel{background:var(--cream);border-radius:12px;width:min(560px,100%);max-height:88vh;overflow-y:auto;padding:24px 26px;position:relative;box-shadow:0 20px 60px rgba(10,23,51,.4)}
.yb-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:24px;color:var(--muted);cursor:pointer;line-height:1;padding:2px 4px}
.yb-close:hover{color:var(--ink)}
.yb-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.yb-head h3{font-family:var(--fs);font-size:23px;color:var(--navy);font-weight:400}
.yb-badge{font-family:var(--fm);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:#b8954a;border-radius:20px;padding:3px 10px}
.yb-sub{font-size:12px;color:var(--muted);margin-bottom:6px;line-height:1.4}
.yb-sec-t{font-family:var(--fm);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--line-soft)}
.yb-row{display:grid;grid-template-columns:180px 1fr 110px;gap:10px;align-items:center;padding:4px 0}
.yb-lbl{font-size:12.5px;color:var(--ink2)}
.yb-bar{height:8px;background:var(--cream-mid);border-radius:4px;overflow:hidden}
.yb-bar span{display:block;height:100%;border-radius:4px}
.yb-val{font-family:var(--fm);font-size:12.5px;font-weight:500;text-align:right;color:var(--navy);font-variant-numeric:tabular-nums}
.yb-subtotal{display:flex;justify-content:space-between;gap:10px;padding:7px 0 2px;margin-top:4px;border-top:1px solid var(--line-soft);font-family:var(--fm);font-size:12.5px;color:var(--ink)}
.yb-total{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding:11px 14px;background:var(--white);border:1px solid var(--line);border-radius:9px;font-family:var(--fm);font-size:13.5px;font-weight:500;color:var(--navy)}
.yb-note{font-size:11.5px;color:var(--muted);font-style:italic;margin-top:10px;line-height:1.4}
.yb-pnote{margin-top:12px;padding:9px 12px;background:var(--teal-pale,#d4f2e7);border-radius:8px;font-size:12.5px;color:var(--ink)}
.yb-refi-toggle{display:flex;align-items:center;gap:6px;margin-top:14px;background:none;border:none;padding:0;font-family:var(--fm);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#b8954a;cursor:pointer;font-weight:500}
.yb-refi-toggle:hover{color:#96783a}
.yb-refi{margin-top:10px;padding:13px 15px;background:var(--white);border:1px solid var(--line);border-left:3px solid #b8954a;border-radius:9px}
.yb-st-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:6px 0;border-bottom:1px solid var(--line-soft)}
.yb-st-row:last-child{border-bottom:none}
.yb-st-l{font-size:12.5px;color:var(--ink)}
.yb-st-l span{display:block;font-size:11px;color:var(--muted);margin-top:1px;line-height:1.35}
.yb-st-v{font-family:var(--fm);font-size:12.5px;font-weight:500;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums}
.yb-st-row.neg .yb-st-v{color:#c0563c}
.yb-st-row.total{border-top:1.5px solid #b8954a;margin-top:4px;padding-top:9px}
.yb-st-row.total .yb-st-l{font-weight:600;color:var(--navy)}
.yb-st-row.total .yb-st-v{font-size:13.5px;font-weight:600}
@media(max-width:560px){.yb-row{grid-template-columns:1fr 100px}.yb-bar{display:none}}
/* tiny info marker on KPI labels — click to open a small explainer */
.db-info{display:inline-block;margin-left:5px;font-size:11px;color:var(--muted);cursor:pointer;text-transform:none;letter-spacing:0;vertical-align:-1px}
.db-info:hover{color:var(--teal-dark,#2a9270)}
.db-info-pop{max-width:250px;font-family:var(--fd);font-size:12px;color:var(--ink2);line-height:1.45;text-transform:none;letter-spacing:0}
/* admin "viewing" badge: subtle chip bottom-right, left of the feedback bubble */
.viewing-badge{position:fixed;right:64px;bottom:22px;z-index:575;font-family:var(--fm);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:14px;padding:4px 11px;pointer-events:none;box-shadow:0 3px 10px rgba(10,23,51,.08);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:right .22s ease}
body.fb-hint-on .viewing-badge{right:242px}
/* ---- discreet feedback module, pinned bottom-right of every page ---- */
.fb-launch{position:fixed;right:18px;bottom:16px;z-index:580;width:36px;height:36px;border-radius:50%;background:var(--white);border:1px solid var(--line);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(10,23,51,.10);opacity:.6;transition:opacity .15s,color .15s}
.fb-launch:hover{opacity:1;color:var(--teal-dark,#2a9270)}
.fb-launch.fb-awake{opacity:1;color:var(--teal-dark,#2a9270)}
.fb-launch.fb-up{bottom:84px}
.fb-hint{position:fixed;right:62px;bottom:22px;z-index:579;background:var(--navy);color:#fff;font-family:var(--fd);font-size:12px;padding:7px 13px;border-radius:18px;box-shadow:0 6px 20px rgba(10,23,51,.22);white-space:nowrap;opacity:0;transform:translateX(6px);pointer-events:none;transition:opacity .25s,transform .25s}
.fb-hint.show{opacity:1;transform:none}
.fb-hint.fb-up{bottom:90px}
.fb-panel{position:fixed;right:18px;bottom:62px;z-index:585;width:322px;max-width:calc(100vw - 96px);background:var(--cream);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px rgba(10,23,51,.25);padding:16px 17px;display:none}
.fb-panel.show{display:block}
.fb-panel.fb-up{bottom:130px}
.fb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.fb-title{font-family:var(--fs);font-size:16.5px;color:var(--navy);line-height:1.25}
.fb-x{background:none;border:none;font-size:19px;color:var(--muted);cursor:pointer;line-height:1;padding:0 2px}
.fb-q{font-family:var(--fm);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:13px 0 6px}
.fb-freq{display:flex;gap:6px;flex-wrap:wrap}
.fb-freq button{flex:1 1 auto;background:var(--white);border:1px solid var(--line);border-radius:20px;padding:5px 8px;font-family:var(--fd);font-size:11.5px;color:var(--ink2);cursor:pointer}
.fb-freq button.on{background:var(--teal-pale,#d4f2e7);border-color:var(--teal,#3db98a);color:var(--teal-dark,#2a9270);font-weight:500}
.fb-stars{display:flex;gap:2px}
.fb-stars button{background:none;border:none;font-size:21px;line-height:1;color:var(--line);cursor:pointer;padding:0 2px;transition:color .1s}
.fb-stars button.on{color:#b8954a}
.fb-panel textarea{width:100%;box-sizing:border-box;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-family:var(--fd);font-size:12.5px;color:var(--ink);resize:vertical;min-height:42px}
.fb-actions{display:flex;align-items:center;gap:10px;margin-top:13px}
.fb-send{background:var(--navy);color:#fff;border:none;border-radius:8px;padding:8px 15px;font-family:var(--fm);font-size:11px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.fb-send:disabled{opacity:.5;cursor:default}
.fb-note{font-size:10.5px;color:var(--muted);line-height:1.3}
.fb-msg{font-size:12px;color:var(--teal-dark,#2a9270);margin-top:8px;min-height:1em}
.fb-msg.err{color:#c0563c}
/* team page: product feedback table */
.team-fb-stars{color:#b8954a;white-space:nowrap;letter-spacing:1px}
.team-fb-dim{color:var(--line)}
.team-fb-notes{max-width:340px;white-space:normal;line-height:1.4}
.team-fb-notes>div{margin-bottom:4px}
.team-fb-tag{font-family:var(--fm);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
/* feedback resolve workflow */
.fb-res{background:var(--navy);color:#fff;border:none;border-radius:6px;padding:4px 11px;font-family:var(--fd);font-size:11.5px;cursor:pointer;white-space:nowrap}
.fb-res:hover{opacity:.88}
.fb-res:disabled{opacity:.5;cursor:default}
.fb-res.ghost{background:none;border:1px solid var(--line);color:var(--muted)}
.fb-res.ghost:hover{color:var(--ink);border-color:var(--muted);opacity:1}
tr.fb-done td{opacity:.55}
.fb-toggle{background:none;border:none;color:var(--teal-dark);font-family:var(--fd);font-size:12px;cursor:pointer;padding:0;margin-bottom:10px}
.fb-toggle:hover{text-decoration:underline}
.fb-empty{font-size:12.5px;color:var(--muted);padding:10px 2px}
.gi-matchocc{background:none;border:none;padding:0;font-family:var(--fd);font-size:11px;color:var(--teal-dark,#2a9270);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.gi-matchocc:hover{color:var(--teal,#3db98a)}
.gi-noorig{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink2);margin:2px 0 10px;cursor:pointer}
.gi-noorig input{accent-color:var(--teal-dark,#2a9270)}
/* retirement year kicked forward: highlight the cell + explain above the table */
input.gi-ret-kicked{border-color:#b8954a!important;background:rgba(184,149,74,.12)!important;outline:1.5px solid rgba(184,149,74,.5)}
.gi-ret-note{background:rgba(184,149,74,.10);border:1px solid rgba(184,149,74,.4);border-left-width:4px;border-radius:8px;padding:9px 13px;font-size:12.5px;color:var(--ink2);margin-bottom:10px;line-height:1.5}
/* buildings sheet import: validation report + missing-field highlights */
.gi-imp{background:var(--white);border:1px solid var(--teal,#3db98a);border-left-width:4px;border-radius:10px;padding:13px 16px;margin-bottom:16px}
.gi-imp.bad{border-color:#c0563c}
.gi-imp-t{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-family:var(--fm);font-size:12px;font-weight:500;color:var(--navy);margin-bottom:7px}
.gi-imp-x{background:none;border:none;font-size:18px;line-height:1;color:var(--muted);cursor:pointer;padding:0 2px}
.gi-imp-row{font-size:12px;line-height:1.5;padding:2px 0}
.gi-imp-row.error{color:#c0563c}
.gi-imp-row.error::before{content:"✕ ";font-weight:600}
.gi-imp-row.warn{color:#96783a}
.gi-imp-row.warn::before{content:"△ "}
.gi-imp-row.info{color:var(--muted)}
.gi-missing{border-color:#c0563c!important;background:rgba(192,86,60,.06)!important;outline:1.5px solid rgba(192,86,60,.45)}

/* in-app notices (replacing browser alert dialogs) */
#app-notices{position:fixed;right:18px;bottom:18px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 36px))}
.app-notice{background:var(--card,#fff);color:var(--ink,#181614);border:1px solid var(--line,#dbd8d0);border-left:3px solid var(--muted,#72706a);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.18);padding:12px 16px;font-size:13px;line-height:1.45;white-space:pre-line;cursor:pointer;animation:app-notice-in .25s ease;word-break:break-word}
.app-notice.error{border-left-color:var(--rust,#c0563c)}
.app-notice.ok{border-left-color:var(--teal,#3db98a)}
.app-notice.info{border-left-color:var(--gold-deep,#b8954a)}
.app-notice.bye{opacity:0;transform:translateY(6px);transition:all .3s ease}
@keyframes app-notice-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* inline parse-failure strip, pinned directly under the document's row */
.docs-rowerr{margin:2px 0 8px 26px;padding:9px 13px;border:1px solid rgba(192,86,60,.4);border-left:3px solid var(--rust,#c0563c);border-radius:8px;background:rgba(192,86,60,.07);color:var(--ink,#181614);font-size:12.5px;line-height:1.5}

/* re-parse: fields the fresh parse changed get flagged in the detail grid */
.docs-dt.docs-dchanged{background:rgba(232,201,106,.16);border-radius:6px;box-shadow:inset 3px 0 0 var(--gold-deep,#b8954a);padding-left:8px;position:relative}
.docs-dt.docs-dchanged > span::after{content:"updated";margin-left:7px;font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-deep,#b8954a);background:rgba(232,201,106,.25);padding:1px 6px;border-radius:8px;vertical-align:1px}
.docs-nochange{font-size:11.5px;color:var(--muted,#72706a);margin-right:12px}

/* two-step remove: the x arms into an in-place confirm pill, no browser dialog */
.db-item-x.docs-del-armed{width:auto;padding:2px 10px;border-radius:10px;background:var(--rust,#c0563c);color:#fff;font-size:10.5px;font-weight:600;letter-spacing:.02em;line-height:1.5}

/* documents toolbar icons + the visible drag-and-drop target */
.docs-icon-btn{display:inline-flex;align-items:center;gap:7px}
.docs-icon-btn svg{flex:none}
.docs-dz-hint{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px 0 4px;padding:16px 18px;border:1.5px dashed var(--line,#c9c5bb);border-radius:10px;background:rgba(0,0,0,.025);color:var(--muted,#72706a);font-size:12.5px;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.docs-dz-hint svg{width:18px;height:18px;flex:none}
.docs-dz-hint b{color:var(--ink2,#2e2b27);font-weight:600}
.docs-dz-hint:hover{border-color:var(--teal-dark,#2a9270);color:var(--ink2,#2e2b27);background:rgba(42,146,112,.05)}
#docs-body.docs-dropzone .docs-dz-hint{border-color:var(--teal-dark,#2a9270);background:rgba(42,146,112,.08);color:var(--teal-dim,#1a6b4e)}
.docs-group-row{display:flex;align-items:center;justify-content:space-between}
.docs-group-row .docs-dl{text-transform:none;letter-spacing:normal}

/* refi rail: model-figure overrides — the edited tag doubles as the reset */
button.rf-reset{cursor:pointer;border:0;background:var(--gold-deep,#b8954a);color:#fff;border-radius:8px;padding:1px 8px;font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
button.rf-reset:hover{background:var(--rust,#c0563c)}

/* empty building folder: in-place delete with the model impact stated */
.docs-folder-del{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px dashed var(--line-soft,#eceae4)}
.docs-folder-del-note{font-size:11.5px;color:var(--muted,#72706a)}
.docs-bldg-del.armed{background:var(--rust,#c0563c);color:#fff;border-color:var(--rust,#c0563c)}
/* ---- Ask Mentes: the question box beside the score, inside the navy hero card ---- */
.db-ask{min-width:0;position:relative;min-height:330px}
.db-ask-wrap{position:absolute;inset:0;display:flex;flex-direction:column;padding:10px 12px 10px 2px}
.db-ask-wrap .db-ki-t{color:var(--gold);margin-bottom:8px}
.db-ask-log{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;padding-right:6px;display:flex;flex-direction:column;gap:8px}
.db-ask-intro{color:rgba(255,255,255,.62);font-size:14px;line-height:1.5;padding:6px 0}
.db-ask-q{align-self:flex-end;max-width:88%;background:rgba(61,185,138,.22);color:#fff;border-radius:12px 12px 3px 12px;padding:7px 11px;font-size:14px;line-height:1.45}
.db-ask-a{align-self:flex-start;max-width:94%;color:rgba(255,255,255,.9);font-size:14.5px;line-height:1.5;padding:4px 2px}
.db-ask-a.err{color:#f0a48e}
.db-ask-dots{display:inline-flex;gap:4px;padding:6px 2px}
.db-ask-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);animation:dbAskDot 1.1s infinite ease-in-out}
.db-ask-dots i:nth-child(2){animation-delay:.18s}.db-ask-dots i:nth-child(3){animation-delay:.36s}
@keyframes dbAskDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.db-ask-row{display:flex;gap:8px;align-items:center;margin-top:10px}
.db-ask-inwrap{position:relative;flex:1;min-width:0}
.db-ask-inwrap input{width:100%;box-sizing:border-box;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:10px;color:#fff;font-size:14px;padding:10px 12px;outline:none}
.db-ask-inwrap input:focus{border-color:rgba(111,220,174,.7);background:rgba(255,255,255,.11)}
/* the revolving suggestion: faint text laid over the empty box, click to adopt it */
.db-ask-ph{position:absolute;left:13px;right:12px;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.42);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .4s;cursor:text}
.db-ask-ph.fade,.db-ask-ph.off{opacity:0}
.db-ask-ph.off{pointer-events:none}
.db-ask-send{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:none;background:var(--teal);color:#0a1733;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.db-ask-send:hover{background:#6fdcae}.db-ask-send:disabled{opacity:.5;cursor:default}
.db-ask-send svg{width:18px;height:18px}
.db-ask-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:6px}
.db-ask-note{color:rgba(255,255,255,.4);font-size:11.5px}
.db-ask-clear{border:none;background:none;color:rgba(255,255,255,.45);font-size:11.5px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.db-ask-clear:hover{color:#fff}
/* right column: Key Insights as its own thinner card, the Cash Flow card beneath */
.db-hero-right{display:flex;flex-direction:column;gap:14px;min-width:0}
.db-ki-side{min-height:0;height:236px;border:1px solid var(--line);border-left:3px solid var(--gold-deep);border-radius:12px;background:var(--white)}
.db-ki-side .db-ki-wrap{padding:12px 14px 8px 14px}
.db-ki-side .db-ki-t{font-size:12px;margin-bottom:8px}
.db-ki-side .db-ki-row{font-size:14.5px;padding:4px 0}
.db-ki-side .db-ki-yr{font-size:13px;min-width:42px}
.db-ki-side .db-ki-more{color:rgba(10,23,51,.35)}.db-ki-side .db-ki-more:hover{color:var(--navy)}
.db-ki-side .db-flow-gear{color:var(--muted)}.db-ki-side .db-flow-gear:hover{color:var(--navy)}
.db-hero-right .db-flow{height:auto}
@media(max-width:1000px){.db-ki-side{height:auto}.db-ki-side .db-ki-wrap{position:static}.db-ki-side .db-ki-in{max-height:240px}}
/* hero sizing pass: narrower score column, shorter Key Insights and Cash Flow
   cards so the Ask Mentes box stays compact (the right column sets the height) */
.db-hero-pair{grid-template-columns:232px minmax(270px,1fr);gap:10px}
.db-hero-pair .sm-score-card,html.theme-modern .db-hero-pair .sm-score-card{padding:12px 10px}
.db-ask{min-height:250px}
.db-ki-side{height:178px}
.db-ki-side .db-ki-wrap{padding:10px 14px 6px 14px}
.db-ki-side .db-ki-t{margin-bottom:5px}
.db-ki-side .db-ki-row{font-size:14px;padding:3px 0}
.db-hero-right .db-flow{padding:10px 16px 12px}
.db-hero-right .db-flow-head{margin-bottom:0}
.db-hero-right .db-flow-head .db-flow-basis{padding-bottom:6px}
.db-hero-right .db-flow-row{padding:5px 0}
.db-hero-right .db-flow-row .l,.db-hero-right .db-flow-row .v{font-size:15.5px}
.db-hero-right .db-flow-dscr-row{padding:6px 12px;margin-top:6px}
.db-hero-right .db-flow-dscr-row .l{font-size:13.5px}
.db-hero-right .db-flow-dscr-row .v{font-size:14.5px}
/* proportions pass 2: the right column widens (Key Insights wider, shorter);
   Ask Mentes fills its box with a centred empty state of starter questions */
.db-hero{grid-template-columns:minmax(0,1.2fr) 1fr}
.db-ki-side{height:152px}
.db-ki-side .db-ki-row{padding:2px 0}
.db-ask{min-height:240px}
.db-ask-empty{flex:1;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:0 2px}
.db-ask-empty .db-ask-intro{padding:0}
.db-ask-chips{display:flex;flex-wrap:wrap;gap:8px}
.db-ask-chip{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:rgba(255,255,255,.86);border-radius:999px;padding:6px 13px;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}
.db-ask-chip:hover{background:rgba(61,185,138,.22);border-color:rgba(111,220,174,.6);color:#fff}
/* hero v3: Ask Mentes compact (title + question box) with Key Insights directly
   beneath, both inside the navy card; a live conversation expands Ask Mentes
   downward over Key Insights' space until it is cleared */
.db-hero{grid-template-columns:minmax(0,1.3fr) 1fr}
.db-hero-stack{display:flex;flex-direction:column;min-width:0;height:326px}
.db-hero-stack .db-ask{min-height:0;flex:0 0 auto;position:static}
.db-hero-stack .db-ask-wrap{position:static;padding:8px 12px 6px 2px;height:auto}
.db-hero-stack .db-ask-wrap .db-ki-t{margin-bottom:6px}
.db-hero-stack .db-ask-row{margin-top:0}
.db-hero-stack .db-ask-foot{padding-top:4px}
.db-hero-stack .db-ask-log{display:none}
.db-hero-stack .db-ki{min-height:0;flex:1;position:relative}
.db-hero-pair.asking .db-ki{display:none}
.db-hero-pair.asking .db-ask{flex:1;min-height:0;display:flex;flex-direction:column}
.db-hero-pair.asking .db-ask-wrap{flex:1;min-height:0;display:flex;flex-direction:column}
.db-hero-pair.asking .db-ask-log{display:flex;margin-bottom:10px}
/* hero v3.1: no send button (Enter submits; a faint return glyph hints it), no
   data note, shorter card — Key Insights takes the height that remains */
.db-hero-stack{height:272px}
.db-ask-inwrap input{padding-right:32px}
.db-ask-enter{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.32);font-size:14px;pointer-events:none;line-height:1}
.db-hero-stack .db-ask-foot{padding-top:2px;justify-content:flex-end}
/* Ask Mentes: expand toggle + answer status tag; admin Ask Mentes log */
.db-ask-exp{margin-left:auto;border:none;background:none;color:rgba(255,255,255,.5);cursor:pointer;padding:2px;line-height:0}
.db-ask-exp:hover{color:#fff}.db-ask-exp svg{width:15px;height:15px}
.db-hero.ask-expanded .db-hero-stack{height:auto;min-height:272px}
.db-hero.ask-expanded .db-ask-log{max-height:560px}
.db-hero.ask-expanded .db-kpis{align-self:start}
.db-ask-tag{display:inline-block;margin-top:4px;font-family:var(--fm);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:#e8c96a}
.ins-ask-ctl{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-size:13px;color:var(--ink2)}
.ins-ask-ctl label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.ins-ask-csv{border:1px solid var(--line);background:var(--white);border-radius:7px;padding:5px 11px;font-size:12px;cursor:pointer;color:var(--ink2)}
.ins-ask-csv:hover{border-color:var(--teal)}
.ins-asklog summary{cursor:pointer;list-style:none}
.ins-asklog summary::-webkit-details-marker{display:none}
.ins-ask-ans{margin-top:6px;font-size:13px;color:var(--ink2);white-space:pre-wrap;max-width:70ch;line-height:1.5}
.ins-ask-row.gap td{background:rgba(232,201,106,.10)}
/* Ask Mentes title-row tools: Clear sits beside the expand icon, away from the box */
.db-ask-tools{margin-left:auto;display:inline-flex;align-items:center;gap:12px}
.db-ask-tools .db-ask-exp{margin-left:0}
.db-ask-tools .db-ask-clear{font-family:var(--fm);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:rgba(255,255,255,.5);padding:2px 0}
.db-ask-tools .db-ask-clear:hover{color:#fff}
/* dashboard cards lift very slightly off the page: a soft two-layer shadow
   tinted navy so it reads as depth, not as a grey smudge */
#page-dashboard .db-hero-pair,#page-dashboard .db-flow,#page-dashboard .db-port,#page-dashboard .db-prop-card{box-shadow:0 1px 2px rgba(10,23,51,.05),0 8px 22px rgba(10,23,51,.07)}
#page-dashboard .db-hero-pair{box-shadow:0 2px 4px rgba(10,23,51,.10),0 12px 30px rgba(10,23,51,.16)}
#page-dashboard .db-prop-card:hover{box-shadow:0 2px 4px rgba(10,23,51,.06),0 12px 28px rgba(10,23,51,.10)}
html.theme-modern #page-dashboard .db-flow,html.theme-modern #page-dashboard .db-port,html.theme-modern #page-dashboard .db-prop-card{box-shadow:0 1px 2px rgba(0,0,0,.18),0 8px 22px rgba(0,0,0,.22)}
/* shading dialled right down: a whisper of contact shadow, no visible glow */
#page-dashboard .db-hero-pair,#page-dashboard .db-flow,#page-dashboard .db-port,#page-dashboard .db-prop-card{box-shadow:0 1px 2px rgba(10,23,51,.035),0 3px 8px rgba(10,23,51,.03)}
#page-dashboard .db-hero-pair{box-shadow:0 1px 3px rgba(10,23,51,.08),0 4px 12px rgba(10,23,51,.06)}
#page-dashboard .db-prop-card:hover{box-shadow:0 1px 2px rgba(10,23,51,.05),0 4px 12px rgba(10,23,51,.05)}
html.theme-modern #page-dashboard .db-flow,html.theme-modern #page-dashboard .db-port,html.theme-modern #page-dashboard .db-prop-card{box-shadow:0 1px 2px rgba(0,0,0,.12),0 3px 8px rgba(0,0,0,.10)}
/* balance-sheet cards: a donut of each card's make-up beside the headline
   figure (expanded view), columns capped at five rows with a quiet View all */
.db-pcard-top{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0}
.db-pcard-top .v{min-width:0}
.db-pie{width:86px;height:86px;flex:0 0 auto;overflow:visible}
.db-pie circle{transition:stroke-width .15s ease,opacity .15s ease;cursor:default}
.db-pie:hover circle{opacity:.55}
.db-pie circle:hover{opacity:1;stroke-width:15}
.db-view-all{margin-top:5px}
.db-item-pct{color:var(--muted);font-size:10px;margin-left:4px}
@media(max-width:760px){.db-pie{width:64px;height:64px}}
/* donuts: smaller, tucked up beside the headline figure on the left rather
   than centred against it on the far right — the number stays where it was */
.db-pcard-top{align-items:flex-start;justify-content:flex-start;gap:22px}
.db-pie{width:62px;height:62px;margin-top:-12px}
.db-pie circle{stroke-width:11}
.db-pie circle:hover{stroke-width:13}
@media(max-width:760px){.db-pie{width:52px;height:52px;margin-top:-6px}}
/* donuts live in the header row when expanded: centred on their column, level
   with the gold section labels, entirely above the figures */
.db-port-head .l{position:relative}
.db-port-head.has-pies{min-height:54px;align-items:center}
.db-port-head .db-pie{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;width:54px;height:54px}
/* header donuts, sized properly (the header's 16px icon rule was catching the
   svg) and the label pinned to the top of the row so it stays put */
.db-port-head.has-pies{min-height:0;align-items:start}
.db-port-head.has-pies .l{min-height:64px;align-items:flex-start}
.db-port-head .l svg.db-pie{position:absolute;left:50%;top:-4px;transform:translateX(-50%);width:66px;height:66px;margin:0}
/* balance-sheet cards: the YoY pill stacks under its figure; the donut (84px)
   floats in the open middle of the section, spanning from the gold label down
   to the figure, so neither the labels nor the figures move */
.db-pcard .v{flex-direction:column;align-items:flex-start;gap:5px}
.db-pcard .db-pie{position:absolute;left:calc(50% + 12px);top:-30px;transform:translateX(-50%);width:84px;height:84px;margin:0;z-index:1}
.db-pcard .db-pie circle{stroke-width:12}
.db-pcard .db-pie circle:hover{stroke-width:14}
@media(max-width:1000px){.db-pcard .db-pie{display:none}}
/* expanded balance-sheet cards: figure + pill top-left (pill inline, as when
   collapsed), donut beneath the figure, breakdown columns to the right */
.db-pcard .v{flex-direction:row;align-items:center;gap:10px}
.db-pcard-x{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 26px;align-items:start}
.db-pcard-left{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}
.db-pcard-left .db-pie{position:static;transform:none;width:96px;height:96px;margin:2px 0 0 4px;z-index:auto}
.db-pcard-right{min-width:0}
.db-pcard-right .db-2col{margin-top:0}
.db-pcard .db-pcard-x .v{flex-wrap:wrap}
@media(max-width:1000px){.db-pcard-x{grid-template-columns:1fr}.db-pcard .db-pie{display:block}.db-pcard-left .db-pie{width:72px;height:72px}}
/* expanded cards, spacing pass: pill under the figure (collapsed stays inline),
   Equity gets figure + donut on top and its list full width beneath */
.db-pcard-left .v,.db-pcard-eq .v{flex-direction:column;align-items:flex-start;gap:5px}
.db-pcard-x{gap:8px 22px}
.db-pcard-left .db-pie{width:90px;height:90px;margin:0 0 0 2px}
.db-pcard-eq{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:4px;padding-right:8px}
.db-pcard-eq .db-pie{position:static;transform:none;width:84px;height:84px;margin:-8px 0 0;z-index:auto}
.db-port-grid > .db-pcard:last-child .db-col{padding-right:34px}
/* expanded cards: figure / pill row (always reserved, so the donuts share one
   plane with or without YoY data) / donut, in fixed rows; the expanded grid
   gives Equity the width its list needs */
.db-pcard-left{display:grid;grid-template-rows:36px 26px auto;gap:0;align-items:start;align-content:start}
.db-pcard-left .v{flex-direction:row;align-items:center;gap:10px;line-height:1}
.db-pcard-pill{height:26px;display:flex;align-items:center}
.db-pcard-left .db-pie{margin:4px 0 0 2px;width:90px;height:90px}
.db-port.open .db-port-head,.db-port.open .db-port-grid{grid-template-columns:1.3fr 1.1fr 1.35fr}
.db-pcard-right .db-col-t{margin-top:2px}
/* Ask Mentes: no expand toggle — a long conversation scrolls inside the box
   with the same fade-in chevrons Key Insights uses */
.db-ask-logwrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}
.db-ask-logwrap .db-ask-log{scrollbar-width:none;padding-right:22px}
.db-ask-logwrap .db-ask-log::-webkit-scrollbar{display:none}
.db-ask-logwrap .db-ki-more.up{top:0}
.db-ask-logwrap .db-ki-more.down{bottom:0}
.db-ask-logwrap .db-ki-more{right:0}
/* expanded grid: more room for the Assets and Liabilities text, less for Equity */
.db-port.open .db-port-head,.db-port.open .db-port-grid{grid-template-columns:1.45fr 1.3fr 1fr}
