:root{color:#283c35;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;background-color:#dce6dd;font-family:Nunito,system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}main{height:100dvh;position:relative;overflow:hidden}.sheet{flex-direction:column;gap:8px;min-height:0;display:flex}.panel{z-index:2;color:#283c35;scrollbar-width:thin;scrollbar-color:#a1ad93 transparent;background:#fff8e8;border:1px solid #d8cfb9;border-radius:16px;flex-direction:column;gap:8px;width:min(308px,100vw - 24px);max-height:calc(100dvh - 24px);padding:12px;display:flex;position:absolute;top:12px;left:12px;overflow:auto;box-shadow:0 16px 40px #29362624}.panel header,.panel .window{box-shadow:none;color:inherit;background:0 0;border:0}header{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}h1{letter-spacing:-.03em;white-space:nowrap;margin:0;font-size:19px;font-weight:800}h1 span{color:#98452d}header p{text-align:right;margin:0;font-size:14px}header a{color:#345b49}header time{white-space:nowrap}.side,.dock{display:contents}.map{background:#dce6dd;position:absolute;inset:0;overflow:hidden}.search{gap:6px;display:grid}.search label{gap:4px;font-size:14px;display:grid}.search input{color:#283c35;background:#fbf0d9;border:1px solid #d8cfb9;border-radius:8px;width:100%;padding:8px 10px}.search ul{margin:0;padding:0;list-style:none}.search li{margin:0}.search button{text-align:left;width:100%}.window{padding:8px}h2{margin:0 0 8px;font-size:16px;font-weight:600}.window p,.window li,.window small{font-size:14px}.window p{margin:8px 0 0}.window ul{margin:8px 0 0;padding-left:18px}.window li{margin:0 0 4px}summary{cursor:pointer;font-size:16px;font-weight:600}.window label{cursor:pointer;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:8px;padding:4px 0;display:grid}input[type=checkbox]{appearance:none;cursor:pointer;background:#dce6dd;border:1px solid #8b937e;border-radius:3px;width:12px;height:12px;margin:0}input[type=checkbox]:checked{background:var(--swatch,#345b49);border-color:#0000}canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}canvas:active{cursor:grabbing}.map-controls{pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:min(420px,100vw - 380px);display:flex;position:absolute;top:12px;right:12px}button{color:#283c35;box-shadow:none;cursor:pointer;pointer-events:auto;background:#fbf0d9;border:1px solid #d8cfb9;border-radius:8px;padding:8px 10px;font-size:16px;line-height:1}button:active{background:#e4e8ce}button[aria-pressed=true]{color:#fff8e8;background:#345b49;border-color:#345b49}button:disabled{opacity:.65;cursor:default}.zoom{gap:4px;display:grid;position:absolute;bottom:52px;right:12px}.zoom button{width:36px;height:36px;padding:0}.credit{color:#283c35;background:#fff8e8;border:1px solid #d8cfb9;border-radius:8px;gap:8px;margin:0;padding:4px 8px;font-size:13px;display:flex;position:absolute;bottom:12px;right:12px}.credit a{color:#283c35;text-decoration:none}a{color:#345b49}:focus-visible{outline-offset:2px;outline:2px solid #98452d}.tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.tabs label{cursor:pointer;background:#fbf0d9;border:1px solid #d8cfb9;border-radius:8px;justify-content:center;align-items:center;min-height:32px;padding:4px;font-size:16px;display:flex;position:relative}.tabs input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tabs label:has(input:checked){color:#fff8e8;background:#345b49;border-color:#345b49}.tabs label:has(input:focus-visible){outline-offset:2px;outline:2px solid #98452d}.sheet .window{display:none}.detail,:is(main:has(#panel-layers:checked) .layers,main:has(#panel-departures:checked) .departures,main:has(#panel-weather:checked) .weather,main:has(#panel-info:checked) .live,main:has(#panel-info:checked) .sources,main:has(#panel-info:checked) .ops){display:block}.window ul.places{margin:8px 0 0;padding:0;list-style:none}.places li{align-items:center;gap:6px;display:flex}.places button{text-align:left;flex:1;min-width:0}.places a{white-space:nowrap;flex:none}@media (width<=700px){main{grid-template-rows:minmax(0,1fr) auto;display:grid}.map{position:relative}.panel{width:auto;max-height:48dvh;margin:0 8px 8px;position:relative;inset:auto}.map-controls{max-width:calc(100vw - 24px)}header{flex-wrap:wrap}header p{text-align:left}}
