@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/bricolage-grotesque-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/bricolage-grotesque-latin-800-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/source-sans-3-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/source-sans-3-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/source-sans-3-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2')}

/* Concept : un avis annoté au surligneur. Lecture d'abord (feuille et zones cliquables), rédaction ensuite (assistant en 4 étapes). */
:root{
  color-scheme:light;
  --paper:#EEF1F5; --panel:#FFFFFF; --ink:#12203A; --ink-soft:#4B5A73; --line:#C7D0DD;
  --signal:#0B4EA2; --on-signal:#FFFFFF; --mark:#FFE14D;
  --sheet:#FBFCFD; --sheet-ink:#18233A; --sheet-line:#B6C0D0;
  --note-bg:#DCE6F5; --note-ink:#12203A;
  --d1:#DDE7F5; --d2:#C5D7F0; --d3:#FFE6B5; --warn-bg:#FFEFCB;
  --stamp:#B3261E; --err:#B3261E; --doc-g1:#CBEBDA; --doc-g2:#B5E0C8; --doc-g3:#E7F5EC; --doc-gl:#86C6A3; --doc-gi:#1B4D36;
  --f-display:'Bricolage Grotesque','Segoe UI',system-ui,sans-serif;
  --f-body:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0D1420; --panel:#151F31; --ink:#E7EDF7; --ink-soft:#9FADC4; --line:#2B3A53;
    --signal:#7DAEFF; --on-signal:#0D1420; --mark:#F5D547;
    --sheet:#DCE2EC; --sheet-ink:#131C2C; --sheet-line:#9AA8BE;
    --note-bg:#C6D6EE; --note-ink:#0F1A2E;
    --d1:#1B2943; --d2:#233659; --d3:#3A2D13; --warn-bg:#33270F;
    --err:#FF8A80; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0D1420; --panel:#151F31; --ink:#E7EDF7; --ink-soft:#9FADC4; --line:#2B3A53;
  --signal:#7DAEFF; --on-signal:#0D1420; --mark:#F5D547;
  --sheet:#DCE2EC; --sheet-ink:#131C2C; --sheet-line:#9AA8BE;
  --note-bg:#C6D6EE; --note-ink:#0F1A2E;
  --d1:#1B2943; --d2:#233659; --d3:#3A2D13; --warn-bg:#33270F;
  --err:#FF8A80; color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.55 var(--f-body)}
h1,h2,h3{font-family:var(--f-display);text-wrap:balance;line-height:1.12;margin:0}
h1{font-size:clamp(1.9rem,6.5vw,2.8rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:1.35rem;font-weight:700}
p{margin:0}
a{color:var(--signal)}
:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.wrap{max-width:820px;margin:0 auto;padding-block:1.25rem 3rem;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font:500 .72rem/1.2 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}

/* En-tête */
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;padding-bottom:.9rem;border-bottom:2px solid var(--ink);margin-bottom:1.75rem}
.brand{font:800 1.2rem var(--f-display);color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}
.brand-mark{background:var(--mark);color:#12203A;padding:.05rem .4rem;border-radius:2px;font-family:var(--f-mono);font-weight:500;font-size:.9rem}
.tabs{display:flex;gap:.25rem;flex-wrap:wrap}
.tabs a{padding:.45rem .75rem;text-decoration:none;color:var(--ink-soft);border-bottom:3px solid transparent;font-weight:600}
.tabs a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--signal)}
main section{display:grid;gap:1.6rem}
.lede{color:var(--ink-soft);max-width:60ch}

/* Sélecteur de type */
.seg{display:flex;flex-wrap:wrap;gap:.5rem}
.seg button{font:600 1rem var(--f-body);padding:.55rem .95rem;border:1.5px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}

