:root { color-scheme: light; --ink:#15202b; --muted:#526272; --line:#c5d0db; --paper:#fff; --panel:#f5f7fa; --accent:#1652f0; --warning:#85230e; --warning-bg:#fff0e8; --safe:#115c38; --safe-bg:#e8f6ee; }
* { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; }
body { background:#e8edf2; color:var(--ink); font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; }
.skip-link { background:var(--ink); color:#fff; left:.75rem; padding:.75rem 1rem; position:fixed; top:-5rem; z-index:10; }
.skip-link:focus { top:.75rem; }
.report-header, main, footer { background:var(--paper); margin:0 auto; max-width:76rem; padding:1.5rem 2rem; }
.simulation-label { background:var(--warning); color:#fff; font-weight:800; letter-spacing:.06em; margin:-1.5rem -2rem 1.5rem; padding:.75rem 2rem; text-align:center; }
h1,h2,h3 { line-height:1.2; text-wrap:balance; }
h1 { margin-bottom:.25rem; }
h2 { border-bottom:2px solid var(--ink); padding-bottom:.35rem; }
h3 { font-size:1rem; }
p,li { text-wrap:pretty; }
.subtitle,.note,footer,.timeline-meta { color:var(--muted); }
section { break-inside:avoid; margin:1.5rem 0 2rem; }
.summary { background:#eef3ff; border-left:4px solid var(--accent); border-radius:.5rem; margin:1rem 0 0; padding:1rem 1.25rem; }
.summary h2 { border:0; margin:0 0 .5rem; padding:0; }
.summary p { margin:.35rem 0; }
.summary .answer { font-size:1.1rem; font-weight:750; }
.key-numbers { display:grid; gap:.75rem; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); margin:.75rem 0; }
.key-numbers div { background:var(--paper); border:1px solid var(--line); border-radius:.5rem; padding:.6rem .75rem; }
.key-numbers dt { color:var(--muted); font-size:.85rem; }
.key-numbers dd { font-weight:750; }
.jump-links { display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; list-style:none; margin:.5rem 0 0; padding:0; }
.jump-links a { display:inline-block; font-weight:700; min-height:44px; padding:.6rem 0; }
.desk-tools { align-items:end; background:#eef3ff; border-radius:.75rem; display:grid; gap:1rem; grid-template-columns:minmax(12rem,1fr) auto minmax(12rem,1fr); padding:1rem; }
.desk-tools label,.desk-tools legend { font-weight:700; }
.desk-tools select { background:#fff; border:1px solid #8391a0; border-radius:.35rem; color:var(--ink); display:block; font:inherit; min-height:44px; padding:.45rem .75rem; width:100%; }
.desk-tools fieldset { border:0; display:flex; gap:1rem; margin:0; padding:0; }
.desk-tools fieldset label { align-items:center; display:flex; min-height:44px; }
.desk-tools input { height:1.25rem; margin-right:.45rem; width:1.25rem; }
.state-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.action-grid { display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.state-card,.allowed,.forbidden { border:1px solid var(--line); border-radius:.5rem; padding:1rem; }
.state-card { background:var(--panel); }
.state { font-size:1.3rem; font-variant-numeric:tabular-nums; font-weight:750; overflow-wrap:anywhere; }
.allowed { background:var(--safe-bg); border-color:var(--safe); }
.forbidden { background:var(--warning-bg); border-color:var(--warning); }
.missing { color:var(--warning); font-style:italic; }
.simulation-control { align-items:start; border-left:4px solid var(--warning); display:grid; gap:.25rem; margin-top:1rem; padding:.75rem 1rem; }
button { background:var(--paper); border:2px solid var(--warning); border-radius:.35rem; color:var(--warning); cursor:pointer; font:inherit; font-weight:750; min-height:44px; padding:.55rem .9rem; width:max-content; }
button:active { transform:scale(.96); }
button:hover { background:var(--warning-bg); }
:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.refusal { font-weight:750; margin:.35rem 0 0; }
.refusal.is-refused { color:var(--warning); }
dl.details { display:grid; gap:.35rem 1rem; grid-template-columns:minmax(9rem,1fr) 3fr; margin:0; }
dt { font-weight:700; overflow-wrap:anywhere; }
dd { font-variant-numeric:tabular-nums; margin:0; overflow-wrap:anywhere; }
ul { padding-left:1.25rem; }
.timeline { border-left:2px solid var(--line); list-style:none; margin-left:.5rem; padding-left:1.5rem; }
.timeline li { margin-bottom:1rem; position:relative; }
.timeline li::before { background:var(--accent); border:3px solid #fff; border-radius:50%; content:""; height:.8rem; left:-1.98rem; position:absolute; top:.2rem; width:.8rem; }
.timeline h3,.timeline p { margin:0 0 .25rem; }
.table-wrap { overflow-x:auto; }
table { border-collapse:collapse; font-variant-numeric:tabular-nums; width:100%; }
caption { font-weight:750; padding:.5rem; text-align:left; }
th,td { border:1px solid var(--line); padding:.6rem; text-align:left; vertical-align:top; }
thead { background:var(--ink); color:#fff; }
tbody tr:nth-child(even) { background:var(--panel); }
footer { border-top:1px solid var(--line); font-size:.8rem; }
@media (max-width:52rem) { .desk-tools,.state-grid,.action-grid { grid-template-columns:1fr; } }
@media (max-width:44rem) { .report-header,main,footer { padding-left:1rem; padding-right:1rem; } .simulation-label { margin-left:-1rem; margin-right:-1rem; } dl.details { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { button:active { transform:none; } }
@media print {
  @page { margin:12mm; }
  body { background:#fff; color:#000; font-size:10pt; }
  .report-header,main,footer { max-width:none; padding:.5rem 0; }
  .simulation-label { background:none; border:3px solid #000; color:#000; margin:0 0 1rem; }
  .desk-tools,.simulation-control,.skip-link,.jump-links { display:none; }
  .summary,.key-numbers div { background:none; border-color:#000; }
  .case-panel[hidden] { display:none; }
  .state-card,.allowed,.forbidden { background:none; border-color:#000; }
  a { color:#000; text-decoration:none; }
  thead { background:none; color:#000; }
  .table-wrap { overflow:visible; }
}
