:root{--ink: #171a1f;--muted: #66707c;--line: #dfe4e8;--surface: #ffffff;--canvas: #f4f7f7;--emerald: #087f5b;--emerald-soft: #e7f6f0;--cyan: #087ea4;--cyan-soft: #e6f5fa;--coral: #d95d45;--coral-soft: #fff0ec;--amber: #a86400;--amber-soft: #fff5dc;--shadow: 0 12px 32px rgba(23, 26, 31, .08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--canvas);letter-spacing:0}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--canvas)}button,input,textarea,select{font:inherit;letter-spacing:0}button{cursor:pointer}a{color:inherit}.page{padding:28px 32px 48px;max-width:1500px;margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-header h1{margin:0 0 6px;font-size:25px;line-height:1.25}.page-header p{margin:0;color:var(--muted);font-size:14px}.btn{min-height:40px;border:1px solid var(--line);border-radius:6px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--surface);color:var(--ink);font-weight:650}.btn:hover{border-color:#aeb8bf}.btn-primary{color:#fff;background:var(--emerald);border-color:var(--emerald)}.btn-danger{color:var(--coral);background:#fff;border-color:#f0b4a8}.btn[aria-busy=true]:before{content:"";width:14px;height:14px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:button-spin .65s linear infinite}.btn:disabled{cursor:not-allowed;opacity:.7}@keyframes button-spin{to{transform:rotate(360deg)}}.icon-btn{width:38px;height:38px;padding:0;border:1px solid var(--line);background:#fff;border-radius:6px;display:grid;place-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:7px}.field{display:grid;gap:7px}.field label{font-size:12px;font-weight:700;color:#4d5761}.field input,.field textarea,.field select{width:100%;border:1px solid #cfd6db;background:#fff;border-radius:6px;padding:11px 12px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #087ea41f}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .wide{grid-column:1/-1}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750;text-transform:uppercase}.badge.active{color:var(--emerald);background:var(--emerald-soft)}.badge.suspended,.badge.disabled,.badge.revoked{color:var(--coral);background:var(--coral-soft)}.empty{padding:52px 24px;text-align:center;color:var(--muted)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:720px}th{padding:12px 16px;text-align:left;color:var(--muted);background:#f8faf9;border-bottom:1px solid var(--line);font-size:11px;text-transform:uppercase}td{padding:15px 16px;border-bottom:1px solid #edf0f2;font-size:13px}tbody tr:last-child td{border-bottom:0}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#171a1f7a}.modal{width:min(620px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:8px;box-shadow:var(--shadow)}.modal-head,.modal-foot{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head{border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:17px}.modal-body{padding:20px}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end}.error-message{color:var(--coral);font-size:13px}.success-message{color:var(--emerald);font-size:13px}@media(max-width:760px){.page{padding:22px 16px 40px}.page-header{align-items:stretch;flex-direction:column}.form-grid{grid-template-columns:1fr}}.toast-host{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:60;max-width:360px}.toast{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);font-size:13px;color:var(--ink);animation:toast-in .18s ease}.toast span{flex:1}.toast button{flex:none;display:grid;place-items:center;width:22px;height:22px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:5px}.toast button:hover{background:var(--canvas)}.toast.success{border-left:3px solid var(--emerald)}.toast.error{border-left:3px solid var(--coral)}.toast.info{border-left:3px solid var(--cyan)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
