/* HabiliFroid Diagnostic extends the existing campus tokens and components. */
.diag{font-size:1rem;line-height:1.65;min-width:0}.diag *{min-width:0}.diag h1{font-size:clamp(1.8rem,3vw,2.5rem)}.diag h2{font-size:1.4rem}.diag h3{font-size:1.1rem}.diag h4{font-size:1rem}.diag p{overflow-wrap:anywhere}.diag .small,.diag small{font-size:.82rem}.diag .eyebrow{font-size:.75rem;letter-spacing:1.25px}.diag .btn,.diag .text-link,.diag .tag{font-size:.9rem}.diag .btn{min-height:48px;padding:11px 16px}.diag .field{font-size:.9rem}.diag input,.diag select,.diag textarea{font-size:1rem;max-width:100%}.diag input:not([type=checkbox]),.diag select,.diag textarea{min-height:48px;width:100%;background:#fff;border:1px solid #b9c9bd;border-radius:8px;padding:11px 12px;color:var(--ink)}.diag textarea{resize:vertical}.diag select{padding-right:24px}.diag .card{margin-bottom:20px}.diag-lead{max-width:790px;margin-bottom:25px;color:var(--muted)}.diag-entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.diag-entry{display:block;text-align:left;color:var(--ink);background:var(--card);width:100%;transition:border-color .15s,box-shadow .15s}.diag-entry:hover{border-color:var(--green);box-shadow:var(--shadow)}.diag-entry h2{margin:16px 0 12px}.diag-entry p{font-size:.96rem;margin-bottom:12px}.diag-entry .text-link{display:inline-block;margin-top:8px}.diag-step-label{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--mint2);color:var(--green);font-size:.88rem;font-weight:700}.diag-approach{display:flex;flex-wrap:wrap;gap:12px;margin:15px 0 28px;font-size:.85rem;color:var(--muted)}.diag-approach span+span:before{content:'→';margin-right:12px}.diag-resume,.diag-work-head,.diag-history-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.diag-resume p,.diag-work-head p,.diag-history-row p{margin-bottom:0}.diag-resume h2{font-size:1.1rem}.diag-work-head{margin-bottom:23px}.diag-work-head h1{margin-bottom:8px}.diag-mode{display:flex;flex-shrink:0;padding:4px;border:1px solid var(--line);border-radius:10px;background:#fff}.diag-mode button{padding:10px 13px;min-height:44px;border:0;background:transparent;color:var(--ink);font-size:.9rem;border-radius:7px}.diag-mode [aria-pressed=true]{background:var(--ink);color:#fff}.diag-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 22px}.diag-fields .field{margin-bottom:17px}.diag-fieldset{border:0;border-top:1px solid var(--line);margin:20px 0;padding:18px 0 0}.diag-fieldset legend{font-size:1.1rem;font-weight:650;padding:0 12px 0 0}.diag-fieldset>p{font-size:.92rem}.diag-symptoms{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:270px;overflow:auto;padding:4px 5px 8px 0;scrollbar-gutter:stable}.diag-symptom{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:12px;min-height:50px;cursor:pointer;font-size:.93rem;background:#fff}.diag-symptom:has(input:checked){border-color:var(--green);background:var(--mint2)}.diag-symptom input{width:19px;height:19px;flex-shrink:0;accent-color:var(--green)}.diag-symptom[hidden]{display:none}.diag-details{border:1px solid var(--line);background:#fff;border-radius:12px;padding:15px 18px;margin:18px 0}.diag-details summary{font-size:.95rem;cursor:pointer;font-weight:650;min-height:28px;overflow-wrap:anywhere}.diag-details[open]>summary{margin-bottom:14px}.diag-details details{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.diag-details p{font-size:.95rem}.diag-details .diag-details{border:0;padding:8px 0;margin:8px 0}.diag-list{padding-left:23px;margin:10px 0 20px}.diag-list li{margin-bottom:10px;overflow-wrap:anywhere}.diag-fault-index{display:grid;grid-template-columns:1fr 1fr;gap:8px}.diag-fault-index a{border-bottom:1px solid var(--line);padding:10px 3px;font-size:.95rem}.diag-library{margin-top:30px}.diag-work-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:23px}.diag-work-grid aside>.diag-details{margin-top:0}.diag-work-grid aside{min-width:0}.diag-status{padding:15px 18px;border:1px solid #cadcc9;background:var(--mint2);border-radius:12px;margin-bottom:18px;font-size:.96rem}.diag-question{border-top:4px solid var(--green)}.diag-question h2{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.4}.diag-answers{display:grid;gap:10px;margin:20px 0 12px}.diag-answers .btn{text-align:left;justify-content:flex-start;min-height:54px;background:#fff;font-weight:550;font-size:1rem;white-space:normal}.diag-answers .btn:hover{background:var(--mint2);border-color:var(--green)}.diag-question-secondary{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 16px}.diag-question-secondary .btn{font-size:.87rem}.diag-safety{border-left:3px solid #cb8c46;padding:9px 12px;background:#fff8eb;color:#684515;font-size:.86rem!important;margin:12px 0 18px;line-height:1.55}.diag-caution{border-color:#e1c398}.diag-caution summary{color:#76511e}.diag-sticky{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:13px 0;background:var(--bg);border-top:1px solid var(--line);margin-top:18px}.card>.diag-sticky{background:#fff}.diag-sticky .btn:first-child{flex:1}.diag-hypothesis{padding:15px 0;border-bottom:1px solid var(--line)}.diag-hypothesis:last-child{border:0}.diag-hypothesis h3{margin:9px 0 6px}.diag-hypothesis details{border:0;padding-top:0}.diag-hypothesis summary{font-size:.86rem;font-weight:550}.diag-badge{display:inline-block;padding:4px 9px;border:1px solid var(--line);border-radius:7px;font-size:.8rem;background:#f1f3ee;color:#52695c;font-weight:600}.diag-badge.strong{background:#d6ecdc;border-color:#9abc9f;color:#1d543d}.diag-badge.compatible{background:#eaf4eb;border-color:#b7ceb9}.diag-badge.weak{background:#fff3e8;color:#855129;border-color:#e6cdb5}.diag-reasons{margin-top:16px;font-size:.92rem}.diag-reasons h4{margin:19px 0 7px}.diag-reasons li{margin-bottom:9px}.diag-stack{display:grid;gap:10px}.diag-stack .btn{justify-content:flex-start;text-align:left}.diag-tools-panel h2{font-size:1.1rem}.diag-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.diag-metrics>div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px}.diag-metrics span{font-size:.84rem;display:block;line-height:1.45;min-height:36px;color:var(--muted)}.diag-metrics strong{display:block;font-size:1.55rem;margin-top:4px}.diag-calculations{margin-top:27px}.diag-history-row{padding:14px 0;border-bottom:1px solid var(--line);font-size:.9rem}.diag-history-row .btn{flex-shrink:0}.diag-history-row:last-child{border-bottom:0}.diag-point-diagram{width:100%;height:auto;display:block;margin:15px 0}.diag-schematic{width:100%;height:auto;display:block;background:#fbfcf8;border-radius:12px}.diag-schematic.compact{display:none}.diag-schematic g[role=button]{cursor:pointer}.diag-schematic g[role=button]:hover rect,.diag-schematic g[aria-pressed=true] rect{fill:var(--mint);stroke:var(--green);stroke-width:3}.diag-schematic g:focus{outline:0}.diag-schematic g:focus-visible rect{stroke:#9a4d24;stroke-width:4}.diag-component-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.diag-component-buttons .btn{font-size:.85rem}.diag-component{margin-top:18px}.diag-component h3{font-size:1.2rem}.diag-measure-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:0}.diag-measure-list>div{border-bottom:1px solid var(--line);padding:8px 0}.diag-measure-list dt{font-size:.87rem;color:var(--muted)}.diag-measure-list dd{font-size:1.1rem;margin:4px 0;font-weight:650}.diag-notes{white-space:pre-wrap}.diag-conclusion{border-top:4px solid var(--green)}.diag-alternative,.diag-related-fault{padding:17px 0;border-top:1px solid var(--line)}.diag-alternative:first-of-type,.diag-related-fault:first-of-type{border-top:0}.diag-article>article{margin-top:25px}.diag-article article>h2:not(:first-child){margin-top:30px}.diag-signature{display:grid;grid-template-columns:1fr 1fr;gap:18px}.diag-signature>div{padding:15px;background:var(--mint2);border-radius:10px}.diag-signature dt{font-weight:650}.diag-signature dd{margin:8px 0 0;font-size:.96rem}.diag-article .breadcrumb{font-size:.88rem}.diag-copy-fallback{width:100%;display:block;margin-top:14px}.diag-report .btn-row{margin-bottom:22px}.diag-reset{border:2px solid #9b6f3d;margin-bottom:23px!important}.diag-reset .btn{margin:7px 8px 0 0}.diag-levels{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 25px}.diag-levels [aria-pressed=true]{background:var(--ink);color:#fff}.diag-practice-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px}.diag-practice-controls .btn{text-align:left;justify-content:flex-start;font-weight:550}.diag-practice-feedback{margin-top:22px;border-top:4px solid var(--green)}.diag [role=status]:empty{display:none}.diag .notice h2{font-size:1.15rem}.diag .notice.bad{background:#fff1e9;border-color:#e2b5a1;color:#7a3026}.diag-work-head .eyebrow{margin-bottom:10px}
@media(max-width:1150px){.diag-entry-grid{grid-template-columns:1fr}.diag-entry h2{display:inline-block;margin:0 0 10px 13px}.diag-entry p{margin-bottom:8px}.diag-work-grid{grid-template-columns:1fr}.diag-work-grid aside{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}.diag-work-head{flex-wrap:wrap}.diag-question{padding:22px}}
@media(max-width:650px){.diag{font-size:1rem}.diag .card{padding:20px 17px}.diag .page-intro{margin-bottom:20px}.diag h1{letter-spacing:-.7px}.diag-entry h2{font-size:1.18rem;margin-left:8px}.diag-entry .diag-step-label{width:30px;height:30px}.diag-entry-grid{gap:0}.diag-fields,.diag-symptoms,.diag-work-grid aside,.diag-fault-index,.diag-signature,.diag-practice-controls{grid-template-columns:1fr}.diag-fields{gap:0}.diag-symptoms{max-height:275px}.diag-fieldset{padding-top:16px}.diag-details{padding:14px}.diag-mode{width:100%}.diag-mode button{flex:1}.diag-work-head{display:block}.diag-work-head p{margin-bottom:15px}.diag-resume{display:block}.diag-resume .btn{width:100%;margin-top:16px}.diag-question h2{font-size:1.3rem}.diag-sticky{gap:7px;padding:10px 0 max(10px,env(safe-area-inset-bottom));margin-bottom:0}.diag-sticky .btn{font-size:.86rem;padding:10px}.diag-sticky .btn:first-child{flex-basis:100%}.diag-sticky .btn:not(:first-child){flex:1}.diag-approach{gap:7px;font-size:.75rem}.diag-approach span+span:before{margin-right:7px}.diag-history-row{align-items:flex-start;gap:10px}.diag-history-row .btn{padding:10px;font-size:.83rem}.diag-schematic.wide{display:none}.diag-schematic.compact{display:block;max-width:390px;margin:auto}.diag-component-buttons{gap:7px}.diag-component-buttons .btn{padding:9px;font-size:.8rem}.diag-measure-list{grid-template-columns:1fr}.diag-list{padding-left:19px}.diag-point-diagram{min-height:82px}.diag-metrics{gap:8px}.diag-metrics>div{padding:12px}.diag-metrics strong{font-size:1.35rem}.diag-report .btn-row .btn{flex:1 1 42%}.diag .related-grid{grid-template-columns:1fr}.diag-practice-controls .btn{min-height:52px}.diag .btn-row{gap:9px}}
@media(prefers-reduced-motion:reduce){.diag *{scroll-behavior:auto;transition:none}}
@media print{body{background:#fff!important;color:#000!important}.sidebar,.topbar,.footer,.skip,#toast,.diag-no-print,.diag-sticky,.diag-report button,.diag-report .btn,.diag-copy-status{display:none!important}.page-shell{margin:0!important}main{max-width:none;padding:0;min-height:0}.diag{font-size:10pt;color:#000}.diag h1{font-size:22pt}.diag h2{font-size:15pt}.diag h3{font-size:12pt}.diag .card,.diag-details{box-shadow:none;background:#fff;border:1px solid #bbb;break-inside:avoid;padding:12px;margin:12px 0}.diag-report .diag-reasons,.diag-report .diag-alternative{break-inside:avoid}.diag-report .diag-measure-list{grid-template-columns:1fr 1fr}.diag-report .diag-metrics{grid-template-columns:repeat(4,1fr)}.diag-report .diag-metrics strong{font-size:14pt}.diag-details::details-content{content-visibility:visible!important;display:contents!important}.diag-report details>*{display:block!important}.diag-report summary{font-size:11pt}.diag-report a{color:#000}.diag-report a[href^="/cours/"]::after{content:' — habilifroid.fr' attr(href);font-size:8pt}.diag-report .related-grid{display:block}.diag-report .related-card{padding:5px;border:0}.diag-report .diag-badge{font-size:9pt;border-color:#777}.diag-report .small{font-size:8pt}}

.diag-point-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:20px 0;padding:0;list-style:none}.diag-point-flow li{position:relative;display:grid;place-items:center;border:1px solid #9ab1a4;border-radius:9px;min-height:65px;padding:10px 8px;background:#f1f7ef;text-align:center;font-size:.95rem;line-height:1.4}.diag-point-flow li:not(:last-child)::after{content:'→';position:absolute;right:-19px;color:var(--green);font-size:20px}
@media(max-width:1150px){.diag-schematic.wide{display:none}.diag-schematic.compact{display:block;max-width:360px;margin:auto}}
@media(max-width:650px){.diag-point-flow{grid-template-columns:1fr;gap:23px}.diag-point-flow li{min-height:52px}.diag-point-flow li:not(:last-child)::after{content:'↓';top:100%;left:50%;right:auto;transform:translateX(-50%);line-height:23px}}
