/* Generated from app.css by src/theme.js. Don't edit; change the maps in theme.js. */
:root {
  color-scheme: dark;
  --bg: #0f1721; --card: #18232f; --line: #2b3b4c; --text: #e4ebf1; --muted: #98a9b8; --slate: #a9b8c5;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 4px 16px rgba(0,0,0,.25);
}
body { color: var(--text); background: var(--bg); }
a { color: #62d0df; }
code { background: #212f3e; }
.muted { color: var(--muted); }
.btn { background: var(--teal); color: #fff; border: 1px solid var(--teal); }
.btn:hover { background: var(--teal-d); border-color: var(--teal-d); }
.btn-ghost { background: transparent; color: #e4ebf1; border-color: var(--line); }
.btn-ghost:hover { background: #212f3e; border-color: #40556a; }
.btn-light { background: #18232f; color: #e4ebf1; border-color: #18232f; }
.btn-warn { background: var(--warn); border-color: var(--warn); }
.btn-warn:hover { background: #a54a22; border-color: #a54a22; }
.linkbtn { background: none; border: 0; color: #62d0df; }
input, select, textarea { color: var(--text); border: 1px solid #36485b; background: #18232f; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--teal-l); border-color: var(--teal); }
fieldset { border: 1px solid var(--line); }
.sub { background: #1c2836; border: 1px dashed #36485b; }
.add-row { border-top: 1px dashed var(--line); }
.flash { background: #143a45; color: #9fe2ec; border: 1px solid #1f5866; }
.flash-success { background: #153628; color: #7fd6a4; border-color: #22553d; }
.flash-error { background: #3d1f23; color: #f2a5a5; border-color: #6b2e31; }
.pill { background: #253444; color: var(--slate); }
.pill-ok { background: #153628; color: #7fd6a4; }
.btn-danger { background: #c62828; border-color: #c62828; color: #fff; }
.btn-danger:hover { background: #a61f1f; border-color: #a61f1f; }
.card-danger { border: 1px solid #6b2e31; border-top: 3px solid #c62828; }
.pri-high { background: #3b2a18; color: #f1b47c; }
.pri-rush { background: #3d1f23; color: #f2a5a5; }
.pri-low { background: #253444; color: var(--slate); }
.topbar { background: #18232f; border-bottom: 1px solid var(--line); }
.w-shop { color: var(--orange); }
.w-up { color: #e4ebf1; }
.w-keepr { color: var(--teal); }
.switcher select { background: #1c2836; border-color: #1f5866; }
.shop-name { color: var(--slate); }
.usermenu-pop { background: #18232f; border: 1px solid var(--line); box-shadow: var(--shadow); }
.avatar { background: #0a141e; color: #fff; }
.avatar.sm { background: var(--teal); }
.menu-toggle summary span { background: #0a141e; }
.viewas { background: var(--orange); color: #fff; }
.sidebar { background: #0a141e; }
.sidebar a, .mobile-nav a { color: #c9d6e0; }
.sidebar a:hover { background: rgba(255,255,255,.07); color: #fff; }
.sidebar a.active { background: var(--teal); color: #fff; }
.ico { fill: currentColor; }
.nav-label { color: #7f93a6; }
.card { background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); }
details.card > summary::before { color: var(--teal); }
.empty { color: var(--muted); }
.site-footer { color: var(--muted); border-top: 1px solid var(--line); background: #18232f; }
.site-footer a { color: var(--muted); }
.table th { color: var(--muted); border-bottom: 1px solid var(--line); }
.table td { border-bottom: 1px solid #223040; }
.table tr:last-child td { border-bottom: 0; }
tr.clickable:hover td { background: #1c2836; }
.tile { background: #18232f; border: 1px solid var(--line); border-top: 4px solid var(--c); color: var(--text); box-shadow: var(--shadow); }
.tile:hover { border-color: var(--c); }
.tile-l { color: var(--muted); }
.wo-list li { border-bottom: 1px solid #223040; }
.wo-list li:last-child { border-bottom: 0; }
.wo-list a { color: var(--text); }
.wo-meta { color: var(--muted); }
.dot { background: var(--c); }
.activity li { border-bottom: 1px solid #223040; }
.activity li:last-child { border-bottom: 0; }
.promise { color: var(--slate); }
.promise.late { color: var(--err); }
.col { background: #131e2a; border-top: 4px solid var(--c); }
.col.drop-target { background: #1a4350; outline: 2px dashed var(--teal); }
.col-h .count { background: #18232f; color: var(--slate); }
.col-empty { color: #7d8f9f; }
.wo-card { background: #18232f; border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(0,0,0,0.18); }
.wo-card-link { color: var(--text); }
.wo-num { color: #62d0df; }
.wo-cust { color: var(--slate); }
.wo-concern { color: var(--muted); }
.stage-chip { background: color-mix(in srgb, var(--c) 14%, #18232f); color: color-mix(in srgb, var(--c) 75%, #fff); border: 1px solid color-mix(in srgb, var(--c) 35%, #18232f); }
.label { color: var(--muted); }
.kind { background: #143a45; color: #62d0df; }
.kind-part { background: #3b2a18; color: #f1b47c; }
.kind-fee { background: #1f2a45; color: #aebff0; }
.totals .grand { border-top: 2px solid #5d7083; }
.add-item { border-top: 1px dashed var(--line); }
.timeline li { border-left: 3px solid var(--line); }
.timeline li.ev-note { border-left-color: var(--teal); }
.timeline li.ev-stage { border-left-color: var(--orange); }
.veh-list li { border-bottom: 1px solid #223040; }
.add-veh summary { color: #62d0df; }
.matrix tr.group td { background: #1c2836; color: #62d0df; }
@media (min-width: 1200px) {
.matrix thead th { background: var(--card); box-shadow: 0 1px 0 var(--line); }
}
.pub-top { background: #18232f; border-bottom: 1px solid var(--line); }
.pub-top nav a:not(.btn) { color: #e4ebf1; }
.pw-rules { color: var(--muted); }
.pw-rules li.ok { color: var(--ok); }
@media (max-width: 1000px) {
.mobile-nav { background: #0a141e; box-shadow: var(--shadow); }
.mobile-nav a.active { background: var(--teal); color: #fff; }
}
@media (max-width: 700px) {
.table tr { border: 1px solid var(--line); background: #18232f; }
.table td { border: 0; }
.table td[data-label]::before { color: var(--muted); }
.matrix tr.group { border: 0; background: none; }
.matrix tr.group td { background: none; }
}
.cal-views { border: 1px solid var(--line); background: #18232f; }
.cal-views a { color: #e4ebf1; }
.cal-views a + a { border-left: 1px solid var(--line); }
.cal-views a.on { background: var(--teal); color: #fff; }
.cal-head { background: #18232f; border-bottom: 1px solid var(--line); }
.cal-colhead { border-left: 1px solid #223040; }
.cal-colhead a { color: #e4ebf1; }
.cal-colhead span { color: var(--muted); }
.cal-colhead.today { color: #62d0df; background: #16323d; }
.cal-colhead.today a { color: #62d0df; }
.cal-body .cal-gutter { border-right: 1px solid var(--line); }
.cal-hour { border-bottom: 1px solid #223040; }
.cal-hour span { color: var(--muted); background: #18232f; }
.cal-col { border-left: 1px solid #223040; background-image: repeating-linear-gradient(to bottom, #223040 0, #223040 1px, transparent 1px, transparent 30px, #223040 30px, #223040 31px, transparent 31px, transparent 60px); }
.cal-col.today { background-color: #172a35; }
.cal-slot:hover { background: rgba(14,138,158,.08); }
.cal-slot:hover::after { color: #62d0df; }
.cal-ev { color: #e4ebf1; background: #143a45; border-left: 4px solid var(--teal); box-shadow: 0 1px 2px rgba(0,0,0,0.36); }
.cal-ev:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.ev-sub { color: var(--slate); }
.cal-now { background: var(--err); }
.cal-now::before { background: var(--err); }
.cal-ev.st-confirmed, .ag-item.st-confirmed, .cm-ev.st-confirmed { background: #153628; }
.cal-ev.st-checked_in, .ag-item.st-checked_in, .cm-ev.st-checked_in { background: #253444; color: #b0bcc7; }
.cal-ev.st-no_show, .ag-item.st-no_show, .cm-ev.st-no_show { background: #3d1f23; }
.cal-ev { border-left-color: var(--sc); }
.st-pill { background: color-mix(in srgb, var(--sc) 14%, #18232f); color: color-mix(in srgb, var(--sc) 75%, #fff); }
.cal-legend .lg::before { background: var(--sc); }
.cm-head { color: var(--muted); border-bottom: 1px solid var(--line); }
.cm-day { border-right: 1px solid #223040; border-bottom: 1px solid #223040; }
.cm-day:nth-child(7n+7) { border-right: 0; }
.cm-day.other { background: #141e29; }
.cm-day.other .cm-num { color: #607283; }
.cm-num { color: #e4ebf1; }
.cm-day.today .cm-num { background: var(--teal); color: #fff; }
.cm-ev { color: #e4ebf1; background: #143a45; border-left: 3px solid var(--sc); }
.cm-more { color: #62d0df; }
.cm-add { color: #5b6d7e; }
.cal-agenda section { border-bottom: 1px solid #223040; }
.cal-agenda h3 a { color: #e4ebf1; }
.ag-item { background: #143a45; border-left: 4px solid var(--sc); color: #e4ebf1; }
.ag-item span:last-child { color: var(--slate); }
@media (max-width: 700px) {
.cm-ev { background: var(--sc); }
}
.wb-link input { background: #1c2836; }
.wb-panels li { border: 1px solid var(--line); background: #1c2836; }
.stock-low { color: #f1b47c; }
.stock-out { color: var(--err); }
.stock-in { color: var(--ok); }
.stock-pill { background: #1f2a45; color: #aebff0; }
.low-card { border-left: 4px solid #e8a23b; }
.stage-head { color: var(--muted); }
.stage-row { border: 1px solid var(--line); background: #1c2836; }
.nav-badge { background: var(--orange); color: #fff; }
.bell summary { color: #e4ebf1; }
.bell summary:hover { background: #253444; }
.bell summary .nav-badge { border: 2px solid #18232f; }
.bell-pop { background: #18232f; border: 1px solid var(--line); box-shadow: var(--shadow); }
.bell-all { border-top: 1px solid var(--line); }
.notif-list li a { color: var(--text); }
.notif-list li a:hover { background: #212f3e; }
.notif-list li.unread a { background: #143a45; }
.n-body { color: var(--slate); }
.pill-new { background: var(--orange); color: #fff; }
.inbox, .thread-pane { background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.inbox-head { border-bottom: 1px solid var(--line); }
.inbox-list a { color: var(--text); }
.inbox-list a:hover { background: #212f3e; }
.inbox-list a.on { background: #143a45; }
.inbox-list .avatar { background: var(--teal); }
.inbox-list a.unread .inbox-last { color: var(--text); }
.inbox-list .count { background: var(--orange); color: #fff; }
.thread-head { border-bottom: 1px solid var(--line); }
.thread-menu-pop { background: #18232f; border: 1px solid var(--line); box-shadow: var(--shadow); }
.msg-from { color: var(--slate); }
.bubble { background: #253444; }
.msg.mine .bubble { background: var(--teal); color: #fff; }
.msg-time { color: var(--muted); }
.msg-sys { color: var(--muted); background: #212f3e; }
.send-form { border-top: 1px solid var(--line); }
.send-off { border-top: 1px solid var(--line); }
.report-filters label { color: var(--muted); }
.kpi { background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow); }
.kpi-lbl { color: var(--slate); }
.kpi-sub { color: var(--muted); }
.small-kpis .kpi { box-shadow: none; background: #1c2836; }
.vbar-val { color: var(--slate); }
.vbar-fill { background: var(--teal); }
.vbar:hover .vbar-fill { background: var(--teal-d); }
.vbar-lbl { color: var(--muted); }
.hbar { background: #253444; }
.hbar span { background: var(--teal); }
.mix-bar { background: #253444; }
@media (max-width: 700px) {
.table.compact tr { border: 0; background: none; }
.table.compact td, .table.compact th { border-bottom: 1px solid var(--line); }
}
.tabs a { color: var(--slate); background: #18232f; border: 1px solid var(--line); }
.tabs a.on { background: #0a141e; color: #fff; border-color: #5d7083; }
.inv-open { background: #143a45; color: #62d0df; }
.inv-partial { background: #3b2a18; color: #f1b47c; }
.inv-overdue { background: #3d1f23; color: #f2a5a5; }
.inv-paid { background: #153628; color: #7fd6a4; }
.inv-void { background: #253444; color: var(--slate); }
.qbo-badge.ok { background: #153628; color: #7fd6a4; }
.qbo-badge.pending { background: #253444; color: var(--slate); }
.qbo-badge.err { background: #3d1f23; color: #f2a5a5; }
.err-text { color: var(--err); }
.warn-text { color: var(--warn); }
.invoice-doc { background: #18232f; border: 1px solid var(--line); box-shadow: var(--shadow); }
.inv-head { border-bottom: 3px solid var(--teal); }
.inv-title { color: #62d0df; }
.inv-parties .label { color: var(--muted); }
.inv-totals .paid-line { color: var(--ok); }
.inv-paid { color: var(--ok); }
.inv-void { color: var(--err); }
.inv-footer { border-top: 1px solid var(--line); }
.qbo-connect { background: #2ca01c; border-color: #2ca01c; }
.qbo-connect:hover { background: #248616; border-color: #248616; }
.list-head { color: var(--muted); }
.list-row { border: 1px solid var(--line); background: #1c2836; }
.combo-input { background: #18232f url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%235b6b7a'%3E%3Cpath d='M15.5 14h-.8l-.3-.3A6.5 6.5 0 1 0 9.5 16a6.5 6.5 0 0 0 4.2-1.6l.3.3v.8l5 5 1.5-1.5zm-6 0A4.5 4.5 0 1 1 14 9.5 4.5 4.5 0 0 1 9.5 14z'/%3E%3C/svg%3E") no-repeat right 9px center / 18px; }
.combo-list { background: #18232f; border: 1px solid var(--line); box-shadow: var(--shadow); }
.combo-list li { color: var(--text); }
.combo-list li.on, .combo-list li:hover { background: #143a45; }
.combo-list li.combo-special { color: #62d0df; border-bottom: 1px solid var(--line); }
.combo-list li.combo-empty { color: var(--muted); }
.combo-list li.combo-empty:hover { background: none; }
.pill-warn { background: #3b2a18; color: #f1b47c; }
.pill-bad { background: #3d1f23; color: #f2a5a5; }
.mk-preview { border: 1px solid var(--line); background: #212f3e; }
.chip-btn { border: 1px solid var(--line); background: #1c2836; color: #e4ebf1; }
.chip-btn:hover { border-color: var(--teal); color: var(--teal); }
.mail-list li + li { border-top: 1px solid #223040; }
.mail-list a { color: inherit; }
.mail-list a:hover { background: #1c2836; }
.mail-list li.unread a { box-shadow: inset 3px 0 0 var(--teal); }
.mail-msg { background: var(--card); border: 1px solid var(--line); }
.mail-msg.out { background: #16323d; border-color: #1f5866; }
.mk-cust { border-top: 1px solid #223040; }
.addr-field span { color: var(--slate); }
.danger-zone { border-color: color-mix(in srgb, #c62828 35%, var(--line)); }
.danger-zone h2 { color: #f2a5a5; }
.drag-ghost { box-shadow: 0 12px 32px rgba(0,0,0,0.6); }
.cal-ev.drag-ghost .ev-time { color: #62d0df; }
html.is-dragging .cal-slot:hover { background: none; }
.cal-drop { border: 2px dashed var(--teal); background: rgba(14,138,158,.12); color: #62d0df; }
.cal-col.drop-target { background-color: rgba(14,138,158,.05); }
.cm-day.drop-target { background: #143a45; box-shadow: inset 0 0 0 2px var(--teal); }
.theme-toggle { background: none; border: 0; color: #62d0df; }
.theme-toggle .switch { background: #c9d5dc; }
.theme-toggle .switch::after { background: #18232f; box-shadow: 0 1px 2px rgba(0,0,0,0.6); }
.theme-toggle[aria-checked=true] .switch { background: var(--teal); }
fieldset.bare { border: 0; }
fieldset.bare[disabled] input, fieldset.bare[disabled] select, fieldset.bare[disabled] textarea { background: #1c2836; }
.spot { color: var(--text); }
.spot.taken { background: #143a45; border: 1px solid #1f5866; }
.spot.open { background: #1c2836; border: 1px dashed #36485b; color: var(--muted); }
a.spot:hover { border-color: var(--teal); }
.kind-chips { border: 0; }
.kind-chips span { border: 2px solid var(--line); background: #18232f; }
.kind-chips span b { background: #0a141e; color: #fff; }
.kind-chips input:checked + span { border-color: var(--teal); background: #143a45; }
.kind-chips input:focus-visible + span { outline: 2px solid var(--teal-l); }
.dmg-board { border: 1px dashed #36485b; background: #1c2836; }
.dmg-lbl { fill: #98a9b8; }
.dmg-body { fill: #fff; }
.dmg-glass { fill: #e3f4f7; }
.dmg-roof { fill: #f3f6f8; }
.dmg-tire { fill: #2a3a4c; }
.dmg-detail { fill: none; }
.dmg-pin { background: var(--teal); color: #fff; border: 2px solid #18232f; box-shadow: 0 2px 6px rgba(0,0,0,0.6); }
.dmg-pin.out { background: var(--orange); }
.dmg-pin.static { box-shadow: none; }
.dmg-legend { color: var(--muted); }
.dot-in { background: var(--teal); }
.dot-out { background: var(--orange); }
.dmg-list li { border-bottom: 1px solid #223040; }
.release-card { border-top: 4px solid var(--orange); }
.insp-card { border-top: 4px solid var(--orange); }
.insp-card.done { border-top-color: var(--ok); }
.insp-qr { border: 1px solid var(--line); background: #1c2836; }
.bar { background: #253444; }
.bar span { background: var(--teal); }
.insp-empty { border: 1px dashed #b6c3cc; background: #1c2836; }
.insp-thumbs figcaption { color: var(--muted); }
.slot-ico { fill: none; }
.insp-wheels li { border-bottom: 1px solid #223040; }
.insp-sig { border: 1px solid var(--line); background: #18232f; }
.pill-bad { background: #3d1f23; color: #f2a5a5; }
.shot { border: 1px solid var(--line); background: #18232f; }
.shot.done { border-color: #22553d; }
.shot-img { background: #1c2836; }
.shot-btn { color: #62d0df; }
.seg { border: 0; }
.seg-row { border: 1px solid #36485b; }
.seg-row span { background: #18232f; border-left: 1px solid #36485b; }
.seg-row label:first-child span { border-left: 0; }
.seg-row input:checked + span { background: var(--teal); color: #fff; }
.seg-row input:focus-visible + span { outline: 2px solid var(--teal-l); }
.sig-pad { border: 1px dashed #b6c3cc; background: #18232f; }
.cam { background: #0b141d; color: #fff; }
.cam.flash { background: #18232f; }
.cam-x { border: 0; background: rgba(255,255,255,.14); color: #fff; }
.cam-title small { color: #a9b8c5; }
.cam-view { background: #000; }
.cam-ico { fill: none; }
.cam-hint { background: rgba(11,20,29,.75); }
.cam-skip { background: none; border: 0; color: #c9d6e0; }
.cam-shoot { border: 5px solid #18232f; background: none; }
.cam-shoot span { background: #18232f; }
.cam-status { color: #a9b8c5; }
.dup-dialog { border: 1px solid var(--line); background: var(--card); color: var(--text); box-shadow: 0 20px 60px rgba(0,0,0,0.6); }
.dup-dialog::backdrop { background: rgba(0,0,0,0.6); }
.dup-list li { border: 1px solid var(--line); }
.merge-col { border: 2px solid var(--line); }
.merge-col:has(input:checked) { border-color: var(--teal); background: #16323d; }
.dp-field { border: 1px solid #36485b; background: #18232f; color: var(--text); }
.dp-field:hover { border-color: #a9bcc7; }
.dp-field:focus-visible, .dp-field[aria-expanded=true] { outline: 2px solid var(--teal-l); border-color: var(--teal); }
.dp-field svg { fill: none; }
.dp-field .dp-ph { color: var(--muted); }
.dp-field.dp-invalid { border-color: var(--err); outline-color: var(--err); }
.dp-pop { background: #18232f; border: 1px solid var(--line); box-shadow: 0 12px 36px rgba(0,0,0,0.54); }
.dp-nav { border: 0; background: none; color: var(--text); }
.dp-nav:hover { background: #212f3e; }
.dp-nav svg { fill: none; }
.dp-dow { color: var(--muted); }
.dp-day { border: 0; background: none; color: var(--text); }
.dp-day:hover { background: #212f3e; }
.dp-day.other { color: #607283; }
.dp-day.today { box-shadow: inset 0 0 0 1.5px var(--teal); color: #62d0df; }
.dp-day.sel, .dp-day.sel:hover { background: var(--teal); color: #fff; box-shadow: none; }
.dp-day:disabled { color: #c9d5dc; background: none; }
.dp-day:focus-visible, .dp-time:focus-visible, .dp-quick button:focus-visible, .dp-nav:focus-visible { outline: 2px solid var(--teal-l); }
.dp-quick { border-top: 1px solid var(--line); }
.dp-quick button { border: 1px solid var(--line); background: #18232f; color: var(--text); }
.dp-quick button:hover { border-color: var(--teal); color: #62d0df; }
.dp-quick .dp-clear { border-color: transparent; color: var(--muted); }
.dp-dt .dp-times { border-left: 1px solid var(--line); }
.dp-time { border: 0; background: none; color: var(--text); }
.dp-time:hover { background: #212f3e; }
.dp-time.sel, .dp-time.sel:hover { background: var(--teal); color: #fff; }
.drop-chips .chip-btn.on { border-color: var(--teal); background: #143a45; color: #62d0df; }
.chip-toggle span { border: 1px solid var(--line); background: #1c2836; color: #e4ebf1; }
.chip-toggle span::before { color: var(--muted); }
.chip-toggle input:checked + span { border-color: var(--teal); background: var(--teal); color: #fff; }
.chip-toggle input:checked + span::before { color: #fff; }
.chip-toggle input:focus-visible + span { outline: 2px solid var(--teal-l); }

/* ---------- hand-tuned (dark only) ---------- */
.wordmark .logo-light { display: none; } .wordmark .logo-dark { display: block; }
.sidebar { border-right: 1px solid #223040; }
.avatar { background: #2f4a63; }
.menu-toggle summary span { background: #e4ebf1; }
.mobile-nav { border: 1px solid #2b3b4c; }
.btn-ghost:hover { background: #212f3e; }
.btn-light { background: #18232f; color: #e4ebf1; border-color: #18232f; }
input::placeholder, textarea::placeholder { color: #6f8293; }
input[type=color] { background: #1c2836; }
.stage-chip { background: color-mix(in srgb, var(--c) 22%, #18232f); color: color-mix(in srgb, var(--c) 45%, #fff); border-color: color-mix(in srgb, var(--c) 45%, #18232f); }
.st-pill { background: color-mix(in srgb, var(--sc) 22%, #18232f); color: color-mix(in srgb, var(--sc) 45%, #fff); }
.cal-ev, .cm-ev, .ag-item { color: #e4ebf1; }
.mk-preview { background: #fff; }
.insp-sig { background: #fff; }
.insp-qr svg.qr { background: #fff; }
.theme-toggle .switch { background: #3a4d60; } .theme-toggle .switch::after { background: #e4ebf1; }
.theme-toggle[aria-checked=true] .switch { background: var(--teal); }
