:root{--bg:#f4f6fb;--panel:#fff;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--accent:#2563eb;--shadow:0 14px 30px #0f172a14}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-weight:700}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:10px}textarea{resize:vertical;min-height:80px}.login-page{background:linear-gradient(135deg,#0f172a,#1d4ed8);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{width:100%;max-width:420px;box-shadow:var(--shadow);background:#fff;border-radius:22px;gap:12px;padding:28px;display:grid}.login-card h1{margin:0;font-size:34px}.login-card p{color:var(--muted);margin:0 0 14px}.login-card small{color:var(--muted)}.error{color:#991b1b;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;padding:10px}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;background:#0f172a;flex-direction:column;gap:22px;width:260px;padding:22px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#0f172a;background:#fff;border-radius:16px;place-items:center;width:54px;height:54px;font-weight:900;display:grid}.brand h1{margin:0;font-size:22px}.brand p{color:#cbd5e1;margin:3px 0 0;font-size:13px}.sidebar nav{gap:8px;display:grid}.sidebar a{color:#cbd5e1;border-radius:12px;padding:12px;text-decoration:none}.sidebar a.active,.sidebar a:hover{color:#fff;background:#ffffff1f}.logout{background:#334155;margin-top:auto}.main{flex:1;padding:24px;overflow-x:auto}.topbar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;padding:18px 22px;display:flex}.topbar h2{margin:0}.topbar p{color:var(--muted);margin:4px 0 0}.user-pill{color:#3730a3;white-space:nowrap;background:#eef2ff;border-radius:999px;padding:10px 14px;font-weight:700}.cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:20px;display:grid}.card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:18px}.card span{color:var(--muted);margin-bottom:8px;display:block}.card strong{font-size:34px}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;margin-bottom:20px;padding:20px}.panel h3{margin-top:0}.panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-head input{max-width:190px}.grid-two{grid-template-columns:minmax(300px,430px) 1fr;gap:20px;display:grid}.form-grid{gap:10px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px}th{color:var(--muted);font-size:13px}.badge{text-transform:capitalize;background:#e5e7eb;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800;display:inline-block}.badge-pending{color:#92400e;background:#fef3c7}.badge-assigned,.badge-enroute,.badge-arrived,.badge-onboard{color:#1e40af;background:#dbeafe}.badge-completed{color:#166534;background:#dcfce7}.badge-canceled,.badge-no_show{color:#991b1b;background:#fee2e2}.driver-list,.trip-cards{gap:12px;display:grid}.driver-card,.trip-card{border:1px solid var(--line);background:#f8fafc;border-radius:16px;gap:6px;padding:14px;display:grid}.trip-card-head{justify-content:space-between;gap:12px;display:flex}.check-row{align-items:center;gap:8px;display:flex}.check-row input{width:auto}@media (width<=900px){.app-shell{flex-direction:column}.sidebar{width:100%}.grid-two{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}}.muted{color:var(--muted);margin:4px 0}.notice{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:12px;margin:12px 0;padding:10px 12px;font-weight:700}.compact-cards .card{padding:14px}.compact-cards .card strong{font-size:28px}.dispatch-list{gap:14px;margin-top:16px;display:grid}.dispatch-card{border:1px solid var(--line);background:#f8fafc;border-radius:18px;grid-template-columns:1fr 320px;gap:18px;padding:16px;display:grid}.dispatch-main{gap:16px;display:flex}.time-block{border:1px solid var(--line);text-align:center;background:#fff;border-radius:16px;min-width:86px;height:fit-content;padding:12px}.time-block strong{font-size:22px;display:block}.time-block span{color:var(--muted);font-size:12px}.trip-info{flex:1}.trip-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.trip-title-row h4{margin:0;font-size:22px}.trip-info p{margin:7px 0}.meta-row{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.meta-row span{border:1px solid var(--line);color:#374151;background:#fff;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:700}.notes{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px}.dispatch-actions{align-content:start;gap:10px;display:grid}.assigned-driver{color:#374151;font-size:14px}.quick-buttons{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.quick-btn{padding:9px;font-size:13px}.quick-btn.completed{background:#16a34a}.quick-btn.canceled,.quick-btn.no_show{background:#dc2626}.utility-buttons{gap:8px;display:flex}.secondary-btn{background:#475569}.danger-btn{background:#dc2626}.empty-state{text-align:center;color:var(--muted);background:#fff;border:1px dashed #cbd5e1;border-radius:18px;padding:24px}.modal-backdrop{z-index:50;background:#0f172a94;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:22px;width:min(900px,100%);max-height:92vh;padding:22px;overflow:auto;box-shadow:0 24px 80px #00000059}.modal-head,.modal-actions{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.two-col{grid-template-columns:repeat(2,1fr)}.span-two{grid-column:span 2}.driver-panel-head{align-items:flex-start}.driver-controls{grid-template-columns:180px 260px;gap:10px;display:grid}.driver-trip-cards{margin-top:16px}.driver-trip-card{background:#fff;border-radius:20px;padding:18px}.driver-address-box{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:12px}.driver-address-box p{margin:3px 0}.driver-big-button{border-radius:16px;width:100%;padding:16px;font-size:18px}.mileage-row{gap:8px;display:grid}.completed-box{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:14px;flex-wrap:wrap;gap:10px;padding:12px;font-weight:800;display:flex}.completed-box span{background:#fff;border-radius:999px;padding:4px 8px}@media (width<=1050px){.dispatch-card{grid-template-columns:1fr}.dispatch-actions{max-width:none}}@media (width<=700px){.dispatch-main{flex-direction:column}.time-block{width:100%}.quick-buttons,.two-col{grid-template-columns:1fr}.span-two{grid-column:span 1}.driver-controls{grid-template-columns:1fr;width:100%}.modal-head,.modal-actions{flex-direction:column;align-items:stretch}}.customer-list{gap:12px;display:grid}.customer-card{border:1px solid var(--line);background:#f8fafc;border-radius:16px;grid-template-columns:1fr auto;align-items:start;gap:12px;padding:14px;display:grid}.customer-card p{color:#374151;margin:5px 0}@media (width<=700px){.customer-card{grid-template-columns:1fr}}.form-divider{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;margin-top:8px;padding-top:12px;font-size:13px;font-weight:800}.manifest-controls{align-items:center;gap:10px;display:flex}.manifest-controls input{width:180px}.manifest-print-area{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;padding:24px}.manifest-header{border-bottom:3px solid #111827;justify-content:space-between;gap:20px;margin-bottom:16px;padding-bottom:16px;display:flex}.manifest-header h1{margin:0;font-size:28px}.manifest-header h2{color:var(--muted);margin:5px 0 0;font-size:18px}.manifest-date-box{text-align:center;border:2px solid #111827;border-radius:14px;min-width:170px;height:fit-content;padding:12px 18px}.manifest-date-box span{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.manifest-date-box strong{font-size:20px}.manifest-summary{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;display:grid}.manifest-summary div{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:12px}.manifest-summary span{color:var(--muted);font-size:13px;display:block}.manifest-summary strong{margin-top:4px;font-size:26px;display:block}.manifest-table-wrap{overflow-x:auto}.manifest-table{border-collapse:collapse;width:100%;font-size:14px}.manifest-table th{color:#fff;background:#111827;border:1px solid #111827;padding:9px}.manifest-table td{vertical-align:top;border:1px solid #d1d5db;padding:9px}.manifest-time strong,.manifest-time small{display:block}.manifest-time small{color:var(--muted);margin-top:3px}.manifest-status-text{text-transform:capitalize;display:none}.manifest-footer{grid-template-columns:1fr 300px;gap:22px;margin-top:22px;display:grid}.manifest-lines{background:repeating-linear-gradient(#fff,#fff 27px,#e5e7eb 28px);border:1px solid #d1d5db;height:110px;margin-top:8px}.manifest-checks{border:1px solid #d1d5db;gap:8px;margin-top:8px;padding:12px;display:grid}@media (width<=900px){.manifest-header,.manifest-footer{flex-direction:column;grid-template-columns:1fr}.manifest-summary{grid-template-columns:repeat(2,1fr)}.manifest-controls{flex-direction:column;align-items:stretch;width:100%}.manifest-controls input{width:100%}}@media print{body{background:#fff!important}.no-print,.sidebar,.topbar{display:none!important}.app-shell{display:block!important}.main{padding:0!important;overflow:visible!important}.manifest-print-area{box-shadow:none!important;border:none!important;border-radius:0!important;padding:0!important}.manifest-header{border-bottom:2px solid #000!important}.manifest-header h1{font-size:22px!important}.manifest-header h2{font-size:15px!important}.manifest-summary{grid-template-columns:repeat(4,1fr)!important;gap:6px!important}.manifest-summary div{background:#fff!important;border:1px solid #000!important;padding:6px!important}.manifest-summary span{color:#000!important;font-size:10px!important}.manifest-summary strong{font-size:18px!important}.manifest-table{font-size:10px!important}.manifest-table th{color:#000!important;background:#eee!important;border:1px solid #000!important;padding:5px!important}.manifest-table td{border:1px solid #000!important;padding:5px!important}.manifest-status-text{display:inline!important}.manifest-footer{page-break-inside:avoid;grid-template-columns:1fr 260px!important}.manifest-lines{height:80px!important}@page{margin:.35in}}
