:root{--bg:#f4f6fb;--card:#fff;--ink:#1d2433;--muted:#6b7385;--line:#e3e7f0;--pri:#0b5cad;--pri2:#0a4a8c;
--ok:#1f8a4c;--warn:#b56a00;--err:#c0392b;--mine:#0b5cad;--res:#e8f1fc;--radius:12px}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px}
a{color:var(--pri);text-decoration:none}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 20px;background:#0d2747;color:#fff}
.topbar a{color:#dfe8f5}.brand{display:flex;align-items:center;gap:8px;font-weight:700;color:#fff!important;font-size:17px}
.brand small{font-weight:400;opacity:.7;margin-left:4px}.logo{font-size:22px}
nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap}nav a:hover{color:#fff}
.demo-banner{background:#fff4d6;color:#7a5200;text-align:center;font-size:13px;padding:6px 10px;border-bottom:1px solid #f1dfa6}
.container{max-width:1200px;margin:0 auto;padding:20px}
.footer{text-align:center;color:var(--muted);font-size:12px;padding:24px}
h1{font-size:24px;margin:0 0 6px}h2{font-size:17px;margin:22px 0 10px}
.muted{color:var(--muted)}.small{font-size:13px}.nowrap{white-space:nowrap}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.narrow{max-width:480px;margin:10px auto}
label{display:block;font-size:13px;font-weight:600;color:#3a4357;margin:12px 0 0}
input,select{display:block;width:100%;margin-top:5px;padding:10px 12px;border:1px solid #cfd6e4;border-radius:9px;font:inherit;background:#fff}
input:focus,select:focus{outline:2px solid #9cc3ee;border-color:var(--pri)}
fieldset{border:1px solid var(--line);border-radius:10px;margin:14px 0 0;padding:6px 12px 12px}legend{font-size:13px;font-weight:600;color:#3a4357;padding:0 4px}
.radio{display:inline-flex;align-items:center;gap:6px;font-weight:500;margin-right:14px}.radio input{width:auto;display:inline;margin:0}
.horas{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn{display:inline-block;background:var(--pri);color:#fff!important;border:0;border-radius:9px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer}
.btn:hover{background:var(--pri2)}.btn-block{width:100%;margin-top:18px;padding:12px}
.btn-sm{padding:6px 12px;font-size:13px}.btn-ghost{background:#fff;color:var(--ink)!important;border:1px solid #cfd6e4}.btn-ghost:hover{background:#f0f3f9}
.btn-danger{background:#fff;color:var(--err)!important;border:1px solid #efc2bc}.btn-danger:hover{background:#fdf0ee}
button.link{background:none;border:0;color:#dfe8f5;font:inherit;cursor:pointer;padding:0}
.inline{display:inline}
.flash{padding:12px 14px;border-radius:10px;margin-bottom:14px;font-weight:500}
.flash-ok{background:#e6f6ec;color:#155d34;border:1px solid #bfe5cc}.flash-erro{background:#fdecea;color:#8e2a1f;border:1px solid #f4c3bd}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.toolbar input{width:auto;margin:0;padding:8px}
.seg{display:inline-flex;border:1px solid #cfd6e4;border-radius:9px;overflow:hidden}.seg a{padding:9px 12px;color:var(--ink);background:#fff}.seg a.on{background:var(--pri);color:#fff}
.vehicles{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:14px}
.vchip{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px}.vchip.off{background:#fafafa;opacity:.85}
.note{font-size:12px;color:var(--muted);margin-top:6px}
.plate{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;background:#eef1f7;border-radius:5px;padding:1px 6px;color:#3a4357}
.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#eef1f7;color:#3a4357;margin-left:4px}
.badge-ok{background:#e6f6ec;color:var(--ok)}.badge-warn{background:#fff1dc;color:var(--warn)}.badge-info{background:#e8f1fc;color:var(--pri)}
.grid-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
table.grid{width:100%;border-collapse:collapse;min-width:820px;table-layout:fixed}
.grid th,.grid td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:top;padding:8px}
.grid thead th{background:#f8fafd;font-size:13px;text-align:left}.grid thead th span{color:var(--muted);font-weight:400}
.grid .vcol{width:150px;text-align:left;background:#f8fafd;font-size:13px}
.grid td{height:96px;position:relative;padding-bottom:38px}.grid .today{background:#fbfdff}.grid thead th.today{color:var(--pri)}
.grid .row-off td{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 8px,#f3f3f3 8px,#f3f3f3 16px)}
.res{background:var(--res);border-left:3px solid #7aa7d9;border-radius:7px;padding:5px 7px;margin-bottom:5px;font-size:12px}
.res.mine{background:var(--mine);color:#fff;border-left-color:#06325f}.res.mine .res-dest{color:#dbe8f7}
.res.fullday{border-left-width:6px}.res-time{font-weight:700}.res-dest{color:#4b5568}
.rod{font-size:10px;color:var(--warn);background:#fff7ea;border-radius:5px;padding:2px 5px;display:inline-block;margin-bottom:4px}
.add{position:absolute;right:6px;bottom:6px;width:26px;height:26px;border-radius:50%;background:#eef4fc;color:var(--pri);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px}
.add:hover{background:var(--pri);color:#fff}
.list{display:flex;flex-direction:column;gap:8px}
.item{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;flex-wrap:wrap}
.item.cancelled{opacity:.6}.item-title{font-weight:700}.item-actions{display:flex;gap:6px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:12px 0 16px;overflow-x:auto}
.tabs a{padding:10px 14px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tabs a.on{color:var(--pri);border-bottom-color:var(--pri);font-weight:600}
.filters,.row-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:12px}
.filters input,.row-form input{width:auto}.row-form label{margin:0}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.table th{background:#f8fafd;font-size:13px}.actions form{margin:2px 0}.actions input{display:inline;width:auto;padding:5px 8px;margin:0 4px 0 0}
code{font-size:12px;background:#eef1f7;padding:1px 5px;border-radius:4px}
@media (max-width:720px){
  .container{padding:12px}.topbar{padding:10px 12px}nav{gap:10px;font-size:14px}
  table.grid{min-width:0}.grid thead{display:none}.grid,.grid tbody,.grid tr,.grid th,.grid td{display:block;width:100%}
  .grid tr{border-bottom:6px solid var(--bg)}.grid .vcol{width:100%;font-size:15px}
  .grid td{height:auto;min-height:44px;border-right:0}.grid td::before{content:attr(data-label);display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
}
.temp-pass code{font-size:22px;padding:8px 14px;letter-spacing:1px;user-select:all}
