/* Haimikke: white canvas, teal shapes and small sunny discovery accents. */
:root{--accent:#12685c;--accent-hover:#0a5147;--soft:#eaf6f1;--sun:#f2c94c;--ink:#203331;--muted:#566a65}
.brand{gap:10px}.brand-mark{background:transparent;border:0;border-radius:0;width:44px;height:50px}.brand-mark img{width:40px;height:47px;display:block}.brand strong{font-family:"Arial Rounded MT Bold","Hiragino Maru Gothic ProN","Yu Gothic",system-ui,sans-serif;font-size:27px;letter-spacing:.01em;font-weight:850;color:var(--accent);line-height:1.15}.brand small{font-size:9px;letter-spacing:.04em;color:var(--muted)}
.brand .trial{background:#fff7d6;border:0;color:#67541b;border-radius:6px}.summary-button{border-radius:16px;background:#f4f8f6;border-color:#e0ebe6}.summary-button:hover{background:#eaf3ef}
.panel-heading h1,.dialog-heading h2{font-family:"Hiragino Maru Gothic ProN","Yu Gothic",system-ui,sans-serif;font-weight:800;letter-spacing:.01em}.panel-heading h1{font-size:25px;line-height:1.5;margin-top:10px}.panel-heading h1::after{content:"";display:block;width:32px;height:5px;background:var(--sun);border-radius:8px;margin-top:10px}.eyebrow{color:var(--accent);letter-spacing:.13em}.panel-heading>p{line-height:1.9}.account-banner{background:#f7fbf9}
.chip-button{border-radius:18px;font-weight:600}.chip-button[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 3px 0 #084e4418}.chip-button[aria-pressed=true]::before{content:"✓";display:inline-block;margin-right:5px;color:var(--sun)}
.spot-card{border-radius:20px;border-color:#deebe5;box-shadow:0 3px 12px #12685c08;transition:box-shadow .18s ease,border-color .18s ease}.spot-card:hover{border-color:#afcec0;box-shadow:0 5px 16px #12685c12}.spot-select:hover{background:#f5fbf8}.spot-number{border-radius:14px;background:#e8f5ee;color:var(--accent)}.genre-icon svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}.spot-heading strong{font-weight:750}.spot-arrow{color:var(--accent);background:#fff6cf;border-radius:50%;width:24px;height:24px;text-align:center;line-height:21px}.tag{border-radius:8px}.tag.unknown{background:#f2f5f4;color:#5b6b66}
.map-pill{font-weight:650;border-radius:19px;transition:box-shadow .16s ease,transform .16s ease}.map-pill:active{transform:scale(.97)}.pin.active{background:var(--sun);color:#243c35;outline:3px solid #fff;border-color:var(--accent)}.pin{box-shadow:0 3px 0 #0b534b25,0 4px 12px #0b534b25}.cluster{border-radius:15px}
.detail-links a{border-radius:12px;background:#f0f8f4;border-color:#deebe5}.embed-intro button,button[type=submit],#copy-share{border-radius:14px;font-weight:700;box-shadow:0 3px 0 #084e4420}.empty-symbol{background:#fff5cd;color:var(--accent)}.empty-state h2{font-weight:750}.preview-toggle input{accent-color:var(--accent)}
/* Yellow brand accents never replace the separate forecast warning treatment. */
.map-information{background:#fffaf0}.warning{background:#fff3da}.error{background:#fff0ed}
@media(max-width:760px){.brand-mark{width:31px;height:38px;flex:none}.brand-mark img{width:30px;height:35px}.brand strong{font-size:20px;white-space:nowrap}.brand small{font-size:8px}.brand .trial{margin-left:3px}.app-header{gap:5px;padding-inline:11px}.header-actions{gap:4px}.summary-button{padding:7px 6px;max-width:78px;font-size:9px}.brand{gap:6px}.spot-number{border-radius:11px}.genre-icon svg{width:20px;height:20px}.browse-panel{border-radius:24px 24px 0 0}.sheet-toggle{border-radius:24px 24px 0 0}.sheet-toggle .handle{background:#b6cfc3}.spot-card{border-radius:17px}}
@media(max-width:350px){.brand strong{font-size:18px}.brand small{font-size:7px}.summary-button{max-width:64px;padding:7px 5px}.brand-mark{width:27px}.brand-mark img{width:26px}}
@media(prefers-reduced-motion:reduce){.spot-card,.map-pill{transition:none}.map-pill:active{transform:none}}

/* Approved user-adjusted lockup: retain SVG proportions and yellow rays. */
.brand-lockup{display:block;min-width:0}.brand-logo{display:block;width:242px;height:auto;max-width:100%}.brand-lockup>small{padding-left:47px;margin-top:3px;line-height:1.3}
@media(max-width:760px){.brand-logo{width:182px}.brand-lockup>small{padding-left:35px;font-size:8px;margin-top:2px}}
@media(max-width:350px){.brand-logo{width:157px}.brand-lockup>small{padding-left:30px;font-size:7px}}

/* Readability review: scale by role, allow labels to wrap instead of shrinking. */
:root{--type-title:1.563rem;--type-body:1rem;--type-action:.875rem;--type-note:.75rem;--type-forecast:.875rem}
body{font-size:var(--type-body)}button{font-size:var(--type-action)}
.app-header{height:auto;min-height:76px;padding-block:10px}.header-actions{flex-wrap:wrap}.summary-button{font-size:var(--type-action);min-height:44px;max-width:250px}.summary-button>span:last-child{white-space:normal;overflow:visible;text-overflow:clip}
.filter-bar{height:auto;min-height:58px}.chip-button{font-size:var(--type-action);min-height:44px}.quick-filters{padding-block:2px}.area-label{font-size:var(--type-note)}#filter-number{font-size:var(--type-note)}
.account-banner strong{font-size:var(--type-action)}.account-banner small{font-size:var(--type-note);line-height:1.5}.account-banner button,.account-banner a{font-size:var(--type-note);min-height:40px}.account-banner small{max-width:70ch}
.panel-heading h1{font-size:var(--type-title)}.panel-heading>p{font-size:var(--type-action)}.eyebrow{font-size:var(--type-note)}.spot-heading strong{font-size:var(--type-body);line-height:1.5;overflow-wrap:anywhere}.spot-heading small,.spot-meta,.tag,.data-note,.hint{font-size:var(--type-note);line-height:1.65}.spot-meta{gap:8px;flex-wrap:wrap}.spot-meta>span:first-child{flex:1 1 190px}.tag-list{gap:6px}.tag{padding:4px 8px}#active-summary{font-size:var(--type-note)}.result-line strong{font-size:var(--type-body)}
.preview-toggle{font-size:var(--type-action);padding:8px 16px}.preview-toggle small{font-size:var(--type-note);line-height:1.5}.preview-toggle input{width:18px;height:18px;vertical-align:middle}.detail-note,.embed-intro p,.empty-state p{font-size:var(--type-action);line-height:1.75}.detail-links a,.text-button{font-size:var(--type-action);min-height:44px;display:inline-flex;align-items:center}.detail-scroll h2{overflow-wrap:anywhere}.empty-state h2{font-size:var(--type-body);line-height:1.6}
input,select,textarea{font-size:var(--type-body);min-height:44px}label{font-size:var(--type-action)}.check input{min-height:20px;width:20px;height:20px;flex:none}.icon-button{min-width:44px;min-height:44px}.dialog-heading h2{font-size:1.25rem}.field-grid{gap:0 12px}.dialog-footer{gap:8px;flex-wrap:wrap}
.selected-filters{flex:none;display:flex;gap:6px;flex-wrap:wrap;padding:4px 16px 10px;max-height:130px;overflow:auto}.remove-filter{background:#edf5f2;color:#154f45;border:1px solid #c3dbd0;border-radius:12px;font-size:var(--type-note);min-height:40px;padding:7px 10px;white-space:normal;text-align:left}.remove-filter:hover{background:#dcece5}
.map-pill{font-size:var(--type-action);min-height:44px}.map-information p{font-size:var(--type-forecast);line-height:1.55}.map-information p>*{display:block}.map-information .text-button{font-size:var(--type-note);min-height:36px;padding:3px 0}.legend-item,.map-information .legend-item{font-size:var(--type-note)}.map-information{max-width:min(580px,calc(100% - 32px))}.sheet-toggle{font-size:var(--type-action);min-height:44px}.notice{font-size:var(--type-action)}.brand-lockup>small{font-size:.688rem}.brand .trial{font-size:.625rem}.weather-day p,.weather-day strong,.rain-times,.warning,.error,#ash-meta a{font-size:var(--type-action)}
@media(max-width:760px){
 .app-header{min-height:76px;flex-wrap:wrap;gap:8px}.brand-logo{width:182px}.header-actions{gap:6px;flex:1;justify-content:flex-end}.summary-button{font-size:var(--type-note);max-width:150px;min-height:44px;padding:8px}.summary-button>span:last-child{max-width:none;white-space:normal;overflow:visible}.filter-bar{min-height:60px}.chip-button{font-size:var(--type-action)}
 .account-banner{align-items:flex-start}.account-banner>div{flex-basis:65%}.account-banner small{font-size:var(--type-note)}.account-banner strong{font-size:var(--type-action)}.account-banner button{font-size:var(--type-note)}
 .browse-panel{height:300px;max-height:calc(100% - 65px)}.browse-panel.expanded{height:70dvh}.browse-panel.detail-open{height:76dvh}.sheet-toggle{height:44px;font-size:var(--type-action)}.panel-heading{padding-top:4px}.result-line{padding-bottom:6px}.spot-heading strong{font-size:var(--type-body)}.spot-heading small,.spot-meta,.tag{font-size:var(--type-note)}.preview-toggle{font-size:var(--type-note);padding:4px 14px}.preview-toggle small{display:none}.selected-filters{padding-inline:12px;max-height:96px}.spot-select{padding:12px}.browse-panel:not(.expanded):not(.detail-open) .results-scroll{overflow:auto}.browse-panel:not(.expanded):not(.detail-open) .spot-meta{display:flex}.browse-panel:not(.expanded):not(.detail-open) .tag-list{display:none}
 .map-top-tools{left:10px;right:48px;white-space:normal;gap:6px}.map-pill{font-size:var(--type-note);padding:8px 10px}.map-side-tools{top:112px}.map-information{bottom:316px;left:10px;right:10px;max-width:none}.map-information p{font-size:.813rem;line-height:1.5}.map-information .text-button{font-size:var(--type-note)}.map-information .legend-item{font-size:var(--type-note)}
 .workspace:has(.browse-panel.expanded) .map-information,.workspace:has(.browse-panel.detail-open) .map-information{top:62px;right:55px;padding:7px 9px}.map-information p>span:last-child{font-size:var(--type-note)}.notice{bottom:310px}.brand-lockup>small{font-size:.625rem}
}
@media(max-width:360px){.app-header{align-items:center}.header-actions{flex-basis:100%;justify-content:flex-start}.summary-button{max-width:calc(50% - 3px);flex:1}.brand-logo{width:170px}.field-grid{grid-template-columns:1fr}.account-banner>div{flex-basis:100%}}
@media(max-height:650px){body{overflow-y:auto;height:auto;min-height:100dvh}.workspace{flex:none;height:650px;min-height:650px}.browse-panel.expanded,.browse-panel.detail-open{height:520px}.map-information{max-height:220px;overflow:auto}}

@media(max-width:360px){body{height:auto;min-height:100dvh;overflow-y:auto}.workspace{height:600px;min-height:600px;flex:none}}

@media(max-width:760px){.browse-panel.expanded,.browse-panel.detail-open{max-height:calc(100% - 235px)}}

/* Mobile map-first: closed sheet is only an accessible 56px opener. */
@media(max-width:760px){
 body{height:100dvh;min-height:0;overflow:hidden}.workspace{height:auto;min-height:0;flex:1}
 .browse-panel:not(.expanded):not(.detail-open){height:56px;max-height:56px;border-radius:19px 19px 0 0}
 .browse-panel:not(.expanded):not(.detail-open) .panel-body{display:none}
 .sheet-toggle{height:56px;min-height:56px;padding:15px 16px 7px;font-size:var(--type-action)}
 #sheet-count{background:#eaf5ef;color:#12685c;padding:2px 9px;border-radius:12px;font-weight:700}
 .map-information{bottom:72px;max-height:min(210px,calc(100% - 140px));overflow:auto}
 .workspace:has(.browse-panel:not(.expanded):not(.detail-open)) .map-information{top:auto;bottom:72px;right:10px;left:10px}
 .notice{bottom:72px}
 .workspace:has(.browse-panel.expanded) .notice,.workspace:has(.browse-panel.detail-open) .notice{bottom:25px}
}
@media(max-width:760px) and (max-height:500px){body{height:auto;min-height:100dvh;overflow-y:auto}.workspace{height:480px;min-height:480px;flex:none}}

/* Distinguish passive weather from the sole header action. */
.weather-status{display:flex;align-items:center;gap:6px;color:#344d48;font-size:.875rem;line-height:1.4;background:none;border:0;box-shadow:none;cursor:default;max-width:180px}.weather-status svg{width:30px;height:30px;flex:none;stroke:#57716b;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.weather-place{overflow-wrap:anywhere}.settings-button{width:44px;height:44px;min-width:44px;flex:none;padding:10px;background:#edf5f2;color:#12685c;border-radius:14px}.settings-button:hover{background:#deece5}.settings-button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.header-actions{align-items:center;gap:14px;flex-wrap:nowrap}.brand-lockup>small{padding-left:0;font-size:.75rem;line-height:1.5;max-width:390px;margin-top:6px}.display-settings{background:#f2f8f5;border-radius:14px;padding:12px 16px;margin-bottom:18px}.display-settings h3{font-size:1rem;margin:0 0 8px}
@media(max-width:760px){.app-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 8px;padding:10px 12px}.brand,.brand-lockup{display:contents}.brand-logo{grid-column:1;grid-row:1;width:182px}.brand-lockup>small{grid-column:1/-1;grid-row:2;padding:0;font-size:.75rem;line-height:1.5;max-width:none;margin:2px 0 0}.header-actions{grid-column:2;grid-row:1;gap:8px;justify-content:flex-end}.weather-status{font-size:.75rem;max-width:95px;gap:3px}.weather-status svg{width:27px;height:27px}.settings-button{width:44px;height:44px}}
@media(max-width:350px){.brand-logo{width:150px}.app-header{column-gap:5px;padding-inline:10px}.weather-status{max-width:88px;font-size:.75rem}.header-actions{gap:4px}.weather-status svg{width:23px;height:23px}}

.map-information{padding-right:52px!important}.ash-dismiss{position:absolute;top:3px;right:3px;width:44px;height:44px;min-width:44px;padding:0;border-radius:12px;background:transparent;color:#694b20;font-size:25px;line-height:1;display:grid;place-items:center}.ash-dismiss:hover{background:#f4e9d3}.map-information[hidden]{display:none!important}

.map-side-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px}#locate-me{display:flex;align-items:center;gap:5px}#locate-me svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}#locate-me[aria-busy=true]{cursor:wait}

/* Keep the filter row geometry stable when selection/reset controls appear. */
.quick-filters>*{flex-shrink:0}.quick-filters #reset{white-space:nowrap}
.chip-button[data-filter]::before{content:"";display:inline-block;width:.8em;margin-right:5px;flex:none}
.chip-button[data-filter][aria-pressed=true]::before{content:"✓";color:var(--sun)}

/* Reserve no empty glyph slot: selection mark overlays the existing padding. */
.chip-button[data-filter]{position:relative}
.chip-button[data-filter]::before{display:none;content:none;width:auto;margin:0}
.chip-button[data-filter][aria-pressed=true]::before{display:block;content:"✓";position:absolute;left:3px;top:50%;transform:translateY(-50%);font-size:.625rem;line-height:1;width:auto;margin:0;pointer-events:none}

.sample-note{font-size:.813rem;line-height:1.65;color:#566a65;margin:10px 0}.sample-disclaimer{background:#fff5d9;border:1px solid #ead6a5;border-radius:12px;padding:12px;font-size:.813rem;line-height:1.7}.sample-disclaimer p{margin:6px 0}.sample-disclaimer a{font-size:.813rem}

/* 地図の個別地点は一覧と共通のジャンルアイコン。集合は件数と明記。 */
.map-genre-icon{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.map-genre-icon svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}.pin.cluster{font-size:13px;white-space:nowrap}

@media(max-width:760px){.sheet-toggle{touch-action:none;cursor:ns-resize;user-select:none}.browse-panel.expanded.sheet-tall,.browse-panel.detail-open.sheet-tall{height:calc(100% - 12px);max-height:calc(100% - 12px)}.browse-panel{transition:height .2s ease,max-height .2s ease}}
@media(prefers-reduced-motion:reduce){.browse-panel{transition:none}}

.result-line{flex-wrap:wrap;gap:8px}.results-map-button{font-size:var(--type-action);min-height:44px;margin-left:auto;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.map-side-tools #ash-extent{white-space:nowrap}

/* Compact map title; sharing belongs with map actions. */
.account-banner{padding:5px 16px;min-height:0;gap:0;align-items:center;line-height:1.4}.account-banner>div{flex:1;min-width:0}.account-banner strong{display:block;font-size:13px;line-height:1.4;font-weight:650}.account-banner #owner-note{display:none}.share-map-icon{width:44px;height:44px;min-width:44px;padding:10px;display:flex;align-items:center;justify-content:center;align-self:flex-end}.share-map-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}#all-map{font-size:13px;margin-top:8px;display:inline-block}#all-map[hidden]{display:none}
@media(max-width:760px){.account-banner{padding:4px 12px;min-height:0}.account-banner>div{flex-basis:auto}.account-banner strong{font-size:12px;line-height:1.5}.map-side-tools{gap:8px}}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}#locate-me{width:44px;height:44px;padding:10px;justify-content:center}#locate-me svg{width:22px;height:22px}.ash-panel-toggle{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:10px}.ash-panel-toggle svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}#ash-info-panel #fit-ash-inline{font-size:12px;min-height:36px;margin-right:12px;text-decoration:underline;text-underline-offset:3px}

.sheet-toolbar{display:none}
@media(max-width:760px){.sheet-toolbar{display:block;position:relative;flex:none;height:56px;min-height:56px}.sheet-toolbar .sheet-toggle{width:100%;height:56px;margin:0}.sheet-actions{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.sheet-actions button{min-height:44px;padding:8px 12px;font-size:14px;border-radius:12px;background:#f5edda;color:#383b40;font-weight:650}.sheet-actions #sheet-map{background:#f1f2f2;color:#50545a;font-weight:500}.browse-panel.expanded .sheet-toggle #sheet-label,.browse-panel.expanded .sheet-toggle #sheet-count,.browse-panel.detail-open .sheet-toggle #sheet-label,.browse-panel.detail-open .sheet-toggle #sheet-count{visibility:hidden}}

.origin-actions{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}.origin-actions button{min-height:44px;margin:0}@media(max-width:480px){.origin-actions{flex-direction:column;align-items:stretch}.origin-actions button{width:100%}}
