:root{--bg:#f5f4f0;--surface:#fff;--border:#e2e0d8;--text:#1a1a18;--muted:#6b6960;--hint:#a8a69e;--accent:#2d5a3d;--accent-l:#e8f2eb;--dev:#1a4a7a;--dev-bg:#e8f0fa;--act:#5a1a7a;--act-bg:#f2e8fa;--sous:#7a4a1a;--sous-bg:#faf0e8;--danger:#7a1a1a;--danger-bg:#fae8e8;--warn:#6b4c00;--warn-bg:#fdf3d8;--r:10px;--sh:0 1px 3px #0000000f,0 1px 2px #0000000a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:DM Sans,sans-serif;font-size:15px;line-height:1.5}.layout{grid-template-columns:230px 1fr;min-height:100vh;display:grid}.main{height:100vh;padding:2rem 2.5rem;overflow-y:auto}.ph{margin-bottom:2rem}.pt{font-size:22px;font-weight:600}.ps{color:var(--muted);margin-top:4px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:1.25rem;padding:1.5rem}.ct{align-items:center;gap:8px;margin-bottom:1.25rem;font-size:14px;font-weight:600;display:flex}.fg{flex-direction:column;gap:6px;display:flex}.fg label{color:var(--muted);font-size:13px;font-weight:500}.fg select,.fg input{border:1px solid var(--border);background:var(--bg);height:40px;color:var(--text);border-radius:8px;outline:none;width:100%;padding:0 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.fg select:focus,.fg input:focus{border-color:var(--accent)}.g2{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.btn{border:1px solid var(--border);background:var(--surface);height:40px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-p{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-p:hover{color:#fff;background:#1e3d28;border-color:#1e3d28}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-d{color:var(--danger);border-color:#e8c0c0}.btn-d:hover{background:var(--danger-bg);border-color:#e8c0c0}.badge{letter-spacing:.03em;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.b-dev{background:var(--dev-bg);color:var(--dev)}.b-act{background:var(--act-bg);color:var(--act)}.b-sous{background:var(--sous-bg);color:var(--sous)}.b-o{color:#444;background:#f0f0ec}.loader{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:1s ease-in-out infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.etable{border-collapse:collapse;width:100%;font-size:13px}.etable th{text-align:left;border-bottom:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;font-size:12px;font-weight:500}.etable td{border-bottom:1px solid var(--border);padding:10px 12px}.etable tr:last-child td{border-bottom:none}.etable tbody tr:hover{background:var(--bg)}.alert{border-radius:8px;margin-top:.75rem;padding:12px 16px;font-size:14px;font-weight:500}.a-ok{background:var(--accent-l);color:var(--accent);border:1px solid #b8d9c2}.a-err{background:var(--danger-bg);color:var(--danger);border:1px solid #e8c0c0}.empty{text-align:center;color:var(--hint);padding:3rem;font-size:14px}
