body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{display:flex;flex-direction:column;min-height:100vh}.app-header{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3);box-shadow:0 2px 10px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:1rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.app-header h1{font-size:1rem;font-weight:700;margin:0}.header-last-updated{align-items:center;display:flex;font-size:.8rem;gap:.5rem;opacity:.9}.last-updated-text{white-space:nowrap}.last-updated{color:#666;font-size:.9rem;gap:.5rem;opacity:.7;padding:1rem}.last-updated,.refresh-btn{align-items:center;display:flex;justify-content:center}.refresh-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:20px;color:#fff;cursor:pointer;font-size:.75rem;gap:.3rem;padding:.4rem .8rem;transition:all .2s ease;white-space:nowrap}.refresh-btn:hover{background:#ffffff4d;transform:scale(1.05)}.refresh-btn:active{transform:rotate(180deg);transition:transform .3s ease}.app-main{flex:1 1;margin:0 auto;max-width:600px;padding:1rem;width:100%}.station-info{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:1rem 0;padding:1rem;text-align:center}.station-info h2{color:#333;font-size:1.3rem;font-weight:600}.train-schedules{margin-top:1rem}.direction-tabs{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:.5rem;margin-bottom:1rem;padding:.25rem}.direction-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;display:flex;flex:1 1;font-size:.9rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;position:relative;transition:all .2s ease}.direction-tab:hover{background:#f8f9fa;color:#333}.direction-tab.active{background:linear-gradient(135deg,#007bff,#0056b3);box-shadow:0 2px 8px #007bff4d;color:#fff}.direction-tab.active:hover{background:linear-gradient(135deg,#0056b3,#004085);color:#fff}.direction-indicator{font-size:1.1rem}.welcome-message{color:#666;padding:3rem 1rem;text-align:center}.welcome-message p{font-size:1.1rem;line-height:1.6}.error-message{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;display:flex;justify-content:space-between;margin-bottom:1rem;padding:1rem}.dismiss-btn{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;transition:background-color .2s ease}.dismiss-btn:hover{background:#c82333}.loading-message{color:#666;font-style:italic;padding:2rem;text-align:center}.loading-message:after{animation:loading 1.5s infinite;content:""}@keyframes loading{0%,33%{content:""}34%,66%{content:"."}67%,99%{content:".."}to{content:"..."}}.refresh-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.app-header{flex-direction:column;gap:.5rem;padding:.875rem}.app-header h1{font-size:1.3rem}.header-last-updated{font-size:.75rem}.refresh-btn{font-size:.7rem;padding:.3rem .6rem}.app-main{padding:.75rem}.station-info{margin:.75rem 0;padding:.875rem}.station-info h2{font-size:1.2rem}.last-updated,.refresh-btn{font-size:.8rem}.refresh-btn{height:1.75rem}.direction-tabs{gap:.25rem;padding:.2rem}.direction-tab{font-size:.85rem;padding:.6rem .8rem}.direction-indicator{font-size:1rem}}@media (max-width:480px){.app-main{padding:.5rem}.app-header{flex-direction:column;gap:.4rem;padding:.75rem}.app-header h1{font-size:1.2rem}.header-last-updated{font-size:.7rem}.refresh-btn{font-size:.65rem;padding:.25rem .5rem}.direction-tabs{gap:.2rem;padding:.15rem}.direction-tab{font-size:.8rem;padding:.5rem .6rem}.direction-indicator{font-size:.9rem}}.station-selector{background:#f8f9fa;border-radius:8px;padding:.5rem}.station-selector h2{color:#333;font-size:1.2rem;margin:0 0 .5rem}.station-selector select{margin:0 0 1rem}.recent-stations{margin-bottom:.5rem}.recent-stations h3{color:#666;font-size:1rem;font-weight:500;margin:0 0 .5rem}.recent-station-buttons{display:flex;flex-wrap:nowrap;gap:.5rem;width:100%}.recent-station-btn{background:#e9ecef;border:1px solid #dee2e6;border-radius:4px;border-radius:24px;color:#495057;cursor:pointer;flex:1 1;font-size:.9rem;min-width:0;padding:.5rem .75rem;transition:all .2s ease;white-space:nowrap}.recent-station-btn:hover{background:#dee2e6;border-color:#adb5bd;transform:translateY(-1px)}.recent-station-btn.active{background:#007bff;border-color:#007bff;color:#fff}.recent-station-btn.active:hover{background:#0056b3;border-color:#0056b3}.station-select{background:#fff;border:2px solid #ddd;border-radius:6px;color:#333;cursor:pointer;font-size:1rem;padding:.75rem;width:100%}.station-select:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff40;outline:none}@media (max-width:768px){.station-select{font-size:1.1rem;padding:.5rem}.recent-station-buttons{gap:.375rem}.recent-station-btn{font-size:.85rem;padding:.625rem .5rem}}.train-list{margin-bottom:1.5rem}.train-list-title{align-items:center;background:linear-gradient(135deg,#007bff,#0056b3);border-radius:8px;color:#fff;display:flex;font-size:1.1rem;font-weight:600;justify-content:space-between;margin:0 0 1rem;padding:.75rem 1rem}.train-list-north .train-list-title,.train-list-south .train-list-title{background:linear-gradient(135deg,#767676,#b1b1b1)}.direction-indicator{font-size:1.3rem;font-weight:700}.no-trains{color:#666;font-style:italic;padding:2rem;text-align:center}.train-items{display:flex;flex-direction:column;gap:.75rem}.train-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1rem;transition:transform .2s ease,box-shadow .2s ease}.train-item:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.train-info-row{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:1fr 2fr 1fr 1fr}.time-section{align-items:center;display:flex;flex-direction:column;gap:.25rem}.departure-time{color:#333;font-size:1.8rem;font-weight:700}.train-type-section{display:flex;justify-content:center}.train-type{border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;min-width:3.5rem;padding:.25rem .5rem;text-align:center}.train-type-express{background:#dc3545}.train-type-fast{background:#fd7e14}.train-type-local-fast{background:#20c997}.train-type-local{background:#6c757d}.train-type-default{background:#007bff}.train-number-section{display:flex;justify-content:center}.train-number{color:#333;font-size:1rem;font-weight:700}.destination-section{display:flex;justify-content:flex-start}.destination{color:#333;font-size:.9rem;font-weight:500}.remarks-section{display:flex;justify-content:center}.train-delay{color:#e74242}.on-time{border-radius:8px;color:#178b17;font-weight:600}.on-time,.platform{font-size:.7rem;padding:.2rem .4rem}.platform{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#666}.no-remarks{color:#ccc;font-size:.8rem}@media (max-width:768px){.train-list-title{font-size:1rem;padding:.625rem .875rem}.train-item{padding:.875rem}.train-info-row{font-size:.85rem;gap:.3rem;grid-template-columns:1fr 2fr 1fr 1fr}.time-section{align-items:center;flex-direction:column;gap:.2rem}.arrival-time{font-size:.9rem}.departure-time{font-size:1.8rem}.train-type{font-size:.7rem;min-width:2.5rem;padding:.3rem}.train-number{font-size:.8rem}.destination{font-size:.75rem}.on-time,.platform,.train-delay{display:block}}
/*# sourceMappingURL=main.bd2e52fa.css.map*/