/* MAG Dispatch — redesigned UI (design handoff: dispatch_redesign).
   One calm system: gold = brand + primary action only; green/amber/red = state;
   stage colors are labels, not decoration. Nunito Sans, 4px spacing scale,
   radius 8 inputs / 10 rows / 12 cards. Same body.dark mechanism as before. */

/* ===== Tokens ============================================================= */
:root{
  /* brand + surfaces */
  --ink:#0b0b0c; --paper:#f5f5f3; --panel:#ffffff; --panel-2:#fafaf8; --line:#e3e1db;
  --gold:#f6c718; --gold-dark:#d9ac00; --gold-text:#7d6200;
  --gold-soft:#fdf3cf; --gold-border:#f0dc8a;
  --text:#0b0b0c; --muted:#6d675e; --muted-2:#6f695f; --faint:#b0afa8; --faint-text:#726c63;
  /* semantic — state, never brand */
  --ok:#2f7a4a; --warn:#b5541f; --crit:#c2361f; --info:#1a5276;
  --ok-bg:#dcf0e2; --warn-bg:#fbe9e0; --crit-bg:#f5dcdc; --info-bg:#dcecf5;
  /* type */
  --font-ui:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'SFMono-Regular',ui-monospace,Consolas,Menlo,monospace;
  /* radius */
  --r-input:8px; --r-row:10px; --r-card:12px;
  /* stage colors: tint bg / deep text (deep doubles as the 4px row edge) */
  --st-new-bg:#fdf1cf;           --st-new:#8a5a00;
  --st-quoted-bg:#dcecf5;        --st-quoted:#1a5276;
  --st-scheduled-bg:#dcf0e2;     --st-scheduled:#1e6b3a;
  --st-parts_ordered-bg:#fbe6d4; --st-parts_ordered:#8a4a1a;
  --st-parts_in-bg:#e6f0d4;      --st-parts_in:#4a6b1a;
  --st-in_progress-bg:#e5dcf5;   --st-in_progress:#5a2a8a;
  --st-calibration-bg:#d4e8f0;   --st-calibration:#1a5a6b;
  --st-invoiced-bg:#dcecf5;      --st-invoiced:#1a5276;
  --st-paid-bg:#dcf0e2;          --st-paid:#1e6b3a;
  --st-cancelled-bg:#f5dcdc;     --st-cancelled:#8a2a2a;
}
body.dark{
  --paper:#131316; --panel:#1e1e22; --panel-2:#1a1a1d; --line:#34343a;
  --text:#e8e6e0; --muted:#a8a29a; --muted-2:#9b948a; --faint:#5d5c57; --faint-text:#8f887e;
  --gold-text:#f6c718; --gold-soft:#2a2410; --gold-border:#4a3f14;
  --ok-bg:#15401f; --warn-bg:#3a2317; --crit-bg:#3a1a17; --info-bg:#15304a;
  --st-new-bg:#4a3a10; --st-new:#f0c96a;
  --st-paid-bg:#15401f; --st-paid:#7fd99a;
  --st-scheduled-bg:#15401f; --st-scheduled:#7fd99a;
  --st-parts_ordered-bg:#42301a; --st-parts_ordered:#e8b07a;
  --st-parts_in-bg:#2c3a17; --st-parts_in:#b5d97a;
  --st-in_progress-bg:#3a1f4a; --st-in_progress:#c99af0;
  --st-quoted-bg:#15304a; --st-quoted:#8ac0f0;
  --st-invoiced-bg:#15304a; --st-invoiced:#8ac0f0;
  --st-calibration-bg:#143540; --st-calibration:#7ac8dd;
  --st-cancelled-bg:#3a1a17; --st-cancelled:#f0a09a;
}

/* ===== Base =============================================================== */
*{box-sizing:border-box;}
[hidden]{display:none !important;} /* beat any display rule on hidden elements */
html{-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--paper); color:var(--text);
  font:400 13.5px/1.5 var(--font-ui);
  -webkit-font-smoothing:antialiased;
}
a{color:var(--info);}
button{font-family:var(--font-ui);cursor:pointer;}
:focus-visible{outline:2px solid var(--gold-dark);outline-offset:2px;} /* never browser blue */
::placeholder{color:var(--faint);}

.wrap{max-width:1780px;margin:0 auto;padding:24px 28px 64px;}
@media (max-width:700px){.wrap{padding:16px 14px 56px;}}

/* uppercase mini-label — the kit's workhorse */
.lb,.d-lbl,.metric-label{
  display:block;font:700 10px/1 var(--font-ui);letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted-2);margin:0 0 6px;
}

/* Header, menus and sign in: see DESIGN SYSTEM v3 at the end of this file. */

/* ===== Buttons ============================================================ */
/* Buttons: see DESIGN SYSTEM v3 at the end of this file. */

/* ===== Inputs / fields ==================================================== */
input,select,textarea{
  width:100%;border:1px solid var(--line);border-radius:var(--r-input);
  background:var(--panel);color:var(--text);
  height:38px;padding:0 11px;font:400 13.5px var(--font-ui);
}
textarea{height:auto;padding:9px 11px;line-height:1.5;resize:vertical;}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted-2) 50%),linear-gradient(135deg,var(--muted-2) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px;}
@media (pointer:coarse){input,select,textarea{font-size:16px;}} /* no iOS zoom */
.field{margin-bottom:12px;}
.field label{display:block;font:700 10px/1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin:0 0 6px;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
@media (max-width:560px){.row,.row3{grid-template-columns:1fr;}}
.checks{display:flex;flex-direction:column;gap:8px;margin:6px 0;}
.checks label{display:flex;align-items:center;gap:8px;font:600 13px var(--font-ui);color:var(--text);cursor:pointer;text-transform:none;letter-spacing:0;}
.checks input[type=checkbox]{width:17px;height:17px;accent-color:var(--ink);flex:none;}
input[type=checkbox]{width:auto;height:auto;}
.money input{font-variant-numeric:tabular-nums;}

/* ===== Pills & chips ====================================================== */
.badge{
  display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:11px;
  font:800 10.5px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;
  background:var(--paper);color:var(--muted);vertical-align:middle;
}
.badge.new{background:var(--st-new-bg);color:var(--st-new);}
.badge.quoted{background:var(--st-quoted-bg);color:var(--st-quoted);}
.badge.scheduled{background:var(--st-scheduled-bg);color:var(--st-scheduled);}
.badge.parts_ordered{background:var(--st-parts_ordered-bg);color:var(--st-parts_ordered);}
.badge.parts_in{background:var(--st-parts_in-bg);color:var(--st-parts_in);}
.badge.in_progress{background:var(--st-in_progress-bg);color:var(--st-in_progress);}
.badge.calibration{background:var(--st-calibration-bg);color:var(--st-calibration);}
.badge.invoiced{background:var(--st-invoiced-bg);color:var(--st-invoiced);}
.badge.paid{background:var(--st-paid-bg);color:var(--st-paid);}
.badge.cancelled{background:var(--st-cancelled-bg);color:var(--st-cancelled);}
.badge.gold{background:var(--gold-soft);color:var(--gold-text);}
.badge.outline{background:none;border:1px solid var(--ink);color:var(--text);}
body.dark .badge.outline{border-color:var(--text);}
.chip{
  display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:12px;
  background:var(--paper);border:1px solid var(--line);
  font:600 11.5px var(--font-ui);color:var(--muted);white-space:nowrap;
}
.chip.warn{background:var(--warn-bg);border-color:#eed5cf;color:var(--warn);}
.chip.assignee{background:var(--info-bg);border-color:#c9d8ee;color:var(--info);}
body.dark .chip.assignee{border-color:#2a4a6a;}
.chip.gold{background:var(--gold-soft);border-color:var(--gold-border);color:var(--text);font-weight:700;}

/* ===== Page header ======================================================== */
.page-head,.view-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.page-title,.section-title{font:800 24px/1.2 var(--font-ui);color:var(--text);margin:0;}
h2.section-title{font-size:17px;margin:18px 0 8px;}
.page-sub,.section-sub{font:400 13px var(--font-ui);color:var(--muted);margin-top:2px;}
.head-spacer{flex:1;}
.head-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;}

/* segmented control (ranges, filters, toggles) */
.filter-row{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;}
/* Segmented: .seg, see DESIGN SYSTEM v3. */
.filter-btn{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 14px;font:700 12.5px var(--font-ui);color:var(--muted);}
.filter-btn.active{background:var(--ink);border-color:var(--ink);color:#fff;}

/* ===== Cards & rows ======================================================= */
.card,.crd{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;margin-bottom:14px;}
.card h2{font:800 15px var(--font-ui);margin:0 0 10px;color:var(--text);}
.empty b{display:block;font:700 14px var(--font-ui);color:var(--text);margin-bottom:3px;}
.hint{font:400 12px var(--font-ui);color:var(--muted-2);}
.line-item{display:flex;justify-content:space-between;gap:12px;font:400 13px var(--font-ui);color:var(--muted);padding:6px 0;border-bottom:1px solid var(--paper);}
.line-item span:last-child{font-variant-numeric:tabular-nums;}
.line-item.total{border-bottom:none;font-weight:800;color:var(--text);}
body.dark .line-item{border-bottom-color:#26262b;}

/* THE job row — one component everywhere */
.jrow{
  display:flex;align-items:center;gap:14px;padding:12px 16px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-row);
  margin-bottom:8px;cursor:pointer;transition:border-color .12s;
}
.jrow:hover{border-color:var(--muted-2);}
.jr-edge{width:4px;align-self:stretch;border-radius:2px;flex:none;background:var(--line);}
.jr-time{font:800 13px var(--font-ui);color:var(--text);width:76px;flex:none;font-variant-numeric:tabular-nums;}
.jr-main{flex:1;min-width:0;}
.jr-line{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
.jr-name{font:700 14.5px var(--font-ui);color:var(--text);}
.jr-sub{font:400 12.5px var(--font-ui);color:var(--muted);}
.jr-meta{display:flex;gap:6px;margin-top:5px;align-items:center;flex-wrap:wrap;}
.jr-block{font:700 12px var(--font-ui);color:var(--warn);}
.jr-price{font:800 15px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;}
.jr-price.none{color:var(--muted-2);font-weight:400;}
.jrow.done{opacity:1;background:var(--panel-2);} .jrow.done .jr-edge{opacity:.55;} /* 'done' reads as quiet, not as low-contrast */
/* stage edge colors */
.edge-new{background:var(--st-new);} .edge-quoted{background:var(--st-quoted);}
.edge-scheduled{background:var(--st-scheduled);} .edge-parts_ordered{background:var(--st-parts_ordered);}
.edge-parts_in{background:var(--st-parts_in);} .edge-in_progress{background:var(--st-in_progress);}
.edge-calibration{background:var(--st-calibration);} .edge-invoiced{background:var(--st-invoiced);}
.edge-paid{background:var(--st-paid);} .edge-cancelled{background:var(--st-cancelled);}

/* legacy fallback (old .job-card markup, if any remains) */
.job-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-row);padding:12px 16px;margin-bottom:8px;cursor:pointer;}
.jc-top{display:flex;justify-content:space-between;gap:10px;}
.jc-name{font:700 14.5px var(--font-ui);color:var(--text);}
.jc-veh{font:400 12.5px var(--font-ui);color:var(--muted);}
.jc-price{font:800 15px var(--font-ui);color:var(--text);}
.jc-meta{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap;}
.jc-open-hint{margin-top:8px;font:700 12px var(--font-ui);color:var(--info);}

/* ===== Today ============================================================== */
.today-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:24px;align-items:start;}
@media (max-width:1000px){.today-grid{grid-template-columns:1fr;}}
.digest-card{border-left:4px solid var(--crit);}
.digest-head{display:flex;align-items:baseline;}
.digest-head .lb{color:var(--crit);margin:0;}
.digest-all{font:700 12px var(--font-ui);color:var(--info);cursor:pointer;background:none;border:none;padding:0;}
.digest-item{font:400 13px/1.45 var(--font-ui);color:var(--text);margin-top:9px;}
.digest-item b.c{color:var(--crit);} .digest-item b.w{color:var(--warn);}
.inbox-prev-item{margin-top:10px;cursor:pointer;}
.inbox-prev-item .ph{font:700 13px var(--font-ui);color:var(--text);}
.inbox-prev-item .tm{font:400 11px var(--font-ui);color:var(--muted-2);margin-left:8px;}
.inbox-prev-item .sn{font:400 12.5px/1.4 var(--font-ui);color:var(--muted);}

/* ===== Pipeline board ===================================================== */
/* Fluid: phases share the row proportionally to their stage count, columns
   flex — no horizontal scroll at desktop width. Narrow screens scroll. */
.pl-board{display:flex;gap:20px;padding-bottom:12px;align-items:flex-start;overflow-x:auto;}
.pl-phase{flex:none;}
.pl-phase-title{
  font:800 11px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);
  padding-bottom:8px;border-bottom:2px solid var(--ink);margin-bottom:12px;
}
body.dark .pl-phase-title{border-bottom-color:var(--text);}
.pl-cols{display:flex;gap:12px;align-items:flex-start;}
.pl-col{flex:none;width:190px;border-radius:10px;padding:8px;}
.pl-colhead{display:flex;gap:6px;align-items:center;margin-bottom:8px;}
.pl-colhead .cnt{font:700 11px var(--font-ui);color:var(--muted-2);}
.pl-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);
  border-left-width:4px;padding:11px 13px;margin-bottom:8px;cursor:pointer;transition:border-color .12s;
}
.pl-card:hover{border-color:var(--muted-2);}
.pl-card .t{display:flex;justify-content:space-between;gap:8px;}
.pl-card .nm{font:700 13.5px var(--font-ui);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-card .pr{font:800 12.5px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}
.pl-card .vh{font:400 11.5px var(--font-ui);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pl-card .st{font:400 11.5px var(--font-ui);color:var(--muted-2);margin-top:4px;}
.pl-card .st.warn{font-weight:700;color:var(--warn);}
.pl-card .st.crit{font-weight:700;color:var(--crit);}
.pl-card .st.ok{font-weight:700;color:var(--ok);}
.pl-card.done{opacity:.75;}
.pl-empty{border:1px dashed var(--line);border-radius:var(--r-row);padding:14px;font:400 11.5px var(--font-ui);color:var(--muted-2);text-align:center;}
@media (max-width:1150px){
  .pl-board{overflow-x:auto;}
  .pl-phase{flex:none;}
  .pl-col{flex:none;width:170px;}
}

/* ===== Calendar (week grid) ============================================== */
.week-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;align-items:start;}
@media (max-width:1100px){.week-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:700px){.week-grid{grid-template-columns:1fr;}}
.wk-day{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;padding:0;margin:0;}
.wk-head{padding:10px 12px;border-bottom:1px solid var(--line);}
.wk-head.today{background:var(--gold-soft);}
.wk-head.risk{background:var(--warn-bg);border-bottom-color:#eed5cf;}
.wk-head .d{display:flex;justify-content:space-between;align-items:baseline;font:800 13px var(--font-ui);color:var(--text);}
.wk-head .tag{font:700 10px var(--font-ui);letter-spacing:.06em;color:var(--gold-text);}
.wk-head .tag.risk{color:var(--warn);font-size:10.5px;}
.wk-head .tag.sat{color:var(--warn);}
.wk-wx{font:400 11.5px var(--font-ui);color:var(--muted);margin-top:2px;}
.wk-head.risk .wk-wx{color:var(--warn);}
.wk-body{padding:10px;display:flex;flex-direction:column;gap:8px;}
.wk-job{border-left:3px solid var(--line);background:var(--paper);border-radius:6px;padding:8px 10px;cursor:pointer;}
.wk-job:hover{filter:brightness(.98);}
.wk-job .tm{font:800 11px var(--font-ui);color:var(--text);}
.wk-job .nm{font:700 12.5px var(--font-ui);color:var(--text);}
.wk-job .mt{font:400 11px var(--font-ui);color:var(--muted);}
.wk-job .risk-note{font:700 10.5px var(--font-ui);color:var(--warn);margin-top:3px;}
.wk-job.at-risk{background:var(--warn-bg);border:1px solid #eed5cf;border-left:3px solid var(--st-scheduled);}
.wk-empty{padding:14px 10px;font:400 11.5px var(--font-ui);color:var(--muted-2);text-align:center;}
.wk-empty span{color:var(--info);font-weight:700;cursor:pointer;}

/* ===== Master–detail (Inbox, Customers) ================================== */
.md-wrap{display:flex;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:var(--panel);min-height:440px;}
.md-list{width:340px;flex:none;border-right:1px solid var(--line);display:flex;flex-direction:column;}
.md-search{padding:12px 14px;border-bottom:1px solid var(--line);}
.md-search input{height:36px;font-size:13px;}
.md-items{overflow-y:auto;flex:1;}
.md-item{padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;}
.md-item:hover{background:var(--paper);}
.md-item.active{background:var(--gold-soft);border-left:3px solid var(--gold);padding-left:13px;}
.md-item .t{display:flex;justify-content:space-between;align-items:baseline;gap:8px;}
.md-item .nm{font:700 13.5px var(--font-ui);color:var(--text);}
.md-item.active .nm{font-weight:800;}
.md-item .tm{font:400 11px var(--font-ui);color:var(--muted-2);white-space:nowrap;}
.md-item .sn{font:400 12.5px/1.4 var(--font-ui);color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.md-pane{flex:1;min-width:0;display:flex;flex-direction:column;}
.md-pane-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.md-pane-title{font:800 15px var(--font-ui);color:var(--text);}
.md-pane-body{flex:1;padding:18px;overflow-y:auto;min-height:0;}
.md-thread{background:var(--paper);}
.md-none{flex:1;display:flex;align-items:center;justify-content:center;font:400 13px var(--font-ui);color:var(--muted-2);padding:30px;}
@media (max-width:900px){
  .md-wrap{flex-direction:column;}
  .md-list{width:100%;border-right:none;border-bottom:1px solid var(--line);max-height:290px;}
}

/* customer detail bits */
.cust-cols{display:flex;gap:20px;margin-top:16px;}
@media (max-width:820px){.cust-cols{flex-direction:column;}}
.cust-cols .c1{flex:1;} .cust-cols .c2{flex:1.4;}
.veh-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-row);padding:11px 13px;margin-bottom:8px;}
.veh-card .nm{font:700 13px var(--font-ui);color:var(--text);}
.veh-card .vin{font:400 11.5px var(--mono);color:var(--muted-2);}
.veh-card a{font:600 11.5px var(--font-ui);}
.lifetime-num{font:800 20px var(--font-ui);color:var(--text);}
.lifetime-num span{font:400 12px var(--font-ui);color:var(--muted-2);}

/* ===== Messages =========================================================== */
.msg-thread{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto;padding:10px 2px;}
.msg-row{display:flex;flex-direction:column;max-width:85%;}
.msg-row.outbound{align-self:flex-end;align-items:flex-end;}
.msg-row.inbound{align-self:flex-start;align-items:flex-start;}
.msg-bubble{padding:8px 11px;font:400 12.5px/1.45 var(--font-ui);color:var(--text);border-radius:12px;}
.msg-bubble.outbound{background:var(--gold-soft);border:1px solid var(--gold-border);border-radius:12px 12px 4px 12px;}
.msg-bubble.inbound{background:var(--panel);border:1px solid var(--line);border-radius:12px 12px 12px 4px;}
.msg-time{font:400 10.5px var(--font-ui);color:var(--faint-text);margin-top:2px;}
.msg-photo{max-width:180px;border-radius:10px;border:1px solid var(--line);margin-top:4px;cursor:pointer;}
.msg-empty{align-self:center;font:400 11.5px var(--font-ui);color:var(--faint-text);padding:14px 0;}
.msg-flag{font-size:12px;}
.msg-reply-row{display:flex;gap:8px;margin-top:8px;align-items:flex-end;}
.msg-reply-row textarea{flex:1;min-height:38px;}
.quick-replies{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 0;}
.quick-reply-chip{
  background:var(--panel);border:1px solid var(--line);border-radius:8px;
  padding:5px 10px;font:400 12px var(--font-ui);color:var(--muted);
}
.quick-reply-chip:hover{border-color:var(--muted-2);color:var(--text);}
.smart-suggest{background:var(--gold-soft);border:1px solid var(--gold-border);border-radius:10px;padding:10px 12px;margin-top:10px;}
.smart-suggest-lbl{font:700 10px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text);margin-bottom:6px;display:block;}
.smart-suggest-chip{
  display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;padding:8px 11px;font:400 12.5px/1.4 var(--font-ui);color:var(--text);margin-bottom:6px;
}
.smart-suggest-chip:hover{border-color:var(--gold-dark);}

/* ===== Attention ========================================================== */
.attn-banner{
  display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);
  border-left:4px solid var(--warn);border-radius:var(--r-row);
  padding:12px 16px;font:700 13.5px var(--font-ui);color:var(--text);margin-bottom:16px;
}
.attn-banner.has-high{border-left-color:var(--crit);}
.attn-banner:hover{border-color:var(--muted-2);border-left-color:var(--crit);}
.attn-group-title{font:700 10px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);margin:18px 0 8px;}
.attn-group-title.crit{color:var(--crit);} .attn-group-title.warn{color:var(--warn);}
.attn-item{
  display:flex;align-items:center;gap:14px;background:var(--panel);
  border:1px solid var(--line);border-left:4px solid var(--line);
  border-radius:var(--r-row);padding:12px 16px;margin-bottom:8px;
}
.attn-item.sev-high{border-left-color:var(--crit);}
.attn-item.sev-med{border-left-color:var(--warn);}
.attn-body{flex:1;min-width:0;cursor:pointer;}
.attn-title{font:700 14px var(--font-ui);color:var(--text);}
.attn-detail{font:400 12px var(--font-ui);color:var(--muted);margin-top:2px;}
.attn-who{font:400 11.5px var(--font-ui);color:var(--muted-2);margin-top:2px;}
.attn-open{flex:none;}

/* ===== Reports ============================================================ */
.hero-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px;}
.hero-grid.three{grid-template-columns:repeat(3,1fr);margin-bottom:20px;}
@media (max-width:1000px){.hero-grid,.hero-grid.three{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.hero-grid,.hero-grid.three{grid-template-columns:1fr;}}
.mcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;}
.mcard.rev{border-top:3px solid var(--gold);}
.mcard.profit{border-top:3px solid var(--ok);}
.mcard.stale{border-top:3px solid var(--warn);}
.mcard.stale .lb{color:var(--warn);}
.mnum{font:800 24px/1 var(--font-ui);color:var(--text);margin:4px 0 3px;font-variant-numeric:tabular-nums;}
.mhint{font:400 11.5px var(--font-ui);color:var(--muted-2);}
.mhint b.i{color:var(--info);} .mhint b.g{color:var(--gold-text);}
.paybar{display:flex;height:10px;border-radius:5px;overflow:hidden;margin:10px 0 6px;background:var(--paper);}
.paybar .ins{background:var(--info);} .paybar .cash{background:var(--gold);}
.report-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media (max-width:900px){.report-cols{grid-template-columns:1fr;}}
.report-cols .card{margin-bottom:0;}
.report-metrics{display:contents;} /* legacy alias */

/* ===== Team: see "Redesign 11" at the end of this file ===================== */

/* ===== Tech: My Jobs + Field mode ======================================== */
.clockbar{
  display:flex;align-items:center;gap:8px;background:var(--gold-soft);border:1px solid var(--gold-border);
  border-radius:var(--r-row);padding:10px 14px;margin:10px 0 14px;
}
.clockbar .t{font:700 13px var(--font-ui);color:var(--text);flex:1;}
.clockbar .mono{font:800 13px var(--mono);color:var(--text);}

.fh-top{display:flex;align-items:center;gap:10px;}
.fh-job{font:800 15px var(--font-ui);color:var(--text);}
.fh-name{font:800 20px var(--font-ui);color:var(--text);margin-top:10px;}
.fh-veh{font:400 13px var(--font-ui);color:var(--muted);}
.fh-addr{font:600 14px var(--font-ui);color:var(--text);margin-top:4px;}
.field-actions{display:flex;gap:10px;margin-top:12px;}
.fa-call{background:var(--ok);} .fa-nav{background:var(--info);}
.fj-photo{max-width:100%;max-height:260px;border-radius:8px;border:1px solid var(--line);cursor:pointer;}

/* ===== Modals ============================================================= */
.sheet-dim{
  position:fixed;inset:0;background:rgba(11,11,12,.55);z-index:1000;
  display:flex;align-items:flex-start;justify-content:center;padding:22px;overflow-y:auto;
}
.sheet{
  background:var(--paper);border-radius:14px;width:100%;max-width:560px;
  padding:20px 22px;margin:auto 0;box-shadow:0 18px 60px rgba(0,0,0,.28);
}
.sheet.wide{max-width:960px;}
.sheet-head{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.sheet-head h2{font:800 17px var(--font-ui);color:var(--text);margin:0;flex:1;}
.sheet-close{
  width:34px;height:34px;flex:none;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;font-size:14px;color:var(--muted);margin-left:auto;
}
.sheet-close:hover{color:var(--crit);border-color:var(--crit);}
.sheet-section{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;}
.sheet-section h3{font:700 15px var(--font-ui);color:var(--text);margin:0 0 10px;}
.sheet-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-bottom:10px;}
.d-val{font:700 13.5px var(--font-ui);color:var(--text);}

