/* SCORE LINK — charte La Clinique Du Lien
   navy #2A3A52 · crème #F9F6F1 · or #C5A97D · Cormorant Garamond + DM Sans */
:root{
  --bg:#F9F6F1; --surface:#FFFDF9; --ink:#2A3A52; --ink-2:#4A6088; --muted:#6F86A8;
  --line:#E6DDCC; --tint:#EAF0F6; --gold:#C5A97D; --gold-ink:#8C7148; --navy:#2A3A52; --on-navy:#F9F6F1;
  --b1:#B5473A; --b2:#D2833A; --b3:#C9A23A; --b4:#5E9A6B; --b5:#3E6FA3; --none:#C9CFD8;
  --shadow:0 1px 2px rgba(42,58,82,.10), 0 6px 18px rgba(42,58,82,.08);
  --serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:"DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#161E2B; --surface:#1F2939; --ink:#EEF2F7; --ink-2:#BCC8DA; --muted:#8C9DB6;
    --line:#2F3C52; --tint:#25334A; --gold-ink:#D9BF93; --navy:#0F1622; --on-navy:#F1EADF; --none:#4A566A;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 6px 18px rgba(0,0,0,.25);
  }
}
:root[data-theme="dark"]{
  --bg:#161E2B; --surface:#1F2939; --ink:#EEF2F7; --ink-2:#BCC8DA; --muted:#8C9DB6;
  --line:#2F3C52; --tint:#25334A; --gold-ink:#D9BF93; --navy:#0F1622; --on-navy:#F1EADF; --none:#4A566A;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;
  padding-bottom:env(safe-area-inset-bottom,0px)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--ink-2)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
img{max-width:100%}
.hidden{display:none!important}
.muted{color:var(--muted)} .small{font-size:.85rem}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.15;margin:0}
h1{font-size:2.1rem}
h2{font-size:1.55rem;padding-bottom:.3rem;border-bottom:1px solid var(--gold);margin:2rem 0 1rem}
h3{font-size:1.25rem}
.lede{color:var(--ink-2);max-width:62ch;margin:.5rem 0 0}
p{max-width:70ch}

/* Marque */
.wm{font-family:var(--serif);font-weight:700;font-size:2.6rem;letter-spacing:.01em;display:inline-flex;align-items:center;color:var(--ink);line-height:1}
.wm-line{display:inline-block;width:1.6rem;height:1.5px;background:var(--gold);margin:0 .45rem}
.wm-s{font-size:1.35rem;color:inherit}
.wm-s .wm-line{width:1.1rem;margin:0 .35rem}

/* Barre */
.bar{position:sticky;top:0;z-index:20;background:var(--navy);color:var(--on-navy);border-bottom:2px solid var(--gold);padding-top:env(safe-area-inset-top,0px)}
.bar-in{max-width:1000px;margin:0 auto;padding:.6rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:.6rem;color:inherit;text-decoration:none}
.by{font-size:.75rem;opacity:.7;white-space:nowrap}
.nav{display:flex;gap:.25rem;flex:1}
.nav-a{color:var(--on-navy);opacity:.75;text-decoration:none;padding:.35rem .6rem;border-radius:4px;font-size:.92rem}
.nav-a:hover{opacity:1}
.nav-a[aria-current="page"]{opacity:1;box-shadow:inset 0 -2px 0 var(--gold)}
.save{font-size:.78rem;opacity:.8;white-space:nowrap}
.save.err{color:#F2B8A8;opacity:1}
.user{background:none;border:0;color:var(--on-navy);text-align:right;font-size:.85rem;line-height:1.2;padding:.2rem 0}
.user span{display:block;font-size:.72rem;opacity:.7}
.bar.pub .bar-in{justify-content:flex-start}
.demo{background:var(--tint);color:var(--ink-2);font-size:.82rem;text-align:center;padding:.4rem 1rem;border-bottom:1px solid var(--line)}
.link{background:none;border:0;color:var(--ink);text-decoration:underline;padding:0;font-size:inherit}

main{max-width:1000px;margin:0 auto;padding:1.25rem 1rem 6rem}
main.narrow{max-width:720px}
.center{min-height:60vh;display:grid;place-items:center}
.spin{width:28px;height:28px;border:3px solid var(--tint);border-top-color:var(--gold);border-radius:50%;animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:3s}}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border-radius:5px;padding:.6rem 1rem;border:1px solid var(--line);background:var(--surface);font-weight:500;font-size:.95rem;text-decoration:none;color:var(--ink);min-height:44px}
.btn:hover{border-color:var(--gold)}
.btn.primary{background:var(--navy);color:var(--on-navy);border-color:var(--navy)}
.btn.primary:hover{border-color:var(--gold)}
.btn.ghost{background:none;border-color:transparent;color:var(--ink-2)}
.btn.danger{color:var(--b1)}
.btn.sm{padding:.35rem .7rem;font-size:.85rem;min-height:34px}
.btn.wide{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.stack{display:grid;gap:.6rem}
select.inline{width:auto;min-width:12rem}

/* Connexion */
.login{min-height:100vh;display:grid;place-items:center;padding:1.5rem 1rem;align-content:center;gap:1rem}
.login-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;padding:2rem 1.5rem;box-shadow:var(--shadow);display:grid;gap:1rem}
.login-card h2{border:0;margin:0;padding:0}
.foot{text-align:center}

