:root { --ink:#18202a; --muted:#667085; --primary:#176b87; --primary-dark:#10536a; --canvas:#f5f7f8; --line:#e5e9ec; }
html { font-size:15px; min-height:100%; }
body { min-height:100vh; background:var(--canvas); color:var(--ink); display:flex; flex-direction:column; }
main { flex:1; } .navbar { background:#fff; border-bottom:1px solid var(--line); min-height:68px; }
.navbar-brand { color:var(--ink); font-weight:750; letter-spacing:-.02em; margin-right:2rem; display:flex; align-items:center; gap:.7rem; }
.navbar-logo { width:auto; height:44px; object-fit:contain; }
.nav-link { color:#475467; } .nav-link:hover { color:var(--primary); }
.btn-primary { background:var(--primary); border-color:var(--primary); } .btn-primary:hover { background:var(--primary-dark); border-color:var(--primary-dark); }
.panel { border:1px solid var(--line); border-radius:14px; box-shadow:0 2px 8px rgba(16,24,40,.035); overflow:hidden; }
.page-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:2rem; }
.page-heading h1 { font-size:2rem; font-weight:750; letter-spacing:-.035em; margin:0 0 .35rem; } .page-heading p { color:var(--muted); margin:0; }
.table > :not(caption) > * > * { padding:.9rem 1rem; border-color:var(--line); }
.table thead th { color:var(--muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; background:#fafbfc; }
.empty-state { text-align:center; color:var(--muted); padding:3.5rem!important; }
.vehicle-list { border:1px solid var(--line); border-radius:10px; overflow:hidden; max-height:360px; overflow-y:auto; }
.vehicle-option { display:flex; justify-content:space-between; align-items:center; padding:.7rem .8rem; border-bottom:1px solid var(--line); background:#fff; }
.vehicle-option:last-child { border-bottom:0; } .order-btn { border:0; background:#eef2f4; color:#475467; width:30px; height:28px; margin-left:3px; border-radius:5px; }
.selected-count { color:var(--primary); font-size:.86rem; }
.vehicle-option.vehicle-disabled { background:#f2f4f5; color:#98a2b3; }
.vehicle-option.vehicle-disabled .order-btn { opacity:.45; pointer-events:none; }
.export-modal-content { border:0; border-radius:18px; box-shadow:0 24px 70px rgba(16,24,40,.22); }
.export-modal-content .spinner-border { width:2.75rem; height:2.75rem; }
.auth-shell { max-width:520px; margin:2.5rem auto; }
.auth-card { background:#fff; }
.auth-links { display:flex; flex-direction:column; gap:.65rem; margin-top:1.4rem; text-align:center; color:var(--muted); }
.auth-links a { color:var(--primary); text-decoration:none; font-weight:600; }
.account-nav { border-radius:12px; overflow:hidden; }
.order-btn:hover { background:#dfe7ea; } .stop-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:5px; }
.stop-a { background:#168aad; } .stop-b { background:#e07a5f; } .day-header { background:#f9fafb; border-bottom:1px solid var(--line); padding:.9rem 1.2rem; }
.schedule-table td { vertical-align:middle; } .sequence { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:7px; background:#eef6f8; color:var(--primary); font-weight:700; }
.back-link { color:var(--primary); text-decoration:none; font-size:.9rem; } .hero { padding:5rem 0; }
.hero h1 { font-size:clamp(2.7rem,5vw,4.8rem); line-height:1.02; letter-spacing:-.055em; font-weight:780; max-width:850px; }
.hero p { font-size:1.16rem; color:var(--muted); max-width:680px; line-height:1.7; margin-top:1.5rem; }
.eyebrow { color:var(--primary); font-size:.82rem; text-transform:uppercase; letter-spacing:.1em; font-weight:700; display:block; margin-bottom:1.2rem; }
.hero-card { background:#133847; color:#fff; border-radius:22px; padding:2rem; box-shadow:0 24px 60px rgba(17,58,73,.2); }
.route-line { display:flex; align-items:center; margin-bottom:2rem; } .route-line span { display:grid; place-items:center; width:44px; height:44px; background:#fff; color:#133847; border-radius:50%; font-weight:800; }
.route-line i { height:2px; flex:1; background:repeating-linear-gradient(90deg,#8ab5c4 0 8px,transparent 8px 14px); }
.metric { display:flex; align-items:baseline; justify-content:space-between; padding:1.1rem 0; border-top:1px solid rgba(255,255,255,.14); }
.metric strong { font-size:1.7rem; } .metric small { color:#b8cdd5; }
footer { padding:1.5rem 0; border-top:1px solid var(--line); color:var(--muted); background:#fff; font-size:.85rem; }
.validation-summary-valid { display:none; } @media (max-width:767px) { .page-heading { align-items:flex-start; flex-direction:column; } .hero { padding:2.5rem 0; } }