/* ===== Job Card (the redesigned modal) =================================== */
.jc-modal{
  max-width:1840px;width:98vw;padding:0;background:var(--paper);
  display:flex;flex-direction:column;height:96vh;max-height:96vh;
}
.jc-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;margin-bottom:16px;}
@media (max-width:1100px){.jc-two{grid-template-columns:1fr;}}
.row6c{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;}
@media (max-width:1100px){.row6c{grid-template-columns:repeat(3,1fr);}}
@media (max-width:560px){.row6c{grid-template-columns:repeat(2,1fr);}}
.row4c{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
@media (max-width:900px){.row4c{grid-template-columns:1fr 1fr;}}
.fchips-compact{gap:6px;margin-top:4px;}
.fchips-compact .fchip{font-size:11.5px;padding:4px 9px;border-radius:7px;}
.jcm-head{display:flex;align-items:center;gap:12px;padding:16px 22px 12px;flex-wrap:wrap;}
.jcm-head h2{font:800 21px var(--font-ui);color:var(--text);margin:0;}
.jcm-facts{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap;margin-left:auto;}
.fact{background:var(--gold-soft);border:1px solid var(--gold-border);border-radius:8px;padding:6px 12px;}
.fact .lb{margin:0 0 3px;}
.fact .v{font:700 13.5px var(--font-ui);color:var(--gold-text);}
.fact .v.mono{font:600 12.5px var(--mono);}
.fact a{font:600 11.5px var(--font-ui);color:var(--muted-2);margin-left:8px;}
.jcm-body{display:flex;border-top:2px solid var(--ink);flex:1;min-height:0;}
body.dark .jcm-body{border-top-color:var(--gold);}
.jcm-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;}
.jcm-tabs{display:flex;gap:2px;padding:0 22px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;}
.jcm-tab{
  background:none;border:none;padding:13px 15px 11px;
  font:500 13.5px var(--font-ui);color:var(--muted-2);
  border-bottom:2px solid transparent;margin-bottom:-1px;
}
.jcm-tab:hover{color:var(--text);}
.jcm-tab.on{font-weight:700;color:var(--text);border-bottom-color:var(--gold);}
.jcm-tab .amber{font:600 11px var(--font-ui);color:var(--warn);}
.jcm-tab .cnt{font:600 11px var(--font-ui);color:var(--muted-2);}
.jcm-panes{padding:20px 22px;overflow-y:auto;flex:1;min-height:0;}
.jcm-pane{display:none;flex-direction:column;gap:16px;}
.jcm-pane.on{display:flex;}
.jcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:18px 20px;}
.jcard h3{font:700 15px var(--font-ui);color:var(--text);margin:0 0 14px;}
.jcard .h-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.jcard .h-row h3{margin:0;flex:1;}
.jgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.jgrid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:1100px){.jgrid3{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.jgrid3,.jgrid2{grid-template-columns:1fr;}}
.fchip{
  display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;border-radius:8px;
  border:1px solid var(--line);background:var(--panel);font:400 13px var(--font-ui);color:var(--muted);
}
.fchip.on{border-color:var(--gold-border);background:var(--gold-soft);font-weight:600;color:var(--text);}
.fchips{display:flex;flex-wrap:wrap;gap:8px;}
.price-cols{display:flex;gap:24px;}
@media (max-width:900px){.price-cols{flex-direction:column;}}
.price-cols .pc1{flex:1.4;padding-right:24px;border-right:1px solid var(--line);}
@media (max-width:900px){.price-cols .pc1{padding-right:0;border-right:none;}}
.price-cols .pc2{flex:1;}
.profit-line{font:600 12.5px var(--font-ui);color:var(--text);margin-top:12px;}
.costs-hint{font:400 11.5px/1.4 var(--font-ui);color:var(--muted-2);margin:-2px 0 8px;}
.jcm-footer{display:flex;gap:8px;padding:12px 22px;border-top:1px solid var(--line);background:var(--panel);align-items:center;}

/* sidebar */
.jcm-side{
  width:360px;flex:none;background:var(--panel);border-left:2px solid var(--ink);
  display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;
}
.jcm-side *{min-width:0;}
.jcm-side .msg-bubble{overflow-wrap:anywhere;}
.sb-btns{flex-wrap:wrap;}
body.dark .jcm-side{border-left-color:var(--gold);}
.sb-block{padding:16px 20px;border-bottom:1px solid var(--line);}
.sb-block.tint{background:var(--panel-2);}
.pipeseg{display:flex;gap:3px;margin:2px 0 10px;}
.pipeseg div{height:6px;flex:1;background:var(--line);}
.pipeseg .done{background:var(--ink);}
body.dark .pipeseg .done{background:var(--text);}
.pipeseg .cur{background:var(--gold);}
.sb-stage{font:700 15px var(--font-ui);color:var(--text);margin:0 0 4px;}
.sb-hint{font:400 12px/1.4 var(--font-ui);color:var(--muted-2);margin:0 0 10px;}
.sb-next{width:100%;justify-content:flex-start;box-sizing:border-box;}
.sb-links{display:flex;gap:14px;margin-top:8px;font:500 12px var(--font-ui);color:var(--muted-2);flex-wrap:wrap;}
.sb-links button{background:none;border:none;padding:0;font:500 12px var(--font-ui);color:var(--muted-2);}
.sb-links button:hover{color:var(--text);text-decoration:underline;}
.sb-links button.danger:hover{color:var(--crit);}
.pl-others{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.gate-note{background:var(--warn-bg);border:1px solid #eed5cf;border-radius:8px;padding:9px 11px;font:600 12px/1.4 var(--font-ui);color:var(--warn);margin:8px 0;}
.sb-total{display:flex;justify-content:space-between;align-items:baseline;font:700 18px var(--font-ui);color:var(--text);}
.sb-total span:last-child{font-variant-numeric:tabular-nums;}
.sb-sub{font:400 12px var(--font-ui);color:var(--muted-2);margin-top:2px;}
.sb-split{font:600 12px var(--font-ui);color:var(--muted);margin-top:2px;}
.sb-status{font:600 12.5px var(--font-ui);margin-top:8px;}
.sb-status.ok{color:var(--ok);} .sb-status.amber{color:var(--warn);}
.sb-btns{display:flex;gap:8px;margin-top:12px;}
.sb-btns .btn-gold,.sb-btns .btn-ghost{flex:1;height:34px;font-size:12.5px;padding:0 10px;}
.sb-msgs{flex:1;display:flex;flex-direction:column;min-height:220px;padding:12px 16px 14px;}
.sb-msgs .msg-thread{background:var(--panel-2);border-radius:8px;padding:10px;flex:1;max-height:280px;}
.split-card .t-kv{display:flex;justify-content:space-between;font:400 13px var(--font-ui);color:var(--muted);padding:3px 0;}
.split-card .tot{display:flex;justify-content:space-between;font:700 17px var(--font-ui);color:var(--text);padding:10px 0 0;margin-top:8px;border-top:2px solid var(--ink);}
body.dark .split-card .tot{border-top-color:var(--text);}
.amber-note{font:400 11px/1.4 var(--font-ui);color:var(--warn);margin-top:8px;}
.ins-cols{display:flex;gap:24px;align-items:flex-start;}
@media (max-width:900px){.ins-cols{flex-direction:column;}}
.ins-cols .jcard{flex:1;}
.ins-cols .split-card{width:250px;flex:none;}
@media (max-width:900px){.ins-cols .split-card{width:100%;}}
input.claim-missing{border-color:var(--gold-dark);}

@media (max-width:900px){
  .jc-modal{max-height:none;height:auto;}
  .jcm-body{flex-direction:column;}
  .jcm-side{width:100%;border-left:none;border-top:2px solid var(--ink);}
}

/* ===== Job-modal leftovers / shared bits ================================= */
.part-row{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:10px 0;border-top:1px solid var(--paper);font:400 13px var(--font-ui);color:var(--text);
}
body.dark .part-row{border-top-color:#26262b;}
.part-row:first-of-type{border-top:1px solid var(--line);}
.part-row.received span:first-child{color:var(--text);}
.part-row .state{font-weight:600;color:var(--warn);white-space:nowrap;}
.part-row.received .state{color:var(--ok);}
.quote-actions{margin-top:12px;}
.quote-actions-row{display:flex;gap:8px;flex-wrap:wrap;}
.pl-current{font:400 13px var(--font-ui);color:var(--muted);margin-bottom:6px;}
.pl-current b{color:var(--text);}
.pl-toggle{background:none;border:none;color:var(--info);font:700 13px var(--font-ui);padding:6px 0;display:block;}
.pl-cancel{display:inline-block;margin-top:12px;background:none;border:none;color:var(--warn);font:700 13px var(--font-ui);padding:0;opacity:.85;}
.pl-cancel:hover{opacity:1;text-decoration:underline;}

/* checklist */
.chk-row{display:flex;align-items:center;gap:8px;padding:5px 0;font:600 13.5px var(--font-ui);color:var(--muted);flex-wrap:wrap;}
.chk-row.done{color:var(--text);}
.chk-row input[type=checkbox]{width:17px;height:17px;accent-color:var(--ink);flex:none;}
.chk-label{flex:1;min-width:140px;}
.chk-photo{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--line);}
.chk-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px;}
@media (max-width:700px){.chk-grid{grid-template-columns:1fr;}}

/* photo gallery */
.photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-bottom:10px;}
.pg-cell{position:relative;aspect-ratio:4/3;}
.pg-img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:pointer;}
.pg-kind{position:absolute;left:5px;bottom:5px;font:800 9px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:#fff;border-radius:4px;padding:1px 6px;}
.pg-before{background:var(--info);} .pg-after{background:var(--ok);} .pg-other{background:var(--muted);}
.pg-del{position:absolute;top:4px;right:4px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(11,11,12,.6);color:#fff;font-size:10px;padding:0;line-height:1;}
.photo-capture{display:flex;gap:8px;flex-wrap:wrap;}

/* vehicle history */
.vh-list{display:flex;flex-direction:column;}
.vh-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--paper);cursor:pointer;}
body.dark .vh-row{border-top-color:#26262b;}
.vh-row:hover .vh-svc{color:var(--gold-text);}
.vh-svc{font:700 13px var(--font-ui);color:var(--text);}
.vh-date{font:400 12px var(--font-ui);color:var(--muted-2);}
.vh-total{font:800 13px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}

/* signature */
.sig-canvas{width:100%;height:180px;background:#fff;border:1px dashed var(--muted-2);border-radius:10px;touch-action:none;display:block;}
.sig-view{max-width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;}

/* quote-a-caller */
@media (max-width:820px){.tql-grid{flex-direction:column;}}

/* ===== Toasts ============================================================= */
#toastHost{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:3000;display:flex;flex-direction:column;gap:8px;align-items:center;}
.toast{
  background:var(--ink);color:#fff;border-radius:10px;padding:10px 18px;
  font:700 13px var(--font-ui);box-shadow:0 8px 24px rgba(0,0,0,.25);
  transition:opacity .2s;max-width:90vw;
}
.toast.err{background:var(--crit);}
body.dark .toast{background:#e8e6e0;color:#0b0b0c;}
body.dark .toast.err{background:var(--crit);color:#fff;}

/* legacy aliases so nothing is unstyled if missed */
.board{display:flex;gap:14px;overflow-x:auto;}
.board-col{width:220px;flex:none;}
.board-col h3{display:flex;gap:8px;align-items:center;font:700 13px var(--font-ui);color:var(--text);margin:0 0 8px;}
.board-col .cnt{font:700 11px var(--font-ui);color:var(--muted-2);}
.cal-day{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-card);padding:12px 14px;margin-bottom:12px;}
.cal-day-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.cal-day-title{font:800 14px var(--font-ui);}
.cal-weather{font:400 12px var(--font-ui);color:var(--muted);}
.cal-weather.risk{color:var(--warn);font-weight:600;}
.cal-empty-day{font:400 12px var(--font-ui);color:var(--muted-2);}
.metric-val{font:800 24px var(--font-ui);color:var(--text);}
.metric-sub{font:400 11.5px var(--font-ui);color:var(--muted-2);}

/* ============================================================================
   DESIGN SYSTEM v2 — hi-fi redesign (Phase 1). Tokens, top bar, components.
   Appended last so it wins the cascade over the legacy styles above.
   ========================================================================== */
:root{
  --panel-2:#fafaf8; --tint:#efede8; --line-soft:#eeece7; --faint:#b0afa8;
  --crit:#c2361f; --warn2:#b5541f; --ok2:#2f7a4a;
  --photo:#cfcdc6; --photo-tx:#4f4c45;
  --sh-card:0 1px 2px rgba(11,11,12,.05), 0 4px 14px rgba(11,11,12,.05);
  --sh-pop:0 12px 36px rgba(11,11,12,.18);
}

/* ---- Component sheet ------------------------------------------------------ */
/* segmented control (≤4 options) */
/* styled menu (5+ options) */
.menu-pop{
  position:fixed; z-index:1200; background:var(--panel); border:1px solid var(--line);
  border-radius:8px; box-shadow:var(--sh-pop); min-width:180px; padding:5px; max-height:60vh; overflow:auto;
}
.menu-pop .menu-item{
  display:flex; align-items:center; gap:9px; width:100%; text-align:left; border:none; background:none;
  padding:9px 11px; border-radius:6px; font-size:13px; font-weight:600; color:var(--text); cursor:pointer; font-family:inherit;
}
.menu-pop .menu-item:hover{background:var(--panel-2);}
.menu-pop .menu-item.on{background:var(--tint); font-weight:800;}
/* inline confirm (replaces confirm()) */
.ic-confirm{
  border:1px solid var(--line); border-radius:8px; background:var(--panel-2);
  padding:10px 12px; display:flex; align-items:center; gap:10px; font-size:12.5px; font-weight:700;
}
.ic-confirm .grow{flex:1;}
.ic-confirm .icc-back{background:none; border:1px solid var(--line); border-radius:8px; height:30px; padding:0 12px; font-weight:700; cursor:pointer; font-family:inherit; color:var(--text);}
.ic-confirm .icc-go{background:var(--crit); color:#fff; border:none; border-radius:8px; height:30px; padding:0 12px; font-weight:800; cursor:pointer; font-family:inherit;}
.ic-confirm .icc-go.safe{background:var(--ink);}
/* toast: ink pill, gold dot, bottom-centre */
#toastHost{position:fixed; left:0; right:0; bottom:22px; top:auto; transform:none; display:flex; flex-direction:column; align-items:center; gap:8px; z-index:2000; pointer-events:none;}
#toastHost .toast{
  background:var(--ink); color:#fff; border-radius:999px; padding:10px 18px 10px 14px;
  font-size:13px; font-weight:700; box-shadow:var(--sh-pop); display:flex; align-items:center; gap:9px;
  border:none; max-width:min(520px, 90vw);
}
/* empty / loading / offline triplet */
.empty2{display:flex; flex-direction:column; align-items:center; gap:10px; padding:38px 20px; color:var(--muted); font-size:13px; font-weight:600; text-align:center;}
.empty2 svg{color:var(--faint);}
.shimmer{position:relative; overflow:hidden; background:var(--panel-2); border-radius:8px; min-height:16px;}
.shimmer::after{
  content:''; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg, transparent, rgba(11,11,12,.05), transparent);
  animation:shim 1.3s infinite;
}
@keyframes shim{to{transform:translateX(100%);}}
.offline-card{
  border:1.5px dashed var(--ink); border-radius:12px; padding:12px 14px; display:flex; gap:10px;
  align-items:center; font-size:12.5px; font-weight:700; color:var(--text); background:var(--panel);
}
/* photo tiles */
.photo-tile{
  background:var(--photo); color:var(--photo-tx); border-radius:8px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:6px; font-size:11px; font-weight:800; aspect-ratio:4/3;
}
.photo-attach{
  border:1.5px dashed var(--line); background:var(--panel-2); color:var(--muted); border-radius:8px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  font-size:11px; font-weight:800; aspect-ratio:4/3; cursor:pointer;
}
.photo-attach:hover{border-color:var(--gold-dark); color:var(--text);}
/* interaction + focus */
.pressable:hover{filter:brightness(.97);}
.pressable:active{transform:scale(.985);}
:focus-visible{outline:2px solid var(--gold); outline-offset:1px;}

/* ============================================================================
   PHASE 2 — Today (O1), Pipeline (O2), Job card (O3) to the hi-fi.
   ========================================================================== */
.kicker{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:2px;}
.stat-tiles{display:flex;gap:10px;align-items:stretch;}
.stile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 16px;display:flex;flex-direction:column;gap:1px;min-width:74px;box-shadow:var(--sh-card);}
.stile .v{font-size:19px;font-weight:900;color:var(--text);font-variant-numeric:tabular-nums;}
.stile .l{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);}

/* weather hold banner */

