
:root{
  /* ══ THE STACKING ORDER. ONE LIST. READ THIS BEFORE ADDING AN OVERLAY. ══════════════
     Every overlay used to pick its own number, one higher than whatever had just covered
     it. That is how the file ended up with 99990 / 99996 / 99997 / 99998 / 99999 / 100000
     / 100001 and then a second front at 2147483600-2147483647 — an escalation war where
     the winning move was always "add one", and each round made the next fix harder.

     It ended at the ceiling, as it had to. The 2FA code prompt needed to sit above the
     sign-in screen (2147483646), so it took 2147483647 — the largest 32-bit signed int,
     the same value #ctp-splash already held. Two elements tied at the top, resolved only
     by which one happened to be inserted into the DOM later. It works. Nothing about it
     is declared, and there was no number left to express "above that".

     So: pick the ROLE, not a number. The gaps are deliberate — room to insert a tier
     without renumbering — and the top of the scale is nowhere near any limit, so this can
     never dead-end the way the last one did.

     Anything BELOW --z-toast is local stacking inside a component (a badge over a card,
     a sticky table header). Those never joined the war and are deliberately left alone;
     every one of them is far below this band, so the order is unchanged. */
  --z-toast:      9000;   /* transient, non-blocking: autosave confirmation            */
  --z-launcher:   9100;   /* the floating launcher button                              */
  --z-overlay:    9200;   /* full-screen feature surfaces (assistant, viewers)         */
  --z-modal:      9300;   /* .modal-bg and every dialog built on it                    */
  --z-notice:     9400;   /* things that must beat a modal: drag lines, notice toasts  */
  --z-menu:       9500;   /* menus anchored to a notice or modal                       */
  --z-dialog:     9600;   /* app-level confirms, privacy/terms, move/history           */
  --z-gate:       9700;   /* the policy gate — blocks the app until answered           */
  --z-fullscreen: 9750;   /* takeover pages drawn over everything app-side             */
  --z-hold:       9800;   /* the unsaved-work banner: must outrank what it warns about */
  --z-login:      9900;   /* the opaque sign-in screen                                 */
  --z-splash:     9950;   /* the boot screen                                           */
  --z-security:   9990;   /* the 2FA prompt. ABOVE the sign-in screen BY DECLARATION,
                             not by being inserted later — that is the whole point.    */

  /* ══ DEPTH — dark luxury. Elevation by light; teal accent rationed to meaning. ══
     Variable NAMES are unchanged from the prior (light) theme so every reference
     across the app cascades automatically. Only VALUES change. Semantic roles:
       --bg-page  workspace base (deepest data plane)
       --bg / --bg2 / --gray-l  lifted surfaces (cards, panels)
       --brand*   chrome planes (sidebar/header families)
       --blue*    PRIMARY ACCENT (teal) — solid fills + focus/links
       --*-l      pale tints became dark tints (badges stay readable)
       --text*    light text on dark */
  /* Chrome planes */
  --brand:#1b1f26;--brand-dark:#15181e;--brand-mid:#222831;
  /* CTP-BG START — inlined CTP background (1168x784 JPEG, ~52KB) + in-app veil token */
  --ctp-bg: url("data:image/jpeg;base64,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");
  --ctp-bg-veil: 0.82; /* higher = darker/more readable in-app; lower = image more visible */
  /* CTP-BG END */
  /* Primary accent — teal, rationed */
  --blue:#2fa1ad;--blue-l:#15323a;--blue-m:#5cc6d1;--blue-soft:#12262b;
  --teal:#2fa1ad;--teal-l:#14323a;
  /* Semantic colors — readable on dark, with dark tint fills */
  --amber:#E0A646;--amber-l:#362a14;
  --red:#E5736F;--red-l:#3a2020;
  --green:#86CC72;--green-l:#22310f;
  --gold:#C9A763;
  /* Neutrals (dark) */
  --gray:#aab0b8;--gray-l:#252b33;--gray-m:#3a414b;
  --text:#f2f4f7;--text2:#aab0b8;--text3:#828993;
  --border:#2e353e;--border-2:#262c34;
  /* Surfaces */
  --bg:#232931;--bg2:#252b33;--bg-page:#0d1014;
  /* Type system — elegant serif display + clean sans body (visual overhaul) */
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-ui:'Hanken Grotesk','Inter','Segoe UI',-apple-system,system-ui,sans-serif;
  /* Money axis — emerald for profit (overhaul) */
  --money:#54d3a2;--money-l:#11302a;
  /* Radii / Shadows */
  --r:14px;--r-sm:9px;--r-xs:6px;
  /* Layered shadows for dark — soft cast + a top-edge highlight so planes catch light */
  --sh-xs:0 1px 2px rgba(0,0,0,.32);
  --sh-sm:0 1px 0 rgba(255,255,255,.045) inset, 0 1px 2px rgba(0,0,0,.32), 0 6px 16px rgba(0,0,0,.24);
  --sh:0 1px 0 rgba(255,255,255,.05) inset, 0 2px 4px rgba(0,0,0,.3), 0 10px 26px rgba(0,0,0,.26);
  /* Global easing — smooth, settled, never bouncy */
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --sh-lg:0 1px 0 rgba(255,255,255,.05) inset, 0 12px 34px rgba(0,0,0,.42);
}
*{box-sizing:border-box;margin:0;padding:0}
/* ── DARK EVERYWHERE, INCLUDING THE BROWSER'S OWN CHROME ──────────────────────
   color-scheme tells the engine to paint the parts we CANNOT style: the date
   picker's drop-down calendar, the <select> option list, autofill, and
   scrollbars. Without it those come up white-and-blue on an otherwise dark app. */
:root{color-scheme:dark}
/* ── NO WHITE BOXES, EVER ──────────────────────────────────────────────────────
   A bare element selector (specificity 0,0,1) is the FLOOR: any component that
   styles its own fields still wins, but a control that was never styled can no
   longer fall back to the browser's white default. This is why stray white text
   boxes kept appearing in otherwise finished screens.
   The exclusions are wrapped in :where() ON PURPOSE — :not() otherwise inherits its
   argument's specificity, which would make this rule (0,7,1) and let it BEAT real
   component styles (it did: it flattened the e-sign signature highlight colors).
   :where() contributes zero, so this stays a true floor at (0,0,1). */
