.table-card{margin-top:0}.user-table{width:100%;border-collapse:collapse;font-size:.86rem}.user-table th{padding:12px 16px;border-bottom:2px solid var(--border-color);font-weight:700;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;text-align:left;background:#ffffff05}.user-table td{padding:12px 16px;border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle}.user-table tbody tr{transition:background .15s}.user-table tbody tr:hover{background:#d4af370a}.user-table tbody tr:last-child td{border-bottom:none}.th-credit,.th-actions{text-align:center}.loading-row,.empty-row{padding:40px;text-align:center;color:var(--text-muted);font-size:.88rem}.role-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.04em}.role-admin{background:#d4af371f;color:#d4af37;border:1px solid rgba(212,175,55,.3)}.role-user{background:#64b4ff1a;color:#64b4ff;border:1px solid rgba(100,180,255,.2)}.credit-badge{font-weight:700;font-size:.85rem;text-align:center}.toolbar-search{position:relative;display:flex;align-items:center}.toolbar-search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.filter-input{background:var(--bg-darker);border:1px solid var(--border-color);border-radius:8px;padding:8px 12px 8px 34px;font-size:.82rem;font-family:Inter,sans-serif;color:var(--text-primary);outline:none;width:240px;transition:border-color .2s}.filter-input::placeholder{color:var(--text-muted)}.filter-input:focus{border-color:var(--accent-gold)}.actions-cell{display:flex;gap:6px;justify-content:center;align-items:center}.action-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid transparent;cursor:pointer;font-size:.73rem;font-weight:600;font-family:Inter,sans-serif;padding:5px 11px;border-radius:20px;transition:all .2s;line-height:1;white-space:nowrap}.action-btn svg{width:12px;height:12px;flex-shrink:0}.btn-grant{background:#4ade8014;color:#4ade80;border-color:#4ade8040}.btn-grant:hover{background:#4ade802e;border-color:#4ade80;box-shadow:0 2px 10px #4ade8026}.btn-delete{background:#f8717114;color:#f87171;border-color:#f8717140}.btn-delete:hover{background:#f871712e;border-color:#f87171;box-shadow:0 2px 10px #f8717126}.confirm-modal-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s ease}.confirm-modal-overlay.active{opacity:1;pointer-events:auto}.confirm-modal-card{background:linear-gradient(160deg,var(--card-bg) 0%,var(--bg-darker) 100%);border:1px solid var(--border-color);border-top:3px solid #ef4444;border-radius:14px;width:90%;max-width:480px;padding:28px;box-shadow:0 32px 70px var(--shadow-color);transform:translateY(20px);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.confirm-modal-overlay.active .confirm-modal-card{transform:translateY(0)}.confirm-modal-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.confirm-modal-icon{width:42px;height:42px;background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#ef4444;flex-shrink:0}.confirm-modal-header h3{font-family:Playfair Display,Georgia,serif;color:var(--text-primary);font-size:1.25rem;margin:0;font-weight:700}.confirm-modal-body{color:var(--text-secondary);font-size:.92rem;line-height:1.6;margin-bottom:24px;text-align:left}.confirm-modal-doc-info{background:var(--bg-darker);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;margin:14px 0;display:flex;flex-direction:column;gap:4px}.confirm-doc-code{color:var(--accent-gold);font-size:.72rem;font-weight:700}.confirm-doc-title{color:var(--text-primary);font-size:.9rem;font-weight:600}.confirm-modal-warning{color:#f87171;font-size:.82rem;margin:10px 0 0;font-weight:500}.confirm-modal-footer{display:flex;gap:12px;justify-content:flex-end}.confirm-modal-footer button{min-height:40px;padding:0 20px;border-radius:8px;font-family:Inter,sans-serif;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .25s ease}.btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-cancel:hover{background:#ffffff0a;color:var(--text-primary)}.btn-confirm{color:#fff;border:1px solid}.btn-confirm--delete{background:#ef4444;border-color:#ef4444}.btn-confirm--delete:hover{background:#dc2626;border-color:#dc2626;box-shadow:0 8px 24px #ef444440}.btn-confirm--grant{background:#4ade80;border-color:#4ade80;color:#0a1a0a}.btn-confirm--grant:hover{background:#22c55e;border-color:#22c55e;box-shadow:0 8px 24px #4ade8040}.btn-confirm:disabled,.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.credit-input-row{display:flex;gap:8px;margin-top:12px}.credit-input{flex:1;padding:10px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-darker);color:var(--text-primary);font-size:1rem;font-family:Inter,sans-serif;outline:none}.credit-input:focus{border-color:#4ade80}.preset-btn{padding:0 14px;min-height:40px;border-radius:8px;border:1px solid rgba(74,222,128,.25);background:#4ade800f;color:#4ade80;cursor:pointer;font-weight:700;font-size:.82rem;font-family:Inter,sans-serif;transition:all .2s}.preset-btn:hover{background:#4ade801f;border-color:#4ade80}
