.card {min-width:0;padding:clamp(20px,3vw,28px);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);}
.open-section {min-width:0;padding-block:4px;}
.open-section>.eyebrow+.h2,.open-section>.eyebrow+h2 {margin-top:10px;}
.button {display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:12px;padding:11px 18px;border:1px solid var(--color-border-strong);border-radius:var(--radius-button);background:var(--color-surface);color:var(--color-text);font-size:.9rem;font-weight:650;text-align:center;text-decoration:none;transition:border-color .18s,background .18s,color .18s;}
.button:hover {border-color:var(--color-accent);}
.button.primary {border-color:var(--color-accent);background:var(--color-accent);color:#fff;}
.button.primary:hover {background:#203F56;}
.button:disabled,.button[aria-disabled="true"] {cursor:wait;opacity:.58;}
.text-link,.back-link {display:inline-flex;min-height:44px;align-items:center;color:var(--color-accent);font-size:.88rem;font-weight:650;text-underline-offset:4px;}
.back-link {width:max-content;text-decoration:none;}
.text-button {min-height:44px;padding:6px;border:0;background:transparent;color:var(--color-accent);font-size:.82rem;text-decoration:underline;text-underline-offset:4px;}
.tag,.status-pill {display:inline-flex;min-height:26px;align-items:center;padding:4px 9px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-muted);font:650 .66rem/1.2 var(--font-mono);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;}
.tag.accent {border-color:#BCCCD6;background:var(--color-accent-soft);color:var(--color-accent);}
.notice {margin:0;padding:12px 15px;border-left:3px solid var(--color-accent);background:var(--color-accent-soft);font-size:.87rem;}
.meter {height:5px;overflow:hidden;border-radius:8px;background:#E5E7E2;}
.meter span {display:block;height:100%;border-radius:inherit;background:var(--color-accent);}
.section-heading {display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;}
.section-heading>.muted {font-size:.82rem;}
.status-line {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:64px;padding-top:18px;border-top:1px solid var(--color-border);color:var(--color-muted);font-size:.74rem;}
.status-dot {width:6px;height:6px;border-radius:50%;background:var(--color-success);}
.simple-list,.timeline,.activity-list,.difficulty-list {list-style:none;padding:0;}
.simple-list {margin-top:14px;}
.simple-list li {display:flex;min-height:50px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--color-border);}
.simple-list li:last-child {border:0;}
.simple-list a {padding-block:12px;font-weight:600;text-decoration-thickness:1px;text-underline-offset:4px;}
.skill-list {list-style:none;padding:0;margin:16px 0 0;}
.skill-list>li {display:grid;gap:10px;padding:18px 0;border-bottom:1px solid var(--color-border);}
.skill-list>li:last-child {border:0;}
.skill-heading {display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;}
.skill-heading h3,.skill-heading a {flex:1 1 180px;font-size:.96rem;}
.skill-heading a {padding-block:5px;text-underline-offset:4px;}
.module-card {display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;padding:18px 0;border-bottom:1px solid var(--color-border);text-decoration:none;}
.module-card:last-child {border:0;}
.module-number,.unit-number {font:600 .72rem/1.7 var(--font-mono);color:var(--color-muted);}
.module-body {min-width:0;}
.module-body h3 {margin-bottom:4px;}
.module-body .meter {margin-top:10px;}
.module-meta {font-size:.74rem;color:var(--color-muted);}
.module-score {max-width:90px;text-align:right;white-space:nowrap;font-size:.83rem;font-weight:650;}
.level-control {display:grid;gap:8px;font-size:.88rem;font-weight:600;}
select {width:100%;height:48px;min-height:48px;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface);color:var(--color-text);}
summary {min-height:48px;padding-block:12px;cursor:pointer;font-weight:650;}
.mastery-details p {margin-top:14px;font-size:.9rem;}

.nav-inner{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(min-width:901px){.nav-inner{grid-template-columns:1fr}}

/* App shell */
.app-header {height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,3vw,40px);border-bottom:1px solid var(--color-border);background:var(--color-paper);}
.brand {display:flex;min-width:0;min-height:44px;align-items:center;gap:12px;text-decoration:none;}
.brand>div {min-width:0;}
.brand-mark {display:grid;width:38px;height:38px;flex-shrink:0;place-items:center;border:1px solid var(--color-text);border-radius:50%;background:var(--color-text);color:var(--color-surface);font:600 1rem var(--font-editorial);}
.brand-name {font-weight:700;letter-spacing:-.02em;}
.course-label {color:var(--color-muted);font-size:.72rem;white-space:nowrap;}
.header-path {display:grid;gap:2px;text-align:right;text-decoration:none;}
.header-path-label {color:var(--color-muted);font:650 .62rem var(--font-mono);letter-spacing:.1em;}
.header-path>span:last-child {font-size:.82rem;font-weight:600;}
.header-meta {display:flex;align-items:center;gap:24px;}
.header-about {display:inline-flex;min-height:44px;align-items:center;color:var(--color-accent);font-size:.78rem;font-weight:650;text-underline-offset:4px;}
.page {width:100%;max-width:var(--content-max);margin-inline:auto;padding:clamp(30px,5vw,58px) clamp(20px,4vw,48px) var(--nav-clearance);container-type:inline-size;}
.bottom-nav {position:fixed;z-index:30;inset:auto 0 0;background:rgba(255,254,250,.98);border-top:1px solid var(--color-border);padding:7px 6px max(7px,env(safe-area-inset-bottom));}
.nav-inner {max-width:640px;margin:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;}
.nav-link {display:flex;min-width:0;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 2px;border-radius:7px;color:var(--color-muted);font-size:.67rem;font-weight:600;line-height:1.15;text-align:center;text-decoration:none;}
.nav-link svg {width:20px;height:20px;}
.nav-link[aria-current=page] {background:var(--color-accent-soft);color:var(--color-accent);}

/* Questions et feedback */
.session-page,.summary-page,.lab-workbench {max-width:760px;margin-inline:auto;}
.session-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.question-stem {margin:28px 0 22px;font:500 clamp(1.35rem,3vw,1.75rem)/1.38 var(--font-editorial);letter-spacing:-.02em;white-space:pre-wrap;}
.question-fieldset {min-width:0;margin:0;padding:0;border:0;}
.question-fieldset legend {margin-bottom:14px;padding:0;}
.question-option {display:flex;min-height:62px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:16px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);cursor:pointer;scroll-margin-bottom:calc(var(--nav-height,76px) + 100px);}
.question-option input {width:20px;height:20px;flex-shrink:0;margin:3px 0 0;accent-color:var(--color-accent);}
.question-option:has(input:checked):not(.answer-correct):not(.answer-incorrect) {border-color:var(--color-accent);background:var(--color-accent-soft);}
.question-option:has(input:focus-visible) {outline:3px solid var(--color-accent);outline-offset:2px;}
.question-option.answer-correct {border-color:var(--color-success);background:var(--color-sage-soft);}
.question-option.answer-incorrect {border-color:var(--color-error);background:#F8EFEC;}
.option-text,.question-stem,.feedback-panel p {white-space:pre-wrap;}
.option-state {display:block;margin-top:7px;font-size:.78rem;font-weight:650;}
.option-state:empty {display:none;}
.feedback-panel {display:grid;gap:18px;margin-top:20px;padding:22px;border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:10px;background:var(--color-surface);}
.feedback-panel h3 {margin-bottom:6px;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;}
.feedback-panel p,.feedback-panel li {font-size:.94rem;}
.feedback-panel p+p {margin-top:10px;}
.feedback-panel ul {margin:0;padding-left:20px;}
.feedback-panel .takeaway {padding-top:14px;border-top:1px solid var(--color-border);}
.feedback-slot {scroll-margin-top:24px;}
.session-actions {position:sticky;bottom:calc(var(--nav-height,76px) + 8px);display:grid;gap:5px;margin-top:22px;padding:10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-paper);}
.session-actions .text-link {justify-content:center;}
.question-form {padding-bottom:20px;}
.summary-score {font:500 2.8rem/1 var(--font-editorial);}
.summary-actions {display:flex;flex-wrap:wrap;gap:10px;}

