@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";*{box-sizing:border-box}html,body{min-height:100%;margin:0;padding:0}.app{color:#eef4ed;background-color:#08192f;background-image:radial-gradient(900px 500px at 15% -10%,#e8a33d1a,#0000 60%),radial-gradient(700px 500px at 90% 10%,#5d8cb81a,#0000 55%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;min-height:100vh;padding:48px 20px 80px;font-family:Inter,sans-serif}.shell{max-width:720px;margin:0 auto}.header{margin-bottom:36px}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:#e8a33d;align-items:center;gap:8px;margin-bottom:10px;font-family:IBM Plex Mono,monospace;font-size:11px;display:flex}.eyebrow:before{content:"";background:#e8a33d;width:22px;height:1px}h1{letter-spacing:-.01em;margin:0 0 8px;font-family:Fraunces,serif;font-size:clamp(30px,5vw,42px);font-weight:600}.sub{color:#8da9c4;max-width:46ch;font-size:15px;line-height:1.5}.toolbar{border-bottom:1px solid #16304f;justify-content:space-between;align-items:center;margin:32px 0 18px;padding-bottom:14px;display:flex}.toolbar h2{color:#8da9c4;text-transform:uppercase;letter-spacing:.08em;margin:0;font-family:Fraunces,serif;font-size:15px;font-weight:600}.toggle-form-btn{color:#eef4ed;cursor:pointer;background:0 0;border:1px solid #1e3a5f;border-radius:7px;align-items:center;gap:6px;padding:8px 14px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:border-color .15s,background .15s;display:flex}.toggle-form-btn:hover{background:#e8a33d14;border-color:#e8a33d}.add-form{background:#0d2340;border:1px solid #16304f;border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:28px;padding:16px;display:flex}.field{flex-direction:column;flex:1;gap:6px;min-width:160px;display:flex}.field label{letter-spacing:.06em;text-transform:uppercase;color:#6c8cad;font-family:IBM Plex Mono,monospace;font-size:10.5px}.field input{color:#eef4ed;background:#08192f;border:1px solid #1e3a5f;border-radius:6px;outline:none;padding:9px 10px;font-family:Inter,sans-serif;font-size:14px}.field input:focus{border-color:#e8a33d}.add-btn{color:#08192f;cursor:pointer;background:#e8a33d;border:none;border-radius:6px;align-items:center;gap:6px;height:38px;padding:10px 16px;font-size:13.5px;font-weight:600;transition:filter .15s;display:flex}.add-btn:hover{filter:brightness(1.08)}.route{position:relative}.stop-row{gap:18px;display:flex}.rail{flex-direction:column;flex-shrink:0;align-items:center;width:34px;display:flex}.rail-node{z-index:1;background:#0d2340;border:1px solid #e8a33d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.rail-day{color:#e8a33d;font-family:IBM Plex Mono,monospace;font-size:11px}.rail-line{background-image:linear-gradient(#1e3a5f 60%,#0000 0%);background-repeat:repeat-y;background-size:1px 6px;flex:1;width:1px;min-height:18px}.stop-card{background:#0d2340;border:1px solid #16304f;border-radius:12px;flex:1;margin-bottom:16px;transition:border-color .15s;overflow:hidden}.stop-card.open{border-color:#2a4d77}.stop-summary{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;font-family:inherit;display:flex}.stop-summary:disabled{cursor:default}.stop-main{flex-direction:column;gap:5px;min-width:0;display:flex}.stop-portline{align-items:center;gap:7px;display:flex}.stop-port{white-space:nowrap;text-overflow:ellipsis;font-family:Fraunces,serif;font-size:17px;font-weight:600;overflow:hidden}.stop-date{color:#6c8cad;font-family:IBM Plex Mono,monospace;font-size:11.5px}.stop-weather{flex-shrink:0;align-items:center;gap:9px;display:flex}.stop-temp{font-family:Fraunces,serif;font-size:20px;font-weight:600}.stop-cond{color:#8da9c4;font-size:13px;display:none}.stop-weather-loading{gap:7px}.stop-loading-label{color:#6c8cad;font-family:IBM Plex Mono,monospace;font-size:12px}.spinner{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stop-range{color:#6c8cad;font-family:IBM Plex Mono,monospace;font-size:11.5px}@media (width>=560px){.stop-cond{display:inline}}@media (width<=480px){.stop-summary{flex-wrap:wrap;justify-content:flex-start;row-gap:12px}.stop-weather{flex-basis:100%;order:3;justify-content:flex-start}.chevron{margin-left:auto}.stop-cond{display:inline}}.chevron{flex-shrink:0;transition:transform .2s}.chevron.rot{transform:rotate(180deg)}.hourly-panel{background:#0a1d38;border-top:1px solid #16304f;padding:18px 18px 20px}.chart-tabs{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.chart-tab{color:#8da9c4;cursor:pointer;background:0 0;border:1px solid #1e3a5f;border-radius:6px;padding:6px 12px;font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500;transition:color .15s,border-color .15s,background .15s}.chart-tab:hover{color:#eef4ed;border-color:#e8a33d}.chart-tab.active{color:#eef4ed;background:#e8a33d1f;border-color:#e8a33d}.hourly-stats{flex-wrap:wrap;gap:20px;margin-top:6px;display:flex}.hstat{color:#8da9c4;align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:12.5px;display:flex}.remove-btn{color:#6c8cad;cursor:pointer;background:0 0;border:none;padding:4px;display:flex}.remove-btn:hover{color:#d9634a}.empty{text-align:center;color:#6c8cad;border:1px dashed #1e3a5f;border-radius:12px;padding:50px 20px;font-size:14px}
