.mappy-root{--bg:#0d1117;--panel-bg:rgba(13,17,23,.92);--panel-border:hsla(0,0%,100%,.07);--surface:hsla(0,0%,100%,.04);--surface-hover:hsla(0,0%,100%,.08);--accent:#4fd1c5;--accent-dim:rgba(79,209,197,.15);--accent-glow:rgba(79,209,197,.35);--gold:#f6c343;--red:#f87171;--text:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow:0 8px 32px rgba(0,0,0,.45);--ease:cubic-bezier(.4,0,.2,1);position:fixed;inset:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);overflow:hidden;-webkit-font-smoothing:antialiased}.mappy-root *,.mappy-root :after,.mappy-root :before{margin:0;padding:0;box-sizing:border-box}.mappy-root button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.mappy-root .mappy-map{position:absolute;inset:0;z-index:0}.mappy-root .leaflet-control-attribution{font-size:10px!important;background:rgba(0,0,0,.45)!important;color:var(--text-muted)!important;backdrop-filter:blur(4px)}.mappy-root .leaflet-control-attribution a{color:var(--text-secondary)!important}.mappy-root .leaflet-control-zoom{border:none!important;box-shadow:var(--shadow)!important}.mappy-root .leaflet-control-zoom a{background:var(--panel-bg)!important;backdrop-filter:blur(12px);color:var(--text)!important;border:1px solid var(--panel-border)!important;width:36px!important;height:36px!important;line-height:36px!important;font-size:18px!important;transition:background .2s var(--ease)}.mappy-root .leaflet-control-zoom a:hover{background:var(--surface-hover)!important}.mappy-root .mappy-logo{position:fixed;top:16px;left:16px;z-index:1000;display:flex;align-items:center;gap:10px;padding:10px 18px 10px 14px;background:var(--panel-bg);backdrop-filter:blur(16px);border:1px solid var(--panel-border);border-radius:var(--radius-md);box-shadow:var(--shadow);-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.mappy-root .logo-icon{color:var(--accent);display:flex;flex-shrink:0}.mappy-root .logo-text h1{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.mappy-root .logo-text p{font-size:11px;color:var(--text-secondary);font-weight:400}.mappy-root .toggle-panel{position:fixed;top:16px;right:16px;z-index:1000;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--panel-bg);backdrop-filter:blur(16px);border:1px solid var(--panel-border);border-radius:var(--radius-sm);box-shadow:var(--shadow);color:var(--text-secondary);transition:color .2s var(--ease),background .2s var(--ease),right .35s var(--ease)}.mappy-root .toggle-panel:hover{color:var(--accent);background:var(--surface-hover)}.mappy-root .toggle-panel.shifted{right:416px}.mappy-root .mappy-panel{position:fixed;top:0;right:0;width:400px;height:100%;z-index:1050;display:flex;flex-direction:column;background:var(--panel-bg);backdrop-filter:blur(20px);border-left:1px solid var(--panel-border);box-shadow:-4px 0 32px rgba(0,0,0,.4);transform:translateX(100%);transition:transform .35s var(--ease)}.mappy-root .mappy-panel.open{transform:translateX(0)}.mappy-root .panel-header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--panel-border);flex-shrink:0}.mappy-root .panel-header h2{font-size:15px;font-weight:600;letter-spacing:-.01em}.mappy-root .close-panel{font-size:22px;color:var(--text-secondary);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .15s var(--ease),color .15s var(--ease)}.mappy-root .close-panel:hover{background:var(--surface-hover);color:var(--text)}.mappy-root .panel-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.mappy-root .panel-body::-webkit-scrollbar{width:6px}.mappy-root .panel-body::-webkit-scrollbar-track{background:transparent}.mappy-root .panel-body::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}.mappy-root .input-section label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.mappy-root .text-input{width:100%;min-height:160px;max-height:320px;resize:vertical;padding:12px 14px;font-family:inherit;font-size:13px;line-height:1.6;color:var(--text);background:var(--surface);border:1px solid var(--panel-border);border-radius:var(--radius-sm);outline:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.mappy-root .text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.mappy-root .text-input::-moz-placeholder{color:var(--text-muted);font-style:italic}.mappy-root .text-input::placeholder{color:var(--text-muted);font-style:italic}.mappy-root .btn-row{display:flex;gap:8px;margin-top:10px}.mappy-root .btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:500;border-radius:var(--radius-sm);transition:background .2s var(--ease),transform .1s var(--ease),box-shadow .2s var(--ease)}.mappy-root .btn:active{transform:scale(.97)}.mappy-root .btn-primary{background:var(--accent);color:#0d1117;flex:1}.mappy-root .btn-primary:hover:not(:disabled){background:#5ee0d4;box-shadow:0 0 16px var(--accent-glow)}.mappy-root .btn-primary:disabled{opacity:.4;cursor:not-allowed}.mappy-root .btn-secondary{background:var(--surface);border:1px solid var(--panel-border);color:var(--text-secondary);flex:1}.mappy-root .btn-secondary:hover{background:var(--surface-hover);color:var(--text)}.mappy-root .btn-ghost{padding:5px 10px;font-size:11px;color:var(--text-muted);border-radius:var(--radius-sm)}.mappy-root .btn-ghost:hover{background:var(--surface-hover);color:var(--text-secondary)}.mappy-root .loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:30px 0}.mappy-root .loading p{font-size:13px;color:var(--text-secondary)}.mappy-root .spinner{width:32px;height:32px;border:3px solid var(--panel-border);border-top-color:var(--accent);border-radius:50%;animation:mappy-spin .8s linear infinite}@keyframes mappy-spin{to{transform:rotate(1turn)}}.mappy-root .error-msg{padding:12px 14px;font-size:13px;background:hsla(0,91%,71%,.1);border:1px solid hsla(0,91%,71%,.25);border-radius:var(--radius-sm);color:var(--red)}.mappy-root .results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.mappy-root .results-header h3{font-size:13px;font-weight:600;color:var(--text-secondary)}.mappy-root .history-list,.mappy-root .results-list{list-style:none;display:flex;flex-direction:column;gap:6px}.mappy-root .result-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease);animation:mappy-fadeSlideIn .35s var(--ease) both}.mappy-root .result-item:hover{background:var(--surface-hover);border-color:var(--panel-border)}.mappy-root .result-item.active{border-color:var(--accent);background:var(--accent-dim)}@keyframes mappy-fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.mappy-root .result-index{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;font-size:11px;font-weight:700;border-radius:50%;color:#0d1117;margin-top:1px}.mappy-root .result-body{flex:1;min-width:0}.mappy-root .result-name{font-size:13px;font-weight:600;line-height:1.3}.mappy-root .result-modern{font-size:11px;color:var(--text-muted);margin-left:4px;font-weight:400}.mappy-root .result-meta{display:flex;align-items:center;gap:8px;margin-top:3px;font-size:11px;color:var(--text-muted)}.mappy-root .result-type{padding:1px 7px;border-radius:9999px;background:var(--surface-hover);text-transform:capitalize;font-size:10px;font-weight:500;color:var(--text-secondary)}.mappy-root .result-desc{font-size:12px;line-height:1.5;color:var(--text-secondary);margin-top:5px}.mappy-root .history-item{padding:10px 12px;background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s var(--ease)}.mappy-root .history-item:hover{background:var(--surface-hover)}.mappy-root .history-item .hist-text{font-size:12px;color:var(--text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mappy-root .history-item .hist-meta{font-size:10px;color:var(--text-muted);margin-top:4px}.mappy-root .muted{font-size:12px;color:var(--text-muted);font-style:italic}.mappy-root .tile-switcher{position:fixed;bottom:28px;left:16px;z-index:1000;display:flex;gap:2px;background:var(--panel-bg);backdrop-filter:blur(16px);border:1px solid var(--panel-border);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow)}.mappy-root .tile-opt{padding:7px 14px;font-size:11px;font-weight:500;color:var(--text-secondary);transition:background .15s var(--ease),color .15s var(--ease)}.mappy-root .tile-opt:hover{background:var(--surface-hover)}.mappy-root .tile-opt.active{background:var(--accent-dim);color:var(--accent)}.mappy-root .leaflet-popup-content-wrapper{background:var(--panel-bg)!important;backdrop-filter:blur(12px);border:1px solid var(--panel-border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--shadow)!important;color:var(--text)!important;padding:0!important}.mappy-root .leaflet-popup-content{margin:0!important;font-family:Inter,system-ui,sans-serif!important;font-size:13px!important;line-height:1.5!important}.mappy-root .leaflet-popup-tip{background:var(--panel-bg)!important;border:1px solid var(--panel-border)!important;box-shadow:none!important}.mappy-root .leaflet-popup-close-button{color:var(--text-muted)!important;font-size:18px!important;top:6px!important;right:8px!important}.mappy-root .leaflet-popup-close-button:hover{color:var(--text)!important}.mappy-root .popup-inner{padding:14px 16px}.mappy-root .popup-inner h4{font-size:14px;font-weight:600;margin-bottom:2px}.mappy-root .popup-inner .popup-modern{font-size:11px;color:var(--text-muted);margin-bottom:6px}.mappy-root .popup-inner .popup-type{display:inline-block;padding:2px 8px;border-radius:9999px;font-size:10px;font-weight:500;text-transform:capitalize;margin-bottom:8px}.mappy-root .popup-inner .popup-desc{font-size:12px;color:var(--text-secondary);line-height:1.55}.mappy-root .popup-inner .popup-era{font-size:11px;color:var(--text-muted);margin-top:6px;font-style:italic}@keyframes mappy-markerPulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.4}to{transform:scale(2);opacity:0}}.mappy-root .marker-dot{position:relative}.mappy-root .marker-dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:mappy-markerPulse 1.5s ease-out 1;pointer-events:none}.mappy-root .hidden{display:none!important}@media (max-width:600px){.mappy-root .mappy-panel{width:100%}.mappy-root .toggle-panel.shifted{right:16px}.mappy-root .mappy-logo{padding:8px 12px 8px 10px}.mappy-root .logo-text h1{font-size:15px}.mappy-root .logo-text p{display:none}}