*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0f14;--bg2: #141720;--bg3: #1c2030;--border: #2a2f45;--text: #e8eaf0;--text-muted: #6b7294;--accent: #00d4ff;--accent2: #0099cc;--success: #00e676;--warning: #ffab40;--danger: #ff5252;--font-head: "Syne", sans-serif;--font-mono: "DM Mono", monospace;--radius: 6px;--shadow: 0 4px 24px rgba(0,0,0,.4)}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-head)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}input,button,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--radius);cursor:pointer;font-family:var(--font-head);font-weight:600;font-size:13px;letter-spacing:.5px;transition:all .15s}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{background:var(--accent2)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.input{width:100%;padding:10px 14px;background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);transition:border-color .15s;outline:none}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-muted)}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.tag{display:inline-block;padding:2px 8px;border-radius:3px;font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.tag-admin{background:#00d4ff26;color:var(--accent)}.tag-technicien{background:#00e67626;color:var(--success)}.tag-lecteur{background:#6b729426;color:var(--text-muted)}.tag-danger{background:#ff525226;color:var(--danger)}.tag-warning{background:#ffab4026;color:var(--warning)}.btn-sm{padding:6px 12px;font-size:12px}.btn-xs{padding:3px 8px;font-size:11px;gap:4px}.btn-danger{background:transparent;color:var(--danger);border:1px solid rgba(255,82,82,.4)}.btn-danger:hover{background:#ff52521f}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-ghost.active{border-color:var(--accent);color:var(--accent);background:#00d4ff14}.card-label{font-size:11px;color:var(--accent);letter-spacing:1px;font-weight:500}.field{margin-bottom:14px}.field>label,.label{display:block;font-size:11px;color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row>.field{flex:1;min-width:140px}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}textarea.input{resize:vertical;min-height:70px}.muted{color:var(--text-muted)}.small{font-size:12px}.error-msg,.success-msg{font-size:12px;margin-bottom:12px;padding:8px 12px;border-radius:2px}.error-msg{color:var(--danger);background:#ff52521a;border-left:2px solid var(--danger)}.success-msg{color:var(--success);background:#00e67614;border-left:2px solid var(--success)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--bg3)}.table .actions{text-align:right;white-space:nowrap}.table .actions .btn+.btn{margin-left:6px}.page{padding:28px;max-width:1100px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.page-head h2{font-size:20px}.empty{text-align:center;color:var(--text-muted);padding:40px 20px;border:1px dashed var(--border);border-radius:var(--radius)}@media (max-width: 800px){.page{padding:16px}}
