/* EMCS-CI — feuille de style. Aucune ressource externe : fonctionne en intranet fermé. */
:root{
  --bg:#f5f6f3; --surface:#ffffff; --ink:#18231d; --muted:#5d6a62; --line:#dde2dc;
  --brand:#0b5d3b; --brand-ink:#ffffff; --accent:#d9731a;
  --ok:#1f7a4a; --warn:#b7791f; --crit:#b42318; --info:#2f5f8a;
  --ok-bg:#e3f2e9; --warn-bg:#fbf0dc; --crit-bg:#fbe4e1; --info-bg:#e4edf6;
  --h1:#e9efe7; --h2:#f6eccf; --h3:#f7d8b8; --h4:#f2b9ae;
  --sans:"Segoe UI","Public Sans",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"Cascadia Mono",Consolas,"IBM Plex Mono",ui-monospace,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1512; --surface:#18201b; --ink:#e7ece8; --muted:#9aa89f; --line:#2a352e;
  --brand:#2f9a6a; --brand-ink:#06110b; --accent:#f0954a;
  --ok:#5fc48d; --warn:#e3b05a; --crit:#f2877a; --info:#82b1dc;
  --ok-bg:#173325; --warn-bg:#3a2e14; --crit-bg:#41201c; --info-bg:#1a2b3c;
  --h1:#1f2d24; --h2:#3a3418; --h3:#4a3218; --h4:#55241f; color-scheme:dark}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5}
a{color:var(--brand)}
.wrap{max-width:1180px;margin:0 auto;padding-left:16px;padding-right:16px}
header.band{background:var(--brand);color:var(--brand-ink)}
header.band .wrap{padding-block:18px 0;display:grid;gap:12px}
.topline{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.ref{font-family:var(--mono);font-size:12px;letter-spacing:.04em;opacity:.85}
.who{font-size:13px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.who a,.who button{color:var(--brand-ink);opacity:.9;font:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.who .lvl{background:rgb(255 255 255 / .18);padding:2px 8px;border-radius:999px;font-weight:600;text-transform:capitalize}
h1{font-weight:800;font-size:clamp(20px,3.6vw,28px);margin:0;line-height:1.15;text-wrap:balance}
.sub{margin:0;opacity:.9;max-width:75ch;font-size:14px}
nav.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
nav.tabs button{all:unset;cursor:pointer;padding:10px 14px;font-weight:600;font-size:14px;color:var(--brand-ink);opacity:.75;border-radius:8px 8px 0 0;white-space:nowrap}
nav.tabs button[aria-selected="true"]{background:var(--bg);color:var(--ink);opacity:1}
nav.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
main .wrap{padding-block:22px 48px;display:grid;gap:22px}
section[role="tabpanel"]{display:grid;gap:22px}
main .wrap,section[role="tabpanel"]{grid-template-columns:minmax(0,1fr)}
h2{font-size:18px;font-weight:700;margin:0}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;gap:4px}
.kpi b{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi small{color:var(--muted);font-size:13px}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
@media (max-width:820px){.grid2{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px;display:grid;gap:14px;min-width:0;align-content:start}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.heat{display:grid;grid-template-columns:28px repeat(4,1fr);gap:4px;font-size:12px}
.heat .cell{aspect-ratio:1.6;border-radius:6px;display:grid;place-items:center;font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}
.heat .ax{display:grid;place-items:center;color:var(--muted);font-family:var(--mono)}
.c1{background:var(--h1)}.c2{background:var(--h2)}.c3{background:var(--h3)}.c4{background:var(--h4)}
.heat-cap{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}
.bars{display:grid;gap:10px}
.bar-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) 44px;gap:10px;align-items:center;font-size:13px}
.bar-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track{height:10px;background:var(--line);border-radius:5px;overflow:hidden;display:flex}
.track i{display:block;height:100%}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;font-size:12px}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{font:inherit;font-weight:600;font-size:14px;padding:9px 14px;border-radius:8px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);cursor:pointer;text-decoration:none;display:inline-block}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.danger{background:transparent;color:var(--crit);border-color:var(--crit)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn[disabled]{opacity:.6;cursor:wait}
select,input,textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
.toolbar select,.toolbar input{width:auto;min-width:0}
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:760px;font-size:13.5px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;background:var(--bg)}
tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}
tbody tr.click:hover td{background:var(--bg)}
td.code{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.p-ok{background:var(--ok-bg);color:var(--ok)}.p-warn{background:var(--warn-bg);color:var(--warn)}.p-crit{background:var(--crit-bg);color:var(--crit)}.p-info{background:var(--info-bg);color:var(--info)}.p-mute{background:var(--line);color:var(--muted)}
.score{font-family:var(--mono);font-variant-numeric:tabular-nums}
.empty{padding:28px 18px;text-align:center;color:var(--muted);display:grid;gap:10px;justify-items:center}
.empty strong{color:var(--ink);font-size:15px}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.member{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:grid;gap:6px;align-content:start}
.member .role{font-size:13px;color:var(--muted)}
.member .stats{display:flex;gap:8px;flex-wrap:wrap}
.meet{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;cursor:pointer}
.meet:focus-visible{outline:2px solid var(--accent)}
.meet .date{font-family:var(--mono);font-size:13px;color:var(--muted)}
.meet .date b{display:block;font-size:22px;color:var(--ink);font-family:var(--sans)}
.meet p{margin:4px 0 0;white-space:pre-wrap;font-size:14px}
.note{font-size:13px;color:var(--muted);margin:0}
.banner{background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}
.banner.err{background:var(--crit-bg);color:var(--crit)}
dialog{border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:0;width:min(580px,calc(100vw - 32px));max-height:calc(100vh - 48px)}
dialog::backdrop{background:rgb(0 0 0 / .45)}
dialog form{display:grid;gap:14px;padding:20px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
label{display:grid;gap:5px;font-size:13px;font-weight:600}
label.full{grid-column:1/-1}
.ferr{color:var(--crit);font-size:13px;font-weight:600;margin:0}
.actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.actions div{display:flex;gap:10px}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;z-index:20}
/* Page de connexion */
.login{min-height:100vh;display:grid;place-items:center;padding:16px}
.login .card{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:min(420px,100%);overflow:hidden}
.login .card header{background:var(--brand);color:var(--brand-ink);padding:20px 22px;display:grid;gap:6px}
.login form{display:grid;gap:14px;padding:22px}
@media (prefers-reduced-motion:no-preference){.track i{transition:width .4s ease}}
