:root {
  --bg:#fbf5ee; --card:#fffdfa; --fg:#3b2a24; --muted:#8a7a70; --line:#eadfd2;
  --accent:#c4543f; --accent-d:#a8402d; --rose:#f6dcd4; --sage:#e3ecdc; --sage-d:#3f7a50;
  --warn:#b36b00; --err:#b3261e; --info:#3b6ea5; --head:#3b2a24;
  --shadow:0 1px 2px rgba(59,42,36,.06), 0 6px 18px rgba(59,42,36,.06);
}
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; background:var(--bg); color:var(--fg); }
a { color:var(--accent); }
.top { display:flex; gap:22px; align-items:center; padding:12px 32px; background:var(--head); color:#fbf5ee; position:sticky; top:0; z-index:5; box-shadow:0 2px 12px rgba(0,0,0,.18); }
.top a { color:#e9d9cc; text-decoration:none; font-weight:500; padding:4px 10px; border-radius:8px; }
.top a:hover { background:rgba(255,255,255,.12); color:#fff; }
.top .brand { font-size:19px; font-weight:800; letter-spacing:-.01em; color:#fff; padding-left:0; }
.status { margin-left:auto; font-size:13px; color:#cdb9a9; }
main { max-width:1240px; margin:0 auto; padding:26px 32px 90px; }
h1 { font-size:28px; letter-spacing:-.02em; margin:4px 0 6px; }
h2 { font-size:18px; margin:34px 0 10px; display:flex; align-items:center; gap:10px; }
h2::before { content:""; width:5px; height:20px; border-radius:3px; background:var(--accent); }
h3 { font-size:15px; margin:18px 0 8px; color:var(--accent-d); }
.tabs { display:inline-flex; gap:4px; padding:5px; background:#f1e6d9; border-radius:12px; margin:16px 0 22px; flex-wrap:wrap; }
.tabs a { padding:8px 18px; text-decoration:none; color:var(--muted); border-radius:9px; font-weight:600; }
.tabs a:hover { color:var(--fg); }
.tabs a.on { background:var(--card); color:var(--accent-d); box-shadow:var(--shadow); }
table { border-collapse:separate; border-spacing:0; background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:var(--shadow); }
th, td { padding:8px 12px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
tr:last-child td { border-bottom:0; }
tr:nth-child(even) td { background:#fdf8f2; }
th { background:#f5ebdf; font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:#6b584d; white-space:nowrap; }
td.n, th.n { text-align:right; font-variant-numeric:tabular-nums; }
tr.total td { font-weight:800; background:var(--rose); border-top:1px solid var(--line); }
td a { font-weight:600; text-decoration:none; }
input, select, textarea, button { font:inherit; color:inherit; }
input[type=number], input[type=text], input[type=month], select, textarea { padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; transition:border-color .15s, box-shadow .15s; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(196,84,63,.18); }
input[type=number] { width:100px; text-align:right; } input.wide { width:240px; } input[type=checkbox] { accent-color:var(--accent); width:16px; height:16px; }
textarea { width:100%; min-height:80px; }
input:disabled, select:disabled, textarea:disabled { background:#f3ece3; color:var(--muted); }
button, .btn { padding:7px 16px; border:1px solid var(--line); border-radius:9px; background:var(--card); cursor:pointer; font-weight:600; transition:all .15s; }
button:hover { border-color:var(--accent); color:var(--accent-d); transform:translateY(-1px); }
button.primary { background:var(--accent); color:#fff; border-color:var(--accent); } button.primary:hover { background:var(--accent-d); color:#fff; }
button.x { padding:2px 9px; color:var(--muted); background:transparent; border-color:transparent; font-weight:500; } button.x:hover { color:var(--err); background:#fbe9e7; transform:none; }
button:disabled { opacity:.45; cursor:default; transform:none; }
.row { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:10px 0; }
.muted { color:var(--muted); } .pos { color:var(--sage-d); } .neg { color:var(--err); }
.alerts { margin:12px 0; display:grid; gap:6px; }
.alert { padding:9px 14px; border-radius:10px; background:var(--card); border:1px solid var(--line); border-left:5px solid var(--line); box-shadow:var(--shadow); }
.alert.error { border-left-color:var(--err); background:#fdf1ef; } .alert.warn { border-left-color:var(--warn); background:#fff6e6; } .alert.info { border-left-color:var(--info); background:#eef4fb; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px 22px; margin:12px 0; box-shadow:var(--shadow); }
.banner { background:#fdecea; border:1px solid var(--err); padding:12px 16px; border-radius:10px; margin:12px 0; }
.scroll { overflow-x:auto; border-radius:12px; } .grid2 { display:grid; grid-template-columns:repeat(auto-fit,minmax(360px,1fr)); gap:18px; }
.pill { font-size:12px; font-weight:700; padding:3px 11px; border-radius:20px; background:var(--rose); color:var(--accent-d); }
.pill.Clôturée { background:#e6e0d8; color:#6b5d52; } .pill.Découpe { background:var(--sage); color:var(--sage-d); }
/* statut dans l'en-tête de session */
#statut { font-weight:700; border-radius:20px; padding:5px 14px; background:var(--rose); color:var(--accent-d); border-color:transparent; cursor:pointer; }
/* sessions */
.sessions { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:18px; margin:16px 0 8px; }
.scard { position:relative; display:block; text-decoration:none; color:var(--fg); background:var(--card); border:1px solid var(--line); border-radius:16px; padding:22px; box-shadow:var(--shadow); transition:transform .15s, box-shadow .15s; }
.scard:hover { transform:translateY(-3px); box-shadow:0 10px 28px rgba(59,42,36,.14); }
.scard .emoji { font-size:38px; line-height:1; } .scard h3 { margin:10px 0 2px; font-size:19px; color:var(--fg); }
.scard .meta { color:var(--muted); font-size:14px; margin-bottom:12px; }
.scard .x { position:absolute; top:12px; right:12px; }
/* qui es-tu */
.chooser { max-width:640px; margin:50px auto; text-align:center; background:var(--card); border-radius:20px; padding:34px; box-shadow:var(--shadow); border:1px solid var(--line); }
.chooser h2 { justify-content:center; } .chooser h2::before { display:none; }
.avatars { display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin:20px 0; }
.avatars button { display:flex; flex-direction:column; align-items:center; gap:8px; padding:14px 18px; min-width:110px; border-radius:16px; }
.avatar { width:56px; height:56px; border-radius:50%; background:var(--rose); color:var(--accent-d); display:grid; place-items:center; font-size:24px; font-weight:800; }
.avatars button:hover .avatar { background:var(--accent); color:#fff; }
.hero { background:linear-gradient(135deg,var(--rose),#fbeadf); border-radius:18px; padding:22px 28px; margin:6px 0 4px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; box-shadow:var(--shadow); }
.hero h1 { margin:0; } .hero .who { margin-left:auto; color:#6b584d; }
@media (max-width:700px) { main { padding:16px; } .top { padding:10px 16px; } .tabs a { padding:7px 12px; } }
/* recettes */
.rcards { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:14px; margin:14px 0; }
.rcards.small { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.rcard { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:16px 18px; text-align:left; font-weight:400; border-radius:14px; box-shadow:var(--shadow); }
.rtop { display:flex; gap:8px; align-items:center; } .rtop b { font-size:17px; }
.rline { font-size:14px; color:var(--fg); } .rline > span { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); font-weight:700; }
.rcard.add { align-items:center; justify-content:center; border-style:dashed; color:var(--muted); font-weight:600; min-height:80px; }
.modal { position:fixed; inset:0; z-index:30; background:rgba(59,42,36,.45); display:grid; place-items:start center; padding:6vh 16px; overflow:auto; }
.mbox { background:var(--card); border-radius:18px; padding:24px 28px; width:min(720px,100%); box-shadow:0 20px 60px rgba(0,0,0,.3); }
.mfoot { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }
.epgrid { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.ep { display:flex; align-items:center; gap:6px; } .ep input[type=text] { flex:1; min-width:0; } .ep input[type=number] { width:76px; }
.notes-in { width:100%; margin-top:6px; }
/* parcours simplifié */
.steps { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0 4px; }
.step { display:flex; align-items:center; gap:8px; border-radius:24px; padding:8px 18px 8px 8px; color:var(--muted); }
.step span { width:26px; height:26px; border-radius:50%; background:#f1e6d9; display:grid; place-items:center; font-size:13px; font-weight:800; }
.step.done { color:var(--sage-d); } .step.done span { background:var(--sage); }
.step.on { background:var(--accent); color:#fff; border-color:var(--accent); } .step.on span { background:rgba(255,255,255,.25); color:#fff; }
.help { color:#6b584d; margin:8px 0 12px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.chip { border-radius:20px; padding:7px 18px; } .chip.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.chip2 { padding:7px 14px; border-radius:20px; background:var(--sage); color:var(--sage-d); font-size:14px; }
.chip2.warn { background:#fff1d6; color:var(--warn); } .chip2.bad { background:#fbe0dc; color:var(--err); }
.pgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; margin:14px 0; }
.pcard { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:18px; box-shadow:var(--shadow); }
.phead { display:flex; align-items:center; gap:10px; } .avatar.sm { width:34px; height:34px; font-size:15px; }
.pcard .big { font-size:30px; font-weight:800; margin-top:10px; letter-spacing:-.02em; }
.badge { display:inline-block; margin:8px 0; padding:3px 12px; border-radius:20px; background:#f1e6d9; font-size:13px; font-weight:700; }
.badge.pos { background:var(--sage); color:var(--sage-d); } .badge.neg { background:#fbe0dc; color:var(--err); }
.pay { background:var(--card); border:1px solid var(--line); border-left:5px solid var(--accent); border-radius:10px; padding:11px 16px; margin:8px 0; font-size:16px; box-shadow:var(--shadow); }
details.more { margin:20px 0; } details.more > summary, .pcard summary { cursor:pointer; font-weight:700; color:var(--accent-d); padding:6px 0; }
.pcard table { width:100%; box-shadow:none; margin-top:6px; }

.top a.on:not(.brand) { background:rgba(255,255,255,.18); color:#fff; }

.elist { list-style:none; margin:4px 0 0; padding:0; width:100%; }
.elist li { display:flex; align-items:center; gap:10px; padding:5px 0; border-bottom:1px solid var(--line); }
.elist li:last-child { border-bottom:0; }
.elist i { width:8px; height:8px; border-radius:50%; background:var(--accent); flex:none; opacity:.7; }
.elist span { flex:1; } .elist b { font-variant-numeric:tabular-nums; }
.rcard { width:100%; } .rline { width:100%; }
.ep { padding:4px 0; border-bottom:1px solid var(--line); } .ep:last-child { border-bottom:0; }
.mbox { width:min(440px,100%); padding:22px 24px; }
.mbox .row { margin:4px 0 10px; } .mbox .wide { flex:1; width:auto; min-width:0; }
.mbox .ep input[type=text] { flex:1; } .mbox .ep input[type=number] { width:72px; }
.mbox h3 { margin-top:14px; } .mbox .mfoot { margin-top:14px; }
.rtop { flex-wrap:wrap; } .pill { white-space:nowrap; }
