:root{--bg:#f5f7fa;--card:#fff;--text:#1c2430;--muted:#6b7686;--line:#e3e8ef;--brand:#16a34a;--danger:#dc2626;--warn:#d97706}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--brand)}h1{font-size:1.5rem;margin:.2em 0 .8em}h2{font-size:1.1rem;margin-top:0}
.topbar{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;background:#0f172a;padding:.7rem 1.2rem}
.topbar a,.topbar .link{color:#cbd5e1;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer}
.topbar nav{display:flex;gap:1rem;flex:1;flex-wrap:wrap}.topbar a.active,.topbar a:hover{color:#fff}.brand{font-weight:700;color:#fff!important}
.container{max-width:1000px;margin:1.5rem auto;padding:0 1rem}.auth{max-width:420px;margin:8vh auto;padding:0 1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1.2rem;margin-bottom:1rem}.highlight{border-color:var(--brand)}
label{display:block;margin-bottom:.8rem;font-weight:500}input,select{display:block;width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:6px;font:inherit;margin-top:.25rem}
.row{display:flex;gap:.6rem;flex-wrap:wrap}.row input,.row select{flex:1;min-width:160px;margin:0}
.btn{background:var(--brand);color:#fff;border:0;border-radius:6px;padding:.6rem 1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.btn.small{padding:.3rem .7rem;font-size:.85rem}.btn.danger{background:var(--danger)}form.inline{display:inline}
.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1rem}
.stat{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem}.stat span{color:var(--muted);font-size:.85rem;display:block}.stat strong{font-size:1.5rem}.small-text{font-size:1rem!important}
.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.55rem .6rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8rem;color:var(--muted);text-transform:uppercase}
.badge{padding:.15rem .55rem;border-radius:99px;font-size:.78rem;font-weight:600;background:#e5e7eb}
.badge-active,.badge-sent{background:#dcfce7;color:#166534}.badge-expired,.badge-failed,.badge-revoked{background:#fee2e2;color:#991b1b}.badge-queued,.badge-inactive{background:#fef3c7;color:#92400e}
.alert{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem}.alert-error{background:#fee2e2;color:#991b1b}.alert-success{background:#dcfce7;color:#166534}.alert-warn{background:#fef3c7;color:#92400e}
.keybox{display:flex;gap:.6rem;align-items:center;background:#0f172a;color:#86efac;padding:.8rem;border-radius:8px;word-break:break-all}.keybox code{flex:1}
pre{background:#0f172a;color:#e2e8f0;padding:1rem;border-radius:8px;overflow-x:auto}code{font-family:ui-monospace,Menlo,monospace;font-size:.88em}
progress{width:100%;height:14px}.pager{display:flex;gap:1rem;align-items:center;justify-content:center;margin-top:1rem}
