*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:#f5f5f5;color:#1f2937}#root{display:flex;flex-direction:column}.map-stage{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,18px);padding:clamp(12px,3vh,32px)}.map-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;width:min(100%,1280px,82vh * 4 / 3)}.map-toolbar-title{flex:1;min-width:0;font-size:.95rem;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-toolbar-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:9999px;border:1px solid #d1d5db;background:#fff;color:#1f2937;font-size:.85rem;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0000000f;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.map-toolbar-btn:hover{background:#f3f4f6;border-color:#9ca3af}.map-toolbar-btn:active{transform:translateY(1px)}.map-toolbar-btn:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.map-toolbar-btn svg{color:#2563eb}.map-card{position:relative;width:min(100%,1280px,82vh * 4 / 3);aspect-ratio:4 / 3;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 6px 24px #0f172a0f;overflow:hidden}@media(max-width:768px){.map-stage{padding-left:0;padding-right:0}.map-card{width:min(100vw,82vh);max-width:none;aspect-ratio:1 / 1}.map-toolbar{width:min(100vw,82vh);padding:0 .5rem}.map-toolbar-title{font-size:.85rem}}:root{--lm-primary: #1976d2;--lm-primary-bg: rgba(25, 118, 210, .08);--lm-success: #2e7d32;--lm-success-bg: rgba(46, 125, 50, .1);--lm-warning: #ed6c02;--lm-warning-bg: rgba(237, 108, 2, .1);--lm-text: #1f2937;--lm-text-muted: #6b7280;--lm-border: #e5e7eb}.lm-backdrop{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:lm-fade .14s ease-out}.lm-dialog{background:#fff;border-radius:12px;width:min(640px,100%);max-height:min(80vh,720px);display:flex;flex-direction:column;box-shadow:0 24px 64px #0f172a59;overflow:hidden;animation:lm-pop .16s ease-out}.lm-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--lm-border)}.lm-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--lm-text);display:flex;align-items:center;gap:.55rem}.lm-title-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--lm-primary)}.lm-close{background:transparent;border:0;font-size:1.6rem;line-height:1;width:32px;height:32px;border-radius:6px;color:var(--lm-text-muted);cursor:pointer}.lm-close:hover{background:#f3f4f6;color:var(--lm-text)}.lm-close:focus-visible{outline:2px solid var(--lm-primary);outline-offset:2px}.lm-chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--lm-border);background:#fafafa}.lm-chip{display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:9999px;border:1px solid currentColor;font-size:.8rem;font-weight:600;background:#fff}.lm-chip-primary{color:var(--lm-primary);background:var(--lm-primary-bg);border-color:transparent}.lm-chip-secondary{color:#6a1b9a;background:#6a1b9a1a;border-color:transparent}.lm-chip-success{color:var(--lm-success);background:var(--lm-success-bg);border-color:transparent}.lm-content{padding:1rem 1.25rem;overflow-y:auto;flex:1}.lm-empty{text-align:center;padding:2rem 1rem;color:var(--lm-text-muted)}.lm-empty-title{margin:0 0 .5rem;font-size:.95rem;color:var(--lm-text)}.lm-empty-sub{margin:0;font-size:.85rem}.lm-list{list-style:none;padding:0;margin:0}.lm-category+.lm-category{margin-top:.5rem;padding-top:.75rem;border-top:1px solid var(--lm-border)}.lm-category-head{display:flex;align-items:center;gap:.55rem;background:var(--lm-primary-bg);border-radius:8px;padding:.55rem .75rem;margin-bottom:.5rem}.lm-category-name{font-weight:600;font-size:1rem;color:var(--lm-text)}.lm-swatch{width:14px;height:14px;border-radius:50%;border:.5px solid #000;flex-shrink:0}.lm-category-meta{margin-left:auto;font-size:.8rem;color:var(--lm-text-muted)}.lm-sections{list-style:none;padding:0 0 0 1rem;margin:0;display:flex;flex-direction:column;gap:.35rem}.lm-section{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.45rem .75rem;border-left:3px solid var(--lm-primary);background:#fff;border-radius:0 6px 6px 0}.lm-section-name{font-size:.9rem;color:var(--lm-text)}.lm-section-tags{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.lm-tag{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:9999px;border:1px solid currentColor;font-size:.75rem;font-weight:600;background:#fff}.lm-tag-primary{color:var(--lm-primary);background:var(--lm-primary-bg);border-color:transparent}.lm-tag-success{color:var(--lm-success);background:var(--lm-success-bg);border-color:transparent}.lm-tag-warning{color:var(--lm-warning);background:var(--lm-warning-bg);border-color:transparent}.lm-footer{padding:.75rem 1.25rem;border-top:1px solid var(--lm-border);display:flex;justify-content:flex-end;background:#fafafa}.lm-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border-radius:6px;border:1px solid transparent;font-size:.85rem;font-weight:600;cursor:pointer;transition:background-color .12s ease,transform .12s ease}.lm-btn-primary{background:var(--lm-primary);color:#fff}.lm-btn-primary:hover{background:#1565c0}.lm-btn:focus-visible{outline:2px solid var(--lm-primary);outline-offset:2px}@keyframes lm-fade{0%{opacity:0}to{opacity:1}}@keyframes lm-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes mp-spin{to{transform:rotate(360deg)}}
