/* ==========================================================================
   Liste Chaude — design system (aligné sur la maquette validée)
   Surfaces calmes et claires ; la COULEUR est portée par la température.
   Police système = rendu natif iPhone. Un seul élément fort : le hero du jour.
   ========================================================================== */

:root{
    --bg:#FAF8F4; --surface:#FFFFFF; --raise:#FFFFFF;
    --ink:#1B1710; --muted:#847C6E; --faint:#B4AC9C; --line:#ECE8E0;

    --t-chaud:#E8420C;  --t-chaud-bg:#FCE9E0;
    --t-actif:#1E9C55;  --t-actif-bg:#E3F4E9;
    --t-entret:#CF9200; --t-entret-bg:#FAF0D4;
    --t-react:#E5670F;  --t-react-bg:#FBEAD9;
    --t-faible:#2C71D4; --t-faible-bg:#E4EDFB;

    --r-l:26px; --r-m:18px; --r-s:13px;
    --sh:0 1px 2px rgba(40,30,15,.05), 0 10px 30px rgba(40,30,15,.07);
    --sh-hero:0 2px 8px rgba(40,30,15,.06), 0 22px 50px rgba(40,30,15,.11);
    --nav:70px;
}
@media (prefers-color-scheme:dark){
    :root{
        --bg:#15120D; --surface:#211D16; --raise:#262117;
        --ink:#F4F0E7; --muted:#A69C8B; --faint:#6E665A; --line:#332C22;
        --t-chaud-bg:#3A1408; --t-actif-bg:#0E2C1A; --t-entret-bg:#312503;
        --t-react-bg:#331808; --t-faible-bg:#0E1F37;
        --sh:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.45);
        --sh-hero:0 2px 8px rgba(0,0,0,.5),0 22px 50px rgba(0,0,0,.6);
    }
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;
    background:var(--bg); color:var(--ink); line-height:1.45; font-size:16px;
    -webkit-font-smoothing:antialiased;
    padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom))
}
.page{padding:calc(env(safe-area-inset-top) + 22px) 18px 24px;max-width:640px;margin:0 auto}
a{color:inherit}

/* En-tête */
.greet{font-size:15px;color:var(--muted)}
.date{font-size:30px;font-weight:800;letter-spacing:-.03em;margin-top:1px;text-transform:capitalize}

/* Stats */
.stats{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}
.stat{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:13.5px;font-weight:500;box-shadow:var(--sh)}
.stat b{font-weight:700}
.stat.warn{background:var(--t-entret-bg);border-color:transparent;color:var(--t-entret)}

/* Libellé de section */
.lbl{font-size:12.5px;font-weight:600;color:var(--faint);margin:30px 4px 12px}

/* HERO — contact prioritaire */
.hero{position:relative;background:var(--raise);border-radius:var(--r-l);box-shadow:var(--sh-hero);padding:22px;overflow:hidden}
.hero .wash{position:absolute;inset:0;opacity:.5;z-index:0}
.hero>*{position:relative;z-index:1}
.hero .row1{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.hero .nm{font-size:23px;font-weight:800;letter-spacing:-.02em}
.hero .nm a{text-decoration:none}
.hero .sub{font-size:14px;color:var(--muted);margin-top:1px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:6px 11px;border-radius:999px;white-space:nowrap}
.hero .why{margin:16px 0 2px;display:grid;gap:7px}
.why-item{display:flex;gap:9px;font-size:14.5px}
.why-item .dot{flex:none;width:6px;height:6px;border-radius:50%;margin-top:8px}
.hero .cta{display:flex;gap:10px;margin-top:18px;align-items:center}

/* Boutons */
.btn{appearance:none;border:0;font:inherit;font-weight:600;border-radius:999px;padding:14px 22px;cursor:pointer;text-decoration:none;text-align:center;transition:transform .12s}
.btn:active{transform:scale(.97)}
.btn-p{background:var(--ink);color:var(--bg);flex:1}
.btn-t{background:transparent;color:var(--muted);padding:14px 8px}
.btn-ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn-block{width:100%}

/* Liste compacte */
.item{display:flex;align-items:center;gap:13px;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--sh);padding:13px 14px;margin-bottom:10px}
.av{flex:none;width:44px;height:44px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px}
.av.dash{background:var(--bg);color:var(--faint);border:1px dashed var(--line)}
.txt{flex:1;min-width:0}
.txt .n{font-size:16px;font-weight:700;letter-spacing:-.01em}
.txt .n a{text-decoration:none}
.txt .r{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tdot{flex:none;width:9px;height:9px;border-radius:50%}
.go{flex:none;width:42px;height:42px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:18px;text-decoration:none;border:1px solid var(--line)}

/* Rattrapage */
.recap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:18px;margin-top:20px;box-shadow:var(--sh)}
.recap h2{font-size:16px;margin-bottom:2px}
.recap p{font-size:14px;color:var(--muted);margin-bottom:12px}
.recap .line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.recap .line span{font-size:15px;font-weight:500}
.recap .yn{display:flex;gap:8px}
.recap .yn .btn{padding:9px 15px;font-size:14px}

