/* CONVOY admin — Montserrat headings, Source Sans 3 body. Palette: Oat canvas, Warm Sand cards, Mocha text, Terracotta accent (dark text on accent for 5.1:1 contrast), red only for emergencies. */
@font-face{font-family:"Montserrat";font-weight:600;font-display:swap;src:url(fonts/montserrat-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-weight:700;font-display:swap;src:url(fonts/montserrat-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-weight:800;font-display:swap;src:url(fonts/montserrat-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:400;font-display:swap;src:url(fonts/source-sans-3-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:600;font-display:swap;src:url(fonts/source-sans-3-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-weight:700;font-display:swap;src:url(fonts/source-sans-3-latin-700-normal.woff2) format("woff2")}

:root{--ink:#1A1817;--bg:#FAF8F5;--card:#FFFDF9;--sand:#F0ECE1;--accent:#D96B27;--accent-d:#C25E1F;--accent-ink:#A34A14;--red:#B3261E;--red-d:#B3261E;--muted:#5C5650;--line:#E2DDD3;--soft:#F4F1EA;--ok:#3A6053;--warn:#8A4B00;--blue:#2F5D8A;--r:12px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Source Sans 3",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
h1,h2,h3{font-family:"Montserrat",system-ui,sans-serif;font-weight:700;letter-spacing:-.3px;margin:0 0 .4em;line-height:1.15}
h1{font-size:30px}h2{font-size:22px}h3{font-size:18px}
a{color:var(--ink)}
p{margin:.3em 0 .8em}
.muted{color:var(--muted)}
.small{font-size:14px}
code{background:var(--soft);padding:1px 6px;border-radius:5px;font-size:14px}

header.top{display:flex;align-items:center;gap:24px;padding:10px 24px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:1000}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand img{height:28px}
.brand span{font-family:"Montserrat";font-weight:800;font-size:17px;letter-spacing:2px;color:var(--ink)}
.brand em{font-style:normal;font-size:12px;font-weight:700;color:var(--accent-ink);text-transform:uppercase;letter-spacing:1px;margin-left:-4px}
header nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
header nav a{padding:8px 12px;border-radius:8px;text-decoration:none;font-weight:600;color:var(--muted)}
header nav a.on,header nav a:hover{color:var(--ink);background:var(--soft)}
header nav a.on{box-shadow:inset 0 -3px 0 var(--accent);border-radius:8px 8px 0 0;background:none}
.who{display:flex;gap:14px;font-size:14px;color:var(--muted);align-items:center}
main{max-width:1180px;margin:0 auto;padding:28px 24px 80px}
main.wide{max-width:none}
body.bare main{max-width:440px;padding-top:9vh}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:18px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}
.stat{border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}
.stat b{display:block;font-family:"Montserrat";font-weight:800;font-size:30px;line-height:1.1}
.stat span{color:var(--muted);font-size:14px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}

table{width:100%;border-collapse:collapse;font-size:15px}
th{text-align:left;font-weight:600;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line);padding:8px 10px}
td{border-bottom:1px solid var(--line);padding:10px;vertical-align:top}
tr:hover td{background:#FBFBFC}

label{display:block;font-weight:600;font-size:14px;margin:12px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=url],input[type=search],select,textarea{
  width:100%;font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--ink);outline-offset:1px;border-color:var(--ink)}
textarea{min-height:90px}
.hint{font-size:13px;color:var(--muted);margin-top:4px}
.btn{display:inline-flex;align-items:center;gap:6px;font:600 15px "Source Sans 3",sans-serif;padding:9px 16px;border-radius:999px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--soft)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.btn.primary:hover{background:var(--accent-d);border-color:var(--accent-d)}
.btn.dark{background:var(--ink);color:#fff}
.btn.sm{padding:5px 11px;font-size:14px}
.btn.danger{color:var(--red);border-color:var(--red)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.pill{display:inline-block;font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--soft);color:var(--ink);text-transform:uppercase;letter-spacing:.3px}
.pill.red{background:#F6DEDB;color:var(--red-d)}.pill.green{background:#DDE8E2;color:var(--ok)}.pill.amber{background:#F8E8D2;color:var(--warn)}.pill.dark{background:var(--ink);color:#fff}.pill.blue{background:#E6EFFD;color:var(--blue)}
.flash{padding:12px 16px;border-radius:var(--r);margin-bottom:18px;font-weight:600;border:1px solid}
.flash.ok{background:#E3F4EC;border-color:#B7E1CC;color:#0B5E41}.flash.err{background:#FDE7E9;border-color:#F6B9BF;color:#9B0E19}
.eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0}
.eyebrow a{color:var(--muted)}
.trip-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.kpis{display:flex;gap:18px;color:var(--muted)}
.kpis b{color:var(--ink);font-family:"Montserrat";font-weight:800;font-size:20px;margin-right:2px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:22px;overflow-x:auto}
.tabs a{padding:10px 14px;font-weight:600;color:var(--muted);text-decoration:none;white-space:nowrap}
.tabs a.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}
.map{height:560px;border:1px solid var(--line);border-radius:var(--r);background:#ECE8DF}
.map.tall{height:calc(100vh - 210px);min-height:480px}
.split{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px}
@media(max-width:1000px){.split{grid-template-columns:1fr}}
.side{max-height:calc(100vh - 210px);overflow:auto}
.list-item{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;background:var(--card)}
.list-item.crit{border-color:var(--red);box-shadow:inset 4px 0 0 var(--red)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle}
.login-card{border:1px solid var(--line);border-radius:14px;padding:30px}
.login-card img{height:96px;margin:4px 0 22px}
.danger-zone{border-color:#F6B9BF}
.chip-row{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:13px;background:var(--card);cursor:pointer}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.poi-marker{width:26px;height:26px;border-radius:50%;background:var(--card);border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font:700 12px "Source Sans 3";box-shadow:0 1px 3px rgba(0,0,0,.25)}
.poi-marker.m{border-color:var(--warn)}
.poi-marker.s{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.car-marker{width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.35),0 1px 4px rgba(0,0,0,.35)}
.car-marker.crew{border-radius:4px}
.car-marker.stale{opacity:.45}
.leaflet-container{font-family:"Source Sans 3",sans-serif}
.empty{padding:30px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--r)}
details summary{cursor:pointer;font-weight:600}
.feed-msg{font-size:14px;border-bottom:1px solid var(--line);padding:6px 0}
.feed-msg b{font-weight:700}
.code-box{font-family:ui-monospace,Menlo,monospace;font-size:22px;letter-spacing:3px;background:var(--soft);padding:8px 14px;border-radius:8px;display:inline-block}
.seg{display:flex;background:var(--soft);border-radius:999px;padding:3px;gap:3px}
.seg button{flex:1;padding:7px 10px;border-radius:999px;font:700 14px "Source Sans 3",sans-serif;color:var(--muted);background:none;border:0;cursor:pointer}
.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
a:hover{color:var(--accent-ink)}
.brand img{height:30px}
