:root{
  --bg:#FFFDF7; --surface:#FFFFFF; --fill:#F6F2EA; --ink:#1C1310; --soft:#6E605A;
  --rule:#DDD5C8; --red:#8E2018; --redbg:#FBEDEB; --green:#3F6B3A; --greenbg:#EDF3EB;
  --accent:#591614;
  --f-d:"Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-u:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --f-m:ui-monospace,"SF Mono",Menlo,monospace;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#141315; --surface:#1B1A1C; --fill:#232123; --ink:#F1EBE3; --soft:#A2968E;
    --rule:#373334; --red:#E7887D; --redbg:#2C1512; --green:#8FB988; --greenbg:#182116;
    --accent:#E08C82;
  }
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{background:var(--bg);color:var(--ink);font-family:var(--f-u);font-size:17px;line-height:1.45;
  -webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top);
  padding-bottom:env(safe-area-inset-bottom);}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;text-align:left;}
input{font:inherit;color:inherit;}

.app{max-width:960px;margin:0 auto;padding:0 16px 40px;}

.netbar{position:sticky;top:0;z-index:20;background:var(--accent);color:#FFFDF7;
  padding:9px 16px;font-size:14px;text-align:center;}
@media (prefers-color-scheme:dark){.netbar{color:#141315;}}

.top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:18px 0 12px;border-bottom:1px solid var(--rule);margin-bottom:16px;}
.title{font-family:var(--f-d);font-size:27px;line-height:1.1;}
.meta{font-size:12.5px;color:var(--soft);text-align:right;line-height:1.4;}
.meta button{text-decoration:underline;font-size:12.5px;}
.stack{display:flex;flex-direction:column;gap:14px;}

.alert{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;
  background:var(--red);color:#FFFDF7;padding:15px 16px;font-size:15px;}
@media (prefers-color-scheme:dark){.alert{color:#141315;}}
.alert small{opacity:.9;font-size:12.5px;white-space:nowrap;}

.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;}
.tile{border:1px solid var(--rule);background:var(--fill);padding:17px;min-height:96px;width:100%;
  display:flex;flex-direction:column;gap:4px;justify-content:center;}
.tile b{font-weight:500;font-size:16px;}
.tile span{font-size:13px;color:var(--soft);}
.tile.todo{border:2px solid var(--red);background:var(--redbg);}
.tile.todo span{color:var(--red);}
.tile.done{border-color:var(--green);background:var(--greenbg);}
.tile.done span{color:var(--green);}

.quick{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--rule);padding-top:14px;}
.btn{border:1px solid var(--rule);background:var(--fill);padding:14px 17px;font-size:15px;
  min-height:48px;display:inline-flex;align-items:center;}
.btn:active{background:var(--rule);}
.btn-p{background:var(--red);border-color:var(--red);color:#FFFDF7;}
@media (prefers-color-scheme:dark){.btn-p{color:#141315;}}
.btn-w{width:100%;justify-content:center;}
.btn[disabled]{opacity:.5;}

.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;}
.person{border:1px solid var(--rule);background:var(--fill);padding:30px 16px;align-items:center;
  display:flex;flex-direction:column;gap:6px;}
.person b{font-family:var(--f-d);font-size:28px;font-weight:400;}
.person span{font-size:12px;color:var(--soft);letter-spacing:.08em;text-transform:uppercase;}

.tgrid{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start;}
@media (max-width:700px){.tgrid{grid-template-columns:1fr;}}
.trow{display:grid;grid-template-columns:1fr 100px 90px;gap:12px;align-items:center;
  padding:14px 0;border-top:1px solid var(--rule);width:100%;}
.trow:first-child{border-top:none;}
.tn b{display:block;font-weight:500;font-size:16px;}
.tn span{font-size:12.5px;color:var(--soft);}
.tv{border:1px solid var(--rule);background:var(--fill);text-align:center;padding:12px 0;
  font-family:var(--f-m);font-size:19px;min-height:48px;}
.tv.cur{border:2px solid var(--ink);}
.tv.bad{border:2px solid var(--red);background:var(--redbg);color:var(--red);}
.tv.ok{border-color:var(--green);}
.ts{font-size:12.5px;color:var(--green);}
.ts.bad{color:var(--red);}
.pad{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:8px;max-width:280px;}
.pad button{border:1px solid var(--rule);background:var(--fill);text-align:center;
  padding:18px 0;font-family:var(--f-m);font-size:20px;}
.pad button:active{background:var(--rule);}
.chrono{font-family:var(--f-m);font-size:13px;color:var(--soft);text-align:center;padding-top:6px;}

.fld{display:flex;flex-direction:column;gap:6px;}
.fld label{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--soft);}
.in{border:1px solid var(--rule);background:var(--fill);padding:13px 14px;font-size:16px;width:100%;}
.g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{border:1px solid var(--rule);background:var(--fill);padding:13px 15px;font-size:15px;min-height:46px;}
.chip.on{border:2px solid var(--ink);background:var(--surface);}

.tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--rule);}
.tabs button{padding:12px 15px;font-size:15px;color:var(--soft);border-bottom:2px solid transparent;margin-bottom:-1px;}
.tabs button.on{color:var(--ink);border-bottom-color:var(--red);}
.tw{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px;}
th,td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--rule);}
th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--soft);font-weight:600;}
td.m{font-family:var(--f-m);}
td.bad{color:var(--red);}

