:root{--bg:#1e1e1e;--bg-darker:#151515;--bg-lighter:#2a2a2a;--text:silver;--text-bright:#e0e0e0;--text-dim:#888;--border:#333;--accent:#7a6a4a;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:"Courier New", ui-monospace, Consolas, monospace;font:14px/1.4 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;overflow:hidden}#app{width:100vw;height:100vh}.game-layout{grid-template:"menu menu"28px"map side"1fr"info side"200px/1fr 280px;gap:0;width:100vw;height:100vh;display:grid}.menu-area{grid-area:menu}.map-area{grid-area:map;min-width:0;min-height:0;position:relative;overflow:hidden}.side-area{border-left:1px solid var(--border);flex-direction:column;grid-area:side;min-height:0;display:flex;overflow:hidden}.stats-section{flex-shrink:0;max-height:300px;overflow-y:auto}.tab-bar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#252525;flex-shrink:0;display:flex}.tab-bar button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex:1;padding:.3rem .5rem;font-size:.75rem}.tab-bar button:hover{color:var(--text)}.tab-bar button.active{color:var(--text-bright);background:var(--bg-lighter);border-bottom:2px solid var(--accent)}.tab-content{flex:1;min-height:0;overflow:hidden}.info-area{border-top:1px solid var(--border);grid-area:info;min-height:0;overflow:hidden}.info-area.query-active{z-index:101;position:relative}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-darker)}::-webkit-scrollbar-thumb{background:#444;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#555}.login-container.svelte-h34f85{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:100vh;padding:2rem 1rem;display:flex}h1.svelte-h34f85{color:#e0d0b0;margin-bottom:1rem;font-size:2rem}.connected-layout.svelte-h34f85{align-items:flex-start;gap:2rem;width:100%;max-width:960px;display:flex}.server-info.svelte-h34f85{background:#151515;border:1px solid #333;border-radius:6px;flex-direction:column;flex:1;gap:1rem;max-height:70vh;padding:1rem;display:flex;overflow-y:auto}.info-section.svelte-h34f85 h3:where(.svelte-h34f85){color:#e0d0b0;border-bottom:1px solid #333;margin:0 0 .5rem;padding-bottom:.25rem;font-size:.9rem}.info-text.svelte-h34f85{font-family:Courier New,monospace;font-size:.85rem;line-height:1.3}.info-line.svelte-h34f85{word-wrap:break-word;padding:1px 0}.info-title.svelte-h34f85{color:#e0d0b0;word-wrap:break-word;margin:.5rem 0 .25rem;padding:0;font-size:.9rem;font-weight:700}.query-panel.svelte-h34f85{flex-direction:column;gap:.75rem;min-width:280px;display:flex}.login-form.svelte-h34f85{flex-direction:column;gap:.75rem;width:320px;display:flex}label.svelte-h34f85{color:#c0b090;flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}input.svelte-h34f85{color:#e0e0e0;background:#2a2a2a;border:1px solid #555;border-radius:4px;padding:.5rem;font-size:1rem}input.svelte-h34f85:focus{border-color:#7a6a4a;outline:none}button.svelte-h34f85{color:#e0d0b0;cursor:pointer;background:#4a3a2a;border:1px solid #7a6a4a;border-radius:4px;padding:.6rem 1rem;font-size:1rem}button.svelte-h34f85:hover:not(:disabled){background:#5a4a3a}button.svelte-h34f85:disabled{opacity:.5;cursor:not-allowed}.status.svelte-h34f85{color:#a0c0a0;font-size:.85rem}.error.svelte-h34f85{color:#e06060;font-size:.85rem}.query-text.svelte-h34f85{color:#c0b090;margin:0;font-size:.9rem}.yesno-buttons.svelte-h34f85{gap:.5rem;display:flex}.yesno-buttons.svelte-h34f85 button:where(.svelte-h34f85){flex:1}.game-map.svelte-1xz97us{background:#111;justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}canvas.svelte-1xz97us{image-rendering:pixelated;cursor:crosshair}.info-panel.svelte-dhpbxu{background:#1a1a1a;border:1px solid #333;flex-direction:column;height:100%;display:flex}.messages.svelte-dhpbxu{flex:1;padding:.5rem;font-family:Courier New,monospace;font-size:.85rem;line-height:1.3;overflow-y:auto}.message.svelte-dhpbxu{word-wrap:break-word;padding:1px 0}.input-row.svelte-dhpbxu{border-top:1px solid #333;display:flex}.input-row.disabled.svelte-dhpbxu{opacity:.4;pointer-events:none}input.svelte-dhpbxu{color:#e0e0e0;background:#222;border:none;flex:1;padding:.4rem .5rem;font-family:Courier New,monospace;font-size:.85rem}input.svelte-dhpbxu:focus{background:#282828;outline:none}button.svelte-dhpbxu{color:silver;cursor:pointer;background:#333;border:none;border-left:1px solid #333;padding:.4rem .75rem;font-size:.85rem}button.svelte-dhpbxu:hover{background:#444}.stats-panel.svelte-4ov0mh{color:silver;background:#1a1a1a;border:1px solid #333;padding:.5rem;font-size:.8rem;overflow-y:auto}h3.svelte-4ov0mh{color:#e0d0b0;border-bottom:1px solid #333;margin:0 0 .5rem;padding-bottom:.25rem;font-size:.9rem}.bars.svelte-4ov0mh{flex-direction:column;gap:.3rem;margin-bottom:.75rem;display:flex}.bar-row.svelte-4ov0mh{align-items:center;gap:.4rem;display:flex}.bar-label.svelte-4ov0mh{text-align:right;color:#999;width:40px;font-size:.75rem}.bar-track.svelte-4ov0mh{background:#222;border-radius:2px;flex:1;height:12px;overflow:hidden}.bar-fill.svelte-4ov0mh{border-radius:2px;height:100%;transition:width .3s}.bar-value.svelte-4ov0mh{text-align:right;color:#aaa;width:70px;font-size:.75rem}.attributes.svelte-4ov0mh{margin-bottom:.75rem}.attr-grid.svelte-4ov0mh{grid-template-columns:repeat(4,1fr);gap:.2rem;display:grid}.attr.svelte-4ov0mh{color:#999;font-size:.75rem}.attr.svelte-4ov0mh strong:where(.svelte-4ov0mh){color:#ddd}.combat-stats.svelte-4ov0mh{flex-direction:column;gap:.15rem;display:flex}.stat-row.svelte-4ov0mh{justify-content:space-between;font-size:.75rem;display:flex}.stat-row.svelte-4ov0mh span:where(.svelte-4ov0mh):first-child{color:#999}.stat-row.svelte-4ov0mh span:where(.svelte-4ov0mh):last-child{color:#ddd}.exp-stat-row.svelte-4ov0mh{position:relative}.exp-bg-bar.svelte-4ov0mh{pointer-events:none;background:#b48c284d;position:absolute;top:0;bottom:0;left:0}.inventory.svelte-hf9hv8{background:#1a1a1a;border:1px solid #333;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.inv-section.svelte-hf9hv8{flex-direction:column;flex:1;min-height:0;display:flex}.inv-section.svelte-hf9hv8+.inv-section:where(.svelte-hf9hv8){border-top:1px solid #444}h3.svelte-hf9hv8{color:#e0d0b0;background:#252525;align-items:center;margin:0;padding:.4rem .5rem;font-size:.8rem;display:flex}.item-count.svelte-hf9hv8{color:#fc6;align-items:center;gap:.2rem;margin-left:auto;font-size:.75rem;font-weight:400;display:flex}.count-clear.svelte-hf9hv8{cursor:pointer;color:#888;border-radius:2px;padding:0 .15rem;font-size:.7rem}.count-clear.svelte-hf9hv8:hover{color:#f88;background:#3a3a3a}.item-list.svelte-hf9hv8{flex:1;font-size:.78rem;overflow-y:auto}.item-row.svelte-hf9hv8{cursor:pointer;color:silver;align-items:center;gap:.3rem;padding:.2rem .4rem;display:flex}.item-row.svelte-hf9hv8:hover{background:#2a2a2a}.item-row.applied.svelte-hf9hv8{color:#acf}.item-row.cursed.svelte-hf9hv8{color:#f88}.item-row.magical.svelte-hf9hv8{color:#8cf}.item-icon.svelte-hf9hv8{width:24px;height:24px;image-rendering:pixelated;flex-shrink:0}.item-icon-placeholder.svelte-hf9hv8{color:#666;background:#333;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.7rem;display:flex}.item-name.svelte-hf9hv8{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.item-weight.svelte-hf9hv8{color:#888;flex-shrink:0;font-size:.7rem}.context-menu.svelte-hf9hv8{z-index:100;background:#333;border:1px solid #555;border-radius:4px;flex-direction:column;display:flex;position:fixed;box-shadow:0 2px 8px #00000080}.context-menu.svelte-hf9hv8 button:where(.svelte-hf9hv8){color:#ddd;text-align:left;cursor:pointer;background:0 0;border:none;padding:.4rem 1rem;font-size:.8rem}.context-menu.svelte-hf9hv8 button:where(.svelte-hf9hv8):hover{background:#444}.spell-list.svelte-1cs738m{background:#1a1a1a;border:1px solid #333;flex-direction:column;height:100%;display:flex;overflow:hidden}h3.svelte-1cs738m{color:#e0d0b0;background:#252525;margin:0;padding:.4rem .5rem;font-size:.8rem}.spells-scroll.svelte-1cs738m{flex:1;overflow-y:auto}.empty.svelte-1cs738m{color:#666;text-align:center;padding:.5rem;font-size:.8rem}table.svelte-1cs738m{border-collapse:collapse;width:100%;font-size:.75rem}thead.svelte-1cs738m th:where(.svelte-1cs738m){color:#999;text-align:left;background:#252525;border-bottom:1px solid #333;padding:.3rem .4rem;font-weight:400;position:sticky;top:0}.spell-row.svelte-1cs738m{cursor:pointer;color:silver}.spell-row.svelte-1cs738m:hover{background:#2a2a2a}td.svelte-1cs738m{padding:.25rem .4rem}.spell-name.svelte-1cs738m{color:#acf}.skill-list.svelte-1be0gkd{background:#1a1a1a;border:1px solid #333;flex-direction:column;height:100%;display:flex;overflow:hidden}h3.svelte-1be0gkd{color:#e0d0b0;background:#252525;margin:0;padding:.4rem .5rem;font-size:.8rem}.skills-scroll.svelte-1be0gkd{flex:1;overflow-y:auto}.empty.svelte-1be0gkd{color:#666;text-align:center;padding:.5rem;font-size:.8rem}table.svelte-1be0gkd{border-collapse:collapse;width:100%;font-size:.75rem}thead.svelte-1be0gkd th:where(.svelte-1be0gkd){color:#999;text-align:left;background:#252525;border-bottom:1px solid #333;padding:.3rem .4rem;font-weight:400;position:sticky;top:0}tr.svelte-1be0gkd{color:silver}tr.svelte-1be0gkd:hover{background:#2a2a2a}td.svelte-1be0gkd{padding:.25rem .4rem}.skill-name.svelte-1be0gkd{color:#afa}.exp-cell.svelte-1be0gkd{min-width:60px;position:relative}.exp-bar.svelte-1be0gkd{pointer-events:none;background:#b48c284d;position:absolute;top:0;bottom:0;left:0}.exp-text.svelte-1be0gkd{z-index:1;position:relative}.context-menu.svelte-1be0gkd{z-index:100;background:#333;border:1px solid #555;border-radius:4px;flex-direction:column;display:flex;position:fixed;box-shadow:0 2px 8px #00000080}.context-menu.svelte-1be0gkd button:where(.svelte-1be0gkd){color:#ddd;text-align:left;cursor:pointer;background:0 0;border:none;padding:.4rem 1rem;font-size:.8rem}.context-menu.svelte-1be0gkd button:where(.svelte-1be0gkd):hover{background:#444}.protection-list.svelte-1tqndw5{background:#1a1a1a;border:1px solid #333;flex-direction:column;height:100%;display:flex;overflow:hidden}h3.svelte-1tqndw5{color:#e0d0b0;background:#252525;margin:0;padding:.4rem .5rem;font-size:.8rem}.protections-scroll.svelte-1tqndw5{flex:1;overflow-y:auto}table.svelte-1tqndw5{border-collapse:collapse;width:100%;font-size:.75rem}thead.svelte-1tqndw5 th:where(.svelte-1tqndw5){color:#999;text-align:left;background:#252525;border-bottom:1px solid #333;padding:.3rem .4rem;font-weight:400;position:sticky;top:0}tr.svelte-1tqndw5{color:silver}tr.svelte-1tqndw5:hover{background:#2a2a2a}td.svelte-1tqndw5{padding:.25rem .4rem}.prot-name.svelte-1tqndw5{color:#acf}.prot-value.svelte-1tqndw5{text-align:right;font-variant-numeric:tabular-nums}.positive.svelte-1tqndw5{color:#8f8}.negative.svelte-1tqndw5{color:#f88}.pickup-menu.svelte-d6c2i1{min-width:180px;max-height:400px;overflow-y:auto}.pickup-item.svelte-d6c2i1{color:silver;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;padding:.25rem .5rem;font-size:.8rem;display:flex}.pickup-item.svelte-d6c2i1:hover{background:#3a3a3a}.sub-item.svelte-d6c2i1{padding-left:1.2rem}.group-header.svelte-d6c2i1{color:#d0c0a0;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.3rem;width:100%;padding:.25rem .5rem;font-size:.8rem;font-weight:600;display:flex}.group-header.svelte-d6c2i1:hover{background:#3a3a3a}.arrow.svelte-d6c2i1{text-align:center;width:.8rem;font-size:.7rem}.group-items.svelte-d6c2i1{border-left:2px solid #444;margin-left:.5rem}.separator.svelte-d6c2i1{background:#444;height:1px;margin:.25rem 0}input[type=checkbox].svelte-d6c2i1,input[type=radio].svelte-d6c2i1{accent-color:#7a6a4a;margin:0}.menu-bar.svelte-1b4sr40{-webkit-user-select:none;user-select:none;background:#252525;border-bottom:1px solid #333;align-items:center;height:28px;padding:0 .25rem;font-size:.8rem;display:flex}.menu-item.svelte-1b4sr40{position:relative}.menu-button.svelte-1b4sr40{color:silver;cursor:pointer;background:0 0;border:none;padding:.2rem .6rem;font-size:.8rem}.menu-button.svelte-1b4sr40:hover{background:#333}.dropdown.svelte-1b4sr40{z-index:50;background:#2a2a2a;border:1px solid #444;min-width:160px;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #00000080}.dropdown.svelte-1b4sr40 button:where(.svelte-1b4sr40){color:silver;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:.4rem .75rem;font-size:.8rem;display:block}.dropdown.svelte-1b4sr40 button:where(.svelte-1b4sr40):hover{background:#3a3a3a}.spacer.svelte-1b4sr40{flex:1}.range-label.svelte-1b4sr40{color:#a0b0c0;white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding-right:.75rem;font-size:.75rem;overflow:hidden}.title.svelte-1b4sr40{color:#7a6a4a;padding-right:.5rem;font-size:.75rem}.dialog-overlay.svelte-1b4sr40{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog.svelte-1b4sr40{color:silver;background:#2a2a2a;border:1px solid #555;border-radius:4px;min-width:320px;max-width:480px;padding:1.5rem;font-size:.85rem;box-shadow:0 4px 16px #000000b3}.dialog.svelte-1b4sr40 p:where(.svelte-1b4sr40){margin:.4rem 0}.dialog-title.svelte-1b4sr40{color:#e0d0b0;font-size:1rem;font-weight:700;margin-bottom:.8rem!important}.dialog-prompt.svelte-1b4sr40{color:#aaa;font-style:italic}.dialog-warn.svelte-1b4sr40{color:#f80}.dialog-buttons.svelte-1b4sr40{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.dialog-buttons.svelte-1b4sr40 button:where(.svelte-1b4sr40){color:silver;cursor:pointer;background:#333;border:1px solid #555;border-radius:3px;padding:.35rem .9rem;font-size:.8rem}.dialog-buttons.svelte-1b4sr40 button:where(.svelte-1b4sr40):hover{background:#444}.btn-primary.svelte-1b4sr40{color:#8bf!important;border-color:#48f!important}.btn-danger.svelte-1b4sr40{color:#f88!important;border-color:#f44!important}.dialog-wide.svelte-1b4sr40{min-width:400px;max-width:600px}.bindings-table-wrapper.svelte-1b4sr40{max-height:400px;margin:.5rem 0;overflow-y:auto}.bindings-table.svelte-1b4sr40{border-collapse:collapse;width:100%;font-size:.8rem}.bindings-table.svelte-1b4sr40 th:where(.svelte-1b4sr40),.bindings-table.svelte-1b4sr40 td:where(.svelte-1b4sr40){text-align:left;border-bottom:1px solid #444;padding:.25rem .5rem}.bindings-table.svelte-1b4sr40 th:where(.svelte-1b4sr40){color:#e0d0b0;background:#2a2a2a;position:sticky;top:0}.bindings-table.svelte-1b4sr40 td:where(.svelte-1b4sr40){color:silver}.dialog.svelte-1b4sr40 a:where(.svelte-1b4sr40){color:#8bf;text-decoration:none}.dialog.svelte-1b4sr40 a:where(.svelte-1b4sr40):hover{text-decoration:underline}.dialog-credits.svelte-1b4sr40{color:#aaa;font-size:.8rem;margin-top:.8rem!important}.btn-small.svelte-1b4sr40{min-width:0!important;padding:.1rem .4rem!important;font-size:.7rem!important}.axis-test-direction.svelte-1b4sr40{color:#e0d0b0;text-align:center;text-transform:capitalize;padding:.5rem 0;font-size:1.2rem;font-weight:700}.dropdown.svelte-1b4sr40 button:where(.svelte-1b4sr40):disabled{color:#666;cursor:default}.dropdown.svelte-1b4sr40 button:where(.svelte-1b4sr40):disabled:hover{background:0 0}.magic-map-overlay.svelte-1pdhgnl{z-index:50;background:#000000b3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.magic-map-container.svelte-1pdhgnl{background:#1e1e1e;border:1px solid #7a6a4a;border-radius:6px;flex-direction:column;max-width:95%;max-height:95%;display:flex;overflow:hidden}.magic-map-header.svelte-1pdhgnl{color:#c0b090;background:#252525;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:.3rem .6rem;font-size:.85rem;display:flex}.close-btn.svelte-1pdhgnl{color:#c0b090;cursor:pointer;background:0 0;border:none;padding:0 .3rem;font-size:1.2rem;line-height:1}.close-btn.svelte-1pdhgnl:hover{color:#fff}.magic-map-canvas-wrap.svelte-1pdhgnl{justify-content:center;align-items:center;padding:4px;display:flex}canvas.svelte-1pdhgnl{image-rendering:pixelated}.query-overlay.svelte-1n46o8q{z-index:100;background:#00000053;position:absolute;inset:0}.query-box.svelte-1n46o8q{background:#1e1e1e;border:1px solid #7a6a4a;border-radius:6px;flex-direction:column;gap:.75rem;width:340px;padding:1.5rem;display:flex;position:absolute;top:calc(50% + 48px);left:50%;transform:translate(-50%)}.query-box.svelte-1n46o8q .query-text:where(.svelte-1n46o8q){color:#c0b090;margin:0;font-size:.9rem}.query-box.svelte-1n46o8q .yesno-buttons:where(.svelte-1n46o8q){gap:.5rem;display:flex}.query-box.svelte-1n46o8q .yesno-buttons:where(.svelte-1n46o8q) button:where(.svelte-1n46o8q){flex:1}.query-box.svelte-1n46o8q label:where(.svelte-1n46o8q){color:#c0b090;flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.query-box.svelte-1n46o8q input:where(.svelte-1n46o8q){color:#e0e0e0;background:#2a2a2a;border:1px solid #555;border-radius:4px;padding:.5rem;font-size:1rem}.query-box.svelte-1n46o8q input:where(.svelte-1n46o8q):focus{border-color:#7a6a4a;outline:none}.query-box.svelte-1n46o8q button:where(.svelte-1n46o8q){color:#e0d0b0;cursor:pointer;background:#4a3a2a;border:1px solid #7a6a4a;border-radius:4px;padding:.6rem 1rem;font-size:1rem}.query-box.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:#5a4a3a}.menu-area.svelte-1n46o8q{align-items:center;gap:.5rem;display:flex}.status-indicators.svelte-1n46o8q{gap:.4rem;display:flex}.indicator.svelte-1n46o8q{text-transform:uppercase;border-radius:3px;padding:.15rem .5rem;font-size:.75rem;font-weight:700}.indicator.fire.svelte-1n46o8q{color:#fcc;background:#8b2020}.indicator.run.svelte-1n46o8q{color:#cce0ff;background:#205080}.tab-panel.svelte-1n46o8q{height:100%}.tab-panel[hidden].svelte-1n46o8q{display:none}.disconnect-overlay.svelte-1n46o8q{z-index:200;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.disconnect-box.svelte-1n46o8q{background:#1e1e1e;border:1px solid #8b2020;border-radius:6px;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.disconnect-box.svelte-1n46o8q p:where(.svelte-1n46o8q){color:#f88;margin:0;font-size:1.1rem}.disconnect-box.svelte-1n46o8q button:where(.svelte-1n46o8q){color:#e0d0b0;cursor:pointer;background:#4a3a2a;border:1px solid #7a6a4a;border-radius:4px;padding:.6rem 1.5rem;font-size:1rem}.disconnect-box.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:#5a4a3a}
