:root{--bg:#f4f6fb;--card:#fff;--line:#e3e7ef;--text:#141a2b;--muted:#6b7385;--pri:#5b5ce6;--ok:#16a34a;--bad:#dc2626;--warn:#d97706}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--pri);text-decoration:none}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.mono{font-family:monospace}
.app{display:flex;min-height:100vh}.side{width:230px;background:#11152a;color:#cfd3e6;padding:18px;flex-shrink:0}
.logo{font-weight:800;font-size:20px;color:#fff;margin-bottom:20px}.side nav a{display:block;color:#cfd3e6;padding:10px 12px;border-radius:8px}.side nav a:hover{background:#1f2544;color:#fff}
.nav-h{font-size:11px;letter-spacing:2px;margin:16px 12px 6px;color:#7b82a8}.out{color:#f87171!important;margin-top:16px}
main{flex:1;min-width:0}.top{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff;border-bottom:1px solid var(--line)}.top h1{font-size:18px;margin:0;flex:1}
.menu{display:none;border:0;background:none;font-size:22px}.chip{background:#eef0ff;color:var(--pri);padding:6px 12px;border-radius:20px;font-weight:700}
.content{padding:20px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:16px;overflow-x:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.stat span{color:var(--muted);font-size:13px}.stat b{display:block;font-size:22px;margin-top:6px}
input,select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:15px;margin:4px 0 12px;background:#fff}
label{font-weight:600;font-size:14px;display:block;margin-top:6px}label b{color:var(--bad)}
.btn{background:var(--pri);color:#fff;border:0;padding:12px 18px;border-radius:10px;font-weight:700;cursor:pointer;font-size:15px;display:inline-block}.btn.full{width:100%;padding:16px;font-size:18px;margin-top:10px}
.btn.sm{padding:6px 10px;font-size:12px}.btn.ok{background:var(--ok)}.btn.bad{background:var(--bad)}input.sm{width:80px;padding:6px;margin:0;font-size:12px}
.row{display:flex;gap:8px;align-items:flex-start;margin-bottom:12px}.row input{margin:0}.inline{display:inline-flex;gap:4px;margin:2px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase}
.badge{padding:3px 9px;border-radius:20px;font-size:12px;font-weight:700;background:#eee}.b-active,.b-success,.b-approved{background:#dcfce7;color:var(--ok)}.b-pending{background:#fef3c7;color:var(--warn)}.b-suspended,.b-rejected,.b-expired{background:#fee2e2;color:var(--bad)}.b-admin{background:#eef0ff;color:var(--pri)}
.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px}.alert.ok{background:#dcfce7;color:#14532d}.alert.err{background:#fee2e2;color:#7f1d1d}.alert.warn{background:#fef3c7;color:#78350f}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.tabs a{padding:8px 14px;border-radius:20px;background:#fff;border:1px solid var(--line);color:var(--text)}.tabs a.on{background:var(--pri);color:#fff}
.otp{font-size:18px;color:var(--ok)}.copy{border:0;background:none;cursor:pointer}pre{white-space:pre-wrap;font-size:13px}
body.auth{display:flex;justify-content:center;padding:20px}.auth-card{width:100%;max-width:440px}.auth-card h2{margin:0}
.in{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;padding:0 14px;margin:6px 0 16px;background:#fff}.in span{opacity:.6}.in input{border:0;margin:0;padding:16px 12px;outline:0}
.eye{border:0;background:none;cursor:pointer;opacity:.6}.chk{display:flex;gap:10px;align-items:center;font-weight:400}.chk input{width:20px;height:20px;margin:0}
@media(max-width:800px){.side{position:fixed;left:-240px;top:0;bottom:0;z-index:9;transition:.2s}.side.open{left:0}.menu{display:block}.content{padding:12px}}
