/* Base Styles */ :root { --primary-color: #4f46e5; --primary-dark: #4338ca; --danger-color: #dc2626; --success-color: #059669; --gray-50: #f9fafb; --gray-100: #f3f4f6; --gray-200: #e5e7eb; --gray-300: #d1d5db; --gray-600: #4b5563; --gray-700: #374151; --gray-800: #1f2937; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: "Inter", sans-serif; line-height: 1.5; color: var(--gray-800); background-color: var(--gray-50); } /* Navigation */ .main-nav { background-color: white; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); padding: 1rem 0; } .nav-container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; display: flex; justify-content: space-between; align-items: center; } .nav-brand { font-size: 1.25rem; font-weight: 600; color: var(--gray-800); } .nav-links { display: flex; gap: 1rem; } .nav-link { text-decoration: none; color: var(--gray-600); padding: 0.5rem 1rem; border-radius: 0.375rem; transition: all 0.2s; } .nav-link:hover { background-color: var(--gray-100); color: var(--gray-800); } /* Main Content */ .main-content { max-width: 1200px; margin: 0 auto; padding: 2rem 1rem; } /* Page Header */ .page-header { margin-bottom: 2rem; display: flex; justify-content: space-between; align-items: center; } .page-header h1 { font-size: 1.875rem; font-weight: 600; color: var(--gray-800); } /* Gallery Grid */ .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; } /* Asset Cards */ .asset-card { background: white; border-radius: 0.5rem; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); transition: transform 0.2s, box-shadow 0.2s; } .asset-card:hover { transform: translateY(-2px); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .asset-card-image { aspect-ratio: 1/1; /* Changed from 16/9 to 1/1 for square images */ overflow: hidden; position: relative; /* Added for better image control */ } .asset-card-image img { width: 100%; height: 100%; object-fit: contain; /* Changed from cover to contain */ background-color: #f5f5f5; /* Optional: adds a light background */ padding: 0.5rem; /* Optional: adds some padding around the image */ } .asset-card-content { padding: 1rem; } .asset-card-content h3 { margin-bottom: 1rem; font-size: 1.125rem; font-weight: 600; } /* Buttons */ .button { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-radius: 0.375rem; font-size: 0.875rem; font-weight: 500; text-decoration: none; border: none; cursor: pointer; transition: all 0.2s; } .button-primary { background-color: var(--primary-color); color: white; } .button-primary:hover { background-color: var(--primary-dark); } .button-secondary { background-color: var(--gray-100); color: var(--gray-700); } .button-secondary:hover { background-color: var(--gray-200); } .button-danger { background-color: var(--danger-color); color: white; } .button-danger:hover { background-color: #b91c1c; } .button-small { padding: 0.25rem 0.5rem; font-size: 0.75rem; } /* Forms */ .form-container { max-width: 800px; margin: 0 auto; background: white; padding: 2rem; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .form-container h2 { margin-bottom: 1.5rem; } /* Content Box */ .content-box { background: white; padding: 1.5rem; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); margin-bottom: 1.5rem; } /* Files List */ .files-list { list-style: none; } .file-item { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem; border-bottom: 1px solid var(--gray-200); } .file-item:last-child { border-bottom: none; } .file-link { color: var(--gray-700); text-decoration: none; display: flex; align-items: center; gap: 0.5rem; } .file-link:hover { color: var(--primary-color); } /* Improved Alert Messages */ .alert { animation: slideIn 0.3s ease-out; } @keyframes slideIn { from { transform: translateY(-100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .alert-success { background-color: #ecfdf5; color: var(--success-color); } .alert-danger { background-color: #fef2f2; color: var(--danger-color); } .alert-close { background: none; border: none; cursor: pointer; font-size: 1.25rem; opacity: 0.5; } .alert-close:hover { opacity: 1; } /* Empty State */ .empty-state { text-align: center; padding: 4rem 2rem; background: white; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .empty-state i { font-size: 3rem; color: var(--gray-400); margin-bottom: 1rem; } .empty-state h2 { font-size: 1.5rem; margin-bottom: 0.5rem; } .empty-state p { color: var(--gray-600); margin-bottom: 1.5rem; } /* Asset Detail Page */ .asset-content { display: grid; grid-template-columns: 2fr 3fr; gap: 2rem; } .asset-main-image { background: white; padding: 1rem; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .asset-main-image img { width: 100%; height: auto; border-radius: 0.25rem; } /* Utility Classes */ .inline-form { display: inline; } .text-muted { color: var(--gray-600); } /* Form Styles */ .form { display: flex; flex-direction: column; gap: 1.5rem; } .form-group { display: flex; flex-direction: column; gap: 0.5rem; } .form-label { font-weight: 500; color: var(--gray-700); } .form-input { padding: 0.625rem; border: 1px solid var(--gray-300); border-radius: 0.375rem; font-size: 0.875rem; transition: border-color 0.2s; } .form-input:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1); } /* File Input Styles */ .file-input-wrapper { position: relative; } .file-input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .file-input-label { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.625rem 1rem; background-color: var(--gray-100); color: var(--gray-700); border-radius: 0.375rem; cursor: pointer; transition: all 0.2s; } .file-input-label:hover { background-color: var(--gray-200); } .file-input-label i { font-size: 1.25rem; } /* File Preview Styles */ .preview-image { margin-top: 1rem; padding: 0.5rem; background: var(--gray-100); border-radius: 0.375rem; display: inline-flex; flex-direction: column; align-items: center; gap: 0.5rem; } .preview-image img { max-width: 200px; max-height: 200px; border-radius: 0.25rem; } .preview-image .filename { font-size: 0.75rem; color: var(--gray-600); } .selected-file { margin-top: 0.5rem; padding: 0.5rem; background: var(--gray-100); border-radius: 0.375rem; display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: var(--gray-700); } /* Current Image Display */ .current-image { max-width: 300px; padding: 0.5rem; background: var(--gray-100); border-radius: 0.375rem; } .current-image img { width: 100%; height: auto; border-radius: 0.25rem; } /* Form Actions */ .form-actions { display: flex; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--gray-200); } /* Current Files Section */ .current-files { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid var(--gray-200); } .current-files h3 { margin-bottom: 1rem; font-size: 1.125rem; color: var(--gray-700); } /* Responsive Navigation */ @media (max-width: 640px) { .nav-container { flex-direction: column; gap: 1rem; padding: 1rem; } .nav-links { width: 100%; justify-content: center; } } /* Responsive Gallery */ @media (max-width: 480px) { .gallery { grid-template-columns: 1fr; /* Single column on very small screens */ } .main-content { padding: 1rem; } .page-header { flex-direction: column; gap: 1rem; text-align: center; } } /* Editor Styles */ .trumbowyg-box { margin: 0 !important; /* Override default margins */ width: 100%; border: 1px solid var(--gray-300) !important; border-radius: 0.375rem !important; } .trumbowyg-editor { padding: 1rem !important; min-height: 300px !important; background: white !important; font-family: Inter, sans-serif !important; font-size: 0.875rem !important; color: var(--gray-800) !important; } .license-key-container { margin-top: 1rem; } .license-key-wrapper { display: flex; gap: 0.5rem; align-items: center; } .license-key-input { flex: 1; font-family: "Courier New", monospace; background-color: var(--gray-50); padding: 0.75rem; cursor: default; } .license-copy-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1rem; white-space: nowrap; } .license-copy-btn i { font-size: 1rem; transition: all 0.2s ease; } /* Optional: Add a subtle animation when copying */ .license-copy-btn i.fa-check { color: var(--success-color); transform: scale(1.1); }