:root{--bg: #121214;--panel: #1a1a1d;--panel-alt: #232326;--border: #303034;--text: #eeeeee;--muted: #94949b;--accent: #c2410c;--accent-warm: #eab308;--danger: #e5484d;--radius: 10px;--radius-lg: 14px;--panel-hover: #2a2a2e;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 6px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 44px rgba(0, 0, 0, .5);--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;accent-color:var(--accent)}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,select{font-family:inherit;background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.5rem .7rem;transition:border-color .15s ease,box-shadow .15s ease}input:hover,select:hover{border-color:#ffffff47}input:focus-visible,select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #c2410c33}.apply-button,.button-link,.request-station-button,.account-auth button[type=submit],.admin-login button,.account-password-form button,.form-actions button[type=submit],.admin-stations-header button,.consent-accept{box-shadow:var(--shadow-sm);transition:transform .15s var(--ease),box-shadow .2s ease,filter .15s ease}.apply-button:hover:not(:disabled),.button-link:hover,.request-station-button:hover,.account-auth button[type=submit]:hover,.admin-login button:hover,.account-password-form button:hover,.form-actions button[type=submit]:hover,.admin-stations-header button:hover,.consent-accept:hover{filter:brightness(1.1);box-shadow:var(--shadow-md);transform:translateY(-1px)}.apply-button:active:not(:disabled),.button-link:active,.request-station-button:active,.account-auth button[type=submit]:active,.admin-login button:active,.account-password-form button:active,.form-actions button[type=submit]:active,.admin-stations-header button:active,.consent-accept:active{transform:translateY(0);filter:brightness(.95)}.share-button,.pagination button,.admin-table button,.form-actions button[type=button],.letter-bar button,.lang-toggle,.admin-nav-right button,.consent-decline,.locate-button,.map-expand-toggle,.map-toggle{transition:background .15s ease,border-color .15s ease,transform .15s var(--ease),color .15s ease}.share-button:hover,.pagination button:not(:disabled):hover,.admin-table button:hover,.form-actions button[type=button]:hover,.letter-bar button:not(.active):hover,.admin-nav-right button:hover,.consent-decline:hover,.locate-button:hover{background:var(--panel-hover);border-color:#ffffff4d;transform:translateY(-1px)}.admin-panel,.stat-card,.support-ticket{box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s var(--ease)}.stat-card:hover,.support-ticket:hover{box-shadow:var(--shadow-md)}.app-shell{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.9rem 1.5rem;border-bottom:1px solid var(--border);background:var(--panel)}.brand{font-weight:700;font-size:1.1rem;color:var(--text);text-decoration:none}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:1.25rem}.site-footer{flex-shrink:0;display:flex;gap:1rem;padding:.4rem 1.5rem;border-top:1px solid var(--border);background:var(--panel);font-size:.75rem}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{color:var(--text)}.consent-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:3000;max-width:520px;margin:0 auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;box-shadow:0 8px 30px #0006;font-size:.85rem}.consent-banner p{margin:0 0 .75rem;color:var(--text)}.consent-banner a{color:var(--accent)}.consent-banner-actions{display:flex;justify-content:flex-end;gap:.6rem}.consent-banner-actions button{border:none;border-radius:8px;padding:.45rem .9rem;font-weight:600;font-size:.85rem}.consent-decline{background:var(--panel-alt);border:1px solid var(--border)!important;color:var(--text)}.consent-accept{background:var(--accent);color:#fff}.admin-link,.account-link{color:var(--muted);text-decoration:none}.admin-link:hover,.account-link:hover{color:var(--text)}.lang-toggle{background:none;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.lang-toggle:hover{color:var(--text);border-color:var(--text)}.top-switcher{position:relative;display:inline-flex;flex-shrink:0;isolation:isolate;overflow:hidden;background:linear-gradient(180deg,#ffffff1f,#ffffff08);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);border:1px solid rgba(255,255,255,.18);border-radius:999px;width:226px;height:62px;padding:4px;margin:0 auto;box-shadow:inset 0 1px 1px #ffffff4d,inset 0 -1px 2px #00000040,0 6px 20px #00000040;transition:box-shadow .35s ease,transform .35s ease;--glare-x: 50%;--glare-y: 50%}.top-switcher:hover{box-shadow:inset 0 1px 1px #fff6,inset 0 -1px 2px #00000040,0 10px 28px #0000004d;transform:translateY(-1px)}.top-switcher-glare{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .4s ease;background:radial-gradient(110px 70px at var(--glare-x) var(--glare-y),rgba(255,255,255,.65),rgba(255,255,255,.15) 45%,transparent 75%);mix-blend-mode:screen}.top-switcher:hover .top-switcher-glare{opacity:1}.loco-smoke-burst{position:absolute;left:50%;top:38%;width:0;height:0;z-index:3;pointer-events:none}.loco-smoke-puff{position:absolute;top:0;left:0;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:46% 54% 55% 45%/56% 48% 52% 44%;background:radial-gradient(circle at 38% 35%,rgba(252,252,255,.98),rgba(240,240,245,.82) 42%,rgba(222,222,230,.45) 68%,transparent 88%);filter:blur(1.2px);opacity:0;transform:scale(.3) rotate(0)}.loco-smoke-burst.is-moving .loco-smoke-puff{animation:loco-smoke-puff-burst .7s cubic-bezier(.16,.8,.3,1) both}.loco-smoke-burst.is-moving .loco-smoke-puff:nth-child(1){--tx: -115px;--ty: -10px;--rot: -18deg;width:26px;height:26px;margin:-13px 0 0 -13px;animation-delay:0ms;border-radius:55% 45% 48% 52%/45% 55% 50% 50%}.loco-smoke-burst.is-moving .loco-smoke-puff:nth-child(2){--tx: -62px;--ty: -28px;--rot: 24deg;width:37px;height:33px;margin:-17px 0 0 -18px;animation-delay:40ms}.loco-smoke-burst.is-moving .loco-smoke-puff:nth-child(3){--tx: -8px;--ty: -34px;--rot: -14deg;width:44px;height:38px;margin:-19px 0 0 -22px;animation-delay:80ms;filter:blur(1.3px)}.loco-smoke-burst.is-moving .loco-smoke-puff:nth-child(4){--tx: 48px;--ty: -24px;--rot: 20deg;width:36px;height:33px;margin:-17px 0 0 -18px;animation-delay:.12s}.loco-smoke-burst.is-moving .loco-smoke-puff:nth-child(5){--tx: 100px;--ty: -8px;--rot: -16deg;width:27px;height:25px;margin:-13px 0 0 -14px;animation-delay:.16s}.loco-smoke-burst.is-moving .loco-smoke-puff:nth-child(6){--tx: 18px;--ty: -2px;--rot: 12deg;width:20px;height:20px;margin:-10px 0 0 -10px;animation-delay:10ms;filter:blur(1px);background:radial-gradient(circle at 38% 35%,rgba(255,249,235,.98),rgba(255,225,180,.7) 42%,rgba(255,214,160,.35) 68%,transparent 88%)}@keyframes loco-smoke-puff-burst{0%{opacity:0;transform:scale(.3) translate(0) rotate(0)}28%{opacity:.9;transform:scale(1) translate(calc(var(--tx) * .4),calc(var(--ty) * .4)) rotate(calc(var(--rot) * .35))}to{opacity:0;transform:scale(2) translate(var(--tx),var(--ty)) rotate(var(--rot))}}.top-switcher-tab{position:relative;z-index:2;flex:0 0 108px;height:100%;display:flex;align-items:flex-start;justify-content:center;padding-top:.5rem;border-radius:999px;text-decoration:none;color:#ffffff8c;font-size:.9rem;font-weight:600;transition:color .3s ease}.top-switcher-tab.active{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3)}.top-switcher-tab:hover:not(.active){color:#fff}.top-switcher-rail{position:absolute;left:16px;right:16px;bottom:13px;height:2px;border-radius:1px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 6px,transparent 6px 12px);z-index:0}.top-switcher-train{position:absolute;bottom:5px;left:0;width:108px;height:24px;display:flex;align-items:center;justify-content:center;z-index:5;pointer-events:none;transition:transform .6s cubic-bezier(.34,1.56,.64,1)}.top-switcher-train-bounce{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.top-switcher-train-bounce.is-moving{animation:loco-chug .6s ease-in-out}@keyframes loco-chug{0%,to{transform:translateY(0)}22%{transform:translateY(-1.6px)}44%{transform:translateY(.6px)}66%{transform:translateY(-1px)}88%{transform:translateY(.3px)}}.top-switcher-train-icon{width:44px;height:auto;overflow:visible;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45)) drop-shadow(0 0 6px rgba(194,65,12,.45))}.loco-puff{transform-box:fill-box;transform-origin:center;animation:loco-puff-idle 3.2s ease-in-out infinite}.loco-puff-2{animation-delay:.6s}.loco-puff-3{animation-delay:1.2s}@keyframes loco-puff-idle{0%{transform:translateY(0) scale(1);opacity:.5}60%{transform:translateY(-3.5px) scale(1.2);opacity:.15}to{transform:translateY(-5px) scale(.9);opacity:0}}.top-switcher-train-bounce.is-moving .loco-puff{animation:loco-puff-burst .35s ease-out infinite}@keyframes loco-puff-burst{0%{transform:translateY(0) scale(.8);opacity:.8}to{transform:translateY(-8px) scale(1.7);opacity:0}}.admin-nav{display:flex;gap:1rem}.admin-nav a{color:var(--muted);text-decoration:none;padding:.3rem .1rem}.admin-nav a.active{color:var(--text);border-bottom:2px solid var(--accent)}.admin-nav-right{margin-left:auto;display:flex;align-items:center;gap:1rem}.admin-nav-right a{color:var(--muted)}.admin-nav-right button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.4rem .8rem}.explorer-layout{flex:1;display:flex;flex-direction:column;min-height:0}.controls-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;padding:1rem 1.5rem;background:var(--panel);border-bottom:1px solid var(--border);position:relative;z-index:1;box-shadow:var(--shadow-sm)}.city-search{position:relative;width:260px}.city-search input{width:100%}.city-search-input-row{display:flex;gap:.4rem}.city-search-input-row input{flex:1;min-width:0}.locate-button{flex-shrink:0;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius);padding:0 .6rem;cursor:pointer;font-size:1rem}.locate-error{color:#dc6b52}.no-results-panel{position:absolute;z-index:500;top:calc(100% + 4px);left:0;right:0;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .75rem;font-size:.85rem}.no-results-panel p{margin:0 0 .4rem}.request-station-button{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.4rem .75rem;font-weight:600;font-size:.85rem}.city-search-results{position:absolute;z-index:500;top:calc(100% + 4px);left:0;right:0;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius);max-height:320px;overflow-y:auto;list-style:none;margin:0;padding:.25rem}.city-search-results li{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .6rem;border-radius:6px;cursor:pointer}.city-search-results li:hover{background:#c2410c26}.city-search-hint{cursor:default;color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.3rem .6rem .1rem!important}.city-search-hint:hover{background:none!important}.station-name{font-weight:600}.station-meta{color:var(--muted);font-size:.85rem;white-space:nowrap}.timeframe-slider{display:flex;flex-direction:column;gap:.25rem;width:220px}.timeframe-scale{display:flex;justify-content:space-between;color:var(--muted);font-size:.75rem}.dropdown-label{font-size:.8rem;color:var(--muted);display:block;margin-bottom:.25rem}.dropdown{position:relative}.dropdown-trigger{display:flex;align-items:center;gap:.5rem;background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.5rem .7rem;min-width:160px}.dropdown-trigger .dropdown-label{margin:0;display:none}.dropdown-summary{flex:1;text-align:left}.dropdown-menu{position:absolute;z-index:500;top:calc(100% + 4px);left:0;min-width:220px;max-height:280px;overflow-y:auto;background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--radius);padding:.4rem}.dropdown-option{display:flex;align-items:center;gap:.5rem;padding:.35rem .4rem;border-radius:6px;font-size:.9rem}.dropdown-option:hover{background:#ffffff0d}.dropdown-clear{width:100%;text-align:left;background:none;border:none;color:var(--accent);padding:.3rem .4rem;font-size:.85rem}.dropdown-empty{color:var(--muted);padding:.4rem;font-size:.85rem}.select-field select{min-width:170px}.apply-button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.55rem 1.1rem;font-weight:600;height:fit-content}.apply-button:disabled{opacity:.5;cursor:not-allowed}.share-button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.55rem 1.1rem;font-weight:600;height:fit-content}.empty-state{padding:3rem;text-align:center;color:var(--muted)}.error-banner{background:#e5484d26;border:1px solid var(--danger);color:#ffaeb1;padding:.6rem 1rem;margin:.75rem 1.5rem;border-radius:8px}.map-layout{flex:1;display:flex;min-height:0}.map-wrapper{position:relative;flex:1;min-height:0}.map-placeholder{flex:1;min-height:0;background:var(--panel);border-radius:var(--radius-lg, 8px)}.map-wrapper.expanded{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000}.europe-map{width:100%;height:100%;background:#070a12}.map-tiles-dark{filter:invert(1) hue-rotate(180deg) brightness(.94) contrast(.88) saturate(.35)}.map-controls{position:absolute;top:.85rem;right:.85rem;z-index:1000;display:flex;align-items:center;gap:.6rem}.map-expand-toggle{background:#161d2eeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:.45rem .85rem;font-size:.85rem;white-space:nowrap;box-shadow:0 2px 10px #00000040;transition:background .15s ease,border-color .15s ease}.map-expand-toggle:hover{background:var(--panel-alt);border-color:var(--accent)}.map-toggle{display:flex;align-items:center;gap:.5rem;background:#161d2eeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:10px;padding:.45rem .85rem;font-size:.85rem;color:var(--muted);white-space:nowrap;cursor:pointer;box-shadow:0 2px 10px #00000040;transition:border-color .15s ease}.map-toggle:hover{border-color:var(--accent)}.map-expand-toggle:focus-visible,.map-toggle:has(input:focus-visible),.map-toggle input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.map-note{position:absolute;bottom:.85rem;left:.85rem;z-index:1000;max-width:min(60%,420px);background:#161d2eeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:.4rem .75rem;font-size:.78rem;box-shadow:0 2px 10px #00000040}.map-legend{position:absolute;bottom:.85rem;right:.85rem;z-index:1000;display:flex;align-items:center;gap:.5rem;background:#161d2eeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);color:var(--muted);border-radius:10px;padding:.4rem .75rem;font-size:.72rem;box-shadow:0 2px 10px #00000040}.map-legend-label{font-weight:600;color:var(--text);white-space:nowrap}.map-legend-bar{width:64px;height:6px;border-radius:3px;background:linear-gradient(90deg,#649ed8,#da62e4,#ef9161)}.map-legend-ticks{display:flex;justify-content:space-between;gap:.5rem;white-space:nowrap}.leaflet-popup-content-wrapper,.leaflet-tooltip{background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:0 4px 18px #0006}.leaflet-popup-tip{background:var(--panel)}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{border-top-color:var(--panel)}.leaflet-container a.leaflet-popup-close-button{color:var(--muted)}.leaflet-container a.leaflet-popup-close-button:hover{color:var(--text)}.strand-tooltip-count{color:var(--muted);font-weight:400}.strand-tooltip-members{list-style:none;margin:.35rem 0 0;padding:0;max-height:160px;overflow-y:auto}.strand-tooltip-members li{display:flex;justify-content:space-between;gap:.75rem;padding:.15rem 0;font-size:.82rem;border-top:1px solid var(--border)}.strand-tooltip-members li:first-child{border-top:none}.strand-tooltip-member-right{display:flex;align-items:center;gap:.5rem}.db-link{color:var(--accent);text-decoration:none;font-size:.78rem;white-space:nowrap}.db-link:hover{text-decoration:underline}.city-info-link{color:var(--accent);text-decoration:none;font-size:.78rem;white-space:nowrap}.city-info-link:hover{text-decoration:underline}.strand-tooltip a.city-info-link{display:inline-block;margin:.4rem 0 .5rem;font-size:.82rem}.blog-index,.blog-post-page{max-width:720px;margin:0 auto;padding:2rem 1.5rem 4rem;width:100%}.blog-index h1,.blog-post-page h1{margin-bottom:.25rem;font-size:2.1rem;letter-spacing:-.015em}.blog-post-list{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.85rem}.blog-post-list li{border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;background:var(--panel);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s var(--ease),border-color .2s ease}.blog-post-list li:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:#fff3}.blog-post-list a{color:inherit;text-decoration:none;display:block}.blog-post-list h2{margin:0 0 .25rem;font-size:1.2rem}.blog-post-list p{margin:.5rem 0 0;color:var(--muted)}.blog-post-meta{display:inline-block;color:var(--muted);font-size:.8rem;font-weight:600;letter-spacing:.01em;margin-bottom:1.75rem;padding:.3rem .75rem;background:var(--panel-alt);border:1px solid var(--border);border-radius:999px}.blog-post-content{line-height:1.7}.blog-post-content a{color:var(--accent)}.blog-post-content img{border-radius:8px;margin:1rem 0}.blog-post-content h2{margin-top:1.75rem}.blog-post-content blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding:.25rem 1rem;color:var(--muted)}.admin-section-title{margin:0;font-size:1.1rem}.button-link{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600;text-decoration:none;font-size:.9rem}.blog-editor form{display:flex;flex-direction:column;gap:1rem;max-width:760px}.blog-editor label{display:flex;flex-direction:column;gap:.35rem;color:var(--muted);font-size:.85rem}.field-hint{color:var(--muted);font-size:.75rem}.checkbox-label{flex-direction:row!important;align-items:center;gap:.5rem!important}.quill-container{background:#fff;color:#111;border-radius:8px;min-height:280px}.results-panel{width:340px;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;min-height:0;box-shadow:var(--shadow-md);position:relative;z-index:1}.results-panel.collapsed{width:auto}.results-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border)}.results-toggle{background:none;border:none;color:var(--accent);font-size:.85rem}.results-panel-body{overflow-y:auto;padding:.5rem 1rem 1rem}.results-count{color:var(--muted);font-size:.85rem;margin-bottom:.65rem}.results-panel ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.results-panel li{padding:.6rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--panel-alt);box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s var(--ease),border-color .15s ease,background .15s ease}.results-panel li:hover{background:var(--panel-hover);box-shadow:var(--shadow-md);transform:translate(-1px);border-color:#ffffff26}.result-row-main{display:flex;justify-content:space-between;font-weight:600}.result-time{color:var(--accent-warm)}.result-row-meta{color:var(--muted);font-size:.8rem;margin-top:.15rem}.compare-durations{display:flex;flex-direction:column;gap:.1rem;margin-top:.3rem}.compare-controls-bar{padding-top:0;border-top:none}.compare-results-panel{width:360px}.result-row-links{display:flex;gap:.9rem;margin-top:.3rem}.strand-tooltip{font-size:.85rem;color:var(--text)}.strand-tooltip-name{font-weight:700}.strand-tooltip-meta{color:var(--muted)}.strand-tooltip-time{margin-top:.2rem;font-weight:600}.admin-main{flex:1;overflow-y:auto;padding:1.5rem}.admin-loading{padding:3rem;text-align:center;color:var(--muted)}.admin-login{position:relative;height:100vh;display:flex;align-items:center;justify-content:center}.admin-login-back{position:absolute;top:1.5rem;left:1.5rem;color:var(--muted);text-decoration:none;font-size:.9rem}.admin-login-back:hover{color:var(--text)}.admin-login form img{align-self:center;border-radius:8px;background:#fff;padding:.5rem}.admin-login .totp-secret{align-self:center;background:var(--panel-alt);border:1px solid var(--border);border-radius:6px;padding:.3rem .6rem;font-size:.8rem;letter-spacing:.05em;-webkit-user-select:all;user-select:all}.admin-login form{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.25rem 2rem 2rem;width:320px;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-lg)}.admin-login form:before,.account-auth form:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-warm),var(--accent))}.admin-login label{display:flex;flex-direction:column;gap:.35rem}.admin-login-tabs{display:flex;gap:.4rem;background:var(--panel-alt);border-radius:8px;padding:.25rem}.admin-login .admin-login-tabs button{flex:1;background:transparent;border:none;border-radius:6px;padding:.4rem;color:var(--muted);font-weight:600;font-size:.85rem}.admin-login .admin-login-tabs button.active{background:var(--accent);color:#fff}.admin-login-tabs button,.account-tabs button{transition:background .2s ease,color .2s ease}.admin-login button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem;font-weight:600}.account-page{min-height:calc(100vh - 4rem);display:flex;align-items:flex-start;justify-content:center;padding:3rem 1.5rem}.account-auth form{position:relative;overflow:hidden;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.25rem 2rem 2rem;width:320px;display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-lg)}.account-auth label{display:flex;flex-direction:column;gap:.35rem}.account-auth button[type=submit]{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.6rem;font-weight:600}.account-tabs{display:flex;gap:.4rem;background:var(--panel-alt);border-radius:8px;padding:.25rem}.account-tabs button{flex:1;background:transparent;border:none;border-radius:6px;padding:.4rem;color:var(--muted);font-weight:600;font-size:.85rem}.account-tabs button.active{background:var(--accent);color:#fff}.link-button{background:none;border:none;color:var(--accent);font-size:.85rem;padding:0;text-align:left;cursor:pointer}.link-button:hover{text-decoration:underline}.account-dashboard{position:relative;overflow:hidden;width:100%;max-width:480px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem 2rem 2.25rem;box-shadow:var(--shadow-lg)}.account-dashboard:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-warm),var(--accent))}.account-dashboard-header{display:flex;align-items:center;justify-content:space-between}.favorites-list{list-style:none;margin:1rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.favorites-list li{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--panel-alt);box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,border-color .15s ease}.favorites-list li:hover{box-shadow:var(--shadow-md);border-color:#ffffff26}.favorites-list li span:first-child{font-weight:600;flex:1}.account-dashboard-header button,.favorites-list li button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.4rem .8rem;font-size:.85rem;font-weight:600;transition:background .15s ease,border-color .15s ease}.account-dashboard-header button:hover,.favorites-list li button:hover{background:var(--panel-hover);border-color:#ffffff40}.account-dashboard-header button:disabled{opacity:.6;cursor:default}.account-password-form{display:flex;flex-direction:column;gap:.75rem;max-width:320px;margin-top:.75rem}.account-password-form label{display:flex;flex-direction:column;gap:.35rem}.account-password-form button{align-self:flex-start;background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600}.support-ticket-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.support-ticket{border:1px solid var(--border);border-radius:10px;padding:.85rem 1rem}.support-ticket.closed{opacity:.6}.support-ticket-header{display:flex;justify-content:space-between;gap:1rem;font-weight:600;margin-bottom:.4rem}.support-ticket-message{white-space:pre-wrap;margin:0 0 .6rem}.support-ticket-actions{display:flex;gap:.75rem;align-items:center}.star-button{background:none;border:none;cursor:pointer;color:var(--muted);font-size:.95rem;padding:0 .15rem;line-height:1}.star-button.active,.star-button:hover{color:#ffb020}.stat-cards{display:flex;gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.5rem;min-width:160px}.stat-value{font-size:1.8rem;font-weight:700}.stat-label{color:var(--muted);font-size:.85rem}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.admin-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.admin-panel h2{margin-top:0;font-size:1rem}.muted{color:var(--muted)}.bar-list{list-style:none;margin:0;padding:0}.bar-list li{margin-bottom:.6rem}.bar-list-label{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:.25rem}.bar-track{background:var(--panel-alt);border-radius:6px;height:8px;overflow:hidden}.bar-fill{background:var(--accent);height:100%}.admin-add-form{display:flex;align-items:center;gap:.6rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--border)}.admin-add-form h3{margin:0;font-size:.95rem;margin-right:.5rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border)}.admin-table th{color:var(--muted);font-weight:600}.admin-table button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.25rem .55rem;margin-right:.35rem;font-size:.8rem}.editing-row input{width:7rem}.admin-stations-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.admin-stations-header input{flex:1}.admin-stations-header button{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600;white-space:nowrap}.sort-select{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem;white-space:nowrap}.letter-bar{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.75rem}.letter-bar button{background:var(--panel-alt);border:1px solid var(--border);color:var(--muted);border-radius:6px;min-width:1.9rem;padding:.25rem .4rem;font-size:.8rem}.letter-bar button.active{background:var(--accent);border-color:var(--accent);color:#fff}.stations-count{color:var(--muted);font-size:.85rem;margin-bottom:.75rem}.pagination{display:flex;align-items:center;gap:1rem;margin-top:1rem;color:var(--muted);font-size:.85rem}.pagination button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.3rem .7rem}.pagination button:disabled{opacity:.4;cursor:not-allowed}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:480px;max-height:85vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.modal-header button{background:none;border:none;color:var(--muted);font-size:1.1rem}.modal input,.modal select{width:100%;margin-top:.3rem}.suggestion-list{list-style:none;margin:.75rem 0;padding:0;border:1px solid var(--border);border-radius:8px;max-height:220px;overflow-y:auto}.suggestion-list li{display:flex;justify-content:space-between;padding:.5rem .7rem;border-bottom:1px solid var(--border)}.suggestion-list li:last-child{border-bottom:none}.secondary-action{width:100%;margin-top:.5rem;background:var(--panel-alt);border:1px dashed var(--border);color:var(--text);border-radius:8px;padding:.6rem}.station-create-form{display:flex;flex-direction:column;gap:.8rem;margin-top:.5rem}.station-create-form label{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted)}.coord-row{display:flex;gap:.75rem}.coord-row label{flex:1}.form-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.5rem}.form-actions button[type=submit]{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1.1rem;font-weight:600}.form-actions button[type=button]{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.5rem 1.1rem}@media (max-width: 768px){.map-layout{flex-direction:column}.results-panel{width:100%;max-height:40vh;border-left:none;border-top:1px solid var(--border)}.admin-grid{grid-template-columns:1fr}.map-controls{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 1.7rem)}.map-legend{padding:.3rem .55rem;gap:.35rem;font-size:.68rem}.map-legend-bar{width:40px}.map-note{max-width:55%}}
