/* ============================================================
   Proposal Template Builder
   Palette pulled from the brand mockup
   ============================================================ */
:root{
  --navy:#13384a;
  --navy-2:#0e2c3b;
  --teal:#2aa9a0;
  --teal-dark:#1c8c84;
  --teal-light:#5bc4bb;
  --teal-soft:#e6f5f3;
  --orange:#f0a83c;
  --ink:#1f3540;
  --muted:#6b7c85;
  --line:#d8e0e3;
  --bg:#e9eef0;
  --white:#ffffff;
  --shadow:0 6px 24px rgba(19,56,74,.18);
  --radius:10px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Segoe UI',-apple-system,Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

/* ---------------- App chrome ---------------- */
.app{display:flex;flex-direction:column;height:100vh;}
.toolbar{
  display:flex;align-items:center;gap:10px;
  padding:10px 16px;background:var(--navy);color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,.2);z-index:20;flex:0 0 auto;
}
.toolbar .brand{display:flex;flex-direction:column;line-height:1.05;margin-right:8px;}
.toolbar .brand b{font-size:15px;letter-spacing:.5px;}
.toolbar .brand span{font-size:10px;color:var(--teal-light);letter-spacing:1px;}
.toolbar .spacer{flex:1;}
.btn{
  border:none;border-radius:7px;padding:9px 14px;font-size:13px;font-weight:600;
  cursor:pointer;background:rgba(255,255,255,.12);color:#fff;transition:.15s;white-space:nowrap;
}
.btn:hover{background:rgba(255,255,255,.22);}
.btn.primary{background:var(--teal);}
.btn.primary:hover{background:var(--teal-dark);}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.3);}

.main{display:flex;flex:1;min-height:0;}
/* click-to-edit: preview elements that jump to an editor field */
#preview [data-edit]{cursor:pointer;}
.edit-flash{animation:editFlash 1.1s ease;border-radius:6px;}
@keyframes editFlash{0%,15%{box-shadow:0 0 0 3px var(--teal-soft);background:rgba(150,190,70,.20);}100%{box-shadow:none;background:transparent;}}

/* ---------------- Editor panel ---------------- */
.editor{
  width:34vw;min-width:460px;max-width:620px;flex:0 0 auto;background:#fbfcfc;overflow-y:auto;
  border-right:1px solid var(--line);padding:14px 14px 60px;
}
/* ---- Smart Sections: collapsible editor cards ---- */
.ed-card{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;
  box-shadow:0 1px 2px rgba(0,0,0,.03);overflow:hidden;}
.ed-head{display:flex;align-items:center;gap:9px;padding:13px 15px;cursor:pointer;user-select:none;}
.ed-head:hover{background:#fafbfb;}
.ed-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);flex:none;}
.ed-title{font-size:13px;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.5px;}
.ed-sum{margin-left:6px;font-size:11.5px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42%;}
.ed-chev{margin-left:auto;color:var(--muted);font-size:13px;transition:transform .18s;}
.ed-card.closed .ed-chev{transform:rotate(-90deg);}
.ed-body{padding:2px 15px 15px;}
.ed-card.closed .ed-body{display:none;}
/* the old h2 styling no longer applies inside cards; keep body fields tight */
.ed-body>.field:first-child,.ed-body>.hint:first-child,.ed-body>.row2:first-child{margin-top:2px;}
.ed-card.flash-card{outline:2px solid var(--lime);outline-offset:-1px;}
.editor h2{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--teal-dark);
  margin:22px 0 10px;border-bottom:2px solid var(--teal-soft);padding-bottom:6px;}
