:root{--bg:#07101d;--bg-soft:#102033;--card:#142a43;--card-alt:#193859;--text:#f5f7fb;--muted:#b8c6d8;--accent:#f1c40f;--accent-2:#18c5b5;--danger:#ff5a6a;--border:#34567a}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Segoe UI,Avenir Next,Helvetica,sans-serif;background:radial-gradient(circle at 20% 20%,#1e3552,var(--bg) 45%),linear-gradient(140deg,#0d1c2f,#07101d 50%,#0d233a);color:var(--text);min-height:100%}a{color:var(--accent)}label{font-weight:600}button,input{border-radius:.65rem;border:1px solid var(--border);font:inherit}input{background:#0f2034;color:var(--text);padding:.7rem .8rem}button{cursor:pointer;background:linear-gradient(135deg,var(--accent),#f39c12);color:#102033;font-weight:700;padding:.7rem 1rem}button:hover{filter:brightness(1.05)}.page{min-height:100vh;padding:2rem}.auth-page{display:grid;place-items:center}.auth-wrap{width:min(420px,95%)}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:2rem}.brand{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:.05em}.small{font-size:.85rem}.nav-links{display:flex;align-items:center;gap:1rem}.nav-links a{color:var(--text);text-decoration:none;font-weight:600}.ghost-button{background:transparent;color:var(--text)}.stack{display:flex;flex-direction:column;gap:.85rem}.grid{display:grid;grid-gap:1rem;gap:1rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:linear-gradient(145deg,var(--card),var(--card-alt));border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:0 15px 40px rgba(0,0,0,.22)}.hero h1{margin-bottom:.25rem}.muted{color:var(--muted);margin:0}.error{margin:0;color:var(--danger);font-weight:700}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px solid #295075;padding-bottom:.65rem}.list.compact li{align-items:center}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #295075;padding:.65rem;text-align:left}.role-grid{display:grid;grid-template-columns:1.5fr 1.5fr 2fr 110px auto;grid-gap:.55rem;gap:.55rem;align-items:center}.inline-actions{display:flex;gap:.45rem}.danger{background:linear-gradient(135deg,#ff7d8a,var(--danger))}.animate-in{animation:rise .5s ease both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:980px){.grid.two,.role-grid{grid-template-columns:1fr}.inline-actions{justify-content:flex-start}.topbar{flex-direction:column;align-items:flex-start}}