:root{--color-bg: #FBF9F4;--color-surface: #FFFFFF;--color-primary: #1B6B4D;--color-primary-dark: #124834;--color-accent: #F2A93B;--color-accent-dark: #C9820F;--color-danger: #C1432E;--color-text: #1F2A24;--color-text-muted: #5C6B62;--color-border: #E4DFD2;--radius: 12px;--shadow: 0 2px 8px rgba(31, 42, 36, .08);--shadow-lg: 0 8px 24px rgba(31, 42, 36, .14);--font-display: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-body: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--touch: 44px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);color:var(--color-primary-dark);line-height:1.2;margin:0 0 .5rem}h1{font-size:1.5rem;font-weight:800}h2{font-size:1.25rem;font-weight:700}h3{font-size:1.05rem;font-weight:700}p{margin:0 0 .75rem}.subtitle{color:var(--color-text-muted);margin-top:-.25rem}.fine-print{font-size:.8rem;color:var(--color-text-muted)}button,input,select,textarea{font-family:inherit;font-size:1rem}a,button{cursor:pointer}.page{max-width:900px;margin:0 auto;padding:1rem 1rem 3rem}main{min-height:calc(100vh - 64px)}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh}.footer{text-align:center;padding:1.5rem;color:var(--color-text-muted);font-size:.85rem}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.navbar{background:var(--color-primary);color:#fff;border-bottom:3px solid var(--color-accent);position:sticky;top:0;z-index:20}.navbar-inner{max-width:900px;margin:0 auto;padding:.5rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.brand{background:none;border:none;color:#fff;font-size:1.15rem;font-weight:800;padding:.5rem 0;min-height:var(--touch)}.burger{background:none;border:none;color:#fff;font-size:1.4rem;min-width:var(--touch);min-height:var(--touch);display:block}.nav-links{display:none;flex-direction:column;width:100%;gap:.25rem;padding-top:.5rem}.nav-links.open{display:flex}.nav-links button{background:none;border:none;color:#fff;text-align:left;padding:.75rem .5rem;min-height:var(--touch);border-radius:8px;font-weight:600}.nav-links button:hover{background:#ffffff1f}.nav-user{padding:.5rem;opacity:.85;font-size:.9rem}.nav-links .btn-primary,.nav-links .btn-outline{width:100%}@media (min-width: 768px){.burger{display:none}.nav-links{display:flex!important;flex-direction:row;width:auto;align-items:center;padding-top:0}.nav-links button{padding:.5rem .75rem}.nav-links .btn-primary,.nav-links .btn-outline{width:auto}}button{min-height:var(--touch);border-radius:10px;border:none;padding:.65rem 1.1rem;font-weight:700;transition:transform .05s ease,opacity .15s ease}button:active{transform:scale(.98)}button:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:#241705}.btn-primary:hover{background:var(--color-accent-dark)}.btn-outline{background:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background:#1b6b4d14}.btn-danger{background:#fbeae6;color:var(--color-danger);border:1px solid rgba(193,67,46,.3)}.btn-link{background:none;border:none;color:var(--color-primary);font-weight:700;padding:.5rem 0;min-height:auto}.btn-block{width:100%}.btn-small{padding:.4rem .75rem;min-height:36px;font-size:.85rem}.btn-icon{min-width:var(--touch);min-height:var(--touch);background:none;border:none;color:var(--color-danger);font-size:1.1rem}.btn-submit{margin-top:1rem}.card{background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin-bottom:1rem}.form{display:flex;flex-direction:column;gap:.85rem}.form label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.9rem;color:var(--color-text)}.checkbox-label{flex-direction:row!important;align-items:center;gap:.6rem!important}.checkbox-label input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.form-row{display:flex;flex-direction:column;gap:.85rem}.form-row .grow{flex:1}@media (min-width: 640px){.form-row{flex-direction:row}}input,select,textarea{border:1.5px solid var(--color-border);border-radius:8px;padding:.65rem .75rem;min-height:var(--touch);background:#fff;color:var(--color-text);width:100%}input:focus,select:focus,textarea:focus{outline:3px solid rgba(242,169,59,.5);border-color:var(--color-accent)}textarea{min-height:4.5rem;resize:vertical}.error-box{background:#fbeae6;color:var(--color-danger);border:1px solid rgba(193,67,46,.3);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;font-weight:600}.success-box{background:#eaf5ee;color:var(--color-primary-dark);border:1px solid rgba(27,107,77,.3);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;font-weight:600}.loader{padding:2rem 0;text-align:center;color:var(--color-text-muted);font-weight:600}.auth-page{display:flex;justify-content:center;padding-top:1.5rem}.auth-card{width:100%;max-width:420px}.tabs{display:flex;gap:.25rem;margin-bottom:1rem;background:var(--color-bg);border-radius:10px;padding:.25rem}.tabs button{flex:1;background:none;color:var(--color-text-muted);border-radius:8px;padding:.5rem;font-size:.9rem}.tabs button.active{background:var(--color-primary);color:#fff}.grid-cards{display:grid;grid-template-columns:1fr;gap:.85rem;margin-top:1rem}@media (min-width: 640px){.grid-cards{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.grid-cards{grid-template-columns:repeat(3,1fr)}}.subject-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;min-height:110px}.subject-card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-accent)}.subject-icon{font-size:1.8rem}.subject-name{font-weight:800;color:var(--color-primary-dark);font-size:1.05rem}.subject-count{color:var(--color-text-muted);font-size:.85rem}.list-quiz{display:flex;flex-direction:column;gap:.75rem}.quiz-item{display:flex;flex-direction:column;gap:.75rem;margin-bottom:0}.quiz-item-info h3{margin-bottom:.15rem}.quiz-meta{color:var(--color-text-muted);font-size:.85rem;margin:0}.quiz-note{color:var(--color-accent-dark);font-weight:700;margin-top:.35rem!important}.training-counter{font-size:.85rem;font-weight:700;color:var(--color-primary-dark);background:#eaf5ee;border:1px solid rgba(27,107,77,.25);border-radius:8px;padding:.5rem .75rem;display:inline-block;margin-bottom:.75rem}.training-counter.exhausted{color:var(--color-danger);background:#fbeae6;border-color:#c1432e4d}.quiz-item-actions{display:flex;gap:.5rem;flex-wrap:wrap}.quiz-item-actions button{flex:1;min-width:130px}@media (min-width: 640px){.quiz-item{flex-direction:row;align-items:center;justify-content:space-between}.quiz-item-actions button{flex:none}}.quiz-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;position:sticky;top:64px;background:var(--color-bg);padding:.5rem 0;z-index:10}.timer{background:var(--color-primary);color:#fff;font-weight:800;padding:.5rem .9rem;border-radius:999px;white-space:nowrap}.timer-urgent{background:var(--color-danger);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.progress-bar{background:var(--color-border);border-radius:999px;height:8px;overflow:hidden;margin-top:.75rem}.progress-fill{background:var(--color-accent);height:100%;transition:width .2s ease}.progress-label{font-size:.8rem;color:var(--color-text-muted);margin:.35rem 0 1rem}.question-card{margin-bottom:.85rem}.question-text{font-weight:700;margin-bottom:.75rem}.options-list{display:flex;flex-direction:column;gap:.5rem}.option-item{display:flex;align-items:center;gap:.65rem;border:1.5px solid var(--color-border);border-radius:10px;padding:.7rem .85rem;min-height:var(--touch);font-weight:600}.option-item input{width:20px;height:20px;flex-shrink:0}.option-item.selected{border-color:var(--color-accent);background:#fff7e8}.result-card{text-align:center}.score-big{font-size:2.5rem;font-weight:900;color:var(--color-primary);margin:.5rem 0 0}.score-pct{color:var(--color-text-muted);font-weight:700;margin-top:0}.badge-competition{display:inline-block;background:var(--color-accent);color:#241705;border-radius:999px;padding:.25rem .85rem;font-weight:700;font-size:.85rem}.correction-list{text-align:left;margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem}.correction-item{border-radius:10px;padding:.65rem .85rem;border-left:4px solid}.correction-item.ok{background:#eaf5ee;border-color:var(--color-primary)}.correction-item.ko{background:#fbeae6;border-color:var(--color-danger)}.correction-q{margin:0 0 .25rem;font-weight:600}.correction-a{margin:0;font-size:.85rem}.result-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:1.25rem}@media (min-width: 640px){.result-actions{flex-direction:row;justify-content:center}.result-actions button{min-width:200px}}.grid-plans{display:grid;grid-template-columns:1fr;gap:.75rem;margin:1rem 0}@media (min-width: 640px){.grid-plans{grid-template-columns:repeat(3,1fr)}}.plan-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.35rem;align-items:center}.plan-card.selected{border-color:var(--color-accent);background:#fff7e8}.plan-label{font-weight:700}.plan-price{font-size:1.4rem;font-weight:900;color:var(--color-primary)}.plan-duration{color:var(--color-text-muted);font-size:.82rem}.methode-choice{display:flex;gap:.5rem}.methode-choice button{flex:1;background:var(--color-bg);border:1.5px solid var(--color-border);color:var(--color-text);font-weight:700}.methode-choice button.active{border-color:var(--color-accent);background:#fff7e8}.payment-form{border-left-color:var(--color-accent)}.payment-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.65rem;padding:.8rem;margin-bottom:.9rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px}.payment-summary div{display:flex;flex-direction:column;gap:.1rem}.payment-summary span{color:var(--color-text-muted);font-size:.78rem}.payment-summary strong{color:var(--color-primary-dark)}.payment-state-card{max-width:680px;margin:1rem auto}.payment-state-card.pending{border-left-color:var(--color-accent)}.payment-state-card.failed,.payment-state-card.expired,.payment-state-card.cancelled{border-left-color:var(--color-danger)}.payment-state-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.payment-status-badge{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:.3rem .65rem;border-radius:999px;background:#fff7e8;color:#704806;font-size:.75rem;font-weight:800}.payment-status-message{font-weight:600}.payment-reference{overflow-wrap:anywhere;color:var(--color-text-muted);font-size:.9rem}.payment-actions{display:flex;flex-direction:column;gap:.55rem;margin-top:1rem}.payment-notice{padding:.75rem 1rem;margin-bottom:1rem;border:1px solid #B8D5E5;border-radius:8px;background:#edf7fc;color:#174b67;font-weight:600}.active-subscription-card .success-box{margin-bottom:0}@media (min-width: 640px){.payment-actions{flex-direction:row;flex-wrap:wrap}.payment-actions button{flex:1;min-width:180px}}.filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}@media (min-width: 640px){.filters{flex-direction:row}.filters select{flex:1}}.ranking-table-wrap{overflow-x:auto}.ranking-table{width:100%;border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.ranking-table th{background:var(--color-primary);color:#fff;text-align:left;padding:.75rem;font-size:.85rem}.ranking-table td{padding:.75rem;border-bottom:1px solid var(--color-border)}.ranking-table tr.top3{background:#fff7e8;font-weight:700}@media (max-width: 639px){.ranking-table thead{display:none}.ranking-table,.ranking-table tbody,.ranking-table tr,.ranking-table td{display:block;width:100%}.ranking-table tr{border:1px solid var(--color-border);border-radius:10px;margin-bottom:.6rem;padding:.5rem .75rem}.ranking-table td{border:none;padding:.3rem 0;display:flex;justify-content:space-between;gap:.5rem}.ranking-table td:before{content:attr(data-label);font-weight:700;color:var(--color-text-muted)}}.grid-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin:1rem 0}@media (min-width: 640px){.grid-stats{grid-template-columns:repeat(3,1fr)}}.stat-card{text-align:center}.stat-icon{font-size:1.5rem;display:block}.stat-value{font-size:1.6rem;font-weight:900;color:var(--color-primary);display:block}.stat-label{font-size:.8rem;color:var(--color-text-muted)}.admin-quick-actions{display:flex;flex-direction:column;gap:.5rem}@media (min-width: 640px){.admin-quick-actions{flex-direction:row;flex-wrap:wrap}}.tranzak-settings-form{margin-top:1rem}.tranzak-settings-grid{display:grid;grid-template-columns:1fr;gap:.8rem}.tranzak-settings-grid label{display:flex;flex-direction:column;gap:.35rem}.tranzak-settings-grid label small{color:var(--color-primary);font-weight:700}.settings-toggle{flex-direction:row!important;align-items:center;min-height:var(--touch)}.settings-toggle input,.settings-clear-row input{width:20px;height:20px;flex:0 0 auto}.settings-clear-row{display:flex;flex-direction:column;gap:.55rem;padding:.8rem;background:var(--color-bg);border-radius:8px}.settings-clear-row label{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.settings-enabled{background:#eaf5ee;color:var(--color-primary-dark)}.app-crash-card{max-width:620px;margin:3rem auto;border-left-color:var(--color-danger);text-align:center}@media (min-width: 760px){.tranzak-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-wide{grid-column:1 / -1}.settings-clear-row{flex-direction:row;justify-content:space-between}}.admin-payment-header-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-payment-summary{display:grid;grid-template-columns:1fr;gap:.75rem;margin:1rem 0}.admin-payment-summary-card{padding:1rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:var(--shadow-sm)}.admin-payment-summary-card span,.admin-payment-summary-card small{display:block;color:var(--color-text-muted)}.admin-payment-summary-card strong{display:block;margin:.25rem 0;font-size:1.5rem;color:var(--color-primary)}.admin-payment-summary-card.summary-received{border-left:4px solid #16845b}.admin-payment-summary-card.summary-pending{border-left:4px solid #d68b08}.admin-payment-summary-card.summary-failed{border-left:4px solid #c64235}.admin-payment-filters{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:1rem}.admin-payment-filters label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:700}.admin-payment-filter-actions{display:flex;align-items:end;gap:.5rem}.admin-payment-table{min-width:1180px}.admin-payment-table td{vertical-align:top;font-size:.85rem}.admin-payment-table td small{display:block;margin-top:.25rem;color:var(--color-text-muted);overflow-wrap:anywhere}.admin-payment-table td>strong{overflow-wrap:anywhere}.admin-payment-status,.webhook-state{display:inline-block;padding:.25rem .55rem;border-radius:999px;font-size:.75rem;font-weight:800;background:#eef1ef}.status-successful,.webhook-accepted{background:#eaf5ee;color:var(--color-primary-dark)}.status-failed,.status-cancelled,.status-expired,.webhook-rejected,.webhook-error{background:#fbeae6;color:var(--color-danger)}.status-pending,.status-payment_in_progress,.status-redirect_required,.status-created,.webhook-received{background:#fff7e8;color:#704806}.admin-payment-row-actions{display:flex;flex-direction:column;gap:.35rem;min-width:120px}.admin-payment-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin:1rem 0}.admin-payment-detail{margin-top:1.5rem;border-left-color:var(--color-accent)}.admin-payment-detail-grid{display:grid;grid-template-columns:1fr;gap:.65rem;margin:1rem 0}.admin-payment-detail-grid>div{background:var(--color-bg);border-radius:8px;padding:.65rem;overflow-wrap:anywhere}.admin-payment-detail-grid span{display:block;color:var(--color-text-muted);font-size:.78rem}.admin-payment-detail-grid strong{display:block;margin-top:.1rem}.admin-payment-audit-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.admin-payment-audit-item{display:grid;gap:.2rem;padding:.65rem;border:1px solid var(--color-border);border-radius:8px}.admin-payment-audit-item span{color:var(--color-text-muted);font-size:.82rem}.admin-payment-audit-item code{display:block;overflow-wrap:anywhere;white-space:normal;font-size:.75rem}@media (min-width: 760px){.admin-payment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-payment-filters{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.admin-payment-detail-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1100px){.admin-payment-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-payment-filters{grid-template-columns:2fr 1fr 1fr 1fr 1fr auto}}@media (max-width: 639px){.admin-payment-table{min-width:0}}.question-editor{border-left-color:var(--color-accent)}.question-editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.points-input{max-width:120px}.options-label{font-weight:700;font-size:.85rem;margin:.5rem 0 .35rem}.option-editor-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.option-editor-row input[type=radio]{width:22px;height:22px;flex-shrink:0}.option-editor-row input[type=text]{flex:1}.help-card{border-left-color:var(--color-accent)}.help-steps{padding-left:1.25rem;display:flex;flex-direction:column;gap:.6rem}.help-steps li{line-height:1.5}.help-tips-list{padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem}.help-credit{text-align:center;color:var(--color-text-muted);font-style:italic;margin-top:1.5rem;padding-top:1rem;border-top:1px dashed var(--color-border)}.help-credit a{color:var(--color-primary);font-style:normal;font-weight:600}code{background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:.1rem .35rem;font-family:monospace}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
