/* Direction: Cargo — kraft-paper canvas, burnt-orange action, a sturdy grotesque */
/* Completed by the platform from the short form: both modes, every
   palette token, each text-on-ground pair at its floor. To restyle, write the
   short form again (the decisions in one :root) and it is completed again. */

:root {
  --canvas: #f6f3ed;
  --surface: #fbfaf7;
  --surface-2: #ebe7e1;
  --border: #d7d2cc;
  --border-strong: #b4ada7;
  --ink: #1d1a16;
  --muted: #6b6863;
  --accent: #c2410c;
  --accent-hover: #a5370a;
  --accent-ink: #ffffff;
  --accent-text: #9a3412;
  --accent-strong: #a4370a;
  --accent-soft: #efdace;
  --accent-border: #dfa388;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #dbe5d8;
  --success-strong: #116d34;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #eee0d2;
  --warning-strong: #994607;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #efd9d4;
  --danger-strong: #b91c1c;
  --chart-1: #c2410c;
  --chart-2: #9b8712;
  --chart-3: #0d6d45;
  --chart-4: #1f96b2;
  --chart-5: #4845b6;
  --chart-6: #ca59ad;

  --font-display: "Bricolage Grotesque", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --radius-card: 14px;
  --radius-btn: 12px;
  --radius-input: 12px;
  --x-on-photo: #ffffff;
  --x-paper: #ffffff;
  --x-paper-ink: #1d1a16;
  --x-paper-muted: #5b5650;
  --x-paper-line: #d9d4cc;
  --x-paper-soft: #f6f3ed;
  --x-paper-accent: #c2410c;
  --x-paper-navy: #1e3a5f;
  --x-st0: #64748b;
  --x-st1: #0369a1;
  --x-st2: #7c3aed;
  --x-st3: #4f46e5;
  --x-st4: #b45309;
  --x-st5: #be185d;
  --x-st6: #15803d;
  --x-st7: #b91c1c;
  --x-hot: #c62828;
  --x-warm: #b45309;
  --x-cold: #1d6fa5;
  --font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-sans: "Inter", system-ui, sans-serif;
  --display-weight: 700;
  --display-tracking: -0.02em;
  --eyebrow-tracking: 0.08em;
}

html[data-theme="dark"] {
  --canvas: #110602;
  --surface: #291f1b;
  --surface-2: #1d120f;
  --border: #322925;
  --border-strong: #58514e;
  --ink: #f6f3ed;
  --muted: #9a948f;
  --accent: #c2410c;
  --accent-hover: #cb5e30;
  --accent-ink: #ffffff;
  --accent-text: #d37750;
  --accent-strong: #cf6b41;
  --accent-soft: #381304;
  --accent-border: #612107;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #12210f;
  --success-strong: #499c68;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #351704;
  --warning-strong: #c57a40;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #360b08;
  --danger-strong: #d16969;
  --chart-1: #c2410c;
  --chart-2: #a18d1d;
  --chart-3: #129861;
  --chart-4: #1f96b2;
  --chart-5: #6c70e5;
  --chart-6: #ca59ad;
}

.pill{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.15rem .65rem;font-size:.75rem;font-weight:600;line-height:1.5;background:var(--surface-2);color:var(--ink);white-space:nowrap}
.pri-hot{background:var(--x-hot);color:var(--x-on-photo)}
.pri-warm{background:var(--x-warm);color:var(--x-on-photo)}
.pri-cold{background:var(--x-cold);color:var(--x-on-photo)}
.dot{width:.6rem;height:.6rem;border-radius:99px;display:inline-block;flex:none;background:var(--c,var(--muted))}
.st-0{--c:var(--x-st0)}.st-1{--c:var(--x-st1)}.st-2{--c:var(--x-st2)}.st-3{--c:var(--x-st3)}
.st-4{--c:var(--x-st4)}.st-5{--c:var(--x-st5)}.st-6{--c:var(--x-st6)}.st-7{--c:var(--x-st7)}
.stripe{background-image:repeating-linear-gradient(135deg,transparent 0 14px,color-mix(in srgb,var(--accent) 9%,transparent) 14px 16px)}
.brand-box{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-display);font-weight:800;overflow:hidden;flex:none}
.brand-box img{width:100%;height:100%;object-fit:contain;background:var(--surface)}

