
:root{--bg:#f3f4f6;--card:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--yellow:#facc15;--blue:#2563eb;--red:#dc2626}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}
.top{background:#111827;color:#fff;padding:14px 22px;display:flex;justify-content:space-between;align-items:center;gap:15px;position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:12px}.brand strong,.brand small{display:block}.logo{background:var(--yellow);color:#111827;font-weight:900;border-radius:14px;padding:14px}
.user a{color:#fde047;margin-left:12px}.nav{display:flex;gap:6px;overflow:auto;background:#fff;padding:10px 18px;border-bottom:1px solid var(--line);position:sticky;top:72px;z-index:9}
.nav a{white-space:nowrap;text-decoration:none;color:#374151;padding:10px 13px;border-radius:10px}.nav a:hover{background:#fef3c7;color:#111827}
.container{max-width:1500px;margin:auto;padding:22px}.page-title h1{margin:0 0 18px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 30px rgba(15,23,42,.04)}
.kpi small{color:var(--muted)}.kpi strong{display:block;font-size:30px;margin-top:7px}
.section{margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:780px}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;background:#e5e7eb;font-size:12px;font-weight:800}.badge.online,.badge.finalizada,.badge.ativo{background:#dcfce7;color:#166534}.badge.offline,.badge.cancelada,.badge.inativo{background:#fee2e2;color:#991b1b}.badge.nova,.badge.procurando,.badge.aguardando{background:#fef3c7;color:#92400e}.badge.em_andamento,.badge.aceita{background:#dbeafe;color:#1d4ed8}
.btn{display:inline-block;border:0;border-radius:12px;padding:11px 15px;font-weight:800;text-decoration:none;cursor:pointer}.btn.yellow{background:var(--yellow);color:#111827}.btn.blue{background:var(--blue);color:#fff}.btn.dark{background:#111827;color:#fff}.btn.red{background:var(--red);color:#fff}
.actions{display:flex;gap:8px;flex-wrap:wrap}.notice{padding:15px;border-radius:14px;margin-bottom:16px}.notice.info{background:#dbeafe;color:#1e40af}.notice.ok{background:#dcfce7;color:#166534}.notice.error{background:#fee2e2;color:#991b1b}.notice.warning{background:#fef3c7;color:#92400e}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(460px,100%);background:#fff;border-radius:24px;padding:28px;border:1px solid var(--line)}
.field{margin-bottom:14px}.field label{display:block;font-weight:800;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:13px;border:1px solid #d1d5db;border-radius:12px;font:inherit}.field textarea{min-height:100px}
.ops{display:grid;grid-template-columns:2fr 1fr;gap:16px}.list-item{padding:13px 0;border-bottom:1px solid var(--line)}.list-item:last-child{border-bottom:0}
.code{font-family:monospace;background:#111827;color:#e5e7eb;padding:12px;border-radius:12px;overflow:auto}
footer{text-align:center;color:var(--muted);padding:25px}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}.ops{grid-template-columns:1fr}}
@media(max-width:600px){.grid{grid-template-columns:1fr}.top{padding:12px}.container{padding:14px}.nav{top:68px}}

.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.form-grid .full{grid-column:1/-1}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.detail-box{background:#f9fafb;border:1px solid var(--line);border-radius:14px;padding:14px}
.detail-box small{display:block;color:var(--muted);margin-bottom:5px}
.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.search-box{display:flex;gap:8px;flex-wrap:wrap}.search-box input{min-width:240px;padding:11px;border:1px solid #d1d5db;border-radius:11px}
.avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#fef3c7;font-weight:900}
.status-switch{display:flex;align-items:center;gap:10px}
@media(max-width:700px){.form-grid,.detail-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}

.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.summary-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.summary-strip .card strong{font-size:24px;display:block;margin-top:6px}
.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:3px;background:#e5e7eb}
.timeline-item{position:relative;padding:0 0 18px 12px}.timeline-item:before{content:"";position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:50%;background:#2563eb;border:3px solid #fff;box-shadow:0 0 0 2px #2563eb}
@media(max-width:900px){.filter-grid,.summary-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.filter-grid,.summary-strip{grid-template-columns:1fr}}

.ops-board{display:grid;grid-template-columns:1.7fr 1fr;gap:16px}
.ops-map{min-height:380px;background:linear-gradient(135deg,#eef2ff,#f8fafc);border:1px dashed #cbd5e1;border-radius:18px;display:grid;place-items:center;text-align:center;padding:20px}
.driver-row,.dispatch-row{display:grid;grid-template-columns:1fr 120px 120px auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.driver-row:last-child,.dispatch-row:last-child{border-bottom:0}
.security-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.security-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}
.security-card strong{font-size:28px;display:block;margin-top:6px}
.role-badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#ede9fe;color:#5b21b6;font-size:12px;font-weight:800}
@media(max-width:950px){.ops-board{grid-template-columns:1fr}.security-grid{grid-template-columns:repeat(2,1fr)}.driver-row,.dispatch-row{grid-template-columns:1fr 100px}}
@media(max-width:560px){.security-grid,.driver-row,.dispatch-row{grid-template-columns:1fr}}
