.logo-editor{width:100%;min-height:0;height:100%;display:flex;flex-direction:column;background:#1a1a1a;color:#ffffff}.editor-content{display:flex;flex:1;min-height:0}@media (min-width:769px){.editor-content{flex-direction:row}}@media (max-width:768px){.editor-content{flex-direction:column}.editor-left{width:100%;max-width:100%;border-right:none;border-bottom:1px solid #333}.editor-right{width:100%}}.editor-left{width:400px;min-width:400px;border-right:1px solid #333;flex-direction:column;gap:20px;background:#1a1a1a;order:1}.editor-left,.editor-right{padding:20px;overflow-y:auto;display:flex}.editor-right{flex:1;flex-direction:column;align-items:center;justify-content:flex-start;background:#0f0f0f;order:2}.upload-section h2{font-size:18px;margin-bottom:10px;color:#ffffff}.drop-zone{border:2px dashed #555;border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:all .3s;background:#1f1f1f;min-height:150px;display:flex;align-items:center;justify-content:center}.drop-zone:hover{border-color:#f59e0b;background:#252525}.drop-zone-content{color:#888}.preview-image,.preview-video{max-width:100%;max-height:200px;border-radius:4px}.preview-image,.preview-logo{object-fit:contain}.preview-logo{max-width:100%;max-height:150px;border-radius:4px}.logo-size-section,.position-selector-section{margin-top:10px}.logo-size-section h2{font-size:18px;margin-bottom:10px;color:#ffffff}.logo-size-label{display:flex;flex-direction:column;gap:8px;color:#ccc;font-size:14px}.logo-size-label input[type=range]{width:100%;accent-color:#f59e0b}.position-selector-section h2{font-size:18px;margin-bottom:10px;color:#ffffff}.random-position-control{margin-bottom:15px}.random-checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:#cccccc;font-size:14px;user-select:none}.random-checkbox-label:hover{color:#ffffff}.random-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#f59e0b}.position-grid{flex-direction:column;background:#1f1f1f;padding:10px;border-radius:8px;border:1px solid #333}.position-grid,.position-row{display:flex;gap:4px}.position-cell{flex:1;aspect-ratio:1;background:#252525;border:2px solid #444;border-radius:4px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:0;padding:0}.position-cell:hover{background:#2a2a2a;border-color:#f59e0b}.position-cell.selected{background:#f59e0b;border-color:#f59e0b}.position-cell.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.position-cell.disabled:hover{background:#252525;border-color:#444}.position-indicator{color:#ffffff;font-size:18px;font-weight:700}.process-button{width:100%;padding:12px;background:#f59e0b;color:white;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s;margin-top:10px}.process-button:hover:not(:disabled){background:#d97706}.process-button:disabled{background:#555;cursor:not-allowed}.error-message{padding:12px;background:#f44336;color:white;border-radius:4px;margin-top:10px;font-size:14px}.editor-right h2{font-size:20px;margin-bottom:20px}.canvas-container{display:flex;flex-direction:column;align-items:center;gap:20px}#canvas{border:2px solid #f59e0b;border-radius:8px;background:#000;max-width:100%;max-height:80vh}.video-controls{display:flex;gap:10px;margin-top:10px}.video-controls button{padding:10px 20px;background:#f59e0b;color:white;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:600;transition:background .3s}.video-controls button:hover{background:#d97706}.download-button{background:#2196F3!important}.download-button:hover{background:#1976D2!important}.download-button:disabled{background:#555!important;cursor:not-allowed}.download-modal{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:1000}.download-modal-content{background:#1f1f1f;border:1px solid #333;border-radius:10px;padding:20px 24px;min-width:280px;text-align:center}.download-progress-bar{width:100%;height:8px;background:#333;border-radius:999px;overflow:hidden;margin-top:12px}.download-progress-fill{height:100%;background:#f59e0b;width:0;transition:width .2s ease}.logo-editor.is-editor-workspace{height:100%;min-height:0;overflow:hidden;font-size:17px}.logo-toolbar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:10px 20px;border-bottom:1px solid #333;background:#1f1f1f;flex-shrink:0}.logo-toolbar .video-controls{display:flex;gap:10px}.change-image-button,.logo-toolbar .download-button,.logo-toolbar .video-controls button{padding:10px 16px;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer}.logo-toolbar .video-controls button{border:none;background:#f59e0b;color:#fff}.change-image-button{border:1px solid #555;background:#1f1f1f;color:#ddd}.change-image-button:hover{border-color:#f59e0b;color:#fff}.logo-toolbar .download-button{border:none;background:#2196F3;color:#fff}.logo-toolbar .download-button:disabled{background:#555;cursor:not-allowed}.editor-content--workspace{flex:1;min-height:0;overflow:hidden}.logo-editor.is-editor-workspace .editor-left--workspace{width:360px;min-width:360px;max-width:360px;padding:0;overflow:hidden;order:1;display:flex;flex-direction:column;min-height:0;border-right:1px solid #333;background:#252525;opacity:.65;transition:opacity .2s ease}.logo-editor.is-editor-workspace .editor-left--workspace.is-partial{opacity:.85}.logo-editor.is-editor-workspace .editor-left--workspace.is-active{opacity:1}.logo-left-placeholder,.logo-left-upload{flex:1;min-height:0;display:flex;flex-direction:column;padding:20px 16px;box-sizing:border-box;overflow:hidden}.logo-left-placeholder{align-items:center;justify-content:center;text-align:center;gap:12px;color:#aaa}.logo-left-placeholder-icon{font-size:42px;line-height:1}.logo-left-placeholder h2,.logo-left-upload h2{margin:0;font-size:1.15rem;color:#ddd}.logo-left-placeholder p,.logo-panel-hint{margin:0;font-size:15px;line-height:1.5;color:#aaa}.logo-left-upload .logo-panel-hint{margin:8px 0 16px}.logo-left-panel--tabbed{flex:1;min-height:0;display:flex;flex-direction:column}.logo-drop-zone{border:2px dashed #555;border-radius:8px;min-height:180px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#1f1f1f;transition:border-color .2s ease,background .2s ease}.logo-drop-zone:hover{border-color:#f59e0b;background:#222}.logo-drop-content{text-align:center;color:#888;font-size:15px;line-height:1.45}.logo-drop-content p{margin:0}.logo-left-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #333;flex-shrink:0}.logo-left-thumb{width:52px;height:52px;object-fit:contain;border-radius:6px;background:#111;border:1px solid #444}.logo-left-file-name{margin:0 0 6px;font-size:14px;color:#ddd;word-break:break-all}.logo-change-button{border:none;background:transparent;color:#fbbf24;font-size:14px;cursor:pointer;padding:0}.logo-change-button:hover{text-decoration:underline}.logo-editor.is-editor-workspace .editor-tabs{display:flex;flex-shrink:0;border-bottom:1px solid #333;background:#252525}.logo-editor.is-editor-workspace .editor-tab{flex:1;padding:15px 10px;border:none;border-bottom:2px solid transparent;background:transparent;color:#aaa;font-size:15px;font-weight:600;cursor:pointer}.logo-editor.is-editor-workspace .editor-tab.is-active{color:#fff;border-bottom-color:#f59e0b;background:#1f1f1f}.logo-editor.is-editor-workspace .editor-tab-panel{flex:1;min-height:0;overflow-y:auto;padding:16px;box-sizing:border-box}.logo-tab-panel .logo-panel-hint{margin-bottom:14px}.logo-editor.is-editor-workspace .logo-tab-panel .logo-panel-hint{margin-bottom:10px;font-size:14px;line-height:1.35}.logo-editor.is-editor-workspace .random-position-control{margin-bottom:8px}.logo-editor.is-editor-workspace .position-grid{margin:4px auto 0;max-width:204px;padding:8px;gap:3px}.logo-editor.is-editor-workspace .position-row{gap:3px}.logo-editor.is-editor-workspace .position-cell{flex:none;width:56px;height:56px;aspect-ratio:unset}.logo-editor.is-editor-workspace .editor-tab-panel{padding:12px 16px}.logo-editor.is-editor-workspace .editor-tab{padding:12px 8px;font-size:14px}.logo-editor.is-editor-workspace .logo-size-label{font-size:15px}.logo-editor.is-editor-workspace .editor-left--workspace .error-message{margin:0 16px 16px}.logo-editor.is-editor-workspace .editor-right--workspace{flex:1;min-height:0;overflow:hidden;padding:12px 16px 16px;order:2;display:flex;flex-direction:column}.logo-preview-wrapper{flex:1;width:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;box-sizing:border-box}.logo-preview-wrapper.is-drag-over .logo-preview-frame.is-upload-target{border-color:#fbbf24;box-shadow:0 0 0 2px rgba(245,158,11,.25)}.logo-export-hint{flex-shrink:0;margin:0 0 10px;min-height:22px;font-size:15px;color:#9aa0a6;text-align:center}.logo-preview-frame,.logo-preview-scaler{position:relative;flex-shrink:0;overflow:hidden}.logo-preview-frame{background:#000;border-radius:8px;border:2px solid #f59e0b}.logo-preview-frame.is-upload-target{cursor:pointer}.logo-preview-frame .preview-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;text-align:center;color:#aaa;font-size:18px;line-height:1.45;cursor:pointer}.logo-preview-frame .preview-placeholder-hint{margin:0;font-size:16px;color:#888}.logo-preview-frame .crop-border{position:absolute;inset:0;border:2px dashed rgba(255,255,255,.35);pointer-events:none}.logo-preview-canvas,.logo-source-preview{position:absolute;top:0;left:0;display:block;background:#000;pointer-events:none}.logo-source-preview{object-fit:contain}.logo-source-preview.is-preview-hidden{visibility:hidden}.logo-preview-canvas{opacity:0}.logo-preview-canvas.is-visible{opacity:1}.logo-gesture-layer{position:absolute;inset:0;z-index:5;touch-action:none;cursor:grab}@media (max-width:1024px){.logo-editor.is-editor-workspace .editor-right--workspace{flex:1;min-height:0;padding:10px 12px 16px}.logo-preview-wrapper{min-height:38vh}.logo-toolbar{padding:8px 12px;gap:8px}.logo-toolbar .video-controls{flex-wrap:wrap;justify-content:center}.logo-toolbar .change-image-button,.logo-toolbar .download-button,.logo-toolbar .video-controls button{min-height:44px;padding:10px 14px;font-size:14px}}