.vip-page { width:min(600px,calc(100% - 40px)); margin:70px auto 100px; }
.vip-kicker { color:#987944; font-size:12px; font-weight:750; letter-spacing:.12em; }
.vip-page h1 { font-size:clamp(28px,5vw,40px); letter-spacing:-.04em; margin:12px 0 20px; }
.vip-page p { line-height:1.8; }
.vip-panel { background:#fffdf7; border:1px solid #dfcfad; border-radius:16px; padding:28px; margin-top:24px; box-shadow:0 0 18px #d7ba7820; }
.vip-form { display:grid; gap:18px; }
.vip-form label { display:grid; gap:8px; font-weight:650; font-size:14px; }
.vip-form input,.vip-form textarea,.vip-link { width:100%; box-sizing:border-box; border:1px solid var(--line,#ddd); border-radius:8px; padding:12px; font:inherit; background:#fff; color:var(--ink); }
.vip-form input:focus-visible,.vip-form textarea:focus-visible,.vip-link:focus-visible { outline:2px solid #987944; outline-offset:3px; }
.vip-form .vip-consent { display:flex; align-items:flex-start; gap:10px; font-weight:400; line-height:1.7; }
.vip-consent input { width:18px; height:18px; flex:none; margin-top:3px; }
.vip-muted { color:var(--muted,#746e66); font-size:13px; }
.vip-error { color:var(--red,#a6192e); white-space:pre-wrap; }
.vip-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.vip-actions button,.vip-form button,.vip-retry { border:1px solid var(--ink,#222); background:var(--ink,#222); color:#fff; border-radius:8px; min-height:44px; padding:10px 18px; font:inherit; font-size:14px; cursor:pointer; }
.vip-actions .vip-secondary { background:#fff; color:var(--ink); }
.vip-actions button:disabled,.vip-form button:disabled { opacity:.5; cursor:wait; }
.vip-status { display:inline-block; border-radius:999px; padding:5px 10px; background:#f1ede4; font-size:12px; font-weight:650; }
.vip-status-approved { background:#eaf6ec; color:#1c7a34; }
.vip-status-rejected { background:#fbecee; color:#a6192e; }
.vip-status-pending { background:#f8efda; color:#81632b; }
.vip-admin-section { margin:24px 0; padding:24px; border:1px solid var(--line,#ddd); border-radius:12px; background:#fff; }
.vip-admin-section h3 { margin:0 0 16px; font-size:17px; }
.vip-admin-section .vip-form { max-width:500px; }
.vip-request { padding:22px 0; border-top:1px solid var(--line,#ddd); }
.vip-request:first-child { border-top:0; }
.vip-request h4 { margin:0 0 8px; font-size:17px; overflow-wrap:anywhere; }
.vip-request dl { display:grid; grid-template-columns:90px 1fr; gap:9px 16px; font-size:14px; margin:16px 0; }
.vip-request dt { color:var(--muted); }
.vip-request dd { margin:0; overflow-wrap:anywhere; white-space:pre-wrap; }
.vip-filter { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.vip-filter button { border:1px solid var(--line); border-radius:999px; padding:8px 14px; font:inherit; background:#fff; cursor:pointer; }
.vip-filter button[aria-pressed=true] { background:var(--ink); color:#fff; }
.vip-invite-row { display:flex; justify-content:space-between; gap:14px; padding:14px 0; border-top:1px solid var(--line); align-items:center; }
.vip-invite-row span { overflow-wrap:anywhere; }
[hidden] { display:none !important; }
@media(max-width:600px) { .vip-page { margin-top:38px; }.vip-panel,.vip-admin-section { padding:20px; }.vip-request dl { grid-template-columns:74px 1fr; gap:8px 10px; }.vip-invite-row { align-items:flex-start; } }