/* Accueil */
.hero{display:grid;gap:1.25rem;align-items:end;grid-template-columns:1fr auto;margin-bottom:1rem}
@media (max-width:620px){.hero{grid-template-columns:1fr}}
.flash-hero{margin-bottom:1.25rem}
.list{display:grid;gap:.6rem}
.row-card{display:flex;gap:.9rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.8rem 1rem;color:var(--ink);text-decoration:none;box-shadow:var(--shadow);flex-wrap:wrap}
.row-card>div:not(.ring):not(.row){flex:1;min-width:180px}
.row-card:hover{border-color:var(--gold)}
.row-card.static{box-shadow:none}
.row-card.static:hover{border-color:var(--line)}
.row-card .t{font-family:var(--serif);font-size:1.25rem;font-weight:600;line-height:1.2}
.row-card .m{font-size:.85rem;color:var(--muted)}
.go{color:var(--gold-ink);font-size:1.4rem;line-height:1}
.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.35rem}
.chip{display:inline-flex;align-items:center;font-size:.75rem;font-weight:600;padding:.12rem .55rem;border-radius:999px;background:var(--tint);color:var(--ink-2);white-space:nowrap;vertical-align:middle}
.st-cours{background:var(--tint)}
.st-soumis{background:#F6E7C9;color:#7A5A1E}
.st-analyse{background:#DCEBDF;color:#2F6B3E}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .st-soumis{background:#4A3B1F;color:#F1D9A6} :root:not([data-theme="light"]) .st-analyse{background:#24402C;color:#BFE3C8} }
.empty{border:1px dashed var(--line);border-radius:6px;padding:2rem 1.25rem;text-align:center;color:var(--ink-2);display:grid;gap:.75rem;justify-items:center}
.empty h2{border:0;margin:0}
.done{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--b4);border-radius:4px;padding:1.25rem 1.25rem;margin-top:1rem}
.done h2{border:0;margin:0 0 .4rem}
.done.big{border-left:0;border-top:3px solid var(--gold);padding:2rem 1.5rem;max-width:720px;margin:2rem auto}
.done.big h2{border-bottom:1px solid var(--gold);margin:1.5rem 0 .75rem}

/* Onglets */
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);margin:1.25rem 0 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tab{border-bottom:2px solid transparent;padding:.7rem .9rem;color:var(--ink-2);font-weight:500;white-space:nowrap;text-decoration:none}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--gold)}
.backlink{display:inline-block;color:var(--ink-2);font-size:.9rem;margin-bottom:.75rem;text-decoration:none}
.backlink:hover{color:var(--ink)}

/* Étapes Flash */
.steps{list-style:none;padding:0;margin:0 0 .5rem;display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.steps a{display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem;border-radius:5px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:.88rem;font-weight:500;min-height:44px}
.steps a span{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--tint);font-size:.78rem;flex:none}
.steps a[aria-current="step"]{border-color:var(--gold);color:var(--ink)}
.steps a[aria-current="step"] span{background:var(--navy);color:var(--on-navy)}
.steps a.past span{background:var(--gold);color:#fff}
@media (max-width:620px){.steps{grid-template-columns:repeat(2,1fr)}}
.wizard-nav{justify-content:space-between;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line)}

/* Bandeau scores */
.scorehead{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem 1.25rem;box-shadow:var(--shadow)}
.scorehead h1{font-size:1.8rem}
.scorehead .who{flex:1;min-width:200px}
.scorehead .who p{margin:.3rem 0 0}
.flash-note{color:var(--gold-ink)}
.rings{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}
.ring{display:grid;justify-items:center;gap:.2rem;text-align:center}
.ring svg{display:block}
.ring .lab{font-size:.78rem;color:var(--ink-2);line-height:1.2}
.ring .band{font-size:.74rem;font-weight:600}
.ring-num{font-family:var(--serif);font-weight:700}
@media (prefers-reduced-motion:no-preference){.ring circle.arc{transition:stroke-dasharray .5s ease}}

