/* ========================================================================== Shell & Outer Layout Container ========================================================================== */ .create-product-shell { display: flex; width: 100%; height: 100%; overflow: hidden; position: relative; background: #02060d; } .create-product-container { display: flex; flex-direction: column; height: 100%; width: 100%; box-sizing: border-box; } .form-entry-canvas { display: flex; flex-direction: column; height: 100%; width: 100%; } .form-scroll-viewport { padding: 2.5rem; flex: 1 1 auto; overflow-y: auto; } .form-section-header { margin-bottom: 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); padding-bottom: 1.25rem; } .field-accent-tag { font-size: 1.2rem; letter-spacing: 0.02em; color: #ffffff; font-weight: 600; display: block; } .form-section-header p { margin-top: 0.5rem; font-size: 0.88rem; color: #64748b; } /* ========================================================================== Stacked Sub-Section Layout Blocks ========================================================================== */ .form-text-inputs-section { display: flex; flex-direction: column; gap: 1.5rem; width: 100%; margin-bottom: 3rem; /* Generates clear space before the media controls block */ } .form-media-deck-section { display: flex; flex-direction: column; gap: 1.5rem; width: 100%; } /* Horizontal alignment grid for cover upload & thumbnail array side-by-side */ .media-deck-row { display: grid; grid-template-columns: 240px 1fr; gap: 2.5rem; align-items: start; width: 100%; } .console-field-group { display: flex; flex-direction: column; gap: 0.6rem; width: 100%; } .console-field-label { font-size: 0.85rem; font-weight: 500; color: #cbd5e1; letter-spacing: 0.03em; text-transform: uppercase; } /* ========================================================================== Input Form Elements ========================================================================== */ ::deep .console-input, ::deep .console-textarea { width: 100%; box-sizing: border-box; background: #060b13 !important; border: 1px solid #1e293b !important; border-radius: 4px; padding: 0.85rem 1rem; color: #f8fafc !important; font-size: 0.9rem; outline: none; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); } ::deep .console-input:focus, ::deep .console-textarea:focus { border-color: #00f2fe !important; box-shadow: 0 0 0 1px rgba(0, 242, 254, 0.2), 0 0 12px rgba(0, 242, 254, 0.1) !important; background: #02060d !important; } ::deep .console-textarea { resize: none; line-height: 1.5; } /* ========================================================================== Image Slots & Cloud Upload Dropzones ========================================================================== */ ::deep .hidden-file-input, .hidden-file-input { position: absolute !important; top: 0 !important; left: 0 !important; width: 0 !important; height: 0 !important; opacity: 0 !important; overflow: hidden !important; pointer-events: none !important; display: none !important; /* Forces layout removal */ } /* Book Cover - Enforced Portrait Display Frame Aspect Ratio */ .book-cover-dropzone { width: 240px; aspect-ratio: 2 / 3; background: #060b13; border: 1px dashed #1e293b; border-radius: 4px; position: relative; overflow: hidden; transition: all 0.25s ease; } .book-cover-dropzone:hover { border-color: #00f2fe; } .dropzone-interactive-layer, .thumbnail-slot-node.empty label { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; cursor: pointer; margin: 0; padding: 1rem; box-sizing: border-box; user-select: none; } /* Thumbnails Grid */ .thumbnail-deck-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; width: 100%; } .thumbnail-slot-node { aspect-ratio: 2 / 3; /* Matches portrait layout format smoothly */ background: #060b13; border: 1px solid #1e293b; border-radius: 4px; position: relative; overflow: hidden; } .thumbnail-slot-node.empty { border: 1px dashed #1e293b; background: #060b13; transition: all 0.2s ease; } .thumbnail-slot-node.empty:hover { border-color: #00f2fe; background: rgba(0, 242, 254, 0.02); } .thumbnail-slot-node img, .dropzone-active-preview img { width: 100%; height: 100%; object-fit: cover; } .empty-slot-blueprint { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: #334155; gap: 0.5rem; cursor: pointer; } /* ========================================================================== Minimalist Floating Action Micro-Icons ========================================================================== */ .image-actions-overlay { position: absolute; inset: 0; background: rgba(4, 8, 15, 0.4); backdrop-filter: blur(1px); display: flex; align-items: center; justify-content: center; gap: 0.75rem; opacity: 0; transition: opacity 0.2s ease; } /* Show floating control node buttons cleanly on hover state */ .book-cover-dropzone:hover .image-actions-overlay, .thumbnail-slot-node:hover .image-actions-overlay { opacity: 1; } .btn-micro-action { background: #060b13; border: 1px solid #1e293b; color: #cbd5e1; width: 32px; height: 32px; border-radius: 4px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; padding: 0; } .btn-micro-action:hover { border-color: #00f2fe; color: #00f2fe; box-shadow: 0 0 8px rgba(0, 242, 254, 0.3); } .btn-micro-action.danger:hover { border-color: #ff5722; color: #ff5722; box-shadow: 0 0 8px rgba(255, 87, 34, 0.3); } /* ========================================================================== Sliding Preview System (Left Panel Drawer) ========================================================================== */ .book-preview-drawer { width: 0px; height: 100%; background: #04080f; border-right: 0 solid #1e293b; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0; transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); flex-shrink: 0; position: relative; } .book-preview-drawer.is-open { width: 340px; padding: 2rem; border-right: 1px solid #1e293b; } .drawer-portrait-frame { width: 100%; aspect-ratio: 2 / 3; background: #060b13; border: 1px solid #1e293b; border-radius: 4px; box-shadow: 0 0 30px rgba(0, 0, 0, 0.6); overflow: hidden; position: relative; } .drawer-portrait-frame img { width: 100%; height: 100%; object-fit: cover; } /* Floating Close Action Icon sitting directly on top inside the drawer viewport frame */ .btn-close-preview-floating { position: absolute; top: 12px; right: 12px; background: rgba(6, 11, 19, 0.85); border: 1px solid #1e293b; color: #64748b; width: 28px; height: 28px; border-radius: 4px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; z-index: 10; } .btn-close-preview-floating:hover { border-color: #ff5722; color: #ff5722; } /* ========================================================================== Footer Action Dashboard Bar ========================================================================= */ .form-action-footer { padding: 0.85rem 2.5rem; background: #04080f; border-top: 1px solid #1e293b; display: flex; justify-content: flex-end; gap: 1.25rem; align-items: center; } .btn-apply-filters { background: rgba(0, 242, 254, 0.05); border: 1px solid #00f2fe; color: #00f2fe; font-family: 'JetBrains Mono', monospace; font-weight: 600; font-size: 0.85rem; padding: 0.55rem 1.5rem; border-radius: 4px; cursor: pointer; letter-spacing: 0.02em; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); } .btn-apply-filters:hover { background: #00f2fe; color: #060b13; box-shadow: 0 0 15px rgba(0, 242, 254, 0.3); }