:root{--navy:#0e2747;--navy-2:#14345c;--amber:#e6b24b;--amber-deep:#c7932f;--cream:#faf7f2;--line:#e2e8f0;--ink:#1e293b;--muted:#64748b;--ok:#10b981;--warn:#f59e0b;--danger:#ef4444;--safe-top:env(safe-area-inset-top);--safe-bot:env(safe-area-inset-bottom)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{overscroll-behavior-y:contain;height:100%}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;line-height:1.45}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input{font:inherit}.boot{background:var(--navy);height:100%}.login-screen{background:linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%);min-height:100%;padding:calc(var(--safe-top) + 32px) 24px calc(var(--safe-bot) + 32px);color:#fff;justify-content:center;align-items:center;display:flex}.login-card{text-align:center;width:100%;max-width:360px}.login-card .brand{background:var(--amber);width:80px;height:80px;color:var(--navy);border-radius:22px;justify-content:center;align-items:center;margin:0 auto 24px;font-family:Lexend,sans-serif;font-size:36px;font-weight:800;display:flex;box-shadow:0 10px 30px #00000040}.login-card h1{margin-bottom:6px;font-family:Lexend,sans-serif;font-size:28px;font-weight:700}.login-card .muted{color:#ffffffb3;margin-bottom:24px}.login-card form{flex-direction:column;gap:12px;display:flex}.login-card input{color:#fff;background:#ffffff14;border:1px solid #ffffff26;border-radius:14px;width:100%;padding:16px 18px;font-size:16px}.login-card input::placeholder{color:#ffffff8c}.login-card input:focus{outline:2px solid var(--amber)}.login-card button[type=submit]{background:var(--amber);color:var(--navy);border-radius:14px;margin-top:8px;padding:16px;font-family:Lexend,sans-serif;font-size:16px;font-weight:700}.login-card button[type=submit]:disabled{opacity:.6}.login-card .error{color:#fecaca;background:#ef444426;border:1px solid #ef444466;border-radius:12px;margin-bottom:16px;padding:12px;font-size:14px}.app{min-height:100%;padding-bottom:calc(72px + var(--safe-bot))}.topbar{z-index:20;background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%);color:#fff;padding:calc(var(--safe-top) + 14px) 18px 14px;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar .hello{font-family:Lexend,sans-serif;font-size:20px;font-weight:700}.topbar .sub{opacity:.7;margin-top:2px;font-size:12.5px}.icon-btn{color:#fff;background:#ffffff1a;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.hero-stats{grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 16px 0;display:grid}.stat{border:1px solid var(--line);text-align:center;background:#fff;border-radius:14px;padding:14px 8px}.stat .n{font-family:Lexend,sans-serif;font-size:26px;font-weight:800;line-height:1}.stat .l{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:11px;font-weight:600}.stat.tone-danger .n{color:var(--danger)}.stat.tone-warn .n{color:var(--warn)}.stat.tone-navy .n{color:var(--navy)}.stat.tone-ink .n{color:var(--ink)}.search-row{padding:14px 16px 0}.search-row input{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;padding:12px 16px;font-size:15px}.seg{gap:4px;padding:12px 16px 0;display:flex}.seg-btn{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:10px;flex:1;padding:10px 6px;font-size:13px;font-weight:600}.seg-btn.on{background:var(--navy);color:#fff;border-color:var(--navy)}.list{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.empty{text-align:center;color:var(--muted);padding:60px 20px}.empty .big{margin-bottom:12px;font-size:48px}.muted{color:var(--muted)}.card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:16px;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;width:100%;padding:14px;transition:transform .1s;display:grid;position:relative}.card:active{transform:scale(.99)}.card.urg-urgent{border-left:4px solid var(--danger);padding-left:10px}.card.urg-soon{border-left:4px solid var(--warn);padding-left:10px}.date-block{background:var(--navy);color:#fff;text-align:center;border-radius:12px;padding:8px 4px;font-family:Lexend,sans-serif}.date-block .d-num{font-size:22px;font-weight:800;line-height:1}.date-block .d-num.small{padding:8px 0;font-size:14px}.date-block .d-mon{text-transform:uppercase;opacity:.75;margin-top:2px;font-size:11px}.date-block .d-time{background:var(--amber);color:var(--navy);border-radius:4px;margin-top:4px;padding:1px 0;font-size:11px;font-weight:700}.body{min-width:0}.body .name{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;font-family:Lexend,sans-serif;font-size:15px;font-weight:700;overflow:hidden}.body .route{color:var(--muted);white-space:nowrap;align-items:center;gap:4px;margin:2px 0 6px;font-size:13px;display:flex;overflow:hidden}.body .route .from,.body .route .to{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.body .route .arrow{color:var(--amber-deep);flex:none}.body .meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:11.5px;display:flex}.status-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;align-self:flex-start;padding:4px 10px;font-size:10.5px;font-weight:700}.status-pill.done{color:#166534;background:#dcfce7}.status-pill.accepted{color:#1e40af;background:#dbeafe}.status-pill.pending{color:#92400e;background:#fef3c7}.bottom-nav{border-top:1px solid var(--line);padding:8px 0 calc(8px + var(--safe-bot));z-index:30;background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 12px #0000000a}.nav-btn{color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px;display:flex}.nav-btn .nav-i{font-size:20px}.nav-btn .nav-l{font-size:11px;font-weight:600}.nav-btn.active{color:var(--navy)}.sheet-back{z-index:50;background:#0b1e3780;align-items:flex-end;animation:.18s fadein;display:flex;position:fixed;inset:0}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes slideup{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet{width:100%;max-height:92vh;padding-bottom:var(--safe-bot);background:#fff;border-radius:20px 20px 0 0;flex-direction:column;animation:.22s slideup;display:flex}.sheet-handle{background:var(--line);border-radius:999px;width:40px;height:4px;margin:8px auto 4px}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:8px 20px 12px;display:flex}.sheet-ref{color:var(--navy);font-family:Lexend,sans-serif;font-size:18px;font-weight:700}.sheet-status{color:var(--muted);margin-top:2px;font-size:13px}.x{background:var(--cream);border-radius:10px;width:36px;height:36px;font-size:16px}.sheet-body{-webkit-overflow-scrolling:touch;flex:1;padding:8px 20px;overflow-y:auto}.row{border-bottom:1px solid #f1f5f9;grid-template-columns:110px 1fr;gap:10px;padding:12px 0;font-size:14.5px;display:grid}.row:last-child{border-bottom:none}.row .k{color:var(--muted);font-weight:600}.row .v{color:var(--ink);word-break:break-word}.sheet-actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px 16px;display:grid}.sheet-actions .btn{text-align:center;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:14px;font-size:15px;font-weight:700;text-decoration:none;display:flex}.sheet-actions .btn.outline{background:var(--cream);color:var(--navy);border:1px solid var(--line)}.sheet-actions .btn.primary{background:var(--amber);color:var(--navy)}.sheet-actions .btn.danger{color:#991b1b;background:#fee2e2}.sheet-actions .btn:disabled{opacity:.5}.sheet-body .error{color:#991b1b;background:#fee2e2;border-radius:10px;margin:12px 0;padding:10px 12px;font-size:14px}@media (width>=600px){.sheet{border-radius:20px;max-width:480px;margin:0 auto 24px}.sheet-back{align-items:center;padding:24px}}
