:root{
  --ground:#F7F5F0; --surface:#FFFFFF; --surface-2:#EFEBE3;
  --ink:#14120F; --ink-soft:#6E675E; --ink-faint:#9C948A;
  --line:#E2DCD2; --line-strong:#C9C1B5;
  --ai:#2E4B7C;      --ai-bg:#DEE5F0;
  --kuchiba:#9C6B22;  --kuchiba-bg:#F3E8D1;
  --shu:#B8392A;      --shu-bg:#F6E1DD;
  --matcha:#5C7A4A;   --matcha-bg:#E4EBDC;
  --band:#14120F; --band-ink:#F7F5F0;
  --shadow:0 1px 2px rgba(20,18,15,.05), 0 10px 30px -16px rgba(20,18,15,.25);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#121110; --surface:#1B1A18; --surface-2:#242220;
    --ink:#F2EFE9; --ink-soft:#A29A8F; --ink-faint:#787067;
    --line:#2D2B27; --line-strong:#403C36;
    --ai:#8AACDB;      --ai-bg:#1C2839;
    --kuchiba:#D7A95C;  --kuchiba-bg:#2E2617;
    --shu:#E07B67;      --shu-bg:#33201C;
    --matcha:#96B383;   --matcha-bg:#212A1C;
    --band:#000000; --band-ink:#F2EFE9;
    --shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 30px -16px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --ground:#121110; --surface:#1B1A18; --surface-2:#242220;
  --ink:#F2EFE9; --ink-soft:#A29A8F; --ink-faint:#787067;
  --line:#2D2B27; --line-strong:#403C36;
  --ai:#8AACDB;      --ai-bg:#1C2839;
  --kuchiba:#D7A95C;  --kuchiba-bg:#2E2617;
  --shu:#E07B67;      --shu-bg:#33201C;
  --matcha:#96B383;   --matcha-bg:#212A1C;
  --band:#000000; --band-ink:#F2EFE9;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 10px 30px -16px rgba(0,0,0,.8);
}

*{box-sizing:border-box}
body{
  background:var(--ground); color:var(--ink);
  font-family:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:16px; line-height:1.62; margin:0; -webkit-font-smoothing:antialiased;
}
a{color:var(--ai)}
.wrap{max-width:900px; margin:0 auto; padding:0 24px 96px}

/* ── Bandeau identité ────────────────────── */
.band{background:var(--band); color:var(--band-ink); padding:40px 24px 36px}
.band-in{max-width:900px; margin:0 auto; display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px}
.mark{
  font-family:Jost,"Futura","Century Gothic",sans-serif; font-weight:400;
  font-size:30px; letter-spacing:.42em; margin:0; line-height:1;
  display:inline-block; text-indent:.42em;
}
.mark a{color:inherit; text-decoration:none}
.mark .o{position:relative; display:inline-block}
.mark .o::after{
  content:""; position:absolute; left:6%; right:32%; bottom:-.22em;
  height:2px; background:var(--band-ink);
}
.mark-sub{
  font-family:Jost,sans-serif; font-weight:300; font-size:11px;
  letter-spacing:.36em; margin:0; color:var(--band-ink); opacity:.62;
  text-indent:.36em;
}
.band nav{font-family:"IBM Plex Mono",monospace; font-size:12px; letter-spacing:.06em}
.band nav a{color:var(--band-ink); opacity:.75; text-decoration:none; margin-left:18px}
.band nav a:hover{opacity:1; text-decoration:underline}

header.page{padding:44px 0 32px; border-bottom:1px solid var(--line)}
.eyebrow{
  font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-faint); margin:0 0 16px;
}
h1{
  font-family:Jost,sans-serif; font-weight:400; font-size:clamp(30px,5vw,46px);
  line-height:1.08; letter-spacing:-.005em; margin:0; text-wrap:balance;
}

section{padding:40px 0; border-bottom:1px solid var(--line)}
section:last-child{border-bottom:none}
h2{
  font-family:Jost,sans-serif; font-weight:400; font-size:26px;
  letter-spacing:-.005em; margin:0 0 8px; text-wrap:balance;
}
.sub{color:var(--ink-soft); margin:0 0 24px; max-width:64ch; font-size:14.5px}

/* ── Planning ────────────────────────────── */
.scroll{overflow-x:auto; margin-bottom:16px}
table{border-collapse:collapse; width:100%; min-width:640px; font-size:13.5px}
caption{
  text-align:left; font-family:"IBM Plex Mono",monospace; font-size:10.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); padding-bottom:10px;
}
th,td{border:1px solid var(--line); padding:9px 11px; text-align:left; vertical-align:top}
thead th{
  background:var(--surface-2); color:var(--ink); font-weight:500; font-size:12px;
  white-space:nowrap; font-family:Jost,sans-serif; letter-spacing:.1em; text-transform:uppercase;
}
.rowlab{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:600;
  letter-spacing:.1em; white-space:nowrap; width:86px;
}
.dia .rowlab{background:var(--ai-bg); color:var(--ai)}
.noche .rowlab{background:var(--kuchiba-bg); color:var(--kuchiba)}
.resp{display:block; font-weight:600}
.sec{display:block; color:var(--ink-faint); font-size:12.5px}
td.vide{background:var(--shu-bg); color:var(--shu); font-weight:600}

/* ── Dette ───────────────────────────────── */
.dette{display:grid; gap:9px; max-width:560px}
.barre{display:grid; grid-template-columns:86px 1fr 54px; align-items:center; gap:12px}
.barre .nom{font-size:14px}
.barre .piste{height:8px; background:var(--surface-2); overflow:hidden}
.barre .fill{height:100%; background:var(--shu); display:block}
.barre .val{
  font-family:"IBM Plex Mono",monospace; font-size:13px; text-align:right;
  font-variant-numeric:tabular-nums; color:var(--shu); font-weight:600;
}
.total{margin-top:20px; padding-top:16px; border-top:1px solid var(--line); font-family:Jost,sans-serif; font-size:21px}
.total b{color:var(--shu); font-weight:500}
.aucune{color:var(--matcha); font-size:14.5px}

/* ── Badges / statuts ───────────────────── */
.badge{
  display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:10.5px;
  letter-spacing:.14em; text-transform:uppercase; padding:5px 10px;
  font-weight:600; border-radius:2px;
}
.badge.absorbe{background:var(--matcha-bg); color:var(--matcha)}
.badge.alerte{background:var(--shu-bg); color:var(--shu)}

/* ── Journal des faits ──────────────────── */
.journal{list-style:none; margin:0; padding:0; display:grid; gap:1px; background:var(--line); border:1px solid var(--line)}
.journal li{background:var(--surface); padding:14px 16px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; font-size:14px}
.journal code{font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-faint)}
.journal .fait-type{
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ai); background:var(--ai-bg);
  padding:3px 8px; border-radius:2px;
}
.journal form{margin-left:auto}
button, .btn{
  font-family:inherit; font-size:13px; font-weight:600; text-align:left;
  background:var(--surface); color:var(--ink);
  border:1px solid var(--line-strong); border-radius:2px;
  padding:8px 13px; cursor:pointer; transition:border-color .15s, background .15s;
}
button:hover, .btn:hover{border-color:var(--shu); background:var(--shu-bg); color:var(--shu)}
.journal .vide{color:var(--ink-faint); font-style:italic; padding:20px 16px}

.note{
  font-size:13.5px; color:var(--ink-faint); border-left:2px solid var(--line-strong);
  padding-left:14px; max-width:64ch; margin-top:22px;
}
footer{padding:36px 0 0; font-size:13px; color:var(--ink-faint)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
