  /* ============================================================
     PROPERTY CONSOLE (Predictive Entropy Console)
     ============================================================ */

  /* ---- Gate ---- */
  .console-gate{
    min-height:70vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:80px 6%;
  }
  .gate-card{
    background:var(--navy);
    color:var(--sand);
    border-radius:20px;
    padding:48px 40px;
    max-width:380px;
    width:100%;
    text-align:center;
    box-shadow:var(--shadow-lg);
    border:1px solid var(--line);
  }
  .gate-card .lamp-icon{
    width:64px; height:64px;
    margin:0 auto 18px;
  }
  .gate-card h2{ color:var(--sand); font-size:1.4rem; margin-bottom:6px; }
  .gate-card .gate-tag{
    font-family:'JetBrains Mono', monospace;
    font-size:0.7rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--brass-bright);
    margin-bottom:28px;
    display:block;
  }
  .gate-card input{
    width:100%;
    font-family:'Source Sans 3', sans-serif;
    font-size:1rem;
    padding:13px 16px;
    border:1.5px solid rgba(244,239,230,0.2);
    border-radius:10px;
    background:rgba(244,239,230,0.06);
    color:var(--sand);
    outline:none;
    text-align:center;
    margin-bottom:14px;
    transition:border-color 0.2s ease;
  }
  .gate-card input:focus{ border-color:var(--brass-bright); }
  .gate-card input::placeholder{ color:rgba(244,239,230,0.4); }
  .gate-error{
    color:#E08E8E;
    font-size:0.85rem;
    margin-top:10px;
    min-height:1.2em;
  }
  .gate-hint{
    margin-top:18px;
    font-size:0.78rem;
    color:rgba(244,239,230,0.4);
  }

  /* ---- Console gate + shell ---- */
  /* Gate is visible by default. JS adds .hidden to show the shell. */
  .console-gate.hidden{ display:none; }
  .console-shell{ display:none; }
  .console-shell.visible{ display:block; }

  .console-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    padding:36px 6% 0;
    max-width:1100px;
    margin:0 auto;
  }
  .console-topbar h1{
    font-size:clamp(1.7rem, 3vw, 2.3rem);
    margin-bottom:4px;
  }
  .console-subnav{
    display:flex;
    gap:6px;
    background:var(--card);
    border-radius:999px;
    padding:4px;
  }
  .console-subnav button{
    font-family:'Source Sans 3', sans-serif;
    font-weight:600;
    font-size:0.88rem;
    color:var(--navy);
    background:transparent;
    border:none;
    padding:9px 18px;
    border-radius:999px;
    cursor:pointer;
    transition:background 0.2s ease, color 0.2s ease;
  }
  .console-subnav button.active{
    background:var(--navy);
    color:var(--brass-bright);
  }
  .console-subnav button:not(.active):hover{
    background:rgba(27,42,51,0.06);
  }

  .console-body{
    max-width:1100px;
    margin:0 auto;
    padding:28px 6% 90px;
  }
  .console-sub-view{ display:none; }
  .console-sub-view.active{ display:block; }

  /* ---- Intake form (console) ---- */
  .ic-card{
    background:#fff;
    border-radius:16px;
    padding:28px 30px;
    margin-bottom:24px;
    box-shadow:0 10px 30px -18px rgba(27,42,51,0.25);
    border:1px solid rgba(27,42,51,0.06);
  }
  .ic-card h3{
    font-size:1.1rem;
    margin-bottom:18px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .ic-card h3 .ic-num{
    width:28px; height:28px;
    border-radius:50%;
    background:var(--navy);
    color:var(--brass-bright);
    font-family:'JetBrains Mono', monospace;
    font-size:0.8rem;
    display:flex; align-items:center; justify-content:center;
    flex:0 0 auto;
  }
  .ic-grid2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  @media (max-width:640px){
    .ic-grid2{ grid-template-columns:1fr; }
  }
  .ic-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
  .ic-field label{
    font-family:'JetBrains Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--sage);
  }
  .ic-field input, .ic-field select{
    font-family:'Source Sans 3', sans-serif;
    font-size:0.96rem;
    padding:11px 13px;
    border:1.5px solid #DDD3C2;
    border-radius:9px;
    background:var(--sand);
    color:var(--ink);
    outline:none;
    transition:border-color 0.2s ease;
  }
  .ic-field input:focus, .ic-field select:focus{ border-color:var(--brass); }

  .system-row{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:end;
    padding:14px;
    background:var(--sand);
    border-radius:10px;
    margin-bottom:10px;
    border:1px solid rgba(27,42,51,0.05);
  }
  .system-row .ic-field{
    flex:1 1 160px;
    min-width:140px;
  }
  .system-row .ic-field.sys-type-field{ flex:1 1 220px; }
  .system-row .sr-remove{ flex:0 0 auto; }
  @media (max-width:760px){
    .system-row .ic-field{ flex:1 1 100%; }
  }
  .sr-remove{
    background:none;
    border:1px solid #DDD3C2;
    color:#A6473C;
    font-size:0.8rem;
    font-weight:600;
    padding:11px 14px;
    border-radius:9px;
    cursor:pointer;
    transition:border-color 0.2s ease, background 0.2s ease;
  }
  .sr-remove:hover{ border-color:#A6473C; background:rgba(166,71,60,0.06); }

  .sr-scan-btn{
    background:none;
    border:1px solid var(--brass);
    color:var(--brass);
    font-size:0.8rem;
    font-weight:600;
    padding:11px 14px;
    border-radius:9px;
    cursor:pointer;
    transition:border-color 0.2s ease, background 0.2s ease;
    display:flex;
    align-items:center;
    gap:6px;
    white-space:nowrap;
    flex:0 0 auto;
  }
  .sr-scan-btn:hover{ background:rgba(192,138,62,0.08); }
  .sr-scan-btn svg{ width:15px; height:15px; flex-shrink:0; }

  .scan-modal-overlay{
    position:fixed; inset:0; background:rgba(15,26,31,0.7);
    display:flex; align-items:center; justify-content:center;
    z-index:9999; padding:1rem;
  }
  /* ── Receipt lightbox (view a saved receipt without leaving the page) ── */
  .receipt-lightbox{
    background:#fff; border-radius:14px; padding:1.25rem;
    max-width:min(92vw, 720px); max-height:90vh;
    display:flex; flex-direction:column; gap:10px;
  }
  .receipt-lightbox-header{ display:flex; align-items:center; justify-content:space-between; }
  .receipt-lightbox-header h4{ font-family:'Fraunces',serif; font-size:1.05rem; color:var(--navy); margin:0; }
  .receipt-lightbox-body{ overflow:auto; text-align:center; }
  .receipt-lightbox-body img{ max-width:100%; max-height:72vh; border-radius:8px; display:inline-block; }
  .receipt-lightbox-body iframe{ width:80vw; max-width:660px; height:70vh; border:none; border-radius:8px; }
  .receipt-lightbox-footer{ display:flex; justify-content:flex-end; gap:10px; }
  .receipt-lightbox-openlink{ font-size:0.82rem; color:var(--brass); text-decoration:underline; }

  .scan-modal{
    background:#fff; border-radius:14px; padding:1.5rem;
    width:100%; max-width:560px;
    max-height:88vh; overflow-y:auto;
    box-shadow:0 24px 60px -20px rgba(15,26,31,0.5);
  }
  .scan-modal h4{
    font-family:'Fraunces',serif; font-size:1.1rem;
    color:var(--navy); margin-bottom:0.25rem;
  }
  .scan-modal-sub{ font-size:0.85rem; color:#6B7C85; margin-bottom:1rem; }
  .scan-modal-preview{
    width:100%; max-height:180px; object-fit:contain;
    border-radius:8px; border:1px solid #E5DDD0; margin-bottom:1rem;
    display:none;
  }
  .scan-modal-status{
    font-size:0.82rem; padding:6px 10px; border-radius:7px;
    margin-bottom:1rem; display:none;
  }
  .scan-modal-status.scanning{ background:#EEF4FB; color:#1B5FA8; }
  .scan-modal-status.done{ background:#EAF4EE; color:#1A6B38; }
  .scan-modal-status.err{ background:#FBEAEA; color:#9B2B2B; }
  .scan-modal-fields{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:1rem; }
  .scan-modal-field label{
    font-size:0.72rem; font-family:'JetBrains Mono',monospace;
    letter-spacing:0.1em; text-transform:uppercase;
    color:var(--brass); display:block; margin-bottom:3px;
  }
  .scan-modal-field input{
    width:100%; border:1px solid #DDD3C2; border-radius:7px;
    padding:8px 10px; font-size:0.85rem; color:var(--ink);
    font-family:'Source Sans 3',sans-serif; background:#FAF7F2;
  }
  .scan-modal-field input:focus{ outline:none; border-color:var(--brass); }
  .scan-modal-actions{ display:flex; gap:10px; justify-content:flex-end; }
  .scan-modal-actions button{ font-size:0.85rem; padding:9px 18px; border-radius:8px; cursor:pointer; font-weight:600; }
  .btn-scan-cancel{ background:none; border:1px solid #DDD3C2; color:#6B7C85; }
  .btn-scan-apply{ background:var(--brass); border:1px solid var(--brass); color:#fff; }
  .btn-scan-apply:disabled{ opacity:0.5; cursor:not-allowed; }

  .add-system-btn{
    background:none;
    border:1.5px dashed var(--sage);
    color:var(--sage);
    font-weight:600;
    font-size:0.92rem;
    padding:12px 20px;
    border-radius:10px;
    cursor:pointer;
    width:100%;
    transition:background 0.2s ease;
  }
  .add-system-btn:hover{ background:rgba(92,122,107,0.06); }

  .ic-save-bar{
    display:flex;
    justify-content:flex-end;
    gap:12px;
    margin-top:8px;
  }

  /* ---- Customer list ---- */
  .customer-list{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .customer-row{
    background:#fff;
    border-radius:14px;
    padding:18px 22px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    border:1px solid rgba(27,42,51,0.06);
    box-shadow:0 6px 20px -16px rgba(27,42,51,0.25);
    cursor:pointer;
    transition:transform 0.15s ease, box-shadow 0.15s ease;
  }
  .customer-row:hover{
    transform:translateY(-2px);
    box-shadow:0 12px 28px -16px rgba(27,42,51,0.35);
  }
  .customer-row .cr-name{ font-weight:700; color:var(--navy); margin-bottom:2px; }
  .customer-row .cr-addr{ font-size:0.9rem; color:#5A6B76; }
  .customer-row .cr-meta{
    font-family:'JetBrains Mono', monospace;
    font-size:0.78rem;
    color:var(--brass);
    text-align:right;
    white-space:nowrap;
  }
  .customer-row .cr-score{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:1.4rem;
    color:var(--sage);
  }
  .cr-flags{
    display:flex;
    gap:8px;
    margin-top:8px;
    flex-wrap:wrap;
  }
  .cr-flag{
    font-family:'JetBrains Mono', monospace;
    font-size:0.66rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:3px 10px;
    border-radius:999px;
    color:#fff;
  }
  .cr-flag-overdue{ background:#A6473C; }
  .cr-flag-due-soon{ background:var(--brass); }
  .cr-flag-request{ background:var(--sage); }
  .console-empty{
    text-align:center;
    padding:60px 20px;
    color:#9aa3a8;
  }
  .console-empty .glyph{
    font-size:2.4rem;
    margin-bottom:10px;
    color:var(--brass);
  }

  /* ---- Property detail / aging ledger ---- */
  .pd-back{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-family:'JetBrains Mono', monospace;
    font-size:0.75rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--sage);
    background:none;
    border:none;
    cursor:pointer;
    margin-bottom:18px;
    padding:0;
  }
  .pd-back:hover{ color:var(--brass); }

  .pd-header{
    background:var(--navy);
    color:var(--sand);
    border-radius:18px;
    padding:30px 32px;
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:20px;
    margin-bottom:24px;
  }
  .pd-header h2{ color:var(--sand); margin-bottom:4px; font-size:1.5rem; }
  .pd-header .pd-addr{ color:rgba(244,239,230,0.7); font-size:0.94rem; }
  .pd-header .pd-edit{
    background:transparent;
    border:1.5px solid rgba(224,172,94,0.4);
    color:var(--brass-bright);
    font-size:0.82rem;
    font-weight:600;
    padding:9px 18px;
    border-radius:999px;
    cursor:pointer;
    transition:background 0.2s ease;
  }
  .pd-header .pd-edit:hover{ background:rgba(224,172,94,0.12); }

  .pd-score-box{
    text-align:center;
    background:rgba(244,239,230,0.06);
    border:1px solid var(--line);
    border-radius:14px;
    padding:14px 24px;
  }
  .pd-score-box .num{
    font-family:'Fraunces', serif;
    font-size:2.2rem;
    font-weight:700;
    color:var(--brass-bright);
    line-height:1;
  }
  .pd-score-box .num span{
    font-size:1rem;
    color:rgba(244,239,230,0.5);
    font-family:'Source Sans 3', sans-serif;
  }
  .pd-score-box .label{
    font-family:'JetBrains Mono', monospace;
    font-size:0.62rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:rgba(244,239,230,0.6);
    margin-top:4px;
  }

  /* Aging ledger groups */
  .ledger-section-title{
    font-family:'JetBrains Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    margin:28px 0 12px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .ledger-section-title.act-now{ color:#A6473C; }
  .ledger-section-title.plan-ahead{ color:var(--brass); }
  .ledger-section-title.stable{ color:var(--sage); }
  .ledger-section-title::after{
    content:"";
    flex:1;
    height:1px;
    background:currentColor;
    opacity:0.25;
  }

  .ledger-card{
    background:#fff;
    border-radius:14px;
    padding:18px 22px;
    margin-bottom:10px;
    display:flex;
    align-items:center;
    gap:20px;
    border:1px solid rgba(27,42,51,0.06);
    box-shadow:0 6px 18px -16px rgba(27,42,51,0.2);
  }
  @media (max-width:680px){
    .ledger-card{ flex-direction:column; align-items:stretch; gap:14px; }
  }
  .ledger-gauge{
    flex:0 0 auto;
    width:64px; height:64px;
    position:relative;
  }
  .ledger-gauge svg{ transform:rotate(-90deg); }
  .ledger-gauge .gauge-track{
    fill:none;
    stroke:#EDE6D8;
    stroke-width:6;
  }
  .ledger-gauge .gauge-fill{
    fill:none;
    stroke-width:6;
    stroke-linecap:round;
    transition:stroke-dashoffset 0.6s ease;
  }
  .ledger-gauge .gauge-pct{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'JetBrains Mono', monospace;
    font-size:0.78rem;
    font-weight:700;
    color:var(--navy);
  }
  .ledger-info{ flex:1; min-width:0; }
  .ledger-info h4{ font-size:1rem; margin-bottom:4px; }
  .ledger-info .li-meta{
    font-size:0.86rem;
    color:#5A6B76;
    margin-bottom:6px;
  }
  .ledger-info .li-advisor{
    font-size:0.9rem;
    color:#445662;
    font-style:italic;
  }
  .ledger-cost{
    flex:0 0 auto;
    text-align:right;
    font-family:'JetBrains Mono', monospace;
    font-size:0.85rem;
    color:var(--brass);
    white-space:nowrap;
  }
  @media (max-width:680px){
    .ledger-cost{ text-align:left; }
  }

  /* ── Homeowner dashboard collapsible cards (My Home tab only — distinct classes
     so the advisor console's ledgerCard() above is untouched) ── */
  .add-system-btn-wizard{
    background:var(--brass);
    border:1.5px solid var(--brass);
    color:#fff;
    font-weight:600;
    font-size:0.92rem;
    padding:13px 22px;
    border-radius:9px;
    cursor:pointer;
    transition:opacity 0.15s ease;
  }
  .add-system-btn-wizard:hover{ opacity:0.9; }

  /* ── Add-a-System wizard (category buttons → type buttons → clean form) ── */
  .wiz-modal{
    background:#fff; border-radius:16px; padding:1.75rem;
    width:100%; max-width:640px;
    max-height:90vh; overflow-y:auto;
    box-shadow:0 24px 60px -20px rgba(15,26,31,0.5);
  }
  .wiz-modal-header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:0.5rem; }
  .wiz-modal-header h3{ font-family:'Fraunces',serif; font-size:1.25rem; color:var(--navy); margin:0; }
  .wiz-close-btn{ background:none; border:none; font-size:1.7rem; line-height:1; color:#9aa3a8; cursor:pointer; padding:2px 6px; }
  .wiz-close-btn:hover{ color:var(--navy); }
  .wiz-step-sub{ font-size:0.88rem; color:#6B7C85; margin-bottom:1.25rem; }
  .wiz-btn-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
  @media (max-width:560px){ .wiz-btn-grid{ grid-template-columns:repeat(2, 1fr); } }
  .wiz-cat-btn{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    padding:20px 10px; border-radius:14px; border:1.5px solid #E5DDD0; background:#FAF7F2;
    cursor:pointer; text-align:center; transition:all 0.15s;
  }
  .wiz-cat-btn:hover{ border-color:var(--brass); background:#FBF1DD; transform:translateY(-1px); }
  .wiz-cat-btn .wiz-cat-icon{ font-size:1.9rem; }
  .wiz-cat-btn .wiz-cat-label{ font-family:'Source Sans 3',sans-serif; font-weight:600; font-size:0.84rem; color:var(--navy); line-height:1.2; }
  .wiz-type-btn{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:15px 18px; border-radius:12px; border:1.5px solid #E5DDD0; background:#FAF7F2;
    cursor:pointer; text-align:left; width:100%; margin-bottom:10px; transition:all 0.15s;
  }
  .wiz-type-btn:hover{ border-color:var(--brass); background:#FBF1DD; }
  .wiz-type-btn .wiz-type-label{ font-family:'Source Sans 3',sans-serif; font-weight:600; font-size:0.95rem; color:var(--navy); }
  .wiz-type-btn .wiz-type-cost{ font-family:'JetBrains Mono',monospace; font-size:0.74rem; color:var(--brass); white-space:nowrap; }
  .wiz-back-btn{ background:none; border:1px solid #DDD3C2; color:#6B7C85; font-size:0.85rem; padding:9px 16px; border-radius:8px; cursor:pointer; font-weight:600; }
  .wiz-back-btn:hover{ border-color:#B9AF9C; }
  .wiz-form-header{ display:flex; align-items:center; gap:10px; margin-bottom:1rem; padding-bottom:1rem; border-bottom:1px solid #EDE6D8; }
  .wiz-form-header .wiz-cat-icon{ font-size:1.6rem; }
  .wiz-form-header h4{ font-family:'Fraunces',serif; font-size:1.05rem; color:var(--navy); margin:0; }
  .wiz-modal-actions{ display:flex; gap:10px; justify-content:space-between; margin-top:1.25rem; }
  .wiz-save-btn{ background:var(--brass); border:1px solid var(--brass); color:#fff; font-size:0.9rem; padding:10px 22px; border-radius:8px; cursor:pointer; font-weight:600; }
  .wiz-save-btn:hover{ opacity:0.9; }
  @media (max-width:600px){
    .wiz-modal{ padding:1.25rem; }
    .wiz-btn-grid{ grid-template-columns:repeat(2, 1fr); gap:9px; }
    .wiz-cat-btn{ padding:16px 8px; }
  }

  .mh-ledger-card{
    background:#fff;
    border-radius:14px;
    margin-bottom:10px;
    border:1px solid rgba(27,42,51,0.06);
    box-shadow:0 6px 18px -16px rgba(27,42,51,0.2);
    overflow:hidden;
  }
  .mh-card-header{
    padding:14px 18px;
    display:flex;
    align-items:center;
    gap:14px;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .mh-card-header:hover{ background:rgba(31,61,59,0.03); }
  .mh-gauge{
    flex:0 0 auto;
    width:48px; height:48px;
    position:relative;
  }
  .mh-gauge svg{ transform:rotate(-90deg); width:48px; height:48px; }
  .mh-gauge .gauge-track{ fill:none; stroke:#EDE6D8; stroke-width:6; }
  .mh-gauge .gauge-fill{ fill:none; stroke-width:6; stroke-linecap:round; transition:stroke-dashoffset 0.6s ease; }
  .mh-gauge .gauge-pct{
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    font-family:'JetBrains Mono', monospace;
    font-size:0.66rem; font-weight:700; color:var(--navy);
  }
  .mh-icon-badge{
    flex:0 0 auto;
    width:48px; height:48px;
    border-radius:50%;
    background:#F7F3EC;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem;
  }
  .mh-title-wrap{
    flex:1; min-width:0;
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  }
  .mh-title-wrap h4{
    font-size:0.98rem; margin:0;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .mh-status-pill{
    display:inline-block;
    padding:2px 10px;
    border-radius:999px;
    font-family:'JetBrains Mono', monospace;
    font-size:0.66rem;
    font-weight:700;
    letter-spacing:0.04em;
    text-transform:uppercase;
    color:#fff;
    white-space:nowrap;
  }
  .mh-chevron{
    flex:0 0 auto;
    color:#9aa3a8;
    font-size:0.85rem;
    transition:transform 0.2s ease;
  }
  .mh-card-remove-x{
    flex:0 0 auto;
    background:none;
    border:none;
    color:#B9C0C4;
    font-size:1.4rem;
    line-height:1;
    cursor:pointer;
    padding:2px 6px;
  }
  .mh-card-remove-x:hover{ color:#A6473C; }
  .mh-ledger-card.expanded .mh-chevron{ transform:rotate(180deg); }
  .mh-card-body{
    display:none;
    padding:0 18px 18px 18px;
    border-top:1px solid rgba(27,42,51,0.06);
    padding-top:14px;
  }
  .mh-card-body .li-meta{ font-size:0.86rem; color:#5A6B76; margin-bottom:6px; }
  .mh-card-body .li-advisor{ font-size:0.9rem; color:#445662; font-style:italic; margin-bottom:6px; }
  .mh-cost-inline{
    font-family:'JetBrains Mono', monospace;
    font-size:0.85rem;
    color:var(--brass);
    margin-top:4px;
  }
  @media (max-width:680px){
    .mh-card-header{ padding:12px 14px; gap:10px; }
    .mh-gauge, .mh-icon-badge{ width:40px; height:40px; }
    .mh-gauge svg{ width:40px; height:40px; }
    .mh-title-wrap{ gap:6px; }
    .mh-title-wrap h4{ font-size:0.92rem; }
    .mh-card-body{ padding:0 14px 14px 14px; padding-top:12px; }
  }

  /* ── Budget Planner ── */
  .budget-planner{ margin-top:36px; }
  .budget-planner > p{ font-size:0.92rem; color:#6B7C85; margin-bottom:20px; }
  .budget-windows{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-bottom:24px;
  }
  @media(max-width:720px){ .budget-windows{ grid-template-columns:1fr; } }
  .budget-window{
    background:var(--navy);
    border-radius:16px;
    padding:22px 20px;
    color:var(--sand);
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .budget-window .bw-label{
    font-family:'Fraunces',serif;
    font-size:1.15rem;
    color:var(--sand);
    margin-bottom:2px;
  }
  .budget-window .bw-range{
    font-family:'JetBrains Mono',monospace;
    font-size:1.05rem;
    color:var(--brass-bright);
    font-weight:600;
  }
  .budget-window .bw-sub{
    font-size:0.78rem;
    color:rgba(244,239,230,0.5);
    letter-spacing:0.06em;
    margin-bottom:12px;
  }
  .budget-window .bw-save{
    font-size:0.82rem;
    color:var(--sage);
    margin-top:4px;
    padding-top:10px;
    border-top:1px solid rgba(255,255,255,0.08);
  }
  .budget-breakdown{
    margin-top:12px;
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .budget-item{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:8px;
    font-size:0.82rem;
  }
  .budget-item .bi-label{ color:rgba(244,239,230,0.75); flex:1; }
  .budget-item .bi-cost{
    font-family:'JetBrains Mono',monospace;
    font-size:0.76rem;
    color:var(--brass);
    white-space:nowrap;
  }
  .budget-item .bi-urgent{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    color:#E07070;
    white-space:nowrap;
  }
  .budget-window .bw-divider{
    border:none;
    border-top:1px solid rgba(255,255,255,0.08);
    margin:8px 0;
  }
  .budget-item.total-row .bi-label{ color:var(--sand); font-weight:600; }
  .budget-item.total-row .bi-cost{ color:var(--brass-bright); font-size:0.82rem; }
  .budget-none{
    font-size:0.85rem;
    color:rgba(244,239,230,0.4);
    font-style:italic;
    margin-top:8px;
  }

  /* Add system inline (detail page) */
  .pd-add-system{
    margin-top:24px;
    display:none;
  }
  .pd-add-system.open{ display:block; }
  .pd-add-system-toggle{
    margin-top:24px;
    background:none;
    border:1.5px dashed var(--sage);
    color:var(--sage);
    font-weight:600;
    font-size:0.92rem;
    padding:12px 20px;
    border-radius:10px;
    cursor:pointer;
    width:100%;
    transition:background 0.2s ease;
  }
  .pd-add-system-toggle:hover{ background:rgba(92,122,107,0.06); }

  /* Request-this-service link */
  .request-service-btn{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:none;
    border:none;
    padding:0;
    margin-top:8px;
    font-family:'JetBrains Mono', monospace;
    font-size:0.74rem;
    letter-spacing:0.06em;
    color:var(--sage);
    cursor:pointer;
    text-decoration:underline;
    text-decoration-color:rgba(92,122,107,0.35);
  }
  .request-service-btn:hover{ color:var(--brass); text-decoration-color:var(--brass); }

  /* ---- Annual Maintenance ---- */
  .maint-row{
    background:#fff;
    border-radius:14px;
    padding:18px 22px;
    margin-bottom:10px;
    display:flex;
    gap:16px;
    align-items:flex-start;
    border:1px solid rgba(27,42,51,0.06);
    box-shadow:0 6px 18px -16px rgba(27,42,51,0.2);
  }
  .maint-stripe{
    flex:0 0 auto;
    width:6px;
    align-self:stretch;
    border-radius:4px;
  }
  .maint-main{ flex:1; min-width:0; }
  .maint-top{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:4px;
  }
  .maint-label{ font-weight:700; color:var(--navy); font-size:1rem; }
  .maint-source{
    font-family:'JetBrains Mono', monospace;
    font-size:0.66rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--sage);
    background:rgba(92,122,107,0.1);
    padding:3px 9px;
    border-radius:999px;
  }
  .maint-badge{
    font-family:'JetBrains Mono', monospace;
    font-size:0.64rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#fff;
    padding:3px 10px;
    border-radius:999px;
  }
  .maint-note{ color:#5A6B76; font-size:0.9rem; margin-bottom:6px; }
  .maint-meta{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    font-size:0.85rem;
    color:#5A6B76;
    margin-bottom:10px;
  }
  .maint-actions{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    align-items:center;
  }
  .maint-log-btn{
    font-family:'Source Sans 3', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    color:var(--navy);
    background:var(--card);
    border:1px solid rgba(27,42,51,0.08);
    padding:8px 16px;
    border-radius:999px;
    cursor:pointer;
    transition:background 0.2s ease;
  }
  .maint-log-btn:hover{ background:#E5DCC8; }
  .maint-history-toggle{
    font-family:'JetBrains Mono', monospace;
    font-size:0.74rem;
    color:var(--sage);
    background:none;
    border:none;
    cursor:pointer;
    text-decoration:underline;
    text-decoration-color:rgba(92,122,107,0.35);
    padding:0;
  }
  .maint-history-toggle:hover{ color:var(--brass); }
  .maint-history-list{
    display:none;
    margin-top:10px;
    padding-top:10px;
    border-top:1px dashed #DDD3C2;
    font-size:0.85rem;
    color:#5A6B76;
  }
  .maint-history-list.open{ display:block; }
  .maint-history-list .hist-entry{
    padding:6px 0;
    border-bottom:1px solid rgba(27,42,51,0.04);
  }
  .maint-history-list .hist-entry:last-child{ border-bottom:none; }

  /* Log Completion inline form */
  .maint-log-form{ display:none; margin-top:14px; }
  .maint-log-form.open{ display:block; }
  .maint-log-form .ic-grid2{ margin-bottom:0; }
  .maint-log-form .ic-field{ margin-bottom:14px; }

  /* ---- Requested Services ---- */
  .request-row{
    background:#fff;
    border-radius:14px;
    padding:16px 22px;
    margin-bottom:10px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    border:1px solid rgba(27,42,51,0.06);
    box-shadow:0 6px 18px -16px rgba(27,42,51,0.2);
    flex-wrap:wrap;
  }
  .request-label{ font-weight:700; color:var(--navy); margin-bottom:4px; }
  .request-meta{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    font-size:0.85rem;
    color:#5A6B76;
    align-items:center;
  }
  .request-type-tag{
    font-family:'JetBrains Mono', monospace;
    font-size:0.64rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--brass);
    background:rgba(192,138,62,0.1);
    padding:3px 9px;
    border-radius:999px;
  }
  .btn-small{
    font-family:'Source Sans 3', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    color:var(--sage);
    background:none;
    border:1.5px solid var(--sage);
    padding:9px 16px;
    border-radius:999px;
    cursor:pointer;
    transition:background 0.2s ease, color 0.2s ease;
    white-space:nowrap;
  }
  .btn-small:hover{ background:var(--sage); color:#fff; }

  /* Homeowner priority queue: current work and requests belong above the
     health/maintenance overview, where they cannot be mistaken for history. */
  .ho-priority-panel{
    background:#fff;
    border:2px solid var(--brass);
    border-radius:22px;
    padding:28px 30px;
    margin:0 0 22px;
    box-shadow:0 18px 38px -30px rgba(27,42,51,0.48);
  }
  .ho-priority-panel.requests{ border-color:#DDD3C2; }
  .ho-priority-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:18px; }
  .ho-priority-head h2{ margin:0 0 4px; font-family:'Fraunces',serif; color:var(--navy); font-size:1.65rem; }
  .ho-priority-head p{ margin:0; color:#5A6B76; }
  .ho-priority-count{
    flex:0 0 auto; min-width:54px; height:54px; display:grid; place-items:center;
    border-radius:16px; background:var(--brass); color:var(--navy);
    font-family:'Fraunces',serif; font-size:1.55rem; font-weight:700;
  }
  .ho-priority-empty{ padding:18px; border-radius:14px; background:#F7F3EC; color:#5A6B76; }
  .ho-priority-history{ margin-top:14px; }
  .ho-priority-history summary{ cursor:pointer; color:#5A6B76; font-weight:600; }
  @media (max-width:640px){
    .ho-priority-panel{ padding:20px 16px; border-radius:16px; }
    .ho-priority-head h2{ font-size:1.35rem; }
  }


  /* Toast */
  .console-toast{
    position:fixed;
    bottom:24px;
    left:50%;
    transform:translateX(-50%) translateY(40px);
    background:var(--navy);
    color:var(--sand);
    padding:13px 24px;
    border-radius:999px;
    font-size:0.9rem;
    box-shadow:var(--shadow-lg);
    opacity:0;
    transition:opacity 0.25s ease, transform 0.25s ease;
    z-index:200;
    border:1px solid var(--brass);
    pointer-events:none;
  }
  .console-toast.show{
    opacity:1;
    transform:translateX(-50%) translateY(0);
  }

  /* ---- Vendor Intel (Vendor Intelligence Module, Phase 2) ----
     Same hero treatment as the Community Board Studio; everything else
     rides on .ic-card / .ic-field / .ic-grid2 above. vi- prefix throughout. */
  .vi-head{background:linear-gradient(130deg,#173c38,#244f49);color:#fff;border-radius:18px;padding:28px 30px;margin-bottom:16px;position:relative;overflow:hidden}
  .vi-head:after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(214,168,63,.28);border-radius:50%;right:-80px;top:-115px;pointer-events:none}
  .vi-head h2{font-family:'Fraunces',serif;font-size:2rem;margin:7px 0 4px}
  .vi-head p{margin:0;color:rgba(255,255,255,.72);font-size:.9rem;max-width:720px}
  .vi-layout{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:20px;align-items:start}
  @media (max-width:900px){ .vi-layout{grid-template-columns:1fr} }
  .vi-layout .ic-card h4{font-size:.72rem;font-family:'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#7d827d;margin:16px 0 6px}
  .vi-msg{display:block;margin-top:8px;font-size:.85rem;color:#C9622D;min-height:1em}
  .vi-none{color:#9aa3a8;font-size:.88rem;padding:6px 0}
  .vi-muted{color:#7d827d;font-size:.82rem}
  .vi-p{margin:4px 0 8px;line-height:1.55;font-size:.93rem;color:#1B2A33}
  .vi-ul{margin:0;padding-left:18px;font-size:.9rem;line-height:1.5}
  .vi-ul li{margin-bottom:3px}
  .vi-row{display:block;width:100%;text-align:left;background:#fff;border:1px solid rgba(27,42,51,.1);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font-family:inherit}
  .vi-row:hover{border-color:#5C7A6B}
  .vi-row.active{border-color:#C9622D;box-shadow:0 0 0 2px rgba(201,98,45,.15)}
  .vi-row-name{display:block;font-weight:600;color:#1B2A33;font-size:.95rem;margin-bottom:5px}
  .vi-row-meta{display:flex;gap:6px;flex-wrap:wrap}
  .vi-pill{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.04em;padding:2px 8px;border-radius:20px;background:rgba(154,163,168,.15);color:#5f6a70;vertical-align:middle}
  .vi-st-verified{background:rgba(46,125,94,.12);color:#2E7D5E}
  .vi-st-pending_verification{background:rgba(200,162,74,.16);color:#8a6a1e}
  .vi-rs-running,.vi-rs-queued{background:rgba(92,122,107,.14);color:#3f5c4f}
  .vi-rs-failed{background:rgba(201,98,45,.14);color:#a8481a}
  .vi-rs-partial{background:rgba(200,162,74,.16);color:#8a6a1e}
  .vi-conf-high{background:rgba(46,125,94,.12);color:#2E7D5E}
  .vi-conf-medium{background:rgba(200,162,74,.16);color:#8a6a1e}
  .vi-conf-low{background:rgba(201,98,45,.14);color:#a8481a}
  .vi-lock{background:rgba(27,42,51,.85);color:#e0ac5e}
  .vi-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
  .vi-rail{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 10px}
  .vi-stage{display:flex;align-items:center;gap:6px;font-size:.78rem;font-family:'JetBrains Mono',monospace;padding:5px 10px;border-radius:20px;border:1px solid rgba(27,42,51,.12);color:#7d827d;background:#fff}
  .vi-dot{width:8px;height:8px;border-radius:50%;background:#cfd4d6}
  .vi-stage-running{border-color:#5C7A6B;color:#3f5c4f}
  .vi-stage-running .vi-dot{background:#5C7A6B;animation:viPulse 1.1s ease-in-out infinite}
  .vi-stage-complete{border-color:rgba(46,125,94,.4);color:#2E7D5E}
  .vi-stage-complete .vi-dot{background:#2E7D5E}
  .vi-stage-failed,.vi-stage-skipped{border-color:rgba(201,98,45,.4);color:#a8481a}
  .vi-stage-failed .vi-dot,.vi-stage-skipped .vi-dot{background:#C9622D}
  @keyframes viPulse{0%,100%{opacity:1}50%{opacity:.35}}
  .vi-error{background:rgba(201,98,45,.08);border:1px solid rgba(201,98,45,.3);color:#a8481a;border-radius:8px;padding:8px 12px;font-size:.85rem;margin-bottom:10px}
  .vi-draft-note{font-size:.8rem;color:#7d827d;border-left:3px solid #e0ac5e;padding:4px 10px;margin-top:6px}
  .vi-kvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px;margin:6px 0 4px}
  .vi-kv{font-size:.88rem;line-height:1.4}
  .vi-kv span{display:block;font-size:.68rem;font-family:'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#9aa3a8}
  .vi-kv strong{font-weight:600;color:#1B2A33;word-break:break-word}
  .vi-kv a{color:#5C7A6B}
  .vi-sources{margin-top:14px;font-size:.82rem}
  .vi-sources summary{cursor:pointer;color:#5C7A6B;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.06em}
  .vi-sources ul{margin:6px 0 0;padding-left:18px}
  .vi-sources a{color:#1B2A33}
  .vi-flag{border:1px solid rgba(27,42,51,.1);border-left-width:4px;border-radius:8px;padding:8px 12px;margin-bottom:8px}
  .vi-flag-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:3px}
  .vi-sev-high{border-left-color:#C9622D}
  .vi-sev-medium{border-left-color:#C8A24A}
  .vi-sev-low{border-left-color:#9aa3a8}
  .vi-verify{border:1px solid rgba(224,172,94,.5);background:#fffaf0}
  .vi-confidential{border:1px solid rgba(27,42,51,.25)}
  .vi-table-wrap{overflow-x:auto}
  .vi-table{width:100%;border-collapse:collapse;font-size:.84rem}
  .vi-table th,.vi-table td{text-align:left;padding:6px 8px;border-bottom:1px solid rgba(27,42,51,.08);vertical-align:top}
  .vi-table th{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:#9aa3a8}
  .vi-platforms{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
  .vi-platform{border:1px solid rgba(27,42,51,.1);border-radius:8px;padding:6px 10px;font-size:.84rem;display:flex;flex-direction:column;gap:2px;min-width:120px}
  .vi-platform span{color:#7d827d;font-size:.8rem}
  .vi-platform a{color:#5C7A6B}

  /* ---- Vendor Intel — Phase 2b (v10.67): funnel, pipeline list, email, report ----
     Appended; nothing above edited. Single-hue funnel bars in the console green. */
  .vi-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
  .vi-tabs{display:flex;gap:6px;position:relative;z-index:1}
  .vi-tab{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:#fff;padding:7px 14px;border-radius:20px;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.06em;cursor:pointer}
  .vi-tab.active{background:#fff;color:#173c38;border-color:#fff}
  .vi-details summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
  .vi-details summary::-webkit-details-marker{display:none}
  .vi-details summary h3{margin:0;display:inline}
  .vi-details summary:after{content:"+";margin-left:auto;color:#7d827d;font-size:1.1rem}
  .vi-details[open] summary:after{content:"–"}
  .vi-details[open] summary{margin-bottom:10px}
  .vi-list-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
  .vi-list-head h3{margin:0 0 8px}
  .vi-filters{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 8px}
  .vi-filters select,.vi-filters input[type=text]{flex:1 1 120px;min-width:0;font-size:.82rem;padding:6px 8px;border:1px solid rgba(27,42,51,.15);border-radius:8px;background:#fff;font-family:inherit}
  .vi-check{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:#5f6a70;white-space:nowrap}
  .vi-list-tools{display:flex;gap:14px;margin:0 0 8px}
  .vi-row-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
  .vi-row-ago{font-size:.72rem;color:#9aa3a8;font-family:'JetBrains Mono',monospace;white-space:nowrap}
  .vi-row-sub{font-size:.76rem;color:#7d827d;flex-basis:100%}
  .vi-fs{border:1px solid transparent}
  .vi-fs-identified{background:rgba(154,163,168,.15);color:#5f6a70}
  .vi-fs-researched{background:rgba(92,122,107,.14);color:#3f5c4f}
  .vi-fs-contacted{background:rgba(200,162,74,.16);color:#8a6a1e}
  .vi-fs-in_conversation{background:rgba(201,98,45,.14);color:#a8481a}
  .vi-fs-onboarding{background:rgba(23,60,56,.14);color:#173c38}
  .vi-fs-active{background:#2E7D5E;color:#fff}
  .vi-fs-passed{background:rgba(27,42,51,.08);color:#7d827d;text-decoration:line-through}
  .vi-fs-dormant{background:rgba(27,42,51,.06);color:#9aa3a8;border-color:rgba(27,42,51,.15);border-style:dashed}
  .vi-mail{background:rgba(46,125,94,.12);color:#2E7D5E}
  .vi-danger{color:#a8481a!important}
  .vi-ladder{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
  .vi-step{font-family:'JetBrains Mono',monospace;font-size:.72rem;padding:6px 10px;border-radius:20px;border:1px solid rgba(27,42,51,.15);background:#fff;color:#7d827d;cursor:pointer}
  .vi-step:hover{border-color:#173c38;color:#173c38}
  .vi-step.done{border-color:rgba(46,125,94,.4);color:#2E7D5E}
  .vi-step.current{background:#173c38;color:#fff;border-color:#173c38;cursor:default}
  .vi-step.exit{border-style:dashed}
  .vi-step.exit.current{background:#5f6a70;border-color:#5f6a70;border-style:solid}
  .vi-note-row{display:flex;gap:8px;align-items:center;margin:10px 0 6px}
  .vi-note-row input{flex:1;font-size:.85rem;padding:7px 10px;border:1px solid rgba(27,42,51,.15);border-radius:8px;font-family:inherit}
  .vi-tags summary{cursor:pointer;font-size:.8rem;color:#5C7A6B;font-family:'JetBrains Mono',monospace;letter-spacing:.04em;margin-top:6px}
  .vi-tags-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 4px}
  .vi-tags-row select,.vi-tags-row input{flex:1 1 120px;min-width:0;font-size:.82rem;padding:6px 8px;border:1px solid rgba(27,42,51,.15);border-radius:8px;font-family:inherit;background:#fff}
  .vi-email-gen{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px}
  .vi-email-gen select,.vi-email-gen input{flex:1 1 180px;min-width:0;font-size:.82rem;padding:7px 9px;border:1px solid rgba(27,42,51,.15);border-radius:8px;font-family:inherit;background:#fff}
  .vi-email-card textarea{width:100%;font-family:inherit;font-size:.92rem;line-height:1.5;padding:10px;border:1px solid rgba(27,42,51,.15);border-radius:8px;resize:vertical;box-sizing:border-box}
  .vi-email-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0}
  .vi-email-actions .btn{margin-left:auto}
  .btn-sm{padding:7px 14px;font-size:.82rem}
  .vi-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:8px 0 14px}
  .vi-tile{border:1px solid rgba(27,42,51,.1);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:#fff}
  .vi-tile-label{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:#9aa3a8}
  .vi-tile-val{font-family:'Fraunces',serif;font-size:1.7rem;color:#173c38;line-height:1.1}
  .vi-tile-sub{font-size:.74rem;color:#7d827d}
  .vi-funnel{display:flex;flex-direction:column;gap:5px;margin:6px 0 8px}
  .vi-frow{display:grid;grid-template-columns:130px 1fr 44px minmax(120px,1.2fr);align-items:center;gap:10px;font-size:.84rem}
  @media (max-width:640px){ .vi-frow{grid-template-columns:100px 1fr 40px;} .vi-frow .vi-fmeta{grid-column:1/-1;padding-left:0} }
  .vi-flabel{color:#1B2A33;font-weight:600}
  .vi-frow.exit .vi-flabel{color:#7d827d;font-weight:500}
  .vi-fbar{height:14px;background:rgba(27,42,51,.06);border-radius:4px;overflow:hidden}
  .vi-fill{display:block;height:100%;background:#173c38;border-radius:0 4px 4px 0;min-width:0;transition:width .3s ease}
  .vi-frow.active .vi-fill{background:#2E7D5E}
  .vi-frow.exit .vi-fill{background:#9aa3a8}
  .vi-fnum{font-family:'JetBrains Mono',monospace;text-align:right;color:#1B2A33}
  .vi-fmeta{font-size:.74rem;color:#7d827d}
