*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:#f4f7fb;color:#101828}.loading{padding:40px}.login{max-width:650px;margin:7vh auto;background:white;padding:30px;border-radius:18px;box-shadow:0 15px 45px #0001;border:1px solid #d7deea}.login h1{font-size:34px;margin:0 0 8px}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}label{font-weight:700;font-size:13px;display:block;margin:10px 0 5px}input,select,textarea{width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:10px;background:white;font:inherit}textarea{min-height:70px}.btn,button{border:0;border-radius:10px;background:#2563eb;color:white;font-weight:800;padding:11px 16px;cursor:pointer;margin:4px}.btn.secondary,button.secondary{background:#e5e7eb;color:#111827}.btn.warn{background:#dc2626}.msg{padding:12px;border:1px solid #f3d199;background:#fff7ed;border-radius:10px;color:#7c2d12;margin:12px 0}.ok{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.app{display:flex;min-height:100vh}.side{width:260px;background:#0f172a;color:white;padding:20px;position:sticky;top:0;height:100vh;overflow:auto}.brand{font-size:24px;font-weight:900;margin:0 0 5px}.who{color:#a7b4cc;font-size:13px;margin-bottom:20px}.nav button{display:block;width:100%;text-align:left;background:transparent;color:#e5e7eb;padding:13px 14px;border-radius:10px;margin:5px 0}.nav button.active{background:#2563eb;color:white}.main{flex:1;padding:28px;overflow:auto}.card{background:white;border:1px solid #dbe3ef;border-radius:18px;padding:20px;margin:14px 0;box-shadow:0 12px 30px #0000000a}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;background:white}th,td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}th{font-size:12px;text-transform:uppercase;color:#475569}.pill{display:inline-block;padding:5px 9px;border-radius:999px;background:#e0ecff;color:#1d4ed8;font-weight:700;font-size:12px}.actions{display:flex;gap:5px;flex-wrap:wrap}.small{font-size:12px;color:#64748b}.stop{border:1px solid #dbe3ef;border-radius:12px;padding:12px;margin:8px 0}.suggestions{background:white;border:1px solid #cbd5e1;border-radius:12px;margin-top:4px;max-height:180px;overflow:auto}.suggestions div{padding:8px;cursor:pointer}.suggestions div:hover{background:#eff6ff}.driver-shell{max-width:720px;margin:0 auto;padding:15px}.driver-card{background:white;border-radius:20px;padding:18px;margin:12px 0;box-shadow:0 8px 24px #0001}.driver-actions button{width:100%;font-size:18px;margin:6px 0;padding:16px}.topline{display:flex;justify-content:space-between;gap:10px;align-items:center}.errorbox{white-space:pre-wrap;background:#fff7ed;border:1px solid #fdba74;color:#7c2d12;padding:12px;border-radius:10px}@media(max-width:800px){.app{display:block}.side{width:100%;height:auto;position:relative}.row,.row3{grid-template-columns:1fr}.main{padding:14px}}

.daygrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dayrow{display:grid;grid-template-columns:auto 55px 1fr;gap:8px;align-items:center;border:1px solid #dbe3ef;border-radius:10px;padding:8px;background:#f8fafc}.dayrow input[type=time]{padding:7px}.btn{display:inline-block;text-decoration:none}.mapbox{border:1px solid #dbe3ef;border-radius:14px;padding:10px;background:#f8fafc;overflow:auto}
@media(max-width:800px){.daygrid{grid-template-columns:1fr}}
.driver-stop{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #dbe4ef;border-radius:14px;padding:12px;margin:10px 0;background:#f8fafc}.driver-stop span{font-size:16px}.navbtn,.big-nav{background:#15803d;color:white;border:0;border-radius:12px;padding:12px 14px;font-weight:800}.big-nav{width:100%;font-size:18px;margin:6px 0 10px}.warn{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:12px;color:#9a3412}.driver-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-top:12px}.driver-actions button{padding:14px}.driver-card h3{margin-top:18px}

.inline{display:flex;gap:6px;align-items:center}.inline input{flex:1}.smallbtn{padding:9px 12px;margin:0}.checkline{display:flex;gap:8px;align-items:center;font-weight:700}.checkline input{width:auto}.ref-preview{font-size:12px;color:#475569;margin-top:4px}
