:root{--bg:#f6f7f9;--panel:#fff;--fg:#1d2430;--dim:#6b7383;--line:#dfe3ea;--accent:#1f4fbf;--pos:#137a3a;--neg:#b3261e;--danger:#c62828;--head:#eef1f6;--shadow:0 10px 40px #1018282e;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#11151c;--panel:#181e27;--fg:#e4e8ef;--dim:#8b94a5;--line:#2b3340;--accent:#7aa2ff;--pos:#4cc27a;--neg:#ff7a70;--danger:#e53935;--head:#1f2631;--shadow:0 10px 40px #00000080}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--font);margin:0;font-size:14px}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--panel);border:1px solid var(--line);border-radius:6px;width:100%;min-width:0;padding:6px 8px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.btn{background:var(--panel);border:1px solid var(--line);cursor:pointer;color:var(--fg);white-space:nowrap;border-radius:6px;padding:6px 12px;text-decoration:none}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn.small{padding:2px 8px;font-size:12px}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;min-height:48px;padding:0 16px;display:flex}.topbar .brand{letter-spacing:.02em;font-weight:600}.tabs{align-self:stretch;gap:4px;display:flex}.tabs a{color:var(--dim);border-bottom:2px solid #0000;align-items:center;padding:0 12px;text-decoration:none;display:flex}.tabs a.on{color:var(--fg);border-bottom-color:var(--accent)}.topbar .sp{flex:1}.topbar .who{color:var(--dim)}.version{color:var(--dim);white-space:nowrap;font-size:11px}.corner{justify-content:flex-end;padding:8px 16px;display:flex}.page{max-width:1400px;margin:0 auto;padding:20px 16px 48px}.bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.bar h1{margin:0;font-size:18px;font-weight:600}.bar .sp{flex:1}.tablewrap{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table.grid{border-collapse:collapse;width:100%}table.grid th,table.grid td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;padding:8px 12px}table.grid th{background:var(--head);color:var(--dim);font-size:12px;font-weight:500}table.grid td.n,table.grid th.n{text-align:right;font-variant-numeric:tabular-nums}table.grid tbody tr{cursor:pointer}table.grid tbody tr:hover{background:var(--head)}table.grid tfoot td{background:var(--head);font-weight:600}.pos{color:var(--pos)}.neg{color:var(--neg)}.muted{color:var(--dim)}.tag{color:var(--dim);border:1px solid var(--line);border-radius:4px;margin-left:6px;padding:0 4px;font-size:11px}.msg{border:1px solid var(--line);background:var(--panel);border-radius:6px;margin:8px 0;padding:8px 12px}.msg.err{border-color:var(--danger);color:var(--danger)}.empty{text-align:center;color:var(--dim);padding:32px}.login{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:380px;margin:10vh auto 0;padding:28px}.login h1{margin:0 0 4px;font-size:20px}.login form{gap:10px;margin:18px 0;display:grid}.login .or{text-align:center;color:var(--dim);margin:6px 0 12px}.login .sso{text-align:center;display:block}.overlay{z-index:10;background:#0a0e1473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;width:min(1100px,100%);max-height:calc(100vh - 32px);display:flex}.modal header{border-bottom:1px solid var(--line);padding:14px 18px;font-weight:600}.modal .body{flex:1;padding:16px 18px;overflow-y:auto}.modal footer{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 18px;display:flex}.modal footer .sp{flex:1}.fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px;display:grid}.fields label{color:var(--dim);gap:4px;font-size:12px;display:grid}.fields .w2{grid-column:span 2}.fields .w4{grid-column:1/-1}.radios{color:var(--fg);flex-wrap:wrap;align-items:center;gap:14px;font-size:14px;display:flex}.radios input{width:auto}.sub{margin-top:18px}.sub h3{margin:0 0 6px;font-size:13px;font-weight:600}.sub table{border-collapse:collapse;width:100%}.sub td,.sub th{text-align:left;color:var(--dim);padding:4px 6px;font-size:12px;font-weight:500}.sub td input{font-size:13px}.calc{background:var(--head);border-radius:6px;flex-wrap:wrap;gap:18px;margin-top:14px;padding:10px 12px;font-size:13px;display:flex}.calc b{font-variant-numeric:tabular-nums}.danger{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.danger label{align-items:flex-start;gap:8px;display:inline-flex}.danger input{flex-shrink:0;width:20px;height:20px;margin:0}.danger .go{background:var(--danger);color:#fff;border:1px solid var(--danger);cursor:pointer;border-radius:6px;padding:6px 14px;font-weight:600}.danger .go[disabled]{opacity:.45;cursor:not-allowed}@media (max-width:760px){.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.fields .w2{grid-column:1/-1}.topbar{gap:10px;padding:6px 12px}.tablewrap:has(>table.cards){background:0 0;border:0;overflow:visible}table.cards thead{display:none}table.cards,table.cards tbody,table.cards tfoot,table.cards tr{display:block}table.cards tr{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:6px 12px}table.cards tfoot tr{background:var(--head)}table.cards td{white-space:normal;text-align:right;justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;display:flex}table.cards td:before{content:attr(data-label);color:var(--dim);text-align:left;flex-shrink:0;font-size:12px;font-weight:400}table.cards td.titre{text-align:left;padding:6px 0 8px;font-weight:600;display:block}table.cards td.titre:before,table.cards td.vide{display:none}table.cards tr td:last-child{border-bottom:0}.sub thead{display:none}.sub table,.sub tbody,.sub tr,.sub td{display:block}.sub tr{border:1px solid var(--line);border-radius:6px;margin-bottom:8px;padding:6px 8px}.sub td{padding:3px 0}.sub td[data-label]:before{content:attr(data-label);margin-bottom:2px;display:block}.sub td:last-child{text-align:right}}