/* navigation */
.navlink{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;border-radius:12px;font-weight:600;color:var(--ink);min-height:48px}
.navlink:hover{background:var(--surface-2)}
.navlink[aria-current="page"]{background:var(--accent-soft);color:var(--accent-strong)}
.bnav a,.bnav button{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:60px;font-size:.7rem;font-weight:600;color:var(--muted);background:none;border:0}
.bnav a[aria-current="page"]{color:var(--accent-text)}
.bnav .add .fab{color:var(--accent-ink)}
.bnav .add span.fab{display:grid;place-items:center;width:3.1rem;height:3.1rem;border-radius:99px;background:var(--accent);margin-top:-1.1rem;box-shadow:0 6px 16px rgb(0 0 0 / .25)}

/* lead rows */
.lrow{display:grid;gap:.3rem;padding:.9rem 1rem;border-bottom:1px solid var(--border);color:var(--ink)}
.lrow:hover{background:var(--surface-2)}
.lrow:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media(min-width:768px){.lrow{grid-template-columns:2.2fr 1.7fr 1.3fr 1.2fr 1fr;align-items:center;gap:1rem}}
.lhead{display:none}
@media(min-width:768px){.lhead{display:grid;grid-template-columns:2.2fr 1.7fr 1.3fr 1.2fr 1fr;gap:1rem;padding:.6rem 1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--border)}}

/* kanban */
.board{display:flex;gap:.75rem;overflow-x:auto;padding-bottom:1rem;scroll-snap-type:x proximity;align-items:flex-start}
.col{flex:0 0 17.5rem;background:var(--surface-2);border-radius:var(--radius-card);padding:.6rem;scroll-snap-align:start}
.col.over{outline:2px dashed var(--accent);outline-offset:-2px}
.col-body{display:flex;flex-direction:column;gap:.5rem;min-height:5rem}
.kcard{display:block;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.7rem;cursor:grab;color:var(--ink)}
.kcard:hover{border-color:var(--accent)}
.kcard.dragging{opacity:.45}

/* stage bar */
.stagebar{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.25rem}
.sbtn{flex:none;min-height:44px;padding:0 .9rem;border-radius:99px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-weight:600;font-size:.85rem}
.sbtn:hover{border-color:var(--accent)}
.sbtn.done{background:var(--accent-soft);color:var(--accent-strong);border-color:var(--accent-border)}
.sbtn.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.sbtn.lost.on{background:var(--x-st7);border-color:var(--x-st7);color:var(--x-on-photo)}

/* charts */
.bar{height:.6rem;border-radius:99px;background:var(--surface-2);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:99px;background:var(--accent)}
.mchart{display:flex;align-items:flex-end;gap:.6rem;height:10rem}
.mchart .m{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.25rem}
.mchart .pair{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center}
.mchart .pair i{display:block;width:40%;max-width:1.4rem;border-radius:5px 5px 0 0;background:var(--accent);min-height:3px}
.mchart .pair i.b{background:var(--x-st6)}

