/* ============================================================
   FTM ACCESS ENGINE — front-end styles
   Rewritten to match the F The Matrix theme: zero radius, brand
   tokens, Bebas / DM Sans / Courier, the // motif, cinematic dark.
   Inherits the theme's CSS variables; falls back if absent.
   ============================================================ */
:root{
  --ftm-black:#080808; --ftm-off:#0e0e0e; --ftm-panel:#111; --ftm-border:#1e1e1e;
  --ftm-red:#c8102e; --ftm-red-dim:#7a0a1c; --ftm-white:#f0ece4; --ftm-grey:#5a5a5a; --ftm-lgrey:#999;
  --ftm-fd:'Bebas Neue',Impact,sans-serif; --ftm-fb:'DM Sans',-apple-system,Segoe UI,Arial,sans-serif; --ftm-fm:'Courier Prime','Courier New',monospace;
}

.ftm-access-box,.ftm-login-box{
  background:var(--off-black,var(--ftm-off));
  color:var(--white,var(--ftm-white));
  border:1px solid var(--border,var(--ftm-border));
  border-left:2px solid var(--red,var(--ftm-red));
  border-radius:0; padding:40px 38px; margin:28px 0; max-width:480px;
  font-family:var(--font-body,var(--ftm-fb)); position:relative;
}
.ftm-access-box::before,.ftm-login-box::before{
  content:'//'; position:absolute; top:18px; right:24px;
  font-family:var(--font-mono,var(--ftm-fm)); color:var(--red,var(--ftm-red));
  font-size:16px; opacity:.6; letter-spacing:.1em;
}
.ftm-access-box h3,.ftm-login-box h3{
  font-family:var(--font-display,var(--ftm-fd));
  font-size:clamp(30px,5vw,46px); line-height:.95; letter-spacing:.02em;
  font-weight:400; margin:0 0 8px; color:var(--white,var(--ftm-white));
}
.ftm-access-box .ftm-eyebrow,.ftm-login-box .ftm-eyebrow{
  font-family:var(--font-mono,var(--ftm-fm)); font-size:10px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--red,var(--ftm-red)); display:block; margin-bottom:14px;
}
.ftm-access-box p,.ftm-login-box p{
  font-size:14px; color:var(--light-grey,var(--ftm-lgrey)); font-weight:300; line-height:1.7; margin:0 0 18px;
}
.ftm-access-box input,.ftm-login-box input{
  width:100%; box-sizing:border-box;
  background:var(--black,var(--ftm-black));
  border:1px solid var(--border,var(--ftm-border));
  border-radius:0; color:var(--white,var(--ftm-white));
  padding:14px 15px; font-size:15px; font-family:inherit; margin:0 0 14px; transition:border-color .2s;
}
.ftm-access-box input::placeholder,.ftm-login-box input::placeholder{ color:var(--grey,var(--ftm-grey)); }
.ftm-access-box input:focus,.ftm-login-box input:focus{ outline:none; border-color:var(--red,var(--ftm-red)); }

.ftm-access-box button,.ftm-login-box button,
.ftm-portal-actions a,.ftm-portal-actions button{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--red,var(--ftm-red)); color:var(--white,var(--ftm-white));
  font-family:var(--font-display,var(--ftm-fd)); font-size:19px; letter-spacing:.06em;
  text-transform:uppercase; padding:14px 32px; border:none; border-radius:0;
  text-decoration:none; cursor:pointer; transition:all .25s ease;
}
.ftm-access-box button:hover,.ftm-login-box button:hover,
.ftm-portal-actions a:hover{ transform:translateY(-2px); box-shadow:0 12px 40px rgba(200,16,46,.35); color:var(--white,var(--ftm-white)); }
.ftm-access-box button{ width:100%; }

.ftm-portal-actions a.ftm-secondary{
  background:transparent; border:1px solid var(--border,var(--ftm-border)); color:var(--white,var(--ftm-white));
}
.ftm-portal-actions a.ftm-secondary:hover{ border-color:var(--red,var(--ftm-red)); color:var(--red,var(--ftm-red)); box-shadow:none; transform:translateY(-2px); }

.ftm-portal-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:18px; margin:28px 0; font-family:var(--font-body,var(--ftm-fb));
}
.ftm-portal-card{
  background:var(--off-black,var(--ftm-off)); border:1px solid var(--border,var(--ftm-border));
  border-radius:0; padding:28px 26px; position:relative; transition:border-color .2s;
}
.ftm-portal-card:hover{ border-color:var(--red,var(--ftm-red)); }
.ftm-portal-card .ftm-kind{
  font-family:var(--font-mono,var(--ftm-fm)); font-size:10px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--red,var(--ftm-red)); display:block; margin-bottom:10px;
}
.ftm-portal-card h3{
  font-family:var(--font-display,var(--ftm-fd)); font-size:26px; letter-spacing:.03em; font-weight:400;
  margin:0 0 10px; color:var(--white,var(--ftm-white)); line-height:1;
}
.ftm-portal-card p{ font-size:13px; color:var(--light-grey,var(--ftm-lgrey)); font-weight:300; line-height:1.6; margin:0 0 18px; }
.ftm-portal-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.ftm-portal-actions a{ font-size:16px; padding:11px 22px; }

