Spaces:
Paused
Paused
| /* ─── Admin theme (theme-aware) ─── */ | |
| .admin-page { | |
| --admin-accent: var(--spotify-green-dark); | |
| --admin-accent-soft: var(--green-bg); | |
| --admin-accent-border: var(--border); | |
| } | |
| .admin-hero { | |
| border-color: var(--admin-accent-border); | |
| background: var(--bg-surface); | |
| color: var(--ink); | |
| } | |
| /* Dark theme: nền phẳng, không gradient / glow */ | |
| [data-theme="dark"] .admin-hero { | |
| background: var(--bg-surface); | |
| border-color: var(--border); | |
| --admin-accent-soft: color-mix(in srgb, var(--admin-accent) 16%, var(--bg-interactive)); | |
| --admin-accent-border: color-mix(in srgb, var(--admin-accent) 30%, var(--border)); | |
| } | |
| [data-theme="dark"] .admin-hero-glow { | |
| display: none; | |
| } | |
| /* Light theme: tint nhẹ theo module (không đổ sang tím/đen) */ | |
| [data-theme="light"] .admin-hero { | |
| background: linear-gradient( | |
| 135deg, | |
| color-mix(in srgb, var(--admin-accent) 8%, var(--bg-surface)) 0%, | |
| var(--bg-surface) 100% | |
| ); | |
| } | |
| .admin-hero h1, | |
| .admin-hero h2, | |
| .admin-hero p, | |
| .admin-hero .text-\[var\(--ink\)\], | |
| .admin-hero .text-\[var\(--ink2\)\], | |
| .admin-hero .text-\[var\(--ink3\)\] { | |
| color: inherit; | |
| } | |
| .admin-hero-glow { | |
| background: color-mix(in srgb, var(--admin-accent) 18%, transparent); | |
| } | |
| .admin-panel-accent { | |
| border-top: 3px solid var(--admin-accent); | |
| } | |
| .admin-crud-bar { | |
| border-color: var(--admin-accent-border); | |
| background: var(--bg-surface); | |
| color: var(--ink); | |
| } | |
| .admin-crud-bar .admin-crud-tag { | |
| color: var(--admin-accent); | |
| background: var(--admin-accent-soft); | |
| } | |
| .admin-list-active { | |
| background: var(--green-bg) ; | |
| border-left: 3px solid var(--admin-accent); | |
| color: var(--ink) ; | |
| } | |
| .admin-list-active .text-\[var\(--ink\)\], | |
| .admin-list-active .text-\[var\(--ink2\)\], | |
| .admin-list-active .text-\[var\(--ink3\)\], | |
| .admin-list-active .text-slate-500, | |
| .admin-list-active .text-slate-600, | |
| .admin-list-active .text-slate-700 { | |
| color: var(--ink) ; | |
| } | |
| .admin-json-live { | |
| border-color: var(--admin-accent-border); | |
| } | |
| .admin-json-live.is-syncing { | |
| box-shadow: 0 0 0 2px color-mix(in srgb, var(--admin-accent) 25%, transparent); | |
| } | |
| .admin-json-badge { | |
| background: var(--admin-accent-soft); | |
| color: var(--admin-accent); | |
| border: 1px solid var(--admin-accent-border); | |
| } | |
| .admin-json-badge.pulse { | |
| animation: admin-json-pulse 1.2s ease-in-out infinite; | |
| } | |
| @keyframes admin-json-pulse { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0.55; } | |
| } | |
| .admin-quick-link:hover { | |
| border-color: var(--link-accent, var(--admin-accent-border)) ; | |
| background: color-mix(in srgb, var(--link-accent, var(--admin-accent)) 8%, var(--bg-surface)) ; | |
| } | |
| .admin-quick-link:hover .admin-quick-icon { | |
| color: var(--link-accent, var(--admin-accent)); | |
| background: color-mix(in srgb, var(--link-accent, var(--admin-accent)) 12%, var(--bg-interactive)); | |
| } | |
| /* Admin accent buttons — readable text on colored background */ | |
| .admin-page .ct-btn-accent, | |
| .admin-crud-bar .admin-save-btn { | |
| background: var(--admin-accent) ; | |
| border-color: var(--admin-accent) ; | |
| color: #ffffff ; | |
| } | |
| .admin-page .ct-btn-accent:hover, | |
| .admin-crud-bar .admin-save-btn:hover { | |
| filter: brightness(1.08); | |
| color: #ffffff ; | |
| } | |
| /* Emerald selection chips in admin editors */ | |
| [data-theme="dark"] .bg-emerald-50, | |
| [data-theme="dark"] .hover\:bg-emerald-50:hover { | |
| background-color: var(--green-bg) ; | |
| } | |
| [data-theme="dark"] .border-emerald-300 { | |
| border-color: var(--spotify-green-dark) ; | |
| } | |
| /* Admin textareas — rectangular, left-aligned, auto-grow height (incl. HTML / JSON mono fields) */ | |
| .admin-page textarea.ct-input { | |
| display: block; | |
| width: 100%; | |
| min-height: 3.25rem; | |
| border-radius: var(--radius-comfortable, 8px); | |
| text-align: left; | |
| padding: 14px 18px; | |
| line-height: 1.55; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| resize: none; | |
| overflow: hidden; | |
| box-sizing: border-box; | |
| field-sizing: content; | |
| } | |
| /* Wide table inputs (e.g. Audio URL) */ | |
| .admin-page table input.ct-input.w-full { | |
| border-radius: var(--radius-comfortable, 8px); | |
| } | |
| /* Raw JSON panel */ | |
| .admin-page .admin-json-live textarea.ct-input { | |
| border-radius: 0; | |
| padding: 14px 18px; | |
| text-align: left; | |
| } | |