/* follow-ups & timeline */
.overdue{border-left:4px solid var(--x-hot)}
.todaycard{border-left:4px solid var(--x-warm)}
.red{color:var(--x-hot)}
.tl{position:relative;padding-left:1.3rem;border-left:2px solid var(--border);margin-left:.4rem}
.tl>li{position:relative;padding-bottom:1rem}
.tl>li::before{content:"";position:absolute;left:-1.78rem;top:.3rem;width:.7rem;height:.7rem;border-radius:99px;background:var(--accent);border:2px solid var(--surface)}
.sticky-save{position:sticky;bottom:4.6rem;z-index:20;padding:.6rem 0;background:linear-gradient(to top,var(--canvas) 70%,transparent)}
@media(min-width:768px){.sticky-save{bottom:0}}
.chip[aria-current="page"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
/* signature pad */
.sigpad{display:block;width:100%;max-width:520px;height:140px;border:1px dashed var(--border-strong);border-radius:12px;background:var(--x-paper);touch-action:none;cursor:crosshair}

/* documents: survey list and quotation (always paper-white, in both themes) */
.docbar{position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--border)}
.docwrap{padding:1rem;background:var(--surface-2);min-height:100vh;overflow-x:auto}
.docscroll{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-2);padding:.75rem}
.qdoc{background:var(--x-paper);color:var(--x-paper-ink);width:100%;max-width:794px;min-width:620px;margin:0 auto;padding:28px 30px;font-size:13px;line-height:1.5;font-family:var(--font-body);border:1px solid var(--x-paper-line)}
.qdoc *{box-sizing:border-box}
.qdoc p{margin:0}
.qdoc img{max-width:100%}
.qd-head{display:flex;justify-content:space-between;gap:16px;border-bottom:2px solid var(--x-paper-ink);padding-bottom:12px;margin-bottom:14px}
.qd-brand{display:flex;gap:12px;align-items:center}
.qd-logo{width:56px;height:56px;object-fit:contain}
.qd-name{font-size:18px;font-weight:800;font-family:var(--font-display)}
.qd-sub{color:var(--x-paper-muted);font-size:12px}
.qd-right{text-align:right}
.qd-title{font-size:22px;font-weight:800;letter-spacing:.08em;font-family:var(--font-display)}
.qd-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.qd-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--x-paper-muted);font-weight:700;margin-bottom:2px}
.qd-table{width:100%;border-collapse:collapse;margin:8px 0}
.qd-table th{background:var(--x-paper-soft);text-align:left;padding:6px 8px;border:1px solid var(--x-paper-line);font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.qd-table td{padding:6px 8px;border:1px solid var(--x-paper-line);vertical-align:top}
.qdoc .r{text-align:right}
.qd-table tr.sub th{text-transform:none;font-weight:600}
.qd-sum{width:55%;margin-left:auto}
.qd-sum tr.grand td{font-weight:800;font-size:15px;background:var(--x-paper-soft)}
.qd-opt-h{font-family:var(--font-display);font-size:15px;font-weight:800;margin-top:16px}
.qd-badge{display:inline-block;padding:1px 8px;border-radius:99px;background:var(--x-paper-accent);color:var(--x-paper);font-size:11px}
.qd-words{margin:6px 0 10px;font-size:12px}
.qd-terms{margin-top:12px}
.qd-pre{white-space:pre-line}
.qd-accepted{margin-top:14px;padding:10px;border:1px solid var(--x-paper-line);background:var(--x-paper-soft)}
.qd-foot{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:8px;border-top:1px solid var(--x-paper-line);color:var(--x-paper-muted);font-size:11px}
.qd-sign{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}
.qd-line{border-bottom:1px solid var(--x-paper-ink);height:48px}
.qd-sigimg{height:70px}
.qd-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
.qd-photos img{width:100%;height:110px;object-fit:cover}
.tpl-classic .qd-name,.tpl-classic .qd-title,.tpl-classic .qd-opt-h{font-family:Georgia,"Times New Roman",serif}
.tpl-modern .qd-head{background:var(--x-paper-accent);color:var(--x-paper);border:0;padding:16px 30px;margin:-28px -30px 16px}
.tpl-modern .qd-head .qd-sub{color:var(--x-paper)}
.tpl-modern .qd-logo{background:var(--x-paper);border-radius:8px;padding:3px}
.tpl-modern .qd-table th{background:var(--x-paper-accent);color:var(--x-paper);border-color:var(--x-paper-accent)}
.tpl-modern .qd-sum tr.grand td{background:var(--x-paper-accent);color:var(--x-paper)}
.tpl-minimal .qd-head{border-bottom:1px solid var(--x-paper-line)}
.tpl-minimal .qd-title{font-weight:300;letter-spacing:.2em;color:var(--x-paper-navy)}
.tpl-minimal .qd-table th,.tpl-minimal .qd-table td{border:0;border-bottom:1px solid var(--x-paper-line);background:none}
.tpl-minimal .qd-table th{color:var(--x-paper-muted)}
.tpl-minimal .qd-sum tr.grand td{border-top:2px solid var(--x-paper-navy);color:var(--x-paper-navy);background:none}
@media (max-width:560px){.qd-grid,.qd-sign{grid-template-columns:1fr}}
@media print{
  @page{size:A4;margin:10mm}
  .no-print,.docbar,header.fixed,aside.fixed,nav.bnav{display:none!important}
  html,body{background:var(--x-paper)!important}
  .docwrap{padding:0;background:none;min-height:0;overflow:visible}
  .docscroll{border:0;padding:0;background:none;overflow:visible}
  .qdoc{border:0;max-width:none;min-width:0;width:100%;padding:0}
  .tpl-modern .qd-head{margin:0 0 12px}
  .qd-table tr,.qd-sign,.qd-sum{break-inside:avoid}
  .qdoc,.qdoc *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* documents: details grid, receipt, vehicle outline */
.qd-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:8px 0 12px}
.qd-kv .qd-wide{grid-column:1/-1}
.qd-list{margin:4px 0 0 18px;padding:0;list-style:disc}
.qd-receipt{margin:14px 0;padding:14px;border:1px solid var(--x-paper-line);background:var(--x-paper-soft);line-height:1.8}
.qd-big{font-size:26px;font-weight:800;font-family:var(--font-display);margin:6px 0}
@media (max-width:560px){.qd-kv{grid-template-columns:1fr}}
.vehbox{display:flex;justify-content:center;padding:8px;background:var(--x-paper);border:1px solid var(--x-paper-line);border-radius:12px}
.veh{display:block;width:min(100%,190px);aspect-ratio:100/180;height:auto;cursor:crosshair;touch-action:manipulation}
.veh[hidden]{display:none}
.qdoc .veh{cursor:default;width:150px}
.veh-body{fill:var(--x-paper-soft);stroke:var(--x-paper-ink);stroke-width:1.2}
.veh-t{font-size:5px;fill:var(--x-paper-muted);font-family:var(--font-body)}
.veh-mark{fill:var(--x-hot);fill-opacity:.85;stroke:var(--x-paper);stroke-width:.8}
/* jobs calendar */
.jcal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.jcal-h{padding:6px;font-size:12px;font-weight:700;text-align:center;background:var(--surface-2);color:var(--muted)}
.jcal-d{min-height:100px;border-top:1px solid var(--border);border-right:1px solid var(--border);padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0}
.jcal-d.out{background:var(--surface-2);opacity:.65}
.jcal-n{font-size:12px;color:var(--muted)}
.jcal-d.today .jcal-n{color:var(--accent-text);font-weight:800}
.jcal-e{display:block;font-size:11px;line-height:1.35;border-radius:6px;padding:2px 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);background:var(--accent-soft)}
.jcal-e:hover{outline:2px solid var(--accent)}
.jk-Pack{background:color-mix(in srgb,var(--x-warm) 20%,var(--surface))}
.jk-Load{background:color-mix(in srgb,var(--x-cold) 20%,var(--surface))}
.jk-Deliver{background:color-mix(in srgb,var(--x-st6) 22%,var(--surface))}

details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
.hoverlift{transition:transform .15s ease,box-shadow .15s ease}
.hoverlift:hover{transform:translateY(-2px)}
html.reduced-motion .hoverlift{transition:none}
html.reduced-motion .hoverlift:hover{transform:none}