/* Ce qui est reproché */
.reproche{display:grid;gap:1.1rem 1.5rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.reproche>div{border-top:2px solid var(--ink);padding-top:.55rem;display:grid;gap:.35rem;align-content:start}

/* Avis imprimé et panneau d'annotation */
.hint{font-size:.92rem;color:var(--ink-soft)}
.reader{display:grid;gap:.7rem}
.doc{position:relative;background:var(--sheet);color:var(--sheet-ink);border:1px solid var(--sheet-line);border-radius:3px;box-shadow:0 1px 0 var(--sheet-line),0 14px 30px -20px rgba(0,0,0,.5);overflow:hidden}
.doc-in{position:relative;display:grid;gap:1rem;padding:0 1rem 1.1rem}
.wm{position:absolute;inset:0;display:grid;place-items:center;font:800 clamp(3rem,16vw,7.5rem)/1 var(--f-display);letter-spacing:.05em;text-transform:uppercase;color:var(--stamp);opacity:.08;transform:rotate(-20deg);pointer-events:none}
.doc-band{margin:0 -1rem;padding:1.1rem 1rem;background:var(--doc-g1)}
.band-grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:.8rem;align-items:center;text-align:center}
.band-title{display:grid;gap:.2rem;justify-items:center;font:700 1.1rem/1.2 var(--f-display);letter-spacing:.02em}
.band-title small{font:500 .62rem var(--f-mono);letter-spacing:.07em;text-transform:uppercase;opacity:.8}
.intro{position:relative;font-size:.82rem;line-height:1.5;max-width:62ch}
.blocks{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:1rem .9rem}
.blank{border:1px solid var(--doc-gl);min-height:3rem}
.rz{position:relative;display:grid;gap:.25rem;align-content:start;width:100%;padding:.7rem .75rem;border:1.5px dashed var(--doc-gl);border-radius:2px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
.rz:hover{background:rgba(120,140,170,.16)}
.rz[aria-pressed="true"]{border:2px solid var(--sheet-ink);background:rgba(255,225,77,.5)}
.bg{position:absolute;top:-.6rem;left:-.5rem;z-index:1;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--sheet-ink);color:var(--sheet);font:500 .72rem var(--f-mono);display:grid;place-items:center}
.rz .l{display:block;background:var(--doc-g2);color:var(--doc-gi);padding:.28rem .75rem;margin:-.7rem -.75rem .35rem;font:700 .8rem/1.3 var(--f-body)}
.rz .v{font:400 .88rem/1.5 var(--f-body);overflow-wrap:anywhere}
.bz{text-align:center;justify-items:center;padding:.5rem .6rem}
.bz .l{background:none;color:inherit;margin:0;padding:0;font-size:.8rem}
.bz .v{font:600 .95rem var(--f-mono)}
.rz.flush{padding:0}
.mrow{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;padding:.5rem .75rem;font-size:.82rem;line-height:1.4}
.mrow small{display:block;font-size:.7rem;opacity:.85;margin-top:.15rem}
.mrow .p{font:700 1rem var(--f-mono);white-space:nowrap}
.m1,.m3{background:var(--doc-g3)}
.m2{background:var(--doc-g1)}
.rz.pay .l{text-align:center;text-transform:uppercase;font-size:.7rem;letter-spacing:.03em}
.fine{font-size:.78rem;line-height:1.45}
.addrbox{border:1.5px solid var(--sheet-ink);padding:.4rem .6rem;margin-top:.3rem;font-size:.8rem;line-height:1.45}
.annot{position:sticky;bottom:0;z-index:5;background:var(--panel);color:var(--ink);border:1.5px solid var(--ink);border-radius:6px;padding:.8rem 1rem;display:grid;gap:.5rem;max-height:36vh;overflow:auto;box-shadow:0 -10px 24px -14px rgba(0,0,0,.45)}
.annot-head{display:grid;gap:.1rem}
.annot-head b{font:700 1.1rem var(--f-display)}
.annot-body{display:grid;gap:.45rem;font-size:.95rem;line-height:1.45}
.annot-nav{display:flex;gap:.5rem}
.annot-nav .btn{flex:1;padding:.5rem .8rem}
.btn:disabled{opacity:.4;cursor:default}
@media (max-width:560px){
  .blocks{grid-template-columns:1fr}
  .blank{display:none}
  .band-grid{grid-template-columns:1fr 1fr}
  .band-title{grid-column:1/-1;order:-1}
}

/* Paiement */
.pay-list{display:grid;border-top:2px solid var(--ink)}
.pay-list details{border-bottom:1px solid var(--line);padding:.7rem 0}
.pay-list summary{font-weight:700;cursor:pointer}
.pay-list details p{margin-top:.4rem;color:var(--ink-soft)}