/* Examens */
.training-grid,.module-layout {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start;}
.training-card {display:grid;height:100%;gap:14px;}
.exam-card {min-height:280px;}
.exam-heading {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.exam-heading .meter {min-width:min(360px,45vw);margin-top:10px;}
.exam-timer {padding:9px 11px;border:1px solid var(--color-border-strong);border-radius:8px;background:var(--color-surface);font:650 1.15rem/1 var(--font-mono);white-space:nowrap;}
.exam-timer.is-warning {border-color:#A88B45;color:var(--color-warning);background:#FBF7EC;}
.exam-timer.is-critical {border-color:var(--color-error);color:var(--color-error);background:#F8EFEC;}
.exam-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:18px;}
.exam-actions .button {padding-inline:8px;}
.exam-navigator {position:fixed;z-index:40;inset:auto 0 calc(var(--nav-height,76px) + env(safe-area-inset-bottom));max-width:720px;margin-inline:auto;padding:20px;border:1px solid var(--color-border);border-radius:14px 14px 0 0;background:var(--color-surface);}
.question-grid {display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));gap:7px;}
.question-index {min-height:50px;display:grid;place-items:center;gap:1px;padding:5px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-weight:650;}
.question-index.current {outline:3px solid var(--color-accent);outline-offset:1px;}
.question-index.answered {border-color:var(--color-success);background:var(--color-sage-soft);}
.question-index.flagged {border-color:#A88B45;border-style:dashed;background:#FBF7EC;}
.question-index-state {color:var(--color-muted);font-size:.7rem;line-height:1;}
.exam-confirmation {position:fixed;z-index:50;inset:0;display:grid;align-content:end;gap:16px;padding:24px 20px calc(var(--nav-height,76px) + 24px + env(safe-area-inset-bottom));background:rgba(30,39,50,.45);}
.exam-confirmation-panel {width:100%;max-width:680px;margin-inline:auto;padding:24px;border-radius:14px;background:var(--color-surface);display:grid;gap:16px;}
.exam-confirmation .session-actions {position:static;grid-template-columns:1fr 1fr;margin:0;padding:0;border:0;background:transparent;}
.stats-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
.stat-card {display:grid;gap:3px;padding:12px;border:1px solid var(--color-border);border-radius:9px;}
.stat-card strong {font-size:1.2rem;}
.filter-tabs {display:flex;flex-wrap:wrap;gap:6px;}
.filter-tabs .button {min-height:44px;padding:8px 11px;font-size:.78rem;}
.icon-button {width:44px;height:44px;border:0;background:transparent;font-size:1.5rem;}

@media(max-width:700px) {
  .header-path {display:none;}
  .header-meta {gap:0;}
  .page {padding-top:30px;}
  .card {padding:20px;}
  .training-grid,.module-layout {grid-template-columns:1fr;}
  .exam-heading {align-items:center;}
  .exam-heading .meter {min-width:0;}
  .exam-timer {font-size:1rem;}
  .question-grid {grid-template-columns:repeat(5,minmax(44px,1fr));}
  .stats-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(min-width:900px) {
  .app-header {padding-left:30px;}
  .bottom-nav {inset:84px auto 0 0;width:220px;padding:28px 18px;border-top:0;border-right:1px solid var(--color-border);background:var(--color-paper);}
  .nav-inner {display:grid;grid-template-columns:1fr;gap:6px;}
  .nav-link {min-height:48px;flex-direction:row;justify-content:flex-start;gap:13px;padding:10px 12px;font-size:.84rem;text-align:left;}
  .nav-link svg {width:19px;height:19px;}
  .page {width:calc(100% - 220px);max-width:var(--content-max);margin-left:220px;margin-right:auto;padding:52px clamp(42px,5vw,72px) var(--nav-clearance);}
  .session-actions {bottom:16px;}
  .exam-confirmation {align-content:center;padding-bottom:24px;}
}
