*{box-sizing:border-box}body{min-height:100vh;background:var(--bg);color:var(--fg);font:15px/1.5 var(--site-font);letter-spacing:-.015em}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a{text-decoration:none}button{cursor:pointer}button:disabled{opacity:.4;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.admin-shell{display:grid;grid-template-columns:240px 1fr;max-width:1680px;margin:auto;min-height:100vh}.admin-sidebar{position:sticky;top:0;height:100vh;padding:36px 20px 24px;border-right:1px solid var(--sep);display:flex;flex-direction:column;background:var(--field)}.admin-brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:750;letter-spacing:-.05em}.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--acc);box-shadow:0 0 20px var(--acc)}.eyebrow{font-size:10px;letter-spacing:.14em;color:var(--fg2);font-weight:650;margin:0 0 12px}.admin-sidebar>.eyebrow{margin:48px 12px 12px}.admin-sidebar nav{display:grid;gap:6px}.admin-sidebar nav button{display:flex;gap:12px;align-items:center;text-align:left;background:transparent;border:0;color:var(--fg2);padding:13px 14px;border-radius:14px}.admin-sidebar nav button[aria-current=page]{background:var(--acc-soft);color:var(--accent-text);font-weight:650}.admin-sidebar nav button:hover{background:var(--pill-hover)}.admin-sidebar nav span{font-size:22px;width:24px}.sidebar-bottom{margin-top:auto;display:grid;gap:16px;padding:20px 10px 0;font-size:13px}.sidebar-bottom span{color:var(--fg2)}main{padding:40px clamp(20px,4vw,64px);min-width:0}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.admin-header .eyebrow{margin:0 0 7px}h1{font-size:clamp(30px,4vw,42px);letter-spacing:-.055em;line-height:1.1;margin:0}h2{margin:0 0 14px;font-size:22px;letter-spacing:-.03em}.header-actions{display:flex;gap:10px}.ghost,.primary,.danger{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:11px 17px;border-radius:12px;line-height:1.25;font-size:13px;font-weight:600;white-space:nowrap}.ghost{background:var(--field);border:1px solid var(--field-line);color:var(--fg)}.primary{background:var(--acc);border:1px solid transparent;color:#fff;box-shadow:inset 0 1px #ffffff33}.danger{background:rgba(220,65,65,.08);color:var(--err);border:1px solid rgba(220,65,65,.2)}.ghost:hover,.primary:hover,.danger:hover{filter:brightness(1.12)}.panel{padding:28px;border-radius:24px;margin-bottom:24px}.panel p{color:var(--fg2);max-width:50em}#adminStatus{min-height:22px;color:var(--fg2)}#adminStatus.error{color:var(--err)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.metric{padding:22px;border-radius:20px;display:flex;flex-direction:column;gap:18px}.metric span{font-size:12px;color:var(--fg2)}.metric strong{font-size:40px;letter-spacing:-.06em;line-height:1}.intro{padding:38px;display:flex;justify-content:space-between;gap:30px;align-items:center;min-height:260px;background:linear-gradient(120deg,var(--acc-soft),var(--field))}.intro h2{font-size:28px;max-width:13em;margin-top:22px}.status-pill{font-size:11px;padding:6px 10px;border:1px solid var(--field-line);border-radius:99px;color:var(--accent-text)}.quick-actions{display:grid;gap:12px}.muted{color:var(--fg2);font-size:13px}.toolbar{display:flex;align-items:center;gap:12px;margin:24px 0 16px}.search-field{display:flex;gap:12px;align-items:center;flex:1;max-width:470px;background:var(--field);border:1px solid var(--field-line);border-radius:13px;padding:0 16px}.search-field input{border:0;background:none;padding:13px 0;min-width:0;width:100%;color:var(--fg);outline:none}.search-field span{color:var(--fg2);font-size:24px}.table-panel{border-radius:20px;overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:11px;color:var(--fg2);font-weight:500;padding:17px 20px;background:var(--field)}td{padding:17px 20px;border-top:1px solid var(--sep);font-size:13px}td strong{font-weight:600}td small{display:block;color:var(--fg2);font-size:11px}td code{font-size:11px;letter-spacing:0}.pill{display:inline-block;padding:4px 9px;background:var(--field);border:1px solid var(--field-line);border-radius:99px;font-size:11px}.pill.ok{color:var(--accent-text)}.pill.bad{color:var(--err)}.pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--sep);color:var(--fg2);font-size:12px}.key-create{display:flex;align-items:end;flex-wrap:wrap;gap:16px}label{display:grid;gap:8px;color:var(--fg2);font-size:12px}input,select,textarea{border:1px solid var(--field-line);border-radius:12px;background:var(--field);color:var(--fg);padding:11px 14px;max-width:100%}select{min-width:180px}select option{background:var(--bg-pop)}#keyCount{width:100px}textarea{resize:vertical;width:100%;font-family:Consolas,monospace;font-size:13px;margin:10px 0}#createdKeysPanel{margin-top:24px;padding-top:24px;border-top:1px solid var(--sep)}dialog{color:var(--fg);background:var(--bg-pop)!important;border:1px solid var(--field-line);border-radius:24px;padding:28px;width:min(600px,calc(100vw - 32px));max-height:90vh;overflow:auto}dialog::backdrop{background:#0008;backdrop-filter:blur(5px)}dialog header{display:flex;align-items:start;justify-content:space-between}dialog header h2{overflow-wrap:anywhere}dialog dl{display:grid;grid-template-columns:110px 1fr;font-size:13px;gap:12px;margin:12px 0 26px}dialog dt{color:var(--fg2)}dialog dd{margin:0;overflow-wrap:anywhere}dialog form{display:grid;gap:12px;margin:20px 0}dialog form .primary,dialog form .danger{justify-self:start}.action-grid{display:flex;flex-wrap:wrap;gap:10px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}#confirmDialog{width:min(440px,calc(100vw - 32px))}#confirmText{color:var(--fg2);overflow-wrap:anywhere}@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.intro{display:block}.quick-actions{display:flex;flex-wrap:wrap;margin-top:24px}.admin-shell{grid-template-columns:200px 1fr}.admin-sidebar{padding:28px 12px}.admin-brand{font-size:19px}}@media(max-width:700px){.admin-shell{display:block}.admin-sidebar{height:auto;position:relative;padding:20px;border:0;border-bottom:1px solid var(--sep)}.admin-sidebar>.eyebrow{display:none}.admin-sidebar nav{display:flex;overflow-x:auto;margin-top:20px;gap:4px}.admin-sidebar nav button{white-space:nowrap;padding:10px}.admin-sidebar nav span{display:none}.sidebar-bottom{margin-top:12px;display:flex;justify-content:space-between;padding:0}.admin-header{align-items:start}main{padding:28px 18px}.header-actions{gap:6px}.header-actions .ghost{padding:9px}.metric{padding:18px}.metric strong{font-size:34px}.panel{padding:22px}.intro{padding:26px}.toolbar{flex-wrap:wrap}.toolbar .muted{width:100%}th,td{padding:14px}.pagination{padding:12px}.key-create label{flex:1}dialog dl{grid-template-columns:90px 1fr}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Modal windows use a solid surface in both themes, without blurring the page. */
html dialog.glass{background:var(--admin-dialog-bg)!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:var(--admin-dialog-shadow)}
html dialog::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}

