.studio-header{height:56px;background:#0f172a;border-bottom:1px solid #1e293b;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;flex-shrink:0}.header-brand{display:flex;align-items:center;gap:1rem}.header-brand h1{font-size:1.25rem;font-weight:700;background:linear-gradient(90deg,#06b6d4,#22d3ee);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.project-name{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#94a3b8;padding-left:1rem;border-left:1px solid #334155}.unsaved-dot{width:8px;height:8px;background:#f59e0b;border-radius:50%}.header-tools{display:flex;align-items:center;gap:.25rem;background:#1e293b;padding:.25rem;border-radius:.5rem}.tool-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:.375rem;color:#64748b;cursor:pointer;transition:all .15s ease;position:relative}.tool-btn:hover{background:#334155;color:#e2e8f0}.tool-btn.active{background:#06b6d4;color:#fff}.tool-shortcut{position:absolute;bottom:2px;right:2px;font-size:.625rem;font-weight:700;color:#64748b;opacity:0;transition:opacity .15s ease}.tool-btn:hover .tool-shortcut,.tool-btn.active .tool-shortcut{opacity:.7}.tool-btn.active .tool-shortcut{color:#fff}.tool-divider{width:1px;height:24px;background:#334155;margin:0 .25rem}.header-actions,.new-project-form{display:flex;align-items:center;gap:.5rem}.new-project-form input{padding:.5rem .75rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;color:#e2e8f0;font-size:.875rem;width:200px}.new-project-form input:focus{outline:none;border-color:#06b6d4}.btn-primary,.btn-secondary,.btn-ghost{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-primary{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #06b6d466}.btn-secondary{background:#1e293b;color:#e2e8f0;border:1px solid #334155}.btn-secondary:hover{background:#334155}.btn-ghost{background:transparent;color:#94a3b8}.btn-ghost:hover{color:#e2e8f0}.spin{animation:spin 1s linear infinite}.btn-publish{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:.5rem;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-publish:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.btn-publish:disabled{opacity:.5;cursor:not-allowed}.tool-btn:disabled{opacity:.4;cursor:not-allowed}.scene-sidebar{width:280px;min-width:280px;background:#0f172a;border-right:1px solid #1e293b;display:flex;flex-direction:column;height:100%}.sidebar-header{padding:1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #1e293b}.sidebar-header h2{font-size:.875rem;font-weight:600;color:#e2e8f0;text-transform:uppercase;letter-spacing:.05em}.scene-count{background:#06b6d4;color:#0f172a;font-size:.75rem;font-weight:700;padding:.125rem .5rem;border-radius:9999px}.scene-list{flex:1;overflow-y:auto;padding:.5rem}.scene-list.drag-over{background:#06b6d41a;border:2px dashed #06b6d4;border-radius:.5rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#64748b;text-align:center;height:100%}.empty-state svg{margin-bottom:1rem;opacity:.5}.empty-state p{font-size:.875rem;margin-bottom:.25rem}.empty-state span{font-size:.75rem;opacity:.7}.scene-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;margin-bottom:.25rem;background:#1e293b;border-radius:.5rem;cursor:pointer;transition:all .15s ease;border:2px solid transparent;position:relative}.scene-item:hover{background:#334155}.scene-item.selected{border-color:#06b6d4;background:#06b6d41a}.scene-item.dragging{opacity:.5;transform:scale(.98)}.scene-item.drag-over{border-color:#f59e0b;background:#f59e0b1a}.scene-item.drag-over:before{content:"";position:absolute;top:-4px;left:0;right:0;height:3px;background:#f59e0b;border-radius:2px}.scene-drag-handle{color:#475569;cursor:grab;padding:.25rem;transition:color .15s ease}.scene-drag-handle:hover{color:#94a3b8}.scene-drag-handle:active{cursor:grabbing}.scene-thumbnail{width:56px;height:42px;border-radius:.375rem;background-size:cover;background-position:center;flex-shrink:0;position:relative;border:1px solid #334155}.first-scene-badge{position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 4px #0000004d}.scene-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.scene-title{font-size:.875rem;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text}.scene-title:hover{color:#06b6d4}.scene-hotspots{font-size:.75rem;color:#64748b}.scene-edit-form{display:flex;align-items:center;gap:.25rem}.scene-edit-form input{flex:1;padding:.25rem .5rem;background:#0f172a;border:1px solid #06b6d4;border-radius:.25rem;color:#e2e8f0;font-size:.875rem;min-width:0}.scene-edit-form input:focus{outline:none}.edit-btn{padding:.25rem;background:transparent;border:none;border-radius:.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.edit-btn.save{color:#22c55e}.edit-btn.save:hover{background:#22c55e33}.edit-btn.cancel{color:#ef4444}.edit-btn.cancel:hover{background:#ef444433}.scene-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .15s ease}.scene-item:hover .scene-actions{opacity:1}.scene-action-btn{padding:.375rem;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:.25rem;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.scene-action-btn:hover{background:#334155;color:#f59e0b}.scene-action-btn.delete:hover{background:#ef4444;color:#fff}.sidebar-actions{padding:.75rem;border-top:1px solid #1e293b}.add-scene-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:.5rem;color:#fff;font-weight:600;cursor:pointer;transition:all .15s ease}.add-scene-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #06b6d466}.add-scene-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:.875rem;padding:1rem;text-align:center}.panorama-viewer{flex:1;display:flex;flex-direction:column;background:#020617;position:relative;overflow:hidden}.panorama-viewer.empty{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b)}.empty-message{text-align:center;color:#64748b}.empty-message h2{font-size:1.5rem;color:#e2e8f0;margin-bottom:.5rem}.empty-message p{font-size:1rem}.viewer-toolbar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(to bottom,rgba(0,0,0,.7),transparent);pointer-events:none}.viewer-toolbar>*{pointer-events:auto}.scene-name{font-size:1rem;font-weight:600;color:#fff}.hotspot-hint{font-size:.75rem;color:#94a3b8;background:#00000080;padding:.25rem .75rem;border-radius:9999px}.pannellum-container{flex:1;width:100%;height:100%;position:relative;cursor:grab}.pannellum-container:active{cursor:grabbing}.pnlm-container{background:#020617!important}.pnlm-controls-container{bottom:1rem!important;right:1rem!important}.pnlm-controls{background:#0f172ae6!important;border-radius:.5rem!important;overflow:hidden}.pnlm-zoom-controls{background:transparent!important}.pnlm-zoom-in,.pnlm-zoom-out,.pnlm-fullscreen-toggle-button{background:#0f172ae6!important;border:none!important;width:36px!important;height:36px!important}.pnlm-zoom-in:hover,.pnlm-zoom-out:hover,.pnlm-fullscreen-toggle-button:hover{background:#06b6d4!important}.custom-hotspot{width:32px;height:32px;background:linear-gradient(135deg,#06b6d4,#0891b2);border:3px solid white;border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #00000080;transition:transform .15s ease}.custom-hotspot:hover{transform:scale(1.2)}.custom-hotspot.selected{background:#f59e0b;animation:pulse 1s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #f59e0bb3}50%{box-shadow:0 0 0 10px #f59e0b00}}.hotspot-default{width:28px;height:28px;background:#06b6d4;border:2px solid white;border-radius:50%;cursor:pointer}.hotspot-door{width:32px;height:32px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Cpath d='M5 2h14a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1z'/%3E%3Cpath d='M9 12h.01'/%3E%3C/svg%3E") center/70% no-repeat;background-color:#06b6d4;border-radius:8px;cursor:pointer}.hotspot-arrow{width:0;height:0;border-left:16px solid transparent;border-right:16px solid transparent;border-bottom:28px solid #06b6d4;cursor:pointer;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.nadir-logo{width:100px;height:100px;background-size:cover;background-position:center;border-radius:50%;pointer-events:none}.nadir-hotspot{background:transparent!important;border:none!important;box-shadow:none!important;cursor:default}.nadir-hotspot .pnlm-tooltip{display:none!important}.nadir-hotspot span{display:none}.advanced-settings{border-top:1px solid #1e293b;margin-top:1rem}.settings-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#1e293b;color:#94a3b8}.settings-header h3{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0}.settings-body{padding:.5rem 0}.settings-section{border-bottom:1px solid rgba(30,41,59,.5)}.section-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:#e2e8f0;font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;transition:background .15s ease}.section-toggle:hover{background:#1e293b80}.section-toggle svg:first-child{color:#06b6d4}.section-toggle span{flex:1}.section-toggle svg:last-child{color:#64748b}.section-content{padding:.5rem 1rem 1rem}.form-group{margin-bottom:.75rem}.form-group>label:not(.checkbox-label){display:block;font-size:.75rem;color:#94a3b8;margin-bottom:.375rem}.form-group input[type=text],.form-group input[type=number]{width:100%;padding:.5rem .75rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;color:#e2e8f0;font-size:.875rem}.form-row{display:flex;gap:.75rem}.form-row .form-group{flex:1}.slider-with-value{display:flex;align-items:center;gap:.75rem}.slider-with-value input[type=range]{flex:1;height:4px;appearance:none;-webkit-appearance:none;background:#334155;border-radius:2px;cursor:pointer}.slider-with-value input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;background:#06b6d4;border-radius:50%;cursor:pointer}.slider-with-value .value{min-width:2.5rem;text-align:right;font-size:.875rem;color:#e2e8f0;font-weight:500;font-family:monospace}.checkbox-label{display:flex!important;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem!important;color:#e2e8f0!important}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#06b6d4;cursor:pointer}.hint{display:block;font-size:.7rem;color:#64748b;margin-top:.25rem;line-height:1.4}.nadir-settings{border-top:1px solid #1e293b;margin-top:1rem}.nadir-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#1e293b;color:#94a3b8}.nadir-header svg:first-child{color:#f59e0b}.nadir-header h3{flex:1;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin:0}.toggle-btn{padding:.375rem;background:#334155;border:none;border-radius:.375rem;color:#64748b;cursor:pointer;transition:all .15s ease}.toggle-btn:hover:not(:disabled){background:#475569;color:#e2e8f0}.toggle-btn.active{background:#f59e0b;color:#fff}.toggle-btn:disabled{opacity:.5;cursor:not-allowed}.nadir-content{padding:1rem}.nadir-upload-zone{display:flex;flex-direction:column;align-items:center;padding:1.5rem;border:2px dashed #334155;border-radius:.5rem;background:#1e293b4d;margin-bottom:.75rem}.upload-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#334155;border:none;border-radius:.5rem;color:#e2e8f0;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.upload-btn:hover{background:#475569}.nadir-upload-zone .hint{margin-top:.5rem;font-size:.7rem;color:#64748b}.nadir-preview-container{display:flex;justify-content:center;align-items:center;position:relative;padding:1rem;background:repeating-conic-gradient(#1e293b 0% 25%,#0f172a 0% 50%) 50% / 16px 16px;border-radius:.5rem;margin-bottom:.75rem}.nadir-preview{border-radius:50%;background-size:cover;background-position:center;box-shadow:0 4px 12px #0000004d}.remove-logo-btn{position:absolute;top:.5rem;right:.5rem;padding:.375rem;background:#ef4444;border:none;border-radius:.375rem;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s ease}.nadir-preview-container:hover .remove-logo-btn{opacity:1}.nadir-options{margin-bottom:.75rem}.nadir-options .form-group{margin-bottom:0}.nadir-options .form-group label{display:block;font-size:.75rem;color:#94a3b8;margin-bottom:.375rem}.slider-with-input{display:flex;align-items:center;gap:.75rem}.slider-with-input input[type=range]{flex:1;height:4px;appearance:none;-webkit-appearance:none;background:#334155;border-radius:2px;cursor:pointer}.slider-with-input input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;background:#f59e0b;border-radius:50%;cursor:pointer}.slider-with-input input[type=number]{width:60px;padding:.375rem .5rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;color:#e2e8f0;font-size:.875rem;text-align:center}.slider-with-input input[type=number]:focus{outline:none;border-color:#f59e0b}.nadir-info{font-size:.7rem;color:#64748b;line-height:1.4}.scene-limits{border-top:1px solid rgba(30,41,59,.5);margin-top:.75rem;padding-top:.75rem}.limits-toggle{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 0;background:transparent;border:none;color:#94a3b8;font-size:.8rem;cursor:pointer;transition:color .15s ease}.limits-toggle:hover{color:#e2e8f0}.limits-toggle .badge{margin-left:auto;margin-right:.5rem;padding:.125rem .5rem;background:#06b6d4;color:#fff;font-size:.65rem;font-weight:600;border-radius:9999px;text-transform:uppercase}.limits-content{padding:.75rem 0}.limits-hint{font-size:.7rem;color:#64748b;line-height:1.4;margin-bottom:.75rem}.limits-section{margin-bottom:.75rem}.limits-section h4{font-size:.7rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}.limits-row{display:flex;gap:.5rem}.limit-input{flex:1}.limit-input label{display:block;font-size:.65rem;color:#64748b;margin-bottom:.25rem}.limit-input input{width:100%;padding:.375rem .5rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;color:#e2e8f0;font-size:.8rem;text-align:center}.limit-input input:focus{outline:none;border-color:#06b6d4}.limit-input input::placeholder{color:#475569}.reset-limits-btn{display:flex;align-items:center;justify-content:center;gap:.375rem;width:100%;padding:.5rem;margin-top:.5rem;background:#334155;border:none;border-radius:.375rem;color:#94a3b8;font-size:.75rem;cursor:pointer;transition:all .15s ease}.reset-limits-btn:hover{background:#475569;color:#e2e8f0}.limits-info{margin-top:.75rem;padding:.75rem;background:#1e293b80;border-radius:.375rem}.limits-info p{font-size:.7rem;color:#94a3b8;margin:0 0 .375rem}.limits-info ul{margin:0;padding-left:1rem}.limits-info li{font-size:.65rem;color:#64748b;line-height:1.5}.properties-panel{width:300px;min-width:300px;background:#0f172a;border-left:1px solid #1e293b;display:flex;flex-direction:column;height:100%;overflow-y:auto}.panel-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:.875rem;padding:1rem;text-align:center}.panel-section{border-bottom:1px solid #1e293b}.section-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#1e293b;color:#94a3b8}.section-header h3{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;flex:1;margin:0}.section-header svg{flex-shrink:0}.delete-btn{padding:.25rem;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:.25rem;transition:all .15s ease}.delete-btn:hover{background:#ef4444;color:#fff}.section-content{padding:1rem}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.75rem;color:#94a3b8;margin-bottom:.375rem;font-weight:500}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:.5rem .75rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;color:#e2e8f0;font-size:.875rem;transition:border-color .15s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:#06b6d4}.form-group input::placeholder{color:#475569}.slider-group{display:flex;align-items:center;gap:.75rem}.slider-group input[type=range]{flex:1;height:4px;-webkit-appearance:none;background:#334155;border-radius:2px;cursor:pointer}.slider-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#06b6d4;border-radius:50%;cursor:pointer}.slider-value{min-width:2.5rem;text-align:right;font-size:.875rem;color:#e2e8f0;font-weight:500}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#e2e8f0}.checkbox-group input[type=checkbox]{width:16px;height:16px;accent-color:#06b6d4;cursor:pointer}.coords-display{display:flex;gap:1rem;padding:.5rem;background:#1e293b;border-radius:.375rem;font-size:.75rem;color:#64748b;font-family:monospace}.shortcuts-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shortcuts-modal{background:#0f172a;border:1px solid #1e293b;border-radius:1rem;width:100%;max-width:500px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #1e293b}.shortcuts-header h2{font-size:1.125rem;font-weight:600;color:#e2e8f0;margin:0}.close-btn:hover{background:#1e293b;color:#e2e8f0}.shortcuts-content{padding:1.5rem;overflow-y:auto}.shortcuts-section{margin-bottom:1.5rem}.shortcuts-section:last-child{margin-bottom:0}.shortcuts-section h3{font-size:.75rem;font-weight:600;color:#06b6d4;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.shortcuts-list{display:flex;flex-direction:column;gap:.5rem}.shortcut-item{display:flex;align-items:center;gap:1rem}.shortcut-item kbd{min-width:80px;padding:.375rem .75rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;font-family:monospace;font-size:.75rem;color:#e2e8f0;text-align:center}.shortcut-item span{font-size:.875rem;color:#94a3b8}.export-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.export-modal{background:#0f172a;border:1px solid #1e293b;border-radius:1rem;width:100%;max-width:520px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000080}.export-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #1e293b}.export-header h2{display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;color:#e2e8f0;margin:0}.export-header h2 svg{color:#06b6d4}.export-content{padding:1.5rem;overflow-y:auto}.form-group{margin-bottom:1.25rem}.form-group label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#94a3b8;margin-bottom:.5rem}.form-group input{width:100%;padding:.75rem 1rem;background:#1e293b;border:1px solid #334155;border-radius:.5rem;color:#e2e8f0;font-size:1rem;font-family:monospace;transition:border-color .15s ease}.form-group input:focus{outline:none;border-color:#06b6d4}.form-group input.invalid{border-color:#ef4444}.form-group input:disabled{opacity:.5;cursor:not-allowed}.error-message{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.75rem;color:#ef4444}.preview-url{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;background:#1e293b;border-radius:.5rem;margin-bottom:1.25rem}.preview-url .label{font-size:.75rem;color:#64748b}.preview-url .url{font-size:.875rem;color:#06b6d4;font-family:monospace;word-break:break-all}.export-summary{margin-bottom:1.25rem}.export-summary h4{font-size:.875rem;color:#e2e8f0;margin:0 0 .5rem}.export-summary ul{display:flex;gap:1.5rem;list-style:none;padding:0;margin:0}.export-summary li{font-size:.875rem;color:#94a3b8}.export-summary li strong{color:#06b6d4}.export-progress{margin-bottom:1.25rem}.progress-bar{height:8px;background:#1e293b;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#06b6d4,#0891b2);border-radius:4px;transition:width .3s ease}.progress-text{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#94a3b8}.progress-text .spin{animation:spin 1s linear infinite;color:#06b6d4}.progress-percent{margin-left:auto;font-weight:600;color:#06b6d4}.export-success{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#22c55e1a;border:1px solid #22c55e;border-radius:.5rem;margin-bottom:1.25rem}.export-success svg{color:#22c55e;flex-shrink:0}.export-success span{font-size:.875rem;color:#22c55e}.export-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#ef44441a;border:1px solid #ef4444;border-radius:.5rem;margin-bottom:1.25rem}.export-error svg{color:#ef4444;flex-shrink:0}.export-error span{font-size:.875rem;color:#ef4444}.export-info{padding:1rem;background:#1e293b;border-radius:.5rem}.export-info h4{font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.export-info ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.375rem}.export-info li{font-size:.875rem;color:#94a3b8}.export-footer{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #1e293b}.export-footer .btn-primary,.export-footer .btn-ghost{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.export-footer .btn-primary{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff}.export-footer .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #06b6d466}.export-footer .btn-primary:disabled{opacity:.5;cursor:not-allowed}.export-footer .btn-ghost{background:transparent;color:#94a3b8}.export-footer .btn-ghost:hover:not(:disabled){color:#e2e8f0}.export-footer .btn-ghost:disabled{opacity:.5;cursor:not-allowed}.close-btn{padding:.5rem;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:.5rem;transition:all .15s ease}.close-btn:hover:not(:disabled){background:#1e293b;color:#e2e8f0}.close-btn:disabled{opacity:.5;cursor:not-allowed}.upload-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.upload-modal{width:100%;max-width:480px;background:#1e293b;border-radius:1rem;box-shadow:0 25px 50px -12px #00000080;overflow:hidden}.upload-header{display:flex;align-items:center;gap:.75rem;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#0f172a,#1e293b);border-bottom:1px solid #334155}.upload-header svg:first-child{color:#06b6d4}.upload-header h2{flex:1;font-size:1.25rem;font-weight:600;color:#f1f5f9;margin:0}.upload-header .close-btn{padding:.375rem;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:.375rem;transition:all .15s ease}.upload-header .close-btn:hover{background:#334155;color:#e2e8f0}.upload-content{padding:1.5rem}.upload-info{margin-bottom:1.25rem}.upload-info p{color:#94a3b8;font-size:.875rem;line-height:1.6;margin:0}.upload-content .form-group{margin-bottom:1.25rem}.upload-content .form-group label{display:block;font-size:.8rem;font-weight:500;color:#e2e8f0;margin-bottom:.5rem}.url-preview{display:flex;align-items:center;background:#0f172a;border:1px solid #334155;border-radius:.5rem;overflow:hidden}.url-base{padding:.625rem .75rem;color:#64748b;font-size:.875rem;font-family:SF Mono,Consolas,monospace;background:#1e293b;border-right:1px solid #334155}.url-preview input{flex:1;padding:.625rem .5rem;background:transparent;border:none;color:#e2e8f0;font-family:SF Mono,Consolas,monospace;font-size:.875rem}.url-preview input:focus{outline:none}.url-preview input.invalid{color:#f87171}.url-suffix{padding:.625rem .5rem;color:#64748b;font-size:.875rem}.error-text{display:block;margin-top:.375rem;font-size:.75rem;color:#f87171}.upload-summary{padding:1rem;background:#0f172a80;border-radius:.5rem;margin-bottom:1.25rem}.upload-summary h4{font-size:.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem}.upload-summary ul{list-style:none;margin:0;padding:0}.upload-summary li{padding:.375rem 0;font-size:.875rem;color:#94a3b8;border-bottom:1px solid rgba(51,65,85,.5)}.upload-summary li:last-child{border-bottom:none}.upload-summary li strong{color:#e2e8f0}.upload-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-secondary{padding:.625rem 1rem;background:#334155;border:none;border-radius:.5rem;color:#e2e8f0;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-secondary:hover{background:#475569}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:.5rem;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #06b6d466}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.upload-content.uploading{display:flex;flex-direction:column;align-items:center;padding:3rem 1.5rem}.upload-progress{text-align:center;width:100%}.spinner{animation:spin 1s linear infinite;color:#06b6d4;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-message{color:#e2e8f0;font-size:.9375rem;margin-bottom:1rem}.progress-bar{width:100%;height:8px;background:#334155;border-radius:4px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#06b6d4,#22d3ee);transition:width .3s ease}.progress-percent{font-size:.8rem;color:#94a3b8}.upload-content.success{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.5rem}.success-icon{color:#10b981;margin-bottom:1rem}.upload-content.success h3{font-size:1.5rem;color:#f1f5f9;margin:0 0 .5rem}.upload-content.success p{color:#94a3b8;margin:0 0 1rem}.tour-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#06b6d41a;border:1px solid rgba(6,182,212,.3);border-radius:.5rem;color:#22d3ee;text-decoration:none;font-family:SF Mono,Consolas,monospace;font-size:.875rem;margin-bottom:1.5rem;transition:all .15s ease}.tour-link:hover{background:#06b6d433;border-color:#06b6d4}.upload-content.error{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.5rem}.error-icon{color:#ef4444;margin-bottom:1rem}.upload-content.error h3{font-size:1.5rem;color:#f1f5f9;margin:0 0 .5rem}.upload-content.error p{color:#f87171;margin:0 0 1.5rem}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#020617;color:#e2e8f0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;height:100%}.app-main{display:flex;flex:1;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0f172a}::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#475569}::selection{background:#06b6d44d}
