:root{--bg-base: #0b0a08;--bg-surface: rgba(16, 15, 13, .86);--bg-elevated: rgba(24, 22, 18, .92);--bg-input: rgba(10, 9, 8, .88);--border-subtle: rgba(233, 228, 215, .08);--border-default: rgba(233, 228, 215, .14);--border-strong: rgba(233, 228, 215, .22);--border-focus: rgba(209, 169, 95, .7);--text-primary: #e9e4d7;--text-secondary: rgba(233, 228, 215, .74);--text-muted: rgba(233, 228, 215, .52);--accent: #d1a95f;--accent-glow: rgba(209, 169, 95, .28);--accent-success: #79c267;--accent-success-soft: rgba(121, 194, 103, .14);--accent-warning: #d6a64b;--accent-disabled: #d77a7a;--accent-disabled-soft: rgba(215, 122, 122, .14);--accent-danger: #8b4049;--accent-danger-soft: rgba(139, 64, 73, .22);--font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI Variable", sans-serif;--font-mono: "Cascadia Code", "Cascadia Mono", "Consolas", "SF Mono", monospace;--font-ui: var(--font-mono);--font-display: var(--font-mono);--num: tabular-nums;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: 1rem;--text-lg: 1.1875rem;--text-xl: 1.4375rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .3s}::selection{background:var(--accent-glow);color:var(--text-primary)}input,textarea{caret-color:var(--accent)}body.booting #boot-overlay{opacity:1;pointer-events:auto}#boot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);background:radial-gradient(circle at top,rgba(24,22,15,.95) 0%,var(--bg-base) 55%,#080705 100%);color:var(--text-primary);font-family:var(--font-mono);z-index:9999;opacity:0;pointer-events:none;transition:opacity .24s var(--ease-out)}.boot-indicator{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);letter-spacing:.04em}.boot-caret{display:inline-block;width:10px;height:18px;background:var(--accent);animation:boot-blink 1s step-end infinite}.boot-label{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.boot-label:before{content:"[ ";color:var(--text-muted)}.boot-label:after{content:" ]";color:var(--text-muted)}@keyframes boot-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@media(prefers-reduced-motion:reduce){.boot-caret{animation:none;opacity:.7}}@media(prefers-contrast:more){.boot-caret{background:var(--text-primary)}.boot-label{color:var(--text-secondary)}}.ui-panel{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ui-panel--main{background:var(--bg-elevated);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.ui-panel--tray{background:var(--bg-surface);border-radius:var(--radius-lg)}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-input);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:500;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.ui-button:hover{border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-glow);transform:translateY(-1px)}.ui-button:active{transform:translateY(0)}.ui-button:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.ui-button:disabled,.ui-button[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.ui-button.is-active,.ui-button--active{background:var(--accent-glow);border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 0 1px var(--accent)}.ui-button--ghost{background:transparent;border-color:var(--border-subtle)}.ui-button--ghost:hover{background:var(--bg-input);border-color:var(--border-default)}.ui-button--danger{background:var(--accent-danger-soft);border-color:var(--accent-danger);color:var(--accent-danger)}.ui-button--danger:hover{background:var(--accent-danger);color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-danger-soft)}.ui-chip{display:inline-flex;align-items:center;justify-content:center;min-width:3.5ch;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:var(--num);text-align:center}.ui-mono{font-family:var(--font-mono);font-variant-numeric:var(--num);letter-spacing:.02em}.ui-focus:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.ui-terminal-bracket{display:inline-flex;align-items:center}.ui-terminal-bracket:before{content:"[ ";color:var(--text-muted);font-family:var(--font-mono)}.ui-terminal-bracket:after{content:" ]";color:var(--text-muted);font-family:var(--font-mono)}.ui-terminal-prompt:before{content:"> ";color:var(--accent);font-family:var(--font-mono);font-weight:700}.tray-slider,.options-slider-input,.preview-lighting-range{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:3px;border-radius:0;background:repeating-linear-gradient(90deg,var(--border-subtle) 0px,var(--border-subtle) 1px,transparent 1px,transparent 8px),var(--bg-input);border:1px solid var(--border-subtle);outline:none;cursor:pointer;min-width:0}.tray-slider:focus-visible,.options-slider-input:focus-visible,.preview-lighting-range:focus-visible{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.tray-slider::-webkit-slider-thumb,.options-slider-input::-webkit-slider-thumb,.preview-lighting-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:10px;border-radius:0;transform:rotate(45deg);border:1px solid var(--accent);background:var(--text-primary);cursor:grab;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.tray-slider::-webkit-slider-thumb:hover,.options-slider-input::-webkit-slider-thumb:hover,.preview-lighting-range::-webkit-slider-thumb:hover{box-shadow:0 0 0 2px var(--accent-glow);transform:rotate(45deg) scale(1.15)}.tray-slider::-webkit-slider-thumb:active,.options-slider-input::-webkit-slider-thumb:active,.preview-lighting-range::-webkit-slider-thumb:active{cursor:grabbing}.tray-slider::-moz-range-track,.options-slider-input::-moz-range-track,.preview-lighting-range::-moz-range-track{height:3px;border-radius:0;background:repeating-linear-gradient(90deg,var(--border-subtle) 0px,var(--border-subtle) 1px,transparent 1px,transparent 8px),var(--bg-input);border:1px solid var(--border-subtle)}.tray-slider::-moz-range-thumb,.options-slider-input::-moz-range-thumb,.preview-lighting-range::-moz-range-thumb{width:10px;height:10px;border-radius:0;border:1px solid var(--accent);background:var(--text-primary);cursor:grab;box-sizing:border-box}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-subtle);border-top-color:var(--accent);animation:ui-spin .8s linear infinite}.ui-spinner--sm{width:12px;height:12px}.ui-scrollbar::-webkit-scrollbar{width:6px;height:6px}.ui-scrollbar::-webkit-scrollbar-track{background:transparent}.ui-scrollbar::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-sm)}.ui-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ui-button:focus-visible,.tray-slider:focus-visible,.preview-lighting-range:focus-visible,.ui-focus:focus-visible{outline:none}@media(prefers-reduced-motion:reduce){.ui-spinner{animation:none;opacity:.8}.ui-button{transition:opacity var(--duration-fast) ease-out}.ui-button:hover{transform:none}}@media(prefers-contrast:more){:root{--border-default: rgba(233, 228, 215, .28);--border-strong: rgba(233, 228, 215, .4);--text-muted: rgba(233, 228, 215, .68)}}html,body{height:100%}body.drop-mode{--drop-aspect-ratio: 4 / 3;--tray-height: 256px;--layout-pad: 18px;--drop-panel-width: 100%;background:radial-gradient(ellipse at top,rgba(24,22,18,.6) 0%,transparent 50%),var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);margin:0;min-height:100vh;display:grid;grid-template-rows:var(--nav-height) minmax(0,1fr) var(--tray-height);row-gap:var(--layout-pad);overflow:hidden;padding:var(--layout-pad);box-sizing:border-box}body.drop-mode:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9998;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);opacity:.35}@media(prefers-reduced-motion:reduce){body.drop-mode:before{opacity:.2}}body.drop-mode{--state-accent: var(--accent-success);--state-accent-glow: rgba(121, 194, 103, .24)}body.drop-mode[data-state=dragging],body.drop-mode[data-state=processing]{--state-accent: var(--accent);--state-accent-glow: rgba(209, 169, 95, .32)}body.drop-mode[data-saving=true]{--state-accent: var(--accent-warning);--state-accent-glow: rgba(214, 166, 75, .28)}#drop-root{grid-row:2;position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:0;box-sizing:border-box;min-height:0}.drop-surface{width:var(--drop-panel-width);aspect-ratio:var(--drop-aspect-ratio);height:auto;max-height:calc(100vh - var(--tray-height) - var(--nav-height) - (var(--layout-pad) * 4));border-style:solid;border-width:2px;border-color:color-mix(in srgb,var(--state-accent) 15%,var(--border-default));transition:border-color var(--duration-normal) var(--ease-out),background var(--duration-normal) var(--ease-out);box-sizing:border-box;position:relative;overflow:hidden}body[data-state=dragging] .drop-surface{border-style:dotted;border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 0 4px var(--accent-glow)}@keyframes processing-pulse{0%,to{box-shadow:0 0 0 0 transparent}50%{box-shadow:0 0 0 4px var(--accent-glow)}}body[data-state=processing] .drop-surface{border-color:var(--border-default);background:transparent;box-shadow:none;animation:processing-pulse 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){body[data-state=processing] .drop-surface{animation:none}}body.drop-mode #debug-root,body.drop-mode #toast-root{display:none}#drop-tray{width:100%;display:flex;justify-content:center;padding:0;box-sizing:border-box;height:var(--tray-height, auto)}.tray-surface{width:100%;padding:var(--space-3) var(--space-4);box-sizing:border-box;background:var(--bg-surface);border:1px solid var(--border-default);height:100%;min-height:0;display:flex;flex-direction:column;border-top-color:color-mix(in srgb,var(--state-accent) 15%,var(--border-strong));border-radius:0;box-shadow:inset 0 1px 0 var(--border-subtle),inset 0 -1px #0003;transition:border-top-color var(--duration-normal) var(--ease-out)}.tray-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr) minmax(140px,1fr);gap:var(--space-4);align-items:stretch;flex:1;min-height:0}body:not([data-view]) .tray-grid--viewer,body[data-view=viewer] .tray-grid--viewer,body[data-view=tile] .tray-grid--tile{display:grid}.tray-grid--viewer,.tray-grid--tile{display:none}.tray-group{margin:0;padding:0;border:none}.tray-legend{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:0 0 var(--space-2) 0;margin-bottom:var(--space-2);border-bottom:1px solid var(--accent);opacity:.6;width:100%;display:block}.tray-group--sliders{display:flex;flex-direction:column;gap:0;min-height:0;height:100%;align-self:stretch}.tray-slider-row{display:grid;grid-template-columns:72px 1fr 52px;gap:var(--space-3);align-items:flex-start;min-height:28px;padding:0;position:relative}.tray-slider-row+.tray-slider-row{border-top:none;margin-top:4px;padding-top:var(--space-1)}.tray-slider-row+.tray-slider-row:before{content:"";position:absolute;left:0;right:0;top:0;border-top:1px solid var(--border-subtle);transform:translateY(-4px);pointer-events:none}.tray-label{font-family:var(--font-mono);font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.tray-value{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);min-width:4ch;white-space:nowrap;background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:0;padding:2px 6px;box-shadow:inset 0 1px 2px #0000004d;color:var(--text-primary)}.tray-value:before{content:"[ ";color:var(--text-muted)}.tray-value:after{content:" ]";color:var(--text-muted)}.tray-mode-stack,.tray-action-stack{display:flex;flex-direction:column;gap:var(--space-2)}.tray-mode,.tray-action,.tray-input{width:100%;justify-content:flex-start}.tray-input{box-sizing:border-box;min-height:32px;padding:6px 8px;font-family:var(--font-mono);font-size:11px;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:0}body.debug-mode #drop-tray,body.toast-mode #drop-tray{display:none}.tray-mode{position:relative;padding-left:22px}.tray-mode:before{content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:10px;line-height:1;transition:color var(--duration-fast) var(--ease-out)}#compute-mode[data-value=gpu],#source-mode[data-value=albedo],#material-semantics[data-value=dielectric],#structure-polarity[data-value=dark_is_high]{border-color:var(--accent);color:var(--text-primary);background:var(--accent-glow)}#compute-mode[data-value=gpu]:before,#source-mode[data-value=albedo]:before,#material-semantics[data-value=dielectric]:before,#structure-polarity[data-value=dark_is_high]:before{content:"●";color:var(--accent)}#compute-mode[data-value=cpu],#source-mode[data-value=lit_capture],#material-profile[data-value=dry_bark],#material-profile[data-value=dry_wood],#material-profile[data-value=matte_stone],#material-profile[data-value=matte_ground],#material-profile[data-value=satin_plastic],#material-semantics[data-value=conductor],#structure-polarity[data-value=light_is_high]{border-color:var(--border-default);color:var(--text-secondary);background:var(--bg-input)}#compute-mode[data-value=cpu]:before,#source-mode[data-value=lit_capture]:before,#material-profile[data-value=dry_bark]:before,#material-profile[data-value=dry_wood]:before,#material-profile[data-value=matte_stone]:before,#material-profile[data-value=matte_ground]:before,#material-profile[data-value=satin_plastic]:before,#material-semantics[data-value=conductor]:before,#structure-polarity[data-value=light_is_high]:before{content:"○";color:var(--text-muted)}#compute-mode[data-value=auto],#source-mode[data-value=auto],#material-profile[data-value=unclassified_generic],#structure-polarity[data-value=auto]{border-color:var(--border-default);color:var(--text-secondary)}#compute-mode[data-value=auto]:before,#source-mode[data-value=auto]:before,#material-profile[data-value=unclassified_generic]:before,#structure-polarity[data-value=auto]:before{content:"≈";color:var(--text-muted)}#material-semantics[data-value=mixed]{border-color:var(--border-subtle);color:var(--text-muted)}#material-semantics[data-value=mixed]:before{content:"–";color:var(--text-muted)}#material-profile[data-value=clean_metal]{border-color:var(--accent);color:var(--text-primary);background:var(--accent-glow)}#material-profile[data-value=clean_metal]:before{content:"■";color:var(--accent)}#settings-regenerate{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow);transition:box-shadow var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out),background var(--duration-fast) var(--ease-out)}#settings-regenerate:hover:not(:disabled){background:var(--accent-glow);color:var(--text-primary)}#settings-regenerate:disabled{border-color:var(--border-subtle);color:var(--text-muted);opacity:.5;cursor:not-allowed;box-shadow:none}@media(prefers-reduced-motion:reduce){#settings-regenerate{transition:none}}@media(max-width:980px){.tray-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.tray-group--sliders{grid-column:1 / -1}.tray-group--actions{display:block}.tray-action-stack{flex-direction:row}.tray-action{flex:1;min-height:auto}}@media(max-width:720px){.tray-grid{grid-template-columns:1fr}.tray-slider-row{grid-template-columns:60px 1fr 44px}.tray-slider-row--pair{grid-template-columns:1fr}.tray-slider-pair{grid-template-columns:60px 1fr 44px}.tray-action-stack{flex-direction:row}}body.drop-mode{--nav-height: 48px}#nav-root{grid-row:1;width:100%;height:var(--nav-height);display:flex;align-items:center}.nav-surface{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);box-sizing:border-box;gap:var(--space-3);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:0;box-shadow:inset 0 1px 0 var(--border-subtle),inset 0 4px 14px -3px var(--state-accent-glow);transition:box-shadow var(--duration-normal) var(--ease-out)}.nav-left{display:flex;align-items:center;gap:var(--space-4)}.nav-right{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.nav-status{display:inline-flex;align-items:center;gap:var(--space-2);min-width:10ch;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.04em;text-transform:uppercase;font-variant-numeric:tabular-nums}.nav-status-spinner{width:10px;height:10px;border-radius:50%;border:2px solid var(--border-subtle);border-top-color:var(--accent-success);opacity:0}@keyframes nav-spin{to{transform:rotate(360deg)}}.nav-status-text{color:var(--accent-success)}.nav-status-vram{color:var(--accent-success);margin-left:var(--space-3)}.nav-status-vram:empty{display:none}.nav-status[data-vram-level=ok] .nav-status-vram{color:var(--accent-success)}.nav-status[data-vram-level=warn] .nav-status-vram{color:var(--accent-warning)}.nav-status[data-vram-level=danger] .nav-status-vram{color:var(--accent-danger)}body[data-state=dragging] .nav-status-spinner{opacity:0}body[data-state=dragging] .nav-status-text{color:var(--accent)}body[data-state=processing] .nav-status-spinner{opacity:1;border-top-color:var(--accent);animation:nav-spin .9s linear infinite}body[data-state=processing] .nav-status-text{color:var(--accent)}body[data-state=error] .nav-status-spinner{opacity:0;border-top-color:var(--accent-danger)}body[data-state=error] .nav-status-text{color:var(--accent-danger)}body[data-saving=true] .nav-status-spinner{opacity:1;border-top-color:var(--accent-warning);animation:nav-spin .9s linear infinite}body[data-saving=true] .nav-status-text{color:var(--accent-warning)}@media(prefers-reduced-motion:reduce){body[data-state=processing] .nav-status-spinner,body[data-saving=true] .nav-status-spinner{animation:none;opacity:.6}}.options-menu{position:relative;display:inline-flex;align-items:center}.options-trigger{padding:6px 10px;letter-spacing:.08em;min-height:28px}.options-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-elevated);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:var(--space-2);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);z-index:60}.options-menu[data-open=true] .options-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.options-menu--tray{width:100%}.options-menu--tray .options-trigger{width:100%;justify-content:flex-start}.options-menu--tray .options-panel{top:auto;bottom:calc(100% + 6px)}.options-section{display:flex;flex-direction:column;gap:var(--space-2)}.options-label{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:inherit}.options-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.options-toggle:hover{border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 0 1px var(--accent-glow)}.options-toggle:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.options-toggle-chip{display:inline-flex;align-items:center;justify-content:center;min-width:6ch;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-input);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:var(--num);text-transform:uppercase;letter-spacing:.04em}@media(prefers-reduced-motion:reduce){.options-panel{transition:none}}@media(max-width:720px){.options-panel{min-width:240px}}body:not([data-view]) .view-panel[data-view-panel=viewer],body[data-view=viewer] .view-panel[data-view-panel=viewer],body[data-view=tile] .view-panel[data-view-panel=tile]{display:block}.view-panel{display:none}.view-tabs{display:inline-flex;align-items:center;gap:var(--space-1)}.view-tab{display:inline-flex;align-items:center;padding:4px 6px;border:none;background:transparent;font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);-webkit-user-select:none;user-select:none;cursor:pointer;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.view-tab:before{content:"[ ";color:var(--text-muted)}.view-tab:after{content:" ]";color:var(--text-muted)}.view-tab:hover:not(.is-active){color:var(--text-primary)}.view-tab:hover:not(.is-active):before,.view-tab:hover:not(.is-active):after{color:var(--text-secondary)}.view-tab.is-active{background:var(--accent);color:var(--bg-base);border-radius:var(--radius-sm)}.view-tab.is-active:before,.view-tab.is-active:after{color:var(--bg-base)}.view-tab:focus-visible{outline:none;box-shadow:0 0 0 2px var(--border-focus)}.preview-toolbar{position:absolute;top:16px;right:16px;display:inline-flex;align-items:center;gap:6px;z-index:2;border:none;background:transparent;overflow:visible}.preview-control{border:none;padding:0;background:transparent;cursor:pointer}.preview-control img{display:block;width:40px;height:40px;transition:filter var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.preview-control:hover:not(.is-active) img{filter:drop-shadow(0 0 4px var(--accent));transform:scale(1.08)}.preview-control.is-active img{filter:drop-shadow(0 0 2px var(--accent)) drop-shadow(0 0 4px var(--accent))}.preview-control:focus-visible{outline:none}.preview-control:focus-visible img{filter:drop-shadow(0 0 0 2px var(--border-focus))}.preview-inspection-button{height:32px;min-width:112px;padding:0 10px;font-family:var(--font-mono);font-size:11px;justify-content:center}.preview-lighting{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;align-items:stretch;z-index:2;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);min-width:200px;overflow:hidden}.preview-lighting-toggle{display:flex;align-items:center;justify-content:center;width:100%;height:24px;padding:0;border:none;border-bottom:1px solid var(--border-subtle);background:var(--bg-elevated);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.preview-lighting-toggle:hover{background:var(--accent-glow)}.preview-lighting-toggle:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--border-focus)}.preview-lighting-toggle-icon:before{content:"^";font-family:var(--font-mono);font-size:12px;color:var(--text-muted);display:inline-block;transition:transform var(--duration-normal) var(--ease-out)}.preview-lighting:not(.is-collapsed) .preview-lighting-toggle-icon:before{transform:rotate(180deg)}.preview-lighting-content{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);padding-bottom:var(--space-2);transition:max-height var(--duration-normal) var(--ease-out),padding var(--duration-normal) var(--ease-out),opacity var(--duration-fast) var(--ease-out);max-height:300px;opacity:1}.preview-lighting.is-collapsed .preview-lighting-content{max-height:0;padding-top:0;padding-bottom:0;opacity:0;pointer-events:none}.preview-lighting-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.preview-lighting-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.preview-lighting-value{min-width:5ch;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-xs);background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:0;padding:2px 6px;box-shadow:inset 0 1px 2px #0000004d;color:var(--text-primary)}.preview-lighting-value:before{content:"[ ";color:var(--text-muted)}.preview-lighting-value:after{content:" ]";color:var(--text-muted)}.preview-lighting-button{width:calc(100% - var(--space-3) * 2);margin:var(--space-2) var(--space-3) var(--space-3);justify-content:center}.preview-canvas{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-xl);border:none;background:var(--bg-elevated);overflow:hidden;z-index:0;box-shadow:inset 0 0 60px #0006,inset 0 0 120px #0003}.tile-checker-surface{width:var(--drop-panel-width);aspect-ratio:var(--drop-aspect-ratio);height:auto;max-height:calc(100vh - var(--tray-height) - var(--nav-height) - (var(--layout-pad) * 4));border-style:dotted;border-width:2px;position:relative;overflow:hidden}body[data-state=dragging] .tile-checker-surface{border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 0 4px var(--accent-glow)}body[data-state=processing] .tile-checker-surface{border-color:var(--border-default);background:transparent;box-shadow:none;animation:processing-pulse 1.5s ease-in-out infinite}@media(prefers-reduced-motion:reduce){body[data-state=processing] .tile-checker-surface{animation:none}}.tile-checker-canvas{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden}.tile-checker-score{position:absolute;top:16px;left:16px;display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:#0b0a08d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;z-index:2}.tile-checker-score-row{display:inline-flex;align-items:center;gap:0}.tile-checker-score-label{color:var(--text-secondary);margin-right:var(--space-1)}.tile-checker-score-value{color:var(--accent);font-variant-numeric:tabular-nums;padding:0;border:none;background:transparent;min-width:auto}.tile-checker-score-breakdown{display:grid;grid-template-columns:auto auto;gap:2px 10px;font-size:var(--text-xs);letter-spacing:.04em;color:var(--text-muted)}.tile-checker-score-subrow{display:contents}.tile-checker-score-sub-value{color:var(--text-primary);font-variant-numeric:tabular-nums;justify-self:end}.tile-checker-readout{margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--border-subtle);background:var(--bg-input);font-family:var(--font-mono);font-size:10px;color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;display:flex;flex-direction:column;gap:var(--space-1)}.tray-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-input);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;width:100%;text-align:left;transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.tray-select:not(:disabled){cursor:pointer}.tray-select:not(:disabled):hover{border-color:var(--accent);color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-glow);transform:translateY(-1px)}.tray-select:not(:disabled):active{transform:translateY(0)}.tray-select:focus-visible{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.tray-select:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}body.debug-mode{background:radial-gradient(ellipse at top,rgba(24,22,18,.6) 0%,transparent 50%),var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);margin:0;overflow:hidden}body.debug-mode #nav-root,body.debug-mode #drop-root,body.debug-mode #drop-tray,body.debug-mode #toast-root{display:none}#debug-root{position:relative;height:100vh;box-sizing:border-box;display:flex;flex-direction:column;padding:var(--space-3);gap:var(--space-2);overflow:hidden}.console-header{display:flex;align-items:center;gap:var(--space-2);min-height:28px}.console-path{flex:1;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em}.console-controls{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.console-filter{flex:1;min-width:180px;background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--text-xs);padding:4px 8px;outline:none}.console-filter::placeholder{color:var(--text-muted)}.console-levels{display:flex;gap:2px}.console-level{padding:3px 6px;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;border-radius:var(--radius-sm);border:1px solid var(--border-default);background:transparent;color:var(--text-muted);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.console-level:not(.is-active){opacity:.35}.console-level.is-active[data-level=error]{color:var(--accent-disabled);border-color:var(--accent-disabled)}.console-level.is-active[data-level=warn]{color:var(--accent-warning);border-color:var(--accent-warning)}.console-level.is-active[data-level=info]{color:var(--text-primary);border-color:var(--border-strong)}.console-level.is-active[data-level=debug]{color:var(--text-secondary);border-color:var(--border-default)}.console-level.is-active[data-level=trace]{color:var(--text-muted);border-color:var(--border-subtle)}.console-actions{display:flex;gap:var(--space-1)}.console-action{font-size:var(--text-xs);padding:3px 8px}.console-list-container{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:#08070699;border:1px solid var(--border-subtle);border-radius:var(--radius-md);scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.console-list-container::-webkit-scrollbar{width:8px}.console-list-container::-webkit-scrollbar-track{background:transparent}.console-list-container::-webkit-scrollbar-thumb{background:var(--accent-glow);border-radius:var(--radius-sm);border:2px solid transparent;background-clip:padding-box}.console-list-container::-webkit-scrollbar-thumb:hover{background:var(--accent);border:2px solid transparent;background-clip:padding-box}.console-list{padding:var(--space-1) 0}.console-row{display:flex;gap:var(--space-2);padding:1px var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.6;border-bottom:1px solid rgba(233,228,215,.04)}.console-row:hover{background:var(--bg-surface)}.console-col-seq{width:5ch;color:var(--text-muted);text-align:right;flex-shrink:0;font-variant-numeric:tabular-nums}.console-col-time{width:12ch;color:var(--text-muted);flex-shrink:0;font-variant-numeric:tabular-nums}.console-col-level{width:4ch;text-transform:uppercase;flex-shrink:0;font-weight:600}.console-col-source{width:7ch;color:var(--text-muted);flex-shrink:0}.console-col-target{width:22ch;color:var(--text-secondary);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-col-reqid{width:8ch;color:var(--accent-glow);flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.console-col-msg{flex:1;color:var(--text-primary);word-break:break-word;white-space:pre-wrap}.console-row[data-level=error]{background:var(--accent-danger-soft)}.console-row[data-level=error] .console-col-level,.console-row[data-level=error] .console-col-msg{color:var(--accent-disabled)}.console-row[data-level=warn] .console-col-level,.console-row[data-level=warn] .console-col-msg{color:var(--accent-warning)}.console-row[data-level=info] .console-col-level{color:var(--text-primary)}.console-row[data-level=debug] .console-col-level{color:var(--text-muted)}.console-row[data-level=debug] .console-col-msg{color:var(--text-secondary)}.console-row[data-level=trace] .console-col-level,.console-row[data-level=trace] .console-col-msg{color:var(--text-muted)}.console-detail-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;max-width:560px;width:90%;max-height:70vh;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-3)}.console-detail-fields{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-2);margin:0 0 var(--space-3) 0}.console-detail-fields dt{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-align:right;padding-top:2px}.console-detail-fields dd{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-primary);margin:0;word-break:break-word}.console-detail-fields dd.is-null{color:var(--text-muted);font-style:italic}.console-detail-fields dd pre{margin:0;padding:var(--space-2);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--text-xs);overflow-x:auto;white-space:pre-wrap;max-height:200px;overflow-y:auto}.console-detail-copy{margin-top:var(--space-2)}@media(prefers-reduced-motion:reduce){.console-level{transition:none}}@media(prefers-contrast:more){.console-row{border-bottom-color:var(--border-default)}.console-list-container{border-color:var(--border-strong)}}.output-menu{width:100%;display:flex}.output-menu-path{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono, monospace);font-size:var(--text-xs);color:var(--text-muted);-webkit-user-select:all;user-select:all;direction:rtl;text-align:left;padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-input)}.output-menu-warning{font-size:var(--text-xs);color:var(--color-warning, #d4a017);padding:2px 8px}.output-menu-actions{display:flex;gap:var(--space-2);padding-top:var(--space-2)}.output-menu-actions .ui-button{font-size:var(--text-xs);padding:4px 8px}html.toast-mode,html.toast-mode body{background:transparent!important;background-color:transparent!important;width:100%;height:100%;overflow:hidden;margin:0;border-radius:var(--radius-lg)}#toast-root{display:none}body.toast-mode #toast-root{display:flex}body.toast-mode #nav-root,body.toast-mode #drop-root,body.toast-mode #drop-tray,body.toast-mode #debug-root{display:none}#toast-root{flex-direction:row;align-items:center;justify-content:flex-start;width:100%;height:100%;box-sizing:border-box;padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--bg-elevated);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-lg);transform:translateY(12px) scale(.98);opacity:0;visibility:hidden;pointer-events:none;transition:transform var(--duration-normal) var(--ease-out),opacity var(--duration-fast) ease-out,visibility 0s linear var(--duration-normal)}#toast-root.show{transform:translateY(0) scale(1);opacity:1;visibility:visible;transition:transform var(--duration-normal) var(--ease-out),opacity var(--duration-fast) ease-out,visibility 0s linear 0s}#toast-root.hiding{transform:translateY(4px) scale(.99);opacity:0;transition:transform var(--duration-fast) var(--ease-in-out),opacity var(--duration-fast) ease-in,visibility 0s linear var(--duration-fast)}.toast .message{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--accent-success);white-space:nowrap;line-height:1;letter-spacing:.04em}.toast .message:before{content:"[ ";color:var(--text-muted)}.toast .message:after{content:" ]";color:var(--text-muted)}@supports not (backdrop-filter: blur(1px)){#toast-root{background:#181612f5}}@media(prefers-reduced-motion:reduce){#toast-root,#toast-root.show,#toast-root.hiding{transition:opacity var(--duration-fast) ease-out;transform:none}}