/* Formulaires */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}
@media (max-width:620px){.grid2{grid-template-columns:1fr}}
.field{display:grid;gap:.3rem;align-content:start}
.field.full{grid-column:1/-1}
.field label,.flabel{font-size:.85rem;font-weight:500;color:var(--ink-2)}
input[type=text],input[type=email],input[type=number],input[type=date],select,textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:.6rem .7rem;min-height:44px}
textarea{min-height:5.5rem;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(197,169,125,.25)}
input:disabled,select:disabled,textarea:disabled{background:var(--bg);color:var(--ink-2)}
.checks{display:flex;flex-wrap:wrap;gap:.4rem}
.chip-c{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;font-size:.88rem;background:var(--surface);cursor:pointer;min-height:38px}
.chip-c input{accent-color:var(--navy)}
.info{background:var(--tint);border-left:3px solid var(--gold);padding:.75rem 1rem;border-radius:2px;font-size:.92rem;color:var(--ink-2);margin:1rem 0;max-width:none}
.invite{display:grid;grid-template-columns:1fr 1fr auto;gap:.75rem;align-items:end;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1rem;margin-top:.75rem}
#invite-team{grid-template-columns:1fr 1fr 1fr auto}
@media (max-width:760px){.invite,#invite-team{grid-template-columns:1fr}}
.linkbox{display:flex;gap:.6rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.5rem .6rem .5rem .9rem;flex-wrap:wrap}
.linkbox code{flex:1;min-width:0;font-size:.82rem;overflow-wrap:anywhere;color:var(--ink-2)}

/* Axes et critères */
.axis{background:var(--surface);border:1px solid var(--line);border-radius:6px;margin:.75rem 0;box-shadow:var(--shadow);overflow:hidden}
.axis>summary{list-style:none;display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center;padding:.9rem 1rem;cursor:pointer}
.axis>summary::-webkit-details-marker{display:none}
.axis>summary h3{font-size:1.3rem}
.axis .sub{font-size:.82rem;color:var(--muted)}
.axis[open]>summary{border-bottom:1px solid var(--line)}
.pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:var(--tint);white-space:nowrap}
.pill i{width:.6rem;height:.6rem;border-radius:50%;display:inline-block;background:var(--none)}
.group-t{font-family:var(--serif);font-size:1.1rem;font-weight:600;padding:.8rem 1rem .2rem;color:var(--gold-ink)}
.crit{display:grid;gap:.5rem;padding:.8rem 1rem;border-top:1px solid var(--line)}
.group-t+.crit{border-top:0}
.crit-h{display:flex;gap:.5rem;align-items:flex-start;justify-content:space-between}
.crit-t{font-weight:500}
.crit-t .w{font-size:.72rem;color:var(--gold-ink);font-weight:600;margin-left:.35rem;white-space:nowrap}
.crit-a{font-size:.85rem;color:var(--muted);margin-top:.15rem}
.crit.answered{background:linear-gradient(90deg,rgba(197,169,125,.10),transparent 30%)}
.icon-btn{background:none;border:1px solid transparent;border-radius:4px;padding:.2rem .4rem;color:var(--muted);font-size:.85rem;white-space:nowrap}
.icon-btn:hover{border-color:var(--line)}
.icon-btn.has{color:var(--gold-ink)}
.seg{display:flex;flex-wrap:wrap;gap:.3rem}
.seg button{border:1px solid var(--line);background:var(--bg);border-radius:4px;padding:.45rem .75rem;font-size:.86rem;font-weight:500;min-width:3.2rem;min-height:40px;color:var(--ink-2)}
.seg button:disabled{cursor:default}
.seg button[aria-pressed="true"]{color:#fff;border-color:transparent}
.seg button[data-k="v"][aria-pressed="true"],.seg button[data-k="f"][aria-pressed="true"]{background:var(--b4)}
.seg button[data-k="j"][aria-pressed="true"],.seg button[data-k="ec"][aria-pressed="true"]{background:var(--b3)}
.seg button[data-k="p"][aria-pressed="true"]{background:var(--b5)}
.seg button[data-k="r"][aria-pressed="true"],.seg button[data-k="pf"][aria-pressed="true"]{background:var(--b1)}
.seg button[data-k="nc"][aria-pressed="true"],.seg button[data-k="nsp"][aria-pressed="true"]{background:var(--muted)}
.seg button.st[aria-pressed="true"]{background:var(--navy)}
.opts{display:flex;flex-wrap:wrap;gap:.35rem}
.opts button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:.45rem .9rem;font-size:.88rem;min-height:40px;color:var(--ink-2);text-align:left}
.opts button[aria-checked="true"]{background:var(--navy);color:var(--on-navy);border-color:var(--navy)}
.opts button:disabled{cursor:default}
.crit textarea{min-height:3.5rem;font-size:.9rem}
.flag{font-size:.78rem;color:var(--b1);font-weight:600}

