:root{--primary:#3f51b5;--primary-dark:#303f9f;--secondary:#f50057;--bg:#fafafa;--surface:#fff;--text:rgba(0,0,0,.87);--text-secondary:rgba(0,0,0,.6);--border:rgba(0,0,0,.23);--shadow-sm:0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.08);--shadow-md:0 3px 6px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.08);--radius:4px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Roboto,Arial,sans-serif;font-size:1rem;line-height:1.5}.container{flex-direction:column;align-items:center;max-width:860px;margin:0 auto;padding:24px 16px;display:flex}h1{color:var(--primary);letter-spacing:-.5px;margin:8px 0 16px;font-size:2.5rem;font-weight:300}h2{margin-bottom:16px;font-size:1.75rem;font-weight:400}h3.routes-header{margin:16px 0 8px;font-size:1.1rem;font-weight:500}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);width:100%;margin:8px 0;padding:24px}.card-outlined{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:6px 0;padding:12px 16px}.form-fields{flex-wrap:wrap;align-items:flex-end;gap:12px;width:100%;margin-bottom:16px;display:flex}.form-field{flex-direction:column;flex:180px;gap:4px;min-width:160px;display:flex}.form-field label{color:var(--primary);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:500}.form-field select,.form-field input{border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:0 0;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:1rem;transition:border-color .2s}.form-field select:focus,.form-field input:focus{border-color:var(--primary);border-width:2px;padding:8px 11px}.station-fields{flex-direction:row;align-items:flex-end;gap:12px;width:100%;margin-bottom:16px;display:flex}.station-fields .form-field{flex:1;min-width:0}.btn-swap{border:2px solid var(--primary);width:36px;height:36px;color:var(--primary);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:1.1rem;transition:background .2s,color .2s;display:flex}.btn-swap:hover{background:var(--primary);color:#fff}@media (width<=519px){.station-fields{flex-direction:column;align-items:stretch}.btn-swap{align-self:center}}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;letter-spacing:.03em;box-shadow:var(--shadow-sm);border:none;margin:4px 0 12px;padding:10px 24px;font-family:inherit;font-size:.875rem;font-weight:500;transition:background .2s,box-shadow .2s}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:var(--shadow-md)}.btn-primary:disabled{color:rgba(0,0,0,.26);box-shadow:none;cursor:default;background:rgba(0,0,0,.12)}.routes-header{text-align:center}.route-list{list-style:none}.route-list li{text-align:center;border-bottom:1px solid rgba(0,0,0,.07);padding:8px 4px;font-size:.95rem}.route-list li:last-child{border-bottom:none}.route-part{cursor:pointer;-webkit-user-select:none;user-select:none}.route-part:hover{background:rgba(63,81,181,.05)}.route-part-header{justify-content:space-between;align-items:center;display:flex}.route-part-label{text-align:center;flex:1}.route-part-meta{flex-shrink:0;align-items:center;gap:6px;margin-left:12px;display:flex}.route-part-train{color:var(--text-secondary);font-size:.78rem}.chevron{color:var(--text-secondary);font-size:.65rem;transition:transform .2s;display:inline-block}.chevron.expanded{transform:rotate(180deg)}.stops-panel{border-radius:var(--radius);border-left:3px solid var(--primary);background:rgba(63,81,181,.04);margin-top:6px;padding:6px 8px}.stops-list{list-style:none}.stop-item{border-bottom:1px solid rgba(0,0,0,.05);justify-content:space-between;align-items:center;padding:3px 4px;font-size:.85rem;display:flex}.stop-item:last-child{border-bottom:none}.stop-item--endpoint{font-weight:600}.stop-name{color:var(--text)}.stop-time{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.82rem}.error-text{color:var(--secondary);margin:8px 0;font-size:.9rem}.muted-text{color:var(--text-secondary);margin:8px 0}.loading-text{color:var(--text-secondary);margin:12px 0;font-style:italic}