:root{color-scheme:light;--bg:#edf3f6;--card:#fff;--text:#142d43;--muted:#566b7c;--border:#dbe5ec;--accent:#087e8b;--soft:#e8f6f5;--shadow:0 8px 32px #102c4610}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,sans-serif}body.dark{color-scheme:dark;--bg:#0c1824;--card:#142534;--text:#e4edf4;--muted:#a7b9c8;--border:#304454;--soft:#163b40;--shadow:0 8px 32px #0003}a{color:var(--accent)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,select{cursor:pointer}button{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:12px;padding:9px 13px}button:hover,button.active,button[aria-pressed=true]{background:var(--soft);border-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #13a8bf;outline-offset:3px}header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--border)}.brand{display:flex;gap:15px;align-items:center;color:var(--text);text-decoration:none;font-weight:800;font-size:21px}.brand img{width:85px}.brand small{display:block;font-size:10px;letter-spacing:1.7px;color:var(--muted)}nav{display:flex;align-items:center;gap:16px}main{max-width:1450px;margin:auto;padding:20px;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px}.map-panel,aside,.detail{background:var(--card);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.map-panel{position:relative;min-height:380px}#map{height:430px}.map-note{position:absolute;top:12px;left:12px;background:var(--card);padding:8px 12px;border-radius:12px;font-size:12px;box-shadow:var(--shadow)}aside{display:flex;flex-direction:column;height:430px}.finder{padding:14px;display:flex;gap:8px}.finder input{min-width:0;width:100%;padding:9px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text)}.finder button{white-space:nowrap;padding:9px;font-size:13px}.spot-list{overflow:auto;padding:0 10px 10px}.spot-choice{display:flex;align-items:center;text-align:left;justify-content:space-between;gap:10px;width:100%;margin:5px 0;background:transparent;border-color:transparent}.spot-choice small{display:block;font-weight:400;color:var(--muted)}.spot-choice b{font-size:18px;white-space:nowrap}.detail{grid-column:1/-1;padding:24px}.detail-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.detail-head h1{font-size:28px;line-height:1.25;margin:0 0 5px}.muted,.metadata{color:var(--muted);font-size:13px}.actions,.model-buttons{display:flex;gap:8px;flex-wrap:wrap}.controls{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:18px 0}.controls label{display:flex;align-items:center;gap:6px;font-size:13px}.controls select,.controls input[type=number]{max-width:85px;background:var(--bg);color:var(--text);border:1px solid var(--border);padding:7px;border-radius:8px}.time-control{display:flex;align-items:center;gap:14px;margin:20px 0;padding:16px;border-radius:16px;background:var(--bg)}.time-control input{flex:1;min-width:50px;accent-color:var(--accent)}.time-control output{min-width:170px;font-weight:750}.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.metric{padding:16px;border:1px solid var(--border);border-radius:16px}.metric small{display:block;color:var(--muted)}.metric strong{font-size:29px}.metric span{font-size:14px}.metric .sub{display:block;font-size:12px;color:var(--muted)}.blocks{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;margin-top:20px}.block{min-width:0}.block h2{font-size:18px;margin:0 0 10px}.chart{width:100%;height:230px}.legend{display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.legend span:before{content:'';display:inline-block;width:14px;height:3px;background:var(--line);vertical-align:middle;margin-right:5px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:9px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}th{color:var(--muted)}.windows{display:flex;gap:8px;flex-wrap:wrap}.window{border-color:var(--accent);background:var(--soft)}.observed{padding:14px;border:1px solid var(--border);border-radius:16px;margin:18px 0}.links{display:flex;gap:15px;flex-wrap:wrap;margin-top:18px;font-size:13px}.kite-pin{width:35px;height:35px;display:flex;justify-content:center;align-items:center;background:#087e8b;color:white;border:3px solid white;border-radius:50%;font-weight:800;box-shadow:0 2px 9px #0004;padding:0}.kite-pin.selected{background:#d36c11}.kite-pin:hover{background:#076373}footer{max-width:1450px;margin:auto;padding:8px 24px 30px;color:var(--muted);font-size:12px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--card);padding:12px 22px;border-radius:14px;z-index:20;max-width:90vw}svg text{fill:var(--muted)}.error{color:#b34627}.notice{padding:10px 13px;background:var(--bg);border-radius:10px;font-size:13px}.hourly{margin-top:22px}.hourly summary{cursor:pointer;font-weight:700}.model-buttons button{font-size:13px}.model-buttons small{display:block;font-size:10px}.arrow{display:inline-block;font-size:20px}
@media(max-width:820px){header{padding:10px 14px}.brand{font-size:18px}.brand img{width:65px}nav a{font-size:12px}main{padding:12px;gap:12px;grid-template-columns:1fr}.map-panel{min-height:280px}#map{height:310px}aside{height:auto}.spot-list{display:flex;gap:6px;overflow:auto;max-height:130px}.spot-choice{min-width:185px;width:auto;flex-shrink:0;border-color:var(--border)}.detail{padding:16px}.detail-head h1{font-size:23px}.actions button{padding:7px 10px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{padding:11px}.metric strong{font-size:23px}.blocks{grid-template-columns:1fr}.time-control{padding:12px;gap:8px}.time-control output{min-width:0;font-size:12px;width:140px}.controls{gap:10px}.controls label{font-size:12px}.detail-head{flex-wrap:wrap}.chart{height:210px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
