    /* ── Deal Analyzer ── */
    .da-section { margin-top:1.2rem; border:1px solid rgba(201,168,76,0.18); border-radius:12px; overflow:hidden; background:linear-gradient(160deg,rgba(201,168,76,0.03) 0%,rgba(255,255,255,0.01) 100%); }
    .da-hdr { padding:1.1rem 1.4rem 0.8rem; border-bottom:1px solid rgba(255,255,255,0.06); }
    .da-eyebrow { font-size:0.58rem; letter-spacing:3px; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:0.3rem; }
    .da-subtitle { font-size:0.72rem; color:var(--muted); line-height:1.5; }
    .da-inputs-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; padding:1rem 1.4rem; }
    @media(max-width:700px){ .da-inputs-grid { grid-template-columns:1fr; } }
    .da-input-col { display:flex; flex-direction:column; gap:0.55rem; }
    .da-col-label { font-size:0.58rem; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,0.35); font-weight:700; margin-bottom:0.1rem; }
    /* Reverted: removed the min-height:5.4rem rule that was forcing every
       field row to be the same tall height. It made the columns too
       spaced out vertically - natural row heights look more compact. */
    .da-field { display:flex; flex-direction:column; gap:0.2rem; }
    .da-field-label { font-size:0.65rem; color:var(--muted); font-weight:600; letter-spacing:0.3px; }
    .da-field-note { font-size:0.58rem; color:rgba(255,255,255,0.25); font-weight:400; }
    .da-field-input { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1); border-radius:6px; padding:0.42rem 0.65rem; font-size:0.82rem; color:var(--text); font-family:'Inter',sans-serif; outline:none; transition:border-color 0.2s; width:100%; }
    .da-field-input:focus { border-color:rgba(201,168,76,0.4); color:var(--gold); }
    .da-summary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.75rem; padding:0 1.4rem 1rem; }
    @media(max-width:700px){ .da-summary-grid { grid-template-columns:repeat(1,1fr); } }
    /* PDF capture mode - applied only during html2canvas snapshot. Loosens
       line-heights, ensures dollar-sign / percent prefixes don't clip, and
       bumps numerals to fill the boxes more legibly when rasterized. */
    .da-section.da-pdf-capturing .da-field-input {
      padding-top:0.55rem !important; padding-bottom:0.55rem !important;
      padding-left:1.7rem !important; /* extra room so the $ never overlaps */
      line-height:1.5 !important;
      font-size:0.95rem !important; /* bigger value text - was 0.82rem */
      font-weight:500 !important;
    }
    /* Right-side % suffix needs matching padding when input is a percent field */
    .da-section.da-pdf-capturing .da-field-input[style*="padding-right:1.6rem"] {
      padding-left:0.7rem !important; padding-right:1.9rem !important;
    }
    .da-section.da-pdf-capturing .da-field-prefix,
    .da-section.da-pdf-capturing .da-field-suffix {
      font-size:0.92rem !important;
      color:rgba(255,255,255,0.55) !important;
      font-weight:500 !important;
    }
    .da-section.da-pdf-capturing .da-field-prefix { left:0.55rem !important; }
    .da-section.da-pdf-capturing .da-field-suffix { right:0.55rem !important; }
    .da-section.da-pdf-capturing .da-summary-val { line-height:1.25 !important; padding-bottom:0.05rem; }
    .da-section.da-pdf-capturing .ts-calc-val { line-height:1.4 !important; }
    .da-section.da-pdf-capturing .da-snap-val { line-height:1.4 !important; }
    .da-section.da-pdf-capturing .da-stress-val { line-height:1.25 !important; padding-bottom:0.05rem; }
    .da-section.da-pdf-capturing .da-uw-val { line-height:1.25 !important; padding-bottom:0.05rem; }
    .da-section.da-pdf-capturing .da-sens-val { line-height:1.4 !important; }
    .da-section.da-pdf-capturing .da-uw-pill { line-height:1.3 !important; }
    .da-section.da-pdf-capturing .da-dscr-stat-val { line-height:1.25 !important; padding-bottom:0.05rem; }
    /* Download CTA at the bottom of the analyzer */
    .da-download-wrap { padding:1.4rem 1.4rem 1.6rem; border-top:1px solid rgba(255,255,255,0.06); margin-top:1rem; text-align:center; }
    .da-download-btn { background:linear-gradient(135deg,rgba(201,168,76,0.22),rgba(201,168,76,0.08)); border:1px solid rgba(201,168,76,0.45); color:var(--gold); border-radius:8px; padding:0.7rem 1.4rem; font-size:0.78rem; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; cursor:pointer; font-family:Inter,sans-serif; transition:all 0.2s; }
    .da-download-btn:hover:not(:disabled) { background:linear-gradient(135deg,rgba(201,168,76,0.32),rgba(201,168,76,0.12)); border-color:rgba(201,168,76,0.7); }
    .da-download-btn:disabled { opacity:0.5; cursor:wait; }
    .da-download-hint { font-size:0.62rem; color:rgba(255,255,255,0.4); margin-top:0.55rem; letter-spacing:0.3px; }
    .da-summary-card { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:8px; padding:0.75rem 0.8rem; }
    .da-summary-label { font-size:0.58rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:0.3rem; }
    .da-summary-val { font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:1px; line-height:1.1; margin-bottom:0.2rem; }
    .da-summary-sub { font-size:0.6rem; color:rgba(255,255,255,0.3); line-height:1.4; }
    .da-chart-wrap { padding:0 1.4rem 0.8rem; }
    .da-chart-svg { width:100%; height:160px; display:block; }
    .da-chart-inner { position:relative; }
    .da-chart-dot { position:absolute; width:10px; height:10px; border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; box-shadow:0 0 0 2px rgba(0,0,0,0.45); z-index:4; }
    .da-chart-dot-hover { box-shadow:0 0 0 2px rgba(0,0,0,0.45), 0 0 6px rgba(255,255,255,0.15); }
    .da-xh-tip { position:absolute;top:6px;pointer-events:none;z-index:10;
      background:rgba(12,12,16,0.94);border:1px solid rgba(255,255,255,0.13);
      border-radius:6px;padding:5px 10px;white-space:nowrap;display:none; }
    .da-xh-tip-l1 { font-size:0.62rem;font-weight:700;color:rgba(255,255,255,0.52);line-height:1.35; }
    .da-xh-tip-l2 { font-size:0.69rem;font-weight:700;line-height:1.35; }
    /* DA Lender Snapshot */
    .da-snap { border-top:1px dashed rgba(201,168,76,0.18);margin:0 1.4rem;padding:0.9rem 0 0; }
    .da-snap-eyebrow { font-size:0.56rem;letter-spacing:3px;text-transform:uppercase;color:rgba(201,168,76,0.5);font-weight:700;text-align:center;margin-bottom:0.65rem; }
    .da-snap-ltv-nums { display:flex;align-items:baseline;gap:0.5rem;justify-content:center;margin-bottom:0.28rem; }
    .da-snap-ltv-pct { font-family:'Bebas Neue',sans-serif;font-size:1.65rem;letter-spacing:1px;color:var(--gold);line-height:1;transition:color 0.3s; }
    .da-snap-ltv-cap { font-size:0.56rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:0.14rem 0.44rem;border:1px solid rgba(255,255,255,0.1);border-radius:999px; }
    .da-snap-ltv-cap-edit { display:inline-flex;align-items:center;gap:0.4rem;font-size:0.7rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:0.32rem 0.85rem 0.32rem 0.95rem;border:1px solid rgba(201,168,76,0.4);border-radius:999px;background:rgba(201,168,76,0.08);transition:border-color 0.15s, background 0.15s, box-shadow 0.15s;box-shadow:0 0 0 0.5px rgba(201,168,76,0.1),0 2px 8px rgba(0,0,0,0.25); }
    .da-snap-ltv-cap-edit:hover { border-color:rgba(201,168,76,0.7);background:rgba(201,168,76,0.14);box-shadow:0 0 0 0.5px rgba(201,168,76,0.25),0 2px 12px rgba(201,168,76,0.12); }
    .da-snap-ltv-cap-edit input { width:2.6rem;background:transparent;border:none;color:var(--gold);font-family:inherit;font-size:1.05rem;font-weight:800;letter-spacing:0.5px;text-align:right;padding:0;outline:none; }
    .da-snap-ltv-cap-edit input::-webkit-outer-spin-button,
    .da-snap-ltv-cap-edit input::-webkit-inner-spin-button { -webkit-appearance:none;margin:0; }
    .da-snap-ltv-cap-edit input[type=number] { -moz-appearance:textfield; }
    .da-snap-ltv-cap-edit .ltv-cap-pct { color:var(--gold);font-weight:800;font-size:0.95rem;margin-right:0.1rem; }
    /* LTV gap is now folded into the Down Payment row (see daSnapshot).
       The standalone gap row was removed - borrower experience is cleaner
       when the analyzer simply shows the actual cash contribution. */
    .da-col-label-sub { font-size:0.5rem; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,0.22); font-weight:600; margin:0.6rem 0 0.2rem; }
    .da-amort-toggle { display:inline-flex; background:var(--bg3); border:1px solid var(--border); border-radius:6px; padding:2px; gap:2px; }
    .da-amort-toggle .da-toggle-btn { padding:0.32rem 0.55rem; font-size:0.6rem; }
    .da-snap-ltv-track { height:4px;background:rgba(255,255,255,0.07);border-radius:2px;margin:0 auto 0.3rem;overflow:hidden; }
    .da-snap-ltv-fill { height:100%;border-radius:2px;background:var(--gold);width:0%;transition:width 0.3s ease,background 0.3s ease; }
    .da-snap-ltv-label { font-size:0.54rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.25);text-align:center; }
    .da-snap-ltv-warn { font-size:0.59rem;color:rgba(239,68,68,0.85);margin-top:0.3rem;display:none;line-height:1.5;text-align:center; }
    .da-snap-rows { margin-top:0.7rem;display:flex;flex-direction:column; }
    .da-snap-row { display:flex;justify-content:space-between;align-items:baseline;padding:0.38rem 0;border-bottom:1px dashed rgba(255,255,255,0.05); }
    .da-snap-row:last-child { border-bottom:none; }
    .da-snap-lbl { font-size:0.64rem;letter-spacing:0.9px;text-transform:uppercase;color:var(--muted);font-weight:600; }
    .da-snap-lbl small { display:block;font-size:0.57rem;color:rgba(255,255,255,0.27);text-transform:none;letter-spacing:0.3px;font-weight:500;margin-top:0.1rem; }
    .da-snap-val { font-size:0.86rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums; }
    .da-snap-row.da-snap-ctc { border-top:1px solid rgba(201,168,76,0.2);border-bottom:1px solid rgba(201,168,76,0.2);padding:0.58rem 0;margin-top:0.15rem; }
    .da-snap-row.da-snap-ctc .da-snap-lbl { color:var(--gold); }
    .da-snap-row.da-snap-ctc .da-snap-val { font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:1px;color:var(--gold); }
    /* Sell-side fees (realtor commissions) - render same as the other closing
       fee rows. Sub-label "paid at sale" carries the timing info; no need for
       a color callout. */
    .da-snap-row.da-snap-sell .da-snap-lbl { color:var(--muted); }
    .da-snap-row.da-snap-sell .da-snap-val { color:var(--text); }
    /* Proof of Funds - blue accent so it doesn't read as a fee. POF is a
       liquidity check (lender wants to see funds in your bank), not money you
       actually pay out at closing. */
    .da-snap-row.da-snap-pof { background:rgba(59,130,246,0.04);border:1px solid rgba(59,130,246,0.18);border-radius:6px;padding:0.5rem 0.7rem;margin:0.15rem 0; }
    .da-snap-row.da-snap-pof .da-snap-lbl { color:#60a5fa; }
    .da-snap-row.da-snap-pof .da-snap-val { color:#93c5fd; }
    /* DA Monthly Payment Analyzer - prominent live monthly carry block */
    .da-pay { margin:1.1rem 1.4rem 0; padding:1rem 1.1rem 0.95rem; background:linear-gradient(135deg,rgba(201,168,76,0.11),rgba(201,168,76,0.03)); border:1px solid rgba(201,168,76,0.3); border-radius:10px; }
    .da-pay-top { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
    .da-pay-eyebrow { font-size:0.56rem; letter-spacing:3px; text-transform:uppercase; color:rgba(201,168,76,0.72); font-weight:700; margin-bottom:0.3rem; }
    .da-pay-hero { font-family:'Bebas Neue',sans-serif; font-size:2.6rem; letter-spacing:1px; color:var(--gold); line-height:0.92; }
    .da-pay-hero small { font-size:0.85rem; color:rgba(201,168,76,0.55); letter-spacing:0.5px; margin-left:0.15rem; }
    .da-pay-caption { font-size:0.58rem; color:rgba(255,255,255,0.34); letter-spacing:0.3px; margin-top:0.32rem; line-height:1.5; max-width:230px; }
    .da-pay-itype { font-size:0.53rem; letter-spacing:1.4px; text-transform:uppercase; color:rgba(201,168,76,0.7); font-weight:700; padding:0.22rem 0.55rem; border:1px solid rgba(201,168,76,0.32); border-radius:999px; white-space:nowrap; flex-shrink:0; }

    /* Compact rate badge - right-side of Monthly Payment Analyzer header.
       Big rate prominently displayed; math derivation lives inline under
       the Loan Interest row where it belongs. */
    .da-pay-rate {
      display:flex; flex-direction:column; align-items:flex-end; gap:0.15rem;
      flex-shrink:0;
    }
    .da-pay-rate-big {
      font-family:'Bebas Neue', sans-serif;
      font-size:2.4rem; letter-spacing:1px; line-height:1;
      color:var(--gold);
      display:inline-flex; align-items:baseline; gap:0.05rem;
    }
    .da-pay-rate-big small {
      font-size:0.6rem; letter-spacing:1.4px; color:rgba(201,168,76,0.6);
      margin-left:0.3rem; font-family:'Inter', sans-serif; font-weight:600;
    }
    /* Inline editable rate input - looks like the big gold number when not
       focused, gets a subtle gold underline + focus ring on hover/edit so
       it's discoverable as interactive without breaking the visual hero. */
    .da-pay-rate-input {
      font-family:'Bebas Neue', sans-serif;
      font-size:2.4rem; letter-spacing:1px; line-height:1;
      color:var(--gold);
      background:transparent; border:none; outline:none;
      padding:0 0 2px; margin:0;
      width:5.2rem; text-align:right;
      border-bottom:1px dashed transparent;
      transition:border-color 0.15s, background 0.15s;
      cursor:text;
    }
    .da-pay-rate-input:hover { border-bottom-color:rgba(201,168,76,0.4); }
    .da-pay-rate-input:focus {
      border-bottom-color:var(--gold);
      background:rgba(201,168,76,0.06);
      border-radius:3px;
    }
    .da-pay-rate-input::-webkit-outer-spin-button,
    .da-pay-rate-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
    .da-pay-rate-input[type=number] { -moz-appearance:textfield; }
    .da-pay-rate-pct {
      font-family:'Bebas Neue', sans-serif; font-size:2.4rem;
      color:var(--gold); line-height:1;
    }

    /* ── Cost composition stacked bar (the visual that fills the empty middle) ─ */
    .da-pay-viz {
      margin-top:1rem; padding-top:0.9rem;
      border-top:1px dashed rgba(201,168,76,0.2);
    }
    .da-pay-viz-head {
      display:flex; justify-content:space-between; align-items:baseline;
      margin-bottom:0.5rem;
    }
    .da-pay-viz-title { font-size:0.54rem; letter-spacing:2.4px; text-transform:uppercase; color:rgba(255,255,255,0.4); font-weight:700; }
    .da-pay-viz-hint { font-size:0.58rem; color:rgba(255,255,255,0.32); font-style:italic; }
    .da-pay-viz-bar {
      display:flex; height:18px; border-radius:9px; overflow:visible;
      background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.06);
      position:relative;
    }
    .da-pay-viz-seg {
      transition: flex-grow 0.4s cubic-bezier(0.22,1,0.36,1), filter 0.15s, transform 0.15s;
      position:relative; cursor:default;
    }
    .da-pay-viz-seg:first-child { border-top-left-radius:8px; border-bottom-left-radius:8px; }
    .da-pay-viz-seg:last-child  { border-top-right-radius:8px; border-bottom-right-radius:8px; }
    .da-pay-viz-seg:hover {
      filter:brightness(1.25) saturate(1.2);
      transform:scaleY(1.18);
      z-index:2;
    }
    /* Custom hover tooltip - floats above the bar with the segment's $ amount
       and %. Driven by data-tip attribute on each segment (set in daCalc). */
    .da-pay-viz-seg[data-tip]:hover::after {
      content: attr(data-tip);
      position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%);
      background:rgba(15,15,17,0.96); color:var(--text);
      border:1px solid rgba(201,168,76,0.35);
      border-radius:6px; padding:0.45rem 0.7rem;
      font-size:0.72rem; font-weight:600; letter-spacing:0.02em;
      white-space:nowrap; z-index:10;
      box-shadow:0 6px 22px rgba(0,0,0,0.5), 0 0 0 0.5px rgba(201,168,76,0.18);
      pointer-events:none; line-height:1.35;
    }
    .da-pay-viz-seg[data-tip]:hover::before {
      content: ''; position:absolute; bottom:calc(100% + 2px); left:50%; transform:translateX(-50%);
      width:0; height:0;
      border-left:6px solid transparent; border-right:6px solid transparent;
      border-top:6px solid rgba(201,168,76,0.35);
      z-index:10; pointer-events:none;
    }
    /* Legend rows get a subtle hover too - clicking one highlights the matching
       bar segment for users who can't hover (keyboard / touch-mouse). */
    .da-pay-viz-leg-item { cursor:default; transition:opacity 0.15s; }
    .da-pay-viz-leg-item:hover { opacity:0.85; }
    /* Per-component colors - also used for the row dots below */
    .da-pay-viz-seg.seg-int   { background:var(--gold); }
    .da-pay-viz-seg.seg-tax   { background:#60a5fa; }
    .da-pay-viz-seg.seg-util  { background:#4ade80; }
    .da-pay-viz-seg.seg-misc  { background:#c084fc; }
    .da-pay-viz-seg.seg-hoa   { background:#fb923c; }

    .da-pay-viz-legend {
      display:flex; flex-wrap:wrap; gap:0.9rem 1.1rem; margin-top:0.55rem;
      font-size:0.6rem; color:rgba(255,255,255,0.5);
    }
    .da-pay-viz-leg-item { display:inline-flex; align-items:center; gap:0.35rem; }
    .da-pay-viz-leg-dot {
      width:9px; height:9px; border-radius:2px; flex-shrink:0;
    }
    .da-pay-viz-leg-pct { color:rgba(255,255,255,0.78); font-weight:600; font-variant-numeric:tabular-nums; }

    /* Row dot - small color square left of each breakdown row label */
    .da-pay-row-dot {
      display:inline-block; width:7px; height:7px; border-radius:2px;
      margin-right:0.45rem; vertical-align:middle;
    }

    /* ── Secondary stat tiles row (fills the empty bottom space) ─────────── */
    .da-pay-stats {
      display:grid; grid-template-columns:repeat(3, 1fr); gap:0.55rem;
      margin-top:0.9rem; padding-top:0.85rem;
      border-top:1px dashed rgba(201,168,76,0.2);
    }
    .da-pay-stat {
      background:rgba(255,255,255,0.025);
      border:1px solid rgba(255,255,255,0.07);
      border-radius:8px;
      padding:0.6rem 0.75rem;
      text-align:center;
    }
    .da-pay-stat-lbl {
      font-size:0.5rem; letter-spacing:2px; text-transform:uppercase;
      color:rgba(255,255,255,0.4); font-weight:700; margin-bottom:0.2rem;
    }
    .da-pay-stat-val {
      font-family:'Bebas Neue', sans-serif;
      font-size:1.2rem; letter-spacing:0.6px; color:var(--gold-light);
      font-variant-numeric:tabular-nums;
    }
    .da-pay-stat-sub {
      font-size:0.54rem; color:rgba(255,255,255,0.32); margin-top:0.15rem;
    }
    @media (max-width: 540px) {
      .da-pay-stats { grid-template-columns:1fr 1fr; }
      .da-pay-viz-legend { gap:0.5rem 0.9rem; font-size:0.55rem; }
    }
    .da-pay-rows { margin-top:0.8rem; padding-top:0.7rem; border-top:1px dashed rgba(201,168,76,0.2); display:flex; flex-direction:column; gap:0.34rem; }
    .da-pay-row { display:flex; justify-content:space-between; align-items:baseline; }
    .da-pay-row-lbl { font-size:0.63rem; letter-spacing:0.5px; color:var(--muted); font-weight:600; }
    .da-pay-row-lbl small { color:rgba(255,255,255,0.26); font-weight:500; letter-spacing:0.2px; }
    .da-pay-row-val { font-size:0.79rem; font-weight:700; color:var(--text); font-variant-numeric:tabular-nums; }
    .da-pay-row.da-pay-int .da-pay-row-lbl { color:var(--gold); }
    .da-pay-row.da-pay-int .da-pay-row-val { color:var(--gold-light); }
    /* "Est." tag on estimated holding costs (interest is the only firm number) */
    .da-pay-est { font-size:0.5rem; letter-spacing:0.6px; text-transform:uppercase; color:rgba(255,255,255,0.28); font-weight:700; border:1px solid rgba(255,255,255,0.14); border-radius:3px; padding:0.02rem 0.22rem; margin-left:0.18rem; }
    /* Day 1 -> Full Draw interest progression strip (mirrors the term sheet) */
    .da-pay-prog { display:flex; align-items:stretch; gap:0.5rem; margin:0.1rem 0 0.34rem; padding:0.5rem 0.6rem; background:rgba(201,168,76,0.05); border:1px solid rgba(201,168,76,0.16); border-radius:7px; }
    .da-pay-prog-step { flex:1; display:flex; flex-direction:column; gap:0.08rem; }
    .da-pay-prog-lbl { font-size:0.5rem; letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,0.4); font-weight:700; }
    .da-pay-prog-val { font-size:0.86rem; font-weight:700; color:var(--gold-light); font-variant-numeric:tabular-nums; }
    .da-pay-prog-cap { font-size:0.52rem; color:rgba(255,255,255,0.28); }
    .da-pay-prog-arrow { display:flex; align-items:center; color:rgba(201,168,76,0.5); font-size:0.9rem; }
    .da-chart-label { font-size:0.58rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.3); margin-bottom:0.4rem; padding:0 1.4rem; }
    .da-table-wrap { overflow-x:auto; padding:0 1.4rem 1.2rem; }
    .da-table { width:100%; border-collapse:collapse; font-size:0.72rem; }
    .da-table th { text-align:left; font-size:0.58rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); font-weight:700; padding:0.4rem 0.6rem; border-bottom:1px solid rgba(255,255,255,0.08); }
    .da-table td { padding:0.42rem 0.6rem; border-bottom:1px dashed rgba(255,255,255,0.04); color:var(--text); font-variant-numeric:tabular-nums; }
    .da-table tr:last-child td { border-bottom:none; }
    .da-row-peak td { background:rgba(201,168,76,0.06); }
    .da-row-peak td:first-child { border-left:2px solid var(--gold); }
    .da-peak-badge { font-size:0.5rem; letter-spacing:1px; text-transform:uppercase; background:rgba(201,168,76,0.18); color:var(--gold); padding:0.1rem 0.35rem; border-radius:3px; font-weight:700; vertical-align:middle; margin-left:0.3rem; }
    .da-green { color:#4ade80; font-weight:700; }
    .da-red   { color:#f87171; font-weight:700; }
    .da-month-toggle { display:flex; align-items:center; justify-content:center; gap:0.4rem; width:100%; margin-top:0.5rem; padding:0.5rem; background:rgba(201,168,76,0.06); border:1px solid rgba(201,168,76,0.22); border-radius:7px; color:var(--gold); font-family:Inter,sans-serif; font-size:0.62rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; cursor:pointer; transition:background 0.18s ease; }
    .da-month-toggle:hover { background:rgba(201,168,76,0.12); }
    .da-month-toggle .ck-ic { font-size:0.85rem; }
    .da-brrrr-wrap { padding:0 1.4rem 1.2rem; }
    .da-brrrr-card { display:flex; gap:0.9rem; align-items:flex-start; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); border-radius:10px; padding:0.9rem 1rem; }
    .da-brrrr-icon { font-size:1.4rem; flex-shrink:0; }
    .da-brrrr-title { font-size:0.72rem; font-weight:700; letter-spacing:0.5px; margin-bottom:0.3rem; }
    .da-brrrr-msg { font-size:0.7rem; color:var(--muted); line-height:1.55; margin-bottom:0.55rem; }
    .da-brrrr-stats { display:flex; flex-wrap:wrap; gap:0.6rem 1.4rem; font-size:0.66rem; color:var(--muted); }
    .da-brrrr-stats strong { color:var(--text); }
    /* Exit strategy section headers */
    .da-exit-hdr { display:flex; align-items:center; gap:0.65rem; padding:0.9rem 1.4rem 0.4rem; border-top:1px solid rgba(255,255,255,0.07); margin-top:0.2rem; }
    .da-exit-hdr.first { border-top:none; margin-top:0; padding-top:0.3rem; }
    .da-exit-pill { font-size:0.5rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted); font-weight:700; padding:0.14rem 0.44rem; border:1px solid rgba(255,255,255,0.1); border-radius:999px; flex-shrink:0; }
    .da-exit-name { font-size:0.8rem; font-weight:700; color:var(--text); }
    .da-exit-sub  { font-size:0.59rem; color:rgba(255,255,255,0.28); margin-left:auto; }
    /* DSCR verdict card */
    .da-dscr-verdict { margin:0.2rem 1.4rem 0.75rem; padding:0.7rem 1rem; border-radius:10px; display:flex; align-items:center; gap:0.7rem; border:1px solid; }
    .da-dscr-v-icon  { font-size:1.4rem; flex-shrink:0; margin-top:0.05rem; }
    .da-dscr-v-title { font-size:0.76rem; font-weight:700; margin-bottom:0.12rem; }
    .da-dscr-v-sub   { font-size:0.63rem; line-height:1.5; color:var(--muted); }
    /* DSCR 3-stat row */
    .da-dscr-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.6rem; padding:0 1.4rem 0.6rem; }
    .da-dscr-stat { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:8px; padding:0.6rem 0.7rem; }
    .da-dscr-stat-lbl { font-size:0.55rem; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:0.2rem; }
    .da-dscr-stat-val { font-size:0.98rem; font-weight:700; }
    /* DSCR monthly cash flow breakdown */
    .da-dscr-cf { padding:0 1.4rem 0.4rem; }
    .da-dscr-cf-eyebrow { font-size:0.54rem; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.25); margin-bottom:0.45rem; }
    .da-dscr-cf-row { display:flex; justify-content:space-between; align-items:baseline; padding:0.32rem 0; border-bottom:1px dashed rgba(255,255,255,0.05); font-size:0.71rem; font-variant-numeric:tabular-nums; }
    .da-dscr-cf-row:last-child { border-bottom:none; }
    .da-dscr-cf-nm  { color:var(--muted); }
    .da-dscr-cf-val { font-weight:700; color:var(--text); }
    .da-dscr-cf-total { border-top:1px solid rgba(255,255,255,0.1); border-bottom:none !important; padding:0.48rem 0 0; margin-top:0.15rem; }
    .da-dscr-cf-total .da-dscr-cf-nm { font-weight:700; color:var(--text); }
    /* DSCR secondary stats inline strip */
    .da-dscr-secondary { display:flex; flex-wrap:wrap; gap:0.5rem 1.4rem; padding:0.6rem 1.4rem 0.9rem; font-size:0.64rem; color:var(--muted); border-top:1px dashed rgba(255,255,255,0.06); margin-top:0.1rem; }
    .da-dscr-secondary strong { color:var(--text); }

    /* DA Snapshot Underwriting mini-grid (in the live snapshot panel) */
    .da-snap-uw { margin-top:0.85rem; padding-top:0.75rem; border-top:1px dashed rgba(201,168,76,0.18); }
    .da-snap-uw-eyebrow { font-size:0.54rem; letter-spacing:2.5px; text-transform:uppercase; color:rgba(201,168,76,0.5); font-weight:700; text-align:center; margin-bottom:0.5rem; }
    .da-snap-uw-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; }
    @media(max-width:520px){ .da-snap-uw-grid { grid-template-columns:1fr; } }
    .da-snap-uw-item { background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.06); border-radius:6px; padding:0.5rem 0.6rem; text-align:center; }
    .da-snap-uw-lbl { font-size:0.5rem; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); font-weight:700; margin-bottom:0.25rem; }
    .da-snap-uw-val { font-family:'Bebas Neue',sans-serif; font-size:1.1rem; letter-spacing:0.5px; line-height:1.05; color:var(--text); }
    .da-snap-uw-sub { font-size:0.55rem; color:rgba(255,255,255,0.4); margin-top:0.18rem; line-height:1.35; }

    /* Underwriting Health Check (in results) */
    .da-uw-section { padding:0.4rem 1.4rem 0.9rem; }
    .da-uw-eyebrow { font-size:0.6rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:0.5rem; }
    .da-uw-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.65rem; margin-bottom:0.75rem; align-items:start; }
    @media(max-width:600px){ .da-uw-grid { grid-template-columns:1fr; } }
    .da-uw-item { background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.07); border-radius:8px; padding:0.7rem 0.85rem; }
    .da-uw-lbl { font-size:0.56rem; letter-spacing:1.3px; text-transform:uppercase; color:var(--muted); font-weight:700; margin-bottom:0.3rem; }
    .da-uw-val { font-family:'Bebas Neue',sans-serif; font-size:1.4rem; letter-spacing:0.5px; line-height:1.05; margin-bottom:0.25rem; }
    .da-uw-note { font-size:0.62rem; line-height:1.45; font-weight:600; margin-bottom:0.18rem; }
    .da-uw-formula { font-size:0.55rem; color:rgba(255,255,255,0.32); font-style:italic; }
    .da-uw-mao-hint { margin-top:0.45rem; font-size:0.53rem; color:rgba(201,168,76,0.75); line-height:1.55; font-style:italic; }
    .da-uw-callouts { display:flex; flex-wrap:wrap; gap:0.4rem; }
    .da-uw-callout { font-size:0.6rem; padding:0.32rem 0.55rem; background:rgba(201,168,76,0.06); border:1px solid rgba(201,168,76,0.15); border-radius:5px; color:rgba(255,255,255,0.7); line-height:1.4; }

    /* Stress Tests panel */
    .da-stress-section { padding:0.4rem 1.4rem 0.9rem; }
    .da-stress-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0.5rem; }
    @media(max-width:480px){ .da-stress-grid { grid-template-columns:1fr; } }
    .da-stress-card { background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.07); border-radius:8px; padding:0.6rem 0.7rem; }
    .da-stress-card.da-stress-worst { background:rgba(239,68,68,0.04); border-color:rgba(239,68,68,0.18); }
    .da-stress-name { font-size:0.62rem; font-weight:700; color:var(--text); margin-bottom:0.25rem; line-height:1.3; }
    .da-stress-sub { font-size:0.55rem; color:rgba(255,255,255,0.35); line-height:1.4; margin-bottom:0.4rem; min-height:1.5em; }
    .da-stress-val { font-family:'Bebas Neue',sans-serif; font-size:1.15rem; letter-spacing:0.5px; line-height:1.05; }
    .da-stress-delta { font-size:0.58rem; font-weight:700; margin-top:0.15rem; opacity:0.85; }

    /* DSCR Stress Tests panel */
    .da-dscr-stress { padding:0.3rem 1.4rem 0.9rem; }
    .da-dscr-stress-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; }
    @media(max-width:700px){ .da-dscr-stress-grid { grid-template-columns:1fr; } }
    .da-dscr-stress-card { background:rgba(255,255,255,0.025); border:1px solid rgba(255,255,255,0.07); border-radius:8px; padding:0.6rem 0.7rem; }
    .da-dscr-stress-lbl { font-size:0.56rem; letter-spacing:1.2px; text-transform:uppercase; color:var(--muted); font-weight:700; margin-bottom:0.35rem; }
    .da-dscr-stress-row { display:flex; justify-content:space-between; align-items:baseline; font-size:0.66rem; color:var(--muted); padding:0.18rem 0; }
    .da-dscr-stress-row strong { font-size:0.74rem; }
    .da-dscr-stress-big { font-family:'Bebas Neue',sans-serif; font-size:1.2rem; letter-spacing:0.5px; line-height:1.05; margin-bottom:0.2rem; }
    .da-dscr-stress-note { font-size:0.58rem; color:rgba(255,255,255,0.45); line-height:1.4; margin-top:0.2rem; }

    /* ── Underwriting v2 - status pills, zone meters, formula toggles ── */
    .da-uw-top { display:flex; justify-content:space-between; align-items:flex-start; gap:0.5rem; margin-bottom:0.35rem; }
    .da-uw-top .da-uw-lbl { margin-bottom:0; display:flex; align-items:center; gap:0.35rem; }
    .da-uw-pill { font-size:0.5rem; font-weight:700; letter-spacing:1.4px; text-transform:uppercase; padding:0.16rem 0.55rem; border:1px solid; border-radius:999px; white-space:nowrap; flex-shrink:0; }
    .da-uw-fact { font-size:0.6rem; color:rgba(255,255,255,0.38); line-height:1.5; }
    .da-uw-info { width:0.85rem; height:0.85rem; border-radius:50%; border:1px solid rgba(255,255,255,0.22); color:rgba(255,255,255,0.32); font-size:0.5rem; font-weight:700; display:inline-flex; align-items:center; justify-content:center; background:none; cursor:pointer; padding:0; line-height:1; flex-shrink:0; font-family:Inter,sans-serif; transition:color 0.15s, border-color 0.15s; }
    .da-uw-info:hover { color:var(--gold); border-color:rgba(201,168,76,0.55); }
    .da-uw-meter { position:relative; height:4px; border-radius:2px; margin:0.55rem 0 0.3rem; }
    .da-uw-meter-pin { position:absolute; top:-3px; width:2px; height:10px; background:#fff; border-radius:1px; box-shadow:0 0 4px rgba(0,0,0,0.7); transform:translateX(-1px); }
    .da-uw-scale { position:relative; height:0.85em; font-size:0.5rem; color:rgba(255,255,255,0.25); letter-spacing:0.4px; }
    .da-uw-scale span { position:absolute; top:0; transform:translateX(-50%); }
    /* Sensitivity table - scenarios vs base case */
    .da-sens-section { padding:0.4rem 1.4rem 0.9rem; }
    .da-sens-table { width:100%; border-collapse:collapse; font-size:0.71rem; }
    .da-sens-table th { text-align:left; font-size:0.54rem; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); font-weight:700; padding:0.32rem 0.5rem; border-bottom:1px solid rgba(255,255,255,0.08); }
    .da-sens-table td { padding:0.46rem 0.5rem; border-bottom:1px dashed rgba(255,255,255,0.05); font-variant-numeric:tabular-nums; }
    .da-sens-table tr:last-child td { border-bottom:none; }
    .da-sens-table th:nth-child(2), .da-sens-table td:nth-child(2),
    .da-sens-table th:nth-child(3), .da-sens-table td:nth-child(3) { text-align:right; white-space:nowrap; }
    .da-sens-nm { color:rgba(255,255,255,0.75); font-weight:600; }
    .da-sens-nm small { color:rgba(255,255,255,0.3); font-weight:500; font-size:0.62rem; }
    .da-sens-val { font-weight:700; }
    .da-sens-delta { font-weight:600; font-size:0.66rem; }
    tr.da-sens-worst td { background:rgba(239,68,68,0.045); }
    tr.da-sens-worst td:first-child { border-left:2px solid rgba(239,68,68,0.45); }
    /* DSCR verdict fact line + stress-card pill row */
    .da-dscr-v-fact { font-size:0.66rem; color:rgba(255,255,255,0.62); line-height:1.5; }
    .da-dscr-stress-top { display:flex; justify-content:space-between; align-items:center; gap:0.4rem; margin-bottom:0.35rem; }
    .da-dscr-stress-top .da-dscr-stress-lbl { margin-bottom:0; }
    .da-empty { padding:1.2rem 1.4rem; font-size:0.78rem; color:var(--muted); font-style:italic; }
    /* Pill-style two-button toggle. align-self:flex-start prevents it from
       stretching to fill the parent .da-field column. border-radius:999px gives
       a rounded pill look (was a square 5px radius). */
    .da-toggle-wrap { display:inline-flex; align-self:flex-start; border:1px solid rgba(255,255,255,0.1); border-radius:999px; overflow:hidden; }
    .da-toggle-btn { background:none; border:none; padding:0.32rem 0.95rem; font-size:0.63rem; font-weight:700; letter-spacing:0.9px; text-transform:uppercase; color:var(--muted); cursor:pointer; font-family:'Inter',sans-serif; transition:background 0.15s,color 0.15s; }
    .da-toggle-btn + .da-toggle-btn { border-left:1px solid rgba(255,255,255,0.1); }
    .da-toggle-active { background:rgba(201,168,76,0.15); color:var(--gold) !important; }

    /* Additional Costs (custom line items) */
    .da-add-cost-btn { font-size:0.62rem; font-weight:600; letter-spacing:0.3px; padding:0.22rem 0.65rem; border:1px solid rgba(201,168,76,0.4); border-radius:999px; color:var(--gold); background:rgba(201,168,76,0.06); cursor:pointer; font-family:Inter,sans-serif; line-height:1.5; transition:background 0.15s, border-color 0.15s; }
    .da-add-cost-btn:hover { background:rgba(201,168,76,0.14); border-color:rgba(201,168,76,0.6); }
    .da-custom-rows { display:flex; flex-direction:column; gap:0.3rem; margin-top:0.25rem; }
    .da-custom-row { display:flex; align-items:center; gap:0.35rem; }
    .da-custom-lbl { flex:1; font-size:0.63rem !important; }
    .da-custom-amt { font-size:0.63rem !important; }
    .da-custom-rm { background:none; border:none; color:rgba(255,255,255,0.25); cursor:pointer; font-size:0.9rem; line-height:1; padding:0 0.2rem; transition:color 0.15s; flex-shrink:0; }
    .da-custom-rm:hover { color:#f87171; }

    /* DSCR Collapsible Section */
    .da-dscr-collapse { border-top:1px solid rgba(255,255,255,0.06); margin-top:0.5rem; }
    .da-dscr-collapse-hdr { display:flex; justify-content:space-between; align-items:center; padding:0.65rem 1.4rem; cursor:pointer; gap:0.7rem; transition:background 0.15s; user-select:none; }
    .da-dscr-collapse-hdr:hover { background:rgba(255,255,255,0.025); }
    .da-dscr-collapse-hdr-left { display:flex; align-items:center; gap:0.55rem; flex-wrap:wrap; }
    .da-dscr-collapse-title { font-size:0.73rem; font-weight:700; color:var(--text); }
    .da-dscr-collapse-hint { font-size:0.57rem; color:rgba(255,255,255,0.25); }
    .da-dscr-collapse-chevron { font-size:0.58rem; color:rgba(255,255,255,0.35); flex-shrink:0; transition:transform 0.2s; }
    .da-dscr-collapse-body { }

    /* DSCR inputs strip - now lives inside the collapsible */
    .da-dscr-inputs { padding:0.5rem 1.4rem 0.85rem; border-top:1px dashed rgba(255,255,255,0.07); }
    .da-dscr-inputs-eyebrow { display:flex; align-items:center; gap:0.55rem; margin-bottom:0.65rem; flex-wrap:wrap; }
    .da-dscr-inputs-pill { font-size:0.48rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted); font-weight:700; padding:0.12rem 0.42rem; border:1px solid rgba(255,255,255,0.1); border-radius:999px; flex-shrink:0; }
    .da-dscr-inputs-title { font-size:0.72rem; font-weight:700; color:var(--text); }
    .da-dscr-inputs-sub { font-size:0.58rem; color:rgba(255,255,255,0.28); margin-left:auto; }
    .da-dscr-inputs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.65rem; }
    @media(max-width:600px){ .da-dscr-inputs-grid { grid-template-columns:1fr; } }

    /* Deal detail tabs (Info / Analyzer) */
    .dd-tabs { display:flex; gap:0; padding:0.8rem 1.5rem 0; border-bottom:1px solid var(--border); margin-bottom:0; background:transparent; flex-wrap: wrap; }
    .dd-tab { background:none; border:none; border-bottom:2px solid transparent; padding:0.45rem 1rem 0.55rem; font-size:0.67rem; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--muted); cursor:pointer; font-family:'Inter',sans-serif; transition:color 0.15s,border-color 0.15s; margin-bottom:-1px; }
    .dd-tab:hover { color:var(--text); }
    .dd-tab-active { color:var(--gold) !important; border-bottom-color:var(--gold); }
    /* A tab hidden from borrowers (admin view only) reads dimmed + dashed. */
    .dd-tab.dd-tab-bhidden { opacity:0.6; }
    .dd-tab.dd-tab-bhidden:not(.dd-tab-active) { border-bottom:2px dashed rgba(251,146,60,0.5); }