/* Groundwork — Houses mode. Uses the page's tokens (--bg, --fg, --steel, --brass …). */
.gw-mode{display:flex;gap:2px;background:var(--panel);border:1px solid var(--line-soft);border-radius:10px;padding:3px;flex-shrink:0;}
.gw-mode button{border:none;background:transparent;color:var(--fg);font-family:inherit;font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:7px;cursor:pointer;opacity:.62;display:flex;align-items:center;gap:6px;}
.gw-mode button:hover{opacity:.95;}
.gw-mode button.active{opacity:1;background:var(--steel);color:#fff;box-shadow:var(--shadow-sm);}
.gw-mode svg{flex-shrink:0;}
.house-tab{display:none;}
body.house-mode .tabs .tab:not(.house-tab),body.house-mode .mobile-tabbar .tab:not(.house-tab){display:none;}
body.house-mode .tabs .house-tab{display:block;}
@media (max-width:720px){
  body.house-mode .mobile-tabbar .house-tab{display:flex;}
  .gw-mode button{padding:7px 9px;}
  .gw-mode .gw-mode-label{display:none;}
}
@media (min-width:721px) and (max-width:1240px){ .gw-mode .gw-mode-label{display:none;} }

.h-drop{border:1.5px dashed var(--brass);border-radius:var(--radius-md);padding:18px 16px;background:var(--panel-raised);text-align:center;cursor:pointer;transition:background .15s,border-color .15s;}
.h-drop:hover,.h-drop.drag{background:color-mix(in srgb,var(--brass) 10%,var(--panel-raised));border-style:solid;}
.h-drop strong{display:block;font-size:14px;margin-bottom:4px;}
.h-drop span{font-size:12px;color:var(--fg-soft);}
.h-drop input{display:none;}
.h-status{font-size:12.5px;line-height:1.55;margin-top:10px;color:var(--fg-soft);}
.h-status.busy::after{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brass);margin-left:6px;animation:pulse 1s infinite ease-in-out;}
.h-status strong{color:var(--fg);}
.h-status .h-warn{color:var(--brick);}
.h-status button{margin-top:8px;}
.h-reader-note{font-size:11.5px;color:var(--fg-soft);margin-top:8px;line-height:1.5;}

.h-group{border-top:1px solid var(--line-soft);padding-top:14px;margin-top:18px;}
.h-group>h4{margin:0 0 10px;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--fg-soft);font-weight:700;}
.h-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;}
#view-house-plans .panel,#view-house-plans .viz{min-width:0;}
.h-f{min-width:0;}
.h-f.wide{grid-column:1/-1;}
.h-f label{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:600;color:var(--fg-soft);margin-bottom:5px;}
.h-f label .u{font-weight:400;opacity:.7;}
.h-f input[type=number],.h-f input[type=text],.h-f select{width:100%;padding:8px 9px;border:1px solid var(--line);background:var(--panel-raised);color:var(--fg);border-radius:var(--radius-sm);font-family:inherit;font-size:13px;box-shadow:var(--shadow-sm);}
.h-f input:focus,.h-f select:focus{border-color:var(--steel);outline:none;}
.h-f.from-plan input,.h-f.from-plan select{border-color:color-mix(in srgb,var(--steel) 55%,var(--line));}
.h-f.low input,.h-f.low select{border-color:var(--brass);background:color-mix(in srgb,var(--brass) 7%,var(--panel-raised));}
.h-f .h-check{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--fg);}
.h-f .hint{font-size:11px;color:var(--fg-soft);opacity:.85;margin-top:4px;line-height:1.4;}
.h-src{display:inline-flex;align-items:center;font-size:9.5px;font-weight:700;letter-spacing:.03em;padding:1px 6px;border-radius:10px;text-transform:uppercase;cursor:help;white-space:nowrap;}
.h-src.ai{background:color-mix(in srgb,var(--steel) 16%,transparent);color:var(--steel);}
.h-src.text{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok);}
.h-src.both{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok);}
.h-src.user{background:color-mix(in srgb,var(--fg) 9%,transparent);color:var(--fg-soft);}
.h-src.low{background:color-mix(in srgb,var(--brass) 22%,transparent);color:#7a5a1f;}
:root[data-theme="dark"] .h-src.low{color:var(--brass-light);}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .h-src.low{color:var(--brass-light);}}
.h-seg{display:flex;gap:6px;}
.h-seg .choice{flex:1;text-align:center;}

.h-read{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-raised);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:18px;}
.h-read-head{padding:12px 16px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;}
.h-read-head h3{margin:0;font-size:14px;}
.h-read-head span{font-size:12px;color:var(--fg-soft);}
.h-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.h-table th{text-align:left;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-soft);font-weight:700;padding:8px 12px;border-bottom:1px solid var(--line);}
.h-table td{padding:7px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top;}
.h-table tr:last-child td{border-bottom:none;}
.h-table td.src{color:var(--fg-soft);font-size:11.5px;}
.h-table tr.conflict td{background:color-mix(in srgb,var(--brass) 9%,transparent);}
.h-table .pass{color:var(--ok);font-weight:700;}
.h-table .fail{color:var(--brick);font-weight:700;}
.h-scroll{overflow-x:auto;}
.h-empty{padding:28px 18px;text-align:center;color:var(--fg-soft);font-size:13px;line-height:1.6;}
.h-empty svg{opacity:.5;margin-bottom:8px;}
.h-site{margin-top:4px;}
.h-site svg text{font-family:'Space Grotesk',sans-serif;}
.h-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--fg-soft);margin-top:8px;}
.h-legend i{display:inline-block;width:12px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle;}

