@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#0a0a12;--bg-secondary:#12121e;--bg-tertiary:#1a1a2e;--bg-card:#16162a;--bg-hover:#1e1e3a;--bg-glass:#16162ad9;--text-primary:#e8e8f0;--text-secondary:#9898b8;--text-muted:#5e5e80;--accent:#6c5ce7;--accent-light:#a29bfe;--accent-glow:#6c5ce74d;--success:#00d2a0;--danger:#ff6b6b;--danger-hover:#ff4757;--portal-color:orange;--info-color:#00bcd4;--border:#ffffff0f;--border-accent:#6c5ce766;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 20px #0006;--shadow-lg:0 8px 40px #00000080;--shadow-glow:0 0 20px var(--accent-glow);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--sidebar-width:280px;--topbar-height:56px;--transition:.2s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg-primary);width:100%;height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}.app-layout{flex-direction:column;width:100vw;height:100vh;display:flex}.app-body{flex:1;display:flex;overflow:hidden}.topbar{height:var(--topbar-height);background:var(--bg-secondary);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.topbar-left{align-items:center;gap:12px;display:flex}.topbar-logo{filter:drop-shadow(0 0 6px var(--accent-glow));font-size:1.5rem}.topbar-title{color:var(--text-primary);border-radius:var(--radius-sm);transition:var(--transition);background:0 0;border:1px solid #0000;width:280px;padding:6px 12px;font-family:inherit;font-size:1.1rem;font-weight:600}.topbar-title:hover{border-color:var(--border);background:var(--bg-tertiary)}.topbar-title:focus{border-color:var(--accent);background:var(--bg-tertiary);box-shadow:var(--shadow-glow);outline:none}.topbar-right{align-items:center;gap:16px;display:flex}.topbar-scene-indicator{color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:.85rem;font-weight:500}.btn-export{background:linear-gradient(135deg, var(--accent), #7c6cf0);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm);border:none;padding:8px 20px;font-family:inherit;font-size:.85rem;font-weight:600}.btn-export:hover{box-shadow:var(--shadow-glow), var(--shadow-md);filter:brightness(1.1);transform:translateY(-1px)}.btn-export:active{transform:translateY(0)}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.sidebar-header h2{letter-spacing:.02em;font-size:1rem;font-weight:600}.scene-count{color:var(--text-muted);background:var(--bg-tertiary);border-radius:10px;padding:2px 8px;font-size:.75rem;font-weight:500}.scene-list{flex-direction:column;flex:1;gap:4px;padding:8px;display:flex}.scene-card{border-radius:var(--radius-md);transition:var(--transition);border:1px solid #0000}.scene-card.active{background:var(--bg-tertiary);border-color:var(--border-accent);box-shadow:inset 0 0 0 1px var(--accent-glow)}.scene-btn{width:100%;color:var(--text-primary);cursor:pointer;border-radius:var(--radius-md);text-align:left;transition:var(--transition);background:0 0;border:none;align-items:center;gap:12px;padding:12px 14px;font-family:inherit;display:flex}.scene-btn:hover{background:var(--bg-hover)}.scene-card-draggable{cursor:grab}.scene-card-draggable:active{cursor:grabbing}.scene-card-draggable:hover .scene-thumb{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.scene-card-draggable .scene-thumb:after{content:"⠿";color:#ffffffb3;opacity:0;border-radius:inherit;background:#00000059;justify-content:center;align-items:center;font-size:1rem;transition:opacity .15s;display:flex;position:absolute;inset:0}.scene-card-draggable:hover .scene-thumb:after{opacity:1}.scene-thumb{border-radius:var(--radius-sm);background:var(--bg-primary);border:1.5px solid var(--border);width:52px;height:34px;transition:border-color var(--transition);flex-shrink:0;position:relative;overflow:hidden}.scene-card.active .scene-thumb{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow)}.scene-thumb-img{object-fit:cover;border-radius:calc(var(--radius-sm) - 1px);width:100%;height:100%;display:block}.scene-thumb-badge{color:var(--accent-light);text-shadow:0 0 4px var(--accent-glow);font-size:.45rem;line-height:1;position:absolute;top:3px;right:4px}.scene-thumb-initial{color:#ffffff8c;letter-spacing:.02em;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex;position:absolute;inset:0}.scene-info{flex-direction:column;gap:2px;display:flex}.scene-name{font-size:.9rem;font-weight:500}.scene-meta{color:var(--text-muted);font-size:.72rem}.hotspot-list{flex-direction:column;gap:2px;padding:4px 12px 8px 68px;list-style:none;display:flex}.hotspot-item{border-radius:var(--radius-sm);color:var(--text-secondary);transition:var(--transition);align-items:center;gap:8px;padding:4px 8px;font-size:.78rem;display:flex}.hotspot-item:hover{background:var(--bg-hover)}.hs-icon{font-size:.9rem}.hs-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.hs-remove{color:var(--text-muted);cursor:pointer;opacity:0;transition:var(--transition);background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:.75rem}.hotspot-item:hover .hs-remove{opacity:1}.hs-remove:hover{color:var(--danger);background:#ff6b6b1a}.sidebar-footer{border-top:1px solid var(--border);padding:12px 16px}.sidebar-hint{color:var(--text-muted);font-size:.72rem;line-height:1.5}.canvas-area{background:var(--bg-primary);flex:1;position:relative;overflow:hidden}#three-canvas-container canvas{cursor:crosshair;display:block}.canvas-drop-overlay{pointer-events:none;z-index:50;border:2.5px dashed var(--accent);background:#6c5ce712;border-radius:4px;justify-content:center;align-items:center;animation:.9s ease-in-out infinite drop-overlay-pulse;display:flex;position:absolute;inset:0}@keyframes drop-overlay-pulse{0%,to{border-color:var(--accent);background:#6c5ce712}50%{border-color:var(--accent-light);background:#6c5ce721}}.canvas-drop-label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--radius-lg);color:var(--accent-light);letter-spacing:.02em;background:#0c0c16bf;border:1px solid #6c5ce766;align-items:center;gap:10px;padding:10px 20px;font-size:.85rem;font-weight:600;display:flex;box-shadow:0 4px 20px #00000080}.canvas-drop-icon{font-size:1.2rem}.hotspot-marker{cursor:default;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;animation:2s ease-in-out infinite hotspot-pulse;display:flex;position:relative}.hotspot-info{border:2px solid var(--info-color);background:radial-gradient(circle,#00bcd466,#00bcd426);box-shadow:0 0 12px #00bcd466}.hotspot-portal{border:2px solid var(--portal-color);background:radial-gradient(circle,#ffa50066,#ffa50026);box-shadow:0 0 12px #ffa50066}.hotspot-tooltip{white-space:nowrap;background:var(--bg-glass);color:var(--text-primary);border-radius:var(--radius-sm);border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;opacity:0;padding:4px 10px;font-family:Inter,sans-serif;font-size:.72rem;transition:opacity .2s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.hotspot-marker:hover .hotspot-tooltip{opacity:1}.hotspot-marker:hover{transition:transform .15s;transform:scale(1.2)}.hotspot-dragging{opacity:.75;animation:.5s ease-in-out infinite hotspot-drag-pulse!important;transform:scale(1.25)!important}@keyframes hotspot-drag-pulse{0%,to{box-shadow:0 0 16px var(--accent-glow), 0 0 32px var(--accent-glow)}50%{box-shadow:0 0 28px var(--accent-glow), 0 0 52px #6c5ce780}}@keyframes hotspot-pulse{0%,to{box-shadow:0 0 12px #6c5ce74d}50%{box-shadow:0 0 22px #6c5ce799}}.hotspot-form-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;background:#0000008c;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:absolute;inset:0}.hotspot-form{background:var(--bg-secondary);border:1px solid var(--border-accent);border-radius:var(--radius-lg);width:380px;max-width:90vw;box-shadow:var(--shadow-lg), var(--shadow-glow);padding:28px 32px;animation:.25s slide-up}.hotspot-form h3{color:var(--text-primary);margin-bottom:16px;font-size:1.15rem;font-weight:600}.form-coord-info{background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-muted);gap:16px;margin-bottom:18px;padding:8px 12px;font-family:Courier New,monospace;font-size:.75rem;display:flex}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.form-group input,.form-group textarea,.form-group select{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:var(--transition);outline:none;padding:10px 14px;font-family:inherit;font-size:.88rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-group textarea{resize:vertical;min-height:60px}.form-group select{cursor:pointer}.form-actions{gap:10px;margin-top:20px;display:flex}.btn-cancel,.btn-save{border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;flex:1;padding:10px 0;font-family:inherit;font-size:.88rem;font-weight:600}.btn-cancel{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-save{background:linear-gradient(135deg, var(--accent), #7c6cf0);color:#fff;box-shadow:var(--shadow-sm)}.btn-save:hover{filter:brightness(1.1);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-save:active{transform:translateY(0)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.inspector-panel{background:var(--bg-secondary);border-left:1px solid var(--border);flex-direction:column;width:260px;min-width:260px;display:flex;overflow:hidden auto}.inspector-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:14px 16px 12px;display:flex}.inspector-header-title{color:var(--text-primary);font-size:.88rem;font-weight:600}.inspector-type-badge{letter-spacing:.03em;border-radius:20px;padding:3px 10px;font-size:.78rem;font-weight:600}.badge-info{color:var(--info-color);background:#00bcd426;border:1px solid #00bcd459}.badge-portal{color:var(--portal-color);background:#ffa50026;border:1px solid #ffa50059}.inspector-deselect{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);background:0 0;border:none;margin-left:auto;padding:4px 6px;font-size:.9rem;line-height:1}.inspector-deselect:hover{background:var(--bg-hover);color:var(--text-primary)}.inspector-section{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.inspector-section-danger{border-bottom:none;margin-top:auto;padding-top:12px}.inspector-row{justify-content:space-between;align-items:center;display:flex}.inspector-label{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);font-size:.72rem;font-weight:600}.inspector-value{color:var(--accent-light);font-family:Courier New,monospace;font-size:.82rem;font-weight:600}.inspector-url{color:var(--text-secondary);word-break:break-all;font-family:Courier New,monospace;font-size:.75rem}.inspector-count{color:var(--text-primary);font-size:1.4rem;font-weight:700;line-height:1}.inspector-input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:var(--transition);outline:none;padding:8px 10px;font-family:inherit;font-size:.85rem}.inspector-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.inspector-textarea{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);resize:vertical;min-height:72px;transition:var(--transition);outline:none;padding:8px 10px;font-family:inherit;font-size:.85rem}.inspector-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.inspector-select{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;transition:var(--transition);outline:none;padding:8px 10px;font-family:inherit;font-size:.85rem}.inspector-select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.inspector-slider{-webkit-appearance:none;background:linear-gradient(to right, var(--accent) 0%, var(--accent) calc((var(--val,50) / 80) * 100%), var(--bg-hover) calc((var(--val,50) / 80) * 100%), var(--bg-hover) 100%);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px}.inspector-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent-light);width:14px;height:14px;box-shadow:0 0 6px var(--accent-glow);cursor:pointer;border-radius:50%;transition:transform .1s}.inspector-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.inspector-slider-labels{color:var(--text-muted);justify-content:space-between;margin-top:2px;font-size:.65rem;display:flex}.inspector-coords-block{background:var(--bg-primary)}.inspector-coord-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.inspector-coord-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;min-width:36px;font-size:.72rem;font-weight:600}.inspector-coord-val{color:var(--text-secondary);text-align:right;font-family:Courier New,monospace;font-size:.72rem}.inspector-hs-list{flex-direction:column;gap:2px;margin-top:4px;list-style:none;display:flex}.inspector-hs-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:var(--transition);align-items:center;gap:8px;padding:5px 8px;font-size:.78rem;display:flex}.inspector-hs-item:hover{background:var(--bg-hover);color:var(--text-primary)}.inspector-hs-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.btn-danger{border-radius:var(--radius-sm);width:100%;color:var(--danger);cursor:pointer;transition:var(--transition);background:#ff6b6b1a;border:1px solid #ff6b6b4d;padding:9px 0;font-family:inherit;font-size:.85rem;font-weight:600}.btn-danger:hover{border-color:var(--danger);background:#ff6b6b33;box-shadow:0 0 12px #ff6b6b33}.hotspot-selected{outline:3px solid var(--accent-light);outline-offset:3px;box-shadow:0 0 18px var(--accent-glow), 0 0 6px #a29bfe99!important}.hotspot-icon-img{object-fit:contain;border-radius:4px;width:26px;height:26px;display:block}.icon-current-preview{align-items:center;gap:10px;padding:6px 0 4px;display:flex}.icon-current-img{object-fit:contain;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;width:36px;height:36px;padding:3px}.icon-current-emoji{background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.4rem;display:flex}.icon-upload-btn{border:1.5px dashed var(--accent);border-radius:var(--radius-sm);color:var(--accent-light);cursor:pointer;transition:var(--transition);text-align:center;background:0 0;flex:1;padding:7px 10px;font-family:inherit;font-size:.8rem;font-weight:600}.icon-upload-btn:hover{background:var(--accent-glow);border-style:solid}.icon-clear-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);background:0 0;border:none;padding:2px 6px;font-family:inherit;font-size:.7rem}.icon-clear-btn:hover{color:var(--danger);background:#ff6b6b1a}.icon-picker-grid{grid-template-columns:repeat(4,1fr);gap:5px;margin-top:4px;display:grid}.icon-thumb-wrap{position:relative}.icon-thumb{aspect-ratio:1;background:var(--bg-primary);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:var(--transition);justify-content:center;align-items:center;padding:4px;display:flex}.icon-thumb img{object-fit:contain;border-radius:3px;width:100%;height:100%}.icon-thumb:hover{border-color:var(--accent);background:var(--bg-hover)}.icon-thumb.active{border-color:var(--accent-light);box-shadow:0 0 0 2px var(--accent-glow);background:#6c5ce71a}.icon-thumb-remove{background:var(--danger);color:#fff;cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.55rem;line-height:1;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:-5px;right:-5px;transform:scale(.7)}.icon-thumb-wrap:hover .icon-thumb-remove{opacity:1;transform:scale(1)}.icon-thumb-remove:hover{background:var(--danger-hover)}.hotspot-tint-overlay{mix-blend-mode:color;pointer-events:none;opacity:.6;border-radius:50%;position:absolute;inset:0}.tooltip-always{opacity:1!important;visibility:visible!important}.insp-section{border-bottom:1px solid var(--border)}.insp-section-header{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;transition:background var(--transition);background:0 0;border:none;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:.82rem;font-weight:600;display:flex}.insp-section-header:hover{background:var(--bg-hover)}.insp-sec-icon{font-size:.9rem}.insp-sec-title{flex:1}.insp-sec-arrow{color:var(--text-muted);font-size:.75rem;transition:transform .2s;display:inline-block}.insp-sec-arrow.open{transform:rotate(180deg)}.insp-section-body{flex-direction:column;gap:8px;padding:8px 12px 12px;display:flex}.insp-ctrl-row{align-items:center;gap:8px;min-height:24px;display:flex}.insp-ctrl-label{color:var(--text-muted);white-space:nowrap;min-width:72px;font-size:.72rem;font-weight:500}.insp-slider-number{flex:1;align-items:center;gap:6px;display:flex}.insp-slider-number .inspector-slider{flex:1;height:3px}.insp-num-wrap{align-items:center;gap:2px;display:flex}.insp-number-input{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);width:44px;color:var(--text-primary);text-align:center;-moz-appearance:textfield;outline:none;padding:3px 5px;font-family:Courier New,monospace;font-size:.75rem}.insp-number-input::-webkit-outer-spin-button{-webkit-appearance:none}.insp-number-input::-webkit-inner-spin-button{-webkit-appearance:none}.insp-number-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.insp-unit{color:var(--text-muted);min-width:14px;font-size:.65rem}.insp-toggle-row{cursor:pointer;align-items:center;gap:8px;display:flex}.insp-toggle{background:var(--bg-hover);border:1px solid var(--border);cursor:pointer;border-radius:9px;flex-shrink:0;width:34px;height:18px;padding:0;transition:background .2s,border-color .2s;position:relative}.insp-toggle.on{background:var(--accent);border-color:var(--accent)}.insp-toggle-knob{background:var(--text-muted);border-radius:50%;width:12px;height:12px;transition:transform .2s,background .2s;display:block;position:absolute;top:2px;left:2px}.insp-toggle.on .insp-toggle-knob{background:#fff;transform:translate(16px)}.insp-color-row{align-items:center;gap:6px;display:flex}.insp-color-input{border:1px solid var(--border);background:var(--bg-tertiary);cursor:pointer;border-radius:4px;outline:none;width:28px;height:22px;padding:1px}.insp-color-hex{color:var(--text-secondary);font-family:Courier New,monospace;font-size:.72rem}.insp-radio-group{flex-direction:column;gap:4px;display:flex}.insp-radio-item{color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;font-size:.78rem;display:flex}.insp-radio-item input[type=radio]{accent-color:var(--accent);width:13px;height:13px}.insp-btn-group{gap:3px;display:flex}.insp-fmt-btn{background:var(--bg-tertiary);border:1px solid var(--border);width:28px;height:24px;color:var(--text-secondary);cursor:pointer;transition:var(--transition);border-radius:4px;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:.78rem;display:flex}.insp-fmt-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.insp-fmt-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.insp-field-group{flex-direction:column;gap:4px;display:flex}.insp-link-btn{color:var(--accent-light);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;font-size:.72rem;transition:color .15s}.insp-link-btn:hover{color:var(--text-primary)}.insp-hint{color:var(--text-muted);margin-top:2px;font-size:.65rem;font-style:italic}.info-content-editor{tab-size:2;white-space:pre;overflow-wrap:normal;min-height:120px;line-height:1.5;overflow-x:auto;font-family:Courier New,Fira Code,monospace!important;font-size:.75rem!important}.info-content-preview{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:80px;color:var(--text-primary);max-height:260px;padding:10px 12px;font-size:.82rem;line-height:1.6;overflow:auto}.info-content-preview a{color:var(--accent-light);text-decoration:underline}.info-content-preview img{border-radius:6px;max-width:100%;margin:6px 0}.info-content-preview iframe{border:none;border-radius:6px;width:100%;margin:6px 0}.info-content-preview h1,.info-content-preview h2,.info-content-preview h3,.info-content-preview h4{color:var(--text-primary);margin:8px 0 4px}.info-content-preview p{margin:4px 0}.insp-quick-insert{align-items:center;gap:8px;margin-top:4px;display:flex}.info-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:500;background:#000000b3;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;inset:0}.info-modal{background:var(--bg-secondary);border:1px solid var(--border-accent);border-radius:var(--radius-lg);width:640px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-lg), var(--shadow-glow), 0 0 80px #6c5ce71a;flex-direction:column;animation:.3s cubic-bezier(.22,1,.36,1) slide-up;display:flex}.info-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.info-modal-title{color:var(--text-primary);align-items:center;gap:10px;margin:0;font-size:1.15rem;font-weight:700;display:flex}.info-modal-icon{font-size:1.3rem}.info-modal-close{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;width:32px;height:32px;transition:var(--transition);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;display:flex}.info-modal-close:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent);box-shadow:var(--shadow-glow)}.info-modal-body{color:var(--text-primary);flex:1;padding:24px;font-size:.95rem;line-height:1.7;overflow-y:auto}.info-modal-description{color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:16px;font-size:.9rem;line-height:1.6}.info-modal-content h1,.info-modal-content h2,.info-modal-content h3,.info-modal-content h4,.info-modal-content h5{color:var(--text-primary);margin:16px 0 8px;font-weight:600}.info-modal-content h1{font-size:1.5rem}.info-modal-content h2{font-size:1.3rem}.info-modal-content h3{font-size:1.1rem}.info-modal-content p{color:var(--text-primary);margin:8px 0}.info-modal-content a{color:var(--accent-light);text-underline-offset:2px;text-decoration:underline;transition:color .15s}.info-modal-content a:hover{color:#fff}.info-modal-content img{border-radius:var(--radius-md);max-width:100%;box-shadow:var(--shadow-sm);margin:12px 0}.info-modal-content iframe{border-radius:var(--radius-md);width:100%;min-height:315px;box-shadow:var(--shadow-md);border:none;margin:12px 0}.info-modal-content ul,.info-modal-content ol{margin:8px 0;padding-left:20px}.info-modal-content li{margin:4px 0}.info-modal-content blockquote{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);background:#6c5ce70f;margin:12px 0;padding:8px 16px;font-style:italic}.info-modal-content code{background:var(--bg-tertiary);color:var(--accent-light);border-radius:4px;padding:2px 6px;font-family:Courier New,monospace;font-size:.85em}.info-modal-content pre{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);margin:12px 0;padding:12px 16px;overflow-x:auto}.info-modal-content pre code{background:0 0;padding:0}.info-modal-content table{border-collapse:collapse;width:100%;margin:12px 0}.info-modal-content th,.info-modal-content td{border:1px solid var(--border);text-align:left;padding:8px 12px;font-size:.88rem}.info-modal-content th{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600}.info-modal-empty{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:.9rem;font-style:italic}.music-player{z-index:600;-webkit-backdrop-filter:blur(14px);background:#0c0c14b8;border:1px solid #ffffff14;border-radius:18px;align-items:center;gap:8px;height:36px;padding:0 12px;animation:.25s music-player-in;display:flex;position:fixed;top:16px;right:16px;box-shadow:0 2px 12px #0006}@keyframes music-player-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.music-play-btn{color:#ffffffbf;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.75rem;line-height:1;transition:color .15s}.music-play-btn:hover{color:#fff}.music-play-btn:active{opacity:.7}.music-player-track{color:#ffffff8c;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize;letter-spacing:.01em;max-width:120px;font-size:.72rem;font-weight:500;overflow:hidden}.music-mute-btn{letter-spacing:.06em;text-transform:uppercase;cursor:pointer;color:#ffffff59;background:0 0;border:none;flex-shrink:0;padding:0;font-family:inherit;font-size:.6rem;font-weight:600;line-height:1;transition:color .15s}.music-mute-btn:hover{color:#ffffffb3}.music-volume-slider{-webkit-appearance:none;background:linear-gradient(to right, #fff9 0%, #fff9 var(--vol-pct,80%), #ffffff1f var(--vol-pct,80%), #ffffff1f 100%);cursor:pointer;border-radius:1px;outline:none;flex-shrink:0;width:68px;height:2px}.music-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#ffffffd9;border-radius:50%;width:10px;height:10px;transition:transform .1s}.music-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.25)}.music-vol-label{color:#ffffff4d;text-align:right;min-width:24px;font-family:Courier New,monospace;font-size:.6rem}.music-test-btn{background:var(--bg-tertiary);border:1px solid var(--border-accent);border-radius:var(--radius-sm);width:30px;height:30px;color:var(--accent-light);cursor:pointer;transition:var(--transition);flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.85rem;display:flex}.music-test-btn:hover:not(:disabled){background:var(--accent-glow);border-color:var(--accent)}.music-test-btn:disabled{opacity:.35;cursor:not-allowed}.music-test-btn-playing{box-shadow:0 0 8px var(--accent-glow);animation:1s ease-in-out infinite music-test-pulse;border-color:var(--accent)!important;background:#6c5ce740!important}@keyframes music-test-pulse{0%,to{box-shadow:0 0 6px var(--accent-glow)}50%{box-shadow:0 0 14px var(--accent-glow)}}.music-upload-btn{border:1.5px dashed var(--accent);border-radius:var(--radius-sm);width:100%;color:var(--accent-light);cursor:pointer;transition:var(--transition);text-align:center;background:0 0;padding:8px 12px;font-family:inherit;font-size:.8rem;font-weight:600}.music-upload-btn:hover:not(:disabled){background:var(--accent-glow);border-style:solid}.music-upload-btn:disabled{opacity:.5;cursor:wait}.music-upload-badge{border:1px solid var(--border-accent);border-radius:var(--radius-sm);background:#6c5ce714;align-items:center;gap:6px;padding:6px 10px;display:flex}.music-upload-icon{flex-shrink:0;font-size:.9rem}.music-upload-name{color:var(--accent-light);text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:Courier New,monospace;font-size:.75rem;overflow:hidden}.music-upload-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px 4px;font-size:.7rem;line-height:1;transition:color .15s}.music-upload-remove:hover{color:var(--danger)}.input-error{border-color:#f0a500!important;box-shadow:0 0 0 2px #f0a50033!important}.music-url-warning{color:#f0a500;border-radius:var(--radius-sm);background:#f0a50014;border:1px solid #f0a5004d;margin-top:2px;padding:6px 8px;font-size:.68rem;line-height:1.5}.music-url-warning code{background:#f0a50026;border-radius:3px;padding:1px 4px;font-family:Courier New,monospace;font-size:.66rem}.dashboard{background:radial-gradient(ellipse at 20% 0%, #6c5ce714 0%, transparent 50%), radial-gradient(ellipse at 80% 100%, #a29bfe0f 0%, transparent 50%), var(--bg-primary);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.dashboard-header{text-align:center;flex-shrink:0;padding:40px 20px 20px}.dashboard-logo{justify-content:center;align-items:center;gap:14px;margin-bottom:8px;display:flex}.dashboard-logo-icon{filter:drop-shadow(0 0 12px var(--accent-glow));font-size:2.2rem;animation:3s ease-in-out infinite logo-float}@keyframes logo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.dashboard-title{background:linear-gradient(135deg, var(--text-primary) 30%, var(--accent-light));-webkit-text-fill-color:transparent;letter-spacing:-.01em;-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:700}.dashboard-subtitle{color:var(--text-muted);font-size:.88rem;font-weight:400}.dashboard-body{flex:1;gap:16px;min-height:0;padding:0 24px 24px;display:flex;overflow:hidden}.dash-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.projects-panel{flex-shrink:0;width:340px;min-width:300px}.media-panel{flex:1;min-width:0}.dash-panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dash-panel-header h2{align-items:center;gap:6px;font-size:1rem;font-weight:600;display:flex}.media-project-name{color:var(--accent-light);font-weight:500}.media-counter{color:var(--text-muted);background:var(--bg-tertiary);border-radius:10px;padding:2px 10px;font-size:.75rem}.btn-new-project{background:linear-gradient(135deg, var(--accent), #7c6cf0);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm);border:none;align-items:center;gap:6px;padding:7px 16px;font-family:inherit;font-size:.8rem;font-weight:600;display:flex}.btn-new-project:hover{box-shadow:var(--shadow-glow), var(--shadow-md);filter:brightness(1.1);transform:translateY(-1px)}.btn-new-project:active{transform:translateY(0)}.project-list{flex-direction:column;flex:1;gap:6px;padding:10px;display:flex;overflow-y:auto}.project-card{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);border:1px solid #0000;align-items:center;gap:12px;padding:12px 14px;display:flex;position:relative;overflow:hidden}.project-card:hover{background:var(--bg-hover)}.project-card-active{background:var(--bg-tertiary);border-color:var(--border-accent);box-shadow:inset 0 0 0 1px var(--accent-glow)}.project-card-accent{opacity:.7;width:4px;height:32px;transition:var(--transition);border-radius:2px;flex-shrink:0}.project-card-active .project-card-accent{opacity:1;box-shadow:0 0 8px}.project-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.project-card-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;cursor:text;font-size:.9rem;font-weight:500;overflow:hidden}.project-card-meta{color:var(--text-muted);font-size:.72rem}.project-rename-input{background:var(--bg-tertiary);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-glow);outline:none;width:100%;padding:4px 8px;font-family:inherit;font-size:.88rem;font-weight:500}.project-card-delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:var(--transition);background:0 0;border:none;flex-shrink:0;padding:4px 6px;font-size:.8rem}.project-card:hover .project-card-delete{opacity:1}.project-card-delete:hover{color:var(--danger);background:#ff6b6b1a}.empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:48px 20px;display:flex}.media-empty{height:100%}.empty-icon{opacity:.5;margin-bottom:12px;font-size:3rem}.empty-state p{color:var(--text-secondary);font-size:.95rem;font-weight:500}.empty-hint{margin-top:4px;color:var(--text-muted)!important;font-size:.8rem!important;font-weight:400!important}.dropzone{border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition);background:#ffffff04;border:2px dashed #ffffff1f;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:6px;margin:16px 20px 0;padding:32px 20px;display:flex}.dropzone:hover{background:#6c5ce70a;border-color:#6c5ce766}.dropzone-active{animation:.8s ease-in-out infinite dropzone-pulse;border-color:var(--accent)!important;background:#6c5ce71a!important}@keyframes dropzone-pulse{0%,to{border-color:var(--accent);background:#6c5ce714}50%{border-color:var(--accent-light);background:#6c5ce724}}.dropzone-uploading{pointer-events:none;opacity:.7}.dropzone-icon{opacity:.6;font-size:2rem}.dropzone p{color:var(--text-secondary);font-size:.88rem;font-weight:500}.dropzone-hint{color:var(--text-muted)!important;font-size:.75rem!important;font-weight:400!important}.media-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));align-content:start;gap:12px;padding:16px 20px;display:grid;overflow-y:auto}.media-thumb{border-radius:var(--radius-md);aspect-ratio:16/10;background:var(--bg-tertiary);border:1px solid var(--border);cursor:default;transition:var(--transition);animation:.3s both media-appear;position:relative;overflow:hidden}@keyframes media-appear{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.media-thumb:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-glow);transform:translateY(-2px)}.media-thumb img{object-fit:cover;width:100%;height:100%;display:block}.media-thumb-overlay{opacity:0;background:linear-gradient(#0000,#000000bf);flex-direction:column;gap:1px;padding:6px 8px;transition:opacity .15s;display:flex;position:absolute;bottom:0;left:0;right:0}.media-thumb:hover .media-thumb-overlay{opacity:1}.media-thumb-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:500;overflow:hidden}.media-thumb-size{color:var(--text-muted);font-size:.65rem}.media-thumb-delete{width:22px;height:22px;color:var(--text-secondary);cursor:pointer;opacity:0;transition:var(--transition);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;font-size:.65rem;display:flex;position:absolute;top:6px;right:6px}.media-thumb:hover .media-thumb-delete{opacity:1}.media-thumb-delete:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.media-actions{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;padding:14px 20px;display:flex}.btn-open-editor{background:linear-gradient(135deg, var(--accent), #7c6cf0);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);box-shadow:var(--shadow-sm);letter-spacing:.01em;border:none;padding:10px 28px;font-family:inherit;font-size:.92rem;font-weight:600}.btn-open-editor:hover{box-shadow:var(--shadow-glow), var(--shadow-md);filter:brightness(1.1);transform:translateY(-1px)}.btn-open-editor:active{transform:translateY(0)}.btn-open-editor:disabled{opacity:.5;pointer-events:none}.btn-back-dashboard{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap;align-items:center;gap:4px;padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:500;display:flex}.btn-back-dashboard:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent)}.dash-audio-section{border-top:1px solid var(--border);flex-shrink:0;padding:0}.dash-audio-header{justify-content:space-between;align-items:center;padding:12px 20px 8px;display:flex}.dash-audio-header h3{align-items:center;gap:6px;font-size:.92rem;font-weight:600;display:flex}.dropzone-audio{margin:0 20px;padding:18px 16px}.audio-list{flex-direction:column;gap:4px;padding:8px 20px 16px;list-style:none;display:flex}.audio-item{border-radius:var(--radius-sm);transition:var(--transition);border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;animation:.25s both media-appear;display:flex}.audio-item:hover{background:var(--bg-hover)}.audio-item-playing{background:var(--bg-tertiary);border-color:var(--border-accent)}.audio-play-btn{border:1.5px solid var(--accent);width:30px;height:30px;color:var(--accent-light);cursor:pointer;transition:var(--transition);background:#6c5ce71f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;display:flex}.audio-play-btn:hover{background:#6c5ce740;transform:scale(1.08)}.audio-item-playing .audio-play-btn{background:var(--accent);color:#fff;animation:1.2s ease-in-out infinite audio-pulse}@keyframes audio-pulse{0%,to{box-shadow:0 0 #6c5ce766}50%{box-shadow:0 0 0 6px #6c5ce700}}.audio-item-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.audio-item-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:500;overflow:hidden}.audio-item-meta{color:var(--text-muted);font-size:.68rem}.audio-item-delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);opacity:0;transition:var(--transition);background:0 0;border:none;padding:4px 6px;font-size:.75rem}.audio-item:hover .audio-item-delete{opacity:1}.audio-item-delete:hover{color:var(--danger);background:#ff6b6b1a}