input:not(:where([type=checkbox],[type=radio],[type=color],[type=range],[type=button],[type=submit],[type=reset])),
select, textarea{
  background-color:#13161b;color:var(--text);border:1px solid var(--border);
  border-radius:var(--r-sm);font-family:inherit;font-size:13px;outline:none;
  caret-color:var(--blue-m);color-scheme:dark;
}
input::placeholder, textarea::placeholder{color:var(--text3);opacity:1}
/* Chrome's autofill paints its own near-white ground — override it with an inset fill. */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, textarea:-webkit-autofill, select:-webkit-autofill{
  -webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px #13161b inset;transition:background-color 9999s ease-in-out 0s;
}
input[type=date]::-webkit-calendar-picker-indicator,
input[type=datetime-local]::-webkit-calendar-picker-indicator,
input[type=time]::-webkit-calendar-picker-indicator,
input[type=month]::-webkit-calendar-picker-indicator{filter:invert(.62);cursor:pointer}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
input[type=number]{-moz-appearance:textfield;appearance:textfield}
body{font-family:var(--font-ui);background:var(--bg-page);color:var(--text);font-size:14px;height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.app{display:flex;height:100vh}
/* CTP-BG START — veiled background behind all post-login app content */
.app{background-image:linear-gradient(rgba(9,12,16,var(--ctp-bg-veil)),rgba(9,12,16,var(--ctp-bg-veil))),var(--ctp-bg);background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat}
/* CTP-BG END */

/* ── Split pane (estimate page only) ───────────────── */
.split-wrap{display:flex;flex:1;overflow:hidden;height:100%;position:relative}
.split-left{overflow-y:auto;overflow-x:hidden;flex-shrink:0;padding:18px 16px 80px;min-width:0}
.split-right{flex:1;overflow-y:auto;overflow-x:hidden;padding:18px 16px 80px;min-width:0;border-left:1px solid var(--border)}

/* Divider bar */
.split-divider{
  width:6px;flex-shrink:0;cursor:col-resize;
  background:var(--border-2);
  position:relative;
  transition:background .15s;z-index:20;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;
  touch-action:none;
}
/* Invisible wide grab zone — keeps the divider visually thin (6px) but makes the
   actual draggable hit area ~22px so it's easy to grab. Sits centered over the line. */
.split-divider::before{
  content:'';position:absolute;top:0;bottom:0;left:-8px;right:-8px;
  cursor:col-resize;
}
.split-divider:hover,.split-divider.dragging{background:var(--blue-m)}
.split-divider::after{content:'⋮⋮';font-size:10px;color:var(--gray-m);letter-spacing:-1px;pointer-events:none}
.split-divider:hover::after,.split-divider.dragging::after{color:#fff}

/* Collapse tabs — fixed position, JS keeps them aligned to the divider */
.split-collapse-tab-left,
.split-collapse-tab-right{
  position:fixed;
  width:20px;height:48px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;font-size:13px;font-weight:700;
  border-radius:0 7px 7px 0;
  box-shadow:2px 0 6px rgba(0,0,0,.18);
  z-index:200;
  user-select:none;
  pointer-events:auto;
  transition:background .15s;
}
.split-collapse-tab-left{background:var(--money);color:#fff;}
.split-collapse-tab-left:hover{filter:brightness(1.12)}
.split-collapse-tab-right{background:var(--teal);color:#fff;}
.split-collapse-tab-right:hover{filter:brightness(1.12)}

/* Collapsed states */
.split-left.collapsed{width:0!important;padding:0;overflow:hidden}
.split-right.collapsed-right{flex:0!important;width:0!important;padding:0;overflow:hidden;border-left:none}

/* Snapback animation — cubic-bezier gives the spring feel */
.split-left.snapping{transition:width .25s cubic-bezier(.34,1.4,.64,1)!important}
.split-right.snapping{transition:width .25s cubic-bezier(.34,1.4,.64,1)!important}

/* Mobile: stack vertically */
@media(max-width:900px){
  .split-wrap{flex-direction:column}
  .split-left{width:100%!important;max-height:50vh;border-right:none;border-bottom:1px solid var(--border);padding:14px}
  .split-divider{display:none}
  .split-right{padding:14px;width:100%!important}
  .split-left.collapsed{max-height:0;padding:0}
  .split-right.collapsed-right{max-height:0;padding:0}
}

/* ── Sidebar ────────────────────────────────────────── */
.sb{width:218px;background:linear-gradient(176deg,#15181e 0%,#101317 100%);color:#fff;display:flex;flex-direction:column;flex-shrink:0;box-shadow:1px 0 0 rgba(255,255,255,.04), 2px 0 14px rgba(0,0,0,.35)}
/* ── FULL-SCREEN VIEW ─────────────────────────────────────────────────────────
   Hide the nav and give the whole window to the work. The sidebar collapses to
   zero width (not display:none) so the pages that measure their own height —
   every .*-fit layout — reflow into the space instead of being clipped. */
.sb{transition:width .18s var(--ease-out)}
.app.nav-hidden .sb{width:0;min-width:0;overflow:hidden;pointer-events:none}
.app.nav-hidden .sb > *{opacity:0;transition:opacity .1s}
/* The handle is vertically centred on the LEFT EDGE so it can never collide with
   a page header, and it rides the sidebar's edge when the nav is open. */
/* z-index 310, NOT 60: the Home launcher (.wel-screen) is z-index 300 and spans the whole
   main area, which covers this handle at left:218px (nav open) AND at left:0 (nav hidden).
   With the nav collapsed, returning Home left no visible way to bring the menu back — only
   the keyboard shortcut. Stays far below the modal/overlay tier (99990+). */
#nav-toggle{position:fixed;top:50%;left:218px;transform:translateY(-50%);z-index:310;
  width:19px;height:74px;display:flex;align-items:center;justify-content:center;
  padding:0;border:1px solid var(--border-2);border-left:none;border-radius:0 9px 9px 0;
  background:#232a33;color:var(--text2);cursor:pointer;
  box-shadow:2px 0 10px rgba(0,0,0,.45);
  transition:left .18s var(--ease-out),background .15s,color .15s}
#nav-toggle:hover{background:#2c343e;color:var(--text)}
#nav-toggle:focus-visible{outline:2px solid var(--blue-m);outline-offset:1px}
#nav-toggle .ic{width:13px;height:13px}
/* SPLIT-TAB COLLISION (Ryan, 2026-08-19: the handle sat ON the split-screen ‹ › buttons
   when the specs pane is collapsed — estimate sheet and change orders alike). positionTabs()
   detects the overlap, spreads the pair a little further apart, and slims + re-centers the
   handle into the gap between them via this class — all three stay vertically centered on
   the divider, nothing overlaps. */
#nav-toggle.nav-slim{height:44px;width:20px}
.app.nav-hidden #nav-toggle{left:0}
@media print{#nav-toggle{display:none!important}}
/* A MODAL OWNS THE SCREEN — the nav handle yields. The handle rides z-index 310 so it clears
   page chrome, but modal backdrops sit at z-100, so it floated ON TOP of every dialog. On a
   full monitor the centered modal never reaches x=218 and nobody saw it; in a half-monitor
   window the New Estimate intake modal spans that line and the chevron sat over its fields
   (Ryan, 2026-08-17: "Menu collapse button staying visible on new estimate intake banner
   when in split mode"). */
body:has(.modal-bg.open) #nav-toggle{display:none!important}
/* A CLIENT gets THEIR PORTAL and nothing else (Ryan, 2026-08-17: "Client portal doesn't need
   to have a left menu bar just their own portal"). applyRoleChrome already emptied the nav
   list, but the 218px sidebar SHELL it left behind — logo, version, account footer — still
   read as a menu bar. The whole column goes, on desktop and as the mobile drawer alike, and
   the account actions a client needs (password, sign out) live in the portal hero instead.
   .app is flex, so the main pane simply absorbs the width. */
body[data-ctp-role="client"] .sb{display:none!important}
body[data-ctp-role="client"] #nav-toggle{display:none!important}
/* THE WHOLE FIRST PAINT, not just the chrome. The role guard above stopped the sidebar and
   welcome tiles flashing on a client device — but the ESTIMATE SHEET is the markup's default
   active page, and it sat in the main pane until the profile resolved and routing landed on
   the portal (Ryan, 2026-08-17: "a brief moment when I did a hard refresh in the incognito
   page that I saw the estimate sheet as the client"). boot() adds this class alongside the
   role pre-paint; it comes off when a non-client role resolves (applyRoleChrome) or the
   moment the portal page opens (nav) — whichever the truth turns out to be. */
body.ctp-booting-client .main{visibility:hidden}
.sb-logo{padding:20px 16px 18px;border-bottom:1px solid rgba(255,255,255,.06)}
.sb-title{font-size:14px;font-weight:700;line-height:1.3;letter-spacing:-.2px}
.sb-sub{font-size:10px;color:var(--gold);text-transform:uppercase;letter-spacing:1.4px;margin-top:4px;font-weight:600}
/* min-height:0 + its own scroll: on a short laptop (720p) the nav list plus the user footer
   ran taller than the viewport and pushed the whole DOCUMENT into a scrollbar — so every page,
   including the client portal, scrolled even when its content fit. The nav now scrolls inside
   itself and the app never exceeds the fold. */
.nav{padding:14px 0;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.nav::-webkit-scrollbar{width:6px}
.nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}
.ni{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;color:rgba(255,255,255,.6);font-size:13px;font-weight:500;border-left:3px solid transparent;transition:all .18s}
.ni:hover{background:rgba(255,255,255,.05);color:#fff}
.ni.active{background:linear-gradient(90deg,rgba(47,161,173,.18) 0%,rgba(47,161,173,.04) 100%);color:#fff;border-left-color:#2f9aa6;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ni-icon{font-size:16px;width:20px;text-align:center}

/* ── Main / Page header ─────────────────────────────── */
.main{flex:1;overflow:hidden;display:flex;flex-direction:column}
.ph{background:linear-gradient(180deg,#22272f,#1b1f26);border-bottom:1px solid var(--border);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 6px 18px rgba(0,0,0,.25)}
.ph-title{font-size:19px;font-weight:700;letter-spacing:-.3px;color:var(--text)}
.ph-sub{font-size:11px;color:var(--text3);margin-top:3px;letter-spacing:.2px}
.page{display:none;flex:1;overflow-y:auto;padding:22px 24px}
.page.active{display:block}
/* Estimate page gets split layout — no outer scroll */
#page-estimate{padding:0;overflow:hidden;display:none}
#page-estimate.active{display:flex;flex-direction:column}

/* ── Cards ──────────────────────────────────────────── */
.card{background:#1e242b;border:1px solid var(--border-2);border-radius:var(--r);padding:20px;margin-bottom:14px;box-shadow:0 1px 2px rgba(0,0,0,.22);transition:box-shadow .3s var(--ease),transform .3s var(--ease)}
.card:hover{box-shadow:0 2px 4px rgba(0,0,0,.26),0 10px 26px rgba(0,0,0,.18);transform:none}
.ct{font-size:13px;font-weight:600;margin-bottom:12px;color:var(--text);letter-spacing:-.1px}

/* ── Forms ──────────────────────────────────────────── */
/* Field grids — collapse responsively when the containing pane is narrow.
   `auto-fit` + `minmax(MIN, 1fr)` lets the browser drop columns automatically
   as available width shrinks, instead of squashing the inputs into illegible
   slivers. fg3's 95px floor lets 3 cols fit in the default 380px-wide spec
   pane; tighter widths automatically reflow to 2 or 1 column. */
.fg2{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.fg3{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:12px}
.fld{display:flex;flex-direction:column;gap:5px}
.fld label{font-size:10.5px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.fld input,.fld select,.fld textarea{border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 11px;font-size:13px;color:var(--text);background:#13161b;width:100%;outline:none;font-family:inherit;transition:all .15s}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--gray-m)}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,154,166,.18)}

/* ── Buttons ────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-sm);font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .22s var(--ease);font-family:inherit;letter-spacing:.1px;line-height:1.2}
.btn-p{background:linear-gradient(180deg,#2fa1ad,#1c7e8a);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 2px 8px rgba(31,126,138,.3)}
.btn-p:hover{background:linear-gradient(180deg,#37b0bd,#1f8b98);box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 5px 16px rgba(31,126,138,.42);transform:translateY(-1.5px)}
.btn-s{background:#252b33;color:var(--text);border:1px solid var(--border)}
.btn-s:hover{background:#2c333c;border-color:var(--gray-m)}
.btn-g{background:linear-gradient(180deg,#2fa1ad,#1c7e8a);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 1px 2px rgba(15,110,86,.18)}
.btn-g:hover{background:linear-gradient(180deg,#37b0bd,#1f8b98);box-shadow:0 2px 10px rgba(31,126,138,.34);transform:translateY(-1px)}
.btn-r{background:linear-gradient(180deg,#c8504c,#a83b38);color:#fff;box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 1px 2px rgba(161,38,38,.22)}
.btn-r:hover{background:linear-gradient(180deg,#d35a56,#b54340);box-shadow:0 2px 8px rgba(161,38,38,.34);transform:translateY(-1px)}
.btn-sm{padding:5px 11px;font-size:12px}
.btn-icon{width:28px;height:28px;padding:0;justify-content:center;background:#252b33;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px;color:var(--text2);transition:all .15s}
.btn-icon:hover{background:var(--red-l);color:var(--red);border-color:var(--red)}

/* ── Estimate table ─────────────────────────────────── */
.et{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.et th{background:linear-gradient(180deg,#272d36,#1f242b);color:var(--text3);padding:10px 10px;text-align:left;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.9px;white-space:nowrap;border-bottom:1px solid var(--border);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.et th:first-child{border-top-left-radius:var(--r-sm)}
.et th:last-child{border-top-right-radius:var(--r-sm)}
.et td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}
.et tr:hover td{background:rgba(255,255,255,.025)}
.et .gr td{background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.01));font-weight:600;font-size:11.5px;color:var(--text);padding:8px 10px;border-bottom:1px solid var(--border-2);letter-spacing:.2px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.et .tot td{background:linear-gradient(180deg,#232931,#1a1f26);color:#f4fdff;font-weight:600;padding:11px 10px;font-size:13px;letter-spacing:.3px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
/* Only the final Customer Price total carries the teal accent bar (on its right edge). */
/* THE CENTS MUST FIT. #tot-price is width:100% of this cell, and the cell had no floor, so auto
   table layout collapsed it to whatever was left (57px measured) while "$1,135,100.00" needs 117px.
   An <input> clips its overflow from the RIGHT at scrollLeft 0, so the number read "$135,100." —
   the cents silently gone off the end of the one figure the whole sheet is driving at.
   min-width sizes the COLUMN (auto layout honours it on a td); nowrap stops a wrap being the
   escape valve instead. 148px clears an 8-figure total at 13px/800 (measured, not guessed). */
.et .tot td.tot-price-cell{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset -3px 0 0 #2f9aa6,inset 1px 0 0 rgba(255,255,255,.17);background:rgba(255,255,255,.035);min-width:148px;white-space:nowrap}
/* The sheet's bottom SUBTOTAL price is the FINAL-PRICE pin entry (Ryan, 2026-08-24: this row,
   not the totals bar). It reuses .tprice-in so pinned/conflict/uw states come for free, but keeps
   the .tot row's own weight/size, and must never look like the smaller line inputs. */
.et .tot input#tot-price{font-size:13px;font-weight:800;color:#f4fdff;padding:2px 4px;letter-spacing:.3px}
.et .tot input#tot-price.pinned{color:var(--blue-m)}
.et .tot input#tot-price.uw{color:#e0a23b}
body.client-mode .et .tot input#tot-price{pointer-events:none}
.et input{border:1px solid var(--border);border-radius:5px;padding:4px 7px;font-size:12px;background:#13161b;color:var(--text);font-family:inherit;transition:all .12s}
.et input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 2px rgba(47,154,166,.2)}
.et input.qin{width:64px;text-align:right}
.et input.cin{width:84px;text-align:right}
.et input.min{width:50px;text-align:right}
/* ONE BASELINE FOR THE MONEY COLUMNS — the rule the Budget sheet got, applied to the
   estimate sheet (Ryan, 2026-08-20). A text cell and a price INPUT only line up by
   accident: the td centres its text inside .et td's 7px padding while an input adds a 1px
   border plus its own padding on top, so a section row drew its Markup box 5px below Cost
   and Price. Hand-tuning paddings would drift the moment a type size changed, so both
   boxes are pinned to the SAME line box instead — 16px line-height with 6px above and
   below, and the input takes 5px to pay for its border. Every money cell's text centre
   then lands 14px under the row's content top whatever size the type is.
   Parent header rows are deliberately NOT in here: they vertically centre against a tall
   title cell and already measure flush. */
#est-tbl td.est-money{padding:6px 10px;line-height:16px;vertical-align:top}
#est-tbl td.est-mu{padding:0 10px;vertical-align:top}
#est-tbl td.est-mu input.min{padding:5px 7px;line-height:16px}
#est-tbl td.est-price{padding:0;vertical-align:top}
#est-tbl td.est-price input.tprice-in{padding:5px 10px;line-height:16px}
/* THE PRICE BAND. On the Budget sheet the rule falls between plan and actual; here it falls
   on the internal/client boundary — every column left of Price carries .cm-cost and is
   withheld from the client view, Price is what they actually pay. Inset box-shadow, not
   border-left: .et collapses its borders and would drop the rule on some rows. */
/* Same floor for the parent-header SUBTOTAL inputs: they clip identically once a header passes
   seven figures, and a header total is a real price too. */
#est-tbl .est-band{background:rgba(255,255,255,.035);box-shadow:inset 1px 0 0 rgba(255,255,255,.17);min-width:148px;white-space:nowrap}
#est-tbl thead th.est-band{background:rgba(255,255,255,.06)}
.et input.din{width:100%;min-width:120px}
/* Template Edit modal: fixed-layout table so all columns fit the modal width (no horizontal scroll) */
#modal-tmpl .et{table-layout:fixed}
#modal-tmpl .et td input{width:100%;min-width:0;box-sizing:border-box}
#modal-tmpl .et td input.qin,#modal-tmpl .et td input.cin{text-align:right}
/* Editable cost-group (subsection) header name */
#modal-tmpl .et td input.tm-secname{font-weight:700;font-size:13px;color:var(--text);background:transparent;border:1px solid transparent;border-radius:5px;padding:3px 6px;width:auto;min-width:80px;flex:1 1 auto;box-sizing:border-box;cursor:text}
#modal-tmpl .et td input.tm-secname:hover{border-color:var(--border)}
#modal-tmpl .et td input.tm-secname:focus{outline:none;background:#13161b;border-color:var(--blue);box-shadow:0 0 0 2px rgba(47,154,166,.2)}

/* ── Badges ─────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:10.5px;font-weight:600;letter-spacing:.2px;line-height:1.2}
.b-blue{background:var(--blue-l);color:var(--blue)}
/* Dollar figures on the job cards read in the money green — same mint as the estimate
   sheet's Gross Profit (Ryan, 2026-08-17: "Make the dollar figure amounts in the active
   jobs green like our profit margin"). */
.b-money{background:rgba(84,211,162,.12);color:var(--money,#54d3a2)}
.b-green{background:var(--green-l);color:var(--green)}
.b-amber{background:var(--amber-l);color:var(--amber)}
.b-red{background:var(--red-l);color:var(--red)}
.b-gray{background:var(--gray-l);color:var(--gray)}

/* ── Voice (kept for AI chat panel) ─────────────────── */
.vbtn{width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;transition:.2s}
.vbtn.idle{background:var(--blue);color:#fff;box-shadow:0 2px 8px rgba(36,119,160,.32)}
.vbtn.rec{background:var(--red);color:#fff;animation:pulse 1s infinite}
@keyframes pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(161,38,38,.4)}50%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(161,38,38,0)}}
/* Refined entrance + update motion — soft fade/slide, settled easing */
@keyframes fadeSlideUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes totalPop{0%{transform:translateY(3px);opacity:.45}60%{opacity:1}100%{transform:translateY(0);opacity:1}}
/* Page-level entrance uses OPACITY ONLY — a lingering transform (from fill-mode)
   would turn the page into a containing block for its position:fixed descendants
   (the split collapse-tabs), knocking them out of alignment. Fade avoids that. */
.anim-in{animation:fadeIn .38s var(--ease-out)}
.total-updated{animation:totalPop .4s var(--ease-out)}
/* Respect reduced-motion preferences */
@media (prefers-reduced-motion:reduce){.anim-in,.total-updated{animation:none!important}}

/* ── Chat ───────────────────────────────────────────── */
/* PAGE CHROME (2026-09-13): the assistant is a widget on the page like everything else — it sits inside
   the page's own gutter (no more padding:0 / full-bleed), and the page itself is the flex column so the
   chat fills the fold. On a phone .main > .page.active is auto-height (css/33), so the chat becomes
   part of the one document there. */
#page-assistant.active{display:flex;flex-direction:column}
.chat-wrap{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid var(--border-2);border-radius:var(--r);overflow:hidden;background:var(--bg-page)}
.chat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg-page)}
.msg{max-width:80%}
.msg.user{align-self:flex-end}
.msg.ai{align-self:flex-start}
.msg-bub{padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.55;box-shadow:var(--sh-sm)}
.msg.user .msg-bub{background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.msg.ai .msg-bub{background:linear-gradient(180deg,#252b33,#1f242b);border:1px solid var(--border-2);border-bottom-left-radius:4px}
.msg-lbl{font-size:10px;color:var(--text3);margin-bottom:3px;padding:0 5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.chat-bar{padding:12px 16px;background:linear-gradient(180deg,#1f242b,#1b1f26);border-top:1px solid var(--border);display:flex;gap:10px;align-items:flex-end;box-shadow:0 -2px 10px rgba(0,0,0,.3)}
.ci{flex:1;border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 12px;font-size:13px;resize:none;outline:none;max-height:100px;font-family:inherit;transition:all .15s}
.ci:focus{border-color:var(--blue-m);box-shadow:0 0 0 3px rgba(61,138,224,.12)}

/* ── Layout helpers ─────────────────────────────────── */
.fr{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fb{display:flex;justify-content:space-between;align-items:center}
/* TEMPLATES PAGE — every master template card presents an IDENTICAL Edit/Delete pair,
   seeded or user-added (Ryan, 2026-08-19: "conveyor belt dig master template displaying
   edit and delete button differently than others... fix this so that any new master
   templates added display like the others"). The button group used to be a plain .fr,
   which inherits flex-wrap:wrap and is shrinkable — so a long template name could squeeze
   it and wrap Delete under Edit, making one card look unlike its neighbours. Pinning the
   group (never shrink, never wrap) and letting the NAME ellipsis instead makes the control
   pair a constant. The ≤980px block later in this file still stacks them on purpose. */
#page-templates .card.crow .fr{flex:0 0 auto;flex-wrap:nowrap}
#page-templates .card.crow .fb > div:first-child{min-width:0}
#page-templates .card.crow .fw{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Stat cards ─────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.sc{background:linear-gradient(180deg,#252b33,#1f242b);border:1px solid var(--border-2);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh-sm);transition:all .18s;position:relative;overflow:hidden}
.sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue) 0%,var(--blue-m) 100%);opacity:.8}
.sc:hover{box-shadow:var(--sh);transform:translateY(-1px)}
.sc-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-weight:700}
.sc-val{font-size:22px;font-weight:700;letter-spacing:-.5px;color:var(--text)}
.sc-sub{font-size:10.5px;color:var(--text3);margin-top:3px}

/* ── Project cards ──────────────────────────────────── */
.pg{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.pc{background:linear-gradient(180deg,#252b33,#1f242b);border:1px solid var(--border-2);border-radius:var(--r);padding:16px;cursor:pointer;transition:all .18s;box-shadow:var(--sh-sm)}
.pc.pc-job{display:flex;flex-direction:column;min-height:250px}
/* PROJECT CARDS (2026-09-14, Ryan: "make the text larger to be more legible"): the card's type is set
   here, not inline, so the phone tier (css/33) can raise it again. */
.pc.pc-job .pc-name{font-size:15.5px}
.pc.pc-job .ts.tm{font-size:12.5px}
.pc.pc-job .badge{font-size:11px}
.pc.pc-job .pc-actions{display:flex;gap:8px;margin-top:12px}
/* A button never wraps its own label: the shield button takes the width its words need, its
   neighbour fills the rest (an equal split wrapped "Warranty & service" onto two lines at 330px). */
.pc.pc-job .pc-actions .btn{flex:1 1 auto;min-width:0;white-space:nowrap;justify-content:center}
.pc.pc-job:hover{border-color:var(--blue,#2fa1ad);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.pc:hover{box-shadow:var(--sh);border-color:var(--blue-m);transform:translateY(-2px)}
.pbar{height:6px;background:var(--border-2);border-radius:3px;overflow:hidden;margin:10px 0 4px}
.pfill{height:100%;background:linear-gradient(90deg,var(--blue) 0%,var(--blue-m) 100%);border-radius:3px;transition:width .3s}

/* ── Tabs ─────────────────────────────────────────────
   One recipe for every underline tab strip: constant font-weight (no width
   jitter on switch), teal underline painted as an INSET shadow (never clipped
   by the scroll container), soft hover wash, and horizontal scroll on narrow
   screens instead of squashing or wrapping. */
.tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:16px;gap:2px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{height:5px}
.tabs::-webkit-scrollbar-thumb{background:var(--gray-m);border-radius:3px}
.tab{padding:10px 16px;font-size:13px;cursor:pointer;color:var(--text2);font-weight:600;white-space:nowrap;flex-shrink:0;border-radius:8px 8px 0 0;box-shadow:inset 0 -2px 0 transparent;transition:color .15s,background .15s,box-shadow .15s}
.tab:hover{color:var(--text);background:rgba(47,161,173,.08)}
.tab.active{color:var(--blue-m);background:rgba(47,161,173,.10);box-shadow:inset 0 -2px 0 var(--blue)}

/* ── Modal overlay ──────────────────────────────────── */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(6,8,11,.62);backdrop-filter:blur(3px);z-index:100;align-items:center;justify-content:center}
.modal-bg.open{display:flex}
.modal{background:linear-gradient(180deg,#252b33,#1e242b);border:1px solid var(--border-2);border-radius:var(--r);padding:26px;width:540px;max-width:92vw;max-height:85vh;overflow-y:auto;box-shadow:var(--sh-lg)}
.modal h3{font-size:16px;font-weight:700;margin-bottom:16px;letter-spacing:-.2px}

/* ── Feature chips ──────────────────────────────────── */
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-bottom:14px}
.chip{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:linear-gradient(180deg,#252b33,#1f242b);font-size:12.5px;font-weight:500;transition:all .15s;box-shadow:var(--sh-xs)}
.chip:hover{border-color:var(--blue-m);background:var(--blue-soft);transform:translateY(-1.5px);box-shadow:var(--sh-sm);transition:all .22s var(--ease)}
.chip.sel{border-color:var(--blue);background:var(--blue-l);color:var(--blue);font-weight:600;box-shadow:0 1px 3px rgba(36,119,160,.18)}
.chip.chip-empty{border-style:dashed;opacity:.82}
.chip .chip-empty-mark{font-style:normal;font-weight:600;font-size:10.5px;color:var(--amber);margin-left:4px;white-space:nowrap}
.chip input{width:14px;height:14px;accent-color:var(--blue);cursor:pointer}
/* Multi-draw picker checkbox (invoicing payment schedule) — matches .btn-p when ticked */
.invx-dpick{display:inline-flex;align-items:center;vertical-align:middle;margin-right:10px;cursor:pointer}
.invx-dpick input{appearance:none;-webkit-appearance:none;margin:0;width:18px;height:18px;flex-shrink:0;border:1.5px solid var(--border);border-radius:var(--r-xs);background:rgba(0,0,0,.22);cursor:pointer;position:relative;transition:border-color .13s,background .13s}
.invx-dpick:hover input{border-color:var(--teal)}
.invx-dpick input:checked{border-color:#2fa1ad;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 12px 12px no-repeat, linear-gradient(180deg,#2fa1ad,#1c7e8a);box-shadow:0 1px 0 rgba(255,255,255,.16) inset,0 1px 3px rgba(31,126,138,.3)}
.invx-dpick input:focus-visible{outline:2px solid var(--teal);outline-offset:2px}

/* ── Misc ───────────────────────────────────────────── */
.sep{height:1px;background:var(--border-2);margin:14px 0}
.tr{text-align:right}
.tm{color:var(--text3)}
.ts{font-size:12px}
.fw{font-weight:600}
.empty{text-align:center;padding:48px;color:var(--text3);font-size:13px}
.search-box{border:1px solid var(--border);border-radius:var(--r-sm);padding:8px 12px;font-size:13px;outline:none;width:280px;background:#13161b;color:var(--text);font-family:inherit;transition:all .15s}
.search-box:hover{border-color:var(--gray-m)}
.search-box:focus{border-color:var(--blue-m);box-shadow:0 0 0 3px rgba(61,138,224,.12)}
::-webkit-scrollbar{width:7px;height:7px}
::-webkit-scrollbar-thumb{background:var(--gray-m);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--gray)}
@media print{.sb,.no-print{display:none!important}.main{overflow:visible}.et th{background:#173F52!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.card{box-shadow:none;border:1px solid #ccc}}

/* ── Sticky total bar ───────────────────────────────── */
.est-sticky{flex-shrink:0;background:linear-gradient(160deg,rgba(28,81,104,.88) 0%,rgba(23,63,82,.90) 55%,rgba(16,47,62,.92) 100%);-webkit-backdrop-filter:blur(20px) saturate(140%);backdrop-filter:blur(20px) saturate(140%);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:13px 22px;border-radius:0;z-index:10;box-shadow:0 -8px 40px rgba(11,38,52,.34),0 -1px 0 rgba(255,255,255,.10) inset;gap:0;border-top:1px solid rgba(255,255,255,.14);margin:0;transition:box-shadow .3s var(--ease)}
.est-sticky-item{text-align:center;padding:0 24px;flex:1}
.est-sticky-item+.est-sticky-item{border-left:1px solid rgba(255,255,255,.12)}
.est-sticky-item.center-hero{flex:1.6;padding:0 32px}
.est-sticky-lbl{font-size:10px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.9px;margin-bottom:4px;font-weight:600}
.est-sticky-val{font-size:18px;font-weight:700;white-space:nowrap;letter-spacing:-.3px}
/* Client Mode — hide all cost, markup & profit; show only customer-facing pricing */
body.client-mode .cm-cost{display:none!important}
#btn-client-mode.active,#se-fieldmode-btn.active{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:700}
#btn-client-mode.active:hover,#se-fieldmode-btn.active:hover{filter:brightness(1.08)}
/* Editable target-price inputs (line / section / header) — type a total, markup back-fills */
.tprice-in{width:100%;border:1px solid transparent;background:transparent;text-align:right;font-family:inherit;outline:none;border-radius:5px;cursor:text;transition:border-color .12s,background .12s,box-shadow .12s}
.et input.tprice-in{background:transparent;border-color:transparent}
.et input.tprice-in:hover{border-color:var(--border)}
.et input.tprice-in:focus{background:#13161b;border-color:var(--blue-m)}
.tprice-in:hover{border-color:var(--border)}
.tprice-in:focus{border-color:var(--blue-m);background:#13161b;box-shadow:0 0 0 3px rgba(47,154,166,.18)}
.tprice-in.pinned{color:var(--blue-m)}
/* A quantity the user typed by hand is held against the auto-populate (see _withQtyGuard).
   Same colour-only treatment as a pinned price — nothing moves, nothing resizes; the number
   just stops looking machine-derived, so a held quantity can never become an invisible state. */
.qin.qheld{color:var(--blue-m)}
/* A pinned price sitting BELOW its extended cost — amber, always on (see _tpUnderwater). */
.tprice-in.uw{color:#e0a23b;border-color:rgba(224,162,59,.55)}
/* Pin decision bar — a spec change touched pinned prices; Keep or Re-figure (see _pinPromptRender).
   Same visual family as the est-notice toast, parked just above the totals bar, never modal. */
#est-pin-prompt{position:fixed;left:50%;bottom:64px;transform:translateX(-50%);z-index:var(--z-modal);background:#1c5168;color:#eafcff;border:1px solid rgba(159,219,228,.4);border-radius:12px;padding:12px 40px 12px 16px;font:500 12.5px system-ui,-apple-system,sans-serif;box-shadow:0 6px 22px rgba(0,0,0,.35);max-width:640px;min-width:320px}
#est-pin-prompt .epp-head{font-weight:700;font-size:13px;margin-bottom:8px}
#est-pin-prompt .epp-row{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:3px 0;border-top:1px solid rgba(159,219,228,.15)}
#est-pin-prompt .epp-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
#est-pin-prompt .epp-nums{color:#c9e8ee;white-space:nowrap}
#est-pin-prompt .epp-uw{color:#ffce7a;font-weight:700;white-space:nowrap}
#est-pin-prompt .epp-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:10px}
#est-pin-prompt .epp-x{position:absolute;top:8px;right:10px;background:none;border:none;color:#9fdbe4;font-size:13px;cursor:pointer;padding:2px}
@media (max-width:640px){#est-pin-prompt{left:8px;right:8px;transform:none;max-width:none;min-width:0}}
.tprice-in.conflict{color:#e8705a;border-color:rgba(224,90,90,.55)}
/* Spec-panel drag-to-reorder (mirrors the pool sheet) */
.tmpl-panel-grip{cursor:grab;color:var(--text3);font-size:11px;letter-spacing:-1px;padding:2px 4px;user-select:none;flex-shrink:0}
.tmpl-panel-grip:hover{color:var(--blue-m)}
.tmpl-panel-grip:active{cursor:grabbing}
.tspec-dragging{opacity:.45}

/* ── Notes ──────────────────────────────────────────── */
.notes-field{width:100%;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px;font-size:13px;background:#13161b;color:var(--text);resize:vertical;min-height:60px;outline:none;font-family:inherit;line-height:1.5;transition:all .15s}
.notes-field:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,154,166,.18)}

/* ── Collapsible spec cards (left pane) ─────────────── */
.spec-card-header{
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;user-select:none;margin-bottom:0;
  padding:2px 0;border-radius:var(--r-sm);
  transition:background .12s;
}
.spec-card-header:hover .spec-chevron{color:var(--blue-m)}
.spec-chevron{
  font-size:11px;color:var(--text3);
  transition:transform .2s ease,color .15s;
  flex-shrink:0;margin-left:8px;
}
.spec-card-header.open .spec-chevron{transform:rotate(0deg)}
.spec-card-header.closed .spec-chevron{transform:rotate(-90deg)}
.spec-card-body{
  overflow:visible;
  transition:max-height .25s ease,opacity .2s ease;
  max-height:100000px;opacity:1;
}
.spec-card-body.collapsed{max-height:0!important;opacity:0;overflow:hidden}
/* CTP-SAFETY START — Pool Safety Act card + live proposal preview */
#spec-card-safety .ctp-safe-intro{font-size:11.5px;line-height:1.5;color:var(--text3);margin-bottom:8px}
#spec-card-safety .ctp-safe-row{display:flex;align-items:flex-start;gap:9px;padding:7px 0;cursor:pointer;font-size:13px;color:var(--text);border-bottom:1px solid rgba(255,255,255,.04)}
#spec-card-safety .ctp-safe-row input{margin-top:2px;flex-shrink:0;width:15px;height:15px;accent-color:var(--blue-m);cursor:pointer}
#spec-card-safety .ctp-safe-prevlbl{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--text3);font-weight:700;margin:12px 0 6px}
#spec-card-safety .ctp-safe-preview{font-size:11.5px;line-height:1.55;color:var(--text2);background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:9px;padding:10px 11px}
#spec-card-safety .ctp-safe-preview ul{margin:0 0 8px;padding-left:16px}
#spec-card-safety .ctp-safe-preview li{margin:0 0 4px}
#spec-card-safety .ctp-safe-note{color:var(--text3);font-size:11px;margin:7px 0 0}
#spec-card-safety .ctp-safe-warn{color:#e0a23b}
#spec-card-safety .ctp-safe-muted{color:var(--text3)}
/* CTP-SAFETY END */
/* Summary line shown when a card is collapsed */
.spec-summary{
  font-size:11px;color:var(--text3);font-weight:400;
  margin-left:10px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;flex:1;letter-spacing:0;
  text-transform:none;
}
/* Sub-section collapse (Plumbing, Concrete) */
.spec-sub-header{
  display:flex;align-items:center;gap:8px;
  cursor:pointer;user-select:none;
  padding:4px 0;
  border-top:1px solid var(--border-2);margin-top:16px;padding-top:14px;
}
.spec-sub-header:hover .spec-sub-chevron{color:var(--blue-m)}
.spec-sub-chevron{font-size:10px;color:var(--text3);transition:transform .2s ease,color .15s;flex-shrink:0}
.spec-sub-header.open .spec-sub-chevron{transform:rotate(0deg)}
.spec-sub-header.closed .spec-sub-chevron{transform:rotate(-90deg)}
.spec-sub-body{overflow:hidden;transition:max-height .22s ease,opacity .18s ease;max-height:800px;opacity:1}
.spec-sub-body.collapsed{max-height:0!important;opacity:0}

/* Individual template panel collapse (each tspec-* panel inside Add-Ons) */
#tmpl-spec-panels > div:first-child{border-top:none!important;padding-top:4px!important}
.tmpl-panel-header{
  display:flex;align-items:center;gap:6px;
  margin-bottom:8px;flex-wrap:wrap;
}
.tmpl-panel-chevron{
  font-size:14px;color:var(--text2);
  cursor:pointer;user-select:none;
  width:26px;height:26px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:6px;background:#252b33;border:1px solid var(--border);
  transition:transform .2s ease,color .15s,background .12s,border-color .12s;
  flex-shrink:0;
}
.tmpl-panel-chevron:hover{color:var(--blue-m);background:rgba(61,138,224,.12);border-color:var(--blue-m)}
/* Add-on panel remove (X): small & muted so the collapse chevron is the easy target, not delete */
.tmpl-x{width:18px;height:18px;font-size:10px;padding:0;background:transparent;border:none;color:var(--text3);opacity:.4;border-radius:5px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:opacity .12s,color .12s,background .12s}
.tmpl-x svg.ic{width:11px;height:11px}
.tmpl-x:hover{opacity:1;color:#e0666e;background:rgba(224,102,110,.14)}
.tmpl-panel-chevron.closed{transform:rotate(-90deg)}
.tmpl-panel-body{
  overflow:hidden;
  transition:max-height .25s ease,opacity .2s ease;
  max-height:3000px;opacity:1;
}
.tmpl-panel-body.collapsed{max-height:0!important;opacity:0;margin-top:0}
/* Summary line shown when a template panel is collapsed */
.tmpl-panel-summary{
  font-size:11px;color:var(--text3);font-weight:400;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  letter-spacing:0;text-transform:none;
  flex:0 1 auto;min-width:0;
  padding-left:4px;
}

/* ── Saved estimates ────────────────────────────────── */
.se-row{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border-2);cursor:pointer;transition:all .12s}
/* Load is THE action on a saved estimate, at every width — the solid teal it already wears
   on phones and half-monitor windows (Ryan, 2026-08-17: "make load blue button like mobile
   and split screen when viewing full browser"). Scoped to the Project Manager list; the
   Settings team list reuses .se-row and has no Load. */
#page-projects .se-row .btn[onclick*="loadSavedEstimate"]{background:var(--blue-m,#2fa1ad);border-color:transparent;color:#fff;font-weight:700}
.se-row:hover{background:var(--blue-soft)}
.se-row:last-child{border-bottom:none}

/* CTP-BULK START — multi-select + bulk-action engine (themed dark/teal glass) */
/* Selection mode: rows show a faint pre-select hint on hover; no checkbox column. */
#se-body.ctp-selmode .se-row{ position:relative; }
#se-body.ctp-selmode .se-row::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:transparent; transition:background .14s; }
#se-body.ctp-selmode .se-row:hover{ background:var(--blue-soft); }
#se-body.ctp-selmode .se-row:hover::before{ background:rgba(92,198,209,.35); }
/* Selected: cyan left-accent bar + tinted bg + soft ring + a check that fades in at the RIGHT edge. */
.se-row.ctp-sel{ background:rgba(47,161,173,.12)!important; box-shadow:inset 0 0 0 1px rgba(92,198,209,.35); }
.se-row.ctp-sel::before{ background:var(--blue-m)!important; }
.se-row.ctp-sel::after{ content:"✓"; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:22px; height:22px; line-height:22px; text-align:center; border-radius:50%;
  background:var(--blue-m); color:#04232a; font-size:13px; font-weight:800;
  box-shadow:0 2px 8px rgba(37,201,212,.45); animation:ctpBulkCheck .16s ease both; }
@keyframes ctpBulkCheck{ from{ opacity:0; transform:translateY(-50%) scale(.6); } to{ opacity:1; transform:translateY(-50%) scale(1); } }
/* Saved-list select toolbar */
.se-toolbar{ display:flex; align-items:center; gap:10px; padding:0 2px 10px; flex-wrap:wrap; }
.se-toolbar .se-sel-links{ display:none; align-items:center; gap:6px; font-size:12.5px; color:var(--text3); }
.se-toolbar.on .se-sel-links{ display:inline-flex; }
.se-toolbar .se-sel-links a{ color:var(--blue-m); cursor:pointer; text-decoration:none; }
.se-toolbar .se-sel-links a:hover{ text-decoration:underline; }
.se-toolbar .se-sel-links .sep{ color:var(--border-2); }
/* Floating glass action bar */
#ctp-bulkbar{ position:fixed; left:50%; bottom:26px; transform:translate(-50%, 140%); z-index:var(--z-dialog);
  display:flex; align-items:center; gap:10px; padding:10px 12px 10px 18px; border-radius:16px;
  background:rgba(12,17,22,.72); -webkit-backdrop-filter:blur(16px) saturate(120%); backdrop-filter:blur(16px) saturate(120%);
  border:1px solid rgba(130,220,228,.18); color:#eaf6f8;
  box-shadow:0 18px 50px rgba(0,0,0,.5), 0 0 50px rgba(40,200,210,.10), inset 0 1px 0 rgba(180,240,244,.10);
  opacity:0; pointer-events:none; transition:transform .28s cubic-bezier(.16,1,.3,1), opacity .28s ease; max-width:94vw; }
#ctp-bulkbar.show{ transform:translate(-50%, 0); opacity:1; pointer-events:auto; }
#ctp-bulkbar .ctp-bulk-count{ font-size:13.5px; font-weight:700; letter-spacing:.2px; margin-right:4px; white-space:nowrap; }
#ctp-bulkbar .ctp-bulk-btn{ border:1px solid rgba(150,220,228,.22); background:rgba(255,255,255,.05); color:#dff3f5;
  border-radius:10px; padding:8px 14px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; white-space:nowrap; transition:all .13s; }
#ctp-bulkbar .ctp-bulk-btn:hover{ background:rgba(255,255,255,.10); border-color:rgba(150,220,228,.4); }
#ctp-bulkbar .ctp-bulk-btn.danger{ color:#ffb3ad; border-color:rgba(224,122,116,.4); background:rgba(224,122,116,.12); }
#ctp-bulkbar .ctp-bulk-btn.danger:hover{ background:rgba(224,122,116,.22); }
#ctp-bulkbar .ctp-bulk-clear{ background:transparent; border-color:transparent; color:var(--text3); padding:8px 8px; }
#ctp-bulkbar .ctp-bulk-clear:hover{ color:#eaf6f8; background:rgba(255,255,255,.06); }
/* Themed confirm dialog */
#ctp-bulk-confirm{ position:fixed; inset:0; z-index:var(--z-dialog); display:none; align-items:center; justify-content:center;
  background:rgba(4,8,11,.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); padding:24px; }
#ctp-bulk-confirm.show{ display:flex; }
#ctp-bulk-confirm .ctp-bc-card{ width:100%; max-width:380px; background:rgba(14,19,25,.96); border:1px solid rgba(130,220,228,.18);
  border-radius:18px; padding:24px 24px 18px; color:#eaf6f8; box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(180,240,244,.08);
  animation:ctpBcRise .22s cubic-bezier(.16,1,.3,1) both; }
#ctp-bulk-confirm .ctp-bc-title{ font-size:16px; font-weight:700; margin:0 0 6px; }
#ctp-bulk-confirm .ctp-bc-msg{ font-size:13.5px; color:#9fb6ba; line-height:1.5; margin:0 0 20px; }
#ctp-bulk-confirm .ctp-bc-row{ display:flex; justify-content:flex-end; gap:10px; }
#ctp-bulk-confirm .ctp-bc-btn{ border-radius:10px; padding:9px 16px; font-size:13.5px; font-weight:600; cursor:pointer; font-family:inherit; border:1px solid transparent; }
#ctp-bulk-confirm .ctp-bc-cancel{ background:rgba(255,255,255,.06); border-color:rgba(150,220,228,.18); color:#dff3f5; }
#ctp-bulk-confirm .ctp-bc-cancel:hover{ background:rgba(255,255,255,.11); }
#ctp-bulk-confirm .ctp-bc-ok{ background:linear-gradient(180deg,#e98b86,#d0635d); color:#2a0c0a; box-shadow:0 6px 18px rgba(208,99,93,.4); }
#ctp-bulk-confirm .ctp-bc-ok:hover{ filter:brightness(1.06); }
@keyframes ctpBcRise{ from{ opacity:0; transform:translateY(10px) scale(.98); } to{ opacity:1; transform:translateY(0) scale(1); } }
@media (prefers-reduced-motion:reduce){
  #ctp-bulkbar{ transition:opacity .12s linear; transform:translate(-50%,0); }
  #ctp-bulkbar:not(.show){ transform:translate(-50%,0); }
  .se-row.ctp-sel::after{ animation:none; }
  #ctp-bulk-confirm .ctp-bc-card{ animation:none; }
}
/* CTP-RN — clickable number gutter (estimate sheet). EVERY row is numbered continuously in display
   order (parent header, then each sub-section / line under it, never resetting). Click a number to
   select that row; click again to deselect. Numbers are top-aligned so they sit by the row title.
   Each number lives in a little pill (.estrn-n) so it reads as clickable and the selected state can
   glow without fighting the row's own background. A hairline divider separates the gutter column. */
#est-tbl .estrn-h{ width:38px; min-width:38px; max-width:38px; padding:0; box-shadow:inset -1px 0 0 var(--border); }
#est-tbl td.estrn{ width:38px; min-width:38px; max-width:38px; text-align:right; vertical-align:top;
  padding:7px 7px 0 0; cursor:pointer; user-select:none; box-shadow:inset -1px 0 0 var(--border);
  transition:box-shadow .12s; }
#est-tbl td.estrn .estrn-n{ display:inline-block; min-width:18px; padding:2px 5px; border-radius:7px;
  font-size:10px; font-weight:600; line-height:1.2; color:var(--text3); letter-spacing:.2px;
  font-variant-numeric:tabular-nums; font-feature-settings:"tnum"; text-align:center;
  background:transparent; transition:color .12s, background .12s, box-shadow .12s, transform .08s; }
/* hovering the ROW gently lifts its number; hovering the NUMBER itself shows the full accent pill */
#est-tbl tbody tr:hover > td.estrn .estrn-n{ color:var(--blue-m); background:rgba(47,161,173,.10); }
#est-tbl td.estrn:hover .estrn-n{ color:#06222a; background:var(--blue-m); box-shadow:0 2px 7px rgba(47,161,173,.4); transform:translateY(-.5px); }
/* selected: tint the whole row, rail the gutter edge, and make the number a solid accent chip */
#est-tbl tr.estrn-sel > td{ background:rgba(47,161,173,.13)!important; }
#est-tbl tr.estrn-sel > td.estrn{ box-shadow:inset 3px 0 0 var(--blue-m), inset -1px 0 0 var(--border); }
#est-tbl tr.estrn-sel > td.estrn .estrn-n{ background:var(--blue-m); color:#06222a; font-weight:800; box-shadow:0 2px 7px rgba(47,161,173,.45); }

/* Sticky multi-select action bar — locks to the top of the estimate sheet while a selection is live,
   so it sits right by the numbers you're clicking and never covers rows at the bottom. */
#estrn-bar{ position:sticky; top:8px; z-index:45; display:none; align-items:center; gap:9px;
  margin:0 0 12px; padding:8px 10px 8px 15px; border-radius:13px;
  background:linear-gradient(180deg, rgba(20,27,34,.94), rgba(12,17,22,.94));
  -webkit-backdrop-filter:blur(14px) saturate(125%); backdrop-filter:blur(14px) saturate(125%);
  border:1px solid rgba(130,220,228,.22); color:#eaf6f8;
  box-shadow:0 12px 32px rgba(0,0,0,.42), inset 0 1px 0 rgba(180,240,244,.10);
  animation:estrnBarIn .2s cubic-bezier(.16,1,.3,1); }
#estrn-bar.show{ display:flex; }
#estrn-bar .estrn-dot{ width:8px; height:8px; border-radius:50%; background:var(--blue-m); flex-shrink:0;
  box-shadow:0 0 0 4px rgba(47,161,173,.16); }
#estrn-bar .estrn-bcount{ font-size:13px; font-weight:600; letter-spacing:.2px; white-space:nowrap; color:#cfe7ea; }
#estrn-bar .estrn-bcount b{ color:#fff; font-weight:800; }
#estrn-bar .estrn-bsp{ flex:1; min-width:6px; }
#estrn-bar .estrn-btn{ border:1px solid rgba(150,220,228,.22); background:rgba(255,255,255,.05); color:#dff3f5;
  border-radius:9px; padding:7px 13px; font-size:12.5px; font-weight:600; cursor:pointer; font-family:inherit;
  white-space:nowrap; display:inline-flex; align-items:center; gap:6px; transition:all .13s; }
#estrn-bar .estrn-btn:hover{ background:rgba(255,255,255,.10); border-color:rgba(150,220,228,.4); }
#estrn-bar .estrn-btn .ic{ width:13px; height:13px; }
#estrn-bar .estrn-btn.danger{ color:#ffb3ad; border-color:rgba(224,122,116,.4); background:rgba(224,122,116,.12); }
#estrn-bar .estrn-btn.danger:hover{ background:rgba(224,122,116,.22); border-color:rgba(224,122,116,.6); }
#estrn-bar .estrn-clear{ background:transparent; border-color:transparent; color:var(--text3); padding:7px 9px; font-size:16px; line-height:1; }
#estrn-bar .estrn-clear:hover{ color:#eaf6f8; background:rgba(255,255,255,.06); }
@keyframes estrnBarIn{ from{ opacity:0; transform:translateY(-7px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce){ #estrn-bar{ animation:none; } }

/* ── CPICK — reusable cinematic multi-select (shared by Saved Estimates, Master Templates, etc.):
   no mode toggle; a hover-revealed pick circle per row; tinted+ringed selected row; sticky glass bar
   that mirrors the estimate sheet's #estrn-bar. Surfaces add class .crow + data-selid + a .cpick. */
.cpick{ flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; vertical-align:middle;
  width:20px; height:20px; min-width:20px; border-radius:50%; border:1.5px solid var(--border-2);
  background:rgba(255,255,255,.02); cursor:pointer; position:relative; align-self:center; box-sizing:border-box;
  opacity:.32; transform:scale(.82); transition:opacity .14s, transform .12s, background .12s, border-color .12s, box-shadow .12s; }
.crow:hover .cpick, .cpick.on, .cpick:focus-visible{ opacity:1; transform:scale(1); outline:none; }
.cpick:hover{ border-color:var(--blue-m); background:rgba(47,161,173,.16); }
.cpick::after{ content:""; position:absolute; left:50%; top:50%; width:9px; height:5px;
  border-left:2px solid #04232a; border-bottom:2px solid #04232a;
  transform:translate(-50%,-65%) rotate(-45deg) scale(.55); opacity:0; transition:opacity .12s, transform .12s; }
.cpick.on{ background:var(--blue-m); border-color:var(--blue-m); box-shadow:0 2px 8px rgba(37,201,212,.42); }
.cpick.on::after{ opacity:1; transform:translate(-50%,-65%) rotate(-45deg) scale(1); }
.crow.cron{ background:rgba(47,161,173,.12)!important; box-shadow:inset 0 0 0 1px rgba(92,198,209,.35); }
.crow.cron .cpick{ opacity:1; transform:scale(1); }
/* Sticky bar HOST: on table/list surfaces the bar lives in its own wrapper. Make that wrapper the
   sticky element (its containing block is the tall page/list, so the bar travels the full scroll)
   and let the inner .cbar sit static inside it — otherwise the bar is trapped in a shrink-wrapped
   host and scrolls away after one row. */
.cbar-stick{ position:sticky; top:8px; z-index:46; }
.cbar-stick .cbar{ position:static; top:auto; z-index:auto; }
/* sticky glass action bar (same language as the estimate sheet) */
.cbar{ position:sticky; top:8px; z-index:45; display:none; align-items:center; gap:9px;
  margin:0 0 12px; padding:8px 10px 8px 15px; border-radius:13px;
  background:linear-gradient(180deg, rgba(20,27,34,.94), rgba(12,17,22,.94));
  -webkit-backdrop-filter:blur(14px) saturate(125%); backdrop-filter:blur(14px) saturate(125%);
  border:1px solid rgba(130,220,228,.22); color:#eaf6f8;
  box-shadow:0 12px 32px rgba(0,0,0,.42), inset 0 1px 0 rgba(180,240,244,.10);
  animation:estrnBarIn .2s cubic-bezier(.16,1,.3,1); }
.cbar.show{ display:flex; }
.cbar .cbar-dot{ width:8px; height:8px; border-radius:50%; background:var(--blue-m); flex-shrink:0; box-shadow:0 0 0 4px rgba(47,161,173,.16); }
.cbar .cbar-count{ font-size:13px; font-weight:600; letter-spacing:.2px; white-space:nowrap; color:#cfe7ea; }
.cbar .cbar-count b{ color:#fff; font-weight:800; }
.cbar .cbar-sp{ flex:1; min-width:6px; }
.cbar .cbar-btn{ border:1px solid rgba(150,220,228,.22); background:rgba(255,255,255,.05); color:#dff3f5;
  border-radius:9px; padding:7px 13px; font-size:12.5px; font-weight:600; cursor:pointer; font-family:inherit;
  white-space:nowrap; display:inline-flex; align-items:center; gap:6px; transition:all .13s; }
.cbar .cbar-btn:hover{ background:rgba(255,255,255,.10); border-color:rgba(150,220,228,.4); }
.cbar .cbar-btn .ic{ width:13px; height:13px; }
.cbar .cbar-btn.danger{ color:#ffb3ad; border-color:rgba(224,122,116,.4); background:rgba(224,122,116,.12); }
.cbar .cbar-btn.danger:hover{ background:rgba(224,122,116,.22); border-color:rgba(224,122,116,.6); }
.cbar .cbar-clear{ background:transparent; border-color:transparent; color:var(--text3); padding:7px 9px; font-size:16px; line-height:1; }
.cbar .cbar-clear:hover{ color:#eaf6f8; background:rgba(255,255,255,.06); }
@media (prefers-reduced-motion:reduce){ .cbar{ animation:none; } .cpick{ transition:none; } }

/* Estimate "Move to…" destination picker */
#estmove-modal{ position:fixed; inset:0; z-index:var(--z-dialog); display:none; align-items:flex-start; justify-content:center;
  background:rgba(4,8,11,.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); padding:64px 20px 20px; }
#estmove-modal.show{ display:flex; }
#estmove-modal .emv-card{ width:100%; max-width:440px; max-height:72vh; display:flex; flex-direction:column;
  background:rgba(14,19,25,.97); border:1px solid rgba(130,220,228,.18); border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(180,240,244,.08); color:#eaf6f8; overflow:hidden;
  animation:ctpBcRise .2s cubic-bezier(.16,1,.3,1) both; }
#estmove-modal .emv-title{ font-size:15px; font-weight:700; padding:16px 18px 10px; }
#estmove-modal .emv-title b{ color:var(--blue-m); }
#estmove-modal .emv-search{ margin:0 18px 10px; padding:9px 12px; border-radius:9px; border:1px solid var(--border);
  background:#0e1318; color:var(--text); font-family:inherit; font-size:13px; outline:none; }
#estmove-modal .emv-search:focus{ border-color:var(--blue-m); }
#estmove-modal .emv-list{ overflow-y:auto; padding:0 12px 6px; }
#estmove-modal .emv-row{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; cursor:pointer;
  background:transparent; border:1px solid transparent; border-radius:10px; padding:9px 11px; margin-bottom:3px;
  color:#dff3f5; font-family:inherit; font-size:13px; transition:background .1s, border-color .1s; }
#estmove-modal .emv-row:hover{ background:rgba(47,161,173,.14); border-color:rgba(92,198,209,.35); }
#estmove-modal .emv-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
#estmove-modal .emv-dot.parent{ background:var(--brand); }
#estmove-modal .emv-dot.section{ background:var(--blue-m); }
#estmove-modal .emv-dot.top{ background:var(--text3); }
#estmove-modal .emv-nm{ font-weight:600; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#estmove-modal .emv-sub{ font-size:11px; color:var(--text3); flex-shrink:0; }
#estmove-modal .emv-empty{ padding:16px; color:var(--text3); font-size:12.5px; text-align:center; }
#estmove-modal .emv-foot{ padding:10px 18px 16px; display:flex; justify-content:flex-end; border-top:1px solid var(--border); margin-top:6px; }
#estmove-modal .emv-cancel{ background:rgba(255,255,255,.06); border:1px solid rgba(150,220,228,.18); color:#dff3f5;
  border-radius:9px; padding:8px 16px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; }
#estmove-modal .emv-cancel:hover{ background:rgba(255,255,255,.11); }

/* Estimate version-history modal */
#esthist-modal{ position:fixed; inset:0; z-index:var(--z-dialog); display:none; align-items:flex-start; justify-content:center;
  background:rgba(4,8,11,.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); padding:60px 20px 20px; }
#esthist-modal.show{ display:flex; }
#esthist-modal .ehv-card{ width:100%; max-width:480px; max-height:74vh; display:flex; flex-direction:column;
  background:rgba(14,19,25,.97); border:1px solid rgba(130,220,228,.18); border-radius:16px;
  box-shadow:0 30px 80px rgba(0,0,0,.6), inset 0 1px 0 rgba(180,240,244,.08); color:#eaf6f8; overflow:hidden;
  animation:ctpBcRise .2s cubic-bezier(.16,1,.3,1) both; }
#esthist-modal .ehv-title{ font-size:15px; font-weight:700; padding:16px 18px 12px; display:flex; align-items:baseline; gap:8px; }
#esthist-modal .ehv-sub{ font-size:12px; font-weight:600; color:var(--text3); }
#esthist-modal .ehv-list{ overflow-y:auto; padding:0 12px 6px; }
#esthist-modal .ehv-row{ display:flex; align-items:center; gap:11px; padding:10px 11px; margin-bottom:3px; border-radius:10px;
  border:1px solid transparent; transition:background .1s, border-color .1s; }
#esthist-modal .ehv-row:hover{ background:rgba(47,161,173,.10); border-color:rgba(92,198,209,.28); }
#esthist-modal .ehv-dot{ width:8px; height:8px; border-radius:50%; background:var(--blue-m); flex-shrink:0; box-shadow:0 0 0 4px rgba(47,161,173,.14); }
#esthist-modal .ehv-main{ flex:1; min-width:0; }
#esthist-modal .ehv-lbl{ font-size:13px; font-weight:700; color:#eaf6f8; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#esthist-modal .ehv-meta{ font-size:11.5px; color:var(--text3); margin-top:2px; }
#esthist-modal .ehv-restore{ flex-shrink:0; background:rgba(47,161,173,.16); border:1px solid rgba(92,198,209,.4); color:#bdeef2;
  border-radius:8px; padding:6px 13px; font-size:12px; font-weight:700; cursor:pointer; font-family:inherit; transition:all .12s; }
#esthist-modal .ehv-restore:hover{ background:var(--blue-m); color:#06222a; }
#esthist-modal .ehv-row.is-current{ background:rgba(47,161,173,.08); border-color:rgba(92,198,209,.22); }
#esthist-modal .ehv-current{ flex-shrink:0; display:inline-flex; align-items:center; gap:5px; background:rgba(92,198,209,.10);
  border:1px solid rgba(92,198,209,.3); color:#9fdfe6; border-radius:8px; padding:6px 11px; font-size:11.5px; font-weight:700;
  letter-spacing:.02em; }
#esthist-modal .ehv-current::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--blue-m);
  box-shadow:0 0 0 3px rgba(47,161,173,.18); }
#esthist-modal .ehv-empty{ padding:24px 18px; color:var(--text3); font-size:12.5px; text-align:center; line-height:1.5; }
#esthist-modal .ehv-foot{ padding:10px 18px 16px; display:flex; justify-content:flex-end; border-top:1px solid var(--border); margin-top:6px; }
#esthist-modal .ehv-cancel{ background:rgba(255,255,255,.06); border:1px solid rgba(150,220,228,.18); color:#dff3f5;
  border-radius:9px; padding:8px 16px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; }
#esthist-modal .ehv-cancel:hover{ background:rgba(255,255,255,.11); }
/* CTP-BULK END */

/* ── Project detail / stages ────────────────────────── */
.proj-modal-stage{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.stage-btn{padding:5px 12px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid var(--border);background:#252b33;color:var(--text2);cursor:pointer;transition:all .15s;letter-spacing:.2px}
.stage-btn.active{background:linear-gradient(180deg,#226a73,#184e56);color:#eafcff;border-color:#2a7b86;box-shadow:0 2px 6px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.1)}
/* ── Parent row drag-and-drop ───────────────────────── */
.drag-handle{cursor:grab;opacity:.5;transition:opacity .15s,color .15s,transform .15s}
.parent-row:hover .drag-handle{opacity:1;color:var(--brand)}
.drag-handle:hover{transform:scale(1.15);color:var(--brand)}
.drag-handle:active{cursor:grabbing}
.parent-row[draggable="true"]{transition:opacity .15s,box-shadow .15s}
.line-grip{cursor:grab;color:var(--text3);font-size:11px;line-height:1;letter-spacing:-1px;padding:2px 1px;user-select:none;flex-shrink:0;opacity:.35;transition:opacity .12s,color .12s}
.line-grip:hover{opacity:1;color:var(--blue-m)}
.line-grip:active{cursor:grabbing}
tr.li-row:hover .line-grip{opacity:.7}
/* Drag-to-reorder drop indicator.
   The insert position between two parents is shown by a single FREE-FLOATING line
   (#ctp-drop-line, positioned in JS) that sits on the boundary between the two headers.
   It is its own element — never attached to a header — and it never changes any row's
   size, so the row under the cursor can't shift and the drag stays smooth (no jitter).
   NEST inside → a bold glowing ring, strong fill, accent bar, and a "↳ Nest inside" badge. */
#ctp-drop-line{
  position:fixed;z-index:var(--z-notice);height:6px;margin-top:-3px;border-radius:999px;
  pointer-events:none;display:none;
  background:linear-gradient(90deg,rgba(47,154,166,0),var(--blue) 12%,var(--blue-m) 50%,var(--blue) 88%,rgba(47,154,166,0));
  box-shadow:0 0 0 1px rgba(47,154,166,.45),0 0 20px 3px rgba(47,154,166,.70);
  animation:ctp-slotpulse .95s ease-in-out infinite;
}
/* rounded end-caps so the line reads as a distinct floating insert marker, not a row border */
#ctp-drop-line::before,#ctp-drop-line::after{
  content:'';position:absolute;top:50%;width:9px;height:9px;border-radius:50%;
  transform:translateY(-50%);background:var(--blue-m);
  box-shadow:0 0 8px 1px rgba(47,154,166,.8);
}
#ctp-drop-line::before{left:-2px}
#ctp-drop-line::after{right:-2px}
@keyframes ctp-slotpulse{0%,100%{opacity:.7;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.7)}}
/* NEST-inside target — shared by parent rows (mid-zone) and section rows */
.parent-row.drop-inside,tr.nest-hover{
  outline:2.5px solid var(--blue) !important;outline-offset:-2px;
  background:rgba(47,154,166,.18) !important;
  box-shadow:inset 5px 0 0 var(--blue),0 0 0 1px rgba(47,154,166,.40),0 0 22px rgba(47,154,166,.45) !important;
}
.parent-row.drop-inside > td:first-child,tr.nest-hover > td:first-child{position:relative}
.parent-row.drop-inside > td:first-child::after,tr.nest-hover > td:first-child::after{
  content:'↳ Nest inside';position:absolute;top:50%;right:14px;transform:translateY(-50%);
  font-family:var(--font-ui);font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
  color:#06281c;background:linear-gradient(180deg,var(--blue-m),var(--blue));
  padding:3px 9px;border-radius:999px;white-space:nowrap;pointer-events:none;
  box-shadow:0 2px 8px rgba(0,0,0,.35),0 0 12px rgba(47,154,166,.60);
  animation:ctp-nestpulse 1s ease-in-out infinite;
}
@keyframes ctp-nestpulse{0%,100%{transform:translateY(-50%) scale(1);opacity:.92}50%{transform:translateY(-50%) scale(1.08);opacity:1}}

/* ── Pool Sheet Tabs (Excel-style) ─────────────────────── */
.sheet-tabs-bar{
  display:flex;align-items:center;background:linear-gradient(180deg,#1b1f26,#16191e);border-bottom:1px solid var(--border);
  padding:0 24px;flex-shrink:0;overflow-x:auto;overflow-y:hidden;
  box-shadow:0 1px 0 rgba(0,0,0,.3);scrollbar-width:thin;
}
.sheet-tabs-bar::-webkit-scrollbar{height:6px}
.sheet-tabs-bar::-webkit-scrollbar-thumb{background:var(--gray-m);border-radius:3px}
.sheet-tab{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 16px;font-size:12.5px;font-weight:600;
  color:var(--text2);cursor:pointer;
  border:1px solid transparent;border-bottom:none;
  border-top-left-radius:6px;border-top-right-radius:6px;
  position:relative;top:1px;
  background:var(--bg2);
  white-space:nowrap;transition:all .15s;
  margin-right:2px;
  user-select:none;
}
.sheet-tab:hover{background:var(--blue-l);color:var(--blue)}
.sheet-tab.active{
  background:linear-gradient(180deg,#252b33,#1f242b);color:var(--text);
  border-color:var(--border);
  font-weight:700;
  box-shadow:0 2px 0 #2f9aa6 inset;
}
/* The close carried NO button chrome reset, so the browser's default grey button box
   showed through the border-radius as a dull blob — and the glyph was a text "×" at 11px,
   which never rendered crisply. It's a stroked SVG on a reset button now. */
.sheet-tab .sheet-close{
  appearance:none;-webkit-appearance:none;background:none;border:none;
  margin:0 -4px 0 4px;padding:0;width:17px;height:17px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--text3);cursor:pointer;font-family:inherit;flex:0 0 auto;
  transition:background .12s,color .12s;
}
.sheet-tab .sheet-close .ic{width:11px;height:11px;stroke-width:2.4;display:block}
.sheet-tab .sheet-close:hover{background:var(--red-l);color:var(--red)}
.sheet-tab .sheet-close:focus-visible{outline:2px solid var(--red);outline-offset:1px}
.sheet-tab.active .sheet-close{color:var(--text2)}
.sheet-tab-add{
  display:inline-flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:6px;
  cursor:pointer;color:var(--text3);font-size:16px;font-weight:700;
  background:transparent;border:none;margin-left:4px;
  transition:all .15s;
}
.sheet-tab-add:hover{background:var(--blue-l);color:var(--blue)}
.sheet-tab-rename{
  font-family:inherit;font-size:12.5px;font-weight:600;
  color:var(--text);background:var(--bg);
  border:1px solid #2f9aa6;border-radius:4px;
  padding:1px 6px;margin:-2px 0;min-width:60px;max-width:220px;
  outline:none;box-shadow:0 0 0 2px rgba(47,154,166,.25);
}


/* ═══════════════════ VISUAL OVERHAUL (presentation only) ═══════════════════
   Injected at end of main stylesheet so equal-specificity rules win by cascade.
   No JavaScript, IDs, handlers, or calculations are touched by this block. */
/* Inline line-icon system — replaces emoji app-wide */
.ic{width:16px;height:16px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-2px}
.ic.lg{width:18px;height:18px}
/* Elegant serif kept ONLY on identity headlines (brand + page titles) */
.sb-title{font-family:var(--font-display);font-weight:600;letter-spacing:.1px}
.ph-title{font-family:var(--font-display);font-weight:600;letter-spacing:-.1px}
/* Sidebar subtitle — teal jewel, not gold */
.sb-sub{color:var(--blue-m)}
/* Sidebar brand mark (wave logo) + nav icons */
.sb-logo-row{display:flex;align-items:center;gap:12px}
/* Brand mark v2 — matches the app icon: near-black field, teal glow, CTP monogram
   over the two-teal-wave underline. */
.brand-mark{width:36px;height:36px;flex-shrink:0;border-radius:10px;position:relative;overflow:hidden;background:linear-gradient(165deg,#121a22,#05080b);border:1px solid rgba(55,179,192,.4);box-shadow:0 5px 16px rgba(31,126,138,.35)}
.brand-mark::before{content:'';position:absolute;inset:0;background:radial-gradient(85% 60% at 50% 74%,rgba(55,179,192,.28),transparent 70%)}
.brand-mark .bm-t{position:absolute;left:0;right:0;top:21%;text-align:center;font-weight:900;font-size:11px;line-height:1;letter-spacing:.4px;color:#fff;font-family:'Hanken Grotesk',Arial,sans-serif}
.brand-mark svg{position:absolute;inset:0;width:100%;height:100%}
.ni-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text3)}
.ni.active .ni-icon{color:var(--blue-m)}
.ni-icon .ic{width:17px;height:17px}
/* Persistent teal divider — always-on separation */
.split-divider{background:linear-gradient(180deg,rgba(78,196,209,.85),rgba(27,125,137,.7))}
.split-divider::after{color:rgba(255,255,255,.9)}
.split-divider:hover,.split-divider.dragging{background:linear-gradient(180deg,#52c8d5,#1f8b98)}
/* Money axis helpers — green profit / red loss */
.amt-profit{color:var(--money)!important}
.amt-loss{color:var(--red)!important}
/* Toolbar icon alignment */
.btn .ic{vertical-align:-3px}
/* Toolbar overflow menu */
.tb-menu-wrap{position:relative;display:inline-flex}
.tb-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:188px;z-index:300;background:var(--bg2);border:1px solid var(--gray-m);border-radius:var(--r-sm);box-shadow:var(--sh-lg);padding:6px;display:none}
.tb-menu.open{display:block}
.tb-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:var(--r-xs);font-size:12.5px;font-weight:600;color:var(--text2);background:transparent;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:all .12s}
.tb-menu button:hover{background:var(--gray-l);color:var(--text)}
.tb-menu button .ic{color:var(--text3);width:15px;height:15px}
.btn-icon-sq{padding:6px 9px}

/* ── Universal document-thumbnail typed card (js/57 ctpDocCardInner) ─────────────────────────
   Shown inside any thumbnail box (.jpd-thumb / .cp-doc-thumb / .ehub-doc-thumb / .pc-file-thumb)
   when a file has no image preview (Word / PowerPoint / other): a paper rectangle with the
   file-type accent rule + an extension badge — never a blank tile, never a broken <img>. */
.dt-doc{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f6f7fb;border-radius:inherit;position:relative;overflow:hidden}
.dt-doc::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--dt-accent,#8a93a3)}
.dt-doc-ext{font-size:10px;font-weight:800;letter-spacing:.4px;color:var(--dt-accent,#8a93a3);font-family:var(--font-ui,'Inter',system-ui,sans-serif);line-height:1}
.jpd-thumb.big .dt-doc-ext{font-size:22px} .jpd-thumb.big .dt-doc::before{height:8px}
.dt-broken{display:inline-flex;align-items:center;justify-content:center;background:#f6f7fb}
.dt-broken::after{content:"\1F4C4";font-size:18px;opacity:.7}

