/* ── Hero override: slim down the header ───────────────────────────────────── */ .admin-hero.admin-hero-slim { padding: 0.85rem 1.5rem; margin-bottom: 0; } .admin-hero.admin-hero-slim .title { line-height: 1.2; } /* ── File input ─────────────────────────────────────────────────────────────── */ .admin-file-input .file-cta { background: #e8f4fb; border-color: #b5d9ef; color: #2e7dbf; font-weight: 600; } .admin-file-input .file-name { max-width: none; flex: 1; color: #555; border-color: #b5d9ef; } .admin-file-input:hover .file-cta { background: #cde8f5; } /* ── Gallery cards ──────────────────────────────────────────────────────────── */ .low-tag-card { box-shadow: 0 0 0 2px #ffdd57 inset; } .admin-gallery-grid .card { transition: box-shadow 0.15s ease, transform 0.15s ease; } .admin-gallery-grid .card:hover { box-shadow: 0 6px 20px rgba(24, 40, 72, 0.13); transform: translateY(-2px); } /* Selected card: blue ring + tinted header */ .admin-gallery-grid .card.is-selected { box-shadow: 0 0 0 3px #2e7dbf inset, 0 6px 20px rgba(24, 40, 72, 0.1); } .admin-gallery-grid .card.is-selected .select-header { background: rgba(46, 125, 191, 0.14) !important; } /* Card being swept over during drag */ .admin-gallery-grid .card.drag-over { box-shadow: 0 0 0 3px #48c78e inset; } /* Rubber-band selection rectangle */ #drag-select-rect { position: fixed; border: 2px solid hsl(217, 71%, 53%); background: rgba(72, 95, 199, 0.08); border-radius: 4px; pointer-events: none; z-index: 1000; } /* Card top bar — now the full select target */ .select-header { cursor: pointer; user-select: none; background: rgba(0, 0, 0, 0.03); border-bottom: 1px solid #ebe5d2; transition: background 0.1s; } .select-header:hover { background: rgba(46, 125, 191, 0.07) !important; } .select-check { font-size: 1.1rem; line-height: 1; } /* Action buttons in card footer */ .admin-gallery-grid .card-footer-item { font-weight: 600; transition: background 0.12s ease, color 0.12s ease; gap: 0.35em; } .admin-gallery-grid .card-footer-item.edit-button { color: #2e7dbf; } .admin-gallery-grid .card-footer-item.edit-button:hover { background: #e8f4fb; color: #1a5a8a; } .admin-gallery-grid .card-footer-item.delete-button { color: #cc3333; } .admin-gallery-grid .card-footer-item.delete-button:hover { background: #fdf0f0; color: #991111; } /* ── Bulk panel ─────────────────────────────────────────────────────────────── */ #bulkPanel { position: sticky; top: 16px; z-index: 10; box-shadow: 0 12px 24px rgba(17, 17, 17, 0.08); } @media (max-width: 768px) { #bulkPanel { top: 8px; } } #clearSelection:hover { color: #f14668; } /* ── Store status: toggle switch ────────────────────────────────────────────── */ .admin-toggle { display: inline-flex; align-items: center; gap: 0.65rem; cursor: pointer; user-select: none; } .admin-toggle input[type="checkbox"] { display: none; } .admin-toggle-track { display: inline-block; width: 42px; height: 24px; border-radius: 12px; background: #ccc; position: relative; transition: background 0.2s ease; flex-shrink: 0; } .admin-toggle-track::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.25); transition: transform 0.2s ease; } .admin-toggle input:checked ~ .admin-toggle-track { background: #e53e3e; } .admin-toggle input:checked ~ .admin-toggle-track::after { transform: translateX(18px); } .admin-toggle-label { font-size: 0.875rem; color: #555; } .admin-toggle input:checked ~ .admin-toggle-track + .admin-toggle-label, .admin-toggle input:checked ~ .admin-toggle-label { color: #c53030; font-weight: 600; } /* Response notification */ #response { border-radius: 10px; } /* ── Toast notifications ────────────────────────────────────────────────────── */ #toast-container { position: fixed; top: 1rem; right: 1rem; z-index: 9999; display: flex; flex-direction: column; gap: 0.5rem; pointer-events: none; max-width: 380px; width: calc(100% - 2rem); } .admin-toast { pointer-events: auto; box-shadow: 0 4px 12px rgba(0,0,0,0.15); animation: toastIn 0.2s ease; transition: opacity 0.3s; } @keyframes toastIn { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: translateX(0); } } /* ── Connectivity banner ────────────────────────────────────────────────────── */ #connectivity-banner { border-radius: 0; margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; } /* ── Drop zone ──────────────────────────────────────────────────────────────── */ .admin-drop-zone { border: 2px dashed #b5d9ef; border-radius: 8px; padding: 0.85rem; background: #f8fcff; transition: border-color 0.15s, background 0.15s; } .admin-drop-zone.drag-over { border-color: #2e7dbf; background: #e3f2fb; } /* ── Upload file previews ───────────────────────────────────────────────────── */ .upload-preview-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 0.4rem; } .upload-preview-item { position: relative; border-radius: 6px; overflow: hidden; aspect-ratio: 1; background: #e8e8e8; box-shadow: 0 1px 4px rgba(0,0,0,0.1); } .upload-preview-item img { width: 100%; height: 100%; object-fit: cover; display: block; } .preview-name { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.5); color: #fff; font-size: 0.58rem; padding: 2px 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ── Modal light theme ──────────────────────────────────────────────────────── */ .modal-card-head { background-color: #f5f5f5; border-bottom-color: #dbdbdb; } .modal-card-title { color: #363636; } .modal-card-head .delete { background-color: rgba(0, 0, 0, 0.2); } .modal-card-body { background-color: #ffffff; color: #363636; } .modal-card-foot { background-color: #f5f5f5; border-top-color: #dbdbdb; }