.template-builder { display: flex; flex-direction: column; height: 100vh; background: #f5f5f5; overflow: hidden; } // Header .builder-header { display: flex; align-items: center; justify-content: space-between; padding: 0.5rem 1rem; background: white; border-bottom: 1px solid #e0e0e0; height: 56px; flex-shrink: 0; z-index: 100; .header-left, .header-right { display: flex; align-items: center; gap: 0.5rem; } .header-center { position: absolute; left: 50%; transform: translateX(-50%); } .template-name-input { font-size: 1.1rem; font-weight: 600; min-width: 200px; :deep(.q-field__control) { height: 36px; } :deep(input) { font-weight: 600; } } } // Main Content .builder-content { display: flex; flex: 1; overflow: hidden; } // Sidebars .sidebar { width: 280px; background: white; border-right: 1px solid #e0e0e0; display: flex; flex-direction: column; overflow: hidden; flex-shrink: 0; &.sidebar-right { border-right: none; border-left: 1px solid #e0e0e0; width: 320px; } } .panel-tabs { border-bottom: 1px solid #e0e0e0; flex-shrink: 0; } .panel-content { flex: 1; overflow: hidden; .q-tab-panel { padding: 0; height: 100%; } } .scroll-panel { height: 100%; } .panel-section-header { background: #fafafa; font-weight: 600; } .panel-section { padding: 1rem; } .empty-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; padding: 2rem; text-align: center; color: #888; p { margin-top: 1rem; font-size: 0.9rem; } } // Canvas Area .canvas-area { flex: 1; display: flex; flex-direction: column; overflow: hidden; background: #e8e8e8; } .canvas-toolbar { display: flex; align-items: center; padding: 0.5rem 1rem; background: white; border-bottom: 1px solid #e0e0e0; flex-shrink: 0; } .zoom-controls { display: flex; align-items: center; gap: 0.25rem; background: #f5f5f5; border-radius: 6px; padding: 0.25rem; .zoom-value { min-width: 50px; text-align: center; font-size: 0.85rem; font-weight: 500; } } .canvas-wrapper { flex: 1; overflow: auto; display: flex; align-items: center; justify-content: center; padding: 2rem; // Custom scrollbar &::-webkit-scrollbar { width: 10px; height: 10px; } &::-webkit-scrollbar-track { background: #e0e0e0; } &::-webkit-scrollbar-thumb { background: #bbb; border-radius: 5px; &:hover { background: #999; } } } .canvas-footer { display: flex; align-items: center; padding: 0.5rem 1rem; background: white; border-top: 1px solid #e0e0e0; flex-shrink: 0; gap: 1rem; .format-info { font-size: 0.8rem; color: #666; font-family: monospace; } } // Safe Area Grid .safe-area-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; } // Responsive @media (max-width: 1200px) { .sidebar { width: 240px; &.sidebar-right { width: 280px; } } } @media (max-width: 900px) { .builder-content { flex-direction: column; } .sidebar { width: 100%; height: 200px; border-right: none; border-bottom: 1px solid #e0e0e0; &.sidebar-right { border-left: none; border-top: 1px solid #e0e0e0; height: 250px; } } .header-center { display: none; } } // Dark mode .body--dark { .template-builder { background: #1a1a1a; } .builder-header, .sidebar, .canvas-toolbar, .canvas-footer { background: #2d2d2d; border-color: #404040; } .canvas-area { background: #252525; } .panel-section-header { background: #333; } .zoom-controls { background: #404040; } }