/* Vide */
.empty{text-align:center;padding:56px 24px;color:var(--muted)}
.empty .big{font-size:42px;margin-bottom:12px}
.empty h2{color:var(--ink);font-size:19px;margin-bottom:6px}

/* Navigation basse + bouton squircle */
.nav{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav) + env(safe-area-inset-bottom));padding:0 6px env(safe-area-inset-bottom);
    background:color-mix(in srgb,var(--surface) 85%,transparent);backdrop-filter:saturate(180%) blur(22px);-webkit-backdrop-filter:saturate(180%) blur(22px);
    border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-around;max-width:640px;margin:0 auto}
.nav a{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--faint);text-decoration:none;font-size:10.5px;font-weight:600;flex:1}
.nav a.on{color:var(--ink)}
.nav .i{font-size:21px;line-height:1}
.fab{flex:none;width:54px;height:54px;border-radius:18px;background:var(--ink);color:var(--bg);
    display:flex;align-items:center;justify-content:center;transform:translateY(-12px);
    box-shadow:0 8px 22px rgba(40,30,15,.30);border:4px solid var(--bg)}
.fab svg{width:22px;height:22px}

/* ── Fiche contact ── */
.profile{text-align:center;padding:6px 0 18px}
.profile .avatar{width:76px;height:76px;border-radius:26px;background:var(--surface);box-shadow:var(--sh);display:inline-flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:var(--muted)}
.profile .name{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-top:12px}
.profile .meta{color:var(--muted);font-size:15px;margin-top:2px}

.gauges{display:flex;gap:12px;margin:6px 0 18px}
.gauge{flex:1;background:var(--surface);border-radius:var(--r-m);padding:16px;text-align:center;box-shadow:var(--sh)}
.gauge .val{font-size:26px;font-weight:800;letter-spacing:-.02em}
.gauge .lbl2{font-size:12.5px;color:var(--muted);margin-top:2px}

.card{background:var(--surface);border-radius:var(--r-m);box-shadow:var(--sh);padding:6px 18px;margin-bottom:16px}
.card.pad{padding:18px}
.row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line);font-size:15px}
.row:first-child{border-top:0}
.row .k{color:var(--muted)}
.row .v{font-weight:500;text-align:right}
.row .v a{color:var(--t-faible);text-decoration:none}

.channels{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 18px}
.channels a{flex:1;min-width:70px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);padding:12px 8px;text-decoration:none;font-size:13px;font-weight:500;box-shadow:var(--sh)}
.channels a .ico{display:block;font-size:20px;margin-bottom:4px}

.timeline .tl{padding:14px 0;border-top:1px solid var(--line);font-size:14.5px}
.timeline .tl:first-child{border-top:0}
.timeline .when{color:var(--muted);font-size:13px;margin-top:2px}

/* ── Formulaires / connexion ── */
.auth{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:32px 24px;max-width:420px;margin:0 auto}
.brand{font-size:30px;font-weight:800;letter-spacing:-.03em;margin-bottom:4px}
.tagline{color:var(--muted);margin-bottom:32px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.field input,.field select{width:100%;font:inherit;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);color:var(--ink)}
.field input:focus,.field select:focus{outline:2px solid var(--ink);outline-offset:1px}
.error{color:var(--t-chaud);font-size:14px;margin-bottom:14px}
.flash{background:var(--t-actif-bg);color:var(--t-actif);border-radius:var(--r-s);padding:12px 16px;margin:16px 0;font-size:14px;font-weight:500}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
