/* ─────────────────────────────────────────────────────────────────────
   Boîte à idées PACIFIK'AI — feuille commune.
   Tokens dérivés du sujet : le relevé foncier polynésien. Papier de plan,
   encre vert-ardoise, teal de tracé, laiton d'instrument. Neutres à biais
   vert-bleu, jamais gris pur. Zéro ombre : on commit à l'arête.
   ───────────────────────────────────────────────────────────────────── */
:root {
  --paper:     #F4F5F1;
  --paper-2:   #EAEEE7;
  --paper-3:   #E0E5DC;
  --ink:       #141D1B;
  --ink-2:     #3B4845;
  --ink-3:     #6B7873;
  --rule:      #CBD3C9;
  --rule-soft: #DDE2D9;
  --lagoon:    #0D5F66;
  --brass:     #8A6620;
  --coral:     #9E3B2C;
  --vert:      #2F6B4F;

  --f-display: 'Iowan Old Style', 'Palatino Linotype', Palatino, 'Book Antiqua', Georgia, serif;
  --f-text: ui-sans-serif, system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --f-data: ui-monospace, 'SF Mono', SFMono-Regular, 'Cascadia Mono', Menlo, Consolas, monospace;

  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem;
  --s6:1.5rem; --s8:2rem; --s12:3rem; --s16:4rem; --s24:6rem;
  --measure: 68ch;
  --shell: 78rem;
}
@media (prefers-color-scheme: dark) {
  :root {
    --paper:#0E1413; --paper-2:#151D1B; --paper-3:#1D2725;
    --ink:#E4E9E5; --ink-2:#AFBAB5; --ink-3:#7E8B86;
    --rule:#2C3835; --rule-soft:#212C2A;
    --lagoon:#5FB3BA; --brass:#C9A057; --coral:#D37764; --vert:#6FB08E;
  }
}
:root[data-theme="dark"] {
  --paper:#0E1413; --paper-2:#151D1B; --paper-3:#1D2725;
  --ink:#E4E9E5; --ink-2:#AFBAB5; --ink-3:#7E8B86;
  --rule:#2C3835; --rule-soft:#212C2A;
  --lagoon:#5FB3BA; --brass:#C9A057; --coral:#D37764; --vert:#6FB08E;
}
:root[data-theme="light"] {
  --paper:#F4F5F1; --paper-2:#EAEEE7; --paper-3:#E0E5DC;
  --ink:#141D1B; --ink-2:#3B4845; --ink-3:#6B7873;
  --rule:#CBD3C9; --rule-soft:#DDE2D9;
  --lagoon:#0D5F66; --brass:#8A6620; --coral:#9E3B2C; --vert:#2F6B4F;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--f-text); font-size:16px; line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
.shell{max-width:var(--shell);margin:0 auto;padding:var(--s12) var(--s6) var(--s24)}
@media (max-width:40rem){.shell{padding:var(--s8) var(--s4) var(--s16)}}
.col{max-width:var(--measure)}

/* Cartouche */
.cartouche{
  display:grid;grid-template-columns:1fr auto;gap:var(--s6);align-items:end;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);
  padding:var(--s4) 0 var(--s6);
}
@media (max-width:46rem){.cartouche{grid-template-columns:1fr;align-items:start}}
.cartouche h1{
  font-family:var(--f-display);font-weight:400;
  font-size:clamp(1.75rem,1.1rem+2.9vw,3rem);
  line-height:1.06;letter-spacing:-.018em;text-wrap:balance;margin-bottom:var(--s3);
}
.thesis{
  font-family:var(--f-display);font-style:italic;color:var(--ink-2);
  font-size:clamp(1.02rem,.95rem+.45vw,1.25rem);max-width:52ch;line-height:1.45;
}
.stamp{font-family:var(--f-data);font-size:.7rem;line-height:1.9;color:var(--ink-3);text-align:right;white-space:nowrap}
@media (max-width:46rem){.stamp{text-align:left}}
.stamp b{color:var(--ink-2);font-weight:600}

