/* 2026-07-09 UI v1.2: tabless single map view and weather-distribution-plus-style helpers */
[hidden]{display:none!important}
main{height:calc(100vh - 90px);min-height:560px}
.tabs{display:none}
.view{display:block;height:100%}
.view.active{display:grid}
#mapView{grid-template-columns:268px minmax(0,1fr)}
.controls label{display:block;margin:8px 0;font-size:13px}
.controls select,.controls input[type="text"],.controls input[type="range"]{width:100%}
.check{display:flex!important}
.check input{width:auto!important}
.map-info-bar{position:absolute;z-index:560;left:58px;right:12px;top:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0;pointer-events:none}
.map-context-subject,.map-context-time{display:flex;align-items:center;min-width:0;min-height:48px;border-radius:6px;box-shadow:0 3px 14px #17352f26}
.map-context-subject{flex:0 1 auto;max-width:calc(100% - 270px);padding:6px 11px;color:#fff;background:#17352ff0;border:1px solid #ffffff59}
.map-context-subject>i{flex:0 0 1px;width:1px;height:28px;margin:0 11px;background:#ffffff3d}
.map-context-field{display:grid;gap:2px;min-width:0}
.map-context-field>span{color:inherit;font-size:9px;font-weight:800;line-height:1;opacity:.7}
.map-context-field>strong{display:block;overflow:hidden;color:inherit;font-size:13px;font-weight:850;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}
.map-context-subject .map-context-field:first-child strong{font-size:15px}
.map-context-time{flex:0 0 auto;gap:9px;padding:6px 9px;color:#17352f;background:#fffffff2;border:1px solid #c7d8d3}
.map-context-source-stack{display:grid;justify-items:center;gap:2px;min-width:48px}
.map-context-source{min-width:44px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:900;line-height:1.15;text-align:center}
.map-context-source.source-observed{color:#175d91;background:#e5f2fc}
.map-context-source.source-forecast{color:#8a5100;background:#fff0d4}
.map-context-source.source-aggregate{color:#654878;background:#f0e9f6}
#mapContextSlot{display:block;max-width:100px;overflow:hidden;color:#5b6e69;font-size:9px;font-weight:800;line-height:1.1;white-space:nowrap;text-overflow:ellipsis}
.map-context-target{padding-left:9px;border-left:1px solid #d8e3df}
#mapContextTime{display:flex;align-items:baseline;gap:5px;color:#17352f;white-space:nowrap}
#mapContextDate{font-size:12px;font-weight:800}
#mapContextClock{font-size:16px;font-weight:900;line-height:1}
.map-context-extras{position:absolute;left:0;top:54px;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 230px)}
.map-context-extras span{padding:4px 7px;border:1px solid #cbdad6;border-left:3px solid #3c7f99;border-radius:4px;background:#fffffff2;color:#24443d;font-size:9px;font-weight:800;line-height:1.15;box-shadow:0 2px 8px #17352f1c}
#mapContextRain{border-left-color:#4f76b5}
#mapContextHealth{border-left-color:#b0642c;color:#7a3d10;background:#fff8edf2}
.leaflet-control-reset{display:grid;place-items:center;width:30px;height:30px;background:#fff;color:#17352f;text-decoration:none;font-weight:900;border-bottom:1px solid #ccc}
.leaflet-control-reset:hover{background:#edf6f3}
.detail-modal{position:absolute;z-index:900;inset:0;display:grid;place-items:center;background:#0a1c1780;padding:18px}
.detail-modal-card{position:relative;width:min(1080px,96vw);max-height:92%;overflow:auto;background:#fff;border:1px solid #b9cbc6;border-radius:6px;box-shadow:0 12px 40px #0005;padding:18px}
.modal-close{position:absolute;right:12px;top:10px;border:0;background:#17352f;color:#fff;border-radius:50%;width:32px;height:32px;font-size:18px}
.small-action{margin-top:8px}
.panel-close{position:absolute;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:50%;background:#17352f;color:#fff;font-weight:900}
.mydata-grid{display:grid;grid-template-columns:260px 1fr;gap:12px}
.detail-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.detail-summary>div,.detail-summary p{margin:0;padding:10px;background:#f2f7f5;border:1px solid #d6e4df;border-radius:5px}
.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px}
.calendar-card{padding:10px;border:1px solid var(--line);border-radius:5px;background:#fff}
.calendar-card strong{display:block;margin:5px 0;font-size:15px}
.calendar-card.caution{border-left:5px solid #d95f02}
.calendar-card.recovery{border-left:5px solid #2d87c8}
.calendar-card.defer{border-left:5px solid #8d6e63}
.calendar-card.wet{border-left:5px solid #8e77ad}
.chart-note{margin:5px 0;color:var(--muted);font-size:11px;line-height:1.45}
.primary{border:1px solid var(--accent);border-radius:5px;background:var(--accent);color:#fff;font-weight:800;padding:8px 12px}
.legend{top:68px;cursor:grab}
.legend.dragging{cursor:grabbing}
#modelAssumption{display:block;margin-top:4px;padding-top:4px;border-top:1px solid #d6e4df;color:#765b18;font-size:9px;line-height:1.35;font-weight:700}
.map-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:4px;min-width:0;min-height:0;padding:5px 7px 7px;background:#f7faf9}
.map-stage{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid #c8d6dc;border-radius:3px;background:#e4eef5}
.timeline{position:relative;inset:auto;transform:none;justify-self:center;width:calc(100% - 68px);max-width:none;display:flex;align-items:center;justify-content:center;gap:6px;overflow:hidden;padding:3px 8px;background:#ffffffd9;border-color:#d7e5e1;box-shadow:inset 0 1px 0 #fff,0 1px 3px #17352f12}
.timeline-track{position:relative;display:grid;gap:2px;flex:0 1 clamp(280px,24vw,560px);min-width:250px;padding-top:10px}
.timeline-zones{position:absolute;left:0;right:0;top:13px;height:5px;border-radius:999px;background:linear-gradient(to right,#2f8bd6 0 var(--forecast-start),#e5b35f var(--forecast-start) 100%);pointer-events:none;opacity:.82;box-shadow:inset 0 0 0 1px #00000012}
.timeline-current-marker{position:absolute;z-index:2;left:var(--current-position);top:6px;width:2px;height:20px;background:#9f302f;border-radius:999px;pointer-events:none}
.timeline-current-marker::before{content:'現在';position:absolute;left:50%;top:-11px;transform:translateX(-50%);color:#7a2020;font-size:9px;font-weight:900;white-space:nowrap}
#timelineRange{position:relative;z-index:3;width:100%;height:20px;margin:0;background:transparent;appearance:none;-webkit-appearance:none}
#timelineRange::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:transparent}
#timelineRange::-webkit-slider-thumb{-webkit-appearance:none;width:17px;height:17px;margin-top:-6px;border:2px solid #fff;border-radius:50%;background:#1976d2;box-shadow:0 1px 5px #17352f40}
#timelineRange::-moz-range-track{height:5px;border-radius:999px;background:transparent}
#timelineRange::-moz-range-thumb{width:15px;height:15px;border:2px solid #fff;border-radius:50%;background:#1976d2;box-shadow:0 1px 5px #17352f40}
.timeline-readout{display:flex;justify-content:center;gap:5px;min-height:0;padding:4px 9px;border:1px solid #d4e2de;border-radius:999px;background:#f7fbfa;font-size:11px;font-weight:900;color:#17352f;white-space:nowrap}
.timeline-readout .source-observed{color:#245f91}.timeline-readout .source-forecast{color:#9a5a00}.timeline-readout .source-aggregate{color:#6d4f86}
.timeline-jumps{display:flex;gap:2px;min-width:0;overflow:hidden;padding:2px;border:1px solid #d4e2de;border-radius:999px;background:#eef6f3}
.timeline-jumps button{min-width:36px;height:22px;padding:0 9px;border:0;border-radius:999px;background:transparent;color:#23443d;font-size:11px;font-weight:900}
.timeline-jumps button:hover{background:#fff}
.timeline-jumps button.active{background:#1f6f5c;color:#fff;box-shadow:0 1px 4px #17352f24}
@media(max-width:1180px){.timeline{width:100%;display:grid;grid-template-columns:auto minmax(180px,1fr) auto;gap:3px}.timeline-jumps-left{grid-column:1;grid-row:1}.timeline-track{grid-column:2;grid-row:1;min-width:180px}.timeline-jumps-right{grid-column:3;grid-row:1}.timeline-readout{grid-column:1/-1;grid-row:2;justify-self:center}}
@media(max-width:760px){main{height:auto;min-height:0}#mapView{grid-template-columns:1fr;grid-template-rows:minmax(220px,36vh) minmax(520px,64vh)}.controls{min-height:0}.map-panel{gap:4px;padding:4px}.mydata-grid{grid-template-columns:1fr}.calendar-days{grid-template-columns:1fr}.detail-summary{grid-template-columns:1fr}.map-info-bar{left:50px;right:6px;top:6px;gap:4px}.map-context-subject{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;flex:1 1 auto;max-width:none;min-height:54px;padding:5px 7px}.map-context-subject>i{display:none}.map-context-subject .map-context-field{display:flex;align-items:baseline;gap:4px}.map-context-field>span{flex:0 0 auto;font-size:8px}.map-context-field>strong,.map-context-subject .map-context-field:first-child strong{font-size:10px}.map-context-time{min-height:54px;gap:5px;padding:5px 6px}.map-context-source-stack{min-width:38px}.map-context-source{min-width:36px;padding:3px 5px;font-size:10px}#mapContextSlot{max-width:44px;font-size:8px}.map-context-target{padding-left:5px}#mapContextTime{display:grid;gap:0}#mapContextDate{font-size:9px}#mapContextClock{font-size:13px}.map-context-extras{top:58px;max-width:100%}.legend{top:70px}.timeline{width:100%;grid-template-columns:auto minmax(100px,1fr) auto;padding:4px;gap:3px}.timeline-track{min-width:100px}.timeline-readout{gap:4px;font-size:10px}.timeline-jumps button{min-width:30px;padding:0 6px;font-size:10px}}
.official-links{display:grid;grid-template-columns:1fr;gap:5px}.official-links a{display:block;padding:7px 9px;border:1px solid #cbd9d5;border-radius:7px;background:#f7fbfa;color:#176354;text-decoration:none;font-size:12px;font-weight:700}.official-links a::after{content:" ↗"}.official-links a:hover,.official-links a:focus-visible{background:#e8f5f1;border-color:#7bb2a6}
