  /* ============================================================
     HOMEOWNER MAINTENANCE DASHBOARD
     Warmer, simpler, bigger touch targets for the 55+ audience.
     ============================================================ */
  .ho-shell{
    max-width:920px;
    margin:0 auto;
    padding:36px 6% 100px;
  }
  .ho-topbar{ margin-bottom:28px; }
  .ho-title-block h1{
    font-size:clamp(1.8rem, 3.4vw, 2.6rem);
    margin:6px 0 6px;
  }
  .ho-addr{
    color:#5A6B76;
    font-size:1.02rem;
  }

  /* ---- Summary ---- */
  .ho-summary{
    background:#fff;
    border-radius:22px;
    padding:32px;
    display:flex;
    gap:32px;
    align-items:center;
    box-shadow:0 14px 40px -22px rgba(27,42,51,0.3);
    border:1px solid rgba(27,42,51,0.06);
    margin-bottom:36px;
    flex-wrap:wrap;
  }
  .ho-ring-wrap{
    position:relative;
    flex:0 0 auto;
    width:120px; height:120px;
  }
  .ho-ring-wrap svg{ transform:rotate(-90deg); }
  .ho-ring-track{
    fill:none;
    stroke:#EDE6D8;
    stroke-width:10;
  }
  .ho-ring-fill{
    fill:none;
    stroke:var(--sage);
    stroke-width:10;
    stroke-linecap:round;
    transition:stroke-dashoffset 0.8s ease;
  }
  .ho-ring-label{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:1.35rem;
    color:var(--navy);
    text-align:center;
    line-height:1.1;
  }
  .ho-summary-text{ flex:1; min-width:240px; }
  .ho-summary-text h2{
    font-size:1.4rem;
    margin-bottom:8px;
  }
  .ho-summary-text p{
    color:#5A6B76;
    font-size:1.02rem;
    margin-bottom:18px;
  }
  .ho-counts{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
  }
  .ho-count{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    padding:12px 20px;
    border-radius:14px;
    min-width:120px;
  }
  .ho-count-num{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:1.9rem;
    line-height:1;
  }
  .ho-count-label{
    font-family:'JetBrains Mono', monospace;
    font-size:0.7rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
  }
  .ho-count-overdue{ background:rgba(166,71,60,0.08); }
  .ho-count-overdue .ho-count-num{ color:#A6473C; }
  .ho-count-overdue .ho-count-label{ color:#A6473C; }
  .ho-count-soon{ background:rgba(192,138,62,0.08); }
  .ho-count-soon .ho-count-num{ color:var(--brass); }
  .ho-count-soon .ho-count-label{ color:var(--brass); }
  .ho-count-ok{ background:rgba(92,122,107,0.08); }
  .ho-count-ok .ho-count-num{ color:var(--sage); }
  .ho-count-ok .ho-count-label{ color:var(--sage); }

  /* ---- Section headers ---- */
  .ho-section-title{
    font-size:1.3rem;
    margin:8px 0 4px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .ho-section-sub{
    color:#5A6B76;
    font-size:0.98rem;
    margin-bottom:18px;
  }
  .ho-section-title .ho-dot{
    width:12px; height:12px;
    border-radius:50%;
    flex:0 0 auto;
  }

  /* ---- Item cards ---- */
  .ho-card{
    background:#fff;
    border-radius:18px;
    padding:24px 26px;
    margin-bottom:16px;
    border:1px solid rgba(27,42,51,0.06);
    box-shadow:0 10px 28px -20px rgba(27,42,51,0.25);
    border-left:6px solid var(--sage);
  }
  .ho-card.ho-overdue{ border-left-color:#A6473C; }
  .ho-card.ho-due-soon{ border-left-color:var(--brass); }
  .ho-card.ho-never{ border-left-color:#9aa3a8; }

  .ho-card-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
    flex-wrap:wrap;
    margin-bottom:8px;
  }
  .ho-card-title{
    font-family:'Fraunces', serif;
    font-weight:700;
    font-size:1.18rem;
    color:var(--navy);
  }
  .ho-card-source{
    font-family:'JetBrains Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--sage);
    background:rgba(92,122,107,0.1);
    padding:3px 10px;
    border-radius:999px;
    margin-left:8px;
  }
  .ho-status-pill{
    font-family:'JetBrains Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    padding:6px 16px;
    border-radius:999px;
    color:#fff;
    white-space:nowrap;
  }
  .ho-card-note{
    color:#445662;
    font-size:1rem;
    margin-bottom:14px;
    max-width:560px;
  }
  .ho-card-dates{
    display:flex;
    flex-wrap:wrap;
    gap:24px;
    font-size:0.95rem;
    color:#5A6B76;
    margin-bottom:18px;
  }
  .ho-card-dates strong{ color:var(--navy); }

  .ho-log-btn{
    font-family:'Source Sans 3', sans-serif;
    font-weight:700;
    font-size:1rem;
    color:#fff;
    background:var(--sage);
    border:none;
    padding:14px 28px;
    border-radius:999px;
    cursor:pointer;
    transition:background 0.2s ease, transform 0.15s ease;
  }
  .ho-log-btn:hover{ background:#4A6457; transform:translateY(-1px); }
  .ho-card.ho-overdue .ho-log-btn{ background:#A6473C; }
  .ho-card.ho-overdue .ho-log-btn:hover{ background:#8C3A30; }

  .ho-history-toggle{
    display:inline-block;
    margin-left:14px;
    font-family:'JetBrains Mono', monospace;
    font-size:0.78rem;
    color:var(--sage);
    background:none;
    border:none;
    cursor:pointer;
    text-decoration:underline;
    text-decoration-color:rgba(92,122,107,0.35);
  }
  .ho-history-toggle:hover{ color:var(--brass); }
  .ho-history-list{
    display:none;
    margin-top:14px;
    padding-top:14px;
    border-top:1px dashed #DDD3C2;
    font-size:0.92rem;
    color:#5A6B76;
  }
  .ho-history-list.open{ display:block; }
  .ho-history-list .hist-entry{ padding:6px 0; border-bottom:1px solid rgba(27,42,51,0.04); }
  .ho-history-list .hist-entry:last-child{ border-bottom:none; }

  /* ---- Log form (homeowner-friendly) ---- */
  .ho-log-form{ display:none; margin-top:18px; padding-top:18px; border-top:1px dashed #DDD3C2; }
  .ho-log-form.open{ display:block; }
  .ho-log-form .ic-grid2{ margin-bottom:0; }
  .ho-log-form .ic-field{ margin-bottom:16px; }
  .ho-log-form .ic-field label{ font-size:0.78rem; }
  .ho-log-form input, .ho-log-form select{
    font-size:1.02rem;
    padding:13px 14px;
  }
  .ho-save-log-btn{
    font-family:'Source Sans 3', sans-serif;
    font-weight:700;
    font-size:1rem;
    color:var(--navy-deep);
    background:var(--brass-bright);
    border:none;
    padding:14px 28px;
    border-radius:999px;
    cursor:pointer;
  }
  .ho-save-log-btn:hover{ background:var(--brass); }

  .ho-onTrack-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:14px;
  }
  @media (max-width:760px){
    .ho-onTrack-grid{ grid-template-columns:1fr; }
  }
  .ho-onTrack-grid .ho-card{ margin-bottom:0; padding:18px 22px; }
  .ho-onTrack-grid .ho-card-title{ font-size:1.05rem; }
  .ho-onTrack-grid .ho-card-note{ font-size:0.9rem; margin-bottom:10px; }
  .ho-onTrack-grid .ho-card-dates{ font-size:0.86rem; gap:14px; margin-bottom:12px; }
  .ho-onTrack-grid .ho-log-btn{ padding:10px 22px; font-size:0.9rem; }

  .ho-empty{
    text-align:center;
    padding:50px 20px;
    color:#9aa3a8;
    background:#fff;
    border-radius:18px;
    margin-bottom:16px;
  }
  .ho-empty .glyph{ font-size:2.4rem; color:var(--sage); margin-bottom:10px; }

  #view-my-home { background: var(--sand, #F7F3EC); min-height: 100vh; }
  .mh-gate { display:flex; align-items:center; justify-content:center; min-height:80vh; padding:40px 20px; }
  .mh-card { background:#fff; border-radius:16px; border:1px solid #DDD3C2; padding:36px 32px; width:100%; max-width:520px; box-shadow:0 4px 24px rgba(0,0,0,0.07); }
  .mh-card h2 { font-family:'Fraunces',serif; color:#1B2A33; margin:12px 0 4px; font-size:1.5rem; }
  .mh-tag { display:inline-block; font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.12em; text-transform:uppercase; color:#C8A24A; background:#FFF8EE; border:1px solid #C8A24A; border-radius:20px; padding:3px 10px; margin-bottom:8px; }
  .mh-toggle { display:flex; gap:8px; margin-bottom:20px; }
  .mh-toggle button { flex:1; padding:9px; border-radius:8px; border:2px solid #C8A24A; font-family:'Source Sans 3',sans-serif; font-weight:600; font-size:0.9rem; cursor:pointer; transition:all 0.15s; }
  .mh-toggle button.active { background:#C8A24A; color:#fff; }
  .mh-toggle button:not(.active) { background:transparent; color:#C8A24A; }
  .mh-label { font-size:0.78rem; font-weight:600; color:#1B2A33; display:block; margin-bottom:4px; }
  .mh-input { width:100%; padding:9px 11px; border:1.5px solid #C8B89A; border-radius:8px; font-family:'Source Sans 3',sans-serif; font-size:0.92rem; background:#fff; color:#1B2A33; box-sizing:border-box; }
  .mh-input:focus { outline:none; border-color:#1F3D3B; }
  .mh-row { display:grid; gap:10px; margin-bottom:10px; }
  .mh-row-2 { grid-template-columns:1fr 1fr; }
  .mh-row-3 { grid-template-columns:2fr 1fr 1fr; }
  .mh-section-label { font-size:0.78rem; color:#C8A24A; font-weight:700; text-transform:uppercase; letter-spacing:0.07em; margin:18px 0 10px; border-top:1px solid #EDE8DF; padding-top:14px; }
  .mh-btn-primary { width:100%; padding:12px; border-radius:10px; border:none; background:#1F3D3B; color:#fff; font-family:'Source Sans 3',sans-serif; font-weight:700; font-size:1rem; cursor:pointer; margin-top:8px; transition:background 0.15s; }
  .mh-btn-primary:hover { background:#2A5250; }
  .mh-btn-primary:disabled { opacity:0.6; cursor:default; }
  .mh-error { color:#C9622D; font-size:0.85rem; margin-top:10px; min-height:20px; }
  .mh-hint { font-size:0.78rem; color:#9aa3a8; text-align:center; margin-top:12px; line-height:1.5; }
  .mh-shell-inner { max-width:900px; margin:0 auto; padding:32px 20px 80px; }
  .mh-topbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; background:#1F3D3B; color:#fff; padding:20px 32px; }
  .mh-topbar h1 { font-family:'Fraunces',serif; margin:0; font-size:1.4rem; color:#fff; }
  .mh-topbar p { margin:2px 0 0; font-size:0.85rem; color:rgba(255,255,255,0.7); }
  .mh-signout { background:none; border:1px solid rgba(255,255,255,0.35); color:#fff; padding:6px 14px; border-radius:8px; cursor:pointer; font-size:0.82rem; font-family:'Source Sans 3',sans-serif; }
  .mh-tab-btn { padding:7px 16px; border-radius:8px; border:1.5px solid rgba(255,255,255,0.4); background:transparent; color:rgba(255,255,255,0.7); font-family:'Source Sans 3',sans-serif; font-size:0.88rem; font-weight:600; cursor:pointer; transition:all 0.15s; }

  /* ── MOBILE-FIRST HOMEOWNER PORTAL ── */
  @media (max-width: 640px) {
    .mh-topbar { padding:14px 16px; gap:10px; }
    .mh-topbar h1 { font-size:1.1rem; }
    .mh-topbar > div:last-child { gap:6px; flex-wrap:wrap; }
    .mh-tab-btn { padding:6px 10px; font-size:0.78rem; }
    .mh-signout, .mh-delete-account { padding:5px 10px; font-size:0.76rem; }
    .mh-shell-inner { padding:16px 12px 60px; }
    .ic-card { padding:16px 14px; }
    .ic-grid2 { grid-template-columns:1fr !important; }
    .ledger-card { flex-direction:column; gap:10px; }
    .ledger-gauge { align-self:flex-start; }
    .ledger-cost { font-size:0.9rem; }
    .maint-row { flex-direction:column; }
    .maint-stripe { width:100%; height:4px; }
    .maint-meta { flex-direction:column; gap:4px; }
    .maint-actions { flex-direction:column; gap:8px; }
    .maint-log-btn, .request-service-btn { width:100%; text-align:center; padding:12px; font-size:0.92rem; }
    .pd-header { flex-direction:column; gap:12px; align-items:flex-start; }
    .pd-score-box { font-size:0.8rem; }
    .pd-edit { padding:8px 14px; font-size:0.82rem; }
    .mh-card { padding:24px 18px; max-width:100%; }
    .mh-toggle button { padding:10px 8px; font-size:0.85rem; }
    .mh-btn-primary { padding:14px; font-size:1rem; }
    .ic-save-bar { flex-direction:column; gap:10px; }
    .ic-save-bar .btn { width:100%; padding:14px; font-size:1rem; }
    #mhDashboardWrap { padding:16px 12px 60px; }
  }
  .mh-tab-btn.mh-tab-active { background:#C8A24A; border-color:#C8A24A; color:#fff; }
  .mh-tab-btn:hover:not(.mh-tab-active) { border-color:rgba(255,255,255,0.7); color:#fff; }
  .mh-dashboard-empty { text-align:center; padding:60px 20px; color:#9aa3a8; font-family:'Fraunces',serif; }
  .mh-dashboard-empty p { margin-top:12px; font-size:1rem; }
  .mh-dashboard-empty button { margin-top:16px; padding:10px 24px; border-radius:8px; border:none; background:#1F3D3B; color:#fff; font-family:'Source Sans 3',sans-serif; font-weight:600; cursor:pointer; font-size:0.95rem; }
  .mh-instructions { background:#fff; border:1px solid #DDD3C2; border-radius:12px; padding:24px 28px; margin-bottom:24px; }
  .mh-instructions h3 { font-family:'Fraunces',serif; color:#1B2A33; margin:0 0 16px; font-size:1.05rem; }
  .mh-steps { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .mh-step { display:flex; gap:12px; align-items:flex-start; }
  .mh-step-num { width:26px; height:26px; border-radius:50%; background:#1F3D3B; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.8rem; flex-shrink:0; }
  .mh-step p { margin:0; font-size:0.82rem; color:#5C7A6B; line-height:1.5; }
  .mh-step strong { display:block; color:#1B2A33; margin-bottom:2px; font-size:0.88rem; }
  .mh-tip { margin-top:14px; padding:10px 14px; background:#FFF8EE; border-radius:8px; border-left:3px solid #C8A24A; font-size:0.8rem; color:#7A5C2E; line-height:1.5; }
  .mh-sys-card { background:#fff; border:1.5px solid #DDD3C2; border-radius:12px; padding:18px 20px; margin-bottom:12px; transition:border-color 0.2s; }
  .mh-sys-card.checked { border-color:#1F3D3B; }
  .mh-sys-header { display:flex; align-items:center; gap:12px; }
  .mh-sys-header input[type=checkbox] { width:19px; height:19px; cursor:pointer; accent-color:#1F3D3B; flex-shrink:0; }
  .mh-sys-header label { font-family:'Fraunces',serif; font-size:1rem; font-weight:600; color:#1B2A33; cursor:pointer; flex:1; }
  .mh-sys-life { font-family:'JetBrains Mono',monospace; font-size:0.68rem; color:#C8A24A; letter-spacing:0.07em; white-space:nowrap; }
  .mh-sys-body { display:none; padding-top:14px; margin-top:14px; border-top:1px dashed #DDD3C2; }
  .mh-sys-body.open { display:block; }
  .mh-sys-fields { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
  .mh-scan-row { display:flex; align-items:center; gap:10px; margin-top:4px; }
  .mh-scan-btn { display:flex; align-items:center; gap:6px; padding:7px 14px; border-radius:8px; border:1.5px solid #C8A24A; background:transparent; color:#C8A24A; font-family:'Source Sans 3',sans-serif; font-size:0.83rem; font-weight:600; cursor:pointer; }
  .mh-scan-btn:disabled { opacity:0.5; cursor:default; }
  .mh-scan-status { font-size:0.8rem; color:#1F3D3B; }
  .mh-scan-result { display:none; margin-top:8px; padding:9px 12px; background:#F0F7F4; border-radius:8px; font-size:0.82rem; color:#3A5A4A; }
  .mh-advisor-tip { margin-top:10px; font-size:0.78rem; color:#9aa3a8; font-style:italic; line-height:1.4; }
  .mh-submit-wrap { text-align:center; margin-top:32px; }
  .mh-submit-wrap p { font-size:0.8rem; color:#9aa3a8; margin-top:8px; }
  .mh-success { max-width:580px; margin:80px auto; text-align:center; padding:40px 24px; }
  .mh-success h2 { font-family:'Fraunces',serif; color:#1B2A33; margin-bottom:12px; }
  .mh-success-list { background:#F0F7F4; border-radius:12px; padding:20px; text-align:left; margin:24px 0; }
  .mh-success-list p { font-family:'JetBrains Mono',monospace; font-size:0.7rem; letter-spacing:0.1em; color:#C8A24A; text-transform:uppercase; margin:0 0 10px; }
  .mh-success-item { padding:6px 0; border-bottom:1px solid #DDD3C2; font-size:0.88rem; color:#1B2A33; }
  .mh-calm-home { background:#14272F; color:#F4EFE6; border-radius:0 0 28px 28px; padding:34px clamp(18px,5vw,56px) 38px; overflow:hidden; position:relative; }
  .mh-calm-home:before { content:""; position:absolute; width:520px; height:520px; left:35%; top:-330px; border-radius:50%; background:radial-gradient(circle,rgba(83,176,191,.28),transparent 68%); pointer-events:none; }
  .mh-calm-top { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; flex-wrap:wrap; position:relative; }
  .mh-calm-kicker { font-family:'JetBrains Mono',monospace; font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; color:#E0AC5E; margin-bottom:8px; }
  .mh-calm-home h2 { color:#F4EFE6; font-size:clamp(1.7rem,4vw,2.7rem); margin:0; max-width:720px; }
  .mh-calm-home .mh-calm-sub { color:rgba(244,239,230,.72); max-width:680px; margin:10px 0 0; }
  .mh-steward-presence { display:flex; align-items:center; gap:9px; color:rgba(244,239,230,.78); font-size:.88rem; }
  .mh-presence-dot { width:9px; height:9px; background:#6DBD91; border-radius:50%; box-shadow:0 0 0 5px rgba(109,189,145,.16); }
  .mh-concern-box { margin-top:30px; position:relative; border-top:1px solid rgba(244,239,230,.18); border-bottom:1px solid rgba(244,239,230,.18); padding:25px 0; }
  .mh-concern-box label { display:block; font-family:'Fraunces',serif; font-size:1.3rem; margin-bottom:12px; }
  .mh-concern-row { display:flex; gap:12px; align-items:stretch; }
  .mh-concern-input { flex:1; min-width:0; resize:vertical; border:1px solid rgba(244,239,230,.25); background:rgba(244,239,230,.08); color:#F4EFE6; border-radius:14px; padding:15px 16px; font:inherit; line-height:1.45; }
  .mh-concern-input::placeholder { color:rgba(244,239,230,.48); }
  .mh-concern-input:focus { outline:2px solid #E0AC5E; outline-offset:2px; }
  .mh-concern-input.needs-answer { border-color:#E0AC5E; }
  .mh-calm-btn { border:1px solid #E0AC5E; background:#E0AC5E; color:#14272F; border-radius:12px; padding:12px 18px; font-weight:700; cursor:pointer; font-family:inherit; }
  .mh-calm-btn:disabled { cursor:wait; opacity:.72; }
  .mh-calm-btn.secondary { background:transparent; color:#F4EFE6; border-color:rgba(244,239,230,.35); }
  .mh-guide-examples { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
  .mh-guide-examples button { appearance:none; border:1px solid rgba(244,239,230,.2); background:rgba(244,239,230,.06); color:rgba(244,239,230,.78); border-radius:999px; padding:7px 11px; font:inherit; font-size:.78rem; cursor:pointer; }
  .mh-guide-examples button:hover { border-color:#E0AC5E; color:#fff; }
  .mh-guide-privacy { display:flex; gap:7px; align-items:center; margin:13px 0 0; color:rgba(244,239,230,.58); font-size:.76rem; }
  .mh-guide-privacy span { color:#6DBD91; }
  .mh-guide-attach-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:12px; }
  .mh-guide-attach-btn { appearance:none; border:1px dashed rgba(244,239,230,.32); background:transparent; color:rgba(244,239,230,.82); border-radius:10px; padding:8px 13px; font:inherit; font-size:.82rem; cursor:pointer; }
  .mh-guide-attach-btn:hover { border-color:#E0AC5E; color:#fff; }
  .mh-guide-attach-btn:disabled { opacity:.5; cursor:default; }
  .mh-guide-attach-hint { color:rgba(244,239,230,.5); font-size:.74rem; }
  .mh-guide-attachments { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
  .mh-guide-attachment-chip { display:flex; align-items:center; gap:7px; background:rgba(244,239,230,.08); border:1px solid rgba(244,239,230,.18); border-radius:10px; padding:5px 8px; max-width:220px; }
  .mh-guide-attachment-chip img { width:26px; height:26px; object-fit:cover; border-radius:5px; flex:0 0 auto; }
  .mh-guide-attach-icon { font-size:1rem; flex:0 0 auto; }
  .mh-guide-attachment-name { color:rgba(244,239,230,.85); font-size:.76rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mh-guide-attach-ok { color:#6DBD91; font-size:.8rem; flex:0 0 auto; }
  .mh-guide-attach-error { color:#E0A17A; font-size:.85rem; flex:0 0 auto; cursor:help; }
  .mh-guide-attach-error-text { flex-basis:100%; color:#E0A17A; font-size:.72rem; line-height:1.3; margin-top:-2px; }

  /* My Cases tab — customer-facing Issues & Case Intelligence view */
  .mh-case-section { margin-top:22px; }
  .mh-case-section:first-child { margin-top:0; }
  .mh-case-section h5 { margin:0 0 8px; font-family:'Fraunces',serif; font-size:1rem; color:#1F3D3B; }
  .mh-case-section-head { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:4px; }
  .mh-case-section-head h5 { margin:0; }
  .mh-case-timeline { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
  .mh-case-timeline-item { display:flex; gap:14px; padding-bottom:10px; border-bottom:1px solid #EFE9DC; }
  .mh-case-timeline-item:last-child { border-bottom:none; padding-bottom:0; }
  .mh-case-timeline-date { flex:0 0 84px; color:#9aa3a8; font-size:.78rem; padding-top:1px; }
  .mh-case-timeline-body { flex:1; font-size:.9rem; color:#1B2A33; }
  .mh-case-timeline-body strong { font-weight:600; }
  .mh-case-timeline-body div { color:#5C7A6B; font-size:.85rem; margin-top:2px; }
  .mh-case-evidence-grid { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
  .mh-case-evidence-item { width:120px; text-align:center; background:#FAF7F0; border:1px solid #EFE9DC; border-radius:10px; padding:10px; }
  .mh-case-evidence-item img { width:100%; height:80px; object-fit:cover; border-radius:6px; display:block; }
  .mh-case-evidence-icon { width:100%; height:80px; display:flex; align-items:center; justify-content:center; font-size:2rem; background:#EFE9DC; border-radius:6px; }
  .mh-case-evidence-name { font-size:.74rem; color:#5C7A6B; margin:6px 0 4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mh-case-evidence-item a { font-size:.78rem; color:#1F3D3B; font-weight:600; text-decoration:underline; }
  .mh-guide-attachment-chip .mh-guide-spinner { flex:0 0 auto; border-color:rgba(244,239,230,.22); border-top-color:#E0AC5E; }
  .mh-guide-attachment-remove { appearance:none; border:0; background:transparent; color:rgba(244,239,230,.5); font-size:1rem; line-height:1; cursor:pointer; padding:0 2px; flex:0 0 auto; }
  .mh-guide-attachment-remove:hover { color:#fff; }
  .mh-readonly-view .mh-guide-attach-btn { cursor:not-allowed; }
  .mh-guide-conversation { display:none; margin-top:22px; }
  .mh-guide-conversation.open { display:block; }
  .mh-guide-thinking,.mh-guide-error { display:flex; align-items:center; gap:12px; background:rgba(244,239,230,.08); border:1px solid rgba(244,239,230,.16); border-radius:14px; padding:17px; }
  .mh-guide-thinking div,.mh-guide-error { flex-wrap:wrap; }
  .mh-guide-thinking strong,.mh-guide-thinking span,.mh-guide-error strong,.mh-guide-error span { display:block; width:100%; }
  .mh-guide-thinking span,.mh-guide-error span { color:rgba(244,239,230,.65); font-size:.84rem; }
  .mh-guide-error .mh-calm-btn { margin-top:10px; }
  .mh-guide-spinner { display:inline-block; width:17px; height:17px; border-radius:50%; border:2px solid rgba(20,39,47,.25); border-top-color:#14272F; animation:mhGuideSpin .8s linear infinite; vertical-align:-3px; }
  .mh-guide-thinking .mh-guide-spinner { border-color:rgba(244,239,230,.22); border-top-color:#E0AC5E; flex:0 0 auto; }
  @keyframes mhGuideSpin { to { transform:rotate(360deg); } }
  .mh-guide-card { background:#F7F3EC; color:#1B2A33; border-radius:18px; padding:22px; box-shadow:0 16px 40px rgba(0,0,0,.16); }
  .mh-guide-card.urgent { border:2px solid #B94A3D; background:#FFF8F5; }
  .mh-guide-card h3 { color:#1B2A33; font-size:1.35rem; margin:16px 0 8px; }
  .mh-guide-card-top { display:flex; align-items:center; gap:9px; color:#5C6B70; font-size:.84rem; }
  .mh-guide-card-top > span:nth-child(2) { flex:1; }
  .mh-guide-mark { display:grid; place-items:center; width:30px; height:30px; flex:0 0 auto; border-radius:50%; background:#1F3D3B; color:#E0AC5E; font-family:'JetBrains Mono',monospace; font-size:.65rem; font-weight:700; }
  .mh-urgency { border-radius:999px; padding:4px 8px; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; background:#E7EEE9; color:#426659; }
  .mh-urgency.emergency { background:#F8DEDA; color:#8B3027; }
  .mh-urgency.same_day { background:#FFF0D5; color:#80581E; }
  .mh-guide-explanation { color:#46575D; line-height:1.55; }
  .mh-guide-questions { display:grid; gap:16px; margin:16px 0; }
  .mh-guide-questions fieldset { border:0; padding:0; margin:0; }
  .mh-guide-questions fieldset.needs-answer legend { color:#A6473C; }
  .mh-guide-questions legend { font-weight:700; margin-bottom:8px; }
  .mh-guide-choices { display:flex; flex-wrap:wrap; gap:8px; }
  .mh-guide-choices button { border:1px solid #B9C5C0; background:#fff; color:#1F3D3B; border-radius:999px; padding:8px 12px; cursor:pointer; font:inherit; }
  .mh-guide-choices button.selected { border-color:#1F3D3B; background:#1F3D3B; color:#fff; }
  .mh-guide-answer[type="text"] { width:100%; border:1px solid #B9C5C0; background:#fff; color:#1B2A33; border-radius:10px; padding:11px; font:inherit; }
  .mh-guide-source,.mh-guide-next { display:grid; gap:3px; border-left:3px solid #C8A24A; background:#F0ECE2; padding:11px 13px; margin:14px 0; }
  .mh-guide-source strong,.mh-guide-next span,.mh-guide-workshops > strong { color:#7B642F; font-family:'JetBrains Mono',monospace; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; }
  .mh-guide-source span { color:#46575D; font-size:.86rem; }
  .mh-guide-list,.mh-guide-stop { margin:15px 0; }
  .mh-guide-list ul,.mh-guide-stop ul { margin:7px 0 0; padding-left:21px; color:#46575D; }
  .mh-guide-list li,.mh-guide-stop li { margin:5px 0; }
  .mh-guide-stop { border:1px solid #E7C7B8; background:#FFF8F1; border-radius:11px; padding:12px 14px; }
  .mh-guide-workshops { display:grid; gap:7px; margin:15px 0; }
  .mh-guide-workshops a { color:#1F5F68; font-weight:700; }
  .mh-guide-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
  .mh-guide-actions .secondary { color:#1F3D3B; border-color:#819790; }
  .mh-guide-disclaimer { color:#768287; font-size:.72rem; line-height:1.4; margin:14px 0 0; }
  .mh-diy-panel { display:none; margin-top:24px; background:#F7F3EC; color:#1B2A33; border-radius:18px; padding:22px; }
  .mh-diy-panel.open { display:block; }
  .mh-diy-panel h3 { margin:0 0 6px; color:#1B2A33; }
  .mh-diy-source { display:flex; gap:7px; flex-wrap:wrap; align-items:center; color:#5C7A6B; font-size:.78rem; margin:12px 0 18px; }
  .mh-diy-source strong { color:#1F3D3B; }
  .mh-diy-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
  .mh-diy-grid label { display:block; font-size:.76rem; font-weight:700; margin-bottom:5px; }
  .mh-diy-grid select,.mh-diy-grid textarea { width:100%; border:1px solid #C8B89A; background:#fff; color:#1B2A33; border-radius:9px; padding:10px; font:inherit; }
  .mh-diy-grid .wide { grid-column:1/-1; }
  .mh-diy-safety { margin:14px 0; padding:11px 13px; border-left:3px solid #C08A3E; background:#FFF8EE; color:#6B5434; font-size:.86rem; }
  .mh-diy-actions { display:flex; gap:9px; flex-wrap:wrap; }
  .mh-diy-status { min-height:24px; color:#5C7A6B; font-size:.86rem; margin-top:10px; }
  .mh-home-paths { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:22px; }
  .mh-path { background:rgba(244,239,230,.07); border:1px solid rgba(244,239,230,.15); border-radius:14px; padding:17px; }
  .mh-path strong { display:block; color:#F4EFE6; margin-bottom:5px; }
  .mh-path span { color:rgba(244,239,230,.62); font-size:.84rem; }
  .mh-path button { margin-top:12px; }
  .mh-aging-ledger-top { margin:28px auto 0; max-width:900px; padding:0 20px; }
  .mh-home-record { margin:24px auto 80px; max-width:900px; padding:0 20px; }
  .mh-home-record summary { cursor:pointer; font-weight:700; color:#1F3D3B; padding:15px 0; }
  .mh-request-list { margin-top:18px; }
  .mh-request-item { border-top:1px solid #DDD3C2; padding:12px 0; color:#1B2A33; }
  .mh-request-item small { display:block; color:#5C7A6B; margin-top:3px; }
  @media(max-width:600px){
    .mh-steps { grid-template-columns:1fr; }
    .mh-sys-fields { grid-template-columns:1fr; }
    .mh-row-2, .mh-row-3 { grid-template-columns:1fr; }
    .mh-card { padding:24px 18px; }
    .mh-topbar { padding:16px 20px; }
    .mh-concern-row { flex-direction:column; }
    .mh-diy-grid,.mh-home-paths { grid-template-columns:1fr; }
    .mh-diy-grid .wide { grid-column:auto; }
  }

  /* COMMUNITY TAB — homeowner landing feed of Steward-curated knowledge
     posts and vendor specials. Class names mirror the approved preview
     (community_homeowner_preview.html) exactly; see mhRenderCommunity()
     in assets/js/homeowner/app.js for the markup these style. */
  .comm-section-title { font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:#8a8478; margin:0 0 14px; display:flex; align-items:center; gap:8px; }
  .comm-section-title:not(:first-child) { margin-top:36px; }
  .comm-post { background:#fff; border:1px solid #DDD3C2; border-left:4px solid #C8A24A; border-radius:10px; padding:20px 22px; margin-bottom:14px; }
  .comm-post .comm-cat { font-family:'JetBrains Mono',monospace; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:#C8A24A; font-weight:600; margin-bottom:6px; }
  .comm-post h3 { font-family:'Fraunces',serif; margin:0 0 8px; font-size:1.08rem; color:#1F3D3B; }
  .comm-post p { margin:0; font-size:.92rem; line-height:1.55; color:#3d4a4a; }
  .comm-special { background:#fff; border:1px solid #DDD3C2; border-left:4px solid #C9622D; border-radius:10px; padding:20px 22px; margin-bottom:14px; }
  .comm-special-top { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; flex-wrap:wrap; }
  .comm-special h3 { font-family:'Fraunces',serif; margin:0 0 6px; font-size:1.08rem; color:#1F3D3B; }
  .comm-special .comm-vendor { font-size:.8rem; color:#6B7C85; margin-bottom:10px; }
  .comm-special p.desc { margin:0 0 14px; font-size:.92rem; line-height:1.55; color:#3d4a4a; }
  .comm-price { font-family:'Fraunces',serif; font-size:1.5rem; font-weight:700; color:#C9622D; white-space:nowrap; }
  .comm-claim-row { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:4px; }
  .comm-claim-btn { font-family:'Source Sans 3',sans-serif; font-weight:700; font-size:.92rem; color:#fff; background:#1F3D3B; border:none; padding:11px 22px; border-radius:999px; cursor:pointer; }
  .comm-claim-btn:hover { background:#16302e; }
  .comm-claim-btn.claimed { background:#2E7D5E; cursor:default; }
  .comm-claim-btn.full { background:#9aa3a8; cursor:default; }
  .comm-progress-wrap { flex:1; min-width:160px; max-width:260px; }
  .comm-progress-track { background:#EEE7DA; border-radius:999px; height:8px; overflow:hidden; }
  .comm-progress-fill { background:#C9622D; height:100%; border-radius:999px; }
  .comm-progress-label { font-family:'JetBrains Mono',monospace; font-size:.72rem; color:#8a8478; margin-top:5px; }
  .comm-expiry { font-size:.78rem; color:#9aa3a8; margin-top:10px; }
  .comm-empty { text-align:center; padding:50px 20px; color:#9aa3a8; font-family:'Fraunces',serif; }
  @media(max-width:600px){
    .comm-special-top { flex-direction:column; }
    .comm-claim-row { flex-direction:column; align-items:stretch; }
    .comm-progress-wrap { max-width:none; }
  }
