:root{--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#eaf0fe;--bg:#f4f6f9;--surface:#fff;--border:#e2e6ec;--text:#16202e;--text-muted:#66738a;--danger:#dc2626;--danger-hover:#b91c1c;--success:#16a34a;--sidebar-bg:#0f1720;--radius:12px;--radius-sm:8px;--shadow:0 4px 18px #0f172014}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0;font-size:22px;font-weight:700}h2{margin:0 0 4px;font-size:17px;font-weight:700}p{margin:0 0 1em}button,.btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:14px;font-weight:600;display:inline-flex}button:hover{background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--border)}button.secondary:hover{background:var(--bg)}button.danger{background:var(--danger)}button.danger:hover{background:var(--danger-hover)}button.small{padding:6px 10px;font-size:12.5px}input,select{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);padding:10px 12px;font-family:inherit;font-size:14px}input:focus,select:focus{border-color:var(--accent);outline:none}label{color:var(--text);margin-bottom:14px;font-size:13px;font-weight:600;display:block}label>input,label>select{margin-top:6px}.login-page{background:linear-gradient(160deg, var(--sidebar-bg) 0%, #1e3a5f 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-form{background:var(--surface);border-radius:16px;width:100%;max-width:340px;padding:36px 32px;box-shadow:0 20px 50px #00000040}.login-form h1{text-align:center;color:var(--accent);margin-bottom:24px}.error{color:var(--danger);margin-bottom:14px;font-size:13.5px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--sidebar-bg);color:#ffffffd9;flex-direction:column;flex-shrink:0;gap:4px;width:220px;padding:24px 14px;display:flex}.sidebar-brand{color:#fff;padding:0 10px 20px;font-size:16px;font-weight:800}.sidebar-link{border-radius:var(--radius-sm);color:#ffffffbf;padding:10px 12px;font-size:14px;font-weight:600;display:block}.sidebar-link:hover{color:#fff;background:#ffffff14;text-decoration:none}.sidebar-link.active{background:var(--accent);color:#fff}.sidebar-footer{margin-top:auto;padding:0 10px}.sidebar-footer button{width:100%}.content{flex:1;max-width:980px;padding:32px 40px}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px 22px}.card-form label:last-of-type{margin-bottom:18px}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 4px;display:flex}.list-row:last-child{border-bottom:none}.list-row-main{flex-direction:column;flex:1;gap:2px;display:flex}.list-row-title{font-size:14.5px;font-weight:600}.list-row-subtitle{color:var(--text-muted);font-size:12.5px}.list-row-actions{gap:8px;display:flex}.list-empty{color:var(--text-muted);padding:20px 4px;font-size:14px}.badge{border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge-dot{border-radius:50%;width:7px;height:7px}.badge.en-ligne{color:#1c7a43;background:#e8f7ee}.badge.en-ligne .badge-dot{background:#22c55e}.badge.hors-ligne{color:#6b7280;background:#f3f4f6}.badge.hors-ligne .badge-dot{background:#9ca3af}.badge.non-initialise{color:#92400e;background:#fef3c7}.badge.non-initialise .badge-dot{background:#f59e0b}.meta{color:var(--text-muted);font-size:13px}@media (max-width:720px){.app-shell{flex-direction:column}.sidebar{flex-direction:row;width:100%;padding:12px;overflow-x:auto}.sidebar-brand,.sidebar-footer{display:none}.content{padding:20px}}