.ftm-alert{
  padding:18px 22px; margin:18px 0; border-radius:0;
  background:rgba(200,16,46,.08); border:1px solid var(--red-dim,var(--ftm-red-dim));
  border-left:2px solid var(--red,var(--ftm-red));
  color:var(--white,var(--ftm-white)); font-family:var(--font-body,var(--ftm-fb)); font-weight:300;
}
.ftm-alert h3{
  font-family:var(--font-display,var(--ftm-fd)); font-size:30px; letter-spacing:.02em; font-weight:400;
  margin:0 0 8px; color:var(--white,var(--ftm-white));
}
.ftm-alert.ftm-success{ background:rgba(74,222,128,.07); border-color:#2f7d4f; border-left-color:#4ade80; }

.ftm-access-box.ftm-inline{ max-width:560px; }
.ftm-access-box.ftm-inline form{ display:flex; gap:10px; flex-wrap:wrap; }
.ftm-access-box.ftm-inline input{ flex:1; min-width:150px; margin:0; }
.ftm-access-box.ftm-inline button{ width:auto; white-space:nowrap; }

.ftm-fine{
  font-family:var(--font-mono,var(--ftm-fm)); font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--grey,var(--ftm-grey)); margin-top:14px;
}
.ftm-login-meta{ display:flex; justify-content:space-between; align-items:center; margin-top:4px; }
.ftm-login-meta a{ color:var(--grey,var(--ftm-grey)); font-size:12px; text-decoration:none; }
.ftm-login-meta a:hover{ color:var(--red,var(--ftm-red)); }

@media(max-width:600px){
  .ftm-access-box,.ftm-login-box{ padding:32px 26px; }
  .ftm-access-box.ftm-inline form{ flex-direction:column; }
  .ftm-access-box.ftm-inline button{ width:100%; }
}

/* ============================================================
   MEMBERS DASHBOARD — [ftm_members]
   ============================================================ */
.ftm-members{ max-width:1100px; margin:0 auto; padding:40px 0 60px; font-family:var(--font-body,var(--ftm-fb)); }
.ftm-members-head{ border-bottom:1px solid var(--border,var(--ftm-border)); padding-bottom:28px; margin-bottom:40px; }
.ftm-members-hello{ font-family:var(--font-display,var(--ftm-fd)); font-size:clamp(38px,6vw,64px); line-height:.92; letter-spacing:.02em; font-weight:400; margin:6px 0 14px; color:var(--white,var(--ftm-white)); }
.ftm-members-hello span{ color:var(--red,var(--ftm-red)); }
.ftm-members-tier{ font-family:var(--font-mono,var(--ftm-fm)); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--light-grey,var(--ftm-lgrey)); }
.ftm-members-tier strong{ color:var(--white,var(--ftm-white)); }

.ftm-tier-block{ margin-bottom:48px; }
.ftm-tier-bar{ display:flex; align-items:flex-end; justify-content:space-between; gap:18px; border-bottom:1px solid var(--border,var(--ftm-border)); padding-bottom:14px; margin-bottom:24px; }
.ftm-tier-status{ font-family:var(--font-mono,var(--ftm-fm)); font-size:10px; letter-spacing:.25em; text-transform:uppercase; color:var(--red,var(--ftm-red)); display:block; }
.ftm-tier-block.locked .ftm-tier-status{ color:var(--grey,var(--ftm-grey)); }
.ftm-tier-name{ font-family:var(--font-display,var(--ftm-fd)); font-size:30px; letter-spacing:.03em; font-weight:400; margin:6px 0 0; color:var(--white,var(--ftm-white)); line-height:1; }
.ftm-tier-block.locked .ftm-tier-name{ color:var(--light-grey,var(--ftm-lgrey)); }
.ftm-unlock{ flex-shrink:0; font-size:16px; padding:11px 24px; }
.ftm-tier-empty{ color:var(--grey,var(--ftm-grey)); font-style:italic; font-weight:300; }

/* locked tier veil */
.ftm-tier-veil{ position:relative; border:1px dashed var(--border,var(--ftm-border)); background:repeating-linear-gradient(45deg,rgba(255,255,255,.012) 0 10px,transparent 10px 20px); padding:36px 30px; text-align:center; }
.ftm-tier-veil p{ color:var(--grey,var(--ftm-grey)); font-weight:300; margin:0; max-width:560px; margin:0 auto; font-size:14px; }

/* community CTA */
.ftm-community-cta{ margin-top:24px; border:1px solid var(--border,var(--ftm-border)); border-left:2px solid var(--red,var(--ftm-red)); background:radial-gradient(ellipse 60% 80% at 20% 0%,rgba(200,16,46,.06),transparent 70%),var(--off-black,var(--ftm-off)); padding:44px 40px; }
.ftm-community-cta h3{ font-family:var(--font-display,var(--ftm-fd)); font-size:clamp(26px,4vw,40px); letter-spacing:.02em; font-weight:400; margin:10px 0 12px; color:var(--white,var(--ftm-white)); line-height:1.02; }
.ftm-community-cta p{ color:var(--light-grey,var(--ftm-lgrey)); font-weight:300; max-width:560px; margin:0 0 24px; line-height:1.7; }

@media(max-width:600px){
  .ftm-tier-bar{ flex-direction:column; align-items:flex-start; gap:14px; }
  .ftm-community-cta{ padding:32px 26px; }
}
