:root{font-family:Arial,Helvetica,sans-serif;color:#17202a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}header{background:#111827;color:white;padding:18px 28px;display:flex;justify-content:space-between;align-items:center}h1{margin:0;font-size:24px}.sub{opacity:.7;margin-top:4px}main{max-width:1320px;margin:22px auto;padding:0 18px}.banner,.error{padding:12px 16px;border-radius:8px;margin-bottom:14px}.banner{background:#fff3cd}.error{background:#f8d7da}.controls,.card{background:white;border:1px solid #dfe4ea;border-radius:10px;padding:16px;margin-bottom:18px}.controls{display:flex;justify-content:space-between;gap:18px;align-items:end}.controls form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.controls form>div label{margin-bottom:6px}label{display:block;font-weight:700}.check{display:flex;gap:7px;align-items:center;margin:0 8px 8px}.metrics{display:flex;gap:12px}.metrics span{background:#f4f6f8;padding:10px 12px;border-radius:8px;white-space:nowrap}input[type=date],input[type=text],input[type=password],.settings input{padding:10px;border:1px solid #cbd5e1;border-radius:7px;min-width:220px}.btn{border:0;border-radius:7px;background:#2563eb;color:#fff;padding:10px 15px;text-decoration:none;font-weight:700;cursor:pointer;display:inline-block}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.55;cursor:wait}.btn.secondary{background:#475569}.btn.light{background:#e2e8f0;color:#334155}.btn.optimize{background:#0f766e}.btn.big{padding:13px 20px}.btn.small{padding:8px 11px;font-size:12px}.tableWrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}th{font-size:12px;text-transform:uppercase;color:#64748b;white-space:nowrap}.addressCell{min-width:285px}.pill{padding:5px 9px;border-radius:99px;font-size:12px;font-weight:800;white-space:nowrap}.paid{background:#dcfce7;color:#166534}.unpaid{background:#fee2e2;color:#991b1b}.hold{background:#fef3c7;color:#92400e}.actions{padding-top:15px;text-align:right}.empty{text-align:center;color:#64748b;padding:30px}.hidden{display:none!important}.selectionBar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-bottom:12px;border-bottom:1px solid #e5e7eb}.selectionBar>div:first-child{display:flex;align-items:center;gap:12px}.selectionBar #selectionCount{font-size:13px;color:#64748b}.selectionButtons{display:flex;gap:8px}.routeHead{display:flex;justify-content:space-between;align-items:center;gap:20px}.routeHead h2{margin:0 0 4px}.routeHead p{margin:0;color:#64748b}.routeDashboard{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:15px 0}.routeStat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:12px}.routeStat span{display:block;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.06em}.routeStat strong{display:block;margin-top:5px;font-size:18px}.startBox{display:flex;gap:14px;align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:9px;padding:13px 15px;margin:12px 0}.startBox span{background:#111827;color:white;border-radius:99px;padding:5px 9px;font-size:11px;font-weight:800}.holdWarning{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:9px;padding:11px 13px;margin:10px 0;font-weight:700}.optimizerBar{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f0fdfa;border:1px solid #99f6e4;border-radius:9px;padding:12px 14px;margin:12px 0}.optimizerBar .check{margin:0}.optimizerButtons{display:flex;align-items:center;gap:10px}.optimizerStatus{font-size:12px;color:#475569;max-width:260px}.apiNotice{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 12px;font-size:13px;margin:10px 0}.apiNotice a{font-weight:800;color:#1d4ed8}.routeHint{font-size:13px;color:#64748b;margin:10px 0}.stop{display:flex;gap:14px;align-items:center;border:1px solid #dfe4ea;border-radius:9px;padding:14px;margin:10px 0;background:#fff}.stop.dragging{opacity:.45}.dragHandle{cursor:grab;font-weight:900;color:#94a3b8;letter-spacing:-2px}.stopNo{width:42px;height:42px;min-width:42px;border-radius:50%;display:grid;place-items:center;background:#111827;color:white;font-weight:800}.stopBody{flex:1;min-width:0}.stopBody h3{margin:0 0 5px}.routeAddress{font-weight:600}.invlines{margin-top:9px;color:#475569;max-width:560px}.invRow{display:flex;justify-content:space-between;gap:20px;padding:2px 0}.miniStatus{font-size:11px;font-weight:800}.paidText{color:#166534}.holdText{color:#92400e}.stopHold{font-size:10px;background:#fef3c7;color:#92400e;padding:3px 6px;border-radius:99px;vertical-align:middle;white-space:nowrap}.stopTotals{text-align:right;min-width:125px;color:#64748b;font-size:13px}.stopTotals strong{display:block;color:#17202a;font-size:15px;margin-top:4px}.mapsPanel{border-top:1px solid #e5e7eb;margin-top:18px;padding-top:15px}.mapsPanel h3{margin:0 0 4px}.mapsPanel p{margin:0 0 10px;color:#64748b;font-size:13px}.mapsParts{display:flex;gap:9px;flex-wrap:wrap}.mapsPartBtn{background:#2563eb}.muted{color:#64748b;font-size:13px}.settings{max-width:700px;margin:auto}.settings h2{margin:4px 0 8px}.settings hr{border:0;border-top:1px solid #e5e7eb;margin:24px 0}.settings label:not(.check){margin-top:16px;margin-bottom:6px}.settings input:not([type=checkbox]){width:100%}.settingsCheck{margin:18px 0 0}.hint{color:#64748b;font-size:13px;margin-bottom:6px}.apiHelp{margin-top:8px;padding:9px 11px;background:#f8fafc;border-radius:7px;color:#475569;font-size:12px}
@media(max-width:900px){.routeDashboard{grid-template-columns:repeat(2,1fr)}.optimizerBar{align-items:flex-start;flex-direction:column}.optimizerButtons{width:100%;flex-wrap:wrap}}
@media(max-width:800px){.controls{display:block}.metrics{margin-top:14px;flex-wrap:wrap}.selectionBar{align-items:flex-start;flex-direction:column}.routeHead{align-items:flex-start;flex-direction:column}.stop{align-items:flex-start}.stopTotals{display:none}table{font-size:13px}.addressCell{min-width:230px}.routeDashboard{grid-template-columns:repeat(2,1fr)}}
@media print{header,.controls,.card:not(#routeCard),.routeHead button,.routeHint,.dragHandle,.mapsPanel,.optimizerBar,.apiNotice{display:none!important}body{background:#fff}main{max-width:none;margin:0;padding:0}#routeCard{display:block!important;border:0}.stop{break-inside:avoid}.startBox{border:1px solid #999;background:#fff}.routeDashboard{grid-template-columns:repeat(5,1fr)}}

.unresolvedBadge{font-size:10px;background:#fee2e2;color:#991b1b;padding:3px 6px;border-radius:99px;vertical-align:middle;white-space:nowrap}.fixAddressArea{margin-top:8px}.fixAddressBtn{background:#b45309}.stop:has(.unresolvedBadge){border-color:#fca5a5;background:#fffafa}
.headerActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.loginBody{min-height:100vh;display:grid;place-items:center;background:#eef1f5}.loginCard{width:min(420px,92vw);background:#fff;border-radius:14px;padding:32px;box-shadow:0 12px 40px #0002}.loginCard input{width:100%;box-sizing:border-box;margin:6px 0 16px}.driverStops{display:grid;gap:14px}.driverStop{display:grid;grid-template-columns:56px 1fr;gap:14px;border:1px solid #d9dee7;border-radius:12px;padding:16px;background:#fff}.driverControls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.driverControls textarea{grid-column:1/-1;min-height:70px}.driverControls .saveStop{width:max-content}.saveMsg{align-self:center;font-weight:700}.muted{color:#6b7280;font-size:.9em}@media(max-width:700px){.driverControls{grid-template-columns:1fr}.driverControls textarea{grid-column:auto}.headerActions{width:100%}header{align-items:flex-start;flex-direction:column}}

/* Hosted V1.4.1 production candidate */
.outarea{background:#ede9fe;color:#5b21b6;margin-left:6px}.outAreaRow{background:#faf5ff}.outAreaBadge{font-size:10px;background:#ede9fe;color:#5b21b6;padding:3px 6px;border-radius:99px;vertical-align:middle;white-space:nowrap}.areaWarning{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:9px;padding:11px 13px;margin:10px 0;font-weight:700}.returnHomeBox{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46;border-radius:9px;padding:10px 13px;margin:10px 0;font-weight:700}.driverStopUnresolved{border-color:#fca5a5;background:#fffafa}.navigateBtn{font-size:16px;text-align:center}.returnCheck{font-size:15px}.driverSummary{grid-template-columns:repeat(5,1fr)}
@media(max-width:700px){main{padding:0 10px;margin-top:12px}.driverSummary{grid-template-columns:repeat(2,1fr)}.driverStop{grid-template-columns:44px 1fr;padding:12px;gap:10px}.driverStop .stopNo{width:38px;height:38px;min-width:38px}.driverStop h3{font-size:18px}.routeAddress{font-size:16px;line-height:1.35}.driverControls{gap:12px}.driverControls .btn,.driverControls select{min-height:48px;font-size:16px;width:100%}.driverControls textarea{font-size:16px;min-height:84px}.driverControls .saveStop{width:100%;min-height:48px}.returnCheck{padding:8px 0}.returnCheck input{width:22px;height:22px}header h1{font-size:20px}}

/* Hosted V1.5 Driver Operations */
.routeControl{border-left:5px solid #2563eb}.routeControlTop{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.routeControlGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.routeControlGrid .wide{grid-column:1/-1}.routeControlGrid input{width:100%;min-width:0}.routeControlButtons{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:14px}.routeState{display:inline-block;padding:5px 9px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:11px;font-weight:900}.routeState.out-for-delivery{background:#dbeafe;color:#1d4ed8}.routeState.completed{background:#dcfce7;color:#166534}.routeState.returned---review{background:#fef3c7;color:#92400e}.routeTimes{margin-top:6px}.nextStopCard{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#eff6ff;border:2px solid #60a5fa;border-radius:12px;padding:16px;margin:14px 0}.nextStopCard strong{display:block;font-size:20px;margin:4px 0}.nextLabel{font-size:10px;font-weight:900;color:#1d4ed8;letter-spacing:.08em}.driverSummary{grid-template-columns:repeat(7,1fr)}.fieldCompact label{font-size:12px;color:#64748b;margin-bottom:5px}.fieldCompact input,.failureReason{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:7px}.pickupGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.status-delivered{border-left:5px solid #22c55e}.status-failed,.status-skipped{border-left:5px solid #ef4444;background:#fffafa}.status-en-route,.status-arrived{border-left:5px solid #3b82f6}.opsStats{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;margin:15px 0}.opsRoutes{display:grid;gap:14px}.opsRoute{background:#fff;border:1px solid #dfe4ea;border-radius:12px;padding:16px}.opsRouteHead{display:flex;justify-content:space-between;gap:14px;align-items:center}.opsRouteHead h2{margin:7px 0 4px}.opsActions{display:flex;gap:8px;flex-wrap:wrap}.opsProgress{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:14px}.opsProgress>div{background:#f8fafc;border-radius:8px;padding:10px}.opsProgress b,.opsProgress span{display:block}.opsProgress span{font-size:11px;color:#64748b;margin-top:3px}.reconStats{grid-template-columns:repeat(8,1fr)}.reconAlert{background:#fef2f2;border-color:#fecaca}.reconAlert strong{color:#b91c1c}
@media(max-width:1000px){.driverSummary,.opsStats,.reconStats{grid-template-columns:repeat(4,1fr)}.opsProgress{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.routeControlTop,.opsRouteHead,.nextStopCard{align-items:stretch;flex-direction:column}.routeControlGrid{grid-template-columns:1fr}.routeControlGrid .wide{grid-column:auto}.driverSummary,.opsStats,.reconStats{grid-template-columns:repeat(2,1fr)}.opsProgress{grid-template-columns:repeat(2,1fr)}.pickupGrid{grid-template-columns:1fr 1fr}.nextStopCard .btn{width:100%;text-align:center}.routeControlButtons .btn{width:100%}}
