:root{
  --af-portal-bg:#040915;
  --af-portal-bg2:#07111f;
  --af-portal-panel:#08172a;
  --af-portal-panel-2:#0d2340;
  --af-portal-line:rgba(122,174,236,.52);
  --af-portal-line-strong:rgba(164,205,255,.82);
  --af-portal-text:#eef5ff;
  --af-portal-muted:#adc4dc;
  --af-portal-gold:#d2b073;
  --af-portal-blue:#72b8ff;
  --af-portal-violet:#9e7df0;
  --af-portal-shadow:0 18px 42px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.03);
  --af-portal-soft-shadow:0 10px 22px rgba(0,0,0,.28);
}
body.afador-portal-root{
  color:var(--af-portal-text)!important;
  background:
    radial-gradient(circle at 50% -10%, rgba(96,161,255,.18), transparent 26%),
    radial-gradient(circle at 82% 8%, rgba(123,88,218,.16), transparent 24%),
    radial-gradient(circle at 12% 16%, rgba(52,133,232,.12), transparent 22%),
    linear-gradient(180deg, rgba(5,12,23,.86), rgba(3,8,15,.95)),
    url('/assets/afador-library-bg-v19.png') center top / cover fixed no-repeat,
    var(--af-portal-bg)!important;
  font-family: Georgia, "Times New Roman", serif;
}
body.afador-portal-root::before,
body.afador-portal-root::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
}
body.afador-portal-root::before{
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.30)),
    linear-gradient(90deg, rgba(4,9,20,.52), transparent 18%, transparent 82%, rgba(4,9,20,.52));
}
body.afador-portal-root::after{
  background:
    radial-gradient(circle at 50% 38%, rgba(108,170,255,.08), transparent 18%),
    radial-gradient(circle at 50% 62%, rgba(130,96,226,.06), transparent 18%);
}
body.afador-portal-root #root{position:relative;z-index:1;min-height:100vh;}

body.afador-portal-root .topbar{
  background:linear-gradient(180deg, rgba(8,18,34,.95), rgba(7,15,28,.92))!important;
  color:#f2f6ff!important;
  border-bottom:1px solid rgba(120,173,236,.34)!important;
  box-shadow:0 14px 32px rgba(0,0,0,.38)!important;
  backdrop-filter:blur(12px);
}
body.afador-portal-root .topbar a,
body.afador-portal-root .topbar button{color:#f2f6ff!important}
body.afador-portal-root .brand,
body.afador-portal-root .topbar .brand{
  color:#fff!important;
  text-transform:uppercase;
  letter-spacing:.18em;
}
body.afador-portal-root .brand::before{content:"✦ ";color:var(--af-portal-gold)}
body.afador-portal-root .brand::after{content:" ❖";color:var(--af-portal-blue)}

body.afador-portal-root .page{max-width:1520px;padding:24px;position:relative}
body.afador-portal-root .page::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(10,22,39,.12), transparent 14%, transparent 86%, rgba(10,22,39,.12));
}
body.afador-portal-root .hero,
body.afador-portal-root .section-head{position:relative;z-index:1;gap:18px}
body.afador-portal-root h1,
body.afador-portal-root h2,
body.afador-portal-root h3,
body.afador-portal-root strong,
body.afador-portal-root label{color:#f7fbff}
body.afador-portal-root .muted,
body.afador-portal-root .brand-copy,
body.afador-portal-root small{color:var(--af-portal-muted)!important}
body.afador-portal-root a{color:#c9e3ff}

body.afador-portal-root .parchment,
body.afador-portal-root .panel,
body.afador-portal-root .char-card,
body.afador-portal-root .content-card,
body.afador-portal-root .crystal-card,
body.afador-portal-root .allocation-card,
body.afador-portal-root .derived-box,
body.afador-portal-root .energy-card,
body.afador-portal-root .dice-box,
body.afador-portal-root .go-room-card,
body.afador-portal-root .go-dashboard-banner,
body.afador-portal-root .go-board-wrap,
body.afador-portal-root .condition-card,
body.afador-portal-root .initiative-panel,
body.afador-portal-root .initiative-pending,
body.afador-portal-root .archived-card,
body.afador-portal-root .request-card,
body.afador-portal-root .content-body,
body.afador-portal-root .fatal-card,
body.afador-portal-root .backend-warning,
body.afador-portal-root .cms-preview,
body.afador-portal-root .cms-row,
body.afador-portal-root .resource-pill,
body.afador-portal-root .tech,
body.afador-portal-root .condition-line,
body.afador-portal-root .chat-msg,
body.afador-portal-root .chatbox,
body.afador-portal-root .dice-result,
body.afador-portal-root .go-moves-paper,
body.afador-portal-root .go-public-row,
body.afador-portal-root .go-rule-grid,
body.afador-portal-root .go-score-grid,
body.afador-portal-root .go-lore-note{
  background:linear-gradient(145deg, rgba(10,31,55,.96), rgba(4,14,26,.96))!important;
  color:var(--af-portal-text)!important;
  border:1px solid rgba(115,170,236,.42)!important;
  border-radius:16px!important;
  box-shadow:var(--af-portal-shadow)!important;
}
body.afador-portal-root .parchment::after,
body.afador-portal-root .panel::after,
body.afador-portal-root .char-card::after,
body.afador-portal-root .content-card::after,
body.afador-portal-root .allocation-card::after,
body.afador-portal-root .derived-box::after,
body.afador-portal-root .energy-card::after,
body.afador-portal-root .go-room-card::after,
body.afador-portal-root .crystal-card::after,
body.afador-portal-root .fatal-card::after{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid rgba(184,210,245,.15);
  border-radius:12px;
  pointer-events:none;
}
body.afador-portal-root .parchment::before,
body.afador-portal-root .panel::before,
body.afador-portal-root .char-card::before,
body.afador-portal-root .content-card::before,
body.afador-portal-root .allocation-card::before,
body.afador-portal-root .derived-box::before,
body.afador-portal-root .energy-card::before,
body.afador-portal-root .go-room-card::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(90deg, rgba(199,163,106,.12), transparent 12%, transparent 88%, rgba(113,173,255,.10));
}
body.afador-portal-root .hero,
body.afador-portal-root .section-head{
  background:linear-gradient(135deg, rgba(9,28,48,.90), rgba(4,16,28,.82));
  border:1px solid rgba(111,167,231,.40);
  border-radius:18px;
  box-shadow:var(--af-portal-shadow);
  padding:22px 24px;
}
body.afador-portal-root .hero::after{
  content:"";
  position:absolute;
  right:-80px;
  top:-88px;
  width:230px;
  height:230px;
  background:radial-gradient(circle, rgba(131,97,228,.18), transparent 64%);
  pointer-events:none;
}

body.afador-portal-root input,
body.afador-portal-root textarea,
body.afador-portal-root select{
  background:linear-gradient(180deg, rgba(4,12,22,.98), rgba(5,16,29,.92))!important;
  color:#f2f7ff!important;
  border:1px solid rgba(106,160,224,.60)!important;
  border-radius:10px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03), 0 8px 16px rgba(0,0,0,.14)!important;
}
body.afador-portal-root input::placeholder,
body.afador-portal-root textarea::placeholder{color:rgba(188,210,236,.64)!important}
body.afador-portal-root input:focus,
body.afador-portal-root textarea:focus,
body.afador-portal-root select:focus{
  outline:none!important;
  border-color:rgba(172,209,255,.94)!important;
  box-shadow:0 0 0 3px rgba(112,175,241,.18), inset 0 1px 0 rgba(255,255,255,.04)!important;
}

