  :root{
    --ink:#0F1B2D;
    --ink-2:#16263D;
    --paper:#FAF9F5;
    --paper-dim:#EFEDE6;
    --line: rgba(15,27,45,0.10);
    --teal:#2F9E8F;
    --teal-dim:#DCEFEC;
    --amber:#D89A3E;
    --amber-dim:#F7EBD6;
    --red:#B3462C;
    --red-dim:#F3E0D9;
    --text-dim:#5C6B7A;
  }

  *{ box-sizing:border-box; }

  body{
    margin:0;
    background:var(--ink);
    font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color:var(--ink);
    padding:32px 16px 80px;
    position:relative;
    overflow-x:hidden;
  }

  body::before,
  body::after{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:0;
    background-repeat:no-repeat;
  }

  body.analyzer-property::before{
    opacity:0.085;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 560 420'%3E%3Cg fill='none' stroke='%23FAF9F5' stroke-width='5' stroke-linecap='round' stroke-linejoin='round' opacity='0.9'%3E%3Cpath d='M48 234 164 132l116 102'/%3E%3Cpath d='M83 203v124h162V203'/%3E%3Cpath d='M146 327v-76h44v76'/%3E%3Cpath d='M285 268 364 198l79 70'/%3E%3Cpath d='M309 246v81h110v-81'/%3E%3Cpath d='M330 286h24M374 286h24'/%3E%3Cpath d='M371 327v-49h23v49'/%3E%3Cpath d='M378 177h20v28'/%3E%3Cpath d='M122 229h28M180 229h28'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 380'%3E%3Cg fill='none' stroke='%23FAF9F5' stroke-width='5' stroke-linecap='round' stroke-linejoin='round' opacity='0.9'%3E%3Cpath d='M52 226 150 142l98 84'/%3E%3Cpath d='M82 203v110h136V203'/%3E%3Cpath d='M132 313v-62h36v62'/%3E%3Cpath d='M266 250l62-54 62 54'/%3E%3Cpath d='M284 233v80h88v-80'/%3E%3Cpath d='M307 274h18M338 274h18'/%3E%3Cpath d='M326 313v-47h20v47'/%3E%3C/g%3E%3C/svg%3E");
    background-size:420px auto, 360px auto;
    background-position:left -30px top 150px, right -20px bottom 110px;
  }

  body.analyzer-business::before{
    opacity:0.078;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 760 300'%3E%3Cg fill='none' stroke='%23FAF9F5' stroke-width='4.6' stroke-linecap='round' stroke-linejoin='round' opacity='0.9'%3E%3Cpath d='M48 230h662'/%3E%3Cpath d='M66 142h158v88H66z'/%3E%3Cpath d='M66 118h158v24H66z'/%3E%3Cpath d='M92 142v-24M118 142v-24M144 142v-24M170 142v-24M196 142v-24'/%3E%3Cpath d='M84 230v-54h48v54M150 230v-54h56v54'/%3E%3Cpath d='M282 132h188v98H282z'/%3E%3Cpath d='M282 108h188v24H282z'/%3E%3Cpath d='M308 132v-24M334 132v-24M360 132v-24M386 132v-24M412 132v-24M438 132v-24'/%3E%3Cpath d='M302 230v-62h52v62M370 230v-62h78v62'/%3E%3Cpath d='M520 148h170v82H520z'/%3E%3Cpath d='M520 124h170v24H520z'/%3E%3Cpath d='M548 148v-24M574 148v-24M600 148v-24M626 148v-24M652 148v-24'/%3E%3Cpath d='M542 230v-50h48v50M604 230v-50h66v50'/%3E%3Cpath d='M115 98h60M347 88h58M567 98h76'/%3E%3C/g%3E%3C/svg%3E"),
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 260'%3E%3Cg fill='none' stroke='%23FAF9F5' stroke-width='4.2' stroke-linecap='round' stroke-linejoin='round' opacity='0.9'%3E%3Cpath d='M42 198h556'/%3E%3Cpath d='M66 126h114v72H66z'/%3E%3Cpath d='M66 106h114v20H66z'/%3E%3Cpath d='M88 126v-20M110 126v-20M132 126v-20M154 126v-20'/%3E%3Cpath d='M84 198v-44h36v44M130 198v-44h34v44'/%3E%3Cpath d='M236 116h160v82H236z'/%3E%3Cpath d='M236 96h160v20H236z'/%3E%3Cpath d='M260 116v-20M284 116v-20M308 116v-20M332 116v-20M356 116v-20'/%3E%3Cpath d='M258 198v-52h46v52M320 198v-52h58v52'/%3E%3Cpath d='M450 132h126v66H450z'/%3E%3Cpath d='M450 112h126v20H450z'/%3E%3Cpath d='M472 132v-20M494 132v-20M516 132v-20M538 132v-20'/%3E%3Cpath d='M468 198v-40h34v40M514 198v-40h46v40'/%3E%3C/g%3E%3C/svg%3E");
    background-size:470px auto, 390px auto;
    background-position:left -70px top 165px, right -60px bottom 125px;
  }

  body::after{
    opacity:0.05;
    background-image:
      linear-gradient(180deg, rgba(250,249,245,0.06), rgba(250,249,245,0));
    background-size:100% 240px;
    background-position:center top;
  }

  .display{
    font-family:'Fraunces', Georgia, 'Times New Roman', serif;
  }

  .mono{
    font-family:'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
    font-variant-numeric: tabular-nums;
  }

  .wrap{
    max-width:920px;
    margin:0 auto;
    position:relative;
    z-index:1;
  }

  /* ---------- Masthead ---------- */
  .masthead{
    color:var(--paper);
    padding: 8px 4px 28px;
    text-align:center;
  }
  .masthead .eyebrow{
    font-size:18px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--teal);
    font-weight:600;
    margin-bottom:10px;
  }
  .masthead h1{
    font-size:clamp(29px,4vw,41px);
    margin:0 0 8px;
    font-weight:600;
    letter-spacing:-0.01em;
  }
  .masthead p{
    color:rgba(250,249,245,0.6);
    margin:0 auto;
    max-width:520px;
    line-height:1.5;
    font-size:15.5px;
  }





  /* ---------- Language switch ---------- */
  .masthead{ position:relative; }
  .language-switch{
    position:absolute;
    top:0;
    right:4px;
    width:44px;
    height:44px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.18);
    background:rgba(255,255,255,0.08);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:23px;
    line-height:1;
    box-shadow:0 5px 16px rgba(0,0,0,0.18);
    transition:transform .15s ease, background .15s ease, border-color .15s ease;
    z-index:5;
  }
  .language-flag{
    display:block;
    width:26px;
    height:auto;
    border-radius:2px;
    box-shadow:0 1px 2px rgba(0,0,0,0.25);
    pointer-events:none;
  }
  .language-switch:hover{
    transform:translateY(-1px);
    background:rgba(255,255,255,0.13);
    border-color:rgba(255,255,255,0.28);
  }
  .language-switch:focus-visible{
    outline:2px solid var(--teal);
    outline-offset:3px;
  }
  @media (max-width:560px){
    .language-switch{
      width:40px;
      height:40px;
      font-size:21px;
      top:0;
      right:0;
    }
    .language-flag{ width:24px; }
    .masthead{ padding-top:52px; }
    body.analyzer-property::before{
      background-size:280px auto, 230px auto;
      background-position:left -55px top 220px, right -35px bottom 140px;
      opacity:0.07;
    }
    body.analyzer-business::before{
      background-size:320px auto, 250px auto;
      background-position:left -95px top 250px, right -65px bottom 155px;
      opacity:0.065;
    }
  }


  /* ---------- Screening disclaimer ---------- */
  .screening-disclaimer{
    margin:0 0 22px;
    padding:13px 16px;
    border:1px solid rgba(216,154,62,0.32);
    border-radius:9px;
    background:rgba(216,154,62,0.08);
    color:rgba(250,249,245,0.72);
    font-size:12.5px;
    line-height:1.55;
  }
  .screening-disclaimer strong{
    color:#F0C879;
    font-weight:700;
  }
  .screening-disclaimer.bottom{
    margin:28px 0 0;
  }


  /* ---------- What's What help modal ---------- */
  .whats-what-trigger{
    margin-top:16px;
    background:none;
    border:none;
    padding:4px 2px;
    color:var(--teal);
    font:inherit;
    font-size:14px;
    font-weight:700;
    letter-spacing:0.08em;
    text-transform:uppercase;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:4px;
  }
  .whats-what-trigger:hover{ color:#7FD9B7; }

  .help-modal{
    position:fixed;
    inset:0;
    z-index:1000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
    background:rgba(5,12,22,0.78);
    backdrop-filter:blur(5px);
  }
  .help-modal.open{ display:flex; }
  .help-dialog{
    width:min(980px,100%);
    max-height:90vh;
    background:var(--paper);
    color:var(--ink);
    border-radius:14px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,0.12);
    box-shadow:0 30px 80px rgba(0,0,0,0.45);
  }
  .help-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:20px 24px;
    background:var(--ink-2);
    color:var(--paper);
    border-bottom:1px solid rgba(250,249,245,0.10);
  }
  .help-title-wrap .eyebrow-small{
    font-size:11px;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:var(--teal);
    font-weight:700;
    margin-bottom:4px;
  }
  .help-title{
    margin:0;
    font-family:'Fraunces', Georgia, serif;
    font-size:28px;
    line-height:1.1;
  }
  .help-actions{ display:flex; align-items:center; gap:10px; }
  .help-pdf-link{
    color:var(--paper);
    text-decoration:none;
    font-size:12px;
    font-weight:600;
    border:1px solid rgba(250,249,245,0.18);
    border-radius:7px;
    padding:8px 10px;
  }
  .help-pdf-link:hover{ border-color:var(--teal); color:#7FD9B7; }
  .help-close{
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid rgba(250,249,245,0.18);
    background:transparent;
    color:var(--paper);
    font-size:24px;
    line-height:1;
    cursor:pointer;
  }
  .help-close:hover{ border-color:var(--teal); color:#7FD9B7; }
  .help-content{
    max-height:calc(90vh - 80px);
    overflow-y:auto;
    padding:24px 28px 34px;
    scroll-behavior:smooth;
  }
  .help-intro{
    background:var(--paper-dim);
    border-radius:10px;
    padding:16px 18px;
    margin-bottom:18px;
    line-height:1.55;
    font-size:14px;
  }
  .help-toc{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:26px;
  }
  .help-toc a{
    color:var(--ink-2);
    text-decoration:none;
    font-size:12px;
    font-weight:600;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    padding:7px 10px;
  }
  .help-toc a:hover{ border-color:var(--teal); color:#1B6B60; }
  .help-section{
    scroll-margin-top:16px;
    padding:4px 0 24px;
    margin-bottom:18px;
    border-bottom:1px solid var(--line);
  }
  .help-section:last-child{ border-bottom:none; margin-bottom:0; }
  .help-section h3{
    margin:0 0 7px;
    font-family:'Fraunces', Georgia, serif;
    font-size:23px;
    color:var(--ink);
  }
  .help-section > p{
    margin:0 0 14px;
    color:var(--text-dim);
    line-height:1.55;
    font-size:13px;
  }
  .help-grid{
    display:grid;
    grid-template-columns:minmax(180px,0.75fr) minmax(0,1.75fr);
    border:1px solid var(--line);
    border-radius:9px;
    overflow:hidden;
    background:#fff;
  }
  .help-term,.help-def{
    padding:10px 12px;
    border-bottom:1px solid var(--line);
    font-size:12.5px;
    line-height:1.45;
  }
  .help-term{
    font-weight:700;
    background:rgba(15,27,45,0.025);
  }
  .help-grid > :nth-last-child(-n+2){ border-bottom:none; }
  .help-formula{
    margin-top:12px;
    border-left:3px solid var(--teal);
    padding:9px 12px;
    background:var(--teal-dim);
    font-family:'JetBrains Mono', monospace;
    font-size:12px;
    line-height:1.55;
  }
  .help-note{
    margin-top:12px;
    padding:11px 13px;
    border-radius:8px;
    background:var(--amber-dim);
    color:#6f4d18;
    font-size:12.5px;
    line-height:1.5;
  }
  body.modal-open{ overflow:hidden; }
  @media (max-width:640px){
    .help-modal{ padding:10px; }
    .help-dialog{ max-height:96vh; border-radius:10px; }
    .help-content{ max-height:calc(96vh - 82px); padding:18px 16px 26px; }
    .help-header{ padding:15px 16px; }
    .help-title{ font-size:22px; }
    .help-pdf-link{ display:none; }
    .help-grid{ grid-template-columns:1fr; }
    .help-term{ border-bottom:none; padding-bottom:3px; }
    .help-def{ padding-top:2px; }
    .help-grid > :nth-last-child(-n+2){ border-bottom:1px solid var(--line); }
    .help-grid > :last-child{ border-bottom:none; }
  }

  /* ---------- Verdict strip (signature element) ---------- */
  .verdict{
    position:sticky;
    top:12px;
    z-index:20;
    background:var(--ink-2);
    border:1px solid rgba(250,249,245,0.08);
    border-radius:10px;
    padding:16px 18px;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0;
    margin-bottom:28px;
    box-shadow:0 20px 40px -20px rgba(0,0,0,0.6);
  }
  .verdict .vcell{
    padding:4px 18px;
    border-left:1px solid rgba(250,249,245,0.08);
  }
  .verdict .vcell:first-child{ border-left:none; padding-left:2px; }
  .verdict .vlabel{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:rgba(250,249,245,0.45);
    margin-bottom:6px;
  }
  .verdict .vvalue{
    font-size:23px;
    font-weight:600;
    color:var(--paper);
  }
  .verdict .vvalue.good{ color:#7FD9B7; }
  .verdict .vvalue.bad{ color:#E39A83; }
  .verdict .vsub{
    font-size:12px;
    color:rgba(250,249,245,0.4);
    margin-top:3px;
  }

  @media (max-width:640px){
    .verdict{ grid-template-columns:repeat(2,1fr); row-gap:16px; }
    .verdict .vcell:nth-child(3){ border-left:none; }

    /* Mobile keyboard mode: give the active input the full viewport.
       The sticky results card returns automatically when editing ends. */
    body.mobile-input-active .verdict{
      display:none;
    }
  }

  .deal-verdict-row{
    grid-column:1 / -1;
    margin-top:14px;
    padding:14px 2px 2px;
    border-top:1px solid rgba(250,249,245,0.08);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
  }
  .deal-verdict-label{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:rgba(250,249,245,0.45);
    margin-bottom:4px;
  }
  .deal-verdict-value{
    font-size:20px;
    font-weight:700;
    color:var(--paper);
  }
  .deal-verdict-value.strong{ color:#7FD9B7; }
  .deal-verdict-value.workable{ color:#F0C879; }
  .deal-verdict-value.weak{ color:#E39A83; }
  .deal-verdict-reason{
    max-width:560px;
    font-size:13px;
    line-height:1.45;
    color:rgba(250,249,245,0.60);
    text-align:right;
  }
  @media (max-width:640px){
    .deal-verdict-row{
      flex-direction:column;
      align-items:flex-start;
      gap:6px;
    }
    .deal-verdict-reason{ text-align:left; }
  }

  /* ---------- Cards ---------- */
  .card{
    background:var(--paper);
    border-radius:10px;
    padding:26px 28px 30px;
    margin-bottom:20px;
    border:1px solid rgba(0,0,0,0.04);
  }
  .card h2{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:0.1em;
    color:var(--text-dim);
    margin:0 0 4px;
    font-weight:700;
  }
  .card .card-sub{
    font-size:13.5px;
    color:var(--text-dim);
    margin:0 0 20px;
  }

  .grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 20px;
  }
  @media (max-width:560px){ .grid{ grid-template-columns:1fr; } }

  .field{
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .field label{
    font-size:13.5px;
    color:var(--ink);
    font-weight:500;
  }
  .field .hint{
    font-size:12px;
    color:var(--text-dim);
    margin-top:-3px;
  }

  input[type=number], input[type=text], select{
    font-family:'JetBrains Mono', monospace;
    font-size:15px;
    padding:9px 10px;
    border:1px solid rgba(15,27,45,0.16);
    border-radius:6px;
    background:#fff;
    color:var(--ink);
    width:100%;
  }
  input:focus, select:focus{
    outline:none;
    border-color:var(--teal);
    box-shadow:0 0 0 3px var(--teal-dim);
  }
  input[readonly]{
    background:var(--paper-dim);
    color:var(--ink-2);
    border-color:transparent;
    font-weight:600;
  }

  .important-expense:placeholder-shown{
    border-color:rgba(216,154,62,.72);
    background:#FFFDF7;
    box-shadow:0 0 0 2px rgba(216,154,62,.08);
  }
  .important-expense-note{
    margin:8px 0 0;
    font-size:12px;
    line-height:1.45;
    color:#7A5A25;
  }

  .down-payment-field{
    position:relative;
  }
  .compact-mode-select{
    position:absolute;
    top:-8px;
    right:0;
    width:auto;
    min-width:58px;
    padding:5px 8px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
  }
  .down-payment-field > input{ margin-top:0; }
  .pmi-required-note{
    display:block;
    margin-top:6px;
    font-size:12px;
    line-height:1.4;
    color:#7A5A25;
    font-weight:600;
  }
  .pmi-required-note[hidden]{ display:none; }

  .unit-row{ display:flex; gap:8px; align-items:center; margin-bottom:8px; }
  .unit-row input{ flex:1; }
  .unit-row .unit-num{ font-size:13px; color:var(--text-dim); width:52px; flex:none; }
  .remove-unit{
    background:none; border:none; color:var(--red); cursor:pointer;
    font-size:17px; line-height:1; padding:4px 8px; flex:none;
  }
  .add-unit{
    background:none;
    border:1px dashed rgba(15,27,45,0.25);
    color:var(--ink-2);
    border-radius:6px;
    padding:8px 12px;
    font-size:13.5px;
    cursor:pointer;
    margin-top:2px;
  }
  .add-unit:hover{ border-color:var(--teal); color:var(--teal); }

  .divider{
    height:1px;
    background:var(--line);
    margin:22px 0;
  }

  .clear-section-row{
    display:flex;
    justify-content:flex-end;
    margin-top:22px;
    padding-top:16px;
    border-top:1px solid var(--line);
  }
  .clear-section-btn{
    appearance:none;
    background:#fff;
    border:1px solid rgba(198,65,65,0.35);
    color:var(--red);
    border-radius:8px;
    padding:9px 14px;
    font-size:13.5px;
    font-weight:700;
    cursor:pointer;
    transition:border-color .15s ease, background .15s ease, transform .15s ease;
  }
  .clear-section-btn:hover{
    border-color:var(--red);
    background:var(--red-dim);
  }
  .clear-section-btn:active{ transform:translateY(1px); }
  @media (max-width:640px){
    .clear-section-btn{ width:100%; padding:11px 14px; }
  }

  .subhead{
    font-size:12.5px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--text-dim);
    font-weight:700;
    margin:0 0 14px;
  }

  .expense-row{
    display:grid;
    grid-template-columns:1fr 110px;
    gap:10px;
    align-items:center;
    margin-bottom:8px;
  }
  .expense-row label{ font-size:14px; color:var(--ink); }
  .expense-row.pct-row{ grid-template-columns:1fr 90px; }

  .badge-row{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:6px;
  }
  .badge{
    padding:6px 12px;
    border-radius:20px;
    font-size:13px;
    font-weight:600;
    display:flex;
    align-items:center;
    gap:6px;
  }
  .badge.pass{ background:var(--teal-dim); color:#1B6B60; }
  .badge.fail{ background:var(--red-dim); color:var(--red); }
  .badge.neutral{ background:var(--paper-dim); color:var(--text-dim); }

  /* ---------- Assumable card special styling ---------- */
  .card.assumable{
    border:1.5px solid var(--amber);
    background: linear-gradient(180deg, var(--amber-dim) 0%, var(--paper) 90px);
  }
  .card.assumable h2{ color:#8A6222; }
  .toggle-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#fff;
    border:1px solid rgba(216,154,62,0.35);
    border-radius:8px;
    padding:12px 16px;
    margin-bottom:20px;
  }
  .toggle-row .toggle-label{ font-size:14.5px; font-weight:600; color:var(--ink); }
  .toggle-row .toggle-label span{
    display:block; font-size:12.5px; font-weight:400; color:var(--text-dim); margin-top:2px;
  }
  .switch{
    position:relative; width:46px; height:26px; flex:none;
  }
  .switch input{ opacity:0; width:0; height:0; }
  .slider{
    position:absolute; cursor:pointer; inset:0;
    background:#ccc; border-radius:26px; transition:.2s;
  }
  .slider:before{
    content:""; position:absolute; height:20px; width:20px; left:3px; bottom:3px;
    background:white; border-radius:50%; transition:.2s;
  }
  .switch input:checked + .slider{ background:var(--amber); }
  .switch input:checked + .slider:before{ transform:translateX(20px); }

  .assumable-body{ display:none; }
  .assumable-body.on{ display:block; }

  .savings-panel{
    margin-top:20px;
    padding:16px 18px;
    background:#fff;
    border:1px solid rgba(216,154,62,0.35);
    border-radius:8px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
  }
  @media (max-width:560px){ .savings-panel{ grid-template-columns:1fr; } }
  .savings-panel .slabel{ font-size:12px; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.05em; }
  .savings-panel .sval{ font-size:20px; font-weight:700; margin-top:4px; }
  .savings-panel .sval.good{ color:#1B6B60; }
  .savings-panel .sval.bad{ color:var(--red); }

  footer{
    text-align:center;
    color:rgba(250,249,245,0.35);
    font-size:12.5px;
    margin-top:36px;
  }

  /* ---------- 50% rule estimate panel (no pass/fail) ---------- */
  .estimate-panel{
    margin-top:16px;
    padding:14px 16px;
    background:var(--paper-dim);
    border-radius:8px;
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:12px;
  }
  @media (max-width:560px){ .estimate-panel{ grid-template-columns:1fr; } }
  .estimate-panel .elabel{ font-size:11.5px; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.05em; }
  .estimate-panel .eval{ font-size:17px; font-weight:600; margin-top:3px; }
  .estimate-panel .enote{
    grid-column:1/-1;
    font-size:12.5px;
    color:var(--text-dim);
    margin-top:2px;
    line-height:1.4;
  }

  /* ---------- Comparison table ---------- */
  .compare-table{
    width:100%;
    border-collapse:collapse;
    margin-top:18px;
    font-size:14px;
  }
  .compare-table th, .compare-table td{
    padding:9px 10px;
    text-align:right;
    border-bottom:1px solid var(--line);
  }
  .compare-table th:first-child, .compare-table td:first-child{ text-align:left; }
  .compare-table thead th{
    font-size:11.5px;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--text-dim);
    font-weight:700;
    border-bottom:2px solid var(--line);
  }
  .compare-table td{ font-family:'JetBrains Mono', monospace; }
  .compare-table td.label-cell{ font-family:'Inter', sans-serif; color:var(--ink); }
  .compare-table .col-active{ background:rgba(47,158,143,0.08); font-weight:700; }

  .dscr-note{
    font-size:12px;
    color:var(--text-dim);
    margin-top:6px;
  }


  /* ---------- Professional resources navigation ---------- */
  .professional-nav{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin:0 auto 20px;
  }
  .professional-nav-label{
    width:100%;
    text-align:center;
    font-size:10.5px;
    font-weight:700;
    letter-spacing:.11em;
    text-transform:uppercase;
    color:rgba(250,249,245,.42);
    margin-bottom:1px;
  }
  .professional-nav a{
    color:rgba(250,249,245,.82);
    text-decoration:none;
    border:1px solid rgba(250,249,245,.16);
    background:rgba(250,249,245,.06);
    border-radius:999px;
    padding:9px 15px;
    font-size:12.5px;
    font-weight:700;
    transition:.16s ease;
  }
  .professional-nav a:hover{
    color:var(--paper);
    border-color:rgba(127,217,183,.55);
    background:rgba(47,158,143,.13);
    transform:translateY(-1px);
  }
  @media(max-width:520px){
    .professional-nav{gap:7px;margin-bottom:18px;}
    .professional-nav a{padding:9px 11px;font-size:11.5px;}
  }

  /* ---------- Professional resources: coming soon popup ---------- */
  .coming-soon-modal{
    position:fixed;
    inset:0;
    z-index:1200;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(5,12,22,.76);
    backdrop-filter:blur(5px);
  }
  .coming-soon-modal.open{display:flex;}
  .coming-soon-card{
    position:relative;
    width:min(420px,100%);
    padding:30px 28px 26px;
    border-radius:14px;
    background:var(--paper);
    color:var(--ink);
    text-align:center;
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 28px 70px rgba(0,0,0,.38);
  }
  .coming-soon-kicker{
    margin-bottom:8px;
    color:var(--teal);
    font-size:11px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .coming-soon-card h2{
    margin:0 0 8px;
    font-family:'Fraunces',Georgia,serif;
    font-size:30px;
    font-weight:600;
  }
  .coming-soon-card p{
    margin:0;
    color:var(--text-dim);
    font-size:14px;
    line-height:1.55;
  }
  .coming-soon-close{
    position:absolute;
    top:12px;
    right:12px;
    width:36px;
    height:36px;
    border-radius:50%;
    border:1px solid var(--line);
    background:#fff;
    color:var(--ink);
    font-size:22px;
    line-height:1;
    cursor:pointer;
  }
  .coming-soon-close:hover{border-color:var(--teal);color:var(--teal);}

  /* ---------- Analyzer mode switch ---------- */
  .analyzer-mode-switch{
    display:flex;
    justify-content:center;
    gap:8px;
    margin:18px auto 22px;
    padding:5px;
    width:min(460px,100%);
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.13);
    border-radius:999px;
  }
  .analyzer-mode-btn{
    flex:1;
    border:0;
    border-radius:999px;
    padding:11px 14px;
    background:transparent;
    color:rgba(255,255,255,0.72);
    font:700 13px/1 'Inter',sans-serif;
    cursor:pointer;
    transition:.18s ease;
  }
  .analyzer-mode-btn.active{
    background:var(--paper);
    color:var(--ink);
    box-shadow:0 5px 18px rgba(0,0,0,.18);
  }
  .analyzer-panel{display:none;}
  .analyzer-panel.active{display:block;}

  /* ---------- Property sub-tabs / Future Returns ---------- */
  .property-subtabs{display:flex;gap:8px;margin:0 0 14px;padding:4px;background:rgba(250,249,245,.08);border:1px solid rgba(250,249,245,.12);border-radius:14px;}
  .property-subtab-btn{flex:1;border:1px solid rgba(250,249,245,.16);border-radius:10px;padding:11px 14px;font:700 13px/1 'Inter',sans-serif;color:rgba(250,249,245,.88);background:rgba(250,249,245,.055);box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 2px 7px rgba(0,0,0,.08);cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .12s ease;}
  .property-subtab-btn:hover{color:var(--paper);background:rgba(250,249,245,.10);border-color:rgba(250,249,245,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 4px 10px rgba(0,0,0,.12);}
  .property-subtab-btn:active{transform:translateY(1px);background:rgba(250,249,245,.14);}
  .property-subtab-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  .property-subtab-btn.active{color:var(--ink);background:var(--paper);border-color:var(--paper);box-shadow:0 5px 16px rgba(0,0,0,.14);transform:none;}
  .property-subview{display:none;}
  .property-subview.active{display:block;}
  .future-banner{background:linear-gradient(135deg,rgba(47,158,143,.16),rgba(216,154,62,.12));border:1px solid rgba(47,158,143,.25);border-radius:14px;padding:14px 16px;margin-bottom:16px;color:var(--ink);}
  .future-banner strong{display:block;margin-bottom:4px;}
  .future-banner span{font-size:13px;color:var(--text-dim);line-height:1.45;}
  .future-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0;}
  .future-metric{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 8px 22px rgba(0,0,0,.08);}
  .future-metric .fm-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:700;}
  .future-metric .fm-value{font-size:21px;font-weight:800;margin-top:6px;color:var(--ink);}
  .future-metric .fm-note{font-size:11px;color:var(--text-dim);margin-top:5px;line-height:1.35;}
  .future-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;}
  .future-table{width:100%;border-collapse:collapse;min-width:790px;background:var(--paper);}
  .future-table th,.future-table td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:right;font-size:12px;white-space:nowrap;}
  .future-table th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);background:var(--paper-dim);}
  .future-table th:first-child,.future-table td:first-child{text-align:left;}
  .future-table tr:last-child td{border-bottom:0;}
  .projection-note{font-size:12px;line-height:1.55;color:var(--text-dim);margin:12px 0 0;}
  .projection-warning{margin-top:12px;padding:12px 14px;border-radius:11px;background:var(--amber-dim);color:#6f5428;font-size:12px;line-height:1.5;}
  @media(max-width:760px){.future-metrics{grid-template-columns:1fr 1fr;}}
  @media(max-width:520px){.property-subtab-btn{font-size:12px;padding:10px 8px}.future-metrics{grid-template-columns:1fr 1fr}.future-metric .fm-value{font-size:18px;}}


  /* ---------- Compare Properties ---------- */
  body.compare-active .wrap{max-width:1500px;}
  .compare-properties-view{display:none;}
  .compare-properties-view.active{display:block;}
  .compare-intro-card{background:var(--paper);border:1px solid rgba(0,0,0,.04);border-radius:12px;padding:20px 22px;margin-bottom:14px;}
  .compare-intro-card h2{margin:0 0 5px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);}
  .compare-intro-card p{margin:0;color:var(--text-dim);font-size:13px;line-height:1.5;}
  .compare-toolbar{background:var(--paper);border:1px solid rgba(0,0,0,.04);border-radius:12px;padding:18px 20px;margin-bottom:14px;}
  .compare-toolbar-title{font-size:13px;font-weight:800;color:var(--ink);margin-bottom:5px;}
  .compare-toolbar-note{font-size:12px;color:var(--text-dim);line-height:1.45;margin-bottom:12px;}
  .copy-options{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:12px;}
  .copy-option{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);cursor:pointer;}
  .copy-option input{width:auto;margin:0;}
  .copy-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
  .copy-btn{border:1px solid rgba(15,27,45,.16);background:#fff;color:var(--ink);border-radius:8px;padding:9px 12px;font-size:12px;font-weight:750;cursor:pointer;}
  .copy-btn:hover{border-color:var(--teal);color:#176552;}
  .copy-status{font-size:12px;color:var(--text-dim);margin-left:auto;}
  .compare-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start;}
  .compare-property-shell{background:rgba(250,249,245,.06);border:1px solid rgba(250,249,245,.12);border-radius:14px;overflow:hidden;}
  .compare-property-head{padding:12px;background:var(--ink-2);border-bottom:1px solid rgba(250,249,245,.10);}
  .compare-property-kicker{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--teal);font-weight:800;margin-bottom:6px;}
  .compare-label-input{background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.16)!important;color:var(--paper)!important;font-family:'Inter',sans-serif!important;font-size:13px!important;}
  .compare-label-input::placeholder{color:rgba(250,249,245,.42);}
  .compare-frame{display:block;width:100%;height:1220px;border:0;background:var(--ink);}
  .compare-summary{margin-top:16px;background:var(--paper);border-radius:12px;padding:20px;overflow:hidden;}
  .compare-summary h2{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);margin:0 0 6px;}
  .compare-summary p{font-size:12px;color:var(--text-dim);margin:0 0 14px;line-height:1.45;}
  .property-compare-table{width:100%;border-collapse:collapse;font-size:13px;}
  .property-compare-table th,.property-compare-table td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:right;}
  .property-compare-table th:first-child,.property-compare-table td:first-child{text-align:left;}
  .property-compare-table th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);}
  .property-compare-table td:not(:first-child){font-family:'JetBrains Mono',monospace;}
  .property-compare-table tr:last-child td{border-bottom:0;}
  .compare-winner{color:#176552;font-weight:800;}
  .compare-mobile-tabs{display:none;gap:7px;margin-bottom:8px;}
  .compare-mobile-tab{flex:1;border:1px solid rgba(250,249,245,.14);border-radius:8px;background:transparent;color:rgba(250,249,245,.72);padding:9px;font-weight:700;cursor:pointer;}
  .compare-mobile-tab.active{background:var(--paper);color:var(--ink);}
  body.compare-child{padding:10px 8px 28px;background:var(--ink);}
  body.compare-child .wrap{max-width:none;}
  body.compare-child .masthead,
  body.compare-child > .wrap > .screening-disclaimer:first-of-type,
  body.compare-child .professional-nav,
  body.compare-child .analyzer-mode-switch,
  body.compare-child #businessAnalyzer,
  body.compare-child footer{display:none!important;}
  body.compare-child #propertyAnalyzer{display:block!important;}
  body.compare-child .property-subtabs{margin-top:0;}
  body.compare-child::before,body.compare-child::after{display:none;}
  body.compare-child .card{padding:20px 18px 22px;}
  body.compare-child .verdict{top:4px;}
  body.compare-child #comparePropertiesTab{display:none!important;}
  @media(max-width:900px){
    .compare-columns{grid-template-columns:1fr;}
    .compare-frame{height:1050px;}
    .compare-mobile-tabs{display:flex;}
    .compare-property-shell{display:none;}
    .compare-property-shell.mobile-active{display:block;}
    .copy-status{width:100%;margin-left:0;}
  }

  /* ---------- Business analyzer ---------- */
  .business-kicker{
    margin:-2px 0 18px;
    font-size:12px;
    color:var(--text-dim);
    line-height:1.5;
  }
  .business-note{
    margin-top:12px;
    padding:11px 13px;
    border-radius:10px;
    background:var(--amber-dim);
    color:#6f5428;
    font-size:12px;
    line-height:1.45;
  }
  .business-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
    margin-top:16px;
  }
  .business-summary-box{
    padding:14px;
    border:1px solid var(--line);
    border-radius:12px;
    background:rgba(15,27,45,.025);
  }
  .business-summary-box .b-label{
    color:var(--text-dim);
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.05em;
    font-weight:700;
  }
  .business-summary-box .b-value{
    margin-top:5px;
    font-size:18px;
    font-weight:700;
  }
  .business-summary-box .b-note{
    margin-top:4px;
    color:var(--text-dim);
    font-size:11.5px;
    line-height:1.35;
  }
  .business-risk-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:10px;
    margin-top:14px;
  }
  .business-risk-item{
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:10px;
    background:rgba(15,27,45,.025);
    font-size:12px;
    line-height:1.4;
  }
  .business-risk-item.warn{background:var(--amber-dim);color:#6f5428;}
  .business-risk-item.bad{background:rgba(184,64,64,.09);color:#7f3030;}
  .business-risk-item.good{background:rgba(31,122,104,.09);color:#176552;}
  @media(max-width:700px){
    .business-summary-grid{grid-template-columns:1fr 1fr;}
    .business-risk-grid{grid-template-columns:1fr;}
  }
  @media(max-width:480px){
    .business-summary-grid{grid-template-columns:1fr;}
    .analyzer-mode-btn{font-size:12px;padding:10px 8px;}
  }


/* ---------- Deal Seeker brand lockups ---------- */
.brand-lockup{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-bottom:10px;
}
.brand-lockup .eyebrow{
  margin-bottom:0;
}
.brand-logo{
  width:65px;
  height:65px;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
}
.footer-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-bottom:7px;
  color:var(--teal);
  font-size:13.5px;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
}
.footer-brand-logo{
  width:34px;
  height:34px;
  display:block;
  object-fit:contain;
  flex:0 0 auto;
}
.footer-note{
  color:rgba(250,249,245,0.35);
}


/* ---------- Full site footer ---------- */
.site-footer{
  padding:28px 20px 24px;
  border-top:1px solid rgba(250,249,245,0.10);
}
.footer-links{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 20px;
  margin:12px 0 14px;
}
.footer-links a,
.footer-link-button{
  appearance:none;
  border:0;
  background:none;
  padding:0;
  margin:0;
  color:rgba(250,249,245,0.64);
  font:inherit;
  font-size:12.5px;
  text-decoration:none;
  cursor:pointer;
}
.footer-links a:hover,
.footer-link-button:hover{
  color:var(--teal);
}
.footer-links a:focus-visible,
.footer-link-button:focus-visible{
  outline:2px solid var(--teal);
  outline-offset:4px;
  border-radius:2px;
}
.footer-legal{
  margin-top:12px;
  color:rgba(250,249,245,0.28);
  font-size:11.5px;
}
@media (max-width:560px){
  .site-footer{padding-left:12px;padding-right:12px;}
  .footer-links{gap:10px 16px;}
}


/* Investor Targets + Stress Test */
.investor-targets-card{border-top:3px solid var(--teal);}
.target-note{margin:12px 0 0;padding:10px 12px;border-radius:7px;background:rgba(47,158,143,.08);font-size:12.5px;color:var(--text-dim);line-height:1.5;}
.stress-test-card{border-top:3px solid var(--amber);}
.stress-assumption-grid{display:grid;grid-template-columns:minmax(150px,1.15fr) 1fr 1fr;gap:8px 12px;align-items:center;margin:16px 0 18px;}
.stress-assumption-head{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:700;text-align:center;}
.stress-assumption-label{font-size:12.5px;font-weight:600;color:var(--ink);}
.stress-inline{display:flex;align-items:center;gap:6px;}
.stress-inline input{min-width:0;width:100%;}
.stress-inline span{font-size:11px;color:var(--text-dim);min-width:22px;}
.stress-table-wrap{overflow-x:auto;}
.stress-table{min-width:560px;}
.stress-table td:not(.label-cell){text-align:center;}
.stress-pass{color:var(--teal);font-weight:700;}
.stress-warn{color:var(--amber);font-weight:700;}
.stress-fail{color:var(--red);font-weight:700;}
.stress-note{margin:12px 0 0;font-size:12.5px;color:var(--text-dim);line-height:1.5;}
.stress-pass-text{color:var(--teal);}
.stress-warn-text{color:var(--amber);}
.stress-fail-text{color:var(--red);}
@media(max-width:560px){
  .stress-assumption-grid{grid-template-columns:1.25fr 1fr 1fr;gap:7px 8px;}
  .stress-assumption-label{font-size:11.5px;}
  .stress-inline span{font-size:10px;min-width:18px;}
}

/* ===================== Fix & Flip Analyzer ===================== */
.ff-topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:8px 0 16px;padding:20px 22px;border:1px solid rgba(250,249,245,.14);border-radius:16px;background:rgba(250,249,245,.055);color:var(--paper);}
.ff-topbar h2{margin:2px 0 5px;font-size:28px;color:var(--paper);}.ff-topbar p{margin:0;max-width:760px;color:rgba(250,249,245,.72);}.ff-kicker{font-size:12px;letter-spacing:.18em;font-weight:800;color:var(--teal);}
.ff-mode-toggle{display:flex;gap:4px;padding:4px;border:1px solid rgba(250,249,245,.16);border-radius:12px;background:rgba(0,0,0,.14);flex:0 0 auto}.ff-mode-btn{border:0;border-radius:9px;background:transparent;color:rgba(250,249,245,.72);font:inherit;font-weight:800;padding:9px 14px;cursor:pointer}.ff-mode-btn.active{background:var(--teal);color:#10212b}
.ff-verdict{margin-bottom:16px}.ff-card{position:relative}.ff-card .optional-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-left:4px}
.ff-advanced-only{display:none}.ff-advanced .ff-advanced-only{display:block}.ff-advanced .ff-simple-only{display:none}.ff-cash .ff-financed{display:none!important}.ff-amortized-option{display:none}.ff-amortized .ff-amortized-option{display:block}
.ff-itemized-block{margin-top:18px;padding-top:18px;border-top:1px dashed rgba(31,42,55,.18)}.ff-subheading{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--muted);margin-bottom:12px}
.inline-input-mode{display:grid;grid-template-columns:1fr 74px;gap:8px}.inline-input-mode select{min-width:0}.checkbox-label{display:flex!important;gap:10px;align-items:center}.checkbox-label input{width:auto!important;min-height:0!important}
.ff-warning{margin-top:14px;padding:12px 14px;border-radius:11px;background:rgba(210,135,75,.12);border:1px solid rgba(210,135,75,.35);color:#8b4f22;font-weight:700}.ff-warning[hidden]{display:none}
.ff-draw-wrap{margin-top:16px}.ff-draw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.ff-draw-total{margin-top:8px;font-size:12px;font-weight:800;color:var(--muted)}.ff-draw-total.bad{color:#b34f38}
.ff-target-card{border-top:3px solid var(--teal)}.ff-stress-card{border-top:3px solid var(--amber)}
.ff-primary-metrics{grid-template-columns:repeat(4,1fr)}.ff-stress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ff-stress-scenario{border:1px solid rgba(31,42,55,.14);border-radius:14px;padding:16px;background:rgba(255,255,255,.42)}.ff-scenario-title{font-size:18px;font-weight:900;color:var(--ink)}.ff-scenario-assumption{font-size:12px;color:var(--muted);min-height:34px;margin:4px 0 12px}.ff-scenario-metric{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid rgba(31,42,55,.09);font-size:13px}.ff-scenario-metric strong{font-family:var(--mono);text-align:right}.ff-scenario-target{margin-top:10px;padding:8px;border-radius:9px;text-align:center;font-weight:900;font-size:12px}.ff-scenario-target.pass{background:rgba(68,152,116,.13);color:#2f795b}.ff-scenario-target.fail{background:rgba(188,85,62,.10);color:#9b4937}
.attention-required{border-color:#d7a54b!important;box-shadow:0 0 0 3px rgba(215,165,75,.11)!important;background:#fffdf7!important}
@media(max-width:900px){.ff-primary-metrics{grid-template-columns:1fr 1fr}.ff-draw-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.property-subtabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible}.property-subtab-btn{min-width:0;width:100%;white-space:normal;line-height:1.15;min-height:44px;padding:10px 7px}.ff-topbar{align-items:flex-start;flex-direction:column}.ff-mode-toggle{width:100%}.ff-mode-btn{flex:1}.ff-stress-grid{grid-template-columns:1fr}.ff-scenario-assumption{min-height:0}.ff-draw-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ff-primary-metrics{grid-template-columns:1fr 1fr}.ff-draw-grid{grid-template-columns:1fr}.ff-topbar h2{font-size:24px}}

/* ===================== Mortgage Calculator ===================== */
.mortgage-view{--mc-series-1:#2fdbc7;--mc-series-2:#63a6ff;--mc-series-3:#f2bf5e;--mc-series-4:#ef7f75;--mc-series-5:#a88bf4}
.mc-heading{margin:0 0 16px;color:var(--paper)}
.mc-heading h2{margin:3px 0 7px;font-size:28px}.mc-heading p{margin:0;max-width:760px;color:rgba(250,249,245,.68);line-height:1.55}
.mc-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);gap:16px;align-items:start}
.mc-input-card,.mc-results-card{margin:0}
.mc-readout{display:flex;align-items:center;min-height:48px;padding:0 14px;border-radius:10px;background:rgba(20,29,44,.06);font-weight:700;color:var(--ink)}
.mc-advanced-toggle{display:inline-flex;align-items:center;gap:8px;margin-top:10px;padding:9px 0;border:0;background:none;color:#0e73a9;font:700 14px/1 'Inter',sans-serif;cursor:pointer}.mc-chevron{font-size:16px}
.mc-advanced-panel{margin-top:8px;padding-top:12px;border-top:1px solid rgba(20,29,44,.10)}
.mc-result-tabs{display:flex;gap:20px;margin:-4px 0 18px;border-bottom:1px solid rgba(20,29,44,.12)}
.mc-result-tab{border:0;border-bottom:3px solid transparent;background:none;padding:10px 2px 11px;font:700 14px/1 'Inter',sans-serif;color:rgba(20,29,44,.56);cursor:pointer}.mc-result-tab.active{color:var(--ink);border-bottom-color:var(--teal)}
.mc-donut-wrap{display:flex;justify-content:center;padding:4px 0 18px}.mc-donut{width:min(265px,70vw);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(rgba(20,29,44,.10) 0 100%);transition:background .2s ease}.mc-donut-hole{width:65%;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:var(--paper);box-shadow:0 0 0 1px rgba(20,29,44,.05)}.mc-donut-hole span{font-size:12px;color:#68717c}.mc-donut-hole strong{font:800 clamp(24px,4vw,34px)/1.05 'Roboto Mono',monospace;color:var(--ink);margin:4px 0}.mc-donut-hole small{font-size:11px;color:#8a929b}
.mc-legend{display:grid;gap:9px}.mc-legend-row{display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center;font-size:13px;color:#49525d}.mc-legend-row strong{color:var(--ink);font-family:'Roboto Mono',monospace}.mc-dot{width:10px;height:10px;border-radius:50%}.mc-dot-1{background:var(--mc-series-1)}.mc-dot-2{background:var(--mc-series-2)}.mc-dot-3{background:var(--mc-series-3)}.mc-dot-4{background:var(--mc-series-4)}.mc-dot-5{background:var(--mc-series-5)}
.mc-total-row{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:14px 0;border-top:1px solid rgba(20,29,44,.12);border-bottom:1px solid rgba(20,29,44,.12);font-weight:700}.mc-total-row strong{font-size:20px}
.mc-snapshot{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.mc-snapshot>div{padding:11px;border-radius:10px;background:rgba(20,29,44,.045)}.mc-snapshot span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7b848e}.mc-snapshot strong{display:block;margin-top:5px;font:700 14px/1.3 'Roboto Mono',monospace;color:var(--ink)}
.mc-extra-savings{margin-top:12px;padding:10px 12px;border-radius:9px;background:rgba(47,219,199,.12);color:#17695f;font-size:12px;line-height:1.45}.mc-status-note{margin-top:12px;font-size:12px;line-height:1.45;color:#6e7781}.mc-status-note.warning{color:#8c6519}
.mc-table-wrap{overflow-x:auto;border:1px solid rgba(20,29,44,.10);border-radius:10px}.mc-table{width:100%;border-collapse:collapse;min-width:570px;font-size:12px}.mc-table th,.mc-table td{text-align:right;padding:10px 11px;border-bottom:1px solid rgba(20,29,44,.08);white-space:nowrap}.mc-table th:first-child,.mc-table td:first-child{text-align:left}.mc-table th{background:rgba(20,29,44,.045);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#6e7781}.mc-table tr:last-child td{border-bottom:0}.mc-empty-row{text-align:center!important;color:#7b848e!important;padding:18px!important}
.attention-required{border-color:#d8a64f!important;box-shadow:0 0 0 2px rgba(216,166,79,.13)!important}
@media(max-width:920px){.mc-layout{grid-template-columns:1fr}.mc-results-card{order:-1}}
@media(max-width:700px){.property-subtab-btn:last-child{grid-column:1/-1}.mc-heading h2{font-size:23px}.mc-results-card{order:0}.mc-donut{width:min(235px,68vw)}.mc-snapshot{grid-template-columns:1fr 1fr}.mc-total-row{gap:12px}.mc-total-row strong{text-align:right}}
@media(max-width:430px){.mc-snapshot{grid-template-columns:1fr}.mc-legend-row{grid-template-columns:12px 1fr auto;font-size:12px}}

/* ===================== Interaction / Motion Polish =====================
   Visual-only pass: no calculation, copy, labels, or layout logic changed. */
:root{
  --motion-fast:140ms;
  --motion-base:220ms;
  --motion-slow:320ms;
  --ease-out:cubic-bezier(.22,.61,.36,1);
}

/* Give controls a more tactile, app-like feel. */
input[type=number],input[type=text],select,
.clear-section-btn,.add-unit,
.analyzer-mode-btn,.property-subtab-btn,
.professional-nav a,.footer-link-button,
.ff-mode-btn,.mc-result-tab,.mc-advanced-toggle,
.coming-soon-close{
  transition-property:background-color,border-color,color,box-shadow,transform,opacity;
  transition-duration:var(--motion-base);
  transition-timing-function:var(--ease-out);
}

input[type=number],input[type=text],select{
  box-shadow:0 1px 2px rgba(15,27,45,.035);
}
input[type=number]:hover,input[type=text]:hover,select:hover{
  border-color:rgba(15,27,45,.28);
  box-shadow:0 3px 9px rgba(15,27,45,.055);
}
input:focus,select:focus{
  transform:translateY(-1px);
  box-shadow:0 0 0 3px var(--teal-dim),0 7px 18px rgba(15,27,45,.08);
}

/* Cards gain subtle depth; hover lift is desktop-only. */
.card,
.compare-intro-card,
.mc-input-card,.mc-results-card,
.coming-soon-card{
  box-shadow:0 8px 24px rgba(6,16,30,.055);
  transition:box-shadow var(--motion-base) var(--ease-out),transform var(--motion-base) var(--ease-out),border-color var(--motion-base) var(--ease-out);
}
@media (hover:hover) and (pointer:fine){
  .card:hover,.compare-intro-card:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 34px rgba(6,16,30,.085);
  }
}

/* Signature results strip feels anchored but responsive. */
.verdict{
  transition:box-shadow var(--motion-base) var(--ease-out),border-color var(--motion-base) var(--ease-out),transform var(--motion-base) var(--ease-out);
}
.verdict .vvalue,.deal-verdict-value,.deal-verdict-reason{
  transition:color var(--motion-base) var(--ease-out),opacity var(--motion-base) var(--ease-out),transform var(--motion-base) var(--ease-out);
}

/* Active sections enter gently when switching tools. */
@keyframes dsViewIn{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}
.property-subview.active,.analyzer-panel.active{
  animation:dsViewIn var(--motion-slow) var(--ease-out) both;
}

/* Stronger button affordance and depth. */
.property-subtab-btn,
.analyzer-mode-btn,
.ff-mode-btn,
.professional-nav a,
.clear-section-btn,
.add-unit{
  will-change:transform;
}
.property-subtab-btn:not(.active){
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 4px 12px rgba(0,0,0,.13);
}
.property-subtab-btn.active{
  box-shadow:0 7px 18px rgba(0,0,0,.18);
}
@media (hover:hover) and (pointer:fine){
  .property-subtab-btn:hover,
  .analyzer-mode-btn:hover,
  .ff-mode-btn:hover,
  .professional-nav a:hover,
  .add-unit:hover{
    transform:translateY(-2px);
  }
  .clear-section-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 14px rgba(198,65,65,.10);
  }
}
.property-subtab-btn:active,
.analyzer-mode-btn:active,
.ff-mode-btn:active,
.professional-nav a:active,
.add-unit:active,
.clear-section-btn:active{
  transform:translateY(1px) scale(.99);
}

/* Mode switch gets a soft elevated selected state. */
.analyzer-mode-btn.active,.ff-mode-btn.active{
  box-shadow:0 7px 18px rgba(0,0,0,.16);
}

/* Modals appear deliberately rather than snapping in. */
.coming-soon-modal.open .coming-soon-card,
.help-modal.open .help-dialog{
  animation:dsModalIn var(--motion-slow) var(--ease-out) both;
}
@keyframes dsModalIn{
  from{opacity:0;transform:translateY(10px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* Mortgage wheel updates feel smooth without changing its math. */
.mc-donut{
  transition:background var(--motion-slow) var(--ease-out),transform var(--motion-base) var(--ease-out),box-shadow var(--motion-base) var(--ease-out);
  box-shadow:0 12px 26px rgba(15,27,45,.08);
}
@media (hover:hover) and (pointer:fine){
  .mc-donut:hover{
    transform:scale(1.015);
    box-shadow:0 16px 32px rgba(15,27,45,.11);
  }
}
.mc-donut-hole strong,.mc-total-row strong,.mc-snapshot strong,.mc-legend-row strong{
  transition:color var(--motion-base) var(--ease-out),transform var(--motion-base) var(--ease-out),opacity var(--motion-base) var(--ease-out);
}
.mc-result-tab:hover{color:var(--ink)}
.mc-result-tab.active{box-shadow:0 3px 0 -1px var(--teal)}

/* Required fields get a calm attention cue, not a constant distraction. */
@keyframes dsAttention{
  0%{box-shadow:0 0 0 2px rgba(216,166,79,.10)}
  50%{box-shadow:0 0 0 4px rgba(216,166,79,.17)}
  100%{box-shadow:0 0 0 2px rgba(216,166,79,.10)}
}
.attention-required,.important-expense:placeholder-shown{
  animation:dsAttention 1.6s ease-in-out 1;
}

/* Respect system accessibility preferences. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}
