:root{--bg: #F7F6F2;--card: #FFFFFF;--fg: #263640;--muted: #5a6872;--primary: #174B78;--primary-soft: #E7EDF1;--amber: #8A5700;--amber-soft: #FBF1DE;--err: #A3261C;--err-soft: #FBE9E7;--border: #D5DDE3;--input: #B9C5CE;--font-sans: "Source Sans 3", system-ui, sans-serif;--font-heading: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", monospace;--radius: 6px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 var(--font-sans)}h1,h2,h3{font-family:var(--font-heading);font-weight:600;margin:0;color:var(--primary)}h2{font-size:20px;margin-bottom:14px}h2 small{font-weight:500;color:var(--muted);font-size:15px}h3{font-size:16px;margin:18px 0 8px;color:var(--fg)}a{color:var(--primary)}[hidden]{display:none!important}.topbar{position:sticky;top:0;z-index:20;background:var(--card);border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:12px 28px}.brand h1{font-size:26px;line-height:1.1}.brand p{margin:2px 0 0;color:var(--muted);font-size:15px}.actions{display:flex;flex-wrap:wrap;gap:8px}.btn{font:600 15px var(--font-sans);background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:var(--radius);padding:8px 14px;cursor:pointer;min-height:40px;display:inline-flex;align-items:center;transition:background-color .15s,color .15s}.btn:hover{background:#0f3a5f}.btn.ghost{background:transparent;color:var(--primary)}.btn.ghost:hover{background:var(--primary-soft)}.btn.sm{min-height:32px;padding:4px 10px;font-size:14px}:focus-visible{outline:3px solid #4C8BC2;outline-offset:2px}.anchors{position:sticky;top:73px;z-index:19;background:var(--bg);border-bottom:1px solid var(--border);display:flex;gap:4px;overflow-x:auto;padding:6px 22px;white-space:nowrap}.anchors a{text-decoration:none;padding:6px 10px;border-radius:var(--radius);font-weight:600;font-size:15px}.anchors a:hover{background:var(--primary-soft)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:32px;padding:24px 28px;max-width:1400px;margin:0 auto}.lead{color:var(--muted);margin:0 0 12px}.spine{border-left:2px solid var(--primary-soft);padding-left:0}.sec{background:var(--card);border:1px solid var(--border);border-left:0;border-radius:0 var(--radius) var(--radius) 0;padding:20px 24px;margin-bottom:16px;position:relative}.sec:before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:transparent;transition:background-color .2s}.sec.active:before,.sec:focus-within:before{background:var(--primary)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;align-items:end}label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:15px}label.narrow{max-width:320px;margin-top:10px}input:not([type=radio]):not([type=checkbox]),select{font:16px var(--font-sans);color:var(--fg);background:#fff;border:1px solid var(--input);border-radius:var(--radius);padding:8px 10px;min-height:42px;width:100%}input[type=number]{font-family:var(--font-mono);font-size:15px}input:hover,select:hover{border-color:var(--primary)}fieldset{border:0;padding:0;margin:0 0 14px}legend{font-weight:600;margin-bottom:6px;padding:0}.opt,.check{flex-direction:row;align-items:center;gap:10px;font-weight:400;padding:6px 10px;border-radius:var(--radius);cursor:pointer}.opt:hover,.check:hover{background:var(--primary-soft)}.opt input,.check input{width:18px;height:18px;accent-color:var(--primary)}.check{margin-bottom:8px}.note{color:var(--muted);font-size:15px;margin:6px 0}.help{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1px solid var(--primary);color:var(--primary);font-size:12px;font-weight:700;cursor:help;position:relative;vertical-align:middle}.help:hover:after,.help:focus:after{content:attr(data-tip);position:absolute;left:50%;top:26px;transform:translate(-50%);width:280px;background:var(--fg);color:#fff;font-weight:400;font-size:14px;line-height:1.4;padding:8px 10px;border-radius:var(--radius);z-index:30}.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.pill{display:inline-block;background:var(--primary-soft);color:var(--primary);font-weight:600;font-size:14px;padding:4px 10px;border-radius:999px;align-self:center}.rail{position:relative}.railbox{position:sticky;top:132px;background:var(--card);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:var(--radius);padding:18px}.kpi{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--primary-soft)}.kpi span{color:var(--muted);font-size:14px}.kpi b{font:500 22px var(--font-mono);font-variant-numeric:tabular-nums}.kpi.main b{font-size:28px;color:var(--primary)}.kpi.sm b{font-size:16px}.kpi small{color:var(--muted)}.incomplete{font:600 18px var(--font-heading);color:var(--amber);margin:0}.link{display:inline-block;margin-top:10px;font-weight:600}.w{padding:8px 12px;border-radius:var(--radius);font-size:15px;margin:6px 0;border-left:3px solid}.w.warn{background:var(--amber-soft);color:#5c3a00;border-color:var(--amber)}.w.err{background:var(--err-soft);color:var(--err);border-color:var(--err)}.wide{max-width:1400px;margin:0 auto 24px;padding:0 28px}#detail>h2,#tests>h2{margin-top:12px}.tw{overflow-x:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.ledger{width:100%;border-collapse:collapse;font-size:15px}.ledger th{text-align:left;font-family:var(--font-heading);font-weight:600;background:var(--primary-soft);color:var(--primary);padding:10px 12px}.ledger td{padding:8px 12px;border-top:1px solid var(--primary-soft);vertical-align:top}.ledger .f{font-family:var(--font-mono);font-size:13.5px;color:var(--muted)}.ledger .n{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.ledger tr.sub td{background:#fbfbf9}.ledger tr.total td{font-weight:600;border-top:2px solid var(--primary)}.ledger tr.total .n{color:var(--primary);font-size:17px}.ledger tr.grand td{background:var(--primary-soft)}.ledger tr.grp td{font-family:var(--font-heading);font-weight:600;color:var(--primary);padding-top:16px}.pass{color:#1f6b3a;font-weight:600}.fail{color:var(--err);font-weight:600}.refs{margin-top:16px}.refs ul{margin:6px 0;padding-left:20px;font-size:15px}details{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 20px}summary{cursor:pointer;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}summary h2{margin:0}summary span{color:var(--muted);font-size:15px}.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 18px;margin:14px 0}.pgrid h3{grid-column:1 / -1;margin-bottom:0}.pgrid label{font-weight:400}.pgrid label.mod input{border-color:var(--amber);background:var(--amber-soft)}.print-only{display:none}@media (max-width: 980px){.layout{grid-template-columns:1fr;padding:16px}.railbox{position:static}.rail{order:-1}.pgrid{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.topbar{padding:10px 16px;position:static}.anchors{top:0;padding:6px 10px}.brand h1{font-size:22px}.grid,.pgrid{grid-template-columns:1fr}.sec{padding:16px}.wide{padding:0 16px}.ledger{font-size:14px}.ledger td,.ledger th{padding:6px 8px}.help:hover:after,.help:focus:after{width:220px;left:auto;right:-8px;transform:none}}.plafond-box{margin-top:1rem;padding:.9rem 1rem;border:1px solid var(--primary);border-left-width:4px;border-radius:6px;background:var(--primary-soft)}.plafond-box label.req{font-weight:600}.plafond-box details{margin-top:.6rem}.plafond-box summary{cursor:pointer;color:var(--primary);font-size:.9rem}.plafond-box .hint{font-size:.85rem;color:var(--muted);margin:.4rem 0 0}.docs-box{margin-top:1rem;padding:.9rem 1rem;border:1px solid var(--border,#d6d9dc);border-radius:6px;background:var(--card)}.docs-box h3{margin:0 0 .2rem;font-size:1rem}.docs-box .hint{font-size:.85rem;color:var(--muted);margin:0 0 .5rem}.docs-box h4{margin:.7rem 0 .25rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--primary)}.docs-box ul{list-style:none;margin:0;padding:0}.docs-box li{margin:.15rem 0}.docs-box label{display:flex;gap:.5rem;align-items:flex-start;cursor:pointer;font-size:.92rem;line-height:1.35}.docs-box input{margin-top:.2rem;width:1.05rem;height:1.05rem;flex-shrink:0;accent-color:var(--primary)}.tag{display:inline-block;font-size:.7rem;font-weight:600;padding:.05rem .4rem;border-radius:3px;margin-left:.35rem;vertical-align:1px}.tag.req{background:var(--amber-soft);color:var(--amber)}.tag.opt{background:var(--primary-soft);color:var(--primary)}.docs-count{font-size:.85rem;color:var(--muted);margin-top:.5rem}#docsPrint table{width:100%;border-collapse:collapse;font-size:10pt;margin-top:8pt}#docsPrint td,#docsPrint th{border-top:.5pt solid #999;padding:3pt 4pt;text-align:left}.docs-box ul li label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:.55rem;font-weight:400}.docs-box ul li label input[type=checkbox]{width:1.05rem!important;height:1.05rem;margin:.18rem 0 0;padding:0;flex:0 0 auto}.docs-box ul li{padding:.3rem 0;border-bottom:1px dashed var(--border,#e2e4e6)}.docs-box ul li:last-child{border-bottom:0}@page{size:A4 portrait;margin:14mm 13mm 18mm;@bottom-left{font:8pt "Source Sans 3",Arial,sans-serif;color:#5a6872;width:80%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@bottom-right{font:8pt "Source Sans 3",Arial,sans-serif;color:#5a6872;width:20%;text-align:right}}@media print{*,*:before,*:after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html,body{height:auto!important;overflow:visible!important;background:#fff!important}#root,.layout,.app,main{position:static!important;overflow:visible!important;height:auto!important;display:block!important}body{color:var(--fg);font-size:9.5pt;line-height:1.4}.no-print,.topbar,.anchors,form,.rail,.help,#params,#tests,button,input,select,textarea,details{display:none!important}.print-only{display:block!important}.wide{padding:0!important;margin:0!important;max-width:none!important}h1,h2,h3,h4{break-after:avoid;page-break-after:avoid;break-inside:avoid}h2{font-size:12.5pt;margin:12pt 0 6pt;padding-bottom:3pt;border-bottom:1.2pt solid var(--primary);color:var(--primary)}h3{font-size:10.5pt;margin:8pt 0 4pt}.printhead{border:1pt solid var(--border);border-top:4pt solid var(--primary);border-radius:4pt;padding:8pt 10pt;background:var(--primary-soft);break-inside:avoid}.printhead h1{font-size:15pt;color:var(--primary);margin:0 0 4pt}.printhead p{display:flex;flex-wrap:wrap;gap:2pt 14pt;margin:3pt 0 0;font-size:9pt}.printhead p+p{color:var(--muted);font-size:8.5pt}#resultsPrint{break-inside:avoid}.pr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6pt}.pk{border:1pt solid var(--border);border-radius:4pt;padding:6pt 8pt;background:#fff;break-inside:avoid}.pk span{display:block;font-size:8pt;color:var(--muted)}.pk b{display:block;font:600 13pt var(--font-mono);color:var(--fg);font-variant-numeric:tabular-nums}.pk.main{background:var(--primary);border-color:var(--primary)}.pk.main span,.pk.main small{color:#dfe8ef}.pk.main b{color:#fff;font-size:14pt}.pk.sm b{font-size:10.5pt}.pk small{font-size:7.5pt;color:var(--muted)}.pr-incomplete{color:var(--err);font-weight:600}.w{break-inside:avoid;font-size:9pt;padding:4pt 8pt;margin:4pt 0}.tw{border:0!important;overflow:visible!important}.ledger,#docsPrint table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:9pt}.ledger th:nth-child(1){width:38%}.ledger th:nth-child(2){width:42%}.ledger th:nth-child(3){width:20%}.ledger td,.ledger th{padding:4pt 6pt;overflow-wrap:anywhere}.ledger .f{font-size:8.5pt}.ledger .n{white-space:nowrap}.ledger tr.total .n{font-size:10.5pt}thead{display:table-header-group}tfoot{display:table-footer-group}tr,.ledger tr,#docsPrint tr{break-inside:avoid;page-break-inside:avoid}.ledger tr.grp{break-after:avoid}#docsPrint{margin-top:6pt}#docsPrint th{background:var(--primary-soft);color:var(--primary);text-align:left;padding:4pt 6pt;font-family:var(--font-heading)}#docsPrint th:nth-child(1){width:9%}#docsPrint th:nth-child(3){width:17%}#docsPrint td{border-top:.5pt solid var(--border);padding:3pt 6pt;vertical-align:top}#docsPrint td.box{font-size:13pt;line-height:1;text-align:center;color:var(--primary);font-family:DejaVu Sans,Segoe UI Symbol,Arial Unicode MS,sans-serif}#docsPrint tr.ok td.box{color:#1d6b3a}#docsPrint td small{color:var(--muted);font-size:7.5pt;text-transform:uppercase;letter-spacing:.03em}.tag{font-size:7.5pt}.refs{break-inside:avoid;font-size:8.5pt}.refs ul{font-size:8.5pt}.note{font-size:8.5pt;break-inside:avoid}a{color:var(--primary);text-decoration:none}}