/* Photos */
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}
.photo{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:grid}
.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--tint)}
.photo .pc{padding:.45rem;display:grid;gap:.35rem}
.photo input{font-size:.82rem;padding:.35rem .5rem;min-height:36px}
.upload{display:grid;place-items:center;border:1px dashed var(--gold);border-radius:6px;min-height:150px;color:var(--gold-ink);text-align:center;padding:1rem;cursor:pointer;background:var(--surface)}
.upload input{position:absolute;opacity:0;width:1px;height:1px}
.upload:focus-within{outline:2px solid var(--gold);outline-offset:2px}

/* Résultats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:.75rem 0}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:.8rem 1rem}
.stat b{display:block;font-family:var(--serif);font-size:1.9rem;line-height:1.1}
.stat span{font-size:.82rem;color:var(--ink-2)}
.bars{display:grid;gap:.7rem}
.barrow{display:grid;grid-template-columns:minmax(150px,220px) 1fr 3rem;gap:.75rem;align-items:center}
@media (max-width:620px){.barrow{grid-template-columns:1fr 3rem}.barrow .track{grid-column:1/-1;grid-row:2}}
.track{height:.7rem;background:var(--tint);border-radius:999px;overflow:hidden}
.track i{display:block;height:100%;border-radius:999px}
.barrow .v{font-family:var(--serif);font-weight:700;font-size:1.2rem;text-align:right}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
table.heat{border-collapse:separate;border-spacing:3px;width:100%;min-width:620px;font-size:.88rem}
.heat th{font-weight:500;color:var(--ink-2);text-align:left;padding:.35rem .4rem;vertical-align:bottom}
.heat td{padding:.5rem .4rem;text-align:center;border-radius:3px;font-weight:600}
.heat td.name{text-align:left;font-weight:500;background:none}
table.cmp{width:100%;border-collapse:collapse;font-size:.9rem;min-width:520px}
.cmp th{text-align:left;font-weight:500;color:var(--ink-2);padding:.5rem;border-bottom:1px solid var(--gold)}
.cmp td{padding:.55rem .5rem;border-bottom:1px solid var(--line);vertical-align:middle}
.cmp tr.gap td{background:rgba(210,131,58,.10)}
.legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.82rem;color:var(--ink-2);margin-top:.75rem}
.legend span{display:inline-flex;align-items:center;gap:.35rem}
.legend i{width:.75rem;height:.75rem;border-radius:2px;display:inline-block}
.alerts{display:grid;gap:.5rem;margin-top:.75rem}
.alert{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--b1);border-radius:3px;padding:.6rem .9rem;font-size:.92rem}
.alert.good{border-left-color:var(--b5)}

/* Questionnaire salariés */
.sq{border:1px solid var(--line);border-radius:6px;background:var(--surface);margin:.75rem 0;padding:.9rem 1rem}
.sq legend{font-weight:500;padding:0;float:left;width:100%;margin-bottom:.6rem}
.sq .opts{clear:both}
.sq .opts{margin-top:.5rem}
.sq label{display:inline-flex}
.sq input{position:absolute;opacity:0;width:1px;height:1px}
.sq span{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:.45rem .9rem;font-size:.88rem;min-height:40px;display:inline-flex;align-items:center;color:var(--ink-2);cursor:pointer}
.sq input:checked+span{background:var(--navy);color:var(--on-navy);border-color:var(--navy)}
.sq input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
#sal-form>.field{margin:1rem 0}

.toast{position:fixed;left:50%;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--navy);color:var(--on-navy);padding:.6rem 1rem;border-radius:5px;font-size:.9rem;box-shadow:var(--shadow);z-index:50;max-width:90vw}
@media print{.bar,.tabs,.demo,.btn{display:none!important}}
.modal{position:fixed;inset:0;z-index:60;background:rgba(15,22,34,.45);display:grid;place-items:center;padding:1rem}
.modal-card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:6px;padding:1.25rem;max-width:420px;width:100%;box-shadow:var(--shadow);display:grid;gap:1rem}
.modal-card p{margin:0}
.modal-card .row{justify-content:flex-end}
.btn.danger-fill{background:var(--b1);border-color:var(--b1);color:#fff}