/* Same rounded controls and surfaces as the public site. */
.admin-sidebar{top:18px;height:calc(100vh - 36px);margin:18px 0 18px 18px;border:1px solid var(--sep);border-radius:25px;background:var(--glass)}
.admin-sidebar nav button{border-radius:99px}
.ghost,.primary,.danger{border-radius:99px;min-height:42px}
input,select,textarea{border-radius:14px}
.metric,.table-panel{border-radius:24px}
#accessGate{margin-top:28px;padding:36px}
#accessGate h2{font-size:28px;letter-spacing:-.04em}
#accessGate p{font-size:14px;line-height:1.7;margin-bottom:24px}
@media(max-width:700px){.admin-sidebar{top:0;height:auto;margin:14px 14px 0;border:1px solid var(--sep);border-radius:24px}.admin-sidebar nav button{font-size:12px}.admin-brand{font-size:19px}#accessGate{padding:26px}#accessGate h2{font-size:24px}}

.ip-reason{flex:1;min-width:180px}.ip-filter{display:flex;align-items:center;gap:8px;white-space:nowrap}.ip-reason-text{max-width:260px;white-space:normal;overflow-wrap:anywhere}.ip-audit{margin-top:24px}.ip-audit ul{padding-left:20px;color:var(--fg2);overflow-wrap:anywhere}.ip-audit li{margin:10px 0}

.hwid-cell{min-width:200px;max-width:300px;white-space:normal;overflow-wrap:anywhere}.hwid-reason{min-width:180px;max-width:300px;white-space:normal;overflow-wrap:anywhere}
