*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f5f5f5;color:#333}.container{max-width:600px;margin:0 auto;padding:1.25rem}header{text-align:center;margin-bottom:1.875rem}h1{font-size:2rem;color:#2c3e50;margin-bottom:.5rem}.subtitle{color:#7f8c8d;font-size:1rem}.loading{text-align:center;padding:2.5rem;color:#7f8c8d}.safety-note{font-size:.75rem;color:#95a5a6;margin-top:.25rem}.legal-footer{margin-top:2.5rem;padding-top:1rem;border-top:1px solid #e0e0e0;text-align:center;font-size:.75rem;color:#95a5a6}.legal-footer a{color:#95a5a6;text-decoration:none}.legal-footer a:hover{text-decoration:underline}.footer-separator{margin:0 .5rem}button{background:#3498db;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.375rem;font-size:1rem;cursor:pointer;width:100%;margin-top:1.25rem;transition:background-color .2s}button:hover{background:#2980b9}button:disabled{opacity:.6;cursor:not-allowed}.retry-button{background-color:#c00;padding:.5rem 1rem;font-size:.875rem;white-space:nowrap}.retry-button:hover{background-color:#a00}.use-location-button{width:calc(100% - 2.5rem);margin:0 1.25rem 1rem;padding:.75rem;background-color:#06c;color:#fff;border:none;border-radius:.5rem;font-size:.9rem;cursor:pointer;transition:background-color .2s}.use-location-button:hover{background-color:#0052a3}.station-selector-trigger{width:100%;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin-bottom:1rem;background-color:#fff;border:2px solid #ddd;border-radius:.5rem;cursor:pointer;font-size:1rem;transition:all .2s;color:#333}.station-selector-trigger:hover{border-color:#06c;background-color:#f8f9fa;color:#333}.station-selector-trigger .station-icon{font-size:1.25rem}.station-selector-trigger .station-name{flex:1;text-align:left;font-weight:500}.station-selector-trigger .dropdown-icon{color:#666;font-size:.75rem}.station-distance{font-size:.875rem;color:#666;font-weight:400}.station-manual{font-size:.875rem;color:#06c;font-weight:400}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:500px;max-height:80vh;background-color:#fff;border-radius:.75rem;box-shadow:0 10px 40px #0000004d;z-index:1001;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,-40%)}to{opacity:1;transform:translate(-50%,-50%)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem;border-bottom:1px solid #eee}.modal-header h3{margin:0;font-size:1.25rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:background-color .2s}.modal-close:hover{background-color:#f0f0f0}.station-search{width:calc(100% - 2.5rem);margin:1rem 1.25rem;padding:.75rem;border:2px solid #ddd;border-radius:.5rem;font-size:1rem;transition:border-color .2s}.station-search:focus{outline:none;border-color:#06c}.station-list{flex:1;overflow-y:auto;padding:0 1.25rem 1.25rem}.station-item{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem;margin-bottom:.5rem;background-color:#f8f9fa;border:2px solid transparent;border-radius:.5rem;cursor:pointer;text-align:left;font-size:1rem;transition:all .2s;color:#333}.station-item:hover{background-color:#e9ecef;border-color:#06c}.station-item.selected{background-color:#e6f2ff;border-color:#06c;color:#06c}.station-item-name{font-weight:500;color:inherit}.station-item-meta{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:#666}.station-item-distance{color:#888}.station-item-check{color:#06c;font-weight:700;font-size:1.25rem}.station-info{background:#fff;padding:1rem;border-radius:.5rem;margin-bottom:1.25rem;box-shadow:0 2px 4px #0000001a}.last-updated{font-size:.875rem;color:#666;margin-top:.5rem;font-style:italic}.refreshing{color:#06c;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.departures-list{display:flex;flex-direction:column;gap:.75rem;position:relative}.departure-card{background:#fff;padding:1rem;border-radius:.5rem;border-left:.75rem solid;box-shadow:0 2px 4px #0000001a}.departure-card.blue{border-left-color:#3498db}.departure-card.green{border-left-color:#2ecc71}.departure-card.yellow{border-left-color:#f39c12}.departure-card.red{border-left-color:#e74c3c}.departure-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.destination-name{font-weight:600;font-size:1.125rem}.minutes-text{font-size:1.5rem;font-weight:700}.urgency-label{font-size:.875rem;font-weight:500}.urgency-label.blue{color:#3498db}.urgency-label.green{color:#2ecc71}.urgency-label.yellow{color:#f39c12}.urgency-label.red{color:#e74c3c}.next-trains{margin-top:.5rem;padding-top:.5rem;border-top:1px solid #ecf0f1;font-size:.8125rem;color:#7f8c8d}.separator{margin:0 .5rem;color:#bdc3c7}.no-departures{text-align:center;padding:2rem;color:#666;font-style:italic}.unreachable-warning{display:flex;gap:1rem;padding:1.5rem;margin:1rem 0;background-color:#fff3cd;border:2px solid #ffc107;border-radius:.75rem;box-shadow:0 2px 8px #0000001a}.warning-icon{font-size:2rem;flex-shrink:0}.warning-content{flex:1}.warning-content h3{margin:0 0 .5rem;color:#856404;font-size:1.125rem}.warning-content p{margin:.5rem 0;color:#856404;line-height:1.5}.warning-suggestion{margin-top:1rem;font-weight:500}.warning-suggestions{margin:.5rem 0 0 1.5rem;padding:0;color:#856404}.warning-suggestions li{margin:.25rem 0;line-height:1.4}.unreachable-warning~.departures-list{opacity:.8}.unreachable-warning~.departures-list .departure-card{filter:saturate(.6)}.info-banner{background-color:#e6f2ff;border:1px solid #99ccff;border-radius:.5rem;padding:1rem;margin:1rem 0;font-size:.875rem;line-height:1.5}.info-banner.warning{background-color:#fff3cd;border-color:#ffc107}.info-banner.success{background-color:#d4edda;border-color:#28a745}.info-banner small{display:block;margin-top:.25rem;opacity:.8}.error-banner{background-color:#fee;border:1px solid #fcc;border-radius:.5rem;padding:1rem;margin:1rem 0;display:flex;flex-direction:column;gap:.75rem;align-items:stretch}.error-banner span{color:#c00;line-height:1.5;word-break:break-word}.info-banner.compact{padding:.75rem;font-size:.8125rem;margin:.5rem 0}@media(min-width:480px){.error-banner{flex-direction:row;justify-content:space-between;align-items:center}.error-banner span{flex:1}.retry-button{flex-shrink:0}}.ios-install-banner{position:relative;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 12px #00000026}.ios-install-close{position:absolute;top:.75rem;right:.75rem;background:#fff3;color:#fff;border:none;width:2rem;height:2rem;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s;padding:0;margin:0}.ios-install-close:hover{background:#ffffff4d}.ios-install-icon{font-size:2.5rem;text-align:center;margin-bottom:.75rem}.ios-install-content h3{margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.ios-install-content p{margin:.5rem 0;font-size:.9375rem;line-height:1.5;opacity:.95}.ios-install-content ol{margin:1rem 0;padding-left:1.5rem;font-size:.9375rem;line-height:1.6}.ios-install-content li{margin:.5rem 0}.ios-install-content strong{font-weight:600}.more-icon,.share-icon{display:inline-block;font-size:1.125rem;vertical-align:middle;font-weight:700}.ios-install-benefits{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2);font-size:.875rem;line-height:1.8}.ios-install-benefits div{margin:.25rem 0}.agency-tabs{display:flex;gap:0;margin-bottom:1rem;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.agency-tab{flex:1;padding:12px 16px;border:none;background:#f5f5f5;color:#666;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;border-bottom:3px solid transparent}.agency-tab:hover{background:#e8e8e8}.agency-tab.active{background:#fff;color:#333;border-bottom:3px solid #0066cc}.agency-tab:first-child{border-right:1px solid #ddd}
