:root{color-scheme:light;--app-bg: oklch(.985 0 0);--app-grid: rgb(23 23 23 / .055);--surface: oklch(.985 0 0);--surface-raised: #ffffff;--panel: oklch(.97 0 0);--panel-strong: oklch(.922 0 0);--border: oklch(.886 0 0);--border-strong: oklch(.708 0 0);--text: oklch(.205 0 0);--text-strong: oklch(.145 0 0);--muted: oklch(.439 0 0);--subtle: oklch(.556 0 0);--accent: oklch(.205 0 0);--on-accent: #ffffff;--accent-strong: oklch(.145 0 0);--accent-soft: oklch(.97 0 0);--accent-wash: rgb(23 23 23 / .08);--warning: oklch(.52 .14 73);--warning-soft: oklch(.96 .05 89);--danger: oklch(.577 .245 27.325);--danger-soft: oklch(.96 .025 17);--selection: oklch(.91 .03 252);--selection-hover: oklch(.955 .015 252);--mark: #ffd775;--focus-ring: rgb(23 23 23 / .2);--skeleton-base: rgb(23 23 23 / .08);--skeleton-highlight: rgb(255 255 255 / .7);--radius-xs: 3px;--radius-sm: 4px;--radius-md: 5px;--radius-lg: 6px;--radius-xl: 8px;--shadow: 0 1px 3px rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--button-bg: #ffffff;--menu-bg: #fbfcfc;--disabled: oklch(.556 0 0);--backdrop-scrim: rgb(0 0 0 / .52);--type-media: #3979a8;--type-numeric: #7a699d;--canvas-checkerboard-base: #ffffff;--canvas-checkerboard-light: #eef2f1;--canvas-checkerboard-dark: #d9e1df}:root[data-theme=dark]{color-scheme:dark;--app-bg: oklch(.145 0 0);--app-grid: rgb(255 255 255 / .035);--surface: oklch(.205 0 0);--surface-raised: oklch(.235 0 0);--panel: oklch(.18 0 0);--panel-strong: oklch(.269 0 0);--border: oklch(.275 0 0);--border-strong: oklch(.325 0 0);--text: oklch(.922 0 0);--text-strong: oklch(.985 0 0);--muted: oklch(.708 0 0);--subtle: oklch(.556 0 0);--accent: oklch(.922 0 0);--on-accent: oklch(.205 0 0);--accent-strong: oklch(.985 0 0);--accent-soft: oklch(.269 0 0);--accent-wash: rgb(245 245 245 / .1);--warning: oklch(.78 .14 79);--warning-soft: oklch(.255 .04 73);--danger: oklch(.704 .191 22.216);--danger-soft: oklch(.27 .055 22);--selection: oklch(.325 0 0);--selection-hover: oklch(.371 0 0);--mark: oklch(.42 .12 73);--focus-ring: rgb(245 245 245 / .24);--skeleton-base: rgb(255 255 255 / .08);--skeleton-highlight: rgb(255 255 255 / .18);--shadow: 0 1px 3px rgb(0 0 0 / .28), 0 1px 2px -1px rgb(0 0 0 / .42);--button-bg: oklch(.269 0 0);--menu-bg: oklch(.205 0 0);--disabled: oklch(.439 0 0);--canvas-checkerboard-base: oklch(.235 0 0);--canvas-checkerboard-light: oklch(.235 0 0);--canvas-checkerboard-dark: oklch(.18 0 0)}*{transition:background-color .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}:root{color:var(--text);background:var(--app-bg);font-family:Segoe UI,Aptos,ui-sans-serif,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box;scrollbar-color:var(--border-strong) var(--panel)}html,body,#root{height:100%;margin:0;font-size:18px}body{overflow:hidden}::selection{background:color-mix(in srgb,var(--accent),transparent 72%);color:var(--text-strong)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.app{display:flex;height:100%;flex-direction:column;overflow:hidden}.app-header{display:flex;min-height:44px;flex:0 0 auto;align-items:center;gap:10px;border-bottom:1px solid var(--border-strong);background:var(--menu-bg);padding:5px 8px}.header-spacer{margin-left:auto}.header-divider{width:1px;height:18px;flex:0 0 auto;background:var(--border-strong)}.icon-button{display:inline-grid;width:32px;min-width:32px;height:32px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);line-height:1;padding:0}.icon-button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.icon-button.bgm-button{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.icon-button.bgm-button:not(:disabled):hover{border-color:var(--accent-strong);background:var(--accent-strong);color:var(--on-accent)}.bgm-volume{width:88px;flex:0 0 auto;accent-color:var(--accent);cursor:pointer}.data-folder-button{display:inline-flex;min-height:32px;flex:0 0 auto;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:0 10px;font-size:.75rem;font-weight:700}.data-folder-button svg{width:15px;height:15px;flex:0 0 auto;color:var(--warning)}.data-folder-button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.data-folder-button:disabled{color:var(--disabled)}.app-body{display:grid;min-width:0;min-height:0;flex:1 1 0;grid-template-columns:minmax(240px,var(--tree-pane-width, 380px)) 7px minmax(0,1fr)}.app-left{display:flex;min-width:0;min-height:0;flex-direction:column;background:var(--surface-raised)}.workspace-resizer{display:grid;width:7px;min-width:7px;min-height:0;place-items:center;border-right:1px solid var(--border-strong);border-left:1px solid var(--border);background:var(--panel);cursor:col-resize;touch-action:none}.workspace-resizer span{width:1px;height:38px;border-radius:999px;background:var(--border-strong)}.workspace-resizer:hover,.workspace-resizer:focus-visible,.workspace-resizer.is-active{background:var(--accent-soft);outline:none}.workspace-resizer:hover span,.workspace-resizer:focus-visible span,.workspace-resizer.is-active span{background:var(--accent)}.app-footer{display:grid;min-height:24px;flex:0 0 auto;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;overflow:hidden;border-top:1px solid var(--border-strong);background:var(--panel);color:var(--muted);padding:4px 9px;font-size:.68rem;font-family:Cascadia Mono,Consolas,monospace;font-variant-numeric:tabular-nums;text-align:center;text-overflow:ellipsis;white-space:nowrap}.footer-node-type,.footer-node-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer-node-type{justify-self:start;color:var(--subtle)}.footer-node-path{max-width:min(68vw,760px);justify-self:center}.footer-version{justify-self:end;color:var(--subtle)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.app-menu-bar{position:relative;z-index:40;display:flex;min-height:32px;flex:0 0 auto;align-items:stretch;background:transparent}.app-menu-group{position:relative}.app-menu-trigger{height:100%;min-height:29px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text);padding:0 12px;font-size:.82rem}.app-menu-trigger:hover,.app-menu-group.is-open .app-menu-trigger{background:var(--accent-wash);color:var(--text-strong)}.app-menu-dropdown{position:absolute;top:calc(100% + 3px);left:0;z-index:45;display:grid;width:300px;gap:2px;border:1px solid var(--border-strong);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow);padding:4px}.app-menu-item{display:grid;min-height:48px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:9px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--text);padding:5px 8px;text-align:left}.app-menu-item:not(:disabled):hover,.app-menu-item:not(:disabled):focus-visible{background:var(--accent-soft)}.app-menu-item:disabled{color:var(--disabled)}.app-menu-item>span:last-child{display:grid;min-width:0;gap:2px}.app-menu-item strong{color:var(--text-strong);font-size:.78rem}.app-menu-item small{overflow:hidden;color:var(--subtle);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.export-format-icon{display:grid;min-width:40px;height:24px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--muted);font-family:Cascadia Mono,Consolas,monospace;font-size:.62rem;font-weight:900}.export-format-icon.is-json{border-color:color-mix(in srgb,var(--type-numeric),var(--border) 35%);color:var(--type-numeric)}.export-format-icon.is-png{border-color:color-mix(in srgb,var(--type-media),var(--border) 35%);color:var(--type-media)}.export-format-icon.is-xml{border-color:color-mix(in srgb,var(--warning),var(--border) 35%);color:var(--warning)}.app-menu-hint{margin:2px 4px 0;border-top:1px solid var(--border);color:var(--subtle);padding:6px 7px 3px;font-size:.68rem}.app-toast{position:fixed;right:18px;bottom:38px;z-index:200;max-width:min(620px,calc(100vw - 36px));overflow-wrap:anywhere;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-raised);color:var(--text-strong);box-shadow:var(--shadow);padding:9px 12px;font-size:.76rem}.app-toast.is-success{border-color:color-mix(in srgb,var(--accent),var(--border) 55%)}.app-toast.is-error{border-color:color-mix(in srgb,var(--danger),var(--border) 45%);background:var(--danger-soft);color:var(--danger)}.tree-list{position:relative;min-width:0;min-height:0;flex:1 1 auto;overflow:auto;background:var(--surface-raised);font-size:.76rem}.tree-list:focus{outline:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--focus-ring),transparent 40%)}.tree-virtual-spacer{position:relative;min-height:100%}.tree-row{position:absolute;top:0;right:0;left:0;isolation:isolate;display:grid;min-width:max-content;grid-template-columns:18px minmax(120px,1fr);align-items:center;padding-left:calc(var(--tree-depth, 0) * 16px);--tree-guide-color: color-mix(in srgb, var(--muted) 24%, transparent)}.tree-branch-guides{position:absolute;inset:0 auto 0 0;z-index:0;width:var(--tree-guide-width, 0);background-image:linear-gradient(90deg,transparent 0 8px,var(--tree-guide-color) 8px 9px,transparent 9px 16px);background-size:16px 100%;pointer-events:none}.tree-disclosure{position:relative;z-index:1;display:grid;width:18px;min-width:18px;height:18px;min-height:18px;place-items:center;border:0;background:transparent;color:var(--muted);padding:0;font-size:.75rem;font-weight:700;line-height:1}.tree-disclosure:not(:disabled):hover{color:var(--text-strong)}.tree-disclosure:disabled{opacity:1}.tree-node-button{position:relative;z-index:1;display:grid;min-width:0;min-height:20px;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:4px;border:0;border-radius:0;background:transparent;color:var(--text);padding:0 7px 0 2px;text-align:left}.tree-node-button:hover{background:var(--selection-hover)}.tree-row.is-selected .tree-node-button{background:var(--selection);color:var(--text-strong)}.tree-node-dot{width:5px;height:5px;border-radius:50%;background:var(--subtle)}.tree-node-dot.type-category{border-radius:1px;background:var(--warning)}.tree-node-dot.type-image,.tree-node-dot.type-canvas{background:var(--type-media)}.tree-node-dot.type-numeric{background:var(--type-numeric)}.tree-node-dot.type-text{background:var(--accent)}.tree-node-name{min-width:0;overflow:hidden;color:var(--text-strong);font-family:Cascadia Mono,Consolas,monospace;font-size:.72rem;font-weight:400;line-height:18px;text-overflow:ellipsis;white-space:nowrap}.tree-node-count{color:var(--subtle);font-size:.64rem;font-variant-numeric:tabular-nums}.tree-loading{margin:0;color:var(--muted);padding:10px}.tree-panel-heading{position:relative;display:flex;min-height:38px;flex:0 0 auto;align-items:center;border-top:1px solid var(--border);background:var(--panel);padding:4px 6px}.tree-search{position:relative;width:100%;min-width:0}.tree-search-scope{display:flex;min-width:0;align-items:center;gap:4px;margin-bottom:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--accent-soft);padding:2px 4px 2px 7px}.tree-search-scope-label{flex:1 1 auto;overflow:hidden;color:var(--muted);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.tree-search-scope-clear{display:grid;flex:0 0 auto;width:16px;height:16px;place-items:center;border:0;border-radius:var(--radius-xs);background:transparent;color:var(--muted);padding:0;font-size:.78rem;line-height:1}.tree-search-scope-clear:hover{background:var(--accent-wash);color:var(--text-strong)}.tree-search-field{display:grid;min-width:0;grid-template-columns:24px minmax(0,1fr) auto auto;align-items:center;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised)}.tree-search-field>span:first-child{display:grid;height:26px;place-items:center;border-right:1px solid var(--border);color:var(--accent);font-size:.82rem}.tree-search-field input{width:100%;min-width:0;height:26px;border:0;background:transparent;color:var(--text);outline:none;padding:0 7px;font-size:.72rem}.tree-search-field input::-webkit-search-cancel-button{display:none}.tree-search-clear{display:grid;width:24px;min-width:24px;height:24px;place-items:center;border:0;background:transparent;color:var(--muted);padding:0;font-size:.9rem}.tree-search-clear:hover{color:var(--text-strong)}.tree-search-spinner{width:11px;height:11px;margin-right:4px;border:1.5px solid color-mix(in srgb,var(--muted),transparent 65%);border-top-color:var(--muted);border-radius:50%;animation:tree-search-spin .7s linear infinite}@keyframes tree-search-spin{to{transform:rotate(360deg)}}.tree-search-popover{position:absolute;right:0;bottom:calc(100% + 6px);left:0;z-index:100;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--menu-bg);box-shadow:var(--shadow)}.tree-search-result-summary{border-bottom:1px solid var(--border);background:var(--panel);color:var(--muted);padding:5px 8px;font-size:.68rem}.tree-search-results{display:grid;max-height:min(360px,55vh);overflow:auto}.tree-search-results button{display:grid;min-width:0;gap:2px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--text);padding:6px 8px;text-align:left}.tree-search-results button:last-child{border-bottom:0}.tree-search-results button:hover,.tree-search-results button.is-active{background:var(--selection)}.tree-search-results strong,.tree-search-results span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-search-results strong{color:var(--text-strong);font-family:Cascadia Mono,Consolas,monospace;font-size:.72rem}.tree-search-results span{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.64rem}.app-right{min-width:0;min-height:0;overflow:auto;background:var(--surface);padding:12px}.detail-empty{display:grid;height:100%;min-height:240px;place-content:center;justify-items:center;color:var(--muted);padding:28px;text-align:center}.detail-empty-icon{color:var(--border-strong);font-size:2.4rem}.detail-empty strong{margin-top:8px;color:var(--text-strong);font-size:.92rem}.detail-empty p{max-width:340px;margin:5px 0 0;line-height:1.5}.detail-empty.error{height:auto;min-height:0;place-content:start;justify-items:stretch;border:1px solid color-mix(in srgb,var(--danger),var(--border) 55%);border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);padding:10px 12px;text-align:left}.detail-empty.is-category .detail-empty-icon{color:var(--warning)}.node-detail-panel{display:grid;min-width:0;min-height:0;gap:9px;align-content:start}.detail-header{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px}.detail-heading{display:flex;flex:1;min-width:0;align-items:center;gap:8px}.detail-heading p{flex:0 0 auto;margin:0;color:var(--accent);font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.detail-heading input{width:100%;min-width:0;height:32px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text-strong);padding:7px 8px;font-family:Cascadia Mono,Consolas,monospace;font-size:.72rem;cursor:text}.detail-actions{display:flex;flex:0 0 auto;align-items:center;gap:7px}.readonly-badge{display:inline-grid;min-height:20px;place-items:center;border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--muted);padding:1px 6px;font-size:.64rem;font-weight:800;line-height:1;white-space:nowrap}.detail-workspace{display:grid;min-width:0;min-height:0;gap:12px}.detail-workspace.has-preview{grid-template-columns:minmax(340px,1fr) minmax(270px,330px)}.detail-editor-stack{display:grid;min-width:0;min-height:0;align-content:start;gap:10px}.item-tooltip{display:grid;min-width:0;max-width:340px;gap:0;justify-self:start;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:radial-gradient(130% 85% at 50% -10%,color-mix(in srgb,var(--text-strong) 9%,transparent),transparent 55%),linear-gradient(180deg,color-mix(in srgb,var(--surface-raised) 88%,transparent),color-mix(in srgb,var(--surface) 88%,transparent));box-shadow:inset 0 1px color-mix(in srgb,var(--text-strong) 10%,transparent),var(--shadow);backdrop-filter:blur(10px);color:var(--text);font-size:.78rem;line-height:1.45}.item-tooltip-header{display:grid;justify-items:center;gap:1px;padding:9px 12px 7px;text-align:center}.item-tooltip-id{color:var(--muted);font-family:Cascadia Mono,Consolas,monospace;font-size:.66rem}.item-tooltip-header h3{margin:0;color:var(--text-strong);font-size:.92rem;font-weight:800;text-shadow:0 0 14px color-mix(in srgb,var(--text-strong) 22%,transparent)}.item-tooltip-attributes{margin:0;color:var(--warning);font-size:.7rem}.item-tooltip-summary{display:flex;align-items:center;gap:12px;padding:4px 12px 8px}.item-tooltip-icon-frame{display:grid;flex:0 0 auto;width:72px;height:72px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--text-strong) 12%,transparent),transparent 70%),var(--panel);box-shadow:inset 0 1px 3px #0000002e}.item-tooltip-icon-frame img{display:block;image-rendering:crisp-edges;image-rendering:pixelated}.item-tooltip-icon-fallback{color:var(--muted);font-family:Cascadia Mono,Consolas,monospace;font-size:.62rem}.item-tooltip-reqs{display:grid;flex:1 1 auto;gap:3px;margin:0}.item-tooltip-req-row{display:flex;gap:6px}.item-tooltip-req{display:flex;flex:1 1 0;align-items:baseline;justify-content:space-between;gap:6px;white-space:nowrap}.item-tooltip-req.is-wide{flex:1 1 100%}.item-tooltip-req dt{flex:0 0 auto;color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}.item-tooltip-req dd{margin:0;font-family:Cascadia Mono,Consolas,monospace;font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}.item-tooltip-req.is-active dd{color:var(--text-strong)}.item-tooltip-req.is-level dd{color:var(--warning)}.item-tooltip-req.is-zero dd{color:var(--subtle)}.item-tooltip-jobs{display:flex;flex-wrap:wrap;justify-content:center;gap:3px 10px;padding:5px 12px 7px;font-size:.72rem}.item-tooltip-jobs .is-enabled{color:var(--text-strong);font-weight:700}.item-tooltip-jobs .is-disabled{color:var(--subtle)}.item-tooltip-divider{height:1px;margin:0 10px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text-strong) 32%,transparent),transparent)}.item-tooltip-details{display:grid;gap:1px;padding:7px 12px}.item-tooltip-line{display:flex;margin:0}.item-tooltip-line.is-full,.item-tooltip-label{color:var(--muted)}.item-tooltip-value{color:var(--text-strong);font-variant-numeric:tabular-nums}.item-tooltip-line.is-accent .item-tooltip-label,.item-tooltip-line.is-accent .item-tooltip-value{color:var(--warning)}.item-tooltip-flavor{padding:7px 12px 9px;color:var(--muted);font-size:.72rem}.item-tooltip-flavor p{margin:0;white-space:pre-wrap}.drop-item-tooltip{display:flex;align-items:center;gap:12px;max-width:320px;padding:10px 12px}.drop-item-tooltip-text{display:grid;flex:1 1 auto;gap:5px;min-width:0}.drop-item-tooltip-name{margin:0;color:var(--text-strong);font-size:.85rem;font-weight:800}.drop-item-tooltip-text .item-tooltip-divider{margin:0}.drop-item-tooltip-desc{margin:0;color:var(--muted);font-size:.72rem;white-space:pre-wrap}.tooltip-context-menu{position:fixed;z-index:120;min-width:132px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--menu-bg);box-shadow:var(--shadow);padding:3px}.tooltip-context-menu button{display:block;width:100%;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);padding:6px 10px;font-size:.72rem;text-align:left}.tooltip-context-menu button:hover{background:var(--accent-soft);color:var(--text-strong)}.editor-card{display:grid;min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-raised)}.editor-card-heading{display:flex;min-height:42px;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);background:var(--panel);padding:6px 9px}.editor-card-heading>div{display:grid;min-width:0;gap:1px}.editor-card-heading strong{color:var(--text-strong);font-size:.78rem}.node-editor-form{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:9px}.node-editor-form label{display:grid;min-width:0;gap:4px}.node-editor-form label.is-wide{grid-column:1 / -1}.node-editor-form label>span{color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.node-editor-form input,.node-editor-form textarea,.text-asset-editor{width:100%;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text-strong);padding:7px 8px}.node-editor-form input{height:32px}.node-editor-form textarea{min-height:74px;resize:vertical}.node-editor-form input[readonly],.node-editor-form textarea[readonly],.text-asset-editor[readonly]{cursor:text}.node-editor-form .value-input,.node-editor-form textarea,.text-asset-editor{font-family:Cascadia Mono,Consolas,monospace;font-size:.72rem}.skill-info-card .node-editor-form textarea{font-family:inherit;font-size:inherit;min-height:0;resize:none;overflow:hidden}.text-asset-editor{min-height:300px;border:0;border-radius:0;resize:none;line-height:1.45;white-space:pre}.text-editor-card .find-hint{flex:0 0 auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--muted);padding:3px 8px;font-size:.66rem;font-weight:700}.text-editor-card .find-hint:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text-strong)}.editor-card-heading>.text-find-bar{display:flex;min-width:0;flex:0 1 auto;align-items:center;gap:4px}.text-find-bar input{width:180px;min-width:80px;height:26px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text-strong);padding:0 8px;font-size:.72rem}.text-find-bar input:focus{border-color:var(--accent);outline:none}.text-find-count{min-width:44px;color:var(--subtle);font-size:.66rem;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}.text-find-bar button{display:inline-grid;width:24px;min-width:24px;height:24px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--text-strong);font-size:.68rem;line-height:1;padding:0}.text-find-bar button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.text-find-bar button:disabled{color:var(--disabled)}.image-editor{display:grid;min-width:0;min-height:420px;height:min(620px,calc(100vh - 150px));grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface)}.image-editor-toolbar{display:flex;min-width:0;min-height:44px;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);background:var(--panel);padding:6px 8px}.image-editor-toolbar strong,.image-editor-toolbar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-editor-toolbar strong{color:var(--text-strong);font-size:.78rem}.image-editor-title{display:flex;min-width:0;align-items:baseline;gap:8px}.image-editor-title span{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.66rem;font-variant-numeric:tabular-nums}.image-editor-title .atlas-preview-badge{border:1px solid color-mix(in srgb,var(--warning),var(--border) 38%);border-radius:var(--radius-sm);background:var(--warning-soft);color:var(--warning);padding:2px 5px;font-family:inherit;font-weight:800}.image-editor-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:3px}.image-editor-actions button{display:grid;min-width:28px;height:28px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--text-strong);padding:0 7px;font-size:.72rem;font-weight:700}.image-editor-actions button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.image-editor-actions button:disabled{color:var(--disabled)}.image-editor-actions .zoom-readout{min-width:52px;font-variant-numeric:tabular-nums}.image-editor-actions .fit-button{min-width:72px}.image-editor-stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(45deg,var(--panel) 25%,transparent 25%),linear-gradient(-45deg,var(--panel) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--panel) 75%),linear-gradient(-45deg,transparent 75%,var(--panel) 75%),var(--surface-raised);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;touch-action:none}.image-editor-stage.is-pan-ready{cursor:grab}.image-editor-stage.is-panning{cursor:grabbing;user-select:none}.image-editor-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);will-change:width,height,top,left}.image-editor-frame img{display:block;width:100%;height:100%;max-width:none;image-rendering:crisp-edges;image-rendering:pixelated;user-select:none;-webkit-user-drag:none}.image-editor-message{position:absolute;top:50%;left:50%;max-width:calc(100% - 40px);transform:translate(-50%,-50%);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-raised) 92%,transparent);color:var(--muted);padding:12px 14px;text-align:center}.image-editor-footer{border-top:1px solid var(--border);background:var(--panel);color:var(--subtle);padding:4px 8px;font-size:.64rem;text-align:right}.image-editor-footer.is-atlas{color:var(--warning);font-weight:700}.data-source-welcome{display:grid;min-width:0;min-height:0;flex:1 1 0;place-items:center;overflow:auto;background:linear-gradient(var(--app-grid) 1px,transparent 1px),linear-gradient(90deg,var(--app-grid) 1px,transparent 1px),var(--surface);background-size:24px 24px;padding:32px}.data-source-welcome>section{display:grid;width:min(560px,100%);justify-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow);padding:36px;text-align:center}.welcome-eyebrow{margin:0 0 3px;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.data-source-welcome h1{margin:0;color:var(--text-strong);font-size:1.35rem}.welcome-description{max-width:470px;margin:12px 0 20px;color:var(--muted);font-size:.84rem;line-height:1.65}.welcome-open-button{min-height:38px;border:1px solid var(--accent-strong);border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);padding:0 18px;font-size:.82rem;font-weight:800}.welcome-open-button:not(:disabled):hover{background:var(--accent-strong)}.welcome-open-button:disabled{border-color:var(--border);background:var(--panel);color:var(--disabled)}.welcome-reconnect-button{min-height:38px;margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);color:var(--accent);padding:0 18px;font-size:.82rem;font-weight:700}.welcome-reconnect-button:not(:disabled):hover{border-color:var(--accent)}.welcome-reconnect-button:disabled{color:var(--disabled)}.data-source-error{width:100%;margin:16px 0 0;border:1px solid color-mix(in srgb,var(--danger),var(--border) 45%);border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger);padding:8px 10px;font-size:.76rem;line-height:1.5;overflow-wrap:anywhere}.welcome-hint{margin:16px 0 0;color:var(--subtle);font-size:.7rem}.import-progress{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--border);background:var(--panel);font-size:.76rem}.import-progress-message{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--subtle)}.import-progress-track{flex:1 1 auto;height:6px;border-radius:3px;background:var(--accent-wash);overflow:hidden}.import-progress-bar{height:100%;border-radius:3px;background:var(--accent);transition:width .15s ease-out}.import-progress-percent{flex:0 0 auto;min-width:3ch;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:980px){.detail-workspace.has-preview{grid-template-columns:minmax(0,1fr)}.image-editor{height:min(520px,58vh)}}@media(max-width:720px){.app-body{grid-template-columns:minmax(220px,var(--tree-pane-width, 300px)) 7px minmax(320px,1fr)}.node-editor-form{grid-template-columns:minmax(0,1fr)}.node-editor-form label.is-wide{grid-column:auto}}.dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#00000073}.changelog-dialog{display:grid;width:min(560px,calc(100vw - 48px));max-height:min(70vh,640px);grid-template-rows:auto minmax(0,1fr);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow)}.changelog-dialog-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);padding:10px 14px}.changelog-dialog-header h2{margin:0;color:var(--text-strong);font-size:.95rem}.changelog-dialog-content{overflow-y:auto;padding:8px 16px 14px}.changelog-entry h3{margin:12px 0 6px;color:var(--text-strong);font-size:.85rem}.changelog-entry:first-child h3{margin-top:4px}.changelog-entry ul{margin:0;padding-left:18px;color:var(--text);font-size:.8rem;line-height:1.7}.commodity-window{position:relative;display:flex;min-width:0;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.commodity-window.has-frame{border:7px solid transparent;border-width:17px 7px 27px;border-image-slice:17 7 27 7 fill;border-image-repeat:stretch;border-radius:0;background:transparent;box-shadow:0 2px 6px #0f233759}.commodity-window-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-15px -4px 0;height:15px;padding:0 2px;color:#12283f;font-size:11px;font-weight:800;letter-spacing:.5px;user-select:none}.commodity-window:not(.has-frame) .commodity-window-title{margin:0;height:auto;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-strong)}.commodity-title-btn{flex:0 0 auto;border:1px solid #41618a;border-radius:3px;background:linear-gradient(#d4e4f3,#92b2cd);color:#12314e;padding:0 6px;font-size:10px;font-weight:700;line-height:13px}.commodity-title-btn:hover{background:linear-gradient(#e4f0fb,#a5c2da)}.commodity-window:not(.has-frame) .commodity-title-btn{padding:3px 8px;font-size:.66rem;line-height:normal}.commodity-status{margin:0;padding:12px;color:#5a6b7d;font-size:.78rem}.commodity-raw-stack{display:grid;min-width:0;gap:6px}.commodity-raw-bar{display:flex;justify-content:flex-end}.commodity-raw-bar .find-hint{flex:0 0 auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--muted);padding:3px 8px;font-size:.66rem;font-weight:700}.commodity-raw-bar .find-hint:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text-strong)}.commodity-tabs{display:flex;flex-wrap:wrap;gap:3px;padding:6px 8px 0}.commodity-subtabs{display:flex;flex-wrap:wrap;gap:3px;padding:4px 8px 0}.commodity-tabs button,.commodity-subtabs button{border:1px solid #7d97b2;border-radius:4px 4px 0 0;background:linear-gradient(#e8eef5,#c0d0e1);color:#33475e;padding:3px 12px;font-size:11px;font-weight:700}.commodity-subtabs button{padding:2px 9px;font-size:10px}.commodity-tabs button:hover,.commodity-subtabs button:hover{background:linear-gradient(#f4f8fc,#cfdde9);color:#12283f}.commodity-tabs button.is-active,.commodity-subtabs button.is-active{border-bottom-color:#fff;background:linear-gradient(#fff,#eef4fa);color:#0f2f52}.commodity-grid{display:grid;flex:1 1 auto;min-width:0;align-content:start;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;padding:8px}.commodity-item{display:flex;height:72px;min-width:0;align-items:center;gap:10px;box-sizing:border-box;border:1px solid #9db1c5;border-radius:3px;background:linear-gradient(#fff,#edf3f9);box-shadow:inset 0 1px #fff,0 1px 2px #14283c2e;padding:7px}.commodity-item-icon{display:flex;width:56px;height:56px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid #8ba1b8;border-radius:3px;background:#fff;box-shadow:inset 1px 1px 3px #1e324647}.commodity-item-icon img{max-width:48px;max-height:48px;image-rendering:crisp-edges;image-rendering:pixelated}.commodity-item-noicon{color:#8ba1b8;font-size:.9rem;font-weight:800}.commodity-item-body{display:grid;min-width:0;gap:2px}.commodity-item-name{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#16324e;font-size:.76rem;line-height:1.35}.commodity-item-price{color:#8a6d1f;font-size:.7rem;font-weight:700}.commodity-pager{display:flex;align-items:center;justify-content:center;gap:4px;padding:2px 8px 6px}.commodity-pager button{min-width:26px;height:22px;border:1px solid #41618a;border-radius:3px;background:linear-gradient(#b9d2ea,#7ea3c6);color:#fff;font-size:11px;font-weight:700;text-shadow:0 1px 1px #2e4e74}.commodity-pager button:not(:disabled):hover{background:linear-gradient(#cde1f4,#8fb2d2)}.commodity-pager button.is-active{border-color:#a67c00;background:linear-gradient(#ffd966,#f0b429);color:#4a3000;text-shadow:none}.commodity-pager button:disabled{cursor:default;opacity:.45}.commodity-pager-ellipsis{color:#5a6b7d;font-size:.7rem}.view-tabs{display:inline-flex;flex:0 0 auto;gap:8px}.view-tabs button{min-height:32px;border:none;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text);padding:0 4px;font-size:.75rem;font-weight:700;transition:color .12s ease,border-color .12s ease}.view-tabs button:not(:disabled):not(.is-active):hover{color:var(--text-strong)}.view-tabs button.is-active{border-bottom-color:var(--accent);color:var(--text-strong)}.view-tabs button:disabled{color:var(--disabled)}.app-body.is-avatar{grid-template-columns:minmax(0,1fr)}.app-body.is-avatar .app-right{overflow:hidden;padding:0}.avatar-page{display:grid;height:100%;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,4fr)}.avatar-page[hidden]{display:none}.avatar-page-status{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;color:var(--muted);font-size:.8rem}.avatar-left{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border-strong);background:var(--surface-raised)}.avatar-left-preview{width:100%;aspect-ratio:1 / 1;border-bottom:1px solid var(--border)}.avatar-left-controls{min-height:0;overflow-y:auto}.avatar-controls{display:grid;align-content:start;gap:8px;padding:10px}.avatar-control-row{display:grid;gap:3px}.avatar-control-row label{color:var(--muted);font-size:.68rem;font-weight:700}.avatar-control-row select{min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 6px;font-size:.75rem}.avatar-action-row{display:flex;min-width:0;gap:6px}.avatar-action-row select{flex:1 1 auto;min-width:0}.avatar-color-row{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.avatar-color-field{display:grid;min-width:0;gap:3px}.avatar-checkbox-row{display:flex;align-items:center;gap:14px}.avatar-hair-cover{display:flex;align-items:center;gap:6px;color:var(--text-strong);font-size:.75rem;cursor:pointer;user-select:none}.avatar-hair-cover input{margin:0;accent-color:var(--accent)}.avatar-play-button{display:inline-grid;width:30px;height:30px;flex:0 0 auto;place-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:0;font-size:.8rem;line-height:1}.avatar-play-button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-divider{margin:4px 0;border:0;border-top:1px solid var(--border)}.avatar-equipped-title{margin:0;color:var(--muted);font-size:.68rem;font-weight:700}.avatar-equipped-empty{margin:0;color:var(--subtle);font-size:.72rem}.avatar-equipped-row{display:flex;min-width:0;align-items:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:4px 6px;cursor:pointer}.avatar-equipped-row:hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-equipped-row.is-hidden{opacity:.5}.avatar-equipped-icon{display:grid;width:28px;height:28px;flex:0 0 auto;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised)}.avatar-equipped-icon img{max-width:24px;max-height:24px;image-rendering:crisp-edges;image-rendering:pixelated}.avatar-equipped-name{flex:1 1 auto;min-width:0;overflow:hidden;color:var(--text-strong);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.avatar-equipped-eye{flex:0 0 auto;font-size:.8rem}.avatar-equipped-row.is-hidden .avatar-equipped-eye{text-decoration:line-through}.avatar-equipped-remove{flex:0 0 auto;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);padding:0 4px;font-size:.85rem;line-height:1.4}.avatar-equipped-remove:hover{background:var(--danger-soft);color:var(--danger)}.avatar-preview{position:relative;width:100%;height:100%;overflow:hidden;background-color:var(--canvas-checkerboard-light);background-image:linear-gradient(45deg,var(--canvas-checkerboard-dark) 25%,transparent 25%,transparent 75%,var(--canvas-checkerboard-dark) 75%),linear-gradient(45deg,var(--canvas-checkerboard-dark) 25%,transparent 25%,transparent 75%,var(--canvas-checkerboard-dark) 75%);background-position:0 0,8px 8px;background-size:16px 16px}.avatar-preview-canvas{display:block;width:100%;height:100%;image-rendering:crisp-edges;image-rendering:pixelated}.avatar-preview-status{position:absolute;top:50%;left:50%;max-width:calc(100% - 32px);transform:translate(-50%,-50%);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-raised) 92%,transparent);color:var(--muted);padding:10px 12px;font-size:.72rem;text-align:center}.avatar-preview-status.is-error{color:var(--danger)}.avatar-right{display:grid;min-width:0;min-height:0}.avatar-shop{display:flex;min-width:0;min-height:0;flex-direction:column;background:var(--surface)}.avatar-shop-tabs{display:flex;flex-wrap:wrap;gap:3px;border-bottom:1px solid var(--border);padding:8px 10px 0}.avatar-shop-tabs button{border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;background:var(--panel);color:var(--muted);padding:4px 10px;font-size:.72rem;font-weight:700}.avatar-shop-tabs button:hover{background:var(--accent-soft);color:var(--text-strong)}.avatar-shop-tabs button.is-active{position:relative;z-index:1;margin-bottom:-1px;border-bottom-color:var(--surface);background:var(--surface);color:var(--text-strong)}.avatar-shop-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.avatar-shop-search input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 8px;font-size:.75rem}.avatar-shop-search-count{color:var(--subtle);font-size:.68rem;white-space:nowrap}.avatar-shop-search-clear{display:grid;width:22px;min-width:22px;height:22px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--text);font-size:.78rem;line-height:1}.avatar-shop-search-clear:hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-shop-card-slot{display:inline-block;margin-right:4px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);padding:0 4px;font-size:.62rem;font-weight:700}.avatar-shop-grid-wrap{flex:1 1 auto;min-height:0;overflow:hidden;padding:8px 10px}.avatar-shop-grid{display:grid;align-content:start;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:7px}.avatar-shop-card{display:flex;height:64px;min-width:0;align-items:center;gap:8px;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);padding:6px;text-align:left}.avatar-shop-card:hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-shop-card.is-worn{border-color:var(--accent);background:var(--selection);box-shadow:inset 0 0 0 1px var(--accent)}.avatar-shop-card-icon{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.avatar-shop-card-icon img{max-width:40px;max-height:40px;image-rendering:crisp-edges;image-rendering:pixelated}.avatar-shop-card-name{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text-strong);font-size:.72rem;line-height:1.35}.avatar-shop-status{margin:0;padding:12px;color:var(--muted);font-size:.75rem}.avatar-shop-pager{display:flex;align-items:center;justify-content:center;gap:4px;padding:2px 10px 8px}.avatar-shop-pager button{min-width:26px;height:22px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--text);font-size:.68rem;font-weight:700}.avatar-shop-pager button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-shop-pager button.is-active{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.avatar-shop-pager button:disabled{cursor:default;opacity:.45}.avatar-shop-pager-ellipsis{color:var(--muted);font-size:.7rem}.cash-switch{display:inline-flex;flex:0 0 auto;align-items:center;gap:6px;color:var(--text-strong);font-size:.75rem;font-weight:700;cursor:pointer;user-select:none}.cash-switch input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%)}.cash-switch-track{display:inline-flex;width:34px;height:18px;align-items:center;border:1px solid var(--border-strong);border-radius:999px;background:var(--panel-strong);padding:1px}.cash-switch-thumb{width:14px;height:14px;border-radius:999px;background:var(--muted);transition:transform .14s ease,background-color .14s ease}.cash-switch input:checked+.cash-switch-track{border-color:var(--accent);background:var(--accent)}.cash-switch input:checked+.cash-switch-track .cash-switch-thumb{transform:translate(16px);background:var(--on-accent)}.cash-switch input:focus-visible+.cash-switch-track{outline:2px solid var(--focus-ring);outline-offset:1px}.avatar-download-button{position:absolute;top:6px;right:6px;display:inline-grid;width:28px;height:28px;place-items:center;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--button-bg) 88%,transparent);color:var(--text-strong);padding:0;font-size:.85rem;line-height:1}.avatar-download-button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-download-button:disabled{color:var(--disabled)}.avatar-export-dialog{display:grid;width:min(360px,calc(100vw - 48px));grid-template-rows:auto minmax(0,1fr);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow)}.avatar-export-dialog-content{display:grid;gap:12px;padding:4px 16px 16px;font-size:.78rem}.avatar-export-dialog-content p{margin:0}.avatar-export-actions{display:flex;gap:8px}.avatar-export-actions button{flex:1 1 0;min-height:32px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);font-size:.78rem;font-weight:700}.avatar-export-actions button:not(:disabled):hover{border-color:var(--accent);background:var(--accent-soft)}.avatar-export-actions button:disabled{color:var(--disabled)}.avatar-export-error{color:var(--danger);font-size:.72rem}.app-body.is-pet{grid-template-columns:minmax(0,1fr)}.app-body.is-pet .app-right{overflow:hidden;padding:0}.pet-page{display:grid;height:100%;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,4fr)}.pet-page[hidden]{display:none}.pet-page-status{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;color:var(--muted);font-size:.8rem}.pet-left{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border-strong);background:var(--surface-raised)}.pet-left-preview{width:100%;aspect-ratio:1 / 1;border-bottom:1px solid var(--border)}.pet-left-controls{min-height:0;overflow-y:auto}.pet-right{display:grid;min-width:0;min-height:0}.app-body.is-monster{grid-template-columns:minmax(0,1fr)}.app-body.is-monster .app-right{overflow:hidden;padding:0}.monster-page{display:grid;height:100%;min-height:0;grid-template-columns:300px minmax(0,1fr)}.monster-page[hidden]{display:none}.monster-page-status{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;color:var(--muted);font-size:.8rem}.monster-left{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border-strong);background:var(--surface-raised)}.monster-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.monster-search input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 8px;font-size:.75rem}.monster-search-count{color:var(--subtle);font-size:.68rem;white-space:nowrap}.monster-list{min-height:0;overflow-y:auto}.monster-list-item{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name meta" "id id";column-gap:8px;border:none;border-bottom:1px solid var(--border);background:transparent;padding:6px 10px;text-align:left;cursor:pointer}.monster-list-item:hover{background:var(--selection-hover)}.monster-list-item.is-active{background:var(--selection)}.monster-list-name{grid-area:name;overflow:hidden;color:var(--text-strong);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.monster-list-meta{grid-area:meta;color:var(--muted);font-size:.68rem}.monster-list-id{grid-area:id;color:var(--subtle);font-size:.64rem}.monster-list-empty{margin:0;padding:12px;color:var(--muted);font-size:.75rem}.monster-detail{position:relative;display:grid;min-width:0;min-height:0;overflow:hidden}.monster-detail-loading{position:absolute;z-index:2;top:10px;right:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-raised) 88%,transparent);color:var(--muted);padding:4px 8px;font-size:.68rem;pointer-events:none}.monster-detail-scroll{display:grid;min-height:0;align-content:start;gap:20px;overflow-y:auto;padding:16px 20px}.monster-hero{display:flex;align-items:flex-start;gap:16px}.monster-hero .monster-description{margin-top:10px}.monster-drop-group+.monster-drop-group{margin-top:12px}.monster-drop-group h4{margin:0 0 6px;color:var(--subtle);font-size:.68rem;font-weight:700}.monster-sprite{display:flex;width:180px;height:180px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-lg);background-color:var(--canvas-checkerboard-light);background-image:linear-gradient(45deg,var(--canvas-checkerboard-dark) 25%,transparent 25%,transparent 75%,var(--canvas-checkerboard-dark) 75%),linear-gradient(45deg,var(--canvas-checkerboard-dark) 25%,transparent 25%,transparent 75%,var(--canvas-checkerboard-dark) 75%);background-position:0 0,8px 8px;background-size:16px 16px}.monster-sprite-canvas{display:block;max-width:100%;max-height:100%;image-rendering:crisp-edges;image-rendering:pixelated}.monster-sprite-empty{color:var(--subtle);font-size:.72rem}.monster-hero-text{min-width:0}.monster-hero-text h2{margin:0;color:var(--text-strong);font-size:1.05rem}.monster-hero-id{margin:2px 0 8px;color:var(--subtle);font-size:.7rem}.monster-hero-chips,.monster-maps{display:flex;flex-wrap:wrap;gap:6px}.monster-chip{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);color:var(--text);padding:2px 8px;font-size:.68rem}.monster-section{border-top:1px solid var(--border);padding-top:16px}.monster-section h3{margin:0 0 8px;color:var(--muted);font-size:.72rem;font-weight:700}.monster-stats{display:grid;margin:0;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}.monster-stat{display:flex;align-items:baseline;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:var(--radius-md);padding:4px 8px}.monster-stat dt{color:var(--muted);font-size:.68rem}.monster-stat dd{margin:0;color:var(--text-strong);font-size:.78rem}.monster-drops{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.monster-drop{display:grid;min-width:0;justify-items:center;gap:4px}.monster-drop-icon{display:flex;width:48px;height:48px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.monster-drop-icon img{max-width:44px;max-height:44px;image-rendering:crisp-edges;image-rendering:pixelated}.monster-drop-fallback{color:var(--subtle);font-size:.6rem}.monster-drop-name{display:-webkit-box;overflow:hidden;max-width:100%;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text);font-size:.66rem;text-align:center}.monster-section-empty{margin:0;color:var(--muted);font-size:.75rem}.monster-description{margin:0;color:var(--text);font-size:.78rem;line-height:1.7;white-space:pre-line}.monster-drop-tooltip{position:fixed;z-index:110;opacity:0;transform:translateY(calc(-100% + 4px));transition:opacity .14s ease,transform .14s ease}.monster-drop-tooltip.is-visible{opacity:1;transform:translateY(-100%)}button.monster-drop{border:0;border-radius:var(--radius-md);background:none;color:inherit;cursor:pointer;font:inherit;padding:4px}button.monster-drop:hover .monster-drop-icon,button.monster-drop:focus-visible .monster-drop-icon{border-color:var(--accent);background:var(--accent-soft)}button.monster-drop:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.monster-section-hint{margin-left:8px;color:var(--subtle);font-size:.66rem;font-weight:400}.drop-sources-dialog{display:grid;width:min(520px,calc(100vw - 48px));max-height:min(70vh,640px);grid-template-rows:auto minmax(0,1fr);border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow)}.drop-sources-header{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);padding:10px 14px}.drop-sources-item-icon{display:flex;width:36px;height:36px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-strong)}.drop-sources-item-icon img{max-width:32px;max-height:32px;image-rendering:crisp-edges;image-rendering:pixelated}.drop-sources-header h2{flex:1 1 auto;margin:0;min-width:0;overflow:hidden;color:var(--text-strong);font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}.drop-sources-count{flex:0 0 auto;color:var(--muted);font-size:.72rem}.drop-sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;overflow-y:auto;padding:12px 14px}.drop-sources-empty{margin:0;grid-column:1 / -1;padding:18px 0;color:var(--subtle);font-size:.72rem;text-align:center}.drop-source-item{display:grid;min-width:0;justify-items:center;gap:4px;border:1px solid transparent;border-radius:var(--radius-md);background:none;color:inherit;cursor:pointer;font:inherit;padding:8px 4px}.drop-source-item:not(:disabled):hover,.drop-source-item:not(:disabled):focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:none}.drop-source-item:disabled{cursor:default}.drop-source-thumb{display:flex;width:48px;height:48px;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-strong);color:var(--subtle);font-size:.6rem}.drop-source-thumb img{max-width:46px;max-height:46px;image-rendering:crisp-edges;image-rendering:pixelated}.drop-source-name{display:-webkit-box;overflow:hidden;max-width:100%;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text);font-size:.68rem;text-align:center}.drop-source-meta{color:var(--muted);font-size:.62rem}.drop-source-meta em{margin-left:4px;color:var(--accent);font-style:normal}.app-body.is-skill{grid-template-columns:minmax(0,1fr)}.app-body.is-skill .app-right{overflow:hidden;padding:0}.skill-page{display:grid;height:100%;min-height:0;grid-template-columns:250px minmax(0,1fr) 370px}.skill-page[hidden]{display:none}.skill-page-status{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;padding:20px;color:var(--muted);font-size:.8rem}.skill-jobs{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border-strong);background:var(--surface-raised)}.skill-search{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.skill-search input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 8px;font-size:.75rem}.skill-search-count{color:var(--subtle);font-size:.68rem;white-space:nowrap}.skill-job-list{min-height:0;overflow-y:auto}.skill-job-group h3{position:sticky;top:0;z-index:1;margin:0;padding:5px 10px 3px;border-bottom:1px solid var(--border);background:var(--panel-strong);color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.12em}.skill-job-item{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:6px;border:none;border-bottom:1px solid var(--border);background:transparent;padding:5px 10px;text-align:left;cursor:pointer}.skill-job-item:hover{background:var(--selection-hover)}.skill-job-item.is-active{background:var(--selection)}.skill-job-name{overflow:hidden;color:var(--text-strong);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.skill-job-tier{border:1px solid var(--border);border-radius:999px;padding:0 6px;color:var(--subtle);font-size:.6rem;line-height:14px;white-space:nowrap}.skill-job-count{min-width:2ch;color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.66rem;text-align:right}.skill-search-hit{display:grid;width:100%;grid-template-columns:30px minmax(0,1fr);grid-template-areas:"icon name" "icon job";align-items:center;column-gap:8px;border:none;border-bottom:1px solid var(--border);background:transparent;padding:5px 10px;text-align:left;cursor:pointer}.skill-search-hit:hover{background:var(--selection-hover)}.skill-search-hit.is-active{background:var(--selection)}.skill-search-icon{grid-area:icon;width:26px;height:26px;object-fit:contain;image-rendering:pixelated}.skill-search-name{grid-area:name;overflow:hidden;color:var(--text-strong);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.skill-search-job{grid-area:job;overflow:hidden;color:var(--subtle);font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.skill-list-empty{padding:16px 12px;color:var(--muted);font-size:.74rem;text-align:center}.skill-window{place-self:center;display:flex;width:min(1100px,calc(100% - 32px));max-height:calc(100% - 32px);min-width:0;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.skill-window.has-frame{border:7px solid transparent;border-width:17px 7px 27px;border-image-slice:17 7 27 7 fill;border-image-repeat:stretch;border-radius:0;background:transparent;box-shadow:0 2px 6px #0f233759}.skill-window-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-15px -4px 0;height:15px;padding:0 2px;color:#12283f;font-size:11px;font-weight:800;letter-spacing:.5px;user-select:none}.skill-window:not(.has-frame) .skill-window-title{margin:0;height:auto;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-strong)}.skill-window-count{display:flex;align-items:center;gap:8px;font-weight:400;opacity:.75}.skill-zoom-reset{border:none;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}.skill-grid-scroll{display:flex;min-height:0;flex-direction:column;gap:12px;overflow-y:auto;padding:12px 12px 8px}.skill-cat h4{display:flex;align-items:baseline;gap:6px;margin:0 0 6px;padding:0 2px;color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.1em}.skill-cat h4 span{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-weight:400}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,calc(46px * var(--skill-zoom, 1)));justify-content:center;gap:calc(10px * var(--skill-zoom, 1))}.skill-cell{position:relative;display:grid;width:calc(46px * var(--skill-zoom, 1));height:calc(46px * var(--skill-zoom, 1));place-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-raised);padding:0;cursor:pointer;opacity:0;animation:skill-cell-in .24s ease forwards}.skill-cell img{width:calc(34px * var(--skill-zoom, 1));height:calc(34px * var(--skill-zoom, 1));object-fit:contain;image-rendering:pixelated}.skill-cell:hover{border-color:var(--text-strong);transform:translateY(-1px)}.skill-cell.is-active{border-color:transparent;box-shadow:0 0 0 2px var(--mark),0 0 10px #ffd77573}.skill-cell-level{position:absolute;right:-5px;bottom:-5px;min-width:calc(15px * var(--skill-zoom, 1));border-radius:var(--radius-xs);background:var(--accent);color:var(--on-accent);font-family:Cascadia Mono,Consolas,monospace;font-size:calc(9px * var(--skill-zoom, 1));line-height:calc(13px * var(--skill-zoom, 1));text-align:center}@keyframes skill-cell-in{0%{opacity:0;transform:translateY(6px) scale(.85)}to{opacity:1;transform:none}}.skill-icon-empty{display:inline-block;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--skeleton-base)}.skill-cell .skill-icon-empty{width:calc(32px * var(--skill-zoom, 1));height:calc(32px * var(--skill-zoom, 1))}.skill-window-empty{margin:0;padding:24px 12px;color:var(--muted);font-size:.76rem;text-align:center}.skill-window-status{display:flex;min-height:27px;align-items:center;justify-content:space-between;gap:8px;padding:4px 12px;border-top:1px solid var(--border);font-size:.7rem}.skill-window.has-frame .skill-window-status{border-top-color:#12283f2e}.skill-status-name{overflow:hidden;color:var(--text-strong);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.skill-status-meta{flex:0 0 auto;color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.64rem}.skill-detail{display:grid;min-width:0;min-height:0;border-left:1px solid var(--border-strong);background:var(--surface-raised)}.skill-detail-scroll{display:flex;min-height:0;flex-direction:column;gap:14px;overflow-y:auto;padding:14px}.skill-hero{display:flex;align-items:center;gap:12px}.skill-hero-icon{display:grid;flex:0 0 auto;width:58px;height:58px;place-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-xl);background:radial-gradient(circle at 50% 32%,var(--surface),var(--panel))}.skill-hero-icon img{width:46px;height:46px;object-fit:contain;image-rendering:pixelated}.skill-hero-text{min-width:0}.skill-hero-text h2{margin:0;overflow:hidden;color:var(--text-strong);font-size:1.02rem;text-overflow:ellipsis;white-space:nowrap}.skill-hero-id{margin:1px 0 6px;color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.64rem}.skill-hero-chips{display:flex;flex-wrap:wrap;gap:5px}.skill-chip{border:1px solid var(--border);border-radius:999px;padding:1px 8px;color:var(--muted);font-size:.62rem;line-height:15px;white-space:nowrap}.skill-chip.is-level{border-color:var(--border-strong);color:var(--text-strong);font-weight:700}.skill-level-control{display:flex;flex-direction:column;gap:9px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);padding:10px 12px 12px}.skill-level-readout{display:flex;align-items:baseline;gap:7px}.skill-level-label{color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.12em}.skill-level-num{min-width:2ch;color:var(--text-strong);font-family:Cascadia Mono,Consolas,monospace;font-size:1.55rem;font-weight:700;line-height:1;text-align:center;animation:skill-pop .18s ease}.skill-level-max{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.78rem}@keyframes skill-pop{0%{color:var(--warning);transform:scale(1.28)}to{transform:none}}.skill-level-control input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.skill-level-quick{display:flex;gap:6px}.skill-level-quick button{flex:1 1 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--muted);font-family:Cascadia Mono,Consolas,monospace;font-size:.64rem;padding:3px 0;cursor:pointer}.skill-level-quick button:hover{border-color:var(--border-strong);color:var(--text-strong)}.skill-level-quick button.is-active{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.skill-effect{border:1px solid #31456b;border-radius:var(--radius-lg);background:linear-gradient(160deg,#1d2c47,#101a2e);box-shadow:inset 0 1px #ffffff14,0 1px 3px #00000040;padding:10px 12px;animation:skill-fade .2s ease}.skill-effect-text p{margin:0;color:#e8eefc;font-size:.78rem;line-height:1.65}.skill-effect-text mark{background:none;color:#ffd775;font-weight:700}@keyframes skill-fade{0%{opacity:.35}to{opacity:1}}.skill-section h3{margin:0 0 6px;color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.1em}.skill-desc p{margin:0;color:var(--text);font-size:.75rem;line-height:1.7}.skill-desc mark{background:none;color:var(--warning);font-weight:700}.skill-stats{display:grid;margin:0;grid-template-columns:1fr 1fr;gap:3px 14px;animation:skill-fade .2s ease}.skill-stat{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--border);padding:2px 0}.skill-stat dt{overflow:hidden;color:var(--muted);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.skill-stat dd{margin:0;flex:0 0 auto;color:var(--text-strong);font-family:Cascadia Mono,Consolas,monospace;font-size:.7rem}.skill-delays{display:flex;flex-wrap:wrap;gap:5px}.source-switch{display:inline-flex;min-height:32px;flex:0 0 auto;align-items:stretch;gap:2px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--panel-strong);padding:2px;overflow:hidden}.source-switch button{display:inline-flex;min-height:26px;align-items:center;gap:6px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);padding:0 10px;font-size:.75rem;font-weight:700}.source-switch button svg{width:15px;height:15px;flex:0 0 auto}.source-switch button:not(:disabled):not(.is-active):hover{color:var(--text-strong);background:var(--button-bg)}.source-switch button.is-active{background:var(--accent);box-shadow:var(--shadow);color:var(--on-accent)}.source-switch button:disabled:not(.is-active){color:var(--disabled)}.source-switch button.is-active:disabled{color:var(--on-accent);opacity:.72}.app-body.is-quest{grid-template-columns:minmax(0,1fr)}.app-body.is-quest .app-right{overflow:hidden;padding:0}.quest-page{display:grid;height:100%;min-height:0;grid-template-columns:270px minmax(0,1fr) 360px}.quest-page[hidden]{display:none}.quest-page-status{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;padding:20px;color:var(--muted);font-size:.8rem}.quest-shelf{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border-strong);background:var(--surface-raised)}.quest-search{display:flex;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.quest-search input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 8px;font-size:.75rem}.quest-shelf-scroll{display:flex;min-height:0;flex-direction:column;gap:10px;overflow-y:auto;padding:8px}.quest-book-card{border:1px solid var(--border-strong);border-left:4px solid #8b5a2b;border-radius:var(--radius-md);background:linear-gradient(180deg,var(--surface),var(--panel));padding:6px}.quest-book-card.is-single{border-left-color:var(--border-strong)}.quest-book-card h3{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 4px;border-bottom:1px dashed var(--border);padding:0 4px 4px}.quest-book-title{overflow:hidden;color:var(--text-strong);font-size:.72rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.quest-book-count{flex:0 0 auto;color:var(--subtle);font-size:.62rem}.quest-shelf-item{display:grid;width:100%;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:6px;border:none;border-radius:var(--radius-sm);background:transparent;padding:4px 6px;text-align:left;cursor:pointer}.quest-book-card.is-single .quest-shelf-item{grid-template-columns:minmax(0,1fr) auto}.quest-shelf-item:hover{background:var(--selection-hover)}.quest-shelf-item.is-active{background:var(--selection)}.quest-shelf-chapter{min-width:2ch;color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.62rem;text-align:right}.quest-shelf-name{overflow:hidden;color:var(--text);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.quest-shelf-level{color:var(--subtle);font-size:.62rem;white-space:nowrap}.quest-list-empty{padding:16px 12px;color:var(--muted);font-size:.74rem;text-align:center}.quest-stage{display:flex;min-width:0;min-height:0;flex-direction:column;align-items:center;gap:10px;overflow-y:auto;padding:14px}.quest-stage-tabs{display:flex;flex:0 0 auto;gap:2px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--panel-strong);padding:2px}.quest-stage-tabs button{border:none;border-radius:var(--radius-sm);background:transparent;color:var(--muted);padding:3px 14px;font-size:.72rem;font-weight:700;cursor:pointer}.quest-stage-tabs button:not(.is-active):hover{color:var(--text-strong)}.quest-stage-tabs button.is-active{background:var(--accent);color:var(--on-accent)}.quest-npc{display:flex;flex:0 0 auto;flex-direction:column;align-items:center;gap:4px}.quest-npc-portrait{display:grid;width:148px;height:148px;place-items:center;overflow:hidden}.quest-npc-portrait img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.quest-npc-portrait.is-empty{border:1px dashed var(--border-strong);border-radius:50%;color:var(--subtle);font-size:1.6rem}.quest-npc-plate{border:1px solid var(--border-strong);border-radius:999px;background:var(--panel-strong);padding:2px 14px;color:var(--text-strong);font-size:.72rem;font-weight:700}.quest-dialogue{display:flex;width:min(980px,100%);min-height:0;flex:1 1 auto;flex-direction:column;animation:quest-fade .2s ease}.quest-dialogue-inner{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:8px}.quest-bubble-scroll{display:flex;min-height:120px;flex:1 1 auto;flex-direction:column;gap:10px;overflow-y:auto;padding:6px 4px 2px}.quest-bubble{position:relative;flex:0 0 auto;border:1px solid #b9c4d6;border-radius:12px;background:#fff;box-shadow:0 1px 2px #0f23372e;padding:9px 12px}.quest-bubble:before{content:"";position:absolute;top:-6px;left:28px;width:10px;height:10px;border-top:1px solid #b9c4d6;border-left:1px solid #b9c4d6;background:#fff;transform:rotate(45deg)}.quest-bubble-text p{margin:0;color:#1c2a3d;font-size:clamp(.78rem,.58rem + .55vw,1rem);line-height:1.7}.quest-bubble-text mark{background:none;color:#1f66d1;font-weight:700}.quest-bubble.is-player{align-self:flex-end;border-color:#b8cf9e;background:#eef7e2}.quest-bubble.is-player:before{right:28px;left:auto;border-color:#b8cf9e;background:#eef7e2}.quest-bubble ::selection{background:#2b5cb8;color:#fff}.quest-inline-item{display:inline-grid;width:22px;height:22px;margin:0 1px;place-items:center;vertical-align:middle}.quest-inline-item img{max-width:22px;max-height:22px;image-rendering:pixelated}.quest-inline-item>span{color:#7c8ca0;font-size:.62rem}.quest-inline-item-name{border-bottom:1px dotted #1f66d1;background:none;color:#1f66d1;font-weight:700}.quest-dialogue-empty{margin:auto;padding:12px;color:var(--muted);font-size:.74rem}.quest-dialogue-controls{display:flex;flex:0 0 auto;justify-content:center;gap:8px}.quest-dialogue-controls button{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 18px;font-size:.74rem;font-weight:700;cursor:pointer}.quest-dialogue-controls button:hover{border-color:var(--accent)}.quest-dialogue-controls .quest-choice-yes{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.quest-chapters{display:flex;flex:0 0 auto;align-items:center;gap:10px;color:var(--muted);font-size:.72rem}.quest-chapters button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--button-bg);color:var(--text-strong);padding:2px 10px;cursor:pointer}.quest-chapters button:disabled{color:var(--disabled);cursor:default}@keyframes quest-fade{0%{opacity:.3}to{opacity:1}}.quest-log{display:grid;min-width:0;min-height:0;margin:14px 14px 14px 0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.quest-log.has-frame{border:7px solid transparent;border-width:17px 7px 27px;border-image-slice:17 7 27 7 fill;border-image-repeat:stretch;border-radius:0;background:transparent;box-shadow:0 2px 6px #0f233759}.quest-log-scroll{display:flex;min-height:0;flex-direction:column;gap:12px;overflow-y:auto;padding:12px}.quest-log-header h2{margin:0;overflow:hidden;color:var(--text-strong);font-size:.95rem;text-overflow:ellipsis;white-space:nowrap}.quest-log-parent{margin:2px 0 0;color:var(--subtle);font-size:.66rem}.quest-log-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.quest-chip{border:1px solid var(--border);border-radius:999px;padding:1px 8px;color:var(--muted);font-size:.62rem;line-height:15px;white-space:nowrap}.quest-chip.is-level{border-color:var(--border-strong);color:var(--text-strong);font-weight:700}.quest-log-section h3{margin:0 0 6px;color:var(--muted);font-size:.64rem;font-weight:700;letter-spacing:.1em}.quest-log-text p{margin:0 0 6px;color:var(--text);font-size:.74rem;line-height:1.7}.quest-log-text mark{background:none;color:var(--accent);font-weight:700}.quest-log-row{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.quest-log-label{color:var(--subtle);font-size:.64rem}.quest-log-values{display:flex;flex-wrap:wrap;gap:5px}.quest-ref-link{border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--accent);padding:1px 10px;font-size:.68rem;cursor:pointer}.quest-ref-link:hover{text-decoration:underline}.quest-item-grid{display:flex;flex-wrap:wrap;gap:6px}.quest-item-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);padding:3px 8px 3px 3px}.quest-item-chip.is-clickable{cursor:pointer}.quest-item-chip.is-clickable:hover{border-color:var(--accent)}.quest-item-chip.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.quest-item-icon{display:grid;width:28px;height:28px;place-items:center}.quest-item-icon img{max-width:28px;max-height:28px;image-rendering:pixelated}.quest-item-name{color:var(--text);font-size:.68rem}.quest-item-count{color:var(--subtle);font-size:.62rem;white-space:nowrap}.quest-item-chance{border-radius:var(--radius-sm);background:var(--selection);padding:1px 6px;color:var(--accent);font-size:.62rem;font-weight:700;white-space:nowrap}.quest-rewards{display:grid;margin:0 0 6px;grid-template-columns:1fr 1fr;gap:3px 14px}.quest-reward{display:flex;align-items:baseline;justify-content:space-between;gap:8px;border-bottom:1px dashed var(--border);padding:2px 0}.quest-reward dt{color:var(--muted);font-size:.7rem}.quest-reward dd{margin:0;color:var(--text-strong);font-family:Cascadia Mono,Consolas,monospace;font-size:.7rem}.quest-log-empty{margin:0;color:var(--subtle);font-size:.68rem}.quest-item-tooltip{position:fixed;z-index:60;transform:translateY(-100%);pointer-events:none}.quest-log.has-frame .quest-log-header h2{color:#16324f}.quest-log.has-frame .quest-log-parent{color:#5a6b82}.quest-log.has-frame .quest-log-section h3{color:#6b7c93}.quest-log.has-frame .quest-log-text p{color:#1c2a3d}.quest-log.has-frame .quest-log-text mark{color:#1f66d1}.quest-log.has-frame .quest-chip{border-color:#b9c4d6;color:#5a6b82}.quest-log.has-frame .quest-chip.is-level{color:#16324f}.quest-log.has-frame .quest-log-label{color:#7c8ca0}.quest-log.has-frame .quest-item-chip{border-color:#c6d0de;background:#f4f7fb}.quest-log.has-frame .quest-item-name{color:#1c2a3d}.quest-log.has-frame .quest-item-count{color:#7c8ca0}.quest-log.has-frame .quest-item-chance{background:#dbe7f7;color:#1f66d1}.quest-log.has-frame .quest-reward{border-color:#d5dde8}.quest-log.has-frame .quest-reward dt{color:#6b7c93}.quest-log.has-frame .quest-reward dd{color:#16324f}.quest-log.has-frame .quest-ref-link{border-color:#c6d0de;color:#1f66d1}.quest-log.has-frame .quest-log-empty{color:#7c8ca0}.app-body.is-sound{grid-template-columns:minmax(0,1fr)}.app-body.is-sound .app-right{overflow:hidden;padding:0}.sound-page{display:grid;height:100%;min-height:0;grid-template-columns:200px minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) auto}.sound-page[hidden]{display:none}.sound-page-status{grid-column:1 / -1;align-self:center;justify-self:center;margin:0;padding:20px;color:var(--muted);font-size:.8rem}.sound-sidebar{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-right:1px solid var(--border-strong);background:var(--surface-raised)}.sound-search{display:flex;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.sound-search input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--button-bg);color:var(--text-strong);padding:4px 8px;font-size:.75rem}.sound-playlist-scroll{display:flex;min-height:0;flex-direction:column;gap:2px;overflow-y:auto;padding:6px}.sound-playlist-item{display:grid;width:100%;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:6px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--subtle);padding:5px 8px;text-align:left;cursor:pointer}.sound-playlist-item:hover{background:var(--selection-hover)}.sound-playlist-item.is-active{background:var(--selection)}.sound-playlist-name{overflow:hidden;color:var(--text);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.sound-playlist-count{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.62rem}.sound-main{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr)}.sound-main-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:10px 16px 8px}.sound-main-header h2{margin:0;overflow:hidden;color:var(--text-strong);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.sound-main-count{flex:0 0 auto;color:var(--subtle);font-size:.72rem}.sound-tracklist{min-height:0;overflow-y:auto;padding:4px 8px 8px}.sound-track-row{display:grid;grid-template-columns:28px minmax(0,1fr) 96px 52px;align-items:center;column-gap:8px;border-radius:var(--radius-sm);padding:4px 8px;cursor:pointer;user-select:none}.sound-track-row.is-head{position:sticky;top:-4px;z-index:1;border-bottom:1px solid var(--border);border-radius:0;background:var(--surface);color:var(--subtle);font-size:.66rem;cursor:default;padding-top:6px}.sound-track-row:not(.is-head):hover{background:var(--selection-hover)}.sound-track-row:not(.is-head):focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.sound-track-row.is-current{background:var(--selection)}.sound-track-index{display:inline-flex;align-items:center;justify-content:center;color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.68rem}.sound-track-hover-play{display:none}.sound-track-row:not(.is-head):hover .sound-track-number{display:none}.sound-track-row:not(.is-head):hover .sound-track-hover-play{display:inline}.sound-track-title{overflow:hidden;color:var(--text);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.sound-track-row.is-current .sound-track-title{color:var(--text-strong);font-weight:600}.sound-track-category{overflow:hidden;color:var(--subtle);font-size:.68rem;text-overflow:ellipsis;white-space:nowrap}.sound-track-duration{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.68rem;text-align:right}.sound-track-empty{margin:0;padding:20px;color:var(--muted);font-size:.78rem;text-align:center}.sound-eq{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.sound-eq span{width:3px;border-radius:1px;background:var(--accent);animation:sound-eq-bounce .9s ease-in-out infinite}.sound-eq span:nth-child(2){animation-delay:.3s}.sound-eq span:nth-child(3){animation-delay:.6s}@keyframes sound-eq-bounce{0%,to{height:4px}50%{height:12px}}.sound-nowplaying{display:grid;min-width:0;min-height:0;grid-template-rows:auto minmax(0,1fr);border-left:1px solid var(--border-strong);background:var(--surface-raised)}.sound-nowplaying-header{display:flex;min-width:0;flex-direction:column;gap:4px;padding:10px 12px;border-bottom:1px solid var(--border)}.sound-nowplaying-header h3{margin:0;color:var(--text-strong);font-size:.78rem;font-weight:600}.sound-nowplaying-track{display:flex;min-width:0;flex-direction:column;gap:1px;overflow:hidden;color:var(--text-strong);font-size:.74rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.sound-nowplaying-category{overflow:hidden;color:var(--subtle);font-size:.66rem;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.sound-nowplaying-body{display:flex;min-height:0;flex-direction:column;gap:2px;overflow-y:auto;padding:6px}.sound-nowplaying-empty{margin:0;padding:16px 8px;color:var(--subtle);font-size:.72rem;line-height:1.5;text-align:center}.sound-map-row{display:flex;min-width:0;align-items:center;gap:8px;border-radius:var(--radius-md);padding:5px 6px}.sound-map-row:hover{background:var(--selection-hover)}.sound-map-thumb{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);object-fit:contain}.sound-map-thumb.is-empty{color:var(--subtle)}.sound-map-text{display:flex;min-width:0;flex-direction:column;gap:1px}.sound-map-name{overflow:hidden;color:var(--text-strong);font-size:.72rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.sound-map-id{color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.62rem}.sound-playerbar{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:center;gap:12px;border-top:1px solid var(--border-strong);background:var(--surface-raised);padding:8px 14px}.sound-player-info{display:flex;min-width:0;align-items:center;gap:10px}.sound-player-cover{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel);color:var(--subtle)}.sound-player-text{display:flex;min-width:0;flex-direction:column;gap:1px}.sound-player-title{overflow:hidden;color:var(--text-strong);font-size:.76rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.sound-player-category{overflow:hidden;color:var(--subtle);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.sound-player-controls{display:flex;min-width:0;flex-direction:column;align-items:center;gap:4px}.sound-player-buttons{display:flex;align-items:center;gap:6px}.sound-player-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.sound-player-button:hover,.sound-player-button.is-active{color:var(--text-strong)}.sound-player-button.is-active:after{content:"";position:absolute;margin-top:26px;width:4px;height:4px;border-radius:50%;background:var(--text-strong)}.sound-player-button.is-primary{width:32px;height:32px;background:var(--accent);color:var(--on-accent)}.sound-player-button.is-primary:hover{background:var(--accent-strong);color:var(--on-accent)}.sound-player-progress{display:grid;width:100%;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:8px}.sound-player-time{min-width:34px;color:var(--subtle);font-family:Cascadia Mono,Consolas,monospace;font-size:.64rem;text-align:center}.sound-player-seek{width:100%;height:4px;border-radius:2px;appearance:none;cursor:pointer}.sound-player-seek:disabled{cursor:default;opacity:.5}.sound-player-seek::-webkit-slider-thumb{width:11px;height:11px;border:none;border-radius:50%;appearance:none;background:var(--accent)}.sound-player-seek::-moz-range-thumb{width:11px;height:11px;border:none;border-radius:50%;background:var(--accent)}.sound-player-volume{display:flex;align-items:center;justify-content:flex-end;gap:4px}.sound-volume{width:90px;accent-color:var(--accent);cursor:pointer}
