From 9e243b0400832ec7027312172167f6e4538c45bd Mon Sep 17 00:00:00 2001 From: Kuingsmile <96409857+Kuingsmile@users.noreply.github.com> Date: Thu, 14 Aug 2025 16:41:19 +0800 Subject: [PATCH] :bug: Fix(custom): fix delete button css --- src/renderer/manage/pages/BucketPage.vue | 1 + src/renderer/manage/pages/css/BucketPage.css | 2548 +++++++++--------- 2 files changed, 1275 insertions(+), 1274 deletions(-) diff --git a/src/renderer/manage/pages/BucketPage.vue b/src/renderer/manage/pages/BucketPage.vue index 5d527973..6ef378bc 100644 --- a/src/renderer/manage/pages/BucketPage.vue +++ b/src/renderer/manage/pages/BucketPage.vue @@ -509,6 +509,7 @@
{{ formatFileName(item.fileName ?? '', 25) }} diff --git a/src/renderer/manage/pages/css/BucketPage.css b/src/renderer/manage/pages/css/BucketPage.css index bea91f52..8b9ce9c6 100644 --- a/src/renderer/manage/pages/css/BucketPage.css +++ b/src/renderer/manage/pages/css/BucketPage.css @@ -1,1274 +1,1274 @@ -/* BucketPage Styles */ - -.bucket-container { - height: 100vh; - display: flex; - flex-direction: column; - padding: 1rem; - gap: 1rem; - overflow: hidden; -} - -/* Header Card */ -.bucket-card { - background: var(--color-surface); - border: 1px solid var(--color-border-secondary); - border-radius: var(--radius-xl); - transition: var(--transition-medium); - box-shadow: var(--shadow-sm); -} - -.bucket-card:hover { - box-shadow: var(--shadow-md); - border-color: var(--color-border); -} - -.header-card { - flex-shrink: 0; -} - -.card-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0.75rem 1rem; - border-bottom: 1px solid var(--color-border-secondary); - flex-wrap: wrap; - gap: 0.75rem; -} - -.header-left { - display: flex; - align-items: center; - gap: 1rem; - flex: 1; - min-width: 200px; -} - -.custom-domain-input { - padding: 0.5rem 0.75rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - font-size: 0.875rem; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - transition: var(--transition-fast); - width: 200px; -} - -.custom-domain-input:focus { - outline: none; - border-color: var(--color-accent); - box-shadow: 0 0 0 3px var(--color-accent-soft); -} - -.custom-domain-select { - position: relative; - width: 200px; -} - -.select-input { - padding: 0.5rem 2rem 0.5rem 0.75rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - font-size: 0.875rem; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - transition: var(--transition-fast); - width: 100%; - cursor: pointer; -} - -.select-input:focus { - outline: none; - border-color: var(--color-accent); - box-shadow: 0 0 0 3px var(--color-accent-soft); -} - -.select-arrow { - position: absolute; - right: 0.75rem; - top: 50%; - transform: translateY(-50%); - width: 16px; - height: 16px; - color: var(--color-text-secondary); - pointer-events: none; - transition: var(--transition-fast); -} - -.select-dropdown { - position: absolute; - top: 100%; - left: 0; - right: 0; - background: var(--color-surface); - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - box-shadow: var(--shadow-lg); - z-index: 1000; - max-height: 200px; - overflow-y: auto; - margin-top: 0.25rem; -} - -.select-option { - padding: 0.5rem 0.75rem; - cursor: pointer; - transition: var(--transition-fast); - font-size: 0.875rem; -} - -.select-option:hover { - background: var(--color-surface-elevated); -} - -.custom-domain-link { - color: var(--color-accent); - text-decoration: none; - font-size: 0.875rem; - font-weight: 500; - cursor: pointer; - transition: var(--transition-fast); -} - -.custom-domain-link:hover { - color: var(--color-accent-hover); - text-decoration: underline; -} - -.header-actions { - display: flex; - align-items: center; - gap: 0.5rem; - flex-wrap: wrap; -} - -.action-button { - display: flex; - align-items: center; - justify-content: center; - gap: 0.25rem; - padding: 0.5rem; - border: none; - border-radius: var(--radius-md); - background: var(--color-surface-elevated); - color: var(--color-text-primary); - cursor: pointer; - transition: var(--transition-fast); - position: relative; - font-size: 0.75rem; - font-weight: 500; -} - -.action-button:hover { - background: var(--color-accent); - color: white; - transform: translateY(-1px); - box-shadow: var(--shadow-sm); -} - -.action-button.primary { - background: var(--color-blue-common); - color: white; -} - -.action-button.primary:hover { - background: var(--color-accent-hover); -} - -.action-button.secondary { - background: var(--color-surface-elevated); - border: 1px solid var(--color-border); -} - -.action-button.secondary:hover { - border-color: var(--color-accent); - color: var(--color-accent); -} - -.action-button.danger { - background: var(--color-error); - color: white; -} - -.action-button.danger:hover { - background: var(--color-error-hover); -} - -.action-icon { - width: 18px; - height: 18px; -} - -.search-input { - padding: 0.5rem 0.75rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - font-size: 0.875rem; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - transition: var(--transition-fast); - width: 200px; -} - -.search-input:focus { - outline: none; - border-color: var(--color-accent); - box-shadow: 0 0 0 3px var(--color-accent-soft); -} - -/* Breadcrumb */ -.breadcrumb-card { - flex-shrink: 0; -} - -.breadcrumb-container { - display: flex; - align-items: center; - gap: 0.5rem; - padding: 0.75rem 1rem; - flex-wrap: wrap; -} - -.breadcrumb-item { - display: flex; - align-items: center; - gap: 0.25rem; - font-size: 0.875rem; - color: var(--color-text-secondary); - cursor: pointer; - transition: var(--transition-fast); -} - -.breadcrumb-item:hover { - color: var(--color-accent); -} - -.breadcrumb-item.current { - color: var(--color-text-primary); - font-weight: 500; - cursor: default; -} - -.breadcrumb-separator { - color: var(--color-text-tertiary); - margin: 0 0.25rem; -} - -/* Control Panel */ -.control-panel-card { - flex-shrink: 0; -} - -.control-panel { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0.75rem 1rem; - gap: 1rem; - flex-wrap: wrap; -} - -.control-left { - display: flex; - align-items: center; - gap: 1rem; - flex: 1; -} - -.file-info { - display: flex; - align-items: center; - gap: 1rem; - font-size: 0.875rem; - color: var(--color-text-secondary); -} - -.file-info-item { - display: flex; - align-items: center; - gap: 0.25rem; -} - -.control-center { - display: flex; - align-items: center; - gap: 0.5rem; - flex-wrap: wrap; -} - -.control-right { - display: flex; - align-items: center; - gap: 0.5rem; -} - -.view-toggle { - display: flex; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - overflow: hidden; -} - -.view-toggle-button { - padding: 0.5rem; - border: none; - background: var(--color-surface-elevated); - color: var(--color-text-secondary); - cursor: pointer; - transition: var(--transition-fast); - display: flex; - align-items: center; - justify-content: center; -} - -.view-toggle-button.active { - background: var(--color-accent); - color: white; -} - -.view-toggle-button:not(.active):hover { - background: var(--color-surface); -} - -.dropdown { - position: relative; -} - -.dropdown-button { - display: flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 0.75rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - background: var(--color-surface-elevated); - color: var(--color-text-primary); - cursor: pointer; - transition: var(--transition-fast); - font-size: 0.875rem; -} - -.dropdown-button:hover { - border-color: var(--color-accent); - background: var(--color-surface); -} - -.dropdown-content { - position: absolute; - top: 100%; - left: 0; - background: var(--color-surface); - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - box-shadow: var(--shadow-lg); - z-index: 1000; - min-width: 150px; - margin-top: 0.25rem; -} - -.dropdown-item { - padding: 0.5rem 0.75rem; - cursor: pointer; - transition: var(--transition-fast); - font-size: 0.875rem; - color: var(--color-text-primary); -} - -.dropdown-item:hover { - background: var(--color-surface-elevated); - color: var(--color-accent); -} - -.page-input { - padding: 0.25rem 0.5rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - font-size: 0.875rem; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - width: 80px; - text-align: center; -} - -.page-input:focus { - outline: none; - border-color: var(--color-accent); -} - -/* Content Area */ -.content-card { - flex: 1; - display: flex; - flex-direction: column; - min-height: 0; -} - -.content-area { - flex: 1; - padding: 0.75rem; - overflow: hidden; -} - -/* Virtual Scroller Container */ -.virtual-scroller-container { - height: 100%; - width: 100%; -} - -/* File Grid Item */ -.file-grid-item { - display: flex; - flex-direction: column; - background: var(--color-surface); - border: 1px solid var(--color-border-secondary); - border-radius: var(--radius-lg); - overflow: hidden; - transition: var(--transition-medium); - cursor: pointer; - height: 220px; -} - -.file-grid-item:hover { - border-color: var(--color-border); - box-shadow: var(--shadow-md); - transform: translateY(-2px); -} - -.file-grid-item.selected { - border-color: var(--color-accent); - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); -} - -.file-preview { - position: relative; - aspect-ratio: 16/9; - overflow: hidden; - background: var(--color-surface-elevated); - display: flex; - align-items: center; - justify-content: center; -} - -.file-image { - width: 100%; - height: 100%; - object-fit: contain; - transition: var(--transition-medium); -} - -.file-icon { - width: 48px; - height: 48px; - color: var(--color-text-tertiary); -} - -.file-info-section { - flex: 1; - padding: 0.75rem; - display: flex; - flex-direction: column; - justify-content: space-between; -} - -.file-name { - font-size: 0.875rem; - font-weight: 500; - color: var(--color-text-primary); - margin-bottom: 0.5rem; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - cursor: pointer; -} - -.file-name:hover { - color: var(--color-accent); -} - -.file-meta { - display: flex; - justify-content: space-between; - align-items: center; - font-size: 0.75rem; - color: var(--color-text-secondary); - margin-bottom: 0.75rem; -} - -.file-actions { - display: flex; - justify-content: space-between; - align-items: center; -} - -.file-action-group { - display: flex; - gap: 0.25rem; -} - -.file-action-button { - padding: 0.375rem; - border: none; - background: var(--color-surface-elevated); - color: var(--color-text-secondary); - cursor: pointer; - transition: var(--transition-fast); - border-radius: var(--radius-sm); - display: flex; - align-items: center; - justify-content: center; - width: 28px; - height: 28px; -} - -.file-action-button:hover { - background: var(--color-surface); - color: var(--color-text-primary); - transform: translateY(-1px); -} - -.file-action-button.danger:hover { - color: var(--color-error); - background: rgba(239, 68, 68, 0.1); -} - -.file-checkbox { - appearance: none; - width: 16px; - height: 16px; - border: 2px solid var(--color-border); - border-radius: var(--radius-sm); - background: var(--color-surface); - cursor: pointer; - transition: var(--transition-fast); - position: relative; -} - -.file-checkbox:checked { - background: var(--color-accent); - border-color: var(--color-accent); -} - -.file-checkbox:checked::after { - content: '✓'; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - color: white; - font-size: 10px; - font-weight: bold; -} - -/* File List Item */ -.file-list-item { - display: flex; - align-items: center; - gap: 0.75rem; - padding: 0.75rem 1rem; - background: var(--color-surface); - border: 1px solid var(--color-border-secondary); - border-radius: var(--radius-lg); - transition: var(--transition-medium); - cursor: pointer; - width: 100%; - margin: 0; -} - -.file-list-item:hover { - border-color: var(--color-border); - box-shadow: var(--shadow-sm); - transform: translateY(-1px); -} - -.file-list-item.selected { - border-color: var(--color-accent); - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); -} - -.file-list-checkbox { - flex-shrink: 0; - margin-right: 0.25rem; -} - -.file-list-icon { - flex-shrink: 0; - width: 32px; - height: 32px; - display: flex; - align-items: center; - justify-content: center; -} - -.file-list-info { - flex: 1; - min-width: 0; - margin-right: 1rem; -} - -.file-list-name { - font-size: 0.875rem; - font-weight: 500; - color: var(--color-text-primary); - margin-bottom: 0.25rem; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - cursor: pointer; -} - -.file-list-name:hover { - color: var(--color-accent); -} - -.file-list-meta { - display: flex; - gap: 1rem; - font-size: 0.75rem; - color: var(--color-text-secondary); -} - -.file-list-actions { - display: flex; - gap: 0.25rem; - flex-shrink: 0; -} - -/* File Actions Dropdown */ -.file-actions-dropdown { - position: relative; -} - -.file-actions-dropdown-content { - position: absolute; - top: 100%; - right: 0; - background: var(--color-surface); - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - box-shadow: var(--shadow-lg); - z-index: 1000; - min-width: 140px; - margin-top: 0.25rem; - overflow: hidden; -} - -.file-actions-dropdown-item { - padding: 0.5rem 0.75rem; - cursor: pointer; - transition: var(--transition-fast); - font-size: 0.875rem; - color: var(--color-text-primary); - border-bottom: 1px solid var(--color-border-secondary); -} - -.file-actions-dropdown-item:last-child { - border-bottom: none; -} - -.file-actions-dropdown-item:hover { - background: var(--color-surface-elevated); - color: var(--color-accent); -} - -/* Modal Overlay */ -.modal-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.5); - display: flex; - align-items: center; - justify-content: center; - z-index: 2000; -} - -.modal-container { - background: var(--color-surface); - border-radius: var(--radius-lg); - border: 1px solid var(--color-border); - box-shadow: var(--shadow-xl); - max-width: 90vw; - max-height: 90vh; - overflow: hidden; - display: flex; - flex-direction: column; -} - -.modal-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 1rem 1.5rem; - border-bottom: 1px solid var(--color-border); - flex-shrink: 0; -} - -.modal-title { - font-size: 1.125rem; - font-weight: 600; - color: var(--color-text-primary); - margin: 0; -} - -.modal-close { - padding: 0.5rem; - border: none; - background: none; - color: var(--color-text-secondary); - cursor: pointer; - transition: var(--transition-fast); - border-radius: var(--radius-md); - display: flex; - align-items: center; - justify-content: center; -} - -.modal-close:hover { - background: var(--color-surface-elevated); - color: var(--color-text-primary); -} - -.modal-content { - flex: 1; - background: var(--color-background-primary); - padding: 1.5rem; - overflow-y: auto; -} - -.modal-footer { - background: var(--color-background-primary); - display: flex; - justify-content: flex-end; - gap: 0.75rem; - padding: 1rem 1.5rem; - border-top: 1px solid var(--color-border); - flex-shrink: 0; -} - -/* Form Elements */ -.form-group { - margin-bottom: 1rem; -} - -.form-label { - display: block; - font-size: 0.875rem; - font-weight: 500; - color: var(--color-text-primary); - margin-bottom: 0.5rem; -} - -.form-input { - width: 100%; - padding: 0.75rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - font-size: 0.875rem; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - transition: var(--transition-fast); -} - -.form-input:focus { - outline: none; - border-color: var(--color-accent); - box-shadow: 0 0 0 3px var(--color-accent-soft); -} - -.form-textarea { - resize: vertical; - min-height: 100px; -} - -.form-select { - width: 100%; - padding: 0.75rem 2rem 0.75rem 0.75rem; - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - font-size: 0.875rem; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - cursor: pointer; - appearance: none; -} - -.form-select:focus { - outline: none; - border-color: var(--color-accent); - box-shadow: 0 0 0 3px var(--color-accent-soft); -} - -/* Switch */ -.switch-container { - display: flex; - align-items: center; - gap: 0.75rem; -} - -.switch { - position: relative; - display: inline-block; - width: 44px; - height: 24px; -} - -.switch input { - opacity: 0; - width: 0; - height: 0; -} - -.switch-slider { - position: absolute; - cursor: pointer; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: var(--color-border); - transition: 0.3s; - border-radius: 24px; -} - -.switch-slider:before { - position: absolute; - content: ""; - height: 18px; - width: 18px; - left: 3px; - bottom: 3px; - background-color: white; - transition: 0.3s; - border-radius: 50%; -} - -input:checked + .switch-slider { - background-color: var(--color-accent); -} - -input:checked + .switch-slider:before { - transform: translateX(20px); -} - -.switch-label { - font-size: 0.875rem; - color: var(--color-text-primary); -} - -/* Drawer */ -.drawer-overlay { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.5); - z-index: 2000; - display: flex; - justify-content: flex-end; -} - -.drawer-container { - background: var(--color-surface); - width: 60%; - max-width: 800px; - height: 100%; - box-shadow: var(--shadow-xl); - display: flex; - flex-direction: column; - transform: translateX(100%); - transition: transform 0.3s ease-out; -} - -.drawer-overlay.open .drawer-container { - transform: translateX(0); -} - -.drawer-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 1rem 1.5rem; - border-bottom: 1px solid var(--color-border); - flex-shrink: 0; -} - -.drawer-title { - font-size: 1.125rem; - font-weight: 600; - color: var(--color-text-primary); - margin: 0; -} - -.drawer-content { - flex: 1; - overflow-y: auto; - padding: 1.5rem; -} - -/* Upload Area */ -.upload-area { - border: 2px dashed var(--color-border); - border-radius: var(--radius-lg); - padding: 3rem 2rem; - text-align: center; - cursor: pointer; - transition: var(--transition-medium); - background: var(--color-surface-elevated); -} - -.upload-area:hover, -.upload-area.dragover { - border-color: var(--color-accent); - background: var(--color-accent-soft); -} - -.upload-area-text { - font-size: 1.125rem; - color: var(--color-text-secondary); - margin-bottom: 0.5rem; -} - -.upload-area-subtext { - font-size: 0.875rem; - color: var(--color-text-tertiary); -} - -/* Tabs */ -.tabs-container { - display: flex; - flex-direction: column; - height: 100%; -} - -.tabs-header { - display: flex; - border-bottom: 1px solid var(--color-border); - flex-shrink: 0; -} - -.tab-button { - padding: 0.75rem 1.5rem; - border: none; - background: none; - color: var(--color-text-secondary); - cursor: pointer; - transition: var(--transition-fast); - font-size: 0.875rem; - font-weight: 500; - border-bottom: 2px solid transparent; - position: relative; -} - -.tab-button:hover { - color: var(--color-text-primary); - background: var(--color-surface-elevated); -} - -.tab-button.active { - color: var(--color-accent); - border-bottom-color: var(--color-accent); -} - -.tab-badge { - position: absolute; - top: 0.25rem; - right: 0.25rem; - background: var(--color-accent); - color: white; - font-size: 0.625rem; - padding: 0.125rem 0.375rem; - border-radius: 10px; - min-width: 16px; - text-align: center; -} - -.tab-content { - flex: 1; - overflow: hidden; - display: flex; - flex-direction: column; -} - -.tab-panel { - flex: 1; - padding: 1rem; - overflow-y: auto; -} - -/* Progress Bar */ -.progress-bar { - width: 100%; - height: 8px; - background: var(--color-surface-elevated); - border-radius: 4px; - overflow: hidden; -} - -.progress-fill { - height: 100%; - background: var(--color-accent); - border-radius: 4px; - transition: width 0.3s ease; -} - -/* Badge */ -.badge { - display: inline-flex; - align-items: center; - padding: 0.25rem 0.5rem; - font-size: 0.75rem; - font-weight: 500; - border-radius: var(--radius-sm); -} - -.badge.success { - background: var(--color-success-soft); - color: var(--color-success); -} - -.badge.error { - background: var(--color-error-soft); - color: var(--color-error); -} - -.badge.warning { - background: var(--color-warning-soft); - color: var(--color-warning); -} - -/* Tooltip */ -.tooltip { - position: relative; - display: inline-block; -} - -.tooltip-text { - visibility: hidden; - width: max-content; - max-width: 200px; - background: var(--color-surface-elevated); - color: var(--color-text-primary); - text-align: center; - border-radius: var(--radius-md); - padding: 0.5rem; - position: absolute; - z-index: 1000; - top: 125%; - left: 50%; - transform: translateX(-50%); - opacity: 0; - transition: opacity 0.3s; - font-size: 0.75rem; - border: 1px solid var(--color-border); - box-shadow: var(--shadow-md); -} - -.tooltip:hover .tooltip-text { - visibility: visible; - opacity: 1; -} - -/* File Actions Dropdown */ -.file-actions-dropdown { - position: relative; -} - -.file-actions-dropdown-content { - position: absolute; - top: 100%; - right: 0; - background: var(--color-surface); - border: 1px solid var(--color-border); - border-radius: var(--radius-md); - box-shadow: var(--shadow-lg); - z-index: 1000; - min-width: 120px; - margin-top: 0.25rem; -} - -.file-actions-dropdown-item { - padding: 0.5rem 0.75rem; - cursor: pointer; - transition: var(--transition-fast); - font-size: 0.875rem; - color: var(--color-text-primary); - display: flex; - align-items: center; - gap: 0.5rem; -} - -.file-actions-dropdown-item:hover { - background: var(--color-surface-elevated); - color: var(--color-accent); -} - -/* Empty State */ -.empty-state { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - padding: 4rem 2rem; - text-align: center; -} - -.empty-state-icon { - width: 64px; - height: 64px; - color: var(--color-text-tertiary); - margin-bottom: 1rem; -} - -.empty-state-title { - font-size: 1.125rem; - font-weight: 600; - color: var(--color-text-primary); - margin-bottom: 0.5rem; -} - -.empty-state-description { - font-size: 0.875rem; - color: var(--color-text-secondary); -} - -/* Responsive Design */ -@media (max-width: 768px) { - .bucket-container { - padding: 0.5rem; - } - - .card-header { - flex-direction: column; - align-items: stretch; - } - - .header-left { - flex-direction: column; - align-items: stretch; - gap: 0.5rem; - } - - .control-panel { - flex-direction: column; - align-items: stretch; - gap: 0.75rem; - } - - .file-grid-item { - height: 240px; - } - - .drawer-container { - width: 90%; - } -} - -/* Transitions */ -.fade-enter-active, .fade-leave-active { - transition: opacity 0.3s ease; -} - -.fade-enter-from, .fade-leave-to { - opacity: 0; -} - -.slide-enter-active, .slide-leave-active { - transition: transform 0.3s ease; -} - -.slide-enter-from, .slide-leave-to { - transform: translateX(100%); -} - -/* Fullscreen Styles */ -.content-fullscreen { - padding: 0; - gap: 0; -} - -.content-fullscreen .content-card { - flex: 1; - border-radius: 0; - border: none; - box-shadow: none; - display: flex; - flex-direction: column; -} - -.fullscreen-header { - display: flex; - align-items: center; - justify-content: space-between; - padding: 0.75rem 1rem; - background: var(--color-surface); - border-bottom: 1px solid var(--color-border-secondary); - flex-shrink: 0; - z-index: 100; -} - -.fullscreen-header-left { - display: flex; - align-items: center; - flex: 1; - min-width: 200px; -} - -.fullscreen-header-center { - display: flex; - align-items: center; - justify-content: center; - flex: 1; -} - -.fullscreen-header-right { - display: flex; - align-items: center; - gap: 0.75rem; - flex: 1; - justify-content: flex-end; - min-width: 200px; -} - -.fullscreen-breadcrumb { - display: flex; - align-items: center; - gap: 0.5rem; - flex-wrap: wrap; -} - -.content-fullscreen .content-area { - flex: 1; - display: flex; - flex-direction: column; - overflow: hidden; -} - -.content-fullscreen .virtual-scroller-container { - flex: 1; - overflow: hidden; -} - -/* Responsive adjustments for fullscreen */ -@media (max-width: 768px) { - .fullscreen-header { - flex-direction: column; - gap: 0.75rem; - padding: 1rem; - } - - .fullscreen-header-left, - .fullscreen-header-center, - .fullscreen-header-right { - width: 100%; - min-width: unset; - } - - .fullscreen-header-right { - justify-content: space-between; - } -} +/* BucketPage Styles */ + +.bucket-container { + height: 100vh; + display: flex; + flex-direction: column; + padding: 1rem; + gap: 1rem; + overflow: hidden; +} + +/* Header Card */ +.bucket-card { + background: var(--color-surface); + border: 1px solid var(--color-border-secondary); + border-radius: var(--radius-xl); + transition: var(--transition-medium); + box-shadow: var(--shadow-sm); +} + +.bucket-card:hover { + box-shadow: var(--shadow-md); + border-color: var(--color-border); +} + +.header-card { + flex-shrink: 0; +} + +.card-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.75rem 1rem; + border-bottom: 1px solid var(--color-border-secondary); + flex-wrap: wrap; + gap: 0.75rem; +} + +.header-left { + display: flex; + align-items: center; + gap: 1rem; + flex: 1; + min-width: 200px; +} + +.custom-domain-input { + padding: 0.5rem 0.75rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-size: 0.875rem; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + transition: var(--transition-fast); + width: 200px; +} + +.custom-domain-input:focus { + outline: none; + border-color: var(--color-accent); + box-shadow: 0 0 0 3px var(--color-accent-soft); +} + +.custom-domain-select { + position: relative; + width: 200px; +} + +.select-input { + padding: 0.5rem 2rem 0.5rem 0.75rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-size: 0.875rem; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + transition: var(--transition-fast); + width: 100%; + cursor: pointer; +} + +.select-input:focus { + outline: none; + border-color: var(--color-accent); + box-shadow: 0 0 0 3px var(--color-accent-soft); +} + +.select-arrow { + position: absolute; + right: 0.75rem; + top: 50%; + transform: translateY(-50%); + width: 16px; + height: 16px; + color: var(--color-text-secondary); + pointer-events: none; + transition: var(--transition-fast); +} + +.select-dropdown { + position: absolute; + top: 100%; + left: 0; + right: 0; + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + box-shadow: var(--shadow-lg); + z-index: 1000; + max-height: 200px; + overflow-y: auto; + margin-top: 0.25rem; +} + +.select-option { + padding: 0.5rem 0.75rem; + cursor: pointer; + transition: var(--transition-fast); + font-size: 0.875rem; +} + +.select-option:hover { + background: var(--color-surface-elevated); +} + +.custom-domain-link { + color: var(--color-accent); + text-decoration: none; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; + transition: var(--transition-fast); +} + +.custom-domain-link:hover { + color: var(--color-accent-hover); + text-decoration: underline; +} + +.header-actions { + display: flex; + align-items: center; + gap: 0.5rem; + flex-wrap: wrap; +} + +.action-button { + display: flex; + align-items: center; + justify-content: center; + gap: 0.25rem; + padding: 0.5rem; + border: none; + border-radius: var(--radius-md); + background: var(--color-surface-elevated); + color: var(--color-text-primary); + cursor: pointer; + transition: var(--transition-fast); + position: relative; + font-size: 0.75rem; + font-weight: 500; +} + +.action-button:hover { + background: var(--color-accent); + color: white; + transform: translateY(-1px); + box-shadow: var(--shadow-sm); +} + +.action-button.primary { + background: var(--color-blue-common); + color: white; +} + +.action-button.primary:hover { + background: var(--color-accent-hover); +} + +.action-button.secondary { + background: var(--color-surface-elevated); + border: 1px solid var(--color-border); +} + +.action-button.secondary:hover { + border-color: var(--color-accent); + color: var(--color-accent); +} + +.action-button.danger { + background: var(--color-error); + color: white; +} + +.action-button.danger:hover { + background: var(--color-error); +} + +.action-icon { + width: 18px; + height: 18px; +} + +.search-input { + padding: 0.5rem 0.75rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-size: 0.875rem; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + transition: var(--transition-fast); + width: 200px; +} + +.search-input:focus { + outline: none; + border-color: var(--color-accent); + box-shadow: 0 0 0 3px var(--color-accent-soft); +} + +/* Breadcrumb */ +.breadcrumb-card { + flex-shrink: 0; +} + +.breadcrumb-container { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.75rem 1rem; + flex-wrap: wrap; +} + +.breadcrumb-item { + display: flex; + align-items: center; + gap: 0.25rem; + font-size: 0.875rem; + color: var(--color-text-secondary); + cursor: pointer; + transition: var(--transition-fast); +} + +.breadcrumb-item:hover { + color: var(--color-accent); +} + +.breadcrumb-item.current { + color: var(--color-text-primary); + font-weight: 500; + cursor: default; +} + +.breadcrumb-separator { + color: var(--color-text-tertiary); + margin: 0 0.25rem; +} + +/* Control Panel */ +.control-panel-card { + flex-shrink: 0; +} + +.control-panel { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.75rem 1rem; + gap: 1rem; + flex-wrap: wrap; +} + +.control-left { + display: flex; + align-items: center; + gap: 1rem; + flex: 1; +} + +.file-info { + display: flex; + align-items: center; + gap: 1rem; + font-size: 0.875rem; + color: var(--color-text-secondary); +} + +.file-info-item { + display: flex; + align-items: center; + gap: 0.25rem; +} + +.control-center { + display: flex; + align-items: center; + gap: 0.5rem; + flex-wrap: wrap; +} + +.control-right { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.view-toggle { + display: flex; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + overflow: hidden; +} + +.view-toggle-button { + padding: 0.5rem; + border: none; + background: var(--color-surface-elevated); + color: var(--color-text-secondary); + cursor: pointer; + transition: var(--transition-fast); + display: flex; + align-items: center; + justify-content: center; +} + +.view-toggle-button.active { + background: var(--color-accent); + color: white; +} + +.view-toggle-button:not(.active):hover { + background: var(--color-surface); +} + +.dropdown { + position: relative; +} + +.dropdown-button { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.5rem 0.75rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + background: var(--color-surface-elevated); + color: var(--color-text-primary); + cursor: pointer; + transition: var(--transition-fast); + font-size: 0.875rem; +} + +.dropdown-button:hover { + border-color: var(--color-accent); + background: var(--color-surface); +} + +.dropdown-content { + position: absolute; + top: 100%; + left: 0; + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + box-shadow: var(--shadow-lg); + z-index: 1000; + min-width: 150px; + margin-top: 0.25rem; +} + +.dropdown-item { + padding: 0.5rem 0.75rem; + cursor: pointer; + transition: var(--transition-fast); + font-size: 0.875rem; + color: var(--color-text-primary); +} + +.dropdown-item:hover { + background: var(--color-surface-elevated); + color: var(--color-accent); +} + +.page-input { + padding: 0.25rem 0.5rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-size: 0.875rem; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + width: 80px; + text-align: center; +} + +.page-input:focus { + outline: none; + border-color: var(--color-accent); +} + +/* Content Area */ +.content-card { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; +} + +.content-area { + flex: 1; + padding: 0.75rem; + overflow: hidden; +} + +/* Virtual Scroller Container */ +.virtual-scroller-container { + height: 100%; + width: 100%; +} + +/* File Grid Item */ +.file-grid-item { + display: flex; + flex-direction: column; + background: var(--color-surface); + border: 1px solid var(--color-border-secondary); + border-radius: var(--radius-lg); + overflow: hidden; + transition: var(--transition-medium); + cursor: pointer; + height: 220px; +} + +.file-grid-item:hover { + border-color: var(--color-border); + box-shadow: var(--shadow-md); + transform: translateY(-2px); +} + +.file-grid-item.selected { + border-color: var(--color-accent); + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); +} + +.file-preview { + position: relative; + aspect-ratio: 16/9; + overflow: hidden; + background: var(--color-surface-elevated); + display: flex; + align-items: center; + justify-content: center; +} + +.file-image { + width: 100%; + height: 100%; + object-fit: contain; + transition: var(--transition-medium); +} + +.file-icon { + width: 48px; + height: 48px; + color: var(--color-text-tertiary); +} + +.file-info-section { + flex: 1; + padding: 0.75rem; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.file-name { + font-size: 0.875rem; + font-weight: 500; + color: var(--color-text-primary); + margin-bottom: 0.5rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; +} + +.file-name:hover { + color: var(--color-accent); +} + +.file-meta { + display: flex; + justify-content: space-between; + align-items: center; + font-size: 0.75rem; + color: var(--color-text-secondary); + margin-bottom: 0.75rem; +} + +.file-actions { + display: flex; + justify-content: space-between; + align-items: center; +} + +.file-action-group { + display: flex; + gap: 0.25rem; +} + +.file-action-button { + padding: 0.375rem; + border: none; + background: var(--color-surface-elevated); + color: var(--color-text-secondary); + cursor: pointer; + transition: var(--transition-fast); + border-radius: var(--radius-sm); + display: flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; +} + +.file-action-button:hover { + background: var(--color-surface); + color: var(--color-text-primary); + transform: translateY(-1px); +} + +.file-action-button.danger:hover { + color: var(--color-error); + background: rgba(239, 68, 68, 0.1); +} + +.file-checkbox { + appearance: none; + width: 16px; + height: 16px; + border: 2px solid var(--color-border); + border-radius: var(--radius-sm); + background: var(--color-surface); + cursor: pointer; + transition: var(--transition-fast); + position: relative; +} + +.file-checkbox:checked { + background: var(--color-accent); + border-color: var(--color-accent); +} + +.file-checkbox:checked::after { + content: '✓'; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + color: white; + font-size: 10px; + font-weight: bold; +} + +/* File List Item */ +.file-list-item { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.75rem 1rem; + background: var(--color-surface); + border: 1px solid var(--color-border-secondary); + border-radius: var(--radius-lg); + transition: var(--transition-medium); + cursor: pointer; + width: 100%; + margin: 0; +} + +.file-list-item:hover { + border-color: var(--color-border); + box-shadow: var(--shadow-sm); + transform: translateY(-1px); +} + +.file-list-item.selected { + border-color: var(--color-accent); + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); +} + +.file-list-checkbox { + flex-shrink: 0; + margin-right: 0.25rem; +} + +.file-list-icon { + flex-shrink: 0; + width: 32px; + height: 32px; + display: flex; + align-items: center; + justify-content: center; +} + +.file-list-info { + flex: 1; + min-width: 0; + margin-right: 1rem; +} + +.file-list-name { + font-size: 0.875rem; + font-weight: 500; + color: var(--color-text-primary); + margin-bottom: 0.25rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; +} + +.file-list-name:hover { + color: var(--color-accent); +} + +.file-list-meta { + display: flex; + gap: 1rem; + font-size: 0.75rem; + color: var(--color-text-secondary); +} + +.file-list-actions { + display: flex; + gap: 0.25rem; + flex-shrink: 0; +} + +/* File Actions Dropdown */ +.file-actions-dropdown { + position: relative; +} + +.file-actions-dropdown-content { + position: absolute; + top: 100%; + right: 0; + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + box-shadow: var(--shadow-lg); + z-index: 1000; + min-width: 140px; + margin-top: 0.25rem; + overflow: hidden; +} + +.file-actions-dropdown-item { + padding: 0.5rem 0.75rem; + cursor: pointer; + transition: var(--transition-fast); + font-size: 0.875rem; + color: var(--color-text-primary); + border-bottom: 1px solid var(--color-border-secondary); +} + +.file-actions-dropdown-item:last-child { + border-bottom: none; +} + +.file-actions-dropdown-item:hover { + background: var(--color-surface-elevated); + color: var(--color-accent); +} + +/* Modal Overlay */ +.modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 2000; +} + +.modal-container { + background: var(--color-surface); + border-radius: var(--radius-lg); + border: 1px solid var(--color-border); + box-shadow: var(--shadow-xl); + max-width: 90vw; + max-height: 90vh; + overflow: hidden; + display: flex; + flex-direction: column; +} + +.modal-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem 1.5rem; + border-bottom: 1px solid var(--color-border); + flex-shrink: 0; +} + +.modal-title { + font-size: 1.125rem; + font-weight: 600; + color: var(--color-text-primary); + margin: 0; +} + +.modal-close { + padding: 0.5rem; + border: none; + background: none; + color: var(--color-text-secondary); + cursor: pointer; + transition: var(--transition-fast); + border-radius: var(--radius-md); + display: flex; + align-items: center; + justify-content: center; +} + +.modal-close:hover { + background: var(--color-surface-elevated); + color: var(--color-text-primary); +} + +.modal-content { + flex: 1; + background: var(--color-background-primary); + padding: 1.5rem; + overflow-y: auto; +} + +.modal-footer { + background: var(--color-background-primary); + display: flex; + justify-content: flex-end; + gap: 0.75rem; + padding: 1rem 1.5rem; + border-top: 1px solid var(--color-border); + flex-shrink: 0; +} + +/* Form Elements */ +.form-group { + margin-bottom: 1rem; +} + +.form-label { + display: block; + font-size: 0.875rem; + font-weight: 500; + color: var(--color-text-primary); + margin-bottom: 0.5rem; +} + +.form-input { + width: 100%; + padding: 0.75rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-size: 0.875rem; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + transition: var(--transition-fast); +} + +.form-input:focus { + outline: none; + border-color: var(--color-accent); + box-shadow: 0 0 0 3px var(--color-accent-soft); +} + +.form-textarea { + resize: vertical; + min-height: 100px; +} + +.form-select { + width: 100%; + padding: 0.75rem 2rem 0.75rem 0.75rem; + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + font-size: 0.875rem; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + cursor: pointer; + appearance: none; +} + +.form-select:focus { + outline: none; + border-color: var(--color-accent); + box-shadow: 0 0 0 3px var(--color-accent-soft); +} + +/* Switch */ +.switch-container { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.switch { + position: relative; + display: inline-block; + width: 44px; + height: 24px; +} + +.switch input { + opacity: 0; + width: 0; + height: 0; +} + +.switch-slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--color-border); + transition: 0.3s; + border-radius: 24px; +} + +.switch-slider:before { + position: absolute; + content: ""; + height: 18px; + width: 18px; + left: 3px; + bottom: 3px; + background-color: white; + transition: 0.3s; + border-radius: 50%; +} + +input:checked + .switch-slider { + background-color: var(--color-accent); +} + +input:checked + .switch-slider:before { + transform: translateX(20px); +} + +.switch-label { + font-size: 0.875rem; + color: var(--color-text-primary); +} + +/* Drawer */ +.drawer-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + z-index: 2000; + display: flex; + justify-content: flex-end; +} + +.drawer-container { + background: var(--color-surface); + width: 60%; + max-width: 800px; + height: 100%; + box-shadow: var(--shadow-xl); + display: flex; + flex-direction: column; + transform: translateX(100%); + transition: transform 0.3s ease-out; +} + +.drawer-overlay.open .drawer-container { + transform: translateX(0); +} + +.drawer-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 1rem 1.5rem; + border-bottom: 1px solid var(--color-border); + flex-shrink: 0; +} + +.drawer-title { + font-size: 1.125rem; + font-weight: 600; + color: var(--color-text-primary); + margin: 0; +} + +.drawer-content { + flex: 1; + overflow-y: auto; + padding: 1.5rem; +} + +/* Upload Area */ +.upload-area { + border: 2px dashed var(--color-border); + border-radius: var(--radius-lg); + padding: 3rem 2rem; + text-align: center; + cursor: pointer; + transition: var(--transition-medium); + background: var(--color-surface-elevated); +} + +.upload-area:hover, +.upload-area.dragover { + border-color: var(--color-accent); + background: var(--color-accent-soft); +} + +.upload-area-text { + font-size: 1.125rem; + color: var(--color-text-secondary); + margin-bottom: 0.5rem; +} + +.upload-area-subtext { + font-size: 0.875rem; + color: var(--color-text-tertiary); +} + +/* Tabs */ +.tabs-container { + display: flex; + flex-direction: column; + height: 100%; +} + +.tabs-header { + display: flex; + border-bottom: 1px solid var(--color-border); + flex-shrink: 0; +} + +.tab-button { + padding: 0.75rem 1.5rem; + border: none; + background: none; + color: var(--color-text-secondary); + cursor: pointer; + transition: var(--transition-fast); + font-size: 0.875rem; + font-weight: 500; + border-bottom: 2px solid transparent; + position: relative; +} + +.tab-button:hover { + color: var(--color-text-primary); + background: var(--color-surface-elevated); +} + +.tab-button.active { + color: var(--color-accent); + border-bottom-color: var(--color-accent); +} + +.tab-badge { + position: absolute; + top: 0.25rem; + right: 0.25rem; + background: var(--color-accent); + color: white; + font-size: 0.625rem; + padding: 0.125rem 0.375rem; + border-radius: 10px; + min-width: 16px; + text-align: center; +} + +.tab-content { + flex: 1; + overflow: hidden; + display: flex; + flex-direction: column; +} + +.tab-panel { + flex: 1; + padding: 1rem; + overflow-y: auto; +} + +/* Progress Bar */ +.progress-bar { + width: 100%; + height: 8px; + background: var(--color-surface-elevated); + border-radius: 4px; + overflow: hidden; +} + +.progress-fill { + height: 100%; + background: var(--color-accent); + border-radius: 4px; + transition: width 0.3s ease; +} + +/* Badge */ +.badge { + display: inline-flex; + align-items: center; + padding: 0.25rem 0.5rem; + font-size: 0.75rem; + font-weight: 500; + border-radius: var(--radius-sm); +} + +.badge.success { + background: var(--color-success-soft); + color: var(--color-success); +} + +.badge.error { + background: var(--color-error-soft); + color: var(--color-error); +} + +.badge.warning { + background: var(--color-warning-soft); + color: var(--color-warning); +} + +/* Tooltip */ +.tooltip { + position: relative; + display: inline-block; +} + +.tooltip-text { + visibility: hidden; + width: max-content; + max-width: 200px; + background: var(--color-surface-elevated); + color: var(--color-text-primary); + text-align: center; + border-radius: var(--radius-md); + padding: 0.5rem; + position: absolute; + z-index: 1000; + top: 125%; + left: 50%; + transform: translateX(-50%); + opacity: 0; + transition: opacity 0.3s; + font-size: 0.75rem; + border: 1px solid var(--color-border); + box-shadow: var(--shadow-md); +} + +.tooltip:hover .tooltip-text { + visibility: visible; + opacity: 1; +} + +/* File Actions Dropdown */ +.file-actions-dropdown { + position: relative; +} + +.file-actions-dropdown-content { + position: absolute; + top: 100%; + right: 0; + background: var(--color-surface); + border: 1px solid var(--color-border); + border-radius: var(--radius-md); + box-shadow: var(--shadow-lg); + z-index: 1000; + min-width: 120px; + margin-top: 0.25rem; +} + +.file-actions-dropdown-item { + padding: 0.5rem 0.75rem; + cursor: pointer; + transition: var(--transition-fast); + font-size: 0.875rem; + color: var(--color-text-primary); + display: flex; + align-items: center; + gap: 0.5rem; +} + +.file-actions-dropdown-item:hover { + background: var(--color-surface-elevated); + color: var(--color-accent); +} + +/* Empty State */ +.empty-state { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 4rem 2rem; + text-align: center; +} + +.empty-state-icon { + width: 64px; + height: 64px; + color: var(--color-text-tertiary); + margin-bottom: 1rem; +} + +.empty-state-title { + font-size: 1.125rem; + font-weight: 600; + color: var(--color-text-primary); + margin-bottom: 0.5rem; +} + +.empty-state-description { + font-size: 0.875rem; + color: var(--color-text-secondary); +} + +/* Responsive Design */ +@media (max-width: 768px) { + .bucket-container { + padding: 0.5rem; + } + + .card-header { + flex-direction: column; + align-items: stretch; + } + + .header-left { + flex-direction: column; + align-items: stretch; + gap: 0.5rem; + } + + .control-panel { + flex-direction: column; + align-items: stretch; + gap: 0.75rem; + } + + .file-grid-item { + height: 240px; + } + + .drawer-container { + width: 90%; + } +} + +/* Transitions */ +.fade-enter-active, .fade-leave-active { + transition: opacity 0.3s ease; +} + +.fade-enter-from, .fade-leave-to { + opacity: 0; +} + +.slide-enter-active, .slide-leave-active { + transition: transform 0.3s ease; +} + +.slide-enter-from, .slide-leave-to { + transform: translateX(100%); +} + +/* Fullscreen Styles */ +.content-fullscreen { + padding: 0; + gap: 0; +} + +.content-fullscreen .content-card { + flex: 1; + border-radius: 0; + border: none; + box-shadow: none; + display: flex; + flex-direction: column; +} + +.fullscreen-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.75rem 1rem; + background: var(--color-surface); + border-bottom: 1px solid var(--color-border-secondary); + flex-shrink: 0; + z-index: 100; +} + +.fullscreen-header-left { + display: flex; + align-items: center; + flex: 1; + min-width: 200px; +} + +.fullscreen-header-center { + display: flex; + align-items: center; + justify-content: center; + flex: 1; +} + +.fullscreen-header-right { + display: flex; + align-items: center; + gap: 0.75rem; + flex: 1; + justify-content: flex-end; + min-width: 200px; +} + +.fullscreen-breadcrumb { + display: flex; + align-items: center; + gap: 0.5rem; + flex-wrap: wrap; +} + +.content-fullscreen .content-area { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.content-fullscreen .virtual-scroller-container { + flex: 1; + overflow: hidden; +} + +/* Responsive adjustments for fullscreen */ +@media (max-width: 768px) { + .fullscreen-header { + flex-direction: column; + gap: 0.75rem; + padding: 1rem; + } + + .fullscreen-header-left, + .fullscreen-header-center, + .fullscreen-header-right { + width: 100%; + min-width: unset; + } + + .fullscreen-header-right { + justify-content: space-between; + } +}