Files
enuxia-quiz/style/main.css
T
Julien Denizot 3f84b1c5bf
Build & Deploy / build-deploy (push) Failing after 1m5s
fix: 🐛 debug timer, debug suppression quiz et debug shuffle reponses quiz
2026-04-14 10:53:28 +02:00

1119 lines
32 KiB
CSS

@import "tailwindcss";
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap');
@theme {
--color-enuxia-dark: #0A0B14;
--color-enuxia-dark-2: #0E0F1A;
--color-enuxia-dark-3: #12141F;
--color-enuxia-border: #1A1D2E;
--color-enuxia-border-2:#242740;
--color-enuxia-blue: #4F8EFF;
--color-enuxia-purple: #8B5CF6;
--color-enuxia-green: #22C55E;
--color-enuxia-text: #E8EAF0;
--color-enuxia-muted: #5A6080;
--color-enuxia-subtle: #2A2D40;
}
/* ── Reset & Base ─────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
background-color: var(--color-enuxia-dark);
color: var(--color-enuxia-text);
font-family: 'Inter', system-ui, sans-serif;
font-size: 15px;
line-height: 1.6;
min-height: 100vh;
-webkit-font-smoothing: antialiased;
background-image:
radial-gradient(ellipse 100% 60% at 50% -10%, rgba(79, 142, 255, 0.06) 0%, transparent 70%),
radial-gradient(ellipse 50% 40% at 90% 90%, rgba(139, 92, 246, 0.04) 0%, transparent 60%);
}
h1, h2, h3 {
font-family: 'Space Grotesk', sans-serif;
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.15;
}
a { text-decoration: none; color: inherit; }
/* ── Inputs ───────────────────────────────────────────────────────────────── */
input[type="text"],
input[type="password"],
textarea {
width: 100%;
padding: 12px 16px;
border-radius: 10px;
font-family: 'Inter', sans-serif;
font-size: 14px;
outline: none;
transition: border-color 0.2s, box-shadow 0.2s;
background-color: var(--color-enuxia-dark);
border: 1px solid var(--color-enuxia-border-2);
color: var(--color-enuxia-text);
}
input[type="text"]::placeholder,
input[type="password"]::placeholder,
textarea::placeholder { color: var(--color-enuxia-muted); }
input[type="text"]:focus,
input[type="password"]:focus,
textarea:focus {
border-color: var(--color-enuxia-blue);
box-shadow: 0 0 0 3px rgba(79, 142, 255, 0.12);
}
textarea { resize: vertical; min-height: 80px; }
input[type="checkbox"],
input[type="radio"] {
accent-color: var(--color-enuxia-blue);
width: 16px;
height: 16px;
cursor: pointer;
}
/* ── Boutons globaux ──────────────────────────────────────────────────────── */
button {
font-family: 'Inter', sans-serif;
font-weight: 500;
cursor: pointer;
transition: all 0.2s;
border: none;
}
.btn-primary {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 11px 22px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
background: var(--color-enuxia-blue);
color: white;
}
.btn-primary:hover {
background: #3a7aff;
transform: translateY(-1px);
box-shadow: 0 4px 20px rgba(79, 142, 255, 0.3);
}
.btn-ghost {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 9px 16px;
border-radius: 8px;
font-size: 13px;
background: var(--color-enuxia-border);
color: var(--color-enuxia-muted);
border: 1px solid var(--color-enuxia-border-2);
}
.btn-ghost:hover {
background: var(--color-enuxia-subtle);
color: var(--color-enuxia-text);
}
.btn-green {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 20px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
background: rgba(34, 197, 94, 0.12);
color: var(--color-enuxia-green);
border: 1px solid rgba(34, 197, 94, 0.25);
}
.btn-green:hover {
background: rgba(34, 197, 94, 0.2);
box-shadow: 0 4px 16px rgba(34, 197, 94, 0.15);
}
.btn-danger {
display: inline-flex;
align-items: center;
padding: 7px 14px;
border-radius: 8px;
font-size: 13px;
background: rgba(239, 68, 68, 0.08);
color: #f87171;
border: 1px solid rgba(239, 68, 68, 0.2);
}
.btn-danger:hover { background: rgba(239, 68, 68, 0.18); }
.btn-purple {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 10px 20px;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
background: rgba(139, 92, 246, 0.12);
color: var(--color-enuxia-purple);
border: 1px solid rgba(139, 92, 246, 0.25);
}
.btn-purple:hover { background: rgba(139, 92, 246, 0.2); }
/* ── Messages ─────────────────────────────────────────────────────────────── */
.msg-error {
padding: 10px 16px;
border-radius: 8px;
font-size: 13px;
background: rgba(239, 68, 68, 0.08);
color: #f87171;
border: 1px solid rgba(239, 68, 68, 0.2);
}
.msg-empty {
color: var(--color-enuxia-muted);
text-align: center;
padding: 60px 20px;
font-size: 14px;
}
/* ── Utilitaires ──────────────────────────────────────────────────────────── */
.divider { height: 1px; background: var(--color-enuxia-border); width: 100%; }
/* ════════════════════════════════════════════════════════════════════════════
LOGIN
════════════════════════════════════════════════════════════════════════════ */
.login-page {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
position: relative;
overflow: hidden;
}
.login-bg-glow {
position: absolute;
width: 600px;
height: 600px;
border-radius: 50%;
background: radial-gradient(ellipse, rgba(79, 142, 255, 0.08) 0%, transparent 70%);
pointer-events: none;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.admin-glow {
background: radial-gradient(ellipse, rgba(139, 92, 246, 0.08) 0%, transparent 70%);
}
.login-card {
width: 100%;
max-width: 440px;
background: var(--color-enuxia-dark-2);
border: 1px solid var(--color-enuxia-border-2);
border-radius: 24px;
padding: 36px;
display: flex;
flex-direction: column;
gap: 24px;
position: relative;
z-index: 1;
box-shadow: 0 40px 80px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.03);
}
.login-header {
display: flex;
align-items: center;
gap: 14px;
}
.login-title {
font-family: 'Space Grotesk', sans-serif;
font-size: 22px;
font-weight: 700;
color: var(--color-enuxia-text);
margin: 0;
letter-spacing: -0.02em;
}
.login-sub {
font-size: 13px;
color: var(--color-enuxia-muted);
margin: 2px 0 0 0;
}
.admin-icon {
width: 36px;
height: 36px;
border-radius: 10px;
background: rgba(139, 92, 246, 0.15);
border: 1px solid rgba(139, 92, 246, 0.3);
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
flex-shrink: 0;
}
.login-divider { height: 1px; background: var(--color-enuxia-border); }
.login-form { display: flex; flex-direction: column; gap: 12px; }
.field-label {
font-size: 12px;
font-weight: 600;
letter-spacing: 0.06em;
text-transform: uppercase;
color: var(--color-enuxia-muted);
}
.pwd-wrapper { position: relative; }
.pwd-input {
width: 100%;
padding: 13px 46px 13px 16px;
border-radius: 12px;
font-size: 15px;
font-family: 'Inter', sans-serif;
background: var(--color-enuxia-dark);
border: 1px solid var(--color-enuxia-border-2);
color: var(--color-enuxia-text);
outline: none;
transition: border-color 0.2s, box-shadow 0.2s;
}
.pwd-input:focus {
border-color: var(--color-enuxia-blue);
box-shadow: 0 0 0 3px rgba(79, 142, 255, 0.12);
}
.pwd-toggle {
position: absolute;
right: 14px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
color: var(--color-enuxia-muted);
cursor: pointer;
padding: 4px;
display: flex;
align-items: center;
transition: color 0.15s;
}
.pwd-toggle:hover { color: var(--color-enuxia-text); }
.field-error {
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
color: #f87171;
padding: 10px 14px;
border-radius: 8px;
background: rgba(239, 68, 68, 0.08);
border: 1px solid rgba(239, 68, 68, 0.2);
}
.btn-submit {
width: 100%;
padding: 14px;
border-radius: 12px;
font-size: 15px;
font-weight: 600;
font-family: 'Inter', sans-serif;
background: var(--color-enuxia-blue);
color: white;
border: none;
cursor: pointer;
transition: all 0.2s;
display: flex;
align-items: center;
justify-content: center;
min-height: 50px;
margin-top: 4px;
}
.btn-submit:hover:not(.loading) {
background: #3a7aff;
box-shadow: 0 6px 24px rgba(79, 142, 255, 0.35);
transform: translateY(-1px);
}
.btn-submit.loading {
background: rgba(79, 142, 255, 0.5);
cursor: not-allowed;
}
.spinner {
width: 18px;
height: 18px;
border: 2px solid rgba(255,255,255,0.3);
border-top-color: white;
border-radius: 50%;
animation: spin 0.7s linear infinite;
display: inline-block;
}
@keyframes spin { to { transform: rotate(360deg); } }
.login-footer {
font-size: 13px;
color: var(--color-enuxia-muted);
text-align: center;
}
.login-footer a {
color: var(--color-enuxia-blue);
font-weight: 500;
transition: color 0.15s;
}
.login-footer a:hover { color: #7aaeff; }
/* ════════════════════════════════════════════════════════════════════════════
HOME ÉTUDIANT
════════════════════════════════════════════════════════════════════════════ */
.home-page {
max-width: 680px;
margin: 0 auto;
padding: 64px 24px 40px;
display: flex;
flex-direction: column;
gap: 32px;
}
.quiz-grid { display: flex; flex-direction: column; gap: 12px; }
.quiz-item {
padding: 20px 24px;
border-radius: 14px;
cursor: pointer;
transition: all 0.2s;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border);
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
}
.quiz-item:hover {
border-color: var(--color-enuxia-border-2);
background: var(--color-enuxia-dark-2);
transform: translateX(4px);
}
.quiz-item.selected {
border-color: var(--color-enuxia-blue);
background: rgba(79, 142, 255, 0.05);
box-shadow: 0 0 0 1px rgba(79, 142, 255, 0.15);
}
.quiz-item .quiz-title {
font-family: 'Space Grotesk', sans-serif;
font-weight: 600;
font-size: 16px;
color: var(--color-enuxia-text);
}
.quiz-item .quiz-desc {
font-size: 13px;
color: var(--color-enuxia-muted);
margin-top: 2px;
}
.quiz-item .arrow {
color: var(--color-enuxia-muted);
font-size: 18px;
transition: transform 0.2s, color 0.2s;
flex-shrink: 0;
}
.quiz-item.selected .arrow {
color: var(--color-enuxia-blue);
transform: translateX(4px);
}
.quiz-item.quiz-done {
cursor: not-allowed;
opacity: 0.6;
border-color: rgba(34, 197, 94, 0.2);
}
.quiz-item.quiz-done:hover {
transform: none;
background: var(--color-enuxia-dark-3);
border-color: rgba(34, 197, 94, 0.2);
}
.identity-form {
padding: 24px;
border-radius: 14px;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border-2);
display: flex;
flex-direction: column;
gap: 12px;
animation: slideDown 0.25s ease;
}
@keyframes slideDown {
from { opacity: 0; transform: translateY(-8px); }
to { opacity: 1; transform: translateY(0); }
}
.identity-form .form-title {
font-family: 'Space Grotesk', sans-serif;
font-size: 15px;
font-weight: 600;
color: var(--color-enuxia-text);
}
.identity-form .btn-start {
width: 100%;
padding: 13px;
border-radius: 10px;
font-size: 15px;
font-weight: 600;
background: var(--color-enuxia-blue);
color: white;
margin-top: 4px;
transition: all 0.2s;
}
.identity-form .btn-start:hover {
background: #3a7aff;
box-shadow: 0 4px 20px rgba(79, 142, 255, 0.3);
}
/* ════════════════════════════════════════════════════════════════════════════
QUIZ PAGE
════════════════════════════════════════════════════════════════════════════ */
.quiz-page {
max-width: 640px;
margin: 0 auto;
padding: 48px 24px 40px;
display: flex;
flex-direction: column;
gap: 32px;
}
.quiz-topbar {
display: flex;
align-items: center;
justify-content: space-between;
}
.quiz-topbar .quiz-name {
font-family: 'Space Grotesk', sans-serif;
font-size: 15px;
font-weight: 600;
color: var(--color-enuxia-muted);
}
.quiz-topbar .question-badge {
font-size: 12px;
font-weight: 600;
padding: 5px 12px;
border-radius: 20px;
background: var(--color-enuxia-border);
color: var(--color-enuxia-muted);
letter-spacing: 0.05em;
}
.progress-track {
height: 3px;
border-radius: 99px;
background: var(--color-enuxia-border);
overflow: hidden;
}
.progress-fill {
height: 100%;
border-radius: 99px;
background: linear-gradient(90deg, var(--color-enuxia-blue), var(--color-enuxia-purple));
transition: width 0.4s ease;
}
.question-area { display: flex; flex-direction: column; gap: 10px; }
.question-section-tag {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-enuxia-purple);
}
.question-text {
font-family: 'Space Grotesk', sans-serif;
font-size: 22px;
font-weight: 700;
color: var(--color-enuxia-text);
line-height: 1.3;
}
.answers-list { display: flex; flex-direction: column; gap: 10px; }
.answer-option {
display: flex;
align-items: center;
gap: 14px;
padding: 16px 20px;
border-radius: 12px;
cursor: pointer;
transition: all 0.18s;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border);
text-align: left;
width: 100%;
color: var(--color-enuxia-text);
font-size: 14px;
font-weight: 500;
}
.answer-option:hover {
border-color: var(--color-enuxia-blue);
background: rgba(79, 142, 255, 0.06);
transform: translateX(3px);
}
.answer-option .opt-label {
width: 32px;
height: 32px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: 700;
flex-shrink: 0;
background: var(--color-enuxia-border);
color: var(--color-enuxia-blue);
transition: all 0.18s;
font-family: 'Space Grotesk', sans-serif;
}
.answer-option:hover .opt-label {
background: rgba(79, 142, 255, 0.2);
}
.answer-option.selected {
border-color: var(--color-enuxia-blue);
background: rgba(79, 142, 255, 0.1);
}
.answer-option.selected .opt-label {
background: rgba(79, 142, 255, 0.3);
color: white;
}
/* ════════════════════════════════════════════════════════════════════════════
RÉSULTAT
════════════════════════════════════════════════════════════════════════════ */
.result-page {
max-width: 680px;
margin: 0 auto;
padding: 48px 24px 80px;
display: flex;
flex-direction: column;
gap: 28px;
}
.result-hero {
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
gap: 14px;
padding: 52px 40px 44px;
border-radius: 24px;
background: var(--color-enuxia-dark-2);
border: 1px solid var(--color-enuxia-border-2);
text-align: center;
}
.result-hero::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -60%);
width: 300px;
height: 300px;
border-radius: 50%;
background: radial-gradient(ellipse, rgba(79, 142, 255, 0.09) 0%, transparent 65%);
pointer-events: none;
}
.result-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: var(--color-enuxia-muted);
position: relative;
}
.result-name {
font-family: 'Space Grotesk', sans-serif;
font-size: 20px;
font-weight: 700;
color: var(--color-enuxia-text);
position: relative;
}
.score-ring-wrap {
position: relative;
width: 200px;
height: 200px;
margin: 8px 0 4px;
}
.score-ring-inner {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
width: 120px;
text-align: center;
}
.score-ring-num {
font-size: 28px;
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1;
white-space: nowrap;
}
.score-ring-pct {
font-size: 13px;
font-weight: 500;
color: var(--color-enuxia-muted);
}
.result-tag {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 8px 20px;
border-radius: 20px;
font-size: 13px;
font-weight: 600;
position: relative;
}
.tag-great { background:rgba(34,197,94,0.1); color:#22C55E; border:1px solid rgba(34,197,94,0.25); }
.tag-ok { background:rgba(79,142,255,0.1); color:#4F8EFF; border:1px solid rgba(79,142,255,0.25); }
.tag-bad { background:rgba(248,113,113,0.1); color:#f87171; border:1px solid rgba(248,113,113,0.25); }
.score-pct {
font-size: 15px;
font-weight: 500;
color: var(--color-enuxia-muted);
}
.correction-section { display: flex; flex-direction: column; gap: 0; }
.correction-section h2 {
font-family: 'Space Grotesk', sans-serif;
font-size: 17px;
font-weight: 700;
color: var(--color-enuxia-text);
margin-bottom: 16px;
}
.correction-item {
padding: 16px 20px;
border-radius: 0;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border);
border-bottom: none;
display: flex;
flex-direction: column;
gap: 7px;
transition: background 0.15s;
}
.correction-item:first-of-type { border-radius: 14px 14px 0 0; }
.correction-item:last-of-type { border-radius: 0 0 14px 14px; border-bottom: 1px solid var(--color-enuxia-border); }
.correction-item:only-of-type { border-radius: 14px; border-bottom: 1px solid var(--color-enuxia-border); }
.correction-item.is-correct { border-color:rgba(34,197,94,0.2); border-left:3px solid #22C55E; background:rgba(34,197,94,0.03); }
.correction-item.is-wrong { border-color:rgba(239,68,68,0.2); border-left:3px solid #ef4444; background:rgba(239,68,68,0.03); }
.correction-item:hover { background: rgba(255,255,255,0.015); }
.corr-meta { display: flex; align-items: center; gap: 8px; }
.corr-qnum {
font-size: 10px; font-weight: 700;
padding: 2px 8px; border-radius: 4px;
background: rgba(139,92,246,0.1); color: var(--color-enuxia-purple);
letter-spacing: 0.04em;
}
.corr-section {
font-size: 10px; font-weight: 700;
letter-spacing: 0.1em; text-transform: uppercase;
color: var(--color-enuxia-muted);
}
.corr-question { font-size: 14px; font-weight: 500; color: var(--color-enuxia-text); line-height: 1.4; }
.corr-chosen { font-size: 13px; color: var(--color-enuxia-muted); }
.corr-right { font-size: 13px; font-weight: 600; color: var(--color-enuxia-green); }
.btn-home-link {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 13px 28px;
border-radius: 12px;
font-size: 14px;
font-weight: 600;
background: var(--color-enuxia-border);
color: var(--color-enuxia-muted);
transition: all 0.2s;
align-self: center;
border: 1px solid var(--color-enuxia-border-2);
}
.btn-home-link:hover {
background: var(--color-enuxia-subtle);
color: var(--color-enuxia-text);
transform: translateY(-1px);
}
/* ════════════════════════════════════════════════════════════════════════════
ADMIN — COMMUN
════════════════════════════════════════════════════════════════════════════ */
.admin-page {
max-width: 1000px;
margin: 0 auto;
padding: 40px 32px 64px;
display: flex;
flex-direction: column;
gap: 32px;
}
.admin-topbar {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 16px;
padding-bottom: 24px;
border-bottom: 1px solid var(--color-enuxia-border);
}
.admin-topbar h1 { font-size: 26px; font-weight: 700; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
/* ── Tables ───────────────────────────────────────────────────────────────── */
.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table thead tr { border-bottom: 1px solid var(--color-enuxia-border); }
.data-table th {
padding: 10px 16px;
text-align: left;
font-size: 11px; font-weight: 700;
letter-spacing: 0.08em; text-transform: uppercase;
color: var(--color-enuxia-muted);
}
.data-table td {
padding: 14px 16px;
border-bottom: 1px solid var(--color-enuxia-border);
color: var(--color-enuxia-text);
vertical-align: middle;
}
.data-table tbody tr:last-child td { border-bottom: none; }
.data-table tbody tr:hover td { background: rgba(79,142,255,0.025); }
.table-actions { display: flex; align-items: center; gap: 8px; }
.table-link {
font-size: 13px; font-weight: 500;
padding: 6px 14px; border-radius: 7px;
background: var(--color-enuxia-border); color: var(--color-enuxia-muted);
transition: all 0.15s;
}
.table-link:hover { background: var(--color-enuxia-subtle); color: var(--color-enuxia-text); }
.badge-on { font-size:11px; font-weight:700; padding:4px 10px; border-radius:20px; background:rgba(34,197,94,0.1); color:var(--color-enuxia-green); letter-spacing:0.04em; }
.badge-off { font-size:11px; font-weight:700; padding:4px 10px; border-radius:20px; background:var(--color-enuxia-border); color:var(--color-enuxia-muted); letter-spacing:0.04em; }
/* ── Éditeur quiz ─────────────────────────────────────────────────────────── */
.quiz-editor { display: flex; flex-direction: column; gap: 24px; }
.quiz-meta-card {
padding: 24px; border-radius: 14px;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border);
display: flex; flex-direction: column; gap: 14px;
}
.quiz-meta-card .save-row {
display: flex; align-items: center; justify-content: space-between;
gap: 12px; flex-wrap: wrap;
}
.checkbox-row {
display: flex; align-items: center; gap: 8px;
font-size: 14px; color: var(--color-enuxia-muted); cursor: pointer;
}
.questions-header {
display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px;
}
.questions-header h2 { font-size: 18px; font-weight: 700; color: var(--color-enuxia-text); }
.question-card {
padding: 20px; border-radius: 14px;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border);
display: flex; flex-direction: column; gap: 14px; margin-bottom: 12px;
}
.question-card .qcard-header { display: flex; align-items: center; justify-content: space-between; }
.q-badge {
font-family: 'Space Grotesk', sans-serif;
font-size: 11px; font-weight: 700;
padding: 4px 10px; border-radius: 6px;
background: rgba(79,142,255,0.1); color: var(--color-enuxia-blue);
letter-spacing: 0.05em;
}
.answers-editor { display: flex; flex-direction: column; gap: 8px; }
.answer-editor-row { display: flex; align-items: center; gap: 10px; }
.answer-letter {
width: 30px; height: 30px; border-radius: 7px;
display: flex; align-items: center; justify-content: center;
font-size: 12px; font-weight: 700; flex-shrink: 0;
background: var(--color-enuxia-border); color: var(--color-enuxia-purple);
font-family: 'Space Grotesk', sans-serif;
}
.answer-editor-row input[type="text"] { flex: 1; }
.radio-correct {
display: flex; align-items: center; gap: 6px;
font-size: 12px; font-weight: 500;
color: var(--color-enuxia-muted); white-space: nowrap; cursor: pointer;
}
/* ── Admin résultats & détail ─────────────────────────────────────────────── */
.csv-box {
padding: 16px; border-radius: 12px;
background: var(--color-enuxia-dark-3);
border: 1px solid rgba(34,197,94,0.25);
display: flex; flex-direction: column; gap: 10px;
}
.csv-box p { font-size: 13px; font-weight: 600; color: var(--color-enuxia-green); }
.csv-box textarea { font-family: monospace; font-size: 12px; min-height: 160px; }
.score-summary-bar {
display: flex; align-items: center; justify-content: space-between;
padding: 18px 24px; border-radius: 12px;
background: var(--color-enuxia-dark-3); border: 1px solid var(--color-enuxia-border);
}
.score-summary-bar .score-val {
font-family: 'Space Grotesk', sans-serif;
font-size: 24px; font-weight: 700;
background: linear-gradient(135deg, var(--color-enuxia-blue), var(--color-enuxia-purple));
-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.score-summary-bar .date-val { font-size: 13px; color: var(--color-enuxia-muted); }
/* ════════════════════════════════════════════════════════════════════════════
RESPONSIVE MOBILE
════════════════════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
/* ── Base ─────────────────────────────────────────────────────────────── */
body { font-size: 14px; }
/* ── Login ────────────────────────────────────────────────────────────── */
.login-card {
padding: 24px 20px;
border-radius: 18px;
gap: 20px;
}
.login-title { font-size: 19px; }
/* ── Home étudiant ────────────────────────────────────────────────────── */
.home-page {
padding: 32px 16px 40px;
gap: 24px;
}
.home-page h1 { font-size: 26px !important; }
.quiz-item { padding: 16px 18px; }
.quiz-item .quiz-title { font-size: 15px; }
.identity-form { padding: 18px 16px; }
/* ── Quiz ─────────────────────────────────────────────────────────────── */
.quiz-page {
padding: 24px 16px 40px;
gap: 20px;
}
.question-text { font-size: 18px; }
.answer-option { padding: 13px 16px; }
.answer-option .opt-label {
width: 28px;
height: 28px;
font-size: 11px;
}
/* ── Résultat ─────────────────────────────────────────────────────────── */
.result-page {
padding: 24px 16px 60px;
gap: 20px;
}
.result-hero {
padding: 36px 20px 32px;
gap: 12px;
}
.score-ring-wrap {
width: 160px;
height: 160px;
}
.score-ring-wrap svg {
width: 160px;
height: 160px;
}
.score-ring-num { font-size: 22px; }
.result-name { font-size: 17px; }
.correction-item { padding: 14px 14px 14px 16px; }
.corr-question { font-size: 13px; }
/* ── Admin ────────────────────────────────────────────────────────────── */
.admin-page {
padding: 24px 16px 48px;
gap: 20px;
}
.admin-topbar {
flex-direction: column;
align-items: flex-start;
gap: 12px;
padding-bottom: 16px;
}
.admin-topbar h1 { font-size: 22px; }
.topbar-actions {
width: 100%;
flex-wrap: wrap;
gap: 8px;
}
.topbar-actions a,
.topbar-actions button {
flex: 1;
justify-content: center;
text-align: center;
min-width: 0;
}
/* ── Table scrollable ─────────────────────────────────────────────────── */
.data-table {
display: block;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
white-space: nowrap;
}
.data-table thead { display: none; }
.data-table tbody tr {
display: flex;
flex-direction: column;
gap: 8px;
padding: 16px;
border-radius: 12px;
background: var(--color-enuxia-dark-3);
border: 1px solid var(--color-enuxia-border);
margin-bottom: 10px;
}
.data-table td {
display: block;
padding: 0;
border: none;
white-space: normal;
}
.data-table td:first-child {
font-size: 15px;
font-weight: 700;
color: var(--color-enuxia-text);
}
.table-actions {
flex-wrap: wrap;
gap: 6px;
margin-top: 4px;
}
.table-actions a,
.table-actions button {
flex: 1;
justify-content: center;
text-align: center;
}
/* ── Quiz editor ──────────────────────────────────────────────────────── */
.quiz-meta-card { padding: 16px; }
.question-card { padding: 16px; }
.answer-editor-row { flex-wrap: wrap; }
.save-row { flex-direction: column; }
.save-row button { width: 100%; }
/* ── Stats grid ───────────────────────────────────────────────────────── */
div[style*="grid-template-columns:repeat(3"] {
display: flex !important;
flex-direction: column !important;
gap: 12px !important;
}
/* ── Score bar ────────────────────────────────────────────────────────── */
.score-summary-bar {
flex-direction: column;
align-items: flex-start;
gap: 8px;
padding: 16px;
}
/* ── Boutons navigation quiz ──────────────────────────────────────────── */
.btn-ghost,
.btn-primary {
padding: 10px 16px;
font-size: 13px;
}
}
/* ── Text overflow fixes ──────────────────────────────────────────────────── */
.question-text,
.answer-option,
.corr-question,
.corr-chosen,
.corr-right,
.quiz-item .quiz-title,
.quiz-item .quiz-desc,
.q-badge,
.data-table td,
.answer-editor-row input[type="text"] {
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-word;
hyphens: auto;
}
/* Réponses dans l'éditeur admin */
.answer-option {
align-items: flex-start;
}
.answer-option .opt-label {
flex-shrink: 0;
margin-top: 2px;
}
/* Questions dans l'éditeur */
.question-card input[type="text"],
.question-card textarea {
word-break: break-word;
overflow-wrap: break-word;
}
/* Table admin */
.data-table td {
max-width: 300px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
@media (max-width: 640px) {
.data-table td {
max-width: 100%;
white-space: normal;
overflow: visible;
text-overflow: unset;
}
}