:root{--purple: #391E6D;--purple-700: #2a1550;--green: #3FC441;--green-700: #2f9c33;--green-ink: #123a0f;--ink: #2D2D44;--mute: #6c6b82;--line: #e5e3ef;--page: #f6f5fb;--surface: #ffffff;--panel: #faf9fe;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font:15px/1.5 Helvetica Neue,Helvetica,Arial,sans-serif}.wrap{max-width:960px;margin:0 auto;padding:28px 20px}h2{font-family:Michroma,Helvetica Neue,Arial,sans-serif;font-weight:400;font-size:16px;letter-spacing:-.01em;color:var(--purple);margin:0 0 6px}.muted{color:var(--mute)}.err{color:#c0392b}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.pp-logo{display:inline-flex;align-items:center;font-family:Michroma,Helvetica Neue,Arial,sans-serif;color:var(--purple);line-height:1;letter-spacing:.01em;white-space:nowrap}.pp-logo .pp-beat{display:block;margin:0 -.05em;flex:none}.pp-logo .pp-admin{color:var(--green)}.pp-logo.on-dark{color:#fff}.topbar{background:var(--purple)}.topbar .bar-inner{max-width:960px;margin:0 auto;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.btn-onpurple{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);border-radius:8px;padding:8px 13px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.btn-onpurple:hover{background:#ffffff1f;border-color:#fff}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid .wide,.grid button{grid-column:1 / -1}label{display:block;font-size:12px;color:var(--mute);margin-bottom:4px}input,select{width:100%;padding:9px 11px;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink)}input:focus,select:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px #391e6d1f}select{width:auto}button{background:var(--green);color:var(--green-ink);border:0;border-radius:8px;padding:9px 14px;font-weight:700;cursor:pointer}button:hover{background:var(--green-700)}button.ghost{background:transparent;color:var(--purple);border:1px solid var(--line);font-weight:600}button.ghost:hover{background:var(--panel);border-color:var(--purple)}button.danger{background:transparent;color:#b23c3a;border:1px solid #f0d3d3;font-weight:600}button.danger:hover{background:#fbe6e6}button:disabled{opacity:.5;cursor:default}button.linkish{background:transparent;color:var(--purple);border:0;padding:0;font-weight:600;text-align:left}button.linkish:hover{text-decoration:underline}.tabs{display:flex;gap:8px;margin:10px 0 4px;flex-wrap:wrap}.tab{background:transparent;color:var(--mute);border:1px solid var(--line);border-radius:8px;padding:8px 13px;font-weight:600;cursor:pointer}.tab:hover{color:var(--purple)}.tab.on{background:var(--surface);color:var(--purple);border-color:var(--green)}table.tbl{width:100%;border-collapse:collapse;margin-top:12px}.tbl th,.tbl td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);font-size:14px}.tbl th{color:var(--mute);font-weight:600}.badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#ece9f6;color:var(--purple);font-weight:600;margin-right:6px}.badge.active{background:#e6f7e2;color:#2f7d1e}.badge.revoked,.badge.suspended{background:#fbe6e6;color:#b23c3a}.badge.pending{background:#fbf3d6;color:#8a6d0f}.access-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.access-row:first-child{border-top:0}.access-name{display:flex;align-items:center;gap:8px;font-weight:600}.access-name .k{color:var(--mute);font-weight:400;font-size:12px}.pill{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--panel);border:1px solid var(--line);color:var(--mute)}
