:root{--bg: #0d0d0d;--bg-2: #1a1a1a;--border: #2c2c2c;--fg: #e0e0e0;--fg-muted: #888;--accent: #3a8;--accent-fg: #0d0d0d;--error: #e34;--warn: #fa3;--font-ui: system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, "Cascadia Code", "Consolas", monospace;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;width:100%;background:var(--bg);color:var(--fg);font-family:var(--font-ui);font-size:14px;line-height:1.4;overflow:hidden}.app-root{width:100vw;height:100vh;background:var(--bg);color:var(--fg);display:flex;flex-direction:column;overflow:hidden}.application-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:18px;min-height:50px;padding:8px 16px;background:#171d19;border-bottom:1px solid #34443a;flex:0 0 auto;z-index:30}.application-header :is(button,select,input){font:12px var(--font-ui);color:#dce9df;background:#1b251e;border:1px solid #405747;border-radius:5px;padding:6px 9px}.application-header button{cursor:pointer}.application-header button:hover{background:#2a4031}.application-header button:disabled{opacity:.5;cursor:default}.application-header :is(button,select,input):focus-visible{outline:2px solid #7ed1a8;outline-offset:3px}.application-load{min-width:0}.surface-switch{display:flex;gap:3px;border:1px solid #344e3d;padding:3px;border-radius:7px}.surface-switch button{width:65px;border-color:transparent;background:transparent}.surface-switch button[aria-pressed=true]{color:#e7f7ec;background:#304c39;border-color:#52765d}.application-context{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:11px;font-size:12px}.application-context .header-character,.header-world{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.header-world{color:#9dab9f}.application-version{position:relative;min-width:0;flex-shrink:0}.application-header .version-trigger{color:#aebbaf;padding:4px 7px;font-size:12px}.version-choice{position:absolute;right:0;top:calc(100% + 12px);width:min(350px,calc(100vw - 32px));padding:17px;background:#19251d;border:1px solid #48624f;border-radius:7px;box-shadow:0 8px 32px #0007}.version-choice p{margin:0 0 15px;color:#b9cbbc;font-size:12px}.version-choice label{display:grid;gap:6px;margin-bottom:12px;font-size:12px}.version-choice :is(select,input){width:100%;min-width:0}.version-choice form{margin:17px 0}.application-surfaces{flex:1;min-height:0;position:relative}.application-surface{height:100%;min-height:0}.application-surface[hidden]{display:none}@media(max-width:1100px){.application-header{gap:8px 14px}.application-context{grid-column:1 / -1;justify-content:flex-end}}@media(max-width:500px){.application-header{padding:7px 10px;gap:6px}.application-header .application-load-button{padding:5px}.application-context{justify-content:space-between;gap:7px}.application-header .version-trigger{max-width:195px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-choice{position:fixed;top:88px;left:16px;right:16px;width:auto}}.error-banner{background:var(--error);color:var(--bg);padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:600}.error-banner button{background:var(--bg);color:var(--fg);border:1px solid var(--bg);border-radius:4px;padding:4px 12px;cursor:pointer;font:inherit}.empty-state{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;gap:16px}.empty-state h1{margin:0;font-size:36px;font-weight:700;letter-spacing:-.02em}.empty-state .subtitle{margin:0 0 16px;color:var(--fg-muted);max-width:480px}.empty-state .footer{margin-top:32px;color:var(--fg-muted);font-size:12px;max-width:540px}.empty-state .footer code{font-family:var(--font-mono);background:var(--bg-2);padding:1px 5px;border-radius:3px}.empty-state .footer ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px;text-align:left}.save-loader{width:min(560px,100%);border:2px dashed var(--border);border-radius:8px;padding:32px;display:flex;flex-direction:column;align-items:center;gap:16px;background:var(--bg-2);transition:border-color .12s ease,background .12s ease;position:relative}.save-loader.drag-over{border-color:var(--accent);background:#11332a}.save-loader.busy{pointer-events:none;opacity:.6}.save-loader .pick-button{background:var(--accent);color:var(--accent-fg);border:none;border-radius:4px;padding:10px 20px;font:inherit;font-weight:600;cursor:pointer}.save-loader .pick-button:hover{filter:brightness(1.1)}.save-loader .or-line{color:var(--fg-muted);font-size:13px}.save-loader .hint{color:var(--fg-muted);font-size:12px;text-align:center}.save-folder-picker-input{display:none}.loading{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px}.loading h2{margin:0;font-size:20px;font-weight:600}.loading .phase{color:var(--fg-muted);font-size:13px}.loading .progress-bar{width:min(420px,80vw);height:4px;background:var(--bg-2);border-radius:2px;overflow:hidden;position:relative}.loading .progress-bar .fill{height:100%;background:var(--accent);transition:width .12s ease}.loading .progress-bar.indet .fill{width:30%;animation:indet 1.6s ease-in-out infinite}@keyframes indet{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(150%)}}.loading .errors{margin-top:12px;color:var(--warn);font-size:12px;max-width:480px}.loading .errors ul{margin:4px 0 0;padding-left:20px}.map-view{display:grid;grid-template-columns:1fr 480px;grid-template-rows:minmax(0,1fr) 32px;grid-template-areas:"main aside" "footer footer";width:100%;height:100%}.map-view.panel-closed{grid-template-columns:1fr;grid-template-areas:"main" "footer"}.map-view>main{grid-area:main;position:relative;overflow:hidden;background:#000}.map-view>aside{grid-area:aside;background:var(--bg-2);border-left:1px solid var(--border);overflow-y:auto;overflow-x:hidden}.map-view>footer{grid-area:footer;background:var(--bg-2);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:12px}.map-canvas-wrap{position:absolute;inset:0;overflow:hidden}.map-canvas-wrap canvas{display:block;width:100%;height:100%;image-rendering:pixelated;cursor:grab}.map-canvas-wrap canvas:active{cursor:grabbing}.detail-panel{padding:16px;display:flex;flex-direction:column;gap:12px;font-size:13px;overflow-x:hidden}.detail-panel .empty{color:var(--fg-muted);font-size:12px;font-style:italic}.detail-panel header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:4px;background:transparent;border-left:0}.detail-panel header h3{margin:0;font-size:14px;font-weight:600;flex:1 1 auto;min-width:0;word-break:break-word}.detail-panel .dp-title-link{color:var(--fg);text-decoration:none}.detail-panel .dp-title-link:hover{color:var(--accent);text-decoration:underline}.detail-panel .dp-subtitle{display:flex;align-items:center;gap:8px;font-size:12px}.detail-panel .dp-subtitle-label{color:var(--fg-muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em;min-width:56px}.detail-panel .dp-subtitle-value{color:var(--fg);word-break:break-all}.detail-panel .dp-subtitle-value>.id{margin-left:6px;font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);word-break:break-all;overflow-wrap:anywhere}.detail-panel .dp-distance{color:var(--fg-muted);font-size:11px}.detail-panel .close{background:transparent;color:var(--fg-muted);border:none;cursor:pointer;font:inherit;font-size:16px;padding:0 4px}.detail-panel .close:hover{color:var(--fg)}.detail-panel .row{display:flex;flex-direction:column;gap:2px}.detail-panel .row .label{color:var(--fg-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.detail-panel .row .value{color:var(--fg);word-break:break-all}.detail-panel .id{font-family:var(--font-mono);font-size:12px}.detail-panel .sym-cell{display:inline-block;font-family:var(--font-mono);font-size:16px;width:24px;height:24px;line-height:24px;text-align:center;border:1px solid var(--border);border-radius:3px}.detail-panel .placeholder{color:var(--fg-muted);font-size:12px;font-style:italic;border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.detail-panel .dp-scroll{display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto;padding-right:4px}.detail-panel .dp-guide-link{color:var(--accent);text-decoration:none;font-family:var(--font-mono);font-size:11px;margin-left:4px}.detail-panel .dp-guide-link:hover{text-decoration:underline}.detail-panel .dp-special{border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:8px}.detail-panel .dp-special-header{border:none;padding:0;margin:0;background:transparent}.detail-panel .dp-special-header h4{margin:0;font-size:13px;font-weight:600}.detail-panel .dp-section{display:flex;flex-direction:column;gap:4px}.detail-panel .dp-section+.dp-section{border-top:1px solid var(--border);padding-top:8px;margin-top:8px}.detail-panel .dp-section-title{margin:0;font-size:13px;letter-spacing:.04em;color:var(--fg-muted);font-weight:600}.detail-panel .dp-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.detail-panel .dp-group{border:1px solid var(--border);border-radius:3px;background:var(--bg);overflow:hidden}.detail-panel .dp-group-toggle{width:100%;background:transparent;border:none;color:var(--fg);font:inherit;font-size:12px;text-align:left;padding:6px 8px;cursor:pointer;display:flex;align-items:center;gap:6px}.detail-panel .dp-group-toggle:hover{background:var(--bg-2)}.detail-panel .dp-caret{color:var(--fg-muted);width:10px;display:inline-block}.detail-panel .dp-group-name{font-family:var(--font-mono);font-size:11px;flex:1 1 auto;word-break:break-all}.detail-panel .dp-group-meta{color:var(--fg-muted);font-size:11px}.detail-panel .dp-group-body{border-top:1px solid var(--border);padding:6px 8px;display:flex;flex-direction:column;gap:4px}.detail-panel .dp-empty{margin:0;color:var(--fg-muted);font-size:11px;font-style:italic}.detail-panel .dp-entry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.detail-panel .dp-entry{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;font-size:12px;min-width:0}.detail-panel .dp-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.detail-panel .dp-entry-link{color:var(--fg);text-decoration:none;font-weight:500;flex:0 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-word}.detail-panel .dp-entry-link:hover{color:var(--accent);text-decoration:underline}.detail-panel .dp-entry-id{font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);flex:1 1 auto;min-width:0;overflow-wrap:anywhere;word-break:break-word}.detail-panel .dp-entry-weight{font-family:var(--font-mono);font-size:10px;color:var(--fg-muted);margin-left:auto;white-space:nowrap;flex:0 0 auto}.detail-panel .dp-entry-meta{font-size:10px;color:var(--fg-muted);font-style:italic}.detail-panel .dp-show-more{background:transparent;border:1px dashed var(--border);color:var(--fg-muted);border-radius:3px;font:inherit;font-size:11px;padding:3px 6px;cursor:pointer;align-self:flex-start}.detail-panel .dp-show-more:hover{color:var(--accent);border-color:var(--accent)}.toolbar{display:flex;align-items:center;gap:12px;width:100%;font-size:12px}.toolbar .group{display:flex;align-items:center;gap:4px;color:var(--fg-muted)}.toolbar .group .label{margin-right:4px}.toolbar button{background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:2px 6px;font:inherit;cursor:pointer;min-width:24px}.toolbar button:hover{border-color:var(--accent);color:var(--accent)}.toolbar button:disabled{opacity:.4;cursor:not-allowed}.toolbar .spacer{flex:1 1 auto}.toolbar .value{color:var(--fg);font-family:var(--font-mono)}.search-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;width:min(320px,60vw);margin:0}.search-bar input{width:100%;background:#1a1a1ae6;border:1px solid var(--border);color:var(--fg);padding:6px 10px;font:inherit;border-radius:4px;backdrop-filter:blur(4px)}.search-bar input:focus{outline:none;border-color:var(--accent)}.search-bar-list{list-style:none;margin:4px 0 0;padding:4px;background:#1a1a1af5;border:1px solid var(--border);border-radius:4px;max-height:min(60vh,480px);overflow-y:auto;box-shadow:0 4px 16px #0009;backdrop-filter:blur(4px);display:flex;flex-direction:column;gap:1px}.search-bar-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:3px;cursor:pointer;font-size:13px}.search-bar-row.active{background:var(--bg);outline:1px solid var(--accent);outline-offset:-1px}.search-bar-row:hover:not(.active){background:var(--bg)}.search-bar-name{color:var(--fg);flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.search-bar-kind{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:3px;flex:0 0 auto}.search-bar-kind.kind-special{background:#5e1d4d;color:#f7c9e8}.search-bar-kind.kind-terrain{background:#1d4f4d;color:#c9f7f0}.search-bar-count{font-size:11px;color:var(--fg-muted);font-family:var(--font-mono);flex:0 0 auto;white-space:nowrap}.search-bar-empty{padding:8px;font-size:12px;color:var(--fg-muted);font-style:italic;text-align:center}.edge-markers{position:absolute;inset:0;pointer-events:none;z-index:5;overflow:hidden}.marker-pin{position:absolute;top:0;left:0;margin-left:-4px;margin-top:-4px;pointer-events:auto;cursor:pointer;width:16px;height:16px;display:flex;align-items:flex-start;justify-content:center;will-change:transform}.marker-pin-dot{width:8px;height:8px;border-radius:50%;background:var(--marker-color, #ffffff);box-shadow:0 0 0 1.5px #000,0 0 6px #000000b3;flex:0 0 auto}.marker-pin-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:4px;padding:2px 6px;background:#0d0d0dd9;color:var(--marker-color, var(--fg));font-size:11px;font-family:var(--font-mono);border:1px solid var(--marker-color, var(--border));border-radius:3px;white-space:nowrap;pointer-events:none;text-shadow:0 0 2px #000}.marker-edge{position:absolute;top:0;left:0;width:24px;height:24px;margin-left:-12px;margin-top:-12px;pointer-events:auto;cursor:pointer;display:flex;align-items:center;justify-content:center;will-change:transform}.marker-edge-arrow{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid var(--marker-color, #ffffff);filter:drop-shadow(0 0 3px rgba(0,0,0,.8))}.marker-edge-label{position:absolute;right:100%;top:50%;margin-right:6px;transform-origin:right center;padding:2px 6px;background:#0d0d0dd9;color:var(--marker-color, var(--fg));font-size:11px;font-family:var(--font-mono);border:1px solid var(--marker-color, var(--border));border-radius:3px;white-space:nowrap;pointer-events:none;text-shadow:0 0 2px #000;margin-top:-10px}.toolbar .char-picker{background:var(--bg-2);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:2px 6px;font:inherit;cursor:pointer}.toolbar .char-picker:hover{border-color:var(--accent)}.toolbar .char-picker:disabled{opacity:.6;cursor:wait}.toolbar .char-switching{color:var(--fg-muted);font-style:italic;margin-left:4px}.markers-more{position:absolute;left:16px;bottom:16px;z-index:5;background:#0d0d0dd9;border:1px solid var(--border);border-radius:4px;padding:4px 10px;font-size:12px;font-family:var(--font-mono);color:var(--fg);cursor:pointer;pointer-events:auto;backdrop-filter:blur(4px);display:flex;align-items:center;gap:8px;line-height:1}.markers-more:hover{border-color:var(--accent);color:var(--accent)}.markers-more:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--fg-muted);display:inline-block}.markers-more.expanded:before{background:var(--accent)}.z-diff-indicators{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:4}.z-diff-badge{position:absolute;background:#0d0d0dd9;border:1px solid var(--border);border-radius:12px;padding:3px 10px;font-size:11px;font-family:var(--font-mono);color:var(--fg);white-space:nowrap;cursor:pointer;pointer-events:auto;backdrop-filter:blur(4px);display:flex;align-items:center;gap:6px;transform:translate(-50%)}.z-diff-badge:hover{border-color:var(--accent);color:var(--accent)}.z-diff-badge.above{top:56px}.z-diff-badge.below{bottom:56px}.z-diff-badge-arrow{font-size:13px;line-height:1}.search-bar input,.search-bar-row,.toolbar button,.detail-panel .close,.detail-panel .dp-group-toggle,.detail-panel .dp-show-more,.detail-panel .dp-entry-link,.detail-panel .dp-guide-link,.save-loader .pick-button,.error-banner button{transition:background-color .15s ease,color .15s ease,border-color .15s ease,filter .15s ease}@media(prefers-reduced-motion:reduce){.search-bar input,.search-bar-row,.toolbar button,.detail-panel .close,.detail-panel .dp-group-toggle,.detail-panel .dp-show-more,.detail-panel .dp-entry-link,.detail-panel .dp-guide-link,.save-loader .pick-button,.error-banner button{transition:none}}.detail-panel .dp-scroll{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){.detail-panel .dp-scroll{scroll-behavior:auto}}.empty-state-hero{display:block;margin:0 auto 8px;filter:drop-shadow(0 0 6px rgba(58,168,136,.18))}.empty-state-mobile{background:#ffaa331f;border:1px solid var(--warn);color:var(--warn);padding:8px 12px;border-radius:4px;font-size:12px;max-width:480px;text-align:left;line-height:1.45}.perf-toggle{position:relative;display:inline-flex;align-items:center}.perf-toggle-btn{background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:2px 8px;font:inherit;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.perf-toggle-btn:hover{border-color:var(--accent);color:var(--accent);background:#3aa8880f}.perf-toggle-btn[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.perf-toggle-label{color:var(--fg-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.perf-toggle-current{font-family:var(--font-mono);font-size:11px}.perf-toggle-caret{color:var(--fg-muted);font-size:10px}.perf-toggle-menu{position:absolute;bottom:calc(100% + 4px);right:0;z-index:30;list-style:none;margin:0;padding:4px;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;box-shadow:0 -4px 16px #0009;display:flex;flex-direction:column;gap:2px;min-width:280px;max-width:min(360px,90vw)}.perf-toggle-item{display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-radius:3px;cursor:pointer;outline:none;transition:background-color .15s ease,color .15s ease}.perf-toggle-item:hover,.perf-toggle-item:focus-visible{background:var(--bg)}.perf-toggle-item.active{background:var(--bg);outline:1px solid var(--accent);outline-offset:-1px}.perf-toggle-item-label{font-size:12px;font-weight:600;color:var(--fg)}.perf-toggle-item.active .perf-toggle-item-label{color:var(--accent)}.perf-toggle-item-desc{font-size:11px;color:var(--fg-muted);line-height:1.35}@media(prefers-reduced-motion:reduce){.perf-toggle-btn,.perf-toggle-item{transition:none}}.drawer-tab{display:none}.rotate-prompt{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:40;background:#0d0d0deb;color:var(--fg);border:1px solid var(--accent);border-radius:6px;padding:14px 18px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;text-align:center;pointer-events:none;max-width:280px}.rotate-prompt-icon{font-size:28px;color:var(--accent);animation:rotate-hint 2.4s ease-in-out infinite;display:inline-block}@keyframes rotate-hint{0%,to{transform:rotate(0)}50%{transform:rotate(90deg)}}@media(prefers-reduced-motion:reduce){.rotate-prompt-icon{animation:none}}@media(max-width:1099px){.map-view{grid-template-columns:1fr;grid-template-areas:"main" "footer"}.map-view>aside{position:absolute;right:12px;bottom:44px;width:min(360px,calc(100vw - 24px));max-height:min(60vh,480px);border:1px solid var(--border);border-radius:6px 6px 0 0;box-shadow:0 -6px 24px #0009;overflow-y:auto;transform:translateY(calc(100% + 60px));transition:transform .2s ease;z-index:25}.map-view.drawer-open>aside{transform:translateY(0)}.map-view .drawer-tab{display:inline-flex;align-items:center;gap:6px;position:absolute;right:12px;bottom:38px;z-index:26;background:var(--bg-2);color:var(--fg);border:1px solid var(--accent);border-radius:4px 4px 0 0;padding:4px 12px;font:inherit;font-size:12px;cursor:pointer;transition:background-color .15s ease,color .15s ease}.map-view .drawer-tab:hover{background:var(--bg);color:var(--accent)}.map-view.drawer-open .drawer-tab{bottom:calc(min(60vh,480px) + 38px);border-radius:4px 4px 0 0}}@media(prefers-reduced-motion:reduce){.map-view>aside{transition:none}}@media(max-width:699px){.map-view{grid-template-rows:minmax(0,1fr) 56px}.map-view>footer{flex-wrap:wrap;padding:4px 8px;gap:6px;align-items:center}.toolbar{flex-wrap:wrap;gap:6px;font-size:11px}.toolbar .group{gap:2px}.map-view>aside{left:0;right:0;width:100%;max-height:70vh;border-radius:12px 12px 0 0;bottom:56px;border-left:1px solid var(--border);border-right:1px solid var(--border)}.map-view .drawer-tab{right:8px;bottom:60px}.map-view.drawer-open .drawer-tab{bottom:calc(70vh + 60px)}.search-bar{width:calc(100vw - 24px);top:8px}.search-bar-list{max-height:50vh}.perf-toggle-btn{padding:2px 6px;font-size:11px}.perf-toggle-label{display:none}.empty-state{padding:24px 16px}.empty-state h1{font-size:28px}.empty-state-hero{width:72px;height:72px}}.error-banner.error-banner-error,.error-banner.error-banner-warning{display:flex;align-items:flex-start;gap:16px;padding:10px 16px;font-size:13px;line-height:1.4;border-bottom:1px solid var(--border)}.mod-data-popup{position:fixed;right:16px;bottom:48px;z-index:80;width:min(440px,calc(100vw - 32px))}.mod-data-popup .error-banner{position:relative;margin:0;padding-right:48px;border-radius:8px;box-shadow:0 8px 28px #0008}.mod-data-popup .error-banner-actions{position:absolute;top:6px;right:6px}.mod-data-popup .error-banner-dismiss{width:32px;height:32px}.mod-data-popup .error-banner-message{overflow-wrap:anywhere}.error-banner.error-banner-error{background:var(--error);color:#fff;font-weight:500}.error-banner.error-banner-warning{background:var(--warn);color:#1a1a1a}.error-banner-body{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.error-banner-title{font-weight:700;font-size:13px}.error-banner-message{font-weight:400;word-break:break-word}.error-banner-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.error-banner-action{background:transparent;border:1px solid currentColor;border-radius:3px;padding:4px 12px;font:inherit;font-weight:500;cursor:pointer;color:inherit;white-space:nowrap}.error-banner-action:hover{background:#ffffff2e}.error-banner.error-banner-warning .error-banner-action:hover{background:#0000001f}.error-banner-action-primary{background:#ffffff26}.error-banner.error-banner-warning .error-banner-action-primary{background:#0000001a}.error-banner-dismiss{background:transparent;border:none;color:inherit;font:inherit;font-size:18px;line-height:1;padding:2px 8px;cursor:pointer;border-radius:3px}.error-banner-dismiss:hover{background:#ffffff2e}.error-banner.error-banner-warning .error-banner-dismiss:hover{background:#0000001f}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.error-banner-action:focus-visible,.error-banner-dismiss:focus-visible,.toolbar button:focus-visible,.detail-panel .close:focus-visible,.detail-panel .dp-group-toggle:focus-visible,.detail-panel .dp-show-more:focus-visible,.empty-state .pick-button:focus-visible,.search-bar input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search-bar input:focus-visible{outline-offset:0}.live-region{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(prefers-reduced-motion:reduce){.loading .progress-bar.indet .fill{animation:none;width:100%}.save-loader,.search-bar-list{transition:none}.error-banner.error-banner-error,.error-banner.error-banner-warning{animation:none}}.missions-workspace{--bg:#101411;--panel:#151a17;--raised:#1b231e;--border:#34443a;--text:#e5eee7;--muted:#9dab9f;--green:#7ed1a8;--amber:#e6b674;--purple:#c2b2df;height:100%;min-height:0;display:grid;grid-template-columns:256px minmax(0,1fr);position:relative;color:var(--text);background:var(--bg);font-size:13px}.missions-workspace.details-open{grid-template-columns:256px minmax(0,1fr) 320px}.missions-workspace *{box-sizing:border-box}.missions-workspace :is(button,input,summary){font:inherit;color:inherit}.missions-workspace button{cursor:pointer;background:transparent;border:1px solid var(--border);border-radius:5px;padding:7px 10px}.missions-workspace button:hover{background:#26332b;border-color:#657b6c}.missions-workspace :is(button,input,summary,a):focus-visible{outline:2px solid var(--green);outline-offset:3px}.missions-workspace a{color:var(--green)}.mission-navigator{min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--border);background:#121813}.missions-workspace .nav-head{padding:14px 13px 11px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.missions-workspace .nav-head strong{font-weight:550}.missions-workspace .count{color:#8c9b90;font-size:12px;font-variant-numeric:tabular-nums}.missions-workspace .collapse{border:0;padding:1px 4px;color:var(--muted);font-size:12px}.missions-workspace .mission-search{grid-column:1/-1;width:100%;background:#0f1511;color:var(--text);border:1px solid #35473a;border-radius:5px;padding:8px 9px;font-size:12px}.missions-workspace .filters{grid-column:1/-1;display:grid;gap:6px}.missions-workspace .filter-row{display:flex;gap:5px}.missions-workspace .filter{font-size:12px;padding:5px 6px;line-height:1.25;white-space:nowrap;color:#819687;border-color:#35473a}.missions-workspace .filter[aria-pressed=true]{color:#d4efdd;border-color:#52765d;background:#293f30}.missions-workspace .mission-list{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#3e5143 transparent;padding:0 7px 16px}.missions-workspace .faction{margin:2px 0 5px}.missions-workspace .faction summary{display:flex;align-items:center;gap:7px;padding:8px 6px;cursor:pointer;color:#aebeaf;font-size:12px;font-weight:650;list-style:none}.missions-workspace .faction summary::-webkit-details-marker{display:none}.missions-workspace .faction summary:before{content:"›";width:9px;font-size:15px;line-height:1}.missions-workspace .faction[open] summary:before{transform:rotate(90deg)}.missions-workspace .faction summary .count{margin-left:auto;font-size:12px;font-weight:400}.missions-workspace .mission-link{width:100%;display:flex;text-align:left;align-items:center;gap:8px;border:1px solid transparent;padding:7px 8px 7px 19px;border-radius:4px;line-height:1.25;font-size:12px}.missions-workspace .mission-link .name{flex:1}.missions-workspace .mission-link[aria-current=true]{background:#263b2d;border-color:#40644b;color:#e1f5e7}.missions-workspace .dot{display:inline-block;flex:0 0 auto;width:5px;height:5px;border:1px solid #75857a;border-radius:50%}.missions-workspace .dot.active{border-color:var(--amber);background:var(--amber)}.missions-workspace .dot.completed{border-color:var(--green);background:var(--green)}.missions-workspace .dot.offered{border-color:var(--purple);background:var(--purple)}.missions-workspace .dot.failed{border-color:#e78d7b;background:#e78d7b}.mission-main{min-width:0;min-height:0;position:relative;overflow:hidden}.mission-canvas{position:absolute;inset:0;overflow:clip;cursor:grab;touch-action:none;background-color:#101612;background-image:radial-gradient(#2c3a30 .8px,transparent .8px);background-size:22px 22px}.mission-canvas.dragging{cursor:grabbing;user-select:none}.mission-graph{position:absolute;top:0;left:0;transform-origin:0 0}.mission-edges{position:absolute;inset:0;overflow:visible;pointer-events:none}.mission-edges .edge{fill:none;stroke:#526459;stroke-width:1.5}.mission-edges .edge.met{stroke:#5d9874}.missions-workspace .node-shell{position:absolute}.missions-workspace .node{position:relative;width:194px;height:88px;text-align:left;background:#1b251e;border:1px solid #44594a;border-radius:7px;padding:12px 13px;box-shadow:0 4px 16px #0003;display:flex;flex-direction:column;justify-content:center;gap:7px;line-height:1.25}.missions-workspace .node:hover{background:#24352a;border-color:#9bbda5}.missions-workspace .node strong{font-size:13px;font-weight:560;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.missions-workspace .node .state{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}.missions-workspace .node.met .state{color:var(--green)}.missions-workspace .node.unmet .state{color:var(--amber)}.missions-workspace .node.unknown .state{color:var(--purple)}.missions-workspace .node.target{border:1px solid #90b79b;background:#293e2f;box-shadow:0 0 0 4px #7db48e12,0 5px 20px #0004}.missions-workspace .node.target strong{font-size:15px}.missions-workspace .node.target .state{color:var(--muted)}.missions-workspace .node.gate{width:100px;height:62px;background:#17221b;border-style:dashed;box-shadow:none;text-align:center;align-items:center;gap:5px}.missions-workspace .node.gate strong{font-size:12px;font-weight:650;letter-spacing:.08em}.missions-workspace .node.gate .state{font-size:12px}.missions-workspace .node.timer{border-color:#746047;background:#2a251c}.missions-workspace .node.selected{outline:2px solid #a3d9b6;outline-offset:3px}.missions-workspace .expand-node{position:absolute;left:-13px;top:50%;transform:translateY(-50%);z-index:1;width:26px;height:26px;padding:0;display:grid;place-items:center;border:1px solid #759a80;border-radius:50%;background:#233b2b;color:#cde8d5;font-size:18px;line-height:1;box-shadow:0 0 0 3px #101612}.missions-workspace .expand-node:hover{background:#42664c}.missions-workspace .canvas-label{position:absolute;z-index:1;left:20px;top:17px;pointer-events:none;color:var(--muted);font-size:12px;max-width:calc(100% - 200px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.missions-workspace .canvas-label b{color:#d4dfd6;font-weight:500}.mission-tools{position:absolute;z-index:1;right:17px;top:12px;display:flex;align-items:center;border:1px solid #3b4e41;border-radius:6px;overflow:hidden;background:#17221c;box-shadow:0 2px 12px #0003}.mission-tools button{padding:6px 10px;border:0;border-radius:0;min-width:30px}.mission-tools .zoom-label{min-width:40px;text-align:center;color:var(--muted);font-size:12px}.mission-tools .fit{border-left:1px solid #3b4e41;font-size:12px}.mission-legend{position:absolute;bottom:14px;left:20px;display:flex;gap:15px;color:#96a69a;font-size:12px;pointer-events:none}.mission-legend span{display:flex;align-items:center;gap:5px}.mission-legend i{font-style:normal}.mission-legend .met-color{color:var(--green)}.mission-legend .unmet-color{color:var(--amber)}.mission-legend .unknown-color{color:var(--purple)}.mission-inspector{min-height:0;overflow:auto;overscroll-behavior:contain;border-left:1px solid #3d5143;background:#19211c;padding:23px 21px;scrollbar-width:thin}.mission-inspector .detail-heading{position:relative;padding-right:24px}.mission-inspector h2{font-size:22px;line-height:1.25;letter-spacing:-.025em;font-weight:600;margin:7px 0 16px}.mission-inspector .close{position:absolute;top:-7px;right:-9px;border:0;padding:4px 8px;font-size:22px;color:#adbcaf}.mission-inspector .detail-kind{color:#9bad9f;font-size:12px}.mission-inspector .detail-state{display:inline-flex;align-items:center;gap:7px;background:#25372b;border:1px solid #3d5745;border-radius:4px;padding:4px 8px;font-size:12px}.mission-inspector .detail-state.met{color:var(--green)}.mission-inspector .detail-state.unmet{color:var(--amber)}.mission-inspector .detail-state.unknown{color:var(--purple)}.mission-inspector p{font-size:13px;line-height:1.65;margin:13px 0}.mission-inspector .detail-context{margin:22px 0}.mission-inspector .detail-context dt{color:var(--muted);font-size:12px;margin:15px 0 6px}.mission-inspector .detail-context dd{margin:0;font-size:13px;line-height:1.5}.mission-inspector details{border-top:1px solid #3b4c40;padding:16px 0}.mission-inspector summary{cursor:pointer;font-size:14px;font-weight:550;color:#d8e6dc}.mission-inspector details:last-child{padding-bottom:3px}.mission-inspector ul{font-size:13px;line-height:1.6;padding-left:17px;margin:15px 0 0}.mission-inspector li+li{margin-top:13px}.mission-inspector pre{color:#b9c8bd;white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.6 ui-monospace,monospace}.mission-inspector a{font-size:12px}.mission-inspector .saved-record{display:block}.mission-inspector .choice-heading{color:var(--muted);font-weight:600}.mission-inspector .reward-choice{padding:13px 0;border-top:1px solid #35473b}.mission-inspector .reward-choice strong{font-size:13px}.mission-inspector .reward-choice .requires{color:var(--muted);font-size:12px}.mission-inspector .detail-actions{margin:20px 0}.mission-inspector .detail-actions button{font-size:12px;padding:7px 10px;background:#263c2f}.missions-workspace .empty{margin:12px;color:var(--muted);font-size:12px}.mission-message{height:100%;min-width:0;display:grid;place-items:center;padding:32px;color:#b9c8bd;background:#101612;font-size:14px}.mission-message>div{max-width:560px}.mission-message h2{font-size:20px}@media(max-width:1000px){.missions-workspace.details-open{grid-template-columns:256px minmax(0,1fr) 280px}.mission-inspector{padding:20px 16px}}@media(max-width:700px){.missions-workspace,.missions-workspace.details-open{grid-template-columns:240px minmax(0,1fr)}.missions-workspace .filter{padding:5px 3px}.mission-inspector{position:absolute;right:0;top:0;bottom:0;width:min(320px,calc(100vw - 24px));z-index:5;box-shadow:-8px 0 35px #0008}.missions-workspace .canvas-label{top:58px;left:12px;max-width:calc(100% - 24px)}.mission-legend{left:12px;gap:8px}}