/* Délais */
.delays{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px}
.delays li{padding:.85rem 1rem;display:grid;gap:.25rem;align-content:start;flex:1 1 11rem;background:var(--d1)}
.delays li:nth-child(2){flex-grow:2;background:var(--d2)}
.delays li:nth-child(3){background:var(--d3)}
.delays b{font-family:var(--f-display);font-size:1.05rem}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.15rem;border-radius:6px;border:1.5px solid var(--signal);background:var(--signal);color:var(--on-signal);font:600 1rem var(--f-body);text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--signal)}
.hero{display:grid;gap:1rem;padding:1.4rem 1.2rem;border:2px solid var(--signal);border-left-width:8px;border-radius:10px;background:var(--panel)}
.hero h1{margin:0}
.hero .lede{margin:0}
.btn-xl{font-size:1.15rem;padding:1rem 1.4rem;width:100%}
@media(min-width:640px){.btn-xl{width:auto;justify-self:start}}
.hero-types{display:flex;flex-wrap:wrap;gap:.5rem .6rem;align-items:center;font-size:.95rem}
.hero-types a{padding:.35rem .8rem;border:1.5px solid var(--ink);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:600;background:transparent}
.hero-points{margin:0;padding-left:1.1rem;display:grid;gap:.2rem;font-size:.95rem}
.cta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding-top:1rem;border-top:2px solid var(--ink)}

/* Assistant */
.steps{display:flex;gap:.5rem;list-style:none;padding:0;margin:0}
.steps li{flex:1;border-top:3px solid var(--line);padding-top:.4rem;font-size:.85rem;color:var(--ink-soft)}
.steps li.done{border-top-color:var(--ink)}
.steps li[aria-current="step"]{border-top-color:var(--signal);color:var(--ink);font-weight:700}
form{display:grid}
fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:1.1rem}
fieldset[hidden]{display:none}
legend{font:700 1.35rem var(--f-display);padding:0;margin-bottom:.25rem}
.field{display:grid;gap:.3rem;min-width:0}
.field label,.field .lbl{font-weight:600;font-size:.95rem}
.opt{font-weight:400;color:var(--ink-soft)}
input[type=text],input[type=date],textarea{font:inherit;color:var(--ink);background:var(--panel);border:1.5px solid var(--line);border-radius:6px;padding:.6rem .7rem;width:100%;min-width:0}
textarea{resize:vertical;min-height:6rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.9rem}
.choices{display:grid;gap:.6rem}
.choice{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem .9rem;border:1.5px solid var(--line);border-radius:8px;background:var(--panel);cursor:pointer;min-width:0}
.choice input{margin-top:.3rem;accent-color:var(--signal);flex:none}
.choice:has(input:checked){border-color:var(--signal);background:var(--d1)}
.choice b{display:block}
.choice small{display:block;color:var(--ink-soft);font-size:.92rem;line-height:1.4}
.notice{padding:.85rem 1rem;background:var(--warn-bg);border-radius:6px;display:grid;gap:.35rem}
.sub{display:grid;gap:.9rem;padding:1rem;border:1.5px dashed var(--line);border-radius:8px}
.sub[hidden],.field[hidden],.notice[hidden]{display:none}
.check{display:flex;gap:.7rem;align-items:flex-start}
.check input{margin-top:.35rem;accent-color:var(--signal);flex:none}
.nav{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;padding-top:.5rem}
#letter{min-height:30rem;font:400 1rem/1.5 var(--f-body)}
.out-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
#copy-status{font-size:.92rem;color:var(--ink-soft)}
.pieces{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}
.btn:disabled{opacity:.45;cursor:not-allowed}
footer{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.9rem;color:var(--ink-soft);display:grid;gap:.4rem}

@media (max-width:520px){
  .nav .btn{flex:1}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Site multi-pages */
[hidden]{display:none!important}
img{max-width:100%}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:20}
.skip:focus{left:1rem;top:1rem}
.prose{display:grid;gap:.6rem;max-width:62ch}
.prose h2{margin-top:.8rem}
.motifs{list-style:none;margin:0;padding:0;display:grid;border-top:2px solid var(--ink)}
.motifs li{display:grid;gap:.15rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.motifs span{color:var(--ink-soft)}
.motifs a{font-weight:700;color:var(--ink)}
.links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.todo{background:var(--warn-bg);padding:0 .25em;border-radius:2px}
main{display:grid;gap:2.2rem}
.rz{scroll-margin:1rem 0 42vh}
