/* CRM module (Sep 5 2026): MY JOBS overlay, work-order cards, customer edit form, sign-off sheet.
   Loaded from index.html after the main stylesheet; uses the same tokens (--navy, --gold, --green,
   --red, --blue, --card, --line, --muted, --disp). Nothing here restyles existing elements except
   the one new arcade key variant. */
.myjobs { --face:#5b3fa8; --face-t:#6e4fc4; --ledge:#33235f; }

#woOv { position:fixed; inset:0; z-index:57; background:rgba(10,24,38,.94); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
        display:none; overflow-y:auto; padding:14px; }
#woOv.show { display:block; }
.wo-bell { border:1.5px solid var(--line); background:#fff; color:var(--navy); border-radius:10px; height:40px; padding:0 12px;
           font-family:var(--disp); font-size:12px; font-weight:800; letter-spacing:.8px; white-space:nowrap; }
.wo-bell.on { border-color:var(--green); color:var(--green); }
.wo-chips { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.wo-chips button { border:1.5px solid var(--line); border-radius:999px; background:#fff; color:var(--navy);
                   font-family:var(--disp); font-size:11.5px; font-weight:800; letter-spacing:.9px; padding:6px 12px; }
.wo-chips button.on { background:var(--navy); border-color:var(--navy); color:#fff; }
.wo-sec { font-family:var(--disp); font-size:12px; font-weight:800; letter-spacing:1.1px; color:var(--navy); margin:14px 0 6px; }
.wo-sec:first-child { margin-top:0; }

.wo-card { display:block; width:100%; text-align:left; background:#fbfcfe; border:1px solid var(--line); border-left:5px solid #9aa8b5;
           border-radius:12px; padding:10px 12px; margin-bottom:7px; color:var(--ink); }
.wo-card.st-booked { border-left-color:var(--navy); }
.wo-card.st-enroute { border-left-color:var(--blue); }
.wo-card.st-onsite { border-left-color:var(--gold); }
.wo-card.st-done { border-left-color:var(--green); opacity:.85; }
.wo-card.st-cancelled { border-left-color:#c3cedb; opacity:.6; }
.wo-top { display:flex; align-items:center; gap:8px; }
.wo-time { font-family:var(--disp); font-size:15px; font-weight:800; letter-spacing:.4px; color:var(--navy); white-space:nowrap; }
.wo-type { font-size:12px; color:var(--muted); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wo-pill { font-family:var(--disp); font-size:9.5px; font-weight:800; letter-spacing:.8px; border-radius:8px; padding:2px 7px; background:#eef1f5; color:var(--navy-70); white-space:nowrap; }
.wo-pill.enroute { background:#e4edfb; color:#1f4c9c; }
.wo-pill.onsite { background:#f7ecd2; color:#7a5c00; }
.wo-pill.done { background:#e3f2e9; color:var(--green); }
.wo-pill.cancelled { background:#f1f3f5; color:#8a97a3; }
.wo-pill.urgent { background:#fdeeec; color:var(--red); }
.wo-name { font-size:14.5px; font-weight:800; margin-top:4px; }
.wo-sub { font-size:11.5px; color:var(--muted); margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wo-meta { display:flex; gap:10px; font-size:11px; color:var(--muted); margin-top:5px; flex-wrap:wrap; }

.wo-det h3 { font-family:var(--disp); font-size:20px; letter-spacing:.6px; color:var(--navy); margin:6px 0 2px; }
.wo-steps { display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; margin:12px 0; }
.wo-steps button { border:2px solid var(--line); background:#fff; border-radius:12px; padding:12px 4px; font-family:var(--disp); font-size:13.5px;
                   font-weight:800; letter-spacing:.8px; color:var(--muted); }
.wo-steps button.done { border-color:var(--green); background:#e3f2e9; color:var(--green); }
.wo-steps button.next { border-color:var(--gold); background:linear-gradient(180deg,#f0c64a,var(--gold)); color:#16232f; box-shadow:0 3px 0 #8a6a00; }
.wo-steps button:disabled { opacity:.55; }
.wo-links { display:grid; gap:6px; margin:8px 0; }
.wo-note { background:#fbfcfe; border:1px solid var(--line); border-radius:10px; padding:8px 10px; margin-bottom:6px; font-size:13.5px; }
.wo-note small { display:block; color:var(--muted); font-size:11px; margin-top:2px; }
.wo-row { display:flex; gap:6px; align-items:center; margin-top:6px; }
.wo-row input[type=text] { flex:1; }
.wo-row input.qty { width:70px; flex:none; text-align:center; }
.wo-row button.rm { background:none; border:1.5px solid var(--line); color:var(--red); border-radius:10px; height:44px; width:44px; font-weight:800; flex:none; }
.wo-btn { width:100%; border-radius:12px; padding:13px; font-family:var(--disp); font-size:15px; letter-spacing:1.2px; font-weight:800; border:2px solid var(--navy);
          background:linear-gradient(180deg,#1b3a58,var(--navy)); color:#fff; margin-top:8px; }
.wo-btn.alt { background:#fff; color:var(--navy); }
.wo-btn.red { border-color:#8f2f24; background:linear-gradient(180deg,var(--red-b),var(--red)); }
.wo-btn.green { border-color:#0a5a38; background:linear-gradient(180deg,var(--green-b),var(--green)); }
.wo-btn:disabled { opacity:.55; }
.wo-photos { display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:6px; margin-top:6px; }
.wo-photos img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:10px; border:1px solid var(--line); background:#0f2436; }
.wo-signed { display:flex; align-items:center; gap:10px; background:#e3f2e9; border:1.5px solid #9fd4b8; border-radius:12px; padding:10px 12px; margin-top:8px; }
.wo-signed img { height:48px; background:#fff; border-radius:6px; border:1px solid var(--line); }
.wo-signed b { display:block; font-size:13.5px; color:var(--green); }
.wo-signed span { font-size:11.5px; color:var(--muted); }
.wo-edit { background:#fbfcfe; border:1px solid var(--line); border-radius:12px; padding:12px; margin-top:8px; }
.wo-edit label { display:block; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; margin:8px 0 3px; }
.wo-edit select, .wo-edit input[type=date], .wo-edit input[type=time] { width:100%; border-radius:10px; border:1.5px solid #c3cedb; background:#fff; padding:10px; font-size:16px; }
.wo-techs { display:flex; gap:6px; flex-wrap:wrap; }
.wo-techs label { display:inline-flex; align-items:center; gap:6px; border:1.5px solid var(--line); border-radius:999px; padding:6px 10px; background:#fff;
                  font-size:13px; text-transform:none; letter-spacing:0; color:var(--ink); margin:0; }
.wo-techs label.on { border-color:var(--navy); background:var(--navy); color:#fff; }
.wo-techs input { display:none; }

/* sign-off sheet */
#woSign { position:fixed; inset:0; z-index:61; background:rgba(10,24,38,.96); display:none; align-items:flex-end; justify-content:center; padding:10px; }
#woSign.show { display:flex; }
.wo-sheet { width:100%; max-width:560px; background:var(--card); border-radius:18px; border-top:4px solid var(--gold); padding:16px; box-shadow:var(--sh-2); }
.wo-sheet h2 { font-family:var(--disp); font-size:18px; letter-spacing:1.4px; color:var(--navy); }
.wo-sheet p { font-size:13px; color:var(--muted); margin:6px 0 10px; line-height:1.45; }
.wo-pad { position:relative; border:2px dashed #b9c5d2; border-radius:12px; background:#fff; height:170px; touch-action:none; overflow:hidden; margin-top:8px; }
.wo-pad canvas { display:block; width:100%; height:100%; touch-action:none; }
.wo-pad .hint { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; color:#b9c5d2; font-family:var(--disp); font-size:20px; letter-spacing:2px; }
.wo-pad.inked .hint { display:none; }

/* customer edit + extras (inside the CUSTOMERS overlay) */
.cu-extra { margin-top:10px; }
.cu-extra .eq { background:#fbfcfe; border:1px solid var(--line); border-radius:10px; padding:8px 10px; margin-top:6px; font-size:13px; }
.cu-extra .eq small { display:block; color:var(--muted); font-size:11px; }
.cu-notes { background:#fdf6e3; border:1px solid #e8d9a8; border-radius:10px; padding:8px 10px; margin-top:8px; font-size:13.5px; white-space:pre-wrap; }
.cu-form label { display:block; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; margin:10px 0 3px; }
.cu-form .tog { display:flex; align-items:center; gap:10px; margin-top:12px; font-size:14px; }
.cu-form .tog input { width:22px; height:22px; }

/* ===== Phase 2: quotes · invoices · pricebook ===== */
#qtOv { position:fixed; inset:0; z-index:59; background:rgba(10,24,38,.94); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); display:none; overflow-y:auto; padding:14px; }
#qtOv.show { display:block; }
#qtPick { position:fixed; inset:0; z-index:60; background:rgba(10,24,38,.96); display:flex; align-items:flex-end; justify-content:center; padding:10px; }
#qtPick .wo-sheet { max-height:88vh; overflow-y:auto; }
.qt-pick { margin-top:8px; }
.qt-items { margin-top:8px; }
.qt-item { background:#fbfcfe; border:1px solid var(--line); border-radius:10px; padding:8px 10px; margin-bottom:6px; }
.qt-item select { border-radius:10px; border:1.5px solid #c3cedb; background:#fff; padding:10px 6px; font-size:14px; max-width:120px; }
.qt-desc { font-size:14px; font-weight:700; }
.qt-line { font-size:12px; color:var(--muted); }
.qt-amt { font-family:var(--disp); font-size:15px; font-weight:800; color:var(--navy); margin-left:auto; white-space:nowrap; font-variant-numeric:tabular-nums; }
.qt-lbl { font-size:11px; color:var(--muted); white-space:nowrap; }
.qt-totals { text-align:right; font-size:14px; color:var(--muted); padding:8px 4px; line-height:1.6; }
.qt-totals b { display:block; font-family:var(--disp); font-size:20px; color:var(--navy); letter-spacing:.5px; }
.qt-adds { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.qt-adds .wo-btn { margin-top:0; padding:11px; font-size:13.5px; }
.qt-label { display:block; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; margin:10px 0 3px; }
.qt-share { display:grid; grid-template-columns:1fr 1fr 1fr; gap:6px; }
.qt-share .wo-btn { margin-top:0; padding:11px 4px; font-size:12.5px; text-align:center; text-decoration:none; display:block; }
.qt-share .cu-stats { grid-column:1 / -1; }
.qt-neca { font-size:11px; color:#5c4a12; background:#fdf6e3; border:1px solid #e8d9a8; border-radius:8px; padding:4px 8px; margin-top:6px; }
#qtShare { position:fixed; inset:0; z-index:62; background:rgba(10,24,38,.96); display:flex; align-items:flex-end; justify-content:center; padding:10px; }
.est-flag { font-size:13px; padding:5px 8px; border-radius:8px; background:#eef1f5; margin-top:4px; }
.est-flag.warn { background:#fdf6e3; border:1px solid #e8d9a8; }
.est-miss { border-color:var(--red); }
.est-pkg { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:10px; font-size:14px; color:var(--navy); }
.est-mat { font-size:13px; padding:4px 6px; border-bottom:1px solid var(--line); }
.est-mat small { color:var(--muted); }