.h-alerts{display:grid;gap:10px;margin-bottom:6px;}
.h-alert{border:1px solid var(--line);border-left:4px solid var(--brass);border-radius:var(--radius-sm);padding:11px 14px;background:var(--panel-raised);font-size:13px;line-height:1.5;}
.h-alert.warn{border-left-color:var(--brick);}
.h-alert.ok{border-left-color:var(--ok);}
.h-alert h4{margin:0 0 4px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;}
.h-alert ul{margin:4px 0 0;padding-left:18px;}
.h-alert li{margin:2px 0;}
.h-alert .who{color:var(--fg-soft);font-size:11.5px;}
.card .h-sub{font-size:12.5px;margin-top:6px;color:var(--fg-soft);line-height:1.5;}
.card .h-sub b{color:var(--fg);}
.h-wide{grid-column:1/-1;}
.h-wide:hover{transform:none;}
.h-check-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line-soft);font-size:12.5px;}
.h-check-row:last-child{border-bottom:none;}

/* Engineering brief — a document on paper */
.h-doc-wrap{max-width:900px;margin:0 auto;padding:28px 32px 48px;}
.h-doc{background:#fff;color:#1b1f1d;border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:40px 44px;font-size:13px;line-height:1.55;}
.h-doc h1{font-family:'Roboto Slab',serif;font-size:24px;margin:0 0 4px;max-width:none;color:#14181a;}
.h-doc h2{font-family:'Roboto Slab',serif;font-size:15px;margin:26px 0 8px;padding-bottom:5px;border-bottom:2px solid #C9A66B;color:#14181a;}
.h-doc .meta{color:#5a605b;font-size:12px;margin-bottom:14px;}
.h-doc .stamp{display:inline-block;border:1.5px solid #8B4B3B;color:#8B4B3B;font-weight:700;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:4px;margin-bottom:12px;}
.h-doc table{width:100%;border-collapse:collapse;font-size:12px;margin:6px 0;}
.h-doc th{text-align:left;background:#f1efe8;font-weight:700;padding:6px 8px;border:1px solid #ddd8ca;font-size:11px;}
.h-doc td{padding:6px 8px;border:1px solid #e3dfd3;vertical-align:top;}
.h-doc td.n{white-space:nowrap;}
.h-doc .pass{color:#3f6152;font-weight:700;}
.h-doc td.pass,.h-doc td.fail{white-space:nowrap;}
@media screen and (max-width:720px){ .h-doc table{display:block;overflow-x:auto;} .h-doc td.n{white-space:normal;} }
.h-doc .fail{color:#8B4B3B;font-weight:700;}
.h-doc .src{color:#5a605b;font-size:11px;}
.h-doc ul,.h-doc ol{padding-left:20px;margin:6px 0;}
.h-doc li{margin:3px 0;}
.h-doc .kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0;}
.h-doc .kv div{border:1px solid #e3dfd3;border-radius:6px;padding:8px 10px;}
.h-doc .kv b{display:block;font-size:17px;font-family:'Roboto Slab',serif;}
.h-doc .kv span{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#5a605b;font-weight:700;}
.h-doc .fine{font-size:11px;color:#5a605b;}
.h-doc svg text{font-family:'Space Grotesk',sans-serif;}
@media (max-width:720px){
  .h-doc-wrap{padding:16px !important;}
  .h-doc{padding:22px 16px;overflow-wrap:anywhere;}
  #view-house-plans .panel{border-right:none;}
  .h-sun-grid{grid-template-columns:1fr !important;}
  .h-table{font-size:12px;}
}
@media print{
  body.printing-house-brief header,body.printing-house-brief .hero-copy-wrap,body.printing-house-brief .mobile-tabbar,body.printing-house-brief footer,
  body.printing-house-brief .view:not(#view-house-brief),body.printing-house-brief .h-doc-actions,body.printing-house-brief .flow-nav,body.printing-house-brief .shared-banner,
  body.printing-house-brief .tour-bar,body.printing-house-brief #tourBar{display:none !important;}
  body.printing-house-brief{background:#fff !important;padding:0 !important;}
  body.printing-house-brief .h-doc-wrap{padding:0 !important;max-width:none;}
  body.printing-house-brief .h-doc{border:none;box-shadow:none;padding:0;}
  body.printing-house-brief .h-doc h2{break-after:avoid;}
  body.printing-house-brief .h-doc tr,body.printing-house-brief .h-doc svg,body.printing-house-brief .h-doc .kv{break-inside:avoid;}
}

/* ---- what the address tells us ---- */
.h-src.address{background:color-mix(in srgb,var(--steel) 14%,transparent);color:var(--steel);}
.h-addr{margin-top:8px;}.h-addr .locbtn{margin:0 0 6px;}
.h-addr-status{font-size:13px;line-height:1.5;color:var(--fg-soft);}
.h-addr-status.busy::before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:50%;border:2px solid var(--steel);border-top-color:transparent;animation:hspin .8s linear infinite;vertical-align:-1px;}
@keyframes hspin{to{transform:rotate(360deg);}}
.h-addr-fine{font-size:12px;opacity:.85;}
.h-around-notes{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.5;}
.h-around-h{margin:14px 0 4px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-soft);}