/* Today stop rows */
.stops{display:flex;flex-direction:column;gap:10px;}
.stop-row{display:flex;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-left-width:4px;border-radius:12px;padding:12px 14px;box-shadow:var(--sh-card);cursor:pointer;}
.stop-row:hover{filter:brightness(.985);}
.sr-when{display:flex;flex-direction:column;min-width:86px;}
.sr-when b{font-size:13.5px;font-weight:900;color:var(--text);font-variant-numeric:tabular-nums;}
.sr-when span{font-size:11.5px;font-weight:700;color:var(--muted);}
.sr-main{flex:1;min-width:0;}
.sr-name{font-size:14px;font-weight:800;color:var(--text);display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.sr-sub{font-size:12px;color:var(--muted);font-weight:600;margin-top:1px;}
.sr-act{display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.sr-go{height:36px;padding:0 16px;font-size:12.5px;white-space:nowrap;}
.sr-go.blocked{background:var(--tint);border-color:var(--line);color:var(--muted);}
.sr-fires{font-size:10.5px;font-weight:700;color:var(--muted);}
.sr-fires.crit{color:var(--crit);}
.sr-done{display:flex;gap:5px;align-items:center;font-size:12px;font-weight:800;color:var(--ok2);}
.stop-row.archived{cursor:pointer;border-left-width:1px;}
.crit-t{color:var(--crit);font-weight:700;}
.pill.fleet{background:var(--gold-soft);border-color:var(--gold-border);color:var(--gold-text);}
.pill.crit{background:#f5dcdc;border-color:#e5b8b8;color:#a02c17;}

/* Pipeline filters + tinted columns */
.pl-filters{display:flex;gap:6px;margin:0 0 12px;flex-wrap:wrap;}
.pl-fpill{height:28px;padding:0 13px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-size:11.5px;font-weight:800;color:var(--muted);cursor:pointer;}
.pl-fpill.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.pl-phase-title{display:flex;align-items:center;gap:6px;}
.pl-col.tint-new,.pl-col.tint-quoted{background:#faf8f4;}
.pl-col.tint-parts_ordered,.pl-col.tint-parts_in,.pl-col.tint-scheduled{background:#f8f9f5;}
.pl-col.tint-in_progress,.pl-col.tint-calibration{background:#f8f7fa;}
.pl-col.tint-invoiced,.pl-col.tint-paid{background:#f5f8f6;}
.pl-days{margin-top:6px;font-size:11px;font-weight:800;color:var(--gold-text);display:flex;align-items:center;gap:4px;}
.pl-days.late{color:var(--crit);}
.plc-go{height:28px;font-size:11.5px;padding:0 10px;}

/* Job card sidebar: fires line, blocked gold, secondary action */
.sb-fires{font-size:10.5px;font-weight:700;color:var(--muted);margin:4px 0 0;text-align:center;}
.sb-fires.crit{color:var(--crit);}
.sb-next.blocked{background:var(--tint);border-color:var(--line);color:var(--muted);}
.sb-second{width:100%;justify-content:center;margin-top:8px;}
.jc-cancelled{display:flex;align-items:center;gap:10px;background:#f5dcdc;border:1px solid #e5b8b8;border-radius:10px;padding:9px 12px;font-size:12px;font-weight:800;color:var(--crit);margin-bottom:10px;}
.jc-cancelled button{margin-left:auto;}
.ic-confirm.paidhow{flex-wrap:wrap;}

/* checklist: progress + auto rows */
.chk-prog{display:flex;align-items:center;gap:8px;margin:0 0 8px;grid-column:1/-1;}
.chk-prog .bar{flex:1;height:6px;border-radius:999px;background:var(--tint);overflow:hidden;}
.chk-prog .fill{height:100%;background:var(--gold);border-radius:999px;transition:width .25s;}
.chk-prog span{font-size:11px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums;}
.chk-auto{display:inline-block;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:var(--gold-soft);border:1px solid var(--gold-border);color:var(--gold-text);border-radius:999px;padding:1px 6px;margin-left:5px;}

/* upgraded selects */
.selseg{margin:0;}
.menu-sel{display:flex;align-items:center;gap:6px;justify-content:space-between;width:100%;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel-2);font-size:13px;font-weight:700;color:var(--text);cursor:pointer;text-align:left;}
.menu-sel:focus-visible{outline:2px solid var(--gold);outline-offset:1px;}
.menu-sel svg{flex:none;color:var(--muted);}

/* date popover */
.dp-pop{padding:10px;min-width:320px;}
.dp-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin-bottom:8px;}
.dp-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px;border:1px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;}
.dp-day:hover{background:var(--tint);}
.dp-day.on{background:var(--gold);border-color:var(--gold-dark);}
.dp-day.full{opacity:.45;}
.dp-day .dw{font-size:9.5px;font-weight:800;text-transform:uppercase;color:var(--muted);}
.dp-day.on .dw{color:var(--ink);}
.dp-day .dn{font-size:15px;font-weight:900;color:var(--text);}
.dp-day .dl{font-size:9px;font-weight:800;color:var(--ok2);}
.dp-day.full .dl{color:var(--crit);}
.dp-day.on .dl{color:var(--ink);}

/* time picker */
.tp-pop{padding:10px;}
.tp-cols{display:flex;gap:8px;}
.tp-col{display:flex;flex-direction:column;gap:3px;max-height:200px;overflow-y:auto;min-width:52px;}
.tp-col button{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:5px 0;font-size:12.5px;font-weight:800;color:var(--text);cursor:pointer;}
.tp-col button.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.tp-set{width:100%;margin-top:8px;background:var(--gold);border:1px solid var(--gold-dark);border-radius:8px;height:32px;font-weight:900;font-size:12.5px;color:var(--ink);cursor:pointer;}
/* segmented controls born from selects wrap instead of clipping */
.selseg{flex-wrap:wrap;}
.selseg button{flex:1 1 auto;white-space:nowrap;}

/* ============================================================================
   PHASE 3 — Inbox (O4), Calendar (O5), Customers (O5b), Attention (O6),
   Text a caller (O10).
   ========================================================================== */
/* Inbox list */
.ib-item{display:flex;gap:10px;align-items:flex-start;}
.ib-init{flex:none;width:34px;height:34px;border-radius:50%;background:var(--tint);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:var(--muted);}
.ib-mid{flex:1;min-width:0;}
.ib-mid .t{display:flex;gap:6px;align-items:center;}
.ib-mid .sn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ib-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;}
.ib-end .tm{font-size:10px;color:var(--faint-text);font-weight:700;}
.ib-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);border:1px solid var(--gold-dark);}

/* Attention groups */
.attn2-group{border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--sh-card);margin-bottom:14px;overflow:hidden;}
.attn2-head{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line-soft);font-size:12px;}
.attn2-head b{font-weight:900;text-transform:uppercase;letter-spacing:.06em;}
.attn2-head span{color:var(--muted);font-weight:800;}
.attn2-group.now .attn2-head{color:var(--crit);background:#fdf3f1;}
.attn2-group.today .attn2-head{color:var(--warn2);background:#fdf7f0;}
.attn2-group.keep .attn2-head{color:#1a5276;background:#f2f7fa;}
.attn2-group .attn-item{border:none;border-bottom:1px solid var(--line-soft);border-radius:0;margin:0;}
.attn2-group .attn-item:last-child{border-bottom:none;}

/* Calendar slot grid */
.cal2{display:grid;grid-template-columns:64px repeat(6,1fr);gap:6px;align-items:stretch;}
.cal2-corner{}
.cal2-day{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12px;}
.cal2-day .d{display:flex;justify-content:space-between;align-items:center;font-weight:900;color:var(--text);}
.cal2-day.today{border-color:var(--gold-dark);background:var(--gold-soft);}
.cal2-day.risk{border-color:#e5b8b8;background:#fdf6f5;}
.cal2-slot-label{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;background:var(--tint);border-radius:10px;font-size:12px;}
.cal2-slot-label b{font-weight:900;color:var(--text);}
.cal2-slot-label span{font-size:9.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;}
.cal2-cell{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px;min-height:74px;display:flex;flex-direction:column;gap:6px;}
.cal2-cell.today{border-color:var(--gold-border);}
.cal2-cell.closed{background:none;border-style:dashed;align-items:center;justify-content:center;}
.closed-t{font-size:10px;font-weight:800;color:var(--faint-text);text-transform:uppercase;letter-spacing:.06em;}
.cal2-chip{border:1px solid var(--line);border-left-width:4px;border-radius:8px;padding:6px 8px;background:var(--panel-2);cursor:pointer;display:flex;flex-direction:column;gap:1px;}
.cal2-chip:hover{filter:brightness(.97);}
.cal2-chip b{font-size:11.5px;font-weight:800;color:var(--text);}
.cal2-chip span{font-size:10px;color:var(--muted);font-weight:600;}
.cal2-chip .rk{color:var(--crit);font-weight:800;}
.cal2-chip.at-risk{border-color:#e5b8b8;background:#fdf6f5;}
.cal2-add{border:1.5px dashed var(--line);border-radius:8px;background:none;padding:6px;font-size:10.5px;font-weight:800;color:var(--muted);cursor:pointer;margin-top:auto;}
.cal2-add:hover{background:var(--tint);color:var(--text);}
.cal2-full{margin-top:auto;text-align:center;font-size:10px;font-weight:800;color:var(--faint-text);text-transform:uppercase;letter-spacing:.06em;padding:4px;}
@media (max-width:900px){.cal2{grid-template-columns:48px repeat(6,minmax(120px,1fr));overflow-x:auto;}}

/* Text a caller */

/* ============================================================================
   PHASE 4 — Reports (O7), Expenses (O8), Supplies (O9), Timecards (O12),
   Close day (O13), Team (O15), Sign in (O0).
   ========================================================================== */
/* sign in */
.pw-wrap{position:relative;}
.pw-wrap input{width:100%;box-sizing:border-box;padding-right:56px;}
.pw-show{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gold);font-size:11.5px;font-weight:800;cursor:pointer;padding:6px;}
.login-error:not(:empty){display:block;background:rgba(194,54,31,.12);border:1px solid rgba(194,54,31,.4);border-radius:8px;padding:9px 12px;margin-top:10px;}

/* reports */
.kpi-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.kpi-row .stile{flex:1;min-width:110px;}
.stile.gold{background:var(--gold-soft);border-color:var(--gold-border);}
.svc-tbl{font-size:12.5px;}
.svc-tbl .hd,.svc-tbl .rw{display:grid;grid-template-columns:1.6fr .6fr 1fr 1fr 1fr .7fr;gap:8px;padding:6px 0;}
.svc-tbl .hd{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-bottom:2px solid var(--ink);}
.svc-tbl .rw{border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums;}
.svc-tbl .rw span:first-child{font-weight:700;}
.svc-tbl .rw span:not(:first-child),.svc-tbl .hd span:not(:first-child){text-align:right;}

/* kept for the field-mode signed line (section 10) */
.cd-ok{display:flex;align-items:center;gap:6px;color:var(--ok2);font-size:12.5px;font-weight:700;padding:8px 0;}
/* compact segmented inside inline-confirm cards (paid-how, restock, cancel) */
.ic-confirm .seg{flex:0 1 auto;align-self:center;}

/* ============================================================================
   PHASE 5 — the field app (T1–T3): big targets, bottom bar, dark polish.
   ========================================================================== */

/* bottom tab bar */
body.dark .field-bar{background:#1e1e22;border-top-color:#34343a;}

/* T1 head + stop cards */
body.dark .fs-clock{background:#1e1e22;}
body.dark .fs-clock.on{background:#1a2a20;}
body.dark .fs-card{background:#1e1e22;border-color:#34343a;border-left-width:5px;}
body.dark .fs-card.bad{border-color:#6a3a34;}

/* T1b photo 4-up */
@media (max-width:480px){.fp-grid{grid-template-columns:repeat(2,1fr);}}
body.dark .fp-tile.taken{background:#3b3b41;color:#c7c3bb;}
.fj-sow{font-size:13.5px;font-weight:800;color:var(--text);}
.fj-sow b{font-size:15px;}

/* sticky gold */
.fj-sticky{position:sticky;bottom:0;background:inherit;padding:10px 0 4px;margin-top:8px;}

/* dark stage edges stay readable (design tokens) */
body.dark{
  --st-new:#e0b040; --st-quoted:#7fb3d9; --st-parts_ordered:#e09a5a; --st-parts_in:#a6c86a;
  --st-scheduled:#7fd99a; --st-in_progress:#b98fe6; --st-calibration:#6fc3d9;
  --st-invoiced:#7fb3d9; --st-paid:#7fd99a; --st-cancelled:#e08a8a;
}

/* PHASE 6 — texting-not-connected banner */
.tx-off{display:flex;gap:8px;align-items:flex-start;background:var(--gold-soft);border:1.5px dashed var(--gold-dark);border-radius:10px;padding:10px 12px;margin:8px 0;font-size:12px;font-weight:700;color:var(--gold-text);}
.tx-off svg{flex:none;margin-top:1px;}
body.dark .tx-off{background:#2a2410;}

/* top-bar clock */
.top-clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;margin-left:auto;padding:0 4px;white-space:nowrap;}
.top-clock b{font-size:12px;font-weight:800;color:var(--text);}
.top-clock span{font-size:11px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;}
@media (max-width:520px){.top-clock{display:none;}}
/* weather pill sheds detail on narrower bars (wind → hi/lo → label) */
/* a placeholder truck pill (no GPS data) yields its space to real info */

/* schedule pickers: never wrap or spill — ellipsize inside their columns */
.sched3{grid-template-columns:1.35fr 1fr 1fr;}
.sched3 .field{min-width:0;}
.menu-sel{min-width:0;}
.menu-sel span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;text-align:left;}
/* wider grid for the past/plain date popovers (7 columns, Sundays included) */
.dp-grid.seven{grid-template-columns:repeat(7,1fr);}

/* ============================================================================
   Admin top bar on a phone: the logo goes, the icons get the whole width.
   (Techs never see this bar — body.field hides the top nav entirely.)
   ========================================================================== */
@media (max-width: 640px) {
  body:not(.field) header.top{padding:0 12px;gap:10px;}
  body:not(.field) header.top .brand{display:none;}
  body:not(.field) .tab-nav{flex:1;justify-content:space-between;gap:0;}
  body:not(.field) .tab-btn{width:40px;}
  /* bell · avatar keep the same rhythm as the tabs — never glued together */
  body:not(.field) .header-actions{gap:10px;flex:none;margin-left:2px;}
}

/* header action pair: always the same size as each other */
.pg-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.pg-actions .btn-ghost,.pg-actions .btn-gold{height:40px;padding:0 16px;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;}
/* phone: title on its own line, then tiles with the two buttons stacked at right */
@media (max-width: 640px) {
  .page-head{align-items:stretch;}
  .page-head > div:first-child{flex-basis:100%;}
  .page-head .head-spacer{display:none;}
  .stat-tiles{flex:1;min-width:0;}
  .stat-tiles .stile{flex:1;min-width:0;padding:8px 10px;}
  .pg-actions{flex:none;flex-direction:column;justify-content:center;gap:6px;}
  .pg-actions .btn-ghost,.pg-actions .btn-gold{height:38px;padding:0 13px;font-size:12px;width:100%;}
}

/* tap-to-copy values (VINs etc.) */
.copyable{cursor:pointer;text-decoration:underline dashed;text-underline-offset:3px;text-decoration-color:var(--faint);}
.copyable:hover{color:var(--gold-text);text-decoration-color:var(--gold-dark);}
/* PGW link: dressed like the Text-a-caller button */
/* the copy glyph next to call-links */
.copy-glyph{font-size:12px;text-decoration:none;opacity:.7;padding:2px 3px;}
.copy-glyph:hover{opacity:1;}

/* ============================================================================
   Sept 17 — day dividers in threads, calendar blocks, overhead card, settings
   ========================================================================== */
.msg-day{align-self:center;font:800 10px var(--font-ui);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--tint);border-radius:999px;padding:3px 10px;margin:4px 0 2px;}
body.dark .msg-day{background:var(--tint);color:var(--muted);}

/* calendar blocks */
.tag.blocked{background:#f5dcdc;color:#8a2a2a;}
.cal2-day.blocked{border-color:#e5b8b8;background:#fdf6f5;}
.wk-blk{font-size:10.5px;font-weight:800;color:var(--crit);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal2-dayctl{margin-top:6px;}
.cal2-blockbtn{border:1px dashed var(--line);border-radius:6px;background:none;font:800 10.5px var(--font-ui);color:var(--muted);padding:0 8px;cursor:pointer;height:28px;}
.cal2-blockbtn:hover{background:var(--tint);color:var(--text);}
.cal2-blockbtn.on{border-style:solid;border-color:#e5b8b8;color:#8a2a2a;background:#fdf6f5;}
.cal2-cell.blocked{background:#fdf6f5;border-color:#e5b8b8;border-style:dashed;}
.cal2-blk{margin-top:auto;display:flex;align-items:center;gap:4px;font:800 10.5px var(--font-ui);color:#8a2a2a;background:#f5dcdc;border-radius:8px;padding:5px 6px 5px 8px;min-width:0;}
.cal2-blk span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cal2-blk button{border:none;background:none;color:inherit;font-weight:900;cursor:pointer;padding:0;width:26px;height:26px;border-radius:6px;flex:none;}
.cal2-blk button:hover{background:rgba(138,42,42,.12);}
.cal2-cell .ic-confirm,.cal2-dayctl .ic-confirm{flex-wrap:wrap;padding:8px;gap:6px;margin:0;}
.cal2-cell .ic-confirm .grow,.cal2-dayctl .ic-confirm .grow{flex-basis:100%;font-size:11.5px;}
.blk-pop{padding:12px;width:min(300px,calc(100vw - 16px));display:flex;flex-direction:column;gap:8px;box-sizing:border-box;}
.blk-pop .blk-t{font:800 12px var(--font-ui);color:var(--text);}
.blk-pop input{height:38px;width:100%;box-sizing:border-box;}
.blk-row{display:flex;gap:8px;justify-content:flex-end;}
.sb-blockhost:empty{display:none;}
.sb-blockhost .ic-confirm{flex-wrap:wrap;}
.sb-blockhost .ic-confirm .grow{flex-basis:100%;}

/* overhead & ads card (Reports) */
.stile .v.neg{color:var(--crit);}
.oh-sum{margin-bottom:8px;}
.oh-rows{display:flex;flex-direction:column;}
.oh-row{display:grid;grid-template-columns:minmax(0,1fr) auto 110px 54px auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line-soft);}
.oh-row.add{grid-template-columns:minmax(0,1fr) auto 110px auto;border-bottom:none;margin-top:6px;}
.oh-row input{height:36px;min-width:0;width:100%;box-sizing:border-box;}
.oh-row input[type=number]{text-align:right;}
.oh-row.off input{opacity:.6;}
.oh-unit{font:700 11px var(--font-ui);color:var(--faint-text);}
.oh-tog{height:36px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font:800 11px var(--font-ui);color:var(--muted);cursor:pointer;}
.oh-tog.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.oh-del{height:36px;width:36px;border-radius:8px;border:1px solid var(--line);background:none;color:var(--muted);cursor:pointer;font-weight:800;}
.oh-del:hover{color:var(--crit);border-color:var(--crit);}
.oh-row .ic-confirm{grid-column:1 / -1;}
.oh-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px;}
.oh-settings .field{margin-bottom:0;}
@media (max-width:560px){
  .oh-settings{grid-template-columns:1fr;}
  .oh-row{grid-template-columns:minmax(0,1fr) 92px 48px auto;}
  .oh-row .oh-unit{display:none;}
  .oh-row.add{grid-template-columns:minmax(0,1fr) 92px auto;}
}

@media (pointer:coarse){
  .oh-tog,.oh-del,.oh-row input,.cal2-blockbtn{min-height:40px;}
  .cal2-blk button{width:32px;height:32px;}
}

/* ============================================================================
   Sept 17 — responsive / touch sweep fixes (in-browser audit, 11 viewports)
   ========================================================================== */
/* Text a caller: the composer must never hide under the phone script. Desktop
   scrolls the left column; phones/portrait iPad let the whole modal scroll. */
@media (max-width:820px){
  .sheet.tql-box{height:auto;max-height:92vh;overflow-y:auto;}
  .tql-box .tql-grid{flex:none;height:auto;}
  .tql-box .tql-left{flex:none;overflow:visible;}
  .tql-box .tql-left .field:has(textarea){flex:none;}
  .tql-box .tql-left textarea{min-height:140px;}
  .tql-box .tql-script{flex:none;max-height:none;}
}
/* Customers: two columns only when the pane is genuinely wide; chips never
   widen a job row. */
@media (max-width:1100px){.cust-cols{flex-direction:column;}}
.cust-cols .c1,.cust-cols .c2{min-width:0;}
.jr-meta .chip{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* Long URLs / codes wrap instead of forcing a page-wide horizontal scroll. */
code,pre{overflow-wrap:anywhere;word-break:break-word;}
.jcard code{word-break:break-all;}

/* Touch targets on coarse pointers — office: 40px minimum, same visuals. */
@media (pointer:coarse){
  .pl-fpill{height:36px;padding:0 14px;}
  .sr-go{height:40px;}
  .cal2-add{min-height:36px;}
  .menu-sel{min-height:40px;}
  .menu-pop .menu-item{min-height:40px;}
  .chk-row{min-height:40px;}
  .chk-row input[type=checkbox]{width:22px;height:22px;}
  .quick-reply-chip{min-height:36px;}
  /* header icons keep the designer's 44×34 pill; the tap area grows around it */
}
/* Field app (T1–T3): everything a gloved thumb touches is ≥44px. */
/* sweep round 2 */
.view-host{display:contents;}
@media (max-width:760px){.tab-nav{gap:2px;}}
.veh-card a{display:inline-flex;align-items:center;min-height:28px;}
@media (pointer:coarse){
  .pl-fpill{height:40px;}
  .cal2-add{min-height:40px;}
  .cal2-blk{min-height:40px;}
  .cal2-blk button{width:40px;height:40px;}
  .oh-del{width:40px;}
  .veh-card a{min-height:40px;}
  .sheet-close{width:40px;height:40px;}
  .fchip{min-height:40px;}
  .sb-links button{min-height:40px;}
  .sb-sub a{display:inline-flex;align-items:center;min-height:40px;}
  .chk-row input[type=checkbox]{width:26px;height:26px;}
}
/* sweep round 3 */
@media (max-width:900px){.tab-btn{flex:0 1 44px;min-width:36px;}}
@media (max-width:640px){body:not(.field) .tab-btn{flex:1 1 0;width:auto;min-width:0;}}
@media (pointer:coarse){
  .sb-links button{min-width:40px;}
  .checks label{display:flex;align-items:center;gap:8px;min-height:40px;}
  .checks input[type=checkbox]{width:22px;height:22px;}
  .chk-row input[type=checkbox]{width:30px;height:30px;} /* the designer's 30px check-circle; the 40px row is the target */
}
/* a11y contrast pass (axe): --muted-2 6f695f (5.4:1), --gold-text 7d6200 (5.2:1 on gold-soft),
   --faint stays decorative; text that used it now reads --faint-text (4.8:1+). */
/* dark theme: tokens the v2 layer added but the dark block never remapped —
   a light tint on a dark card is what axe caught in the tech inbox. Status
   greens/ambers/reds used as TEXT get the designer's dark values. */
body.dark{--tint:#2a2a2f;--line-soft:#2e2e33;--panel-2:#1a1a1d;--ok2:#7fd99a;--warn2:#e8b07a;}
body.dark .part-row .state,body.dark .sb-status.amber{color:#e8b07a;}
body.dark .part-row.received .state,body.dark .sb-status.ok,body.dark .pl-card .st.ok{color:#7fd99a;}
body.dark .pill.crit{background:#3a1a17;border-color:#5a2a27;color:#f0a09a;}
body.dark .crit-t,body.dark .sr-fires.crit,body.dark .sb-fires.crit,body.dark .attn-group-title.crit{color:#f0a09a;}
#fjPartsState.ok{color:var(--ok);} #fjPartsState.warn{color:var(--warn);}
body.dark #fjPartsState.ok{color:#7fd99a;} body.dark #fjPartsState.warn{color:#e8b07a;}


/* ============================================================================
   DESIGN SYSTEM v3 — the redesign foundations (mag-redesign/screens:
   Components.html, Dark-Tokens.html, Sheets-Spec.html). Appended last so it
   wins the cascade. Gold = the one primary button per screen, nothing else.
   ========================================================================== */
:root{
  --panel-2:#f0efeb;            /* soft fill: segmented track, disabled, neutral pill */
  --skeleton:#e9e7e1;
  --dim:rgba(11,11,12,.55);
  --ink-fill:#0b0b0c; --on-ink:#ffffff;
  --line-control:#e3e1db;
  --crit-solid:#c8322b;         /* red button / badge fill */
  --r-btn:12px; --r-sheet:14px;
  --sh-card:0 1px 2px rgba(11,11,12,.06), 0 4px 14px rgba(11,11,12,.06);
  --sh-pop:0 8px 28px rgba(11,11,12,.16);
  --sh-sheet:0 18px 60px rgba(0,0,0,.28);
  --chart-revenue:#0b0b0c; --chart-profit:#1f8a4c; --chart-parts:#1f4e79; --chart-labour:#3d7fb5;
  --chart-sublet:#86b6d9; --chart-materials:#c4dcec; --chart-overhead:#8a8780; --chart-ads:#d9782d;
  --chart-grid:#e3e1db; --chart-axis:#5f5d57;
}
body.dark{
  --panel-2:#28282d; --skeleton:#303036; --dim:rgba(0,0,0,.6);
  --ink-fill:#f5f5f3; --on-ink:#131316; --line-control:#3a3a41;
  --sh-card:0 1px 2px rgba(0,0,0,.3), 0 4px 14px rgba(0,0,0,.3);
  --sh-pop:0 8px 28px rgba(0,0,0,.5);
  --chart-revenue:#f5f5f3; --chart-profit:#4cc27a; --chart-parts:#5b9bd5; --chart-labour:#86b8e0;
  --chart-sublet:#b3d3ea; --chart-materials:#dbe8f1; --chart-overhead:#9a988f; --chart-ads:#f0995a;
  --chart-grid:#303036; --chart-axis:#a8a69f;
}

/* ---- Buttons: primary (gold) 48, ghost 44, critical ghost 44 ---------------- */
.btn,.btn-primary,.btn-gold,.btn-ghost,.btn-crit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 16px;border-radius:var(--r-btn);
  font:700 15px var(--font-ui);border:1px solid transparent;white-space:nowrap;
  background:var(--panel);color:var(--text);
}
.btn-primary,.btn-gold{height:48px;padding:0 22px;background:var(--gold);color:#0b0b0c;font-weight:800;font-size:16px;box-shadow:inset 0 -2px 0 var(--gold-dark);}
.btn-primary:hover,.btn-gold:hover{background:var(--gold-dark);}
.btn-ghost{border-color:var(--line-control);}
.btn-ghost:hover{border-color:var(--muted-2);}
.btn-crit{border-color:var(--line-control);color:var(--crit);}
.btn-crit:hover{border-color:var(--crit);}
button:disabled,.btn:disabled{background:var(--panel-2);color:var(--faint-text);box-shadow:none;border-color:transparent;cursor:default;opacity:1;}
button[aria-busy=true]{color:var(--text);}
.btn-caption{display:block;font:400 13px var(--font-ui);color:var(--muted);margin-top:4px;display:flex;align-items:center;gap:5px;justify-content:center;}

/* ---- Fields: label 13/700 above, input 48 high, 16px, focus 2px ink, error red --- */
input,select,textarea{
  height:48px;padding:0 14px;border:1px solid var(--line-control);border-radius:var(--r-btn);
  background:var(--panel);color:var(--text);font:400 16px var(--font-ui);
}
textarea{height:auto;padding:12px 14px;line-height:1.5;}
select{padding-right:34px;background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;}
input:focus,select:focus,textarea:focus{outline:none;border:2px solid var(--ink-fill);padding-left:13px;padding-right:13px;}
textarea:focus{padding:11px 13px;}
input[type=checkbox],input[type=radio]{height:auto;width:auto;padding:0;}
.field label{font:700 13px/18px var(--font-ui);letter-spacing:0;text-transform:none;color:var(--muted);margin:0 0 6px;}
.field.err input,.field.err textarea,.field.err select,input[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid var(--crit-solid);padding-left:13px;padding-right:13px;}
.field-err{display:flex;align-items:flex-start;gap:5px;font:700 13px/18px var(--font-ui);color:var(--crit);margin-top:6px;}
.field-err svg{flex:none;margin-top:1px;}

/* ---- Stage badges + pills: 22 high, 12/800, tint + deep text ---------------- */
.badge,.pill,.chip{
  display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:999px;
  font:800 12px/22px var(--font-ui);letter-spacing:0;text-transform:none;white-space:nowrap;border:0;
  background:var(--panel-2);color:var(--muted);
}
.pill.ok{background:var(--ok-bg);color:var(--ok);}
.pill.warn,.chip.warn{background:var(--warn-bg);color:var(--warn);}
.pill.crit{background:var(--crit-bg);color:var(--crit);}
.pill.info,.chip.assignee{background:var(--info-bg);color:var(--info);}
.pill.neutral,.chip,.pill{background:var(--panel-2);color:var(--muted);}
.pill.fleet,.chip.gold,.badge.gold{background:var(--gold-soft);color:var(--gold-text);}
.badge.outline{background:none;border:1px solid var(--ink-fill);color:var(--text);}

/* ---- Segmented: pill track, picked = ink --------------------------------- */
.seg{display:inline-flex;align-items:center;height:44px;padding:4px;border-radius:999px;background:var(--panel-2);gap:2px;border:0;overflow:visible;}
.seg button,.seg .filter-btn{
  height:36px;flex:1 1 0;min-width:0;padding:0 14px;border:0;border-radius:999px;background:transparent;
  color:var(--text);font:700 14px var(--font-ui);white-space:nowrap;cursor:pointer;
}
.seg button.on,.seg button.active,.seg .filter-btn.active{background:var(--ink-fill);color:var(--on-ink);font-weight:800;}
.seg button:not(.on):not(.active):hover{background:transparent;color:var(--text);}
.seg.wrap{flex-wrap:wrap;height:auto;}
.seg.wrap button{flex:none;}
.selseg{flex-wrap:wrap;height:auto;}
.selseg button{flex:1 1 auto;}

/* ---- Switch: 46×28, ok green on, grey off; the whole 44px row is the target --- */
.switch-row{min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer;}
.switch{width:46px;height:28px;flex:none;padding:3px;border:0;border-radius:999px;background:#8a8780;display:flex;justify-content:flex-start;transition:background .15s;}
.switch[aria-checked=true]{background:var(--ok);justify-content:flex-end;}
.switch span{width:22px;height:22px;border-radius:50%;background:#fff;}
.switch-row .lab{font:700 15px var(--font-ui);color:var(--text);flex:1;}
.switch-row .st{font:700 13px var(--font-ui);color:var(--muted);}
.switch-row .st.on{color:var(--ok);}

/* ---- Menu button + menu popover ------------------------------------------- */
.menu-sel{height:48px;padding:0 12px 0 14px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);font:700 16px var(--font-ui);color:var(--text);}
.menu-sel:focus-visible{outline:2px solid var(--ink-fill);outline-offset:1px;}
.menu-pop{border-radius:var(--r-btn);padding:6px;border:1px solid var(--line);box-shadow:var(--sh-pop);min-width:200px;}
.menu-pop .menu-item{height:44px;padding:0 10px;border-radius:8px;font:700 15px var(--font-ui);gap:10px;}
.menu-pop .menu-item svg{color:var(--muted);flex:none;}
.menu-pop .menu-item .mi-check{margin-left:auto;color:var(--text);}
.menu-pop .menu-item.on{background:var(--panel-2);font-weight:800;}

/* ---- Inline confirm: replaces the row in place ----------------------------- */
.ic-confirm{padding:10px 10px 10px 14px;border:1px solid var(--line);border-radius:var(--r-btn);background:var(--crit-bg);font:700 15px var(--font-ui);color:var(--text);gap:8px;}
.ic-confirm.safe{background:var(--panel-2);}
.ic-confirm .icc-back{height:44px;padding:0 16px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);font:700 15px var(--font-ui);color:var(--text);}
.ic-confirm .icc-go{height:44px;padding:0 16px;border:0;border-radius:var(--r-btn);background:var(--crit-solid);color:#fff;font:800 15px var(--font-ui);}
.ic-confirm .icc-go.safe{background:var(--ink-fill);color:var(--on-ink);}

/* ---- Toasts: ink pill + icon; error = red pill ---------------------------- */
#toastHost .toast{height:44px;padding:0 16px 0 12px;border-radius:999px;background:var(--ink-fill);color:var(--on-ink);font:700 14px var(--font-ui);display:flex;align-items:center;gap:8px;box-shadow:var(--sh-pop);}
#toastHost .toast svg{flex:none;}
#toastHost .toast.err{background:var(--crit-solid);color:#fff;}
body.dark #toastHost .toast{background:var(--ink-fill);color:var(--on-ink);}
body.dark #toastHost .toast.err{background:var(--crit-solid);color:#fff;}

/* ---- Empty state, skeleton, offline --------------------------------------- */
.empty,.empty2{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 0;text-align:center;border:0;background:none;font:600 15px var(--font-ui);color:var(--muted);}
.empty svg,.empty2 svg{color:var(--muted);}
.empty b{font:700 15px var(--font-ui);color:var(--text);}
.skel,.shimmer{height:44px;border-radius:8px;background:var(--skeleton);min-height:44px;}
.skel::after,.shimmer::after{display:none;}
.offline-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px dashed var(--ink-fill);border-radius:var(--r-btn);background:none;color:var(--text);}
.offline-card .oc-t{font:800 15px var(--font-ui);}
.offline-card .oc-s{font:400 13px var(--font-ui);color:var(--muted);}

/* ---- Sheet: centred 560 panel on iPad, bottom sheet on phone ---------------- */
.sheet-dim{position:fixed;inset:0;background:var(--dim);z-index:1000;display:flex;align-items:center;justify-content:center;padding:22px;overflow:hidden;}
.sheet{
  background:var(--panel);border-radius:var(--r-sheet);width:100%;max-width:560px;margin:0;padding:0;
  box-shadow:var(--sh-sheet);display:flex;flex-direction:column;max-height:calc(100vh - 44px);
}
.sheet.wide{max-width:880px;}
.sheet-head{display:flex;align-items:center;gap:10px;height:60px;min-height:60px;padding:0 10px 0 20px;margin:0;flex:none;}
.sheet-head h2{font:800 19px var(--font-ui);color:var(--text);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sheet-close{width:44px;height:44px;flex:none;margin-left:auto;border:0;background:none;border-radius:var(--r-btn);color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:0;}
.sheet-close:hover{background:var(--panel-2);color:var(--text);border-color:transparent;}
.sheet-body{padding:4px 20px 16px;overflow:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;-webkit-overflow-scrolling:touch;}
.sheet-body > .field{margin-bottom:0;}
.sheet-actions{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--line);margin:0;flex:none;justify-content:flex-end;flex-wrap:wrap;background:var(--panel);border-radius:0 0 var(--r-sheet) var(--r-sheet);}
.sheet-section{border-top:1px solid var(--line);margin-top:2px;padding-top:14px;}
.sheet-section h3{font:700 15px var(--font-ui);color:var(--text);margin:0 0 10px;}
.sheet.jc-modal{max-width:1840px;width:98vw;max-height:calc(100vh - 44px);} /* the job card keeps its full width until section 3 makes it a page */
.sheet.jc-modal .sheet-body{padding:0;gap:0;}
@media (max-width:600px){
  .sheet-dim{align-items:flex-end;padding:0;}
  .sheet{max-width:none;border-radius:18px 18px 0 0;max-height:92vh;box-shadow:0 -8px 40px rgba(0,0,0,.25);}
  .sheet::before{content:'';display:block;width:36px;height:4px;border-radius:2px;background:var(--line-control);margin:8px auto 0;flex:none;}
  .sheet-head{height:52px;min-height:52px;}
  .sheet-actions{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));}
}

/* ---- Pickers: picked day/time = ink, never gold ----------------------------- */
.dp-grid{grid-template-columns:repeat(7,1fr);gap:6px;}
.dp-day{height:64px;padding:0;border:1px solid var(--line-control);border-radius:10px;gap:0;justify-content:center;}
.dp-day .dw{font:700 12px/15px var(--font-ui);text-transform:none;letter-spacing:0;color:var(--muted);}
.dp-day .dn{font:800 17px/21px var(--font-ui);}
.dp-day .dl{font:400 12px/15px var(--font-ui);color:var(--muted);}
.dp-day.on{background:var(--ink-fill);border-color:var(--ink-fill);}
.dp-day.on .dw,.dp-day.on .dn,.dp-day.on .dl{color:var(--on-ink);}
.dp-day.full{opacity:1;border:0;background:var(--panel-2);cursor:default;}
.dp-day.full .dw,.dp-day.full .dn,.dp-day.full .dl{color:var(--faint-text);}
.dp-pop{padding:12px 12px 6px;min-width:360px;}
.tp-col button{height:44px;border:0;border-radius:10px;background:transparent;font:700 16px var(--font-ui);}
.tp-col button.on{background:var(--ink-fill);color:var(--on-ink);font-weight:800;}
.tp-set{height:44px;border:0;border-radius:var(--r-btn);background:var(--ink-fill);color:var(--on-ink);font:800 15px var(--font-ui);}

/* ---- "Texting isn't connected" banner ------------------------------------- */
.tx-off{background:var(--warn-bg);border:0;border-radius:var(--r-btn);padding:10px 12px;font:700 14px var(--font-ui);color:var(--warn);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.tx-off span{flex:1;min-width:160px;}
.tx-off .btn-ghost{height:36px;padding:0 12px;font-size:14px;}


/* ---- Shell: top bar, badges, clock, avatar (Shell-Spec.html) ---------------- */
header.top{
  position:sticky;top:0;z-index:100;height:50px;min-height:50px;padding:0 12px;gap:12px;
  background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;color:var(--text);
}
.logo-tile{width:30px;height:30px;flex:none;border:0;border-radius:8px;background:var(--gold);display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;}
.logo-tile.big{width:52px;height:52px;border-radius:14px;}
.logo-tile.soft{width:48px;height:48px;border-radius:13px;background:var(--panel-2);color:var(--text);}
.tab-nav{display:flex;align-items:center;gap:4px;flex:1;min-width:0;height:auto;overflow:visible;}
.tab-btn{
  position:relative;width:44px;height:44px;flex:none;border:0;border-radius:10px;background:transparent;color:var(--muted);
  display:flex;align-items:center;justify-content:center;padding:0;margin:0;cursor:pointer;
}
.tab-btn:hover{background:var(--panel-2);color:var(--text);filter:none;}
.tab-btn.active,.tab-btn[aria-expanded=true]{background:var(--panel-2);color:var(--text);}
.tab-btn svg{display:block;}
.tab-btn .nav-badge,.bell-badge{
  position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;
  background:var(--crit-solid);color:#fff;font:800 11px/18px var(--font-ui);text-align:center;border:0;margin:0;vertical-align:0;display:inline-block;
}
.tab-btn.bell{color:var(--text);}
.bell-badge{background:var(--ink-fill);color:var(--on-ink);}
.top-clock{font:400 13px var(--font-ui);color:var(--muted);white-space:nowrap;flex:none;}
.top-clock b{font-weight:800;color:var(--text);}
.avatar-btn{width:44px;height:44px;flex:none;border:0;border-radius:10px;background:transparent;display:flex;align-items:center;justify-content:center;padding:0;cursor:pointer;}
.avatar-btn[aria-expanded=true]{background:var(--panel-2);}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 14px/32px var(--font-ui);text-align:center;display:inline-block;flex:none;border:0;}
.avatar.big{width:40px;height:40px;font-size:17px;line-height:40px;}
@media (max-width:600px){
  header.top{padding:0 6px;gap:2px;}
  .logo-tile{margin-right:4px;}
  .tab-nav{gap:2px;}
  .top-clock,.avatar-btn{display:none;}
}
/* popover menus: More (280) and Account (300) */
.pop-dim{position:fixed;left:0;right:0;top:50px;bottom:0;z-index:600;background:rgba(11,11,12,.16);}
.pop-menu{
  position:fixed;z-index:610;width:280px;max-height:calc(100vh - 70px);overflow:auto;box-sizing:border-box;padding:8px;
  border-radius:14px;background:var(--panel);box-shadow:0 12px 36px rgba(11,11,12,.18);display:flex;flex-direction:column;
}
body.dark .pop-menu{box-shadow:0 12px 36px rgba(0,0,0,.5);border:1px solid var(--line);}
.pm-label{height:30px;padding:0 12px;font:800 12px/30px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.pm-row{
  width:100%;height:48px;box-sizing:border-box;padding:0 12px;border:0;border-radius:10px;background:transparent;color:var(--text);
  font:700 15px var(--font-ui);display:flex;align-items:center;gap:12px;text-align:left;text-decoration:none;cursor:pointer;
}
.pm-row:hover{background:var(--panel-2);}
.pm-row.on{background:var(--panel-2);}
.pm-row svg{flex:none;color:var(--muted);}
.pm-row .pm-lab{flex:1;min-width:0;}
.pm-row .pm-val{font-weight:600;color:var(--muted);}
.pm-row .pm-chev{color:var(--muted);}
.pm-row.crit{color:var(--crit);}
.pm-row.indent{padding-left:44px;}
.pm-sep{height:1px;margin:6px 0;background:var(--line);}
.pm-switch{height:48px;box-sizing:border-box;padding:0 12px;display:flex;align-items:center;gap:12px;}
.pm-switch.tall{height:58px;}
.pm-switch svg{flex:none;color:var(--muted);}
.pm-switch .pm-lab{flex:1;font:700 15px var(--font-ui);color:var(--text);}
.pm-switch .pm-cap{font:400 13px var(--font-ui);color:var(--muted);}
.pm-switch .switch-row.inline{min-height:0;gap:0;flex:none;}
.pm-switch .switch-row.inline .lab{display:none;}
.pm-who{padding:8px 12px 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);margin-bottom:2px;}
.pm-who-name{font:800 16px var(--font-ui);color:var(--text);}
.pm-who-name span{font:400 13px var(--font-ui);color:var(--muted);}
.pm-who-role{font:400 13px var(--font-ui);color:var(--muted);}
.pm-who.compact{height:48px;padding:0 8px;border-bottom:0;border-top:1px solid var(--line);margin:0;}
.pm-confirm{padding:4px 0;}
/* phone: More as one bottom sheet */
.more-sheet .ms-body{display:flex;flex-direction:column;padding:0 12px 14px;overflow:auto;}
.more-sheet .sheet-head{padding-left:20px;}
.more-sheet .pm-label{padding:0 8px;height:24px;line-height:24px;}
.more-sheet .ms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px;}
.more-sheet .pm-row{padding:0 8px;gap:10px;}
.more-sheet .pm-switch{padding:0 8px;gap:10px;}
.more-sheet .pm-label + .pm-row,.more-sheet .pm-label + .ms-grid{border-top:0;}
/* bars under the top bar */
.session-bar{
  display:flex;align-items:center;justify-content:center;gap:14px;height:64px;padding:0 16px;
  background:var(--warn-bg);color:var(--text);font:700 15px var(--font-ui);
}
.session-bar .btn-gold{height:44px;padding:0 18px;font-size:15px;}
.offline-bar{
  display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:6px 16px;margin:10px 20px 0;
  border:1.5px dashed var(--ink-fill);border-radius:12px;color:var(--text);font:700 15px var(--font-ui);
}
.offline-bar svg{flex:none;}
.offline-bar b{font-weight:800;}
/* page states */
.page-state{max-width:420px;margin:60px auto;padding:24px;border-radius:14px;background:var(--panel);box-shadow:var(--sh-card);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;}
.page-state .ps-t{font:800 17px var(--font-ui);color:var(--text);}
.page-state .ps-l{font:400 14px var(--font-ui);color:var(--muted);margin-bottom:8px;}
/* ---- Sign in: paper page, white card, two steps ------------------------------ */
#loginScreen{min-height:100vh;background:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px 60px;box-sizing:border-box;}
.login-card{width:100%;max-width:380px;box-sizing:border-box;padding:32px 28px 28px;border-radius:14px;background:var(--panel);box-shadow:var(--sh-card);display:flex;flex-direction:column;gap:24px;}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;}
.login-title{font:800 24px var(--font-ui);letter-spacing:-.01em;color:var(--text);text-align:center;}
.login-title.small{font-size:22px;text-align:left;}
.login-sub{font:400 14px var(--font-ui);color:var(--muted);text-align:center;margin:-10px 0 0;}
.login-code-head{display:flex;flex-direction:column;gap:14px;}
.login-code-head .login-sub{text-align:left;margin:-12px 0 0;}
.login-fields{display:flex;flex-direction:column;gap:14px;}
.login-fields .field{margin:0;}
.pw-wrap{height:48px;box-sizing:border-box;border:1px solid var(--line-control);border-radius:12px;background:var(--panel);display:flex;align-items:center;}
.pw-wrap:focus-within{border:2px solid var(--ink-fill);}
.pw-wrap input{flex:1;min-width:0;height:44px;border:0 !important;background:transparent;padding:0 14px !important;}
.pw-wrap input:focus{border:0;}
.pw-show{height:44px;flex:none;padding:0 14px;border:0;border-radius:10px;background:transparent;color:var(--text);font:800 14px var(--font-ui);}
.login-error{padding:12px 14px;border-radius:12px;background:var(--crit-bg);color:var(--crit);font:700 14px var(--font-ui);margin:-8px 0;}
.login-actions{display:flex;flex-direction:column;gap:12px;}
.login-submit,.login-back{width:100%;justify-content:center;}
.login-note{font:400 13px var(--font-ui);color:var(--muted);text-align:center;margin:0;}
.login-as{font:400 13px var(--font-ui);color:var(--muted);text-align:center;margin:14px 0 0;}
.login-as b{color:var(--text);font-weight:800;}
.code-boxes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.code-boxes input{width:100%;height:60px;padding:0 !important;text-align:center;font:800 26px var(--font-ui);}
@media (max-width:600px){
  #loginScreen{justify-content:flex-start;padding-top:28px;}
  .login-card{max-width:none;padding:24px 20px 20px;}
}

/* ---- Today (Today-Spec.html) ------------------------------------------------- */
.td-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;}
.td-head-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.td-head .page-title{font:800 24px/32px var(--font-ui);letter-spacing:-.01em;margin:0;}
.td-sub{font:400 14px var(--font-ui);color:var(--muted);margin:0;}
.td-facts{margin-top:6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;font:400 13px var(--font-ui);color:var(--muted);}
.td-facts span{display:inline-flex;align-items:center;gap:6px;}
.td-head-btns{display:flex;gap:10px;flex:none;}
.td-head-btns .btn-ghost{height:44px;}
.td-strips{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.td-strips:empty{display:none;}
.td-needs{height:60px;box-sizing:border-box;padding:0 16px;border:0;border-radius:14px;background:var(--panel);color:var(--text);box-shadow:var(--sh-card);display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;width:100%;}
.td-needs svg{flex:none;color:var(--text);}
.td-needs-n{flex:none;font:800 17px var(--font-ui);}
.td-needs-p{flex:1;min-width:0;font:400 15px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.td-wx{min-height:64px;box-sizing:border-box;padding:10px 10px 10px 16px;border-radius:14px;background:var(--warn-bg);display:flex;align-items:center;gap:12px;color:var(--text);}
.td-wx > svg{flex:none;color:var(--warn);}
.td-wx-txt{flex:1;min-width:0;font:400 15px var(--font-ui);}
.td-wx-txt .hint{font-size:13px;}
.td-wx .btn-ghost{flex:none;}
.td-error{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;background:var(--crit-bg);color:var(--crit);font:700 15px var(--font-ui);}
.td-error span{flex:1;}
.td-body{display:flex;flex-direction:column;gap:12px;}
.td-group{display:grid;grid-template-columns:60px minmax(0,1fr);gap:12px;}
.td-win{padding-top:16px;font:800 15px var(--font-ui);color:var(--text);}
.td-rows{display:flex;flex-direction:column;gap:8px;}
.td-row{min-height:76px;box-sizing:border-box;padding:12px 16px;border-radius:14px;background:var(--panel);box-shadow:var(--sh-card);display:flex;align-items:center;gap:14px;cursor:pointer;}
.td-row:focus-visible{outline:2px solid var(--ink-fill);outline-offset:2px;}
.td-row.done .td-name span:first-child,.td-row.done .td-detail,.td-row.done .td-tech{color:var(--faint-text);}
.td-row.done .td-ini{background:var(--muted);}
.td-tech{width:104px;flex:none;display:inline-flex;align-items:center;gap:7px;height:36px;box-sizing:border-box;padding:0 12px 0 4px;border:1px solid var(--line-control);border-radius:999px;font:700 14px var(--font-ui);color:var(--text);white-space:nowrap;overflow:hidden;}
.td-tech .td-ini{width:28px;height:28px;flex:none;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 11px/28px var(--font-ui);text-align:center;}
.td-tech.none{padding-left:9px;gap:6px;border:1px dashed var(--crit-solid);color:var(--crit);font-weight:800;}
.td-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.td-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.td-name span:first-child{font:800 17px var(--font-ui);color:var(--text);}
.td-detail{font:400 15px var(--font-ui);color:var(--muted);}
.td-act{width:250px;flex:none;display:flex;flex-direction:column;align-items:stretch;gap:5px;}
.td-act .btn-gold,.td-act .btn-ghost{width:100%;justify-content:center;}
.td-cap{display:flex;align-items:center;justify-content:center;gap:6px;font:400 13px var(--font-ui);color:var(--muted);}
.td-cap svg{flex:none;}
.td-cap.crit{color:var(--crit);font-weight:700;}
.td-done{display:flex;align-items:center;justify-content:center;gap:8px;font:800 16px var(--font-ui);color:var(--ok);}
.td-done.muted{color:var(--faint-text);}
/* Move jobs to the shop sheet */
.td-ms-lead{margin:0;}
.td-ms-rows{display:flex;flex-direction:column;}
.td-ms-row{display:flex;align-items:center;gap:12px;min-height:60px;padding:8px 0;border-top:1px solid var(--line);}
.td-ms-row:first-child{border-top:0;}
.td-ms-win{width:44px;flex:none;font:800 15px var(--font-ui);color:var(--text);}
.td-ms-main{flex:1;min-width:0;}
.td-ms-main b{font:800 15px var(--font-ui);color:var(--text);}
.td-ms-hint{flex:none;}
.td-ms-row .switch-row.inline{min-height:0;gap:0;flex:none;}
.td-ms-row .switch-row.inline .lab{display:none;}
.td-ms-cap{margin:0;text-align:center;padding:0 20px 14px;}
@media (max-width:600px){
  .td-head{flex-direction:column;gap:12px;}
  .td-head-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
  .td-head-btns .btn-ghost{width:100%;}
  .td-needs{height:auto;padding:12px 12px 12px 16px;}
  .td-needs-n,.td-needs-p{display:block;}
  .td-needs .td-needs-wrap{flex:1;min-width:0;}
  .td-wx{flex-wrap:wrap;padding:14px 16px;}
  .td-wx .btn-ghost{width:100%;}
  .td-group{display:flex;flex-direction:column;gap:8px;}
  .td-win{padding-top:0;}
  .td-row{flex-direction:column;align-items:stretch;padding:14px 16px;gap:12px;}
  .td-tech{order:3;width:auto;align-self:flex-end;height:28px;font-size:13px;padding:0 10px 0 3px;}
  .td-tech .td-ini{width:22px;height:22px;font-size:12px;line-height:22px;}
  .td-act{width:100%;}
  .td-act .btn-gold{height:52px;font-size:17px;}
  .td-act .btn-ghost{height:48px;}
}

/* ===== Redesign 3: Job card (JobCard-Spec.html) ============================ */
body.jc-open .wrap{max-width:none;padding:0;}
.jc-page{display:flex;flex-direction:column;height:calc(100dvh - 50px);min-height:320px;background:var(--paper);color:var(--text);font-size:15px;line-height:1.35;}
.jc-head{height:60px;min-height:60px;display:flex;align-items:center;gap:12px;padding:0 16px 0 8px;background:var(--panel);}
.jc-ib{width:44px;height:44px;flex:none;border:0;border-radius:10px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;padding:0;}
.jc-ib:hover,.jc-ib[aria-expanded=true]{background:var(--panel-2);}
.jc-who{display:flex;flex-direction:column;gap:1px;min-width:0;}
.jc-name{display:flex;align-items:center;gap:8px;font:800 19px/1.2 var(--font-ui);color:var(--text);min-width:0;}
.jc-name>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jc-phone{font:400 13px var(--font-ui);color:var(--muted);}
.jc-vehp{display:none;font:400 13px/18px var(--font-ui);color:var(--muted);}
.jc-hbtns{display:flex;gap:8px;flex:none;}
.jc-hbtns .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--text);}
.jc-hbtns .jc-copyp{display:none;}
.jc-vsep{width:1px;height:32px;background:var(--line);flex:none;}
.jc-veh{display:flex;flex-direction:column;gap:1px;min-width:0;}
.jc-vname{font:800 16px/1.2 var(--font-ui);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jc-vin{display:flex;align-items:center;gap:6px;font:400 13px var(--font-ui);color:var(--muted);white-space:nowrap;}
.jc-vin span{font-size:12.5px;color:var(--text);font-variant-numeric:tabular-nums;}
.jc-copy{height:44px;padding:0 12px;font:700 13px var(--font-ui);display:inline-flex;align-items:center;gap:6px;flex:none;}
.jc-num{font:700 13px var(--font-ui);color:var(--muted);margin-left:auto;white-space:nowrap;}
.jc-saved{height:22px;padding:0 9px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font:800 12px/22px var(--font-ui);}
/* stage path */
.jc-path{height:52px;min-height:52px;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:10px 16px 0;background:var(--panel);border-bottom:1px solid var(--line);box-sizing:border-box;}
.jc-step{display:flex;flex-direction:column;gap:6px;align-items:stretch;border:0;background:transparent;padding:0;text-align:left;min-width:0;cursor:pointer;}
.jc-step i{display:block;height:5px;border-radius:3px;background:var(--line);}
.jc-step.done i,.jc-step.cur i{background:var(--ink-fill);}
.jc-step .lab{display:flex;align-items:center;gap:4px;font:700 12.5px/22px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jc-step.up .lab{font-weight:600;color:var(--faint);}
.jc-step.cur{cursor:default;}
.jc-step.cur .lab{align-self:flex-start;height:22px;padding:0 10px;border-radius:999px;background:var(--ink-fill);color:var(--on-ink);font-weight:800;}
.jc-step:hover:not(.cur) .lab{color:var(--text);}
.jc-path-ph{display:none;}
.jc-tabs{display:none;}
/* body */
.jc-body{flex:1;min-height:0;display:flex;}
.jc-left{flex:1;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 28px;display:flex;flex-direction:column;gap:10px;}
.jc-card{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:14px 16px;display:flex;flex-direction:column;gap:8px;}
.jc-ch{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.jc-ct{display:flex;align-items:baseline;gap:8px;font:800 16px var(--font-ui);color:var(--text);min-width:0;}
.jc-ct span{font:400 13px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jc-ch .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;flex:none;}
/* next step */
.jc-next{padding:12px 16px;gap:6px;}
.jc-next-row{display:flex;align-items:center;gap:16px;}
.jc-next-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.jc-kicker{font:800 11px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.jc-next-s{font:800 20px/1.25 var(--font-ui);color:var(--text);}
.jc-next-sub{font:400 13.5px var(--font-ui);color:var(--muted);}
.jc-next-btns{display:flex;align-items:center;gap:10px;flex:none;}
.jc-next-btns .btn-ghost{height:48px;padding:0 16px;font:700 15px var(--font-ui);}
.jc-next-btns .btn-gold{height:48px;padding:0 22px;font:800 16px var(--font-ui);}
.jc-next-btns .btn-gold:disabled{background:var(--panel-2);color:var(--faint);box-shadow:none;}
.jc-cap{display:flex;align-items:center;justify-content:flex-end;gap:6px;font:400 13px/18px var(--font-ui);color:var(--muted);}
.jc-cap svg{flex:none;}
.jc-cap.crit{color:var(--crit);font-weight:700;}
.jc-paidpill{height:28px;line-height:28px;padding:0 12px;font-size:13px;}
.jc-gate{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--warn-bg);border-radius:var(--r-btn);padding:10px 12px;font:700 14px/18px var(--font-ui);color:var(--warn);}
.jc-gate svg{flex:none;}
.jc-gate span{flex:1;min-width:160px;}
.jc-gate .btn-ghost{height:40px;padding:0 12px;font-size:14px;}
/* quote */
.jc-qbody{display:flex;gap:20px;align-items:stretch;}
.jc-qlines{flex:1;min-width:0;display:flex;flex-direction:column;}
.jc-ql{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;font:400 15px var(--font-ui);color:var(--text);}
.jc-ql .mut,.jc-ql .mut b{color:var(--muted);font-weight:400;}
.jc-ql b{font-weight:700;font-variant-numeric:tabular-nums;}
.jc-ql b.ok{color:var(--ok);} .jc-ql b.dim{color:var(--faint);}
.jc-qsvc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jc-qsvc em{font-style:normal;color:var(--muted);}
.jc-qamt{width:120px;height:36px;padding:0 8px;border:1px solid transparent;border-radius:8px;background:transparent;text-align:right;font:700 15px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}
.jc-qamt:hover{background:var(--panel-2);}
.jc-qamt:focus{border:2px solid var(--ink-fill);padding:0 7px;background:var(--panel);}
.jc-qdisc{min-height:44px;}
.jc-qdisc .switch-row{flex:1;min-height:44px;gap:10px;}
.jc-qdisc .switch-row .lab{font-weight:400;}
.jc-ql.ins{min-height:30px;font-size:13px;}
.jc-ql.ins b{font-size:13px;}
.jc-link{align-self:flex-start;height:44px;display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:0;font:700 14px var(--font-ui);color:var(--text);text-decoration:underline;text-underline-offset:3px;}
.jc-breakdown{padding:4px 0 8px;}
.jc-breakdown .row6c{grid-template-columns:repeat(3,minmax(0,1fr));}
.jc-breakdown .field{margin-bottom:0;}
.jc-qtotal{width:250px;flex:none;padding:10px 14px;border-radius:12px;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;gap:6px;}
.jc-qt-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.jc-qt-row span{font:700 13px var(--font-ui);color:var(--muted);}
.jc-qt-row b{font:800 28px/1.1 var(--font-ui);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;}
.jc-qempty{font:700 15px var(--font-ui);color:var(--muted);}
.jc-qtotal .btn-ghost{height:44px;width:100%;justify-content:center;font:700 14px var(--font-ui);}
/* costs & profit */
.jc-costs-row{width:100%;min-height:48px;padding:0 16px;border:0;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);display:flex;align-items:center;gap:10px;font:400 15px var(--font-ui);color:var(--text);text-align:left;box-sizing:border-box;}
.jc-costs-row .t{font-weight:800;white-space:nowrap;}
.jc-costs-row .s{font-size:13px;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jc-costs-row .p{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums;}
.jc-costs-row .chev{color:var(--muted);transition:transform .15s;flex:none;}
.jc-costs-row.open .chev{transform:rotate(180deg);}
.jc-costs-row:hover{background:var(--panel-2);}
.jc-costs-row .p.neg{color:var(--crit);}
.jc-costs{gap:8px;}
.jc-costs .jgrid3 .field{margin-bottom:0;}
.jc-profit{font:800 16px var(--font-ui);border-top:1px solid var(--line);padding-top:8px;margin-top:2px;}
.jc-profit .r{display:flex;align-items:center;gap:8px;}
.jc-profit b{font-size:18px;}
/* schedule */
.jc-sched{gap:10px;}
.jc-techbtn{height:44px;padding:0;border:0;background:transparent;display:flex;align-items:center;flex:none;}
.jc-techbtn .td-tech{width:auto;height:44px;padding:0 12px 0 6px;gap:8px;}
.jc-techbtn .td-tech .td-ini{width:30px;height:30px;font:800 13px/30px var(--font-ui);}
.jc-srow{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.jc-day{width:220px;flex:none;}
.jc-day .menu-sel.dp-btn{height:48px;width:100%;padding:0 14px;border-radius:var(--r-btn);background:var(--panel);font:700 15px var(--font-ui);color:var(--text);gap:9px;}
.jc-day .menu-sel.dp-btn svg{color:var(--muted);}
.jc-wins{flex:1;min-width:260px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.jc-wins button{height:48px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);font:700 15px var(--font-ui);color:var(--text);padding:0 6px;white-space:nowrap;}
.jc-wins button span{font-weight:400;color:var(--muted);}
.jc-wins button.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);}
.jc-wins button.on span{color:var(--on-ink);opacity:.8;}
.jc-wins button:disabled{background:var(--panel-2);color:var(--faint);border-color:transparent;}
.jc-wins button:disabled span{color:var(--faint);}
.jc-scap{font:400 13px/18px var(--font-ui);color:var(--muted);}
.jc-scap.crit{color:var(--crit);font-weight:700;}
.ic-confirm.warn{background:var(--warn-bg);border-color:transparent;}
/* photo strip */
.jc-photos{padding:10px 16px;flex-direction:row;align-items:center;gap:14px;}
.jc-ptile{width:52px;height:52px;flex:none;border-radius:10px;background:repeating-linear-gradient(135deg,var(--line) 0 6px,var(--panel-2) 6px 12px);display:flex;align-items:center;justify-content:center;color:var(--muted);}
.jc-pcounts{flex:1;min-width:0;display:flex;gap:22px;flex-wrap:wrap;}
.jc-pcounts div{display:flex;flex-direction:column;gap:1px;}
.jc-pcounts span{font:700 12px var(--font-ui);color:var(--muted);}
.jc-pcounts b{font:800 15px var(--font-ui);color:var(--text);white-space:nowrap;}
.jc-pcounts b.dim{color:var(--faint);}
.jc-photos .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;flex:none;}
/* old cards under the new ones (until 3b) */
.jc-legacy{margin-top:14px;display:flex;flex-direction:column;gap:14px;}
.jc-legacy-lb{font:800 11px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 2px;}
.jc-legacy .jcard{border:0;box-shadow:var(--sh-card);border-radius:var(--r-card);}
.jc-legacy .ins-cols .split-card{width:100%;}
.jc-legacy .fchip svg{margin-right:-2px;}
/* texts panel */
.jc-thread{width:420px;flex:none;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;}
.jc-th{height:48px;min-height:48px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.jc-th .t{font:800 16px var(--font-ui);color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jc-th .via{font:400 12px var(--font-ui);color:var(--faint);white-space:nowrap;}
.jc-tbody{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px;display:flex;flex-direction:column;}
.jc-tbody .msg-thread{max-height:none;overflow:visible;padding:0;gap:8px;margin-top:auto;}
.jc-tbody .empty{margin:auto 0;}
.jc-tskel{display:flex;flex-direction:column;gap:10px;margin-top:auto;}
.jc-tskel .skel{width:62%;height:44px;border-radius:16px;}
.jc-tskel .skel.out{align-self:flex-end;}
.jc-tfoot{flex:none;display:flex;flex-direction:column;}
.jc-tfoot .smart-suggest{margin:0 16px 8px;}
.jc-tfoot .tx-off{margin:0 16px 8px;}
.jc-tquick{padding:0 16px 8px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;}
.jc-tquick::-webkit-scrollbar{display:none;}
.jc-tquick:empty{display:none;}
.jc-chip{height:44px;padding:0 14px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);font:700 14px var(--font-ui);color:var(--text);white-space:nowrap;flex:none;}
.jc-chip:hover{border-color:var(--muted-2);}
.jc-tcomp{padding:10px 12px 12px 16px;display:flex;align-items:flex-end;gap:8px;}
.jc-tcomp .col{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.jc-tcomp textarea{width:100%;box-sizing:border-box;min-height:44px;height:44px;max-height:140px;padding:10px 14px;border:1px solid var(--line-control);border-radius:22px;background:var(--paper);font:400 16px/22px var(--font-ui);color:var(--text);resize:none;overflow:auto;}
.jc-tcomp textarea:focus{padding:9px 13px;}
.jc-tcomp .hint{font:400 11.5px var(--font-ui);color:var(--faint);padding-left:6px;}
.jc-send{width:44px;height:44px;flex:none;border:0;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);display:flex;align-items:center;justify-content:center;padding:0;margin-bottom:20px;}
.jc-send:disabled{background:var(--panel-2);color:var(--faint);}
/* bubbles (shared kit: 16 radius, 4 on the tail corner) */
.msg-bubble{padding:9px 13px;font:400 15px/1.4 var(--font-ui);border-radius:16px;overflow-wrap:anywhere;}
.msg-bubble.outbound{background:var(--ink-fill);color:var(--on-ink);border:0;border-radius:16px 16px 4px 16px;}
.msg-bubble.inbound{background:var(--panel-2);color:var(--text);border:0;border-radius:16px 16px 16px 4px;}
.msg-time{display:flex;align-items:center;gap:6px;font:400 11.5px var(--font-ui);color:var(--faint);margin-top:3px;}
.msg-time.crit{color:var(--crit);font-weight:700;}
.msg-q{height:20px;line-height:20px;padding:0 8px;font-size:11.5px;}
.jc-tbody .msg-day{align-self:center;font:700 12px var(--font-ui);color:var(--faint);padding:4px 0;background:none;text-transform:none;letter-spacing:0;border:0;margin:0;}
.msg-row{max-width:300px;gap:3px;}
.msg-row.pending{opacity:.6;}
.msg-row.failed{cursor:pointer;}
/* sheets on the card */
.jc-sheet .sheet-body{gap:10px;}
.jc-sheet-total{font:800 28px/1.1 var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}
.jc-sheet-line{font:400 14px/20px var(--font-ui);color:var(--muted);}
.jc-sheet-q{font:800 15px var(--font-ui);color:var(--text);margin-top:4px;}
.jc-sheet-err{background:var(--crit-bg);color:var(--crit);border-radius:var(--r-btn);padding:10px 12px;font:700 14px/18px var(--font-ui);}
.jc-sheet-cap{justify-content:flex-start;padding:0 20px 14px;}
.jc-sheet-facts{display:flex;flex-direction:column;gap:8px;}
.jc-sheet-facts div{display:flex;gap:8px;align-items:flex-start;font:400 14px/19px var(--font-ui);color:var(--text);}
.jc-sheet-facts svg{flex:none;margin-top:2px;color:var(--muted);}
.jc-reasons{display:flex;flex-wrap:wrap;gap:8px;}
.jc-reason{height:44px;padding:0 14px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);font:700 14px var(--font-ui);color:var(--text);}
.jc-reason.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);}
.btn-danger{height:44px;padding:0 16px;border:0;border-radius:var(--r-btn);background:var(--crit-solid);color:#fff;font:800 15px var(--font-ui);}
.btn-danger:hover{filter:brightness(.92);}
.jc-stage-list{display:flex;flex-direction:column;}
.pm-row.off{opacity:.5;cursor:default;}
.pm-row .pm-val{font:400 13px var(--font-ui);color:var(--muted);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%;}
/* iPad portrait: two header rows, one column, texts pinned at the bottom */
@media (max-width:900px){
  .jc-head{height:auto;min-height:0;flex-wrap:wrap;gap:10px;padding:0 8px;}
  .jc-who{flex-direction:row;align-items:center;gap:10px;height:54px;}
  .jc-phone{font-size:14px;}
  #jcMenu{margin-left:auto;}
  .jc-vsep{order:19;flex-basis:100%;height:0;width:auto;background:none;}
  .jc-veh{order:20;flex-direction:row;align-items:center;gap:12px;padding-left:54px;height:50px;margin-top:-10px;padding-bottom:6px;box-sizing:border-box;}
  .jc-copy{order:21;margin-top:-10px;}
  .jc-num{order:22;margin-left:0;margin-top:-10px;}
  .jc-saved{order:23;margin-top:-10px;}
  .jc-body{flex-direction:column;}
  .jc-thread{width:100%;height:440px;min-height:440px;border-left:0;border-top:1px solid var(--line);}
  .jc-left{flex:1;}
}
/* iPhone: Job / Texts, one at a time */
@media (max-width:600px){
  .jc-head{height:auto;min-height:46px;flex-wrap:wrap;gap:4px;padding:0 4px 6px;}
  .jc-who{flex:1;order:0;}
  .jc-name{font-size:17px;line-height:23px;gap:8px;}
  .jc-name .pill{height:20px;line-height:20px;font-size:11.5px;padding:0 8px;}
  .jc-phone,.jc-vsep,.jc-veh,.jc-copy,.jc-num,.jc-saved{display:none;}
  .jc-vehp{display:block;}
  .jc-hbtns{order:10;flex-basis:100%;padding:0 8px;}
  .jc-hbtns .btn-ghost{padding:0 12px;gap:6px;}
  .jc-hbtns .jc-copyp{display:inline-flex;padding:0 10px;font-size:11.5px;min-width:0;flex:1;justify-content:center;}
  .jc-copyp span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #jcMenu{order:1;}
  .jc-path{display:none;}
  .jc-path-ph{display:flex;flex-direction:column;gap:5px;padding:6px 16px 5px;background:var(--panel);border-bottom:1px solid var(--line);}
  .jc-path-ph .bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;}
  .jc-path-ph .bars i{display:block;height:5px;border-radius:3px;background:var(--line);}
  .jc-path-ph .bars i.on{background:var(--ink-fill);}
  .jc-path-ph .txt{display:flex;align-items:center;justify-content:space-between;font:400 13px/18px var(--font-ui);color:var(--muted);}
  .jc-path-ph .txt b{font-weight:800;color:var(--text);}
  .jc-tabs{display:block;padding:8px 16px 0;}
  .jc-seg{height:44px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:12px;background:var(--line);}
  .jc-seg button{height:44px;border:0;border-radius:12px;background:transparent;font:700 15px var(--font-ui);color:var(--muted);display:flex;align-items:center;justify-content:center;gap:7px;}
  .jc-seg button.on{background:var(--panel);color:var(--text);font-weight:800;box-shadow:0 1px 2px rgba(11,11,12,.08);border:1px solid var(--line);}
  .jc-tbadge{height:20px;padding:0 6px;border-radius:999px;background:var(--ink-fill);color:var(--on-ink);font:800 12px/20px var(--font-ui);}
  .jc-page[data-tab=job] .jc-thread{display:none;}
  .jc-page[data-tab=texts] .jc-left{display:none;}
  .jc-thread{height:auto;min-height:0;flex:1;border-top:0;}
  .jc-left{padding:8px 16px 24px;gap:8px;}
  .jc-card{padding:10px 14px;}
  .jc-next-row{flex-direction:column;align-items:stretch;gap:8px;}
  .jc-next-s{font-size:16px;line-height:22px;}
  .jc-next-btns{flex-direction:row-reverse;}
  .jc-next-btns .btn-gold{flex:1;height:52px;font-size:17px;padding:0 12px;}
  .jc-next-btns .btn-ghost{height:52px;padding:0 18px;}
  .jc-cap{justify-content:flex-start;align-items:flex-start;line-height:17px;}
  .jc-cap svg{margin-top:1px;}
  .jc-qbody{flex-direction:column;gap:6px;}
  .jc-qtotal{width:auto;flex-direction:row;align-items:center;background:transparent;padding:0;order:-1;}
  .jc-qtotal .btn-ghost{width:auto;}
  .jc-qt-row b{font-size:24px;}
  .jc-costs-row{min-height:48px;height:auto;padding:8px 14px;flex-wrap:wrap;row-gap:2px;}
  .jc-costs-row .s{flex-basis:100%;order:3;}
  .jc-day{width:100%;}
  .jc-wins{min-width:0;width:100%;}
  .jc-ch .btn-ghost{height:40px;padding:0 12px;}
  .jc-pcounts{gap:16px;}
  .jc-photos .btn-ghost{flex-basis:100%;justify-content:center;}
  .jc-photos{flex-wrap:wrap;}
}
/* ---- 3b: the eight section rows ---------------------------------------------- */
.jc-sections{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
.jc-sec{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);display:flex;flex-direction:column;}
.jc-sec-row{min-height:56px;padding:0 14px 0 16px;border:0;border-radius:var(--r-card);background:transparent;color:var(--text);font:400 15px var(--font-ui);display:flex;align-items:center;gap:12px;text-align:left;width:100%;box-sizing:border-box;}
.jc-sec-row .t{font:800 16px var(--font-ui);white-space:nowrap;}
.jc-sec-row .s{font:400 14px var(--font-ui);color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jc-sec-row .pillhost:empty{display:none;}
.jc-sec-row .chev{color:var(--muted);flex:none;transition:transform .15s;}
.jc-sec.open .jc-sec-row .chev{transform:rotate(180deg);}
.jc-sec-row:hover{background:var(--panel-2);}
.jc-sec.open .jc-sec-row{border-radius:var(--r-card) var(--r-card) 0 0;}
.jc-sec-body{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px;}
.jc-sec-body .field{margin-bottom:0;}
.jc-sec-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.jc-sec .seg.selseg{display:flex;width:100%;flex-wrap:nowrap;height:48px;box-sizing:border-box;}
.jc-sec .seg.selseg button{flex:1 1 0;padding:0 8px;height:40px;overflow:hidden;text-overflow:ellipsis;}
.jc-sec .menu-sel{width:100%;}
.jc-sec-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.jc-sec-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.jc-sec-2 .field.wide{grid-column:1/-1;}
.jc-sec-sub{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.lb2{font:700 13px/18px var(--font-ui);color:var(--muted);}
.jc-sec-cap{font:400 13px/18px var(--font-ui);color:var(--muted);display:flex;flex-direction:column;gap:4px;}
.jc-sec-cap div{display:flex;align-items:flex-start;gap:6px;}
.jc-sec-cap svg{flex:none;margin-top:1px;}
.jc-sec-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.jc-sec-btns .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--text);}
.jc-sec-btns .jc-link{height:44px;padding:0 6px;text-decoration:none;}
.jc-sec-save{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.jc-sec-save .hint{font-size:13px;flex:1;min-width:200px;}
.jc-sec-save .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.jc-sec .fchip{height:40px;padding:0 12px;border-radius:999px;font:700 14px var(--font-ui);color:var(--text);background:var(--panel);border:1px solid var(--line-control);gap:6px;}
.jc-sec .fchip.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);}
.jc-filebtn{display:contents;}
/* glass pieces */
.jc-glass:empty{display:none;}
.jc-glass{display:flex;flex-direction:column;gap:6px;}
.jc-glass-row{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 4px 0 14px;border:1px solid var(--line);border-radius:var(--r-btn);}
.jc-glass-row>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.jc-glass-row b{font:800 15px var(--font-ui);}
.jc-glass-row span{font:400 13px var(--font-ui);color:var(--muted);}
/* parts */
.jc-parts{display:flex;flex-direction:column;gap:8px;}
.jc-part{min-height:72px;padding:8px 4px 8px 14px;border:1px solid var(--line);border-radius:var(--r-btn);display:grid;grid-template-columns:minmax(0,1fr) 110px auto auto;align-items:center;gap:12px;box-sizing:border-box;}
.jc-part-main{display:flex;flex-direction:column;gap:1px;min-width:0;}
.jc-part-main b{font:800 16px var(--font-ui);}
.jc-part-main span{font:400 13px var(--font-ui);color:var(--muted);}
.jc-part-ord{display:flex;flex-direction:column;gap:1px;}
.jc-part-ord span{font:700 12px var(--font-ui);color:var(--muted);}
.jc-part-ord b{font:700 14px var(--font-ui);white-space:nowrap;}
.jc-part-acts{display:flex;align-items:center;gap:4px;}
.jc-part-acts .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.jc-gate.crit{background:var(--crit-bg);color:var(--crit);}
/* techs + time */
.jc-techs{display:flex;flex-wrap:wrap;gap:8px;}
.jc-sched-techs{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:10px;margin-top:2px;}
.jc-sched-techs .jc-sec-btns{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.jc-techchip{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 4px 0 6px;border:1px solid var(--line-control);border-radius:999px;font:700 14px var(--font-ui);color:var(--text);}
.jc-techchip .td-ini{width:30px;height:30px;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 12px/30px var(--font-ui);text-align:center;flex:none;}
.jc-techchip .x{width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;padding:0;}
.jc-techchip .x:hover{background:var(--panel-2);color:var(--text);}
.jc-techsel{width:240px;max-width:100%;}
.jc-time{display:flex;flex-direction:column;gap:6px;}
.jc-time-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;min-height:44px;padding:6px 0;border-top:1px solid var(--line);font:400 14px var(--font-ui);}
.jc-time-row>div{display:flex;flex-direction:column;gap:1px;min-width:0;}
.jc-time-row b{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums;}
.jc-time-row>div span{color:var(--muted);font-size:13px;}
.jc-time-row b.m{min-width:70px;text-align:right;}
.jc-time-row.total{border-top:2px solid var(--ink-fill);font-weight:800;}
/* calibration */
.jc-cal-fields{display:flex;flex-direction:column;gap:12px;}
/* insurance */
.jc-ins{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr);gap:16px 24px;align-items:start;}
.jc-ins-fields{display:flex;flex-direction:column;gap:12px;min-width:0;}
.jc-ins-side{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;background:var(--paper);}
.jc-split{display:flex;flex-direction:column;gap:4px;}
.jc-split div{display:flex;justify-content:space-between;gap:10px;font:400 14px var(--font-ui);color:var(--muted);}
.jc-split div b{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;}
.jc-split div.tot{margin-top:4px;padding-top:6px;border-top:2px solid var(--ink-fill);font:800 16px var(--font-ui);color:var(--text);}
.jc-ins-side .hint{font-size:13px;line-height:18px;}
.field.err label{color:var(--crit);}
/* checklist */
.jc-chk{display:flex;flex-direction:column;}
.jc-chk-row{display:flex;align-items:center;gap:12px;min-height:48px;padding:4px 0;border-top:1px solid var(--line);}
.jc-chk-row:first-child{border-top:0;}
.jc-chk-box{width:28px;height:28px;flex:none;border:2px solid var(--line-control);border-radius:8px;background:var(--panel);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;}
.jc-chk-row.done .jc-chk-box{background:var(--ok);border-color:var(--ok);}
.jc-chk-box:disabled{opacity:.7;cursor:default;}
.jc-chk-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.jc-chk-main .l{font:700 15px var(--font-ui);color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.jc-chk-row.done .jc-chk-main .l{color:var(--muted);font-weight:400;}
.jc-chk-main .s{font:400 13px var(--font-ui);color:var(--muted);}
.jc-chk-photo{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:pointer;}
.jc-chk-row .btn-ghost{height:40px;padding:0 12px;font:700 14px var(--font-ui);}
/* photos */
.jc-gallery{display:flex;gap:16px;flex-wrap:wrap;}
.jc-gcol{display:flex;flex-direction:column;gap:6px;min-width:120px;}
.jc-gthumbs{display:flex;gap:8px;flex-wrap:wrap;}
.jc-gcell{position:relative;width:96px;height:72px;}
.jc-gcell img{width:100%;height:100%;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer;}
.jc-gdel{position:absolute;top:4px;right:4px;min-width:24px;height:24px;padding:0 6px;border:0;border-radius:999px;background:rgba(11,11,12,.7);color:#fff;font:800 11px var(--font-ui);display:flex;align-items:center;justify-content:center;}
.jc-gempty{width:96px;height:72px;border-radius:10px;border:1px dashed var(--line-control);display:flex;align-items:center;justify-content:center;text-align:center;font:400 12px/15px var(--font-ui);color:var(--faint);padding:0 8px;box-sizing:border-box;}
.jc-sig{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line);}
.jc-sig-txt{display:flex;flex-direction:column;gap:1px;}
.jc-sig-txt b{font:800 15px var(--font-ui);}
.jc-sig-txt span{font:400 13px var(--font-ui);color:var(--muted);}
/* history */
.jc-hist{display:flex;flex-direction:column;}
.jc-hist-row{display:grid;grid-template-columns:170px auto minmax(0,1fr);gap:12px;align-items:center;min-height:40px;padding:4px 0;border-top:1px solid var(--line);font:400 14px var(--font-ui);}
.jc-hist-row:first-child{border-top:0;}
.jc-hist-row .w{color:var(--muted);font-size:13px;white-space:nowrap;}
.jc-hist-row .ic{display:inline-flex;align-items:center;gap:5px;font:700 13px var(--font-ui);color:var(--muted);white-space:nowrap;}
.jc-hist-row .l{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.jc-hpill{white-space:nowrap;}
@media (max-width:900px){
  .jc-ins{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .jc-sections{gap:8px;}
  .jc-sec-row{min-height:64px;padding:8px 10px 8px 14px;flex-wrap:wrap;row-gap:2px;}
  .jc-sec-row .s{flex-basis:100%;order:5;white-space:normal;overflow:visible;}
  .jc-sec-row .t{flex:1;}
  .jc-sec-body{padding:0 14px 14px;}
  .jc-sec-grid,.jc-sec-3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .jc-sec-grid>.field:first-child{grid-column:1/-1;}
  .jc-part{grid-template-columns:minmax(0,1fr) auto;row-gap:8px;padding:10px 4px 10px 14px;}
  .jc-part-main{grid-column:1;grid-row:1;}
  .jc-part-ord{grid-column:2;grid-row:1;text-align:right;}
  .jc-part-state{grid-column:1;grid-row:2;}
  .jc-part-acts{grid-column:2;grid-row:2;justify-content:flex-end;}
  .jc-hist-row{grid-template-columns:1fr;gap:2px;}
  .jc-time-row{grid-template-columns:minmax(0,1fr) auto;}
  .jc-time-row b.m{grid-column:2;}
  .jc-techsel{width:100%;}
  .jc-sec-btns .btn-ghost{flex:1;justify-content:center;}
}

.jc-cap-left{justify-content:flex-start;align-items:flex-start;}
.jc-cap-left svg{margin-top:1px;}
.jc-sheet .jc-sec-2 .field{margin-bottom:0;}

/* ===== Redesign 4: New job, Offer 2 times, Schedule ========================= */
.nj-sheet{max-width:640px;}
.nj-body{padding:16px 24px 20px;gap:24px;}
.nj-sec{display:flex;flex-direction:column;gap:10px;}
.nj-sec.dim .nj-h{opacity:.55;}
.nj-h{display:flex;align-items:center;gap:10px;}
.nj-h .n{width:28px;height:28px;flex:none;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 14px/28px var(--font-ui);text-align:center;}
.nj-h b{font:800 17px var(--font-ui);color:var(--text);}
.nj-h .hint{font-size:14px;}
.nj-h .pillhost{margin-left:auto;}
.nj-c{display:flex;flex-direction:column;gap:12px;}
.nj-c .field{margin-bottom:0;}
.nj-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--line);border-radius:var(--r-btn);padding:6px;background:var(--panel);}
.nj-count{font:700 12px var(--font-ui);color:var(--muted);padding:4px 10px;}
.nj-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 10px;border:0;border-radius:10px;background:transparent;text-align:left;color:var(--text);font:400 14px var(--font-ui);width:100%;}
.nj-row.hi,.nj-row:hover{background:var(--panel-2);}
.nj-row .av,.nj-sum .av{width:40px;height:40px;flex:none;border-radius:50%;background:var(--panel-2);color:var(--text);font:800 14px/40px var(--font-ui);text-align:center;}
.nj-row .txt,.nj-sum .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.nj-row .txt b{font:800 15px var(--font-ui);}
.nj-row .txt span,.nj-sum .txt>span{font:400 14px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nj-row.add{color:var(--text);font-weight:700;}
.nj-row.add svg{flex:none;margin:0 11px;}
.nj-sum{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 14px;border:1px solid var(--line);border-radius:var(--r-btn);}
.nj-sum .nm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:800 16px var(--font-ui);}
.nj-sum .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);flex:none;}
.nj-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.nj-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.nj-grid4{display:grid;grid-template-columns:80px repeat(3,minmax(0,1fr));gap:12px;}
.nj-sub{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.nj-sub .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.nj-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.nj-tile{position:relative;height:76px;padding:9px 11px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);font:700 14px/1.2 var(--font-ui);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;}
.nj-tile.on{border:2px solid var(--ink-fill);background:var(--panel-2);font-weight:800;padding:8px 10px;}
.nj-tile i{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);display:flex;align-items:center;justify-content:center;}
.nj-chips{display:flex;flex-wrap:wrap;gap:8px;}
.nj-chip{height:44px;padding:0 15px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:6px;}
.nj-chip.on{border:2px solid var(--ink-fill);background:var(--panel-2);font-weight:800;padding:0 14px;}
.nj-chip.ghost{color:var(--muted);}
.nj-vfields{display:flex;flex-direction:column;gap:10px;}
.nj-vin{display:flex;gap:8px;align-items:flex-end;}
.nj-vin .field{flex:1;margin:0;}
.nj-vin input{font-family:var(--mono);text-transform:uppercase;}
.nj-vin .btn-ghost{height:48px;padding:0 14px;font:700 14px var(--font-ui);flex:none;}
.nj-vmsg{display:flex;align-items:center;gap:6px;font:700 13px var(--font-ui);color:var(--muted);}
.nj-vmsg.ok{color:var(--ok);} .nj-vmsg.warn{color:var(--warn);}
.nj-decoded .row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.nj-decoded b{font:800 16px var(--font-ui);}
.nj-decoded .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.nj-ins{display:flex;flex-direction:column;gap:10px;}
.nj-timerow{width:100%;}
.nj-time{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-btn);}
.nj-time .nj-sub b{font:800 15px var(--font-ui);flex:1;}
.nj-tech{display:flex;align-items:center;gap:8px;font-size:13px;}
.nj-bar{align-items:center;gap:12px;box-shadow:0 -6px 14px rgba(11,11,12,.06);padding:14px 24px;border-top:0;}
.nj-cap{flex:1;min-width:160px;font:400 13px/18px var(--font-ui);color:var(--muted);}
.nj-bar .btn-ghost{height:48px;padding:0 18px;font:700 15px var(--font-ui);}
.nj-bar .btn-gold{height:48px;padding:0 24px;}
.nj-warn{width:100%;}
.nj-warn .btn-ghost.ink{border:2px solid var(--ink-fill);font-weight:800;}
.nj-discard{width:100%;display:flex;align-items:center;gap:8px;font:800 15px var(--font-ui);}
.nj-discard span{flex:1;}
.nj-discard .btn-ghost.crit{color:var(--crit);}
.nj-err{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nj-err span{flex:1;min-width:200px;}
.nj-err .btn-ghost{height:36px;padding:0 12px;font-size:14px;}
/* offer + schedule sheets */
.ot-sheet{max-width:600px;}
.ot-head{height:64px;min-height:64px;}
.ot-head>div{flex:1;min-width:0;display:flex;flex-direction:column;}
.ot-head h2{flex:none;line-height:25px;}
.ot-head .hint{font-size:13px;line-height:18px;}
.ot-body,.sc-body{gap:12px;}
.ot-picked{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.ot-card{min-height:68px;padding:0 10px 0 12px;border:2px solid var(--ink-fill);border-radius:var(--r-btn);display:flex;align-items:center;justify-content:space-between;gap:8px;}
.ot-card.armed{border-style:dashed;}
.ot-card>div{display:flex;flex-direction:column;min-width:0;}
.ot-card b{font:800 17px/23px var(--font-ui);white-space:nowrap;}
.ot-card span{font:400 13px/18px var(--font-ui);color:var(--muted);display:flex;align-items:center;gap:4px;}
.ot-card em{font-style:normal;font-weight:700;color:var(--warn);display:inline-flex;align-items:center;gap:3px;}
.ot-card .btn-ghost{height:44px;padding:0 12px;font:700 14px var(--font-ui);flex:none;}
.ot-gh{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.ot-gh b{font:800 13px/18px var(--font-ui);color:var(--muted);}
.ot-gh span{font:400 13px/18px var(--font-ui);color:var(--muted);}
.ot-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.ot-grid{display:grid;grid-template-columns:64px repeat(3,minmax(0,1fr));gap:4px;align-items:center;}
.ot-grid .h{font:800 12px/18px var(--font-ui);color:var(--muted);text-align:center;}
.ot-grid .h:first-child{color:var(--text);text-align:left;}
.ot-grid .d{display:flex;flex-direction:column;align-items:center;font:800 14px/18px var(--font-ui);}
.ot-grid .d em{font:700 12px/15px var(--font-ui);font-style:normal;color:var(--warn);display:inline-flex;align-items:center;gap:3px;}
.ot-cell{height:44px;padding:0;border:1px solid var(--line-control);border-radius:10px;background:var(--panel);color:var(--text);font:700 13px var(--font-ui);display:flex;align-items:center;justify-content:center;gap:4px;}
.ot-cell.full{border:0;background:var(--panel-2);color:var(--muted);}
.ot-cell.closed{border:1px dashed var(--line-control);background:transparent;color:var(--muted);}
.ot-cell.blocked{border:0;background:var(--panel-2);color:var(--muted);}
.ot-cell.blocked.wide{grid-column:2/-1;font-size:12px;}
.ot-cell.picked{border:0;background:var(--ink-fill);color:var(--on-ink);font-weight:800;}
.ot-cell:disabled{opacity:1;}
.ot-text{display:flex;flex-direction:column;gap:6px;}
.ot-bubble{align-self:flex-end;max-width:420px;}
.ot-bar{position:relative;flex-wrap:wrap;}
.ot-bar #otTxOff,.sc-bar #scTxOff{flex-basis:100%;}
.ot-bar #otTxOff:empty,.sc-bar #scTxOff:empty{display:none;}
.ot-cap{flex-basis:100%;justify-content:flex-end;}
.ot-bar .btn-gold,.sc-bar .btn-gold{height:48px;padding:0 24px;}
.ot-bar .btn-ghost,.sc-bar .btn-ghost{height:48px;padding:0 16px;font:700 15px var(--font-ui);}
.sc-dayhead{display:flex;align-items:center;justify-content:space-between;height:44px;}
.sc-nav{display:flex;align-items:center;gap:4px;}
.sc-nav b{width:110px;text-align:center;font:800 15px var(--font-ui);}
.sc-nav .jc-ib{border:1px solid var(--line-control);border-radius:var(--r-btn);}
.sc-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;}
.sc-day{height:72px;padding:0;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.sc-day .w{font:700 12px/16px var(--font-ui);color:var(--muted);display:inline-flex;align-items:center;gap:3px;}
.sc-day .w.rain{color:var(--warn);}
.sc-day .n{font:800 19px/24px var(--font-ui);}
.sc-day .l{font:400 12px/16px var(--font-ui);color:var(--muted);display:inline-flex;align-items:center;gap:3px;}
.sc-day.full,.sc-day.blocked{border:0;background:var(--panel-2);color:var(--muted);}
.sc-day.full .l,.sc-day.blocked .l{font-weight:700;}
.sc-day.past{border:0;background:transparent;color:var(--faint);}
.sc-day.on{border:0;background:var(--ink-fill);color:var(--on-ink);}
.sc-day.on .w,.sc-day.on .l{color:var(--on-ink);opacity:.85;}
.sc-wins{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.sc-win{height:68px;padding:0;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.sc-win .t{font:800 19px/25px var(--font-ui);display:inline-flex;align-items:center;gap:6px;}
.sc-win .l{font:400 13px/18px var(--font-ui);color:var(--muted);display:inline-flex;align-items:center;gap:5px;}
.sc-win .dot{width:7px;height:7px;border-radius:50%;background:var(--warn);}
.sc-win.full,.sc-win.blocked{border:0;background:var(--panel-2);color:var(--muted);}
.sc-win.full .l{font-weight:700;}
.sc-win.closed{border:1px dashed var(--line-control);background:transparent;color:var(--muted);}
.sc-win.on{border:0;background:var(--ink-fill);color:var(--on-ink);}
.sc-win.on .l{color:var(--on-ink);opacity:.85;}
.sc-win:disabled{opacity:1;}
.sc-warn{display:flex;flex-direction:column;gap:6px;}
.sc-warn:empty{display:none;}
.sc-line{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:10px;background:var(--panel-2);font:400 14px/19px var(--font-ui);color:var(--text);}
.sc-line svg{flex:none;margin-top:2px;color:var(--muted);}
.sc-line.warn{background:var(--warn-bg);color:var(--warn);font-weight:700;} .sc-line.warn svg{color:var(--warn);}
.sc-line.crit{background:var(--crit-bg);color:var(--crit);font-weight:700;} .sc-line.crit svg{color:var(--crit);}
.sc-techs{display:flex;flex-wrap:wrap;gap:8px;}
.sc-tech{height:48px;padding:0 16px 0 7px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:8px;}
.sc-tech .av{width:32px;height:32px;border-radius:50%;background:var(--panel-2);color:var(--text);font:800 13px/32px var(--font-ui);text-align:center;}
.sc-tech.on{border:2px solid var(--ink-fill);font-weight:800;padding:0 14px 0 6px;}
.sc-tech.on .av{background:var(--ink-fill);color:var(--on-ink);}
.sc-loc{min-height:44px;display:flex;align-items:center;gap:9px;flex-wrap:wrap;font:700 15px var(--font-ui);}
.sc-loc .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.sc-locedit{display:flex;flex-direction:column;gap:10px;width:100%;}
.sc-locedit .field{margin:0;}
.sc-bar{flex-wrap:wrap;align-items:center;}
.sc-sum{flex:1;min-width:140px;display:flex;flex-direction:column;}
.sc-sum b{font:800 17px/23px var(--font-ui);}
.sc-sum span{font:400 13px/18px var(--font-ui);color:var(--muted);}
.jc-offered{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;}
.jc-offered li{display:flex;align-items:center;gap:8px;font:700 15px var(--font-ui);}
.jc-offered .n{width:22px;height:22px;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 12px/22px var(--font-ui);text-align:center;}
@media (max-width:600px){
  .nj-sheet{max-width:none;}
  .nj-body{padding:12px 16px 16px;gap:18px;}
  .nj-tiles{grid-template-columns:repeat(2,minmax(0,1fr));}
  .nj-tile{height:64px;flex-direction:row;align-items:center;gap:10px;}
  .nj-grid2,.nj-grid3{grid-template-columns:1fr;}
  .nj-grid4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .nj-bar{padding:12px 16px;}
  .nj-cap{flex-basis:100%;}
  .nj-bar .btn-gold{flex:1;}
  .ot-sheet{max-width:none;}
  .ot-picked{grid-template-columns:1fr;}
  .ot-cols{grid-template-columns:1fr;}
  .ot-cell,.sc-win{height:48px;}
  .ot-card .btn-ghost{height:48px;}
  .ot-bar .btn-gold,.sc-bar .btn-gold{flex:1;}
  .sc-sum{flex-basis:100%;}
}
.jc-next-sub .pill{margin-right:6px;vertical-align:middle;}
.jc-next-sub{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;}

/* ===== Redesign 6: Pipeline ================================================== */
body.pb-open .wrap{max-width:none;padding:0;}
.pb-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-height:79px;padding:14px 20px 0;}
.pb-title{flex:none;}
.pb-filters{display:flex;gap:8px;flex-wrap:wrap;flex:1;}
.pb-pill{height:44px;padding:0 16px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:700 14px var(--font-ui);}
.pb-pill.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);font-weight:800;}
.pb-actions{display:flex;align-items:center;gap:8px;margin-left:auto;}
.pb-deleted{height:44px;padding:0 10px;display:inline-flex;align-items:center;gap:7px;color:var(--muted);font:700 14px var(--font-ui);text-decoration:none;}
.pb-deleted:hover{color:var(--text);}
.pb-caller{height:48px;padding:0 16px;font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:8px;}
.pb-new{height:48px;padding:0 20px 0 16px;display:inline-flex;align-items:center;gap:8px;}
.pb-body{min-height:0;flex:1;}
.pb-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:12px 20px 20px;height:calc(100dvh - 50px - 91px);min-height:320px;box-sizing:border-box;}
.pb-col{min-height:0;display:flex;flex-direction:column;gap:12px;}
.pb-colhead{height:40px;display:flex;align-items:center;gap:8px;border-bottom:2px solid var(--ink-fill);flex:none;}
.pb-colhead b{font:800 17px var(--font-ui);color:var(--text);}
.pb-colhead span{font:400 13px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.pb-colhead em{font:800 13px var(--font-ui);font-style:normal;display:inline-flex;align-items:center;gap:4px;margin-left:auto;white-space:nowrap;}
.pb-colhead em.warn{color:var(--warn);} .pb-colhead em.crit{color:var(--crit);}
.pb-colbody{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:14px;padding-bottom:8px;}
.pb-stage{display:flex;flex-direction:column;gap:8px;}
.pb-stagehead{display:flex;align-items:center;gap:8px;}
.pb-stagehead .cnt{font:700 13px var(--font-ui);color:var(--muted);}
.pb-none{font:400 13px var(--font-ui);color:var(--muted);padding:2px 0 4px;}
.pb-card{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:12px;display:flex;flex-direction:column;gap:10px;cursor:pointer;}
.pb-card:hover{box-shadow:var(--sh-pop);}
.pb-card:focus-visible{outline:2px solid var(--gold-dark);outline-offset:2px;}
.pb-card .t{display:flex;align-items:baseline;justify-content:space-between;gap:8px;}
.pb-card .nm{font:800 16px var(--font-ui);color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pb-card .pr{font:800 16px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;}
.pb-card .vh{font:400 13px var(--font-ui);color:var(--muted);margin-top:-7px;}
.pb-fleet{height:20px;line-height:20px;font-size:12px;padding:0 8px;color:var(--text);vertical-align:1px;}
.pb-card .st{display:inline-flex;align-items:center;gap:6px;font:700 13px var(--font-ui);color:var(--muted);align-self:flex-start;}
.pb-card .st.ok{color:var(--ok);}
.pb-card .st.warn{padding:4px 9px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-weight:800;}
.pb-card .st.crit{padding:4px 9px;border-radius:8px;background:var(--crit-bg);color:var(--crit);font-weight:800;}
.pb-wait{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;}
.pb-wait i{display:block;height:4px;border-radius:2px;background:var(--line);}
.pb-wait i.on{background:var(--ink-fill);}
.pb-wait.late i.on{background:var(--crit-solid);}
.pb-act{height:44px;width:100%;font:700 14px var(--font-ui);justify-content:center;}
.pb-cap{justify-content:flex-start;margin-top:-4px;}
.pb-offered{min-height:30px;padding:5px 10px;border-radius:10px;background:var(--info-bg);color:var(--info);font:800 13px var(--font-ui);display:flex;align-items:center;gap:6px;}
.pb-paidrow{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:var(--panel);box-shadow:var(--sh-card);font:400 14px var(--font-ui);color:var(--text);text-align:left;}
.pb-paidrow .nm{font-weight:800;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pb-paidrow .dt{color:var(--muted);font-size:13px;white-space:nowrap;}
.pb-paidrow .pr{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;}
.pb-seeall{height:40px;}
.pb-switch{padding:8px 16px 0;}
.pb-seg{display:flex;width:100%;}
.pb-seg button{flex:1 1 0;padding:0 6px;font-size:14px;}
.pb-seg button b{font-weight:800;margin-left:3px;}
.pb-seg button.on b{color:var(--on-ink);}
.pb-list{display:flex;flex-direction:column;gap:14px;padding:12px 16px 96px;}
.pb-fab{position:fixed;left:0;right:0;bottom:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--paper);box-shadow:0 -6px 14px rgba(11,11,12,.06);z-index:40;}
.pb-fab .btn-gold{width:100%;height:52px;justify-content:center;}
/* deleted and cancelled */
.pb-back{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 4px;margin:10px 16px 0;font:700 14px var(--font-ui);color:var(--muted);text-decoration:none;}
.pb-back:hover{color:var(--text);}
.pb-dhead{padding:0 20px 14px;max-width:720px;}
.pb-dhead .page-sub{margin-top:6px;line-height:1.45;}
.pb-dlist{margin:0 20px;background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);display:flex;flex-direction:column;}
.pb-drow{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid var(--line);}
.pb-drow:first-child{border-top:0;}
.pb-drow .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.pb-drow b{font:800 16px var(--font-ui);}
.pb-drow span{font:400 13px var(--font-ui);color:var(--muted);}
.pb-drow .when{color:var(--text);}
.pb-drow .btn-ghost{height:44px;padding:0 16px;font:700 14px var(--font-ui);flex:none;}
.pb-dfoot{padding:12px 20px;font-size:13px;}
@media (max-width:900px){
  .pb-board{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;}
  .pb-colbody{overflow:visible;}
}
@media (max-width:600px){
  .pb-head{padding:12px 16px 0;gap:10px;}
  .pb-actions{margin-left:0;}
  .pb-filters{flex-basis:100%;}
  .pb-pill{height:40px;padding:0 14px;}
  .pb-dlist{margin:0 16px;}
  .pb-dhead{padding:0 16px 14px;}
}

/* ===== Redesign 7: Calendar ================================================== */
.cw-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 20px 0;min-height:52px;}
.cw-title{flex:1;min-width:200px;}
.cw-step{display:flex;align-items:center;gap:4px;}
.cw-step .jc-ib{border:1px solid var(--line-control);border-radius:var(--r-btn);}
.cw-weekpill{height:44px;padding:0 16px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:800 14px var(--font-ui);}
.cw-weekpill.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);}
.cw-actions{display:flex;gap:8px;align-items:center;}
.cw-block{height:48px;padding:0 16px;font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:8px;}
.cw-new{height:48px;padding:0 20px;display:inline-flex;align-items:center;gap:8px;}
.cw-body{padding:14px 20px 20px;display:flex;flex-direction:column;gap:12px;}
.cw-emptybar{padding:10px 14px;border-radius:var(--r-btn);background:var(--panel);box-shadow:var(--sh-card);font:700 14px var(--font-ui);color:var(--muted);}
.cw-grid{display:grid;grid-template-columns:72px repeat(6,minmax(0,1fr));gap:8px;align-items:stretch;}
.cw-day{min-height:100px;padding:0 4px 6px 10px;border-radius:12px;display:flex;flex-direction:column;gap:2px;}
.cw-day .dn{height:44px;display:flex;align-items:center;justify-content:space-between;font:800 17px var(--font-ui);color:var(--text);}
.cw-day.past .dn{color:var(--faint);}
.cw-day.today{background:var(--panel-2);}
.cw-day.blocked{background:var(--crit-bg);}
.cw-day .pills{display:flex;gap:4px;flex-wrap:wrap;}
.cw-day .pills:empty{display:none;}
.cw-pill{height:22px;padding:0 8px;border-radius:999px;font:800 12px/22px var(--font-ui);display:inline-flex;align-items:center;gap:4px;}
.cw-pill.ink{background:var(--ink-fill);color:var(--on-ink);}
.cw-pill.warn{background:var(--warn-bg);color:var(--warn);}
.cw-pill.crit{background:var(--crit-solid);color:#fff;}
.cw-pill.line{background:var(--panel);border:1px solid var(--line-control);color:var(--muted);line-height:20px;}
.cw-wx,.cw-reason{font:400 13px var(--font-ui);color:var(--muted);}
.cw-reason{color:var(--crit);font-weight:700;}
.cw-more{width:40px;height:40px;border-radius:999px;}
.cw-lab{display:flex;flex-direction:column;justify-content:flex-start;padding-top:8px;}
.cw-lab b{font:800 16px var(--font-ui);color:var(--text);}
.cw-lab span{font:400 12.5px var(--font-ui);color:var(--muted);}
.cw-cell{min-height:150px;padding:6px;border-radius:12px;background:var(--panel-2);display:flex;flex-direction:column;gap:6px;box-sizing:border-box;}
.cw-grid > .cw-cell:nth-child(n+9):nth-child(-n+14){min-height:216px;}
.cw-cell.today{background:var(--panel);border:1px solid var(--muted-2);padding:5px;}
.cw-cell.past{background:var(--panel-2);}
.cw-chip{width:100%;padding:7px 8px 8px 9px;border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:var(--panel);color:var(--text);font:400 12.5px var(--font-ui);display:flex;flex-direction:column;gap:1px;text-align:left;}
.cw-chip .l1{display:flex;justify-content:space-between;gap:6px;font:700 12px var(--font-ui);color:var(--muted);}
.cw-chip .l1 .stage{font-weight:800;color:var(--text);}
.cw-chip .nm{font:800 14px var(--font-ui);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cw-chip .l3{font:400 12.5px var(--font-ui);color:var(--muted);}
.cw-chip .rk{font:700 12px var(--font-ui);color:var(--warn);display:inline-flex;align-items:center;gap:4px;margin-top:2px;}
.cw-chip.past{background:var(--paper);color:var(--muted);}
.cw-chip.past .nm,.cw-chip.past .l1 .stage{color:var(--muted);}
.cw-book{height:44px;border:1px dashed var(--line-control);border-radius:10px;background:transparent;color:var(--text);font:700 14px var(--font-ui);margin-top:auto;}
.cw-book:hover{border-color:var(--muted);background:var(--panel);}
.cw-full,.cw-closed{margin-top:auto;height:36px;display:flex;align-items:center;justify-content:center;font:700 13px var(--font-ui);color:var(--muted);}
.cw-closed{border:1px dashed var(--line-control);border-radius:10px;}
.cw-blocked{margin-top:auto;padding:8px 10px;border-radius:10px;background:var(--crit-bg);color:var(--crit);display:flex;flex-direction:column;gap:2px;}
.cw-blocked .t{font:800 13px var(--font-ui);display:inline-flex;align-items:center;gap:5px;}
.cw-blocked .r{font:400 12.5px var(--font-ui);}
.cw-blocked .jc-link{height:36px;color:var(--crit);}
.cw-blocked .ic-confirm{margin-top:6px;}
/* block sheet */
.cw-what{display:flex;gap:8px;flex-wrap:wrap;}
.cw-whatbtn{height:44px;padding:0 16px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:700 14px var(--font-ui);}
.cw-whatbtn.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);font-weight:800;}
.cw-whatbtn:disabled{background:var(--panel-2);color:var(--faint);border-color:transparent;}
.cw-sheet .field{margin-bottom:0;}
.cw-sheet .field .hint:empty{display:none;}
/* phone day view */
.cw-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;}
.cw-sday{height:64px;padding:0;border:1px solid var(--line-control);border-radius:12px;background:var(--panel);color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;}
.cw-sday .w{font:700 12px var(--font-ui);color:var(--muted);}
.cw-sday .n{font:800 17px var(--font-ui);}
.cw-sday .m{height:12px;display:flex;align-items:center;gap:3px;color:var(--muted);}
.cw-sday .m i{width:6px;height:6px;border-radius:50%;background:var(--ink-fill);}
.cw-sday.past{color:var(--faint);} .cw-sday.past .n{color:var(--faint);}
.cw-sday.on{background:var(--ink-fill);color:var(--on-ink);border-color:var(--ink-fill);}
.cw-sday.on .w,.cw-sday.on .m{color:var(--on-ink);} .cw-sday.on .m i{background:var(--on-ink);}
.cw-pday{display:flex;flex-direction:column;gap:4px;padding:4px 0;}
.cw-pday .dn{display:flex;align-items:center;gap:8px;min-height:44px;font:800 17px var(--font-ui);}
.cw-pday .pills{display:inline-flex;gap:4px;flex:1;}
.cw-sec{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:12px;background:var(--panel);box-shadow:var(--sh-card);}
.cw-sechead{display:flex;align-items:baseline;gap:8px;}
.cw-sechead b{font:800 16px var(--font-ui);} .cw-sechead span{font:400 12.5px var(--font-ui);color:var(--muted);flex:1;}
.cw-sechead em{font:800 13px var(--font-ui);font-style:normal;color:var(--muted);}
.cw-prow{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);text-align:left;}
.cw-prow .l1{display:flex;align-items:center;justify-content:space-between;gap:8px;font:800 16px var(--font-ui);}
.cw-prow .l2{font:400 13px var(--font-ui);color:var(--muted);}
.cw-prow .rk{font:700 12px var(--font-ui);color:var(--warn);display:inline-flex;align-items:center;gap:4px;}
.cw-prow.past{background:var(--paper);color:var(--muted);}
.cw-sec .cw-book,.cw-sec .cw-full,.cw-sec .cw-closed,.cw-sec .cw-blocked{margin-top:0;}
@media (max-width:900px){
  .cw-grid{grid-template-columns:56px repeat(6,minmax(0,1fr));gap:6px;}
  .cw-chip .l3{display:none;}
}
@media (max-width:700px){
  .cw-head{padding:12px 16px 0;}
  .cw-body{padding:12px 16px 96px;}
}

/* ===== Redesign 8: Customers (Customers-Spec.html) ========================== */
/* The page fills the space under the top bar: list 360 on white, detail on paper, each scrolling on its own. */
body:has(.cu-page) .wrap{max-width:none;padding:0;}
.cu-page{display:flex;height:calc(100dvh - 50px);min-height:320px;background:var(--paper);color:var(--text);font-size:15px;line-height:1.35;}
.cu-list{width:360px;flex:none;min-height:0;display:flex;flex-direction:column;background:var(--panel);border-right:1px solid var(--line);}
.cu-lhead{height:64px;min-height:64px;padding:12px 12px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.cu-title{font:800 24px/1.2 var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.cu-count{display:none;font:400 13px var(--font-ui);color:var(--muted);}
.cu-plus{width:44px;height:44px;flex:none;padding:0;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);display:flex;align-items:center;justify-content:center;}
.cu-plus:hover{border-color:var(--muted-2);}
.cu-search{padding:10px 12px;flex:none;}
.cu-sbox{height:48px;padding:0 14px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);display:flex;align-items:center;gap:10px;color:var(--muted);}
.cu-sbox:focus-within{border:2px solid var(--ink-fill);padding:0 13px;}
.cu-sbox input,.cu-sbox input:focus{flex:1;min-width:0;height:44px;border:0;padding:0;background:transparent;color:var(--text);font:400 16px var(--font-ui);outline:none;}
.cu-sbox input::-webkit-search-cancel-button{-webkit-appearance:none;}
.cu-rows{flex:1;min-height:0;overflow-y:auto;padding:0 8px 8px;display:flex;flex-direction:column;gap:2px;-webkit-overflow-scrolling:touch;}
.cu-row{width:100%;height:68px;min-height:68px;padding:0 10px;border:2px solid transparent;border-radius:var(--r-btn);background:transparent;color:var(--text);display:flex;align-items:center;gap:12px;font:400 15px var(--font-ui);text-align:left;cursor:pointer;}
.cu-row:hover{background:var(--panel-2);}
.cu-row:active{background:var(--panel-2);}
.cu-row.on{border-color:var(--ink-fill);background:var(--panel-2);}
.cu-av{width:44px;height:44px;flex:none;border-radius:50%;background:var(--panel-2);color:var(--text);font:800 15px/44px var(--font-ui);text-align:center;}
.cu-row.on .cu-av{background:var(--ink-fill);color:var(--on-ink);}
.cu-rmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.cu-rname{display:flex;align-items:center;gap:8px;min-width:0;}
.cu-rname b{font:800 16px var(--font-ui);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cu-rname .pill{flex:none;}
.cu-rsub{font:400 13px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cu-chev{display:none;flex:none;color:var(--muted);}
.cu-lfoot{display:none;}
.cu-skel-row{height:68px;display:flex;align-items:center;gap:12px;padding:0 10px;}
.cu-skel-row i{width:44px;height:44px;flex:none;border-radius:50%;background:var(--skeleton);}
.cu-skel-row .b{flex:1;display:flex;flex-direction:column;gap:8px;}
.cu-skel-row .b span{display:block;height:14px;border-radius:7px;background:var(--skeleton);width:70%;}
.cu-skel-row .b span+span{width:50%;height:12px;}
.cu-err{margin:4px 2px;padding:14px 16px;border-radius:var(--r-card);background:var(--crit-bg);color:var(--crit);font:700 14px/1.4 var(--font-ui);display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.cu-rows .empty{padding:38px 12px;}
/* detail */
.cu-detail{flex:1;min-width:0;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px;-webkit-overflow-scrolling:touch;}
.cu-back{display:none;}
.cu-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:40px 20px;text-align:center;color:var(--muted);}
.cu-state svg{color:var(--faint);margin-bottom:4px;}
.cu-state .t{font:800 17px var(--font-ui);color:var(--text);}
.cu-state .l{font:400 14px var(--font-ui);color:var(--muted);}
.cu-state .btn-ghost{margin-top:8px;}
.cu-dskel{display:flex;flex-direction:column;gap:18px;}
.cu-dhead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.cu-who{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;}
.cu-nm{min-height:48px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.cu-nm h1{font:800 24px/1.2 var(--font-ui);letter-spacing:-.01em;color:var(--text);margin:0;}
.cu-phone{height:44px;padding:0 14px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);font:800 17px var(--font-ui);display:inline-flex;align-items:center;gap:10px;cursor:pointer;}
.cu-phone:hover{border-color:var(--muted-2);}
.cu-phone.copied{color:var(--ok);}
.cu-nophone{min-height:44px;display:flex;align-items:center;font:400 15px var(--font-ui);color:var(--muted);}
.cu-sub{font:400 14px var(--font-ui);color:var(--muted);}
.cu-acts{display:flex;align-items:center;gap:8px;flex:none;}
.cu-acts .btn-ghost,.cu-3 .btn-ghost{height:48px;text-decoration:none;color:var(--text);}
.cu-acts .btn-ghost:disabled,.cu-3 .btn-ghost:disabled{color:var(--faint);}
.cu-more{width:48px;padding:0;}
.cu-pacts{display:none;}
.cu-sentence{padding:16px 20px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);font:800 30px/38px var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.cu-cols{display:flex;align-items:flex-start;gap:20px;}
.cu-c1{width:300px;flex:none;display:flex;flex-direction:column;gap:8px;min-width:0;}
.cu-c2{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.cu-kick{font:800 13px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.cu-veh{padding:14px 16px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);display:flex;flex-direction:column;gap:6px;}
.cu-vname{font:800 16px var(--font-ui);color:var(--text);}
.cu-vin{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;}
.cu-vinl{display:flex;align-items:center;gap:6px;font:400 13px var(--font-ui);color:var(--muted);min-width:0;}
.cu-vinl code{font:400 13px var(--mono);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cu-copy{width:44px;height:44px;padding:0;flex:none;}
.cu-veh > .btn-ghost{height:44px;font-size:14px;}
.cu-note{padding:12px 16px;border-radius:var(--r-card);background:var(--panel-2);display:flex;align-items:flex-start;gap:10px;}
.cu-note svg{flex:none;color:var(--muted);margin-top:2px;}
.cu-note .l{font:700 13px var(--font-ui);color:var(--muted);}
.cu-note .t{font:700 15px/1.4 var(--font-ui);color:var(--text);white-space:pre-wrap;}
.cu-jobs{border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);display:flex;flex-direction:column;overflow:hidden;}
.cu-job{width:100%;height:68px;min-height:68px;padding:0 12px 0 16px;border:0;border-top:1px solid var(--line);background:var(--panel);color:var(--text);display:flex;align-items:center;gap:10px;font:400 15px var(--font-ui);text-align:left;cursor:pointer;}
.cu-job:first-child{border-top:0;}
.cu-job:hover{background:var(--panel-2);}
.cu-jmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.cu-jsub{font:400 13px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cu-jsvc{font:800 16px var(--font-ui);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px;}
.cu-jend{display:flex;align-items:center;gap:10px;flex:none;}
.cu-jtotal{min-width:82px;text-align:right;font:800 16px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}
.cu-job.cancelled .cu-jtotal{color:var(--muted);font-weight:700;}
.cu-dash{padding:18px 16px;border:1.5px dashed var(--line-control);border-radius:var(--r-card);color:var(--muted);font:400 15px var(--font-ui);text-align:center;}
/* sheets */
.cu-sheet .cu-f2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.cu-sheet .cu-f2.area{grid-template-columns:180px minmax(0,1fr);}
.cu-sheet .cu-f2 .field{margin-bottom:0;}
.cu-fleet{min-height:56px;padding:0 14px;border-radius:var(--r-btn);background:var(--paper);display:flex;align-items:center;}
.cu-fleet .switch-row{flex:1;flex-direction:row-reverse;min-height:56px;}
.cu-fleet .switch-row .lab{font:800 15px var(--font-ui);}
.cu-fleet .switch-row .lab .hint{font:400 13px var(--font-ui);color:var(--muted);}
.cu-hsub{font:400 13px/18px var(--font-ui);color:var(--muted);margin-top:-6px;}
.cu-hsub span{color:var(--text);font-family:var(--mono);}
.cu-hbody{margin:0 -20px;display:flex;flex-direction:column;}
.cu-hbody .cu-dash{margin:0 20px;}
.cu-hbody .empty{padding:24px 20px;}
.cu-hrow{width:100%;height:68px;min-height:68px;padding:0 14px 0 20px;border:0;border-top:1px solid var(--line);background:var(--panel);color:var(--text);display:flex;align-items:center;gap:10px;font:400 15px var(--font-ui);text-align:left;cursor:pointer;}
.cu-hrow:first-child{border-top:0;}
.cu-hrow:hover{background:var(--panel-2);}
.cu-hrow .cu-jtotal{min-width:0;}
@media (max-width:1000px){
  .cu-cols{flex-direction:column;}
  .cu-c1{width:auto;}
}
@media (max-width:600px){
  .cu-page{display:block;height:auto;min-height:calc(100dvh - 50px);}
  .cu-list{width:auto;border-right:0;height:calc(100dvh - 50px);}
  .cu-page.detail .cu-list{display:none;}
  .cu-page:not(.detail) .cu-detail{display:none;}
  .cu-lhead{height:auto;min-height:0;padding:12px 16px 0;}
  .cu-count{display:block;}
  .cu-plus{display:none;}
  .cu-search{padding:10px 16px;}
  .cu-rows{padding:0 8px 8px;}
  .cu-chev{display:block;}
  .cu-row.on{border-color:transparent;background:transparent;}
  .cu-row.on .cu-av{background:var(--panel-2);color:var(--text);}
  .cu-lfoot{display:block;flex:none;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--panel);}
  .cu-lfoot .btn-gold{width:100%;}
  .cu-detail{padding:4px 16px 20px;gap:14px;}
  .cu-back{display:inline-flex;align-self:flex-start;height:44px;margin:0 0 -8px -8px;padding:0 10px 0 4px;border:0;border-radius:10px;background:transparent;color:var(--text);font:700 15px var(--font-ui);align-items:center;gap:2px;}
  .cu-dhead{flex-direction:column;gap:8px;}
  .cu-acts{display:none;}
  .cu-pacts{display:flex;flex-direction:column;gap:8px;}
  .cu-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .cu-3 .btn-ghost{padding:0;justify-content:center;}
  .cu-3 .cu-more{width:auto;}
  .cu-pacts .btn-gold{width:100%;}
  .cu-sentence{padding:14px 16px;font:800 28px/34px var(--font-ui);}
  .cu-job{height:72px;min-height:72px;padding:0 16px;}
  .cu-jmain{flex-direction:column-reverse;gap:3px;}
  .cu-jend{flex-direction:column-reverse;align-items:flex-end;gap:3px;}
  .cu-jtotal{min-width:0;}
  .cu-sheet .cu-f2,.cu-sheet .cu-f2.area{grid-template-columns:1fr;}
}

/* ===== Redesign 5: Inbox (Inbox-Spec.html) ================================= */
body.ib-open .wrap{max-width:none;padding:0;}
.ib-page{display:flex;flex-direction:column;height:calc(100dvh - 50px);min-height:320px;background:var(--paper);color:var(--text);font-size:15px;line-height:1.35;}
.ib-banner{flex:none;display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--warn-bg);color:var(--warn);font:700 14px/18px var(--font-ui);flex-wrap:wrap;}
.ib-banner svg{flex:none;}
.ib-banner span{flex:1;min-width:200px;}
.ib-banner .btn-gold{height:44px;padding:0 16px;font-size:15px;}
.ib-offline{flex:none;display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--panel-2);color:var(--muted);font:700 13px var(--font-ui);border-bottom:1px solid var(--line);}
.ib-body{flex:1;min-height:0;display:flex;}
/* list pane */
.ib-list{width:380px;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-right:1px solid var(--line);}
.ib-lhead{height:54px;min-height:54px;padding:0 10px 0 16px;display:flex;align-items:center;justify-content:space-between;}
.ib-lhead .t{font:800 20px var(--font-ui);color:var(--text);}
.ib-lhead .jc-ib{border:1px solid var(--line-control);border-radius:var(--r-btn);}
.ib-filters{padding:0 16px 12px;display:flex;gap:8px;flex-wrap:wrap;}
.ib-fpill{height:44px;padding:0 14px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:6px;}
.ib-fpill b{color:var(--muted);font-weight:800;}
.ib-fpill b.lead{color:var(--st-new);}
.ib-fpill.on{background:var(--ink-fill);border-color:var(--ink-fill);color:var(--on-ink);padding:0 18px;font-weight:800;}
.ib-fpill.on b{color:var(--on-ink);}
.ib-items{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:16px;}
.ib-items .empty{padding:40px 24px;}
.ib-skelrow{height:68px;padding:0 16px;display:flex;align-items:center;gap:10px;}
.ib-skelrow .c{width:44px;height:44px;border-radius:50%;background:var(--skeleton);flex:none;}
.ib-skelrow .b{flex:1;display:flex;flex-direction:column;gap:8px;}
.ib-skelrow .b i{display:block;height:12px;border-radius:6px;background:var(--skeleton);}
.ib-skelrow .b i:last-child{width:60%;}
.ib-err{margin:16px;padding:14px 16px;border-radius:var(--r-card);background:var(--crit-bg);color:var(--crit);font:700 14px var(--font-ui);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.ib-err svg{flex:none;}
.ib-err span{flex:1;}
.ib-leads{margin:0 10px;padding:8px 6px 6px;border-radius:var(--r-card);background:var(--st-new-bg);display:flex;flex-direction:column;gap:4px;}
.ib-leads .lb-t{padding:0 8px 2px;font:800 11px var(--font-ui);letter-spacing:.08em;color:var(--st-new);}
.ib-lead{padding:6px;border:2px solid transparent;border-radius:12px;display:flex;flex-direction:column;gap:4px;}
.ib-lead.sel{border-color:var(--ink-fill);background:var(--panel);}
.ib-lead .btn-ghost{height:44px;width:100%;font-size:14px;gap:7px;}
.ib-lead .btn-gold{width:100%;gap:7px;}
.ib-sec{padding:12px 16px 4px;font:800 11px var(--font-ui);letter-spacing:.08em;color:var(--muted);}
.ib-row{min-height:68px;margin:0 6px;padding:0 10px;border-radius:12px;display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;cursor:pointer;}
.ib-row:hover{background:var(--panel-2);}
.ib-row.sel{box-shadow:inset 0 0 0 2px var(--ink-fill);background:var(--panel-2);}
.ib-lead .ib-row{min-height:44px;margin:0;padding:0;border-radius:0;}
.ib-lead .ib-row:hover,.ib-lead .ib-row.sel{background:none;box-shadow:none;}
.ib-av{width:44px;height:44px;flex:none;border-radius:50%;background:var(--panel-2);color:var(--text);font:800 15px var(--font-ui);display:inline-flex;align-items:center;justify-content:center;}
.ib-av.lead{background:var(--panel);border:1px solid var(--gold-border);color:var(--st-new);}
.ib-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.ib-lead .ib-mid{gap:1px;}
.ib-l1{display:flex;align-items:center;gap:8px;min-width:0;}
.ib-nm{font:600 15px var(--font-ui);color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ib-l1 .pill,.ib-l2b .pill{height:20px;line-height:20px;font-size:11.5px;padding:0 8px;flex:none;}
.ib-l2b{display:none;}
.ib-tm{margin-left:auto;flex:none;font:400 12.5px var(--font-ui);color:var(--muted);}
.ib-l2{display:flex;align-items:center;gap:8px;min-width:0;}
.ib-last{flex:1;min-width:0;font:400 14px var(--font-ui);color:var(--muted);display:flex;align-items:center;gap:5px;}
.ib-last span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ib-last svg{flex:none;}
.ib-last.crit{color:var(--crit);font-weight:700;}
.ib-lead .ib-last span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.ib-row.unread .ib-nm{font-weight:800;}
.ib-row.unread .ib-tm{font-weight:700;}
.ib-row.unread .ib-last{color:var(--text);font-weight:700;}
.ib-lead .ib-nm,.ib-lead .ib-last{font-weight:700;color:var(--text);}
.ib-cnt{height:22px;min-width:22px;padding:0 6px;border-radius:999px;background:var(--ink-fill);color:var(--on-ink);font:800 12px/22px var(--font-ui);text-align:center;flex:none;}
/* thread pane */
.ib-thread{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0;}
.ib-th{min-height:64px;padding:0 16px 0 20px;display:flex;align-items:center;gap:12px;background:var(--panel);border-bottom:1px solid var(--line);}
.ib-th .who{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.ib-th .nm{display:flex;align-items:center;gap:10px;font:800 19px var(--font-ui);color:var(--text);min-width:0;}
.ib-th .nm .txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ib-th .sub{font:400 13px var(--font-ui);color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.ib-th .sub .pill{height:20px;line-height:20px;font-size:11.5px;padding:0 8px;}
.ib-th .acts{display:flex;align-items:center;gap:8px;flex:none;}
.ib-th .acts .btn-ghost{height:48px;text-decoration:none;gap:7px;}
.ib-th .acts .btn-gold{padding:0 20px 0 16px;gap:7px;}
.ib-leadpill{background:var(--st-new-bg);color:var(--st-new);}
.ib-delhost{padding:0 20px;}
.ib-delhost:empty{display:none;}
.ib-delhost .ic-confirm{margin:10px 0 0;}
.ib-tbody{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 20px 12px;display:flex;flex-direction:column;}
.ib-tbody .msg-thread{max-height:none;overflow:visible;padding:0;gap:10px;margin-top:auto;}
.ib-tbody .msg-day{align-self:center;font:700 12px var(--font-ui);color:var(--muted);padding:4px 0;background:none;text-transform:none;letter-spacing:0;border:0;margin:0;}
.ib-tbody .msg-row{max-width:460px;}
.ib-tbody .msg-bubble.inbound{background:var(--panel);border:1px solid var(--line);}
.ib-tbody .msg-photo{max-width:240px;max-height:240px;width:auto;border-radius:16px 16px 16px 4px;border:1px solid var(--line);margin:0;display:block;object-fit:cover;background:var(--panel-2);}
.ib-tbody .msg-row.outbound .msg-photo{border-radius:16px 16px 4px 16px;}
.ib-tbody .empty{margin:auto 0;}
.ib-tfoot{flex:none;display:flex;flex-direction:column;position:relative;}
.ib-newpill{position:absolute;top:-46px;left:50%;transform:translateX(-50%);height:36px;padding:0 14px 0 10px;border-radius:999px;border:0;background:var(--ink-fill);color:var(--on-ink);font:800 13px var(--font-ui);box-shadow:var(--sh-pop);display:inline-flex;align-items:center;gap:6px;z-index:2;}
.ib-sugg{padding:0 20px 12px;display:flex;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;}
.ib-sugg::-webkit-scrollbar{display:none;}
.ib-sugg:empty{display:none;}
.ib-sl{flex:none;font:700 12.5px var(--font-ui);color:var(--muted);}
.ib-sugg .jc-chip.gold{background:var(--gold);border-color:var(--gold);color:var(--ink);font:800 15px var(--font-ui);padding:0 18px;box-shadow:inset 0 -2px 0 var(--gold-dark);}
.ib-sugg .jc-chip.gold:hover{background:var(--gold-dark);border-color:var(--gold-dark);}
.ib-comp{flex:none;background:var(--panel);border-top:1px solid var(--line);padding:10px 16px 10px 20px;display:flex;flex-direction:column;gap:4px;}
.ib-comp .jc-tcomp{padding:0;align-items:flex-end;}
.ib-comp .jc-send{margin-bottom:0;}
.ib-comp textarea:disabled{background:var(--panel-2);color:var(--faint-text);}
.ib-cap{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 52px 0 14px;font:400 11.5px var(--font-ui);color:var(--faint-text);}
.ib-light{position:fixed;inset:0;z-index:300;background:var(--dim);display:flex;align-items:center;justify-content:center;padding:16px;cursor:zoom-out;}
.ib-light img{max-width:100%;max-height:100%;border-radius:12px;box-shadow:var(--sh-pop);}
.ib-light .jc-ib{position:absolute;top:10px;right:10px;color:var(--on-ink);background:var(--ink-fill);border-radius:50%;}
/* About pane (desktop only) */
.ib-about{display:none;width:320px;flex:none;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;background:var(--panel);border-left:1px solid var(--line);padding:16px;}
.ib-about .ab-t{font:800 15px var(--font-ui);color:var(--text);}
.ab-card{display:flex;flex-direction:column;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r-card);}
.ab-card .who{display:flex;align-items:center;gap:10px;min-width:0;}
.ab-card .min{min-width:0;display:flex;flex-direction:column;gap:2px;}
.ab-card .nm{font:800 15px var(--font-ui);color:var(--text);display:flex;align-items:center;gap:6px;min-width:0;}
.ab-card .ph{font:400 13px var(--font-ui);color:var(--muted);}
.ab-card .kvs{display:flex;flex-direction:column;gap:10px;}
.ab-card .kv{display:flex;flex-direction:column;gap:2px;}
.ab-card .k{font:700 11px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.ab-card .v{font:400 15px var(--font-ui);color:var(--text);display:flex;align-items:center;gap:6px;}
.ab-lead{padding:14px;border-radius:var(--r-card);background:var(--st-new-bg);display:flex;flex-direction:column;gap:10px;}
.ab-lead b{font:800 15px var(--font-ui);color:var(--text);}
.ab-lead .cap{font:400 13px/18px var(--font-ui);color:var(--muted);}
.ib-about .btn-gold,.ib-about .btn-ghost{width:100%;gap:7px;}
@media (min-width:1200px){
  .ib-about{display:flex;}
  .ib-list{width:360px;}
}
/* iPad portrait: narrower list, stage pill on line two, header on two rows */
@media (max-width:900px){
  .ib-list{width:300px;}
  .ib-l1 .ib-pl1{display:none;}
  .ib-l2b{display:flex;}
  .ib-th{flex-wrap:wrap;padding:10px 16px;gap:8px 12px;}
  .ib-th .who{flex-basis:100%;}
  .ib-th .acts{margin-left:auto;}
}
/* iPhone: list first; the thread is a pushed screen with a back arrow */
@media (max-width:600px){
  .ib-list{width:100%;border-right:0;}
  .ib-thread{display:none;}
  .ib-page[data-show=thread] .ib-list{display:none;}
  .ib-page[data-show=thread] .ib-thread{display:flex;}
  .ib-lead .btn-gold{height:48px;}
  .ib-l2b{display:none;}
  .ib-th{flex-direction:column;align-items:stretch;padding:4px 12px 10px 4px;gap:2px;min-height:0;}
  .ib-th .top{display:flex;align-items:center;justify-content:space-between;gap:6px;}
  .ib-th .top .acts{gap:4px;}
  .ib-th .top .btn-ghost{height:44px;padding:0 14px;font-size:14px;}
  .ib-th .top .btn-gold{height:44px;padding:0 16px;font-size:15px;}
  .ib-back{height:44px;padding:0 10px 0 6px;border:0;background:transparent;color:var(--text);font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:4px;border-radius:10px;}
  .ib-back .ib-cnt{height:20px;min-width:20px;line-height:20px;font-size:11.5px;padding:0 6px;}
  .ib-th .who{padding-left:8px;flex-basis:auto;}
  .ib-th .nm{font-size:17px;}
  .ib-delhost{padding:0 12px;}
  .ib-tbody{padding:10px 14px;}
  .ib-tbody .msg-row{max-width:78%;}
  .ib-sugg{padding:0 14px 10px;}
  .ib-comp{padding:8px 10px 8px 12px;}
  .ib-cap{padding:0 0 0 14px;font-size:11px;}
  .ib-cap .l{display:none;}
  .ib-newpill{top:-44px;}
}

/* ===== Redesign 9: Needs you + Warranty ====================================== */
.ny-head{margin:0 0 18px;}
.ny-head .page-sub{font-size:14px;margin-top:4px;}
.ny-body{display:flex;flex-direction:column;gap:18px;}
.ny-sec{display:flex;flex-direction:column;gap:8px;}
.ny-sechead{display:flex;align-items:center;gap:8px;min-height:28px;}
.ny-sechead .dot{width:9px;height:9px;border-radius:50%;background:var(--muted);}
.ny-sechead .dot.crit{background:var(--crit-solid);} .ny-sechead .dot.warn{background:var(--warn);} .ny-sechead .dot.info{background:var(--info);}
.ny-sechead b{font:800 16px var(--font-ui);color:var(--text);}
.ny-sechead span{font:700 14px var(--font-ui);color:var(--muted);}
.ny-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);}
.ny-chip{width:40px;height:40px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center;}
.ny-chip.crit{background:var(--crit-bg);color:var(--crit);} .ny-chip.warn{background:var(--warn-bg);color:var(--warn);} .ny-chip.info{background:var(--info-bg);color:var(--info);}
.ny-txt{flex:1;min-width:0;cursor:pointer;display:flex;flex-direction:column;gap:3px;}
.ny-t{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:800 17px/1.2 var(--font-ui);color:var(--text);}
.ny-d{font:400 14px/1.35 var(--font-ui);color:var(--muted);}
.ny-acts{display:flex;align-items:flex-start;gap:8px;flex:none;}
.ny-fixwrap{display:flex;flex-direction:column;gap:4px;align-items:stretch;}
.ny-fix{width:176px;height:48px;padding:0 12px;font:700 15px var(--font-ui);justify-content:center;white-space:normal;line-height:1.1;}
.ny-fix.btn-gold{font-weight:800;}
.ny-cap{justify-content:flex-start;font-size:12.5px;max-width:176px;line-height:16px;align-items:flex-start;}
.ny-snooze{width:136px;height:48px;padding:0 12px;display:inline-flex;align-items:center;gap:8px;justify-content:center;}
.ny-snooze span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;font:700 14px var(--font-ui);}
.ny-snooze small{font:400 11.5px var(--font-ui);color:var(--muted);}
.ny-snooze svg{color:var(--muted);flex:none;}
/* warranty */
.wr-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 14px;}
.wr-search{position:relative;width:420px;max-width:100%;}
.wr-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;}
.wr-search input{width:100%;box-sizing:border-box;padding-left:42px;}
.wr-count{font:400 14px var(--font-ui);color:var(--muted);}
.wr-card{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);display:flex;flex-direction:column;}
.wr-card > [role=status]{padding:12px 16px;}
.wr-row{min-height:72px;display:flex;align-items:center;gap:12px;padding:12px 10px 12px 16px;border-top:1px solid var(--line);cursor:pointer;}
.wr-row:first-child{border-top:0;}
.wr-row:hover{background:var(--panel-2);}
.wr-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.wr-n{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:800 16px var(--font-ui);color:var(--text);}
.wr-s{font:400 14px/1.35 var(--font-ui);color:var(--muted);}
.wr-acts{display:flex;align-items:center;gap:4px;flex:none;}
.wr-acts .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.wr-chev{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--muted);}
.wr-orig{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:12px;background:var(--paper);}
.wr-orig b{font:800 16px var(--font-ui);} .wr-orig span{font:400 14px var(--font-ui);color:var(--muted);}
.wr-photo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.wr-photo .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;}
.wr-photo .hint{display:inline-flex;align-items:center;gap:4px;font-size:13px;}
.wr-actions{align-items:center;}
.wr-actions .hint{flex:1;min-width:120px;font-size:13px;}
@media (max-width:600px){
  .ny-row{flex-wrap:wrap;align-items:flex-start;gap:10px 12px;}
  .ny-txt{flex:1 1 calc(100% - 52px);}
  .ny-acts{flex-basis:100%;}
  .ny-fixwrap{flex:1;}
  .ny-fix{width:100%;}
  .ny-cap{max-width:none;}
  .ny-snooze{width:auto;padding:0 12px;}
  .ny-snooze span{display:none;}
  .ny-snooze svg{color:var(--text);}
  .wr-row{flex-wrap:wrap;padding:12px 10px 12px 16px;}
  .wr-txt{flex:1 1 calc(100% - 52px);}
  .wr-acts{flex-basis:100%;justify-content:space-between;}
  .wr-acts .btn-ghost{order:-1;}
}

