:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;background:#12151a;min-height:100vh;font-family:Segoe UI,SL Gothic,Arial,sans-serif}.app{flex-direction:column;min-height:100vh;display:flex}.header{background:linear-gradient(135deg,#2870f0 0%,#0a47c2 100%);padding:1.5rem 2rem;box-shadow:0 4px 20px #0000004d}.header-content{justify-content:space-between;align-items:center;gap:2rem;max-width:1200px;margin:0 auto;display:flex}.sl-logo{color:#0a47c2;letter-spacing:-1px;background:#fff;border-radius:8px;padding:.5rem 1rem;font-size:2rem;font-weight:900}.station-info h1{letter-spacing:-.5px;font-size:2rem;font-weight:600}.station-info .subtitle{opacity:.9;margin-top:.25rem;font-size:1rem}.clock{text-align:right}.clock .time{font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:300}.clock .date{opacity:.9;text-transform:capitalize;font-size:.9rem}.main-content{flex-direction:column;flex:1;gap:1.5rem;width:100%;max-width:1200px;margin:0 auto;padding:2rem;display:flex}.transport-section{background:#20252c;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #0003}.section-header{background:#20252c;border-bottom:1px solid #ffffff1a;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.transport-icon{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.2rem;font-weight:700;display:flex}.section-title{flex:1;font-size:1.1rem;font-weight:600}.walking-time{color:#8a8e93;background:#ffffff0d;border-radius:4px;padding:.25rem .75rem;font-size:.8rem}.departures-list{flex-direction:column;display:flex}.departure-row{border-bottom:1px solid #ffffff0d;grid-template-columns:70px 1fr auto auto auto;align-items:center;gap:1rem;padding:1rem 1.5rem;transition:background .2s;display:grid}.departure-row:last-child{border-bottom:none}.departure-row:hover{background:#ffffff08}.departure-row.departing-soon{background:#cc417f1a}.departure-row.leave-soon{background:#fb9e531a}.departure-row.leave-now{background:#ce333326;border-left:3px solid #ce3333}.departure-row.too-late{opacity:.5;background:#73777d1a}.line-info{align-items:center;display:flex}.line-badge{color:#fff;border-radius:6px;justify-content:center;align-items:center;min-width:50px;height:32px;padding:0 .75rem;font-size:1.1rem;font-weight:700;display:flex}.line-number{font-variant-numeric:tabular-nums}.destination-info{flex-direction:column;gap:.2rem;display:flex}.destination{font-size:1.1rem;font-weight:500}.via{color:#8a8e93;font-size:.85rem}.leave-time{background:#1d9f641a;border-radius:6px;flex-direction:column;align-items:center;min-width:70px;padding:.5rem 1rem;display:flex}.leave-label{text-transform:uppercase;letter-spacing:.5px;color:#1d9f64;font-size:.7rem}.leave-value{color:#1d9f64;font-size:1.1rem;font-weight:600}.leave-value.soon{color:#fb9e53}.leave-value.urgent{color:#f05555}.leave-value.too-late{color:#73777d;font-size:.9rem}.track{background:#ffffff0d;border-radius:6px;flex-direction:column;align-items:center;padding:.5rem 1rem;display:flex}.track-label{text-transform:uppercase;letter-spacing:.5px;color:#8a8e93;font-size:.7rem}.track-number{font-size:1.2rem;font-weight:600}.time-info{flex-direction:column;align-items:flex-end;min-width:80px;display:flex}.minutes{color:#1d9f64;font-size:1.4rem;font-weight:600}.minutes.blink{color:#d07432;animation:1s ease-in-out infinite blink}.actual-time{color:#8a8e93;font-variant-numeric:tabular-nums;font-size:.85rem}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}.footer{color:#8a8e93;background:#20252c;justify-content:space-between;align-items:center;padding:1rem 2rem;font-size:.85rem;display:flex}.live-indicator{color:#1d9f64;align-items:center;gap:.5rem;font-weight:500;display:flex}.live-dot{background:#1d9f64;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.loading{color:#8a8e93;flex-direction:column;justify-content:center;align-items:center;padding:4rem;display:flex}.loading-spinner{border:4px solid #ffffff1a;border-top-color:#0a47c2;border-radius:50%;width:48px;height:48px;margin-bottom:1rem;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error{text-align:center;color:#f05555;background:#ce33331a;border:1px solid #ce33334d;border-radius:12px;padding:2rem}.error button{color:#fff;cursor:pointer;background:#f05555;border:none;border-radius:8px;margin-top:1rem;padding:.75rem 1.5rem;font-weight:500}.error button:hover{background:#ce3333}.no-departures{text-align:center;color:#8a8e93;padding:4rem}@media (width<=768px){.header{padding:1rem}.header-content{text-align:center;flex-direction:column;gap:1rem}.clock{text-align:center}.clock .time{font-size:2rem}.station-info h1{font-size:1.5rem}.main-content{padding:1rem}.departure-row{grid-template-columns:50px 1fr auto auto;gap:.5rem;padding:.75rem 1rem}.track{display:none}.leave-time{min-width:55px;padding:.4rem .6rem}.leave-value{font-size:.95rem}.line-badge{min-width:44px;height:28px;font-size:1rem}.destination{font-size:1rem}.minutes{font-size:1.2rem}.footer{text-align:center;flex-direction:column;gap:.5rem;padding:1rem}}@media (width<=480px){.header{padding:.75rem}.sl-logo{padding:.4rem .8rem;font-size:1.5rem}.station-info h1{font-size:1.25rem}.station-info .subtitle{font-size:.85rem}.clock .time{font-size:1.75rem}.clock .date{font-size:.8rem}.main-content{gap:1rem;padding:.5rem}.section-header{gap:.75rem;padding:.75rem 1rem}.transport-icon{width:28px;height:28px;font-size:1rem}.section-title{font-size:.95rem}.walking-time{padding:.2rem .5rem;font-size:.7rem}.departure-row{grid-template-columns:42px 1fr auto auto;gap:.4rem;padding:.6rem .75rem}.line-badge{min-width:38px;height:26px;padding:0 .5rem;font-size:.9rem}.destination{font-size:.9rem}.via{font-size:.75rem}.leave-time{min-width:48px;padding:.3rem .4rem}.leave-label{font-size:.6rem}.leave-value{font-size:.85rem}.time-info{min-width:60px}.minutes{font-size:1rem}.actual-time{font-size:.75rem}.footer{padding:.75rem;font-size:.75rem}}@media (width<=360px){.departure-row{grid-template-columns:38px 1fr auto;gap:.3rem;padding:.5rem}.leave-time{display:none}.time-info{min-width:50px}.line-badge{border-radius:4px;min-width:34px;height:24px;font-size:.85rem}.destination{font-size:.85rem}.station-info h1{font-size:1.1rem}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#20252c}::-webkit-scrollbar-thumb{background:#8a8e93;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0a47c2}.header-right{align-items:center;gap:1rem;display:flex}.settings-button{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #fff3;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;transition:background .2s;display:flex}.settings-button:hover{background:#ffffff40}.configurator-overlay{z-index:100;background:#0009;justify-content:flex-end;display:flex;position:fixed;inset:0}.configurator-panel{background:#20252c;flex-direction:column;width:420px;max-width:100vw;height:100%;animation:.2s slide-in;display:flex;box-shadow:-4px 0 24px #0006}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.configurator-header{background:#20252c;flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;font-size:1rem;font-weight:600;display:flex}.configurator-close{color:#8a8e93;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1.1rem}.configurator-close:hover{color:#fff;background:#ffffff1a}.configurator-body{flex-direction:column;flex:1;gap:1.25rem;padding:1rem;display:flex;overflow-y:auto}.configurator-section{flex-direction:column;gap:.5rem;display:flex}.configurator-label{text-transform:uppercase;letter-spacing:.5px;color:#8a8e93;margin-bottom:.25rem;font-size:.75rem}.configurator-section-header{justify-content:space-between;align-items:center;display:flex}.configurator-clear-all{color:#8a8e93;cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem}.configurator-clear-all:hover{color:#ce3333}.configurator-empty{color:#8a8e93;padding:.5rem 0;font-size:.9rem}.configurator-card{cursor:default;background:#20252c;border:1px solid #ffffff14;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:start;gap:.75rem;padding:.75rem;display:grid}.configurator-card.dragging{opacity:.4}.configurator-drag-handle{cursor:grab;color:#8a8e93;-webkit-user-select:none;user-select:none;padding-top:2px;font-size:1.2rem}.configurator-card-fields{flex-direction:column;gap:.5rem;display:flex}.configurator-card-name{font-size:.95rem;font-weight:600}.configurator-card-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.configurator-select{color:#fff;cursor:pointer;background:#000;border:1px solid #ffffff26;border-radius:6px;padding:.3rem .5rem;font-size:.85rem}.configurator-walk-input{color:#fff;text-align:center;background:#000;border:1px solid #ffffff26;border-radius:6px;width:56px;padding:.3rem .5rem;font-size:.85rem}.configurator-walk-label{color:#8a8e93;font-size:.8rem}.configurator-direction{flex-direction:column;gap:.4rem;display:flex}.configurator-direction-toggle{color:#8a8e93;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.configurator-direction-toggle input[type=checkbox]{accent-color:#2870f0;cursor:pointer}.configurator-direction-tags{flex-wrap:wrap;align-items:flex-start;gap:.35rem;display:flex}.configurator-tag{color:#7ab4ff;background:#000;border:1px solid #2870f066;border-radius:12px;align-items:center;gap:.25rem;padding:.15rem .5rem .15rem .6rem;font-size:.8rem;display:inline-flex}.configurator-tag-remove{color:#7ab4ff;cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:.85rem;line-height:1}.configurator-tag-remove:hover{opacity:1;color:#ce3333}.configurator-direction-search-wrap{width:100%;min-width:0;position:relative}.configurator-direction-search{color:#fff;background:#000;border:1px solid #ffffff26;border-radius:6px;width:100%;padding:.3rem .5rem;font-size:.85rem}.configurator-direction-search::placeholder{color:#8a8e93}.configurator-direction-search:disabled{opacity:.5;cursor:not-allowed}.configurator-direction-dropdown{z-index:10;background:#000;border:1px solid #ffffff1f;border-radius:8px;max-height:180px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.configurator-direction-group+.configurator-direction-group{border-top:1px solid #ffffff14}.configurator-direction-group-label{text-transform:uppercase;letter-spacing:.04em;color:#8a8e93;padding:.35rem .75rem .2rem;font-size:.7rem}.configurator-remove{color:#8a8e93;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:1rem;line-height:1}.configurator-remove:hover{color:#ce3333}.configurator-search{color:#fff;background:#000;border:1px solid #ffffff26;border-radius:8px;width:100%;padding:.6rem .75rem;font-size:.9rem}.configurator-search::placeholder{color:#8a8e93}.configurator-results{background:#000;border:1px solid #ffffff1f;border-radius:8px;overflow:hidden}.configurator-result-item{color:#fff;text-align:left;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;width:100%;padding:.6rem .75rem;font-size:.9rem;display:flex}.configurator-result-item:last-child{border-bottom:none}.configurator-result-item:hover:not(.configurator-result-status){background:#ffffff0f}.configurator-result-status{color:#8a8e93;cursor:default;font-size:.85rem}.configurator-result-error{color:#f05555}.configurator-result-id{color:#8a8e93;font-variant-numeric:tabular-nums;font-size:.78rem}.configurator-url-preview{color:#afdff9;word-break:break-all;background:#000;border:1px solid #ffffff1f;border-radius:8px;padding:.75rem;font-family:monospace;font-size:.75rem}.configurator-actions{gap:.5rem;display:flex}.configurator-btn{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;flex:1;padding:.6rem;font-size:.9rem;transition:background .2s}.configurator-btn:hover{background:#ffffff26}.configurator-btn-apply{background:#0a47c266;border-color:#0a47c299}.configurator-btn-apply:hover{background:#0a47c299}
