:root{--accent:#3b82f6;--bg:#070b14;--text:#e5e9f0;--muted:#8b93a7}*{box-sizing:border-box}body,html{margin:0;padding:0}body{min-height:100vh;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:radial-gradient(1000px 600px at 15% -10%,rgba(59,130,246,.16),transparent 60%),radial-gradient(900px 500px at 110% 15%,rgba(99,102,241,.1),transparent 55%),radial-gradient(800px 600px at 50% 120%,rgba(59,130,246,.07),transparent 60%),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}::selection{background:rgba(59,130,246,.35)}.glass{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 32px rgba(0,0,0,.35)}.text-accent{color:var(--accent)}.field-label{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-bottom:6px}.input{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px;font-size:14px;color:var(--text);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder{color:rgba(139,147,167,.6)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(59,130,246,.25)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s ease,transform .1s ease}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.14);color:var(--text);border-radius:10px;padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s ease}.btn-ghost:hover:not(:disabled){background:rgba(255,255,255,.06)}.btn-ghost:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:#ef4444;color:#fff;border:none;border-radius:10px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s ease}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-danger-text{background:transparent;border:none;color:var(--muted);font-size:12px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:color .15s ease,background .15s ease}.btn-danger-text:hover{color:#f87171;background:rgba(239,68,68,.1)}.badge{display:inline-block;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:999px}.badge-admin{background:rgba(59,130,246,.15);color:#60a5fa}.badge-user{background:rgba(255,255,255,.06);color:var(--muted)}.notice{border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:16px}.notice-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);color:#fca5a5}.notice-success{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.3);color:#86efac}.modal-overlay{position:fixed;inset:0;background:rgba(4,7,14,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-card{width:100%;max-width:420px;padding:24px}table{border-collapse:collapse}