:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol;line-height:1.5;font-weight:400;color-scheme:light dark;color:#e0e0e0;background-color:#0f0f0f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;overflow-x:hidden}#root{width:100%;max-width:1280px;margin:0 auto;padding:2rem;text-align:center;overflow-x:hidden}.card{background-color:#1e1e1e;border-radius:8px;padding:1.5rem;border:1px solid #333;margin-bottom:1rem;text-align:left}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.col-span-2{grid-column:span 2 / span 2}.full-width{grid-column:1 / -1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}button:focus-visible,.map-canvas:focus-visible{outline:2px solid #58a6ff;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn-primary{background-color:#5865f2;color:#fff}.btn-primary:hover{background-color:#4752c4}.btn-danger{background-color:#da373c;color:#fff}.btn-danger:hover{background-color:#a82b30}.btn-ghost{background-color:transparent;border-color:#333}.btn-ghost:hover{border-color:#5865f2}table{width:100%;border-collapse:collapse}th,td{padding:.75rem;text-align:left;border-bottom:1px solid #333}th{font-weight:700}tbody tr:nth-child(odd){background-color:#2a2a2a}.text-red{color:#ff6b6b}.text-amber{color:#ffd93d}.bg-amber{background-color:#ffd93d1a}.text-green{color:#6bff6b}.skeleton{background-color:#333;border-radius:4px;animation:pulse 1.5s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background-color:#1e1e1e;border-bottom:1px solid #333;margin-bottom:2rem}.navbar-brand{font-size:1.5rem;font-weight:700}.navbar-top{display:flex;align-items:center;gap:.75rem;min-width:0}.navbar-username{color:#8b949e;font-size:.9rem;min-width:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.admin-badge{background-color:#ffd93d;color:#0f0f0f;padding:.2rem .5rem;border-radius:4px;font-size:.8rem;font-weight:700}@media (max-width: 600px){#root{padding:1rem}.responsive-table thead{display:none}.responsive-table tbody tr{display:block;border:1px solid #444;border-radius:6px;margin-bottom:.75rem;background-color:#2a2a2a}.responsive-table tbody tr:nth-child(odd){background-color:#2a2a2a}.responsive-table td{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-bottom:1px solid #333;text-align:right}.responsive-table td:last-child{border-bottom:none}.responsive-table td:before{content:attr(data-label);font-weight:700;color:#aaa;text-align:left;margin-right:1rem;flex-shrink:0}}.log-viewer{background-color:#1a1a1a;color:#e0e0e0;font-family:Courier New,Courier,monospace;max-height:400px;overflow-y:auto;overflow-x:auto;overflow-anchor:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;padding:1rem;border-radius:8px}.log-viewer>div{min-width:0;overflow-wrap:anywhere;word-break:break-word}.map-canvas svg{width:100%;height:100%}.plot:hover{opacity:.85}.map-hover-tile{stroke:#fff;stroke-width:.6;fill:none;pointer-events:none;vector-effect:non-scaling-stroke}.map-tooltip{position:fixed;pointer-events:none;z-index:100;background:#161b22f2;border:1px solid #444c56;border-radius:6px;padding:6px 10px;font-size:12px;color:#e6edf3;white-space:nowrap;box-shadow:0 2px 8px #0006}.map-popup{position:absolute;left:50%;transform:translate(-50%);bottom:20px;z-index:120;background:#161b22f7;border:1px solid #444c56;border-radius:8px;padding:10px 14px;font-size:13px;color:#e6edf3;box-shadow:0 4px 16px #00000080;max-width:80%}.map-popup-close{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:32px;height:32px;padding:0}.map-popup .tt-name{padding-right:34px}.map-guild-tag{margin-left:4px;color:#f0883e;font-size:.75rem}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:0}.map-error{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;background:#0f0f0feb;text-align:center}.map-error-title{margin:0;font-weight:600;color:#e6edf3}.map-error-detail{margin:0 0 .5rem;max-width:36ch;color:#8b949e;font-size:.85rem;overflow-wrap:anywhere}.tt-name{font-weight:700;font-size:13px;color:#58a6ff}.tt-detail{color:#8b949e;margin-top:2px}.map-sidebar{max-height:70vh;overflow-y:auto;padding:0!important}.map-section-header{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:40px;padding:.55rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none;border-width:0 0 1px;border-style:solid;border-radius:0;text-align:left;border-bottom:1px solid #30363d;font-weight:600;font-size:.85rem;letter-spacing:.02em;text-transform:uppercase;color:#8b949e;background:transparent;transition:color .15s,background .15s}.map-section-header:hover{color:#e6edf3;background:#636e7b14}.map-section-chevron{font-size:.6rem;transition:transform .18s ease;display:inline-block}.map-section-chevron.open{transform:rotate(90deg)}.map-section-body{padding:.5rem 1rem .6rem;border-bottom:1px solid #30363d}.map-section-body p{margin:.2rem 0;font-size:.85rem}.map-filter-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.3rem;cursor:pointer}.map-filter-count{margin-left:auto;color:#8b949e;font-weight:400;font-size:.8rem;flex-shrink:0}.map-filter-bulk{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.map-filter-bulk .map-filter-hint{flex-basis:100%}.map-filter-bulk button{padding:.3em .8em;font-size:.8rem}.map-filter-hint{margin:0;color:#8b949e;font-size:.8rem}.map-section-body p.map-filter-hint{margin-bottom:.5rem}.map-status-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.25rem .75rem;min-height:1.5rem;margin-bottom:.5rem;font-size:.85rem}.map-status-text{color:#8b949e}.map-hidden-chip{display:inline-flex;align-items:center;gap:.5rem;color:#f0883e}.map-hidden-reset{padding:.2em .7em;background:transparent;border:1px solid #f0883e;border-radius:6px;color:#f0883e;font-size:.8rem}.map-hidden-reset:hover{background:#f0883e1f}.map-layout-grid{grid-template-columns:2fr 1fr}.map-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:.75rem;flex-wrap:wrap}.map-header h2{margin:0}.map-header-controls{display:flex;gap:.5rem;flex-wrap:wrap}.map-search{position:absolute;top:10px;right:10px;z-index:130;width:min(340px,calc(100% - 20px))}.map-search-field{position:relative;display:flex;align-items:center;background:#161b22f7;border:1px solid #444c56;border-radius:8px;box-shadow:0 2px 8px #0006;color:#8b949e}.map-search-field:focus-within{border-color:#5865f2;color:#e6edf3}.map-search-icon{position:absolute;left:10px;pointer-events:none}.map-search-input{flex:1;min-width:0;height:36px;padding:0 36px 0 32px;background:transparent;border:0;border-radius:8px;color:#e6edf3;font:inherit;font-size:.9rem}.map-search-input::placeholder{color:#8b949e}.map-search-input:focus{outline:none}.map-search-clear{position:absolute;right:2px;display:grid;place-items:center;width:32px;height:32px;padding:0;background:transparent;border:0;color:#8b949e}.map-search-clear:hover{color:#e6edf3}.map-search-clear:focus-visible{outline:2px solid #5865F2;outline-offset:-2px}.map-search-results{list-style:none;margin:4px 0 0;padding:4px;max-height:min(40vh,340px);overflow-y:auto;background:#161b22fa;border:1px solid #444c56;border-radius:8px;box-shadow:0 4px 16px #00000080}.map-search-option{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:7px 8px;border-radius:6px;font-size:.85rem;color:#e6edf3;cursor:pointer}.map-search-option.active{background:#5865f238}.map-search-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-search-hint{color:#8b949e;font-size:.75rem}.map-search-meta{flex-shrink:0;color:#8b949e;font-size:.75rem;font-variant-numeric:tabular-nums}.map-search-more button{width:100%;padding:7px 8px;background:transparent;border:0;border-radius:6px;color:#58a6ff;font-size:.8rem;text-align:left}.map-search-more button:hover{background:#636e7b1f}.map-search-status{margin-top:4px;min-height:1.2em;text-align:right;font-size:.75rem;color:#e6edf3;text-shadow:0 1px 3px #000,0 0 6px #000;font-variant-numeric:tabular-nums}.plot.search-hit{stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke}@media (max-width: 900px){.navbar{padding:.75rem 1.25rem;gap:.5rem}.navbar-brand{font-size:1.25rem}.navbar-actions{gap:.5rem}.map-canvas-card{min-height:55vh!important}.map-canvas{height:55vh!important}.map-sidebar{max-height:none;overflow-y:visible}}@media (max-width: 700px){.navbar{flex-direction:column;align-items:stretch;padding:.6rem 1rem;gap:.4rem;margin-bottom:1rem}.navbar-top{justify-content:space-between}.navbar-username{max-width:150px}.navbar-actions{flex-wrap:wrap;gap:.35rem}.navbar-actions .btn-ghost{font-size:.8rem;padding:.4em .7em}.map-layout-grid{grid-template-columns:1fr}.map-canvas-card{min-height:calc(100svh - 200px)!important;padding:0!important;border-radius:0!important;border-left:none!important;border-right:none!important;margin-left:-1rem;margin-right:-1rem}.map-canvas{height:calc(100svh - 200px)!important}.map-header{margin-bottom:.4rem;gap:.35rem}.map-header h2{font-size:1rem;margin:0}.map-header-controls button{flex:1 1 auto;min-height:44px;font-size:.8rem;padding:.35em .8em}.map-section-header{min-height:44px}.map-filter-row,.map-hidden-reset,.map-filter-bulk button{min-height:40px}.map-popup-close{width:44px;height:44px;top:0;right:0}.map-popup .tt-name{padding-right:44px}.map-legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:.1rem .4rem}.map-search{top:8px;left:8px;right:8px;width:auto}.map-search-input{height:44px;font-size:1rem;padding-left:36px;padding-right:44px}.map-search-icon{left:12px}.map-search-clear{width:44px;height:44px;right:0}.map-search-option,.map-search-more button{min-height:44px;padding:10px 8px;align-items:center}.map-popup{max-width:90%;padding:8px 10px;font-size:12px;bottom:12px}}@media (max-width: 420px){.navbar-brand{font-size:1rem}.navbar-username{max-width:110px}.map-header-controls button{font-size:.75rem;padding:.3em .6em}}
