.exercise-mode .app-grid{display:none}
body.exercise-mode{height:auto;min-height:100vh;overflow:auto;padding:0}
.exercise-shell{max-width:900px;margin:0 auto;padding:24px;line-height:1.6}
.exercise-shell .exercise-header{display:flex;position:static;justify-content:space-between;align-items:center;background:transparent;color:var(--text);padding:0;margin-bottom:20px;gap:16px}
.exercise-header h1{margin:0;font-size:1.6rem}.exercise-header p{margin:0;color:var(--muted)}
.exercise-header a{color:var(--primary);font-size:.9rem}
.exercise-nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.exercise-nav select{flex:1;min-width:200px;padding:10px;border:1px solid #ccd5df;border-radius:8px;background:white;font:inherit}
.exercise-card{background:#fff;border:1px solid #dce3eb;border-radius:14px;padding:24px;margin-bottom:18px;box-shadow:0 3px 12px #152d4910}
.exercise-card h2{margin:0 0 12px;font-size:1.25rem}.exercise-kicker{color:var(--primary);font-weight:700;margin:0 0 6px}
.exercise-card dl{display:grid;grid-template-columns:32px 1fr;gap:5px 12px}.exercise-card dt{font-weight:700}.exercise-card dd{margin:0}
.exercise-note{font-size:.85rem;color:var(--muted)}
.exercise-card textarea{width:100%;box-sizing:border-box;min-height:100px;margin-top:8px;font:1.15rem monospace;padding:12px;border:1px solid #aab9ca;border-radius:8px}
.exercise-palette,.exercise-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.exercise-shell details{margin-top:16px}.exercise-shell summary{cursor:pointer;font-weight:600}
#exerciseFeedback:empty,#exerciseHelpText:empty{display:none}#exerciseHelpText{margin-top:14px;padding:12px;background:#f0f5fb;border-radius:8px}
#exerciseTableHost{overflow:auto;margin-top:12px}.exercise-card pre{white-space:pre-wrap;background:#f0f5fb;padding:12px;border-radius:8px}
.exercise-guidance{border-left:4px solid var(--primary);background:#f4f8fc;padding:16px;margin:12px 0 20px;border-radius:8px}
.exercise-guidance p{margin:8px 0}.exercise-guidance code{font-size:.95rem}.exercise-trail{margin-bottom:16px}.exercise-trail ol{padding-left:24px}
.exercise-proof{margin-top:22px;padding-top:20px;border-top:1px solid var(--border)}
.exercise-proof h3,.exercise-step-proof h3{font-size:1.05rem;margin-bottom:8px}
.exercise-proof-scroll{overflow-x:auto;margin:12px 0;border:1px solid var(--border);border-radius:8px}
.exercise-proof-scroll table{width:100%;margin:0;border-collapse:collapse;font-size:.9rem}
.exercise-proof-scroll th,.exercise-proof-scroll td{padding:8px 12px;text-align:center;border:1px solid var(--border);white-space:nowrap}
.exercise-proof-scroll th{background:#edf4fa}.exercise-proof-scroll .out-one{background:#e5f7ed;color:#15583c;font-weight:600}
.exercise-proof-scroll .proof-different td{background:#fff0e7;color:#9a3412}
.exercise-proof-equations{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.exercise-proof-verdict{font-weight:600}.exercise-step-proof{margin:16px 0;padding:14px;background:white;border-radius:8px;border:1px solid var(--border)}
.exercise-history{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
.exercise-history h3{font-size:1.05rem;margin-bottom:8px}.exercise-history-list{list-style:none;padding:0;margin:14px 0}
.exercise-history-list>li{margin:14px 0;padding:16px;border-left:4px solid var(--primary);background:#f4f8fc;border-radius:8px}
.exercise-history-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
.exercise-history-heading span{font-size:.8rem;color:var(--muted)}.exercise-history-list p{margin:8px 0}
@media(max-width:600px){.exercise-proof-equations{grid-template-columns:1fr}.exercise-proof-scroll th,.exercise-proof-scroll td{padding:6px 8px}}
.exercise-shell button:focus-visible,.exercise-shell a:focus-visible,.exercise-shell summary:focus-visible{outline:3px solid #2563eb;outline-offset:3px}
@media(max-width:600px){.exercise-shell{padding:12px}.exercise-card{padding:16px}.exercise-shell .exercise-header{align-items:flex-start;flex-direction:column}.exercise-nav select{width:100%}}

/* Atelier BoolStudio : contexte, espace de calcul et assistant. */
[hidden]{display:none!important}
body.exercise-mode{height:100dvh;overflow:hidden;padding:10px}
.exercise-shell{max-width:none;height:100%;padding:0;display:flex;flex-direction:column;gap:10px;line-height:1.5}
.exercise-shell .exercise-header{order:0;flex:none;min-height:64px;margin:0;padding:10px 18px;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:row;align-items:center}
.exercise-brand h1{font-size:1.3rem;display:flex;align-items:center;gap:10px}.exercise-brand h1 span{font-size:.65rem;letter-spacing:.08em;color:var(--muted);font-weight:600;border-left:1px solid var(--border);padding-left:12px}
.exercise-brand p{font-size:.78rem;margin-top:2px}.exercise-progress{margin-left:auto;font-size:.78rem;border:1px solid var(--border);padding:5px 10px;border-radius:20px;color:var(--muted)}
.exercise-nav{flex:none;gap:8px;margin:0;padding:6px 10px;background:var(--panel-bg);border:1px solid var(--border);border-radius:8px}
.exercise-nav label{font-size:.68rem;font-weight:700;letter-spacing:.07em;color:var(--muted)}
.exercise-nav select{flex:0 1 380px;min-width:0;padding:6px 10px;font-size:.85rem;border-color:var(--border)}
#exerciseRestart{margin-left:auto}.exercise-layout{display:grid;grid-template-columns:260px minmax(360px,1fr) 300px;gap:10px;flex:1;min-height:0}
.exercise-pane{background:var(--panel-bg);border:1px solid var(--border);border-radius:8px;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.exercise-pane .panel-title{flex:none;padding:12px 16px;border-bottom:1px solid var(--border);font-size:.82rem;font-weight:700;background:#f7fafc;color:var(--text)}
.exercise-pane-scroll{padding:16px;overflow:auto;min-height:0;flex:1}.exercise-context h2{font-size:1.08rem;line-height:1.35;margin:6px 0 12px}.exercise-context p{font-size:.84rem;margin:10px 0}
.exercise-context .exercise-kicker{font-size:.7rem}.exercise-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;margin-top:22px;color:var(--muted)}
.exercise-context dl{display:grid;grid-template-columns:28px 1fr;gap:10px 8px;margin:12px 0;font-size:.82rem}.exercise-context dt{display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:#f2f6fa;border-radius:5px;font-weight:700}.exercise-context dd{margin:0}
.exercise-output{padding:10px;background:#eff6ff;border-radius:6px}.exercise-context .exercise-note{font-size:.74rem}
#exerciseGiven{font-size:.77rem;margin-top:20px}.exercise-shell pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f1f5f9;padding:10px;border-radius:6px;font-size:.82rem;margin:8px 0}
.exercise-work-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;flex:none}
.exercise-work-head h2{font-size:.96rem;margin:0}.exercise-step-status{font-size:.7rem;color:var(--muted);background:#f1f5f9;border-radius:20px;padding:3px 8px;white-space:nowrap}.exercise-step-status.is-valid{background:#e5f7ed;color:#15583c}
.exercise-tabs{display:flex;padding:0 16px;gap:18px;border-bottom:1px solid var(--border);flex:none}
.exercise-tabs button{border:0;background:transparent;padding:10px 0;font:inherit;font-size:.8rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;border-radius:0}
.exercise-tabs button.is-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}.exercise-tabs button span{font-size:.65rem;padding:1px 5px;background:#edf2f7;border-radius:10px}
.exercise-center-scroll{padding:16px;overflow:auto;min-height:0;flex:1}
.exercise-guidance{margin:0 0 16px;padding:14px;font-size:.84rem}.exercise-guidance .exercise-kicker{font-size:.74rem;margin:0 0 8px}.exercise-guidance p{margin:0 0 10px}
.exercise-rule{display:flex;gap:12px;align-items:baseline;margin-top:8px}.exercise-rule span{font-size:.72rem;color:var(--muted);min-width:65px}.exercise-rule code{font-size:.82rem}
.exercise-current{padding:16px 8px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:18px}.exercise-current>span{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.exercise-current .equation-display{font-size:1.4rem;padding:12px 0 4px;overflow-wrap:anywhere;text-align:center}
.exercise-answer-label{font-size:.8rem;font-weight:700}.exercise-work textarea{width:100%;box-sizing:border-box;min-height:90px;resize:vertical;margin-top:8px;padding:14px;font:1.05rem monospace;color:var(--text);border:1px solid #b9c9d7;border-radius:8px;background:#fff}
.exercise-work textarea:focus{outline:2px solid #2874d033;border-color:var(--primary)}.exercise-input-tools{display:flex;align-items:center;justify-content:space-between;gap:10px}.exercise-palette{margin:8px 0;gap:5px}.exercise-palette .btn{padding:4px 10px;font-size:.8rem}
.exercise-validation{flex:none;border-top:1px solid var(--border);padding:12px 16px;background:#fafcfe}
.exercise-validation-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.exercise-validation-actions>span{font-size:.74rem;color:var(--muted);max-width:60%}.exercise-validation-actions .btn{white-space:nowrap}
#exerciseFeedback{font-size:.82rem;margin:0 0 10px;padding:10px 12px;border-radius:6px}
.exercise-help-actions{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.exercise-help-actions .btn{font-size:.76rem;padding:7px 10px}
#exerciseHelpText{background:transparent;padding:0;margin:12px 0;font-size:.82rem}.exercise-step-proof{padding:10px;margin:10px 0;background:#f8fafc}.exercise-step-proof h3{font-size:.8rem}.exercise-step-proof p{margin:8px 0}
.exercise-support details{font-size:.8rem;border:1px solid var(--border);border-radius:6px;padding:10px}.exercise-support .exercise-proof-scroll th,.exercise-support .exercise-proof-scroll td{padding:5px 8px;font-size:.75rem}
.exercise-proof,.exercise-history{margin:0;padding:0;border:0;font-size:.82rem}.exercise-proof h3,.exercise-history h3{font-size:.9rem}.exercise-proof-equations{gap:8px}.exercise-proof-scroll{margin:12px 0}.exercise-proof-scroll th,.exercise-proof-scroll td{padding:6px 9px;font-size:.8rem}
.exercise-history-list>li{padding:12px;font-size:.82rem}.exercise-history-heading span{font-size:.68rem}.exercise-history details{padding:8px;font-size:.75rem}
@media(min-width:1500px){.exercise-layout{grid-template-columns:300px minmax(400px,1fr) 360px}.exercise-center-scroll{padding:22px}}
@media(max-width:1050px){body.exercise-mode{height:auto;min-height:100dvh;overflow:auto}.exercise-layout{grid-template-columns:230px minmax(0,1fr);align-items:start}.exercise-context{grid-row:span 2;position:sticky;top:10px}.exercise-work{min-height:650px}.exercise-center-scroll{max-height:650px}.exercise-support{grid-column:2}.exercise-pane-scroll{max-height:650px}}
@media(max-width:640px){body.exercise-mode{padding:8px}.exercise-shell .exercise-header{padding:10px;flex-wrap:wrap;gap:6px}.exercise-brand{flex:1 1 100%}.exercise-brand h1{font-size:1.15rem}.exercise-progress{margin-left:0}.exercise-header a{margin-left:auto}.exercise-nav{gap:5px}.exercise-nav label{display:none}.exercise-nav select{flex:1;max-width:calc(100% - 70px);font-size:.75rem}.exercise-nav #exerciseRestart{width:100%;text-align:right;padding:2px 0}.exercise-layout{display:flex;flex-direction:column}.exercise-pane{width:100%}.exercise-context{position:static}.exercise-context .exercise-pane-scroll{max-height:240px}.exercise-work{min-height:0}.exercise-center-scroll{max-height:none;padding:12px}.exercise-tabs{gap:18px;padding:0 12px}.exercise-work-head{padding:12px}.exercise-work-head h2{font-size:.85rem}.exercise-current .equation-display{font-size:1.15rem}.exercise-validation{position:sticky;bottom:0;z-index:2;padding:12px}.exercise-validation-actions>span{max-width:45%;font-size:.68rem}.exercise-validation-actions .btn{font-size:.75rem;padding:9px 10px}.exercise-support .exercise-pane-scroll{max-height:none}.exercise-rule{flex-direction:column;gap:2px}.exercise-proof-equations{grid-template-columns:1fr}}
@media(max-width:640px){.exercise-context .exercise-pane-scroll{max-height:none}.exercise-work .exercise-note{font-size:.75rem}}
.exercise-live-proof{margin-top:18px;padding:14px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}
.exercise-live-proof-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.exercise-live-proof h3{font-size:.8rem;margin:0}.exercise-live-proof-head>span{font-size:.68rem;font-weight:600}
.proof-equal{color:#15583c}.proof-changed{color:#9a3412}
.exercise-live-equations{display:flex;gap:8px 24px;flex-wrap:wrap;font-size:.75rem;margin-top:10px}
.exercise-live-proof .exercise-proof-scroll{max-height:185px;overflow:auto;margin:10px 0 6px;background:white}
.exercise-live-proof th{position:sticky;top:0;z-index:1}.exercise-live-proof .exercise-note{margin:0;font-size:.7rem}
.exercise-edit-compare{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.exercise-editor{min-width:0}.exercise-edit-compare .exercise-live-proof{margin-top:0;padding:12px;min-width:0}
.exercise-live-equations{overflow-wrap:anywhere}.exercise-edit-compare .exercise-input-tools{flex-wrap:wrap;gap:0}.exercise-edit-compare .exercise-work textarea{min-height:100px}
.exercise-edit-compare:has(#exerciseLiveProof[hidden]){grid-template-columns:1fr}
@media(max-width:640px){.exercise-edit-compare{grid-template-columns:1fr}}
.exercise-support-tabs{display:flex;flex:none;border-bottom:1px solid var(--border);padding:0 14px;gap:20px;background:#f7fafc}
.exercise-support-tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:13px 0;font:inherit;font-size:.8rem;color:var(--muted);cursor:pointer}
.exercise-support-tabs button.is-active{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}
.exercise-support-tabs button span{font-size:.65rem;padding:1px 5px;background:#edf2f7;border-radius:10px}
.exercise-support .exercise-history-heading{display:block}.exercise-support .exercise-history-heading>span{display:block;margin-top:4px}
.exercise-support .exercise-history .exercise-proof-equations{grid-template-columns:1fr}.exercise-support .exercise-history-list>li{padding:10px}
