*{box-sizing:border-box}html,body,#root{height:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}:root{--bg:#0d0e14;--panel:#161822b8;--panel-2:#1d202ccc;--border:#2a2e3d;--text:#e8eaf0;--text-dim:#8b93a7;--accent:#35c9d1;--accent-2:#6d5bd0;--success:#6fd68b;--error:#f27878;--human:#7cc4f7;--assistant:#35c9d1}.app-shell{background:var(--bg) url(/brand/app-bg-galaxy.jpg) center center / cover no-repeat fixed;height:100%;color:var(--text);isolation:isolate;flex-direction:column;display:flex;position:relative}.twinkle-background{z-index:-1;pointer-events:none;position:fixed;inset:0}.topbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:10px 16px;display:flex}.topbar-logo{width:auto;height:34px}.topbar-brand{flex-direction:column;margin-right:8px;display:flex}.topbar-studio{text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-size:10px}.topbar-title{white-space:nowrap;font-size:15px;font-weight:700}.topbar-tagline{color:var(--text);font-size:11px}.mode-toggle{background:var(--panel-2);scrollbar-width:none;border-radius:999px;min-width:0;padding:4px;display:flex;overflow-x:auto}.mode-toggle button{color:var(--text);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:7px 10px;font-size:12px}.mode-toggle button.mode-active{background:var(--accent);color:#06232a;font-weight:600}.mode-toggle button:disabled{opacity:.4;cursor:not-allowed}.topbar-nav{flex-wrap:nowrap;justify-content:flex-end;gap:6px;margin-left:auto;display:flex}.topbar-nav button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:12px}.topbar-nav button:disabled{cursor:not-allowed;opacity:.6}.learning-mode-btn{align-items:center;gap:6px;display:flex}.language-switch{background:var(--panel-2);border-radius:999px;flex-shrink:0;padding:2px;display:flex}.language-switch button{color:var(--text);cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600}.language-switch button.language-switch-active{background:var(--accent);color:#06232a;opacity:1}.project-picker{flex-shrink:0;margin-left:0;position:relative}.project-picker-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:180px;padding:7px 12px;font-size:12px;overflow:hidden}.project-picker-menu{z-index:20;background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;min-width:220px;max-height:280px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 10px 30px #0006}.project-picker-item{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 8px;font-size:12px}.project-picker-item:hover{background:var(--panel-2)}.project-picker-item-active{color:var(--accent);font-weight:600}.project-picker-hint{color:var(--text-dim);padding:7px 8px;font-size:12px}.project-picker-create{border-top:1px solid var(--border);gap:4px;margin-top:4px;padding-top:6px;display:flex}.project-picker-create input{background:var(--panel-2);border:1px solid var(--border);min-width:0;color:var(--text);border-radius:6px;flex:1;padding:6px 8px;font-size:12px}.project-picker-create button{background:var(--accent);color:#06232a;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600}.project-picker-create button:disabled{opacity:.5;cursor:not-allowed}.topbar-twinkle-icon{object-fit:cover;border-radius:50%;flex-shrink:0;width:34px;height:34px}.layout{flex:1;align-items:stretch;gap:0;min-height:0;padding:14px;display:flex}.options-column{flex-direction:column;min-width:0;min-height:0;display:flex;overflow-y:auto}.options-column .panel{flex-shrink:0}.resize-handle{cursor:col-resize;flex:0 0 14px;position:relative}.resize-handle:after{content:"";background:var(--border);border-radius:3px;width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.resize-handle:hover:after,.resize-handle:active:after{background:var(--accent)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.prompt-panel{gap:14px;padding:16px}.field{flex-direction:column;gap:6px;display:flex}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.field textarea,.field input,.field select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);resize:vertical;border-radius:8px;padding:9px 10px;font-family:inherit;font-size:13px}.field textarea:focus,.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.field-label-row{justify-content:space-between;align-items:center;display:flex}.character-chip{color:var(--accent);border:1px solid var(--accent);background:#35c9d11f;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.character-action-row{align-items:center;gap:8px;margin-top:6px;display:flex}.character-action-name{color:var(--accent);flex-shrink:0;min-width:72px;font-size:12px;font-weight:600}.character-action-row input{flex:1}.character-detail-card{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;margin-top:8px;padding:10px 12px;display:flex}.character-detail-header{color:var(--accent);margin-bottom:2px;font-size:12px;font-weight:700}.character-detail-field{align-items:center;gap:8px;display:flex}.character-detail-label{color:var(--text-dim);flex-shrink:0;min-width:76px;font-size:11px}.character-detail-field input,.character-detail-field select{flex:1}.prompt-ai-actions{flex-wrap:wrap;gap:8px;display:flex}.improve-btn{border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;padding:5px 10px;font-size:11px}.improve-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.improve-btn:disabled{opacity:.5;cursor:not-allowed}.field-hint{color:var(--text-dim);font-size:11px}.resolution-readout{color:var(--text);padding:9px 0;font-size:13px}.primary-btn{background:var(--accent);color:#06232a;cursor:pointer;border:none;border-radius:8px;padding:11px;font-size:14px;font-weight:600}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.msg-role{text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10px;font-weight:700}.msg-user .msg-role{color:var(--human)}.msg-assistant .msg-role{color:var(--assistant)}.msg-text{font-size:13px;line-height:1.4}.send-btn{background:var(--accent);color:#06232a;cursor:pointer;border:none;border-radius:8px;width:40px;font-size:16px}.send-btn:disabled{opacity:.4;cursor:not-allowed}.canvas-layout{flex:1;gap:14px;min-width:0;display:flex}.canvas-panel{flex:3;align-items:stretch;min-width:0}.restyle-column{flex-direction:column;flex:1;gap:14px;min-width:200px;max-width:320px;display:flex}.restyle-panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.restyle-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.restyle-panel-stage{background:var(--panel-2);border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:0;margin:12px;padding:12px;display:flex;overflow:hidden}.restyle-panel-clickable{cursor:pointer;outline-offset:-2px;outline:2px solid #0000;transition:outline-color .15s}.restyle-panel-clickable:hover{outline-color:var(--accent)}.restyle-panel-image{object-fit:contain;max-width:100%;max-height:100%}.restyle-generate-btn{border:1px dashed var(--border);color:var(--text-dim);cursor:pointer;text-align:center;background:0 0;border-radius:8px;padding:10px 14px;font-size:12px}.restyle-generate-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.restyle-generate-btn:disabled{opacity:.4;cursor:not-allowed}.restyle-panel-error{color:var(--error);padding:0 14px 10px;font-size:11px}.canvas-toolbar{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 16px;display:grid}.canvas-generating-badge{color:var(--accent);grid-column:1;justify-self:center;align-items:center;gap:5px;display:inline-flex}.canvas-filename{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;grid-column:1;font-family:monospace;font-size:12px;overflow:hidden}.spinner-inline{flex-shrink:0;width:11px;height:11px}.spinner-inline:before{font-size:11px}.canvas-toolbar-actions{grid-column:2;gap:6px;display:flex}.toolbar-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:6px;padding:5px 10px;font-size:11px;text-decoration:none}.toolbar-btn-active{border-color:var(--accent);color:var(--accent)}.toolbar-btn-analyze{align-items:center;gap:6px;display:inline-flex}.toolbar-btn-icon{object-fit:cover;border-radius:50%;width:16px;height:16px}.analysis-panel{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;margin:0 14px 14px;overflow:hidden}.analysis-panel-header{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 12px;display:flex}.analysis-panel-icon{object-fit:cover;border-radius:50%;flex-shrink:0;width:24px;height:24px}.analysis-panel-title{flex:1;font-size:12px;font-weight:600}.analysis-panel-error{color:var(--text-dim);padding:10px 12px;font-size:12px}.analysis-panel-body{flex-wrap:wrap;gap:14px;padding:12px;display:flex}.analysis-overlay-image{object-fit:contain;border-radius:8px;flex-shrink:0;max-width:280px;max-height:360px}.analysis-findings{flex-direction:column;flex:1;gap:6px;min-width:200px;font-size:12px;display:flex}.analysis-finding-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:10px;padding:4px 0;display:flex}.analysis-finding-flagged{color:#ff8a5c}.analysis-finding-label{color:var(--text-dim)}.danger-btn{color:#d66;border-color:#a33}.danger-btn:hover{color:#fff;background:#a33}.delete-confirm{align-items:center;gap:6px;display:flex}.reuse-btn{background:var(--accent);color:#05191a;cursor:pointer;border:none;border-radius:6px;align-self:flex-start;margin-bottom:4px;padding:6px 12px;font-size:12px;font-weight:600}.reuse-btn:hover{opacity:.9}.version-details{background:var(--panel-2);border-bottom:1px solid var(--border);resize:vertical;flex-direction:column;gap:6px;height:220px;min-height:100px;max-height:80vh;padding:10px 14px 16px;font-size:12px;display:flex;overflow-y:auto}.version-details-row{gap:8px;display:flex}.version-details-label{color:var(--text-dim);flex-shrink:0;min-width:90px}.version-details-refs ul{flex-direction:column;gap:2px;margin:0;padding-left:0;list-style:none;display:flex}.ref-role{color:var(--accent);margin-right:6px;font-weight:600}.version-details-restyle{align-items:center}.restyle-buttons{flex-wrap:wrap;gap:6px;display:flex}.canvas-stage{background:var(--panel-2);border-radius:10px;flex:1;justify-content:center;align-items:center;min-height:0;margin:14px;display:flex;overflow:hidden}.canvas-image{object-fit:contain;max-width:100%;max-height:100%}.canvas-compare-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:100%;height:100%;padding:12px;display:flex}.compare-tile{cursor:pointer;background:0 0;border:3px solid #0000;border-radius:8px;flex:1 1 0;justify-content:center;align-items:center;min-width:200px;max-width:calc(33.333% - 8px);height:100%;padding:4px;transition:border-color .15s;display:flex;overflow:hidden}.compare-tile:hover{border-color:var(--border)}.compare-tile-active{border-color:var(--accent)}.compare-tile img{object-fit:contain;border-radius:4px;max-width:100%;max-height:100%}.canvas-state{color:var(--text-dim);text-align:center;flex-direction:column;align-items:center;gap:12px;font-size:14px;display:flex}.canvas-error p{color:var(--error)}.spinner{justify-content:center;align-items:center;width:26px;height:26px;animation:1.4s linear infinite spin;display:inline-flex}.spinner:before{content:"✦";color:var(--accent);font-size:26px;line-height:1}.spin-star{color:var(--accent);animation:1.4s linear infinite spin;display:inline-block}.spin-star:before{content:"✦"}@keyframes spin{to{transform:rotate(360deg)}}.version-strip{resize:vertical;gap:10px;height:100px;min-height:64px;max-height:60vh;padding:6px 14px 14px;display:flex;overflow:auto}.version-thumb{background:var(--panel-2);border:2px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;gap:4px;width:auto;height:100%;padding:4px;display:flex}.version-thumb img{object-fit:contain;border-radius:4px;flex:1;width:auto;max-width:260px;min-height:0}.version-thumb span{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;overflow:hidden}.version-thumb-active{border-color:var(--accent)}.scene-panel{padding:16px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.panel-header h2{margin:0;font-size:15px}.create-mode-tabs{gap:6px;margin-bottom:14px;display:flex}.create-mode-placeholder{text-align:center;color:var(--text);opacity:.7;padding:30px 10px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:11px}.scene-summary{color:var(--text-dim);background:var(--panel-2);border:1px dashed var(--border);border-radius:8px;min-height:14px;padding:8px 10px;font-size:12px}.tab-row{background:var(--panel-2);border-radius:8px;gap:4px;margin-bottom:12px;padding:3px;display:flex}.tab-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:7px 4px;font-size:11px}.tab-active{background:var(--accent);color:#06232a;font-weight:600}.search-input{background:var(--panel-2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;margin-bottom:10px;padding:8px 10px;font-size:12px}.search-input:focus{border-color:var(--accent);outline:none}.scene-scroll{flex:1;min-height:0;overflow-y:auto}.tile-group{margin-bottom:8px}.tile-group-header{width:100%;color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;display:flex}.tile-group-header h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0;font-size:11px}.tile-group-caret{width:10px;font-size:10px}.tile-group-count{background:var(--panel-2);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10px}.tile-group .tile-grid{margin-top:8px}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.tile{color:var(--text);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex}.tile-thumb{aspect-ratio:1;border:2px solid var(--border);background:var(--panel-2);border-radius:8px;width:100%;position:relative;overflow:hidden}.tile-thumb img{object-fit:cover;width:100%;height:100%}.tile-grid-tall .tile-thumb{aspect-ratio:1/2}.tile-selected .tile-thumb{border-color:var(--accent)}.tile-disabled{opacity:.45;cursor:not-allowed}.tile-name{color:var(--text-dim);text-align:center;font-size:10px}.tile-check{background:var(--accent);color:#06232a;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;display:flex;position:absolute;top:4px;right:4px}.placeholder-thumb{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:20px;font-weight:700;display:flex}.image-settings{border-top:1px solid var(--border);margin-top:8px;padding-top:12px}.image-settings h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 10px;font-size:11px}.settings-label{color:var(--text-dim);margin-bottom:6px;font-size:11px;display:block}.learning-tip{margin-left:5px;display:inline-block;position:relative}.learning-tip-icon{background:var(--accent-2);color:#fff;cursor:pointer;vertical-align:middle;border:none;border-radius:50%;width:16px;height:16px;padding:0;font-size:10px;line-height:16px}.learning-tip-bubble{z-index:30;background:var(--panel);border:1px solid var(--accent-2);width:240px;color:var(--text);white-space:normal;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.4;position:fixed;box-shadow:0 8px 24px #0006}.topbar-nav button.learning-mode-active{border-color:var(--accent-2);color:var(--accent-2);opacity:1;cursor:pointer}.ratio-row{flex-wrap:wrap;gap:6px;display:flex}.ratio-btn{background:var(--panel-2);border:1px solid var(--border);min-width:90px;color:var(--text-dim);cursor:pointer;border-radius:8px;flex:1;padding:8px 4px;font-size:11px}.ratio-active{border-color:var(--accent);color:var(--accent)}.image-settings .settings-label:not(:first-child){margin-top:12px}.environment-input{background:var(--panel-2);border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;border-radius:8px;margin-top:8px;padding:9px 10px;font-family:inherit;font-size:13px}.environment-input:focus{border-color:var(--accent);outline:none}.version-details-log{flex-direction:column;align-items:stretch!important}.version-details-log .version-details-label{justify-content:space-between;align-items:center;display:flex}.version-log-lines{background:var(--panel-2);border-radius:8px;flex-direction:column;gap:4px;max-height:160px;margin:6px 0 0;padding:8px 10px;font-family:SF Mono,Menlo,monospace;font-size:11px;list-style:none;display:flex;overflow-y:auto}.log-export-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-end;margin-bottom:4px;padding:3px 9px;font-family:inherit;font-size:11px}.log-export-btn:hover{border-color:var(--accent);color:var(--accent)}.log-line{gap:8px;display:flex}.log-time{color:var(--text-dim)}.log-actor{text-transform:uppercase;min-width:90px;font-weight:700}.log-actor-HUMAN{color:var(--human)}.log-actor-AI_ASSISTANT{color:#d78bf6}.log-actor-ENGINE{color:var(--success)}.log-actor-SYSTEM{color:#f2c078}.dock-anchor{z-index:20;position:fixed;top:84px;right:20px}.dock-bubble{background:var(--accent-2);color:#fff;cursor:grab;touch-action:none;border:none;border-radius:999px;align-items:center;gap:10px;padding:8px 20px 8px 8px;font-size:14px;font-weight:600;display:flex;box-shadow:0 6px 24px #0006,0 0 0 3px #6d5bd059}.dock-bubble:active{cursor:grabbing}.dock-bubble-icon{object-fit:cover;border:2px solid #fff9;border-radius:50%;flex-shrink:0;width:56px;height:56px}.dock-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:340px;max-height:460px;display:flex;overflow:hidden;box-shadow:0 10px 30px #00000073}.dock-header{border-bottom:1px solid var(--border);cursor:grab;touch-action:none;align-items:center;gap:10px;padding:12px 14px;display:flex}.dock-header:active{cursor:grabbing}.dock-header .dock-close{cursor:pointer}.dock-header-icon{object-fit:cover;border:2px solid #ffffff40;border-radius:50%;flex-shrink:0;width:44px;height:44px}.dock-title{font-size:13px;font-weight:600}.dock-subtitle{color:var(--text-dim);font-size:10px}.dock-header-text{flex:1;min-width:0}.dock-voice-toggle{cursor:pointer;opacity:.6;background:0 0;border:none;flex-shrink:0;font-size:14px}.dock-voice-toggle-active{opacity:1}.dock-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:13px}.dock-messages{flex-direction:column;flex:1;gap:10px;min-height:120px;padding:12px 14px;display:flex;overflow-y:auto}.dock-empty{color:var(--text-dim);font-size:12px}.dock-input-row{border-top:1px solid var(--border);gap:8px;padding:10px;display:flex}.mic-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:8px;flex-shrink:0;padding:0 10px}.mic-btn-active{color:#fff;background:var(--error);border-color:var(--error);animation:1.2s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{opacity:1}50%{opacity:.6}}.dock-input-row textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);resize:none;border-radius:8px;flex:1;padding:8px 10px;font-family:inherit;font-size:12px}.dock-input-row textarea:focus{border-color:var(--accent);outline:none}.twinkle-popup{z-index:50;pointer-events:none;transition:bottom .5s cubic-bezier(.34,1.56,.64,1);position:fixed;bottom:-180px;left:24px}.twinkle-popup-in{bottom:12px}.twinkle-popup-icon{object-fit:cover;border-radius:50%;width:130px;height:130px;display:block;box-shadow:0 8px 24px #0000004d}.library-overlay{z-index:40;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.library-panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:min(920px,92vw);height:min(700px,88vh);display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000080}.library-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.library-header h2{margin:0;font-size:16px}.library-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;font-size:16px}.library-filters{border-bottom:1px solid var(--border);gap:8px;padding:12px 20px;display:flex}.library-filter{font:inherit;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px}.library-filter-active{border-color:var(--accent);color:var(--accent)}.library-filter-disabled{opacity:.5;cursor:not-allowed}.library-filter-select{border:1px solid var(--accent);background:var(--panel-2);color:var(--accent);border-radius:999px;padding:5px 10px;font-size:12px}.library-body{flex:1;padding:16px 20px;overflow-y:auto}.library-empty{color:var(--text-dim);text-align:center;padding:40px 0;font-size:13px}.library-group{margin-bottom:20px}.library-group-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 10px;font-size:12px}.library-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.library-thumb{background:var(--panel-2);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;padding:0;display:flex;overflow:hidden}.library-thumb img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.library-thumb-caption{text-align:left;flex-direction:column;gap:2px;padding:6px 8px;display:flex}.library-thumb-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.library-thumb-resolution{color:var(--text-dim);font-size:10px}.library-detail-overlay{background:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0}.library-detail{background:var(--panel);border:1px solid var(--border);border-radius:12px;gap:16px;max-width:100%;max-height:100%;padding:16px;display:flex;overflow:auto}.library-detail img{object-fit:contain;border-radius:8px;max-width:320px;max-height:100%}.library-detail-info{resize:horizontal;flex-direction:column;gap:8px;width:260px;min-width:180px;max-width:70vw;font-size:12px;display:flex;overflow-y:auto}.topbar-user{border-left:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;margin-left:6px;padding-left:12px;display:flex}.topbar-user-email{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:12px;overflow:hidden}.topbar-user-role{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:#35c9d11f;border-radius:999px;padding:3px 8px;font-size:10px}.topbar-logout{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:12px}.topbar-logout:hover{color:var(--text);border-color:var(--accent)}.login-screen{background:var(--bg);justify-content:center;align-items:center;height:100%;display:flex}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:14px;width:320px;padding:32px;display:flex}.login-logo{object-fit:contain;align-self:flex-start;width:auto;height:32px;margin-bottom:4px}.login-card h1{color:var(--text);margin:0;font-size:20px}.login-subtitle{color:var(--text-dim);margin:-8px 0 4px;font-size:13px}.login-card label{color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;display:flex}.login-card input{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:14px}.login-card input:focus{border-color:var(--accent);outline:none}.password-field{display:flex;position:relative}.password-field input{flex:1;width:100%;padding-right:36px}.password-toggle{cursor:pointer;color:var(--text-dim);background:0 0;border:none;padding:4px 6px;font-size:14px;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover{color:var(--accent)}.login-card button[type=submit]{background:var(--accent);color:#06232a;cursor:pointer;border:none;border-radius:8px;margin-top:6px;padding:11px;font-size:14px;font-weight:600}.login-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.login-error{color:var(--error);font-size:12px}.manage-users-panel{width:640px;max-width:92vw}.manage-users-tabs{gap:8px;padding:12px 20px 0;display:flex}.activity-tab{padding:0 20px 20px}.activity-tab .library-filters{padding:12px 0}.activity-period-nav{align-items:center;gap:10px;margin-left:auto;display:flex}.activity-period-label{color:var(--text-dim);white-space:nowrap;font-size:12px}.activity-log-detail{width:480px;max-width:90vw;max-height:70vh;padding:16px 20px;overflow:auto}.activity-log-list{flex-direction:column;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.activity-log-item{border-bottom:1px solid var(--border);align-items:baseline;gap:10px;padding:6px 0;font-size:12px;display:flex}.activity-log-time{color:var(--text-dim);flex-shrink:0}.users-table{border-collapse:collapse;width:100%;margin-bottom:20px;font-size:13px}.users-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px;font-weight:500}.users-table td{border-bottom:1px solid var(--border);padding:8px}.add-user-form{flex-direction:column;gap:10px;display:flex}.add-user-form h3{color:var(--text-dim);margin:0;font-size:13px;font-weight:500}.add-user-form input,.add-user-form select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 12px;font-size:13px}.add-user-form button{background:var(--accent);color:#06232a;cursor:pointer;border:none;border-radius:8px;padding:10px;font-size:13px;font-weight:600}.add-user-form button:disabled{opacity:.6;cursor:not-allowed}.users-table-name{cursor:pointer;border-bottom:1px dashed var(--text-dim)}.users-table-name:hover{color:var(--accent)}.users-table-edit{background:var(--panel-2);border:1px solid var(--accent);color:var(--text);border-radius:6px;width:140px;padding:4px 8px;font-size:13px}.decision-bar{background:var(--panel-2);border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.decision-bar-feedback{flex-direction:column;align-items:stretch}.decision-prompt{color:var(--text);font-size:13px}.decision-actions{justify-content:flex-end;gap:8px;display:flex}.decision-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:7px 14px;font-size:13px}.decision-btn:disabled{opacity:.6;cursor:not-allowed}.decision-keep{border-color:var(--success);color:var(--success)}.decision-keep:hover:not(:disabled){background:#6fd68b1f}.decision-discard{border-color:var(--error);color:var(--error)}.decision-discard:hover:not(:disabled){background:#f278781f}.decision-feedback-input{background:var(--panel);border:1px solid var(--border);color:var(--text);resize:vertical;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}.decision-tag{border-top:1px solid var(--border);flex-shrink:0;padding:8px 16px;font-size:12px}.decision-tag-saved{color:var(--success)}.decision-tag-discarded{color:var(--text-dim)}.character-creation-column{flex:0 0 380px;width:380px}.character-creation-intro{margin-bottom:4px}.character-creation-layer{border-top:1px solid var(--border);padding-top:14px}.character-creation-generate-btn{text-align:center;align-self:stretch}.character-creation-layer-btn{background:var(--accent);border:1px solid var(--accent);color:#06232a;border-style:solid;font-weight:600}.character-creation-layer-btn:hover:not(:disabled){filter:brightness(1.08)}.character-creation-layer-btn:disabled{opacity:.75}.character-creation-error{color:#ff8a8a;font-size:12px}.character-creation-history{flex-wrap:wrap;gap:6px;display:flex}.character-creation-thumb-wrap{position:relative}.character-creation-thumb{cursor:pointer;background:var(--panel-2);border:2px solid #0000;border-radius:8px;width:48px;height:48px;padding:0;overflow:hidden}.character-creation-thumb img{object-fit:cover;width:100%;height:100%}.character-creation-thumb-active{border-color:var(--accent)}.character-creation-thumb-delete{color:#fff;cursor:pointer;background:#d64545;border:none;border-radius:50%;width:18px;height:18px;padding:0;font-size:13px;line-height:16px;position:absolute;top:-6px;right:-6px}.character-creation-thumb-delete:hover{background:#ff5c5c}.character-creation-refs{border:1px dashed #0000;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px;display:flex}.character-creation-refs-over{border-color:var(--accent);background:var(--panel-2)}.character-creation-ref-thumb{cursor:default;width:56px;height:56px}.character-creation-ref-add{border:1px dashed var(--accent);min-width:56px;height:56px;color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;display:flex}.character-creation-ref-add span{font-size:22px;line-height:1}.character-creation-ref-add:hover{background:var(--panel-2)}.character-creation-refs-count{width:100%;margin:0}.character-creation-thumb-download{text-align:center;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;width:18px;height:18px;padding:0;font-size:12px;line-height:18px;text-decoration:none;position:absolute;top:-6px;left:-6px}.character-creation-thumb-download:hover{filter:brightness(1.15)}.character-creation-preview{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;min-width:0;padding:0 14px;display:flex;overflow:hidden}.character-creation-preview h3{color:var(--text);margin:0}.character-creation-stage{aspect-ratio:2/3;background:var(--panel);border:1px solid var(--border);border-radius:12px;width:auto;max-width:100%;height:calc(100vh - 96px);position:relative;overflow:hidden}.character-creation-stage-layer{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.character-creation-picker{width:100%;margin-top:6px}.character-creation-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.character-creation-stage-zoomable{cursor:zoom-in}.character-creation-dark-btn{color:#fff;font:inherit;cursor:pointer;background:#000;border:1px solid #000;border-radius:8px;padding:8px 14px;font-size:13px}.character-creation-dark-btn:hover:not(:disabled){background:#222}.character-creation-dark-btn:disabled{opacity:.6;cursor:default}.character-creation-stage-loading{color:#fff;pointer-events:none;background:#00000059;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:16px;font-weight:600;display:flex;position:absolute;inset:0}.character-creation-stage-spinner{color:#fff;text-shadow:0 0 18px #00000080;font-size:96px;line-height:1}.character-creation-zoom-overlay{z-index:1000;background:#0a0c14e0;flex-direction:column;display:flex;position:fixed;inset:0}.character-creation-zoom-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:10px 16px;display:flex}.character-creation-zoom-toolbar .field-hint{color:#d8dbe6}.character-creation-zoom-level{text-align:center;color:#fff;font-variant-numeric:tabular-nums;min-width:48px}.character-creation-zoom-scroll{cursor:grab;touch-action:none;flex:1;overflow:auto}.character-creation-zoom-scroll:active{cursor:grabbing}.character-creation-zoom-stage{background:#fff;flex-shrink:0;max-width:none;margin:0 auto 16px}.character-creation-zoom-hd-img{pointer-events:none;position:absolute}.character-creation-zoom-hd{gap:18px;padding-top:0}.character-creation-zoom-hd-row{color:#fff;align-items:center;gap:8px;font-size:13px;display:flex}.character-creation-zoom-hd-row .field-hint,.character-creation-zoom-hd-state{color:#d8dbe6}.character-creation-zoom-hd-confirm{background:#ffffff14;border-radius:8px;flex-wrap:wrap;max-width:900px;padding:6px 10px}.character-creation-zoom-hd-toggle{color:#fff;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.character-creation-zoom-hd-state{min-width:150px}.character-creation-opacity-controls{flex-direction:column;gap:6px;width:100%;max-width:360px;display:flex}.character-creation-opacity-row{color:var(--text-muted,var(--text));align-items:center;gap:8px;font-size:12px;display:flex}.character-creation-opacity-row span:first-child{flex-shrink:0;width:90px}.character-creation-opacity-row input[type=range]{flex:1}.character-creation-opacity-row span:last-child{text-align:right;flex-shrink:0;width:34px}.closet-column{flex:0 0 380px;width:380px}.closet-list{border-top:1px solid var(--border);gap:10px;padding-top:14px}.closet-row{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.closet-row-done{border-color:var(--success)}.closet-row-error{border-color:var(--error)}.closet-row-head,.closet-row-foot,.closet-item-head{align-items:center;gap:8px;display:flex}.closet-row-head select{flex:1;min-width:0}.closet-row-num{opacity:.7;font-size:12px;font-weight:600}.closet-row-remove{width:22px;height:22px;color:var(--text);cursor:pointer;opacity:.6;background:0 0;border:none;border-radius:50%;margin-left:auto;padding:0;font-size:16px;line-height:20px}.closet-row-remove:hover:not(:disabled){opacity:1;color:#fff;background:#d64545d9}.closet-row-ok{color:var(--success);font-size:12px}.closet-stage-empty{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.closet-items{flex-direction:column;flex:0 0 260px;gap:10px;width:260px;min-height:0;padding-top:92px;display:flex;overflow-y:auto}.closet-item{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex-shrink:0;gap:6px;padding:8px;display:flex}.closet-item-wear{cursor:pointer;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.closet-item .closet-item-view{width:100%;height:160px}.closet-item .closet-item-view img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;position:static}.closet-item-desc{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.closet-row-locked{pointer-events:none;opacity:.55}.closet-collection{border-top:1px solid var(--border);gap:8px;padding-top:14px}.closet-inline{gap:6px;display:flex}.closet-inline input{flex:1;min-width:0}.closet-auto-badge{background:var(--accent);color:#06232a;border-radius:999px;align-self:flex-start;padding:1px 8px;font-size:11px;font-weight:600}.closet-photos{flex-direction:column;flex:0 0 92px;align-items:center;gap:10px;width:92px;min-height:0;padding:4px 8px 4px 0;display:flex;overflow-y:auto}.closet-photo-take{border:1px solid var(--accent);background:var(--panel);width:44px;height:44px;color:var(--accent);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.closet-photo-take:hover:not(:disabled){background:var(--accent);color:#06232a}.closet-photo-take:disabled{opacity:.35;cursor:default}.closet-photo{flex-shrink:0;position:relative}.closet-photo-thumb{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:8px;width:76px;padding:4px;display:block}.closet-photo-thumb:hover{border-color:var(--accent)}.closet-photo-thumb img{width:100%;height:auto;display:block}.closet-export{flex-direction:column;gap:6px;display:flex}.closet-item-move{gap:2px;margin-left:auto;display:flex}.closet-item-move button{border:1px solid var(--border);width:22px;height:22px;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:0;font-size:13px;line-height:20px}.closet-item-move button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.closet-item-move button:disabled{opacity:.3;cursor:default}.closet-item-move+.closet-row-remove{margin-left:0}.closet-item-downloads{gap:10px;font-size:12px;display:flex}.closet-item-downloads a{color:var(--accent);text-decoration:none}.closet-item-downloads a:hover{text-decoration:underline}.upscale-source-actions{flex-wrap:wrap;gap:8px;display:flex}.upscale-result-actions{justify-content:flex-end;width:100%;max-width:100%;display:flex}.upscale-source-preview{margin-top:10px}.upscale-source-preview img{border:1px solid var(--border);border-radius:8px;max-width:100%;max-height:220px;display:block}.image-upload-field{margin-top:10px}.image-upload-preview{align-items:center;gap:10px;margin-top:4px;display:flex}.image-upload-preview img{border:1px solid var(--border);object-fit:contain;border-radius:8px;max-width:120px;max-height:120px;display:block}.upscale-resolution-select{background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px}.ba-slider-wrap{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.ba-slider-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ba-slider-zoom-label{color:var(--text);min-width:56px;font-size:13px}.ba-zoom-btn{border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 12px;font-size:13px}.ba-zoom-btn-active{border-color:var(--accent);color:var(--accent)}.ba-zoom-pan-hint{margin:0}.ba-slider-scroll{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;width:100%;max-width:100%;max-height:82vh;overflow:auto}.ba-slider{aspect-ratio:2/3;cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none;position:relative;overflow:hidden}.ba-slider-img{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ba-slider-handle{pointer-events:none;background:#fff;width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px)}.ba-slider-handle-knob{color:#222;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 6px #0006}.ba-slider-label{color:#fff;pointer-events:none;background:#0000008c;border-radius:6px;padding:3px 8px;font-size:12px;position:absolute;top:10px}.ba-slider-label-before{left:10px}.ba-slider-label-after{right:10px}.storage-meter{color:#fff;white-space:nowrap;background:#00000059;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:12px;display:flex}.storage-meter-bar{background:#fff3;border-radius:3px;width:54px;height:6px;overflow:hidden}.storage-meter-fill{background:var(--accent);height:100%;transition:width .4s;display:block}.storage-meter-warn .storage-meter-fill{background:#f5a623}.storage-meter-danger .storage-meter-fill{background:#ff5a5a}.storage-meter-danger .storage-meter-pct{color:#ff8a8a;font-weight:700}.storage-meter-pct{font-variant-numeric:tabular-nums}.character-creation-thumb-hd{color:#fff;cursor:pointer;background:#000;border:none;border-radius:8px;padding:1px 6px;font-size:10px;font-weight:700;line-height:14px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.character-creation-thumb-hd:disabled{opacity:.7;cursor:default}.section-select{color:#fff;cursor:pointer;background:#000;border:1px solid #ffffff40;border-radius:999px;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600}.section-placeholder{justify-content:center;align-items:center}.section-placeholder-card{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:14px;max-width:520px;padding:32px 40px}.section-checks{flex-wrap:wrap;gap:4px 10px;display:flex}.section-check{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.account-menu{flex-shrink:0;position:relative}.account-menu-btn{background:var(--accent);color:#06232a;cursor:pointer;border:1px solid #ffffff4d;border-radius:50%;width:34px;height:34px;padding:0;font-size:12px;font-weight:700}.account-menu-panel{z-index:30;background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;min-width:240px;padding:10px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 30px #00000073}.account-menu-who{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding-bottom:8px;font-size:12px;display:flex}.account-menu-who span{color:var(--text-dim)}.account-menu-role{text-transform:capitalize}.account-menu-panel .language-switch{align-self:flex-start}.account-menu-item{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 8px;font-size:12px}.account-menu-item:hover{background:var(--panel-2)}.topbar-nav .learning-mode-btn{border:1px solid var(--border);border-radius:50%;padding:0}.topbar-nav .learning-mode-btn.learning-mode-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.topbar-nav{align-items:center}.character-creation-parts{flex-direction:column;flex:0 0 250px;gap:10px;width:250px;min-height:0;display:flex;overflow-y:auto}.character-creation-part{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;flex-shrink:0;gap:6px;padding:8px;display:flex}.character-creation-part-label{font-size:12px;font-weight:600}.character-creation-part-view{background-color:#2a2d3a;background-image:linear-gradient(45deg,#343849 25%,#0000 25%),linear-gradient(-45deg,#343849 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#343849 75%),linear-gradient(-45deg,#0000 75%,#343849 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;border-radius:8px;justify-content:center;align-items:center;max-width:100%;height:auto;margin:0 auto;display:flex;position:relative;overflow:hidden}.character-creation-part-view img{max-width:none;height:auto;position:absolute}.character-creation-preview-tools .character-creation-toolbar{justify-content:flex-start}.character-creation-picker-backdrop{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.character-creation-picker{background:var(--panel);border:1px solid var(--border,#ffffff1f);border-radius:14px;flex-direction:column;gap:10px;width:min(560px,100%);max-height:min(640px,90vh);padding:18px;display:flex}.character-creation-picker-title{font-size:16px;font-weight:600}.character-creation-picker-crumbs{overflow-wrap:anywhere;font-size:13px}.character-creation-picker-crumbs button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.character-creation-picker-list{background:var(--panel-2);border-radius:8px;flex-direction:column;gap:2px;min-height:160px;padding:4px;display:flex;overflow-y:auto}.character-creation-picker-row{text-align:left;color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;border-radius:6px;padding:7px 10px}.character-creation-picker-row:hover{background:#ffffff14}.character-creation-picker-new{gap:8px;display:flex}.character-creation-picker-new input{flex:1}.character-creation-picker-actions{justify-content:flex-end;gap:8px;display:flex}.mode-toggle button{position:relative}.mode-toggle{padding-top:6px}.tab-spin{margin-left:6px;font-size:.9em}.tab-ready-badge{background:var(--accent);color:#06232a;box-shadow:0 0 0 2px var(--panel-2), 0 0 8px var(--accent);pointer-events:none;border-radius:999px;padding:0 6px;font-size:10px;font-weight:700;line-height:15px;animation:.35s ease-out tab-ready-pop,1.6s ease-in-out .35s infinite tab-ready-pulse;position:absolute;top:-3px;right:-2px}@keyframes tab-ready-pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}@keyframes tab-ready-pulse{50%{box-shadow:0 0 0 2px var(--panel-2), 0 0 14px var(--accent)}}
