.login{background:var(--ground);place-items:center;min-height:100vh;display:grid}.login form{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);flex-direction:column;gap:12px;width:300px;padding:24px;display:flex}.login h1{font-family:var(--cond);margin:0;font-size:22px;font-weight:600}.login .sub{color:var(--muted);margin:-10px 0 6px;font-size:12px}.login label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.login .erreur{color:var(--danger);margin:0;font-size:12px}.login button{margin-top:4px;padding:6px}.years{align-items:center;gap:2px;height:16px;display:flex}.years i{background:var(--ink);border-radius:1px;width:5px;height:16px;display:block}.years i[data-v="0"]{opacity:.07}.years i[data-v="1"]{opacity:.18}.years i[data-v="2"]{opacity:.34}.years i[data-v="3"]{opacity:.55}.years i[data-v="4"]{opacity:.82}:root{--ground:#e4e8ea;--surface:#fbfcfc;--sunken:#edf0f1;--ink:#14181b;--muted:#5c666d;--faint:#8b959b;--rule:#cdd5d9;--rule-soft:#dfe5e8;--accent:#0f6e6e;--accent-ink:#fff;--danger:#a32020;--ok:#3d7a54;--warn:#96682a;--sans:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--cond:"IBM Plex Sans Condensed", "IBM Plex Sans", ui-sans-serif, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--row:28px;--r:3px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#14191c;--surface:#1b2125;--sunken:#222a2e;--ink:#e4eaed;--muted:#97a3aa;--faint:#6c777e;--rule:#2c353a;--rule-soft:#242c31;--accent:#3fa8a2;--accent-ink:#0b1416;--danger:#d2635c;--ok:#6faf85;--warn:#c79b55}}*{box-sizing:border-box}body{background:var(--ground);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;margin:0;font-size:13px;line-height:1.45}button{font-family:var(--sans);border-radius:var(--r);border:1px solid var(--rule);background:var(--surface);color:var(--ink);cursor:pointer;padding:4px 10px;font-size:12px}button:hover:not(:disabled){background:var(--sunken)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:500}button.destroy{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, var(--rule))}button .k{font-family:var(--mono);color:var(--faint);margin-left:5px;font-size:10.5px}button.primary .k{color:color-mix(in srgb, var(--accent-ink) 65%, transparent)}input{font-family:var(--sans);border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);color:var(--ink);padding:5px 8px;font-size:13px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.num{font-variant-numeric:tabular-nums;text-align:right}.mono{font-family:var(--mono);font-size:12px}.spacer{flex:1}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{grid-template-rows:38px minmax(0,1fr) 26px;grid-template-columns:216px minmax(0,1fr) 340px;height:100vh;display:grid}.topbar{background:var(--ground);border-bottom:1px solid var(--rule);grid-column:1/-1;align-items:center;gap:12px;padding:0 12px;display:flex}.wordmark{font-family:var(--cond);font-size:15px;font-weight:600}.wordmark span{color:var(--muted);font-weight:500}.scan{color:var(--muted);align-items:center;gap:9px;font-size:12px;display:flex}.scan-track{background:var(--rule);border-radius:2px;width:132px;height:3px;overflow:hidden}.scan-fill{background:var(--accent);height:100%;transition:width .3s linear;display:block}.scan-count{font-family:var(--mono);color:var(--ink);font-size:11.5px}.scan-echec{color:var(--danger);font-size:12px}.side{background:var(--ground);border-right:1px solid var(--rule);flex-direction:column;padding:8px 0 12px;display:flex;overflow-y:auto}.side-label{text-transform:uppercase;letter-spacing:.09em;color:var(--faint);padding:10px 12px 4px;font-size:10.5px;font-weight:500}.side-row{height:24px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;padding:0 12px;font-size:13px;display:grid}.side-row>.name:first-child{grid-column:1/3}.side-row:hover{background:var(--sunken);color:var(--ink)}.side-row.on{color:var(--ink);background:var(--sunken);box-shadow:inset 2px 0 0 var(--accent);font-weight:500}.side-row .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-row .n{font-family:var(--mono);color:var(--faint);font-size:11.5px}.side-sep{background:var(--rule-soft);height:1px;margin:8px 12px}.side-vide{color:var(--faint);margin:0;padding:4px 12px;font-size:12px}.dot{border-radius:50%;flex:none;width:6px;height:6px}.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.main{background:var(--surface);flex-direction:column;min-width:0;display:flex;overflow:hidden}.main-head{border-bottom:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.main-head h1{font-family:var(--cond);margin:0;font-size:19px;font-weight:600}.main-head .sub{color:var(--muted);font-size:12px}.main-head .sub b{color:var(--ink);font-weight:500;font-family:var(--mono);font-size:11.5px}.bandeau-erreur{color:var(--danger);border-bottom:1px solid var(--rule-soft);margin:0;padding:6px 16px;font-size:12px}.scroller{flex:1;overflow:auto}table{border-collapse:collapse;width:100%}thead th{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);text-align:left;border-bottom:1px solid var(--rule);background:var(--surface);z-index:1;white-space:nowrap;padding:7px 10px;font-size:10.5px;font-weight:500;position:sticky;top:0}thead th.r{text-align:right}tbody tr{height:var(--row);border-bottom:1px solid var(--rule-soft);cursor:pointer}tbody tr:hover{background:var(--sunken)}tbody tr.sel{background:color-mix(in srgb, var(--accent) 9%, var(--surface))}tbody tr.sel td:first-child{box-shadow:inset 2px 0 0 var(--accent)}tbody tr.cursor td:first-child{box-shadow:inset 2px 0 0 var(--ink)}tbody td{vertical-align:middle;padding:0 10px}.pick{border:1px solid var(--rule);background:var(--surface);vertical-align:middle;border-radius:2px;width:12px;height:12px;display:inline-block}.pick.on{background:var(--accent);border-color:var(--accent);position:relative}.pick.on:after{content:"";border:solid var(--accent-ink);border-width:0 1.5px 1.5px 0;width:3px;height:6px;position:absolute;top:1px;left:3px;transform:rotate(42deg)}.who{align-items:baseline;gap:8px;min-width:0;display:flex}.who .dom{font-weight:500}.who .adr{font-family:var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.vol{color:var(--muted)}.last{color:var(--muted);font-size:12px}.last.old{color:var(--faint)}.vide{color:var(--muted);max-width:46ch;margin:0;padding:24px 16px;font-size:13px}.actions{background:var(--surface);border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 16px;display:flex}.actions .count{font-family:var(--mono);font-size:12px}.actions .count b{font-weight:500}.detail{background:var(--ground);border-left:1px solid var(--rule);padding:14px 14px 20px;overflow-y:auto}.detail h2{font-family:var(--mono);word-break:break-all;margin:0 0 2px;font-size:13px;font-weight:500}.detail .org{color:var(--muted);margin:0 0 14px;font-size:12px}.detail dl{margin:0}.detail-vide{color:var(--faint);font-size:12px;line-height:1.7}.stat{border-bottom:1px solid var(--rule-soft);grid-template-columns:1fr auto;gap:8px;padding:5px 0;display:grid}.stat dt{color:var(--muted);font-size:12px}.stat dd{font-family:var(--mono);margin:0;font-size:12px}.detail-sec{margin-top:16px}.detail-sec .side-label{padding-left:0;padding-right:0}.mini{grid-template-columns:1fr auto;gap:8px;padding:3px 0;font-size:12px;display:grid}.mini .s{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);overflow:hidden}.mini .d{font-family:var(--mono);color:var(--faint);font-size:11px}.stack{flex-direction:column;gap:6px;margin-top:14px;display:flex}.stack button{text-align:left;width:100%}.status{background:var(--ground);border-top:1px solid var(--rule);color:var(--faint);grid-column:1/-1;align-items:center;gap:14px;padding:0 12px;font-size:11.5px;display:flex;overflow:hidden}.status .kb,.detail-vide .kb{font-family:var(--mono);color:var(--muted);border:1px solid var(--rule);border-radius:var(--r);padding:0 4px}@media (width<=1100px){.app{grid-template-columns:190px minmax(0,1fr)}.detail{display:none}}.app.sans-detail{grid-template-columns:216px minmax(0,1fr)}.regle{border-bottom:1px solid var(--rule-soft);cursor:grab;grid-template-columns:28px minmax(0,1fr) 90px 72px;align-items:center;gap:10px;padding:8px 16px;display:grid}.regle:hover{background:var(--sunken)}.regle.off{opacity:.5}.regle-rang{color:var(--faint);text-align:right;font-size:11px}.regle-corps{min-width:0}.regle-titre{align-items:baseline;gap:10px;display:flex}.regle-titre .nom{font-weight:500}.regle-action{color:var(--muted);font-size:12px}.regle-conditions{flex-wrap:wrap;gap:10px;margin-top:2px;display:flex}.regle-conditions .cond{color:var(--muted);font-size:11.5px}.regle-conditions .alerte{color:var(--warn);font-size:11.5px}.regle-apercu{text-align:right;font-family:var(--mono);font-size:12px}.regle-apercu b{font-weight:500}.regle-etat{padding:2px 6px;font-size:11px}.faint{color:var(--faint)}.recap{border-bottom:1px solid var(--rule);gap:28px;padding:14px 16px;display:flex}.recap-case{flex-direction:column;gap:1px;display:flex}.recap-n{font-family:var(--cond);font-size:24px;font-weight:600;line-height:1}.recap-l{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:10.5px}tbody tr.annulee{color:var(--faint)}.boite{border-bottom:1px solid var(--rule-soft);padding:14px 16px}.boite-tete{align-items:center;gap:8px;display:flex}.boite-adresse{font-size:13px;font-weight:500}.boite-statut{color:var(--muted);font-size:12px}.boite-stats{gap:28px;margin:10px 0 0;display:flex}.boite-stats .stat{border:0;padding:0;display:block}.boite-stats dt{text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-size:10.5px}.boite-stats dd{font-family:var(--mono);margin:2px 0 0;font-size:13px}.boite-actions{gap:8px;margin-top:12px;display:flex}.confirme{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--rule));border-radius:var(--r);background:color-mix(in srgb, var(--danger) 5%, var(--surface));margin-top:12px;padding:10px 12px}.confirme p{max-width:62ch;margin:0 0 10px;font-size:12px}.confirme-actions{gap:8px;display:flex}.bouton-lien{border-radius:var(--r);border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);padding:4px 10px;font-size:12px;font-weight:500;text-decoration:none}.bouton-lien.secondaire{background:var(--surface);border-color:var(--rule);color:var(--ink);font-weight:400}