/* ===== Redesign 11: Team and Settings ===== */
/* ---- Team: page, tabs, People rows ---------------------------------------- */
.tm-page{display:flex;flex-direction:column;gap:16px;}
.tm-head{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.tm-titles{display:flex;flex-direction:column;gap:1px;min-width:0;}
.tm-title{font:800 24px/32px var(--font-ui);color:var(--text);letter-spacing:-.01em;}
.tm-sub{font:400 14px/20px var(--font-ui);color:var(--muted);}
.tm-sub:empty{display:none;}
.tm-add{flex:none;padding:0 20px 0 16px;}
.tm-add[hidden]{display:none;}
.tm-tabs{align-self:flex-start;}
.tm-tabs button{flex:none;padding:0 24px;font-size:15px;}
.tm-body{display:flex;flex-direction:column;gap:14px;}
.tm-list{display:flex;flex-direction:column;gap:10px;}
.tm-person{display:flex;align-items:center;gap:14px;width:100%;min-height:72px;padding:0 12px 0 16px;border:0;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);color:var(--text);font:400 15px var(--font-ui);text-align:left;cursor:pointer;}
.tm-person:hover{box-shadow:var(--sh-pop);}
.tm-av{width:44px;height:44px;flex:none;border-radius:50%;background:var(--panel-2);color:var(--text);font:800 15px/44px var(--font-ui);text-align:center;}
.tm-person.adm .tm-av{background:var(--ink-fill);color:var(--on-ink);}
.tm-person.off{color:var(--muted);}
.tm-person.off .tm-av{background:var(--paper);color:var(--muted);border:1px dashed var(--faint);line-height:42px;}
.tm-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.tm-name{display:flex;align-items:center;gap:8px;min-width:0;font:800 17px/22px var(--font-ui);}
.tm-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tm-line2{font:400 14px/18px var(--font-ui);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tm-rate{flex:none;font:400 15px var(--font-ui);color:var(--muted);}
.pill.tm-ink{background:var(--ink-fill);color:var(--on-ink);}
.tm-foot{font:400 13px/18px var(--font-ui);color:var(--muted);}
.tm-body .empty .btn-gold{margin-top:4px;}
.page-state.tm-err{margin:24px auto;}
.page-state.tm-err .ps-l{font-weight:700;color:var(--text);}
/* ---- Team: PersonSheet ---------------------------------------------------- */
.tm-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.tm-locked{height:48px;display:flex;align-items:center;gap:8px;padding:0 14px;border-radius:var(--r-btn);background:var(--panel-2);color:var(--muted);font:400 16px var(--font-ui);}
.tm-locked svg{flex:none;}
.tm-cap{font:400 13px/18px var(--font-ui);color:var(--muted);margin-top:6px;}
.tm-money{display:flex;align-items:center;gap:8px;}
.tm-money input{flex:1;min-width:0;width:100%;}
.tm-money > span{flex:none;font:700 15px var(--font-ui);color:var(--muted);}
.tm-acct{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:14px;}
.tm-acct-label{font:800 12px/16px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.tm-acct-row[hidden]{display:none;}
.tm-arow{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:56px;padding:8px 12px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);text-align:left;cursor:pointer;}
.tm-arow:hover{border-color:var(--muted-2);}
.tm-arow-l{font:700 15px/20px var(--font-ui);}
.tm-arow.crit .tm-arow-l{color:var(--crit);}
.tm-arow-c{font:400 13px/18px var(--font-ui);color:var(--muted);}
.tm-arow:disabled{background:var(--panel-2);border-color:transparent;color:var(--muted);}
.tm-arow:disabled .tm-arow-l{color:var(--muted);}
.tm-acct-row .ic-confirm{flex-wrap:wrap;}
.tm-acct-row .ic-confirm .grow{flex-basis:100%;}
.tm-ic-cap{display:flex;align-items:flex-start;gap:6px;margin-top:6px;font:400 13px/18px var(--font-ui);color:var(--muted);}
.tm-ic-cap svg{flex:none;margin-top:1px;}
.tm-ic-sum{font:700 14px/18px var(--font-ui);color:var(--muted);margin-bottom:4px;}
.tm-form-err{display:flex;align-items:flex-start;gap:6px;font:700 14px/18px var(--font-ui);color:var(--crit);}
.tm-form-err svg{flex:none;margin-top:1px;}
/* ---- Team: Timecards ------------------------------------------------------ */
.tm-pickers{display:flex;align-items:center;justify-content:space-between;gap:16px;}
.tm-pickers .seg button{flex:none;padding:0 22px;font-size:15px;}
.tm-who.scroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.tm-who.scroll::-webkit-scrollbar{display:none;}
.tm-total{display:flex;flex-direction:column;}
.tm-big{font:800 32px/40px var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.tm-problem{display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:var(--r-btn);background:var(--crit-bg);color:var(--crit);font:700 15px/20px var(--font-ui);}
.tm-problem > span{flex:1;}
.tm-problem .btn-ghost{flex:none;}
.tm-day{display:flex;align-items:center;gap:12px;min-height:72px;padding:0 8px 0 16px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);}
.tm-day.problem{box-shadow:none;border:2px solid var(--crit-solid);padding:0 6px 0 14px;}
.tm-dmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.tm-dtitle{display:flex;align-items:center;gap:8px;font:800 16px/22px var(--font-ui);color:var(--text);min-width:0;}
.tm-djob{font:400 14px/18px var(--font-ui);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tm-dprob{display:none;color:var(--crit);font-weight:700;}
.tm-times{display:contents;}
.tm-tbw{display:contents;}
.tm-tb{width:172px;height:44px;flex:none;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);font:700 15px var(--font-ui);cursor:pointer;}
.tm-tb svg{flex:none;color:var(--muted);}
.tm-tb-l{font:400 13px var(--font-ui);color:var(--muted);}
.tm-tb-t{white-space:nowrap;}
.tm-tb[aria-expanded=true]{border:2px solid var(--ink-fill);padding:0 11px;}
.tm-tb.set{justify-content:center;border:2px dashed var(--crit-solid);color:var(--crit);font-weight:800;}
.tm-tb.set[aria-expanded=true]{border-style:solid;}
.tm-tb:disabled{background:var(--panel-2);border-color:transparent;color:var(--faint-text);}
.tm-dhrs{width:84px;flex:none;font:800 17px var(--font-ui);color:var(--text);}
.tm-dhrs.muted{color:var(--muted);}
.tm-day .ic-confirm{flex:1;flex-wrap:wrap;margin:8px 0;}
.tm-day .ic-confirm .grow{flex-basis:100%;}
.tm-day .skel{flex:1;}
@media (max-width:600px){
  .tm-page{padding-bottom:84px;}
  .tm-add{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;justify-content:center;}
  .tm-add[hidden]{display:none;}
  .tm-tabs{align-self:stretch;}
  .tm-tabs button{flex:1 1 0;padding:0 10px;}
  .tm-person{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"av name name" "av line rate";column-gap:14px;row-gap:2px;padding:12px 12px 12px 16px;}
  .tm-main{display:contents;}
  .tm-av{grid-area:av;}
  .tm-name{grid-area:name;}
  .tm-line2{grid-area:line;}
  .tm-rate{grid-area:rate;font-size:14px;}
  .tm-person .tm-nm{white-space:normal;}
  .tm-pickers{flex-direction:column;align-items:stretch;}
  .tm-pickers .seg{width:100%;}
  .tm-pickers .seg button{flex:1 1 0;padding:0 10px;}
  .tm-who.scroll button{flex:none;padding:0 18px;}
  .tm-problem{flex-wrap:wrap;padding:12px;}
  .tm-problem > span{flex-basis:100%;}
  .tm-day{flex-wrap:wrap;gap:8px 10px;padding:12px 8px 12px 16px;}
  .tm-day.problem{padding:10px 6px 10px 14px;}
  .tm-dmain{flex:1 1 0;}
  .tm-dtitle .pill{display:none;}
  .tm-dprob{display:inline;}
  .tm-times{display:flex;gap:8px;flex-basis:100%;order:5;}
  .tm-tbw{display:contents;}
  .tm-tb{width:auto;flex:1 1 0;min-width:0;}
  .tm-dhrs{width:auto;}
}
/* ---- Settings: page, cards, rows ------------------------------------------ */
.st-page{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px;width:100%;}
.st-head{display:flex;flex-direction:column;gap:4px;}
.st-title{font:800 24px/32px var(--font-ui);color:var(--text);letter-spacing:-.01em;}
.st-sub{font:400 14px/20px var(--font-ui);color:var(--muted);}
.st-cards{display:flex;flex-direction:column;gap:16px;}
.st-card{padding:18px 20px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);display:flex;flex-direction:column;}
.st-card.skel-card{gap:10px;}
.st-card > h3{font:800 18px/26px var(--font-ui);color:var(--text);margin:0;min-height:34px;}
.st-row{display:flex;align-items:center;gap:20px;min-height:76px;padding:12px 0;border-top:1px solid var(--line);flex-wrap:wrap;}
.st-card > h3 + .st-row{border-top:0;}
.st-rl{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px;}
.st-lab{font:800 16px/22px var(--font-ui);color:var(--text);}
.st-cap{font:400 13px/18px var(--font-ui);color:var(--muted);}
.st-rc{flex:none;display:flex;align-items:center;gap:10px;max-width:100%;}
.st-row.muted .st-lab{color:var(--muted);}
.st-row.disabled .st-rc{opacity:.6;}
.st-row.disabled .switch-row{cursor:default;}
.st-sw .switch-row{flex-direction:row-reverse;min-height:44px;gap:10px;}
.st-sw .switch-row .lab{display:none;}
.st-sw .switch-row .st{font:800 14px var(--font-ui);}
.st-rerr{flex-basis:100%;display:flex;align-items:flex-start;gap:5px;font:700 13px/18px var(--font-ui);color:var(--crit);}
.st-rerr svg{flex:none;margin-top:1px;}
.st-row.err input,.st-row.err .st-techsel,.st-row.err .st-timebtn,.st-row.err + .st-ctbox textarea{border:2px solid var(--crit-solid);}
.st-field input{width:300px;max-width:100%;}
/* Texting status line */
.st-status{display:flex;align-items:center;gap:14px;min-height:84px;padding:4px 0;}
.st-status > svg{flex:none;}
.st-status.ok > svg{color:var(--ok);}
.st-status.crit{background:var(--crit-bg);border-radius:var(--r-btn);padding:14px 16px;margin:6px 0 10px;}
.st-status.crit > svg{color:var(--crit);}
.st-status.crit .btn-gold{margin-left:auto;flex:none;}
.st-status.neutral .btn-ghost{margin-left:auto;}
.st-st-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.st-st-h{font:800 20px/27px var(--font-ui);color:var(--text);}
.st-st-s{font:400 14px/20px var(--font-ui);color:var(--muted);}
.st-status.crit .st-st-s{color:var(--crit);}
/* Text every caller */
.st-ctbox{display:flex;flex-direction:column;gap:8px;padding:0 0 14px;}
.st-ctbox[hidden]{display:none;}
.st-ctbox textarea{width:100%;min-height:92px;font-size:16px;line-height:22px;}
.st-ctmeta{display:flex;justify-content:space-between;gap:12px;font:400 13px/18px var(--font-ui);color:var(--muted);}
.st-ctcount.warn{color:var(--warn);font-weight:700;}
/* Technical details */
.st-tech-btn{display:flex;align-items:center;gap:20px;width:100%;min-height:60px;padding:0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--text);text-align:left;cursor:pointer;font:inherit;}
.st-tech-btn .st-rl{flex:1;}
.st-tech-btn .st-chev{flex:none;color:var(--muted);transition:transform .15s;}
.st-tech-btn[aria-expanded=true] .st-chev{transform:rotate(180deg);}
.st-tech{display:flex;flex-direction:column;gap:12px;padding:0 0 8px;}
.st-tech[hidden]{display:none;}
.st-tech-rows{display:flex;flex-direction:column;}
.st-trow{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;border-top:1px solid var(--line);font:400 15px/20px var(--font-ui);}
.st-trow:first-child{border-top:0;}
.st-tlab{color:var(--muted);flex:none;}
.st-tval{text-align:right;font-weight:700;color:var(--text);min-width:0;word-break:break-word;}
.st-word.ok{color:var(--ok);}
.st-word.crit{color:var(--crit);}
.st-tech-help{display:flex;flex-direction:column;gap:6px;}
.st-tech-help:empty{display:none;}
.st-tech-note{font:400 13px/18px var(--font-ui);color:var(--muted);}
.st-tech-crit{display:flex;align-items:flex-start;gap:6px;font:700 13px/18px var(--font-ui);color:var(--crit);}
.st-tech-crit svg{flex:none;margin-top:1px;}
.st-tech-btns{display:flex;gap:10px;flex-wrap:wrap;}
/* Morning brief */
.st-timewrap{display:flex;}
.st-timebtn{height:48px;display:inline-flex;align-items:center;gap:9px;padding:0 16px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);font:700 16px var(--font-ui);cursor:pointer;}
.st-timebtn svg{color:var(--muted);flex:none;}
.st-timebtn[aria-expanded=true]{border:2px solid var(--ink-fill);padding:0 15px;}
.st-btns{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:76px;padding:12px 0 4px;border-top:1px solid var(--line);}
.st-preview{display:flex;flex-direction:column;gap:2px;padding:12px 14px;margin:6px 0 4px;border-radius:var(--r-btn);background:var(--paper);}
.st-preview[hidden]{display:none;}
.st-prev-text{font:400 14px/22px var(--font-ui);color:var(--text);white-space:pre-wrap;word-break:break-word;}
.st-prev-text .first{font-weight:800;}
.st-prev-text .warn{color:var(--warn);font-weight:800;}
.st-prev-h{font:800 14px/20px var(--font-ui);color:var(--text);margin-top:10px;}
.st-prev-n{font:400 14px/22px var(--font-ui);color:var(--text);}
.st-prev-to{font:700 14px/20px var(--font-ui);color:var(--muted);margin-top:10px;}
.st-prev-to.crit{color:var(--crit);}
.st-prev-err{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:700 14px/20px var(--font-ui);color:var(--crit);}
/* New jobs: tech menu button */
.st-techsel{height:48px;max-width:100%;display:inline-flex;align-items:center;gap:9px;padding:0 12px 0 8px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);font:700 16px var(--font-ui);cursor:pointer;}
.st-techsel.nobody{padding-left:14px;}
.st-techsel > svg{color:var(--muted);flex:none;}
.st-techname{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.st-av{width:30px;height:30px;flex:none;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 12px/30px var(--font-ui);text-align:center;}
.st-link{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:0 20px;color:var(--text);font:700 15px var(--font-ui);text-decoration:none;}
.st-link svg{color:var(--muted);flex:none;}
.st-err{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px;border-radius:var(--r-card);background:var(--crit-bg);color:var(--crit);}
.st-err > svg{flex:none;}
.st-err-txt{flex:1;min-width:200px;}
.st-err-t{font:800 16px/22px var(--font-ui);}
.st-err-l{font:400 14px/20px var(--font-ui);color:var(--text);}
@media (max-width:600px){
  .st-card{padding:16px;}
  .st-row{gap:10px;}
  .st-rl{min-width:0;flex-basis:100%;}
  .st-rc{width:100%;}
  .st-rc .seg{width:100%;}
  .st-rc .seg button{flex:1 1 0;padding:0 8px;}
  .st-field input{width:100%;}
  .st-techsel{width:100%;justify-content:flex-start;}
  .st-techsel > svg{margin-left:auto;}
  .st-row.st-sw .st-rl,.st-row.st-time .st-rl{display:contents;}
  .st-row.st-sw .st-lab,.st-row.st-time .st-lab{flex:1;min-width:0;}
  .st-row.st-sw .st-rc,.st-row.st-time .st-rc{width:auto;}
  .st-row.st-sw .st-cap,.st-row.st-time .st-cap{flex-basis:100%;order:3;}
  .st-status.crit{flex-wrap:wrap;}
  .st-status.crit .btn-gold{margin-left:0;width:100%;}
  .st-trow{flex-wrap:wrap;gap:2px 16px;padding:8px 0;}
  .st-tval{text-align:left;}
}
/* ---- Two-factor sheet ------------------------------------------------------ */
.tf-body{display:flex;flex-direction:column;gap:10px;}
.tf-body > .pill{align-self:flex-start;}
.tf-body p{margin:0;font:400 15px/22px var(--font-ui);color:var(--text);}
.tf-step{display:flex;flex-direction:column;gap:10px;}
.tf-step + .tf-step{margin-top:10px;}
.tf-step-t{font:800 16px/22px var(--font-ui);color:var(--text);}
.tf-keyrow{display:flex;gap:8px;}
.tf-key{flex:1;min-width:0;height:48px;padding:0 12px;border-radius:var(--r-btn);background:var(--panel-2);color:var(--text);font:700 15px/48px var(--font-ui);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tf-keyrow .btn-ghost{height:48px;flex:none;}
a.tf-add{text-decoration:none;}
.tf-digits{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;}
.tf-digits input{width:100%;height:54px;padding:0;text-align:center;font:800 22px var(--font-ui);}
.tf-digits input:focus{padding:0;}
.tf-digits.err input{border:2px solid var(--crit-solid);padding:0;}
.tf-errhost:empty{display:none;}
.tf-err{display:flex;align-items:flex-start;gap:6px;font:700 13px/18px var(--font-ui);color:var(--crit);}
.tf-err svg{flex:none;margin-top:1px;}
.sheet-actions.tf-split{justify-content:space-between;}

/* ===== Redesign 10: Field mode (Field-Spec.html) ============================= */
body.field{font-size:16px;}
body.field .wrap{padding:0 0 84px;max-width:none;}
body.field header.top .tab-nav{display:flex;}
body.field #topClock,body.field #attnBell{display:none;}
body.field.ft-pushed .field-bar{display:none;}
body.field.ft-pushed .wrap{padding-bottom:0;}
.ft-title{font:800 16px var(--font-ui);color:var(--text);}
.ft-back{height:44px;padding:0 10px 0 6px;border:0;border-radius:10px;background:transparent;color:var(--text);font:800 16px var(--font-ui);display:inline-flex;align-items:center;gap:6px;}
.avatar.ft-chip{width:auto;height:36px;padding:0 12px 0 3px;border:1px solid var(--line-control);border-radius:999px;background:var(--panel);color:var(--text);font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:8px;}
.avatar.ft-chip i{width:28px;height:28px;border-radius:50%;background:var(--ink-fill);color:var(--on-ink);font:800 12px/28px var(--font-ui);text-align:center;font-style:normal;}
.field-bar{position:fixed;left:0;right:0;bottom:0;height:68px;display:flex;align-items:center;gap:16px;padding:0 16px calc(env(safe-area-inset-bottom,0px));background:var(--panel);box-shadow:0 -1px 0 var(--line);z-index:50;}
.fb-tab{flex:1 1 0;height:56px;padding:0;border:0;background:transparent;color:var(--muted);font:700 13px var(--font-ui);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;}
.fb-tab .fb-ic{position:relative;width:64px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;}
.fb-tab.active{color:var(--text);font-weight:800;}
.fb-tab.active .fb-ic{background:var(--panel-2);}
.fb-badge{position:absolute;top:-4px;right:8px;height:18px;min-width:18px;padding:0 5px;border-radius:999px;background:var(--crit-solid);color:#fff;font:800 12px/18px var(--font-ui);text-align:center;}
.fd-page{padding:16px;display:flex;flex-direction:column;gap:14px;}
.fd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;}
.fd-kicker{font:800 12px/16px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.fd-head .fd-kicker{text-transform:none;letter-spacing:0;font-size:13px;line-height:18px;}
.fd-title{font:800 24px/32px var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.fd-clock{height:32px;padding:0 12px;border:0;border-radius:999px;background:var(--panel-2);color:var(--text);font:800 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;}
.fd-clock.on{background:var(--ok-bg);color:var(--ok);}
.fd-card{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);}
.fd-next{padding:16px;display:flex;flex-direction:column;gap:6px;}
.fd-win{display:flex;align-items:center;justify-content:space-between;gap:10px;font:800 22px/30px var(--font-ui);letter-spacing:-.01em;}
.fd-name{font:800 20px/27px var(--font-ui);}
.fd-sub{font:400 15px/20px var(--font-ui);color:var(--muted);}
.fd-pills{display:flex;gap:6px;flex-wrap:wrap;}
.fd-pills:empty{display:none;}
.fd-addr{min-height:57px;display:flex;align-items:center;justify-content:space-between;gap:10px;font:700 16px/21px var(--font-ui);}
.fd-addr .btn-ghost{height:48px;padding:0 14px;font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--text);flex:none;}
.fd-act{display:flex;flex-direction:column;gap:6px;margin-top:4px;}
.fd-go{height:56px;width:100%;font:800 18px var(--font-ui);display:inline-flex;align-items:center;justify-content:center;gap:10px;}
.fd-go.locked{background:#f3e6ad;color:var(--muted);box-shadow:none;}
.fd-cap{justify-content:center;}
.fd-seclab{font:800 13px/18px var(--font-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.fd-rows{padding:0 6px 0 16px;display:flex;flex-direction:column;}
.fd-row{min-height:88px;padding:0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);display:flex;align-items:center;gap:8px;text-align:left;width:100%;}
.fd-row:first-child{border-top:0;}
.fd-row .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.fd-row .l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:800 15px/22px var(--font-ui);}
.fd-row .nm{font:800 17px/23px var(--font-ui);}
.fd-row .sub{font:400 13px/18px var(--font-ui);color:var(--muted);}
.fd-row svg{color:var(--muted);flex:none;}
.fd-foot{text-align:center;font-size:13px;}
/* timecard */
.ftc-total{text-align:right;display:flex;flex-direction:column;}
.ftc-total b{font:800 34px/1 var(--font-ui);} .ftc-total span{font:400 13px var(--font-ui);color:var(--muted);}
.ftc-list{display:flex;flex-direction:column;gap:14px;}
.ftc-day{display:flex;flex-direction:column;}
.ftc-dh{display:flex;align-items:baseline;justify-content:space-between;font:800 15px var(--font-ui);padding:0 0 6px;}
.ftc-dh span{color:var(--muted);font-weight:700;}
.ftc-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);}
.ftc-row .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font:400 14px var(--font-ui);color:var(--muted);}
.ftc-row .txt b{font:700 16px var(--font-ui);color:var(--text);}
.ftc-row .h{font:700 16px var(--font-ui);white-space:nowrap;}
.ftc-row.bad .txt b{color:var(--crit);}
/* texts */
.ftx-row{min-height:68px;padding:8px 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);display:flex;align-items:center;gap:12px;text-align:left;width:100%;}
.ftx-row:first-child{border-top:0;}
.ftx-row .av{width:44px;height:44px;flex:none;border-radius:50%;background:var(--panel-2);font:800 14px/44px var(--font-ui);text-align:center;}
.ftx-row .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.ftx-row .nm{font:600 16px var(--font-ui);} .ftx-row.unread .nm{font-weight:800;}
.ftx-row .last{font:400 14px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} .ftx-row.unread .last{font-weight:700;color:var(--text);}
.ftx-row .meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none;padding-right:10px;}
.ftx-row .tm{font:400 13px var(--font-ui);color:var(--muted);}
.ftx-row .cnt{height:22px;min-width:22px;padding:0 6px;border-radius:999px;background:var(--ink-fill);color:var(--on-ink);font:800 12px/22px var(--font-ui);text-align:center;}
.fd-page.ftx{padding:0;}
.fd-page.ftx > .fd-head,.fd-page.ftx > .fd-card,.fd-page.ftx > .fd-foot,.fd-page.ftx > .empty{margin:16px 16px 0;}
.ftx-thread{height:calc(100dvh - 50px);display:flex;flex-direction:column;background:var(--panel);}
.ftx-th{min-height:60px;padding:8px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);}
.ftx-th .txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.ftx-th b{font:800 18px var(--font-ui);} .ftx-th span{font:400 13px var(--font-ui);color:var(--muted);}
.ftx-th .btn-ghost{height:40px;padding:0 12px;font:700 14px var(--font-ui);flex:none;}
.ftx-body{flex:1;min-height:0;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;}
.ftx-body .msg-thread{max-height:none;overflow:visible;padding:0;margin-top:auto;}
.ftx-foot{flex:none;display:flex;flex-direction:column;padding-top:6px;}
.ftx-foot .tx-off{margin:0 16px 8px;}
/* job sheet */
.fx-page{display:flex;flex-direction:column;min-height:calc(100dvh - 50px);}
.fx-head{padding:14px 16px 16px;background:var(--panel);display:flex;flex-direction:column;gap:6px;}
.fx-l1{height:22px;display:flex;align-items:center;gap:8px;font:800 13px var(--font-ui);color:var(--muted);}
.fx-name{font:800 22px/30px var(--font-ui);letter-spacing:-.01em;}
.fx-veh{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;}
.fx-veh > div{display:flex;flex-direction:column;min-width:0;}
.fx-veh b{font:800 16px/22px var(--font-ui);}
.fx-veh span{font:400 13px/18px var(--font-ui);color:var(--muted);} .fx-veh i{font-style:normal;color:var(--text);font-variant-numeric:tabular-nums;}
.fx-veh .btn-ghost{height:48px;padding:0 14px;font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:7px;flex:none;}
.fx-addr{min-height:22px;display:flex;align-items:center;gap:8px;font:400 16px var(--font-ui);}
.fx-addr svg{color:var(--muted);}
.fx-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px;}
.fx-btns .btn-ghost{height:52px;font:700 16px var(--font-ui);display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--text);}
.fx-body{flex:1;padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px;}
.fx-job{padding:14px 16px;display:flex;flex-direction:column;gap:6px;}
.fx-job .t{font:800 17px/23px var(--font-ui);} .fx-job .s{font:400 15px/20px var(--font-ui);color:var(--muted);}
.fx-note{display:flex;align-items:flex-start;gap:8px;font:400 15px/22px var(--font-ui);} .fx-note svg{flex:none;margin-top:3px;color:var(--muted);}
.fx-total{margin-top:6px;padding-top:10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px;}
.fx-total .r{display:flex;justify-content:space-between;align-items:baseline;font:800 17px var(--font-ui);}
.fx-total .lock{display:inline-flex;align-items:center;gap:4px;font:700 12px var(--font-ui);color:var(--muted);}
.fx-steps{padding:4px 16px;display:flex;flex-direction:column;}
.fx-stepwrap{display:flex;flex-direction:column;}
.fx-step{min-height:64px;padding:8px 0;border:0;background:transparent;color:var(--text);display:flex;align-items:center;gap:12px;text-align:left;width:100%;border-top:1px solid var(--line);}
.fx-steps > .fx-step:first-child,.fx-steps > .fx-stepwrap:first-child .fx-step{border-top:0;}
.fx-step .n{width:32px;height:32px;flex:none;border-radius:50%;background:var(--panel-2);color:var(--text);font:800 15px/32px var(--font-ui);text-align:center;display:flex;align-items:center;justify-content:center;}
.fx-step.done .n{background:var(--ok);color:#fff;}
.fx-step .txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.fx-step .nm{font:800 17px/23px var(--font-ui);} .fx-step .st{font:400 14px/19px var(--font-ui);color:var(--muted);}
.fx-step .st.ok{color:var(--ok);font-weight:700;}
.fx-step.locked .nm,.fx-step.locked .st{color:var(--muted);}
.fx-act{height:48px;padding:0 14px;font:700 15px var(--font-ui);flex:none;}
.fx-cap{justify-content:flex-start;padding:0 0 8px 44px;}
.fx-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 0 12px;}
.fx-tile{height:58px;padding:0;border:1.5px dashed var(--muted);border-radius:10px;background:var(--panel);color:var(--muted);font:700 12px var(--font-ui);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;}
.fx-tile.taken{border:1px solid var(--panel-2);background:var(--panel-2);color:var(--text);}
.fx-tile.none{border:1px solid var(--line);color:var(--faint);}
.fx-paid{display:flex;flex-direction:column;gap:10px;padding:4px 0 12px 44px;}
.fx-markpaid{height:52px;}
.fx-textrow{padding:0 10px 0 16px;min-height:68px;border:0;display:flex;align-items:center;gap:12px;text-align:left;color:var(--text);}
.fx-textrow .txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.fx-textrow b{font:800 17px/23px var(--font-ui);} .fx-textrow .txt span{font:400 14px/19px var(--font-ui);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fx-textrow.unread .txt span{font-weight:700;color:var(--text);}
.fx-textrow .cnt{height:22px;padding:0 6px;border-radius:999px;background:var(--ink-fill);color:var(--on-ink);font:800 12px/22px var(--font-ui);}
.fx-textrow svg{color:var(--muted);}
.fx-done{position:sticky;bottom:0;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--panel);display:flex;flex-direction:column;gap:6px;box-shadow:0 -1px 0 var(--line);}
.fx-donebtn{height:60px;width:100%;font:800 18px var(--font-ui);display:inline-flex;align-items:center;justify-content:center;gap:10px;}
.fx-donebtn.locked,.fx-donebtn:disabled{background:#f3e6ad;color:var(--muted);box-shadow:none;}
.fx-done .fx-cap{padding:0;justify-content:center;}
.fx-jobdone{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.fx-jobdone div{display:flex;flex-direction:column;} .fx-jobdone b{font:800 17px var(--font-ui);} .fx-jobdone span{font:400 14px var(--font-ui);color:var(--muted);}
/* checklist screen + sign-off */
.fx-cl{display:flex;flex-direction:column;}
.fx-clrow{min-height:48px;display:flex;align-items:center;gap:12px;padding:6px 0;border-top:1px solid var(--line);}
.fx-clrow:first-child{border-top:0;}
.fx-clrow .txt{flex:1;min-width:0;display:flex;flex-direction:column;}
.fx-clrow .l{font:700 16px var(--font-ui);display:flex;align-items:center;gap:8px;flex-wrap:wrap;} .fx-clrow.done .l{color:var(--muted);font-weight:400;}
.fx-clrow .s{font:400 13px var(--font-ui);color:var(--muted);}
.fx-clrow .btn-ghost{height:40px;padding:0 12px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:6px;}
.fx-clcap{font-size:13px;}
.fx-sigline{display:flex;flex-direction:column;gap:2px;}
.fx-sigline b{font:800 16px var(--font-ui);} .fx-sigline span{font:400 14px var(--font-ui);color:var(--muted);}
.fx-canvaswrap{position:relative;}
.fx-canvaswrap .sig-canvas{width:100%;height:300px;display:block;border:1px solid var(--line-control);border-radius:12px;background:#fff;touch-action:none;}
.fx-sigph{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:700 18px var(--font-ui);color:var(--faint);pointer-events:none;}
.fx-sigfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.fx-sigfoot .hint{font-size:13px;flex:1;}
.fx-sigfoot .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
body.field .avatar-btn{display:flex;width:auto;padding:0 4px;}
body.field .avatar-btn .avatar{display:inline-flex;}

/* ===== Redesign 14: Text a caller, small sheets ============================== */
.tc-sheet{max-width:880px;}
.tc-sheet .sheet-body{padding:0;display:flex;flex-direction:row;gap:0;}
.tc-wrap{display:flex;align-items:stretch;flex:1;min-height:0;}
.tc-steps{width:580px;flex:none;padding:18px 24px 16px;display:flex;flex-direction:column;gap:18px;overflow-y:auto;}
.tc-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.tc-tile{height:76px;padding:0 15px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);color:var(--text);display:flex;align-items:center;gap:12px;text-align:left;}
.tc-tile.on{border:2px solid var(--ink-fill);background:var(--panel-2);padding:0 14px;}
.tc-tile>span{display:flex;flex-direction:column;min-width:0;}
.tc-tile b{font:800 16px var(--font-ui);} .tc-tile small{font:400 13px var(--font-ui);color:var(--muted);}
.tc-tile svg{flex:none;}
.tc-tone{margin-left:auto;}
.tc-tone .seg{height:44px;}
.tc-edited{display:flex;align-items:center;justify-content:space-between;gap:10px;font:400 13px var(--font-ui);color:var(--muted);}
.tc-preview{display:flex;flex-direction:column;}
.tc-bubblerow{display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;}
.tc-bubblerow .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);display:inline-flex;align-items:center;gap:7px;flex:none;}
.tc-bubble{max-width:430px;}
.tc-preview textarea{width:100%;box-sizing:border-box;}
.tc-script{width:300px;flex:none;padding:18px 18px 16px;background:var(--paper);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:12px;overflow-y:auto;}
.tc-script .t{font:800 16px var(--font-ui);color:var(--text);height:28px;display:flex;align-items:center;}
.tc-script .qs{display:flex;flex-direction:column;gap:3px;font:400 14px/1.4 var(--font-ui);color:var(--text);}
.tc-script .qs b{font:800 13px var(--font-ui);color:var(--muted);}
.tc-script.inline{width:auto;border:0;background:transparent;padding:8px 0 0;}
.tc-script-row{display:flex;flex-direction:column;}
.tc-actions{flex-wrap:wrap;}
.tc-actions #tcOff{flex-basis:100%;} .tc-actions #tcOff:empty{display:none;}
.tc-actions .btn-ghost{height:48px;padding:0 16px;font:700 15px var(--font-ui);display:inline-flex;align-items:center;gap:7px;}
.tc-actions .btn-gold{height:48px;padding:0 26px;}
/* price book */
.pb-search{width:100%;}
.pb-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-btn);overflow:hidden;}
.pb-row{display:flex;align-items:center;gap:10px;padding:10px 6px 10px 14px;border-top:1px solid var(--line);min-height:64px;}
.pb-row:first-child{border-top:0;}
.pb-row .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.pb-row b{font:800 16px var(--font-ui);} .pb-row .d{font:400 14px var(--font-ui);color:var(--text);} .pb-row .m{font:400 13px var(--font-ui);color:var(--muted);}
.pb-acts{display:flex;align-items:center;gap:4px;flex:none;}
.pb-acts .btn-ghost{height:44px;padding:0 14px;font:700 14px var(--font-ui);}
.pb-row .ic-confirm{flex:1;}
.pb-empty{padding:14px;text-align:center;}
.pb-list > [role=status]{padding:10px 14px;}
.pb-save{display:flex;flex-direction:column;gap:12px;padding-top:6px;border-top:1px solid var(--line);}
.pb-savehead{display:flex;flex-direction:column;gap:2px;} .pb-savehead b{font:800 16px var(--font-ui);}
.pb-save .field{margin-bottom:0;}
@media (max-width:900px){
  .tc-sheet .sheet-body{flex-direction:column;}
  .tc-steps{width:100%;padding:14px 16px;}
  .tc-script{display:none;}
  .tc-tiles{grid-template-columns:repeat(2,minmax(0,1fr));}
  .tc-tile{height:64px;}
  .tc-tile small{display:none;}
  .tc-bubble{max-width:none;}
  .tc-actions .btn-gold{flex:1;}
}

