/* Shared Pulse page theme (Dave, Oct 12 2026: reuse first). Every signed-in page links this before its own styles.
   Light is the standard, in the logo's colors (Dave, Nov 11 2026: roof blue, leaf green, bold titles; it replaced the Apple grey
   of Oct 20 2026; body text stays the system font, 44px targets); Night is each person's choice (avatar menu), html[data-theme=night], set by pulse.js.
   Pages use these tokens, never their own colors: --bg ground, --panel card, --line border, --ink text, --dim second text,
   --cyan the accent (green in light), --on-acc text on an accent fill, --green/--amber/--red status, --soft/--warn-bg/--red-bg
   their tinted grounds, --input a typing box, --hover a row under the pointer. Gruppo (--display) is for the logo and big numbers only. */
@font-face{font-family:"Gruppo";src:url("/fonts/Gruppo.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Poppins";font-weight:600;src:url("/fonts/Poppins-600.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Poppins";font-weight:700;src:url("/fonts/Poppins-700.woff2") format("woff2");font-display:swap}
:root{--bg:#EDF1EF;--panel:#fff;--line:#C3CEC9;--sep:#DCE3DF;--ink:#13222B;--dim:#4A5A63;--cyan:#2F7A32;--on-acc:#fff;--green:#235C26;--amber:#8A4300;--red:#B3261E;
  --soft:#E3F0E1;--soft-ink:#235C26;--warn-bg:#FFF0D9;--red-bg:#FDEBEC;--input:#fff;--hover:rgba(15,53,80,.06);--shadow:0 1px 2px rgba(15,53,80,.10);
  /* BarrWood (Dave, Nov 11 2026: "the feel and colors of the logo ... bolder"): --bw-navy the roof blue darkened (menus, headers, titles),
     --bw-blue the roof (links on white), --bw-sky/--bw-band its tints (table heads, card title bars); --cyan stays the one action color, leaf green */
  --title:#0F3550;--bw-navy:#0F3550;--bw-navy-2:#1A4A6E;--bw-navy-ink:#D5E4EE;--bw-blue:#1E6A99;--bw-sky:#DCEBF5;--bw-band:#F4F7F5;--leaf-lt:#9CCB8F;
  --muted:var(--dim);--surface:var(--panel);--accent:var(--cyan);--warn:var(--amber);--house:#2F7A32;--house-hi:#2F7A32;--house-lo:#235C26;--leaf:#235C26;--leaf-hi:#235C26;
  --font:-apple-system,"SF Pro Text",Inter,system-ui,"Segoe UI",Roboto,sans-serif;--display:Poppins,var(--font);
  --code:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--mono:var(--font);color-scheme:light}
html[data-theme=night]{--bg:#02060b;--panel:rgba(6,20,32,.78);--line:rgba(41,227,255,.25);--sep:rgba(41,227,255,.12);--ink:#e6fbff;--dim:rgba(190,225,238,.68);--cyan:#29e3ff;--on-acc:#02121a;
  --green:#3dffa2;--amber:#ffb547;--red:#ff5d73;--soft:rgba(61,255,162,.12);--soft-ink:#3dffa2;--warn-bg:rgba(255,181,71,.12);--red-bg:rgba(255,93,115,.12);--input:#040e17;
  --hover:rgba(41,227,255,.08);--shadow:none;--title:var(--ink);--bw-navy:#06141f;--bw-navy-2:rgba(41,227,255,.14);--bw-navy-ink:rgba(190,225,238,.8);--bw-blue:#29e3ff;--bw-sky:rgba(41,227,255,.12);--bw-band:rgba(41,227,255,.06);--leaf-lt:#3dffa2;--display:Gruppo,var(--font);--mono:var(--code);color-scheme:dark}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.4;-webkit-font-smoothing:antialiased}
html[data-theme=night] body{background-image:radial-gradient(ellipse at top,rgba(41,227,255,.12),transparent 60%),radial-gradient(rgba(41,227,255,.07) 1px,transparent 1px);background-size:auto,26px 26px}
button,input,select,textarea{font-family:inherit}
/* Light: the old look's mono, letter-spaced, all-caps buttons read as the Apple look's plain words (night keeps them) */
html:not([data-theme=night]) :is(button,.btn,.mini,.seg button,.seg a,.tabs a,a.btn){text-transform:none;letter-spacing:0}
code,pre,kbd{font-family:var(--code)}
/* the big numbers (home's pulse numbers, stat tiles) keep the Gruppo display face; class pn-num for any new one */
:is(.pn-num,.pstat b,.tile .v,.stat b){font-family:var(--display);font-weight:700;font-variant-numeric:tabular-nums}
html[data-theme=night] :is(.pn-num,.pstat b,.tile .v,.stat b){font-weight:400;-webkit-text-stroke:.6px currentColor}
/* titles carry the wordmark's weight and the roof blue (Light); Night keeps its own */
html:not([data-theme=night]) :is(h1,h2){font-family:var(--display);color:var(--title);letter-spacing:-.01em}
/* pulse.ask / pulse.input sheets wear the roof blue across the top */
.pu-sheet{border-top:6px solid var(--bw-navy,#0F3550)!important}
/* the shared "add pictures" strip (pulse.js picStrip): every page, the Walk-Through included */
.pn-pics{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.pn-pic{position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;border:1px solid var(--line,#C3CEC9)}
.pn-pic img{width:100%;height:100%;object-fit:cover;display:block}
.pn-pic button{position:absolute;top:2px;right:2px;width:28px;height:28px;border:0;border-radius:14px;background:rgba(0,0,0,.6);color:#fff;font-size:18px;line-height:28px;padding:0;cursor:pointer}
.pn-picadd{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:12px;border:1px dashed var(--line,#C3CEC9);color:var(--cyan,#2F7A32);font-weight:600;cursor:pointer}
/* a pick list inside a sheet (desk/move.js: move an estimate to another customer) */
.mv-list{max-height:240px;overflow-y:auto;margin:6px 0} .mv-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 2px;cursor:pointer;border-bottom:1px solid var(--line,#e3e8ee)}
.mv-row input{width:20px;height:20px;flex:none;margin:0} .mv-row span{min-width:0;overflow-wrap:anywhere}
