*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#0d1117;color:#e8e3d8;overflow:hidden;font-family:Avenir Next,Segoe UI,system-ui,sans-serif}.app{position:relative;height:100%;color:#e8e3d8}.viewport{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:#8fb3c9;overflow:hidden}.viewport canvas{display:block;width:100%!important;height:100%!important}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;color:#e8e3d8}.panel{background:#0c1014b8;border:1px solid rgba(232,227,216,.14);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.seed-panel{position:absolute;top:12px;left:12px;display:flex;gap:6px;padding:8px;pointer-events:auto}.seed-panel input{background:#ffffff12;border:1px solid rgba(255,255,255,.15);color:inherit;padding:6px 8px;border-radius:4px;width:160px;font:inherit;outline:none}.seed-panel input:focus{border-color:#d8b36a}.seed-panel button{background:#7a5c33;border:1px solid transparent;color:#fff;padding:6px 12px;border-radius:4px;cursor:pointer;font:inherit}.seed-panel button:hover{background:#8f6d3e}.seed-panel button.on{background:#d8b36a47;border-color:#d8b36a;color:#d8b36a}.stats{position:absolute;top:12px;right:12px;padding:8px 12px;font-size:13px;opacity:.9}.stats b{color:#d8b36a}.hover-tooltip{position:absolute;top:56px;left:50%;transform:translate(-50%);padding:10px 12px;min-width:200px;max-width:min(320px,90vw);pointer-events:none;z-index:5}.hover-tooltip-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}.hover-tooltip-titles{min-width:0}.hover-tooltip-title{font-size:14px;font-weight:600;color:#e8e3d8;line-height:1.25}.hover-tooltip-blurb{margin-top:2px;font-size:11px;opacity:.65;line-height:1.3}.hover-tooltip-rows{display:flex;flex-direction:column;gap:3px;border-top:1px solid rgba(232,227,216,.1);padding-top:7px}.hover-tooltip-row{display:flex;justify-content:space-between;gap:16px;font-size:12px;line-height:1.35}.hover-tooltip-row .k{opacity:.55;flex-shrink:0}.hover-tooltip-row .v{text-align:right;color:#e8e3d8;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-icon{flex-shrink:0;display:block}.locations{position:absolute;top:56px;right:12px;padding:10px 8px 8px;display:flex;flex-direction:column;gap:4px;max-height:min(58vh,520px);pointer-events:auto;width:220px;z-index:4}.loc-results{display:flex;flex-direction:column;gap:1px;overflow-y:auto;min-height:0;flex:1;margin:0 -2px;padding:0 2px;scrollbar-width:thin;scrollbar-color:rgba(216,179,106,.3) transparent}.loc-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 2px 4px}.loc-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#d8b36a;padding:2px 4px}.loc-mode-toggle{display:flex;gap:2px;background:#ffffff0a;border-radius:5px;padding:2px}.loc-mode-toggle button{background:none;border:none;color:#e8e3d8;font:inherit;font-size:11px;padding:3px 8px;border-radius:4px;cursor:pointer;opacity:.55}.loc-mode-toggle button.on{opacity:1;background:#d8b36a33;color:#d8b36a}.loc-radius{display:flex;flex-wrap:wrap;gap:3px;padding:0 2px 6px}.loc-radius button{background:#ffffff0d;border:1px solid rgba(232,227,216,.12);color:#e8e3d8;font:inherit;font-size:10px;padding:2px 7px;border-radius:999px;cursor:pointer;opacity:.5}.loc-radius button.on{opacity:1;border-color:#d8b36a;background:#d8b36a29;color:#d8b36a}.loc-section-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.5;padding:2px 6px 4px}.loc-row{display:flex;align-items:center;gap:8px;background:none;border:none;color:#e8e3d8;font:inherit;font-size:13px;padding:5px 6px;border-radius:4px;cursor:pointer;text-align:left}.loc-row:hover{background:#d8b36a26}.loc-row .dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.5);flex-shrink:0}.loc-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.loc-row .loc-name{font-size:12px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-row .loc-sub{font-size:10px;opacity:.55;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loc-row .loc-dist{font-size:11px;opacity:.6;flex-shrink:0;font-variant-numeric:tabular-nums}.loc-cat-head{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;color:#d8b36a;font:inherit;font-size:12px;font-weight:600;padding:4px 6px;cursor:pointer;text-align:left}.loc-cat-head .caret{font-size:10px;width:10px}.loc-cat-head .loc-count{margin-left:auto;font-size:11px;font-weight:400;opacity:.6}.loc-cat .loc-row{padding-left:22px}.loc-search{background:#ffffff12;border:1px solid rgba(255,255,255,.15);color:inherit;padding:5px 8px;border-radius:4px;font:inherit;font-size:12px;outline:none;margin:0 2px 6px}.loc-search:focus{border-color:#d8b36a}.loc-empty{font-size:12px;opacity:.6;padding:4px 6px}.help{position:absolute;bottom:12px;left:12px;padding:8px 12px;font-size:12px;display:flex;flex-direction:column;gap:3px;opacity:.85}.help b{color:#d8b36a}.build-bar{position:absolute;bottom:14px;left:50%;transform:translate(-50%);width:min(720px,calc(100vw - 24px));padding:10px 12px 8px;pointer-events:auto;display:flex;flex-direction:column;gap:8px;box-shadow:0 8px 28px #00000073}.build-bar-top{display:flex;align-items:center;gap:10px;min-height:28px}.build-bar-brand{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1}.build-bar-badge{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#0c1014;background:#d8b36a;padding:3px 7px;border-radius:4px}.build-bar-selected{font-size:13px;font-weight:600;color:#e8e3d8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-cats{display:flex;gap:3px;background:#ffffff0a;padding:3px;border-radius:7px;border:1px solid rgba(232,227,216,.08)}.build-cat{background:none;border:none;color:#e8e3d8;font:inherit;font-size:12px;padding:5px 12px;border-radius:5px;cursor:pointer;opacity:.55}.build-cat:hover{opacity:.85}.build-cat.on{opacity:1;background:#d8b36a33;color:#d8b36a;font-weight:600}.build-exit{flex-shrink:0;background:#ffffff0f;border:1px solid rgba(232,227,216,.16);color:#e8e3d8;font:inherit;font-size:12px;padding:5px 12px;border-radius:5px;cursor:pointer}.build-exit:hover{border-color:#d8b36a80;color:#d8b36a}.build-slots{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 4px;scrollbar-width:thin;scrollbar-color:rgba(216,179,106,.35) transparent}.build-slots::-webkit-scrollbar{height:4px}.build-slots::-webkit-scrollbar-thumb{background:#d8b36a59;border-radius:4px}.build-slot{position:relative;flex:0 0 auto;width:64px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 5px;background:#ffffff0a;border:1px solid rgba(232,227,216,.12);border-radius:8px;color:#e8e3d8;cursor:pointer;font:inherit;transition:border-color .12s ease,background .12s ease,transform .12s ease}.build-slot:hover{border-color:#d8b36a73;background:#d8b36a14}.build-slot.active{border-color:#d8b36a;background:#7a5c3373;box-shadow:0 0 0 1px #d8b36a40;transform:translateY(-1px)}.build-slot-key{position:absolute;top:4px;left:5px;font-size:10px;font-weight:700;color:#d8b36a;line-height:1;opacity:.9}.piece-icon{display:block;image-rendering:auto}.build-slot-name{font-size:10px;line-height:1.15;text-align:center;opacity:.85;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 2px}.build-slot.active .build-slot-name{opacity:1;color:#f0e6c8}.build-bar-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;opacity:.55;padding:6px 2px 0;border-top:1px solid rgba(232,227,216,.08)}.build-bar-foot b{color:#d8b36a;font-weight:600}.build-bar-count{font-variant-numeric:tabular-nums;opacity:.9;color:#d8b36a}.map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#05080a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);height:100dvh;width:100%;overscroll-behavior:none;touch-action:none}.map-fullscreen{display:flex;pointer-events:auto}.map-shell{display:flex;flex-direction:column;width:100%;height:100%;background:#0a0e12;color:#e8e3d8;overscroll-behavior:none}.map-topbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));background:#0c1014f0;border-bottom:1px solid rgba(232,227,216,.12);flex-shrink:0;z-index:4}.map-topbar-left,.map-topbar-right,.map-zoom-controls{display:flex;align-items:center;gap:8px}.map-title{font-size:14px}.map-title b{color:#d8b36a}.map-hint{font-size:11px;opacity:.55}.map-zoom-label{min-width:2.6em;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:#d8b36a}.map-icon-btn{background:#ffffff0f;border:1px solid rgba(232,227,216,.16);color:#e8e3d8;font:inherit;font-size:14px;line-height:1;min-width:36px;min-height:36px;height:36px;padding:0 10px;border-radius:8px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.map-zoom-btn{min-width:40px;font-size:18px;font-weight:600}.map-close-btn{min-width:40px;font-size:16px}.map-fab-zoom{display:none;position:absolute;right:12px;bottom:20px;flex-direction:column;gap:8px;z-index:3;pointer-events:auto}.map-fab-zoom .map-icon-btn{width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;background:#0c1014e0;border:1px solid rgba(232,227,216,.2);box-shadow:0 4px 16px #0006;font-size:22px}.map-layers-backdrop{display:none;border:none;padding:0;margin:0;background:#00000073;position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:auto;cursor:pointer}.map-layers-close{display:none}.map-icon-btn:hover{border-color:#d8b36a8c;background:#d8b36a1f}.map-icon-btn.on{border-color:#d8b36a;background:#d8b36a2e;color:#d8b36a}.map-reset-btn{font-size:11px;letter-spacing:.02em}.map-main{flex:1;display:flex;min-height:0;position:relative}.map-layers{width:220px;flex-shrink:0;margin:10px 0 10px 10px;padding:10px 8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:calc(100% - 20px);z-index:2;pointer-events:auto}.map-layers-head{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#d8b36a;padding:2px 4px}.map-layers-actions{display:flex;gap:4px}.map-layers-actions button{background:#ffffff0f;border:1px solid rgba(232,227,216,.14);color:#e8e3d8;font:inherit;font-size:10px;text-transform:none;letter-spacing:0;padding:2px 6px;border-radius:4px;cursor:pointer;opacity:.85}.map-layers-actions button:hover{border-color:#d8b36a;opacity:1}.map-layer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.map-layer-row{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:#e8e3d8;font:inherit;font-size:13px;padding:5px 6px;border-radius:5px;cursor:pointer;text-align:left;opacity:.45}.map-layer-row.on{opacity:1}.map-layer-row:hover{background:#d8b36a1f}.map-check{width:16px;height:16px;border-radius:3px;border:1px solid rgba(232,227,216,.25);display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:#0c1014;flex-shrink:0}.map-check.on{background:#d8b36a;border-color:#d8b36a}.map-menu-icon{width:22px;height:22px;flex-shrink:0}.map-layer-name{flex:1}.map-layer-count{font-size:11px;opacity:.55;font-variant-numeric:tabular-nums}.map-biome-legend{margin-top:6px;padding-top:8px;border-top:1px solid rgba(232,227,216,.1)}.map-legend{display:flex;flex-wrap:wrap;gap:5px 10px;font-size:11px;padding:2px 4px 4px}.legend-item{display:inline-flex;align-items:center;gap:5px;opacity:.9}.legend-item i{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.45)}.map-stage{flex:1;position:relative;min-width:0;min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:none}.map-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.map-canvas.panning,.map-canvas:active{cursor:grabbing}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1.5;background:#0a0e12a6;pointer-events:none}.map-hover-tip{position:absolute;left:50%;bottom:14px;transform:translate(-50%);padding:8px 14px;font-size:12px;background:#0c1014e6;border:1px solid rgba(232,227,216,.16);border-radius:6px;pointer-events:none;max-width:min(320px,90%);text-align:center;line-height:1.35;z-index:3}.map-hover-title{font-weight:600;font-size:13px;margin-bottom:3px}.map-hover-line{opacity:.7;font-size:11px}@media (max-width: 720px){.map-topbar{flex-wrap:wrap;row-gap:6px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top))}.map-topbar-left{order:1;flex:1;min-width:0}.map-topbar-right{order:2}.map-zoom-controls{order:3;width:100%;justify-content:center}.map-title{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-hint,.map-reset-btn{display:none}.map-fab-zoom{display:flex;bottom:max(20px,env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right))}.map-layers-backdrop{display:block}.map-layers{position:absolute;left:0;top:0;bottom:0;margin:0;width:min(300px,86vw);max-height:none;z-index:3;border-radius:0;border-left:none;border-top:none;border-bottom:none;padding:12px 10px;padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:8px 0 32px #00000080}.map-layers-close{display:inline-flex;min-width:32px;justify-content:center}.map-layer-row{padding:10px 8px;min-height:44px;font-size:14px}.map-check{width:20px;height:20px}.map-hover-tip{bottom:max(88px,calc(env(safe-area-inset-bottom) + 72px));padding:10px 16px;font-size:13px}.map-hover-title{font-size:15px}}@media (hover: none) and (pointer: coarse){.map-fab-zoom{display:flex}.map-icon-btn{min-width:40px;min-height:40px}}.side-tabs{position:absolute;top:56px;right:12px;display:flex;gap:2px;padding:4px;pointer-events:auto;z-index:5}.side-tabs button{background:#ffffff0d;border:1px solid transparent;color:#e8e3d8;font:inherit;font-size:11px;padding:5px 10px;border-radius:4px;cursor:pointer;opacity:.65}.side-tabs button.on{opacity:1;border-color:#d8b36a;background:#d8b36a2e;color:#d8b36a}.side-tabs button:hover{opacity:1}.locations{top:96px}.loc-row.found .loc-name:after{content:" ✓";color:#7dce7a;font-size:11px}.bookmark-actions,.build-save-row,.tool-row{display:flex;flex-wrap:wrap;gap:4px;padding:0 2px 6px}.bookmark-actions button,.build-save-row button,.tool-row button,.danger-btn{background:#ffffff0f;border:1px solid rgba(232,227,216,.14);color:#e8e3d8;font:inherit;font-size:11px;padding:5px 8px;border-radius:4px;cursor:pointer}.bookmark-actions button:hover,.build-save-row button:hover,.tool-row button:hover{border-color:#d8b36a}.tool-row button.on{border-color:#d8b36a;background:#d8b36a2e;color:#d8b36a}.build-save-row{align-items:center}.build-save-row input{flex:1;min-width:0}.bookmark-row{display:flex;align-items:stretch;gap:2px}.bookmark-row .loc-row{flex:1;min-width:0}.bm-del{background:none;border:none;color:#e8e3d8;opacity:.4;cursor:pointer;padding:4px 8px;font-size:12px}.bm-del:hover{opacity:1;color:#ff6b6b}.bm-kind{width:18px;height:18px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;background:#d8b36a40;color:#d8b36a}.bm-portal{background:#5fe3d033;color:#5fe3d0}.bm-base{background:#d8b36a4d}.danger-btn{margin:6px 2px 2px;width:calc(100% - 4px);border-color:#ff505059;color:#ff8a8a}.scout-card{padding:8px;margin-bottom:8px;background:#ffffff0a;border-radius:6px;font-size:12px}.scout-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:4px}.scout-score{font-size:11px;color:#d8b36a;white-space:nowrap}.scout-tip{opacity:.7;font-size:11px;margin-bottom:8px;line-height:1.35}.scout-lists{display:grid;grid-template-columns:1fr 1fr;gap:8px}.scout-lists .k{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;opacity:.5;margin-bottom:2px}.scout-lists ul{margin:0;padding:0 0 0 14px;font-size:11px;line-height:1.4;opacity:.85}.measure-box{font-size:12px;padding:6px 8px;margin-bottom:8px;background:#ffd75e14;border:1px solid rgba(255,215,94,.25);border-radius:4px;color:#ffd75e}.found-list{display:flex;flex-wrap:wrap;gap:4px;padding:4px 2px}.found-chip{font-size:10px;padding:2px 6px;border-radius:999px;background:#7dce7a26;border:1px solid rgba(125,206,122,.35);color:#9ed99c}.minimap{position:absolute;left:12px;bottom:12px;padding:4px;pointer-events:auto;cursor:pointer;border:none;color:inherit;z-index:3}.minimap:hover{border-color:#d8b36a}.minimap-canvas{display:block;width:112px;height:112px;border-radius:4px}.toast{position:absolute;bottom:24px;left:50%;transform:translate(-50%);padding:8px 16px;font-size:13px;pointer-events:none;z-index:20;background:#0c1014eb;border-color:#d8b36a66}.stats-meta{opacity:.45;font-size:11px}.onboarding{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#06080ac7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;padding:20px;color:#e8e3d8}.onboarding-card{max-width:420px;width:100%;padding:24px 22px;pointer-events:auto;color:#e8e3d8;background:#141a22;border:1px solid rgba(216,179,106,.35);box-shadow:0 16px 48px #0000008c}.onboarding-card h2{margin:0 0 10px;font-size:20px;font-weight:600;color:#e0c07a}.onboarding-card p{margin:0 0 12px;font-size:13px;line-height:1.5;color:#d4cfc4}.onboarding-card ul{margin:0 0 14px;padding:0 0 0 18px;font-size:13px;line-height:1.55;color:#d4cfc4}.onboarding-card li b{color:#e0c07a}.onboarding-meta{font-size:11px!important;color:#9a958a!important}.onboarding-go{width:100%;background:#9a7340;border:1px solid #d8b36a;color:#fff;padding:10px 14px;border-radius:6px;cursor:pointer;font:inherit;font-size:14px;font-weight:600}.onboarding-go:hover{background:#b0894a}.map-tool-btn{font-size:11px;letter-spacing:.02em}@media (max-width: 720px){.side-tabs{top:auto;bottom:max(12px,env(safe-area-inset-bottom));right:12px;left:12px;justify-content:center}.locations{top:100px;right:12px;left:12px;width:auto;max-height:min(42vh,360px)}.minimap{display:none}.seed-panel{flex-wrap:wrap;max-width:calc(100vw - 24px)}.seed-panel input{width:120px}.stats{font-size:11px;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-tool-btn{display:inline-flex}}