/* ===== Redesign 12: Close day, Expenses, Truck, Supplies ===== */
/* ---- Shared: ok line, error panel, SectionRow, confirm sheet --------------- */
.op-ok{display:flex;align-items:flex-start;gap:8px;min-height:28px;font:700 14px/20px var(--font-ui);color:var(--ok);}
.op-ok svg{flex:none;margin-top:1px;}
.op-err{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 12px 12px 16px;border-radius:var(--r-card);background:var(--crit-bg);color:var(--crit);font:700 15px/20px var(--font-ui);}
.op-err > svg{flex:none;}
.op-err > span{flex:1;min-width:160px;}
.op-err .btn-ghost{flex:none;}
.op-row{display:flex;align-items:center;gap:10px;min-height:48px;}
.op-rmain{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;}
.op-rt{font:800 16px/22px var(--font-ui);color:var(--text);}
.op-rl{font:400 14px/18px var(--font-ui);color:var(--muted);}
.op-rl b{font-weight:700;color:var(--text);}
.op-open{flex:none;height:44px;padding:0 14px;font-size:14px;}
.op-confirm .op-cline{padding:0 20px 8px;font:400 14px/20px var(--font-ui);color:var(--muted);}
.op-confirm .sheet-actions{border-top:0;padding-top:8px;}
.op-confirm .btn-danger{height:48px;padding:0 20px;}
.op-confirm .btn-ghost{height:48px;padding:0 18px;}

