/* Thème sombre « Neemo » — valeurs dans neemo-tokens.json. Chargé après refined.css. */
:root{--bg:#110d22;--surface:#1a1533;--surface-2:#221c44;--ink:#f4f2ff;--muted:#8d86ad;--line:#2c2655;--primary:#7b5cff;--primary-ink:#fff;--yellow:#f7cf3d;--green:#2fcf8a;--orange:#ff7a45;--pink:#ff5fa2;--cream:var(--surface);--paper:var(--bg);--sage:var(--green)}
body{background:var(--bg);color:var(--ink);font-family:Inter,Manrope,Arial,sans-serif}
h1,h2,h3,.brand,.dialog-top{color:var(--ink);font-family:Inter,Manrope,Arial,sans-serif;font-weight:700}
aside{background:var(--surface);border-right:1px solid var(--line)}
main{background:var(--bg)}
.school{background:var(--surface-2);border:0;border-radius:24px}
.brand-mark{background:var(--primary);color:#fff;border-radius:16px}
.dot{background:var(--green)}
button,.primary,.import,.button{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:999px;font-weight:600;transition:background .15s,transform .15s}
button:hover{background:#2b2456;transform:translateY(-1px)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.primary,.button.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}
.primary:hover{background:#6a49ef}
nav button{color:var(--ink);background:transparent;border:0}
nav button.active{background:var(--primary);color:#fff}
input,select,textarea{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);border-radius:14px}
input::placeholder,textarea::placeholder{color:var(--muted)}
.stat,.card,.list-row,.panel,.graphic-card,.family-summary,.location-column,.login-card,dialog,.scan-box,.summary,.kv div,.camera,.location-item,.student,.repair-summary,.note-box,.presentation-banner{background:var(--surface);border-color:var(--line);color:var(--ink)}
dialog{border:1px solid var(--line);box-shadow:0 30px 100px #000a}
dialog::backdrop{background:#05030ccc}
.card{border-radius:24px}
.art{background:var(--surface-2)!important}
.card-info small,.eyebrow,.hint,.stat span,.stat em,.code,.serial-caption,footer,.graphic-number small,.availability-body p,.family-summary p,th,td,.timeline small,.list-row p{color:var(--muted)}
.card h3,.list-row h3,.location-column h2,.family-summary h2,.graphic-title h2{color:var(--ink)}
.stat strong,.graphic-number,.ring-chart>strong{color:var(--ink)}
.stat:nth-child(1){background:var(--surface)}
.stat:nth-child(2){background:var(--surface);color:var(--green)}
.stat:nth-child(3){background:var(--surface);color:var(--orange)}
.stat:nth-child(4){background:var(--surface);color:var(--primary)}
.stat-icon,.icon-bubble,.graphic-pill{background:rgba(255,255,255,.07);border-color:transparent;color:var(--ink)}
.tag{background:var(--surface-2);color:var(--ink);border:0;font-weight:600}
.tag.available{background:rgba(47,207,138,.16);color:var(--green)}
.tag.repair{background:rgba(255,122,69,.16);color:var(--orange)}
.tag.route,.tag.transit{background:rgba(123,92,255,.2);color:#b9a8ff}
.tag.loan{background:rgba(255,95,162,.16);color:var(--pink)}
.tag.late{background:var(--yellow);color:#1a1533}
.tag.archived{background:var(--surface-2);color:var(--muted)}
.available{color:var(--green)}
.graphic-card.availability-chart,.availability-chart{background:var(--surface)}
.distribution-chart{background:var(--surface)}
.availability-body button,.bar-column:hover{background:var(--primary);color:#fff;border:0}
.bar-track{background:rgba(255,255,255,.06)}
.bar-fill.available,.bar-fill.route,.bar-fill.transit{background:var(--primary);color:#fff}
.bar-fill.repair{background:var(--yellow);color:#1a1533}
.bar-fill.loan{background:var(--green);color:#0b0a18}
.ring-chart circle:first-child{stroke:var(--surface-2)}
.ring-chart circle:nth-child(2){stroke:var(--yellow)}
.family-count.total{background:var(--surface-2);color:var(--ink)}
.family-count:disabled{background:transparent;color:#4a4470}
.family-count[aria-pressed=true]{outline:2px solid var(--primary)}
table{color:var(--ink)}
th,td{border-bottom:1px solid var(--line)}
.location-column{background:var(--surface)}
.location-column h2 span{background:var(--surface-2);color:var(--ink)}
.location-item strong{color:var(--ink)}
.location-empty{background:var(--surface-2);color:var(--muted)}
.steps li{background:var(--surface-2);color:var(--muted)}
.steps li.on{background:var(--primary);color:#fff}
.steps li.done{background:rgba(47,207,138,.16);color:var(--green)}
.student{background:var(--surface-2)}
.student.warn,.banner{background:rgba(255,95,162,.14);color:var(--pink)}
.repair-summary{background:rgba(255,122,69,.12);color:var(--ink)}
.note-box{background:var(--surface-2);color:var(--ink)}
.form-error{color:var(--pink)}
.scan-status.bad{color:var(--pink)}
.scan-status.ok{color:var(--green)}
.scan-box{background:var(--surface-2)}
.timeline{border-color:var(--primary)}
.toolbar input,.toolbar select{background:var(--surface-2)}
#toast{background:var(--primary);color:#fff;border-radius:999px}
.presentation-banner a{color:var(--ink)}
.stock-graphics{gap:18px}
.label{background:#fff;color:#000}

/* Bloques heredés de l'ancien style pastel : fond clair → texte clair illisible. */
.kv div,.summary,.summary dd,.summary dt,.repair-summary,.student,.note-box{background:var(--surface-2)!important;color:var(--ink)!important}
.kv span,.summary dt{color:var(--muted)!important}
.family-count.available{background:rgba(47,207,138,.16)!important;color:var(--green)!important}
.family-count.loan{background:rgba(255,95,162,.16)!important;color:var(--pink)!important}
.family-count.repair{background:rgba(255,122,69,.16)!important;color:var(--orange)!important}
.family-count.route{background:rgba(123,92,255,.2)!important;color:#b9a8ff!important}
.family-count:disabled{background:transparent!important;color:var(--muted)!important}
.graphic-pill{color:var(--ink)!important}