.note{font-size:14px;color:var(--soft);}
.hint{background:var(--fill);padding:13px 16px;font-size:14px;color:var(--soft);
  border-left:3px solid var(--accent);}
.err{background:var(--redbg);color:var(--red);padding:13px 16px;font-size:14.5px;
  border-left:3px solid var(--red);}
.back{font-size:15px;color:var(--soft);text-decoration:underline;}
.empty{padding:26px 0;color:var(--soft);font-size:15px;text-align:center;}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;z-index:50;
  background:var(--green);color:#FFFDF7;padding:14px 22px;font-size:15px;max-width:90vw;}
@media (prefers-color-scheme:dark){.toast{color:#141315;}}
.toast.bad{background:var(--red);}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* ---- ajouts paliers 2 et 3 ---- */
.chk{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--rule);font-size:15.5px;}
.chk:first-of-type{border-top:none;}
.box{width:28px;height:28px;border:1px solid var(--rule);flex:0 0 auto;background:var(--fill);padding:0;}
.box.on{background:var(--green);border-color:var(--green);}
.chk.alrg{background:var(--redbg);margin-inline:-10px;padding-inline:10px;}
.chk.alrg .box{border-color:var(--red);}
.chip.nut{border-color:var(--red);color:var(--red);}
.chip.nut.on{border:2px solid var(--red);}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.thumbs div{min-width:64px;height:44px;border:1px solid var(--rule);background:var(--fill);
  display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--soft);padding:0 8px;}
.huge{text-align:center;padding:28px 10px;border:1px solid var(--rule);background:var(--fill);}
.huge .lot{font-family:var(--f-m);font-size:clamp(26px,7vw,40px);letter-spacing:.02em;}
.huge .dlc-l{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft);margin-top:18px;}
.huge .dlc{font-family:var(--f-d);font-size:clamp(38px,10vw,64px);line-height:1.05;color:var(--red);}
input[type=file]{display:none;}
@media print{.quick,.netbar,.back,.chips{display:none!important;}}

/* ---- alignement des formulaires et panneaux d'ajout ---- */
.g2{grid-template-columns:repeat(2,minmax(0,1fr));}
@media (max-width:560px){.g2{grid-template-columns:1fr;}}
.in{min-height:50px;line-height:1.25;-webkit-appearance:none;appearance:none;border-radius:0;}
input[type=date].in{min-height:50px;padding-block:12px;}
.fld>.chips{min-height:50px;align-items:stretch;}
.fld>.chips .chip{display:inline-flex;align-items:center;}
.panel{border:1px dashed var(--rule);background:var(--fill);padding:16px;display:flex;flex-direction:column;gap:4px;}
#photo{display:none;}