/* ---- Close day -------------------------------------------------------------- */
.cd-page{display:flex;flex-direction:column;gap:16px;}
.cd-head{display:flex;flex-direction:column;}
.cd-kicker{font:700 13px/18px var(--font-ui);color:var(--muted);}
.cd-title{font:800 24px/30px var(--font-ui);color:var(--text);}
.cd-skel{display:flex;flex-direction:column;gap:10px;}
.cd-prog{display:flex;flex-direction:column;gap:8px;}
.cd-progtop{display:flex;align-items:baseline;justify-content:space-between;gap:16px;}
.cd-sentence{display:flex;align-items:center;gap:10px;font:800 28px/36px var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.cd-sentence svg{flex:none;color:var(--ok);}
.cd-count{flex:none;font:800 14px var(--font-ui);color:var(--text);}
.cd-bar{height:8px;border-radius:999px;background:var(--line);overflow:hidden;}
.cd-bar div{height:8px;border-radius:999px;background:var(--ink-fill);transition:width .25s;}
.cd-closed{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.cd-cline{font:400 14px/20px var(--font-ui);color:var(--muted);}
.cd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start;}
.cd-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);}
.cd-sechead{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.cd-sect{display:flex;align-items:baseline;gap:8px;font:800 17px/22px var(--font-ui);color:var(--text);}
.cd-sect.sm{font-size:15px;}
.cd-subt{font:400 13px/18px var(--font-ui);color:var(--muted);}
.cd-hr{height:1px;background:var(--line);}
.cd-big{display:flex;align-items:baseline;gap:8px;}
.cd-big .n{font:800 32px/40px var(--font-ui);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;}
.cd-big .l{font:400 15px var(--font-ui);color:var(--muted);}
.cd-foot{font:400 13px/18px var(--font-ui);color:var(--muted);}
.cd-satline{display:none;}
.cd-none{font:400 15px/20px var(--font-ui);color:var(--muted);}
.cd-list{display:flex;flex-direction:column;}
.cd-chk{display:flex;align-items:center;gap:12px;min-height:48px;}
.cd-tick{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:48px;padding:0;border:0;background:transparent;text-align:left;color:var(--text);cursor:pointer;}
.cd-box{width:28px;height:28px;flex:none;border:2px solid var(--faint);border-radius:8px;background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--on-ink);}
.cd-chk.done .cd-box{border:0;background:var(--ink-fill);}
.cd-lab{font:700 15px/20px var(--font-ui);color:var(--text);}
.cd-chk.done .cd-lab{font-weight:400;color:var(--muted);}
.cd-thumb{width:44px;height:44px;flex:none;object-fit:cover;border-radius:10px;border:1px solid var(--line);cursor:pointer;}
.cd-photo{flex:none;height:44px;padding:0 12px;font-size:14px;}
.cd-closebar{display:flex;flex-direction:column;align-items:center;gap:6px;}
.cd-close{width:100%;height:56px;font-size:17px;justify-content:center;}
.cd-close:disabled{background:var(--skeleton);color:var(--muted);box-shadow:none;}
.cd-closeline{font:400 14px/20px var(--font-ui);color:var(--muted);}
@media (max-width:900px){.cd-grid{grid-template-columns:1fr;gap:12px;}}
@media (max-width:600px){
  .cd-page{gap:12px;}
  .cd-progtop{flex-direction:column;align-items:flex-start;gap:6px;}
  .cd-sentence{font-size:28px;line-height:34px;}
  .cd-prog .cd-bar{order:2;width:100%;}
  .cd-subt{display:none;}
  .cd-satline{display:inline;}
  .cd-page.has-foot{padding-bottom:96px;}
  .cd-closebar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px 16px calc(14px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);}
}

