@import url(https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100vh;margin:0;overflow:hidden;padding:0;width:100vw}html:-moz-full-screen,html:-ms-fullscreen,html:-webkit-full-screen,html:fullscreen{height:100%!important;margin:0!important;max-height:100%!important;max-width:100%!important;overflow:hidden!important;padding:0!important;width:100%!important}body:-moz-full-screen ::-webkit-scrollbar,body:-ms-fullscreen ::-webkit-scrollbar,body:-webkit-full-screen ::-webkit-scrollbar,body:fullscreen ::-webkit-scrollbar{display:none}*{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p{margin:0;padding:0}canvas{display:block}.app-root{background:#000;height:100vh;overflow:hidden;position:relative;width:100vw}.canvas-container{height:100%;left:0;position:absolute;top:0;width:100%;z-index:0}.base-modal-backdrop{align-items:center;animation:backdropFadeIn var(--transition-base);backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);background:var(--color-bg-overlay);bottom:0;display:flex;justify-content:center;left:0;pointer-events:all;position:fixed;right:0;top:0;z-index:var(--z-modal-backdrop)}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.base-modal-content{animation:contentSlideUp var(--transition-base) var(--ease-out);backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--color-bg-modal);border:var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);color:var(--color-text-primary);display:flex;flex-direction:column;max-height:90vh;overflow:hidden;position:relative}@keyframes contentSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.base-modal-content--sm{max-width:400px;width:90%}.base-modal-content--md{max-width:600px;width:90%}.base-modal-content--lg{max-width:900px;width:90%}.base-modal-content--full{max-width:none;width:95%}.base-modal-header{align-items:center;border-bottom:var(--border-thin) solid var(--color-border-subtle);display:flex;flex-shrink:0;justify-content:space-between;padding:var(--spacing-2xl)}.base-modal-close-btn{background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;font-size:24px;height:32px;line-height:1;padding:0;position:relative;transition:all var(--transition-base);width:32px}.base-modal-close-btn:hover{background:#ffffff1a;color:var(--color-text-primary)}.base-modal-close-btn:active{background:#ffffff26;transform:scale(.95)}.base-modal-close-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.base-modal-body{color:var(--color-white);flex:1 1;min-height:0;overflow-y:auto;padding:var(--spacing-2xl)}.base-modal-body::-webkit-scrollbar{width:8px}.base-modal-body::-webkit-scrollbar-track{background:#ffffff0d;border-radius:var(--radius-sm)}.base-modal-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-sm)}.base-modal-body::-webkit-scrollbar-thumb:hover{background:#ffffff40}.base-modal-actions{border-top:var(--border-thin) solid var(--color-border-subtle);display:flex;flex-shrink:0;gap:var(--gap-md);justify-content:flex-end;padding:var(--spacing-2xl)}@media (max-width:768px){.base-modal-content{max-height:95vh;width:95%}.base-modal-actions,.base-modal-body,.base-modal-header{padding:var(--spacing-lg)}.base-modal-actions{flex-wrap:wrap}.base-modal-header-title{font-size:var(--text-lg)}}.city-generator-content{color:var(--color-text-primary);display:flex;flex-direction:column;gap:var(--spacing-2xl)}.city-setting-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.city-setting-section h4{color:var(--color-text-primary);font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.city-setting-section h5{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium);margin:0}.city-setting-section p{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.city-medieval-options{background:var(--color-surface-card-background);border:var(--border-thin) solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--spacing-lg)}.city-checkbox-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.city-slider-section{border-top:var(--border-thin) solid var(--color-border-subtle);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.city-slider-section h5{margin-bottom:var(--spacing-xs)}.city-slider-section p{margin-bottom:var(--spacing-sm)}.city-option-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md)}.city-option-grid--4{grid-template-columns:repeat(4,1fr)}.city-option-grid--3{grid-template-columns:repeat(3,1fr)}.city-option-grid--2{grid-template-columns:repeat(2,1fr)}.city-option-button{align-items:center;background:var(--color-surface-card-background);border:var(--border-thin) solid var(--color-border-subtle);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-lg);transition:all var(--transition-base)}.city-option-button:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-border-medium)}.city-option-button.selected{background:var(--color-primary-alpha-low);border-color:var(--color-primary);outline:var(--border-medium) solid var(--color-primary);outline-offset:-2px}.city-option-button:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.city-option-name{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-medium)}.city-option-desc{color:var(--color-text-secondary);font-size:var(--text-xs)}.city-slider{-webkit-appearance:none;appearance:none;background:var(--color-border-subtle);border-radius:var(--radius-full);height:6px;outline:none;transition:background var(--transition-base);width:100%}.city-slider:hover:not(:disabled){background:var(--color-border-medium)}.city-slider:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.city-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--color-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);cursor:pointer;height:18px;-webkit-transition:all var(--transition-base);transition:all var(--transition-base);width:18px}.city-slider::-webkit-slider-thumb:hover{box-shadow:0 3px 8px var(--color-primary-alpha-medium);transform:scale(1.15)}.city-slider::-moz-range-thumb{background:var(--color-primary);border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-sm);cursor:pointer;height:18px;-moz-transition:all var(--transition-base);transition:all var(--transition-base);width:18px}.city-slider::-moz-range-thumb:hover{box-shadow:0 3px 8px var(--color-primary-alpha-medium);transform:scale(1.15)}.city-slider::-moz-range-track{background:var(--color-border-subtle);border-radius:var(--radius-full);height:6px;width:100%}.city-checkbox-label{align-items:center;cursor:pointer;display:flex;gap:var(--spacing-md);-webkit-user-select:none;user-select:none}.city-checkbox-label:has(input:disabled){cursor:not-allowed;opacity:var(--opacity-disabled)}.city-checkbox{accent-color:var(--color-primary);cursor:pointer;height:20px;width:20px}.city-checkbox:disabled{cursor:not-allowed}.city-checkbox-label span{color:var(--color-text-primary);font-size:var(--text-sm)}@media (max-width:600px){.city-option-grid--4{grid-template-columns:repeat(2,1fr)}.city-option-grid--3{grid-template-columns:repeat(3,1fr)}}.no-tab-focus-container [role=button]:focus,.no-tab-focus-container a:focus,.no-tab-focus-container button:focus,.no-tab-focus-container input:focus,.no-tab-focus-container select:focus,.no-tab-focus-container textarea:focus{box-shadow:none;outline:none}.no-tab-focus-container input[type=number]:focus,.no-tab-focus-container input[type=search]:focus,.no-tab-focus-container input[type=text]:focus,.no-tab-focus-container textarea:focus{cursor:text}.no-tab-focus-container [role=button],.no-tab-focus-container a[href],.no-tab-focus-container button{cursor:pointer}.no-tab-focus-container [role=button]:active,.no-tab-focus-container button:active{opacity:.9;transform:scale(.98)}.no-tab-focus-container button:disabled,.no-tab-focus-container input:disabled,.no-tab-focus-container select:disabled,.no-tab-focus-container textarea:disabled{cursor:not-allowed;opacity:.5}.plugin-manager-panel{animation:slideDown var(--transition-base) var(--ease-out);left:calc(320px + var(--spacing-xl));left:calc(var(--chat-panel-width, 320px) + var(--spacing-xl));position:fixed;top:var(--spacing-xl);z-index:var(--z-modal)}.plugin-panel-content{backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay),var(--glass-bg-gradient);border:var(--glass-border);border-radius:var(--radius-xl);box-shadow:var(--glass-shadow);color:var(--color-text-primary);font-family:var(--font-sans);max-height:70vh;max-width:400px;min-width:340px;overflow-y:auto;padding:var(--spacing-lg)}.plugin-panel-content h3{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);margin:0 0 var(--spacing-md) 0;text-align:center}.plugin-stats{background:#ffffff0d;border:var(--border-thin) solid var(--color-border-subtle);border-radius:var(--radius-md);display:flex;gap:var(--gap-lg);justify-content:center;margin-bottom:var(--spacing-md);padding:var(--spacing-sm)}.plugin-stats .stat{font-size:var(--text-sm);font-weight:var(--font-semibold)}.plugin-stats .stat.active{color:var(--color-success)}.plugin-stats .stat.suspended{color:var(--color-warning)}.plugin-stats .stat.error{color:var(--color-danger)}.plugin-stats .stat.total{color:var(--color-text-secondary);margin-left:auto}.plugin-mode-indicator{background:#ffffff08;border:var(--border-thin) solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);text-align:center}.plugin-mode-indicator strong{color:var(--color-white)}.plugin-mode-indicator .world-type{color:var(--color-text-tertiary)}.plugin-list{display:flex;flex-direction:column;gap:var(--gap-sm)}.plugin-item{background:#ffffff08;border:var(--border-thin) solid var(--color-border-subtle);border-radius:var(--radius-md);cursor:pointer;overflow:hidden;transition:all var(--transition-base)}.plugin-item:hover{background:#ffffff0f;border-color:var(--color-border-medium)}.plugin-item.state-active{border-left:var(--border-thick) solid var(--color-success)}.plugin-item.state-suspended{border-left:var(--border-thick) solid var(--color-warning);opacity:.8}.plugin-item.state-error{background:var(--color-danger-alpha-low);border-left:var(--border-thick) solid var(--color-danger)}.plugin-item.state-unloaded{border-left:var(--border-thick) solid var(--color-neutral-500);opacity:.6}.plugin-item.state-initializing,.plugin-item.state-loading{border-left:var(--border-thick) solid var(--color-primary)}.plugin-header{align-items:center;display:flex;gap:var(--gap-sm);padding:var(--spacing-sm) var(--spacing-md)}.plugin-icon{flex-shrink:0;font-size:var(--text-base)}.plugin-name{color:var(--color-text-primary);flex:1 1;font-size:var(--text-sm);font-weight:var(--font-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plugin-state{flex-shrink:0;font-size:var(--text-sm)}.plugin-actions{display:flex;gap:var(--gap-xs)}.plugin-action{align-items:center;background:#0000;border:none;border-radius:var(--radius-xs);cursor:pointer;display:flex;font-size:var(--text-xs);height:24px;justify-content:center;transition:all var(--transition-fast);width:24px}.plugin-action.play{background:#27ae6026;color:var(--color-success)}.plugin-action.play:hover:not(:disabled){background:var(--color-success);color:var(--color-white)}.plugin-action.pause{background:#ffa66626;color:var(--color-warning)}.plugin-action.pause:hover:not(:disabled){background:var(--color-warning);color:var(--color-white)}.plugin-action.stop{background:var(--color-danger-alpha-low);color:var(--color-danger)}.plugin-action.stop:hover:not(:disabled){background:var(--color-danger);color:var(--color-white)}.plugin-action.retry{background:var(--color-primary-alpha-low);color:var(--color-primary)}.plugin-action.retry:hover:not(:disabled){background:var(--color-primary);color:var(--color-white)}.plugin-action:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.plugin-loading{animation:pulse 1s infinite;font-size:var(--text-xs)}.expand-icon,.plugin-loading{color:var(--color-text-tertiary)}.expand-icon{flex-shrink:0;font-size:var(--text-2xs);transition:transform var(--transition-base)}.expand-icon.expanded{transform:rotate(90deg)}.plugin-details{background:#0003;border-top:var(--border-thin) solid var(--color-border-subtle);font-size:var(--text-xs);padding:var(--spacing-md)}.plugin-description{color:var(--color-text-secondary);line-height:var(--leading-normal);margin-bottom:var(--spacing-sm)}.plugin-meta{display:flex;flex-wrap:wrap;gap:var(--gap-lg);margin-bottom:var(--spacing-sm)}.meta-item{color:var(--color-text-secondary)}.meta-item strong{color:var(--color-text-primary)}.plugin-deps,.plugin-services{background:#ffffff08;border-radius:var(--radius-xs);color:var(--color-text-secondary);margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.plugin-deps strong,.plugin-services strong{color:var(--color-primary-light)}.plugin-submodules{margin-top:var(--spacing-sm)}.plugin-submodules strong{color:var(--color-primary-light)}.plugin-submodules ul{list-style:none;margin:var(--spacing-sm) 0 0 0;padding:0}.plugin-submodules li{align-items:center;background:#ffffff08;border-radius:var(--radius-xs);color:var(--color-text-tertiary);display:flex;gap:var(--gap-sm);margin-bottom:var(--spacing-xs);padding:var(--spacing-sm)}.plugin-submodules li.loaded{background:#27ae601a;color:var(--color-success)}.submodule-status{flex-shrink:0;font-size:var(--text-xs)}.submodule-name{flex:1 1;font-size:var(--text-xs)}.submodule-toggle{border:none;border-radius:var(--radius-2xs);cursor:pointer;font-size:var(--text-2xs);font-weight:var(--font-medium);padding:var(--spacing-2xs) var(--spacing-sm);transition:all var(--transition-fast)}.submodule-toggle.enable{background:#27ae6026;color:var(--color-success)}.submodule-toggle.enable:hover:not(:disabled){background:var(--color-success);color:var(--color-white)}.submodule-toggle.disable{background:#ffa66626;color:var(--color-warning)}.submodule-toggle.disable:hover:not(:disabled){background:var(--color-warning);color:var(--color-white)}.submodule-toggle:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.default-badge{background:#ffffff1a;border-radius:var(--radius-2xs);color:var(--color-text-tertiary);font-size:var(--text-2xs);margin-left:var(--spacing-sm);padding:var(--spacing-2xs) var(--spacing-sm)}.plugin-error{background:var(--color-danger-alpha-low);border-radius:var(--radius-xs);margin-top:var(--spacing-sm);padding:var(--spacing-sm)}.plugin-error,.plugin-error strong{color:var(--color-danger)}.plugin-panel-content>.btn{margin-top:var(--spacing-md)}.plugin-panel-content::-webkit-scrollbar{width:6px}.plugin-panel-content::-webkit-scrollbar-track{background:#ffffff0d;border-radius:var(--radius-full)}.plugin-panel-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-full)}.plugin-panel-content::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.game-mode-toolbar{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:var(--color-white);display:flex;flex-direction:row;font-family:var(--font-sans);padding:8px;position:absolute;right:var(--spacing-lg);top:var(--spacing-lg);z-index:1000}.game-mode-toolbar .tool-button-base{align-items:center;background:#0000;border:none;border-radius:var(--radius-full);box-shadow:none;color:var(--color-text-primary);cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;font-size:var(--text-xs);font-weight:500;height:48px;justify-content:center;padding:0;text-align:center;transition:all var(--transition-base);width:48px}.game-mode-toolbar .tool-button-base:disabled{cursor:not-allowed;opacity:.5}.game-mode-toolbar .tool-button-base:hover:not(:disabled):not(.active){backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover);border:var(--glass-border);box-shadow:var(--glass-shadow);transform:scale(1.05)}.game-mode-toolbar .play-button.active{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:0 0 10px 0 #0000004d}.game-mode-toolbar .tool-button-base svg{pointer-events:none;transition:transform .3s ease}.game-mode-toolbar .tool-button-base:hover svg{transform:scale(1.1)}.game-mode-tooltip{animation:tooltipFadeIn .1s ease-out;backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);background:linear-gradient(135deg,#1e1e1efa,#141414fa);border:var(--border-thin) solid #ffffff26;border-radius:var(--radius-sm);box-shadow:var(--shadow-xl),0 0 0 1px #ffffff0d;color:var(--color-white);font-size:var(--text-sm);font-weight:500;letter-spacing:.3px;padding:var(--spacing-sm) var(--spacing-lg);pointer-events:none;position:fixed;white-space:nowrap;z-index:10000}.tooltip-arrow{border-bottom:6px solid #1e1e1efa;border-left:6px solid #0000;border-right:6px solid #0000;left:50%;top:-6px;transform:translateX(-50%)}.center-toolbar-group{bottom:var(--spacing-lg);gap:var(--spacing-sm);left:320px;left:var(--chat-panel-width,320px);margin-inline:auto;position:absolute;right:0;width:-webkit-fit-content;width:fit-content;z-index:var(--z-dropdown)}.center-toolbar-group,.toolgun-toolbar{align-items:center;display:flex;flex-direction:row}.toolgun-toolbar{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:var(--color-white);font-family:var(--font-sans);gap:8px;padding:8px}.toolgun-toolbar .tool-button-base{align-items:center;background:#0000;border:none;border-radius:var(--radius-full);box-shadow:none;color:var(--color-text-primary);cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;font-size:var(--text-xs);font-weight:500;height:56px;justify-content:center;padding:0;text-align:center;transition:all var(--transition-base);width:56px}.toolgun-toolbar .tool-button-base:disabled{cursor:not-allowed;opacity:.5}.toolgun-toolbar .tool-button-base:hover:not(:disabled):not(.active){backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover);border:var(--glass-border);box-shadow:var(--glass-shadow);transform:scale(1.05)}.toolgun-toolbar .toolgun-button.active{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:0 0 10px 0 #0000004d}.toolgun-toolbar .button-icon{height:48px;object-fit:contain;pointer-events:none;transition:transform .3s ease;width:48px}.toolgun-toolbar .tool-button-base:hover .button-icon{transform:rotate(-8deg) scale(1.1)}.toolgun-tooltip{animation:tooltipFadeIn var(--transition-fast);backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);background:linear-gradient(135deg,#1e1e1efa,#141414fa);border:var(--border-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-xl),0 0 0 1px #ffffff0d;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);letter-spacing:.3px;padding:var(--spacing-sm) var(--spacing-lg);pointer-events:none;position:fixed;transform:translateX(-50%) translateY(-100%);white-space:nowrap;z-index:var(--z-tooltip)}.toolgun-tooltip .tooltip-arrow{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid #1e1e1efa;bottom:-6px;height:0;left:50%;position:absolute;transform:translateX(-50%);width:0}.asset-card{animation:cardFadeIn var(--transition-slow) var(--ease-out) backwards;aspect-ratio:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:16px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;cursor:pointer;overflow:hidden;position:relative;transition:all var(--transition-fast)}.asset-card:hover{border-color:#ffffff1f;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff26,0 0 20px 0 #0006;transform:translateY(-3px) scale(1.02)}.asset-card.loaded{border-color:#3b82f64d}.asset-card.loaded:hover{border-color:#60a5fa99;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff26,0 0 25px 0 #3b82f666}.asset-card-thumbnail{align-items:center;background:var(--color-neutral-800);display:flex;height:100%;justify-content:center;overflow:hidden;position:relative;transition:opacity var(--transition-fast)}.asset-card:not(.loaded) .asset-card-thumbnail .fallback-icon,.asset-card:not(.loaded) .asset-card-thumbnail img{opacity:.3}.asset-card-thumbnail img{height:100%;object-fit:cover;width:100%}.asset-card-thumbnail .fallback-icon{font-size:var(--text-3xl);opacity:.5}.asset-card-download-overlay{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#3b82f633;border:1px solid #3b82f666;border-radius:50%;bottom:var(--spacing-sm);display:flex;height:40px;justify-content:center;left:var(--spacing-sm);pointer-events:none;position:absolute;width:40px}.asset-card-download-overlay svg{color:var(--color-text-primary);height:20px;opacity:.9;width:20px}.asset-card-info{padding:var(--spacing-sm) var(--spacing-md)}.asset-card-name{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--spacing-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-card-progress-overlay{background:linear-gradient(#0000,#000000b3);border-radius:0 0 var(--radius-lg) var(--radius-lg);bottom:0;left:0;padding:var(--spacing-sm);position:absolute;right:0}.asset-card-progress-text{color:var(--color-text-primary);font-size:var(--text-xs);margin-bottom:var(--spacing-xs);opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-card-progress{background:#fff3;border-radius:var(--radius-full);height:4px;overflow:hidden}.asset-card-progress-fill{animation:progress-shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,#3b82f699,#60a5facc);border-radius:var(--radius-full);height:100%;transition:width var(--transition-base)}.asset-card.loading{pointer-events:none}.asset-card.loading .asset-card-thumbnail{animation:pulse 2s ease-in-out infinite}.asset-card-badge{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#3b82f64d;border:1px solid #3b82f680;border-radius:100px;color:var(--color-white);font-size:var(--text-2xs);font-weight:var(--font-bold);letter-spacing:.5px;padding:4px var(--spacing-sm);position:absolute;right:var(--spacing-xs);text-transform:uppercase;top:var(--spacing-xs)}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.asset-card.skeleton{animation:cardFadeIn var(--transition-slow) var(--ease-out) backwards;pointer-events:none}.asset-card.skeleton .asset-card-thumbnail{background:var(--color-neutral-800);overflow:hidden;position:relative}.skeleton-shimmer{animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff14 50%,#0000);bottom:0;left:0;position:absolute;right:0;top:0}.asset-card.skeleton .asset-card-info{padding:var(--spacing-sm) var(--spacing-md)}.skeleton-text{background:var(--color-neutral-700);border-radius:var(--radius-sm);height:14px;overflow:hidden;position:relative;width:70%}.skeleton-text:after{animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0000,#ffffff14 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.asset-card.downloading{pointer-events:none}.asset-card.downloading .asset-card-thumbnail .fallback-icon,.asset-card.downloading .asset-card-thumbnail img{opacity:.4}.asset-card-downloading-overlay{align-items:center;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:#0000004d;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.downloading-spinner{animation:spin .8s linear infinite;border:3px solid #fff3;border-radius:50%;border-top-color:#60a5fa;height:32px;width:32px}.asset-card.queued{border-color:#f59e0b4d}.asset-card.queued .asset-card-thumbnail{animation:pulse-slow 3s ease-in-out infinite}.asset-card-queue-status{animation:pulse-text 2s ease-in-out infinite;color:#f59e0be6;font-size:var(--text-2xs);font-style:italic}@keyframes pulse-slow{0%,to{opacity:.8}50%{opacity:.5}}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.5}}.assets-drawer{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(0deg,#0a0a0ad9,#0f0f0fd9),linear-gradient(102deg,#ffffff0f 5.44%,#99999908 97.16%);border-left:1px solid #ffffff0d;box-shadow:-4px 0 12px #00000080;color:var(--color-text-primary);display:flex;flex-direction:column;font-family:var(--font-sans);height:100vh;opacity:0;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1),visibility .35s;visibility:hidden;width:400px;z-index:var(--z-modal)}.assets-drawer.open{opacity:1;transform:translateX(0);visibility:visible}.assets-drawer.resizing{transition:none}.assets-drawer-resize-handle{background:#0000;bottom:0;cursor:ew-resize;left:0;position:absolute;top:0;transition:background .2s;width:6px;z-index:10}.assets-drawer-resize-handle:hover{background:#fff3}.assets-drawer.resizing .assets-drawer-resize-handle{background:#fff6}.assets-drawer-header{align-items:center;background:#00000026;border-bottom:1px solid #ffffff0d;display:flex;flex-shrink:0;justify-content:space-between;padding:var(--spacing-lg)}.assets-drawer-title{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);letter-spacing:.3px}.assets-drawer-collapse-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all var(--transition-fast);width:36px}.assets-drawer-collapse-btn:hover{background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);color:var(--color-text-primary);transform:scale(1.05)}.assets-drawer-collapse-btn svg{height:16px;width:16px}.assets-drawer-search{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff14;border-radius:100px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;display:flex;gap:var(--spacing-sm);margin:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.assets-drawer-search:focus-within{border-color:#3b82f666;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 20px 0 #3b82f64d}.assets-drawer-search svg{color:var(--color-text-tertiary);flex-shrink:0}.assets-drawer-search-input{background:#0000;border:none;color:var(--color-text-primary);flex:1 1;font-family:var(--font-sans);font-size:var(--text-sm);outline:none}.assets-drawer-search-input::placeholder{color:var(--color-text-tertiary);font-family:var(--font-sans);font-size:var(--text-sm)}.assets-drawer-search-clear{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--color-text-tertiary);cursor:pointer;display:flex;justify-content:center;padding:var(--spacing-xs);transition:all var(--transition-fast)}.assets-drawer-search-clear:hover{background:#ffffff1a;color:var(--color-text-primary);transform:scale(1.1)}.assets-drawer-content{flex:1 1;overflow-y:auto;padding:var(--spacing-lg)}.assets-drawer-content::-webkit-scrollbar{width:6px}.assets-drawer-content::-webkit-scrollbar-track{background:#0000}.assets-drawer-content::-webkit-scrollbar-thumb{background:var(--color-border-medium);border-radius:var(--radius-full)}.assets-drawer-content::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.assets-grid{grid-gap:var(--gap-lg);display:grid;gap:var(--gap-lg);grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.assets-empty-state{color:var(--color-text-tertiary);font-size:var(--text-sm);grid-column:1/-1;padding:var(--spacing-3xl) var(--spacing-lg);text-align:center}.files-toolbar{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:var(--color-white);display:flex;flex-direction:row;font-family:var(--font-sans);gap:8px;padding:8px}.files-toolbar .tool-button-base{align-items:center;background:#0000;border:none;border-radius:var(--radius-full);box-shadow:none;color:var(--color-text-primary);cursor:pointer;display:flex;flex-direction:column;flex-shrink:0;font-size:var(--text-xs);font-weight:500;height:56px;justify-content:center;padding:0;text-align:center;transition:all var(--transition-base);width:56px}.files-toolbar .tool-button-base:disabled{cursor:not-allowed;opacity:.5}.files-toolbar .tool-button-base:hover:not(:disabled):not(.active){backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover);border:var(--glass-border);box-shadow:var(--glass-shadow);transform:scale(1.05)}.files-toolbar .files-button.active{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:0 0 10px 0 #0000004d}.files-toolbar .button-icon{height:48px;object-fit:contain;pointer-events:none;transition:transform .3s ease;width:48px}.files-toolbar .tool-button-base:hover .button-icon{transform:rotate(-8deg) scale(1.1)}.files-tooltip{animation:tooltipFadeIn var(--transition-fast);backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);background:linear-gradient(135deg,#1e1e1efa,#141414fa);border:var(--border-thin) solid var(--color-border-medium);border-radius:var(--radius-sm);box-shadow:var(--shadow-xl),0 0 0 1px #ffffff0d;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);letter-spacing:.3px;padding:var(--spacing-sm) var(--spacing-lg);pointer-events:none;position:fixed;transform:translateX(-50%) translateY(-100%);white-space:nowrap;z-index:var(--z-tooltip)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(calc(-100% + 5px))}to{opacity:1;transform:translateX(-50%) translateY(-100%)}}.files-tooltip .tooltip-arrow{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid #1e1e1efa;bottom:-6px;height:0;left:50%;position:absolute;transform:translateX(-50%);width:0}.files-notification{animation:slideDown .3s ease-out}.chat-panel{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(0deg,#0a0a0ad9,#0f0f0fd9),linear-gradient(102deg,#ffffff0f 5.44%,#99999908 97.16%);border-right:1px solid #ffffff0d;box-shadow:4px 0 12px #00000080;flex-shrink:0;height:100vh;left:0;position:absolute;top:0;z-index:10}.chat-panel,.chat-panel-content{display:flex;flex-direction:column}.chat-panel-content{height:100%;overflow:hidden}.chat-panel-header{align-items:center;background:#00000026;border-bottom:1px solid #ffffff0d;display:flex;flex-shrink:0;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-2xl)}.chat-panel-title{color:var(--color-text-primary);font-size:var(--text-base);font-weight:var(--font-semibold);letter-spacing:-.01em}.chat-panel-header-actions{align-items:center;display:flex;gap:var(--spacing-sm)}.chat-panel-messages{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:var(--spacing-2xl)}.chat-panel-messages,.chat-placeholder{display:flex;flex-direction:column;gap:var(--spacing-md)}.chat-placeholder{align-items:center;color:var(--color-text-tertiary);height:100%;justify-content:center}.chat-placeholder-icon{font-size:var(--text-5xl);opacity:.4}.chat-placeholder-text{font-size:var(--text-sm);font-weight:var(--font-medium)}.chat-panel-input-container{flex-shrink:0;padding:var(--spacing-xl) var(--spacing-2xl) var(--spacing-2xl)}.chat-panel-input-wrapper{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff14;border-radius:100px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;display:flex;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-lg);transition:border-color var(--transition-base),border-radius var(--transition-base)}.chat-panel-input-wrapper--multiline{align-items:flex-end;border-radius:24px}.chat-panel-input-wrapper:focus-within{border-color:#3b82f666;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 20px 0 #3b82f64d}.chat-panel-input{background:#0000;border:none;border-radius:0;color:var(--color-text-primary);flex:1 1;font-family:inherit;font-size:var(--text-base);line-height:1.5;max-height:120px;min-height:24px;outline:none;padding:var(--spacing-sm) 0;resize:none}.chat-panel-input::placeholder{color:var(--color-text-tertiary)}.chat-panel-input:disabled{cursor:not-allowed;opacity:.5}.chat-panel-input-actions{align-items:center;display:flex;gap:var(--spacing-sm)}.chat-panel-resize-handle{background:#0000;cursor:col-resize;height:100%;position:absolute;right:0;top:0;transition:background var(--transition-fast);width:6px;z-index:10}.chat-panel-resize-handle:after{background:var(--color-border-strong);border-radius:1px;content:"";height:40px;opacity:0;position:absolute;right:2px;top:50%;transform:translateY(-50%);transition:opacity var(--transition-fast);width:2px}.chat-panel-resize-handle.active:after,.chat-panel-resize-handle:hover:after{opacity:1}.chat-panel-resize-handle.active,.chat-panel-resize-handle:hover{background:#ffffff0d}.chat-panel-messages::-webkit-scrollbar{width:6px}.chat-panel-messages::-webkit-scrollbar-track{background:#0000}.chat-panel-messages::-webkit-scrollbar-thumb{background:var(--color-border-subtle);border-radius:3px}.chat-panel-messages::-webkit-scrollbar-thumb:hover{background:var(--color-border-medium)}.chat-panel--collapsed{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:100px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;height:auto;left:var(--spacing-xl);padding:var(--spacing-sm);position:absolute;top:var(--spacing-xl);width:auto;z-index:10}.chat-panel-expand-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;display:flex;height:48px;justify-content:center;transition:all var(--transition-fast);width:48px}.chat-panel-expand-btn:hover{background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);color:var(--color-text-primary);transform:scale(1.05)}.chat-message{animation:chat-message-appear .2s ease-out;display:flex;flex-direction:column}@keyframes chat-message-appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message--user{align-self:flex-end;max-width:85%}.chat-message--assistant{align-self:flex-start;max-width:100%}.chat-message--system{align-self:center;max-width:100%}.chat-message-content{word-wrap:break-word;border-radius:var(--radius-lg);font-size:var(--text-base);line-height:1.2;padding:var(--spacing-md) var(--spacing-lg);white-space:pre-line}.chat-message--user .chat-message-content{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:16px;border-bottom-right-radius:4px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:var(--color-text-primary)}.chat-message--assistant .chat-message-content{background:#0000;border:none;color:var(--color-text-primary);padding-left:0}.chat-message--assistant .chat-message-content p{margin:0}.chat-message--assistant .chat-message-content>p+p{margin-top:var(--spacing-sm)}.chat-message--assistant .chat-message-content strong{color:var(--color-text-primary);font-weight:var(--font-semibold)}.chat-message--assistant .chat-message-content ol,.chat-message--assistant .chat-message-content ul{margin:0;padding-left:var(--spacing-xl)}.chat-message--assistant .chat-message-content li{margin:0}.chat-message--assistant .chat-message-content code{background:#ffffff1a;border-radius:var(--radius-sm);font-family:monospace;font-size:.9em;padding:2px 6px}.chat-message--assistant .chat-message-content pre{background:#0000004d;border-radius:var(--radius-md);margin:var(--spacing-sm) 0;overflow-x:auto;padding:var(--spacing-md)}.chat-message--assistant .chat-message-content pre code{background:#0000;padding:0}.chat-message--system .chat-message-content{background:#0000;border:none;color:var(--color-text-tertiary);font-size:var(--text-xs);padding:var(--spacing-sm) var(--spacing-md);text-align:center}.chat-message--streaming .chat-message-content{position:relative}.chat-streaming-cursor{animation:cursor-blink .8s ease-in-out infinite;background:var(--color-text-secondary);display:inline-block;height:1em;margin-left:2px;vertical-align:text-bottom;width:2px}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.chat-status{border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-normal);margin-left:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm)}.chat-status--disconnected{background:#ef444426;color:#ef4444}.chat-error{align-items:center;background:#ef44441a;border-bottom:1px solid #ef444433;color:#ef4444;display:flex;font-size:var(--text-sm);gap:var(--spacing-md);justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl)}.chat-error-dismiss{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:inherit;cursor:pointer;display:flex;flex-shrink:0;height:24px;justify-content:center;transition:background var(--transition-fast);width:24px}.chat-error-dismiss:hover{background:#ef444433}.chat-tool-call{animation:chat-message-appear .2s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#3b82f61a;border:1px solid #3b82f640;border-radius:16px;margin:var(--spacing-sm) 0;padding:var(--spacing-md) var(--spacing-lg)}.chat-tool-call--pending{background:#fbbf241a;border-color:#fbbf2466}.chat-tool-call--success{background:#22c55e1a;border-color:#22c55e66}.chat-tool-call--error{background:#ef44441a;border-color:#ef444466}.chat-tool-call--inline{margin:var(--spacing-md) 0}.chat-message-content--segmented{display:flex;flex-direction:column;gap:0}.chat-message-tool-segment{margin:var(--spacing-xs) 0}.chat-tool-call-header{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--spacing-sm)}.chat-tool-call-icon{font-size:var(--text-base)}.chat-tool-call-name{color:var(--color-text-primary);flex:1 1;text-transform:capitalize}.chat-tool-call-status{font-size:var(--text-base)}.chat-tool-call--pending .chat-tool-call-status{animation:pulse 1s ease-in-out infinite}.chat-tool-call--success .chat-tool-call-status{color:#22c55e}.chat-tool-call--error .chat-tool-call-status{color:#ef4444}.chat-tool-call-params{margin-top:var(--spacing-sm)}.chat-tool-call-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.chat-tool-call-tag{background:#ffffff1a;border:1px solid #fff3;border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--text-xs);padding:2px var(--spacing-sm)}.chat-tool-call-tag--warning{background:#fbbf2433;border-color:#fbbf2466;color:#fbbf24}.chat-tool-call-minimap{border:1px solid #fff3;border-radius:var(--radius-md);margin-top:var(--spacing-sm);overflow:hidden}.chat-minimap-image{display:block;height:auto;image-rendering:pixelated;max-width:200px;width:100%}.chat-tool-call-generation{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm) 0}.chat-tool-call-generation-header{align-items:center;display:flex;gap:var(--spacing-sm)}.chat-tool-call-generation-icon{font-size:var(--text-lg)}.chat-tool-call-generation-type{background:#ffffff1a;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-medium);padding:2px var(--spacing-sm)}.chat-tool-call-generation-prompt{color:var(--color-text-primary);font-size:var(--text-sm);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-tool-call-generation-progress{background:#ffffff1a;border-radius:2px;height:4px;margin-top:var(--spacing-xs);overflow:hidden}.chat-tool-call-generation-progress-fill{background:linear-gradient(90deg,#3b82f699,#60a5facc);border-radius:2px;height:100%;transition:width .3s ease-out}.chat-tool-call--pending .chat-tool-call-generation-progress-fill{animation:progress-shimmer 1.5s ease-in-out infinite}@keyframes progress-shimmer{0%{background:linear-gradient(90deg,#3b82f699,#60a5facc)}50%{background:linear-gradient(90deg,#60a5facc,#93c5fde6)}to{background:linear-gradient(90deg,#3b82f699,#60a5facc)}}.chat-tool-call-generation-status{color:var(--color-text-tertiary);font-size:var(--text-xs);margin-top:var(--spacing-xs)}.chat-tool-call-generation-status--success{color:#22c55e}.chat-level-menu-container{position:relative}.chat-level-menu{animation:menu-appear .15s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:20px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 20px 0 #0006;margin-top:var(--spacing-sm);max-height:400px;overflow:hidden;position:absolute;right:0;top:100%;width:280px;z-index:100}@keyframes menu-appear{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.chat-level-menu-header{border-bottom:1px solid var(--color-border-subtle);color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.05em;padding:var(--spacing-md) var(--spacing-lg);text-transform:uppercase}.chat-level-menu-empty,.chat-level-menu-loading{color:var(--color-text-tertiary);font-size:var(--text-sm);padding:var(--spacing-xl) var(--spacing-lg);text-align:center}.chat-level-menu-list{max-height:320px;overflow-y:auto}.chat-level-menu-item{align-items:center;border-bottom:1px solid #ffffff0d;cursor:pointer;display:flex;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);transition:background var(--transition-fast)}.chat-level-menu-item:hover{background:#ffffff0d}.chat-level-menu-item:last-child{border-bottom:none}.chat-level-menu-item-info{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.chat-level-menu-item-name{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--font-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-level-menu-item-date{color:var(--color-text-tertiary);font-size:var(--text-xs)}.chat-level-menu-item-delete{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-left:var(--spacing-sm);transition:all var(--transition-fast);width:28px}.chat-level-menu-item-delete:hover{background:#ef444433;color:#ef4444}.chat-save-toast{animation:toast-appear .2s ease-out;background:#22c55e26;border-bottom:1px solid #22c55e4d;color:#22c55e;font-size:var(--text-sm);padding:var(--spacing-sm) var(--spacing-lg);text-align:center}.chat-save-toast--error{background:#ef444426;border-color:#ef44444d;color:#ef4444}@keyframes toast-appear{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chat-spin{animation:spin 1s linear infinite}.icon-btn.saving-pulse{animation:savingPulse 1.5s ease-in-out infinite}@keyframes savingPulse{0%,to{background:#4ade801a;box-shadow:0 0 0 0 #4ade8066}50%{background:#4ade8033;box-shadow:0 0 8px 2px #4ade804d}}.minimap-container{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#141414f2;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 8px 32px #0009;overflow:hidden;position:fixed;right:16px;top:16px;z-index:1000}.minimap-canvas{border-radius:12px;display:block;height:100%;image-rendering:pixelated;width:100%}.minimap-player-indicator{left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3}.player-dot{animation:pulse 1.5s ease-in-out infinite;background:#0f0;border:2px solid #fff;border-radius:50%;box-shadow:0 0 8px #0f0c;height:8px;width:8px}.minimap-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:2}.minimap-info{background:#000000b3;border-radius:6px;bottom:8px;color:#fff;font-family:Courier New,monospace;font-size:10px;left:8px;line-height:1.4;padding:6px;position:absolute;right:8px}.info-row{display:flex;gap:8px;justify-content:space-between;margin-bottom:2px}.info-row:last-child{margin-bottom:0}.info-label{color:#aaa;font-weight:700}.info-value{color:#fff;text-align:right}.biome-name{color:#90ee90;text-transform:capitalize}.minimap-compass{align-items:center;background:#000000b3;border:2px solid #ffffff4d;border-radius:50%;display:flex;height:32px;justify-content:center;position:absolute;right:8px;top:8px;width:32px}.compass-direction{color:#fff;font-family:Courier New,monospace;font-size:12px;font-weight:700;text-shadow:0 0 4px #000c}.minimap-help{background:#000000b3;border-radius:4px;color:#aaa;font-family:Segoe UI,sans-serif;font-size:9px;left:8px;opacity:.6;padding:4px 6px;position:absolute;top:8px;transition:opacity .2s}.minimap-container:hover .minimap-help{opacity:1}@media (max-width:768px){.minimap-container{height:150px!important;right:10px;top:10px;width:150px!important}.minimap-info{font-size:9px;padding:4px}.compass-direction{font-size:10px}}.ai-terrain-generator{box-sizing:border-box;color:#fff}.generator-header{border-bottom:1px solid #ffffff1a;padding:32px}.generator-header h2{color:#fff;font-size:20px;font-weight:600}.provider-info-fixed{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:2px solid #c4b5fd;border-radius:8px;color:#5b21b6;font-size:14px;margin-top:16px;padding:12px 16px;text-align:center}.prompt-section{display:flex;flex-direction:column;gap:24px;padding:32px}.prompt-input textarea{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;color:#fff;font-family:inherit;font-size:16px;outline:2px solid #0000;padding:12px;resize:vertical;transition:border-color .2s;width:100%}.prompt-input textarea:focus{outline:2px solid #3b82f6}.example-prompts h4{color:#34495e;font-size:14px;margin-bottom:10px}.example-grid{display:flex;flex-direction:row;gap:8px;width:100%}.example-button{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:150px;color:#fff;cursor:pointer;flex-grow:1;font-size:14px;max-width:100ch;overflow:hidden;padding:8px 16px;text-overflow:ellipsis;white-space:nowrap}.example-button:hover:not(:disabled){background:#ffffff1a}.action-buttons{display:flex;justify-content:space-between;padding:32px;width:100%}.export-button{background:#27ae60;border:none;border-radius:8px;box-shadow:0 2px 8px #27ae604d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 16px;transition:all .2s}.export-button:hover:not(:disabled){background:#229954}.progress-section{color:#fff;gap:16px;padding:16px}.progress-info,.progress-section{display:flex;flex-direction:column}.progress-info{gap:8px}.progress-info h4{font-size:18px;font-weight:500}.progress-stage{color:#ffffff80;font-size:14px}.progress-bar{background:#ffffff0a;border-radius:4px;height:8px;margin-bottom:8px}.progress-fill{background:linear-gradient(90deg,#3b82f6,#205bba)}.progress-percentage{color:#ffffff80;font-size:12px;text-align:center}.generation-summary{background:#d4edda;border-left:4px solid #28a745;border-radius:8px;margin-top:20px;padding:15px}.generation-summary h4{color:#155724;margin-bottom:10px}.summary-details{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:10px}.summary-details>div{color:#155724;font-size:14px}.warnings{margin-top:10px}.warnings h5{color:#721c24;font-size:14px;margin-bottom:5px}.warnings ul{margin:0;padding-left:20px}.warnings li{color:#721c24;font-size:13px;margin-bottom:2px}.context-result{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;margin:10px 0;overflow-x:auto;padding:12px}.context-result pre{word-wrap:break-word;color:#212529;font-family:Monaco,Consolas,monospace;font-size:12px;margin:0;white-space:pre-wrap}.view-image-btn{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:12px;margin-top:8px;padding:6px 12px;transition:background .2s}.view-image-btn:hover{background:#2980b9}.captured-terrain-image{border:2px solid #e1e8ed;border-radius:4px;display:block;height:auto;margin-top:12px;max-width:100%}.terrain-configuration{border-bottom:1px solid #ffffff1a;padding:32px}.terrain-configuration h4{color:#fff;font-size:18px;font-weight:600;margin-bottom:8px}.terrain-configuration p{color:#ffffff80;font-size:14px;margin-bottom:20px}.config-row{display:flex;gap:32px}.config-group{display:flex;flex:1 1;flex-direction:column;gap:12px}.config-label{color:#fffc;font-size:14px;font-weight:500}.size-options{display:flex;gap:12px}.size-option{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;color:#fffc;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:16px;position:relative;transition:all .2s ease}.size-option:hover:not(:disabled){background:#ffffff14;border-color:#fff3}.size-option.selected{background:#3b82f626;border-color:#3b82f6;color:#3b82f6}.size-option:disabled{cursor:not-allowed;opacity:.5}.size-checkmark{align-items:center;background:#3b82f6;border-radius:50%;display:flex;height:20px;justify-content:center;position:absolute;right:6px;top:6px;width:20px}.size-checkmark img{height:12px;width:12px}.agent-selection{border-bottom:1px solid #ffffff1a;padding:32px}.agent-selection h4{color:#fff;font-size:18px;font-weight:600;margin-bottom:8px}.agent-selection p{color:#ffffff80;font-size:14px;margin-bottom:20px}.agent-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr)}.agent-option{cursor:pointer;display:flex;flex-direction:column;gap:8px;position:relative;transition:all .2s ease}.agent-option.selected .agent-icon{outline:2px solid #3b82f6}.agent-option.disabled{cursor:not-allowed;opacity:.6}.agent-icon{aspect-ratio:3/2;border:1px solid #ffffff1a;border-radius:12px;object-fit:contain;padding:24px 16px;width:100%}.agent-checkmark{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:700;height:24px;justify-content:center;position:absolute;right:8px;top:8px;width:24px}.agent-name{color:#fff;font-size:16px}.agent-desc{color:#ffffff80;font-size:14px;margin-top:-4px}.agent-info-footer,.agent-status{display:none}.step-mode-toggle{background:#f0f4f8;border:1px solid #d1dae3;border-radius:8px;margin:15px 0;padding:12px}.toggle-label{align-items:center;color:#2c3e50;cursor:pointer;display:flex;font-weight:600}.toggle-label input[type=checkbox]{cursor:pointer;margin-right:8px}.toggle-info{color:#6c757d;font-size:12px;margin:5px 0 0 24px}.step-info{grid-gap:10px;background:#f8f9fa;border-radius:6px;display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-bottom:20px;padding:12px}.step-info p{color:#495057;font-size:13px;margin:0}.step-data-section{margin-bottom:20px}.step-data-section h4{color:#2c3e50;font-size:15px;margin-bottom:8px}.step-data-pre{border:1px solid #dee2e6;border-radius:6px;max-height:150px;overflow-x:auto;overflow-y:auto}.step-data-edit,.step-data-pre{background:#f8f9fa;font-size:12px;padding:12px}.step-data-edit{border:2px solid #dee2e6;border-radius:6px;font-family:Monaco,Consolas,monospace;resize:vertical;transition:border-color .2s;width:100%}.step-data-edit:focus{background:#fff;border-color:#3498db;outline:none}.agent-logs-section{background:#f8f9fa;border:1px solid #e1e8ed;border-radius:8px;margin-top:20px;padding:20px}.agent-logs-section h3{color:#2c3e50;font-size:18px;margin-bottom:16px}.agent-log-item{background:#fff;border:1px solid #dee2e6;border-radius:6px;margin-bottom:12px;padding:12px}.agent-log-header{color:#495057;cursor:pointer;font-size:16px;padding:4px 0;-webkit-user-select:none;user-select:none}.agent-log-header:hover{color:#007bff}.agent-log-content{border-top:1px solid #e9ecef;margin-top:12px;padding-top:12px}.log-section{margin-bottom:16px}.log-section h4{color:#6c757d;font-size:14px;margin-bottom:8px}.log-text{word-wrap:break-word;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;font-family:Courier New,monospace;font-size:12px;line-height:1.5;max-height:400px;overflow-y:auto;padding:12px;white-space:pre-wrap}.log-text::-webkit-scrollbar{width:8px}.log-text::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.log-text::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.log-text::-webkit-scrollbar-thumb:hover{background:#555}.ai-generator-error{background:#ff44441a;border:var(--border-thin) solid #ff44444d;border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--text-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg)}.ai-model-generator{background:#fffffff2;border-radius:8px;box-shadow:0 4px 12px #00000026;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;max-width:500px;padding:20px}.panel-header{border-bottom:2px solid #e0e0e0;margin-bottom:20px;padding-bottom:15px}.panel-header h3{color:#333;font-size:20px;margin:0 0 5px}.panel-subtitle{color:#666;font-size:14px;margin:0}.mode-selector{display:flex;gap:10px;margin-bottom:20px}.mode-button{background:#fff;border:2px solid #ddd;border-radius:6px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:10px 15px;transition:all .2s}.mode-button:hover:not(:disabled){background:#f0f9f0;border-color:#4caf50}.mode-button.active{background:#4caf50;border-color:#4caf50;color:#fff}.mode-button:disabled{cursor:not-allowed;opacity:.5}.input-section{margin-bottom:20px}.input-section label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.input-section textarea{border:2px solid #ddd;border-radius:6px;font-family:inherit;font-size:14px;padding:12px;resize:vertical;transition:border-color .2s;width:100%}.input-section textarea:focus{border-color:#4caf50;outline:none}.input-section textarea:disabled{background:#f5f5f5;cursor:not-allowed}.input-section input[type=file]{border:2px dashed #ddd;border-radius:6px;cursor:pointer;font-size:14px;padding:10px;width:100%}.file-preview{background:#f0f9f0;border-radius:6px;font-size:14px;margin-top:10px;padding:10px}.generate-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 12px #667eea66;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 20px;transition:transform .2s,box-shadow .2s;width:100%}.generate-button:hover:not(:disabled){box-shadow:0 6px 16px #667eea80;transform:translateY(-2px)}.generate-button:active:not(:disabled){transform:translateY(0)}.generate-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.progress-section{margin-bottom:20px;margin-top:20px}.progress-bar{background:#e0e0e0;border-radius:12px;height:24px;overflow:hidden;position:relative;width:100%}.progress-fill{background:linear-gradient(90deg,#4caf50,#8bc34a);border-radius:12px;height:100%;transition:width .3s ease}.progress-text{color:#4caf50;font-size:14px;font-weight:600;margin-top:8px;text-align:center}.status-message{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:4px;color:#1565c0;font-size:14px;margin-top:15px;padding:12px 16px}.status-message.error{background:#ffebee;border-left-color:#f44336;color:#c62828}.model-actions{display:flex;gap:10px;margin-top:20px}.action-button{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s}.action-button.remove{background:#ff5252;color:#fff}.action-button.remove:hover{background:#ff1744}.action-button.clear-all{background:#ff9800;color:#fff}.action-button.clear-all:hover{background:#f57c00}.model-info{background:#f5f5f5;border-radius:6px;margin-top:20px;padding:15px}.model-info p{color:#333;font-size:14px;margin:0 0 10px}.models-toolbar{background:#f5f5f5;border-radius:6px;margin-top:20px;padding:15px}.models-toolbar h4{color:#333;font-size:14px;margin:0 0 15px}.models-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-bottom:15px}.model-card{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;padding:8px;position:relative;transition:all .2s}.model-card:hover{border-color:#667eea;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.model-card.selected{background:#f0f4ff;border-color:#667eea;box-shadow:0 0 0 2px #667eea}.model-preview{object-fit:cover}.model-preview,.model-preview-placeholder{background:#e0e0e0;border-radius:4px;height:100px;width:100%}.model-preview-placeholder{align-items:center;display:flex;font-size:32px;justify-content:center}.model-info-card{align-items:center;display:flex;justify-content:space-between;margin-top:8px}.model-prompt{color:#333;flex:1 1;font-size:12px;margin:0 5px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-remove-btn{background:none;border:none;cursor:pointer;font-size:14px;opacity:.6;padding:2px;transition:opacity .2s}.model-remove-btn:hover{opacity:1}.placed-models-info{border-top:1px solid #ddd;padding-top:10px}.placed-models-info p{color:#666;font-size:13px;margin:0 0 10px}.action-buttons-row{align-items:center;display:flex;gap:8px}.hitbox-toggle-btn{background:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;flex:1 1;font-size:12px;padding:6px 12px;transition:all .2s}.hitbox-toggle-btn:hover{background:#1976d2}.hitbox-toggle-btn.active{background:#4caf50;box-shadow:0 0 8px #4caf5080}.clear-all-btn{background:#ff9800;border:none;flex:1 1;font-size:12px;padding:6px 12px;transition:background .2s}.clear-all-btn:hover{background:#f57c00}.tips-section{background:#fff3e0;border-left:4px solid #ff9800;border-radius:6px;margin-top:20px;padding:15px}.tips-section h4{color:#e65100;font-size:14px;margin:0 0 10px}.tips-section ul{margin:0;padding-left:20px}.tips-section li{color:#666;font-size:13px;margin-bottom:5px}.npc-options{background:#f0f9ff;border:2px solid #bfdbfe;border-radius:6px;margin:15px 0;padding:12px}.npc-checkbox{align-items:center;color:#333;cursor:pointer;display:flex;font-size:14px;font-weight:500}.npc-checkbox input[type=checkbox]{cursor:pointer;height:18px;margin-right:8px;width:18px}.npc-checkbox span{-webkit-user-select:none;user-select:none}.npc-info{background:#ffffffb3;border-radius:4px;margin-top:8px;padding:8px}.npc-info small{color:#1e40af;font-size:12px;font-style:italic}.quick-ai-input{align-items:center;bottom:20px;display:flex;flex-direction:column;gap:10px;left:calc(50% + 160px);left:calc(50% + var(--chat-panel-width, 320px)/2);max-width:600px;position:fixed;transform:translateX(-50%);width:calc(100% - 40px);z-index:1000}.quick-models-gallery{backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay),var(--glass-bg-gradient);border:var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--glass-shadow);display:flex;flex-direction:column;gap:8px;max-width:100%;padding:8px}.gallery-header{align-items:center;background:#0000004d;border-radius:6px;display:flex;justify-content:space-between;margin-bottom:4px;padding:6px 8px}.gallery-title{color:#ffffffe6;font-size:12px;font-weight:600;letter-spacing:.5px}.clear-all-btn{align-items:center;background:#dc3545b3;border:1px solid #dc354566;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:11px;font-weight:600;gap:4px;padding:4px 10px;transition:all .2s}.clear-all-btn:hover{background:#dc3545;border-color:#dc3545;box-shadow:0 2px 8px #dc354566;transform:translateY(-1px)}.clear-all-btn:active{transform:translateY(0)}.gallery-models-container{display:flex;gap:6px;overflow-x:auto;scrollbar-color:#ffffff4d #0000;scrollbar-width:thin}.gallery-models-container::-webkit-scrollbar{height:6px}.gallery-models-container::-webkit-scrollbar-track{background:#0000}.gallery-models-container::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.gallery-models-container::-webkit-scrollbar-thumb:hover{background:#ffffff80}.quick-model-card{border:1px solid #0000;border-radius:6px;cursor:grab;flex-shrink:0;height:50px;overflow:hidden;position:relative;transition:all .2s ease;width:50px}.quick-model-card:active{cursor:grabbing}.quick-model-card:hover{border-color:#fffc;transform:scale(1.05)}.quick-model-card.dragging{cursor:grabbing;opacity:.5;transform:scale(.95)}.quick-model-card.loading{animation:pulse 2s ease-in-out infinite;border-color:#ffffff80;cursor:default}.quick-model-card.loading:hover{transform:none}.quick-model-preview{background:#1a1a1a;height:100%;object-fit:cover;width:100%}.quick-model-preview-placeholder{background:#1a1a1a;font-size:20px;height:100%;width:100%}.quick-model-preview-placeholder,.quick-model-remove{align-items:center;display:flex;justify-content:center}.quick-model-remove{background:#f00c;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:12px;height:16px;line-height:1;opacity:0;position:absolute;right:2px;top:2px;transition:opacity .2s;width:16px}.quick-model-card:hover .quick-model-remove{opacity:1}.quick-model-remove:hover{background:red;transform:scale(1.1)}.npc-badge{border-radius:3px;box-shadow:0 1px 2px #0000004d;color:var(--color-black);font-size:10px;left:2px;padding:1px 3px;pointer-events:none;position:absolute;top:2px;z-index:2}.npc-badge,.npc-badge.tripo3d,.npc-badge.uthana{background:#ffffffe6}.quick-input-bar{align-items:center;backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay),var(--glass-bg-gradient);border:var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--glass-shadow);display:flex;gap:8px;padding:8px;width:100%}.quick-mode-toggle{align-items:center;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;transition:all .2s;width:36px}.quick-mode-toggle:hover:not(:disabled){background:#fff3;transform:scale(1.05)}.quick-mode-toggle.active{background:#fff3;border:1px solid #ffffff80}.quick-mode-toggle:disabled{cursor:not-allowed;opacity:.5}.quick-image-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;transition:all var(--transition-base);width:36px}.quick-image-btn:hover:not(:disabled){backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover);border:var(--glass-border);box-shadow:var(--glass-shadow);transform:scale(1.05)}.quick-image-btn:disabled{cursor:not-allowed;opacity:.5}.quick-npc-toggle{align-items:center;background:#ffffff1a;border:2px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:36px;justify-content:center;transition:all .2s;width:36px}.quick-npc-toggle:hover{background:#fff3;transform:scale(1.05)}.quick-npc-toggle.active{background:#fff3;border-color:#fffc;box-shadow:0 0 12px #fff3}.quick-npc-toggle.active:hover{background:#ffffff4d}.quick-input-field{background:#0000;border:none;color:#fff;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;outline:none;padding:8px 12px}.quick-input-field::placeholder{color:#ffffff80}.quick-input-field:disabled{cursor:not-allowed;opacity:.5}.quick-model-type-select{background:#0000;border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;flex-shrink:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:13px;font-weight:500;height:36px;outline:none;padding:0 10px;transition:all var(--transition-base)}.quick-model-type-select:hover{background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover)}.quick-model-type-select:focus,.quick-model-type-select:hover{backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);border:var(--glass-border);box-shadow:var(--glass-shadow)}.quick-model-type-select:focus{background:var(--glass-bg-overlay),var(--glass-bg-gradient)}.quick-model-type-select option{background:#1a1a1a;color:#fff;padding:8px}.quick-animation-provider-select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:13px;font-weight:500;height:36px;outline:none;padding:0 10px;transition:all .2s}.quick-animation-provider-select:hover{background:#ffffff26;border-color:#fff6}.quick-animation-provider-select:focus{border-color:#fffc;box-shadow:0 0 0 2px #ffffff1a}.quick-animation-provider-select option{background:#1a1a1a;color:#fff;padding:8px}.quick-animation-prompt{background:#ffffff0d;border:1px solid #fff3;border-radius:8px;color:#fff;flex:0.8 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;outline:none;padding:8px 12px;transition:all .2s}.quick-animation-prompt::placeholder{color:#fff6}.quick-animation-prompt:focus{background:#ffffff1a;border-color:#fff9;box-shadow:0 0 0 2px #ffffff1a}.quick-animation-prompt:disabled{cursor:not-allowed;opacity:.5}.quick-send-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;transition:all var(--transition-base);width:36px}.quick-send-btn:hover:not(:disabled){backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover);border:var(--glass-border);box-shadow:var(--glass-shadow);transform:scale(1.05)}.quick-send-btn:active:not(:disabled){transform:scale(.98)}.quick-send-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.quick-status{animation:slideUp .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:20px;color:#fff;font-size:13px;font-weight:500;padding:8px 16px}.quick-status.error{background:#f44336e6}.quick-status-message{animation:slideUp .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d9;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 2px 10px #0000004d;color:#fff;font-size:13px;font-weight:500;max-width:100%;padding:8px 16px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #ffffff1a;border-radius:50%;border-top-color:#fff;height:24px;width:24px}.loading-progress{background:#0000004d;bottom:0;height:3px;left:0;position:absolute;width:100%}.loading-progress-bar{background:#fffc;height:100%;transition:width .3s ease}@media (max-width:768px){.quick-ai-input{bottom:10px;width:calc(100% - 20px)}.quick-models-gallery{padding:6px 8px}.quick-model-card{height:45px;width:45px}.quick-input-bar{padding:8px 12px}.quick-input-field{font-size:14px}}.spatial-command-panel{align-items:center;display:flex;flex-direction:column;gap:8px;left:50%;max-width:600px;position:fixed;top:70px;transform:translateX(-50%);width:calc(100% - 40px);z-index:1000}.spatial-input-bar{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#000000bf;border:1px solid #64c8ff4d;border-radius:10px;box-shadow:0 4px 20px #0006;display:flex;gap:8px;padding:10px 15px;width:100%}.spatial-icon{flex-shrink:0;font-size:22px}.spatial-input-field{background:#0000;border:none;color:#fff;flex:1 1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:14px;outline:none;padding:8px 12px}.spatial-input-field::placeholder{color:#ffffff80}.spatial-input-field:disabled{cursor:not-allowed;opacity:.6}.spatial-execute-btn{align-items:center;background:#64c8ff33;border:1px solid #64c8ff66;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:36px;justify-content:center;transition:all .2s;width:36px}.spatial-execute-btn:hover:not(:disabled){background:#64c8ff4d;box-shadow:0 0 12px #64c8ff80;transform:scale(1.05)}.spatial-execute-btn:active:not(:disabled){transform:scale(1)}.spatial-execute-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.spatial-status{animation:slideDown .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#2196f3e6;border-radius:8px;color:#fff;font-size:13px;font-weight:500;line-height:1.5;max-width:100%;padding:10px 16px;text-align:center;white-space:pre-wrap}.spatial-status.error{background:#f44336e6}.spatial-help{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000b3;border:1px solid #ffffff1a;border-radius:6px;color:#ffffffb3;font-size:11px;padding:6px 12px;text-align:center}.spatial-help strong{color:#64c8ff;font-weight:600}@media (max-width:768px){.spatial-command-panel{top:60px;width:calc(100% - 20px)}.spatial-input-bar{padding:8px 12px}.spatial-input-field{font-size:13px}.spatial-help{font-size:10px}}.terrain-generation-modal{max-width:500px}.terrain-generation__header{text-align:center;width:100%}.terrain-generation__title{color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:var(--font-semibold);margin:0 0 var(--spacing-xs)}.terrain-generation__subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.terrain-generation__stages{display:flex;flex-direction:column;gap:var(--gap-lg);width:100%}.terrain-generation__stage{align-items:center;background:var(--color-surface-card-background);border:var(--border-thin) solid var(--color-border-subtle);border-radius:var(--radius-md);display:flex;gap:var(--gap-lg);padding:var(--spacing-md) var(--spacing-lg);transition:all var(--transition-slow)}.terrain-generation__stage--pending{opacity:var(--opacity-disabled)}.terrain-generation__stage--active{background:var(--color-primary-alpha-low);border-color:var(--color-primary-alpha-medium)}.terrain-generation__stage--completed{background:#22c55e1a;border-color:#22c55e33}.terrain-generation__stage-icon{font-size:var(--text-xl)}.terrain-generation__stage-label{color:var(--color-text-primary);flex:1 1;font-size:var(--text-sm)}.terrain-generation__stage-check{color:var(--color-success);font-weight:var(--font-bold)}.terrain-generation__stage-spinner{animation:terrain-generation-spin .8s linear infinite;border:var(--border-medium) solid var(--color-primary-alpha-low);border-radius:var(--radius-full);border-top-color:var(--color-primary);height:16px;width:16px}@keyframes terrain-generation-spin{to{transform:rotate(1turn)}}.terrain-generation__progress{align-items:center;display:flex;gap:var(--gap-xl);margin-top:var(--spacing-lg);width:100%}.terrain-generation__progress-track{background:var(--color-border-subtle);border-radius:var(--radius-sm);flex:1 1;height:8px;overflow:hidden}.terrain-generation__progress-fill{background:linear-gradient(90deg,var(--color-primary),var(--color-magic));border-radius:var(--radius-sm);height:100%;transition:width var(--transition-slow)}.terrain-generation__progress-text{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--font-semibold);min-width:3rem;text-align:right}.character-sheet-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;padding:32px}.character-sheet-title{color:#fff;font-size:20px;font-weight:600;margin:0}.character-sheet-close{align-items:center;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:36px;justify-content:center;line-height:1;transition:all .15s ease;width:36px}.character-sheet-close:hover{background:#ef444433;border-color:#ef4444;color:#ef4444}.character-sheet-content{display:flex;gap:32px;padding:32px}.character-sheet-preview{align-items:center;display:flex;flex:0 0 400px;flex-direction:column;gap:16px}.preview-canvas{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;height:400px;width:400px}.rotation-controls{gap:12px;padding:8px 16px}.rotation-btn,.rotation-controls{align-items:center;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;display:flex}.rotation-btn{color:#fff;cursor:pointer;font-size:18px;height:32px;justify-content:center;transition:all .15s ease;width:32px}.rotation-btn:hover{background:#ffffff14}.rotation-label{color:#fff9;font-size:12px;letter-spacing:1px;text-transform:uppercase}.character-sheet-info{display:flex;flex:1 1;flex-direction:column;gap:24px}.npc-header{border-bottom:1px solid #ffffff1a;padding-bottom:12px}.npc-sheet-name{color:#fff;font-size:18px;font-weight:600;margin:0}.stat-label{align-items:center;display:flex;gap:8px;margin-bottom:8px}.stat-icon{font-size:20px}.stat-text{color:#fff;font-size:16px;font-weight:500}.health-bar-container{background:#0000004d;border:1px solid #ffffff1a;border-radius:10px;height:20px;margin-bottom:8px;overflow:hidden;width:100%}.health-bar{border-radius:10px;height:100%;transition:width .3s ease}.health-percent{color:#fff9;font-size:14px;text-align:right}.animations-section{display:flex;flex:1 1;flex-direction:column;gap:12px}.section-title{border-bottom:1px solid #ffffff1a;color:#fff;font-size:14px;font-weight:600;letter-spacing:1px;margin:0;padding-bottom:8px;text-transform:uppercase}.animations-list{display:flex;flex-direction:column;gap:8px}.animation-btn{align-items:center;background:#0000;border:1px solid #ffffff1a;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:400;gap:12px;justify-content:flex-start;padding:12px 16px;position:relative;transition:all .2s ease}.animation-btn:hover:not(.disabled){background:#ffffff0a}.animation-btn.active{background:#0000;border-color:#ffffff1a;color:#fff;outline:2px solid #3b82f6}.animation-btn.disabled{cursor:not-allowed;opacity:.4}.animation-label{flex:1 1;text-align:left}.animation-active-indicator{align-items:center;background:#3b82f6;border-radius:50%;display:flex;height:24px;justify-content:center;position:absolute;right:8px;top:8px;width:24px}.animation-active-indicator img{filter:brightness(0) invert(1);height:16px;width:16px}@media (max-width:1024px){.character-sheet-content{flex-direction:column}.character-sheet-preview{flex:0 0 auto}.preview-canvas{aspect-ratio:1;height:auto;max-width:400px;width:100%}}.npc-radial-menu{animation:radialMenuFadeIn .2s ease-out;pointer-events:all;position:fixed;-webkit-user-select:none;user-select:none;z-index:99999}@keyframes radialMenuFadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.radial-menu-center{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d;border:1px solid #ffffff1a;border-radius:50%;box-shadow:0 4px 20px #0000004d;display:flex;height:100px;justify-content:center;left:0;margin-left:-50px;margin-top:-50px;position:absolute;top:0;width:100px}.npc-name{word-wrap:break-word;font-weight:600;max-width:70px;padding:5px}.npc-name,.rename-input{color:#fff;font-size:12px;text-align:center}.rename-input{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:4px;height:30px;outline:none;padding:4px;width:70px}.rename-input:focus{border-color:#667eeacc;box-shadow:0 0 0 2px #667eea33}.radial-menu-option{align-items:center;animation:radialOptionPop .3s ease-out backwards;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);background:#0000004d;border:1px solid #ffffff1a;border-radius:22px;box-shadow:0 4px 15px #00000080;cursor:pointer;display:flex;flex-direction:row;gap:8px;height:44px;justify-content:center;left:0;margin-left:-50px;margin-top:-22px;min-width:100px;padding:0 16px;position:absolute;top:0;transition:all .2s ease}@keyframes radialOptionPop{0%{opacity:0;transform:translate(0) scale(0)}to{opacity:1;transform:var(--option-transform) scale(1)}}.radial-menu-option:hover{background:#3073df;transform:var(--option-transform) scale(1.15)}.option-icon{align-items:center;display:flex;font-size:20px;justify-content:center;line-height:1}.option-icon img{filter:brightness(0) invert(1);height:20px;width:20px}.option-label{color:#fff;font-size:12px;font-weight:600;letter-spacing:.3px;text-transform:capitalize;white-space:nowrap}.behavior-submenu{animation:submenuSlideIn .2s ease-out;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#000000e6;border:2px solid #667eea99;border-radius:12px;box-shadow:0 8px 30px #00000080;left:180px;min-width:150px;padding:15px;position:absolute;top:0;transform:translateY(-50%)}@keyframes submenuSlideIn{0%{opacity:0;transform:translateY(-50%) translateX(-20px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}.submenu-title{border-bottom:1px solid #ffffff1a;color:#ffffffb3;font-size:11px;font-weight:600;letter-spacing:1px;margin-bottom:10px;padding-bottom:8px;text-transform:uppercase}.behavior-option{background:#ffffff0d;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin:5px 0;padding:10px 12px;transition:all .2s ease}.behavior-option:hover{background:#667eea99;transform:translateX(5px)}.behavior-option.active{background:#667eeacc;border-left:3px solid #667eea}.spawner-submenu{animation:submenuSlideIn .2s ease-out;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#000000e6;border:2px solid #60a5fa99;border-radius:12px;box-shadow:0 8px 30px #00000080;left:180px;min-width:180px;padding:15px;position:absolute;top:0;transform:translateY(-50%)}.spawner-option{align-items:center;background:#ffffff0d;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;margin:5px 0;padding:10px 12px;transition:all .2s ease}.spawner-option:hover{background:#60a5fa99;transform:translateX(5px)}.spawner-option.enable:hover{background:#10b98199}.spawner-option.disable:hover{background:#ef444499}.delete-confirm{animation:confirmPulse .3s ease-out;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#8b0000f2;border:2px solid #ff4545cc;border-radius:12px;box-shadow:0 8px 30px #00000080;left:-180px;min-width:200px;padding:20px;position:absolute;top:0;transform:translateY(-50%)}@keyframes confirmPulse{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.05)}}.confirm-text{color:#fff;font-size:14px;font-weight:600;margin-bottom:15px;text-align:center}.confirm-buttons{display:flex;gap:10px;justify-content:center}.confirm-no,.confirm-yes{border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.5px;padding:8px 20px;text-transform:uppercase;transition:all .2s ease}.confirm-yes{background:#ff4545cc;color:#fff}.confirm-yes:hover{background:#ff4545;transform:scale(1.05)}.confirm-no{background:#fff3;color:#fff}.confirm-no:hover{background:#ffffff4d;transform:scale(1.05)}@media (max-width:768px){.radial-menu-option{height:40px;min-width:90px;padding:0 12px}.option-icon{font-size:18px}.option-label{font-size:10px}.behavior-submenu,.delete-confirm{min-width:120px;padding:12px}}.save-notification-container{display:flex;flex-direction:column;gap:var(--spacing-sm);pointer-events:none;position:fixed;right:var(--spacing-lg);top:var(--spacing-lg);z-index:var(--z-tooltip)}.save-notification{align-items:center;animation:slideIn .25s var(--ease-out);backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay);border:var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);color:var(--color-text-primary);cursor:pointer;display:flex;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--spacing-sm);max-width:320px;padding:var(--spacing-md) var(--spacing-lg);pointer-events:auto;transition:transform var(--transition-fast),opacity var(--transition-fast)}.save-notification:hover{background:var(--glass-bg-overlay-hover);transform:translateX(-4px)}.save-notification:before{border-radius:var(--radius-lg) 0 0 var(--radius-lg);bottom:0;content:"";left:0;position:absolute;top:0;width:3px}.save-notification{padding-left:calc(var(--spacing-lg) + 6px);position:relative}.save-notification--saving:before{background:var(--color-primary)}.save-notification--success:before{background:var(--color-success)}.save-notification--error:before{background:var(--color-danger)}.save-notification--retrying:before,.save-notification--warning:before{background:var(--color-warning)}.save-notification__icon{align-items:center;border-radius:var(--radius-full);display:flex;flex-shrink:0;font-size:var(--text-xs);height:20px;justify-content:center;width:20px}.save-notification--saving .save-notification__icon{animation:pulse 1.5s ease-in-out infinite;background:#3b82f633;color:var(--color-primary-light)}.save-notification--success .save-notification__icon{background:#27ae6033;color:var(--color-success)}.save-notification--error .save-notification__icon{background:#ef444433;color:var(--color-danger)}.save-notification--retrying .save-notification__icon,.save-notification--warning .save-notification__icon{background:#ffa66633;color:var(--color-warning)}.save-notification--retrying .save-notification__icon{animation:spin 1s linear infinite}.save-notification__content{display:flex;flex:1 1;flex-direction:column;gap:var(--spacing-2xs);min-width:0}.save-notification__message{line-height:var(--leading-snug);word-break:break-word}.save-notification__hint{color:var(--color-text-secondary);font-size:var(--text-xs)}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.tooltip{animation:tooltipFadeIn .1s ease-out;backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);background:linear-gradient(135deg,#1e1e1efa,#141414fa);border:var(--border-thin) solid #ffffff26;border-radius:var(--radius-sm);box-shadow:var(--shadow-xl),0 0 0 1px #ffffff0d;color:var(--color-white);font-size:var(--text-sm);font-weight:500;letter-spacing:.3px;padding:var(--spacing-sm) var(--spacing-lg);pointer-events:none;position:fixed;white-space:nowrap;z-index:var(--z-tooltip)}.tooltip--top{animation:tooltipFadeInTop .1s ease-out;transform:translateX(-50%) translateY(-100%)}.tooltip--bottom{animation:tooltipFadeInBottom .1s ease-out;transform:translateX(-50%)}.tooltip--left{animation:tooltipFadeInLeft .1s ease-out;transform:translateY(-50%)}.tooltip--right{animation:tooltipFadeInRight .1s ease-out;transform:translateY(-50%)}@keyframes tooltipFadeInTop{0%{opacity:0;transform:translateX(-50%) translateY(calc(-100% + 5px))}to{opacity:1;transform:translateX(-50%) translateY(-100%)}}@keyframes tooltipFadeInBottom{0%{opacity:0;transform:translateX(-50%) translateY(-5px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes tooltipFadeInLeft{0%{opacity:0;transform:translateY(-50%) translateX(5px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}@keyframes tooltipFadeInRight{0%{opacity:0;transform:translateY(-50%) translateX(-5px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}.tooltip-arrow{height:0;position:absolute;width:0}.tooltip--bottom .tooltip-arrow{border-bottom:6px solid #1e1e1efa;top:-6px}.tooltip--bottom .tooltip-arrow,.tooltip--top .tooltip-arrow{border-left:6px solid #0000;border-right:6px solid #0000;left:50%;transform:translateX(-50%)}.tooltip--top .tooltip-arrow{border-top:6px solid #1e1e1efa;top:100%}.tooltip--right .tooltip-arrow{border-right:6px solid #1e1e1efa;left:-6px}.tooltip--left .tooltip-arrow,.tooltip--right .tooltip-arrow{border-bottom:6px solid #0000;border-top:6px solid #0000;top:50%;transform:translateY(-50%)}.tooltip--left .tooltip-arrow{border-left:6px solid #1e1e1efa;right:-6px}.light-editor-panel{grid-gap:var(--gap-xl);animation:panelSlideIn var(--transition-slow);display:grid;gap:var(--gap-xl);grid-template-columns:1fr auto auto;margin-left:-200px;max-width:600px;pointer-events:all;position:fixed;-webkit-user-select:none;user-select:none;z-index:99999}@keyframes panelSlideIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.lantern-type-badge{border:var(--glass-border);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.5px;padding:8px var(--spacing-lg);text-align:center}.lantern-type-badge,.light-editor-panel .icon-btn{align-items:center;backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay),var(--glass-bg-gradient);border-radius:var(--radius-full);box-shadow:var(--glass-shadow);color:var(--color-text-primary);display:flex;justify-content:center}.light-editor-panel .icon-btn{border:var(--glass-border);cursor:pointer;height:44px;padding:0;transition:all var(--transition-base);width:44px}.light-editor-panel .icon-btn:hover{transform:scale(1.05)}.toggle-icon-btn.on{background:var(--color-base-white);color:var(--color-base-black)}.delete-icon-btn{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-base-white)}.delete-icon-btn:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover);color:var(--color-base-white)}.light-editor-controls{align-items:center;display:flex;gap:var(--gap-lg);grid-column:1/-1}.color-wheel-container{align-items:center;display:flex;justify-content:center;width:160px}.color-wheel-container .react-colorful{height:auto;width:100%}.color-wheel-container .react-colorful__saturation{border-radius:var(--radius-md);height:100px;margin-bottom:12px}.color-wheel-container .react-colorful__hue{border-radius:var(--radius-sm);height:16px}.color-wheel-container .react-colorful__pointer{border:2px solid var(--color-base-white);box-shadow:0 2px 8px #0000004d;height:20px;width:20px}.slider-container{backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay),var(--glass-bg-gradient);border:var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--glass-shadow);display:flex;flex-direction:column;height:128px;justify-content:flex-end;overflow:hidden;position:relative;width:44px}.slider{-webkit-appearance:none;-webkit-appearance:slider-vertical;appearance:slider-vertical;cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;writing-mode:bt-lr;z-index:20}.slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:0;width:0}.slider::-moz-range-thumb{border:none;height:0;width:0}.slider-fill{background:#ffffffe6;border-radius:0 0 var(--radius-full) var(--radius-full);bottom:0;left:0;pointer-events:none;position:absolute;right:0}.slider-icon-wrapper{padding:8px 0;position:relative;text-align:center;z-index:10}@media (max-width:768px){.light-editor-panel{grid-template-columns:1fr;margin-left:-160px;max-width:400px;min-width:320px}.light-editor-panel .icon-btn,.light-editor-panel .lantern-type-badge{grid-column:1}.color-wheel-container{order:-1}.slider-container{height:44px;width:100%}.slider{-webkit-appearance:none;writing-mode:initial}.slider-fill{border-radius:var(--radius-full) 0 0 var(--radius-full);bottom:0;left:0;right:auto;top:0}.slider-value{order:0}}.dialogue-modal-overlay{animation:vignetteIn .3s ease-out;background:radial-gradient(circle at center,#0000 30%,#000000b3 100%);bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:10000}@keyframes vignetteIn{0%{opacity:0}to{opacity:1}}.dialogue-modal-container{animation:slideUp .4s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#000000d9;border-top:1px solid #ffffff1a;bottom:0;flex-direction:column;height:auto;left:0;max-height:400px;min-height:200px;overflow:hidden;padding:32px;pointer-events:auto;right:0}.dialogue-close-btn-floating,.dialogue-modal-container{align-items:center;display:flex;justify-content:center;position:absolute}.dialogue-close-btn-floating{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;color:#ffffff80;cursor:pointer;font-size:18px;height:32px;right:16px;top:16px;transition:all .15s ease;width:32px;z-index:100}.dialogue-close-btn-floating:hover{background:#ffffff14;color:#fff;transform:scale(1.05)}.dialogue-reading-mode{align-items:center;display:flex;flex-direction:column;gap:30px;justify-content:center;max-width:900px;padding:20px;width:100%}.dialogue-npc-sentence{animation:sentenceFadeIn .4s ease-out;color:#fff;font-size:24px;font-weight:300;letter-spacing:.5px;line-height:1.6;text-align:center;text-shadow:0 2px 8px #00000080}@keyframes sentenceFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dialogue-next-btn{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:1px;padding:12px 32px;text-transform:uppercase;transition:all .15s ease}.dialogue-next-btn:hover{background:#3073df}.dialogue-next-btn:active{transform:translateY(0)}.dialogue-input-mode{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;max-width:900px;padding:20px;width:100%}.dialogue-last-phrase{animation:fadeIn .3s ease-out;color:#ffffff80;font-size:14px;max-width:600px;text-align:center}.dialogue-player-input-center{display:flex;justify-content:center;max-width:800px;width:100%}.dialogue-input-large{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;color:#fff;font-family:inherit;font-size:16px;outline:2px solid #0000;padding:12px;resize:vertical;transition:border-color .2s;width:100%}@keyframes inputFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.dialogue-input-large::placeholder{color:#ffffff4d}.dialogue-input-large:focus{background:#ffffff0a;outline:2px solid #3b82f6}.dialogue-send-btn-large{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;letter-spacing:1px;padding:14px 40px;text-transform:uppercase;transition:all .15s ease}.dialogue-send-btn-large:hover:not(:disabled){background:#3073df}.dialogue-send-btn-large:active:not(:disabled){transform:translateY(0)}.dialogue-send-btn-large:disabled{cursor:not-allowed;opacity:.3}.dialogue-waiting-mode{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;padding:40px}.dialogue-typing-indicator-large{display:flex;gap:10px;padding:20px}.dialogue-typing-indicator-large span{animation:typingBounceLarge 1.4s ease-in-out infinite;background:#3b82f6;border-radius:50%;height:12px;width:12px}.dialogue-typing-indicator-large span:first-child{animation-delay:-.32s}.dialogue-typing-indicator-large span:nth-child(2){animation-delay:-.16s}@keyframes typingBounceLarge{0%,80%,to{opacity:.4;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.dialogue-waiting-text{animation:pulse 2s ease-in-out infinite;color:#fff9;font-size:18px;font-style:italic}.dialogue-empty-state-large{animation:fadeIn .4s ease-out;color:#ffffff80;font-size:20px;font-style:italic;margin-bottom:10px;text-align:center}.dialogue-footer{background:#0006;border-top:1px solid #ffffff0d;bottom:0;left:0;padding:12px 24px;position:absolute;right:0;text-align:center}.dialogue-hint{color:#fff6;font-size:12px;font-style:italic;letter-spacing:.5px}@media (max-width:768px){.dialogue-modal-container{max-height:450px;padding:30px 20px}.dialogue-npc-sentence{font-size:18px}.dialogue-input-large{font-size:20px;padding:16px 20px}}@media (max-width:480px){.dialogue-npc-sentence{font-size:20px}.dialogue-input-large{font-size:18px;padding:14px 16px}}.floating-coach{animation:floatIn .5s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:24px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:#fff;color:var(--color-white,#fff);font-family:system-ui,-apple-system,sans-serif;font-family:var(--font-sans,system-ui,-apple-system,sans-serif);max-width:calc(100vw - 40px);pointer-events:auto;position:fixed;transition:all .3s cubic-bezier(.4,0,.2,1);width:380px;z-index:10000}@keyframes floatIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.floating-coach--dragging{box-shadow:0 30px 80px #000000b3,0 0 0 1px #ffffff26;cursor:grabbing;transition:none}.floating-coach__header{align-items:center;border-bottom:1px solid #ffffff0d;cursor:grab;display:flex;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.floating-coach__header:active{cursor:grabbing}.floating-coach__title{align-items:center;color:#fff;color:var(--color-white,#fff);display:flex;font-size:14px;font-weight:600;gap:8px}.floating-coach__icon{font-size:18px}.floating-coach__header-actions{display:flex;gap:4px}.floating-coach__header-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#fff;color:var(--color-white,#fff);cursor:pointer;display:flex;font-family:inherit;font-size:16px;height:32px;justify-content:center;transition:all .2s;transition:all var(--transition-base,.2s);width:32px}.floating-coach__header-btn:hover{background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);transform:scale(1.1)}.floating-coach__header-btn:active{transform:scale(.95)}.floating-coach__progress{align-items:center;background:#00000026;display:flex;height:32px;overflow:hidden;padding:0 16px;position:relative}.floating-coach__progress-fill{background:linear-gradient(90deg,#ffffff26,#ffffff14);height:100%;left:0;position:absolute;top:0;transition:width .5s cubic-bezier(.4,0,.2,1)}.floating-coach__progress-text{color:#fff;color:var(--color-white,#fff);font-size:11px;font-weight:500;letter-spacing:.8px;opacity:.7;position:relative;text-transform:uppercase;z-index:1}.floating-coach__content{max-height:400px;overflow-y:auto;padding:20px}.floating-coach__content::-webkit-scrollbar{width:6px}.floating-coach__content::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.floating-coach__content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.floating-coach__content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.floating-coach__step-title{color:#fffffff2;font-size:18px;font-weight:600;line-height:1.3;margin:0 0 12px}.floating-coach__description{color:#ffffffb3;font-size:14px;line-height:1.6;margin:0}.floating-coach__validation{margin-top:16px}.floating-coach__validation-success{align-items:center;animation:successPulse .6s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#22c55e1a;border:1px solid #22c55e33;border-radius:12px;color:#4ade80;display:flex;gap:8px;padding:12px}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.floating-coach__validation-icon{font-size:16px;font-weight:700}.floating-coach__validation-waiting{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;color:#fff;color:var(--color-white,#fff);display:flex;gap:8px;opacity:.8;padding:12px}.floating-coach__validation-spinner{animation:spin .8s linear infinite;border:2px solid #fff3;border-radius:50%;border-top:2px solid var(--color-white,#fff);height:14px;width:14px}.floating-coach__footer{border-top:1px solid #ffffff0d;display:flex;gap:8px;padding:16px}.floating-coach__btn{border:none;border-radius:100px;cursor:pointer;flex:1 1;font-family:inherit;font-size:14px;font-weight:500;padding:10px 16px;transition:all .2s;transition:all var(--transition-base,.2s)}.floating-coach__btn--secondary{background:#0000;border:1px solid #ffffff1a;color:#fff;color:var(--color-white,#fff)}.floating-coach__btn--secondary:hover{background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);transform:translateY(-1px)}.floating-coach__btn--secondary:active{transform:translateY(0)}.floating-coach__btn--primary{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(102deg,#ffffff1f 5.44%,#9999990f 97.16%);border:1px solid #ffffff26;box-shadow:0 0 10px 0 #0000004d;color:#fff;color:var(--color-white,#fff)}.floating-coach__btn--primary:hover:not(:disabled){box-shadow:0 0 15px 0 #0006;transform:translateY(-2px) scale(1.02)}.floating-coach__btn--primary:active:not(:disabled){transform:translateY(-1px) scale(1)}.floating-coach__btn--primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.4}.floating-coach--minimized{animation:minimizedBounce .5s ease-out;border-radius:100px;cursor:pointer;padding:12px 16px;transition:all .3s cubic-bezier(.4,0,.2,1);width:auto}@keyframes minimizedBounce{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.floating-coach--minimized:hover{background:linear-gradient(102deg,#ffffff1f 5.44%,#9999990f 97.16%);transform:scale(1.05)}.floating-coach__minimized-content{align-items:center;display:flex;gap:12px;position:relative}.floating-coach__badge{background:#ffffff14;border:1px solid #ffffff1a;border-radius:100px;color:#fff;color:var(--color-white,#fff);font-size:12px;font-weight:600;padding:4px 12px}.floating-coach__minimized-pulse{animation:pulse 2s ease-out infinite;background:#fff;background:var(--color-white,#fff);border-radius:50%;height:12px;position:absolute;right:-4px;top:-4px;width:12px}@media (max-width:768px){.floating-coach{max-width:380px;width:calc(100vw - 20px)}}@media (prefers-reduced-motion:reduce){.floating-coach,.floating-coach__btn,.floating-coach__progress-fill,.floating-coach__validation-spinner{animation:none;transition:none}}.contextual-hint__ring{border:3px solid #3b82f6f2;border-radius:20px;box-shadow:0 0 0 6px #3b82f640,0 0 35px 0 #3b82f6b3,inset 0 0 25px 0 #3b82f626;pointer-events:none;position:fixed;z-index:10005}.contextual-hint__ring--animated{animation:ringPulse 2s ease-in-out infinite}@keyframes ringPulse{0%,to{border-color:#3b82f6f2;box-shadow:0 0 0 6px #3b82f640,0 0 35px 0 #3b82f6b3,inset 0 0 25px 0 #3b82f626;transform:scale(1)}50%{border-color:#60a5fa;box-shadow:0 0 0 10px #3b82f659,0 0 50px 0 #3b82f6e6,inset 0 0 30px 0 #3b82f640;transform:scale(1.015)}}.contextual-hint__glow{background:radial-gradient(ellipse at center,#3b82f64d 0,#3b82f626 40%,#60a5fa14 70%,#3b82f600 100%);border-radius:24px;filter:blur(16px);pointer-events:none;position:fixed;z-index:10004}.contextual-hint__glow--animated{animation:glowPulse 2s ease-in-out infinite}@keyframes glowPulse{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.contextual-hint__arrow{animation:arrowBounce 1.5s ease-in-out infinite;color:#60a5fa;filter:drop-shadow(0 3px 12px rgba(59,130,246,.9));pointer-events:none;position:fixed;transform:translateX(-50%);z-index:10005}@keyframes arrowBounce{0%,to{filter:drop-shadow(0 3px 12px rgba(59,130,246,.9));transform:translateX(-50%) translateY(0)}50%{filter:drop-shadow(0 4px 16px rgba(96,165,250,1));transform:translateX(-50%) translateY(6px)}}@media (prefers-reduced-motion:reduce){.contextual-hint__arrow,.contextual-hint__glow--animated,.contextual-hint__ring--animated{animation:none}}.commands-fab{align-items:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:none;border-radius:24px;bottom:20px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:#fff;color:var(--color-white,#fff);cursor:pointer;display:flex;font-family:system-ui,-apple-system,sans-serif;font-family:var(--font-sans,system-ui,-apple-system,sans-serif);font-size:14px;font-weight:600;height:48px;justify-content:center;outline:none;padding:0;position:fixed;right:16px;transition:all .3s cubic-bezier(.4,0,.2,1);width:48px;z-index:9999}.commands-fab:hover{background:linear-gradient(0deg,#1e1e1e66,#1e1e1e66),linear-gradient(102deg,#ffffff1f 5.44%,#9999990f 97.16%);box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 20px 0 #0006;transform:translateY(-2px)}.commands-fab:active{transform:translateY(0)}.commands-fab__icon{font-size:24px;line-height:1}.commands-panel{animation:panelFadeIn .5s cubic-bezier(.34,1.56,.64,1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:linear-gradient(0deg,#1414144d,#1414144d),linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);border:1px solid #ffffff0d;border-radius:24px;box-shadow:inset -4px -4px 4px 0 #0000000a,inset 2px 2px 4px 0 #ffffff1a,0 0 10px 0 #0000004d;color:#fff;color:var(--color-white,#fff);display:flex;flex-direction:column;font-family:system-ui,-apple-system,sans-serif;font-family:var(--font-sans,system-ui,-apple-system,sans-serif);max-height:600px;max-width:calc(100vw - 40px);pointer-events:auto;position:fixed;transition:all .3s cubic-bezier(.4,0,.2,1);width:400px;z-index:10000}@keyframes panelFadeIn{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.commands-panel--dragging{box-shadow:0 30px 80px #000000b3,0 0 0 1px #ffffff26;cursor:grabbing;transition:none}.commands-panel__header{align-items:center;border-bottom:1px solid #ffffff0d;cursor:grab;display:flex;flex-shrink:0;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.commands-panel__header:active{cursor:grabbing}.commands-panel__title{align-items:center;color:#fff;color:var(--color-white,#fff);display:flex;font-size:14px;font-weight:600;gap:8px}.commands-panel__icon{font-size:18px}.commands-panel__header-actions{display:flex;gap:4px}.commands-panel__header-btn{align-items:center;background:#ffffff0d;border:none;border-radius:8px;color:#fff;color:var(--color-white,#fff);cursor:pointer;display:flex;font-size:18px;font-weight:400;height:32px;justify-content:center;line-height:1;transition:all .2s ease;width:32px}.commands-panel__header-btn:hover{background:#ffffff26}.commands-panel__header-btn:active{transform:scale(.95)}.commands-panel__content{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:16px}.commands-panel__content::-webkit-scrollbar{width:8px}.commands-panel__content::-webkit-scrollbar-track{background:#0003;border-radius:4px}.commands-panel__content::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.commands-panel__content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.commands-panel__category{margin-bottom:20px}.commands-panel__category:last-child{margin-bottom:0}.commands-panel__category-title{border-bottom:1px solid #ffffff14;color:#fff9;font-size:12px;font-weight:700;letter-spacing:.05em;margin:0 0 12px;padding-bottom:6px;text-transform:uppercase}.commands-panel__commands-list{display:flex;flex-direction:column;gap:8px}.commands-panel__command{align-items:center;background:#ffffff08;border-radius:8px;display:flex;gap:12px;padding:8px 12px;transition:background .2s ease}.commands-panel__command:hover{background:#ffffff0f}.commands-panel__key{align-items:center;background:linear-gradient(180deg,#ffffff26,#ffffff0d);border:1px solid #fff3;border-radius:6px;box-shadow:0 2px 0 #0000004d,inset 0 1px 0 #ffffff1a;color:#fff;color:var(--color-white,#fff);display:inline-flex;flex-shrink:0;font-family:Courier New,monospace;font-size:11px;font-weight:700;justify-content:center;letter-spacing:.03em;min-width:60px;padding:4px 8px;text-align:center;text-transform:uppercase}.commands-panel__description{color:#ffffffd9;flex:1 1;font-size:13px;line-height:1.4}.commands-panel__footer{border-top:1px solid #ffffff0d;flex-shrink:0;padding:12px 16px}.commands-panel__tip{align-items:flex-start;color:#ffffffb3;display:flex;font-size:12px;gap:6px;line-height:1.5}.commands-panel__tip strong{color:#ffffffe6}.commands-panel__tip kbd{align-items:center;background:#ffffff1a;border:1px solid #ffffff26;border-radius:4px;color:#fff;color:var(--color-white,#fff);display:inline-flex;font-family:Courier New,monospace;font-size:10px;font-weight:600;padding:2px 6px}.commands-panel--minimized{cursor:pointer;max-height:none;padding:12px 16px;transition:all .3s ease;width:auto}.commands-panel--minimized:hover{box-shadow:0 0 20px 0 #0006;transform:scale(1.05)}.commands-panel__minimized-content{align-items:center;display:flex;gap:8px}.commands-panel__minimized-label{color:#fff;color:var(--color-white,#fff);font-size:14px;font-weight:600}@media (max-width:768px){.commands-fab{bottom:80px;right:10px}.commands-panel{bottom:10px!important;max-height:500px;right:10px!important;width:calc(100vw - 20px)}.commands-panel__key{font-size:10px;min-width:50px}.commands-panel__description{font-size:12px}}:root{--color-neutral-50:#fafafa;--color-neutral-100:#f5f5f5;--color-neutral-200:#e5e5e5;--color-neutral-300:#d4d4d4;--color-neutral-400:#a3a3a3;--color-neutral-500:#737373;--color-neutral-600:#525252;--color-neutral-700:#404040;--color-neutral-800:#262626;--color-neutral-900:#141414;--color-neutral-950:#0a0a0a;--color-base-white:#fff;--color-base-black:#000;--color-gradient-orange:#ffa666;--color-gradient-yellow:#f0d375;--color-gradient-green:#85e0a0;--color-gradient-blue:#a1aff9;--color-gradient-purple:#ab6fff;--color-surface-background:var(--color-neutral-900);--color-surface-card-border:#ffffff1a;--color-surface-card-background:#ffffff0a;--color-text-primary:var(--color-base-white);--color-text-secondary:var(--color-neutral-400);--color-text-tertiary:#ffffff80;--color-bg-primary:var(--color-neutral-900);--color-bg-secondary:var(--color-neutral-800);--color-bg-tertiary:#000000b3;--color-bg-overlay:#0000004d;--color-bg-modal:#141414d9;--color-bg-subtle:#0009;--color-bg-light:#0006;--color-border-strong:#fff3;--color-border-medium:#ffffff26;--color-border-subtle:#ffffff1a;--color-border-light:#ffffff4d;--color-primary:#3b82f6;--color-primary-hover:#205bba;--color-primary-light:#60a5fa;--color-primary-dark:#2563eb;--color-primary-alpha:#2563ebd9;--color-primary-alpha-high:#3b82f6f2;--color-primary-alpha-medium:#2563eb80;--color-primary-alpha-low:#2563eb4d;--color-success:#27ae60;--color-success-hover:#229954;--color-biome:#90ee90;--color-danger:#ef4444;--color-danger-hover:#c62828;--color-danger-alpha-high:#ff3232cc;--color-danger-alpha-medium:#ff323280;--color-danger-alpha-low:#ff323233;--color-warning:var(--color-gradient-orange);--color-warning-dark:#ff6f00;--color-magic:var(--color-gradient-purple);--color-magic-light:#a78bfa;--color-white:#fff;--color-black:#000;--color-gold:gold;--font-sans:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI","Inter",system-ui,sans-serif;--font-mono:"Courier New","Monaco","Consolas",monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:48px;--text-6xl:60px;--text-7xl:72px;--text-8xl:96px;--text-9xl:128px;--text-2xs:10px;--text-3xs:8px;--font-thin:100;--font-extralight:200;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--font-black:900;--leading-tight:1.2;--leading-snug:1.3;--leading-normal:1.4;--leading-relaxed:1.6;--leading-loose:1.8;--spacing-2xs:2px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-2xl:24px;--spacing-3xl:32px;--spacing-4xl:40px;--spacing-5xl:48px;--spacing-6xl:64px;--gap-xs:4px;--gap-sm:6px;--gap-md:8px;--gap-lg:12px;--gap-xl:16px;--gap-2xl:24px;--radius-none:0;--radius-2xs:2px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-full:9999px;--border-thin:1px;--border-medium:2px;--border-thick:3px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 2px 4px #0000001a;--shadow-md:0 4px 8px #0003;--shadow-lg:0 8px 16px #0000004d;--shadow-xl:0 12px 24px #0006;--shadow-2xl:0 20px 40px #00000080;--shadow-inner:inset 0 2px 4px #0000001a;--shadow-glow:0 0 20px #ffffff4d;--z-base:0;--z-above:1;--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:9999;--z-modal:10000;--z-popover:10001;--z-tooltip:10002;--transition-fast:0.15s ease;--transition-base:0.2s ease;--transition-slow:0.3s ease;--transition-slower:0.5s ease;--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--blur-sm:blur(4px);--blur-md:blur(8px);--blur-lg:blur(10px);--blur-xl:blur(16px);--blur-2xl:blur(24px);--blur-glass:blur(12px);--opacity-disabled:0.5;--opacity-hover:0.9;--opacity-active:0.8;--glass-border:1px solid #ffffff14;--glass-shadow:0 4px 20px #0006;--glass-bg-gradient:linear-gradient(135deg,#ffffff08,#ffffff03);--glass-bg-overlay:#141414bf;--glass-bg-overlay-hover:#282828d9;--glass-bg-gradient-hover:linear-gradient(135deg,#ffffff14,#ffffff0a)}.h1{font-size:var(--text-5xl);font-weight:var(--font-bold)}.h1,.h2{color:var(--color-text-primary);font-family:var(--font-sans);line-height:var(--leading-tight);margin:0}.h2{font-size:var(--text-3xl);font-weight:var(--font-semibold)}.h3{font-size:var(--text-2xl)}.h3,.h4{color:var(--color-text-primary);font-family:var(--font-sans);font-weight:var(--font-semibold);line-height:var(--leading-snug);margin:0}.h4{font-size:var(--text-xl)}.h5{font-weight:var(--font-medium);line-height:var(--leading-normal)}.body-lg,.h5{color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-lg);margin:0}.body-lg{font-weight:var(--font-normal);line-height:var(--leading-relaxed)}.body{font-size:var(--text-base)}.body,.body-sm{color:var(--color-text-primary);font-family:var(--font-sans);font-weight:var(--font-normal);line-height:var(--leading-normal);margin:0}.body-sm{font-size:var(--text-sm)}.caption{font-weight:var(--font-normal)}.caption,.overline{color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--text-xs);line-height:var(--leading-normal);margin:0}.overline{font-weight:var(--font-semibold);letter-spacing:.1em;text-transform:uppercase}.label{font-size:var(--text-sm)}.label,.label-sm{color:var(--color-text-primary);font-family:var(--font-sans);font-weight:var(--font-medium);line-height:var(--leading-normal);margin:0}.label-sm{font-size:var(--text-xs)}.code{background:#ffffff0d;border-radius:var(--radius-xs);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);margin:0;padding:2px 6px}.text-muted{color:#ffffff80}.text-warning{color:var(--color-warning)}.text-primary{color:var(--color-primary)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.font-light{font-weight:var(--font-light)}.panel-glass{background:var(--color-bg-tertiary);border:var(--border-thin) solid var(--color-border-medium);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)}.panel-glass,.panel-glass-dark{backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg)}.panel-glass-dark{background:var(--color-bg-secondary);border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-2xl)}.panel-glass-darker{backdrop-filter:var(--blur-xl);-webkit-backdrop-filter:var(--blur-xl);background:var(--color-bg-primary);border:var(--border-thin) solid var(--color-border-strong);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl)}.modal-overlay{align-items:center;animation:fadeIn var(--transition-base);backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);background:var(--color-bg-overlay);display:flex;inset:0;justify-content:center;position:fixed;z-index:var(--z-modal-backdrop)}.modal-content{animation:slideUp var(--transition-base) var(--ease-out);background:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);max-height:90vh;max-width:90vw;overflow:hidden}.modal-content-dark{background:var(--color-bg-primary);border:var(--border-thin) solid var(--color-border-strong)}.modal-header{border-bottom:var(--border-thin) solid var(--color-border-subtle);font-size:var(--text-xl);font-weight:var(--font-semibold)}.modal-body,.modal-header{padding:var(--spacing-2xl)}.modal-body{overflow-y:auto}.modal-footer{border-top:var(--border-thin) solid var(--color-border-subtle);display:flex;gap:var(--gap-md);justify-content:flex-end;padding:var(--spacing-2xl)}.btn{align-items:center;border:var(--border-thin) solid #0000;border-radius:var(--radius-full);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-medium);gap:var(--gap-sm);justify-content:center;padding:var(--spacing-md) var(--spacing-xl);transition:all var(--transition-base);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.btn:not(:disabled):hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:not(:disabled):active{opacity:var(--opacity-active);transform:translateY(0)}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:not(:disabled):hover{background:var(--color-primary-hover)}.btn-success{background:var(--color-success);color:var(--color-white)}.btn-success:not(:disabled):hover{background:var(--color-success-hover)}.btn-danger{background:var(--color-danger);color:var(--color-white)}.btn-danger:not(:disabled):hover{background:var(--color-danger-hover)}.btn-secondary{background:#ffffff1a;border-color:var(--color-border-medium);color:var(--color-text-primary)}.btn-secondary:not(:disabled):hover{background:#ffffff26;border-color:var(--color-border-strong)}.btn-ghost{background:#0000;border-color:#0000;color:var(--color-text-secondary)}.btn-ghost:not(:disabled):hover{background:#ffffff14;color:var(--color-text-primary)}.btn-outline{background:#0000;border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-outline:not(:disabled):hover{background:#ffffff1a}.btn-glass{backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);background:var(--glass-bg-overlay),var(--glass-bg-gradient);border:var(--glass-border);border-radius:var(--radius-full);box-shadow:var(--glass-shadow);color:var(--color-text-primary)}.btn-glass:not(:disabled):hover{background:var(--glass-bg-overlay-hover),var(--glass-bg-gradient-hover);transform:scale(1.05)}.btn-glass:not(:disabled):active{transform:scale(.98)}.btn-sm{font-size:var(--text-sm);padding:var(--spacing-sm) var(--spacing-md)}.btn-lg{font-size:var(--text-lg);padding:var(--spacing-lg) var(--spacing-2xl)}.btn-icon{aspect-ratio:1;padding:var(--spacing-md)}.icon-btn{align-items:center;background:#0000;border:var(--border-thin) solid #0000;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;height:36px;justify-content:center;transition:all var(--transition-fast);width:36px}.icon-btn:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.icon-btn svg{height:18px;width:18px}.icon-btn-ghost{background:#0000;box-shadow:none;color:var(--color-text-tertiary)}.icon-btn-ghost:not(:disabled):hover{background:linear-gradient(102deg,#ffffff14 5.44%,#9999990a 97.16%);color:var(--color-text-primary);transform:scale(1.05)}.icon-btn-secondary{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#ffffff0d;border-color:#ffffff14;color:var(--color-text-primary)}.icon-btn-secondary:not(:disabled):hover{background:#ffffff1a;border-color:#ffffff26;transform:scale(1.05)}.icon-btn-primary{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#3b82f626;border:1px solid #3b82f64d;color:#60a5fa}.icon-btn-primary:not(:disabled):hover{background:#3b82f640;border-color:#60a5fa80;box-shadow:0 0 20px #3b82f680;transform:scale(1.1)}.icon-btn-sm{height:28px;width:28px}.icon-btn-sm svg{height:14px;width:14px}.icon-btn-lg{height:44px;width:44px}.icon-btn-lg svg{height:22px;width:22px}.input{background:#ffffff1a;border:var(--border-thin) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);padding:var(--spacing-md);transition:all var(--transition-base)}.input:focus{background:#ffffff26;border-color:var(--color-primary);outline:none}.input::placeholder{color:var(--color-text-disabled)}.input:disabled{cursor:not-allowed;opacity:var(--opacity-disabled)}.textarea{background:#ffffff1a;border:var(--border-thin) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--text-base);min-height:80px;padding:var(--spacing-md);resize:vertical;transition:all var(--transition-base)}.textarea:focus{background:#ffffff26;border-color:var(--color-primary);outline:none}.select{background:#ffffff1a;border:var(--border-thin) solid var(--color-border-medium);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-base);padding:var(--spacing-md);transition:all var(--transition-base)}.select:focus{background:#ffffff26;border-color:var(--color-primary);outline:none}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-muted{color:var(--color-text-muted)}.text-disabled{color:var(--color-text-disabled)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-accent-orange)}.text-info{color:var(--color-primary)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-2xl{padding:var(--spacing-2xl)}.p-3xl{padding:var(--spacing-3xl)}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.m-2xl{margin:var(--spacing-2xl)}.gap-xs{gap:var(--gap-xs)}.gap-sm{gap:var(--gap-sm)}.gap-md{gap:var(--gap-md)}.gap-lg{gap:var(--gap-lg)}.gap-xl{gap:var(--gap-xl)}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.w-full{width:100%}.h-full{height:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-base)}.animate-slide-up{animation:slideUp var(--transition-base)}.animate-slide-down{animation:slideDown var(--transition-base)}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.transition{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.select-none{-webkit-user-select:none;user-select:none}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.hover\:opacity-hover:hover{opacity:var(--opacity-hover)}.active\:opacity-active:active{opacity:var(--opacity-active)}
/*# sourceMappingURL=main.2b0db8c1.css.map*/