/* Sections */
section{margin-top:var(--s16);scroll-margin-top:var(--s8)}
h2{
  font-family:var(--f-display);font-weight:400;
  font-size:clamp(1.45rem,1.2rem+1.3vw,2rem);
  line-height:1.15;letter-spacing:-.012em;text-wrap:balance;
  padding-bottom:var(--s3);border-bottom:1px solid var(--rule);margin-bottom:var(--s6);
}
h2 .num{font-family:var(--f-data);font-size:.72rem;color:var(--lagoon);letter-spacing:.08em;vertical-align:.9em;margin-right:var(--s3)}
h3{font-family:var(--f-text);font-size:1.02rem;font-weight:650;letter-spacing:-.005em;margin:var(--s8) 0 var(--s3)}
h3:first-child{margin-top:0}
h4{font-family:var(--f-data);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin:var(--s6) 0 var(--s3)}
p{margin-bottom:var(--s4);max-width:var(--measure)}
p:last-child{margin-bottom:0}
strong{font-weight:650}
a{color:var(--lagoon);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover{color:var(--ink)}
a:focus-visible{outline:2px solid var(--lagoon);outline-offset:3px}

/* Cotes — chiffres traités comme des relevés */
.cotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--s6) var(--s8);margin:var(--s8) 0}
.cote{border-top:1px solid var(--ink);padding-top:var(--s3)}
.cote .v{font-family:var(--f-data);font-variant-numeric:tabular-nums;font-size:clamp(1.45rem,1.2rem+1vw,1.9rem);line-height:1;letter-spacing:-.02em;display:block;margin-bottom:var(--s2)}
.cote .l{font-size:.85rem;color:var(--ink-2);line-height:1.4;display:block}
.cote .src{font-family:var(--f-data);font-size:.65rem;color:var(--ink-3);letter-spacing:.04em;display:block;margin-top:var(--s2)}
.cote.vif .v{color:var(--lagoon)} .cote.chaud .v{color:var(--brass)} .cote.dur .v{color:var(--coral)} .cote.ok .v{color:var(--vert)}

/* Tableaux */
.planche{overflow-x:auto;margin:var(--s6) 0}
table{width:100%;border-collapse:collapse;font-size:.89rem;min-width:32rem}
caption{text-align:left;font-size:.82rem;color:var(--ink-3);padding-bottom:var(--s3);line-height:1.5}
th{text-align:left;font-weight:600;font-size:.71rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);padding:0 var(--s4) var(--s3) 0;border-bottom:1px solid var(--ink);vertical-align:bottom}
td{padding:var(--s3) var(--s4) var(--s3) 0;border-bottom:1px solid var(--rule-soft);vertical-align:top;line-height:1.5}
th:last-child,td:last-child{padding-right:0}
.num-c{font-family:var(--f-data);font-variant-numeric:tabular-nums;white-space:nowrap}
tr.total td{border-top:1px solid var(--ink);border-bottom:none;font-weight:650;padding-top:var(--s4)}
.barre{text-decoration:line-through;color:var(--ink-3)}

/* Marques de statut */
.st{font-family:var(--f-data);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;padding:.1rem .4rem;border:1px solid currentColor}
.st.off{color:var(--lagoon)} .st.est{color:var(--brass)} .st.dec{color:var(--coral)} .st.ok{color:var(--vert)}

/* Notes */
.note{background:var(--paper-2);padding:var(--s6);margin:var(--s8) 0;max-width:var(--measure)}
.note p:last-child{margin-bottom:0}
.note .titre{font-family:var(--f-data);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--coral);display:block;margin-bottom:var(--s3)}
.note.calme .titre{color:var(--lagoon)}
.note.bien .titre{color:var(--vert)}
.note blockquote{font-family:var(--f-display);font-style:italic;font-size:1.02rem;line-height:1.5;color:var(--ink);padding-left:var(--s4);border-left:1px solid var(--rule);margin:var(--s4) 0}

/* Listes en filets */
.filets{list-style:none;max-width:var(--measure)}
.filets li{padding:var(--s3) 0;border-bottom:1px solid var(--rule-soft);display:grid;grid-template-columns:1.5rem 1fr;gap:var(--s3);align-items:baseline}
.filets li:last-child{border-bottom:none}
.filets .marq{font-family:var(--f-data);font-size:.72rem;color:var(--ink-3);font-variant-numeric:tabular-nums}

.deux{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:var(--s8);margin-top:var(--s6)}
.deux p{max-width:100%}

/* Figures SVG */
figure{margin:var(--s8) 0}
figure svg{width:100%;height:auto;display:block}
figcaption{font-size:.8rem;color:var(--ink-3);margin-top:var(--s3);line-height:1.5;max-width:var(--measure)}
.fig-t{font-family:var(--f-data);font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;fill:var(--ink-3)}
.fig-l{font-family:var(--f-text);font-size:.78rem;fill:var(--ink-2)}
.fig-n{font-family:var(--f-data);font-size:.8rem;fill:var(--ink);font-variant-numeric:tabular-nums}

footer{margin-top:var(--s24);padding-top:var(--s4);border-top:1px solid var(--rule);font-family:var(--f-data);font-size:.68rem;color:var(--ink-3);line-height:1.8}

/* Sommaire */
.toc{background:var(--paper-2);padding:var(--s6);margin:var(--s12) 0}
.toc h4{margin-top:0}
.toc ol{list-style:none;counter-reset:t;columns:2;column-gap:var(--s8)}
@media (max-width:40rem){.toc ol{columns:1}}
.toc li{counter-increment:t;padding:.28rem 0;break-inside:avoid}
.toc li::before{content:counter(t,decimal-leading-zero);font-family:var(--f-data);font-size:.68rem;color:var(--lagoon);margin-right:var(--s3)}

/* Retour */
.retour{font-family:var(--f-data);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;display:inline-block;margin-bottom:var(--s6)}
