@import "tailwindcss"; :root { --background: #0f172a; --foreground: #f8fafc; --primary: #6366f1; --secondary: #1e293b; --accent: #10b981; --muted: #64748b; --border: #334155; --card: #1e293b; } body { background-color: var(--background); color: var(--foreground); font-family: 'Inter', sans-serif; margin: 0; padding: 0; overflow-x: hidden; } /* Scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: var(--background); } ::-webkit-scrollbar-thumb { background: var(--secondary); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: var(--border); } .admin-sidebar { width: 260px; background-color: var(--card); border-right: 1px solid var(--border); height: 100vh; position: fixed; left: 0; top: 0; z-index: 50; } .admin-content { margin-left: 260px; padding: 2rem; min-height: 100vh; width: calc(100% - 260px); max-width: calc(100vw - 260px); box-sizing: border-box; } .nav-link { display: flex; align-items: center; padding: 0.75rem 1.5rem; color: var(--muted); text-decoration: none; transition: all 0.2s; border-radius: 0.5rem; margin: 0.25rem 1rem; } .nav-link:hover, .nav-link.active { background-color: var(--secondary); color: var(--foreground); } .nav-link.active { color: var(--primary); background-color: rgba(99, 102, 241, 0.1); } .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; } .card { background-color: var(--card); border: 1px solid var(--border); border-radius: 1rem; padding: 1.5rem; transition: transform 0.2s, box-shadow 0.2s; } .card:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); } .data-table { width: 100%; border-collapse: collapse; margin-top: 1rem; } .data-table th { text-align: left; padding: 1rem; border-bottom: 1px solid var(--border); color: var(--muted); font-weight: 600; text-transform: uppercase; font-size: 0.75rem; } .data-table td { padding: 1rem; border-bottom: 1px solid var(--border); } .btn-verify { background-color: var(--accent); color: white; padding: 0.5rem 1rem; border-radius: 0.5rem; border: none; cursor: pointer; font-size: 0.875rem; font-weight: 500; transition: opacity 0.2s; } .btn-verify:hover { opacity: 0.9; } .btn-unverify { background-color: #ef4444; color: white; padding: 0.5rem 1rem; border-radius: 0.5rem; border: none; cursor: pointer; font-size: 0.875rem; font-weight: 500; transition: opacity 0.2s; } .btn-unverify:hover { opacity: 0.9; } .btn-action { display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.75rem; border-radius: 0.5rem; border: 1px solid transparent; cursor: pointer; font-size: 0.75rem; font-weight: 600; transition: all 0.2s; } .btn-action:hover { opacity: 1; transform: translateY(-1px); } .badge { padding: 0.25rem 0.5rem; border-radius: 9999px; font-size: 0.75rem; font-weight: 600; } .badge-verified { background-color: rgba(16, 185, 129, 0.1); color: var(--accent); } .badge-pending { background-color: rgba(245, 158, 11, 0.1); color: #f59e0b; } .badge-error { background-color: rgba(239, 68, 68, 0.1); color: #ef4444; } /* Modals */ .modal-overlay { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.75); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 50; padding: 1rem; } .modal-content { background-color: var(--card); border: 1px solid var(--border); border-radius: 1rem; width: 100%; max-width: 500px; padding: 2rem; position: relative; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.5); } .btn-star:hover, .btn-star.active { color: #f59e0b; } /* Quill Dark Theme Overrides */ .quill-dark-wrapper .ql-toolbar.ql-snow { background-color: var(--secondary); border-color: var(--border); border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; } .quill-dark-wrapper .ql-container.ql-snow { background-color: var(--background); border-color: var(--border); border-bottom-left-radius: 0.5rem; border-bottom-right-radius: 0.5rem; min-height: 300px; font-family: inherit; font-size: 1rem; } .quill-dark-wrapper .ql-snow .ql-stroke { stroke: var(--foreground); } .quill-dark-wrapper .ql-snow .ql-fill { fill: var(--foreground); } .quill-dark-wrapper .ql-snow .ql-picker { color: var(--foreground); } .quill-dark-wrapper .ql-snow .ql-picker-options { background-color: var(--secondary); border-color: var(--border); } .quill-dark-wrapper .ql-snow .ql-picker-item:hover, .quill-dark-wrapper .ql-snow .ql-picker-label:hover { color: var(--primary); } .quill-dark-wrapper .ql-snow .ql-active { color: var(--primary) !important; } .quill-dark-wrapper .ql-snow .ql-active .ql-stroke { stroke: var(--primary) !important; } .quill-dark-wrapper .ql-editor.ql-blank::before { color: var(--muted); font-style: normal; } .quill-dark-wrapper .ql-editor { text-align: justify; hyphens: auto; word-break: normal; line-height: 1.6; } /* Styles for the Divider (HR) */ .quill-dark-wrapper .ql-editor hr { border: none; border-top: 2px solid var(--border); margin: 1.5em 0; cursor: default; } .quill-dark-wrapper .ql-snow.ql-toolbar button.ql-divider { width: 32px; position: relative; } .quill-dark-wrapper .ql-snow.ql-toolbar button.ql-divider::before { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 16px; height: 2px; background-color: var(--foreground); } .quill-dark-wrapper .ql-snow.ql-toolbar button.ql-divider:hover::before { background-color: var(--primary); } /* Styles pour les tableaux dans l'éditeur */ .quill-dark-wrapper .ql-editor table { width: 100%; border-collapse: collapse; margin: 1em 0; border: 1px solid var(--border); } .quill-dark-wrapper .ql-editor th, .quill-dark-wrapper .ql-editor td { border: 1px solid var(--border); padding: 0.5rem; text-align: left; } .quill-dark-wrapper .ql-editor th { background-color: var(--secondary); font-weight: 600; }