:root { color-scheme:dark; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; background:#0b0b0d; color:#f5f2ed; }
* { box-sizing:border-box; }
body { min-height:100dvh; margin:0; background:radial-gradient(circle at 78% 12%,#422218 0,transparent 26%),#0b0b0d; }
button,input,select { font:inherit; }
button { color:inherit; }
a { color:inherit; }
:where(a,button,input,select,textarea,[tabindex]):focus-visible { outline:2px solid #fff; outline-offset:3px; box-shadow:0 0 0 5px #f15b2a; }
.portal-topbar { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:70px; padding:0 5vw; border-bottom:1px solid #2a2a2f; background:#101013eF; }
.portal-brand { color:#fff; font-weight:950; letter-spacing:-.07em; text-decoration:none; }
.portal-brand span { margin-left:7px; color:#f15b2a; font-size:.58rem; letter-spacing:.1em; }
.portal-topbar nav { display:flex; align-items:center; gap:18px; color:#9a989d; font-size:.72rem; }
.portal-topbar button { border:0; background:transparent; color:#b6b2ad; cursor:pointer; text-decoration:underline; }
.access-shell { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(520px,1.1fr); min-height:calc(100dvh - 70px); }
.access-story { display:flex; flex-direction:column; justify-content:space-between; padding:clamp(40px,7vw,100px); border-right:1px solid #2a2a2f; background:linear-gradient(145deg,#1b1a1d,#101013 70%); }
.eyebrow { margin:0 0 12px; color:#f15b2a; font-size:.61rem; font-weight:900; letter-spacing:.16em; }
.access-story h1,.panel-heading h1 { max-width:750px; margin:0; font-size:clamp(42px,6vw,92px); line-height:.88; letter-spacing:-.075em; }
.access-story h1 em { color:#f15b2a; font:400 1em Georgia,serif; }
.access-story > div > p:not(.eyebrow) { max-width:510px; color:#aaa7ab; line-height:1.6; }
.benefit-list { display:grid; gap:12px; margin-top:38px; }
.benefit-list span { display:flex; align-items:center; gap:11px; color:#d8d5d0; font-size:.75rem; }
.benefit-list i { display:grid; place-items:center; width:25px; height:25px; border-radius:50%; background:#252126; color:#f15b2a; font-style:normal; font-weight:900; }
.access-note { color:#aaa7ad; font-size:.62rem; }
.access-card-wrap { display:grid; place-items:center; padding:40px; }
.access-card { width:min(520px,100%); padding:36px; border:1px solid #333339; border-radius:18px; background:#151519; box-shadow:0 30px 90px #0008; }
.access-tabs { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-bottom:30px; padding:4px; border-radius:10px; background:#0f0f12; }
.access-tabs button { border:0; border-radius:7px; background:transparent; color:#aaa7ad; padding:11px; cursor:pointer; font-size:.72rem; font-weight:800; }
.access-tabs button.active { background:#29252a; color:#fff; }
.access-form { display:none; }
.access-form.active { display:block; animation:enter .35s ease; }
#inviteLogout[hidden] { display:none; }
@keyframes enter { from { opacity:0; transform:translateY(8px); } }
.access-form h2 { margin:0; font-size:2.2rem; letter-spacing:-.06em; }
.access-form > p { margin:8px 0 25px; color:#85858c; font-size:.72rem; line-height:1.45; }
.field { display:grid; gap:7px; margin-bottom:14px; }
.field span { color:#aaa7ad; font-size:.65rem; }
.field input,.field select { width:100%; border:1px solid #36363c; border-radius:9px; outline:0; background:#1b1b20; color:#f5f2ed; padding:13px 14px; }
.field input:focus,.field select:focus { border-color:#f15b2a; box-shadow:0 0 0 3px #f15b2a1f; }
.primary-button,.secondary-button { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; border:0; border-radius:9px; padding:13px 16px; cursor:pointer; font-weight:850; }
.primary-button { background:#f15b2a; color:#17171a; box-shadow:0 10px 30px #f15b2a28; }
.secondary-button { border:1px solid #3a3a40; background:#1a1a1f; color:#d6d2cd; }
.text-button { display:block; width:max-content; margin:13px auto 0; padding:2px; border:0; background:transparent; color:#b8b3ad; cursor:pointer; font-size:.66rem; text-decoration:underline; text-underline-offset:3px; }
.recovery-reset { margin-top:14px; }
.form-message { min-height:20px; margin:12px 0 0; color:#ff8f84; font-size:.66rem; text-align:center; }
.form-message.success { color:#66cf86; }
.dashboard { width:min(1180px,92vw); margin:0 auto; padding:70px 0; }
.panel-heading { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:38px; }
.panel-heading h1 { font-size:clamp(44px,7vw,90px); }
.panel-heading p:last-child { max-width:420px; margin:0; color:#8b8990; line-height:1.55; }
.account-strip { display:flex; flex-wrap:wrap; gap:1px; overflow:hidden; margin-bottom:18px; border:1px solid #323238; border-radius:14px; background:#323238; }
.account-strip div { flex:1; min-width:180px; padding:18px; background:#151519; }
.account-strip small { display:block; margin-bottom:6px; color:#73737a; font-size:.57rem; letter-spacing:.08em; }
.account-strip strong { font-size:.78rem; }
.dashboard-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:18px; }
.site-card,.choice-card,.admin-card { padding:28px; border:1px solid #323238; border-radius:16px; background:#151519; }
.site-card h2,.choice-card h2,.admin-card h2 { margin:0; font-size:1.8rem; letter-spacing:-.055em; }
.site-card p,.choice-card p,.admin-card p { color:#85858c; font-size:.72rem; line-height:1.5; }
.site-empty { display:grid; place-items:center; min-height:280px; border:1px dashed #3a3a40; border-radius:12px; text-align:center; }
.site-empty div { max-width:380px; }
.site-empty span { display:grid; place-items:center; width:50px; margin:0 auto 18px; aspect-ratio:1; border-radius:50%; background:#261a17; color:#f15b2a; font-size:1.5rem; }
.choice-stack { display:grid; gap:10px; margin-top:22px; }
.choice-link { display:grid; grid-template-columns:45px 1fr auto; align-items:center; gap:13px; padding:14px; border:1px solid #34343a; border-radius:11px; background:#1a1a1f; text-decoration:none; transition:.2s; }
.choice-link:hover { border-color:#f15b2a; transform:translateX(4px); }
.choice-link > span:first-child { display:grid; place-items:center; width:42px; aspect-ratio:1; border-radius:9px; background:#28242a; color:#f15b2a; font-weight:900; }
.choice-link strong { display:block; font-size:.76rem; }
.choice-link small { color:#79777e; font-size:.6rem; }
.site-summary { display:grid; gap:14px; }
.site-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px; border:1px solid #34343a; border-radius:10px; }
.site-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.site-actions a,.site-actions button { border:1px solid #3a3a40; border-radius:7px; background:#1a1a1f; color:#d6d2cd; padding:7px 9px; cursor:pointer; font-size:.6rem; text-decoration:none; }
.site-actions button[data-unpublish] { border-color:#65373a; background:#2a181a; color:#ffaaa5; }
.status { border-radius:99px; padding:5px 8px; background:#30291b; color:#e8c56a; font-size:.55rem; font-weight:900; text-transform:uppercase; }
.admin-shell { width:min(1100px,92vw); margin:0 auto; padding:55px 0; }
.admin-access { max-width:520px; margin:0 auto 28px; }
.admin-access[hidden],#adminContent[hidden] { display:none; }
.portal-topbar nav button[hidden] { display:none; }
.admin-grid { display:grid; grid-template-columns:360px 1fr; gap:18px; align-items:start; }
.key-output { margin-top:18px; padding:17px; border:1px solid #f15b2a66; border-radius:10px; background:#251915; }
.key-output[hidden] { display:none; }
.key-output code { display:block; margin:8px 0; color:#ff9a76; font-size:1rem; font-weight:900; word-break:break-all; }
.key-list { display:grid; gap:9px; margin-top:20px; }
.key-row { display:grid; grid-template-columns:1fr auto; gap:12px; padding:14px; border:1px solid #313137; border-radius:10px; background:#111114; }
.billing-controls { margin-bottom:18px; }.billing-controls > div { display:flex; gap:10px; align-items:center; }.billing-controls input { min-width:0; border:1px solid #36363c; border-radius:9px; background:#1b1b20; color:#f5f2ed; padding:11px; }.billing-controls .secondary-button { width:auto; white-space:nowrap; }.billing-list,.notification-list { display:grid; gap:10px; margin-top:18px; }.billing-row { display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center; padding:14px; border:1px solid #313137; border-radius:10px; background:#111114; }.billing-row strong,.billing-row small,.notification-row strong,.notification-row small { display:block; }.billing-row small,.notification-row small { margin-top:4px; color:#74747b; font-size:.6rem; }.billing-actions { display:grid; gap:6px; }.billing-actions button { border:1px solid #3a3a40; border-radius:7px; background:#1a1a1f; color:#d6d2cd; padding:7px 9px; cursor:pointer; font-size:.6rem; }.notification-row { padding:12px 0; border-bottom:1px solid #303036; }
.key-row strong,.key-row small { display:block; }
.key-row small { margin-top:4px; color:#74747b; font-size:.58rem; }
.key-row button { border:1px solid #65373a; border-radius:7px; background:#2a181a; color:#ffaaa5; padding:7px 9px; cursor:pointer; font-size:.6rem; }
.key-row button:disabled { opacity:.35; cursor:not-allowed; }
.badge { display:inline-block; margin-left:7px; border-radius:99px; padding:3px 6px; background:#2d2d33; color:#aaa8ad; font-size:.5rem; text-transform:uppercase; }
.admin-navigation { flex-wrap:wrap; }
.admin-navigation a { color:#b8b3ad; font-size:.68rem; text-decoration:none; }
.admin-navigation a[aria-current="page"] { color:#fff; }
.admin-overview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
.admin-stat { min-width:0; padding:18px; border:1px solid #323238; border-radius:12px; background:#151519; }
.admin-stat small { display:block; margin-bottom:10px; color:#85858c; font-size:.56rem; letter-spacing:.08em; }
.admin-stat strong { font-size:clamp(1.4rem,3vw,2.2rem); letter-spacing:-.06em; }
.admin-section { margin-top:16px; }
.admin-section-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:16px; }
.admin-section-heading h2 { margin:0; font-size:1.55rem; letter-spacing:-.05em; }
.admin-section-heading .eyebrow { margin-bottom:7px; }
.admin-section-heading input { width:min(320px,100%); border:1px solid #36363c; border-radius:8px; background:#1b1b20; color:#f5f2ed; padding:10px 12px; }
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; text-align:left; }
.admin-table th { padding:10px 12px; border-bottom:1px solid #34343a; color:#828189; font-size:.55rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.admin-table td { padding:13px 12px; border-bottom:1px solid #29292f; color:#d9d6d1; font-size:.65rem; vertical-align:middle; }
.admin-table td strong,.admin-table td small { display:block; }
.admin-table td small { margin-top:5px; color:#828189; font-size:.58rem; }
.admin-status { display:inline-block; border-radius:99px; padding:5px 8px; background:#30291b; color:#e8c56a; font-size:.53rem; font-weight:850; text-transform:uppercase; white-space:nowrap; }
.admin-status.status-published,.admin-status.status-active { background:#142a20; color:#83d2a0; }
.admin-status.status-unpublished,.admin-status.status-expired { background:#2c1d20; color:#ed9a95; }
.admin-row-actions { min-width:145px; }
.admin-row-actions a,.admin-row-actions button { display:inline-block; margin:2px; border:1px solid #3a3a40; border-radius:7px; background:#1a1a1f; color:#e0dcd7; padding:7px 9px; cursor:pointer; font-size:.58rem; text-decoration:none; white-space:nowrap; }
.admin-row-actions button { border-color:#65373a; background:#2a181a; color:#ffaaa5; }
.admin-row-actions button:disabled { opacity:.55; cursor:wait; }
.admin-footnote { margin:14px 0 0; color:#73737a; font-size:.6rem; line-height:1.5; }
.admin-activity { display:grid; }
.admin-activity article { display:grid; grid-template-columns:32px 1fr; gap:10px; padding:13px 0; border-bottom:1px solid #2d2d33; }
.activity-mark { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:#28242a; color:#f15b2a; font-size:1rem; font-weight:900; }
.admin-activity strong,.admin-activity small { display:block; }
.admin-activity strong { font-size:.69rem; }
.admin-activity small { margin-top:4px; color:#818087; font-size:.57rem; }
.admin-activity article:last-child { border-bottom:0; }
@media (max-width:850px) {
  .access-shell { grid-template-columns:1fr; }
  .access-story { min-height:auto; padding:45px 22px; border-right:0; border-bottom:1px solid #2a2a2f; }
  .access-note { display:none; }
  .access-card-wrap { padding:24px 18px 50px; }
  .access-card { padding:25px 18px; }
  .panel-heading { align-items:start; flex-direction:column; }
  .dashboard-grid,.admin-grid { grid-template-columns:1fr; }
  .billing-controls > div,.billing-row { grid-template-columns:1fr; display:grid; }.billing-controls .secondary-button { width:100%; }.billing-actions { grid-template-columns:1fr 1fr; }
  .portal-topbar { padding:0 18px; }
  .admin-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-section-heading { align-items:stretch; flex-direction:column; }
  .admin-section-heading input { width:100%; }
  .admin-table { min-width:760px; }
}