/* ---- Expenses --------------------------------------------------------------- */
.ex-page{display:flex;flex-direction:column;gap:16px;}
.ex-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.ex-title{font:800 24px/30px var(--font-ui);color:var(--text);}
.ex-head .seg button{flex:none;padding:0 18px;}
.ex-add{margin-left:auto;padding:0 20px;}
.ex-total{display:flex;flex-direction:column;gap:2px;}
.ex-big{font:800 32px/40px var(--font-ui);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;}
.ex-sub{font:400 14px/20px var(--font-ui);color:var(--muted);}
.ex-card{display:flex;flex-direction:column;padding:2px 16px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);}
.ex-card .empty{padding:24px 0;}
.ex-day{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;font:800 13px var(--font-ui);color:var(--muted);}
.ex-day span:last-child{font-weight:700;}
.ex-row{display:flex;align-items:center;gap:14px;min-height:60px;border-top:1px solid var(--line);}
.ex-day + .ex-row{border-top:0;}
.ex-main,.ex-top{display:contents;}
.ex-kind{width:78px;height:26px;justify-content:center;font-size:13px;line-height:26px;color:var(--text);flex:none;}
.ex-amt{width:80px;flex:none;font:800 17px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}
.ex-note{flex:1;min-width:0;font:400 15px var(--font-ui);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ex-receipt{flex:none;height:44px;padding:0 12px;font-size:14px;text-decoration:none;gap:7px;}
.ex-noreceipt{flex:none;font:400 14px var(--font-ui);color:var(--muted);}
.ex-fab{display:none;}
/* AddExpenseSheet */
.ex-sheet .sheet-body{gap:16px;}
.ex-amtbox{display:flex;align-items:center;gap:6px;height:64px;padding:0 16px;border:2px solid var(--ink-fill);border-radius:var(--r-btn);background:var(--panel);}
.ex-amtbox span{font:800 34px var(--font-ui);color:var(--muted);}
.ex-amtbox input,.ex-amtbox input:focus,.field.err .ex-amtbox input{flex:1;min-width:0;width:100%;height:56px;padding:0;border:0;background:transparent;font:800 34px var(--font-ui);color:var(--text);outline:none;}
.field.err .ex-amtbox{border-color:var(--crit-solid);}
.ex-kinds{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:44px;padding:0;}
.ex-kinds button{height:44px;padding:0;font-size:15px;}
.ex-cap{font:400 13px/18px var(--font-ui);color:var(--muted);margin-top:6px;}
.ex-cap[hidden]{display:none;}
.ex-two{display:grid;grid-template-columns:190px minmax(0,1fr);gap:12px;}
.ex-datef .dp-btn{width:100%;justify-content:flex-start;gap:9px;}
.ex-datef .dp-btn svg{margin-left:auto;color:var(--muted);}
.ex-rec{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.ex-recbtn{height:48px;padding:0 16px;font-size:15px;}
.ex-thumb{width:48px;height:48px;flex:none;object-fit:cover;border-radius:10px;border:1px solid var(--line);}
.ex-recinfo{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ex-recname{font:800 15px/20px var(--font-ui);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ex-recok{display:flex;align-items:center;gap:6px;font:700 13px/18px var(--font-ui);color:var(--ok);}
.ex-saveerr,.sp-saveerr{display:flex;align-items:center;gap:6px;font:700 14px/20px var(--font-ui);color:var(--crit);}
.ex-saveerr[hidden],.sp-saveerr[hidden]{display:none;}
.sp-saveerr .op-err{flex:1;}
.ex-sheet .sheet-actions .btn-gold{padding:0 24px;}
@media (max-width:600px){
  .ex-page{gap:12px;}
  .ex-head{flex-direction:column;align-items:stretch;gap:10px;}
  .ex-head .seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;padding:0;}
  .ex-head .seg button{height:44px;padding:0;}
  .ex-head .ex-add{display:none;}
  .ex-fab{display:block;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--panel);border-top:1px solid var(--line);}
  .ex-fab .ex-add{display:flex;width:100%;height:56px;margin:0;font-size:17px;}
  .ex-page.has-foot{padding-bottom:96px;}
  .ex-card{padding:2px 6px 2px 14px;}
  .ex-day{min-height:36px;}
  .ex-row{gap:4px;}
  .ex-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
  .ex-top{display:flex;align-items:center;gap:8px;}
  .ex-kind{order:2;width:auto;height:22px;padding:0 9px;font-size:12px;line-height:22px;}
  .ex-amt{order:1;width:auto;}
  .ex-note{font-size:13px;}
  .ex-receipt{width:44px;padding:0;}
  .ex-receipt span{display:none;}
  .ex-noreceipt{font-size:13px;}
  .ex-two{grid-template-columns:1fr;}
}

/* ---- Truck ------------------------------------------------------------------ */
.tk-page{display:flex;flex-direction:column;gap:16px;}
.tk-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:56px;}
.tk-titles{display:flex;flex-direction:column;gap:2px;min-width:0;}
.tk-title{font:800 24px/32px var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.tk-sub{font:400 14px/20px var(--font-ui);color:var(--muted);}
.tk-ctl{display:flex;align-items:center;gap:12px;margin-left:auto;}
.tk-range button{flex:none;padding:0 18px;}
.tk-errhost:empty{display:none;}
.tk-card{padding:14px 16px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);}
.tk-nums{padding:0;}
.tk-numgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:18px 20px 14px;}
.tk-num{display:flex;flex-direction:column;gap:2px;}
.tk-n{font:800 30px/36px var(--font-ui);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;}
.tk-l{font:700 13px/18px var(--font-ui);color:var(--muted);}
.tk-cap{font:400 13px/18px var(--font-ui);color:var(--muted);margin-top:4px;}
.tk-hr{height:1px;margin:0 20px;background:var(--line);}
.tk-quiet{display:flex;align-items:center;min-height:43px;padding:0 20px;font:400 14px var(--font-ui);color:var(--muted);}
.tk-ch{display:flex;align-items:baseline;gap:8px;min-height:24px;margin-bottom:8px;}
.tk-ct{font:800 16px/24px var(--font-ui);color:var(--text);}
.tk-cs{font:400 13px/18px var(--font-ui);color:var(--muted);}
.tk-svg{width:100%;overflow:hidden;}
.tk-svg svg{display:block;width:100%;height:auto;}
.tk-skelbars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:24px;align-items:end;padding:16px 12px 0;}
.tk-skelbars .skel{height:56px;border-radius:8px 8px 0 0;}
.tk-trips{padding:14px 16px 6px;display:flex;flex-direction:column;}
.tk-trips .tk-ch{margin-bottom:0;}
.tk-day{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;padding:0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--text);font:400 15px var(--font-ui);text-align:left;cursor:pointer;}
.tk-ch + .tk-day{border-top:0;}
.tk-dmain{flex:1;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.tk-dt{display:inline-flex;align-items:center;gap:10px;font:800 16px/22px var(--font-ui);}
.tk-today{color:var(--muted);}
.tk-dl{font:400 15px var(--font-ui);color:var(--muted);}
.tk-chev{flex:none;color:var(--muted);transition:transform .15s;}
.tk-day.open .tk-chev,.tk-stepstog.open .tk-chev{transform:rotate(180deg);}
.tk-triplist{display:flex;flex-direction:column;padding:0 14px;margin:0 0 8px;border-radius:12px;background:var(--paper);}
.tk-triplist[hidden]{display:none;}
.tk-trip{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:41px;border-top:1px solid var(--line);font:400 15px var(--font-ui);}
.tk-trip:first-child{border-top:0;}
.tk-tt{font-weight:700;color:var(--text);}
.tk-tv{color:var(--muted);}
.tk-tv b{font-weight:800;color:var(--text);}
.tk-tripnone{color:var(--muted);}
/* ConnectCard */
.tk-connect{max-width:560px;width:100%;margin:0 auto;padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
.tk-ring{width:56px;height:56px;border-radius:50%;background:var(--panel-2);color:var(--text);display:flex;align-items:center;justify-content:center;}
.tk-ct2{font:800 20px/26px var(--font-ui);color:var(--text);}
.tk-cl{font:400 15px/22px var(--font-ui);color:var(--muted);}
.tk-connect .btn-gold{margin-top:6px;padding:0 24px;}
.tk-cerr:empty{display:none;}
.tk-cerr{width:100%;}
.tk-cerrline{display:flex;align-items:center;gap:6px;font:700 14px/20px var(--font-ui);color:var(--crit);}
.tk-stepstog{display:flex;align-items:center;gap:8px;min-height:48px;padding:0;border:0;background:transparent;color:var(--text);font:700 14px var(--font-ui);cursor:pointer;}
.tk-steps{display:flex;flex-direction:column;gap:10px;font:400 13px/18px var(--font-ui);color:var(--muted);}
.tk-steps[hidden]{display:none;}
.tk-step{display:flex;gap:10px;}
.tk-sn{width:18px;flex:none;font-weight:800;color:var(--text);}
.tk-sb{display:flex;flex-direction:column;gap:6px;min-width:0;}
.tk-sb b{font-weight:700;color:var(--text);}
.tk-code{height:36px;padding:0 12px;border-radius:8px;background:var(--paper);color:var(--text);font:400 12.5px/36px var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:600px){
  .tk-page{gap:14px;}
  .tk-head{flex-direction:column;align-items:stretch;}
  .tk-ctl{margin-left:0;width:100%;}
  .tk-range{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:3px;}
  .tk-range button{padding:0;height:38px;}
  .tk-sync{flex:none;padding:0 14px;}
  .tk-numgrid{grid-template-columns:1fr;gap:0;padding:0 16px;}
  .tk-num{min-height:74px;padding:10px 0;border-top:1px solid var(--line);justify-content:center;}
  .tk-num:first-child{border-top:0;}
  .tk-hr{margin:0 16px;}
  .tk-quiet{min-height:44px;padding:0 16px;}
  .tk-day{min-height:60px;}
  .tk-dmain{flex-direction:column;align-items:flex-start;gap:2px;}
  .tk-dl{font-size:13px;}
  .tk-triplist{padding:0 12px;}
  .tk-trip{min-height:44px;font-size:14px;}
}

/* ---- Supplies --------------------------------------------------------------- */
.sp-page{display:flex;flex-direction:column;gap:16px;}
.sp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;}
.sp-titles{display:flex;flex-direction:column;gap:2px;min-width:0;}
.sp-title{font:800 24px/32px var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.sp-sub{font:400 14px/20px var(--font-ui);color:var(--muted);}
.sp-add{flex:none;}
.sp-body{display:flex;flex-direction:column;gap:16px;}
.sp-low{display:flex;flex-direction:column;padding:14px 16px;border-radius:var(--r-card);background:var(--warn-bg);}
.sp-lowhead{display:flex;align-items:center;gap:8px;min-height:24px;color:var(--warn);}
.sp-lowhead svg{flex:none;}
.sp-lowt{font:800 17px/22px var(--font-ui);color:var(--text);}
.sp-lows{font:400 13px/18px var(--font-ui);color:var(--muted);}
.sp-lowrow{display:flex;align-items:center;gap:12px;min-height:56px;}
.sp-lowname{width:220px;flex:none;font:800 16px/22px var(--font-ui);color:var(--text);}
.sp-lowline{flex:1;min-width:0;font:400 15px var(--font-ui);color:var(--muted);}
.sp-lowline b{font-weight:800;color:var(--text);}
.sp-lowrow .btn-gold{padding:0 24px;}
.sp-lowrow .btn-ghost{padding:0 24px;font-size:14px;}
.sp-okline{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;border-radius:var(--r-card);background:var(--ok-bg);color:var(--ok);font:800 16px var(--font-ui);}
.sp-okline svg{flex:none;}
.sp-card{display:flex;flex-direction:column;padding:14px 16px 6px;border-radius:var(--r-card);background:var(--panel);box-shadow:var(--sh-card);}
.sp-emptycard{padding:14px 16px;}
.sp-ch{display:flex;align-items:baseline;gap:8px;min-height:24px;}
.sp-ct{font:800 16px/24px var(--font-ui);color:var(--text);}
.sp-cs{font:400 13px/18px var(--font-ui);color:var(--muted);}
.sp-row{display:flex;align-items:center;gap:12px;min-height:64px;border-top:1px solid var(--line);}
.sp-ch + .sp-row{border-top:0;}
.sp-main{flex:1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 210px 300px;align-items:center;gap:12px;}
.sp-name{display:flex;align-items:baseline;gap:8px;min-width:0;}
.sp-nm{font:800 16px/22px var(--font-ui);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sp-unit{font:400 13px var(--font-ui);color:var(--muted);}
.sp-stock{display:flex;align-items:center;gap:8px;}
.sp-n{font:800 22px/28px var(--font-ui);color:var(--text);font-variant-numeric:tabular-nums;}
.sp-onhand{font:400 13px var(--font-ui);color:var(--muted);}
.sp-usage{font:400 14px/18px var(--font-ui);color:var(--muted);}
.sp-restock{flex:none;font-size:14px;}
/* Sheets */
.sp-ssub{padding:0 20px;margin-top:-8px;font:400 13px/18px var(--font-ui);color:var(--muted);}
.sp-step{display:flex;align-items:center;gap:8px;height:72px;padding:0 8px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);}
.sp-step:focus-within{border:2px solid var(--ink-fill);padding:0 7px;}
.field.err .sp-step{border:2px solid var(--crit-solid);padding:0 7px;}
.sp-pm{width:56px;height:56px;flex:none;border:0;border-radius:10px;background:var(--panel-2);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;}
.sp-step input,.sp-step input:focus,.field.err .sp-step input{flex:1;min-width:0;width:100%;height:56px;padding:0;border:0;background:transparent;text-align:center;font:800 34px var(--font-ui);color:var(--text);outline:none;}
.sp-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;}
.sp-quick .btn-ghost{height:48px;font:800 16px var(--font-ui);}
.sp-cap{font:400 13px/18px var(--font-ui);color:var(--muted);margin-top:8px;}
.sp-result{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:0 14px;border-radius:var(--r-btn);background:var(--paper);font:400 15px var(--font-ui);color:var(--muted);}
.sp-result b{font:800 17px var(--font-ui);color:var(--text);}
.sp-two{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.sp-lowf{display:flex;align-items:center;gap:10px;}
.sp-lowf input{width:120px;flex:none;}
.sp-lowcap{font:400 13px/18px var(--font-ui);color:var(--muted);}
.sp-removerow{display:flex;}
.sp-removerow .btn-crit{font-size:14px;padding:0 14px;}
.sp-sheet .sheet-actions .btn-gold{padding:0 26px;}
@media (max-width:600px){
  .sp-page{gap:14px;}
  .sp-head{flex-wrap:wrap;min-height:0;}
  .sp-titles{display:contents;}
  .sp-title{flex:1;}
  .sp-sub{flex-basis:100%;}
  .sp-add{padding:0 14px;}
  .sp-lows{display:none;}
  .sp-lowrow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;row-gap:2px;min-height:60px;}
  .sp-lowname{width:auto;}
  .sp-lowline{font-size:13px;}
  .sp-lowrow .btn-gold,.sp-lowrow .btn-ghost{grid-column:2;grid-row:1/3;padding:0 20px;}
  .sp-row{min-height:88px;gap:4px;}
  .sp-main{grid-template-columns:1fr;gap:2px;}
  .sp-stock{gap:6px;}
  .sp-usage{font-size:13px;}
  .sp-restock{padding:0 14px;}
  .sp-two{grid-template-columns:1fr 1fr;}
}

/* ===== Redesign 16: other widths and dark mode ============================== */
/* Portrait tablet, 700–1000: the four rules from Portrait-Spec.html */
@media (min-width:700px) and (max-width:1000px){
  .pb-switch{display:block;padding:10px 20px 0;}
  .pb-board.pb-pair{grid-template-columns:repeat(2,minmax(0,1fr));height:auto;}
  .pb-board.pb-pair .pb-colbody{overflow:visible;}
  .pb-dots{display:flex;justify-content:center;gap:8px;padding:4px 0 16px;}
  .pb-dots button{width:10px;height:10px;padding:0;border:0;border-radius:50%;background:var(--line-control);}
  .pb-dots button.on{background:var(--ink-fill);}
  .cw-grid{grid-template-columns:60px repeat(6,minmax(0,1fr));gap:4px;}
  .cw-lab b{font-size:15px;} .cw-lab span{font-size:12px;}
  .cw-chip{padding:6px 8px;} .cw-chip .l1 span{display:none;} .cw-chip .l1{display:inline;} .cw-chip .l1 .stage{font-size:12px;margin-right:4px;}
  .cw-chip .nm{display:inline;}
  .cw-day .pills{flex-direction:column;align-items:flex-start;}
  .jc-left{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start;}
  .jc-left > *{grid-column:1 / -1;}
  .jc-left > .jc-quote,.jc-left > .jc-sched{grid-column:auto;}
  .jc-qbody{flex-direction:column;} .jc-qtotal{width:auto;}
  .jc-day{width:100%;} .jc-wins{min-width:0;}
  .ny-row{flex-wrap:nowrap;}
  .top-clock{display:flex;}
}
@media (min-width:700px) and (max-width:760px){ .top-clock{display:none;} }
/* Desktop, ≥1200 with a fine pointer: the iPad app with the width put to use (Desktop-Spec.html) */
@media (min-width:1200px) and (pointer:fine){
  .wrap{max-width:1320px;padding:24px 20px 64px;}
  header.top{padding:0 calc((100vw - 1320px) / 2 + 12px);}
  @media (max-width:1360px){ header.top{padding:0 20px;} }
  .tab-btn{width:auto;padding:0 12px 0 10px;height:40px;border-radius:999px;gap:7px;}
  .tab-btn::after{content:attr(aria-label);font:700 14px var(--font-ui);color:inherit;}
  .tab-btn.active::after{font-weight:800;}
  .tab-btn .nav-badge{position:static;margin-left:2px;}
  .tab-btn.bell::after{content:none;}
  body.jc-open .wrap,body.pb-open .wrap,body.ib-open .wrap,body:has(.cu-page) .wrap{max-width:1320px;margin:0 auto;}
  .jc-page,.ib-page,.cu-page{border-left:1px solid var(--line);border-right:1px solid var(--line);}
  /* Today: stops at the left, Needs you + weather at the right */
  body.td-open .view-host{display:grid;grid-template-columns:minmax(0,860px) 420px;grid-template-rows:auto auto 1fr;gap:0 40px;align-items:start;}
  body.td-open .td-head{grid-column:1 / -1;}
  body.td-open .td-strips{grid-column:1;grid-row:2;margin:0 0 14px;}
  body.td-open .td-strips:empty{display:none;}
  body.td-open .td-body{grid-column:1;grid-row:3;}
  body.td-open .td-aside{grid-column:2;grid-row:2 / span 2;display:flex;flex-direction:column;gap:16px;}
  .td-card{background:var(--panel);border-radius:14px;box-shadow:var(--sh-card);padding:14px 16px 6px;}
  .td-card-h{display:flex;align-items:center;gap:10px;min-height:40px;}
  .td-card-h b{flex:1;font:800 17px var(--font-ui);color:var(--text);}
  .td-link{display:inline-flex;align-items:center;height:40px;padding:0 4px;font:800 14px var(--font-ui);color:var(--text);text-decoration:none;flex:none;}
  .td-link:hover{text-decoration:underline;}
  .td-ny-row{min-height:72px;padding:12px 0;display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);}
  .td-day-row{min-height:56px;padding:8px 0;display:flex;align-items:center;gap:12px;}
  .td-rtxt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
  .td-ny-row .td-rtxt{cursor:pointer;}
  .td-rtxt .t{font:800 16px/1.25 var(--font-ui);color:var(--text);}
  .td-day-row .td-rtxt .t{font-size:15px;}
  .td-rtxt .d{font:400 13px/1.3 var(--font-ui);color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .td-rtxt .d.crit{font-weight:800;color:var(--crit);}
  .td-rtxt .d.warn{font-weight:800;color:var(--warn);}
  .td-rtxt .d.info{font-weight:800;color:var(--info);}
  .td-ny-fix{width:132px;height:44px;padding:0 8px;font-size:14px;flex:none;justify-content:center;}
  /* Pipeline: all nine stage columns, 136px, compact cards that open on hover or focus */
  .pb-board{display:flex;gap:16px;overflow-x:auto;}
  .pb-col{flex:none;}
  .pb-colbody{flex-direction:row;align-items:flex-start;gap:8px;overflow:visible;}
  .pb-stage{width:136px;flex:none;}
  .pb-card{padding:10px;gap:6px;transition:box-shadow .12s,transform .12s;}
  .pb-card .nm,.pb-card .pr{font-size:14px;}
  .pb-card .vh{font-size:12px;}
  .pb-card .st{font-size:12px;}
  .pb-card .pb-act,.pb-card .pb-cap{display:none;}
  .pb-card:hover,.pb-card:focus-within{box-shadow:var(--sh-pop);transform:translateY(-1px);}
  .pb-card:hover .pb-act,.pb-card:focus-within .pb-act{display:inline-flex;}
  .pb-card:hover .pb-cap,.pb-card:focus-within .pb-cap{display:flex;}
  .pb-head{max-width:1320px;margin:0 auto;}
  /* Job card: the work at the left, the money and the reference rows in the middle, texts at the right.
     dashboard.js (arrangeCols) moves the cards into the two .jc-col columns. */
  .jc-left.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;align-items:start;align-content:start;}
  .jc-left.cols > .jc-sections{display:none;}
  .jc-col{display:flex;flex-direction:column;gap:10px;min-width:0;}
  .jc-col > #jcCancelled:empty,.jc-col > #jcGate:empty{display:none;}
  .jc-sec-row{min-height:52px;}
  /* A column is 350 to 590 wide: the quote stacks (the breakdown boxes need the full width) and a part row folds to two lines */
  .jc-col .jc-qbody{flex-direction:column;}
  .jc-col .jc-qtotal{width:auto;}
  .jc-col .jc-part{grid-template-columns:minmax(0,1fr) auto;row-gap:8px;padding:10px 4px 10px 14px;}
  .jc-col .jc-part-main{grid-column:1;grid-row:1;}
  .jc-col .jc-part-ord{grid-column:2;grid-row:1;text-align:right;}
  .jc-col .jc-part-state{grid-column:1;grid-row:2;}
  .jc-col .jc-part-acts{grid-column:2;grid-row:2;justify-content:flex-end;}
  /* Field mode on a desktop: the phone layout in a centred column */
  body.field .wrap{max-width:430px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:calc(100vh - 50px);}
  body.field .field-bar{left:50%;transform:translateX(-50%);width:430px;}
}
@media (min-width:1200px) and (pointer:fine){
  .jc-col .seg.selseg{flex-wrap:wrap;height:auto;}
  .jc-col .seg.selseg button{flex:1 1 45%;}
  .jc-col .jc-sec-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
/* A wide monitor: the job page takes the room (1680 instead of 1320) */
@media (min-width:1760px) and (pointer:fine){
  body.jc-open .wrap{max-width:1680px;}
  body.jc-open header.top{padding:0 calc((100vw - 1680px) / 2 + 12px);}
  .jc-thread{width:460px;}
}
@media (max-width:600px){
  .pb-head{align-items:flex-start;}
  .pb-title{flex:1;}
  .pb-actions{order:1;margin-left:auto;align-self:flex-start;}
  .pb-filters{order:2;}
}

/* ===== Redesign 13: Accounting ===== */
.ac-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px;min-height:56px;}
.ac-title{display:flex;flex-direction:column;gap:2px;min-width:0;}
.ac-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ac-page{display:flex;flex-direction:column;gap:16px;transition:opacity .15s;}
.ac-page.updating{opacity:.5;pointer-events:none;}
.ac-status{font:400 13px var(--font-ui);color:var(--muted);min-height:18px;margin-top:8px;}
.ac-status:empty{display:none;}
.ac-skel{display:flex;flex-direction:column;gap:16px;}
.ac-skel .ac-tile,.ac-skel .ac-card{gap:10px;}
.ac-err{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ac-err span{flex:1;min-width:0;}
/* KPI tiles */
.ac-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;}
.ac-tile{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:14px 12px 14px 14px;display:flex;flex-direction:column;gap:6px;min-width:0;}
.ac-tl{font:700 12.5px var(--font-ui);color:var(--muted);}
.ac-tv{font:800 26px/1.15 var(--font-ui);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;}
.ac-tv.neg{color:var(--crit);}
.ac-ts,.ac-ta,.ac-tc{font:400 11.5px/16px var(--font-ui);color:var(--muted);}
.ac-ts{min-height:16px;}
.ac-spark{display:block;max-width:100%;}
.ac-tf{display:flex;align-items:center;gap:6px;min-height:22px;flex-wrap:wrap;}
.ac-delta{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 9px 0 7px;border-radius:999px;font:800 12px var(--font-ui);white-space:nowrap;}
.ac-delta.good{background:var(--ok-bg);color:var(--ok);}
.ac-delta.bad{background:var(--crit-bg);color:var(--crit);}
.ac-delta.flat{background:var(--panel-2);color:var(--muted);}
.ac-link{background:none;border:0;padding:4px 0;margin:-4px 0;font:700 11.5px var(--font-ui);color:var(--text);text-decoration:underline;cursor:pointer;min-height:24px;}
/* Cards and rows */
.ac-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;}
.ac-row.gauges{grid-template-columns:220px 220px minmax(0,1fr);}
.c8{grid-column:span 8;}.c6{grid-column:span 6;}.c4{grid-column:span 4;}
.ac-card{background:var(--panel);border-radius:var(--r-card);box-shadow:var(--sh-card);padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-width:0;position:relative;}
.ac-ct{font:800 16px/1.3 var(--font-ui);color:var(--text);}
.ac-cs,.ac-cf,.ac-m{font:400 13px/18px var(--font-ui);color:var(--muted);}
.ac-cf b{color:var(--text);font-weight:800;}
.ac-ch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;}
.ac-ch .ac-cs{white-space:nowrap;}
.ac-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font:700 12.5px var(--font-ui);color:var(--muted);}
.ac-legend span{display:inline-flex;align-items:center;gap:6px;}
.ac-legend i.ln{display:inline-block;width:18px;height:3px;border-radius:2px;}
i.sw{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none;}
.ac-hr{height:1px;background:var(--line);margin:4px 0;}
.ac-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
/* Charts */
.ac-chart{width:100%;min-height:220px;}
.ac-chart-wrap{position:relative;}
.ac-chart-wrap svg text{font-family:var(--font-ui);}
.ac-chart-msg{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font:700 14px var(--font-ui);color:var(--muted);text-align:center;padding:0 16px;}
.ac-tip{position:absolute;z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-btn);box-shadow:var(--sh-pop);padding:10px 12px;font:400 13px/18px var(--font-ui);color:var(--muted);display:grid;grid-template-columns:auto auto;gap:2px 14px;pointer-events:none;white-space:nowrap;}
.ac-tip>b{color:var(--text);font-weight:800;text-align:right;}
.ac-tip>b:first-child{grid-column:1/-1;text-align:left;margin-bottom:4px;}
.ac-tip>span:last-child{grid-column:1/-1;}
.ac-donut{margin:4px auto;}
.ac-donut svg text{font-family:var(--font-ui);}
.ac-dleg{display:flex;flex-direction:column;}
.ac-dl{height:22px;display:flex;align-items:center;gap:8px;font:400 13.5px var(--font-ui);color:var(--text);}
.ac-dl span{flex:1;min-width:0;}
.ac-dl b{font-weight:800;}
.ac-dl em{font-style:normal;width:46px;text-align:right;color:var(--muted);}
/* Revenue by service */
.ac-svc{display:flex;flex-direction:column;gap:14px;}
.ac-sv{display:flex;flex-direction:column;gap:5px;}
.ac-svh{display:flex;align-items:center;gap:8px;min-height:22px;font:400 15px var(--font-ui);color:var(--text);flex-wrap:wrap;}
.ac-svh b{font-weight:800;}
.ac-svr{margin-left:auto;}
.ac-svb{height:18px;border-radius:5px;background:var(--panel-2);overflow:hidden;}
.ac-svb>div{height:100%;display:flex;}
.ac-svb i{display:block;height:100%;}
.ac-svc-cap{display:none;font:400 13px var(--font-ui);color:var(--muted);}
/* Where the jobs came from */
.ac-src{display:flex;flex-direction:column;gap:8px;}
.ac-sr-row{display:grid;grid-template-columns:150px minmax(0,1fr) 56px 64px;gap:10px;align-items:center;min-height:24px;font:400 15px var(--font-ui);color:var(--text);}
.ac-sr-row>b{font-weight:800;text-align:right;}
.ac-srn{display:flex;align-items:center;gap:7px;min-width:0;}
.ac-srn b{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ac-srn .pill{height:20px;line-height:20px;padding:0 8px;font-size:11.5px;}
.ac-srb{height:14px;}
.ac-srb i{display:block;height:14px;border-radius:4px;background:var(--chart-revenue);opacity:.85;min-width:2px;}
/* Gauges and cash flow */
.ac-gauge{align-items:center;text-align:center;gap:8px;justify-content:center;}
.ac-gauge .ac-ct{font-size:15px;}
.ac-gauge svg{display:block;}
.ac-gauge svg text{font-family:var(--font-ui);}
.ac-cash{gap:8px;}
.ac-cash-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}
.ac-cash-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;}
.ac-cash-grid>div:nth-child(2){padding:0 16px;border-left:1px solid var(--line);border-right:1px solid var(--line);}
.ac-cash-grid>div:nth-child(3){padding-left:16px;}
.ac-cl{font:700 13px var(--font-ui);color:var(--muted);}
.ac-cv{font:800 24px/1.25 var(--font-ui);letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums;}
.ac-pillbtn{border:0;cursor:pointer;font-family:inherit;height:22px;line-height:22px;box-sizing:content-box;padding:11px 9px;margin:-11px -9px;background-clip:content-box;}
/* Pipeline counts */
.ac-pipe{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;}
.ac-pb{background:none;border:0;padding:0;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text);font-family:inherit;cursor:pointer;min-width:0;border-radius:8px;}
.ac-pb:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.ac-pbar{height:96px;width:100%;display:flex;align-items:flex-end;justify-content:center;}
.ac-pbar i{display:block;width:28px;border-radius:3px 3px 0 0;}
.ac-pb b{font:800 22px/1.25 var(--font-ui);}
.ac-pl{font:700 12px/1.2 var(--font-ui);color:var(--muted);text-align:center;}
/* Monthly overhead card */
.ac-oh-list{display:flex;flex-direction:column;}
.ac-ol{min-height:26px;display:flex;align-items:center;justify-content:space-between;gap:10px;font:400 15px var(--font-ui);color:var(--text);}
.ac-ol b{font-weight:700;}
.ac-ol.total{min-height:33px;font-weight:800;border-top:1px solid var(--line);margin-top:4px;}
.ac-ol.total b{font-weight:800;}
.ac-ol>span:first-child{display:inline-flex;align-items:center;gap:8px;min-width:0;}
/* Monthly overhead sheet */
.ac-oh .field{margin:0;}
.ac-oh-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.ac-oh-big{font:800 30px/1.2 var(--font-ui);letter-spacing:-.01em;color:var(--text);}
.ac-oh-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 78px 44px;gap:8px;align-items:center;}
.ac-oh-colhead{font:700 13px/18px var(--font-ui);color:var(--muted);margin-bottom:-8px;}
.ac-oh-colhead[hidden],.ac-oh-empty[hidden],.ac-oh-offcap[hidden]{display:none;}
.ac-oh-on{display:none;}
.ac-oh-rows{display:flex;flex-direction:column;gap:6px;}
.ac-oh-rows:empty{display:none;}
.ac-oh-f{min-width:0;}
.ac-oh-amt{height:48px;padding:0 14px;border:1px solid var(--line-control);border-radius:var(--r-btn);background:var(--panel);display:flex;align-items:center;gap:4px;box-sizing:border-box;}
.ac-oh-amt span{font:400 16px var(--font-ui);color:var(--muted);}
.ac-oh-amt input,.ac-oh-amt input:focus{height:44px;padding:0;border:0;background:transparent;font:700 16px var(--font-ui);color:var(--text);width:100%;min-width:0;}
.ac-oh-amt:focus-within{border:2px solid var(--ink-fill);padding:0 13px;}
.ac-oh-f.err input,.ac-oh-f.err .ac-oh-amt{border:2px solid var(--crit-solid);}
.ac-oh-f.err .ac-oh-amt{padding:0 13px;}
.ac-oh-f.err .ac-oh-amt input{border:0;padding:0;}
.ac-oh-row.off input,.ac-oh-row.off .ac-oh-amt{background:var(--paper);color:var(--muted);}
.ac-oh-sw{display:flex;align-items:center;gap:6px;min-height:44px;cursor:pointer;}
.ac-oh-sw .st{font:700 13px var(--font-ui);color:var(--muted);}
.ac-oh-sw .st.on{color:var(--ok);}
.ac-oh-row .jc-ib{color:var(--muted);}
.ac-oh-row .jc-ib:hover{color:var(--crit);}
.ac-oh-row .ic-confirm{grid-column:1/-1;}
.ac-oh-row .ic-confirm .icc-go{background:transparent;border:1px solid var(--crit);color:var(--crit);}
.ac-oh-empty .empty{margin:0;}
.ac-oh-offcap{display:none;}
.ac-oh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.ac-oh-grid .ac-m{margin-top:6px;}
.ac-oh-ad{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;flex-wrap:wrap;}
.ac-oh-ad>.ac-m{margin:0;}
.ac-oh-ad .ac-m b{color:var(--text);font-weight:800;}
.ac-oh-adedit{flex:1;min-width:0;}
.ac-oh-adline{display:flex;gap:8px;align-items:center;}
.ac-oh-adline .menu-sel{flex:1;min-width:0;}
.ac-oh-adline .ac-oh-amt{width:150px;flex:none;}
.ac-oh .sheet-actions>.ac-m{flex:1;min-width:0;}
.ac-oh .sheet-actions .btn-ghost{padding:0 26px;}
@media (max-width:600px){
  .ac-head{min-height:0;}
  .ac-tools{width:100%;}
  .ac-tools .seg{flex:1;}
  .ac-tools .seg button{flex:1;}
  .ac-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .ac-tv{font-size:24px;}
  .ac-row{grid-template-columns:minmax(0,1fr);gap:12px;}
  .ac-row.gauges{grid-template-columns:repeat(2,minmax(0,1fr));}
  .c8,.c6,.c4{grid-column:auto;}
  .ac-cash{grid-column:1/-1;}
  .ac-cash-grid{grid-template-columns:minmax(0,1fr);gap:12px;}
  .ac-cash-grid>div:nth-child(2){padding:12px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .ac-cash-grid>div:nth-child(3){padding-left:0;}
  .ac-ch{flex-wrap:wrap;}
  .ac-svc-cap{display:block;}
  .ac-sr-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"n j r" "b b b";gap:4px 10px;}
  .ac-srn{grid-area:n;}.ac-srb{grid-area:b;}.ac-sr-row>.ac-m{grid-area:j;}.ac-sr-row>b{grid-area:r;}
  .ac-pipe{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .ac-pbar{height:60px;}
  .ac-oh-row{grid-template-columns:minmax(0,1fr) 88px 46px 44px;gap:6px;}
  .ac-oh-counted{display:none;}
  .ac-oh-on{display:block;}
  .ac-oh-sw .st{display:none;}
  .ac-oh-offcap{display:block;}
  .ac-oh-grid{grid-template-columns:minmax(0,1fr);}
  .ac-oh-budget{order:1;}.ac-oh-ad{order:2;}.ac-oh-start{order:3;}
  .ac-oh-adline{flex-wrap:wrap;}
  .ac-oh-adline .ac-oh-amt{width:100%;}
}
@media (max-width:359px){
  .ac-oh-row{grid-template-columns:88px minmax(0,1fr) 44px;}
  .ac-oh-row>.ac-oh-f:first-child{grid-column:1/-1;}
  .ac-oh-colhead{display:none;}
}
/* ===== Redesign 16: iPad portrait Accounting tiles ===== */
@media (min-width:601px) and (max-width:1000px){ .ac-kpis{grid-template-columns:repeat(3,minmax(0,1fr));} }

/* ===== Redesign 17: job card round 2 (owner feedback, Oct 3) ===== */
/* The header and stage bar read as their own band, with air before the cards */
.jc-path{box-shadow:0 1px 0 var(--line),0 4px 10px rgba(0,0,0,.04);position:relative;z-index:1;}
@media (min-width:700px){ .jc-left{padding-top:22px;} }
/* Segmented choices never cut a word: long labels wrap to two lines */
.jc-sec .seg.selseg,.jc-breakdown .seg.selseg{height:auto;min-height:48px;flex-wrap:wrap;}
.jc-sec .seg.selseg button,.jc-breakdown .seg.selseg button{white-space:normal;overflow:visible;text-overflow:clip;height:auto;min-height:40px;line-height:1.15;padding:4px 10px;}
.jc-breakdown .jgrid3{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);}
.jc-breakdown .seg.selseg{display:flex;width:100%;box-sizing:border-box;}
.jc-breakdown .seg.selseg button{flex:1 1 auto;}
.pill{max-width:100%;}
/* Address suggestions */
.addr-wrap{position:relative;}
.addr-list{position:absolute;left:0;right:0;top:100%;margin-top:4px;z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-pop);padding:4px;display:flex;flex-direction:column;}
.addr-list[hidden]{display:none;}
.addr-list button{display:flex;align-items:center;gap:8px;min-height:44px;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font:400 15px var(--font-ui);text-align:left;cursor:pointer;}
.addr-list button:hover,.addr-list button:focus-visible{background:var(--panel-2);}
.addr-list svg{flex:none;color:var(--muted);}

