
  @import url('https://fonts.googleapis.com/css2?family=Sora:wght@500;600;700;800&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

  :root{
    --bg:#f5f7f6;
    --surface:#ffffff;
    --surface-2:#edf2f1;
    --border:#d7e0de;
    --text:#17343a;
    --text-dim:#62777b;
    --text-faint:#92a2a4;
    --accent:#0a5b69;
    --accent-ink:#ffffff;
    --accent-soft:#e2f1ee;
    --link:#0b6f7d;
    --success:#4d9f91;
    --success-soft:#e4f2ef;
    --warn:#9b7a28;
    --warn-soft:#f5efd9;
    --danger:#b23a3a;
    --danger-soft:#f6e0df;
    --neutral-soft:#e8eeec;
    --shadow: 0 1px 2px rgba(30,24,10,.06), 0 8px 24px -12px rgba(30,24,10,.18);
    --radius: 10px;
    color-scheme: light;
  }

  /* Ebony, 24 Sep 2026: this has now bitten twice (Bling grille, Site-specific
     requirements) - a component class setting its own `display` (flex/grid/etc.) on the
     same element as the `hidden` attribute always wins over the browser's built-in
     `[hidden]{display:none}` rule, because any normal rule in an author stylesheet beats a
     user-agent rule outright, regardless of specificity. Rather than chase this one
     component at a time, `hidden` wins here, full stop - nothing in this file should ever
     need to override it. */
  [hidden] {display:none !important;}

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#10191b;
      --surface:#162124;
      --surface-2:#1c2a2d;
      --border:#2e4144;
      --text:#edf6f4;
      --text-dim:#aec2bf;
      --text-faint:#78908d;
      --accent:#71c6b5;
      --accent-ink:#0b2024;
      --accent-soft:#173c3d;
      --link:#79cbd0;
      --success:#72c7b5;
      --success-soft:#173730;
      --warn:#e0b04a;
      --warn-soft:#3a2f13;
      --danger:#e2837f;
      --danger-soft:#3a201e;
      --neutral-soft:#223033;
      --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
    }
  }
  :root[data-theme="dark"]{
    --bg:#10191b;
    --surface:#162124;
    --surface-2:#1c2a2d;
    --border:#2e4144;
    --text:#edf6f4;
    --text-dim:#aec2bf;
    --text-faint:#78908d;
    --accent:#71c6b5;
    --accent-ink:#0b2024;
    --accent-soft:#173c3d;
    --link:#79cbd0;
    --success:#72c7b5;
    --success-soft:#173730;
    --warn:#e0b04a;
    --warn-soft:#3a2f13;
    --danger:#e2837f;
    --danger-soft:#3a201e;
    --neutral-soft:#223033;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 8px 24px -12px rgba(0,0,0,.5);
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:'Inter',system-ui,sans-serif;
    font-size:14px;
    line-height:1.5;
  }
  h1,h2,h3,h4{
    font-family:'Sora',system-ui,sans-serif;
    margin:0;
    text-wrap:balance;
    letter-spacing:-0.01em;
  }
  .mono{font-family:'IBM Plex Mono',monospace; font-variant-numeric:tabular-nums;}
  a{color:var(--link);}
  button{font-family:inherit;}
  ::selection{background:var(--accent-soft);}

  /* ---------- App shell ---------- */
  .app{
    display:grid;
    grid-template-columns:232px 1fr;
    grid-template-rows:56px 1fr;
    grid-template-areas:
      "brand topbar"
      "sidebar main";
    height:100vh;
    min-height:640px;
  }
  .app.presenting{
    grid-template-columns:0 1fr;
    grid-template-rows:0 1fr;
  }
  .app.presenting .brand, .app.presenting .topbar, .app.presenting .sidebar{display:none;}

  .brand{
    grid-area:brand;
    display:flex;align-items:center;gap:10px;
    padding:0 18px;
    border-bottom:1px solid var(--border);
    border-right:1px solid var(--border);
    background:var(--surface);
  }
  .brand-mark{
    width:26px;height:26px;border-radius:7px;
    background:linear-gradient(135deg,var(--accent),#8a4409);
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-family:'Sora';font-weight:700;font-size:13px;
    flex:none;
  }
  .brand-name{font-family:'Sora';font-weight:700;font-size:14.5px;letter-spacing:-.01em;}
  .brand-sub{font-size:10.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-top:1px;}

  .topbar{
    grid-area:topbar;
    display:flex;align-items:center;justify-content:space-between;
    padding:0 20px;
    border-bottom:1px solid var(--border);
    background:var(--surface);
    gap:16px;
  }
  .topbar-context{display:flex;align-items:center;gap:10px;min-width:0;}
  .topbar-context .job{
    font-family:'IBM Plex Mono';font-size:12px;color:var(--text-dim);
    background:var(--surface-2); border:1px solid var(--border);
    padding:3px 8px;border-radius:6px;flex:none;
  }
  .topbar-context .who{font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .topbar-actions{display:flex;align-items:center;gap:10px;flex:none;}

  .sidebar{
    grid-area:sidebar;
    background:var(--surface);
    border-right:1px solid var(--border);
    padding:14px 10px;
    display:flex;flex-direction:column;gap:2px;
    overflow-y:auto;
  }
  .nav-section-label{
    font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);
    padding:14px 10px 6px;
  }
  .nav-item{
    display:flex;align-items:center;gap:10px;
    padding:8px 10px;border-radius:8px;
    color:var(--text-dim);font-size:13.5px;font-weight:500;
    cursor:pointer;border:1px solid transparent;
    background:none;text-align:left;width:100%;
  }
  .nav-item svg{flex:none;opacity:.85;}
  .nav-item:hover{background:var(--surface-2);color:var(--text);}
  .nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600;}
  .nav-item.active svg{opacity:1;}

  .main{
    grid-area:main;
    overflow-y:auto;
    background:var(--bg);
  }
  .screen{display:none; padding:26px 30px 60px; max-width:1180px; margin:0 auto;}
  .screen.active{display:block;}
  .app.presenting .screen{max-width:100%; padding:0;}

  .page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
  .staff-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .page-head h1{font-size:22px;}
  .page-head p{color:var(--text-dim);margin:4px 0 0;font-size:13px;}

  /* ---------- buttons / inputs ---------- */
  .btn{
    display:inline-flex;align-items:center;gap:7px;
    padding:8px 14px;border-radius:8px;font-size:13.5px;font-weight:600;
    border:1px solid var(--border); background:var(--surface); color:var(--text);
    cursor:pointer; white-space:nowrap;
  }
  .btn:hover{background:var(--surface-2);}
  .btn-accent{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}
  .btn-accent:hover{filter:brightness(1.06);}
  .btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim);}
  .btn-ghost:hover{background:var(--surface-2);color:var(--text);}
  .btn-sm{padding:5px 10px;font-size:12.5px;}
  .btn[disabled]{opacity:.45;cursor:not-allowed;}

  label{display:block;font-size:12.5px;font-weight:600;color:var(--text-dim);margin-bottom:5px;}
  input[type=text],input[type=email],input[type=tel],input[type=date],select,textarea{
    width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);
    background:var(--surface);color:var(--text);font-size:13.5px;font-family:inherit;
  }
  textarea{resize:vertical;min-height:56px;}
  input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px;}
  .field{margin-bottom:14px;}
  .field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;}
  .hint{font-size:11.5px;color:var(--text-faint);margin-top:4px;}
  /* Ebony, 24 Sep 2026: "very hidden/discreet" - this one is a real charge folded
     into the zone price, not a passing tip, so it reads a point size up and darker
     than the standard .hint. */
  .zone-dual-sensor-note{font-size:12.5px;color:var(--text-dim);font-weight:600;}

  .card{
    background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
    box-shadow:var(--shadow);
  }
  .card-pad{padding:18px 20px;}

  /* ---------- pills / badges ---------- */
  .pill{
    display:inline-flex;align-items:center;gap:5px;
    padding:3px 9px;border-radius:99px;font-size:11.5px;font-weight:600;
    white-space:nowrap;
  }
  .pill-dot{width:6px;height:6px;border-radius:99px;background:currentColor;flex:none;}
  .pill-booked{background:var(--warn-soft);color:var(--warn);}
  .pill-notbooked{background:var(--neutral-soft);color:var(--text-dim);}
  .pill-completed-pending{background:var(--danger-soft);color:var(--danger);}
  .pill-closed{background:var(--success-soft);color:var(--success);}

  /* ---------- Dashboard ---------- */
  .stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px;}
  .stat-tile{padding:14px 16px;}
  .stat-tile .n{font-family:'Sora';font-size:26px;font-weight:700;line-height:1;}
  .stat-tile .l{font-size:12px;color:var(--text-dim);margin-top:6px;}

  table{width:100%;border-collapse:collapse;font-size:13.5px;}
  th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);
     padding:0 14px 10px;font-weight:600;}
  td{padding:12px 14px;border-top:1px solid var(--border);vertical-align:middle;}
  tr.row-clickable{cursor:pointer;}
  tr.row-clickable:hover td{background:var(--surface-2);}
  .cell-name{font-weight:600;}
  .cell-sub{font-size:12px;color:var(--text-faint);margin-top:1px;}
  .table-toolbar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center;justify-content:space-between;}
  .filter-chip{
    padding:6px 12px;border-radius:99px;border:1px solid var(--border);background:var(--surface);
    font-size:12.5px;font-weight:600;color:var(--text-dim);cursor:pointer;
  }
  .filter-chip.active{background:var(--text);color:var(--bg);border-color:var(--text);}

  /* ---------- Client form ---------- */
  .form-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;align-items:start;}
  .derived-box{
    background:var(--surface-2);border:1px dashed var(--border);border-radius:8px;
    padding:12px 14px;font-size:12.5px;color:var(--text-dim);
  }
  .derived-box strong{color:var(--text);}
  .phase-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:7px;font-weight:700;font-size:12.5px;margin-top:6px;}
  .phase-single{background:var(--success-soft);color:var(--success);}
  .phase-three{background:var(--accent-soft);color:var(--accent);}

  /* ---------- Consult (client-facing) ---------- */
  .consult-hero{
    background:linear-gradient(160deg,var(--surface-2),var(--surface));
    border:1px solid var(--border);border-radius:16px;
    padding:26px 28px;margin-bottom:22px;
    display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  }
  .consult-hero h1{font-size:24px;}
  .consult-hero .addr{color:var(--text-dim);font-size:13.5px;margin-top:4px;}
  .consult-total{text-align:right;}
  .consult-total .n{font-family:'Sora';font-size:30px;font-weight:800;color:var(--accent);line-height:1;}
  .consult-total .l{font-size:11.5px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.07em;margin-top:4px;}

  .section-block{margin-bottom:30px;}
  .section-block h2{font-size:16.5px;margin-bottom:3px;}
  .section-block .sub{font-size:12.5px;color:var(--text-dim);margin-bottom:14px;}

  .inclusions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;}
  .inclusion-item{
    display:flex;align-items:flex-start;gap:9px;padding:11px 13px;
    background:var(--surface);border:1px solid var(--border);border-radius:9px;font-size:13px;
  }
  .inclusion-item svg{flex:none;color:var(--success);margin-top:1px;}

  .upgrade-card{
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    padding:16px 18px;margin-bottom:12px;
  }
  .upgrade-card-head{display:flex;align-items:center;gap:9px;margin-bottom:12px;}
  .upgrade-card-head h3{font-size:14.5px;flex:1;}
  .info-dot{
    width:18px;height:18px;border-radius:99px;background:var(--link);color:#fff;
    display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;
    flex:none;cursor:help;
  }
  .upgrade-media{
    display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center;
    padding:10px;border:1px solid var(--border);border-radius:9px;margin-bottom:10px;
    background:var(--surface-2);
  }
  .media-thumb{
    width:96px;height:66px;border-radius:6px;overflow:hidden;flex:none;
    display:flex;align-items:center;justify-content:center;color:#fff;
    position:relative;
  }
  .media-thumb .play{
    position:absolute;width:24px;height:24px;border-radius:99px;background:rgba(0,0,0,.45);
    display:flex;align-items:center;justify-content:center;
  }
  .media-caption{font-size:12px;color:var(--text-dim);}
  .media-caption a{font-weight:600;}

  .opt-list{display:flex;flex-direction:column;gap:7px;}
  .opt-row{
    display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;
    border:1px solid var(--border);cursor:pointer;background:var(--surface);
  }
  .opt-row:hover{border-color:var(--accent);}
  .opt-row.selected{background:var(--accent-soft);border-color:var(--accent);}
  .opt-row input{accent-color:var(--accent); width:15px;height:15px;flex:none;}
  .opt-label{flex:1;font-size:13.5px;}
  .opt-price{font-family:'IBM Plex Mono';font-size:12.5px;color:var(--text-dim);font-variant-numeric:tabular-nums;}
  .opt-row.selected .opt-price{color:var(--accent);font-weight:600;}
  .tag-recommended{
    font-size:10px;font-weight:700;color:var(--success);background:var(--success-soft);
    padding:2px 7px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em;
  }
  select.opt-select{margin-top:4px;}

  .toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;}
  .switch{
    position:relative;width:40px;height:22px;border-radius:99px;background:var(--neutral-soft);
    border:1px solid var(--border);cursor:pointer;flex:none;transition:background .15s;
  }
  .switch::after{
    content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:99px;
    background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s;
  }
  .switch.on{background:var(--accent);}
  .switch.on::after{left:20px;background:#fff;}

  .notes-toggle{margin-top:10px;}
  .notes-toggle textarea{margin-top:8px;}

  .style-swatches{display:flex;gap:10px;}
  .swatch-opt{
    flex:1;border:1px solid var(--border);border-radius:9px;padding:10px;cursor:pointer;text-align:center;
  }
  .swatch-opt.selected{border-color:var(--accent);background:var(--accent-soft);}
  .swatch-shape{width:100%;height:44px;border-radius:6px;margin-bottom:7px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);}

  .promo-block{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:start;margin-top:16px;}
  .promo-copy p{margin:0 0 10px;font-size:13.5px;}
  .promo-bullets{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:7px;}
  .promo-bullets li{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:600;}
  .promo-bullets li::before{content:'';width:7px;height:7px;border-radius:99px;background:var(--accent);margin-top:6px;flex:none;}
  .promo-media{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center;min-height:150px;}
  .scene-card{
    background:linear-gradient(160deg,var(--accent-soft),var(--surface));
    border:1px solid var(--border);border-radius:14px;padding:24px 26px;
  }
  .scene-card h2{font-size:19px;margin-bottom:10px;}
  .scene-card p{font-size:14px;margin:0 0 10px;max-width:none;}
  .scene-card p:last-child{margin-bottom:0;}
  .unit-upgrade-link{font-size:11.5px;color:var(--text-faint);text-decoration:underline;cursor:pointer;}
  .unit-upgrade-link:hover{color:var(--text-dim);}
  .feature-banner{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
  .feature-banner-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;}
  .feature-banner-icon{width:46px;height:46px;border-radius:10px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent);background:var(--surface-2);flex:none;}
  .feature-banner-cap{font-size:12px;font-weight:700;color:var(--text);line-height:1.3;}

  .consult-footer-bar{
    position:sticky;bottom:0;margin:26px -30px -60px;padding:16px 30px;
    background:var(--surface);border-top:1px solid var(--border);
    display:flex;justify-content:space-between;align-items:center;gap:16px;
    box-shadow:0 -8px 24px -16px rgba(0,0,0,.25);
  }
  .app.presenting .consult-footer-bar{margin:26px 0 0;padding:16px 30px;}

  /* ---------- Plan markup ---------- */
  .floor-tabs{gap:8px;flex-wrap:wrap;}
  .markup-shell{display:grid;grid-template-columns:1fr 220px;gap:16px;}
  .markup-toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
  .tool-btn{
    padding:7px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);
    font-size:12.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;
  }
  .tool-btn.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
  .canvas-wrap{
    border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--surface);
    box-shadow:var(--shadow);position:relative;
  }
  #planBackgroundImage{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:1;pointer-events:none;background:#fff;}
  #markupCanvas{display:block;position:relative;z-index:2;width:100%;height:auto;cursor:crosshair;background:transparent;}
  .color-dot{width:20px;height:20px;border-radius:99px;border:2px solid transparent;cursor:pointer;}
  .color-dot.active{border-color:var(--text);}
  .zone-panel{margin-bottom:14px;}
  .zone-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px;}
  .zone-panel-title{font-family:'Sora',system-ui,sans-serif;font-size:14px;font-weight:700;}
  .zone-list{display:flex;flex-direction:column;gap:8px;}
  .zone-row{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:start;}
  .zone-marker-btn{width:40px;height:40px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border);color:#fff;font-weight:800;font-size:12px;cursor:pointer;display:grid;place-items:center;}
  .zone-marker-btn.active{box-shadow:0 0 0 3px var(--text);}
  .zone-room-picker{position:relative;}
  .zone-room-picker summary{list-style:none;min-height:40px;padding:9px 32px 9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px;line-height:1.35;cursor:pointer;position:relative;}
  .zone-room-picker summary::-webkit-details-marker{display:none;}
  .zone-room-picker summary::after{content:'▾';position:absolute;right:10px;top:10px;color:var(--text-faint);font-size:12px;}
  .zone-room-picker[open] summary{outline:2px solid var(--accent);outline-offset:1px;}
  .zone-room-menu{position:absolute;z-index:30;top:44px;left:0;right:0;max-height:260px;overflow:auto;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow);}
  .zone-room-option{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:6px;font-size:12.5px;font-weight:500;color:var(--text);cursor:pointer;margin:0;}
  .zone-room-option:hover{background:var(--surface-2);}
  .zone-room-option input{width:15px;height:15px;accent-color:var(--accent);flex:none;}
  .zone-room-option.used{color:var(--text-faint);text-decoration:line-through;cursor:not-allowed;}
  .zone-room-option.used:hover{background:transparent;}
  .zone-room-placeholder{color:var(--text-faint);}
  .zone-hint{font-size:11.5px;color:var(--text-faint);line-height:1.4;margin-top:8px;}

  /* ---------- Signature ---------- */
  .sig-pad-wrap{border:1px dashed var(--border);border-radius:10px;background:var(--surface-2);}
  #sigCanvas{display:block;width:100%;height:150px;cursor:crosshair;}
  .sig-line{border-top:1px solid var(--border);margin-top:2px;padding-top:6px;font-size:11.5px;color:var(--text-faint);display:flex;justify-content:space-between;}

  /* ---------- Quote output ---------- */
  .quote-paper{
    background:var(--surface);border:1px solid var(--border);border-radius:4px;
    padding:40px 46px;box-shadow:var(--shadow);
  }
  .quote-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--text);padding-bottom:16px;margin-bottom:20px;}
  .quote-head h1{font-size:20px;}
  .quote-meta{text-align:right;font-size:12px;color:var(--text-dim);}
  .quote-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;font-size:12.5px;}
  .quote-parties h4{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);margin-bottom:6px;}
  .quote-table{width:100%;border-collapse:collapse;margin-bottom:6px;}
  .quote-table th{border-bottom:1px solid var(--text);padding:6px 8px;font-size:10.5px;}
  .quote-table td{padding:8px;border-bottom:1px solid var(--border);font-size:12.5px;}
  .quote-total-row td{border-top:2px solid var(--text);border-bottom:none;font-weight:700;font-size:14px;padding-top:12px;}
  .quote-sig-block{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:34px;}
  .quote-sig-img{border-bottom:1px solid var(--text-faint);height:60px;display:flex;align-items:flex-end;padding-bottom:4px;}
  .quote-sig-img img{max-height:56px;}
  .quote-actions{display:flex;gap:10px;margin:18px 0 0;flex-wrap:wrap;}

  .elec-table-wrap{overflow-x:auto;margin-top:8px;}
  .elec-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:560px;}
  .elec-table th{background:var(--surface-2);padding:8px 10px;text-align:left;border:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);}
  .elec-table td{padding:8px 10px;border:1px solid var(--border);}

  .status-callout{
    display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:9px;
    background:var(--warn-soft);color:var(--warn);font-size:12.5px;margin-bottom:16px;border:1px solid transparent;
  }
  .status-callout svg{flex:none;margin-top:1px;}

  ::-webkit-scrollbar{width:10px;height:10px;}
  ::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px;}
  ::-webkit-scrollbar-track{background:transparent;}

  .exit-presenting{
    position:fixed;top:14px;right:14px;z-index:50;
  }
  .quick-plans-btn{
    position:fixed;bottom:18px;right:18px;z-index:50;
    box-shadow:var(--shadow);
  }

  @media (max-width:880px){
    .form-grid{grid-template-columns:1fr;}
    .markup-shell{grid-template-columns:1fr;}
    .stat-row{grid-template-columns:repeat(2,1fr);}
  }


  /* ========== V2 CLIENT EXPERIENCE ========== */
  .henley-wordmark{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:25px;line-height:.9;letter-spacing:-.04em;color:#101827;}
  .henley-homes{font-size:8.5px;letter-spacing:.28em;font-weight:700;color:#101827;margin-top:4px;padding-left:11px;}
  .brand{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding-left:22px;}
  .client-flow-label{margin-top:4px;}
  .sidebar-tagline{margin-top:auto;padding:18px 12px;color:var(--text-faint);font-family:Georgia,serif;font-size:14px;line-height:1.45;}
  .client-only{display:none;}
  .app.presenting{grid-template-columns:232px 1fr;grid-template-rows:56px 1fr;grid-template-areas:"brand topbar" "sidebar main";}
  .app.presenting .staff-only{display:none!important;}
  .app.presenting .client-only{display:block;}
  .app.presenting .topbar-actions > *:not(#exitPresenting){display:none;}
  .app.presenting .screen{max-width:100%;padding:0;}
  .app.presenting .main{background:#fbfaf7;}
  .app.presenting .brand,.app.presenting .topbar,.app.presenting .sidebar{display:flex;}
  .exit-presenting{position:static;}

  .client-page{max-width:1240px;margin:0 auto;}
  .app.presenting .client-page{max-width:none;}
  .client-hero{min-height:340px;border-radius:18px;overflow:hidden;position:relative;background-image:linear-gradient(90deg,rgba(37,27,20,.88) 0%,rgba(37,27,20,.70) 35%,rgba(37,27,20,.16) 64%,rgba(37,27,20,.02) 100%),url('/assets/reference-1.png');background-size:cover;background-position:center;display:flex;align-items:center;padding:38px 44px;color:white;box-shadow:var(--shadow);}
  .client-hero-copy{max-width:500px;position:relative;z-index:2;}
  .client-kicker{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;opacity:.84;margin-bottom:12px;}
  .client-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:52px;line-height:.98;letter-spacing:-.035em;margin:0 0 16px;color:white;}
  .client-hero p{font-size:17px;line-height:1.45;margin:0;max-width:440px;color:rgba(255,255,255,.94);}
  .hero-benefits{display:flex;gap:26px;margin-top:30px;flex-wrap:wrap;}
  .hero-benefit{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:rgba(255,255,255,.92);}
  .hero-benefit span:first-child{width:31px;height:31px;border:1px solid rgba(255,255,255,.45);border-radius:99px;display:flex;align-items:center;justify-content:center;font-size:15px;}
  .client-context-card{position:absolute;right:34px;top:34px;background:rgba(255,255,255,.96);color:#1c1a16;border-radius:14px;padding:17px 19px;width:250px;box-shadow:0 12px 36px rgba(0,0,0,.16);}
  .client-context-card .eyebrow{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#8d8376;font-weight:700;}
  .client-context-card strong{display:block;font-family:'Sora',sans-serif;font-size:15px;margin-top:5px;}
  .client-context-card .small{font-size:12px;color:#6b6357;margin-top:3px;}

  .journey-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:0;background:white;border:1px solid #e5dfd6;border-radius:14px;margin:16px 0 30px;overflow:hidden;box-shadow:0 8px 24px -18px rgba(30,24,10,.25);}
  .journey-step{padding:13px 10px;display:flex;align-items:center;gap:9px;border-right:1px solid #eee8df;font-size:12px;color:#6b6357;cursor:pointer;min-width:0;}
  .journey-step:last-child{border-right:0;}
  .journey-step .num{width:28px;height:28px;border-radius:99px;border:1px solid #d8d0c3;display:flex;align-items:center;justify-content:center;flex:none;font-weight:700;color:#8b8173;background:#fff;}
  .journey-step.active{color:#0a5b69;background:#fff8f1;font-weight:700;}
  .journey-step.active .num{background:#0a5b69;color:#fff;border-color:#0a5b69;}
  .journey-step .jt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

  .intro-block{padding:0 4px 12px;}
  .intro-block h2{font-family:Georgia,'Times New Roman',serif;font-size:31px;letter-spacing:-.025em;margin-bottom:5px;}
  .intro-block p{margin:0;color:#6b6357;font-size:14px;}
  .journey-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:18px;}
  .journey-card{border:1px solid #e2ddd4;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px -20px rgba(30,24,10,.3);cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;}
  .journey-card:hover{transform:translateY(-2px);border-color:#d6b18d;box-shadow:0 14px 30px -20px rgba(30,24,10,.35);}
  .journey-card-img{height:128px;background-size:cover;background-position:center;}
  .journey-card-body{padding:15px 16px 17px;}
  .journey-card h3{font-size:15px;margin-bottom:5px;}
  .journey-card p{font-size:12.5px;color:#6b6357;margin:0;line-height:1.45;}
  .journey-card .arrow{display:inline-block;margin-top:10px;color:#0a5b69;font-weight:700;font-size:12px;}
  .landing-actions{display:flex;justify-content:flex-end;margin-top:22px;}
  .btn-lg{padding:11px 20px;font-size:14px;border-radius:9px;}

  .client-section-hero{border-radius:16px;padding:28px 30px;background:linear-gradient(135deg,#fff,#f2eee7);border:1px solid #e0d9cf;margin-bottom:20px;display:flex;justify-content:space-between;gap:20px;align-items:flex-end;}
  .client-section-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:36px;letter-spacing:-.025em;}
  .client-section-hero p{margin:6px 0 0;color:#6b6357;max-width:670px;}
  .step-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:99px;background:#e2f1ee;color:#0a5b69;font-size:11.5px;font-weight:700;margin-bottom:9px;}

  .standard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .standard-card{background:white;border:1px solid #e2ddd4;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px -20px rgba(30,24,10,.3);}
  .standard-card .media{height:175px;background-size:cover;background-position:center;}
  .standard-card .body{padding:17px 18px 20px;}
  .standard-card h3{font-size:16px;margin:0 0 6px;}
  .standard-card p{font-size:12.8px;color:#6b6357;margin:0;line-height:1.5;}
  .included-badge{display:inline-flex;align-items:center;gap:6px;background:#e0efe6;color:#2f7d5c;font-weight:700;font-size:10.5px;padding:4px 8px;border-radius:99px;margin-bottom:10px;}
  .promo-panel{display:grid;grid-template-columns:1.4fr .9fr;gap:22px;margin-top:18px;background:#fffaf5;border:1px solid #ecd9c6;border-radius:14px;padding:23px 25px;}
  .promo-panel h3{font-family:Georgia,'Times New Roman',serif;font-size:24px;margin-bottom:8px;}
  .promo-panel p{margin:0;color:#5f584e;font-size:13.5px;}
  .promo-mini{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
  .promo-mini div{background:white;border:1px solid #eee3d6;border-radius:10px;padding:12px;font-size:12px;font-weight:700;}
  .flow-footer{position:sticky;bottom:0;z-index:5;margin:26px -30px -60px;padding:14px 30px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid #e4ddd2;display:flex;align-items:center;justify-content:space-between;gap:16px;}

  .upgrade-cover-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:8px 0 22px;}
  .upgrade-cover{border:1px solid #e2ddd4;border-radius:13px;background:#fff;overflow:hidden;cursor:pointer;}
  .upgrade-cover .pic{height:105px;background-size:cover;background-position:center;}
  .upgrade-cover .txt{padding:11px 12px 12px;}
  .upgrade-cover .txt strong{display:block;font-size:13px;}
  .upgrade-cover .txt span{display:block;font-size:11.5px;color:#7d7468;margin-top:3px;line-height:1.35;}

  .make-yours-intro{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;margin-bottom:12px;}
  .make-yours-intro h1{font-family:Georgia,'Times New Roman',serif;font-size:36px;}
  .make-yours-intro p{margin:6px 0 0;color:#6b6357;}
  .make-yours-total{text-align:right;background:#fff;border:1px solid #e1dbd1;border-radius:12px;padding:13px 15px;min-width:180px;}
  .make-yours-total .n{font-size:25px;color:#0a5b69;font-weight:800;font-family:'Sora';}
  .make-yours-total .l{font-size:10.5px;color:#8e8578;text-transform:uppercase;letter-spacing:.06em;margin-top:2px;}

  .section-block h2{font-size:19px;}
  .upgrade-card{box-shadow:0 8px 24px -22px rgba(30,24,10,.28);}
  .consult-footer-bar{margin-bottom:-60px;}
  .app.presenting .consult-footer-bar{margin-bottom:0;}

  @media(max-width:1100px){
    .journey-cards{grid-template-columns:repeat(2,1fr);}
    .standard-grid{grid-template-columns:1fr;}
    .upgrade-cover-grid{grid-template-columns:repeat(2,1fr);}
    .client-context-card{display:none;}
    .journey-strip{grid-template-columns:repeat(3,1fr);}
  }



  /* ========== V3 POLISH + CLIENT-FACING PRODUCT CARDS ========== */
  .henley-logo-img{display:block;width:136px;max-height:44px;object-fit:contain;object-position:left center;}
  .brand{padding:6px 18px;align-items:center;justify-content:flex-start;}
  .brand .henley-wordmark,.brand .henley-homes{display:none;}

  .ui-icon{width:17px;height:17px;display:inline-block;vertical-align:-3px;flex:none;}
  .ui-icon-lg{width:22px;height:22px;display:block;}
  .btn svg,.tool-btn svg{flex:none;}

  #screen-upgrades .section-block{margin-bottom:34px;}
  .premium-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:34px 0 14px;}
  .premium-section-head h2{font-family:Georgia,'Times New Roman',serif;font-size:27px;letter-spacing:-.025em;}
  .premium-section-head p{margin:5px 0 0;color:#736a5e;font-size:13px;}
  .premium-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
  .premium-grid.one{grid-template-columns:1fr;}
  .premium-upgrade-card{background:#fff;border:1px solid #e3ddd4;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px -28px rgba(40,31,22,.4);}
  .premium-upgrade-card .premium-photo{height:190px;background-size:cover;background-position:center;position:relative;}
  .premium-upgrade-card .premium-photo.tall{height:220px;}
  .premium-photo::after{content:'';position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(transparent,rgba(26,20,16,.16));pointer-events:none;}
  .premium-upgrade-card .premium-body{padding:20px 22px 22px;}
  .premium-card-kicker{display:inline-flex;align-items:center;gap:7px;color:#0a5b69;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin-bottom:7px;}
  .premium-upgrade-card h3{font-family:Georgia,'Times New Roman',serif;font-size:24px;letter-spacing:-.02em;margin:0 0 6px;}
  .premium-upgrade-card .premium-lead{margin:0 0 16px;color:#655d52;font-size:13.5px;line-height:1.5;}
  .premium-upgrade-card .opt-list{gap:8px;}
  .premium-upgrade-card .opt-row{padding:11px 12px;border-radius:10px;}
  .premium-upgrade-card .field:last-child{margin-bottom:0;}
  .premium-card-divider{height:1px;background:#ece6de;margin:17px 0;}
  .premium-feature-list{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:14px 0 18px;}
  .premium-feature{background:#faf7f2;border:1px solid #eee6dc;border-radius:11px;padding:11px 10px;font-size:11.5px;font-weight:650;line-height:1.35;color:#50493f;}
  .premium-feature svg{display:block;color:#0a5b69;margin-bottom:7px;}
  .premium-price-line{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #ece6de;padding-top:15px;margin-top:15px;}
  .premium-price-line .price{font-family:'Sora',sans-serif;font-weight:800;font-size:17px;color:#0a5b69;}
  .premium-story{min-height:250px;border-radius:18px;overflow:hidden;position:relative;background-image:linear-gradient(90deg,rgba(26,20,16,.82),rgba(26,20,16,.34),rgba(26,20,16,.04)),var(--embedded-asset-1);background-size:cover;background-position:center;display:flex;align-items:center;padding:34px 38px;color:#fff;box-shadow:0 16px 34px -28px rgba(30,22,16,.6);}
  .premium-story-copy{max-width:570px;}
  .premium-story h2{font-family:Georgia,'Times New Roman',serif;font-size:33px;line-height:1.08;margin:0 0 10px;color:#fff;}
  .premium-story p{font-size:14px;line-height:1.58;margin:0 0 7px;color:rgba(255,255,255,.94);}
  .site-variation-card{display:grid;grid-template-columns:minmax(260px,.85fr) 1.35fr;}
  .site-variation-card .premium-photo{height:auto;min-height:270px;}
  .site-variation-card .premium-body{padding:24px 26px;}
  .controller-card .premium-photo{background-position:center 46%;}
  .smart-card .premium-photo{height:210px;}
  .outlet-card .premium-photo{background-position:center 42%;}
  .grille-card .premium-photo{background-position:center 36%;}
  .style-swatches{gap:12px;}
  .swatch-opt{padding:14px 12px;border-radius:12px;}
  .swatch-shape{height:64px;border-radius:10px;background:#f6f3ee;}
  .swatch-shape svg{width:52px;height:52px;}
  .swatch-opt[data-style="linear"] .swatch-shape svg{width:78px;}
  .make-yours-total{position:sticky;top:10px;z-index:4;}

  /* Plan symbol toolbar: purpose-built HVAC symbols rather than font glyphs. */
  .markup-toolbar{align-items:center;gap:9px;padding:10px;background:#fff;border:1px solid #e3ddd4;border-radius:13px;box-shadow:0 10px 28px -25px rgba(30,24,10,.45);}
  .tool-btn{min-height:38px;padding:8px 11px;gap:8px;border-radius:9px;}
  .tool-btn .tool-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:currentColor;}
  .tool-btn .tool-icon svg{width:20px;height:20px;display:block;}
  .tool-btn[data-tool="grille-linear"] .tool-icon svg{width:27px;}
  .tool-btn[data-tool="outlet-round"] .tool-icon svg{width:22px;height:22px;}
  .plan-symbol-legend{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px;}
  .legend-item{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#fff;border:1px solid #e5dfd6;border-radius:9px;font-size:11.5px;color:#655d52;}
  .legend-icon{width:27px;height:27px;border-radius:7px;background:#faf5ee;display:flex;align-items:center;justify-content:center;color:#0a5b69;}
  .legend-icon svg{width:21px;height:21px;display:block;}
  .legend-item.linear .legend-icon svg{width:25px;}

  @media(max-width:950px){
    .premium-grid{grid-template-columns:1fr;}
    .site-variation-card{grid-template-columns:1fr;}
    .site-variation-card .premium-photo{min-height:190px;}
    .premium-feature-list{grid-template-columns:1fr;}
  }


  :root{
    --embedded-asset-1:url('/assets/reference-2.png');
    --embedded-asset-2:url('/assets/reference-3.png');
    --embedded-asset-3:url('/assets/reference-4.png');
  }


  /* V5 energy evidence + grille presentation */
  .energy-proof-banner{margin:16px 0 24px;border-radius:22px;overflow:hidden;border:1px solid #dfe3ef;background:linear-gradient(135deg,#f7fbff 0%,#eef5ff 52%,#f7f1fb 100%);display:grid;grid-template-columns:1.05fr .95fr;box-shadow:0 18px 50px rgba(31,57,126,.09)}
  .energy-proof-copy{padding:34px 36px 32px}.energy-proof-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:800;color:#5d33a2;margin-bottom:8px}.energy-proof-copy h2{font-family:'DM Serif Display',serif;font-size:36px;line-height:1.03;margin:0 0 12px;color:#18233d}.energy-proof-copy>p{font-size:15px;line-height:1.55;color:#4f586b;max-width:650px;margin:0 0 22px}.energy-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 22px}.energy-benefit{border-left:2px solid rgba(193,98,14,.45);padding-left:12px}.energy-benefit strong{display:block;color:#18233d;font-size:13px;margin-bottom:4px}.energy-benefit span{font-size:12px;line-height:1.35;color:#697183}.energy-proof-visual{padding:24px;display:flex;flex-direction:column;justify-content:center}.energy-stat{display:flex;align-items:flex-end;gap:12px;margin-bottom:10px}.energy-stat .big{font-family:'Sora',sans-serif;font-size:52px;line-height:.9;font-weight:800;color:#253f93}.energy-stat .copy{font-size:12px;line-height:1.3;color:#5c6473;max-width:180px}.energy-chart-card{background:#fff;border:1px solid #e3e6ef;border-radius:16px;padding:12px;box-shadow:0 10px 24px rgba(31,57,126,.08)}.energy-chart-card img{width:100%;display:block;border-radius:9px}.energy-chart-note{font-size:11px;color:#687184;margin-top:8px;line-height:1.4}.energy-proof-footnote{font-size:10.5px;color:#7b7480;margin-top:10px}.energy-study-btn{display:inline-flex;align-items:center;gap:9px}
  .premium-photo.air-round-installed{background-size:cover;background-position:center}.premium-photo.grille-preview{background-size:cover;background-position:center;background-color:#ece7df}.premium-photo.grille-preview::after{display:none}
  .style-swatches .swatch-shape.grille-photo{height:82px;padding:0;overflow:hidden;border-radius:10px;background:#efece7}.style-swatches .swatch-shape.grille-photo img{width:100%;height:100%;object-fit:cover;display:block}
  #screen-study{padding-bottom:40px}.study-hero{border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#172d68,#263f91 55%,#65338d);color:#fff;padding:40px 42px;position:relative;box-shadow:0 20px 55px rgba(20,35,84,.20);margin-bottom:24px}.study-hero:after{content:'';position:absolute;width:300px;height:300px;border-radius:50%;right:-70px;top:-90px;background:rgba(255,255,255,.09)}.study-eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:#d9dffc;margin-bottom:10px}.study-hero h1{font-family:'DM Serif Display',serif;font-size:45px;line-height:1.03;margin:0 0 12px;max-width:760px}.study-hero p{font-size:16px;line-height:1.55;max-width:820px;color:#eef1ff;margin:0}.study-hero-actions{margin-top:24px;display:flex;gap:10px;align-items:center}.study-meta{font-size:11px;color:#d6dcfa}
  .study-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.study-stat-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:0 8px 24px rgba(0,0,0,.045)}.study-stat-card .stat{font-family:'Sora',sans-serif;font-size:36px;font-weight:800;color:#263f91;margin-bottom:5px}.study-stat-card strong{display:block;font-size:14px;margin-bottom:6px}.study-stat-card p{font-size:12.5px;line-height:1.45;color:var(--text-dim);margin:0}
  .study-how{background:#fff;border:1px solid var(--border);border-radius:20px;padding:26px;margin-bottom:24px}.study-how h2,.study-extracts h2,.study-scenarios h2{font-family:'DM Serif Display',serif;font-size:30px;margin:0 0 8px}.study-how>p,.study-extracts>p,.study-scenarios>p{color:var(--text-dim);font-size:14px;margin:0 0 18px}.study-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.study-how-item{background:#f7f5f0;border-radius:15px;padding:18px}.study-how-item .num{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:10px}.study-how-item strong{display:block;font-size:13.5px;margin-bottom:5px}.study-how-item span{font-size:12.5px;line-height:1.45;color:var(--text-dim)}
  .study-scenarios{margin-bottom:24px}.scenario-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.scenario-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px}.scenario-card .saving{font-family:'Sora';font-size:28px;font-weight:800;color:#5e258d}.scenario-card strong{display:block;margin:5px 0 4px;font-size:13px}.scenario-card span{font-size:11.5px;color:var(--text-dim);line-height:1.35}.study-balance-note{margin-top:12px;background:#fff4df;border:1px solid #efd8aa;border-radius:13px;padding:12px 14px;font-size:11.5px;color:#6f6043;line-height:1.45}
  .study-extracts{margin-bottom:24px}.study-extract-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.study-extract{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;cursor:pointer;transition:.18s ease;box-shadow:0 8px 24px rgba(0,0,0,.035)}.study-extract:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.07)}.study-extract img{width:100%;height:310px;object-fit:contain;background:#f7f6f3;display:block}.study-extract .cap{padding:14px 16px}.study-extract .cap strong{display:block;font-size:13px;margin-bottom:4px}.study-extract .cap span{font-size:11.5px;color:var(--text-dim)}
  .study-disclaimer{background:#f4f2ee;border:1px solid var(--border);border-radius:16px;padding:16px 18px;font-size:11.5px;line-height:1.55;color:var(--text-dim);margin-bottom:18px}.study-return-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:14px 16px;position:sticky;bottom:14px;z-index:8;box-shadow:0 12px 32px rgba(0,0,0,.08)}
  .study-modal{display:none;position:fixed;inset:0;background:rgba(12,14,20,.78);z-index:9999;padding:34px;align-items:center;justify-content:center}.study-modal.open{display:flex}.study-modal-card{max-width:980px;width:100%;max-height:92vh;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.4)}.study-modal-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e7e3db}.study-modal-head strong{font-size:13px}.study-modal-img-wrap{max-height:82vh;overflow:auto;background:#eceae6;padding:16px;text-align:center}.study-modal-img-wrap img{max-width:100%;height:auto;box-shadow:0 8px 25px rgba(0,0,0,.18)}
  .quote-evidence-link{margin:0 0 16px;border:1px solid #d8dfef;background:#f4f7ff;border-radius:14px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.quote-evidence-link strong{font-size:13px;color:#263f91}.quote-evidence-link span{font-size:11.5px;color:#657089}
  @media(max-width:950px){.energy-proof-banner{grid-template-columns:1fr}.energy-benefits{grid-template-columns:1fr}.study-stats,.study-how-grid{grid-template-columns:1fr}.scenario-grid{grid-template-columns:repeat(2,1fr)}.study-extract-grid{grid-template-columns:1fr}}


  .zone-recommendation{display:flex;gap:12px;align-items:flex-start;margin:16px 0 18px;padding:14px 15px;border-radius:12px;background:linear-gradient(135deg,#fff5e6,#fffaf2);border:1px solid #efd3ad;color:#4f3928;}
  .zone-recommendation .zone-rec-icon{width:31px;height:31px;flex:0 0 31px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:white;font-size:14px;box-shadow:0 5px 12px rgba(191,91,0,.18);}
  .zone-recommendation strong{display:block;font-size:13px;color:#2b211b;margin:0 0 4px;}
  .zone-recommendation p{margin:0;font-size:13px;line-height:1.5;color:#715a48;}
  .grille-qty-swatches{align-items:stretch;}
  .grille-qty-swatches .swatch-opt{flex:1;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px;cursor:pointer;transition:.18s ease;position:relative;}
  .grille-qty-swatches .swatch-opt:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(31,24,18,.08);}
  .grille-qty-swatches .swatch-opt.has-qty{border-color:var(--accent);box-shadow:0 0 0 1px rgba(191,91,0,.12),0 8px 20px rgba(31,24,18,.06);}
  .grille-qty-swatches .swatch-shape.grille-photo{height:122px;width:100%;padding:0;border-radius:10px;overflow:hidden;background:#eee8df;}
  .grille-qty-swatches .swatch-shape.grille-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .grille-card-title{font-size:12.5px;line-height:1.28;font-weight:700;min-height:32px;text-align:center;color:#1e1915;}
  .grille-included-chip{align-self:center;border-radius:999px;background:#e5f3ea;color:#26734a;font-size:11px;font-weight:700;padding:5px 10px;margin-top:auto;}
  .grille-qty-row{display:grid;grid-template-columns:34px 1fr 34px;gap:6px;align-items:center;margin-top:auto;}
  .grille-qty-btn{height:34px;border:1px solid #d6cec4;background:#fff;border-radius:8px;font-size:20px;line-height:1;cursor:pointer;color:#342b25;}
  .grille-qty-btn:hover{border-color:var(--accent);color:var(--accent);}
  .grille-qty-input{height:34px;width:100%;min-width:0;border:1px solid #d6cec4;border-radius:8px;text-align:center;font:600 13px/1 Sora,Arial,sans-serif;background:white;color:#211b17;}
  @media(max-width:900px){.grille-qty-swatches{flex-direction:column}.grille-qty-swatches .swatch-shape.grille-photo{height:180px}}


  /* V7: fixed room hero, accurate front-face icons, compact quantity controls. */
  .grille-card .premium-photo.grille-lifestyle-hero {height:190px;overflow:hidden;background:#ece7df;}
  .grille-lifestyle-hero::after {display:none;}
  .grille-lifestyle-hero img {display:block;width:100%;height:100%;object-fit:cover;object-position:center 64%;}
  .grille-qty-swatches {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:stretch;}
  .grille-qty-swatches .swatch-opt {display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:10px 9px;min-width:0;cursor:default;background:#fff;border:1px solid #dfd6cb;box-shadow:none;}
  /* Ebony, 24 Sep 2026: the `hidden` attribute on #linearGrilleCard (Bling grille, off
     for now) was losing to the class rule above - two classes beats one attribute
     selector in specificity, so `hidden` was silently ignored and the card still
     showed. This wins that fight back for any hidden swatch, not just Bling grille. */
  .grille-qty-swatches .swatch-opt[hidden] {display:none;}
  .grille-qty-swatches .swatch-opt:hover {transform:none;box-shadow:none;}
  .grille-qty-swatches .swatch-opt.has-qty {border-color:var(--accent);background:#fff6eb;box-shadow:inset 0 0 0 1px rgba(193,98,14,.07);}
  .grille-qty-swatches .standard-grille-card {background:#faf8f4;}
  .grille-qty-swatches .grille-icon-panel {height:60px;width:100%;display:flex;align-items:center;justify-content:center;margin:0;padding:3px 6px;border-radius:8px;background:#f5f2ec;color:#4c4942;}
  .grille-qty-swatches label.grille-icon-panel {cursor:pointer;}
  .grille-qty-swatches .grille-icon-panel .grille-symbol {display:block;width:54px;height:54px;max-width:100%;}
  #grilleStyleSection .grille-icon-panel svg.linear-symbol {width:120px;height:40px;}
  .grille-qty-swatches .grille-card-title {display:block;margin:0;min-height:32px;font:600 12px/1.35 Inter,system-ui,sans-serif;color:#2d2923;text-align:center;}
  .grille-qty-swatches .grille-qty-row {display:grid;grid-template-columns:28px minmax(0,1fr) 28px;gap:4px;margin-top:auto;}
  .grille-qty-swatches .grille-qty-btn {height:32px;padding:0;display:grid;place-items:center;border-radius:7px;font-size:18px;}
  .grille-qty-swatches .grille-qty-btn:disabled {opacity:.4;cursor:default;border-color:#d6cec4;color:#342b25;}
  .grille-qty-swatches .grille-qty-input {height:32px;appearance:textfield;-moz-appearance:textfield;font:600 13px/1 Inter,system-ui,sans-serif;border-radius:7px;padding:0 2px;}
  .grille-qty-input::-webkit-inner-spin-button,.grille-qty-input::-webkit-outer-spin-button {-webkit-appearance:none;margin:0;}
  .grille-qty-btn:focus-visible,.grille-qty-input:focus-visible {outline:2px solid var(--accent);outline-offset:2px;}
  .grille-included-chip {margin-bottom:4px;}
  .grille-total-note {margin:10px 0 0;font-size:11.5px;line-height:1.4;color:#766d62;}
  .visually-hidden {position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
  .plan-symbol-legend .legend-icon svg,.tool-icon svg {overflow:visible;}
  @media(max-width:520px){
    .grille-qty-swatches {gap:7px;}
    .grille-qty-swatches .swatch-opt {padding:9px 6px;}
    .grille-qty-swatches .grille-qty-row {grid-template-columns:24px minmax(0,1fr) 24px;gap:3px;}
    .grille-qty-swatches .grille-card-title {font-size:11px;}
  }



  /* V9: only the grille card and its detail dialog. */
  #grilleStyleSection {
    container-type:inline-size;
    overflow:hidden;
    align-self:start;
    background:#fff;
    color:#202020;
    border:1px solid #e2ddd6;
    border-radius:12px;
    font-family:Arial,Helvetica,sans-serif;
  }
  #grilleStyleSection .premium-photo.grille-lifestyle-hero {
    height:190px;
    aspect-ratio:auto;
    border-radius:0;
    background:#d3ccc4;
    overflow:hidden;
  }
  #grilleStyleSection .grille-lifestyle-hero::after {display:none;}
  #grilleStyleSection .grille-lifestyle-hero img {
    display:block;width:100%;height:100%;object-fit:cover;object-position:center;
  }
  #grilleStyleSection .premium-body {padding:4.1cqw 3.6cqw;}
  #grilleStyleSection .premium-card-kicker {
    display:block;
    margin:0 0 1.8cqw;
    padding-inline:.7cqw;
    font:700 clamp(10px,2.3cqw,11px)/1.34 Arial,Helvetica,sans-serif;
    color:#0a5b69;
    letter-spacing:.075em;
    text-transform:uppercase;
  }
  #grilleStyleSection .premium-body>h3 {
    margin:0 0 1.8cqw;
    padding-inline:.7cqw;
    color:#151515;
    font:700 clamp(20px,5.65cqw,24px)/1.18 Georgia,'Times New Roman',serif;
    letter-spacing:-.025em;
    text-wrap:wrap;
  }
  #grilleStyleSection .premium-lead {
    margin:0 0 4.1cqw;
    padding-inline:.7cqw;
    max-width:none;
    color:#636363;
    font:400 clamp(12px,3.08cqw,13.5px)/1.5 Arial,Helvetica,sans-serif;
  }
  #grilleStyleSection .grille-qty-swatches {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:2.55cqw;
    align-items:stretch;
  }
  #grilleStyleSection .grille-qty-swatches .swatch-opt {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    min-width:0;
    height:45.15cqw;
    padding:1.8cqw 2cqw;
    border:1px solid #dfd8d0;
    border-radius:2.1cqw;
    background:#fff;
    cursor:default;
    box-shadow:none;
    transform:none;
    transition:border-color .15s,background-color .15s;
  }
  #grilleStyleSection .grille-qty-swatches .swatch-opt:hover {transform:none;box-shadow:none;}
  #grilleStyleSection .grille-qty-swatches .standard-grille-card,
  #grilleStyleSection .grille-qty-swatches .swatch-opt.has-qty {
    border-color:#0a5b69;
    background:#e5f2ef;
    box-shadow:none;
  }
  #grilleStyleSection .grille-option-image {
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:100%;height:19.1cqw;
    border:0;border-radius:1.5cqw;
    margin:0;padding:0;
    background:#f7f5f2;
    overflow:hidden;
    appearance:none;
    color:inherit;
  }
  #grilleStyleSection .grille-option-image img {
    display:block;width:100%;height:100%;object-fit:cover;
  }
  #grilleStyleSection .standard-grille-card .grille-option-image {background:transparent;}
  #grilleStyleSection .standard-grille-card .grille-option-image img {
    width:19.2cqw;height:18.2cqw;object-fit:contain;
  }
  #grilleStyleSection label.grille-option-image {cursor:text;}
  #grilleStyleSection button.grille-option-image {cursor:pointer;}
  #grilleStyleSection .grille-card-title {
    display:block;
    flex:0 0 auto;
    width:100%;min-height:7.18cqw;
    margin:1.6cqw 0 1.8cqw;
    padding:0;border:0;border-radius:0;
    background:transparent;
    color:#242424;
    font:600 clamp(11px,2.83cqw,13px)/1.27 Arial,Helvetica,sans-serif;
    text-align:center;
    text-decoration:none;
    appearance:none;
  }
  #grilleStyleSection button.grille-card-title {cursor:pointer;}
  #grilleStyleSection .grille-qty-row {
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:0;
    flex:0 0 auto;
    height:6.67cqw;
    margin-top:auto;
    overflow:hidden;
    border:1px solid #c7c8cd;
    border-radius:1cqw;
    background:#fafafd;
  }
  #grilleStyleSection .grille-qty-btn,
  #grilleStyleSection .grille-qty-input {
    display:block;
    width:100%;min-width:0;height:100%;
    margin:0;padding:0;
    border:0;border-radius:0;
    background:linear-gradient(#fff,#f4f4f7);
    color:#343438;
    text-align:center;
    box-shadow:none;
  }
  #grilleStyleSection .grille-qty-btn {font:400 clamp(14px,3.6cqw,16px)/1 Arial,Helvetica,sans-serif;cursor:pointer;}
  #grilleStyleSection .grille-qty-btn:hover {background:#f0e7dc;color:#ab5214;}
  #grilleStyleSection .grille-qty-btn:disabled {opacity:.55;cursor:default;background:#fafafd;color:#343438;}
  #grilleStyleSection .grille-qty-input {
    font:400 clamp(12px,3cqw,13px)/1 Arial,Helvetica,sans-serif;
    border-inline:1px solid #d1d1d4;
    background:#fff;
    appearance:textfield;
    -moz-appearance:textfield;
  }
  #grilleStyleSection .grille-qty-input::-webkit-inner-spin-button,
  #grilleStyleSection .grille-qty-input::-webkit-outer-spin-button {-webkit-appearance:none;margin:0;}
  #grilleStyleSection .grille-option-total {
    margin-top:1.28cqw;
    min-height:3.6cqw;
    color:#68666a;
    font:400 clamp(10px,2.56cqw,11.5px)/1.4 Arial,Helvetica,sans-serif;
    text-align:center;
  }
  #grilleStyleSection button:focus-visible,
  #grilleStyleSection input:focus-visible {outline:2px solid #0a5b69;outline-offset:2px;}
  #grilleStyleSection .grille-qty-row:focus-within {outline:2px solid #0a5b69;outline-offset:2px;}
  #grilleStyleSection .grille-qty-row input:focus {outline:none;}

  /* Native dialog confines keyboard focus and blocks background interaction. */
  #blingGrilleModal {
    container-type:inline-size;
    width:386px;
    max-width:calc(100vw - 24px);
    max-height:calc(100vh - 32px);
    max-height:calc(100dvh - 32px);
    margin:auto;
    padding:16px;
    border:1px solid #e4dfd7;
    border-radius:12px;
    background:linear-gradient(135deg,#fff,#fcfbf9);
    color:#1c355d;
    box-shadow:0 20px 70px rgba(0,0,0,.24);
    font-family:Arial,Helvetica,sans-serif;
    overflow:auto;
    overscroll-behavior:contain;
  }
  #blingGrilleModal:not([open]) {display:none;}
  #blingGrilleModal::backdrop {background:rgba(25,23,20,.45);backdrop-filter:blur(3px);}
  #blingGrilleModal .bling-modal-head {position:relative;padding-right:6cqw;}
  #blingGrilleModal .bling-modal-title {
    margin:0;
    color:#151515;
    font:700 9.05cqw/1.15 Georgia,'Times New Roman',serif;
    letter-spacing:-.035em;
    text-wrap:wrap;
    white-space:nowrap;
  }
  #blingGrilleModal .bling-modal-close {
    position:absolute;
    right:-1.7cqw;top:-1.7cqw;
    display:grid;place-items:center;
    width:9cqw;height:9cqw;
    border:0;border-radius:5px;
    margin:0;padding:0;
    background:transparent;
    color:#60606a;
    cursor:pointer;
  }
  #blingGrilleModal .bling-modal-close svg {width:5cqw;height:5cqw;}
  #blingGrilleModal .bling-modal-close:hover {background:#f2eee8;}
  #blingGrilleModal .bling-modal-close:focus-visible {outline:2px solid #0a5b69;outline-offset:1px;}
  #blingGrilleModal .bling-modal-sub {margin:2.1cqw 0 2cqw;color:#585960;font:400 4cqw/1.45 Arial,Helvetica,sans-serif;}
  #blingGrilleModal .bling-product-img {width:100%;height:49cqw;margin:0;}
  #blingGrilleModal .bling-product-img img {display:block;width:100%;height:100%;object-fit:contain;}
  #blingGrilleModal .bling-spec {
    position:relative;
    margin:-8cqw 0 1cqw;
    color:#192f58;
    font:700 5.6cqw/1.2 Arial,Helvetica,sans-serif;
  }
  #blingGrilleModal .bling-spec-sub {margin:0 0 4cqw;color:#192f58;font:700 4.2cqw/1.2 Arial,Helvetica,sans-serif;}
  #blingGrilleModal .bling-bullets {display:flex;flex-direction:column;gap:2.1cqw;list-style:none;padding:0;margin:0 0 3.4cqw;}
  #blingGrilleModal .bling-bullet {display:grid;grid-template-columns:6.3cqw 1fr;gap:1.9cqw;color:#1c355d;font:400 3.85cqw/1.35 Arial,Helvetica,sans-serif;}
  #blingGrilleModal .bling-tick {display:block;width:6.3cqw;height:6.3cqw;margin-top:-.5cqw;color:#4fae9d;}
  #blingGrilleModal .bling-modal-divider {height:1px;background:#dfd9cf;margin:3.4cqw 0;}
  #blingGrilleModal .bling-installed {margin:0;width:100%;aspect-ratio:301 / 152;border-radius:1.8cqw;overflow:hidden;background:#d3ccc4;}
  #blingGrilleModal .bling-installed img {display:block;width:100%;height:100%;object-fit:cover;}


  /* ========== ASPYRA BRANDING ========== */
  .brand{padding:4px 12px;display:flex;align-items:center;justify-content:center;flex-direction:row;background:var(--surface);overflow:hidden;}
  .aspyra-logo-img{display:block;width:auto;max-width:200px;height:48px;object-fit:contain;object-position:center center;flex:none;}
  .topbar-left{display:flex;align-items:center;gap:12px;min-width:0;flex:1;}
  .topbar-context{gap:10px;min-width:0;}
  .brand-secondary{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:7px;min-width:0;flex:none;}
  .brand-secondary-label{font-size:8.5px;line-height:1.05;letter-spacing:.08em;color:var(--text-faint);font-weight:500;white-space:nowrap;}
  .brand-secondary-label strong{font-weight:800;color:var(--accent);letter-spacing:.10em;}
  .brand-secondary .henley-logo-img{display:block;width:58px;max-height:21px;object-fit:contain;object-position:left center;opacity:.80;}
  .topbar-brand-divider{width:1px;height:27px;background:var(--border);flex:none;}
  .topbar{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);}
  :root[data-theme="dark"] .topbar{background:rgba(22,33,36,.94);}
  .nav-item.active{box-shadow:inset 3px 0 0 var(--accent);}
  .btn-accent{box-shadow:0 6px 16px -10px rgba(10,91,105,.55);}
  .client-section-hero,.consult-hero{background:linear-gradient(145deg,var(--surface-2),var(--surface));}
  .make-yours-total .n,.premium-card-kicker{color:var(--accent)!important;}
  .premium-feature svg{color:var(--accent)!important;}
  .quote-head{border-bottom-color:var(--accent);}
  .quote-head h1{color:#123f49;}
  :root[data-theme="dark"] .quote-head h1{color:var(--text);}
  .quote-paper{border-top:4px solid var(--accent);}
  .sidebar-tagline{color:var(--text-dim);}
/* .btn:hover sets a pale background and matches as strongly as .btn-accent, so an accent
   button turned white-on-white the moment the mouse was over it – its label vanished.
   Stated last so it wins on order, for hover and for the focus a click leaves behind. */
.btn-accent:hover,.btn-accent:focus,.btn-accent:focus-visible{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
/* The smart home platform band on Make it Yours. */
.platform-band{margin:0 0 22px;}
.platform-card{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:22px 24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);}
.platform-card.included{border-color:#8fc4ae;background:linear-gradient(180deg,#f3faf6,var(--surface));}
.platform-card h3{margin:4px 0 6px;font-size:19px;}
.platform-card .premium-lead{margin:0;max-width:60ch;}
.platform-price{text-align:right;min-width:190px;display:flex;flex-direction:column;gap:2px;align-items:flex-end;}
.platform-price .was,.quote-line .was{color:var(--text-dim);text-decoration:line-through;font-size:13.5px;}
.platform-price .promo{font-size:17px;color:#2f7d5a;}
.platform-options{flex:1 1 320px;min-width:280px;}
.platform-options .opt-label .hint{font-weight:400;}
@media(max-width:820px){.platform-card{flex-direction:column;align-items:stretch;}
  .platform-price{text-align:left;align-items:flex-start;}}
/* Upgrades that need a platform stay on the page, visibly out of reach until there is one. */
.premium-grid.locked{opacity:.5;filter:saturate(.35);pointer-events:none;}
.locked-note{color:#8a5a12;margin:8px 0 14px;}
.platform-options .platform-none{margin:6px 2px 0;}

/* ================= Consult availability ================= */
/* The grid shows each open hour's real footprint, so an overlap is visible at the moment
   it is created rather than on the day. */

.av-controls{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}
.av-controls .field{margin:0;min-width:200px}
.av-week{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.av-controls-end{margin-left:auto}
.av-note{max-width:80ch}
.av-scroll{overflow-x:auto}
.av-grid{width:100%;border-collapse:separate;border-spacing:4px;min-width:760px}
.av-grid th{font-size:12px;font-weight:600;text-align:center;padding:4px 0;color:var(--ink-soft,#5c6f73)}
.av-grid th.av-hour{width:74px;text-align:right;padding-right:10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.av-cell{padding:0;vertical-align:top}
.av-cell.av-weekend{background:rgba(0,0,0,.02)}
.av-btn{width:100%;min-height:52px;border:1px dashed rgba(125,140,142,.38);border-radius:9px;
  background:transparent;color:var(--ink-soft,#7a8c8f);font-size:15px;cursor:pointer;padding:6px 8px;
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;justify-content:center;transition:.14s ease}
.av-btn:hover:not([disabled]){border-color:var(--brand-primary,#0a5b69);color:var(--brand-primary,#0a5b69)}
.av-btn[disabled]{opacity:.3;cursor:default}
.av-open .av-btn{border-style:solid;border-color:var(--brand-primary,#0a5b69);
  background:color-mix(in srgb,var(--brand-primary,#0a5b69) 8%,transparent);align-items:flex-start}
.av-tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-primary,#0a5b69)}
.av-foot{font-size:11px;line-height:1.3;color:var(--ink-soft,#5c6f73);font-variant-numeric:tabular-nums}
.av-job{font-size:13px;font-weight:600}
.av-booked .av-btn{border-color:#8a6b3d;background:rgba(168,98,42,.1)}
.av-booked .av-tag{color:#8a5a2a}
.av-warn{font-size:11px;font-weight:700;color:#a8622a}
.av-clash .av-btn{border-color:#a8622a;box-shadow:inset 0 0 0 1px rgba(168,98,42,.35)}
.av-soon-tag{font-size:11px;color:var(--ink-soft,#7a8c8f)}
.av-soon .av-btn{opacity:.72}
.av-past{opacity:.4}
.av-settings{margin-top:18px}
.av-settings .field-row{gap:16px}

/* ================= Pre-consult on the job ================= */

.job-link-row{display:flex;gap:8px;align-items:center}
.job-link-row input{flex:1;min-width:0;font-size:13px}
.job-booked{font-size:17px;font-weight:600;margin:0 0 4px}
.job-timing{background:var(--surface-2,#faf8f4);border-left:3px solid var(--brand-primary,#0a5b69);
  padding:9px 12px;border-radius:0 8px 8px 0;margin:10px 0}
.job-consult-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.pc-badge{display:inline-block;border-radius:99px;padding:3px 11px;font-size:12px;font-weight:600}
.pc-yes{background:rgba(10,91,105,.14);color:var(--brand-primary,#0a5b69)}
.pc-maybe,.pc-show{background:rgba(168,98,42,.14);color:#8a5a2a}
.pc-no,.pc-blend,.pc-design{background:rgba(0,0,0,.06);color:var(--ink-soft,#5c6f73)}
.pc-quote{background:var(--surface-2,#faf8f4);border-radius:9px;padding:11px 14px;margin:10px 0 0;font-size:14.5px}

/* ================= Issuing, on the review screen ================= */
/* The consultant's own controls on a client-facing screen: marked as theirs, and set
   apart from everything the client is reading. */

.issue-bar{
  margin-top:26px;padding:20px 22px;border-radius:14px;
  border:1px solid var(--border,#e4ddd2);background:var(--surface-2,#faf8f4);
}
.issue-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:5px}
.issue-tag{
  font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:#8a5a2a;background:rgba(168,98,42,.13);border-radius:99px;padding:3px 9px;
}
.issue-head strong{font-size:16px}
.issue-discussed{margin-top:14px}
.issue-label{display:block;font-size:12.5px;font-weight:700;color:var(--text-dim,#5c6f73);margin-bottom:7px}
.issue-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:5px 16px}
.issue-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.issue-link{margin-top:14px}
.issue-link label{display:block;font-size:12.5px;font-weight:700;margin-bottom:5px}
.issue-downloads{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}

.job-version-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}

/* Emailing a signed quote, on the job page (views/job.js) */
.job-version-email{margin-top:8px}
.job-version-henley{display:grid;gap:6px;margin-top:8px;max-width:560px}
.job-version-henley[hidden]{display:none}
.job-version-henley textarea{width:100%;font:inherit}
.job-version-sent{margin:6px 0 0;padding-left:16px}
.builder-email-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}
.builder-email-row input{min-width:280px;flex:1}

/* Sortable dashboard headings (views/dashboard.js) */
.dash-table th.dash-sort{cursor:pointer;user-select:none;white-space:nowrap}
.dash-table th.dash-sort:hover{color:var(--text)}
.dash-table th.dash-sort.sorted{color:var(--text)}
.builder-rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:12px 0 4px}
.builder-rev-grid input{width:100%}

/* Plan guard banner (views/preparation.js) */
.plan-presence{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 14px;padding:10px 14px;
  border:1px solid #e0b84c;background:#fff7e0;border-radius:8px;color:#5a4400}
.plan-presence[hidden]{display:none}
.drafting-notes textarea{width:100%;font:inherit}

/* Consultant summary (views/brief.js) */
.brief-site{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--border);font-size:13px}
.brief-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:900px){.brief-grid{grid-template-columns:1fr}}
.brief-wide{grid-column:1/-1}
.brief-wide > .card{margin:0}
.brief-notes textarea{width:100%;font:inherit;line-height:1.5}
.brief-notes-print{display:none;white-space:pre-wrap}
/* The summary is the only page the app prints itself - portrait A4 (Ebony, 25 Sep 2026). */
@page{size:A4 portrait;margin:12mm}
@media print{
  .sidebar,.topbar,.brand,#brief-print,.brief-notes textarea,#brief-status{display:none!important}
  html,body,.app,.main{background:#fff!important}
  .app{display:block!important}
  .main{overflow:visible!important;padding:0!important}
  .brief-notes-print{display:block}
  .brief-grid{grid-template-columns:1fr 1fr}
  .card{break-inside:avoid;box-shadow:none!important;border:1px solid #ccc}
  .brief-notes-print:empty::after{content:'No consultant notes.';color:#777}
}
.cat-benefit{display:block;width:100%;margin-top:6px;font:inherit;font-size:12px;color:var(--text-dim);resize:vertical}

/* Standard plans on House types (views/admin.js) */
.ht-plans{white-space:nowrap}
.ht-plan{display:inline-block;margin:2px 4px 2px 0;padding:3px 8px;border:1px dashed var(--border);border-radius:6px;
  font-size:12px;cursor:pointer;color:var(--text-dim)}
.ht-plan.has{border-style:solid;color:var(--text);background:var(--surface-2,#eef3f2)}
/* Contract inclusions in the New job dialog (views/dashboard.js) */
.j-ci{border:1px solid var(--border);border-radius:8px;padding:10px 14px 12px;margin:10px 0}
.j-ci legend{font-weight:600;padding:0 6px}
.j-ci-checks{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center}

/* Drafting notes button + dialog (views/preparation.js) */
.dn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#eb7425;margin-left:7px;vertical-align:middle}
.dn-dot[hidden]{display:none}
dialog.drafting-notes{width:min(640px,92vw)}
dialog.drafting-notes textarea{width:100%;font:inherit}
/* Plans drop area in the New job dialog (views/dashboard.js) */
.j-drop{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;padding:14px;border:2px dashed var(--border);
  border-radius:8px;color:var(--text-dim);font-size:13px;transition:background .12s,border-color .12s}
.j-drop.over{border-color:var(--accent,#0a5b69);background:rgba(10,91,105,.06);color:var(--text)}
.j-plan-list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.j-plan-list li{display:flex;gap:8px;align-items:center;font-size:13px}
/* A button whose label sits on two lines (dashboard Send Booking Invite) */
.btn.btn-two-line{white-space:normal;line-height:1.15;text-align:center;padding-top:4px;padding-bottom:4px}

/* Tender inclusions - a floating, draggable, read-only panel over the plan (26 Sep 2026). */
.tender-panel{position:fixed;z-index:60;width:min(420px,92vw);max-height:70vh;display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.tender-panel[hidden]{display:none}
.tender-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 8px 14px;
  border-bottom:1px solid var(--border);cursor:move;user-select:none;touch-action:none;background:var(--accent-soft);
  border-radius:var(--radius) var(--radius) 0 0}
.tender-panel-body{overflow:auto;padding:10px 14px 14px}
.tender-panel-body h4{margin:10px 0 6px;font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}
.tender-panel-body h4:first-child{margin-top:0}
.tender-panel-text{white-space:pre-wrap;font-size:.9rem;line-height:1.45}

/* On hold, on the job overview (26 Sep 2026). */
.job-head-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.job-hold{margin-bottom:16px;border-left:4px solid var(--danger);background:var(--danger-soft)}
.job-hold[hidden]{display:none}
