:root{--bg:#0b3b3c;--ink:#12201f;--paper:#f6f0e4;--tang:#ff5a1f;--sun:#ffc21a;--mint:#b9dcc9;font-family:Malgun Gothic,system-ui,sans-serif}*{box-sizing:border-box;margin:0}html,body{background:var(--bg);height:100%;color:var(--ink);overflow:hidden}#map{position:fixed;inset:0}#map canvas{display:block}#panel{background:var(--paper);border:1.5px solid var(--ink);border-radius:14px;flex-direction:column;gap:10px;width:min(380px,100vw - 32px);padding:16px;display:flex;position:fixed;top:16px;bottom:16px;right:16px}h1{letter-spacing:-.02em;font-size:1.4rem}.sub{color:#44524f;font-size:.85rem}.tools{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1.5px solid var(--ink);background:#fff;border-radius:999px;padding:3px 10px;font-size:.78rem;transition:background .2s}.chip.on{background:var(--sun)}.chip small{opacity:.65}#notice{border:1.5px solid var(--ink);background:#fff3cd;border-radius:8px;padding:8px 10px;font-size:.82rem}#log{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.msg{white-space:pre-wrap;word-break:keep-all;border-radius:10px;padding:8px 11px;font-size:.92rem;line-height:1.55}.msg.user{background:var(--tang);color:#fff;align-self:flex-end}.msg.bot{border:1.5px solid var(--ink);background:#fff}.msg.err{background:#fde2e0;border:1.5px solid #a33}#form{gap:6px;display:flex}#q{border:1.5px solid var(--ink);min-width:0;font:inherit;background:#fff;border-radius:10px;flex:1;padding:9px 11px}button{font:inherit;border:1.5px solid var(--ink);background:var(--sun);cursor:pointer;border-radius:10px;padding:9px 14px}button:disabled{opacity:.5;cursor:wait}:focus-visible{outline:3px solid var(--tang);outline-offset:2px}.legend{color:#44524f;font-size:.72rem}#tip{pointer-events:none;z-index:5;background:var(--ink);color:#fff;border-radius:6px;padding:4px 9px;font-size:.8rem;position:fixed}@media (width<=720px){#panel{gap:8px;height:60vh;padding:12px;top:auto}h1{font-size:1.15rem}.sub,.legend{display:none}.chip{padding:2px 8px;font-size:.72rem}.chip small{display:none}.intro summary{font-size:.85rem}#notice{padding:5px 8px;font-size:.74rem}#log{min-height:110px}}.intro{border:1.5px solid var(--ink);background:#fff;border-radius:10px;padding:8px 12px;font-size:.88rem}.intro summary{cursor:pointer;color:#b8400f;font-weight:700}.intro ol{gap:6px;margin:8px 0 0;padding-left:0;line-height:1.5;list-style:none;display:grid}.intro .greet{background:var(--sun);border-radius:8px;margin-top:8px;padding:5px 10px}.f{color:#1d6a96;background:#dff0fb}.j{color:#7a5a00;background:#fff3cd}.a{color:#1f7a42;background:#e3f4ea}.intro b.f,.intro b.j,.intro b.a{border-radius:999px;margin-right:6px;padding:0 9px;font-size:.8rem;display:inline-block}.chips{flex:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.chips button{border-color:var(--tang);color:#b8400f;background:#fff;border-radius:999px;flex:none;padding:7px 12px;font-size:.85rem;font-weight:700}.dots span{background:#9aa6a4;border-radius:50%;width:8px;height:8px;margin:0 2px;animation:1s infinite dot;display:inline-block}.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}@keyframes dot{0%,80%,to{opacity:.3}40%{opacity:1}}details.think{border-top:1.5px dashed var(--ink);margin-top:8px;padding-top:6px}details.think summary{cursor:pointer;color:#44524f;font-size:.8rem}.steps{gap:5px;margin-top:6px;display:grid}.steps div{white-space:pre-wrap;border-radius:8px;padding:5px 9px;font-size:.8rem;line-height:1.45}@media (prefers-reduced-motion:reduce){.dots span{animation:none}}