/* ===== Redesign 18: Simple view (manager's device) ===== */
/* Owner-only parts go away: costs and profit, the charge breakdown, margins, checklist, history, crew and truck facts */
body.simple .jc-costs-row,body.simple .jc-costs,body.simple #jcBreak,body.simple #jcBreakdown,body.simple #jcMarginPill,body.simple #jcMarginPill2,
body.simple #jcSec-checklist,body.simple #jcSec-history,body.simple .td-day,body.simple .td-facts span:not(:first-child){display:none !important;}
/* Bigger rows and buttons on Today */
body.simple .td-row{min-height:92px;padding:16px 20px;}
body.simple .td-name{font-size:19px;}
body.simple .td-detail{font-size:16px;}
body.simple .td-act .btn-gold,body.simple .td-act .btn-ghost{min-height:52px;font-size:16px;}
body.simple .jc-next .btn-gold{min-height:56px;font-size:17px;}
/* Costs: four boxes, two by two in a column, four across when the card is wide */
.jc-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
@media (min-width:1200px) and (pointer:fine){ .jc-left:not(.cols) .jc-cost-grid{grid-template-columns:repeat(4,minmax(0,1fr));} }

/* Quo call summary in a thread: a full-width grey card between the bubbles */
.msg-call{align-self:stretch;margin:4px 0;padding:10px 12px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line);font:400 13px/1.45 var(--font-ui);color:var(--text);display:flex;flex-direction:column;gap:3px;}
.msg-call .h{display:flex;align-items:center;gap:6px;color:var(--muted);}
.msg-call .h b{color:var(--text);font-weight:800;}
.msg-call .h span{margin-left:auto;font-size:11px;}
.msg-call .pt{padding-left:21px;position:relative;}
.msg-call .pt::before{content:'';position:absolute;left:9px;top:.65em;width:4px;height:4px;border-radius:50%;background:var(--muted);}
.msg-call .nx{padding-left:21px;margin-top:4px;font:800 11px var(--font-ui);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.msg-call .msg-call-job{align-self:flex-start;margin-top:6px;height:40px;padding:0 12px;font:700 13px var(--font-ui);display:inline-flex;align-items:center;gap:6px;}
