
/* Layout : en-tête date + compteurs, grille 3 colonnes (commandes | offres+tâches | promos), bandeau rappels en bas */
:root{
  --green:#0E4A2A; --green-2:#155C36; --green-3:#1D6B41; --green-line:rgba(255,255,255,.12);
  --cream:#FBF7EE; --paper:#FFFFFF; --sand:#F6E7C9; --sand-2:#FCF4E3;
  --gold:#D9A62E; --gold-ink:#9A6F0E; --rose:#EC4F6E; --red:#D8112C;
  --ink:#16261B; --muted:#6C6F66; --rule:#ECE5D6;
  --display:'DM Serif Display',Georgia,'Times New Roman',serif;
  --body:'Work Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
body{background:var(--cream);color:var(--ink);font-family:var(--body);font-size:15px;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 32px}
.wrap{max-width:1500px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}
button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
h1,h2{font-family:var(--display);font-weight:400;margin:0;text-wrap:balance}

/* Header */
header{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;padding-bottom:16px;border-bottom:2px solid var(--green)}
.brand{display:flex;align-items:center;gap:18px;flex:1 1 420px;min-width:0}
.brand img{width:96px;height:auto;flex:none}
.titles{display:flex;flex-direction:column;gap:8px;min-width:0}
.appname{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.endy{font-family:var(--display);font-size:30px;line-height:1;color:var(--red);letter-spacing:.01em}
.endy::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);margin-left:3px}
.appname .tag{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
h1{font-size:clamp(30px,4.4vw,58px);line-height:1;color:var(--green);text-transform:none}
.stats{display:flex;align-items:center;gap:6px 22px;flex-wrap:wrap}
.kpi{display:flex;flex-direction:column;align-items:center;min-width:72px;padding:0 6px}
.kpi + .kpi{border-left:1px solid var(--rule)}
.kpi .v{font-family:var(--display);font-size:32px;line-height:1;color:var(--green);font-variant-numeric:tabular-nums}
.kpi .s{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:6px;font-variant-numeric:tabular-nums}
.kpi .bar{width:100%;height:3px;background:var(--rule);border-radius:2px;margin-top:6px;overflow:hidden}
.kpi .bar i{display:block;height:100%;background:var(--gold)}
.kpi.counter .v{font-size:40px}
.kpi.done .v{color:var(--gold)}
.kpi input{width:64px;font:inherit;font-family:var(--display);font-size:24px;text-align:center;border:1px solid var(--rule);border-radius:8px;padding:2px;color:var(--green);background:var(--paper)}
.kpi input.sm{font-family:var(--body);font-size:13px;width:70px}
.actions{display:flex;gap:10px}
.btn{border:1.5px solid var(--green);color:var(--green);border-radius:999px;padding:9px 18px;font-weight:600;font-size:14px;white-space:nowrap}
.btn:hover{background:var(--green);color:#fff}
.btn.on{background:var(--gold);border-color:var(--gold);color:var(--ink)}

/* Grid */
.grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:start}
.col{display:flex;flex-direction:column;gap:20px;min-width:0}
.card{background:var(--paper);border-radius:20px;padding:22px 24px;box-shadow:0 1px 0 rgba(14,74,42,.05),0 8px 24px -16px rgba(14,74,42,.25);min-width:0}
.card-h{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.card-h h2{font-size:28px;color:var(--green);flex:1;min-width:0}
.card-h .meta{font-size:13px;font-weight:600;color:var(--muted)}
.ico{width:30px;height:30px;flex:none;color:var(--green)}

/* Commandes */
.cmd{background:var(--green);color:#fff}
.cmd .card-h h2{color:#fff}.cmd .ico{color:var(--gold)}.cmd .card-h .meta{color:#DDE9E1}
.cmd-list{display:flex;flex-direction:column;gap:7px}
.ens{background:var(--green-2);border-radius:12px;overflow:hidden}
.ens-row{display:flex;align-items:center;gap:14px;padding:11px 14px}
.ens-txt{flex:1;min-width:0}
.ens-name{font-family:var(--display);font-size:20px;line-height:1.15}
.ens-sub{font-size:14px;color:#D3E2D8;line-height:1.45;margin-top:2px}
.ens-note{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.chev{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex:none;transition:transform .2s}
.chev:hover{background:var(--green-3)}
.ens.open .chev{transform:rotate(90deg)}
.sites{display:none;flex-wrap:wrap;gap:8px;padding:2px 14px 14px 58px}
.ens.open .sites{display:flex}
.site{border:1.5px solid rgba(255,255,255,.35);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:500}
.site:hover{border-color:var(--gold)}
.site.ok{background:var(--gold);border-color:var(--gold);color:var(--ink);text-decoration:line-through}
.ens.done{background:transparent;outline:1px solid var(--green-line)}
.ens.done .ens-name{text-decoration:line-through;opacity:.6}
.ens.off{opacity:.45}
.prog{font-size:12px;color:#BFD5C7;font-variant-numeric:tabular-nums;white-space:nowrap}

/* Check circle */
.chk{width:28px;height:28px;border-radius:50%;border:2px solid currentColor;flex:none;display:grid;place-items:center;color:var(--green)}
.chk svg{width:16px;height:16px;opacity:0}
.chk.ok{background:var(--green);border-color:var(--green)}
.chk.ok svg{opacity:1;color:#fff}
.chk.part{background:linear-gradient(90deg,var(--gold) 50%,transparent 50%)}
.cmd .chk{color:#fff}
.cmd .chk.ok{background:var(--gold);border-color:var(--gold)}.cmd .chk.ok svg{color:var(--ink)}
.dark .chk{color:#fff}.dark .chk.ok{background:var(--gold);border-color:var(--gold)}.dark .chk.ok svg{color:var(--ink)}

/* Lists */
.list{display:flex;flex-direction:column}
.row{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--rule)}
.row:last-child{border-bottom:0}
.row .lbl{flex:1;min-width:0;font-size:17px}
.row.done .lbl{color:var(--muted)}.row.done .lbl .txt{text-decoration:line-through}
.pill{border:1.5px solid var(--green);color:var(--green);border-radius:999px;padding:5px 14px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.pill.on{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.row.done .pill{visibility:hidden}

/* Promos */
.promo-now{background:var(--sand);}
.promo-now .inner{background:var(--sand-2);border-radius:14px;padding:4px 16px}
.promo-now .card-h .meta{color:var(--gold-ink)}
.promo-now .ico{color:var(--gold-ink)}
.prow{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid #EFDDB9}
.prow:last-child{border-bottom:0}
.dot{width:12px;height:12px;border-radius:50%;flex:none;transform:translateY(1px)}
.dot.kg{background:var(--gold)}.dot.rose{background:var(--rose)}
.pname{font-weight:700;font-size:17px;min-width:110px}
.pdet{color:var(--muted);flex:1;min-width:0}
.next .pname{text-transform:uppercase;font-size:16px}
.next .pdet{text-transform:uppercase;font-size:14px;letter-spacing:.02em}
.next .prow{border-color:var(--rule)}
.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-top:10px;flex-wrap:wrap}
.legend span{display:flex;align-items:center;gap:6px}

/* Rappels */
.rappels{grid-column:2 / span 2;background:var(--green);color:#fff;display:flex;align-items:center;gap:20px 28px;flex-wrap:wrap}
.rappels .card-h{margin:0;padding-right:28px;border-right:1px solid rgba(217,166,46,.5)}
.rappels .card-h h2{color:#fff;font-size:32px}
.rappels .ico{color:var(--gold);width:38px;height:38px}
.rappels .list{flex:1;min-width:260px}
.rappels .row{border:0;padding:7px 0}
.rappels .lbl{font-size:16px}
.rappels .dl{color:var(--gold);font-weight:700}
.rappels .row.done .lbl{color:#9DB8A6}
.rappels .row.late .dl{color:#FF9DB0}

/* Edit mode */
.x{display:none;width:26px;height:26px;border-radius:50%;flex:none;color:var(--red);font-size:18px;line-height:1}
.x:hover{background:rgba(216,17,44,.1)}
.editing .x{display:grid;place-items:center}
.cmd .x,.rappels .x{color:#FFB3C0}
.add{display:none;gap:8px;margin-top:12px;flex-wrap:wrap}
.editing .add{display:flex}
.add input,.add select{flex:1 1 120px;min-width:0;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--rule);border-radius:8px;background:#fff;color:var(--ink)}
.add button{background:var(--green);color:#fff;border-radius:8px;padding:8px 14px;font-weight:600;font-size:14px}
.cmd .add button,.rappels .add button{background:var(--gold);color:var(--ink)}
.editbar{display:none;background:var(--gold);color:var(--ink);border-radius:12px;padding:10px 16px;font-size:14px;font-weight:500}
.editing .editbar{display:block}
.empty{color:var(--muted);font-style:italic;padding:10px 0}
.cmd .empty,.rappels .empty{color:#BFD5C7}

@media (max-width:1150px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cmd-col{grid-row:span 2}.rappels{grid-column:1 / -1}}
@media (max-width:720px){.grid{grid-template-columns:minmax(0,1fr)}.cmd-col{grid-row:auto}.rappels .card-h{border:0;padding:0}.brand img{width:70px}.sites{padding-left:14px}.pname{min-width:0}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
/* Live / admin */
.live{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.live i{width:9px;height:9px;border-radius:50%;background:#2FA35A;box-shadow:0 0 0 0 rgba(47,163,90,.5);animation:pulse 2s infinite}
.live.off i{background:var(--red);animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(47,163,90,.5)}70%{box-shadow:0 0 0 8px rgba(47,163,90,0)}100%{box-shadow:0 0 0 0 rgba(47,163,90,0)}}
a.btn{text-decoration:none;display:inline-block}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;font-size:14px;z-index:20}
.rappels .row.done .dl{color:#9DB8A6}

/* Identité Endy : bandeau de marque */
.topbar{background:var(--green);color:#fff;border-radius:22px;padding:18px 26px;display:flex;align-items:center;gap:16px 26px;flex-wrap:wrap;position:relative;overflow:hidden}
.topbar::after{content:"";position:absolute;right:-60px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(217,166,46,.22),rgba(217,166,46,0) 70%);pointer-events:none}
.lockup{display:flex;align-items:center;gap:20px;flex:1 1 380px;min-width:0}
.lockup .logo{background:#fff;border-radius:16px;padding:8px 10px;display:grid;place-items:center;flex:none}
.lockup .logo img{width:84px;height:auto;display:block}
.lockup .sep{width:1px;align-self:stretch;background:rgba(255,255,255,.22)}
.wordmark{display:flex;flex-direction:column;gap:14px;min-width:0}
.wordmark .name{font-family:var(--display);font-size:clamp(48px,6vw,76px);line-height:.85;color:#FFF8EA;letter-spacing:-.01em}
.wordmark .name b{font-weight:400;color:var(--gold)}
.wordmark .tag{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.topbar .actions{position:relative;z-index:1;align-items:center;flex-wrap:wrap}
.topbar .btn{border-color:rgba(255,255,255,.55);color:#fff}
.topbar .btn:hover{background:#fff;color:var(--green)}
.topbar .btn.solid{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.topbar .live{color:#D3E2D8}
header.dayline{padding-bottom:14px}
header.dayline h1{flex:1 1 380px;min-width:0}
@media (max-width:720px){.lockup .logo img{width:60px}.lockup .sep{display:none}.topbar{padding:16px 18px}}

.who{font-size:14px;font-weight:600;color:#FFF8EA;padding:0 4px;white-space:nowrap}
.by{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:2px;text-decoration:none}
.cmd .by{color:var(--gold);font-size:12px;margin-top:3px}
.rappels .by{color:#BFD5C7}
