:root{--text:#6b6375;--text-h:#08060d;--bg:#f6f7fb;--surface:#fff;--border:#e5e4e7;--border-focus:#aa3bff;--input-bg:#fff;--code-bg:#f0eef8;--accent:#7c3aed;--accent-hover:#6d28d9;--accent-bg:#7c3aed1a;--accent-border:#7c3aed66;--danger:#dc2626;--danger-bg:#dc262614;--danger-border:#dc262659;--danger-hover:#b91c1c;--success:#16a34a;--success-bg:#16a34a1a;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow:0 4px 16px #0000001a, 0 2px 6px #0000000f;--shadow-lg:0 16px 40px #00000024, 0 4px 12px #00000014;--radius:10px;--radius-sm:6px;--transition:.15s ease;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);letter-spacing:.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#0f1117;--surface:#1a1b23;--border:#2e303a;--border-focus:#a78bfa;--input-bg:#13141c;--code-bg:#1f2028;--accent:#a78bfa;--accent-hover:#c4b5fd;--accent-bg:#a78bfa1f;--accent-border:#a78bfa66;--danger:#f87171;--danger-bg:#f871711a;--danger-border:#f8717159;--danger-hover:#fca5a5;--success:#4ade80;--success-bg:#4ade801a;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow:0 4px 16px #0006, 0 2px 6px #00000040;--shadow-lg:0 16px 40px #00000080, 0 4px 12px #0000004d}}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2,h3{color:var(--text-h);margin:0;font-weight:600}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}.dash{flex-direction:column;flex:1;width:100%;max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem;display:flex}.dash__header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.dash__title-wrap{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.dash__title{letter-spacing:-.02em;font-size:1.6rem}.dash__count{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);border-radius:999px;padding:.15rem .6rem;font-size:.8rem;font-weight:500}.btn{font:inherit;border-radius:var(--radius-sm);transition:background var(--transition), border-color var(--transition), color var(--transition), opacity var(--transition);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.35rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--primary:not(:disabled):hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn--ghost{color:var(--text-h);border-color:var(--border);background:0 0}.btn--ghost:not(:disabled):hover{background:var(--code-bg)}.btn--danger{color:var(--danger);border-color:var(--danger-border);background:0 0}.btn--danger:not(:disabled):hover{background:var(--danger-bg)}.btn--danger-solid{background:var(--danger);color:#fff;border-color:var(--danger)}.btn--danger-solid:not(:disabled):hover{background:var(--danger-hover);border-color:var(--danger-hover)}.btn--sm{padding:.3rem .7rem;font-size:.8rem}.banner{border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.banner--error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}.table-wrap{border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border);overflow-x:auto}@media (width<=640px){.table-wrap{display:none}}.table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.9rem}.table thead{background:var(--code-bg)}.table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text);border-bottom:1px solid var(--border);white-space:nowrap;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.75rem 1rem}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--transition)}.table tbody tr:hover{background:var(--code-bg)}.table tbody tr.row--loading{opacity:.5;pointer-events:none}.row__num{color:var(--text);width:2.5rem;font-size:.8rem}.row__name{color:var(--text-h);font-weight:500}.row__email a{color:var(--text)}.row__email a:hover{color:var(--accent)}.row__actions{white-space:nowrap;gap:.4rem;display:flex}.cards{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:none}@media (width<=640px){.cards{display:flex}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:opacity var(--transition);align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.card.row--loading{opacity:.5;pointer-events:none}.card__badge{background:var(--accent-bg);width:2rem;height:2rem;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:.1rem;font-size:.75rem;font-weight:600;display:flex}.card__body{flex:1;min-width:0}.card__name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.2rem;font-size:.95rem;font-weight:600;overflow:hidden}.card__detail{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.card__detail a{color:var(--text)}.card__detail a:hover{color:var(--accent)}.card__actions{flex-direction:column;flex-shrink:0;gap:.35rem;display:flex}.dash__main{flex:1}.dash__spinner-wrap{color:var(--text);flex-direction:column;align-items:center;gap:.75rem;padding:4rem 1rem;font-size:.9rem;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.dash__empty{color:var(--text);text-align:center;flex-direction:column;align-items:center;gap:1rem;padding:4rem 1rem;display:flex}.dash__empty-icon{background:var(--accent-bg);border:1px solid var(--accent-border);width:56px;height:56px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:flex}.dash__empty-icon svg{width:24px;height:24px}.dash__empty p{color:var(--text);font-size:.95rem}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#00000080;justify-content:center;align-items:center;padding:1rem;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--border);width:100%;max-width:440px;animation:.18s slide-up}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.1rem 1.25rem .9rem;display:flex}.modal__header h2{font-size:1.05rem}.modal__close{color:var(--text);border-radius:var(--radius-sm);transition:background var(--transition), color var(--transition);background:0 0;border:none;padding:.25rem .4rem;font-size:1rem;line-height:1}.modal__close:hover{background:var(--code-bg);color:var(--text-h)}.modal__body{flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.modal__footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.6rem;padding:.9rem 1.25rem 1.1rem;display:flex}.field{flex-direction:column;gap:.3rem;display:flex}.field label{color:var(--text-h);letter-spacing:.01em;font-size:.8rem;font-weight:600}.field input{font:inherit;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text-h);transition:border-color var(--transition), box-shadow var(--transition);width:100%;padding:.55rem .75rem;font-size:.9rem}.field input::placeholder{color:var(--text);opacity:.6}.field input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.field input[aria-invalid=true]{border-color:var(--danger)}.field input[aria-invalid=true]:focus{box-shadow:0 0 0 3px var(--danger-bg)}.field__error{color:var(--danger);align-items:center;gap:.25rem;font-size:.78rem;display:flex}.toast{border-radius:var(--radius);box-shadow:var(--shadow);z-index:200;white-space:nowrap;white-space:normal;text-align:center;align-items:center;gap:.75rem;max-width:calc(100vw - 2rem);padding:.7rem 1rem .7rem 1.1rem;font-size:.875rem;font-weight:500;animation:.2s toast-in;display:flex;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toast--success{background:var(--success-bg);color:var(--success);border:1px solid #16a34a4d}.toast--error{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger)}.toast__close{color:inherit;opacity:.7;transition:opacity var(--transition);background:0 0;border:none;flex-shrink:0;padding:.1rem .25rem;font-size:.8rem;line-height:1}.toast__close:hover{opacity:1}.confirm-dialog{max-width:380px}.confirm-dialog__body{align-items:flex-start;gap:.9rem;padding:1.25rem 1.25rem 1rem;display:flex}.confirm-dialog__icon{background:var(--danger-bg);border:1px solid var(--danger-border);width:2.2rem;height:2.2rem;color:var(--danger);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:.1rem;display:flex}.confirm-dialog__icon svg{width:1.1rem;height:1.1rem}.confirm-dialog__body p{color:var(--text);font-size:.9rem;line-height:1.55}.confirm-dialog__body strong{color:var(--text-h)}.toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.search-wrap{flex:1;min-width:200px;max-width:420px;position:relative}.search-icon{pointer-events:none;color:var(--text);display:flex;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.search-icon svg{width:16px;height:16px}.search-input{font:inherit;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);width:100%;color:var(--text-h);transition:border-color var(--transition), box-shadow var(--transition);padding:.5rem 2.25rem;font-size:.875rem}.search-input::placeholder{color:var(--text);opacity:.6}.search-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.search-clear{color:var(--text);border-radius:var(--radius-sm);transition:color var(--transition);background:0 0;border:none;padding:.2rem .3rem;font-size:.75rem;line-height:1;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.search-clear:hover{color:var(--text-h)}.search-result-count{color:var(--text);white-space:nowrap;font-size:.8rem}.sort-btn{font:inherit;text-transform:uppercase;letter-spacing:.06em;color:var(--text);cursor:pointer;transition:color var(--transition);background:0 0;border:none;align-items:center;gap:.3rem;padding:0;font-size:.75rem;font-weight:600;display:inline-flex}.sort-btn:hover{color:var(--text-h)}.sort-icon{font-size:.7rem;line-height:1}.sort-icon--inactive{opacity:.35}.sort-icon--active{color:var(--accent)}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin-top:1.25rem;display:flex}.pagination__btn{min-width:5.5rem}.pagination__pages{flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.pagination__page{border-radius:var(--radius-sm);width:2rem;height:2rem;font:inherit;color:var(--text-h);cursor:pointer;transition:background var(--transition), border-color var(--transition);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:.85rem;display:flex}.pagination__page:hover{background:var(--code-bg);border-color:var(--border)}.pagination__page--active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-weight:600}.pagination__ellipsis{color:var(--text);-webkit-user-select:none;user-select:none;padding:0 .1rem;font-size:.85rem}.dash__empty--search{padding:2.5rem 1rem}@media (width<=480px){.dash{padding:1.25rem 1rem 3rem}.dash__title{font-size:1.3rem}.modal{border-radius:var(--radius) var(--radius) 0 0;max-width:100%}.modal-overlay{align-items:flex-end;padding:0}}