body.afador-portal-root .btn,
body.afador-portal-root button,
body.afador-portal-root .tabs a,
body.afador-portal-root .tabs button,
body.afador-portal-root .topbar nav a{
  background:linear-gradient(180deg, rgba(61,109,169,.96), rgba(42,80,129,.96))!important;
  color:#f4f8ff!important;
  border:1px solid rgba(143,192,245,.65)!important;
  border-radius:12px!important;
  box-shadow:0 12px 24px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.10)!important;
  text-decoration:none!important;
}
body.afador-portal-root .btn.primary,
body.afador-portal-root button.primary,
body.afador-portal-root .tabs .active,
body.afador-portal-root .tabs button.active,
body.afador-portal-root .topbar nav a.active{
  background:linear-gradient(180deg, rgba(89,142,212,.98), rgba(50,95,154,.98))!important;
}
body.afador-portal-root .btn.danger,
body.afador-portal-root button.danger,
body.afador-portal-root .btn.secondary,
body.afador-portal-root button.secondary{
  background:linear-gradient(180deg, rgba(118,79,178,.96), rgba(90,54,145,.96))!important;
  border-color:rgba(187,156,255,.56)!important;
}
body.afador-portal-root .btn:hover,
body.afador-portal-root button:hover,
body.afador-portal-root .tabs a:hover,
body.afador-portal-root .tabs button:hover,
body.afador-portal-root .topbar nav a:hover{
  transform:translateY(-1px);
  filter:brightness(1.06);
  box-shadow:0 14px 26px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.14)!important;
}
body.afador-portal-root .topbar nav{gap:10px}
body.afador-portal-root .topbar nav a,
body.afador-portal-root .tabs a,
body.afador-portal-root .tabs button{padding:8px 14px!important}
body.afador-portal-root .tabs a::before,
body.afador-portal-root .tabs button::before{content:"✦ ";color:var(--af-portal-gold)}

body.afador-portal-root .badge,
body.afador-portal-root .resource-pill,
body.afador-portal-root .status-pill,
body.afador-portal-root .go-player-badge{
  background:linear-gradient(180deg, rgba(23,45,77,.96), rgba(12,27,48,.96))!important;
  color:#eff6ff!important;
  border:1px solid rgba(122,175,236,.48)!important;
}