.editor h2:first-child{margin-top:0;}
.field{margin-bottom:11px;}
.field label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.4px;}
.field input,.field textarea,.field select{
  width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 9px;font-size:13px;font-family:inherit;color:var(--ink);
}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
/* light-blue tint so it's clear these are type-in fields */
.editor input:enabled:not([type=checkbox]):not([type=range]),
.editor textarea:enabled,
.editor select:enabled{background:#eaf4fc;}
.editor input:focus,.editor textarea:focus,.editor select:focus{background:#fff;}
.field textarea{resize:vertical;min-height:64px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;}
.hint{font-size:11px;color:var(--muted);margin:-4px 0 8px;}

/* Describe/confirm modal — one block per detected system */
.dm-block{border:1px solid rgba(0,0,0,.12);border-radius:8px;padding:10px 12px;margin:8px 0;background:rgba(0,0,0,.02);}
.dm-block-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.dm-del{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:2px 4px;border-radius:4px;}
.dm-del:hover{background:rgba(0,0,0,.08);color:#c0392b;}
/* AI-proposed line items preview inside a confirm block */
.dm-lines{margin-top:8px;border-top:1px solid var(--line);padding-top:8px;}
.dm-lines>summary{cursor:pointer;font-size:11px;font-weight:700;color:var(--teal-dark);list-style:none;user-select:none;}
.dm-lines>summary::-webkit-details-marker{display:none;}
.dm-lines-body{margin-top:6px;}
.dm-line{display:flex;align-items:flex-start;gap:8px;padding:4px 2px;border-bottom:1px solid var(--line);font-size:11.5px;line-height:1.4;color:var(--ink);}
.dm-line:last-of-type{border-bottom:none;}
.dm-line input{flex:0 0 auto;margin-top:2px;}
.dm-line-tx{flex:1;}
.dm-newtag{flex:0 0 auto;font-size:9px;background:#eef1ff;color:#3a53a4;border-radius:5px;padding:1px 6px;align-self:center;}
.dm-savenew{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--muted);}
/* Build entry — two clear options */
.build-opt{border:1px solid var(--line);border-radius:10px;padding:12px 13px;margin-bottom:10px;background:#fbfdfd;}
.build-opt-h{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--navy);margin-bottom:4px;}
.build-guide{display:block;width:100%;margin-top:8px;border:1px solid var(--line);border-radius:6px;padding:8px 9px;font-size:13px;font-family:inherit;line-height:1.4;color:var(--ink);background:#fff;resize:vertical;}
.build-guide:focus{outline:none;border-color:var(--teal);}
.build-num{width:19px;height:19px;border-radius:50%;background:var(--teal);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.build-desc{font-size:11px;color:var(--muted);line-height:1.45;margin-bottom:9px;}
.build-docs{font-size:11px;color:var(--teal-dark);margin-top:7px;line-height:1.4;word-break:break-word;}
.build-note{font-size:11px;color:#a8730c;margin-top:6px;}

/* scope cards in editor */
.scope-pick{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;overflow:hidden;}
.scope-pick-head{display:flex;align-items:center;gap:8px;padding:9px 10px;background:#f6f9fa;cursor:pointer;}
.scope-pick-head input[type=checkbox]{width:16px;height:16px;accent-color:var(--teal);}
.scope-pick-head .t{font-size:12px;font-weight:700;flex:1;color:var(--navy);}
.scope-pick-body{padding:10px;border-top:1px solid var(--line);display:none;}
.scope-pick.open .scope-pick-body{display:block;}
.scope-pick.checked{border-color:var(--teal);}
.scope-pick.checked .scope-pick-head{background:var(--teal-soft);}
.scope-pick.custom .scope-pick-head{background:var(--teal-soft);gap:8px;}
.cs-title{flex:1;min-width:0;border:1px solid var(--line);border-radius:5px;padding:6px 8px;font-size:12px;font-weight:700;color:var(--navy);font-family:inherit;}
.cs-title:focus{outline:none;border-color:var(--teal);}
.cs-rm{flex:0 0 auto;border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;width:26px;height:26px;cursor:pointer;font-weight:700;}
.cs-copy{flex:0 0 auto;border:none;background:var(--teal-soft);color:var(--teal-dark);border-radius:5px;width:26px;height:26px;cursor:pointer;font-weight:700;margin-left:auto;}
.cs-copy+.cs-rm{margin-left:6px;}
.bullet-preview{font-size:12px;color:var(--ink);background:#f6f9fa;border:1px solid var(--line);border-radius:5px;padding:6px 9px;margin-bottom:5px;line-height:1.3;}
.bullet-row .b-grip{flex:0 0 auto;align-self:center;cursor:grab;color:var(--muted);font-size:12px;user-select:none;line-height:1;}
/* scope line-item rows: calm by default, hairline divider between each, controls fade in on hover */
.bullets .bullet-row{align-items:flex-start;gap:6px;padding:6px 2px;margin-bottom:0;border-radius:0;border-bottom:1px solid var(--line);}
.bullets .bullet-row:last-child{border-bottom:none;}
.bullets .bullet-row .b-grip{align-self:flex-start;margin-top:6px;opacity:0;transition:opacity .12s;}
.bullets .bullet-row:hover .b-grip{opacity:.55;}
.bullets .bullet-row .b-del{align-self:flex-start;margin-top:3px;border:none;background:transparent;color:var(--muted);width:22px;height:24px;opacity:0;cursor:pointer;font-weight:700;transition:opacity .12s;}
.bullets .bullet-row:hover .b-del{opacity:.6;}
.bullets .bullet-row .b-del:hover{opacity:1;color:#c0392b;}
/* line-item library picker — collapsed to a button, opens on click */
.line-picker{margin-top:8px;}
.lp-toggle{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px dashed var(--line);background:none;border-radius:8px;padding:8px 11px;font-size:12px;font-weight:600;color:var(--teal-dark);cursor:pointer;}
.lp-toggle:hover{background:#f2f8f7;}
.lp-toggle .lp-caret{display:inline-block;transition:transform .12s;font-size:10px;}
.lp-toggle.open .lp-caret{transform:rotate(90deg);}
.lp-toggle .lp-count{margin-left:auto;color:var(--muted);font-weight:400;}
.lp-body{margin-top:8px;border:1px solid var(--line);border-radius:10px;background:#fbfdfd;overflow:hidden;}
.lp-body[hidden]{display:none;}
.lp-count{margin-left:auto;color:var(--muted);font-weight:400;}
.lp-list{padding:2px 8px;}
.lp-row{display:flex;align-items:flex-start;gap:9px;padding:6px 4px;border-bottom:1px solid var(--line);cursor:pointer;}
.lp-row:last-child{border-bottom:none;}
.lp-row:hover{background:#eef6f5;}
.lp-add{flex:0 0 auto;color:var(--teal-dark);font-weight:700;font-size:15px;line-height:1.35;}
.lp-tx{flex:1;font-size:12px;line-height:1.45;color:var(--muted);}
.lp-row:hover .lp-tx{color:var(--ink);}
.lp-tag{flex:0 0 auto;font-size:9px;background:#eef1ff;color:#3a53a4;border-radius:5px;padding:2px 6px;align-self:center;}
.lp-empty{padding:9px 4px;font-size:12px;color:var(--muted);}
.lp-custom{padding:9px 11px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.lp-input{flex:1 1 100%;min-height:20px;border:1px solid var(--line);border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.4;background:#fff;color:var(--ink);white-space:pre-wrap;word-break:break-word;cursor:text;}
.lp-input:empty:before{content:attr(data-ph);color:var(--muted);}
.lp-save{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px;}
.excl-input{flex:1 1 100%;height:32px;border:1px solid var(--line);border-radius:6px;padding:0 9px;font-size:12px;background:#fff;color:var(--ink);}
/* line-library manager rows */
.lib-row{display:flex;align-items:flex-start;gap:10px;padding:7px 2px;border-bottom:1px solid var(--line);}
.lib-row:last-child{border-bottom:none;}
.lib-def{flex:0 0 auto;margin-top:1px;}
.lib-tx{flex:1;font-size:12px;line-height:1.4;color:var(--ink);}
.lib-del{flex:0 0 auto;border:none;background:transparent;color:var(--muted);cursor:pointer;font-weight:700;width:24px;}
.lib-del:hover{color:#c0392b;}
/* Settings modal — collapsible cards */
.set-card{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;overflow:hidden;background:#fff;}
.set-card>summary{list-style:none;cursor:pointer;padding:11px 14px;font-size:13px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px;user-select:none;}
.set-card>summary::-webkit-details-marker{display:none;}
.set-card>summary::before{content:'▸';color:var(--muted);font-size:11px;display:inline-block;transition:transform .12s;}
.set-card[open]>summary::before{transform:rotate(90deg);}
.set-card[open]>summary{border-bottom:1px solid var(--line);}
.set-card:hover>summary{background:#f6f9fa;}
.set-card .set-body{padding:12px 14px;}
.set-sub{font-weight:400;color:var(--muted);font-size:11px;text-transform:none;}
/* in-use exclusion rows in the editor */
.excl-row{align-items:flex-start;gap:8px;padding:5px 2px;border-bottom:1px solid var(--line);}
.excl-row:last-child{border-bottom:none;}
.excl-row .excl-mark{flex:0 0 auto;color:var(--teal-dark);font-weight:700;margin-top:1px;}
.excl-row .excl-tx{flex:1;font-size:12px;line-height:1.4;color:var(--ink);}
.excl-row .b-del{flex:0 0 auto;border:none;background:transparent;color:var(--muted);width:22px;height:22px;opacity:0;cursor:pointer;font-weight:700;transition:opacity .12s;}
.excl-row:hover .b-del{opacity:.6;}
.excl-row .b-del:hover{opacity:1;color:#c0392b;}
.bullet-row.dragging{opacity:.45;}
.bullet-row.over{box-shadow:0 0 0 2px var(--teal-soft);border-radius:5px;}
.bullet-row .b-on{flex:0 0 auto;width:17px;height:17px;align-self:center;accent-color:var(--teal);cursor:pointer;}
/* line-item field: editable, one line normally, expands (and shows formatting) while editing */
.bullet-row .b-tx{flex:1;min-width:0;border:1px solid transparent;border-radius:6px;padding:5px 8px;font-size:12px;line-height:1.45;color:var(--ink);background:transparent;white-space:pre-wrap;word-break:break-word;cursor:text;}
.bullets .bullet-row:hover .b-tx{background:#f6f9fa;}
.bullet-row .b-tx.editing{background:#fff;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);position:relative;z-index:2;}
.bullet-row .b-tx:empty:before{content:attr(data-ph);color:var(--muted);}
/* rich-text field for selections + alternate description (grows to show all text) */
.rich-field{border:1px solid var(--line);border-radius:6px;padding:8px 9px;font-size:13px;line-height:1.35;color:var(--ink);background:#eaf4fc;min-height:34px;white-space:pre-wrap;word-break:break-word;cursor:text;}
.rich-field.editing{background:#fff;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
.rich-field:empty:before{content:attr(data-ph);color:var(--muted);}
/* right-click formatting menu */
.fmt-menu{position:fixed;z-index:9999;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.22);padding:4px;display:flex;align-items:center;gap:3px;}
.fmt-menu[hidden]{display:none;}
.fmt-menu button{border:none;background:none;min-width:26px;height:26px;border-radius:5px;cursor:pointer;font-size:13px;color:var(--navy);display:flex;align-items:center;justify-content:center;}
.fmt-menu button:hover{background:var(--teal-soft);}
.fmt-menu .fmt-c{width:18px;height:18px;min-width:0;border-radius:50%;border:1px solid rgba(0,0,0,.15);padding:0;}
.fmt-menu .fmt-sep{width:1px;height:20px;background:var(--line);margin:0 2px;}
.bullet-row.off .b-tx{opacity:.45;text-decoration:line-through;}
.bullet-row .b-del{flex:0 0 auto;}
.scope-pick-body input:disabled,.scope-pick-body select:disabled{background:#f4f6f7;color:var(--muted);cursor:default;}
.inline-toggle{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 10px;cursor:pointer;}
/* featured-projects picker */
.pp-avail{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:6px;}
.pp-thumb{padding:0;border:2px solid var(--line);border-radius:6px;overflow:hidden;cursor:pointer;background:#fff;height:52px;}
.pp-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pp-thumb:hover{border-color:var(--teal);}
.pp-thumb.used{opacity:.4;}
.pp-thumb:disabled{cursor:default;}
.pp-selected{display:flex;flex-direction:column;gap:6px;}
.pp-sel{display:flex;align-items:center;gap:8px;}
.pp-sel img{width:46px;height:34px;object-fit:cover;border-radius:5px;flex:0 0 auto;border:1px solid var(--line);}
.pp-sel .pp-cap{flex:1;min-width:0;}
.pp-sel .pp-rm{flex:0 0 auto;border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;width:26px;height:26px;cursor:pointer;font-weight:700;}
/* drag-to-reorder conditions */
.order-list{display:flex;flex-direction:column;gap:5px;margin-bottom:10px;}
.order-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#f6f9fa;font-size:12px;font-weight:700;color:var(--navy);cursor:grab;}
.order-item.dragging{opacity:.45;}
.order-item.over{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
.order-grip{color:var(--muted);cursor:grab;flex:0 0 auto;}
.order-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sel-toggles{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px;}
.sel-toggles .inline-toggle{margin:0;}
.sel-group{border:1px solid var(--line);border-radius:8px;padding:10px 12px 4px;margin-bottom:12px;background:#fbfdfe;}
.sel-group-h{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--teal-dark);margin-bottom:8px;}

/* ===== dGEN theme: lime accent is light, so use dark text on accent fills
   and charcoal for accent-as-text so everything stays legible ===== */
.page-footer{color:#171717;}
.page-footer .pf-page{color:#fff;}                 /* dark tab keeps white text */
.cv-ribbon,.cv-ribbon .lab,.cv-ribbon .amt,.cv-ribbon .words{color:#171717;}
.btn.primary,.btn.primary:hover,.modal .btn.primary,.modal .btn.primary:hover,.addbtn.img,.addbtn.img:hover{color:#171717;}
.tick{color:#2a2a2a;}
.editor h2,.sel-group-h,.brand-section-label{color:#2a2a2a;}
.addbtn{color:#5a5f10;border-color:#c3c96f;}

/* ===== Past Projects / Featured Projects page ===== */
.past-wrap{padding:0.55in 0.5in 0.6in;}
.past-h{font-size:26px;font-weight:800;color:var(--navy);letter-spacing:.5px;line-height:1;}
.past-sub{font-size:12px;color:var(--muted);margin-top:4px;}
.past-rule{height:3px;background:var(--teal);width:1.1in;margin:12px 0 20px;border-radius:2px;}
.past-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.3in;}
.past-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 4px 14px rgba(19,56,74,.10);}
.past-pic{height:3.0in;background:#e9eef0;overflow:hidden;}
.past-pic img{width:100%;height:100%;object-fit:cover;display:block;}
.past-cap{padding:8px 12px;font-size:11px;font-weight:700;color:var(--navy);line-height:1.25;}
.inline-toggle input{width:15px;height:15px;accent-color:var(--teal);}
.excl-check{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;margin-bottom:6px;font-size:12.5px;color:var(--ink);cursor:pointer;}
.excl-check input{width:15px;height:15px;accent-color:var(--teal);flex:0 0 auto;}
.excl-check span{flex:1;}
.excl-del{flex:0 0 auto;border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;width:22px;height:22px;cursor:pointer;font-weight:700;}
.bullet-row{display:flex;gap:6px;margin-bottom:5px;}
.bullet-row input{flex:1;}
.bullet-row button{flex:0 0 auto;border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;width:28px;cursor:pointer;font-weight:700;}
.addbtn{font-size:12px;color:var(--teal-dark);background:none;border:1px dashed var(--teal);border-radius:5px;padding:5px 8px;cursor:pointer;margin-top:4px;}
/* image add/edit buttons — filled so they stand out */
.addbtn.img{background:var(--teal);color:#fff;border:1px solid var(--teal);font-weight:700;padding:7px 12px;box-shadow:0 2px 6px rgba(42,169,160,.30);}
.addbtn.img:hover{background:var(--teal-dark);border-color:var(--teal-dark);}
.toggle-caret{font-size:11px;color:var(--muted);}

.vent-row{display:grid;grid-template-columns:1fr 90px;gap:8px;align-items:center;margin-bottom:6px;}

/* ---------------- Preview panel ---------------- */
.preview-wrap{flex:1;min-width:0;overflow:auto;background:var(--bg);padding:14px;display:flex;flex-direction:column;align-items:center;gap:18px;}

/* ============================================================
   PROPOSAL DOCUMENT — 4 letter-size pages
   ============================================================ */
.page{
  width:8.5in;height:11in;flex:0 0 auto;background:#fff;position:relative;overflow:hidden;
  box-shadow:var(--shadow);color:var(--ink);
  font-size:10.5px;line-height:1.32;
}
.page *{box-sizing:border-box;}

/* ---- shared bits ---- */
.tick{color:var(--teal);font-weight:700;margin-right:6px;}
.page-footer{
  position:absolute;left:0;right:0;bottom:0;height:0.34in;background:var(--teal);
  display:flex;align-items:center;color:#fff;font-size:8px;letter-spacing:.3px;padding:0 0.3in;
}
.page-footer .pf-left{flex:1;opacity:.95;}
.page-footer .pf-page{background:var(--navy-2);height:100%;display:flex;align-items:center;padding:0 14px;font-weight:700;}

/* ---------- PAGE 1 — COVER ---------- */
.cover-hero{height:2.35in;position:relative;background-size:cover;background-position:center;
  background-image:linear-gradient(120deg,#6a8aa0,#9fb6c4);}
.cover-logo{
  position:absolute;top:0.28in;left:0.32in;background:rgba(255,255,255,.86);
  border-radius:10px;padding:10px 16px;box-shadow:0 4px 14px rgba(0,0,0,.18);
  display:flex;align-items:center;gap:10px;backdrop-filter:blur(2px);
}
.cover-logo img{height:0.62in;display:block;}
.cover-logo .logo-fallback{display:flex;flex-direction:column;line-height:1;}
.cover-logo .logo-fallback b{color:var(--navy);font-size:15px;letter-spacing:.5px;}
.cover-logo .logo-fallback span{color:var(--teal-dark);font-size:8px;letter-spacing:1px;font-style:italic;}

.cover-banner{
  position:absolute;top:1.55in;left:0.32in;background:var(--navy);color:#fff;
  padding:14px 26px 14px 18px;border-radius:2px;
  clip-path:polygon(0 0,100% 0,90% 100%,0 100%);min-width:2.7in;
}
.cover-banner .l1{font-size:26px;font-weight:800;letter-spacing:1px;line-height:1;}
.cover-banner .l2{font-size:26px;font-weight:800;letter-spacing:1px;color:var(--teal-light);line-height:1.05;}

.cover-body{display:grid;grid-template-columns:1fr 2.9in;gap:0;padding:0.55in 0.32in 0.2in;}
.cover-left{padding-right:18px;}
.cover-addr{font-size:15px;font-weight:800;color:var(--navy);letter-spacing:.5px;margin:6px 0 18px;}
.cover-section-h{color:var(--teal-dark);font-size:10px;font-weight:800;letter-spacing:1px;margin-bottom:4px;}
.cover-prepared{font-size:11px;color:var(--ink);line-height:1.5;margin-bottom:16px;}
.cover-prepared b{color:var(--navy);}
.cover-date{font-size:11px;}

.cover-right{position:relative;}
.invest-box{background:var(--teal);color:#fff;border-radius:10px;padding:16px 18px;text-align:center;box-shadow:var(--shadow);}
.invest-box .lab{font-size:11px;font-weight:700;letter-spacing:1.5px;opacity:.95;}
.invest-box .amt{font-size:33px;font-weight:800;line-height:1.1;margin:2px 0;}
.invest-box .words{font-size:9.5px;opacity:.92;font-style:italic;}
.pay-h{text-align:center;color:var(--teal-dark);font-size:11px;font-weight:800;letter-spacing:1px;margin:20px 0 12px;}
.pay-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;text-align:center;}
.pay-cell .ic{width:38px;height:38px;border-radius:50%;border:2px solid var(--teal);color:var(--teal-dark);
  display:flex;align-items:center;justify-content:center;margin:0 auto 6px;font-size:18px;}
.pay-cell .pct{font-size:17px;font-weight:800;color:var(--navy);}
.pay-cell .desc{font-size:8px;color:var(--muted);line-height:1.25;margin-top:2px;}

/* ---------- PAGE 2 — SCOPE OF WORK ---------- */
.sheet{padding:0.4in 0.36in 0.55in;height:100%;}
.sow-h{color:var(--navy);font-size:22px;font-weight:800;letter-spacing:.5px;line-height:1;}
.sow-sub{color:var(--teal);font-size:13px;font-weight:800;letter-spacing:1px;margin-top:2px;}
.sow-rule{height:2px;background:var(--teal-soft);margin:8px 0 14px;}

.scope-card{display:grid;grid-template-columns:1.55in 1fr 0.95in;gap:12px;margin-bottom:14px;align-items:start;}
.scope-card .pic{width:100%;height:1.15in;border-radius:6px;background:#cdd8dd center/cover no-repeat;}
.scope-card .body .ttl{color:var(--navy);font-size:12px;font-weight:800;letter-spacing:.4px;margin-bottom:6px;text-transform:uppercase;}
.scope-card .body ul{list-style:none;margin:0;padding:0;}
.scope-card .body li{font-size:calc(9px * var(--sscale,1));line-height:1.45;margin-bottom:2px;padding-left:14px;position:relative;}
.scope-card .body .ttl{font-size:calc(12px * var(--sscale,1));}
.scope-card .body li:before{content:"\2713";position:absolute;left:0;color:var(--teal);font-weight:700;font-size:8px;}
.scope-meta{display:flex;flex-direction:column;gap:8px;}
/* grouped card: two same-material areas sharing one image, line-broken bodies */
.scope-card.grouped{grid-template-columns:1.55in 1fr;align-items:stretch;}
.scope-card.grouped .pic{height:100%;min-height:1.15in;}
.scope-card.grouped .grp{min-width:0;}
.scope-card.grouped .grp-row{display:grid;grid-template-columns:1fr 0.95in;gap:12px;align-items:start;}
/* investment / cost-split breakdown table */
.cost-split{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:8px;max-width:3.4in;}
.cost-split .cb-h{font-size:9px;font-weight:800;letter-spacing:1px;color:var(--navy);margin-bottom:5px;}
.cost-split .cb-row{display:flex;justify-content:space-between;gap:14px;font-size:9.5px;padding:2px 0;}
.cost-split .cb-row .cb-p{font-weight:700;}
.cost-split .cb-total{border-top:1px solid var(--line);margin-top:3px;padding-top:4px;font-weight:800;color:var(--navy);}
/* per-scope price line shown directly under a scope (perScope breakout mode) */
.scope-price{display:inline-flex;align-items:baseline;gap:10px;margin-top:6px;padding:4px 12px;
  border-radius:6px;background:var(--teal-soft);border:1px solid var(--teal);}
.scope-price .sp-l{font-size:calc(9px * var(--sscale,1));font-weight:800;letter-spacing:.6px;
  text-transform:uppercase;color:var(--navy);}
.scope-price .sp-p{font-size:calc(12px * var(--sscale,1));font-weight:800;color:var(--navy);}
/* cost-split editor rows */
.cs-row{display:flex;gap:6px;margin-bottom:5px;}
.cs-row .cs-label{flex:1;}
.cs-row .cs-price{width:120px;flex:0 0 auto;}
.cs-row .cs-rm{flex:0 0 auto;border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;width:28px;cursor:pointer;font-weight:700;}
.meta-box{border:1.5px solid var(--line);border-radius:6px;text-align:center;padding:7px 4px;}
.meta-box .k{font-size:7.5px;letter-spacing:1px;color:var(--muted);font-weight:700;}
.meta-box .v{font-size:16px;font-weight:800;color:var(--navy);line-height:1.1;}

.excl{position:absolute;left:0.36in;right:0.36in;bottom:0.55in;background:#f3f7f8;border-radius:8px;padding:10px 12px;}
.excl .eh{font-size:9px;font-weight:800;letter-spacing:1px;color:var(--navy);margin-bottom:5px;}
.excl .eh small{color:var(--muted);font-weight:600;}
.excl-grid{display:flex;justify-content:space-between;gap:4px;flex-wrap:nowrap;}
.excl-item{text-align:center;flex:1;}
.excl-item .dot{width:26px;height:26px;border-radius:50%;background:#fff;border:1px solid var(--line);margin:0 auto 4px;display:flex;align-items:center;justify-content:center;color:var(--teal-dark);font-size:12px;}
.excl-item .nm{font-size:7px;color:var(--ink);line-height:1.1;}
.excl-note{text-align:center;font-size:7.5px;color:var(--muted);margin-top:4px;font-style:italic;}

/* ---------- PAGE 3 — SELECTIONS ---------- */
.sel-grid{display:grid;grid-template-columns:1fr 2.65in;align-items:start;}
.sel-left{padding:0.34in 0.32in;}
/* navy profile card is now a contained block in the top-right, not a full-height stripe */
.sel-right{background:var(--navy);color:#fff;padding:13px 13px;margin:0.34in 0.3in 0 0.14in;border-radius:10px;align-self:start;}
.sel-h{color:var(--navy);font-size:22px;font-weight:800;letter-spacing:.5px;}
.sel-rule{height:2px;background:var(--teal-soft);margin:8px 0 16px;}
.sel-block{margin-bottom:12px;}
.sel-block .bh{display:flex;align-items:center;gap:8px;color:var(--teal-dark);font-size:12px;font-weight:800;letter-spacing:.6px;margin-bottom:6px;text-transform:uppercase;}
.sel-line{font-size:calc(10px * var(--sscale,1));margin-bottom:5px;}
.sel-line .k{color:var(--muted);display:inline-block;min-width:1.5in;}
.sel-line .fill{display:inline-block;border-bottom:1px solid var(--line);min-width:1.4in;}
.sel-line.strong .v{font-weight:800;color:var(--navy);}
.vent-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;}
.vent-card{border:1.5px solid var(--line);border-radius:8px;padding:10px;text-align:center;}
.vent-card .vn{font-size:9px;font-weight:800;color:var(--navy);}
.vent-card .vp{font-size:13px;font-weight:800;color:var(--teal-dark);margin-top:2px;}
.vent-card .vpic{height:0.6in;background:#eef3f4;border-radius:5px;margin-top:8px;}
.sel-note{font-size:8px;color:var(--muted);margin-top:14px;line-height:1.4;}

.profile-intro{font-size:9px;color:#cfe0e2;line-height:1.5;margin-bottom:16px;}
.profile-intro b{color:#fff;}
/* compact 2x2 profile options card */
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.profile-mini{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:7px;padding:6px;}
.profile-mini.rec{border-color:var(--teal-light);box-shadow:0 0 0 1px var(--teal-light) inset;}
.pm-pic{background:#fff;border-radius:5px;height:0.6in;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:4px;}
.pm-pic img,.pm-pic svg{width:100%;height:100%;object-fit:contain;display:block;}
.pm-label{font-size:9px;font-weight:700;letter-spacing:.4px;margin-top:5px;text-align:center;}
.pm-label small{display:block;color:var(--teal-light);font-size:7px;margin-top:1px;letter-spacing:.3px;}
.profile-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.profile-row .chk{width:14px;height:14px;border:1.5px solid #fff;border-radius:3px;flex:0 0 auto;}
.profile-row .pl{font-size:10px;font-weight:700;letter-spacing:.5px;}
.profile-row .pl small{display:block;color:var(--teal-light);font-size:8px;font-weight:700;}
.profile-row .panelpic{flex:1;height:0.5in;border-radius:4px;
  background:repeating-linear-gradient(90deg,#7f96a4 0 6px,#9fb2bd 6px 12px);}

/* ---------- PAGE 4 — TERMS ---------- */
.terms-wrap{padding:0.4in 0.4in 0.6in;}
.terms-h{color:var(--navy);font-size:22px;font-weight:800;letter-spacing:.5px;}
.terms-rule{height:2px;background:var(--teal-soft);margin:8px 0 16px;}
.term{display:flex;gap:10px;margin-bottom:11px;}
.term .num{flex:0 0 auto;width:18px;height:18px;border-radius:50%;background:var(--teal);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.term .tx .tt{color:var(--teal-dark);font-size:10px;font-weight:800;letter-spacing:.5px;}
.term .tx .tb{font-size:9.5px;color:var(--ink);line-height:1.4;}
.accept-h{color:var(--teal-dark);font-size:12px;font-weight:800;letter-spacing:.6px;margin:18px 0 6px;}
.accept-body{font-size:9.5px;line-height:1.5;margin-bottom:24px;}
.sig-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:18px;}
.sig{font-size:9px;color:var(--muted);}
.sig .line{border-bottom:1px solid var(--ink);height:22px;margin-bottom:3px;}
.sig .x{font-weight:800;color:var(--ink);}

/* ---------------- empty state ---------------- */
.empty{color:var(--muted);text-align:center;margin-top:80px;font-size:14px;}

/* ============================================================
   PRINT — only the proposal pages, true letter size
   ============================================================ */
@media print{
  @page{size:8.5in 11in;margin:0;}
  /* force backgrounds, colors, gradients & photos to print (PDF) */
  html,body,.page,.page *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
    color-adjust:exact !important;
  }
  body{background:#fff;}
  .toolbar,.editor,.no-print{display:none !important;}
  .main{display:block;}
  .preview-wrap{padding:0;margin:0;gap:0;display:block;overflow:visible;background:#fff;}
  .page{box-shadow:none;margin:0;page-break-after:always;break-after:page;}
  .page:last-child{page-break-after:auto;}
  .page img,.page svg{break-inside:avoid;}
}

/* ============================================================
   IMAGERY & GRAPHICS (photos with SVG fallback + vector art)
   ============================================================ */
.cover-hero{overflow:hidden;}
.cover-hero svg{position:absolute;inset:0;width:100%;height:100%;}
.cover-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

.sheet{position:relative;}
.sow-roofline{position:absolute;top:0.34in;right:0.34in;width:1.3in;line-height:0;pointer-events:none;}
.sow-roofline svg{width:100%;height:auto;}

.scope-card .pic{position:relative;overflow:hidden;}
.scope-card .pic svg{position:absolute;inset:0;width:100%;height:100%;}
.scope-card .pic .pic-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

.panelpic{overflow:hidden;border-radius:4px;background:none;}
.panelpic svg{display:block;width:100%;height:100%;}

.vent-card .vpic{overflow:hidden;display:flex;align-items:center;justify-content:center;background:#eef3f4;}
.vent-card .vpic svg{width:92%;height:92%;}

.excl-item .dot{color:var(--teal-dark);}
.excl-item .dot svg{display:block;}

/* ============================================================
   PAGE 1 — COVER REDESIGN (hero-driven "wow" layout)
   ============================================================ */
.cover-page{overflow:hidden;}
.cv-hero{position:absolute;top:0;left:0;right:0;height:6.4in;overflow:hidden;}
.cv-hero svg{position:absolute;inset:0;width:100%;height:100%;}
.cv-hero .cover-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cv-hero-tint{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(19,56,74,.10),rgba(19,56,74,0) 35%);}

.cv-topbar{position:absolute;top:0;left:0;right:0;height:1.95in;z-index:3;
  display:flex;align-items:center;padding:0 0.5in;background:none;}
.cv-logo-img{height:1.72in;display:block;}
.cv-topbar .logo-fallback{display:inline-flex;flex-direction:column;line-height:1.05;
  background:rgba(255,255,255,.86);padding:12px 20px;border-radius:13px;
  box-shadow:0 6px 20px rgba(0,0,0,.22);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);}
.cv-topbar .logo-fallback b{font-size:25px;color:var(--navy);letter-spacing:.5px;}
.cv-topbar .logo-fallback span{font-size:11px;color:var(--teal-dark);font-style:italic;letter-spacing:1px;margin-top:3px;}

.cv-banner{position:absolute;top:4.3in;left:0;width:4.75in;z-index:4;
  background:var(--navy);color:#fff;padding:0.32in 0.95in 0.36in 0.5in;
  clip-path:polygon(0 0,82% 0,100% 100%,0 100%);box-shadow:0 12px 28px rgba(0,0,0,.24);}
.cv-banner .l1{font-size:46px;font-weight:800;line-height:.95;letter-spacing:1px;}
.cv-banner .l2{font-size:46px;font-weight:800;line-height:.98;letter-spacing:1px;color:var(--teal-light);}
.cv-banner .addr{margin-top:15px;line-height:1.25;}
.cv-banner .addr-name{display:block;font-size:16px;font-weight:800;letter-spacing:.5px;}
.cv-banner .addr-sub{display:block;font-size:11px;font-weight:600;letter-spacing:.4px;opacity:.85;margin-top:3px;}

.cv-ribbon{position:absolute;top:4.2in;right:0;width:4.15in;z-index:5;
  background:var(--teal);color:#fff;text-align:center;padding:0.2in 0.66in;
  box-shadow:0 10px 24px rgba(19,56,74,.28);
  clip-path:polygon(6% 0,100% 0,94% 50%,100% 100%,6% 100%,0 50%);}
.cv-ribbon .lab{font-size:12.5px;font-weight:700;letter-spacing:2px;}
.cv-ribbon .amt{font-size:42px;font-weight:800;line-height:1.06;}
.cv-ribbon .words{font-size:10.5px;font-style:italic;opacity:.96;line-height:1.25;}

.cv-lower{position:absolute;left:0;right:0;top:7.05in;bottom:0.5in;z-index:2;
  display:grid;grid-template-columns:1.05fr 1fr;gap:0.4in;padding:0 0.5in;}
.cv-lower .cover-section-h{font-size:12.5px;}
/* cover highlights panel (fills the old payment-schedule space) */
.cv-lower .cv-highlights{border-left:1px solid var(--line);padding-left:0.5in;position:relative;overflow:hidden;}
.cvh-bg{position:absolute;top:0;right:0;bottom:0;left:0.5in;opacity:.07;pointer-events:none;}
.cvh-bg svg{width:100%;height:100%;display:block;}
.cvh-inner{position:relative;z-index:1;}
.cvh-h{color:var(--teal-dark);font-size:12.5px;font-weight:800;letter-spacing:1px;margin-bottom:14px;}
.cvh-item{display:flex;align-items:flex-start;gap:9px;font-size:13px;font-weight:600;color:var(--navy);line-height:1.3;margin-bottom:13px;}
.cvh-chk{flex:0 0 auto;color:var(--teal);}
.cvh-chk svg{width:19px;height:19px;display:block;}
/* alternates sit in the top zone, right under the selections grid */
.sel-grid + .alts{margin-top:14px;}
/* bottom zone: exclusions + signature pinned to the lower half of the page */
.sel-bottom{position:absolute;left:0.4in;right:0.4in;bottom:0.5in;background:#fff;padding-top:4px;}
.sel-bottom .excl{position:static;left:auto;right:auto;bottom:auto;background:#f3f7f8;border-radius:8px;padding:8px 12px;margin-bottom:10px;}
.excl-cols{column-count:4;column-gap:13px;}
.excl-li{display:flex;gap:5px;align-items:flex-start;font-size:9px;color:var(--ink);line-height:1.25;margin-bottom:3px;break-inside:avoid;-webkit-column-break-inside:avoid;}
.excl-li .excl-x{color:var(--teal-dark);font-weight:800;flex:0 0 auto;line-height:1.3;}
.cv-lower .cover-prepared{font-size:14px;line-height:1.6;margin-bottom:20px;}
.cv-lower .cover-date{font-size:14px;}
.cv-pay .pay-h{margin-top:0;text-align:center;font-size:13px;}
.cv-pay .pay-cell .ic{width:56px;height:56px;}
.cv-pay .pay-cell .pct{font-size:23px;}
.cv-pay .pay-cell .desc{font-size:10px;line-height:1.3;}

/* ---- isometric price cube (cover) ---- */
.cv-cube{position:absolute;top:4.95in;right:0.3in;width:4.0in;height:1.55in;z-index:5;
  filter:drop-shadow(0 12px 22px rgba(19,56,74,.30));}
.cv-cube svg{position:absolute;inset:0;width:100%;height:100%;}
.cube-text{position:absolute;left:0;width:94.6%;top:12%;height:86%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;padding:0 16px;}
.cube-text .lab{font-size:12.5px;font-weight:700;letter-spacing:2px;}
.cube-text .amt{font-size:42px;font-weight:800;line-height:1.04;margin:1px 0 2px;}
.cube-text .words{font-size:10.5px;font-style:italic;opacity:.96;line-height:1.25;}

/* bigger payment icons (scale the inline SVG inside the circle) */
.cv-pay .pay-cell .ic svg{width:28px;height:28px;}


/* ---- flat chamfered investment box (cover) ---- */
.cv-pricebox{position:absolute;top:4.8in;right:0.32in;width:4.15in;z-index:5;overflow:hidden;
  background:linear-gradient(150deg,#36b8ae,#1f988f);color:#fff;text-align:center;
  padding:0.3in 0.6in 0.32in;
  clip-path:polygon(36px 0,100% 0,100% calc(100% - 36px),calc(100% - 36px) 100%,0 100%,0 36px);
  filter:drop-shadow(0 12px 22px rgba(19,56,74,.30));}
.cv-pricebox .lab{font-size:13px;font-weight:700;letter-spacing:2px;}
.cv-pricebox .amt{font-size:45px;font-weight:800;line-height:1.04;margin:2px 0 5px;}
.cv-pricebox .words{font-size:12px;font-style:italic;line-height:1.35;opacity:.96;}

/* photo position sliders in the editor */
.posrow{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:5px;align-items:center;}
.posrow span{font-size:12px;color:var(--muted);}
.posrow input[type=range]{width:100%;accent-color:var(--teal);padding:0;}


/* triangle pattern overlay on the investment box (fades toward the middle) */
.cv-pricebox .box-pattern{position:absolute;inset:0;opacity:.16;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 62%);
  mask-image:linear-gradient(to bottom, rgba(0,0,0,1) 0%, rgba(0,0,0,0) 62%);}
.cv-pricebox .box-pattern svg{width:100%;height:100%;display:block;}
.cv-pricebox .lab,.cv-pricebox .amt,.cv-pricebox .words{position:relative;z-index:1;}

/* ============================================================
   Page-1 font (matches the mockup) + 3-D staggered investment box
   ============================================================ */
.page{font-family:'Montserrat','Segoe UI',-apple-system,Roboto,Helvetica,Arial,sans-serif;}

.cv-pricebox{position:absolute;top:5.05in;right:0.3in;width:4.2in;height:1.82in;z-index:5;
  clip-path:none;background:none;padding:0;overflow:visible;
  filter:drop-shadow(0 14px 24px rgba(19,56,74,.32));}
.cv-pricebox svg{position:absolute;inset:0;width:100%;height:100%;display:block;}
.cv-pricebox .pb-text{position:absolute;left:0;width:93.5%;top:12%;height:88%;z-index:1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;padding:0 20px;}
.cv-pricebox .pb-text .lab{font-size:13px;font-weight:700;letter-spacing:2px;}
.cv-pricebox .pb-text .amt{font-size:44px;font-weight:800;line-height:1.04;margin:2px 0 4px;}
.cv-pricebox .pb-text .words{font-size:11.5px;font-style:italic;line-height:1.3;opacity:.96;}


/* divider between Prepared For and Payment Schedule */
.cv-lower{gap:0.5in;}
.cv-lower .cv-pay{border-left:1px solid var(--line);padding-left:0.5in;}

/* ============================================================
   Footer with faceted gradient + readable text
   ============================================================ */
.page-footer{height:0.4in;background:none;overflow:hidden;padding:0 0 0 0.3in;}
.page-footer .pf-bg{position:absolute;inset:0;z-index:0;}
.page-footer .pf-bg svg{width:100%;height:100%;display:block;}
.page-footer .pf-left{position:relative;z-index:1;flex:1;font-size:9px;font-weight:600;
  letter-spacing:.4px;opacity:1;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.18);}
.page-footer .pf-page{position:relative;z-index:1;background:var(--navy-2);height:100%;
  display:flex;align-items:center;padding:0 16px;font-weight:700;font-size:9.5px;letter-spacing:.6px;}

/* payment grid lays out any number of stages */
.pay-grid{display:flex;justify-content:space-around;gap:8px;}
.pay-grid .pay-cell{flex:1;}

/* payment schedule editor rows (add / remove stages) */
.pay-edit-row{display:grid;grid-template-columns:74px 1fr 26px;gap:8px;align-items:end;margin-bottom:8px;}
.pay-edit-row .field{margin-bottom:0;}
.pay-edit-row .rm{border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;height:34px;cursor:pointer;font-weight:700;}

/* divider line after each scope (page 2) */
.scope-card{margin-bottom:0;}
.scope-div{height:1px;background:var(--teal-soft);margin:11px 0;}

/* scope photos fill the full height of their scope block, centered */
.scope-card{align-items:stretch;}
.scope-card .pic{height:100%;min-height:1.25in;}

/* photo disclaimer (page 2) */
.photo-note{font-size:8px;font-style:italic;color:var(--muted);text-align:center;margin-top:5px;}

/* plans reference line + bottom stack (page 2) */
.sheet-bottom{position:absolute;left:0.36in;right:0.36in;bottom:0.5in;}
.sheet-bottom .excl{position:static;left:auto;right:auto;bottom:auto;}
.plans-ref{font-size:9px;font-weight:600;color:var(--navy);text-align:center;
  letter-spacing:.3px;margin-bottom:10px;}
.validity-note{font-size:8px;font-style:italic;color:var(--muted);text-align:center;
  letter-spacing:.2px;margin-top:-4px;margin-bottom:8px;}

/* selections page without the metal profile card */
.sel-grid.no-profiles{grid-template-columns:1fr;}

/* remove the legacy striped background behind panel renders (specificity fix) */
.profile-row .panelpic{background:none;}

/* real panel-profile photos sit on a clean white chip */
.profile-row .panelpic.has-photo{background:#fff;border-radius:5px;padding:3px;}
.profile-row .panelpic.has-photo img{width:100%;height:100%;object-fit:contain;display:block;}

/* page-3 profile rows: uniform panel size + empty white check boxes */
.profile-row{align-items:center;}
.profile-row .pl{flex:1;}
.profile-row .chk{background:#fff;border:1px solid #cdd8dd;width:15px;height:15px;border-radius:3px;}
.profile-row .panelpic{flex:0 0 1.6in;width:1.6in;height:0.72in;}
.profile-row .panelpic.has-photo{display:flex;align-items:center;justify-content:center;}
.profile-row .panelpic.has-photo img{width:100%;height:100%;object-fit:contain;}

/* ===== page-3 refinements ===== */
/* profile image stacked under checkbox + label */
.profile-row{display:block;margin-bottom:13px;}
.profile-row .profile-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.profile-row .profile-head .chk{flex:0 0 auto;}
.profile-row .pl{flex:1;font-size:10.5px;font-weight:700;letter-spacing:.5px;}
.profile-row .pl small{display:inline-block;margin-left:7px;color:var(--teal-light);font-size:8px;}
.profile-row .panelpic{width:100%;height:0.95in;flex:none;background:#fff;border-radius:5px;padding:4px;}
.profile-row .panelpic.has-photo{display:flex;align-items:center;justify-content:center;}
.profile-row .panelpic img,.profile-row .panelpic svg{width:100%;height:100%;object-fit:contain;display:block;}

/* longer write-in lines for color selections */
.sel-line{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;line-height:1.35;}
.sel-line .k{flex:0 0 1.5in;color:var(--muted);}
.sel-line .v{flex:1;min-width:0;}
.sel-line.strong .v{flex:1;font-weight:800;color:var(--navy);}
.sel-line .fill{flex:1;min-width:0;align-self:stretch;border-bottom:1px solid var(--line);min-height:1.05em;}

/* vent product photo slot (no inaccurate drawing) */
.vent-card .vpic{height:0.7in;background:#eef3f4;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:5px;}
.vent-card .vpic img{width:100%;height:100%;object-fit:contain;}
.vent-card .vpic .vpic-ph{font-size:7.5px;color:var(--muted);font-style:italic;letter-spacing:.3px;}
/* editor: vent photo controls */
.vent-edit{margin-bottom:12px;}
.vent-photo{display:flex;gap:6px;align-items:center;margin-top:5px;}
.vent-photo .vurl{flex:1;}
.vent-photo .vrm{border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;width:30px;height:32px;cursor:pointer;font-weight:700;flex:0 0 auto;}

/* ===== Alternates & Options (page 2) ===== */
.alts{margin:16px 0.36in 0;}   /* flows below the selections grid, aligned to page margins */
.alts-h{font-size:22px;font-weight:800;letter-spacing:.5px;color:var(--navy);margin-bottom:8px;border-bottom:2px solid var(--teal-soft);padding-bottom:6px;}
.alt-row{display:flex;align-items:baseline;gap:8px;font-size:calc(10px * var(--sscale,1));line-height:1.3;margin-bottom:8px;}
.alt-init{flex:0 0 0.55in;border-bottom:1px solid var(--ink);height:1.1em;}
.alt-body{flex:0 1 auto;}
.alt-body b{color:var(--navy);}
.alt-dots{flex:1 1 12px;min-width:12px;border-bottom:1px dotted var(--muted);transform:translateY(-2px);}
.alt-price{flex:0 0 auto;font-weight:800;white-space:nowrap;}
.alt-price.add{color:var(--teal-dark);}
.alt-price.deduct{color:#b3402f;}

/* editor: alternate rows */
.alt-edit{border:1px solid var(--line);border-radius:8px;padding:9px;margin-bottom:9px;}
.alt-edit-top{display:flex;gap:6px;margin-bottom:6px;}
.alt-edit-top .atype{flex:0 0 92px;}
.alt-edit-top .aprice{flex:1;}
.alt-edit-top .atag{flex:0 0 auto;font-size:11px;font-weight:800;letter-spacing:.5px;padding:6px 10px;border-radius:6px;align-self:stretch;display:flex;align-items:center;}
.atag.add{background:#eaf6ea;color:#2e7d32;}
.atag.deduct{background:#fdeaea;color:#c0392b;}
.alt-edit-top .arm{flex:0 0 30px;border:none;background:#f0a0a0;color:#7a1f1f;border-radius:5px;cursor:pointer;font-weight:700;}
.alt-edit .adesc{width:100%;min-height:46px;}

/* denser terms list for the full conditions of proposal */
.term{margin-bottom:8px;}
.term .tb{font-size:9px;line-height:1.36;}
.term .tt{font-size:9.5px;}
.terms-wrap{padding-bottom:0.5in;}

/* ===== single-page fine-print Terms & Conditions ===== */
.terms-cols{column-count:2;column-gap:0.34in;font-size:7.5px;margin-top:4px;}
.terms-cols .term{display:flex;gap:6px;margin-bottom:6px;break-inside:avoid;-webkit-column-break-inside:avoid;}
.terms-cols .term .num{flex:0 0 13px;width:13px;height:13px;border-radius:50%;background:var(--teal);color:#fff;
  font-size:8px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.terms-cols .term .tt{font-size:1.18em;font-weight:800;color:var(--teal-dark);letter-spacing:.3px;line-height:1.2;}
.terms-cols .term .tb{font-size:1em;line-height:1.3;color:var(--ink);}
.terms-page .accept-h{margin-top:12px;}

/* logo sits directly on the cover photo — no filter halo (a drop-shadow filter
   rasterizes into a visible rectangular box when exported to PDF). */
.cv-logo-img{filter:none;}

/* adjustable white plate behind the cover logo */
.cv-logobox{display:inline-flex;align-items:center;padding:0.12in 0.2in;border-radius:12px;}
.cv-logobox .cv-logo-img{filter:none;}

/* logo plate sits behind only the lower (text) portion of the logo */
.cv-logobox{display:inline-block;position:relative;padding:0;background:none;}
.cv-logobox .cv-logo-img{position:relative;z-index:1;display:block;filter:none;}
.cv-logo-plate{position:absolute;left:2%;right:2%;bottom:0;height:47%;border-radius:9px;z-index:0;}

/* tagline to the right of the cover logo — dark text, white outline */
.cv-topbar{gap:0.3in;}

.cv-tagline{font-family:'Montserrat','Segoe UI',sans-serif;font-weight:800;font-style:italic;
  font-size:0.33in;line-height:1.12;color:var(--navy);max-width:3.2in;letter-spacing:.3px;
  text-shadow:-1.5px -1.5px 0 #fff,1.5px -1.5px 0 #fff,-1.5px 1.5px 0 #fff,1.5px 1.5px 0 #fff,0 -1.5px 0 #fff,0 1.5px 0 #fff,-1.5px 0 0 #fff,1.5px 0 0 #fff;}
.cv-logo-plate{filter:blur(0.4px);}

/* no filter on the cover logo — drop-shadow rasterizes as a white box in PDF export */
.cv-logobox .cv-logo-img{filter:none;}
.cv-tagline{white-space:nowrap;max-width:none;font-size:0.3in;}

/* ============================================================
   Body/paragraph copy uses a neutral, highly-legible sans so
   Montserrat's straight lowercase "l" stops rendering dark &
   blocky in PDF. Brand headings stay Montserrat (see .page).
   ============================================================ */
.scope-card .body li,
.pay-cell .desc,
.excl-item, .excl-note, .photo-note,
.sel-line, .sel-line .fill, .fill, .sel-note,
.profile-intro,
.term .tb, .terms-cols .term .tb,
.accept-body, .accept-body .line,
.alt-body{
  font-family:'Segoe UI',-apple-system,Roboto,Helvetica,Arial,sans-serif;
}
.vent-disclaimer{
  font-family:'Segoe UI',-apple-system,Roboto,Helvetica,Arial,sans-serif;
  font-size:7.5px;font-style:italic;color:var(--muted);line-height:1.3;margin-top:5px;
}

/* ---------------- Current proposal name + Open manager modal ---------------- */
.toolbar .cur-name{
  font-size:12px;color:var(--teal-light);background:rgba(255,255,255,.08);
  padding:5px 11px;border-radius:14px;max-width:280px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;
}
.btn.sm{padding:6px 10px;font-size:12px;border-radius:6px;}
.btn.danger{background:rgba(240,120,120,.18);color:#ffd7d7;}
.btn.danger:hover{background:rgba(240,90,90,.35);color:#fff;}

.modal-back{
  position:fixed;inset:0;background:rgba(12,28,38,.55);z-index:200;
  display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px;
}
.modal-back[hidden]{display:none;}
.modal{
  background:#fff;color:var(--ink);width:560px;max-width:100%;max-height:86vh;
  border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;
}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px;}
.modal-title{font-size:16px;font-weight:800;color:var(--navy);letter-spacing:.3px;}
.modal-x{border:none;background:none;font-size:24px;line-height:1;cursor:pointer;color:var(--muted);}
.modal-x:hover{color:var(--navy);}
.modal-search{
  margin:0 18px 12px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-size:13px;
}

/* ---- Branding / theme modal ---- */
.brand-hint{margin:0 18px 12px;font-size:12px;color:var(--muted);line-height:1.4;}
.brand-scroll{overflow-y:auto;flex:1 1 auto;min-height:0;}
.brand-grid{padding:0 18px 8px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;}
.brand-row{display:flex;align-items:center;gap:10px;}
.brand-row input[type=color]{
  width:34px;height:34px;flex:0 0 auto;border:1px solid var(--line);border-radius:7px;
  background:none;padding:2px;cursor:pointer;
}
.brand-row .brand-meta{min-width:0;}
.brand-row .brand-name{font-size:12px;font-weight:700;color:var(--navy);}
.brand-row .brand-desc{font-size:10.5px;color:var(--muted);line-height:1.25;}
.brand-row input[type=text]{
  width:74px;flex:0 0 auto;border:1px solid var(--line);border-radius:6px;
  padding:5px 6px;font-size:11px;font-family:monospace;color:var(--ink);text-transform:uppercase;
}
.brand-actions{display:flex;align-items:center;gap:10px;padding:12px 18px 16px;border-top:1px solid var(--line);}
.brand-logo-row{display:flex;align-items:center;gap:12px;margin:0 18px 14px;}
.brand-logo-row .brand-desc{font-size:11px;color:var(--muted);line-height:1.3;}
/* buttons sit on a white modal, so the dark-toolbar .btn styles need overriding */
.modal .btn{background:#eef2f4;color:var(--navy);}
.modal .btn:hover{background:#e1e8ea;}
.modal .btn.primary{background:var(--teal);color:#fff;}
.modal .btn.primary:hover{background:var(--teal-dark);}
.modal .btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line);}
.modal .btn.ghost:hover{background:#f3f6f7;}
.brand-logo-row .btn.primary{background:var(--teal);}
.brand-field{margin:0 18px 14px;}
.brand-field label{display:block;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.4px;}
.brand-field input{width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 9px;font-size:13px;font-family:inherit;color:var(--ink);}
.brand-field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
.brand-section-label{margin:4px 18px 8px;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--teal-dark);border-bottom:1px solid var(--teal-soft);padding-bottom:5px;}
.modal-list{overflow-y:auto;padding:0 10px 12px;}
.modal-empty{padding:24px 18px 30px;text-align:center;color:var(--muted);font-size:13px;}
.op-row{
  display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:9px;
}
.op-row:hover{background:var(--teal-soft);}
.op-row+.op-row{border-top:1px solid var(--line);}
.op-info{flex:1;min-width:0;}
.op-name{font-weight:700;color:var(--navy);font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.op-sub{font-size:11.5px;color:var(--muted);margin-top:2px;}
.op-actions{display:flex;gap:6px;flex:0 0 auto;}
.op-actions .btn{background:#fff;color:#232323;border:1px solid #cfd3c4;font-weight:600;}
.op-actions .btn:hover{background:#f1f3ea;}
.op-actions .btn.op-open{background:var(--teal);color:#171717;border-color:var(--teal);}
.op-actions .btn.op-open:hover{background:var(--teal-dark);border-color:var(--teal-dark);}
.op-actions .btn.danger{background:#f3dada;color:#9a2b2b;}
.op-actions .btn.danger:hover{background:#eebcbc;}

/* ===========================================================================
   Hosted (multi-user) additions — sign-in, user menu, open filter, users,
   Past Projects manager. Uses the same theme variables as the rest.
   =========================================================================== */
body.signed-out .app{visibility:hidden;}
.login-screen{
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;
  background:radial-gradient(1200px 600px at 20% 0%, var(--navy) 0%, var(--navy-2) 70%);
}
.login-screen[hidden]{display:none;}
.login-card{
  width:380px;max-width:100%;background:#fff;color:var(--ink);border-radius:14px;padding:30px 30px 22px;
  box-shadow:0 24px 70px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:14px;
}
.login-brand{display:flex;flex-direction:column;line-height:1.05;color:var(--navy);}
.login-brand b{font-size:20px;letter-spacing:.6px;}
.login-brand span{font-size:12px;letter-spacing:1.4px;color:var(--teal-dark);font-weight:700;}
.login-title{font-size:15px;font-weight:700;color:var(--ink);margin-top:6px;}
.login-field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted);}
.login-field[hidden]{display:none;}
.login-field input{
  font:inherit;font-size:14px;font-weight:400;color:var(--ink);padding:10px 11px;border:1px solid var(--line);border-radius:8px;
}
.login-field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.login-go{padding:11px 14px;font-size:14px;margin-top:4px;color:#fff;}
.login-go:disabled{opacity:.6;cursor:default;}
.login-msg{font-size:12.5px;line-height:1.4;border-radius:8px;padding:9px 11px;}
.login-msg.err{background:#fbe9e9;color:#8f2525;}
.login-msg.ok{background:var(--teal-soft);color:var(--ink);}
.login-links{display:flex;justify-content:space-between;font-size:12px;}
.login-links a{color:var(--muted);text-decoration:none;}
.login-links a:hover{color:var(--teal-dark);text-decoration:underline;}
.login-links a[hidden]{display:none;}

/* user menu in the toolbar */
.user-menu{position:relative;margin-left:4px;}
.user-chip{
  display:flex;align-items:center;gap:8px;border:none;background:rgba(255,255,255,.1);color:#fff;
  border-radius:20px;padding:4px 12px 4px 4px;cursor:pointer;font:inherit;font-size:13px;font-weight:600;max-width:190px;
}
.user-chip:hover{background:rgba(255,255,255,.2);}
.user-dot{width:26px;height:26px;border-radius:50%;background:var(--teal);color:var(--navy-2);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px;flex:none;}
.user-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-pop{
  position:absolute;right:0;top:calc(100% + 8px);background:#fff;color:var(--ink);border-radius:10px;min-width:230px;
  box-shadow:0 12px 34px rgba(0,0,0,.25);overflow:hidden;z-index:60;
}
.user-pop[hidden]{display:none;}
.user-pop-head{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);}
.user-pop-head b{font-size:13.5px;color:var(--ink);}
.user-role{align-self:flex-start;margin-top:4px;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;background:var(--teal-soft);color:var(--ink);border-radius:10px;padding:2px 8px;}
.user-pop button{display:block;width:100%;text-align:left;border:none;background:none;padding:10px 14px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;}
.user-pop button:hover{background:#f3f6f7;}

/* role-based visibility */
body.is-estimator .admin-only{display:none !important;}

/* Open dialog: filter + who changed what */
.open-tools{display:flex;gap:8px;margin:0 18px 12px;}
.open-tools .modal-search{margin:0;flex:1;min-width:0;}
.open-filter{font:inherit;font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);flex:0 0 auto;}
.open-filter option[hidden]{display:none;}
.op-by{font-size:11px;}
.op-current{box-shadow:inset 3px 0 0 var(--teal);}

/* Settings: users */
.set-body .brand-desc{font-size:12px;color:var(--muted);line-height:1.45;}
.set-body .brand-desc b{color:var(--ink);}
.set-body .brand-hint{margin:0 0 10px;}
.set-p{margin:0 0 10px;}
.set-row{margin:0 0 14px;}
.u-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:12px;}
.u-row{display:flex;align-items:center;gap:8px;padding:9px 10px;}
.u-row+.u-row{border-top:1px solid var(--line);}
.u-row.u-off .u-email{color:var(--muted);text-decoration:line-through;}
.u-info{flex:1;min-width:0;}
.u-email{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.u-you{font-size:10px;font-weight:700;text-transform:uppercase;background:var(--teal-soft);border-radius:8px;padding:1px 6px;margin-left:4px;}
.u-role{font:inherit;font-size:12px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;}
.set-card .btn.sm{background:#fff;color:var(--ink);border:1px solid #cfd3c4;}
.set-card .btn.sm:hover{background:#f1f3ea;}
.set-card .btn.primary.sm{background:var(--teal);border-color:var(--teal);color:#fff;}
.u-add{border:1px dashed var(--line);border-radius:8px;padding:10px;}
.u-add[hidden]{display:none;}
.u-add-title{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.u-add-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;}
.u-add-grid input,.u-add-grid select{font:inherit;font-size:12.5px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;min-width:0;}

/* Settings: Past Projects manager */
.ppa-group{margin-bottom:12px;}
.ppa-title{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.ppa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;}
.ppa-item{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;}
.ppa-item img{display:block;width:100%;height:76px;object-fit:cover;background:#eef1f2;}
.ppa-cap{width:100%;border:none;border-top:1px solid var(--line);font:inherit;font-size:11px;padding:5px 6px;}
.ppa-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:11px;cursor:pointer;}
.ppa-del:hover{background:#b33;}
.pp-up{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px;}
.pp-up select,.pp-up input{font:inherit;font-size:12.5px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;}
.pp-up input[hidden]{display:none;}
img[src^="/api/files/"]{background:#eef1f2;}

@media (max-width:900px){
  .user-name{display:none;}
  .user-chip{padding:4px;}
}
@media print{
  .login-screen,.user-menu{display:none !important;}
  body.signed-out .app{visibility:visible;}
}

/* ============================================================
   HOME SCREEN + EDITOR SHELL
   ============================================================ */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.home[hidden],.workspace[hidden]{display:none !important;}
.workspace{display:flex;flex-direction:column;flex:1;min-height:0;}

/* ---- home ---- */
.home{display:flex;flex:1;min-height:0;background:#eef2f3;}
.home-nav{width:236px;flex:0 0 auto;background:var(--navy);color:#fff;display:flex;flex-direction:column;gap:26px;padding:22px 14px;}
.hn-brand{display:flex;align-items:center;gap:11px;padding:0 8px;}
.hn-brand span{display:flex;flex-direction:column;line-height:1.1;}
.hn-brand b{font-size:14px;font-weight:800;letter-spacing:.08em;}
.hn-brand i{font-style:normal;font-size:10.5px;font-weight:600;letter-spacing:.16em;color:var(--teal-light);}
.hn-links{display:flex;flex-direction:column;gap:4px;}
.hn-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:8px;border:0;background:transparent;
  color:rgba(255,255,255,.78);font:inherit;font-size:14px;font-weight:500;text-align:left;cursor:pointer;}
.hn-link:hover{background:rgba(255,255,255,.08);color:#fff;}
.hn-link.active{background:rgba(255,255,255,.14);color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--teal);}
.hn-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:12px;}
.hn-user .user-menu{margin:0;}
.hn-user .user-chip{width:100%;justify-content:flex-start;background:transparent;}
.hn-user .user-chip:hover{background:rgba(255,255,255,.08);}
.hn-user .user-name{display:inline !important;}
.hn-user .user-pop{top:auto;bottom:calc(100% + 8px);left:0;right:auto;}

.home-main{flex:1;min-width:0;overflow-y:auto;padding:32px 40px 60px;display:flex;flex-direction:column;gap:20px;}
.home-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;}
.home-h1{margin:0;font-size:28px;font-weight:800;color:var(--navy);letter-spacing:-.01em;}
.home-sub{margin:4px 0 0;font-size:14px;color:#556a74;}
.btn.home-new{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 20px;font-size:14px;font-weight:700;border-radius:8px;}
.home-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;}
.home-tabs{display:flex;flex-wrap:wrap;gap:4px;background:#e0e7ea;padding:4px;border-radius:10px;}
.home-tab{min-height:38px;padding:0 15px;border-radius:7px;border:0;background:transparent;color:#405560;font:inherit;font-size:13px;font-weight:500;cursor:pointer;}
.home-tab:hover{color:var(--navy);}
.home-tab.active{background:#fff;color:var(--navy);font-weight:700;box-shadow:0 1px 3px rgba(19,56,74,.15);}
.home-search{display:flex;align-items:center;gap:8px;flex:0 1 340px;min-height:44px;padding:0 14px;background:#fff;border:1px solid #c7d3d8;border-radius:8px;color:#556a74;}
.home-search:focus-within{border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
.home-search input{border:0;outline:none;flex:1;min-width:0;font:inherit;font-size:14px;color:var(--ink);background:transparent;}
.home-card{position:relative;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(19,56,74,.08),0 8px 24px rgba(19,56,74,.06);overflow-x:auto;}
.home-table{width:100%;min-width:760px;border-collapse:collapse;font-size:14px;}
.home-table th{text-align:left;padding:13px 14px;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#556a74;border-bottom:1px solid #e1e8eb;}
.home-table th:first-child{padding-left:20px;}
.home-table td{padding:12px 14px;border-bottom:1px solid #eef2f3;vertical-align:middle;}
.home-table td:first-child{padding-left:20px;}
.home-table .num{text-align:right;}
.home-table tr.hr{cursor:pointer;}
.home-table tr.hr:hover td{background:#f6fafa;}
.home-table tr.hr-deleted{cursor:default;}
.home-table tr:last-child td{border-bottom:0;}
.home-loading{text-align:center;color:#556a74;padding:30px !important;}
.hr-proj{display:flex;align-items:center;gap:14px;}
.hr-thumb{position:relative;width:56px;height:72px;border-radius:3px;background:#fff;flex:0 0 auto;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.22);border:1px solid #e1e8eb;}
.ht-photo{position:absolute;left:0;right:0;top:0;height:54%;background:#cfe7ee;overflow:hidden;}
.ht-photo img,.ht-photo svg{display:block;width:100%;height:100%;object-fit:cover;}
.ht-band{position:absolute;left:0;top:50%;width:72%;height:24%;background:var(--navy);display:flex;flex-direction:column;justify-content:center;gap:2px;padding-left:5px;clip-path:polygon(0 0,86% 0,100% 100%,0 100%);}
.ht-band i{display:block;height:3px;width:58%;background:#fff;border-radius:1px;}
.ht-band i+i{background:var(--teal);}
.ht-band b{display:block;height:2px;width:40%;background:rgba(255,255,255,.6);margin-top:1px;}
.ht-price{position:absolute;right:4px;top:60%;width:40%;height:18%;background:var(--teal);border-radius:1px;box-shadow:0 1px 2px rgba(0,0,0,.25);}
.hr-names{display:flex;flex-direction:column;gap:2px;min-width:0;}
.hr-name{font-weight:700;color:var(--navy);text-decoration:none;}
a.hr-name:hover{text-decoration:underline;}
.hr-client{font-size:13px;color:#556a74;}
.hr-est{color:#405560;}
.hr-price{font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;}
.hr-when{color:#556a74;white-space:nowrap;font-size:13px;}
.hr-when span{display:block;font-size:12px;color:#7a8b93;}
.hr-act{text-align:right;white-space:nowrap;width:1%;}
.hr-icon{width:40px;height:40px;border-radius:8px;border:0;background:transparent;color:#556a74;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.hr-icon:hover{background:#e6eef1;color:var(--navy);}
.hr-icon.hr-del:hover{background:#f6e3e1;color:#8c2f25;}
.hr-btn{min-height:36px;padding:0 14px;border-radius:7px;border:1px solid #c7d3d8;background:#fff;color:var(--navy);font:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.hr-btn:hover{border-color:var(--teal);}
.home-empty{padding:40px 20px;text-align:center;color:#556a74;font-size:14px;}
.pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;}
.st-draft{background:#eef2f3;color:#405560;}
.st-sent{background:#fdf0db;color:#7d500a;}
.st-won{background:#dcf2ef;color:#12625b;}
.st-lost{background:#f6e3e1;color:#8c2f25;}

/* ---- editor top bar ---- */
.toolbar{gap:12px;min-height:64px;flex-wrap:wrap;}
.tb-back{width:42px;height:42px;flex:0 0 auto;border-radius:8px;border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.tb-back:hover{background:rgba(255,255,255,.2);}
.tb-title{display:flex;flex-direction:column;gap:1px;min-width:180px;flex:0 1 380px;}
.tb-name{background:transparent;border:1px solid transparent;border-radius:6px;color:#fff;font:inherit;font-size:16px;font-weight:700;padding:3px 6px;margin-left:-6px;width:100%;text-overflow:ellipsis;}
.tb-name::placeholder{color:#fff;opacity:1;}
.tb-name:hover{border-color:rgba(255,255,255,.25);}
.tb-name:focus{outline:none;background:rgba(255,255,255,.1);border-color:var(--teal-light);}
.tb-name:focus::placeholder{color:rgba(255,255,255,.45);}
.tb-save{font-size:12px;color:var(--teal-light);display:flex;align-items:center;gap:5px;min-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tb-save.bad{color:#ffd0a8;}
.tb-save button{border:0;background:rgba(255,255,255,.16);color:#fff;font:inherit;font-size:11.5px;font-weight:700;border-radius:5px;padding:2px 8px;cursor:pointer;}
.tb-status{appearance:none;-webkit-appearance:none;border:0;border-radius:999px;padding:7px 28px 7px 13px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;
  background-repeat:no-repeat;background-position:right 10px center;background-size:10px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23405560' stroke-width='1.6'/%3E%3C/svg%3E");}
.tb-status[data-s="draft"]{background-color:#eef2f3;color:#405560;}
.tb-status[data-s="sent"]{background-color:#fdf0db;color:#7d500a;}
.tb-status[data-s="won"]{background-color:#dcf2ef;color:#12625b;}
.tb-status[data-s="lost"]{background-color:#f6e3e1;color:#8c2f25;}
.tb-status:focus-visible{outline:2px solid var(--teal-light);outline-offset:2px;}
.toolbar .btn{display:inline-flex;align-items:center;gap:7px;min-height:40px;}
.btn.accent{background:var(--orange);color:#171717;font-weight:700;}
.btn.accent:hover{filter:brightness(.95);background:var(--orange);}

/* ---- section list + one section at a time ---- */
.sec-nav{width:200px;flex:0 0 auto;background:#fff;border-right:1px solid var(--line);overflow-y:auto;padding:16px 10px;display:flex;flex-direction:column;gap:2px;}
.sn-head{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a8b93;padding:0 10px 8px;}
.sn-item{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:9px 10px;border-radius:8px;border:0;background:transparent;text-align:left;font:inherit;color:#405560;cursor:pointer;width:100%;}
.sn-item:hover{background:#f2f6f7;}
.sn-item.active{background:var(--teal-soft);color:var(--navy);}
.sn-num{width:22px;height:22px;border-radius:50%;background:#e4eaed;color:#405560;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px;}
.sn-item.active .sn-num{background:var(--navy);color:#fff;}
.sn-text{display:flex;flex-direction:column;min-width:0;}
.sn-title{font-size:13.5px;font-weight:600;line-height:1.3;}
.sn-item.active .sn-title{font-weight:800;}
.sn-sum{font-size:11.5px;color:#7a8b93;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;}
.sn-sum:empty{display:none;}

.editor{width:clamp(400px,31vw,580px);min-width:0;max-width:none;padding:22px 22px 70px;}
.ed-sec[hidden]{display:none;}
.ed-sec-h{margin:0 0 6px;font-size:22px;font-weight:800;color:var(--navy);letter-spacing:-.01em;}
.ed-sec>.hint:nth-child(2){font-size:12.5px;margin:0 0 14px;}
.ed-sec-nav{display:flex;justify-content:space-between;gap:10px;margin-top:26px;padding-top:16px;border-top:1px solid var(--line);}
.sec-step{min-height:42px;padding:0 14px;border-radius:8px;border:1px solid #c7d3d8;background:#fff;color:var(--navy);font:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.sec-step:hover{border-color:var(--teal);}
.sec-step.next{background:var(--navy);border-color:var(--navy);color:#fff;}
.sec-step.next:hover{filter:brightness(1.15);}

.price-big label{font-size:12px;}
.price-big-box{display:flex;align-items:center;gap:6px;border:1.5px solid var(--teal);border-radius:10px;padding:0 14px;background:#f6fbfa;}
.price-big-box span{font-size:24px;font-weight:700;color:#556a74;}
.editor .price-big-box input#priceInput{border:0;background:transparent;font-size:26px;font-weight:800;color:var(--navy);padding:10px 0;box-shadow:none;font-variant-numeric:tabular-nums;}
.price-big-box:focus-within{box-shadow:0 0 0 3px var(--teal-soft);}

/* preview pages shrink to fit the space left */
.preview-wrap .page{zoom:var(--pv-zoom,1);}

.conflict-actions{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 4px;}
.modal .conflict-actions .btn:not(.primary){background:#eef2f3;color:var(--navy);}

@media (max-width:1250px){
  .sec-nav{width:66px;padding:14px 8px;}
  .sn-head,.sn-text{display:none;}
  .sn-item{justify-content:center;padding:9px 0;}
}
@media (max-width:900px){
  .home{flex-direction:column;}
  .home-nav{width:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;}
  .hn-links{flex-direction:row;flex-wrap:wrap;}
  .hn-user{margin:0 0 0 auto;border:0;padding:0;}
  .hn-user .user-name{display:none !important;}
  .hn-user .user-pop{top:calc(100% + 8px);bottom:auto;right:0;left:auto;}
  .home-main{padding:20px 16px 40px;}
}
@media print{
  .sec-nav,.home{display:none !important;}
  .workspace{display:block !important;}
  .preview-wrap .page{zoom:1 !important;}
}

/* ---- home: rename + status in the list ---- */
.hr-name-row{display:flex;align-items:center;gap:4px;}
.hr-rename{width:30px;height:30px;border-radius:6px;border:0;background:transparent;color:#7a8b93;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:0;}
tr.hr:hover .hr-rename,.hr-rename:focus-visible{opacity:1;}
.hr-rename:hover{background:#e6eef1;color:var(--navy);}
@media (hover:none){ .hr-rename{opacity:1;} }
.hr-rename-in{font:inherit;font-weight:700;color:var(--navy);border:1.5px solid var(--teal);border-radius:6px;padding:5px 8px;width:min(340px,100%);}
.hr-rename-in:focus{outline:none;box-shadow:0 0 0 3px var(--teal-soft);}
.pill-select{appearance:none;-webkit-appearance:none;border:0;font:inherit;font-size:12px;font-weight:700;cursor:pointer;padding:5px 24px 5px 11px;
  background-repeat:no-repeat;background-position:right 8px center;background-size:9px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23405560' stroke-width='1.6'/%3E%3C/svg%3E");}
.pill-select:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

/* ---- scope library ---- */
.home-main[hidden]{display:none;}
.lib-save{font-size:13px;color:#556a74;min-height:18px;}
.lib-save.ok{color:#12625b;}
.lib-h2{margin:0 0 4px;font-size:18px;font-weight:800;color:var(--navy);}
.lib-p{margin:0 0 12px;font-size:13px;color:#556a74;line-height:1.45;}
.lib-rules{padding:18px 20px;}
.lib-rules textarea{width:100%;border:1px solid #c7d3d8;border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.5;color:var(--ink);resize:vertical;}
.lib-rules textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.lib-wrap{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;}
.lib-list{flex:1 1 220px;max-width:280px;padding:10px;display:flex;flex-direction:column;gap:2px;}
.lib-list-h{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7a8b93;padding:6px 10px 8px;}
.lib-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:9px 12px;border-radius:8px;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer;color:var(--ink);}
.lib-item:hover{background:#f2f6f7;}
.lib-item.active{background:var(--teal-soft);}
.lib-item-t{font-size:13.5px;font-weight:700;color:var(--navy);}
.lib-item-m{font-size:12px;color:#7a8b93;}
.lib-item-m b{color:#7d500a;}
.lib-detail{flex:999 1 520px;min-width:0;padding:20px 22px;}
.lib-legend code{background:#eef2f3;border-radius:4px;padding:1px 5px;font-size:12px;color:var(--navy);}
.lib-group{margin-top:22px;}
.lib-group-h{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.lib-group-h h3{margin:0 0 2px;font-size:15px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:8px;}
.lib-count{font-size:12px;font-weight:700;background:#eef2f3;color:#405560;border-radius:999px;padding:2px 9px;}
.lib-g-ai{background:#fff8ec;border:1px solid #f3dfb8;border-radius:10px;padding:14px 16px;margin-top:6px;}
.lib-g-ai .lib-count{background:#fdf0db;color:#7d500a;}
.lib-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.lib-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid #e1e8eb;border-radius:8px;padding:6px 6px 6px 12px;background:#fff;}
.lib-tx{flex:1 1 320px;min-width:0;font-size:13.5px;line-height:1.45;color:var(--ink);padding:6px 4px;border-radius:5px;outline:none;}
.lib-tx:focus{background:#f6fbfa;box-shadow:0 0 0 2px var(--teal-soft);}
.lib-tx:empty::before{content:attr(data-ph);color:#9aa9b0;}
.lib-ctl{display:flex;align-items:center;gap:4px;flex:0 0 auto;margin-left:auto;}
.lib-ctl .hr-icon{width:34px;height:34px;}
.lib-ctl .hr-icon:disabled{opacity:.3;cursor:default;background:transparent;}
.lib-kind{border:1px solid #c7d3d8;border-radius:6px;font:inherit;font-size:12.5px;padding:6px 8px;background:#fff;color:var(--navy);}
.lib-meta{font-size:11.5px;color:#8a6a2c;margin-right:6px;}
.lib-none{font-size:13px;color:#7a8b93;padding:6px 2px;}
.lib-add{margin-top:8px;}
.home-main>*{flex-shrink:0;}

/* ---- "new version ready" bar ---- */
.update-bar{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:300;display:flex;align-items:center;gap:12px;
  background:var(--navy);color:#fff;padding:10px 12px 10px 18px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.3);font-size:14px;max-width:calc(100vw - 32px);flex-wrap:wrap;}
.update-bar[hidden]{display:none;}
.update-bar .btn{min-height:38px;}
.update-later{border:0;background:transparent;color:rgba(255,255,255,.75);font:inherit;font-size:13px;cursor:pointer;padding:8px 6px;}
.update-later:hover{color:#fff;}

/* ---- copies + locked proposals ---- */
.copy-menu{position:relative;}
.copy-pop{position:absolute;right:0;top:calc(100% + 8px);width:300px;background:#fff;color:var(--ink);border-radius:10px;box-shadow:0 12px 34px rgba(0,0,0,.25);overflow:hidden;z-index:60;}
.copy-pop[hidden]{display:none;}
.copy-pop button{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;border:0;background:none;padding:11px 14px;font:inherit;cursor:pointer;color:var(--ink);}
.copy-pop button+button{border-top:1px solid var(--line);}
.copy-pop button:hover:not(:disabled){background:#f3f6f7;}
.copy-pop button b{font-size:13.5px;color:var(--navy);}
.copy-pop button span{font-size:12px;color:#556a74;line-height:1.35;}
.copy-pop button:disabled{cursor:default;}
.copy-pop button:disabled b{color:#8a99a0;}
.lock-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 20px;background:#fdf0db;color:#5c3d07;border-bottom:1px solid #f0d9ae;font-size:14px;}
.lock-bar[hidden]{display:none;}
.lock-bar span{flex:1 1 280px;}
.lock-bar .btn{min-height:38px;}
.lock-edit{border:0;background:transparent;color:#5c3d07;font:inherit;font-size:13.5px;font-weight:600;text-decoration:underline;cursor:pointer;padding:8px 4px;}
body.pb-locked .editor{opacity:.62;}
body.pb-locked .editor .ed-sec-nav{opacity:1;}
.toolbar .btn:disabled,.tb-name:disabled{opacity:.5;cursor:default;}
.hr-from{margin-right:4px;white-space:nowrap;}
@media print{ .lock-bar{display:none !important;} }
.login-note{margin:0;font-size:13px;line-height:1.45;color:var(--ink);background:var(--teal-soft);border-radius:8px;padding:10px 12px;}
.login-note[hidden]{display:none;}
.login-field i{font-style:normal;font-weight:400;}
.hr-roofs{max-width:220px;}
.roof-chip{display:inline-block;margin:2px 4px 2px 0;padding:3px 9px;border-radius:6px;background:#e9f0f2;color:#2c4652;font-size:12px;font-weight:600;white-space:nowrap;}
.hr-none{color:#9aa9b0;}
.home-table th{white-space:nowrap;}
.home-table td.hr-proj-cell{min-width:250px;}
.hr-from{min-height:34px;padding:0 10px;font-size:12.5px;}
.hr-roofs{min-width:110px;}
.home-table td,.home-table th{padding-left:10px;padding-right:10px;}
.home-table td:first-child,.home-table th:first-child{padding-left:20px;}
@media (max-width:1180px){ .home-table .col-est{display:none;} }
.sn-head{margin-top:10px;}
.sn-head:first-child{margin-top:0;}
.sn-item.done .sn-num{background:var(--teal);color:var(--navy-2);}
.sn-item.done.active .sn-num{background:var(--navy);color:#fff;}
.hr-forever{margin-left:6px;color:#8c2f25;border-color:#e8c6c1;}
.hr-forever:hover{border-color:#8c2f25;background:#fbefed;}
.hr-when span{white-space:normal;max-width:190px;margin-left:auto;}
/* long names: two lines, the rest on hover */
.hr-names{max-width:440px;}
.hr-name-row{align-items:flex-start;}
.hr-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3;}
.hr-addr{font-size:12.5px;color:#556a74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hr-client{font-size:12.5px;color:#2c4652;font-weight:600;}
.hr-rename{width:24px;height:22px;flex:0 0 auto;}
/* the proposal name in the editor's top bar uses all the room up to the buttons */
.toolbar .tb-title{flex:1 1 380px;min-width:200px;}
.toolbar .tb-title + .spacer{flex:0 0 8px;}
.tb-name{text-overflow:ellipsis;white-space:nowrap;}
/* renaming on the home list: the box spans the whole name column */
tr.hr.renaming .hr-names{max-width:none;flex:1;}
tr.hr.renaming .hr-name-row{display:block;}
.hr-rename-in{width:100%;min-width:320px;box-sizing:border-box;}
.hr-rename-in{display:block;width:420px;max-width:100%;min-width:0;resize:none;overflow:hidden;line-height:1.3;}

/* ---- the app's own pop-ups ---- */
.ui-dlg-back{position:fixed;inset:0;z-index:500;background:rgba(12,28,38,.5);display:flex;align-items:flex-start;justify-content:center;padding:14vh 16px 16px;}
.ui-dlg-back[hidden]{display:none;}
.ui-dlg{width:min(440px,100%);background:#fff;color:var(--ink);border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.3);padding:22px 22px 16px;display:flex;flex-direction:column;gap:10px;}
.ui-dlg-title{font-size:16px;font-weight:800;color:var(--navy);line-height:1.35;white-space:pre-wrap;word-break:break-word;}
.ui-dlg-msg{font-size:14px;line-height:1.5;color:#405560;white-space:pre-wrap;word-break:break-word;}
.ui-dlg-msg[hidden],.ui-dlg-input[hidden],.ui-dlg-btns button[hidden]{display:none;}
.ui-dlg-input{border:1px solid #c7d3d8;border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;color:var(--ink);}
.ui-dlg-input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.ui-dlg-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;}
.ui-dlg-btns button{min-height:40px;padding:0 18px;border-radius:8px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;}
.ui-dlg-cancel{border:1px solid #c7d3d8;background:#fff;color:var(--navy);}
.ui-dlg-ok{border:0;background:var(--navy);color:#fff;}
.ui-dlg-ok.danger{background:#b3261e;}
.ui-dlg-btns button:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
/* let the name column shrink so the list fits without scrolling sideways */
.hr-names{max-width:none;min-width:0;}
.hr-addr{white-space:normal;}
.home-table td.hr-proj-cell{min-width:240px;}
@media (max-width:1300px){ .home-table .col-est{display:none;} }

/* ---- Photos page ---- */
.photo-tabs{align-self:flex-start;}
.ph-body{display:flex;flex-direction:column;gap:18px;}
.ph-group{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(19,56,74,.08),0 8px 24px rgba(19,56,74,.05);padding:18px 20px;}
.ph-group-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.ph-group-h h2{margin:0;font-size:16px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:8px;}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;}
.ph-grid-lg{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}
.ph-card{position:relative;margin:0;border:1px solid #e1e8eb;border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .15s;}
.ph-card:hover{box-shadow:0 6px 18px rgba(19,56,74,.14);}
.ph-img{aspect-ratio:4/3;background:#eef2f3;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.ph-img-sq{aspect-ratio:1/1;}
.ph-img img{width:100%;height:100%;object-fit:cover;display:block;}
.ph-none{font-size:12.5px;color:#7a8b93;padding:10px;text-align:center;}
.ph-card figcaption{padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--navy);}
.ph-cap{border:1px solid transparent;border-radius:6px;padding:5px 6px;margin:0 -6px;font:inherit;font-size:13px;color:var(--ink);background:transparent;width:calc(100% + 12px);text-overflow:ellipsis;}
.ph-cap:hover{border-color:#e1e8eb;}
.ph-cap:focus{outline:none;border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px var(--teal-soft);}
.ph-cap::placeholder{color:#9aa9b0;}
.ph-del{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:8px;border:0;background:rgba(255,255,255,.92);color:#8c2f25;
  display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;box-shadow:0 1px 4px rgba(0,0,0,.2);}
.ph-card:hover .ph-del,.ph-del:focus-visible{opacity:1;}
@media (hover:none){ .ph-del{opacity:1;} }
.ph-acts{display:flex;gap:6px;flex-wrap:wrap;}
.ph-empty{width:100%;border:2px dashed #c7d3d8;border-radius:10px;background:#fafcfc;color:#556a74;font:inherit;font-size:13.5px;padding:22px;cursor:pointer;}
.ph-empty:hover{border-color:var(--teal);color:var(--navy);}
.ph-newcat-row{display:flex;flex-wrap:wrap;gap:8px;}
.ph-newcat-row input{flex:0 1 300px;min-height:38px;border:1px solid #c7d3d8;border-radius:8px;padding:0 12px;font:inherit;font-size:14px;}
.ph-newcat-row input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.ph-card figcaption .roof-chip{align-self:flex-start;}
.ph-move{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#7a8b93;}
.ph-move select{flex:1;min-width:0;border:1px solid #e1e8eb;border-radius:6px;padding:4px 6px;font:inherit;font-size:12.5px;color:#405560;background:#fff;}
.ph-move select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);}
.ph-card[draggable="true"]{cursor:grab;}
.ph-card.dragging{opacity:.45;}
.ph-drop-hint{display:none;font-size:12px;font-weight:600;color:var(--teal-dark);}
.ph-body.dragging .ph-group[data-cat]{outline:2px dashed #c7d3d8;outline-offset:-2px;}
.ph-body.dragging .ph-drop-hint{display:inline;}
.ph-group.drop{outline:2px solid var(--teal) !important;background:#f6fbfa;}
.home-tools-r{display:flex;flex-wrap:wrap;align-items:center;gap:10px;flex:0 1 auto;}
.home-sort{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#556a74;}
.home-sort select{min-height:44px;border:1px solid #c7d3d8;border-radius:8px;padding:0 34px 0 12px;font:inherit;font-size:14px;font-weight:500;color:var(--ink);background-color:#fff;
  appearance:none;-webkit-appearance:none;background-repeat:no-repeat;background-position:right 12px center;background-size:10px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23405560' stroke-width='1.6'/%3E%3C/svg%3E");cursor:pointer;}
.home-sort select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
.home-tools-r .home-search{flex:0 1 320px;}
.hr-date{white-space:nowrap;color:#405560;}
.home-tools-r{flex-wrap:nowrap;}
.home-tools-r .home-search{flex:0 1 270px;min-width:190px;}
.home-sort span{white-space:nowrap;}
@media (max-width:700px){ .home-tools-r{flex-wrap:wrap;width:100%;} .home-tools-r .home-search{flex:1 1 100%;} }
/* Scope library: editable roof-system name */
.lib-name-l{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#6b7c85);margin:0 0 4px;}
input.lib-name{display:block;width:100%;max-width:520px;box-sizing:border-box;padding:6px 10px;border:1px solid transparent;border-radius:8px;background:transparent;font-family:inherit;}
input.lib-name:hover{border-color:#d5dfe3;}
input.lib-name:focus{border-color:var(--teal,#2aa9a0);background:#fff;outline:none;box-shadow:0 0 0 3px rgba(42,169,160,.15);}
.lib-name-hint{margin-top:2px;}
/* Exclusions: duplicate notice + standard list */
.excl-dupbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;padding:8px 10px;border-radius:8px;background:#fff8e6;border:1px solid #f0d9a0;font-size:13px;color:#6b5210;}
.excl-dupbar span{flex:1 1 200px;}
.excl-dupbar .addbtn{margin:0;}
.excl-stdrow{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 8px;font-size:12px;}
.excl-stdrow .hint{margin:0;}
.linkbtn{background:none;border:0;padding:0;color:var(--teal,#2aa9a0);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px;}
.linkbtn:hover{color:#1c8c84;}
/* Scope library: exclusions list */
.lib-list-h2{margin-top:10px;border-top:1px solid #e1e8eb;padding-top:12px;}
.lib-ex-tx{flex:1 1 320px;min-width:0;font:inherit;font-size:13.5px;color:var(--ink);padding:6px 6px;border:1px solid transparent;border-radius:5px;background:transparent;}
.lib-ex-tx:hover{border-color:#e1e8eb;}
.lib-ex-tx:focus{border-color:var(--teal,#2aa9a0);background:#fff;outline:none;box-shadow:0 0 0 3px rgba(42,169,160,.15);}
/* Proposal exclusions: click a line to edit it */
.excl-row .excl-tx{cursor:text;border-radius:4px;padding:1px 4px;margin:-1px -4px;outline:none;}
.excl-row .excl-tx:hover{background:#f2f6f7;}
.excl-row .excl-tx:focus{background:#fff;box-shadow:0 0 0 2px var(--teal,#2aa9a0);}
.dm-spell{margin-top:6px;padding:6px 10px;border-radius:6px;background:#eef8f6;color:#1c6b64;font-size:12.5px;}

/* ===================== Phone view =====================
   On a phone the app is for looking things up: the proposal list, reading a
   proposal and saving its PDF. Building and editing stay on a computer.
   (html.phone is set by shell.js under 760px wide.) */
html.phone .home-new,
html.phone .home-sub,
html.phone .home-tab[data-f="deleted"],
html.phone #userSettings,
html.phone .home-table thead,
html.phone .hr-when, html.phone .hr-act, html.phone .hr-rename{display:none !important;}
html.phone .home-nav{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:10px;padding:10px 16px;width:auto;}
html.phone .home-main{padding:16px 16px 40px;gap:14px;}
html.phone .home-h1{font-size:22px;}
html.phone .home-tools{flex-direction:column;align-items:stretch;gap:10px;}
html.phone .home-tabs{overflow-x:auto;flex-wrap:nowrap;}
html.phone .home-tools-r{flex-wrap:wrap;width:100%;gap:8px;}
html.phone .home-tools-r .home-search{flex:1 1 100%;}
html.phone .home-tools-r .home-sort{flex:1 1 100%;}
html.phone .home-tools-r .home-sort select{flex:1;}
html.phone .home-card{background:transparent;box-shadow:none;border:0;overflow:visible;}
html.phone .home-table{min-width:0;display:block;}
html.phone .home-table tbody{display:flex;flex-direction:column;gap:10px;}
html.phone .home-table tr.hr{display:grid;grid-template-columns:1fr auto;
  grid-template-areas:"proj proj" "roofs roofs" "date price";
  background:#fff;border:1px solid #e1e8eb;border-radius:12px;padding:12px 14px;gap:8px 12px;box-shadow:0 1px 3px rgba(19,56,74,.06);}
html.phone .home-table tr.hr td{display:block;padding:0 !important;border:0 !important;background:transparent !important;min-width:0 !important;max-width:none;}
html.phone .home-table td.hr-proj-cell{grid-area:proj;}
html.phone .home-table td.hr-roofs{grid-area:roofs;}
html.phone .home-table td.hr-roofs:has(.hr-none){display:none;}
html.phone .home-table td.hr-date{grid-area:date;align-self:center;font-size:13px;color:#556a74;}
html.phone .home-table td.hr-price{grid-area:price;align-self:center;text-align:right;font-size:15px;}
html.phone .hr-proj{align-items:flex-start;gap:12px;}
html.phone .hr-thumb{width:46px;height:60px;}
html.phone .hr-names{max-width:none;}
html.phone .hr-name{-webkit-line-clamp:3;font-size:15px;}
html.phone .home-table tr.hr:active{background:#f2f7f7;}

/* reading a proposal */
html.phone #secNav, html.phone #editor, html.phone #lockBar,
html.phone #btnHistory, html.phone #copyMenu, html.phone #btnBuild, html.phone #saveState,
html.phone .toolbar .spacer{display:none !important;}
html.phone .toolbar{flex-wrap:nowrap;gap:8px;min-height:56px;padding:8px 10px;}
html.phone .tb-title{flex:1;min-width:0;}
html.phone .tb-name{pointer-events:none;font-size:15px;text-overflow:ellipsis;width:100%;}
html.phone #btnPdf{flex:0 0 auto;padding:10px 14px;}
html.phone .toolbar .user-menu{flex:0 0 auto;}
html.phone .preview-wrap{padding:8px;gap:10px;}
html.phone .preview-wrap [data-edit]{cursor:default;}

/* scope Area / Pitch boxes: long values shrink and wrap instead of being cut off */
.meta-box .v{overflow-wrap:anywhere;}
.meta-box .v.v-sm{font-size:12px;}
.meta-box .v.v-xs{font-size:10px;line-height:1.2;}

/* preview zoom */
.main{position:relative;}
.preview-wrap{align-items:safe center;}
.pv-zoom{position:absolute;right:22px;bottom:18px;z-index:5;display:flex;align-items:center;gap:2px;padding:4px;
  background:rgba(255,255,255,.96);border:1px solid #d5dfe3;border-radius:10px;box-shadow:0 4px 14px rgba(19,56,74,.16);}
.pv-zoom button{min-width:32px;height:32px;border:0;border-radius:7px;background:transparent;color:var(--navy);font:inherit;font-size:18px;font-weight:700;cursor:pointer;}
.pv-zoom button:hover{background:#eef4f5;}
.pv-zoom .pvz-fit{font-size:12.5px;padding:0 10px;}
.pv-zoom .pvz-fit.on{background:var(--teal-soft,#e6f5f3);color:var(--teal-dark,#1c8c84);}
#pvZoomPct{min-width:46px;text-align:center;font-size:12.5px;font-weight:700;color:#556a74;font-variant-numeric:tabular-nums;}
html.phone .pv-zoom, html.phone #btnSpell{display:none !important;}
@media print{ .pv-zoom{display:none !important;} }

/* ---- Print fix: release every full-height / scrolling wrapper so the FIRST
   print layout is correct (no more switching printers to make it re-layout) ---- */
@media print{
  html,body,.app,.main,.workspace,.preview-wrap{
    height:auto !important;min-height:0 !important;max-height:none !important;
    overflow:visible !important;display:block !important;}
}
/* Same layout applied on screen just before the dialog opens, so Chrome
   snapshots a page that is already in its final print shape. */
html.printing,html.printing body,html.printing .app,html.printing .main,
html.printing .workspace,html.printing .preview-wrap{
  height:auto !important;min-height:0 !important;max-height:none !important;
  overflow:visible !important;display:block !important;}
html.printing .toolbar,html.printing .editor,html.printing .no-print,
html.printing .sec-nav,html.printing .home,html.printing .pv-zoom{display:none !important;}
html.printing .preview-wrap{padding:0 !important;margin:0 !important;background:#fff !important;}
html.printing .preview-wrap .page{zoom:1 !important;box-shadow:none !important;margin:0 !important;}

/* ---- Print fix #2: fit each proposal page to the printer's REAL printable
   area. Physical printers (and the dialog's "Default" margins) give less than
   a full 11in, so a fixed 11in page spilled its footer onto the next sheet.
   In print, 100vh/100vw = the printable area of one sheet, so every proposal
   page now fills exactly one sheet whatever printer or margin is picked. ---- */
@media print{
  #preview .page{
    width:100vw !important; height:100vh !important;
    max-width:8.5in !important; max-height:11in !important;
    break-inside:avoid !important; page-break-inside:avoid !important;
  }
}

/* ---- Settings: state license library ---- */
.lic-desc{margin:0 0 10px;font-size:12px;line-height:1.4;}
.lic-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.lic-tools input[type=search]{flex:1;min-width:160px;border:1px solid var(--line);border-radius:6px;padding:7px 9px;font:inherit;font-size:13px;}
.lic-only{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;}
.lic-count{font-size:12px;color:var(--muted);margin-left:auto;white-space:nowrap;}
.lic-grid{border:1px solid var(--line);border-radius:8px;max-height:360px;overflow:auto;}
.lic-row{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:10px;padding:5px 10px;border-bottom:1px solid #eef2f3;cursor:text;}
.lic-row:nth-child(even){background:#fafcfc;}
.lic-row:last-child{border-bottom:0;}
.lic-row[hidden]{display:none;}
.lic-name{font-size:13px;color:var(--ink);}
.lic-name i{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);margin-left:3px;}
.lic-row.has .lic-name{font-weight:700;color:var(--navy);}
.lic-row input{border:1px solid var(--line);border-radius:6px;padding:6px 8px;font:inherit;font-size:13px;color:var(--ink);min-width:0;width:100%;}
.lic-row.has input{border-color:var(--teal);background:#f3fbfa;}
.lic-auto{font-size:11.5px;color:var(--muted);margin-top:4px;}
.lic-auto b{color:var(--navy);}

/* Long scopes: the photo stops growing at about a portrait print's height and
   sits at the top of the block, so it isn't zoomed into a thin sliver. */
.scope-card .pic, .scope-card.grouped .pic{max-height:2.3in;align-self:start;}

/* ---- energy: load studies ---- */
#enList,#enStudy{display:flex;flex-direction:column;gap:20px;}
#enList[hidden],#enStudy[hidden]{display:none;}
.en-list-table{min-width:620px;}
.en-name{color:var(--navy);}
.en-addr{font-size:12.5px;color:#6b7c85;margin-top:2px;}
.en-when{white-space:nowrap;}
.en-back{border:0;background:none;padding:0 0 6px;color:var(--teal-dark);font:inherit;font-size:13px;font-weight:600;cursor:pointer;}
.en-back:hover{text-decoration:underline;}
.en-grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:20px;align-items:start;}
@media (max-width:1100px){.en-grid{grid-template-columns:minmax(0,1fr);}}
.en-card{padding:18px 20px;display:flex;flex-direction:column;gap:12px;overflow:visible;}
.en-h2{margin:0;font-size:16px;font-weight:800;color:var(--navy);}
.en-muted{margin:0;font-size:12.5px;color:#6b7c85;}
.en-note{margin:0;font-size:12.5px;color:#7a4a05;background:#fdf3e2;border-radius:8px;padding:8px 10px;}
.en-drop{border:2px dashed #c7d3d8;border-radius:10px;padding:16px;text-align:center;background:#f7fafa;display:flex;flex-direction:column;gap:10px;align-items:center;}
.en-drop.over{border-color:var(--teal);background:var(--teal-soft);}
.en-drop p{margin:0;}
.en-drop-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.en-pick{border:1px solid #d8e0e3;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;}
.en-pick-head{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:space-between;color:var(--navy);}
.en-pick-sub{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#556a74;}
.en-pick-list{list-style:none;margin:0;padding:0;max-height:180px;overflow:auto;font-size:13px;display:flex;flex-direction:column;gap:4px;}
.en-pick-list label{display:flex;gap:8px;align-items:flex-start;word-break:break-all;cursor:pointer;}
.en-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;max-height:260px;overflow:auto;}
.en-thumb{position:relative;display:flex;flex-direction:column;gap:3px;font-size:10.5px;color:#556a74;cursor:pointer;border:2px solid transparent;border-radius:8px;padding:2px;}
.en-thumb.on{border-color:var(--teal);}
.en-thumb img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:#e9eef0;}
.en-thumb input{position:absolute;top:6px;left:6px;}
.en-thumb span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.en-pick-go{display:flex;gap:8px;flex-wrap:wrap;}
.en-files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow:auto;}
.en-files li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:7px 10px;border:1px solid #e1e8eb;border-radius:8px;font-size:12.5px;}
.en-fn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.en-st{font-size:11.5px;font-weight:700;}
.en-st.ok{color:#12625b;} .en-st.bad{color:#b45309;} .en-st.skip,.en-st.run{color:#6b7c85;}
.en-det{grid-column:1/-1;color:#6b7c85;font-size:12px;}
.en-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.en-f{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#556a74;}
.en-f.full{grid-column:1/-1;}
.en-f input,.en-f select{font:inherit;font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);border:1px solid #c7d3d8;border-radius:7px;padding:7px 9px;background:#fff;min-width:0;}
.en-f input:focus,.en-f select:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 2px var(--teal-soft);}
.en-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
@media (max-width:640px){.en-stats{grid-template-columns:repeat(2,minmax(0,1fr));}}
.en-stats>div{display:flex;flex-direction:column;gap:1px;background:#f3f7f8;border-radius:9px;padding:10px 12px;}
.en-stats span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#556a74;}
.en-stats b{font-size:20px;color:var(--navy);font-variant-numeric:tabular-nums;}
.en-stats i{font-style:normal;font-size:12px;color:#6b7c85;}
.en-gaps{font-size:13px;color:#7a4a05;background:#fdf3e2;border-radius:8px;padding:8px 12px;}
.en-gaps[hidden]{display:none;}
.en-scroll{overflow-x:auto;border:1px solid #e1e8eb;border-radius:9px;}
.en-year,.en-read{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums;}
.en-year{min-width:560px;}
.en-read{min-width:760px;font-size:13px;}
.en-year th,.en-read th{text-align:left;padding:8px 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#556a74;background:#f6f9fa;border-bottom:1px solid #e1e8eb;white-space:nowrap;}
.en-year td,.en-read td{padding:6px 10px;border-bottom:1px solid #eef2f3;white-space:nowrap;}
.en-year .num,.en-read .num{text-align:right;}
.en-hi{background:#fff2cc;}
th.en-hi{background:#f5e3a8;color:#4a3c08;}
.en-year tr.en-tot td{font-weight:800;border-top:2px solid var(--navy);border-bottom:0;}
.en-year tr.en-gap td:first-child{color:#b45309;font-weight:700;}
.en-src{max-width:260px;overflow:hidden;text-overflow:ellipsis;}
.en-tag{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;margin-right:6px;}
.en-tag.old{border:1px solid #d08a2c;color:#9a5b0c;}
.en-tag.est{background:#fdf3e2;color:#9a5b0c;}
.en-read input,.en-read select{font:inherit;font-size:13px;border:1px solid #d3dde1;border-radius:6px;padding:4px 6px;background:#fff;}
.en-read input[type=number]{width:104px;text-align:right;}
.en-read input[type=checkbox]{width:16px;height:16px;}
.en-export{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.en-export [hidden]{display:none;}
.en-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;}
html.phone .en-fields{grid-template-columns:1fr;}
.en-pick[hidden]{display:none;}
.en-stats>div.en-need{background:#fdf3e2;box-shadow:inset 0 0 0 1.5px #e0a04a;}
.en-stats>div.en-need b{color:#9a5b0c;font-size:16px;}
.en-f input.en-need{border-color:#e0a04a;background:#fffaf1;}
#enYieldHelp b{color:#9a5b0c;}
/* energy: project folder, buildings, revisions */
#enWork,#enCmp{display:flex;flex-direction:column;gap:16px;}
#enWork[hidden],#enCmp[hidden]{display:none;}
.en-save{font-size:13px;color:#6b7c85;}
.en-proj{padding:14px 20px;}
.en-proj-fields{grid-template-columns:2fr 1.2fr 2fr;}
.en-proj-fields .en-f.full:first-child{grid-column:auto;}
.en-proj-fields .en-f.full:last-child{grid-column:1/-1;}
@media (max-width:900px){.en-proj-fields{grid-template-columns:1fr;}}
.en-revbar,.en-bldbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;}
.en-revs,.en-blds{display:flex;flex-wrap:wrap;gap:6px;min-width:0;}
.en-rev,.en-bld{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:44px;padding:6px 14px;border-radius:9px;border:1px solid #c7d3d8;background:#fff;color:var(--navy);font:inherit;cursor:pointer;text-align:left;max-width:280px;}
.en-rev b,.en-bld b{font-size:13.5px;}
.en-rev span,.en-bld span{font-size:11.5px;color:#6b7c85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px;}
.en-rev:hover,.en-bld:hover{border-color:var(--teal);}
.en-rev.active,.en-bld.active{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:#f6fafa;}
.en-rev-actions{display:flex;flex-wrap:wrap;gap:8px;}
.en-rev-actions [hidden]{display:none;}
.en-old{font-size:13.5px;color:#7a4a05;background:#fdf3e2;border-radius:9px;padding:10px 14px;}
.en-old[hidden]{display:none;}
.en-link{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--teal-dark);text-decoration:underline;cursor:pointer;}
.en-ro .en-edit{display:none !important;}
.en-added{font-size:12px;color:#6b7c85;white-space:nowrap;}
.en-cmp-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:#556a74;}
.en-cmp-pick select{font:inherit;font-size:13px;border:1px solid #c7d3d8;border-radius:7px;padding:6px 8px;background:#fff;}
.en-cmp td .en-addr{font-size:11px;}
.en-up{color:#b45309;font-weight:600;}
.en-down{color:#12625b;font-weight:600;}
/* sidebar sections: Roofing / Energy / Company */
.hn-sec{margin:14px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45);}
.hn-sec:first-child{margin-top:4px;}
.hn-brand b{text-transform:none;letter-spacing:.02em;font-size:15px;}
.login-brand b{text-transform:none;}
@media (max-width:900px){ .hn-sec{display:none;} }
.en-bld-wrap{position:relative;display:inline-flex;}
.en-bld-wrap .en-bld{padding-right:34px;}
.en-rename{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:6px;border:0;background:transparent;color:#7a8b93;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;}
.en-rename:hover,.en-rename:focus-visible{background:#e6eef1;color:var(--navy);}
.en-bld span.en-bld-addr{color:var(--navy);opacity:.75;}
.en-notes{margin:14px 0 4px;padding:12px 16px;border:1px solid #e1e8eb;border-left:3px solid var(--teal);border-radius:8px;background:#fafcfc;}
.en-notes h3{margin:0 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#6b7c85;}
.en-notes ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:13.5px;line-height:1.45;color:var(--navy);}
.en-det-list{grid-column:1/-1;margin:2px 0 0;padding-left:16px;color:#6b7c85;font-size:12px;line-height:1.4;display:flex;flex-direction:column;gap:2px;}
.en-bld-acts{display:inline-flex;gap:8px;flex-wrap:wrap;}
.login-google{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:4px;}
.login-google[hidden]{display:none;}
#loginGoogleBtn{min-height:44px;display:flex;justify-content:center;}
.login-or{display:flex;align-items:center;gap:10px;width:100%;font-size:11.5px;color:var(--muted);}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:#dfe6e9;}

/* Phone: a small Proposals / Load studies switch in the top bar (building and settings stay on a computer) */
html.phone .hn-links{display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;margin-left:auto;}
html.phone .hn-links .hn-sec,
html.phone .hn-links .admin-only{display:none !important;}
html.phone .hn-links .hn-link{min-height:38px;padding:0 10px;font-size:13px;gap:6px;white-space:nowrap;}
html.phone .hn-links .hn-link svg{display:none;}
html.phone .hn-links .hn-link.active{box-shadow:inset 0 -3px 0 var(--teal);}
html.phone .hn-brand i{display:none;}
html.phone #enXlsx{display:inline-flex !important;}
html.phone #enRows td.num[data-u]::after{content:" " attr(data-u);color:#6b7c85;font-size:12px;font-weight:400;}
.home-greet{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--teal-dark);}
.home-greet:empty{display:none;}
.en-proj{display:flex;align-items:flex-start;gap:10px;}
.en-folder{flex:0 0 auto;margin-top:1px;color:var(--teal-dark);}
.en-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0 28px;}
.en-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:3px 10px;border:1px solid #d5e0e4;border-radius:999px;background:#f6fafa;color:var(--navy);font:inherit;font-size:12.5px;cursor:pointer;}
.en-chip:hover{border-color:var(--teal);background:#fff;}
.en-chip i{font-style:normal;color:#6b7c85;}
.en-chip svg{color:var(--teal-dark);}
html.phone .en-chips{margin-left:0;}
.en-del-acts{display:flex;gap:8px;margin:8px 0 0 28px;}
html.phone .en-del-acts{margin-left:0;}
#energyMain .home-tools{margin-bottom:14px;}
.login-remember{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);cursor:pointer;user-select:none;}
.login-remember[hidden]{display:none;}
.login-remember input{width:16px;height:16px;accent-color:var(--teal);margin:0;}
