:root{color:#16243a;background:#f6f8fb;font-family:system-ui,sans-serif}body{min-width:320px;margin:0}.app-shell{box-sizing:border-box;max-width:640px;min-height:100dvh;margin:auto;padding:24px 18px}h1{color:#0f395e;font-size:1.55rem}footer{color:#637289;text-align:center;font-size:.78rem;position:fixed;bottom:12px;left:0;right:0}header{justify-content:space-between;align-items:center;gap:12px;display:flex}h2{margin-bottom:8px;font-size:1.05rem}section{margin-top:18px}.route-card,.candidate-card,.settings,.search-card{background:#fff;border:1px solid #d9e1eb;border-radius:14px;gap:10px;padding:16px;display:grid;box-shadow:0 2px 8px #163b5c0d}.route-card span{color:#627189;font-size:.88rem}button{color:#fff;background:#0f5fa8;border:0;border-radius:9px;padding:11px 14px;font-weight:700}button:disabled{opacity:.5}.text-button,.swap-button{color:#0f5fa8;background:0 0}.cars,.pager{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cars button{color:#15375a;background:#e9f0f8}.cars button.selected{color:#fff;background:#0a766b}label{gap:5px;font-size:.9rem;display:grid}input,select{font:inherit;border:1px solid #c8d4e3;border-radius:8px;padding:10px}.route-result{border-top:1px solid #e4eaf1;padding-top:10px}.route-result p{margin:5px 0}.data-management{gap:10px;display:grid}.file-input{color:#fff;text-align:center;cursor:pointer;background:#0f5fa8;border-radius:9px;padding:11px 14px;font-weight:700}.file-input input{display:none}[role=status]{color:#0a766b;margin:0;font-size:.9rem}