body.afador-portal-root .auth-wrap{
  display:grid;
  min-height:calc(100vh - 86px);
  place-items:center;
  padding:26px 18px 72px;
}
body.afador-portal-root .auth-card{
  width:min(560px,100%);
  min-height:780px;
  padding:184px 92px 88px!important;
  background:linear-gradient(180deg, rgba(7,22,39,.42), rgba(4,14,26,.66))!important;
  border:none!important;
  box-shadow:none!important;
  position:relative;
  overflow:visible!important;
}
body.afador-portal-root .auth-card::before{
  content:"";
  position:absolute;
  inset:-34px -56px -38px -56px;
  background:url('/assets/portal-theme/portal-auth-frame.png') center / contain no-repeat;
  pointer-events:none;
  z-index:0;
}
body.afador-portal-root .auth-card::after{
  content:none!important;
}
body.afador-portal-root .auth-card > *{position:relative;z-index:1}
body.afador-portal-root .auth-card form,
body.afador-portal-root .auth-card .stack{
  gap:14px;
  width:100%;
  max-width:356px;
  margin-inline:auto;
}
body.afador-portal-root .auth-card form{display:grid}
body.afador-portal-root .auth-card .sigil,
body.afador-portal-root .auth-card .auth-logo,
body.afador-portal-root .auth-card .brand-auth-card{display:none!important}
/* Native React login/registration switch must stay visible; afador_login_master_nav_v47.js positions it. */
body.afador-portal-root .auth-card .auth-switch-link.af52-auth-switch{display:flex!important}
body.afador-portal-root .auth-card h1{
  font-size:clamp(2.45rem,4.4vw,3.35rem);
  line-height:1.06;
  text-align:center;
  max-width:360px;
  margin:0 auto 12px;
}
body.afador-portal-root .auth-card .eyebrow{
  text-align:center;
  max-width:360px;
  margin:0 auto 12px;
  letter-spacing:.18em;
  color:var(--af-portal-gold)!important;
}
body.afador-portal-root .auth-card .muted{font-size:1rem; text-align:center; max-width:360px; margin:0 auto 20px}
body.afador-portal-root .auth-card input,
body.afador-portal-root .auth-card textarea,
body.afador-portal-root .auth-card select,
body.afador-portal-root .auth-card .btn,
body.afador-portal-root .auth-card button{width:100%}
body.afador-portal-root .auth-card label{display:grid;gap:6px;text-align:left}
body.afador-portal-root .auth-card label{text-align:left}
body.afador-portal-root .auth-card .actions,
body.afador-portal-root .auth-card .stack .actions{justify-content:center}
body.afador-portal-root .auth-card .btn,
body.afador-portal-root .auth-card button{min-height:46px}
body.afador-portal-root .auth-card .actions,
body.afador-portal-root .auth-card .stack .actions{max-width:356px;margin-inline:auto;width:100%}

body.afador-portal-root.afador-auth-screen .page{max-width:100%;padding:0 18px}
body.afador-portal-root.afador-auth-screen .topbar{background:linear-gradient(180deg, rgba(8,18,34,.82), rgba(7,15,28,.70))!important}
body.afador-portal-root.afador-auth-screen .afador-scroll-mechanisms{display:none!important}
body.afador-portal-root.afador-auth-screen::after{
  background:
    radial-gradient(circle at 50% 33%, rgba(102,168,255,.11), transparent 18%),
    radial-gradient(circle at 50% 70%, rgba(148,103,230,.10), transparent 18%),
    linear-gradient(180deg, rgba(3,8,14,.10), rgba(3,8,14,.20));
}

body.afador-portal-root .loading-screen{
  text-align:center;
  padding:32px 28px!important;
}
body.afador-portal-root .loading-screen::before{display:none}

@media (max-width: 900px){
  body.afador-portal-root .auth-card{
    width:min(100%, 540px);
    min-height:auto;
    padding:166px 42px 60px!important;
  }
  body.afador-portal-root .auth-card::before{inset:-24px -34px -24px -34px}
}
@media (max-width: 640px){
  body.afador-portal-root .page{padding:14px}
  body.afador-portal-root .topbar{padding:10px 14px!important}
  body.afador-portal-root .auth-wrap{padding:20px 10px 36px}
  body.afador-portal-root .auth-card{padding:146px 18px 34px!important}
  body.afador-portal-root .auth-card form,
  body.afador-portal-root .auth-card .stack,
  body.afador-portal-root .auth-card .actions{max-width:320px}
  body.afador-portal-root .auth-card::before{inset:-18px -18px -20px -18px}
  body.afador-portal-root .tabs{gap:8px}
  body.afador-portal-root .tabs a,
  body.afador-portal-root .tabs button,
  body.afador-portal-root .topbar nav a{padding:8px 12px!important}
}
