:root {
    color-scheme: dark;
    --bg: #171717;
    --surface: #292929;
    --surface-2: #242424;
    --surface-3: #303030;
    --line: #5d5d5d;
    --line-strong: #858585;
    --text: #ebebeb;
    --muted: #b5b5b5;
    --dim: #858585;
    --accent: #ebebeb;
    --accent-strong: #ffffff;
    --accent-ink: #202020;
    --danger: #ff8077;
    --warning: #f0c46d;
    --ok: #a6e18a;
}

* { box-sizing: border-box; border-radius: 0 !important; }
html { background: var(--bg); overflow-x: hidden; }
body.modal-open { overflow:hidden; }
body {
    min-height: 100vh; margin: 0; padding: 42px 22px;
    color: var(--text) !important;
    font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif !important;
    background:
      linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px), var(--bg) !important;
    background-size: 34px 34px !important;
}
body::before { content:""; position:fixed; inset:0; pointer-events:none; background:radial-gradient(circle at 50% 0, rgba(255,255,255,.065), transparent 34rem); }
#flickerGrid { position:fixed; inset:0; width:100%; height:100%; pointer-events:none; opacity:.35; }
main { position:relative; z-index:1; width:100%; max-width:1180px; margin:0 auto; }
body:has(.admin-review-shell) main { max-width:1600px; }
.auth-entry { min-height:calc(100vh - 84px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; }
.auth-entry .btn { width:min(100%,280px); height:46px; }

.panel { position:relative; border:1px solid var(--line); background:rgba(26,29,29,.94); box-shadow:0 24px 70px rgba(0,0,0,.24); animation:enter .45s ease both; }
.panel-narrow { max-width:540px; margin:7vh auto 0; }
.panel-wide { max-width:1180px; margin:0 auto; }
.panel::after { content:"VIP / PASS"; position:absolute; right:20px; top:18px; color:var(--dim); font:10px/1 "SFMono-Regular",Consolas,monospace; letter-spacing:.2em; }
.panel-header { padding:32px 34px 26px; border-bottom:1px solid var(--line); }
.panel-tools { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:26px; }
.badge { display:inline-flex; align-items:center; gap:9px; padding:7px 11px; border:1px solid var(--line-strong); color:var(--muted); background:var(--surface-2); font:600 11px/1 "SFMono-Regular",Consolas,monospace; letter-spacing:.16em; text-transform:uppercase; }
.badge::before { content:""; width:6px; height:6px; background:var(--text); animation:pulse 2.4s ease-in-out infinite; }
.auth-buttons,.account-chip { display:flex; align-items:center; gap:10px; }
.account-chip { padding:6px 7px 6px 13px; border:1px solid var(--line); background:var(--surface-2); }
.account-name { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); font-size:13px; }
h1 { margin:0; font-size:clamp(28px,4vw,42px); letter-spacing:-.03em; line-height:1.14; font-weight:650; }
.subtitle { margin:12px 0 0; color:var(--muted); font-size:14px; line-height:1.75; max-width:700px; }
.panel-body { display:grid; gap:16px; padding:28px 34px 34px; }
.info-item { display:grid; grid-template-columns:110px 1fr; gap:18px; padding:18px 20px; border:1px solid var(--line); background:var(--surface-2); animation:rise .35s ease both; }
.info-tag { color:var(--dim); font:11px/1.5 "SFMono-Regular",Consolas,monospace; letter-spacing:.14em; }
.info-text { margin:0; color:var(--muted); font-size:14px; line-height:1.85; }
.info-text strong { color:var(--text); }
.field { display:block; }
.field-label { display:block; margin-bottom:9px; color:var(--muted); font-size:13px; }
input[type=text],input[type=email],input[type=password],input[type=number],select { width:100%; height:46px; padding:0 13px; color:var(--text); background:#151818; border:1px solid var(--line); font-size:14px; font-family:inherit; outline:none; transition:.18s ease; }
input::placeholder { color:#5f6865; }
input:hover,select:hover { border-color:var(--line-strong); background:var(--surface-3); }
input:focus,select:focus { border-color:var(--accent); outline:1px solid var(--accent); outline-offset:2px; background:var(--surface-3); box-shadow:0 0 0 4px rgba(184,239,117,.1); }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.code-row { display:grid; grid-template-columns:1fr auto; gap:10px; }
.field-hint { margin:9px 0 0; color:var(--ok); font-size:12px; line-height:1.6; }
.field-hint.is-error { color:var(--danger); }
.form-foot { margin:0; text-align:center; color:var(--dim); font-size:13px; }
.form-foot a { color:var(--accent); text-decoration:none; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:42px; padding:0 18px; border:1px solid var(--line-strong); background:var(--surface-3); color:var(--text); font-size:13px; font-family:inherit; font-weight:600; letter-spacing:.02em; text-decoration:none; cursor:pointer; transition:.18s ease; }
.btn:hover { border-color:var(--accent); color:var(--accent); transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn:disabled { opacity:.5; cursor:wait; transform:none; }
.btn-primary { color:var(--accent-ink); background:var(--accent); border-color:var(--accent); }
.btn-primary:hover { color:var(--accent-ink); background:var(--accent-strong); border-color:var(--accent-strong); }
.btn-ghost { background:transparent; }
.btn-block { width:100%; height:48px; font-size:14px; }
.btn-sm { height:34px; padding:0 12px; font-size:12px; }
.btn-mini { height:32px; padding:0 11px; font-size:12px; }
.btn-approve { color:var(--ok); border-color:#54794c; background:rgba(71,111,53,.18); }
.btn-reject { color:var(--danger); border-color:#834c48; background:rgba(113,40,35,.18); }
.inline-form { display:inline-flex; }
.notice { margin:16px 34px 0; padding:13px 15px; border:1px solid var(--line); color:var(--muted); background:var(--surface-2); font-size:13px; line-height:1.7; }
.notice-ok { color:var(--ok); border-color:#54794c; background:rgba(71,111,53,.16); box-shadow:inset 3px 0 0 var(--ok); }
.notice-err { color:var(--danger); border-color:#834c48; background:rgba(113,40,35,.16); box-shadow:inset 3px 0 0 var(--danger); }
.notice-pending { color:var(--warning); border-color:#826c3f; background:rgba(117,90,28,.16); box-shadow:inset 3px 0 0 var(--warning); }
.notice-session { position:fixed; z-index:30; top:22px; right:22px; display:flex; align-items:center; gap:10px; min-width:210px; margin:0; padding:12px 16px; color:var(--text); background:#292929; border-color:var(--line-strong); box-shadow:0 12px 32px rgba(0,0,0,.32); font:600 12px "SFMono-Regular",Consolas,monospace; letter-spacing:.08em; animation:session-in .32s cubic-bezier(.2,.8,.2,1) both; }
.notice-session::before { content:""; width:6px; height:11px; margin:-3px 3px 0 1px; border:solid var(--text); border-width:0 2px 2px 0; transform:rotate(45deg); }
.notice-session.is-leaving { animation:session-out .28s ease forwards; pointer-events:none; }
.status-badge { display:inline-flex; align-items:center; gap:7px; padding:4px 9px; border:1px solid var(--line-strong); font:600 11px "SFMono-Regular",Consolas,monospace; }
.status-badge::before { content:""; width:6px; height:6px; background:currentColor; }
.status-pending { color:var(--warning); border-color:#826c3f; background:rgba(117,90,28,.16); }
.status-approved { color:var(--ok); border-color:#54794c; background:rgba(71,111,53,.16); }
.status-rejected { color:var(--danger); border-color:#834c48; background:rgba(113,40,35,.16); }
.telegram-key { display:block; padding:14px; border:1px solid var(--line-strong); background:#101313; color:var(--accent); font:600 20px "SFMono-Regular",Consolas,monospace; letter-spacing:.15em; text-align:center; overflow-wrap:anywhere; }
.telegram-actions { display:flex; gap:10px; margin-top:10px; flex-wrap:wrap; }
.admin-review-shell { width:100%; max-width:1600px; margin:0 auto; }
.admin-page-header { position:relative; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:20px; padding:0 0 24px; border-bottom:1px solid var(--line); animation:panel-in .45s cubic-bezier(.2,.8,.2,1) both; }
.admin-page-header::before { content:"INVITE / CONTROL"; position:absolute; right:0; top:0; color:var(--dim); font:10px "SFMono-Regular",Consolas,monospace; letter-spacing:.16em; }
.admin-page-header .badge { margin-bottom:14px; }
.admin-page-header h1 { font-size:clamp(26px,3vw,36px); }
.admin-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.refresh-button svg { width:16px; height:16px; transition:transform .35s ease; }
.refresh-button:hover svg { transform:rotate(90deg); }
.refresh-button.is-loading svg { animation:spin .75s linear infinite; }
.review-list-panel { border:1px solid var(--line); background:rgba(41,41,41,.96); animation:panel-in .45s .08s cubic-bezier(.2,.8,.2,1) both; }
.review-list-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; padding:20px; border-bottom:1px solid var(--line); }
.review-list-toolbar h2 { margin:0; color:var(--text); font-size:16px; font-weight:600; }
.review-list-toolbar p { margin:6px 0 0; color:var(--muted); font-size:13px; }
.review-filter span { display:block; margin-bottom:6px; color:var(--muted); font-size:11px; font-weight:600; }
.review-filter select { min-width:150px; height:40px; }
.admin-table-wrap { overflow-x:auto; transition:opacity .2s ease, transform .2s ease; }
.admin-table-wrap.is-loading { opacity:.42; transform:translateY(4px); pointer-events:none; }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-table th { padding:13px 16px; color:var(--muted); background:#303030; border-bottom:1px solid var(--line); text-align:left; font:600 10px "SFMono-Regular",Consolas,monospace; letter-spacing:.1em; white-space:nowrap; }
.admin-table td { padding:13px 16px; color:var(--text); border-bottom:1px solid #414141; vertical-align:middle; }
.admin-table tbody tr { transition:.18s cubic-bezier(.2,.8,.2,1); animation:item-in .3s cubic-bezier(.2,.8,.2,1) both; }
.admin-table tbody tr:nth-child(2){animation-delay:.025s}.admin-table tbody tr:nth-child(3){animation-delay:.05s}.admin-table tbody tr:nth-child(4){animation-delay:.075s}.admin-table tbody tr:nth-child(5){animation-delay:.1s}
.admin-table tbody tr:hover { background:#303030; box-shadow:inset 2px 0 0 var(--line-strong); }
.admin-table .mono { color:var(--muted); font:12px "SFMono-Regular",Consolas,monospace; }
.copy-value { position:relative; display:inline-flex; align-items:center; min-height:36px; max-width:100%; padding:0 9px; border:1px solid transparent; background:transparent; color:var(--muted); cursor:pointer; overflow:hidden; transition:.18s cubic-bezier(.2,.8,.2,1); }
.copy-value code { max-width:100%; overflow:hidden; text-overflow:ellipsis; font:12px "SFMono-Regular",Consolas,monospace; }
.copy-value:hover { color:var(--text); background:#2d2d2d; border-color:var(--line-strong); }
.copy-value::before,.copy-target-button::before { content:""; width:0; height:0; margin-right:0; border:solid currentColor; border-width:0 2px 2px 0; opacity:0; transform:rotate(45deg) scale(.35) translate(-2px,-2px); transition:width .18s ease,height .18s ease,margin-right .18s ease,opacity .15s ease,transform .22s cubic-bezier(.2,1.4,.35,1); }
.copy-value.is-copied,.copy-target-button.is-copied { color:#202820 !important; background:#9ad7a9 !important; border-color:#b8ecc5 !important; box-shadow:inset 0 -3px 0 #6fae7e !important; animation:expiry-selected .3s cubic-bezier(.2,.9,.2,1); }
.copy-value.is-copied::before,.copy-target-button.is-copied::before { width:6px; height:11px; margin-right:9px; opacity:1; transform:rotate(45deg) scale(1) translate(-1px,-1px); }
.copy-target-button { position:relative; overflow:hidden; }
.copy-target-button .copy-icon { width:15px; height:15px; transition:opacity .18s ease,transform .24s cubic-bezier(.2,.8,.2,1); }
.copy-target-button.is-copied .copy-icon { display:none; }
.copy-target-button.is-copying { opacity:.62; pointer-events:none; }
.summary-dim { color:var(--dim); font-size:12px; }
.review-row > td:nth-child(2) { font-weight:600; }
.review-row { cursor:pointer; }
.review-row:focus-visible { outline:1px solid var(--text); outline-offset:-2px; }
.attachment-picker { display:block; padding:14px; border:1px dashed var(--line-strong); background:var(--surface-2); cursor:pointer; }
.attachment-picker input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.attachment-button { display:inline-flex; height:38px; align-items:center; padding:0 13px; border:1px solid var(--line-strong); color:var(--text); background:var(--surface-3); font-size:13px; }
.attachment-picker:hover .attachment-button { border-color:var(--text); }
.attachment-hint { display:block; margin-top:8px; color:var(--dim); font-size:12px; }
.review-modal { position:fixed; z-index:40; inset:0; display:grid; place-items:center; padding:20px; }
.review-modal[hidden] { display:none; }
.review-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.7); backdrop-filter:blur(2px); }
.review-modal-card { position:relative; z-index:1; width:min(720px,100%); max-height:90vh; overflow:auto; border:1px solid var(--line-strong); background:var(--surface); box-shadow:0 24px 80px rgba(0,0,0,.45); animation:panel-in .26s ease both; }
.review-modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:22px 24px 18px; border-bottom:1px solid var(--line); }
.review-modal-header h2 { margin:7px 0 0; font-size:22px; }
.review-modal-body { display:grid; gap:14px; padding:22px 24px 26px; }
.detail-actions { display:flex; gap:10px; padding-top:4px; }
.detail-actions form, .detail-actions > .btn { flex:1; }
.detail-actions .btn { width:100%; }
.reject-reason-input { width:100%; min-height:64px; padding:10px 12px; border:1px solid var(--line-strong); background:var(--surface-3); color:var(--text); font-size:13px; line-height:1.6; resize:vertical; }
.reject-reason-input:focus { outline:none; border-color:var(--accent); }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.detail-item { padding:13px; border:1px solid var(--line); background:var(--surface-2); }
.detail-item .info-tag { display:block; margin-bottom:7px; }
.detail-value { color:var(--text); font-size:14px; overflow-wrap:anywhere; }
.attachment-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.attachment-grid a { display:block; border:1px solid var(--line); background:#171717; }
.attachment-grid img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.row-actions { display:flex; gap:8px; align-items:center; }
.empty-state { padding:46px 20px; color:var(--dim); text-align:center; border:1px solid var(--line); background:var(--surface-2); }
.panel-footer { display:flex; justify-content:space-between; padding:17px 34px; border-top:1px solid var(--line); color:var(--dim); font:10px "SFMono-Regular",Consolas,monospace; letter-spacing:.15em; }
.panel-footer .ok { color:var(--accent); }
.is-loading { opacity:.65; pointer-events:none; }
@keyframes enter { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes rise { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:none} }
@keyframes panel-in { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
@keyframes item-in { from{opacity:0;transform:translateY(3px)} to{opacity:1;transform:translateY(0)} }
@keyframes interaction-triggered { 0%{transform:scale(.99)}65%{transform:scale(1.005)}100%{transform:scale(1)} }
@keyframes interaction-confirm { 0%{box-shadow:0 0 0 0 rgba(235,235,235,.24)}60%{box-shadow:0 0 0 5px rgba(235,235,235,0)}100%{box-shadow:none} }
@keyframes expiry-selected { 0%{transform:scale(.985)}65%{transform:scale(1.006)}100%{transform:scale(1)} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.35} }
@keyframes session-in { from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)} }
@keyframes session-out { to{opacity:0;transform:translateY(-6px)} }
.interaction-triggered { animation:interaction-triggered .28s cubic-bezier(.2,.9,.2,1); }
.interaction-confirm { animation:interaction-confirm .34s cubic-bezier(.2,.9,.2,1); }
@media (max-width:720px){ body{padding:22px 12px}.auth-entry{min-height:calc(100vh - 44px)}.panel-header{padding:25px 20px 21px}.panel-body{padding:20px}.notice{margin:13px 20px 0}.notice-session{top:12px;right:12px;left:12px;width:auto;margin:0}.panel-footer{padding:15px 20px;flex-direction:column;gap:8px}.panel-tools{flex-wrap:wrap}.panel-tools .badge{width:100%}.auth-buttons{width:100%}.auth-buttons .btn{flex:1}.field-grid{grid-template-columns:1fr}.info-item{grid-template-columns:1fr;gap:8px;padding:15px}.panel::after{display:none}.code-row{grid-template-columns:1fr}.code-row .btn{width:100%} }
@media (max-width:800px){.admin-page-header{align-items:flex-start;flex-direction:column}.admin-page-header::before{display:none}.admin-header-actions{width:100%;justify-content:flex-start}.review-list-toolbar{align-items:stretch;flex-direction:column}.review-filter select{width:100%}.admin-table-wrap{padding:14px}.admin-table,.admin-table tbody,.admin-table tr,.admin-table td{display:block;width:100%}.admin-table thead{display:none}.admin-table tr{margin-bottom:14px;padding:10px 14px;border:1px solid var(--line);background:var(--surface-2)}.admin-table td{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border:0;border-bottom:1px dashed var(--line);text-align:right}.admin-table td:last-child{border-bottom:0}.admin-table td::before{content:attr(data-label);color:var(--dim);font:11px "SFMono-Regular",Consolas,monospace;text-align:left}.admin-table td>*{max-width:58%;overflow-wrap:anywhere}.row-actions{flex-direction:column;align-items:stretch}.row-actions form,.btn-mini{width:100%}}
@media (max-width:600px){.detail-grid{grid-template-columns:1fr}.attachment-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.detail-actions{flex-direction:column}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
