:root{color:#16181a;font-synthesis:none;--surface:#f4f4f1;--paper:#ecece7;--border:#c9c9c2;--muted:#62645f;--ink:#16181a;--accent:#4f6b45;--accent-soft:#dce6d7;background:#f4f4f1;font-family:system-ui,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:17px;line-height:1.7}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--surface);min-width:320px;margin:0}a{color:inherit;text-underline-offset:.25em}button,input,select{font:inherit}button,a{touch-action:manipulation}.skip-link{z-index:100;background:var(--ink);color:#fff;padding:.75rem 1rem;position:fixed;top:-100px;left:1rem}.skip-link:focus{top:1rem}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#f4f4f1f5;justify-content:space-between;align-items:center;height:72px;padding:0 clamp(16px,4vw,64px);display:flex;position:sticky;top:0}.brand img{width:144px;height:40px;display:block}.topbar nav,.actions,footer nav{align-items:center;gap:1rem;display:flex}.topbar nav a{font-size:.92rem;text-decoration:none}.topbar nav a:hover,.topbar nav a:focus-visible{text-decoration:underline}main{min-height:70vh}.map-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:2rem;padding:clamp(32px,7vw,96px) clamp(16px,5vw,76px) 40px;display:flex}h1{letter-spacing:-.055em;max-width:12ch;margin:.2em 0 .3em;font-size:clamp(2.5rem,6vw,5.8rem);line-height:1.02}h2{letter-spacing:-.025em;line-height:1.25}.eyebrow{color:var(--accent);letter-spacing:.02em;font-weight:750}.map-hero>div>p:last-child{max-width:46ch;color:var(--muted)}.count{text-align:right;display:grid}.count strong{font-variant-numeric:tabular-nums;color:var(--accent);font-size:clamp(4rem,9vw,9rem);line-height:.8}.count span{margin-top:1rem}.freshness{border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding:12px clamp(16px,5vw,76px);font-size:.86rem;display:flex}.filters{background:var(--border);border-bottom:1px solid var(--border);grid-template-columns:minmax(220px,1fr) minmax(160px,.35fr);gap:1px;display:grid}.filters label{background:var(--surface);gap:.35rem;padding:14px clamp(16px,5vw,76px) 14px 16px;font-size:.78rem;font-weight:700;display:grid}.filters input,.filters select,.form-page input{border:0;border-bottom:2px solid var(--ink);color:var(--ink);background:0 0;min-height:44px;padding:.35rem 0}.map-layout{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);height:min(72vh,780px);min-height:560px;display:grid}.map-wrap,.map-canvas{height:100%;min-height:420px}.map-wrap{background:radial-gradient(circle at 30% 30%,#ecece7,#d7d7d0);position:relative}.map-canvas[data-failed=true]:after{content:"지도 배경을 불러오지 못했어요. 오른쪽 목록을 이용해 주세요.";background:var(--surface);border:1px solid var(--ink);padding:.8rem;position:absolute;inset:1rem auto auto 1rem}.cluster-mark{border:3px solid var(--accent);background:var(--surface);width:44px;height:44px;color:var(--ink);cursor:pointer;border-radius:50%;font-weight:800}.cluster-mark:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.case-list{border-left:1px solid var(--border);background:var(--surface);overflow:auto}.list-head{border-bottom:1px solid var(--border);padding:1.4rem}.list-head h2,.list-head p{margin:.1rem 0}.list-head p,.case-row p{color:var(--muted);font-size:.85rem}.case-row{border-bottom:1px solid var(--border);grid-template-columns:52px 1fr auto;align-items:center;gap:1rem;min-height:112px;padding:1rem 1.3rem;text-decoration:none;display:grid}.case-row:hover,.case-row:focus-visible{background:var(--accent-soft);outline:none}.case-glyph{background:var(--paper);border:1px solid var(--border);place-items:center;width:48px;height:56px;font-size:1.25rem;font-weight:800;display:grid}.row-title{align-items:baseline;gap:.5rem;display:flex}.row-title span{border:1px solid var(--border);padding:0 .35rem;font-size:.72rem}.case-row p{margin:.1rem 0}.notice{border-left:5px solid var(--accent);background:var(--accent-soft);margin:1.25rem clamp(16px,5vw,76px);padding:1rem 1.2rem}.notice.warn{background:#f0e6ce;border-color:#7a5d20}.notice.error{background:#efdcda;border-color:#8b3730}.notice p{margin:.2rem 0}.actions{flex-wrap:wrap;margin-top:1rem}.actions a,.actions button,.primary,button.primary{border:1px solid var(--ink);min-height:48px;color:var(--ink);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:.65rem 1rem;text-decoration:none;display:inline-flex}.actions .primary,.primary{background:var(--ink);color:var(--surface)}.after-value{max-width:1000px;padding:clamp(42px,8vw,100px) clamp(16px,8vw,120px)}.after-value p{max-width:58ch}.empty{text-align:center;padding:3rem 1.5rem}.empty>span{color:var(--accent);font-size:5rem}.skeleton{background:linear-gradient(90deg,var(--paper),#e2e2dc,var(--paper));background-size:200% 100%;height:92px;margin:1rem;animation:1.3s infinite pulse}@keyframes pulse{to{background-position:-200% 0}}.detail,.article,.form-page,.status-page,.guide-index{max-width:1100px;margin:auto;padding:clamp(42px,8vw,100px) clamp(16px,5vw,64px)}.detail h1,.article h1,.form-page h1,.status-page h1,.guide-index>h1{font-size:clamp(2.8rem,7vw,6rem)}.fact-grid,.status-grid{border:1px solid var(--border);grid-template-columns:repeat(4,1fr);margin:3rem 0;display:grid}.fact-grid>div,.status-grid>div{border-right:1px solid var(--border);padding:1.2rem}.fact-grid>div:last-child,.status-grid>div:last-child{border:0}.fact-grid span,.status-grid span{color:var(--muted);font-size:.8rem;display:block}.fact-grid strong,.status-grid strong{margin-top:.4rem;display:block}.report{background:var(--accent-soft);border-top:5px solid var(--accent);margin-top:3rem;padding:clamp(20px,4vw,42px)}.source-note{color:var(--muted);margin-top:2rem;font-size:.8rem}.guide-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(3,1fr);gap:1px;margin-top:4rem;display:grid}.guide-card{background:var(--surface);min-height:260px;padding:1.4rem;text-decoration:none}.guide-card:hover,.guide-card:focus-visible{background:var(--accent-soft);outline:3px solid var(--ink);outline-offset:-3px}.guide-card>span{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:800}.guide-card p,.article p{max-width:64ch}.lede{font-size:1.35rem;font-weight:650}.article section{margin:3rem 0}.article hr{border:0;border-top:1px solid var(--border);margin:3rem 0}.form-page{max-width:760px}.form-page>label{gap:.5rem;margin:2rem 0;font-weight:700;display:grid}.form-page fieldset{border:0;margin:2rem 0;padding:0}.segmented{border:1px solid var(--ink);grid-template-columns:repeat(4,1fr);display:grid}.segmented button{border:0;border-right:1px solid var(--ink);background:0 0;min-height:52px}.segmented button:last-child{border-right:0}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.toggle{align-items:center;grid-template-columns:28px 1fr!important}.toggle input{width:24px;height:24px}.estimate{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;margin:2rem 0;padding:1.2rem 0;display:flex}.wide{cursor:pointer;border:0;width:100%;min-height:56px}.success{color:var(--accent);font-weight:800}.danger-zone{border-top:1px solid var(--border);gap:.75rem;margin-top:5rem;padding-top:1rem;display:grid}.danger-zone button{border:1px solid var(--ink);text-align:left;cursor:pointer;background:0 0;padding:.7rem}.status-grid{grid-template-columns:repeat(3,1fr)}.ok{color:var(--accent)}.pending{color:#7a5d20}footer{border-top:1px solid var(--border);background:#e8e8e3;grid-template-columns:1fr auto;gap:2rem;padding:2.5rem clamp(16px,5vw,76px);display:grid}footer p{color:var(--muted);margin:.3rem 0}footer small{color:var(--muted);grid-column:1/-1}:focus-visible{outline:3px solid var(--ink);outline-offset:3px}@media (width<=800px){.topbar{align-items:flex-start;gap:8px;height:auto;min-height:68px;padding:12px 16px}.brand img{width:120px}.topbar nav{gap:.7rem;max-width:62vw;overflow:auto}.topbar nav a{white-space:nowrap}.map-hero{flex-direction:column;align-items:flex-start}.count{text-align:left}.count strong{font-size:5rem}.freshness{flex-direction:column}.filters{grid-template-columns:1fr}.filters label{padding:12px 16px}.map-layout{grid-template-columns:1fr;height:auto}.map-wrap,.map-canvas{height:46vh;min-height:320px}.case-list{border-left:0;max-height:none}.fact-grid,.status-grid{grid-template-columns:1fr 1fr}.fact-grid>div,.status-grid>div{border-right:0;border-bottom:1px solid var(--border)}.guide-grid{grid-template-columns:1fr}.guide-card{min-height:0}.guide-card h2{font-size:1.15rem}.guide-card p{font-size:.9rem}footer{grid-template-columns:1fr}footer nav{flex-wrap:wrap}h1{font-size:2.65rem}}@media (width<=380px){:root{font-size:16px}.topbar nav a:nth-child(3){display:none}.case-row{grid-template-columns:44px 1fr;gap:.7rem;padding:.9rem}.case-row>span:last-child{display:none}.case-glyph{width:42px;height:50px}.fact-grid,.status-grid{grid-template-columns:1fr}.segmented{grid-template-columns:1fr 1fr}.estimate{display:grid}.actions{align-items:stretch}.actions a,.actions button{width:100%}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.maplibre-runtime{height:100%;min-height:420px}.map-cluster-keyboard-list{z-index:4;gap:.35rem;max-width:calc(100% - 1.5rem);display:flex;position:absolute;bottom:.75rem;left:.75rem;overflow-x:auto}.map-cluster-keyboard-list button{border:2px solid var(--accent);background:var(--surface);min-width:44px;min-height:44px;color:var(--ink);font:inherit;white-space:nowrap;border-radius:999px;font-weight:750}.map-canvas[data-tile-state=loading] .maplibre-runtime{opacity:.35}.sheet-controls{display:none}.range-fields{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.unlocated-notice{border-left:4px solid var(--accent);background:var(--accent-soft);padding:.65rem .75rem;color:var(--ink)!important;margin-top:.75rem!important}.tile-failure-banner{z-index:7;background:#f0e6ce;border:1px solid #7a5d20;margin:0;padding:.8rem 1rem;position:absolute;top:.75rem;left:.75rem;right:.75rem}.boundary-fallback{z-index:5;background:radial-gradient(circle at 50% 45%,#f4f4f1,#dce6d7);position:absolute;inset:0;overflow:hidden}.boundary-fallback svg{width:100%;height:100%;padding:4rem 1rem 1rem}.boundary-fallback path{fill:#e8e8e3;stroke:#4f6b45;stroke-width:.8px;vector-effect:non-scaling-stroke}.boundary-fallback button{border:2px solid var(--accent);background:var(--surface);min-width:44px;min-height:44px;font:inherit;border-radius:999px;font-weight:800;position:absolute;transform:translate(-50%,-50%)}.boundary-fallback.list-only{place-items:center;padding:2rem;display:grid}.case-photo{max-width:440px;margin:2rem 0}.case-photo img{object-fit:contain;border:1px solid var(--border);background:var(--paper);width:100%;max-height:520px;display:block}.case-photo figcaption{color:var(--muted);margin-top:.5rem;font-size:.82rem}.appearance-table>div{border-bottom:1px solid var(--border);grid-template-columns:minmax(100px,.35fr) 1fr;padding:.75rem 0;display:grid}.appearance-table dt{color:var(--muted)}.appearance-table dd{margin:0;font-weight:700}.detail-next-actions{margin-top:3rem}.returned-list{border:1px solid var(--border);background:var(--border);gap:1px;padding:0;list-style:none;display:grid}.returned-list li{background:var(--surface);grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:1rem;display:grid}.radius-slider{width:100%;min-height:44px;accent-color:var(--accent)}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.check-grid label{border:1px solid var(--border);align-items:center;gap:.6rem;min-height:48px;padding:.6rem;display:flex}.check-grid input{width:22px;height:22px}.status-times{border:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.status-times>div{padding:1rem}.status-times dt{color:var(--muted)}.status-times dd{margin:.25rem 0 0;font-weight:750}@media (width<=640px){.returned-list li{grid-template-columns:1fr}}@media (width<=800px){.map-layout{height:max(620px,100dvh - 68px);min-height:620px;display:block;position:relative;overflow:hidden}.map-layout .map-wrap,.map-layout .map-canvas,.map-layout .maplibre-runtime{height:100%;min-height:100%}.map-layout .case-list{z-index:8;border:1px solid var(--border);background:var(--surface);border-radius:20px 20px 0 0;transition:height .18s;position:absolute;bottom:0;left:0;right:0;overflow:auto;box-shadow:0 -12px 32px #16181a2e}.case-list[data-sheet-state=peek]{height:168px}.case-list[data-sheet-state=half]{height:52%}.case-list[data-sheet-state=full]{height:calc(100% - 16px)}.sheet-controls{z-index:2;border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:1fr repeat(3,minmax(56px,auto));align-items:center;gap:.25rem;padding:8px 12px;display:grid;position:sticky;top:0}.sheet-controls button{border:1px solid var(--border);background:0 0;border-radius:999px;min-height:44px}.sheet-controls button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.sheet-handle{background:var(--border);border-radius:99px;width:44px;height:5px}}@media (prefers-reduced-motion:reduce){.map-layout .case-list{transition:none}}:root{--surface:#f4f4f1;--surface-2:#e8e8e3;--border:#c9c9c2;--ink-2:#6f7069;--ink-1:#2f3138;--ink-0:#16181a;--accent:#4f6b45;--accent-2:#7d9a6f;--paper:#ecece7;--muted:#62645f;--ink:var(--ink-0);--accent-soft:#dce6d7}body,#root{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.brand,.topbar nav a,.freshness a,.empty a,footer nav a{align-items:center;min-height:44px;display:inline-flex}.topbar nav a,footer nav a{justify-content:center;min-width:44px}.maplibregl-ctrl-group button{width:44px;height:44px}.actions a,.actions button,.primary,button.primary,.guide-card{transition:background-color .15s,color .15s,border-color .15s,transform .15s}@media (prefers-reduced-motion:reduce){.actions a,.actions button,.primary,button.primary,.guide-card{transition:none}}.ait-banner-slot{z-index:30;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);width:min(100% - 24px,520px);min-height:84px;padding:6px;position:fixed;transform:translate(-50%);box-shadow:0 8px 30px #16181a2e}main:has(.ait-banner-slot){padding-bottom:calc(120px + env(safe-area-inset-bottom))}
