.software-keyboard{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:90%;background:#222;padding:10px;border-radius:10px;box-shadow:0 5px 10px rgba(0,0,0,.3);display:flex;flex-direction:column;align-items:center;z-index:1000}.software-keyboard,.software-keyboard *{user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.keyboard-row{display:flex;justify-content:center;margin-bottom:5px}.key{font-size:1.1rem;padding:.6rem 1.3rem;margin:5px;background:#444;color:#fff;border:none;border-radius:5px;cursor:pointer}.key:hover{background:#666}.space-key{width:50%}.close-keyboard{margin-top:10px;padding:5px 15px;background:red;color:#fff;border:none;cursor:pointer}.suggestions-row{display:flex;flex-wrap:wrap;justify-content:center;margin:1rem}.suggestions-row button{background:#f0c430;color:#000;border:none;padding:5px 10px;margin:5px;border-radius:5px;cursor:pointer}.travel-planner{display:flex;flex-direction:column;gap:1rem;height:100%;margin:2rem}.search-box{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin:2rem 0}.search-box input{padding:1rem;flex:1 1;border-radius:5px;border:1px solid #ccc}.search-box input:focus{outline:none;border-color:var(--primary-color)}.search-box button{padding:8px 12px;background:var(--primary-color);color:var(--primary-text-color);border-radius:5px;border:none;cursor:pointer}.travel-planner .trip-results{--trip-accent:#ffc800;--trip-muted:#d2c5ab;--trip-outline:#4f4632;display:flex;flex-direction:column;flex-shrink:0;gap:1rem;margin-top:20px;color:#e3e2e3;font-family:Plus Jakarta Sans,Arial,sans-serif}.trip-results .trip-card{padding:1.5rem;background:#1f2021;border:1px solid var(--trip-outline);border-radius:8px;min-width:0}.trip-results .trip-card-featured{border:2px solid var(--trip-accent)}.trip-results .trip-card-footer,.trip-results .trip-card-header,.trip-results .trip-overview,.trip-results .trip-route-badges{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}.trip-results .trip-card-header{margin-bottom:1rem}.trip-results .trip-departure-badge,.trip-results .trip-route-badge,.trip-results .trip-status,.trip-results .trip-transfer-count{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:4px;background:#343536;font-family:Space Grotesk,Arial,sans-serif;font-weight:600;font-size:.9375rem;line-height:1.4;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.trip-results .trip-departure-badge{font-size:1.125rem;font-weight:700;text-transform:uppercase}.trip-results .trip-card-featured .trip-departure-badge{background:var(--trip-accent);color:#3e2e00}.trip-results .trip-status-dot{width:10px;height:10px;border-radius:50%;background:#34d399;flex-shrink:0}.trip-results .trip-status-delayed{color:#ffdb95;background:#462b16;border:1px solid #ffdb954d}.trip-results .trip-status-delayed .trip-status-dot{background:#ffdb95}.trip-results .trip-duration,.trip-results .trip-route-arrow,.trip-results .trip-transfer-count{color:var(--trip-muted)}.trip-results .trip-overview{justify-content:space-between;gap:1rem;margin-bottom:1rem}.trip-results .trip-times{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:2rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.trip-results .trip-time-separator{color:var(--trip-muted);font-size:1.25rem}.trip-results .trip-duration{font-size:.9375rem;font-weight:500}.trip-results .trip-route-badge{background:#292a2b;border:1px solid var(--trip-outline);overflow-wrap:anywhere}.trip-results .trip-route-badge:not(.trip-route-walk){color:#3e2e00;background:var(--trip-accent);font-weight:700}.trip-results .trip-route-walk{color:var(--trip-muted);font-size:.875rem}.trip-results .trip-mode-icon{width:24px;height:24px;object-fit:contain;flex-shrink:0}.trip-results .trip-details{padding:1.25rem;margin-bottom:1rem;background:#1b1c1d;border:1px solid var(--trip-outline);border-radius:4px}.trip-results .trip-details h4{margin:0 0 1rem;font:700 .9375rem/1.5 Space Grotesk,Arial,sans-serif;letter-spacing:normal}.trip-results .trip-timeline{position:relative;display:flex;flex-direction:column;gap:1.25rem;padding-left:2rem;list-style:none}.trip-results .trip-timeline:before{content:"";position:absolute;left:10px;top:10px;bottom:10px;width:3px;background:var(--trip-accent)}.trip-results .trip-timeline li{margin:0;font-family:inherit}.trip-results .trip-stop{position:relative;display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.trip-results .trip-stop:before{content:"";position:absolute;left:-30px;top:4px;width:20px;height:20px;border:4px solid #1b1c1d;border-radius:50%;background:var(--trip-accent)}.trip-results .trip-stop strong{font-size:1.25rem;overflow-wrap:anywhere}.trip-results .trip-station-summary,.trip-results .trip-stop p{margin:0;color:var(--trip-muted);font:400 .875rem/1.5 Plus Jakarta Sans,Arial,sans-serif;overflow-wrap:anywhere}.trip-results .trip-stop time{font-family:Space Grotesk,Arial,sans-serif;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.trip-results .trip-segment{display:flex;align-items:center;gap:.5rem;color:var(--trip-muted);font-size:.875rem}.trip-results .trip-card-footer{justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--trip-outline)}.trip-results .trip-details-toggle{display:inline-flex;gap:.75rem;min-height:56px;min-width:56px;margin:0;padding:.75rem 1.25rem;border:1px solid var(--trip-outline);border-radius:4px;color:#e3e2e3;background:#292a2b;font:700 .9375rem/1.5 Space Grotesk,Arial,sans-serif}.trip-results .trip-details-toggle:hover{background:#343536}.trip-results .trip-details-toggle:focus-visible{outline:2px solid var(--trip-accent);outline-offset:3px}.trip-results .trip-details-toggle:active{transform:scale(.98)}@media (max-width:600px){.trip-results .trip-card{padding:1rem}.trip-results .trip-times{font-size:1.5rem}.trip-results .trip-details{padding:.75rem}.trip-results .trip-stop{flex-wrap:wrap;gap:.25rem}.trip-results .trip-details-toggle{width:100%}}.autocomplete-container{position:relative;width:100%}.autocomplete-list{position:absolute;top:100%;left:0;width:100%;background:#fff;border:1px solid #ccc;max-height:150px;overflow-y:auto;list-style:none;padding:0;margin:0;z-index:1000}.autocomplete-list li{padding:8px;cursor:pointer}.autocomplete-list li:hover{background:#ddd}