:root{font-family:system-ui,-apple-system,"Segoe UI","Yu Gothic UI",sans-serif;color:#172c37;background:#f0f4f5;line-height:1.6;font-size:16px;--blue:#08716f;--border:#d4dfe2;--muted:#536a76;--panel:#fff}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.home{min-height:44px;border:1px solid var(--border);border-radius:8px;background:white;color:#172c37;padding:.55rem .85rem;font-weight:650;cursor:pointer}button:hover:not(:disabled),.home:hover{background:#e6f3f1;border-color:#43908b}button:disabled{opacity:.5;cursor:default}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover:not(:disabled){background:#075c5b;color:white}.quiet{font-size:.875rem;background:transparent}input,select,textarea{border:1px solid #9aadb5;border-radius:7px;background:white;color:#172c37;padding:.55rem .65rem;min-height:44px;max-width:100%}textarea{display:block;width:100%;resize:vertical;font-size:.94rem;line-height:1.7}textarea::placeholder{color:#667d89}input[type=number]{width:6rem}select{min-width:4.5rem}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #ca890d;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:1.15rem;letter-spacing:.03em}h2{font-size:1.1rem;line-height:1.5}h3{font-size:1rem}p{color:var(--muted)}a{color:#086d71}.masthead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem max(1rem,calc((100vw - 1320px)/2));background:#142f3a;color:white}.brand{display:flex;align-items:center;gap:.7rem}.brand-mark{font-size:1.6rem;color:#78d5c5}.chip{display:inline-block;font-size:.875rem;padding:.15rem .55rem;border-radius:5px;background:#284955;color:#e7fffa}.home{display:flex;align-items:center;text-decoration:none;white-space:nowrap}main{max-width:1320px;margin:auto;padding:1.2rem 1.5rem}.view-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.view-heading h2{font-size:1.35rem;letter-spacing:.015em}.view-heading>p{font-size:.875rem;max-width:18rem}.eyebrow{font-size:.8rem;font-weight:700;color:#08716f;margin-bottom:.25rem}.session-bar{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-bottom:1rem;background:#dfece9;border:1px solid #bed9d3;border-radius:10px;padding:.85rem 1.1rem}.session-title{min-width:0;display:flex;align-items:center;gap:.8rem;margin-right:auto}.grade{font-size:1.1rem;padding:.65rem;font-weight:800;background:white;color:#086762;border-radius:8px}.session-title h2{font-size:1.35rem}.session-title p{font-size:.875rem}label{font-size:.875rem;font-weight:650;display:flex;align-items:center;gap:.5rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.15rem;min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.7rem}.panel>p{margin:.6rem 0;font-size:.875rem}.full{width:100%;margin-top:.65rem}.small{font-size:.875rem;color:var(--muted);line-height:1.6}.privacy{margin-top:.65rem!important}.count{background:#e8f3f0;border-radius:6px;padding:.2rem .55rem;font-size:.875rem;font-weight:700;color:#086762;white-space:nowrap}.macro-section{border-top:1px solid var(--border);margin-top:1rem;padding-top:.8rem}.macro-section>p{margin-top:.5rem}.macro-section summary{font-size:.875rem}details summary{cursor:pointer;min-height:36px;display:list-item;align-content:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}[hidden]{display:none!important}


.sample-panel{margin-bottom:1rem;border-color:#78aaa0;background:#f0f8f5}
.sharing-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}.sharing-actions .primary{flex:1}.finder-grid{display:grid;grid-template-columns:minmax(290px,.82fr) minmax(340px,1.18fr);gap:1.6rem;align-items:start}.map-locations,.map-canvas{min-width:0}.gallery-help{margin-bottom:.7rem}.fragment-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.fragment-choices button{position:relative;min-width:0;padding:.35rem;border:2px solid transparent;background:#fff;box-shadow:0 1px 4px #1a394314;text-align:left;border-radius:9px;overflow:hidden}.fragment-choices button[aria-pressed=true]{border-color:#08716f;background:#e2f3ee;box-shadow:0 0 0 1px #08716f}.fragment-choices button:hover{border-color:#61aaa0}.fragment-choices img{display:block;width:100%;height:auto;aspect-ratio:430/365;object-fit:contain;border-radius:5px;background:#e8dfc7}.fragment-label{display:flex;justify-content:space-between;align-items:center;padding:.3rem .2rem .1rem;font-size:.875rem}.fragment-label small{font-size:.75rem;font-weight:400;color:#536a76}.fragment-choices button[aria-pressed=true] .fragment-label::after{content:"選択中";font-size:.75rem;color:#08716f}.thumb-empty{display:grid;place-items:center;aspect-ratio:430/365;background:#f1f4f5;color:#627780;font-size:.875rem}.map-selected{padding:.7rem 1rem;background:#142f3a;border-radius:8px;color:white;font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}.area-map{margin-top:.7rem}.area-map>summary{font-weight:650;font-size:.875rem}.map-toolbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.45rem 0 .65rem}.map-toolbar [aria-pressed=true]{background:#08716f;color:#fff;border-color:#08716f}.map-toolbar .small{font-size:.8rem}.map-viewport{width:100%;aspect-ratio:1;overflow:auto;background:#e7ddbd;border:1px solid #b9ac87;border-radius:5px;overscroll-behavior:contain}.map-viewport:focus-visible{outline:3px solid #ca890d;outline-offset:3px}.map-viewport img{display:block;width:100%;height:auto;max-width:none}.map-stage{position:relative;width:100%;aspect-ratio:1}.map-viewport.is-zoomed{cursor:grab}.map-viewport.is-dragging{cursor:grabbing;user-select:none}.map-overlay{position:absolute;inset:0;pointer-events:none}.map-overlay svg{display:block;width:100%;height:100%;max-height:none}.map-instruction{margin-top:.8rem;font-size:.94rem;color:#243d48}.map-copyright{font-size:.8rem;margin-top:.5rem}.fragment-reference{margin-top:1rem;padding:.7rem 1rem;border:1px solid var(--border);border-radius:8px;background:white}.fragment-reference summary{font-size:.875rem}.fragment-reference h3{font-size:.95rem;margin-top:.5rem}.fragment-reference img{display:block;width:100%;height:auto;max-width:430px;margin:.7rem auto}.fragment-placeholder{aspect-ratio:430/365;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;background:#f2f5fa;border:2px dashed #b4c2d5;color:#526278;margin:.7rem 0}.fragment-placeholder span{font-size:.875rem}@media(min-width:1100px){.fragment-choices img{max-height:155px}}@media(max-width:700px){.finder-grid{grid-template-columns:1fr;gap:1.2rem}.fragment-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.fragment-label{font-size:.8rem}.fragment-label small,.fragment-choices button[aria-pressed=true] .fragment-label::after{display:none}.map-canvas{position:static}.gallery-help{font-size:.8rem}}@media(max-width:420px){.fragment-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.fragment-choices img{max-height:112px}.map-selected{font-size:1.05rem}}

@media(min-width:701px){.map-canvas{width:100%;justify-self:center}.finder-grid.is-wide{grid-template-columns:minmax(200px,.5fr) minmax(340px,1.5fr)}}
.map-toolbar button{min-width:44px}.fragment-reference{margin:0 0 .8rem}.map-wide-toggle{margin-left:auto}@media(max-width:700px){.finder-grid.is-wide{grid-template-columns:1fr}.map-wide-toggle{display:none}}
@media(max-width:800px){main{padding:1rem}.view-heading{align-items:start}.view-heading>p{display:none}.panel{padding:1rem}}@media(max-width:420px){.view-heading h2{font-size:1.15rem}.brand{gap:.45rem}}

/* Shared grade picker and resume card: keep both grades on the same rules. */
.grade-switch{position:relative;width:max-content;max-width:100%;margin:0 0 16px;font-size:16px;color:#172c37}
.grade-switch summary{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;padding:8px 16px;border:1px solid #d4dfe2;border-radius:8px;background:#fff;cursor:pointer;font-weight:650;list-style:none}
.grade-switch summary::-webkit-details-marker{display:none}
.grade-switch summary::after{content:"▾"}.grade-switch[open] summary::after{content:"▴"}
.grade-options{position:absolute;top:calc(100% + 6px);left:0;z-index:30;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:330px;max-width:calc(100vw - 32px);max-height:60vh;overflow:auto;padding:10px;background:#fff;border:1px solid #9aadb5;border-radius:10px;box-shadow:0 8px 24px #142f3a25}
.grade-options>*{display:grid;align-content:center;min-height:52px;padding:4px;text-align:center;border:1px solid #d4dfe2;border-radius:6px;font-size:14px;line-height:20px;color:#086d71;text-decoration:none;background:#fff}
.grade-options small{display:block;font-size:11px}.grade-options [aria-current]{color:#fff;background:#08716f}.grade-options [aria-disabled]{color:#637984;background:#f3f5f5;border-color:transparent}
.grade-options a:hover{background:#e6f3f1}.grade-switch :focus-visible{outline:3px solid #ca890d;outline-offset:2px}
.resume{max-width:660px;margin:2.5rem auto;padding:1.5rem;background:#fff;border:2px solid #08716f;border-radius:10px;color:#172c37;font-size:16px;line-height:1.6}
.resume h2{font-size:1.1rem;line-height:1.5;margin:0 0 .7rem;font-weight:700}
.resume p{color:#536a76;margin:0 0 .7rem}.resume .small{font-size:.875rem;line-height:1.6}
.resume-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0 0}
.resume-actions button{flex:1;margin:0;min-width:180px;min-height:44px;padding:.55rem .85rem;font:650 1rem/1.6 system-ui,-apple-system,"Segoe UI","Yu Gothic UI",sans-serif;color:#172c37;background:#fff;border:1px solid #d4dfe2;border-radius:8px}
.resume-actions .primary{background:#08716f;border-color:#08716f;color:#fff}
.resume-actions button:hover{background:#e6f3f1;border-color:#43908b}.resume-actions .primary:hover{background:#075c5b;color:#fff}
:is(.mode-tabs,.mode-switch){display:flex;gap:.3rem;border-bottom:1px solid #d4dfe2;margin:0 0 1.3rem}
:is(.mode-tabs,.mode-switch) button{min-width:180px;border:0;border-radius:0;background:transparent;padding:.65rem 1.4rem;color:#536a76;border-bottom:3px solid transparent;font-weight:650}
:is(.mode-tabs,.mode-switch) :is([aria-selected=true],[aria-pressed=true]){border-bottom-color:#08716f;color:#086762}
.mode-subtitle{display:block;margin:0;background:none;padding:0;font-size:.875rem;font-weight:400}
:is(#party-badge,#host-badge):not(:empty){font-size:.8rem;margin-left:.35rem;padding:.1rem .4rem;background:#deebe9;border-radius:4px}
@media(max-width:800px){:is(.mode-tabs,.mode-switch) button{min-width:0;flex:1}}
@media(max-width:420px){:is(.mode-tabs,.mode-switch) button{padding:.6rem .65rem;font-size:.9rem}}
.skip{position:absolute;left:.5rem;top:-100px;background:white;color:#172c37;padding:1rem;z-index:20}.skip:focus{top:.5rem}.area-picker{white-space:nowrap}.area-picker select{white-space:normal}.attention{border-color:#e0b75f;border-left:4px solid #b77d08;background:#fffcf4}
.view-heading>button{flex-shrink:0;white-space:nowrap}
.round-footer{padding:1rem .2rem}.round-footer button{white-space:nowrap}@media(max-width:420px){.round-footer button{width:100%}}
