﻿/* =========================
   WORKOUT PAGE STYLES
   Page-specific CSS rules
   Organized by page for easy maintenance
   ========================= */

/* ===== PAGE: aulas.html ===== */
.page-aulas{
      min-height:100vh;
      background:#000;
    }

    .page-aulas .bgHero{
      position:fixed;
      inset:0;
      z-index:-10;
      overflow:hidden;
    }

    .page-aulas .bgHero img{
      width:100%;
      height:100%;
      object-fit:cover;
      opacity:.22;
      filter:contrast(1.05) saturate(.85);
    }

    .page-aulas .bgHero::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, rgba(0,0,0,.52) 0%, rgba(0,0,0,.78) 52%, rgba(0,0,0,.94) 100%);
    }

    .page-aulas .aulasWrap{
      padding-bottom:calc(var(--footer-total-height) + 28px);
    }

    .page-aulas .topRow{
      display:flex;
      gap:12px;
      align-items:flex-start;
      justify-content:space-between;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .page-aulas .titleBlock h2{
      margin:0;
      font-size:18px;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-weight:900;
    }

    .page-aulas .titleBlock p{
      margin:6px 0 0;
      color:rgba(255,255,255,.62);
      font-size:13px;
      line-height:1.35;
      max-width:560px;
    }

    .page-aulas .filters{
      width:100%;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
      margin-top:14px;
    }

    .page-aulas .filters .field{
      flex:1 1 160px;
      min-width:150px;
    }

    .page-aulas .filters input,
    .page-aulas .filters select{
      width:100%;
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.10);
      border-radius:14px;
      padding:10px 12px;
      color:rgba(255,255,255,.92);
      outline:none;
      font-size:14px;
    }

    .page-aulas .filters input::placeholder{
      color:rgba(255,255,255,.45);
    }

    .page-aulas .chipsRow{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      align-items:center;
      margin-top:10px;
    }

    .page-aulas .chip{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(0,0,0,.18);
      color:rgba(255,255,255,.85);
      font-size:12px;
      cursor:pointer;
      user-select:none;
    }

    .page-aulas .chip.active{
      border-color:rgba(255,212,0,.45);
      background:rgba(255,212,0,.10);
      color:rgba(255,255,255,.95);
    }

    .page-aulas .grid{
      display:grid;
      grid-template-columns:repeat(1, minmax(0, 1fr));
      gap:12px;
      margin-top:14px;
    }

    @media (min-width:820px){
      .page-aulas .grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }
    }

    .page-aulas .classCard{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      overflow:hidden;
      cursor:pointer;
      transition:transform .12s ease, border-color .12s ease;
    }

    .page-aulas .classCard:hover{
      transform:translateY(-1px);
      border-color:rgba(255,212,0,.28);
    }

    .page-aulas .cardInner{
      padding:14px 14px 12px;
    }

    .page-aulas .cardTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
    }

    .page-aulas .cardTitle{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      line-height:1.2;
    }

    .page-aulas .classBadge{
      font-size:11px;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      color:rgba(255,255,255,.85);
      background:rgba(0,0,0,.20);
      white-space:nowrap;
    }

    .page-aulas .classBadge.free{
      border-color:rgba(184,255,191,.25);
    }

    .page-aulas .classBadge.vip{
      border-color:rgba(255,212,0,.35);
    }

    .page-aulas .cardMeta{
      margin-top:8px;
      color:rgba(255,255,255,.70);
      font-size:13px;
      line-height:1.35;
    }

    .page-aulas .tags{
      display:flex;
      gap:6px;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .page-aulas .tag{
      font-size:11px;
      padding:6px 9px;
      border-radius:999px;
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.10);
      color:rgba(255,255,255,.78);
    }

    .page-aulas .empty{
      margin-top:16px;
      padding:14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.10);
      color:rgba(255,255,255,.70);
      background:rgba(255,255,255,.03);
    }

    .page-aulas .overlay{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.55);
      display:none;
      z-index:9998;
    }

    .page-aulas .drawer{
      position:fixed;
      right:0;
      top:0;
      height:100%;
      width:min(520px, 92vw);
      background:rgba(10,10,10,.96);
      border-left:1px solid rgba(255,255,255,.10);
      box-shadow:-18px 0 60px rgba(0,0,0,.45);
      transform:translateX(100%);
      transition:transform .18s ease;
      z-index:9999;
      display:flex;
      flex-direction:column;
    }

    .page-aulas .drawer.open{
      transform:translateX(0);
    }

    .page-aulas .drawerHeader{
      padding:16px 16px 10px;
      border-bottom:1px solid rgba(255,255,255,.08);
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
    }

    .page-aulas .drawerHeader h3{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:rgba(255,255,255,.95);
      line-height:1.2;
    }

    .page-aulas .drawerHeader .sub{
      margin-top:6px;
      color:rgba(255,255,255,.65);
      font-size:13px;
      line-height:1.35;
    }

    .page-aulas .btnClose{
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.10);
      border-radius:12px;
      padding:8px 10px;
      color:rgba(255,255,255,.85);
      cursor:pointer;
    }

    .page-aulas .drawerBody{
      padding:14px 16px 18px;
      overflow:auto;
    }

    .page-aulas .videoWrap{
      border-radius:16px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
    }

    .page-aulas .videoWrap iframe{
      width:100%;
      aspect-ratio:9 / 16;
      border:0;
      display:block;
    }

    .page-aulas .detailSection{
      margin-top:14px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      border-radius:16px;
      padding:12px 12px;
    }

    .page-aulas .detailSection h4{
      margin:0 0 6px;
      font-size:13px;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-weight:900;
    }

    .page-aulas .detailSection p{
      margin:0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.45;
      white-space:pre-line;
    }

    .page-aulas .kpis{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:10px;
    }

    .page-aulas .kpi{
      flex:1 1 150px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      border-radius:14px;
      padding:10px 10px;
    }

    .page-aulas .kpi .l{
      color:rgba(255,255,255,.55);
      font-size:11px;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .page-aulas .kpi .v{
      color:rgba(255,255,255,.90);
      font-size:13px;
      margin-top:4px;
      font-weight:800;
    }

    .page-aulas #toast{
      position:fixed;
      left:50%;
      bottom:calc(var(--footer-total-height) + 10px);
      transform:translateX(-50%);
      display:none;
      z-index:10000;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(10,10,10,.92);
      color:rgba(255,255,255,.88);
      font-size:13px;
      box-shadow:0 14px 50px rgba(0,0,0,.40);
      max-width:min(520px, 92vw);
      text-align:center;
    }

/* PAGE: contactos.html */
.page-contactos .contactHero{
      margin-top:10px;
    }

    .page-contactos .contactGrid{
      display:grid;
      grid-template-columns:1.05fr .95fr;
      gap:16px;
      margin-top:16px;
    }

    .page-contactos .contactInfo{
      display:flex;
      flex-direction:column;
      gap:14px;
    }

    .page-contactos .contactLine{
      display:flex;
      gap:12px;
      align-items:flex-start;
      padding:14px;
      border-radius:18px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
    }

    .page-contactos .contactIcon{
      width:38px;
      height:38px;
      border-radius:999px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(255,212,0,.12);
      border:1px solid rgba(255,212,0,.28);
      color:var(--yellow);
      font-weight:900;
      flex:0 0 auto;
    }

    .page-contactos .contactText strong{
      display:block;
      color:#fff;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.04em;
    }

    .page-contactos .contactText span{
      display:block;
      margin-top:6px;
      color:#d8d8d8;
      font-size:14px;
      line-height:1.45;
    }

    .page-contactos .mapCard{
      min-height:100%;
    }

    .page-contactos .mapBox{
      margin-top:14px;
      border-radius:22px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      min-height:360px;
    }

    .page-contactos .mapBox iframe{
      width:100%;
      height:360px;
      border:0;
      display:block;
    }

    .page-contactos .miniNote{
      margin-top:12px;
      color:rgba(255,255,255,.58);
      font-size:12px;
      line-height:1.4;
    }

    @media (max-width: 900px){
      .page-contactos .contactGrid{
        grid-template-columns:1fr;
      }
    }

/* PAGE: corrida.html */
/* extras mÃ­nimos sÃ³ para esta pÃ¡gina (mantÃ©m o teu layout) */
    .grid2{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-top: 14px;
    }
    @media (max-width: 860px){
      .grid2{ grid-template-columns: 1fr; }
    }
    .heroActions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
      justify-content:flex-end;
    }
    .kv2{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-top: 12px;
    }
    @media (max-width: 520px){
      .kv2{ grid-template-columns: 1fr; }
    }
    .kvBox{
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.03);
      border-radius: 16px;
      padding: 12px 14px;
    }
    .kvK{
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .10em;
      color: rgba(255,255,255,.60);
      margin:0;
    }
    .kvV{
      margin: 6px 0 0;
      font-weight: 900;
      color: rgba(255,255,255,.92);
      line-height:1.15;
    }

    /* Modal gate (sem alerts) */
    #gateModal{ position:fixed; inset:0; z-index:60; display:none; }
    #gateModal.open{ display:block; }
    #gateBackdrop{ position:absolute; inset:0; background:rgba(0,0,0,.65); }
    #gateBox{ position:relative; z-index:61; max-width:560px; margin:10vh auto 0; padding:0 16px; }
    .modalCard{
      border:1px solid rgba(255,255,255,.12);
      background:rgba(20,20,20,.92);
      backdrop-filter: blur(10px);
    }

    /* Toast simples */
    #toast{
      display:none;
      margin-top: 14px;
      padding: 12px 14px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      color: rgba(255,255,255,.88);
      font-weight: 800;
    }

    /* ForÃ§a alinhamento perfeito dos botÃµes dentro dos cards */
.card .actions{
  display:flex;
  gap:12px;
  align-items:stretch;
  flex-wrap:wrap;
}

/* Ambos ocupam mesma altura */
.card .actions .btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  height:56px;           /* altura fixa */
  min-width:200px;
}

/* Evita que um fique mais baixo que o outro */
.card .actions .btnGhost{
  border:1px solid rgba(255,255,255,.14);
}
.hero{
  display:flex;
  justify-content:space-between;
  align-items:center;   /* garante centro vertical */
  min-height:120px;     /* iguala a altura visual da barra */
}

.heroActions{
  display:flex;
  align-items:center;   /* centra verticalmente os botÃµes */
  gap:14px;
}

.heroActions .btn{
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;

/* PAGE: deka.html */
.wizardWrap{ max-width: 820px; margin: 0 auto; }
    .stepPill{
      display:inline-flex; align-items:center; gap:10px;
      padding:8px 12px; border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: rgba(255,255,255,.86);
      font-size:12px;
    }
    .stepDot{ width:10px; height:10px; border-radius:999px; background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .progressBar{
      width:100%; height:10px; border-radius:999px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.10);
      overflow:hidden;
      margin-top: 10px;
    }
    .progressFill{ height:100%; width:0%; background: rgba(255,212,0,.85); transition: width .25s ease; }
    .optionGrid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin-top: 12px;
    }
    @media (min-width: 720px){
      .optionGrid{ grid-template-columns: 1fr 1fr; }
    }
    .opt{
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
      cursor:pointer;
      transition: transform .08s ease, border-color .15s ease, background .15s ease;
      user-select: none;
    }
    .opt:hover{ transform: translateY(-1px); border-color: rgba(255,212,0,.22); background: rgba(255,255,255,.05); }
    .opt.active{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.08);
      box-shadow: 0 0 0 4px rgba(255,212,0,.08);
    }
    .optTitle{
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.92);
      font-size: 13px;
      margin: 0;
    }
    .optDesc{ margin-top: 6px; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.35; }
    .inlineRow{
      display:flex; gap:10px; flex-wrap:wrap;
      margin-top: 10px;
    }
    .select{
      flex: 1;
      min-width: 220px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: #fff;
      padding: 12px 12px;
      outline: none;
    }
    .hintBox{
      margin-top: 12px;
      padding: 12px;
      border-radius: 16px;
      border: 1px solid rgba(255,212,0,.18);
      background: rgba(255,212,0,.08);
      color: rgba(255,255,255,.86);
      line-height: 1.35;
      font-size: 13px;
    }
    .mutedSmall{ color: rgba(255,255,255,.65); font-size: 12px; margin-top: 8px; }
    .errBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(255,120,120,.22);
      background: rgba(255,120,120,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }
    .successBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(120,255,180,.18);
      background: rgba(120,255,180,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }

/* PAGE: estudio.html */
:root{
      --bg:#0a0a0a;
      --card:rgba(255,255,255,.06);
      --muted:rgba(255,255,255,.70);
      --soft:rgba(255,255,255,.12);
      --soft2:rgba(255,255,255,.08);
      --yellow:#B89C4A; /* athletic luxury gold */
      --gold:#A88E3C; /* deeper performance bronze */
      --ok:#b8ffbf;
      --danger:#ffb4b0;
      --r:24px;
      --pad:16px;
      --max:1040px;

      /* âœ… Troca por fotos tuas premium (sem texto) */
      --img-hero: url('https://images.unsplash.com/photo-1556817411-31ae72fa3ea0?auto=format&fit=crop&w=1600&q=70');
      --img-tread: url('https://images.unsplash.com/photo-1534438327276-14e5300c3a48?auto=format&fit=crop&w=1600&q=70');
      --img-gym:  url('https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=1600&q=70');
    }

    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;
      color:#fff;
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background:
        radial-gradient(1200px 800px at 15% -10%, rgba(214,177,94,.12), transparent 60%),
        radial-gradient(900px 600px at 95% 5%, rgba(255,212,0,.06), transparent 45%),
        var(--bg);
      overflow-x:hidden;
    }
    a{color:inherit; text-decoration:none}
    .wrap{max-width:var(--max); margin:0 auto; padding:0 var(--pad)}

    /* Topbar */
    .topbar{
      position:sticky; top:0; z-index:80;
      backdrop-filter: blur(12px);
      background: rgba(10,10,10,.70);
      border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .topbar .row{display:flex; align-items:center; justify-content:space-between; padding:14px var(--pad); max-width:var(--max); margin:0 auto; gap:12px}
    .brand{display:flex; align-items:baseline; gap:10px; letter-spacing:.08em}
    .brand .w{font-family:"Bebas Neue", sans-serif; font-size:26px; line-height:1; color:var(--yellow)}
    .brand .sub{font-size:11px; color:rgba(255,255,255,.62); text-transform:uppercase; letter-spacing:.18em; font-weight:800; transform: translateY(-1px); white-space:nowrap}
    .pill{
      display:inline-flex; align-items:center; justify-content:center;
      padding:10px 12px; border-radius:999px;
      border:1px solid rgba(214,177,94,.30);
      background: linear-gradient(180deg, rgba(214,177,94,.14), rgba(255,255,255,.02));
      font-weight:900; font-size:12px;
      letter-spacing:.08em; text-transform:uppercase;
      gap:8px; white-space:nowrap;
    }
    .dot{width:7px; height:7px; border-radius:50%; background:var(--gold)}

    /* Typography */
    .section{padding:18px 0}
    .h2{margin:0 0 6px; font-size:12px; text-transform:uppercase; letter-spacing:.22em; color: rgba(255,255,255,.70); font-weight:900}
    .title{margin:0; font-size:26px; letter-spacing:.01em; line-height:1.1; font-weight:900}
    .title .y{color:var(--yellow)}
    .lead{margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.55}

    /* Hero */
    .hero{
      position:relative;
      border-radius: 30px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      box-shadow: 0 22px 70px rgba(0,0,0,.68);
      background:
        linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.88)),
        radial-gradient(900px 520px at 18% -10%, rgba(214,177,94,.18), transparent 62%),
        var(--img-hero);
      background-size: cover;
      background-position:center;
    }
    .heroIn{padding:18px}
    .heroTitle{font-family:"Bebas Neue", sans-serif; letter-spacing:.08em; font-size:60px; line-height:.92; margin:0}
    .heroTitle span{color:var(--gold)}
    .heroLead{max-width:60ch; margin-top:10px; color:rgba(255,255,255,.78); font-size:14px; line-height:1.6}

    .heroBadges{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
    .badge{
      display:inline-flex; align-items:center; gap:8px;
      padding:9px 10px; border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(0,0,0,.28);
      font-size:11px; font-weight:900;
      letter-spacing:.14em; text-transform:uppercase;
      color: rgba(255,255,255,.86);
    }
    .badge b{color:var(--gold); letter-spacing:.10em}

    .ctaRow{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
    .btn{
      flex:1 1 auto;
      display:inline-flex; align-items:center; justify-content:center;
      padding:13px 14px;
      border-radius:18px;
      border:1px solid rgba(214,177,94,.30);
      background: rgba(255,255,255,.03);
      font-weight:900;
      letter-spacing:.10em;
      text-transform:uppercase;
      font-size:12px;
      gap:10px;
      min-width: 160px;
      cursor:pointer;
    }
    .btn.primary{
      background: linear-gradient(180deg, rgba(214,177,94,.22), rgba(214,177,94,.08));
      border-color: rgba(214,177,94,.42);
    }
    .arrow{width:18px; height:18px; border-radius:8px; background: rgba(214,177,94,.18); border:1px solid rgba(214,177,94,.35); display:flex; align-items:center; justify-content:center}
    .arrow:before{content:"âžœ"; font-weight:900; transform: translateX(1px); color: var(--gold); font-size:12px}

    /* Cards */
    .card{
      background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
      border: 1px solid rgba(255,255,255,.09);
      border-radius: var(--r);
      padding:16px;
      box-shadow: 0 14px 44px rgba(0,0,0,.50);
    }

    .grid3{display:grid; grid-template-columns:1fr; gap:12px; margin-top:12px}
    .grid2{display:grid; grid-template-columns:1fr; gap:12px; margin-top:12px}

    .svc{
      position:relative;
      border-radius:22px;
      padding:16px;
      border:1px solid rgba(255,255,255,.10);
      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
      overflow:hidden;
    }
    .svc:before{
      content:"";
      position:absolute; inset:-160px -160px auto auto;
      width:280px; height:280px; border-radius:50%;
      background: radial-gradient(circle at 30% 30%, rgba(214,177,94,.18), transparent 62%);
      transform: rotate(18deg);
      pointer-events:none;
    }
    .svc .name{margin:0; font-weight:900; font-size:18px; letter-spacing:.02em}
    .svc .sub{margin:6px 0 0; color:rgba(255,255,255,.70); font-size:13px}
    .val{margin:12px 0 0; display:flex; align-items:flex-end; gap:10px}
    .eur{font-family:"Bebas Neue", sans-serif; font-size:56px; line-height:1; letter-spacing:.04em; color:var(--yellow)}
    .per{color:rgba(255,255,255,.66); font-weight:900; text-transform:uppercase; letter-spacing:.14em; font-size:11px; margin-bottom:10px}

    .ul{margin:12px 0 0; padding:0; list-style:none; display:grid; gap:10px}
    .ul li{display:flex; gap:10px; color:rgba(255,255,255,.84); font-size:13px; line-height:1.35}
    .check{width:18px; height:18px; border-radius:8px; border:1px solid rgba(214,177,94,.30); background: rgba(214,177,94,.10); display:flex; align-items:center; justify-content:center; flex: 0 0 18px; margin-top:1px}
    .check:before{content:"âœ“"; color:var(--gold); font-weight:900; font-size:12px}

    .photoCard{
      border-radius: 26px;
      border: 1px solid rgba(255,255,255,.10);
      overflow:hidden;
      background:
        linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.88)),
        var(--img-tread);
      background-size: cover;
      background-position:center;
      min-height: 260px;
      box-shadow: 0 18px 60px rgba(0,0,0,.62);
    }
    .photoCard.two{
      background:
        linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.88)),
        var(--img-gym);
      background-size: cover;
      background-position:center;
    }
    .photoIn{padding:18px}
    .photoIn h3{margin:0; font-size:18px; font-weight:900; letter-spacing:.02em}
    .photoIn p{margin:8px 0 0; color:rgba(255,255,255,.78); font-size:13px; line-height:1.45; max-width: 50ch}

    /* Lead form */
    .form{margin-top:12px; border:1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.03); border-radius:24px; padding:14px}
    .form label{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.16em; font-weight:900; color:rgba(255,255,255,.70); margin:12px 0 6px}
    .form input, .form select, .form textarea{width:100%; border-radius:16px; border:1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.35); color:#fff; padding:12px 12px; font-size:14px; outline:none}
    .form textarea{min-height:90px; resize:vertical}
    .hint{margin:10px 0 0; color:rgba(255,255,255,.55); font-size:12px; line-height:1.5}

    /* Footer */
    .footer{padding:18px 0 32px; color: rgba(255,255,255,.62); font-size:12px; line-height:1.55}
    .line{height:1px; background: rgba(255,255,255,.10); margin:14px 0}

    /* Floating CTA */
    .floatCta{position:fixed; left:12px; right:12px; bottom:12px; z-index:90; display:flex; gap:10px; align-items:center; justify-content:space-between; padding:10px; border-radius:20px; border:1px solid rgba(214,177,94,.26); background: rgba(10,10,10,.70); backdrop-filter: blur(12px)}
    .floatCta .msg{display:flex; flex-direction:column; gap:2px; min-width:0}
    .floatCta .msg b{font-size:12px; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
    .floatCta .msg span{font-size:12px; color: rgba(255,255,255,.66); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
    .floatCta .go{flex:0 0 auto; padding:12px 12px; border-radius:16px; border:1px solid rgba(214,177,94,.38); background: linear-gradient(180deg, rgba(214,177,94,.22), rgba(214,177,94,.08)); font-weight:900; letter-spacing:.12em; text-transform:uppercase; font-size:11px; display:flex; align-items:center; gap:8px}

    @media(min-width:740px){
      .heroIn{padding:28px}
      .heroTitle{font-size:92px}
      .grid3{grid-template-columns:repeat(3,1fr)}
      .grid2{grid-template-columns:1fr 1fr}
      .floatCta{left:auto; right:18px; bottom:18px; width:520px}
    }

/* PAGE: evoluir.html */
/* =========================================================
     EVOLUIR (HISTÃ“RICO) â€” UI premium, sem mexer na lÃ³gica
     ========================================================= */

  body.page-history .historyWrap{
    padding-bottom: calc(var(--footer-total-height) + 28px);
  }

  body.page-history .heroRow{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-top:18px;
  }

  body.page-history .heroLeft{ min-width:0; }

  body.page-history .heroTitle{
    margin:0;
    font-size:24px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  body.page-history .heroSub{
    margin:8px 0 0;
    color: rgba(255,255,255,.70);
    font-size:13px;
    line-height:1.35;
  }

  body.page-history .heroPill{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
    color: rgba(255,255,255,.92);
    font-weight:900;
    letter-spacing:.02em;
    white-space:nowrap;
  }

  body.page-history .heroPill .dot{
    width:10px;height:10px;border-radius:999px;
    background: var(--yellow);
    box-shadow: 0 0 0 6px rgba(255,212,0,.12);
  }

  /* ===== Global State Card ===== */
  body.page-history .stateCard{
    margin-top:16px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.12);
    background:
      radial-gradient(1200px 340px at 20% 0%, rgba(255,212,0,.12), rgba(0,0,0,0)),
      rgba(255,255,255,.05);
    padding:16px;
    overflow:hidden;
  }

  body.page-history .stateRow{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
  }

  body.page-history .stateLeft{
    display:flex;
    gap:12px;
    align-items:flex-start;
    min-width:0;
  }

  body.page-history .stateIcon{
    width:44px;height:44px;border-radius:16px;
    display:flex;align-items:center;justify-content:center;
    font-weight:1000;
    border:1px solid rgba(255,255,255,.14);
    background: rgba(0,0,0,.22);
    flex:0 0 auto;
  }

  body.page-history .stateText{ min-width:0; }

  body.page-history .stateLabel{
    margin:0;
    font-size:14px;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    color: rgba(255,255,255,.92);
  }

  body.page-history .stateTitle{
    margin:6px 0 0;
    font-size:20px;
    font-weight:1000;
    color:#fff;
    line-height:1.15;
  }

  body.page-history .stateDesc{
    margin:8px 0 0;
    color: rgba(255,255,255,.74);
    font-size:13px;
    line-height:1.35;
  }

  body.page-history .stateRight{
    flex:0 0 auto;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
  }

  body.page-history .miniTag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(0,0,0,.20);
    font-size:12px;
    font-weight:900;
    color: rgba(255,255,255,.86);
    white-space:nowrap;
  }

  body.page-history .miniTag strong{ color:#fff; }

  body.page-history .stateCard.good .stateIcon{
    border-color: rgba(120,255,180,.22);
    background: rgba(120,255,180,.10);
  }

  body.page-history .stateCard.warn .stateIcon{
    border-color: rgba(255,212,0,.25);
    background: rgba(255,212,0,.10);
  }

  body.page-history .stateCard.alert .stateIcon{
    border-color: rgba(255,120,120,.22);
    background: rgba(255,120,120,.10);
  }

  /* ===== KPI grid ===== */
  body.page-history .kpiGrid{
    margin-top:14px;
    display:grid;
    grid-template-columns: repeat(5, minmax(190px, 1fr));
    gap:12px;
    align-items:stretch;
  }

  @media (max-width: 1120px){
    body.page-history .kpiGrid{ grid-template-columns: repeat(3, minmax(180px, 1fr)); }
  }

  @media (max-width: 720px){
    body.page-history .kpiGrid{ grid-template-columns: repeat(2, minmax(160px, 1fr)); }
  }

  @media (max-width: 420px){
    body.page-history .kpiGrid{ grid-template-columns: 1fr; }
  }

  body.page-history .kpi{
    border-radius:22px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.04);
    padding:14px;
    min-height:96px;
  }

  body.page-history .kpiTitle{
    margin:0;
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    color: rgba(255,255,255,.78);
  }

  body.page-history .kpiValue{
    margin:10px 0 0;
    font-size:30px;
    font-weight:1000;
    color:#fff;
    line-height:1;
    font-variant-numeric: tabular-nums;
  }

  body.page-history .kpiSub{
    margin:10px 0 0;
    color: rgba(255,255,255,.60);
    font-size:12px;
    line-height:1.25;
  }

  body.page-history .kpi.warn{
    border-color: rgba(255,120,120,.22);
    background: rgba(255,120,120,.08);
  }

  body.page-history .kpi.warn .kpiTitle{
    color: rgba(255,200,200,.90);
  }

  /* ===== Card list + filtros ===== */
  body.page-history .historyCard{
    margin-top:16px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    overflow:hidden;
  }

  body.page-history .historyHeader{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:16px;
    border-bottom:1px solid rgba(255,255,255,.08);
    background: linear-gradient(180deg, rgba(255,212,0,.08), rgba(255,255,255,.02));
  }

  body.page-history .historyHeaderLeft{ min-width:0; }

  body.page-history .historyHeader h2{
    margin:0;
    font-size:14px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  body.page-history .historyHeader p{
    margin:6px 0 0;
    color: rgba(255,255,255,.68);
    font-size:12px;
    line-height:1.3;
  }

  body.page-history .filters{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
    flex:0 0 auto;
    min-width: 320px;
  }

  @media (max-width: 920px){
    body.page-history .historyHeader{
      flex-direction:column;
      align-items:stretch;
    }
    body.page-history .filters{
      min-width:0;
      justify-content:flex-start;
    }
  }

  body.page-history .field{
    flex:1 1 220px;
    min-width: 200px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(0,0,0,.18);
    color:#fff;
    padding:12px 12px;
    outline:none;
  }

  body.page-history .field:focus{
    border-color: rgba(255,212,0,.28);
    box-shadow: 0 0 0 4px rgba(255,212,0,.08);
  }

  body.page-history select.field{ padding:12px; }

  body.page-history .historyList{
    padding:12px;
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  /* ===== item do histÃ³rico ===== */
  body.page-history .hItem{
    border-radius:22px;
    border:1px solid rgba(255,255,255,.10);
    background: rgba(0,0,0,.22);
    padding:14px;
    display:flex;
    gap:14px;
    align-items:flex-start;
    cursor:pointer;
    transition: transform .08s ease, border-color .08s ease, background .08s ease;
  }

  body.page-history .hItem:hover{
    background: rgba(0,0,0,.28);
    border-color: rgba(255,255,255,.14);
    transform: translateY(-1px);
  }

  body.page-history .hMain{ flex:1; min-width:0; }

  body.page-history .hRight{
    width:130px;
    text-align:right;
    flex:0 0 auto;
  }

  @media (max-width: 520px){
    body.page-history .hItem{ flex-direction:column; }
    body.page-history .hRight{ width:auto; text-align:left; }
  }

  body.page-history .hTopRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
  }

  body.page-history .hBadges{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    align-items:center;
  }

  body.page-history .tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    font-size:12px;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    color: rgba(255,255,255,.92);
    white-space:nowrap;
  }

  body.page-history .tag .dot{
    width:8px;height:8px;border-radius:999px;background: rgba(255,255,255,.55);
  }

  body.page-history .tag.amrap{
    border-color: rgba(255,212,0,.30);
    background: rgba(255,212,0,.10);
  }

  body.page-history .tag.amrap .dot{ background: var(--yellow); }

  body.page-history .tag.circuit{
    border-color: rgba(255,255,255,.14);
  }

  body.page-history .tag.intLow{ border-color: rgba(255,255,255,.14); }
  body.page-history .tag.intMed{ border-color: rgba(255,212,0,.22); background: rgba(255,212,0,.08); }
  body.page-history .tag.intHigh{ border-color: rgba(255,120,120,.25); background: rgba(255,120,120,.10); }

  body.page-history .tag.ok{
    border-color: rgba(120,255,180,.20);
    background: rgba(120,255,180,.10);
  }

  body.page-history .tag.ok .dot{ background: rgba(120,255,180,.95); }

  body.page-history .tag.warn{
    border-color: rgba(255,120,120,.25);
    background: rgba(255,120,120,.10);
  }

  body.page-history .tag.warn .dot{ background: rgba(255,120,120,.95); }

  body.page-history .hDate{
    color: rgba(255,255,255,.62);
    font-size:12px;
    white-space:nowrap;
  }

  body.page-history .hChips{
    margin-top:10px;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
  }

  body.page-history .chip{
    display:inline-flex;
    align-items:center;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    color: rgba(255,255,255,.86);
    font-size:12px;
    white-space:nowrap;
  }

  body.page-history .chip strong{
    color:#fff;
    margin-left:6px;
  }

  body.page-history .durBig{
    font-weight:1000;
    font-size:22px;
    color:#fff;
    font-variant-numeric: tabular-nums;
  }

  body.page-history .durSub{
    margin-top:6px;
    color: rgba(255,255,255,.60);
    font-size:12px;
    white-space:nowrap;
  }

  body.page-history .hEmpty{
    padding:16px;
    color: rgba(255,255,255,.65);
    font-size:13px;
  }

/* PAGE: gerar.html */
:root{
      --bg:#060606;
      --panel:#101010;
      --panel-2:#151515;
      --panel-3:#1b1b1b;
      --text:#ffffff;
      --muted:#b9b9b9;
      --muted-2:#8f8f8f;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#ffd400;
      --primary-dark:#151200;
      --success:#1fd07a;
      --shadow:0 18px 42px rgba(0,0,0,.28);
      --radius-xl:24px;
      --radius-lg:18px;
      --radius-md:14px;
      --max:1180px;
    }

    *{
      box-sizing:border-box;
    }

    html, body{
      margin:0;
      padding:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.10), transparent 20%),
        radial-gradient(circle at top left, rgba(255,255,255,.03), transparent 18%),
        var(--bg);
      color:var(--text);
    }

    body.page-app{
      min-height:100vh;
      padding-bottom:calc(120px + env(safe-area-inset-bottom, 0px));
    }

    .page-shell{
      width:100%;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter: blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .page-content{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(130px + env(safe-area-inset-bottom, 0px));
    }

    .hero-panel{
      position:relative;
      overflow:hidden;
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      gap:18px;
      min-height:180px;
      padding:26px 24px;
      border:1px solid var(--line);
      border-radius:26px;
      background:
        linear-gradient(135deg, rgba(255,212,0,.14), rgba(255,212,0,.05) 28%, rgba(255,255,255,.02) 70%, rgba(255,255,255,.01) 100%),
        var(--panel);
      box-shadow:var(--shadow);
    }

    .hero-panel::after{
      content:"";
      position:absolute;
      top:-40px;
      right:-40px;
      width:180px;
      height:180px;
      background:radial-gradient(circle, rgba(255,212,0,.18), transparent 70%);
      pointer-events:none;
    }

    .hero-copy{
      position:relative;
      z-index:1;
      max-width:760px;
    }

    .hero-kicker{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .hero-title{
      margin:14px 0 0;
      font-size:42px;
      line-height:.95;
      font-weight:900;
      letter-spacing:-.03em;
      text-transform:uppercase;
    }

    .hero-title span{
      display:block;
      color:var(--primary);
    }

    .hero-sub{
      margin:14px 0 0;
      max-width:680px;
      color:#d4d4d4;
      font-size:15px;
      line-height:1.6;
    }

    .status-pill{
      position:relative;
      z-index:1;
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:44px;
      padding:0 15px;
      border-radius:999px;
      background:rgba(255,212,0,.12);
      border:1px solid rgba(255,212,0,.22);
      color:#fff4b2;
      font-size:13px;
      font-weight:800;
      white-space:nowrap;
    }

    .status-pill .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--primary);
      box-shadow:0 0 0 4px rgba(255,212,0,.13);
      flex:0 0 auto;
    }

    .card-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
      margin-top:18px;
    }

    .app-card{
      position:relative;
      overflow:hidden;
      min-height:250px;
      padding:22px;
      border:1px solid var(--line);
      border-radius:24px;
      background:linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,.015));
      box-shadow:var(--shadow);
    }

    .app-card::after{
      content:"";
      position:absolute;
      right:-50px;
      bottom:-50px;
      width:140px;
      height:140px;
      background:radial-gradient(circle, rgba(255,212,0,.06), transparent 70%);
      pointer-events:none;
    }

    .card-top{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:14px;
      margin-bottom:14px;
    }

    .card-title{
      margin:0;
      font-size:22px;
      line-height:1.08;
      font-weight:900;
      letter-spacing:-.02em;
      text-transform:uppercase;
    }

    .card-desc{
      margin:8px 0 0;
      color:var(--muted);
      font-size:14px;
      line-height:1.6;
      max-width:520px;
    }

    .soft-pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid var(--line-2);
      background:rgba(255,255,255,.03);
      color:#f2f2f2;
      font-size:13px;
      font-weight:800;
      white-space:nowrap;
    }

    .soft-pill .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--success);
      box-shadow:0 0 0 4px rgba(31,208,122,.11);
      flex:0 0 auto;
    }

    .feature-list{
      display:grid;
      gap:12px;
      margin-top:16px;
    }

    .feature-item{
      display:flex;
      align-items:flex-start;
      gap:14px;
      padding:14px 16px;
      border-radius:18px;
      border:1px solid rgba(255,255,255,.06);
      background:rgba(255,255,255,.02);
    }

    .feature-icon{
      width:42px;
      height:42px;
      border-radius:14px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(255,212,0,.12);
      color:var(--primary);
      font-size:15px;
      font-weight:900;
      flex:0 0 auto;
    }

    .feature-copy strong{
      display:block;
      margin:0 0 4px;
      font-size:15px;
      line-height:1.3;
      color:#fff;
    }

    .feature-copy span{
      display:block;
      color:#bcbcbc;
      font-size:13px;
      line-height:1.5;
    }

    .tag-row{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:18px;
    }

    .tag{
      display:inline-flex;
      align-items:center;
      min-height:36px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
      color:#e8e8e8;
      font-size:12px;
      font-weight:800;
    }

    .action-row{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:24px;
    }

    .btn-app{
      appearance:none;
      border:0;
      outline:0;
      cursor:pointer;
      min-height:50px;
      padding:0 22px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.02em;
      transition:.18s ease;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      text-align:center;
    }

    .btn-app:hover{
      transform:translateY(-1px);
    }

    .btn-primary{
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.14);
    }

    .btn-ghost{
      background:rgba(255,255,255,.04);
      color:#fff;
      border:1px solid rgba(255,255,255,.10);
    }

    .btn-ghost:hover{
      background:rgba(255,255,255,.07);
    }

    .card-note{
      margin-top:16px;
      color:#a9a9a9;
      font-size:12px;
      line-height:1.5;
    }

    .locked{
      opacity:.95;
    }

    .lock-overlay{
      position:absolute;
      inset:0;
      z-index:5;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:10px;
      background:rgba(5,5,5,.62);
      backdrop-filter: blur(5px);
    }

    .lock-badge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:44px;
      padding:0 16px;
      border-radius:999px;
      background:rgba(255,212,0,.14);
      border:1px solid rgba(255,212,0,.24);
      color:#fff4b8;
      font-size:13px;
      font-weight:900;
    }

    .lock-hint{
      max-width:220px;
      color:#d2d2d2;
      font-size:13px;
      text-align:center;
      line-height:1.5;
    }

    .app-modal{
      position:fixed;
      inset:0;
      z-index:60;
      display:none;
    }

    .app-modal.is-open{
      display:block;
    }

    .app-modal-backdrop{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.68);
      backdrop-filter: blur(4px);
    }

    .app-modal-box{
      position:relative;
      z-index:61;
      width:min(560px, calc(100vw - 28px));
      margin:9vh auto 0;
      padding:22px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.10);
      background:linear-gradient(180deg, rgba(24,24,24,.98), rgba(14,14,14,.98));
      box-shadow:0 22px 60px rgba(0,0,0,.45);
    }

    .app-modal-header{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:14px;
      margin-bottom:14px;
    }

    .app-modal-title{
      margin:0;
      font-size:22px;
      line-height:1.15;
      font-weight:900;
      letter-spacing:-.02em;
    }

    .app-modal-desc{
      margin:8px 0 0;
      color:#c8c8c8;
      font-size:14px;
      line-height:1.55;
    }

    .btn-icon{
      min-width:42px;
      width:42px;
      height:42px;
      padding:0;
      border-radius:14px;
    }

    .modal-list{
      display:grid;
      gap:10px;
      margin:14px 0 0;
      padding:0;
      list-style:none;
    }

    .modal-list li{
      padding:12px 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.06);
      background:rgba(255,255,255,.03);
      color:#dddddd;
      font-size:14px;
      line-height:1.55;
    }

    .modal-actions{
      display:flex;
      gap:10px;
      margin-top:18px;
    }

    .modal-actions .btn-app{
      flex:1;
    }

    .modal-note{
      margin:14px 0 0;
      color:#aaaaaa;
      font-size:12px;
      line-height:1.5;
    }

    .user-bar strong{
      color:#fff;
    }

    @media (max-width: 980px){
      .card-grid{
        grid-template-columns:1fr;
      }

      .hero-panel{
        flex-direction:column;
        align-items:flex-start;
        min-height:auto;
      }

      .user-bar{
        text-align:left;
      }

      .page-header-box{
        flex-direction:column;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .page-content{
        padding:8px 14px calc(130px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box,
      .hero-panel,
      .app-card,
      .app-modal-box{
        border-radius:20px;
      }

      .hero-panel{
        padding:20px 18px;
      }

      .hero-title{
        font-size:31px;
      }

      .app-card{
        padding:18px;
      }

      .card-top{
        flex-direction:column;
        align-items:flex-start;
      }

      .action-row,
      .modal-actions{
        flex-direction:column;
      }

      .btn-app{
        width:100%;
      }
    }

/* PAGE: gerar_plano_corrida.html */
/* ===== Layout geral ===== */
.page-generator main{ padding-bottom: 110px; }

.container{
  max-width: 760px;
  margin: 0 auto;
  padding: 18px 18px 0;
}

.progress{
  height:10px;
  border-radius:999px;
  background: rgba(255,255,255,.08);
  overflow:hidden;
  margin-top: 18px;
}
.progress-bar{
  height: 100%;
  width: 0%;
  background: rgba(255,212,0,.95);
  transition: .25s;
}
.progress-text{
  margin-top: 10px;
  font-size: 12px;
  color: rgba(255,255,255,.65);
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ===== Steps ===== */
.step{
  display:none;
  margin-top: 18px;
  padding: 22px;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.10);
  background: radial-gradient(circle at top left, rgba(255,212,0,.12), transparent 40%),
              rgba(255,255,255,.04);
}
.step.active{ display:block; }

.step h2{
  margin: 0 0 14px;
  font-size: 18px;
  letter-spacing: .08em;
  font-weight: 900;
  text-transform: uppercase;
  color: rgba(255,255,255,.95);
}

/* ===== UI ===== */
.grid-2{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grid-3{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.grid-7{ display:grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.row2{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.inp{
  width:100%;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding: 14px;
  color: #fff;
  outline: none;
}

.hint{
  margin-top: 8px;
  font-size: 12px;
  color: rgba(255,255,255,.55);
}

.msgErr{ color: #ffb4b0; }
.msgOk{ color: rgba(255,255,255,.75); }

.backBtn{
  margin: 16px auto 0;
  display: inline-flex;
  align-items:center;
  justify-content:center;
  width: 100%;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  padding: 14px 12px;
  color: rgba(255,255,255,.78);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
}

/* dias */
.dayChip{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  border-radius: 999px;
  padding: 12px 0;
  text-align: center;
  font-size: 12px;
  cursor: pointer;
  user-select:none;
}
.dayChip.active{
  border-color: rgba(255,212,0,.75);
  background: rgba(255,212,0,.18);
}

/* ===== VIP badge ===== */
.vipBadge{
  display:inline-block;
  font-size:10px;
  padding:6px 10px;
  border-radius:999px;
  background:#FFD400;
  color:#000;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
}
.hidden{ display:none !important; }

/* ===== FIX: separar botÃµes de escolha vs primÃ¡rios ===== */

/* botÃµes de escolha (neutros) */
.btnChoice{
  width:100%;
  border-radius: 20px;
  padding: 14px 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 12px;
  cursor: pointer;
}
.btnChoice.active{
  border-color: rgba(255,212,0,.75) !important;
  background: rgba(255,212,0,.18) !important;
  color: rgba(255,255,255,.95) !important;
}

/* botÃµes primÃ¡rios (Continuar / Gerar) */
.btnPrimary{
  width:100%;
  border-radius: 20px;
  padding: 14px 12px;
  border: 0;
  background: #FFD400 !important;
  color: #000 !important;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  cursor: pointer;
}
.btnPrimary:active{ transform: scale(.99); }

/* PAGE: historico.html */
*{box-sizing:border-box}
:root{--yellow:#FFD400;--white10:rgba(255,255,255,.10);--white20:rgba(255,255,255,.20)}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#000;color:#fff}
header{padding:24px}
header h1{margin:0;color:var(--yellow);letter-spacing:3px}
header p{margin:4px 0 0;font-size:12px;color:#aaa;text-transform:uppercase}
.container{
  width:100%;
  max-width:1400px;     /* grande, fluido */
  margin:0 auto;
  padding:0 56px 240px; /* mais respiro */
}

.card{background:var(--white10);border:1px solid var(--white20);border-radius:18px;padding:16px;margin-top:14px}
.title{font-size:16px;font-weight:900;letter-spacing:1px;text-transform:uppercase;margin:0 0 10px}
.item{padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);margin-bottom:10px}
.small{font-size:12px;color:#bbb}
footer{position:fixed;bottom:0;left:0;right:0;background:#000;border-top:1px solid #222}
footer nav{
  width:min(720px, calc(100% - 24px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,1fr);
}
footer a{padding:12px 0;text-align:center;font-size:11px;color:#888;text-decoration:none}
footer a.active{color:var(--yellow)}

/* PAGE: historico_detalhe.html */
.page-history-detail .detailWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-history-detail .ctaStack{
      margin-top:18px;
      display:flex;
      flex-direction:column;
      gap:12px;
    }

    .page-history-detail .cta{
      height:64px;
      border-radius:18px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.6px;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      text-decoration:none;
      user-select:none;
      transition: transform .08s ease, filter .12s ease, background .12s ease, border-color .12s ease;
    }

    .page-history-detail .cta:active{
      transform: scale(.99);
    }

    .page-history-detail .ctaPrimary{
      background: var(--yellow);
      color:#000;
      border:1px solid rgba(255,212,0,.35);
    }

    .page-history-detail .ctaPrimary:hover{
      filter:brightness(1.03);
    }

    .page-history-detail .ctaOutline{
      background: transparent;
      color: var(--yellow);
      border:2px solid rgba(255,212,0,.95);
      box-shadow: 0 0 0 1px rgba(255,212,0,.15) inset;
    }

    .page-history-detail .ctaOutline:hover{
      background: rgba(255,212,0,.06);
    }

    .page-history-detail .ctaDark{
      background: rgba(255,255,255,.06);
      color:#fff;
      border:1px solid rgba(255,255,255,.18);
    }

    .page-history-detail .ctaDark:hover{
      background: rgba(255,255,255,.10);
    }

    .page-history-detail .detailHeader{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:12px;
      margin-bottom:10px;
    }

    .page-history-detail .detailHeaderLeft{
      display:flex;
      flex-direction:column;
      gap:8px;
      min-width:0;
    }

    .page-history-detail .detailDate{
      font-weight:900;
      font-size:18px;
      letter-spacing:.2px;
      color:#fff;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }

    .page-history-detail .pillRow{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
    }

    .page-history-detail .pillSmall{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      letter-spacing:.6px;
      text-transform:uppercase;
      width:fit-content;
    }

    .page-history-detail .pillSmall.amrap{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.10);
      color:#fff;
    }

    .page-history-detail .pillSmall.source{
      border-color: rgba(255,255,255,.18);
      background: rgba(0,0,0,.22);
      color: rgba(255,255,255,.92);
    }

    .page-history-detail .rowsWrap{
      margin-top:10px;
    }

    .page-history-detail .rowsWrap .sectionTitle{
      display:flex;
      align-items:center;
      justify-content:space-between;
      margin:14px 0 8px 0;
      font-weight:800;
      letter-spacing:.04em;
      text-transform:uppercase;
      font-size:11px;
      color:#cfcfcf;
    }

    .page-history-detail .rowsWrap .line{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      padding:12px 12px;
      margin:10px 0;
      border-radius:16px;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.08);
    }

    .page-history-detail .rowsWrap .leftCol{
      flex:1;
      min-width:0;
    }

    .page-history-detail .rowsWrap .rightCol{
      flex:0 0 auto;
      font-weight:900;
      color:#fff;
      opacity:.95;
      white-space:nowrap;
      font-variant-numeric: tabular-nums;
    }

    .page-history-detail .rowsWrap .mainName{
      font-weight:900;
      color:#fff;
      font-size:14px;
      line-height:1.2;
    }

    .page-history-detail .rowsWrap .subName{
      margin-top:5px;
      color:rgba(255,255,255,.70);
      font-size:12px;
      line-height:1.25;
    }

    .page-history-detail .exMeta{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:6px;
    }

    .page-history-detail .chip{
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      color:rgba(255,255,255,.82);
      font-size:12px;
      font-weight:800;
    }

    .page-history-detail .chip strong{
      color:#fff;
    }

/* PAGE: hoje.html */
.hidden{ display:none !important; }

    .page-today .pageTodayWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-today .heroToday{
      border-radius: 28px;
      padding: 30px;
      margin-bottom: 24px;
      background:
        radial-gradient(1000px 500px at 30% 0%, rgba(255,212,0,.20), transparent 60%),
        rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
    }

    .page-today .heroTopRow{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      flex-wrap:wrap;
    }

    .page-today .heroTitle{
      font-size: 26px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .page-today .heroDate{
      margin-top: 8px;
      font-size: 13px;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.75);
    }

    .page-today .heroActions{
      margin-top: 18px;
      display:flex;
      gap:14px;
      flex-wrap:wrap;
    }

    .page-today .heroRight{
      text-align:right;
      font-size:12px;
      color: rgba(255,255,255,.72);
      line-height:1.4;
    }

    .page-today .heroRight strong{
      color:#fff;
    }

    .page-today .card{
      margin-bottom: 22px;
    }

    .page-today .sectionTitle{
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-size: 14px;
      margin-bottom: 14px;
      display:flex;
      align-items:center;
      justify-content: space-between;
      gap: 14px;
    }

    .page-today .dayCard{
      border-radius: 18px;
      border: 1px solid rgba(255,255,255,.08);
      background: rgba(0,0,0,.18);
      padding: 18px;
    }

    .page-today .emptyBlock{
      text-align:center;
      padding: 30px 10px;
      opacity:.88;
    }

    .page-today .btn{
      border-radius: 16px;
      padding: 14px 20px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      cursor:pointer;
    }

    .page-today .btn[disabled]{
      opacity:.55;
      cursor:not-allowed;
    }

    .page-today .btnPrimary{
      background: #FFD400;
      color: #000;
    }

    .page-today .btnGhost{
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: #fff;
    }

    .page-today .smallBtn{
      padding: 10px 14px;
      border-radius: 14px;
      font-size: 12px;
    }

    .page-today .muted{
      font-size: 13px;
      color: rgba(255,255,255,.70);
      line-height: 1.45;
    }

    .page-today .hr{
      height:1px;
      background: rgba(255,255,255,.08);
      margin: 14px 0;
    }

    .page-today .item{
      border-radius: 18px;
      border: 1px solid rgba(255,255,255,.08);
      background: rgba(255,255,255,.03);
      padding: 16px;
      margin-top: 10px;
    }

    .page-today .itemHead{
      display:flex;
      justify-content:space-between;
      gap:12px;
      font-weight:900;
      letter-spacing:.04em;
    }

    .page-today .itemSub{
      margin-top:8px;
      font-size:12px;
      color: rgba(255,255,255,.72);
    }

    .page-today .itemActions{
      margin-top:12px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .page-today .kv{
      font-size:13px;
      color: rgba(255,255,255,.78);
      line-height: 1.6;
    }

    .page-today .pill{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width: 28px;
      height: 22px;
      padding: 0 10px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      font-size: 12px;
      color: rgba(255,255,255,.80);
    }

    .page-today .line{
      display:flex;
      justify-content:space-between;
      gap:12px;
      padding: 12px 10px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.06);
      background: rgba(0,0,0,.12);
      margin-top: 10px;
    }

    .page-today .leftCol{
      min-width: 0;
    }

    .page-today .rightCol{
      flex: 0 0 auto;
      font-weight: 900;
      letter-spacing: .04em;
      color: rgba(255,255,255,.92);
    }

    .page-today .mainName{
      font-weight: 900;
      letter-spacing: .02em;
    }

    .page-today .subName{
      margin-top:4px;
      font-size:12px;
      color: rgba(255,255,255,.70);
    }

    .page-today .tag{
      display:inline-flex;
      align-items:center;
      padding: 3px 8px;
      border-radius: 999px;
      font-weight: 900;
      font-size: 10px;
      letter-spacing: .08em;
      text-transform: uppercase;
      border: 1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      margin-right: 8px;
    }

    .page-today .tag.run{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.10);
      color: rgba(255,255,255,.95);
    }

    @media (max-width: 760px){
      .page-today .heroToday{
        padding: 22px;
      }

      .page-today .heroTitle{
        font-size: 22px;
      }

      .page-today .heroRight{
        text-align:left;
      }

      .page-today .itemHead,
      .page-today .line{
        flex-direction:column;
      }

      .page-today .rightCol{
        text-align:left;
      }
    }

/* PAGE: index.html */
body.page-home{
      min-height:100vh;
      background:#000;
    }

    .homeBg{
      position:fixed;
      inset:0;
      z-index:-10;
      overflow:hidden;
    }

    .homeBg img{
      width:100%;
      height:100%;
      object-fit:cover;
      opacity:.22;
      filter:contrast(1.05) saturate(.85);
    }

    .homeBg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(180deg, rgba(0,0,0,.50) 0%, rgba(0,0,0,.74) 48%, rgba(0,0,0,.92) 100%);
    }

  

    .homeHero{
      width:100%;
      max-width:760px;
      margin:0 auto;
      text-align:center;
    }

    .homeHeroTitle{
      margin:0;
      font-size:clamp(46px, 8vw, 88px);
      line-height:.95;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:1px;
    }

    .homeHeroTitle .accent{
      color:var(--yellow);
    }

    .homeHeroText{
      margin:18px auto 0;
      max-width:560px;
      color:#dfdfdf;
      font-size:clamp(18px, 2.2vw, 26px);
      line-height:1.3;
    }

    .homeHeroPanel{
      margin:28px auto 0;
      max-width:700px;
      text-align:left;
    }

    .homeBullets{
      margin:0;
      padding:0;
      list-style:none;
      display:flex;
      flex-direction:column;
      gap:14px;
    }

    .homeBullets li{
      display:flex;
      align-items:flex-start;
      gap:12px;
      color:#efefef;
      font-size:15px;
      line-height:1.35;
    }

    .homeBullets .check{
      color:var(--yellow);
      font-weight:900;
      font-size:20px;
      line-height:1;
      flex:0 0 auto;
      margin-top:1px;
    }

    .page-home .homeActions{
      margin:28px auto 0;
      max-width:700px;
    }

    .page-home .homeBtn{
      width:100%;
    }

    @media (max-width:640px){
      .page-home .appMain{
        min-height:auto;
        padding-top:12px;
      }

      .homeHero{
        padding-bottom:20px;
      }

      .homeHeroPanel,
      .page-home .homeActions{
        max-width:100%;
      }

      .homeHeroText{
        font-size:18px;
      }
    }

/* PAGE: landing.html */
:root{
      --primary:#FFD400;
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-landing{
      min-height:100vh;
      overflow-x:hidden;
    }

    .landing-shell{
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .landing-main{
      flex:1;
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(150px + env(safe-area-inset-bottom, 0px));
    }

    .lpWrap{
      width:100%;
    }

    .lpHero{
      margin-top:2px;
      padding:20px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:linear-gradient(180deg, rgba(255,212,0,.10), rgba(255,255,255,.03));
      box-shadow:var(--shadow);
    }

    .lpHero h2{
      margin:0;
      font-size:30px;
      font-weight:900;
      letter-spacing:1px;
      text-transform:uppercase;
      line-height:1.15;
    }

    .lpHeroAccent{
      color:var(--primary);
    }

    .lpHero p{
      margin:10px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
      max-width:70ch;
    }

    .lpCtas{
      margin-top:14px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .lpCtas .btn{
      min-width:220px;
    }

    .lpSection{
      margin-top:14px;
    }

    .kpiRow{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
    }

    @media(min-width:980px){
      .kpiRow{ grid-template-columns:repeat(3,1fr); }
    }

    .kpi{
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      padding:16px;
      position:relative;
      overflow:hidden;
      box-shadow:var(--shadow);
    }

    .kpi:before{
      content:"";
      position:absolute;
      inset:-2px;
      background:radial-gradient(700px 280px at 20% 10%, rgba(255,212,0,.10), transparent 60%);
      pointer-events:none;
    }

    .kpi h3{
      position:relative;
      margin:0;
      font-size:14px;
      font-weight:900;
      letter-spacing:.8px;
      text-transform:uppercase;
    }

    .kpi p{
      position:relative;
      margin:10px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
    }

    .stepGrid{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
    }

    @media(min-width:980px){
      .stepGrid{ grid-template-columns:repeat(3,1fr); }
    }

    .stepNum{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:34px;
      height:34px;
      border-radius:999px;
      background:rgba(255,212,0,.12);
      border:1px solid rgba(255,212,0,.35);
      color:var(--primary);
      font-weight:900;
      flex:0 0 auto;
    }

    .stepHead{
      display:flex;
      gap:10px;
      align-items:center;
    }

    .quote{
      margin-top:14px;
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(0,0,0,.25);
      padding:16px;
      color:rgba(255,255,255,.82);
      line-height:1.5;
      font-size:13px;
      box-shadow:var(--shadow);
    }

    .quote strong{
      color:#fff;
    }

    .finalCta{
      margin-top:14px;
    }

    .mini{
      margin-top:10px;
      color:rgba(255,255,255,.55);
      font-size:12px;
      line-height:1.4;
    }

    .mini a{
      color:var(--primary);
      text-decoration:none;
    }

    .mini a:hover{
      text-decoration:underline;
    }

    .card{
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      padding:18px;
      box-shadow:var(--shadow);
    }

    .cardTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
    }

    .cardTitle{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.8px;
      text-transform:uppercase;
      color:#fff;
    }

    .cardDesc{
      margin:0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:38px;
      padding:0 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      color:#ddd;
      text-transform:uppercase;
      white-space:nowrap;
    }

    .pillPrimary{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--primary);
      box-shadow:0 0 0 4px rgba(255,212,0,.12);
    }

    .actions{
      margin-top:14px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .actions .btn{
      min-width:220px;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .landing-main{
        padding:8px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box,
      .lpHero,
      .kpi,
      .quote,
      .card{
        border-radius:20px;
      }

      .lpHero{
        padding:18px;
      }

      .lpHero h2{
        font-size:24px;
      }

      .lpCtas .btn,
      .actions .btn{
        min-width:unset;
        width:100%;
      }

      .cardTop{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* PAGE: legal.html */
.page-legal{
      background:#000;
      color:#fff;
    }

    .page-legal .legal-main{
      padding-top:12px;
    }

    .page-legal .legal-wrap{
      width:100%;
    
      margin:0 auto;
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:24px;
      background:rgba(255,255,255,.02);
      box-shadow:var(--shadow-soft);
    }

    .page-legal .legal-wrap h2{
      margin:30px 0 0;
      color:var(--yellow);
      font-size:14px;
      text-transform:uppercase;
      letter-spacing:.12em;
      font-weight:900;
    }

    .page-legal .legal-wrap h2:first-child{
      margin-top:0;
    }

    .page-legal .legal-wrap p{
      font-size:14px;
      color:#ddd;
      line-height:1.6;
      margin:10px 0 0;
    }

    .page-legal .legal-box{
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.35);
      padding:16px;
      border-radius:14px;
      margin-top:16px;
      font-size:14px;
      color:#fff;
      line-height:1.6;
    }

    .page-legal .legal-small{
      font-size:12px;
      color:#888;
      margin-top:30px;
    }

    @media (max-width: 640px){
      .page-legal .legal-wrap{
        padding:18px;
        border-radius:20px;
      }
    }

/* PAGE: login.html */
:root{
      --bg:#050505;
      --panel:#111111;
      --text:#ffffff;
      --muted:#bdbdbd;
      --primary:#FFD400;
      --line:rgba(255,255,255,.08);
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
      --form-max:470px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-login{
      min-height:100vh;
      overflow-x:hidden;
    }

    .is-hidden{ display:none !important; }

    .login-shell{
      position:relative;
      min-height:100vh;
      background:#000;
      overflow:hidden;
    }

    .login-bg{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .login-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.30;
    }

    .login-bg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.14), transparent 22%),
        linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.78)),
        rgba(0,0,0,.46);
    }

    .login-inner{
      position:relative;
      z-index:1;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{ min-width:0; }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .logoLink{
      color:var(--primary);
      text-decoration:none;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{ color:#fff; }

    .login-main{
      flex:1;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 18px 40px;
      text-align:center;
    }

    .login-wrap{
      width:100%;
      max-width:var(--form-max);
    }

    .login-panel{
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:28px 24px 24px;
      background:linear-gradient(180deg, rgba(17,17,17,.78), rgba(9,9,9,.88));
      backdrop-filter:blur(10px);
      box-shadow:var(--shadow);
    }

    .login-kicker{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .login-title{
      margin:16px 0 0;
      font-size:44px;
      line-height:.92;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:-.02em;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .login-title span{
      display:block;
      color:var(--primary);
    }

    .login-subtitle{
      margin:14px auto 0;
      max-width:360px;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .form-block{
      margin-top:28px;
      text-align:left;
    }

    .login-form{
      display:grid;
      gap:16px;
    }

    .field{ display:block; }

    .field-label{
      display:block;
      margin:0 0 8px;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .field-input{
      width:100%;
      min-height:54px;
      padding:0 16px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      transition:.18s ease;
      font-size:15px;
    }

    .field-input::placeholder{ color:#8f8f8f; }

    .field-input:focus{
      border-color:rgba(255,212,0,.45);
      box-shadow:0 0 0 3px rgba(255,212,0,.12);
      background:rgba(255,255,255,.07);
    }

    .form-row{
      display:flex;
      justify-content:flex-start;
      align-items:center;
      margin-top:-2px;
    }

    .link-btn{
      appearance:none;
      border:0;
      background:none;
      padding:0;
      color:#d3d3d3;
      font-size:12px;
      cursor:pointer;
      text-decoration:underline;
      text-underline-offset:4px;
      transition:.18s ease;
    }

    .link-btn:hover{ color:#fff; }

    .btn-main,
    .btn-secondary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      min-height:54px;
      padding:0 18px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-decoration:none;
      cursor:pointer;
      transition:.18s ease;
    }

    .btn-main{
      border:0;
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.15);
    }

    .btn-main:hover{
      transform:translateY(-1px);
      filter:brightness(1.02);
    }

    .btn-secondary{
      margin-top:14px;
      border:2px solid var(--primary);
      background:transparent;
      color:var(--primary);
    }

    .btn-secondary:hover{
      transform:translateY(-1px);
      background:rgba(255,212,0,.06);
    }

    .form-msg{
      margin-top:14px;
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
      text-align:center;
    }

    .recover-modal{
      position:fixed;
      inset:0;
      z-index:60;
    }

    .recover-backdrop{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.74);
      backdrop-filter:blur(4px);
    }

    .recover-wrap{
      position:relative;
      min-height:100vh;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:18px;
    }

    .recover-box{
      position:relative;
      z-index:2;
      width:100%;
      max-width:460px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.10);
      background:linear-gradient(180deg, rgba(21,21,21,.96), rgba(11,11,11,.98));
      backdrop-filter:blur(12px);
      box-shadow:0 22px 60px rgba(0,0,0,.46);
      padding:22px;
      text-align:left;
    }

    .recover-top{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
    }

    .recover-kicker{
      margin:0;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .recover-title{
      margin:8px 0 0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      font-family:"Bebas Neue", Arial, sans-serif;
      text-transform:uppercase;
    }

    .recover-title span{ color:var(--primary); }

    .recover-close{
      appearance:none;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      color:#ddd;
      width:42px;
      height:42px;
      border-radius:14px;
      cursor:pointer;
      font-size:24px;
      line-height:1;
      transition:.18s ease;
    }

    .recover-close:hover{
      background:rgba(255,255,255,.08);
      color:#fff;
    }

    .recover-text{
      margin:14px 0 0;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .recover-form{
      margin-top:18px;
      display:grid;
      gap:14px;
    }

    .recover-msg{
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
    }

    @media (max-width:768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width:640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .login-main{
        align-items:flex-start;
        padding:18px 14px 30px;
      }

      .login-panel,
      .recover-box,
      .page-header-box{
        border-radius:20px;
      }

      .login-panel{ padding:22px 18px 18px; }
      .login-title{ font-size:36px; }
      .brand-title{ font-size:24px; }
      .recover-wrap{ padding:14px; }
      .recover-box{ padding:18px; }
      .recover-title{ font-size:24px; }
    }

/* PAGE: onboarding.html */
.page-onboarding .onbWrap{
      padding-bottom: 40px;
      max-width: 860px;
      margin: 0 auto;
    }

    .page-onboarding .topCard{
      border-radius: 28px;
      padding: 26px;
      margin-top: 22px;
      background:
        radial-gradient(900px 420px at 20% 0%, rgba(255,212,0,.18), transparent 60%),
        rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
    }

    .page-onboarding .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      font-size:11px;
      font-weight:900;
      letter-spacing:.10em;
      text-transform:uppercase;
      color:rgba(255,255,255,.86);
    }

    .page-onboarding .heroTitle{
      margin:16px 0 0;
      font-size:34px;
      line-height:1.04;
      font-weight:900;
      letter-spacing:.02em;
      text-transform:uppercase;
    }

    .page-onboarding .heroSub{
      margin:12px 0 0;
      color:rgba(255,255,255,.76);
      line-height:1.5;
      max-width:640px;
      font-size:15px;
    }

    .page-onboarding .progressWrap{
      margin-top:18px;
    }

    .page-onboarding .progressMeta{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      font-size:12px;
      color:rgba(255,255,255,.72);
      margin-bottom:8px;
    }

    .page-onboarding .progressBar{
      width:100%;
      height:10px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      overflow:hidden;
    }

    .page-onboarding .progressBar > span{
      display:block;
      height:100%;
      width:0%;
      border-radius:999px;
      background:#FFD400;
      transition:width .22s ease;
    }

    .page-onboarding .stepCard{
      margin-top:18px;
      border-radius:28px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      padding:24px;
    }

    .page-onboarding .stepHead{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
      flex-wrap:wrap;
      margin-bottom:18px;
    }

    .page-onboarding .stepTitle{
      margin:0;
      font-size:24px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
    }

    .page-onboarding .stepSub{
      margin-top:8px;
      color:rgba(255,255,255,.72);
      line-height:1.45;
      font-size:14px;
      max-width:560px;
    }

    .page-onboarding .stepBadge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:52px;
      height:34px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      font-weight:900;
      letter-spacing:.08em;
      color:#fff;
    }

    .page-onboarding .optionGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-onboarding .optionGrid.grid3{
      grid-template-columns:repeat(3, minmax(0,1fr));
    }

    .page-onboarding .choice{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      border-radius:22px;
      padding:18px;
      cursor:pointer;
      transition:all .15s ease;
      min-height:110px;
      display:flex;
      flex-direction:column;
      justify-content:center;
    }

    .page-onboarding .choice:hover{
      border-color:rgba(255,212,0,.30);
      background:rgba(255,255,255,.05);
      transform:translateY(-1px);
    }

    .page-onboarding .choice.active{
      border-color:rgba(255,212,0,.38);
      background:rgba(255,212,0,.10);
      box-shadow:0 0 0 1px rgba(255,212,0,.08) inset;
    }

    .page-onboarding .choiceTitle{
      font-size:18px;
      font-weight:900;
      color:#fff;
      letter-spacing:.02em;
    }

    .page-onboarding .choiceSub{
      margin-top:8px;
      font-size:13px;
      line-height:1.45;
      color:rgba(255,255,255,.72);
    }

    .page-onboarding .inlineOptions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }

    .page-onboarding .pillOption{
      padding:12px 16px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      color:#fff;
      font-weight:800;
      cursor:pointer;
      transition:all .15s ease;
    }

    .page-onboarding .pillOption.active{
      border-color:rgba(255,212,0,.38);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .page-onboarding .fieldWrap{
      display:grid;
      gap:12px;
    }

    .page-onboarding .fieldGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-onboarding .smallMsg{
      min-height:18px;
      margin-top:10px;
      color:rgba(255,255,255,.78);
      font-size:13px;
    }

    .page-onboarding .summary{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
      margin-top:8px;
    }

    .page-onboarding .summaryCard{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      border-radius:18px;
      padding:14px;
    }

    .page-onboarding .summaryLabel{
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.10em;
      color:rgba(255,255,255,.55);
    }

    .page-onboarding .summaryValue{
      margin-top:8px;
      font-size:18px;
      font-weight:900;
      line-height:1.2;
    }

    .page-onboarding .actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      margin-top:22px;
    }

    .page-onboarding .btn{
      min-height:50px;
      border-radius:16px;
      padding:0 22px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.08em;
      cursor:pointer;
    }

    .page-onboarding .btnPrimary{
      background:#FFD400;
      color:#000;
    }

    .page-onboarding .btnGhost{
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .page-onboarding .btnSoft{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      color:#fff;
    }

    .page-onboarding .hidden{
      display:none !important;
    }

    .page-onboarding .toast{
      position:fixed;
      left:50%;
      transform:translateX(-50%);
      bottom:24px;
      z-index:9999;
      display:none;
      max-width:92vw;
      padding:10px 14px;
      border-radius:14px;
      background:rgba(0,0,0,.86);
      color:#fff;
      border:1px solid rgba(255,255,255,.12);
      font-size:14px;
    }

    @media (max-width:760px){
      .page-onboarding .heroTitle{
        font-size:28px;
      }

      .page-onboarding .optionGrid,
      .page-onboarding .optionGrid.grid3,
      .page-onboarding .fieldGrid,
      .page-onboarding .summary{
        grid-template-columns:1fr;
      }

      .page-onboarding .topCard,
      .page-onboarding .stepCard{
        padding:18px;
      }
    }

/* PAGE: perfil.html */
.page-profile .profileWrap{
  
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-profile .profileSection{
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 28px;
      padding: 22px;
      margin-top: 22px;
    }

    .page-profile .profileHeaderRow{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      flex-wrap:wrap;
    }

    .page-profile .profileTitle{
      margin:0;
      font-size:22px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
    }

    .page-profile .profileSub{
      margin-top:6px;
      font-size:14px;
      color:rgba(255,255,255,.74);
      line-height:1.4;
    }

    .page-profile .vipBadge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:24px;
      padding:0 10px;
      border-radius:999px;
      background:var(--yellow);
      color:#000;
      font-size:10px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      margin-left:10px;
    }

    .page-profile .hidden{
      display:none !important;
    }

    .page-profile .profileActions2{
      margin-top:16px;
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
    }

    .page-profile .profileGrid2{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-profile .profileGrid1{
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
      margin-top:16px;
    }

    .page-profile .profileMsg{
      margin-top:10px;
      font-size:12px;
      color:rgba(255,255,255,.78);
      min-height:18px;
    }

    .page-profile .divider{
      margin-top:18px;
      padding-top:18px;
      border-top:1px solid rgba(255,255,255,.10);
    }

    .page-profile .toggleBtn{
      width:100%;
      text-align:left;
      background:transparent;
      border:0;
      color:#fff;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.05em;
      padding:0;
      cursor:pointer;
    }

    .page-profile .pwBox{
      margin-top:16px;
      display:grid;
      gap:14px;
    }

    /* account field */
    .page-profile .accField{
      margin-top:2px;
    }

    .page-profile .accLabelRow{
      display:flex;
      align-items:baseline;
      gap:10px;
      margin-bottom:8px;
    }

    .page-profile .accLabel{
      font-size:12px;
      color:#bbb;
      letter-spacing:2px;
      text-transform:uppercase;
    }

    .page-profile .accHint{
      font-size:12px;
      color:#666;
    }

    .page-profile .accGenderGrid{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap:10px;
      width:100%;
    }

    .page-profile .accGenderBtn{
      appearance:none;
      display:flex;
      align-items:center;
      justify-content:center;
      height:46px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.15);
      color:#fff;
      font-weight:800;
      font-size:14px;
      text-align:center;
      cursor:pointer;
      user-select:none;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      transition:.15s ease;
    }

    .page-profile .accGenderBtn.isActive{
      background:var(--yellow);
      border-color:var(--yellow);
      color:#000;
    }

    @media (max-width: 680px){
      .page-profile .profileActions2,
      .page-profile .profileGrid2{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 420px){
      .page-profile .accGenderGrid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

/* PAGE: perfil_corrida.html */
.page-profile .runWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-profile .runSection{
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 28px;
      padding: 22px;
      margin-top: 22px;
    }

    .page-profile .sectionHeader{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      flex-wrap:wrap;
    }

    .page-profile .title{
      font-size:22px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      margin:0;
    }

    .page-profile .sub{
      font-size:14px;
      color:rgba(255,255,255,.7);
      margin-top:6px;
      line-height:1.4;
    }

    .page-profile .grid1{
      display:grid;
      gap:14px;
      margin-top:16px;
    }

    .page-profile .grid2{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-profile .divider{
      margin-top:20px;
      padding-top:20px;
      border-top:1px solid rgba(255,255,255,.10);
    }

    .page-profile .smallMsg{
      font-size:12px;
      color:rgba(255,255,255,.78);
      min-height:18px;
    }

    .page-profile .zonesTable{
      width:100%;
      border-collapse: collapse;
      overflow:hidden;
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.10);
      margin-top: 12px;
    }

    .page-profile .zonesTable th,
    .page-profile .zonesTable td{
      padding: 10px 10px;
      border-bottom: 1px solid rgba(255,255,255,.08);
      font-size: 14px;
      text-align:left;
    }

    .page-profile .zonesTable th{
      text-transform: uppercase;
      letter-spacing: .10em;
      font-size: 11px;
      color: rgba(255,255,255,.70);
      background: rgba(255,255,255,.04);
    }

    .page-profile .zonesTable td{
      color: rgba(255,255,255,.92);
    }

    .page-profile .muted{
      color: rgba(255,255,255,.55);
    }

    .page-profile .statGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
      margin-top:14px;
    }

    .page-profile .statCard{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.05);
      padding:14px;
    }

    .page-profile .statLabel{
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.10em;
      color:rgba(255,255,255,.55);
    }

    .page-profile .statValue{
      font-size:22px;
      font-weight:900;
      margin-top:6px;
    }

    .page-profile .toast{
      position: fixed;
      left: 50%;
      transform: translateX(-50%);
      bottom: calc(var(--footer-total-height) + 10px);
      background: rgba(0,0,0,.85);
      border: 1px solid rgba(255,255,255,.12);
      padding: 10px 12px;
      border-radius: 14px;
      color: rgba(255,255,255,.92);
      font-size: 14px;
      display:none;
      max-width: 92vw;
      z-index: 9999;
    }

    @media (max-width:680px){
      .page-profile .grid2,
      .page-profile .statGrid{
        grid-template-columns:1fr;
      }
    }

/* PAGE: plano.html */
:root{
      --bg:#050505;
      --bg-soft:#0b0b0b;
      --card:#111111;
      --card-soft:#151515;
      --line:rgba(255,255,255,.10);
      --line-strong:rgba(255,255,255,.16);
      --text:#ffffff;
      --text-soft:rgba(255,255,255,.74);
      --text-fade:rgba(255,255,255,.56);
      --yellow:#FFD400;
      --yellow-soft:rgba(255,212,0,.12);
      --yellow-soft-2:rgba(255,212,0,.08);
      --green:#7CFFB4;
      --danger:#ff7676;
      --shadow:0 14px 40px rgba(0,0,0,.35);
      --radius-xl:28px;
      --radius-lg:22px;
      --radius-md:18px;
      --radius-sm:14px;
      --maxw:1120px;
      --footer-total-height:88px;
    }

    *{ box-sizing:border-box; }
    html,body{ margin:0; padding:0; }

    body.page-plans{
      min-height:100vh;
      background:
        radial-gradient(circle at top, rgba(255,212,0,.08), transparent 24%),
        linear-gradient(180deg, #050505 0%, #090909 100%);
      color:var(--text);
      font-family: Inter, Arial, Helvetica, sans-serif;
    }

    .page-plans .page-header{
      position:sticky;
      top:0;
      z-index:20;
      backdrop-filter: blur(10px);
      background:rgba(5,5,5,.84);
      border-bottom:1px solid rgba(255,255,255,.06);
    }

    .page-plans .page-header-box{
      max-width:var(--maxw);
      margin:0 auto;
      padding:18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }

    .page-plans .brand-block{
      min-width:0;
    }

    .page-plans .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.18em;
    }

    .page-plans .logoLink{
      color:var(--yellow);
      text-decoration:none;
    }

    .page-plans .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.14em;
      color:var(--text-fade);
    }

    .page-plans .user-bar{
      color:var(--text-soft);
      font-size:13px;
      text-align:right;
      line-height:1.35;
    }

    .page-plans .user-bar strong{
      color:#fff;
      font-weight:800;
    }

    .page-plans .container{
      width:100%;
      max-width:var(--maxw);
      margin:0 auto;
      padding:22px 18px calc(var(--footer-total-height) + 32px);
    }

    .page-plans .plansWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-plans .hero{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      margin-bottom:18px;
      padding:22px;
      border:1px solid rgba(255,255,255,.08);
      border-radius:var(--radius-xl);
      background:
        radial-gradient(circle at 0% 0%, rgba(255,212,0,.10), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      box-shadow:var(--shadow);
    }

    .page-plans .heroTitle{
      margin:0;
      font-size:30px;
      line-height:1.05;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .page-plans .heroSub{
      margin:8px 0 0;
      font-size:14px;
      line-height:1.45;
      color:var(--text-soft);
      max-width:760px;
    }

    .page-plans .pill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      color:rgba(255,255,255,.88);
      font-size:12px;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      white-space:nowrap;
      flex-shrink:0;
    }

    .page-plans .pillPrimary{
      border-color:rgba(255,212,0,.22);
      background:var(--yellow-soft);
      color:#fff;
    }

    .page-plans .dot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:#909090;
      flex-shrink:0;
    }

    .page-plans .card{
      border:1px solid var(--line);
      border-radius:var(--radius-xl);
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.025));
      box-shadow:var(--shadow);
      padding:22px;
      margin-bottom:16px;
    }

    .page-plans .card.locked{
      opacity:.95;
    }

    .page-plans .cardTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin-bottom:10px;
    }

    .page-plans .cardTitle{
      margin:0;
      font-size:22px;
      line-height:1.1;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .page-plans .cardDesc{
      margin:0;
      color:var(--text-soft);
      font-size:14px;
      line-height:1.5;
    }

    .page-plans .strip{
      margin-top:14px;
      padding:12px 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
      background:
        linear-gradient(90deg, rgba(255,212,0,.14), rgba(255,255,255,.03));
    }

    .page-plans .stripTag{
      display:inline-flex;
      align-items:center;
      gap:10px;
      font-size:12px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.08em;
      color:rgba(255,255,255,.92);
    }

    .page-plans .grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-plans .actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:14px;
    }

    .page-plans .btn,
    .page-plans .chip,
    .page-plans .modalClose{
      appearance:none;
      border:none;
      outline:none;
      transition:transform .12s ease, opacity .12s ease, background .12s ease, border-color .12s ease;
    }

    .page-plans .btn:active,
    .page-plans .chip:active,
    .page-plans .modalClose:active{
      transform:translateY(1px);
    }

    .page-plans .btn{
      min-height:46px;
      padding:0 18px;
      border-radius:14px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      cursor:pointer;
    }

    .page-plans .btnPrimary{
      border:1px solid rgba(255,212,0,.22);
      background:var(--yellow);
      color:#000;
    }

    .page-plans .btnGhost{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .page-plans .btnWide{
      flex:1;
      min-width:160px;
    }

    .page-plans .filterBar{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:12px;
      margin-bottom:8px;
    }

    .page-plans .chip{
      border-radius:999px;
      padding:10px 12px;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      font-size:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.86);
      cursor:pointer;
      user-select:none;
    }

    .page-plans .chipActive{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:rgba(255,255,255,.96);
    }

    .page-plans .lockOverlay{
      margin-top:12px;
      padding:12px;
      border-radius:16px;
      border:1px solid rgba(255,212,0,.18);
      background:rgba(255,212,0,.08);
      color:rgba(255,255,255,.88);
    }

    .page-plans .lockBadge{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(0,0,0,.20);
      font-size:12px;
      font-weight:900;
      text-transform:uppercase;
    }

    .page-plans .lockHint{
      margin-top:8px;
      font-size:13px;
      color:rgba(255,255,255,.80);
    }

    .page-plans .modalBackdrop{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.72);
      display:none;
      align-items:center;
      justify-content:center;
      padding:18px;
      z-index:9999;
      backdrop-filter: blur(6px);
    }

    .page-plans .modalCard{
      width:min(720px, 100%);
      border-radius:22px;
      background:rgba(18,18,18,.98);
      border:1px solid rgba(255,212,0,.18);
      box-shadow:0 18px 60px rgba(0,0,0,.6);
      overflow:hidden;
      position:relative;
    }

    .page-plans .modalHeader{
      padding:18px 18px 0 18px;
      display:flex;
      gap:10px;
      align-items:flex-start;
      justify-content:space-between;
    }

    .page-plans .modalClose{
      width:40px;
      height:40px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
    }

    .page-plans .modalBody{
      padding:0 18px 18px 18px;
    }

    .page-plans .modalTitle{
      font-size:22px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--yellow);
      margin-top:2px;
    }

    .page-plans .modalSub{
      color:rgba(255,255,255,.76);
      margin-top:6px;
      line-height:1.45;
      font-size:14px;
    }

    .page-plans .modalMetaRow{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:14px;
    }

    .page-plans .metaPill{
      padding:8px 10px;
      border-radius:999px;
      font-size:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.82);
      display:flex;
      gap:8px;
      align-items:center;
    }

    .page-plans .metaDot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:var(--yellow);
      box-shadow:0 0 0 4px rgba(255,212,0,.12);
    }

    .page-plans .modalStrip{
      margin-top:14px;
      border-radius:14px;
      background:linear-gradient(90deg, rgba(255,212,0,.18), rgba(255,255,255,.04));
      border:1px solid rgba(255,255,255,.10);
      padding:12px;
      color:rgba(255,255,255,.88);
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      font-size:12px;
    }

    .page-plans .modalGrid{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
    }

    .page-plans .modalBox{
      border-radius:16px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      padding:12px;
      color:rgba(255,255,255,.82);
      font-size:14px;
      line-height:1.5;
    }

    .page-plans .modalBox h4{
      margin:0 0 6px 0;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-size:12px;
      color:rgba(255,255,255,.92);
    }

    .page-plans .modalActions{
      margin-top:14px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .page-plans .lockedHint{
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(255,212,0,.18);
      background:rgba(255,212,0,.08);
      color:rgba(255,255,255,.88);
      font-size:13px;
    }

    .page-plans #appFooter{
      margin-top:auto;
    }

    @media (max-width: 920px){
      .page-plans .grid{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 760px){
      .page-plans .page-header-box{
        padding:16px 14px;
        align-items:flex-start;
        flex-direction:column;
      }

      .page-plans .user-bar{
        text-align:left;
      }

      .page-plans .container{
        padding:16px 14px calc(var(--footer-total-height) + 24px);
      }

      .page-plans .hero,
      .page-plans .card{
        padding:18px;
      }

      .page-plans .hero{
        flex-direction:column;
      }

      .page-plans .cardTop{
        flex-direction:column;
        align-items:flex-start;
      }

      .page-plans .modalGrid{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 640px){
      .page-plans .brand-title{
        font-size:24px;
      }

      .page-plans .heroTitle{
        font-size:24px;
      }

      .page-plans .cardTitle{
        font-size:20px;
      }

      .page-plans .btn{
        width:100%;
      }

      .page-plans .btnWide{
        width:100%;
        min-width:0;
      }
    }

/* PAGE: planos.html */
.lockedCard{
      position:relative;
      opacity:.65;
    }
    .lockOverlay{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.75);
      border-radius:22px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:8px;
      font-weight:800;
      letter-spacing:.1em;
      text-transform:uppercase;
    }
    .lockOverlay span{
      font-size:26px;
    }

/* PAGE: planos_semana.html */
/* FORCE override do app.css sÃ³ nesta pÃ¡gina */
body.page-generator .container .step button.btn{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.92) !important;
}

body.page-generator .container .step button.btn.active{
  background: #FFD400 !important;
  border-color: #FFD400 !important;
  color: #000 !important;
}

body.page-generator .container .step button.btn.btnSubmit{
  background: #FFD400 !important;
  border: 0 !important;
  color: #000 !important;
  font-weight: 900 !important;
}

/* PAGE: plano_corrida.html */
.page-run .containerWrap{
  width:100%;
  max-width:900px;
  margin:0 auto;
}

.page-run .cardPremium{
  border:1px solid rgba(255,255,255,.08);
  background:radial-gradient(circle at 20% 0%, rgba(255,212,0,.15), rgba(0,0,0,1));
  border-radius:28px;
  padding:24px;
  box-shadow:var(--shadow-soft);
}

.page-run .topBar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:24px;
  gap:12px;
  flex-wrap:wrap;
}

.page-run .topTitle{
  font-size:20px;
  font-weight:900;
  color:#fff;
  letter-spacing:.02em;
}

.page-run .topSub{
  font-size:13px;
  color:#aaa;
  margin-top:4px;
}

.page-run .weekHeader{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
  flex-wrap:wrap;
}

.page-run .weekLeft{
  min-width:0;
}

.page-run .weekKicker{
  font-size:12px;
  color:#aaa;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}

.page-run .weekRange{
  font-size:16px;
  color:#fff;
  font-weight:800;
  margin-top:4px;
}

.page-run .weekBtns{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.page-run .dayCard{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  border-radius:20px;
  padding:16px;
  transition:.2s;
  margin-bottom:12px;
}

.page-run .dayCard:hover{
  background:rgba(255,255,255,.07);
}

.page-run .dayTop{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}

.page-run .dayDate{
  font-size:13px;
  color:#aaa;
}

.page-run .dayTitle{
  font-size:18px;
  font-weight:900;
  color:#fff;
  margin-top:4px;
}

.page-run .dayMeta{
  font-size:12px;
  color:rgba(255,255,255,.60);
  margin-top:4px;
}

.page-run .dayDur{
  font-size:13px;
  color:#fff;
  white-space:nowrap;
  font-weight:800;
}

.page-run .dayActions{
  display:flex;
  gap:10px;
  margin-top:14px;
  flex-wrap:wrap;
}

.page-run .btnPrimary{
  background:#FFD400;
  color:#000;
  font-weight:900;
  border-radius:16px;
  padding:12px 16px;
  text-transform:uppercase;
  letter-spacing:.06em;
  cursor:pointer;
  border:0;
  min-height:46px;
}

.page-run .btnGhost{
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
  padding:12px 16px;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  cursor:pointer;
  background:rgba(255,255,255,.06);
  min-height:46px;
}

.page-run .btnPrimary.flex,
.page-run .btnGhost.flex{
  flex:1;
  min-width:180px;
}

.page-run .emptyState{
  text-align:center;
  margin-top:40px;
}

.page-run .emptyTitle{
  font-size:16px;
  color:#fff;
}

.page-run .bottomActions{
  margin-top:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

@media (max-width: 640px){
  .page-run .cardPremium{
    padding:18px;
    border-radius:20px;
  }

  .page-run .bottomActions{
    grid-template-columns:1fr;
  }
}

/* ===== MODAL ===== */
.modalOverlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.78);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:999;
  padding:16px;
}

.modalBox{
  width:min(980px, 96vw);
  border-radius:28px;
  border:1px solid rgba(255,255,255,.10);
  background:radial-gradient(circle at 20% 0%, rgba(255,212,0,.10), rgba(0,0,0,1));
  box-shadow:0 40px 160px rgba(0,0,0,.75);
  padding:22px;
}

.modalTop{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.modalH{
  margin:0;
  font-size:32px;
  font-weight:1000;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.95);
}

.modalClose{
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.85);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}

.modalDesc{
  margin-top:6px;
  color:rgba(255,255,255,.68);
  font-size:15px;
}

.chips{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border-radius:999px;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  font-size:13px;
  color:rgba(255,255,255,.88);
}

.chipDot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(255,212,0,.95);
  box-shadow:0 0 0 4px rgba(255,212,0,.10);
}

.modalBanner{
  margin-top:16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  padding:14px 16px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.90);
}

.modalGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px;
}

.modalCard{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  padding:16px;
}

.modalCardTitle{
  font-size:14px;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.90);
  margin-bottom:8px;
}

.modalCardBody{
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.45;
}

.modalActions{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

@media (max-width: 720px){
  .modalH{ font-size:24px; }
  .modalGrid, .modalActions{ grid-template-columns:1fr; }
}

/* PAGE: plano_hybrid.html */
.weekNav{
      display:flex; gap:10px; align-items:center; justify-content:space-between;
      flex-wrap:wrap; margin-top: 10px;
    }
    .weekTitle{
      font-weight:900; letter-spacing:.08em; text-transform:uppercase;
      color: rgba(255,255,255,.92);
      margin:0;
    }
    .weekSub{ margin:6px 0 0; color: rgba(255,255,255,.68); font-size:12px; }
    .navBtns{ display:flex; gap:10px; align-items:center; }
    .miniBtn{
      height:40px; padding:0 14px; border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
      cursor:pointer;
    }
    .miniBtn:active{ transform: translateY(1px); }
    .miniBtn.primary{
      border-color: rgba(255,212,0,.22);
      background: rgba(255,212,0,.14);
      color: rgba(255,255,255,.95);
    }

    .toolbar{
      display:flex; gap:10px; flex-wrap:wrap;
      align-items:center; margin-top:12px;
    }
    .togglePill{
      display:inline-flex; align-items:center; gap:10px;
      padding:10px 14px; border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      cursor:pointer;
      user-select:none;
    }
    .togglePill.on{
      border-color: rgba(255,212,0,.22);
      background: rgba(255,212,0,.12);
    }
    .toggleDot{
      width:10px; height:10px; border-radius:999px;
      background:#666;
    }
    .togglePill.on .toggleDot{
      background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12);
    }
    .search{
      flex:1; min-width: 220px;
      height:44px; border-radius:16px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.05);
      color:#fff; padding:0 14px;
      outline:none;
    }

    .viewBtns{ display:flex; gap:10px; }
    .viewBtn{
      height:44px; padding:0 16px; border-radius:16px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      cursor:pointer;
    }
    .viewBtn.on{
      border-color: rgba(255,212,0,.22);
      background: rgba(255,212,0,.12);
    }

    .kpis{ margin-top:12px; display:grid; gap:10px; grid-template-columns: repeat(4, minmax(0,1fr)); }
    @media (max-width: 860px){ .kpis{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
    .kpi{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
    }
    .kpiLabel{ color: rgba(255,255,255,.70); font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
    .kpiVal{ margin-top:8px; font-size:26px; font-weight:900; color: rgba(255,255,255,.94); }
    .kpiSub{ margin-top:6px; color: rgba(255,255,255,.70); font-size:12px; }

    .daysWrap{ margin-top: 14px; display:grid; gap:12px; }
    .gridWrap{ margin-top: 14px; display:grid; gap:12px; grid-template-columns: repeat(2, minmax(0,1fr)); }
    @media (max-width: 860px){ .gridWrap{ grid-template-columns: 1fr; } }

    .dayCard{
      border-radius: 18px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
      position:relative;
      overflow:hidden;
    }
    .dayTop{
      display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
    }
    .dayLeft{ min-width: 0; }
    .dayName{
      margin:0;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color: rgba(255,255,255,.92);
      font-size: 13px;
    }
    .dayDate{
      margin-top:6px;
      color: rgba(255,255,255,.68);
      font-size: 12px;
    }
    .dayPill{
      display:inline-flex; align-items:center; gap:10px;
      padding:8px 12px; border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: rgba(255,255,255,.86);
      font-size:12px;
      flex-shrink:0;
      white-space:nowrap;
    }
    .dot{ width:10px; height:10px; border-radius:999px; background:#aaa; }
    .dot.ok{ background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .dot.done{ background:#7CFFB4; box-shadow:0 0 0 5px rgba(120,255,180,.10); }
    .dot.off{ background:#666; box-shadow:none; }

    .title{
      margin: 10px 0 0;
      font-weight: 900;
      color: rgba(255,255,255,.94);
      font-size: 18px;
      letter-spacing:.02em;
    }
    .metaRow{
      margin-top:8px;
      display:flex; gap:10px; flex-wrap:wrap;
      color: rgba(255,255,255,.70);
      font-size: 12px;
    }
    .metaTag{
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding:6px 10px;
      border-radius:999px;
    }
    .notes{
      margin-top:10px;
      color: rgba(255,255,255,.72);
      font-size: 13px;
      line-height:1.35;
      display:none;
    }
    .actionsRow{
      margin-top: 12px;
      display:flex; gap:10px; flex-wrap:wrap;
    }
    .btnOpen{
      height:44px; padding:0 16px; border-radius:14px;
      border:1px solid rgba(255,212,0,.22);
      background:#FFD400;
      color:#000; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
      cursor:pointer;
      flex: 1;
      min-width: 180px;
    }
    .btnGhost2{
      height:44px; padding:0 16px; border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
      cursor:pointer;
      flex: 1;
      min-width: 160px;
    }

    .skeleton{
      opacity:.75;
      border-color: rgba(255,255,255,.10);
      background: rgba(255,255,255,.03);
    }
    .skLine{
      height:12px; border-radius:999px;
      background: rgba(255,255,255,.08);
      margin-top:10px;
      width: 70%;
    }
    .skLine.sm{ width: 45%; }
    .skLine.lg{ width: 90%; }

/* PAGE: plano_treinos.html */
:root{
      --bg:#050505;
      --bg-soft:#0c0c0c;
      --card:#101010;
      --card-2:#141414;
      --line:rgba(255,255,255,.10);
      --line-strong:rgba(255,255,255,.16);
      --text:#ffffff;
      --text-soft:rgba(255,255,255,.72);
      --text-fade:rgba(255,255,255,.56);
      --yellow:#FFD400;
      --yellow-soft:rgba(255,212,0,.14);
      --green:#7CFFB4;
      --shadow:0 10px 30px rgba(0,0,0,.30);
      --radius-xl:28px;
      --radius-lg:20px;
      --radius-md:16px;
      --radius-sm:14px;
      --maxw:1120px;
    }

    *{ box-sizing:border-box; }

    html,body{ margin:0; padding:0; }

    body{
      min-height:100vh;
      background:
        radial-gradient(circle at top, rgba(255,212,0,.08), transparent 26%),
        linear-gradient(180deg, #050505 0%, #090909 100%);
      color:var(--text);
      font-family: Inter, Arial, Helvetica, sans-serif;
    }

    .pageShell{
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .topbar{
      position:sticky;
      top:0;
      z-index:20;
      backdrop-filter: blur(10px);
      background:rgba(5,5,5,.84);
      border-bottom:1px solid rgba(255,255,255,.06);
    }

    .topbarInner{
      max-width:var(--maxw);
      margin:0 auto;
      padding:18px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }

    .brandBlock{
      min-width:0;
    }

    .brandTitle{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.18em;
      color:var(--yellow);
    }

    .brandSub{
      margin:6px 0 0;
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.14em;
      color:var(--text-fade);
    }

    #userBar{
      color:var(--text-soft);
      font-size:13px;
      text-align:right;
      line-height:1.35;
    }

    #userBar strong{
      color:#fff;
      font-weight:800;
    }

    .pageContainer{
      width:100%;
      max-width:var(--maxw);
      margin:0 auto;
      padding:22px 18px 120px;
      flex:1;
    }

    .hero{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      margin-bottom:18px;
      padding:22px;
      border:1px solid rgba(255,255,255,.08);
      border-radius:var(--radius-xl);
      background:
        radial-gradient(circle at 0% 0%, rgba(255,212,0,.10), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      box-shadow:var(--shadow);
    }

    .heroTitle{
      margin:0;
      font-size:28px;
      line-height:1.05;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .heroSub{
      margin:8px 0 0;
      font-size:14px;
      line-height:1.45;
      color:var(--text-soft);
      max-width:720px;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      color:rgba(255,255,255,.88);
      font-size:12px;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      white-space:nowrap;
      flex-shrink:0;
    }

    .pillPrimary{
      border-color:rgba(255,212,0,.22);
      background:var(--yellow-soft);
      color:#fff;
    }

    .dot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:#8c8c8c;
      flex-shrink:0;
    }

    .dot.ok{ background:var(--yellow); box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .dot.done{ background:var(--green); box-shadow:0 0 0 5px rgba(124,255,180,.12); }
    .dot.off{ background:#666; box-shadow:none; }

    .card{
      border:1px solid var(--line);
      border-radius:var(--radius-xl);
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.025));
      box-shadow:var(--shadow);
      padding:22px;
    }

    .cardTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin-bottom:10px;
    }

    .cardTitle{
      margin:0;
      font-size:22px;
      line-height:1.1;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .weekNav{
      display:flex;
      gap:12px;
      align-items:center;
      justify-content:space-between;
      flex-wrap:wrap;
      margin-top:14px;
      padding:16px 18px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
      border-radius:20px;
    }

    .weekTitle{
      margin:0;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-size:14px;
    }

    .weekSub{
      margin:6px 0 0;
      color:rgba(255,255,255,.68);
      font-size:12px;
      line-height:1.35;
    }

    .navBtns{
      display:flex;
      gap:10px;
      align-items:center;
      flex-wrap:wrap;
    }

    .miniBtn,
    .btn,
    .btnOpen,
    .btnGhost2{
      appearance:none;
      border:none;
      outline:none;
      cursor:pointer;
      transition:transform .12s ease, opacity .12s ease, background .12s ease, border-color .12s ease;
    }

    .miniBtn:active,
    .btn:active,
    .btnOpen:active,
    .btnGhost2:active{
      transform:translateY(1px);
    }

    .miniBtn{
      height:42px;
      padding:0 14px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      min-width:44px;
    }

    .miniBtn.primary{
      border-color:rgba(255,212,0,.22);
      background:var(--yellow-soft);
      color:#fff;
    }

    .daysWrap{
      margin-top:16px;
      display:grid;
      gap:14px;
    }

    .dayCard{
      border-radius:20px;
      border:1px solid rgba(255,255,255,.10);
      background:
        linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
      padding:16px;
      position:relative;
      overflow:hidden;
    }

    .dayTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
    }

    .dayLeft{ min-width:0; }

    .dayName{
      margin:0;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-size:13px;
    }

    .dayDate{
      margin-top:6px;
      color:rgba(255,255,255,.68);
      font-size:12px;
    }

    .dayPill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.86);
      font-size:12px;
      flex-shrink:0;
      white-space:nowrap;
    }

    .title{
      margin:12px 0 0;
      font-weight:900;
      color:rgba(255,255,255,.95);
      font-size:20px;
      letter-spacing:-.01em;
      line-height:1.2;
    }

    .metaRow{
      margin-top:10px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      color:rgba(255,255,255,.70);
      font-size:12px;
    }

    .metaTag{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      padding:7px 10px;
      border-radius:999px;
    }

    .notes{
      margin-top:12px;
      color:rgba(255,255,255,.74);
      font-size:13px;
      line-height:1.5;
      display:none;
      padding:12px 14px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
    }

    .actionsRow{
      margin-top:14px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .btn{
      height:46px;
      padding:0 18px;
      border-radius:14px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .btnGhost{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .btnOpen{
      height:46px;
      padding:0 16px;
      border-radius:14px;
      border:1px solid rgba(255,212,0,.22);
      background:var(--yellow);
      color:#000;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      flex:1;
      min-width:180px;
    }

    .btnGhost2{
      height:46px;
      padding:0 16px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      flex:1;
      min-width:160px;
    }

    .actions{
      margin-top:16px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .skeleton{
      opacity:.75;
      border-color:rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
    }

    .skLine{
      height:12px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      margin-top:10px;
      width:70%;
    }

    .skLine.sm{ width:45%; }
    .skLine.lg{ width:90%; }

    .bottom-nav{
      margin-top:auto;
    }

    @media (max-width: 860px){
      .topbarInner{
        align-items:flex-start;
        flex-direction:column;
      }

      #userBar{
        text-align:left;
      }

      .hero,
      .card{
        padding:18px;
      }

      .hero{
        flex-direction:column;
      }

      .cardTop{
        flex-direction:column;
        align-items:flex-start;
      }

      .weekNav{
        align-items:flex-start;
      }
    }

    @media (max-width: 640px){
      .pageContainer{
        padding:16px 14px 110px;
      }

      .topbarInner{
        padding:16px 14px;
      }

      .brandTitle{
        font-size:24px;
      }

      .heroTitle{
        font-size:24px;
      }

      .cardTitle{
        font-size:20px;
      }

      .title{
        font-size:18px;
      }

      .btnOpen,
      .btnGhost2,
      .btn{
        width:100%;
        min-width:0;
      }

      .navBtns{
        width:100%;
      }

      .navBtns .miniBtn{
        flex:1;
      }

      .dayTop{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* PAGE: plano_wizard.html */
.wizardWrap{ max-width: 820px; margin: 0 auto; }
    .stepPill{
      display:inline-flex; align-items:center; gap:10px;
      padding:8px 12px; border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: rgba(255,255,255,.86);
      font-size:12px;
    }
    .stepDot{ width:10px; height:10px; border-radius:999px; background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .progressBar{
      width:100%; height:10px; border-radius:999px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.10);
      overflow:hidden;
      margin-top: 10px;
    }
    .progressFill{ height:100%; width:0%; background: rgba(255,212,0,.85); transition: width .25s ease; }
    .optionGrid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin-top: 12px;
    }
    @media (min-width: 720px){
      .optionGrid{ grid-template-columns: 1fr 1fr; }
    }
    .opt{
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
      cursor:pointer;
      transition: transform .08s ease, border-color .15s ease, background .15s ease;
      user-select: none;
    }
    .opt:hover{ transform: translateY(-1px); border-color: rgba(255,212,0,.22); background: rgba(255,255,255,.05); }
    .opt.active{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.08);
      box-shadow: 0 0 0 4px rgba(255,212,0,.08);
    }
    .optTitle{
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.92);
      font-size: 13px;
      margin: 0;
    }
    .optDesc{ margin-top: 6px; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.35; }
    .inlineRow{
      display:flex; gap:10px; flex-wrap:wrap;
      margin-top: 10px;
    }
    .select{
      flex: 1;
      min-width: 220px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: #fff;
      padding: 12px 12px;
      outline: none;
    }
    .hintBox{
      margin-top: 12px;
      padding: 12px;
      border-radius: 16px;
      border: 1px solid rgba(255,212,0,.18);
      background: rgba(255,212,0,.08);
      color: rgba(255,255,255,.86);
      line-height: 1.35;
      font-size: 13px;
    }
    .mutedSmall{ color: rgba(255,255,255,.65); font-size: 12px; margin-top: 8px; }
    .errBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(255,120,120,.22);
      background: rgba(255,120,120,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }
    .successBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(120,255,180,.18);
      background: rgba(120,255,180,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }

/* PAGE: plano_wizard_deka.html */
.page-deka-wizard .wizardWrap{
      width:100%;
      max-width:820px;
      margin:0 auto;
    }

    .page-deka-wizard .stepPill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.86);
      font-size:12px;
    }

    .page-deka-wizard .stepDot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:#FFD400;
      box-shadow:0 0 0 5px rgba(255,212,0,.12);
    }

    .page-deka-wizard .progressBar{
      width:100%;
      height:10px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.10);
      overflow:hidden;
      margin-top:10px;
    }

    .page-deka-wizard .progressFill{
      height:100%;
      width:0%;
      background:rgba(255,212,0,.85);
      transition:width .25s ease;
    }

    .page-deka-wizard .optionGrid{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin-top:12px;
    }

    @media (min-width:720px){
      .page-deka-wizard .optionGrid{
        grid-template-columns:1fr 1fr;
      }
    }

    .page-deka-wizard .opt{
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      padding:12px;
      cursor:pointer;
      transition:transform .08s ease, border-color .15s ease, background .15s ease;
      user-select:none;
    }

    .page-deka-wizard .opt:hover{
      transform:translateY(-1px);
      border-color:rgba(255,212,0,.22);
      background:rgba(255,255,255,.05);
    }

    .page-deka-wizard .opt.active{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.08);
      box-shadow:0 0 0 4px rgba(255,212,0,.08);
    }

    .page-deka-wizard .optTitle{
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-size:13px;
      margin:0;
    }

    .page-deka-wizard .optDesc{
      margin-top:6px;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.35;
    }

    .page-deka-wizard .inlineRow{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .page-deka-wizard .select{
      flex:1;
      min-width:220px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      padding:12px 12px;
      outline:none;
    }

    .page-deka-wizard .select:focus{
      border-color:rgba(255,212,0,.35);
    }

    .page-deka-wizard .hintBox{
      margin-top:12px;
      padding:12px;
      border-radius:16px;
      border:1px solid rgba(255,212,0,.18);
      background:rgba(255,212,0,.08);
      color:rgba(255,255,255,.86);
      line-height:1.35;
      font-size:13px;
    }

    .page-deka-wizard .mutedSmall{
      color:rgba(255,255,255,.65);
      font-size:12px;
      margin-top:8px;
    }

    .page-deka-wizard .errBox{
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(255,120,120,.22);
      background:rgba(255,120,120,.10);
      color:rgba(255,255,255,.92);
      display:none;
      font-size:13px;
    }

    .page-deka-wizard .successBox{
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(120,255,180,.18);
      background:rgba(120,255,180,.10);
      color:rgba(255,255,255,.92);
      display:none;
      font-size:13px;
    }

    .page-deka-wizard .headerMeta{
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }

    .page-deka-wizard .vipBadge{
      display:inline-block;
      font-size:10px;
      padding:6px 10px;
      border-radius:999px;
      background:#FFD400;
      color:#000;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
      line-height:1;
    }

/* PAGE: plano_wizard_running.html */
.page-generator .wizardWrap{
  width:100%;
  max-width:760px;
  margin:0 auto;
}

.page-generator .page-main{
  padding-bottom:calc(150px + env(safe-area-inset-bottom, 0px));
}

.page-generator .progress{
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  overflow:hidden;
  margin-top:8px;
}

.page-generator .progress-bar{
  height:100%;
  width:0%;
  background:rgba(255,212,0,.95);
  transition:.25s;
}

.page-generator .progress-text{
  margin-top:10px;
  font-size:12px;
  color:rgba(255,255,255,.65);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.page-generator .step{
  display:none;
  margin-top:18px;
  padding:22px;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at top left, rgba(255,212,0,.12), transparent 40%),
    rgba(255,255,255,.04);
  box-shadow:var(--shadow-soft);
}

.page-generator .step.active{
  display:block;
}

.page-generator .step h2{
  margin:0 0 14px;
  font-size:18px;
  letter-spacing:.08em;
  font-weight:900;
  text-transform:uppercase;
  color:rgba(255,255,255,.95);
}

.page-generator .grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.page-generator .grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.page-generator .grid-4{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.page-generator .grid-7{ display:grid; grid-template-columns:repeat(7, 1fr); gap:10px; }
.page-generator .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

.page-generator .inp,
.page-generator select.inp{
  width:100%;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  padding:14px;
  color:#fff;
  outline:none;
}

.page-generator select.inp option{
  color:#000;
}

.page-generator .inp:focus,
.page-generator select.inp:focus{
  border-color:rgba(255,212,0,.35);
}

.page-generator .hint{
  margin-top:8px;
  font-size:12px;
  color:rgba(255,255,255,.55);
  line-height:1.4;
}

.page-generator .msgErr{ color:#ffb4b0; }
.page-generator .msgOk{ color:rgba(255,255,255,.75); }

.page-generator .backBtn{
  margin:16px auto 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  padding:14px 12px;
  color:rgba(255,255,255,.78);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  cursor:pointer;
}

.page-generator .dayChip{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  border-radius:999px;
  padding:12px 0;
  text-align:center;
  font-size:12px;
  cursor:pointer;
  user-select:none;
}

.page-generator .dayChip.active{
  border-color:rgba(255,212,0,.75);
  background:rgba(255,212,0,.18);
}

.page-generator .vipBadge{
  display:inline-block;
  font-size:10px;
  padding:6px 10px;
  border-radius:999px;
  background:#FFD400;
  color:#000;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
}

.page-generator .headerMeta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.page-generator .btnChoice{
  width:100%;
  border-radius:20px;
  padding:14px 12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06) !important;
  color:rgba(255,255,255,.92) !important;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
}

.page-generator .btnChoice.active{
  border-color:rgba(255,212,0,.75) !important;
  background:rgba(255,212,0,.18) !important;
  color:rgba(255,255,255,.95) !important;
}

.page-generator .btnChoice.is-disabled{
  opacity:.45;
  pointer-events:none;
}

.page-generator .btnPrimary{
  width:100%;
  border-radius:20px;
  padding:14px 12px;
  border:0;
  background:#FFD400 !important;
  color:#000 !important;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
}

.page-generator .btnPrimary:active{
  transform:scale(.99);
}

.page-generator .timeWrap{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
}

.page-generator .timeBox{
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:12px;
  background:rgba(255,255,255,.04);
}

.page-generator .timeLbl{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(255,255,255,.55);
  margin-bottom:8px;
}

.page-generator .summaryBox{
  line-height:1.8;
}

.hidden{ display:none !important; }

@media (max-width: 760px){
  .page-generator .grid-7{ grid-template-columns:repeat(4, 1fr); }
}

@media (max-width: 640px){
  .page-generator .grid-2,
  .page-generator .grid-3,
  .page-generator .grid-4,
  .page-generator .row2,
  .page-generator .timeWrap{
    grid-template-columns:1fr;
  }

  .page-generator .grid-7{
    grid-template-columns:repeat(4, 1fr);
  }

  .page-generator .step{
    padding:18px;
    border-radius:20px;
  }
}

/* PAGE: pricing.html */
:root{
      --primary:#FFD400;
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-pricing{
      min-height:100vh;
      overflow-x:hidden;
    }

    .pricing-shell{
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .pricing-main{
      flex:1;
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(150px + env(safe-area-inset-bottom, 0px));
    }

    .pricing-wrap{
      width:100%;
    }

    .hero2{
      margin-top:2px;
      padding:20px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:linear-gradient(180deg, rgba(255,212,0,.10), rgba(255,255,255,.03));
      box-shadow:var(--shadow);
    }

    .hero2 h2{
      margin:0;
      font-size:28px;
      font-weight:900;
      letter-spacing:1px;
      text-transform:uppercase;
    }

    .hero2 p{
      margin:8px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      max-width:70ch;
      line-height:1.5;
    }

    .toggleRow{
      margin-top:14px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
    }

    .toggleBtn{
      height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#ddd;
      font-weight:900;
      letter-spacing:.4px;
      text-transform:uppercase;
      cursor:pointer;
      transition:.18s ease;
    }

    .toggleBtn.on{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .grid2{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
    }

    @media(min-width:980px){
      .grid2{ grid-template-columns:1fr 1fr; }
    }

    .planCard{
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      padding:18px;
      position:relative;
      overflow:hidden;
      box-shadow:var(--shadow);
    }

    .planCard:before{
      content:"";
      position:absolute;
      inset:-2px;
      background:radial-gradient(700px 280px at 20% 10%, rgba(255,212,0,.12), transparent 60%);
      pointer-events:none;
    }

    .planCard.vip{
      border-color:rgba(255,212,0,.30);
      background:rgba(255,212,0,.08);
    }

    .planTop{
      position:relative;
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:flex-start;
    }

    .planName{
      margin:0;
      font-size:18px;
      font-weight:900;
      letter-spacing:1px;
      text-transform:uppercase;
    }

    .planTag{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      letter-spacing:.4px;
      text-transform:uppercase;
      color:#ddd;
      white-space:nowrap;
    }

    .planTag.primary{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .priceRow{
      position:relative;
      margin-top:12px;
      display:flex;
      align-items:baseline;
      gap:10px;
      flex-wrap:wrap;
    }

    .priceMain{
      font-size:30px;
      font-weight:900;
      color:var(--primary);
      letter-spacing:1px;
    }

    .priceSub{
      font-size:12px;
      color:rgba(255,255,255,.65);
    }

    .feat{
      position:relative;
      margin-top:14px;
      display:flex;
      flex-direction:column;
      gap:10px;
    }

    .featItem{
      display:flex;
      gap:10px;
      align-items:flex-start;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(0,0,0,.20);
      padding:10px 12px;
      color:rgba(255,255,255,.84);
      font-size:13px;
      line-height:1.4;
    }

    .featItem b{ color:#fff; }

    .check{
      color:var(--primary);
      font-weight:900;
      flex:0 0 auto;
    }

    .ctaRow{
      position:relative;
      margin-top:14px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .ctaRow .btn{
      min-width:220px;
    }

    .fine{
      position:relative;
      margin-top:10px;
      color:rgba(255,255,255,.55);
      font-size:12px;
      line-height:1.4;
    }

    .faq{
      margin-top:14px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      padding:18px;
      box-shadow:var(--shadow);
    }

    .faqTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
    }

    .faqTitle{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.8px;
      text-transform:uppercase;
      color:#fff;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:38px;
      padding:0 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      color:#ddd;
      text-transform:uppercase;
    }

    .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--primary);
      box-shadow:0 0 0 4px rgba(255,212,0,.12);
    }

    .faq h3{
      margin:14px 0 0;
      font-size:14px;
      font-weight:900;
      letter-spacing:.6px;
      text-transform:uppercase;
      color:#fff;
    }

    .faq p{
      margin:8px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
    }

    .legalMini{
      margin-top:16px;
      color:rgba(255,255,255,.55);
      font-size:12px;
      line-height:1.4;
    }

    .legalMini a{
      color:var(--primary);
      text-decoration:none;
    }

    .legalMini a:hover{
      text-decoration:underline;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .pricing-main{
        padding:8px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box,
      .hero2,
      .planCard,
      .faq{
        border-radius:20px;
      }

      .hero2{
        padding:18px;
      }

      .hero2 h2{
        font-size:24px;
      }

      .ctaRow .btn{
        min-width:unset;
        width:100%;
      }

      .planTop,
      .faqTop{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* PAGE: recuperar-password.html */
:root{
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --muted-2:#8f8f8f;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#FFD400;
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
      --form-max:470px;
    }

    *{
      box-sizing:border-box;
    }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-recover{
      min-height:100vh;
      overflow-x:hidden;
    }

    .recover-shell{
      position:relative;
      min-height:100vh;
      background:#000;
      overflow:hidden;
    }

    .recover-bg{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .recover-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.30;
    }

    .recover-bg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.14), transparent 22%),
        linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.78)),
        rgba(0,0,0,.46);
    }

    .recover-inner{
      position:relative;
      z-index:1;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .recover-main{
      flex:1;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 18px calc(150px + env(safe-area-inset-bottom, 0px));
      text-align:center;
    }

    .recover-wrap{
      width:100%;
      max-width:var(--form-max);
    }

    .recover-panel{
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:28px 24px 24px;
      background:linear-gradient(180deg, rgba(17,17,17,.78), rgba(9,9,9,.88));
      backdrop-filter:blur(10px);
      box-shadow:var(--shadow);
    }

    .recover-kicker{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .recover-title{
      margin:16px 0 0;
      font-size:44px;
      line-height:.92;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:-.02em;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .recover-title span{
      display:block;
      color:var(--primary);
    }

    .recover-subtitle{
      margin:14px auto 0;
      max-width:360px;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .form-block{
      margin-top:28px;
      text-align:left;
    }

    .recover-form{
      display:grid;
      gap:16px;
    }

    .field{
      display:block;
      text-align:left;
    }

    .field-label{
      display:block;
      margin:0 0 8px;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .field-input{
      width:100%;
      min-height:54px;
      padding:0 16px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      transition:.18s ease;
      font-size:15px;
    }

    .field-input::placeholder{
      color:#8f8f8f;
    }

    .field-input:focus{
      border-color:rgba(255,212,0,.45);
      box-shadow:0 0 0 3px rgba(255,212,0,.12);
      background:rgba(255,255,255,.07);
    }

    .btn-main,
    .btn-secondary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      min-height:54px;
      padding:0 18px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-decoration:none;
      cursor:pointer;
      transition:.18s ease;
    }

    .btn-main{
      border:0;
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.15);
    }

    .btn-main:hover{
      transform:translateY(-1px);
      filter:brightness(1.02);
    }

    .btn-secondary{
      margin-top:14px;
      border:2px solid var(--primary);
      background:transparent;
      color:var(--primary);
    }

    .btn-secondary:hover{
      transform:translateY(-1px);
      background:rgba(255,212,0,.06);
    }

    .form-msg{
      margin-top:14px;
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
      text-align:center;
    }

    .form-msg.is-success{
      color:#b9ffbf;
    }

    .form-msg.is-error{
      color:#ffb4b0;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      body.page-recover{
        overflow:auto;
      }

      .page-header{
        padding:14px 14px 8px;
      }

      .recover-main{
        align-items:flex-start;
        padding:18px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .recover-panel,
      .page-header-box{
        border-radius:20px;
      }

      .recover-panel{
        padding:22px 18px 18px;
      }

      .recover-title{
        font-size:36px;
      }

      .brand-title{
        font-size:24px;
      }
    }

/* PAGE: register.html */
:root{
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --muted-2:#8f8f8f;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#FFD400;
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
      --form-max:470px;
    }

    *{
      box-sizing:border-box;
    }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-register{
      min-height:100vh;
      overflow-x:hidden;
    }

    .register-shell{
      position:relative;
      min-height:100vh;
      background:#000;
      overflow:hidden;
    }

    .register-bg{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .register-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.30;
    }

    .register-bg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.14), transparent 22%),
        linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.78)),
        rgba(0,0,0,.46);
    }

    .register-inner{
      position:relative;
      z-index:1;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .register-main{
      flex:1;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 18px calc(150px + env(safe-area-inset-bottom, 0px));
      text-align:center;
    }

    .register-wrap{
      width:100%;
      max-width:var(--form-max);
    }

    .register-panel{
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:28px 24px 24px;
      background:linear-gradient(180deg, rgba(17,17,17,.78), rgba(9,9,9,.88));
      backdrop-filter:blur(10px);
      box-shadow:var(--shadow);
    }

    .register-kicker{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .register-title{
      margin:16px 0 0;
      font-size:44px;
      line-height:.92;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:-.02em;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .register-title span{
      display:block;
      color:var(--primary);
    }

    .register-subtitle{
      margin:14px auto 0;
      max-width:360px;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .form-block{
      margin-top:28px;
      text-align:left;
    }

    .register-form{
      display:grid;
      gap:16px;
    }

    .field{
      display:block;
      text-align:left;
    }

    .field-label{
      display:block;
      margin:0 0 8px;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .field-input{
      width:100%;
      min-height:54px;
      padding:0 16px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      transition:.18s ease;
      font-size:15px;
    }

    .field-input::placeholder{
      color:#8f8f8f;
    }

    .field-input:focus{
      border-color:rgba(255,212,0,.45);
      box-shadow:0 0 0 3px rgba(255,212,0,.12);
      background:rgba(255,255,255,.07);
    }

    .field-help{
      margin-top:8px;
      font-size:11px;
      color:#9f9f9f;
      line-height:1.4;
    }

    .btn-main,
    .btn-secondary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      min-height:54px;
      padding:0 18px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-decoration:none;
      cursor:pointer;
      transition:.18s ease;
    }

    .btn-main{
      border:0;
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.15);
    }

    .btn-main:hover{
      transform:translateY(-1px);
      filter:brightness(1.02);
    }

    .btn-secondary{
      margin-top:14px;
      border:2px solid var(--primary);
      background:transparent;
      color:var(--primary);
    }

    .btn-secondary:hover{
      transform:translateY(-1px);
      background:rgba(255,212,0,.06);
    }

    .form-msg{
      margin-top:14px;
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
      text-align:center;
    }

    .form-msg.is-error{
      color:#ffb4b0;
    }

    .form-msg.is-success{
      color:#b9ffbf;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      body.page-register{
        overflow:auto;
      }

      .page-header{
        padding:14px 14px 8px;
      }

      .register-main{
        align-items:flex-start;
        padding:18px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .register-panel,
      .page-header-box{
        border-radius:20px;
      }

      .register-panel{
        padding:22px 18px 18px;
      }

      .register-title{
        font-size:36px;
      }

      .brand-title{
        font-size:24px;
      }
    }

/* PAGE: treino_corrida.html */
.wrap{ max-width:980px; margin:0 auto; padding:18px 18px 120px; }
    .cardPremium{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.05);
      border-radius:26px;
      padding:18px;
      box-shadow:0 20px 50px rgba(0,0,0,.35);
    }
    .cardGlow{
      background:
        radial-gradient(1200px 500px at 40% 0%, rgba(255,212,0,.14), transparent 55%),
        rgba(255,255,255,.05);
    }
    .topRow{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .titleBig{
      font-size:26px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; margin:0;
    }
    .subtitle{ color:rgba(255,255,255,.72); margin-top:6px; font-size:13px; }
    .metaLine{
      margin-top:10px;
      color:rgba(255,255,255,.72);
      font-size:12px;
      display:flex; flex-wrap:wrap; gap:10px; align-items:center;
    }
    .pill{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      font-size:12px;
      color:rgba(255,255,255,.90);
      user-select:none;
      white-space:nowrap;
    }
    .pillDot{ width:8px; height:8px; border-radius:999px; background:rgba(255,255,255,.35); }
    .pillVip{ border-color:rgba(255,212,0,.45); background:rgba(255,212,0,.12); }
    .pillVip .pillDot{ background:rgba(255,212,0,.85); }
    .btnRow{ display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
    .btn{
      height:44px;
      padding:0 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.92);
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-size:12px;
      cursor:pointer;
    }
    .btnPrimary{
      background:#FFD400;
      color:#000;
      border-color:rgba(255,212,0,.55);
    }
    .btnGhost{ background:rgba(255,255,255,.04); }
    .btn:active{ transform:scale(.99); }
    .split{
      display:grid; grid-template-columns:1.05fr .95fr; gap:14px;
      margin-top:14px;
    }
    @media(max-width:860px){
      .split{ grid-template-columns:1fr; }
      .btnRow{ justify-content:flex-start; }
    }

    .zoneBox{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      border-radius:18px;
      padding:14px;
    }
    .zoneBox h3{
      margin:0; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
      color:rgba(255,255,255,.65);
    }
    .zoneMain{
      margin-top:8px;
      font-size:20px;
      font-weight:900;
      letter-spacing:.02em;
      color:rgba(255,255,255,.95);
    }
    .zoneSub{
      margin-top:6px; font-size:12px; color:rgba(255,255,255,.65);
      line-height:1.25;
    }

    .blocks{
      display:flex; flex-direction:column; gap:10px;
      margin-top:14px;
    }
    .block{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      border-radius:18px;
      padding:14px;
      cursor:pointer;
      transition:.15s ease;
    }
    .block:hover{ background:rgba(255,255,255,.06); }
    .block.active{
      border-color:rgba(255,212,0,.35);
      background:
        radial-gradient(700px 240px at 20% 0%, rgba(255,212,0,.14), transparent 60%),
        rgba(255,255,255,.05);
    }
    .blockTop{
      display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
    }
    .blockName{ font-size:18px; font-weight:900; margin:0; }
    .blockDur{ font-size:13px; color:rgba(255,255,255,.70); font-weight:800; }
    .blockChips{
      display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;
      align-items:center;
    }
    .chip{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(0,0,0,.18);
      font-size:12px;
      color:rgba(255,255,255,.92);
    }
    .chip strong{ font-weight:900; }
    .chipZone{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.10);
    }
    .chipPace{
      border-color:rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
    }
    .blockCue{
      margin-top:10px;
      color:rgba(255,255,255,.70);
      font-size:12px;
      line-height:1.3;
    }
    .subtleLine{ border-top:1px solid rgba(255,255,255,.10); margin:14px 0; }

    .stickyBar{
      position:fixed;
      left:0; right:0; bottom:64px;
      display:flex; justify-content:center;
      z-index:999;
      pointer-events:none;
    }
    .stickyInner{
      width:min(980px, 96vw);
      pointer-events:auto;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(0,0,0,.72);
      backdrop-filter:blur(10px);
      border-radius:22px;
      padding:10px;
      display:flex;
      gap:10px;
      align-items:center;
      justify-content:space-between;
    }
    .timerMini{
      font-variant-numeric:tabular-nums;
      color:rgba(255,255,255,.85);
      font-weight:900;
      letter-spacing:.06em;
    }

    .modalBg{
      position:fixed; inset:0;
      background:rgba(0,0,0,.62);
      display:none;
      align-items:center; justify-content:center;
      z-index:2000;
      padding:18px;
    }
    .modal{
      width:min(760px, 96vw);
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      background:
        radial-gradient(900px 360px at 30% 0%, rgba(255,212,0,.12), transparent 60%),
        rgba(15,15,15,.96);
      box-shadow:0 30px 80px rgba(0,0,0,.55);
      padding:16px;
    }
    .modalTop{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
    .modal h2{ margin:0; font-size:18px; font-weight:1000; }
    .modal .closeX{
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.9);
      border-radius:14px;
      height:40px;
      padding:0 12px;
      font-weight:900;
      cursor:pointer;
    }
    .modalBody{
      margin-top:12px;
      color:rgba(255,255,255,.80);
      font-size:13px;
      line-height:1.4;
    }
    .modalGrid{
      display:grid; grid-template-columns:1fr 1fr; gap:12px;
      margin-top:12px;
    }
    @media(max-width:700px){ .modalGrid{ grid-template-columns:1fr; } }

    .toast{
      position:fixed; left:50%; bottom:120px; transform:translateX(-50%);
      background:rgba(0,0,0,.78);
      border:1px solid rgba(255,255,255,.12);
      padding:10px 12px;
      border-radius:14px;
      color:rgba(255,255,255,.92);
      font-size:14px;
      display:none;
      max-width:92vw;
      z-index:9999;
    }

    .fbRow{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    @media(max-width:700px){ .fbRow{ grid-template-columns:1fr; } }
    .inp, .sel, textarea{
      width:100%;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      padding:12px 12px;
      color:white;
      font-size:14px;
      outline:none;
    }
    textarea{ min-height:96px; resize:vertical; }
    input[type="range"]{ width:100%; }
    .smallHint{ font-size:11px; color:rgba(255,255,255,.55); margin-top:6px; }

/* PAGE: treino_dia.html */
:root{
      --bg:#060606;
      --panel:#101010;
      --panel-2:#161616;
      --text:#ffffff;
      --muted:#b9b9b9;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#ffd400;
      --shadow:0 18px 42px rgba(0,0,0,.28);
      --max:1100px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.08), transparent 20%),
        radial-gradient(circle at top left, rgba(255,255,255,.03), transparent 18%),
        var(--bg);
      color:var(--text);
    }

    body.page-workout{
      min-height:100vh;
      padding-bottom:calc(140px + env(safe-area-inset-bottom, 0px));
    }

    .page-shell{
      width:100%;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .resume-banner{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:0 18px 10px;
    }

    .resume-inner{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:14px;
      padding:16px 18px;
      border:1px solid rgba(255,212,0,.18);
      border-radius:18px;
      background:rgba(255,212,0,.07);
      box-shadow:var(--shadow);
    }

    .resume-copy{
      min-width:0;
    }

    .resume-title{
      margin:0;
      font-size:15px;
      font-weight:900;
      color:#fff;
    }

    .resume-text{
      margin:4px 0 0;
      font-size:13px;
      color:#d0d0d0;
      line-height:1.45;
    }

    .resume-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .page-content{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(140px + env(safe-area-inset-bottom, 0px));
    }

    .muted-text{
      color:#bbb;
      margin:0;
    }

    .is-hidden{
      display:none !important;
    }

    .amrap-stats{
      text-align:center;
      color:#bbb;
      margin:-4px 0 12px;
    }

    .week-adjust-box{
      margin-top:14px;
      padding:12px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
    }

    .week-adjust-title{
      margin:0;
      color:#ddd;
      font-weight:800;
    }

    .week-adjust-text{
      margin:6px 0 0;
      color:#bbb;
      font-size:12px;
      line-height:1.35;
    }

    .week-adjust-actions{
      display:flex;
      gap:10px;
      margin-top:10px;
    }

    .adjust-btn{
      height:44px;
      border-radius:14px;
    }

    .adjust-msg{
      margin-top:10px;
      color:#bbb;
      font-size:12px;
      line-height:1.35;
    }

    .feedback-actions{
      display:flex;
      gap:12px;
      margin-top:14px;
    }

    .full-width{
      width:100%;
    }

    .mt-12{
      margin-top:12px;
    }

    .feedback-input,
    .feedback-select{
      width:100%;
      margin-top:8px;
      margin-bottom:14px;
      padding:12px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.15);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .feedback-label{
      font-size:13px;
      color:#bbb;
      display:block;
    }

    .feedback-meta{
      margin:0 0 10px;
      color:#bbb;
    }

    .feedback-rpe{
      text-align:center;
      color:#bbb;
      margin-bottom:14px;
    }

    @media (max-width: 768px){
      .page-header-box,
      .resume-inner{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }

      .resume-actions,
      .week-adjust-actions,
      .feedback-actions{
        flex-direction:column;
        width:100%;
      }

      .resume-actions .btn,
      .week-adjust-actions .btn,
      .feedback-actions .btn{
        width:100%;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .resume-banner{
        padding:0 14px 10px;
      }

      .page-content{
        padding:8px 14px calc(140px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box{
        border-radius:18px;
        padding:16px;
      }

      .brand-title{
        font-size:24px;
      }
    }

/* PAGE: treino_dia_plano.html */
/* ===== FEEDBACK MODAL ===== */
    .fbOverlay{
      position:fixed; inset:0;
      background:rgba(0,0,0,.68);
      backdrop-filter: blur(6px);
      display:flex; align-items:center; justify-content:center;
      padding:18px;
      z-index:9999;
    }
    .fbModal{
      width:min(560px, 100%);
      background:#111;
      border:1px solid rgba(255,255,255,.10);
      border-radius:22px;
      box-shadow: 0 18px 60px rgba(0,0,0,.55);
      overflow:hidden;
      color:#fff;
    }
    .fbHeader{
      display:flex; align-items:flex-start; justify-content:space-between;
      gap:12px;
      padding:16px 16px 10px;
      border-bottom:1px solid rgba(255,255,255,.08);
    }
    .fbTitle{ font-size:18px; font-weight:900; letter-spacing:.2px; }
    .fbSub{ font-size:12px; color:rgba(255,255,255,.70); margin-top:3px; }
    .fbClose{
      border:0; background:transparent; color:rgba(255,255,255,.75);
      font-size:18px; cursor:pointer; padding:6px 8px;
    }
    .fbBody{ padding:14px 16px 10px; }
    .fbBlock{ margin-bottom:14px; }
    .fbLabel{ font-size:13px; font-weight:800; margin-bottom:8px; }
    .fbRow{ display:flex; gap:10px; }
    .fbRowCenter{ align-items:center; }
    .fbWrap{ flex-wrap:wrap; }

    .fbPill, .fbChip{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
      padding:10px 12px;
      border-radius:999px;
      cursor:pointer;
      font-weight:800;
      font-size:13px;
      transition:.15s;
      user-select:none;
    }
    .fbChip{ padding:9px 11px; }
    .fbPill.isActive, .fbChip.isActive{
      border-color: rgba(255,212,0,.65);
      box-shadow: 0 0 0 3px rgba(255,212,0,.16);
    }
    .fbHint{ margin-top:6px; font-size:12px; color:rgba(255,255,255,.60); }

    .fbRange{ width:100%; accent-color:#FFD400; }
    .fbValue{ min-width:64px; text-align:right; font-weight:900; }

    .fbCheck{
      display:flex; align-items:center; gap:10px;
      font-weight:800; font-size:13px;
      color:rgba(255,255,255,.88);
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.12);
      padding:12px;
      border-radius:14px;
    }
    .fbCheck input{ transform: scale(1.1); }

    .fbNotes{
      width:100%;
      padding:12px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      resize:none;
      line-height:1.35;
    }
    .fbNotes::placeholder{ color: rgba(255,255,255,.35); }

    .fbFooter{
      display:flex; gap:10px;
      padding:12px 16px 16px;
      border-top:1px solid rgba(255,255,255,.08);
    }
    .fbBtn{
      flex:1;
      height:46px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,212,0,.95);
      color:#000;
      font-weight:900;
      cursor:pointer;
    }
    .fbBtn.ghost{
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    /* Pequeno wrap para video */
    .vimeoWrap{
      position:relative; width:100%;
      padding-top:56.25%;
      border-radius:14px;
      overflow:hidden;
      margin-top:10px;
      border:1px solid rgba(255,255,255,.12);
    }
    .vimeoWrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* PAGE: treino_hybrid.html */
/* painel detalhe (leve, sem mexer no css global) */
    .detailPanel{
      margin-top:12px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding:12px;
    }
    .detailPanel.hidden{ display:none; }
    .detailHeader{
      display:flex; align-items:center; justify-content:space-between; gap:10px;
      margin-bottom:10px;
    }
    .detailHeader .titleSmall{
      font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      font-size:12px; color: rgba(255,255,255,.78);
      margin:0;
    }
    .detailSec{
      margin-top:10px;
      padding-top:10px;
      border-top:1px solid rgba(255,255,255,.08);
    }
    .detailSec:first-child{ margin-top:0; padding-top:0; border-top:0; }
    .detailSecTitle{
      font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      font-size:12px; color: rgba(255,255,255,.75);
      margin:0 0 8px;
      display:flex; justify-content:space-between; gap:10px;
    }
    .detailRow{
      padding:10px 10px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.10);
      background: rgba(0,0,0,.18);
      margin-top:8px;
    }
    .detailRowTop{
      display:flex; justify-content:space-between; gap:10px; align-items:flex-start;
    }
    .detailName{
      font-weight:900; font-size:14px; color: rgba(255,255,255,.94);
      margin:0;
      line-height:1.2;
    }
    .detailRight{
      color: rgba(255,255,255,.70);
      font-weight:800;
      white-space:nowrap;
    }
    .detailMeta{
      margin-top:6px;
      font-size:12px;
      color: rgba(255,255,255,.70);
      line-height:1.35;
    }
    .detailVideo{
      margin-top:10px;
    }



/* =========================
   EXTRACTED STYLES FROM HTML FILES
   These were embedded <style> blocks, now consolidated here
   Grouped by original file for reference
   ========================= */
/* From aulas.html */
.page-aulas{
      min-height:100vh;
      background:#000;
    }

    .page-aulas .bgHero{
      position:fixed;
      inset:0;
      z-index:-10;
      overflow:hidden;
    }

    .page-aulas .bgHero img{
      width:100%;
      height:100%;
      object-fit:cover;
      opacity:.22;
      filter:contrast(1.05) saturate(.85);
    }

    .page-aulas .bgHero::after{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(180deg, rgba(0,0,0,.52) 0%, rgba(0,0,0,.78) 52%, rgba(0,0,0,.94) 100%);
    }

    .page-aulas .aulasWrap{
      padding-bottom:calc(var(--footer-total-height) + 28px);
    }

    .page-aulas .topRow{
      display:flex;
      gap:12px;
      align-items:flex-start;
      justify-content:space-between;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .page-aulas .titleBlock h2{
      margin:0;
      font-size:18px;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-weight:900;
    }

    .page-aulas .titleBlock p{
      margin:6px 0 0;
      color:rgba(255,255,255,.62);
      font-size:13px;
      line-height:1.35;
      max-width:560px;
    }

    .page-aulas .filters{
      width:100%;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
      margin-top:14px;
    }

    .page-aulas .filters .field{
      flex:1 1 160px;
      min-width:150px;
    }

    .page-aulas .filters input,
    .page-aulas .filters select{
      width:100%;
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.10);
      border-radius:14px;
      padding:10px 12px;
      color:rgba(255,255,255,.92);
      outline:none;
      font-size:14px;
    }

    .page-aulas .filters input::placeholder{
      color:rgba(255,255,255,.45);
    }

    .page-aulas .chipsRow{
      display:flex;
      gap:8px;
      flex-wrap:wrap;
      align-items:center;
      margin-top:10px;
    }

    .page-aulas .chip{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(0,0,0,.18);
      color:rgba(255,255,255,.85);
      font-size:12px;
      cursor:pointer;
      user-select:none;
    }

    .page-aulas .chip.active{
      border-color:rgba(255,212,0,.45);
      background:rgba(255,212,0,.10);
      color:rgba(255,255,255,.95);
    }

    .page-aulas .grid{
      display:grid;
      grid-template-columns:repeat(1, minmax(0, 1fr));
      gap:12px;
      margin-top:14px;
    }

    @media (min-width:820px){
      .page-aulas .grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }
    }

    .page-aulas .classCard{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      overflow:hidden;
      cursor:pointer;
      transition:transform .12s ease, border-color .12s ease;
    }

    .page-aulas .classCard:hover{
      transform:translateY(-1px);
      border-color:rgba(255,212,0,.28);
    }

    .page-aulas .cardInner{
      padding:14px 14px 12px;
    }

    .page-aulas .cardTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
    }

    .page-aulas .cardTitle{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      line-height:1.2;
    }

    .page-aulas .classBadge{
      font-size:11px;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      color:rgba(255,255,255,.85);
      background:rgba(0,0,0,.20);
      white-space:nowrap;
    }

    .page-aulas .classBadge.free{
      border-color:rgba(184,255,191,.25);
    }

    .page-aulas .classBadge.vip{
      border-color:rgba(255,212,0,.35);
    }

    .page-aulas .cardMeta{
      margin-top:8px;
      color:rgba(255,255,255,.70);
      font-size:13px;
      line-height:1.35;
    }

    .page-aulas .tags{
      display:flex;
      gap:6px;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .page-aulas .tag{
      font-size:11px;
      padding:6px 9px;
      border-radius:999px;
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.10);
      color:rgba(255,255,255,.78);
    }

    .page-aulas .empty{
      margin-top:16px;
      padding:14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.10);
      color:rgba(255,255,255,.70);
      background:rgba(255,255,255,.03);
    }

    .page-aulas .overlay{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.55);
      display:none;
      z-index:9998;
    }

    .page-aulas .drawer{
      position:fixed;
      right:0;
      top:0;
      height:100%;
      width:min(520px, 92vw);
      background:rgba(10,10,10,.96);
      border-left:1px solid rgba(255,255,255,.10);
      box-shadow:-18px 0 60px rgba(0,0,0,.45);
      transform:translateX(100%);
      transition:transform .18s ease;
      z-index:9999;
      display:flex;
      flex-direction:column;
    }

    .page-aulas .drawer.open{
      transform:translateX(0);
    }

    .page-aulas .drawerHeader{
      padding:16px 16px 10px;
      border-bottom:1px solid rgba(255,255,255,.08);
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
    }

    .page-aulas .drawerHeader h3{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.06em;
      text-transform:uppercase;
      color:rgba(255,255,255,.95);
      line-height:1.2;
    }

    .page-aulas .drawerHeader .sub{
      margin-top:6px;
      color:rgba(255,255,255,.65);
      font-size:13px;
      line-height:1.35;
    }

    .page-aulas .btnClose{
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.10);
      border-radius:12px;
      padding:8px 10px;
      color:rgba(255,255,255,.85);
      cursor:pointer;
    }

    .page-aulas .drawerBody{
      padding:14px 16px 18px;
      overflow:auto;
    }

    .page-aulas .videoWrap{
      border-radius:16px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
    }

    .page-aulas .videoWrap iframe{
      width:100%;
      aspect-ratio:9 / 16;
      border:0;
      display:block;
    }

    .page-aulas .detailSection{
      margin-top:14px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      border-radius:16px;
      padding:12px 12px;
    }

    .page-aulas .detailSection h4{
      margin:0 0 6px;
      font-size:13px;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-weight:900;
    }

    .page-aulas .detailSection p{
      margin:0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.45;
      white-space:pre-line;
    }

    .page-aulas .kpis{
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      margin-top:10px;
    }

    .page-aulas .kpi{
      flex:1 1 150px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      border-radius:14px;
      padding:10px 10px;
    }

    .page-aulas .kpi .l{
      color:rgba(255,255,255,.55);
      font-size:11px;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .page-aulas .kpi .v{
      color:rgba(255,255,255,.90);
      font-size:13px;
      margin-top:4px;
      font-weight:800;
    }

    .page-aulas #toast{
      position:fixed;
      left:50%;
      bottom:calc(var(--footer-total-height) + 10px);
      transform:translateX(-50%);
      display:none;
      z-index:10000;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(10,10,10,.92);
      color:rgba(255,255,255,.88);
      font-size:13px;
      box-shadow:0 14px 50px rgba(0,0,0,.40);
      max-width:min(520px, 92vw);
      text-align:center;
    }

/* From contactos.html */
.page-contactos .contactHero{
      margin-top:10px;
    }

    .page-contactos .contactGrid{
      display:grid;
      grid-template-columns:1.05fr .95fr;
      gap:16px;
      margin-top:16px;
    }

    .page-contactos .contactInfo{
      display:flex;
      flex-direction:column;
      gap:14px;
    }

    .page-contactos .contactLine{
      display:flex;
      gap:12px;
      align-items:flex-start;
      padding:14px;
      border-radius:18px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
    }

    .page-contactos .contactIcon{
      width:38px;
      height:38px;
      border-radius:999px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(255,212,0,.12);
      border:1px solid rgba(255,212,0,.28);
      color:var(--yellow);
      font-weight:900;
      flex:0 0 auto;
    }

    .page-contactos .contactText strong{
      display:block;
      color:#fff;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.04em;
    }

    .page-contactos .contactText span{
      display:block;
      margin-top:6px;
      color:#d8d8d8;
      font-size:14px;
      line-height:1.45;
    }

    .page-contactos .mapCard{
      min-height:100%;
    }

    .page-contactos .mapBox{
      margin-top:14px;
      border-radius:22px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      min-height:360px;
    }

    .page-contactos .mapBox iframe{
      width:100%;
      height:360px;
      border:0;
      display:block;
    }

    .page-contactos .miniNote{
      margin-top:12px;
      color:rgba(255,255,255,.58);
      font-size:12px;
      line-height:1.4;
    }

    @media (max-width: 900px){
      .page-contactos .contactGrid{
        grid-template-columns:1fr;
      }
    }

/* From corrida.html */
/* extras mÃ­nimos sÃ³ para esta pÃ¡gina (mantÃ©m o teu layout) */
    .grid2{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-top: 14px;
    }
    @media (max-width: 860px){
      .grid2{ grid-template-columns: 1fr; }
    }
    .heroActions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
      justify-content:flex-end;
    }
    .kv2{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-top: 12px;
    }
    @media (max-width: 520px){
      .kv2{ grid-template-columns: 1fr; }
    }
    .kvBox{
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.03);
      border-radius: 16px;
      padding: 12px 14px;
    }
    .kvK{
      font-size: 12px;
      text-transform: uppercase;
      letter-spacing: .10em;
      color: rgba(255,255,255,.60);
      margin:0;
    }
    .kvV{
      margin: 6px 0 0;
      font-weight: 900;
      color: rgba(255,255,255,.92);
      line-height:1.15;
    }

    /* Modal gate (sem alerts) */
    #gateModal{ position:fixed; inset:0; z-index:60; display:none; }
    #gateModal.open{ display:block; }
    #gateBackdrop{ position:absolute; inset:0; background:rgba(0,0,0,.65); }
    #gateBox{ position:relative; z-index:61; max-width:560px; margin:10vh auto 0; padding:0 16px; }
    .modalCard{
      border:1px solid rgba(255,255,255,.12);
      background:rgba(20,20,20,.92);
      backdrop-filter: blur(10px);
    }

    /* Toast simples */
    #toast{
      display:none;
      margin-top: 14px;
      padding: 12px 14px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      color: rgba(255,255,255,.88);
      font-weight: 800;
    }

    /* ForÃ§a alinhamento perfeito dos botÃµes dentro dos cards */
.card .actions{
  display:flex;
  gap:12px;
  align-items:stretch;
  flex-wrap:wrap;
}

/* Ambos ocupam mesma altura */
.card .actions .btn{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  height:56px;           /* altura fixa */
  min-width:200px;
}

/* Evita que um fique mais baixo que o outro */
.card .actions .btnGhost{
  border:1px solid rgba(255,255,255,.14);
}
.hero{
  display:flex;
  justify-content:space-between;
  align-items:center;   /* garante centro vertical */
  min-height:120px;     /* iguala a altura visual da barra */
}

.heroActions{
  display:flex;
  align-items:center;   /* centra verticalmente os botÃµes */
  gap:14px;
}

.heroActions .btn{
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;

/* From deka.html */
.wizardWrap{ max-width: 820px; margin: 0 auto; }
    .stepPill{
      display:inline-flex; align-items:center; gap:10px;
      padding:8px 12px; border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: rgba(255,255,255,.86);
      font-size:12px;
    }
    .stepDot{ width:10px; height:10px; border-radius:999px; background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .progressBar{
      width:100%; height:10px; border-radius:999px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.10);
      overflow:hidden;
      margin-top: 10px;
    }
    .progressFill{ height:100%; width:0%; background: rgba(255,212,0,.85); transition: width .25s ease; }
    .optionGrid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin-top: 12px;
    }
    @media (min-width: 720px){
      .optionGrid{ grid-template-columns: 1fr 1fr; }
    }
    .opt{
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
      cursor:pointer;
      transition: transform .08s ease, border-color .15s ease, background .15s ease;
      user-select: none;
    }
    .opt:hover{ transform: translateY(-1px); border-color: rgba(255,212,0,.22); background: rgba(255,255,255,.05); }
    .opt.active{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.08);
      box-shadow: 0 0 0 4px rgba(255,212,0,.08);
    }
    .optTitle{
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.92);
      font-size: 13px;
      margin: 0;
    }
    .optDesc{ margin-top: 6px; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.35; }
    .inlineRow{
      display:flex; gap:10px; flex-wrap:wrap;
      margin-top: 10px;
    }
    .select{
      flex: 1;
      min-width: 220px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: #fff;
      padding: 12px 12px;
      outline: none;
    }
    .hintBox{
      margin-top: 12px;
      padding: 12px;
      border-radius: 16px;
      border: 1px solid rgba(255,212,0,.18);
      background: rgba(255,212,0,.08);
      color: rgba(255,255,255,.86);
      line-height: 1.35;
      font-size: 13px;
    }
    .mutedSmall{ color: rgba(255,255,255,.65); font-size: 12px; margin-top: 8px; }
    .errBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(255,120,120,.22);
      background: rgba(255,120,120,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }
    .successBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(120,255,180,.18);
      background: rgba(120,255,180,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }

/* From estudio.html */
:root{
      --bg:#0a0a0a;
      --card:rgba(255,255,255,.06);
      --muted:rgba(255,255,255,.70);
      --soft:rgba(255,255,255,.12);
      --soft2:rgba(255,255,255,.08);
      --yellow:#B89C4A; /* athletic luxury gold */
      --gold:#A88E3C; /* deeper performance bronze */
      --ok:#b8ffbf;
      --danger:#ffb4b0;
      --r:24px;
      --pad:16px;
      --max:1040px;

      /* âœ… Troca por fotos tuas premium (sem texto) */
      --img-hero: url('https://images.unsplash.com/photo-1556817411-31ae72fa3ea0?auto=format&fit=crop&w=1600&q=70');
      --img-tread: url('https://images.unsplash.com/photo-1534438327276-14e5300c3a48?auto=format&fit=crop&w=1600&q=70');
      --img-gym:  url('https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=1600&q=70');
    }

    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;
      color:#fff;
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background:
        radial-gradient(1200px 800px at 15% -10%, rgba(214,177,94,.12), transparent 60%),
        radial-gradient(900px 600px at 95% 5%, rgba(255,212,0,.06), transparent 45%),
        var(--bg);
      overflow-x:hidden;
    }
    a{color:inherit; text-decoration:none}
    .wrap{max-width:var(--max); margin:0 auto; padding:0 var(--pad)}

    /* Topbar */
    .topbar{
      position:sticky; top:0; z-index:80;
      backdrop-filter: blur(12px);
      background: rgba(10,10,10,.70);
      border-bottom: 1px solid rgba(255,255,255,.08);
    }
    .topbar .row{display:flex; align-items:center; justify-content:space-between; padding:14px var(--pad); max-width:var(--max); margin:0 auto; gap:12px}
    .brand{display:flex; align-items:baseline; gap:10px; letter-spacing:.08em}
    .brand .w{font-family:"Bebas Neue", sans-serif; font-size:26px; line-height:1; color:var(--yellow)}
    .brand .sub{font-size:11px; color:rgba(255,255,255,.62); text-transform:uppercase; letter-spacing:.18em; font-weight:800; transform: translateY(-1px); white-space:nowrap}
    .pill{
      display:inline-flex; align-items:center; justify-content:center;
      padding:10px 12px; border-radius:999px;
      border:1px solid rgba(214,177,94,.30);
      background: linear-gradient(180deg, rgba(214,177,94,.14), rgba(255,255,255,.02));
      font-weight:900; font-size:12px;
      letter-spacing:.08em; text-transform:uppercase;
      gap:8px; white-space:nowrap;
    }
    .dot{width:7px; height:7px; border-radius:50%; background:var(--gold)}

    /* Typography */
    .section{padding:18px 0}
    .h2{margin:0 0 6px; font-size:12px; text-transform:uppercase; letter-spacing:.22em; color: rgba(255,255,255,.70); font-weight:900}
    .title{margin:0; font-size:26px; letter-spacing:.01em; line-height:1.1; font-weight:900}
    .title .y{color:var(--yellow)}
    .lead{margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.55}

    /* Hero */
    .hero{
      position:relative;
      border-radius: 30px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      box-shadow: 0 22px 70px rgba(0,0,0,.68);
      background:
        linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.88)),
        radial-gradient(900px 520px at 18% -10%, rgba(214,177,94,.18), transparent 62%),
        var(--img-hero);
      background-size: cover;
      background-position:center;
    }
    .heroIn{padding:18px}
    .heroTitle{font-family:"Bebas Neue", sans-serif; letter-spacing:.08em; font-size:60px; line-height:.92; margin:0}
    .heroTitle span{color:var(--gold)}
    .heroLead{max-width:60ch; margin-top:10px; color:rgba(255,255,255,.78); font-size:14px; line-height:1.6}

    .heroBadges{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
    .badge{
      display:inline-flex; align-items:center; gap:8px;
      padding:9px 10px; border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(0,0,0,.28);
      font-size:11px; font-weight:900;
      letter-spacing:.14em; text-transform:uppercase;
      color: rgba(255,255,255,.86);
    }
    .badge b{color:var(--gold); letter-spacing:.10em}

    .ctaRow{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
    .btn{
      flex:1 1 auto;
      display:inline-flex; align-items:center; justify-content:center;
      padding:13px 14px;
      border-radius:18px;
      border:1px solid rgba(214,177,94,.30);
      background: rgba(255,255,255,.03);
      font-weight:900;
      letter-spacing:.10em;
      text-transform:uppercase;
      font-size:12px;
      gap:10px;
      min-width: 160px;
      cursor:pointer;
    }
    .btn.primary{
      background: linear-gradient(180deg, rgba(214,177,94,.22), rgba(214,177,94,.08));
      border-color: rgba(214,177,94,.42);
    }
    .arrow{width:18px; height:18px; border-radius:8px; background: rgba(214,177,94,.18); border:1px solid rgba(214,177,94,.35); display:flex; align-items:center; justify-content:center}
    .arrow:before{content:"âžœ"; font-weight:900; transform: translateX(1px); color: var(--gold); font-size:12px}

    /* Cards */
    .card{
      background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03));
      border: 1px solid rgba(255,255,255,.09);
      border-radius: var(--r);
      padding:16px;
      box-shadow: 0 14px 44px rgba(0,0,0,.50);
    }

    .grid3{display:grid; grid-template-columns:1fr; gap:12px; margin-top:12px}
    .grid2{display:grid; grid-template-columns:1fr; gap:12px; margin-top:12px}

    .svc{
      position:relative;
      border-radius:22px;
      padding:16px;
      border:1px solid rgba(255,255,255,.10);
      background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
      overflow:hidden;
    }
    .svc:before{
      content:"";
      position:absolute; inset:-160px -160px auto auto;
      width:280px; height:280px; border-radius:50%;
      background: radial-gradient(circle at 30% 30%, rgba(214,177,94,.18), transparent 62%);
      transform: rotate(18deg);
      pointer-events:none;
    }
    .svc .name{margin:0; font-weight:900; font-size:18px; letter-spacing:.02em}
    .svc .sub{margin:6px 0 0; color:rgba(255,255,255,.70); font-size:13px}
    .val{margin:12px 0 0; display:flex; align-items:flex-end; gap:10px}
    .eur{font-family:"Bebas Neue", sans-serif; font-size:56px; line-height:1; letter-spacing:.04em; color:var(--yellow)}
    .per{color:rgba(255,255,255,.66); font-weight:900; text-transform:uppercase; letter-spacing:.14em; font-size:11px; margin-bottom:10px}

    .ul{margin:12px 0 0; padding:0; list-style:none; display:grid; gap:10px}
    .ul li{display:flex; gap:10px; color:rgba(255,255,255,.84); font-size:13px; line-height:1.35}
    .check{width:18px; height:18px; border-radius:8px; border:1px solid rgba(214,177,94,.30); background: rgba(214,177,94,.10); display:flex; align-items:center; justify-content:center; flex: 0 0 18px; margin-top:1px}
    .check:before{content:"âœ“"; color:var(--gold); font-weight:900; font-size:12px}

    .photoCard{
      border-radius: 26px;
      border: 1px solid rgba(255,255,255,.10);
      overflow:hidden;
      background:
        linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.88)),
        var(--img-tread);
      background-size: cover;
      background-position:center;
      min-height: 260px;
      box-shadow: 0 18px 60px rgba(0,0,0,.62);
    }
    .photoCard.two{
      background:
        linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.88)),
        var(--img-gym);
      background-size: cover;
      background-position:center;
    }
    .photoIn{padding:18px}
    .photoIn h3{margin:0; font-size:18px; font-weight:900; letter-spacing:.02em}
    .photoIn p{margin:8px 0 0; color:rgba(255,255,255,.78); font-size:13px; line-height:1.45; max-width: 50ch}

    /* Lead form */
    .form{margin-top:12px; border:1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.03); border-radius:24px; padding:14px}
    .form label{display:block; font-size:11px; text-transform:uppercase; letter-spacing:.16em; font-weight:900; color:rgba(255,255,255,.70); margin:12px 0 6px}
    .form input, .form select, .form textarea{width:100%; border-radius:16px; border:1px solid rgba(255,255,255,.12); background: rgba(0,0,0,.35); color:#fff; padding:12px 12px; font-size:14px; outline:none}
    .form textarea{min-height:90px; resize:vertical}
    .hint{margin:10px 0 0; color:rgba(255,255,255,.55); font-size:12px; line-height:1.5}

    /* Footer */
    .footer{padding:18px 0 32px; color: rgba(255,255,255,.62); font-size:12px; line-height:1.55}
    .line{height:1px; background: rgba(255,255,255,.10); margin:14px 0}

    /* Floating CTA */
    .floatCta{position:fixed; left:12px; right:12px; bottom:12px; z-index:90; display:flex; gap:10px; align-items:center; justify-content:space-between; padding:10px; border-radius:20px; border:1px solid rgba(214,177,94,.26); background: rgba(10,10,10,.70); backdrop-filter: blur(12px)}
    .floatCta .msg{display:flex; flex-direction:column; gap:2px; min-width:0}
    .floatCta .msg b{font-size:12px; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
    .floatCta .msg span{font-size:12px; color: rgba(255,255,255,.66); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
    .floatCta .go{flex:0 0 auto; padding:12px 12px; border-radius:16px; border:1px solid rgba(214,177,94,.38); background: linear-gradient(180deg, rgba(214,177,94,.22), rgba(214,177,94,.08)); font-weight:900; letter-spacing:.12em; text-transform:uppercase; font-size:11px; display:flex; align-items:center; gap:8px}

    @media(min-width:740px){
      .heroIn{padding:28px}
      .heroTitle{font-size:92px}
      .grid3{grid-template-columns:repeat(3,1fr)}
      .grid2{grid-template-columns:1fr 1fr}
      .floatCta{left:auto; right:18px; bottom:18px; width:520px}
    }

/* From evoluir.html */
/* =========================================================
     EVOLUIR (HISTÃ“RICO) â€” UI premium, sem mexer na lÃ³gica
     ========================================================= */

  body.page-history .historyWrap{
    padding-bottom: calc(var(--footer-total-height) + 28px);
  }

  body.page-history .heroRow{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-top:18px;
  }

  body.page-history .heroLeft{ min-width:0; }

  body.page-history .heroTitle{
    margin:0;
    font-size:24px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  body.page-history .heroSub{
    margin:8px 0 0;
    color: rgba(255,255,255,.70);
    font-size:13px;
    line-height:1.35;
  }

  body.page-history .heroPill{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:10px 14px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.06);
    color: rgba(255,255,255,.92);
    font-weight:900;
    letter-spacing:.02em;
    white-space:nowrap;
  }

  body.page-history .heroPill .dot{
    width:10px;height:10px;border-radius:999px;
    background: var(--yellow);
    box-shadow: 0 0 0 6px rgba(255,212,0,.12);
  }

  /* ===== Global State Card ===== */
  body.page-history .stateCard{
    margin-top:16px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.12);
    background:
      radial-gradient(1200px 340px at 20% 0%, rgba(255,212,0,.12), rgba(0,0,0,0)),
      rgba(255,255,255,.05);
    padding:16px;
    overflow:hidden;
  }

  body.page-history .stateRow{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
  }

  body.page-history .stateLeft{
    display:flex;
    gap:12px;
    align-items:flex-start;
    min-width:0;
  }

  body.page-history .stateIcon{
    width:44px;height:44px;border-radius:16px;
    display:flex;align-items:center;justify-content:center;
    font-weight:1000;
    border:1px solid rgba(255,255,255,.14);
    background: rgba(0,0,0,.22);
    flex:0 0 auto;
  }

  body.page-history .stateText{ min-width:0; }

  body.page-history .stateLabel{
    margin:0;
    font-size:14px;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    color: rgba(255,255,255,.92);
  }

  body.page-history .stateTitle{
    margin:6px 0 0;
    font-size:20px;
    font-weight:1000;
    color:#fff;
    line-height:1.15;
  }

  body.page-history .stateDesc{
    margin:8px 0 0;
    color: rgba(255,255,255,.74);
    font-size:13px;
    line-height:1.35;
  }

  body.page-history .stateRight{
    flex:0 0 auto;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
  }

  body.page-history .miniTag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(0,0,0,.20);
    font-size:12px;
    font-weight:900;
    color: rgba(255,255,255,.86);
    white-space:nowrap;
  }

  body.page-history .miniTag strong{ color:#fff; }

  body.page-history .stateCard.good .stateIcon{
    border-color: rgba(120,255,180,.22);
    background: rgba(120,255,180,.10);
  }

  body.page-history .stateCard.warn .stateIcon{
    border-color: rgba(255,212,0,.25);
    background: rgba(255,212,0,.10);
  }

  body.page-history .stateCard.alert .stateIcon{
    border-color: rgba(255,120,120,.22);
    background: rgba(255,120,120,.10);
  }

  /* ===== KPI grid ===== */
  body.page-history .kpiGrid{
    margin-top:14px;
    display:grid;
    grid-template-columns: repeat(5, minmax(190px, 1fr));
    gap:12px;
    align-items:stretch;
  }

  @media (max-width: 1120px){
    body.page-history .kpiGrid{ grid-template-columns: repeat(3, minmax(180px, 1fr)); }
  }

  @media (max-width: 720px){
    body.page-history .kpiGrid{ grid-template-columns: repeat(2, minmax(160px, 1fr)); }
  }

  @media (max-width: 420px){
    body.page-history .kpiGrid{ grid-template-columns: 1fr; }
  }

  body.page-history .kpi{
    border-radius:22px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.04);
    padding:14px;
    min-height:96px;
  }

  body.page-history .kpiTitle{
    margin:0;
    font-size:12px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    color: rgba(255,255,255,.78);
  }

  body.page-history .kpiValue{
    margin:10px 0 0;
    font-size:30px;
    font-weight:1000;
    color:#fff;
    line-height:1;
    font-variant-numeric: tabular-nums;
  }

  body.page-history .kpiSub{
    margin:10px 0 0;
    color: rgba(255,255,255,.60);
    font-size:12px;
    line-height:1.25;
  }

  body.page-history .kpi.warn{
    border-color: rgba(255,120,120,.22);
    background: rgba(255,120,120,.08);
  }

  body.page-history .kpi.warn .kpiTitle{
    color: rgba(255,200,200,.90);
  }

  /* ===== Card list + filtros ===== */
  body.page-history .historyCard{
    margin-top:16px;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    overflow:hidden;
  }

  body.page-history .historyHeader{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:16px;
    border-bottom:1px solid rgba(255,255,255,.08);
    background: linear-gradient(180deg, rgba(255,212,0,.08), rgba(255,255,255,.02));
  }

  body.page-history .historyHeaderLeft{ min-width:0; }

  body.page-history .historyHeader h2{
    margin:0;
    font-size:14px;
    font-weight:1000;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  body.page-history .historyHeader p{
    margin:6px 0 0;
    color: rgba(255,255,255,.68);
    font-size:12px;
    line-height:1.3;
  }

  body.page-history .filters{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
    flex:0 0 auto;
    min-width: 320px;
  }

  @media (max-width: 920px){
    body.page-history .historyHeader{
      flex-direction:column;
      align-items:stretch;
    }
    body.page-history .filters{
      min-width:0;
      justify-content:flex-start;
    }
  }

  body.page-history .field{
    flex:1 1 220px;
    min-width: 200px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(0,0,0,.18);
    color:#fff;
    padding:12px 12px;
    outline:none;
  }

  body.page-history .field:focus{
    border-color: rgba(255,212,0,.28);
    box-shadow: 0 0 0 4px rgba(255,212,0,.08);
  }

  body.page-history select.field{ padding:12px; }

  body.page-history .historyList{
    padding:12px;
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  /* ===== item do histÃ³rico ===== */
  body.page-history .hItem{
    border-radius:22px;
    border:1px solid rgba(255,255,255,.10);
    background: rgba(0,0,0,.22);
    padding:14px;
    display:flex;
    gap:14px;
    align-items:flex-start;
    cursor:pointer;
    transition: transform .08s ease, border-color .08s ease, background .08s ease;
  }

  body.page-history .hItem:hover{
    background: rgba(0,0,0,.28);
    border-color: rgba(255,255,255,.14);
    transform: translateY(-1px);
  }

  body.page-history .hMain{ flex:1; min-width:0; }

  body.page-history .hRight{
    width:130px;
    text-align:right;
    flex:0 0 auto;
  }

  @media (max-width: 520px){
    body.page-history .hItem{ flex-direction:column; }
    body.page-history .hRight{ width:auto; text-align:left; }
  }

  body.page-history .hTopRow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
  }

  body.page-history .hBadges{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    align-items:center;
  }

  body.page-history .tag{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    font-size:12px;
    font-weight:1000;
    letter-spacing:.06em;
    text-transform:uppercase;
    color: rgba(255,255,255,.92);
    white-space:nowrap;
  }

  body.page-history .tag .dot{
    width:8px;height:8px;border-radius:999px;background: rgba(255,255,255,.55);
  }

  body.page-history .tag.amrap{
    border-color: rgba(255,212,0,.30);
    background: rgba(255,212,0,.10);
  }

  body.page-history .tag.amrap .dot{ background: var(--yellow); }

  body.page-history .tag.circuit{
    border-color: rgba(255,255,255,.14);
  }

  body.page-history .tag.intLow{ border-color: rgba(255,255,255,.14); }
  body.page-history .tag.intMed{ border-color: rgba(255,212,0,.22); background: rgba(255,212,0,.08); }
  body.page-history .tag.intHigh{ border-color: rgba(255,120,120,.25); background: rgba(255,120,120,.10); }

  body.page-history .tag.ok{
    border-color: rgba(120,255,180,.20);
    background: rgba(120,255,180,.10);
  }

  body.page-history .tag.ok .dot{ background: rgba(120,255,180,.95); }

  body.page-history .tag.warn{
    border-color: rgba(255,120,120,.25);
    background: rgba(255,120,120,.10);
  }

  body.page-history .tag.warn .dot{ background: rgba(255,120,120,.95); }

  body.page-history .hDate{
    color: rgba(255,255,255,.62);
    font-size:12px;
    white-space:nowrap;
  }

  body.page-history .hChips{
    margin-top:10px;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
  }

  body.page-history .chip{
    display:inline-flex;
    align-items:center;
    padding:8px 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.12);
    background: rgba(255,255,255,.05);
    color: rgba(255,255,255,.86);
    font-size:12px;
    white-space:nowrap;
  }

  body.page-history .chip strong{
    color:#fff;
    margin-left:6px;
  }

  body.page-history .durBig{
    font-weight:1000;
    font-size:22px;
    color:#fff;
    font-variant-numeric: tabular-nums;
  }

  body.page-history .durSub{
    margin-top:6px;
    color: rgba(255,255,255,.60);
    font-size:12px;
    white-space:nowrap;
  }

  body.page-history .hEmpty{
    padding:16px;
    color: rgba(255,255,255,.65);
    font-size:13px;
  }

/* From gerar.html */
:root{
      --bg:#060606;
      --panel:#101010;
      --panel-2:#151515;
      --panel-3:#1b1b1b;
      --text:#ffffff;
      --muted:#b9b9b9;
      --muted-2:#8f8f8f;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#ffd400;
      --primary-dark:#151200;
      --success:#1fd07a;
      --shadow:0 18px 42px rgba(0,0,0,.28);
      --radius-xl:24px;
      --radius-lg:18px;
      --radius-md:14px;
      --max:1180px;
    }

    *{
      box-sizing:border-box;
    }

    html, body{
      margin:0;
      padding:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.10), transparent 20%),
        radial-gradient(circle at top left, rgba(255,255,255,.03), transparent 18%),
        var(--bg);
      color:var(--text);
    }

    body.page-app{
      min-height:100vh;
      padding-bottom:calc(120px + env(safe-area-inset-bottom, 0px));
    }

    .page-shell{
      width:100%;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter: blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .page-content{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(130px + env(safe-area-inset-bottom, 0px));
    }

    .hero-panel{
      position:relative;
      overflow:hidden;
      display:flex;
      justify-content:space-between;
      align-items:flex-end;
      gap:18px;
      min-height:180px;
      padding:26px 24px;
      border:1px solid var(--line);
      border-radius:26px;
      background:
        linear-gradient(135deg, rgba(255,212,0,.14), rgba(255,212,0,.05) 28%, rgba(255,255,255,.02) 70%, rgba(255,255,255,.01) 100%),
        var(--panel);
      box-shadow:var(--shadow);
    }

    .hero-panel::after{
      content:"";
      position:absolute;
      top:-40px;
      right:-40px;
      width:180px;
      height:180px;
      background:radial-gradient(circle, rgba(255,212,0,.18), transparent 70%);
      pointer-events:none;
    }

    .hero-copy{
      position:relative;
      z-index:1;
      max-width:760px;
    }

    .hero-kicker{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .hero-title{
      margin:14px 0 0;
      font-size:42px;
      line-height:.95;
      font-weight:900;
      letter-spacing:-.03em;
      text-transform:uppercase;
    }

    .hero-title span{
      display:block;
      color:var(--primary);
    }

    .hero-sub{
      margin:14px 0 0;
      max-width:680px;
      color:#d4d4d4;
      font-size:15px;
      line-height:1.6;
    }

    .status-pill{
      position:relative;
      z-index:1;
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:44px;
      padding:0 15px;
      border-radius:999px;
      background:rgba(255,212,0,.12);
      border:1px solid rgba(255,212,0,.22);
      color:#fff4b2;
      font-size:13px;
      font-weight:800;
      white-space:nowrap;
    }

    .status-pill .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--primary);
      box-shadow:0 0 0 4px rgba(255,212,0,.13);
      flex:0 0 auto;
    }

    .card-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:18px;
      margin-top:18px;
    }

    .app-card{
      position:relative;
      overflow:hidden;
      min-height:250px;
      padding:22px;
      border:1px solid var(--line);
      border-radius:24px;
      background:linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,.015));
      box-shadow:var(--shadow);
    }

    .app-card::after{
      content:"";
      position:absolute;
      right:-50px;
      bottom:-50px;
      width:140px;
      height:140px;
      background:radial-gradient(circle, rgba(255,212,0,.06), transparent 70%);
      pointer-events:none;
    }

    .card-top{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:14px;
      margin-bottom:14px;
    }

    .card-title{
      margin:0;
      font-size:22px;
      line-height:1.08;
      font-weight:900;
      letter-spacing:-.02em;
      text-transform:uppercase;
    }

    .card-desc{
      margin:8px 0 0;
      color:var(--muted);
      font-size:14px;
      line-height:1.6;
      max-width:520px;
    }

    .soft-pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid var(--line-2);
      background:rgba(255,255,255,.03);
      color:#f2f2f2;
      font-size:13px;
      font-weight:800;
      white-space:nowrap;
    }

    .soft-pill .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--success);
      box-shadow:0 0 0 4px rgba(31,208,122,.11);
      flex:0 0 auto;
    }

    .feature-list{
      display:grid;
      gap:12px;
      margin-top:16px;
    }

    .feature-item{
      display:flex;
      align-items:flex-start;
      gap:14px;
      padding:14px 16px;
      border-radius:18px;
      border:1px solid rgba(255,255,255,.06);
      background:rgba(255,255,255,.02);
    }

    .feature-icon{
      width:42px;
      height:42px;
      border-radius:14px;
      display:flex;
      align-items:center;
      justify-content:center;
      background:rgba(255,212,0,.12);
      color:var(--primary);
      font-size:15px;
      font-weight:900;
      flex:0 0 auto;
    }

    .feature-copy strong{
      display:block;
      margin:0 0 4px;
      font-size:15px;
      line-height:1.3;
      color:#fff;
    }

    .feature-copy span{
      display:block;
      color:#bcbcbc;
      font-size:13px;
      line-height:1.5;
    }

    .tag-row{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:18px;
    }

    .tag{
      display:inline-flex;
      align-items:center;
      min-height:36px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
      color:#e8e8e8;
      font-size:12px;
      font-weight:800;
    }

    .action-row{
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      margin-top:24px;
    }

    .btn-app{
      appearance:none;
      border:0;
      outline:0;
      cursor:pointer;
      min-height:50px;
      padding:0 22px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.02em;
      transition:.18s ease;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      text-align:center;
    }

    .btn-app:hover{
      transform:translateY(-1px);
    }

    .btn-primary{
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.14);
    }

    .btn-ghost{
      background:rgba(255,255,255,.04);
      color:#fff;
      border:1px solid rgba(255,255,255,.10);
    }

    .btn-ghost:hover{
      background:rgba(255,255,255,.07);
    }

    .card-note{
      margin-top:16px;
      color:#a9a9a9;
      font-size:12px;
      line-height:1.5;
    }

    .locked{
      opacity:.95;
    }

    .lock-overlay{
      position:absolute;
      inset:0;
      z-index:5;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:10px;
      background:rgba(5,5,5,.62);
      backdrop-filter: blur(5px);
    }

    .lock-badge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:44px;
      padding:0 16px;
      border-radius:999px;
      background:rgba(255,212,0,.14);
      border:1px solid rgba(255,212,0,.24);
      color:#fff4b8;
      font-size:13px;
      font-weight:900;
    }

    .lock-hint{
      max-width:220px;
      color:#d2d2d2;
      font-size:13px;
      text-align:center;
      line-height:1.5;
    }

    .app-modal{
      position:fixed;
      inset:0;
      z-index:60;
      display:none;
    }

    .app-modal.is-open{
      display:block;
    }

    .app-modal-backdrop{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.68);
      backdrop-filter: blur(4px);
    }

    .app-modal-box{
      position:relative;
      z-index:61;
      width:min(560px, calc(100vw - 28px));
      margin:9vh auto 0;
      padding:22px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.10);
      background:linear-gradient(180deg, rgba(24,24,24,.98), rgba(14,14,14,.98));
      box-shadow:0 22px 60px rgba(0,0,0,.45);
    }

    .app-modal-header{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:14px;
      margin-bottom:14px;
    }

    .app-modal-title{
      margin:0;
      font-size:22px;
      line-height:1.15;
      font-weight:900;
      letter-spacing:-.02em;
    }

    .app-modal-desc{
      margin:8px 0 0;
      color:#c8c8c8;
      font-size:14px;
      line-height:1.55;
    }

    .btn-icon{
      min-width:42px;
      width:42px;
      height:42px;
      padding:0;
      border-radius:14px;
    }

    .modal-list{
      display:grid;
      gap:10px;
      margin:14px 0 0;
      padding:0;
      list-style:none;
    }

    .modal-list li{
      padding:12px 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.06);
      background:rgba(255,255,255,.03);
      color:#dddddd;
      font-size:14px;
      line-height:1.55;
    }

    .modal-actions{
      display:flex;
      gap:10px;
      margin-top:18px;
    }

    .modal-actions .btn-app{
      flex:1;
    }

    .modal-note{
      margin:14px 0 0;
      color:#aaaaaa;
      font-size:12px;
      line-height:1.5;
    }

    .user-bar strong{
      color:#fff;
    }

    @media (max-width: 980px){
      .card-grid{
        grid-template-columns:1fr;
      }

      .hero-panel{
        flex-direction:column;
        align-items:flex-start;
        min-height:auto;
      }

      .user-bar{
        text-align:left;
      }

      .page-header-box{
        flex-direction:column;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .page-content{
        padding:8px 14px calc(130px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box,
      .hero-panel,
      .app-card,
      .app-modal-box{
        border-radius:20px;
      }

      .hero-panel{
        padding:20px 18px;
      }

      .hero-title{
        font-size:31px;
      }

      .app-card{
        padding:18px;
      }

      .card-top{
        flex-direction:column;
        align-items:flex-start;
      }

      .action-row,
      .modal-actions{
        flex-direction:column;
      }

      .btn-app{
        width:100%;
      }
    }

/* From gerar_plano_corrida.html */
/* ===== Layout geral ===== */
.page-generator main{ padding-bottom: 110px; }

.container{
  max-width: 760px;
  margin: 0 auto;
  padding: 18px 18px 0;
}

.progress{
  height:10px;
  border-radius:999px;
  background: rgba(255,255,255,.08);
  overflow:hidden;
  margin-top: 18px;
}
.progress-bar{
  height: 100%;
  width: 0%;
  background: rgba(255,212,0,.95);
  transition: .25s;
}
.progress-text{
  margin-top: 10px;
  font-size: 12px;
  color: rgba(255,255,255,.65);
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ===== Steps ===== */
.step{
  display:none;
  margin-top: 18px;
  padding: 22px;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.10);
  background: radial-gradient(circle at top left, rgba(255,212,0,.12), transparent 40%),
              rgba(255,255,255,.04);
}
.step.active{ display:block; }

.step h2{
  margin: 0 0 14px;
  font-size: 18px;
  letter-spacing: .08em;
  font-weight: 900;
  text-transform: uppercase;
  color: rgba(255,255,255,.95);
}

/* ===== UI ===== */
.grid-2{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grid-3{ display:grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.grid-7{ display:grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.row2{ display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.inp{
  width:100%;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  padding: 14px;
  color: #fff;
  outline: none;
}

.hint{
  margin-top: 8px;
  font-size: 12px;
  color: rgba(255,255,255,.55);
}

.msgErr{ color: #ffb4b0; }
.msgOk{ color: rgba(255,255,255,.75); }

.backBtn{
  margin: 16px auto 0;
  display: inline-flex;
  align-items:center;
  justify-content:center;
  width: 100%;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  padding: 14px 12px;
  color: rgba(255,255,255,.78);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
}

/* dias */
.dayChip{
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  border-radius: 999px;
  padding: 12px 0;
  text-align: center;
  font-size: 12px;
  cursor: pointer;
  user-select:none;
}
.dayChip.active{
  border-color: rgba(255,212,0,.75);
  background: rgba(255,212,0,.18);
}

/* ===== VIP badge ===== */
.vipBadge{
  display:inline-block;
  font-size:10px;
  padding:6px 10px;
  border-radius:999px;
  background:#FFD400;
  color:#000;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
}
.hidden{ display:none !important; }

/* ===== FIX: separar botÃµes de escolha vs primÃ¡rios ===== */

/* botÃµes de escolha (neutros) */
.btnChoice{
  width:100%;
  border-radius: 20px;
  padding: 14px 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 12px;
  cursor: pointer;
}
.btnChoice.active{
  border-color: rgba(255,212,0,.75) !important;
  background: rgba(255,212,0,.18) !important;
  color: rgba(255,255,255,.95) !important;
}

/* botÃµes primÃ¡rios (Continuar / Gerar) */
.btnPrimary{
  width:100%;
  border-radius: 20px;
  padding: 14px 12px;
  border: 0;
  background: #FFD400 !important;
  color: #000 !important;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;
  cursor: pointer;
}
.btnPrimary:active{ transform: scale(.99); }

/* From historico.html */
*{box-sizing:border-box}
:root{--yellow:#FFD400;--white10:rgba(255,255,255,.10);--white20:rgba(255,255,255,.20)}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:#000;color:#fff}
header{padding:24px}
header h1{margin:0;color:var(--yellow);letter-spacing:3px}
header p{margin:4px 0 0;font-size:12px;color:#aaa;text-transform:uppercase}
.container{
  width:100%;
  max-width:1400px;     /* grande, fluido */
  margin:0 auto;
  padding:0 56px 240px; /* mais respiro */
}

.card{background:var(--white10);border:1px solid var(--white20);border-radius:18px;padding:16px;margin-top:14px}
.title{font-size:16px;font-weight:900;letter-spacing:1px;text-transform:uppercase;margin:0 0 10px}
.item{padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);margin-bottom:10px}
.small{font-size:12px;color:#bbb}
footer{position:fixed;bottom:0;left:0;right:0;background:#000;border-top:1px solid #222}
footer nav{
  width:min(720px, calc(100% - 24px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(5,1fr);
}
footer a{padding:12px 0;text-align:center;font-size:11px;color:#888;text-decoration:none}
footer a.active{color:var(--yellow)}

/* From historico_detalhe.html */
.page-history-detail .detailWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-history-detail .ctaStack{
      margin-top:18px;
      display:flex;
      flex-direction:column;
      gap:12px;
    }

    .page-history-detail .cta{
      height:64px;
      border-radius:18px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.6px;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      text-decoration:none;
      user-select:none;
      transition: transform .08s ease, filter .12s ease, background .12s ease, border-color .12s ease;
    }

    .page-history-detail .cta:active{
      transform: scale(.99);
    }

    .page-history-detail .ctaPrimary{
      background: var(--yellow);
      color:#000;
      border:1px solid rgba(255,212,0,.35);
    }

    .page-history-detail .ctaPrimary:hover{
      filter:brightness(1.03);
    }

    .page-history-detail .ctaOutline{
      background: transparent;
      color: var(--yellow);
      border:2px solid rgba(255,212,0,.95);
      box-shadow: 0 0 0 1px rgba(255,212,0,.15) inset;
    }

    .page-history-detail .ctaOutline:hover{
      background: rgba(255,212,0,.06);
    }

    .page-history-detail .ctaDark{
      background: rgba(255,255,255,.06);
      color:#fff;
      border:1px solid rgba(255,255,255,.18);
    }

    .page-history-detail .ctaDark:hover{
      background: rgba(255,255,255,.10);
    }

    .page-history-detail .detailHeader{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:12px;
      margin-bottom:10px;
    }

    .page-history-detail .detailHeaderLeft{
      display:flex;
      flex-direction:column;
      gap:8px;
      min-width:0;
    }

    .page-history-detail .detailDate{
      font-weight:900;
      font-size:18px;
      letter-spacing:.2px;
      color:#fff;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }

    .page-history-detail .pillRow{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
    }

    .page-history-detail .pillSmall{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      letter-spacing:.6px;
      text-transform:uppercase;
      width:fit-content;
    }

    .page-history-detail .pillSmall.amrap{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.10);
      color:#fff;
    }

    .page-history-detail .pillSmall.source{
      border-color: rgba(255,255,255,.18);
      background: rgba(0,0,0,.22);
      color: rgba(255,255,255,.92);
    }

    .page-history-detail .rowsWrap{
      margin-top:10px;
    }

    .page-history-detail .rowsWrap .sectionTitle{
      display:flex;
      align-items:center;
      justify-content:space-between;
      margin:14px 0 8px 0;
      font-weight:800;
      letter-spacing:.04em;
      text-transform:uppercase;
      font-size:11px;
      color:#cfcfcf;
    }

    .page-history-detail .rowsWrap .line{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      padding:12px 12px;
      margin:10px 0;
      border-radius:16px;
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.08);
    }

    .page-history-detail .rowsWrap .leftCol{
      flex:1;
      min-width:0;
    }

    .page-history-detail .rowsWrap .rightCol{
      flex:0 0 auto;
      font-weight:900;
      color:#fff;
      opacity:.95;
      white-space:nowrap;
      font-variant-numeric: tabular-nums;
    }

    .page-history-detail .rowsWrap .mainName{
      font-weight:900;
      color:#fff;
      font-size:14px;
      line-height:1.2;
    }

    .page-history-detail .rowsWrap .subName{
      margin-top:5px;
      color:rgba(255,255,255,.70);
      font-size:12px;
      line-height:1.25;
    }

    .page-history-detail .exMeta{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:6px;
    }

    .page-history-detail .chip{
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      color:rgba(255,255,255,.82);
      font-size:12px;
      font-weight:800;
    }

    .page-history-detail .chip strong{
      color:#fff;
    }

/* From hoje.html */
.hidden{ display:none !important; }

    .page-today .pageTodayWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-today .heroToday{
      border-radius: 28px;
      padding: 30px;
      margin-bottom: 24px;
      background:
        radial-gradient(1000px 500px at 30% 0%, rgba(255,212,0,.20), transparent 60%),
        rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
    }

    .page-today .heroTopRow{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      flex-wrap:wrap;
    }

    .page-today .heroTitle{
      font-size: 26px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .page-today .heroDate{
      margin-top: 8px;
      font-size: 13px;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.75);
    }

    .page-today .heroActions{
      margin-top: 18px;
      display:flex;
      gap:14px;
      flex-wrap:wrap;
    }

    .page-today .heroRight{
      text-align:right;
      font-size:12px;
      color: rgba(255,255,255,.72);
      line-height:1.4;
    }

    .page-today .heroRight strong{
      color:#fff;
    }

    .page-today .card{
      margin-bottom: 22px;
    }

    .page-today .sectionTitle{
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-size: 14px;
      margin-bottom: 14px;
      display:flex;
      align-items:center;
      justify-content: space-between;
      gap: 14px;
    }

    .page-today .dayCard{
      border-radius: 18px;
      border: 1px solid rgba(255,255,255,.08);
      background: rgba(0,0,0,.18);
      padding: 18px;
    }

    .page-today .emptyBlock{
      text-align:center;
      padding: 30px 10px;
      opacity:.88;
    }

    .page-today .btn{
      border-radius: 16px;
      padding: 14px 20px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      cursor:pointer;
    }

    .page-today .btn[disabled]{
      opacity:.55;
      cursor:not-allowed;
    }

    .page-today .btnPrimary{
      background: #FFD400;
      color: #000;
    }

    .page-today .btnGhost{
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: #fff;
    }

    .page-today .smallBtn{
      padding: 10px 14px;
      border-radius: 14px;
      font-size: 12px;
    }

    .page-today .muted{
      font-size: 13px;
      color: rgba(255,255,255,.70);
      line-height: 1.45;
    }

    .page-today .hr{
      height:1px;
      background: rgba(255,255,255,.08);
      margin: 14px 0;
    }

    .page-today .item{
      border-radius: 18px;
      border: 1px solid rgba(255,255,255,.08);
      background: rgba(255,255,255,.03);
      padding: 16px;
      margin-top: 10px;
    }

    .page-today .itemHead{
      display:flex;
      justify-content:space-between;
      gap:12px;
      font-weight:900;
      letter-spacing:.04em;
    }

    .page-today .itemSub{
      margin-top:8px;
      font-size:12px;
      color: rgba(255,255,255,.72);
    }

    .page-today .itemActions{
      margin-top:12px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .page-today .kv{
      font-size:13px;
      color: rgba(255,255,255,.78);
      line-height: 1.6;
    }

    .page-today .pill{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width: 28px;
      height: 22px;
      padding: 0 10px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      font-size: 12px;
      color: rgba(255,255,255,.80);
    }

    .page-today .line{
      display:flex;
      justify-content:space-between;
      gap:12px;
      padding: 12px 10px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.06);
      background: rgba(0,0,0,.12);
      margin-top: 10px;
    }

    .page-today .leftCol{
      min-width: 0;
    }

    .page-today .rightCol{
      flex: 0 0 auto;
      font-weight: 900;
      letter-spacing: .04em;
      color: rgba(255,255,255,.92);
    }

    .page-today .mainName{
      font-weight: 900;
      letter-spacing: .02em;
    }

    .page-today .subName{
      margin-top:4px;
      font-size:12px;
      color: rgba(255,255,255,.70);
    }

    .page-today .tag{
      display:inline-flex;
      align-items:center;
      padding: 3px 8px;
      border-radius: 999px;
      font-weight: 900;
      font-size: 10px;
      letter-spacing: .08em;
      text-transform: uppercase;
      border: 1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      margin-right: 8px;
    }

    .page-today .tag.run{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.10);
      color: rgba(255,255,255,.95);
    }

    @media (max-width: 760px){
      .page-today .heroToday{
        padding: 22px;
      }

      .page-today .heroTitle{
        font-size: 22px;
      }

      .page-today .heroRight{
        text-align:left;
      }

      .page-today .itemHead,
      .page-today .line{
        flex-direction:column;
      }

      .page-today .rightCol{
        text-align:left;
      }
    }

/* From index.html */
body.page-home{
      min-height:100vh;
      background:#000;
    }

    .homeBg{
      position:fixed;
      inset:0;
      z-index:-10;
      overflow:hidden;
    }

    .homeBg img{
      width:100%;
      height:100%;
      object-fit:cover;
      opacity:.22;
      filter:contrast(1.05) saturate(.85);
    }

    .homeBg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(180deg, rgba(0,0,0,.50) 0%, rgba(0,0,0,.74) 48%, rgba(0,0,0,.92) 100%);
    }

  

    .homeHero{
      width:100%;
      max-width:760px;
      margin:0 auto;
      text-align:center;
    }

    .homeHeroTitle{
      margin:0;
      font-size:clamp(46px, 8vw, 88px);
      line-height:.95;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:1px;
    }

    .homeHeroTitle .accent{
      color:var(--yellow);
    }

    .homeHeroText{
      margin:18px auto 0;
      max-width:560px;
      color:#dfdfdf;
      font-size:clamp(18px, 2.2vw, 26px);
      line-height:1.3;
    }

    .homeHeroPanel{
      margin:28px auto 0;
      max-width:700px;
      text-align:left;
    }

    .homeBullets{
      margin:0;
      padding:0;
      list-style:none;
      display:flex;
      flex-direction:column;
      gap:14px;
    }

    .homeBullets li{
      display:flex;
      align-items:flex-start;
      gap:12px;
      color:#efefef;
      font-size:15px;
      line-height:1.35;
    }

    .homeBullets .check{
      color:var(--yellow);
      font-weight:900;
      font-size:20px;
      line-height:1;
      flex:0 0 auto;
      margin-top:1px;
    }

    .page-home .homeActions{
      margin:28px auto 0;
      max-width:700px;
    }

    .page-home .homeBtn{
      width:100%;
    }

    @media (max-width:640px){
      .page-home .appMain{
        min-height:auto;
        padding-top:12px;
      }

      .homeHero{
        padding-bottom:20px;
      }

      .homeHeroPanel,
      .page-home .homeActions{
        max-width:100%;
      }

      .homeHeroText{
        font-size:18px;
      }
    }

/* From landing.html */
:root{
      --primary:#FFD400;
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-landing{
      min-height:100vh;
      overflow-x:hidden;
    }

    .landing-shell{
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .landing-main{
      flex:1;
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(150px + env(safe-area-inset-bottom, 0px));
    }

    .lpWrap{
      width:100%;
    }

    .lpHero{
      margin-top:2px;
      padding:20px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:linear-gradient(180deg, rgba(255,212,0,.10), rgba(255,255,255,.03));
      box-shadow:var(--shadow);
    }

    .lpHero h2{
      margin:0;
      font-size:30px;
      font-weight:900;
      letter-spacing:1px;
      text-transform:uppercase;
      line-height:1.15;
    }

    .lpHeroAccent{
      color:var(--primary);
    }

    .lpHero p{
      margin:10px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
      max-width:70ch;
    }

    .lpCtas{
      margin-top:14px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .lpCtas .btn{
      min-width:220px;
    }

    .lpSection{
      margin-top:14px;
    }

    .kpiRow{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
    }

    @media(min-width:980px){
      .kpiRow{ grid-template-columns:repeat(3,1fr); }
    }

    .kpi{
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      padding:16px;
      position:relative;
      overflow:hidden;
      box-shadow:var(--shadow);
    }

    .kpi:before{
      content:"";
      position:absolute;
      inset:-2px;
      background:radial-gradient(700px 280px at 20% 10%, rgba(255,212,0,.10), transparent 60%);
      pointer-events:none;
    }

    .kpi h3{
      position:relative;
      margin:0;
      font-size:14px;
      font-weight:900;
      letter-spacing:.8px;
      text-transform:uppercase;
    }

    .kpi p{
      position:relative;
      margin:10px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
    }

    .stepGrid{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
    }

    @media(min-width:980px){
      .stepGrid{ grid-template-columns:repeat(3,1fr); }
    }

    .stepNum{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:34px;
      height:34px;
      border-radius:999px;
      background:rgba(255,212,0,.12);
      border:1px solid rgba(255,212,0,.35);
      color:var(--primary);
      font-weight:900;
      flex:0 0 auto;
    }

    .stepHead{
      display:flex;
      gap:10px;
      align-items:center;
    }

    .quote{
      margin-top:14px;
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(0,0,0,.25);
      padding:16px;
      color:rgba(255,255,255,.82);
      line-height:1.5;
      font-size:13px;
      box-shadow:var(--shadow);
    }

    .quote strong{
      color:#fff;
    }

    .finalCta{
      margin-top:14px;
    }

    .mini{
      margin-top:10px;
      color:rgba(255,255,255,.55);
      font-size:12px;
      line-height:1.4;
    }

    .mini a{
      color:var(--primary);
      text-decoration:none;
    }

    .mini a:hover{
      text-decoration:underline;
    }

    .card{
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      padding:18px;
      box-shadow:var(--shadow);
    }

    .cardTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
    }

    .cardTitle{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.8px;
      text-transform:uppercase;
      color:#fff;
    }

    .cardDesc{
      margin:0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:38px;
      padding:0 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      color:#ddd;
      text-transform:uppercase;
      white-space:nowrap;
    }

    .pillPrimary{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--primary);
      box-shadow:0 0 0 4px rgba(255,212,0,.12);
    }

    .actions{
      margin-top:14px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .actions .btn{
      min-width:220px;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .landing-main{
        padding:8px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box,
      .lpHero,
      .kpi,
      .quote,
      .card{
        border-radius:20px;
      }

      .lpHero{
        padding:18px;
      }

      .lpHero h2{
        font-size:24px;
      }

      .lpCtas .btn,
      .actions .btn{
        min-width:unset;
        width:100%;
      }

      .cardTop{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* From legal.html */
.page-legal{
      background:#000;
      color:#fff;
    }

    .page-legal .legal-main{
      padding-top:12px;
    }

    .page-legal .legal-wrap{
      width:100%;
    
      margin:0 auto;
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:24px;
      background:rgba(255,255,255,.02);
      box-shadow:var(--shadow-soft);
    }

    .page-legal .legal-wrap h2{
      margin:30px 0 0;
      color:var(--yellow);
      font-size:14px;
      text-transform:uppercase;
      letter-spacing:.12em;
      font-weight:900;
    }

    .page-legal .legal-wrap h2:first-child{
      margin-top:0;
    }

    .page-legal .legal-wrap p{
      font-size:14px;
      color:#ddd;
      line-height:1.6;
      margin:10px 0 0;
    }

    .page-legal .legal-box{
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.35);
      padding:16px;
      border-radius:14px;
      margin-top:16px;
      font-size:14px;
      color:#fff;
      line-height:1.6;
    }

    .page-legal .legal-small{
      font-size:12px;
      color:#888;
      margin-top:30px;
    }

    @media (max-width: 640px){
      .page-legal .legal-wrap{
        padding:18px;
        border-radius:20px;
      }
    }

/* From login.html */
:root{
      --bg:#050505;
      --panel:#111111;
      --text:#ffffff;
      --muted:#bdbdbd;
      --primary:#FFD400;
      --line:rgba(255,255,255,.08);
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
      --form-max:470px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-login{
      min-height:100vh;
      overflow-x:hidden;
    }

    .is-hidden{ display:none !important; }

    .login-shell{
      position:relative;
      min-height:100vh;
      background:#000;
      overflow:hidden;
    }

    .login-bg{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .login-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.30;
    }

    .login-bg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.14), transparent 22%),
        linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.78)),
        rgba(0,0,0,.46);
    }

    .login-inner{
      position:relative;
      z-index:1;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{ min-width:0; }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .logoLink{
      color:var(--primary);
      text-decoration:none;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{ color:#fff; }

    .login-main{
      flex:1;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 18px 40px;
      text-align:center;
    }

    .login-wrap{
      width:100%;
      max-width:var(--form-max);
    }

    .login-panel{
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:28px 24px 24px;
      background:linear-gradient(180deg, rgba(17,17,17,.78), rgba(9,9,9,.88));
      backdrop-filter:blur(10px);
      box-shadow:var(--shadow);
    }

    .login-kicker{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .login-title{
      margin:16px 0 0;
      font-size:44px;
      line-height:.92;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:-.02em;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .login-title span{
      display:block;
      color:var(--primary);
    }

    .login-subtitle{
      margin:14px auto 0;
      max-width:360px;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .form-block{
      margin-top:28px;
      text-align:left;
    }

    .login-form{
      display:grid;
      gap:16px;
    }

    .field{ display:block; }

    .field-label{
      display:block;
      margin:0 0 8px;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .field-input{
      width:100%;
      min-height:54px;
      padding:0 16px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      transition:.18s ease;
      font-size:15px;
    }

    .field-input::placeholder{ color:#8f8f8f; }

    .field-input:focus{
      border-color:rgba(255,212,0,.45);
      box-shadow:0 0 0 3px rgba(255,212,0,.12);
      background:rgba(255,255,255,.07);
    }

    .form-row{
      display:flex;
      justify-content:flex-start;
      align-items:center;
      margin-top:-2px;
    }

    .link-btn{
      appearance:none;
      border:0;
      background:none;
      padding:0;
      color:#d3d3d3;
      font-size:12px;
      cursor:pointer;
      text-decoration:underline;
      text-underline-offset:4px;
      transition:.18s ease;
    }

    .link-btn:hover{ color:#fff; }

    .btn-main,
    .btn-secondary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      min-height:54px;
      padding:0 18px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-decoration:none;
      cursor:pointer;
      transition:.18s ease;
    }

    .btn-main{
      border:0;
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.15);
    }

    .btn-main:hover{
      transform:translateY(-1px);
      filter:brightness(1.02);
    }

    .btn-secondary{
      margin-top:14px;
      border:2px solid var(--primary);
      background:transparent;
      color:var(--primary);
    }

    .btn-secondary:hover{
      transform:translateY(-1px);
      background:rgba(255,212,0,.06);
    }

    .form-msg{
      margin-top:14px;
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
      text-align:center;
    }

    .recover-modal{
      position:fixed;
      inset:0;
      z-index:60;
    }

    .recover-backdrop{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.74);
      backdrop-filter:blur(4px);
    }

    .recover-wrap{
      position:relative;
      min-height:100vh;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:18px;
    }

    .recover-box{
      position:relative;
      z-index:2;
      width:100%;
      max-width:460px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.10);
      background:linear-gradient(180deg, rgba(21,21,21,.96), rgba(11,11,11,.98));
      backdrop-filter:blur(12px);
      box-shadow:0 22px 60px rgba(0,0,0,.46);
      padding:22px;
      text-align:left;
    }

    .recover-top{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
    }

    .recover-kicker{
      margin:0;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .recover-title{
      margin:8px 0 0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      font-family:"Bebas Neue", Arial, sans-serif;
      text-transform:uppercase;
    }

    .recover-title span{ color:var(--primary); }

    .recover-close{
      appearance:none;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      color:#ddd;
      width:42px;
      height:42px;
      border-radius:14px;
      cursor:pointer;
      font-size:24px;
      line-height:1;
      transition:.18s ease;
    }

    .recover-close:hover{
      background:rgba(255,255,255,.08);
      color:#fff;
    }

    .recover-text{
      margin:14px 0 0;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .recover-form{
      margin-top:18px;
      display:grid;
      gap:14px;
    }

    .recover-msg{
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
    }

    @media (max-width:768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width:640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .login-main{
        align-items:flex-start;
        padding:18px 14px 30px;
      }

      .login-panel,
      .recover-box,
      .page-header-box{
        border-radius:20px;
      }

      .login-panel{ padding:22px 18px 18px; }
      .login-title{ font-size:36px; }
      .brand-title{ font-size:24px; }
      .recover-wrap{ padding:14px; }
      .recover-box{ padding:18px; }
      .recover-title{ font-size:24px; }
    }

/* From onboarding.html */
.page-onboarding .onbWrap{
      padding-bottom: 40px;
      max-width: 860px;
      margin: 0 auto;
    }

    .page-onboarding .topCard{
      border-radius: 28px;
      padding: 26px;
      margin-top: 22px;
      background:
        radial-gradient(900px 420px at 20% 0%, rgba(255,212,0,.18), transparent 60%),
        rgba(255,255,255,.04);
      border: 1px solid rgba(255,255,255,.08);
    }

    .page-onboarding .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      font-size:11px;
      font-weight:900;
      letter-spacing:.10em;
      text-transform:uppercase;
      color:rgba(255,255,255,.86);
    }

    .page-onboarding .heroTitle{
      margin:16px 0 0;
      font-size:34px;
      line-height:1.04;
      font-weight:900;
      letter-spacing:.02em;
      text-transform:uppercase;
    }

    .page-onboarding .heroSub{
      margin:12px 0 0;
      color:rgba(255,255,255,.76);
      line-height:1.5;
      max-width:640px;
      font-size:15px;
    }

    .page-onboarding .progressWrap{
      margin-top:18px;
    }

    .page-onboarding .progressMeta{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      font-size:12px;
      color:rgba(255,255,255,.72);
      margin-bottom:8px;
    }

    .page-onboarding .progressBar{
      width:100%;
      height:10px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      overflow:hidden;
    }

    .page-onboarding .progressBar > span{
      display:block;
      height:100%;
      width:0%;
      border-radius:999px;
      background:#FFD400;
      transition:width .22s ease;
    }

    .page-onboarding .stepCard{
      margin-top:18px;
      border-radius:28px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      padding:24px;
    }

    .page-onboarding .stepHead{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:14px;
      flex-wrap:wrap;
      margin-bottom:18px;
    }

    .page-onboarding .stepTitle{
      margin:0;
      font-size:24px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
    }

    .page-onboarding .stepSub{
      margin-top:8px;
      color:rgba(255,255,255,.72);
      line-height:1.45;
      font-size:14px;
      max-width:560px;
    }

    .page-onboarding .stepBadge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:52px;
      height:34px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      font-weight:900;
      letter-spacing:.08em;
      color:#fff;
    }

    .page-onboarding .optionGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-onboarding .optionGrid.grid3{
      grid-template-columns:repeat(3, minmax(0,1fr));
    }

    .page-onboarding .choice{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
      border-radius:22px;
      padding:18px;
      cursor:pointer;
      transition:all .15s ease;
      min-height:110px;
      display:flex;
      flex-direction:column;
      justify-content:center;
    }

    .page-onboarding .choice:hover{
      border-color:rgba(255,212,0,.30);
      background:rgba(255,255,255,.05);
      transform:translateY(-1px);
    }

    .page-onboarding .choice.active{
      border-color:rgba(255,212,0,.38);
      background:rgba(255,212,0,.10);
      box-shadow:0 0 0 1px rgba(255,212,0,.08) inset;
    }

    .page-onboarding .choiceTitle{
      font-size:18px;
      font-weight:900;
      color:#fff;
      letter-spacing:.02em;
    }

    .page-onboarding .choiceSub{
      margin-top:8px;
      font-size:13px;
      line-height:1.45;
      color:rgba(255,255,255,.72);
    }

    .page-onboarding .inlineOptions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
    }

    .page-onboarding .pillOption{
      padding:12px 16px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      color:#fff;
      font-weight:800;
      cursor:pointer;
      transition:all .15s ease;
    }

    .page-onboarding .pillOption.active{
      border-color:rgba(255,212,0,.38);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .page-onboarding .fieldWrap{
      display:grid;
      gap:12px;
    }

    .page-onboarding .fieldGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-onboarding .smallMsg{
      min-height:18px;
      margin-top:10px;
      color:rgba(255,255,255,.78);
      font-size:13px;
    }

    .page-onboarding .summary{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
      margin-top:8px;
    }

    .page-onboarding .summaryCard{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      border-radius:18px;
      padding:14px;
    }

    .page-onboarding .summaryLabel{
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.10em;
      color:rgba(255,255,255,.55);
    }

    .page-onboarding .summaryValue{
      margin-top:8px;
      font-size:18px;
      font-weight:900;
      line-height:1.2;
    }

    .page-onboarding .actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      margin-top:22px;
    }

    .page-onboarding .btn{
      min-height:50px;
      border-radius:16px;
      padding:0 22px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.08em;
      cursor:pointer;
    }

    .page-onboarding .btnPrimary{
      background:#FFD400;
      color:#000;
    }

    .page-onboarding .btnGhost{
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .page-onboarding .btnSoft{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      color:#fff;
    }

    .page-onboarding .hidden{
      display:none !important;
    }

    .page-onboarding .toast{
      position:fixed;
      left:50%;
      transform:translateX(-50%);
      bottom:24px;
      z-index:9999;
      display:none;
      max-width:92vw;
      padding:10px 14px;
      border-radius:14px;
      background:rgba(0,0,0,.86);
      color:#fff;
      border:1px solid rgba(255,255,255,.12);
      font-size:14px;
    }

    @media (max-width:760px){
      .page-onboarding .heroTitle{
        font-size:28px;
      }

      .page-onboarding .optionGrid,
      .page-onboarding .optionGrid.grid3,
      .page-onboarding .fieldGrid,
      .page-onboarding .summary{
        grid-template-columns:1fr;
      }

      .page-onboarding .topCard,
      .page-onboarding .stepCard{
        padding:18px;
      }
    }

/* From perfil.html */
.page-profile .profileWrap{
  
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-profile .profileSection{
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 28px;
      padding: 22px;
      margin-top: 22px;
    }

    .page-profile .profileHeaderRow{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      flex-wrap:wrap;
    }

    .page-profile .profileTitle{
      margin:0;
      font-size:22px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
    }

    .page-profile .profileSub{
      margin-top:6px;
      font-size:14px;
      color:rgba(255,255,255,.74);
      line-height:1.4;
    }

    .page-profile .vipBadge{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:24px;
      padding:0 10px;
      border-radius:999px;
      background:var(--yellow);
      color:#000;
      font-size:10px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      margin-left:10px;
    }

    .page-profile .hidden{
      display:none !important;
    }

    .page-profile .profileActions2{
      margin-top:16px;
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
    }

    .page-profile .profileGrid2{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-profile .profileGrid1{
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
      margin-top:16px;
    }

    .page-profile .profileMsg{
      margin-top:10px;
      font-size:12px;
      color:rgba(255,255,255,.78);
      min-height:18px;
    }

    .page-profile .divider{
      margin-top:18px;
      padding-top:18px;
      border-top:1px solid rgba(255,255,255,.10);
    }

    .page-profile .toggleBtn{
      width:100%;
      text-align:left;
      background:transparent;
      border:0;
      color:#fff;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.05em;
      padding:0;
      cursor:pointer;
    }

    .page-profile .pwBox{
      margin-top:16px;
      display:grid;
      gap:14px;
    }

    /* account field */
    .page-profile .accField{
      margin-top:2px;
    }

    .page-profile .accLabelRow{
      display:flex;
      align-items:baseline;
      gap:10px;
      margin-bottom:8px;
    }

    .page-profile .accLabel{
      font-size:12px;
      color:#bbb;
      letter-spacing:2px;
      text-transform:uppercase;
    }

    .page-profile .accHint{
      font-size:12px;
      color:#666;
    }

    .page-profile .accGenderGrid{
      display:grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap:10px;
      width:100%;
    }

    .page-profile .accGenderBtn{
      appearance:none;
      display:flex;
      align-items:center;
      justify-content:center;
      height:46px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.15);
      color:#fff;
      font-weight:800;
      font-size:14px;
      text-align:center;
      cursor:pointer;
      user-select:none;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      transition:.15s ease;
    }

    .page-profile .accGenderBtn.isActive{
      background:var(--yellow);
      border-color:var(--yellow);
      color:#000;
    }

    @media (max-width: 680px){
      .page-profile .profileActions2,
      .page-profile .profileGrid2{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 420px){
      .page-profile .accGenderGrid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

/* From perfil_corrida.html */
.page-profile .runWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-profile .runSection{
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 28px;
      padding: 22px;
      margin-top: 22px;
    }

    .page-profile .sectionHeader{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      flex-wrap:wrap;
    }

    .page-profile .title{
      font-size:22px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      margin:0;
    }

    .page-profile .sub{
      font-size:14px;
      color:rgba(255,255,255,.7);
      margin-top:6px;
      line-height:1.4;
    }

    .page-profile .grid1{
      display:grid;
      gap:14px;
      margin-top:16px;
    }

    .page-profile .grid2{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-profile .divider{
      margin-top:20px;
      padding-top:20px;
      border-top:1px solid rgba(255,255,255,.10);
    }

    .page-profile .smallMsg{
      font-size:12px;
      color:rgba(255,255,255,.78);
      min-height:18px;
    }

    .page-profile .zonesTable{
      width:100%;
      border-collapse: collapse;
      overflow:hidden;
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.10);
      margin-top: 12px;
    }

    .page-profile .zonesTable th,
    .page-profile .zonesTable td{
      padding: 10px 10px;
      border-bottom: 1px solid rgba(255,255,255,.08);
      font-size: 14px;
      text-align:left;
    }

    .page-profile .zonesTable th{
      text-transform: uppercase;
      letter-spacing: .10em;
      font-size: 11px;
      color: rgba(255,255,255,.70);
      background: rgba(255,255,255,.04);
    }

    .page-profile .zonesTable td{
      color: rgba(255,255,255,.92);
    }

    .page-profile .muted{
      color: rgba(255,255,255,.55);
    }

    .page-profile .statGrid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:12px;
      margin-top:14px;
    }

    .page-profile .statCard{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.05);
      padding:14px;
    }

    .page-profile .statLabel{
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.10em;
      color:rgba(255,255,255,.55);
    }

    .page-profile .statValue{
      font-size:22px;
      font-weight:900;
      margin-top:6px;
    }

    .page-profile .toast{
      position: fixed;
      left: 50%;
      transform: translateX(-50%);
      bottom: calc(var(--footer-total-height) + 10px);
      background: rgba(0,0,0,.85);
      border: 1px solid rgba(255,255,255,.12);
      padding: 10px 12px;
      border-radius: 14px;
      color: rgba(255,255,255,.92);
      font-size: 14px;
      display:none;
      max-width: 92vw;
      z-index: 9999;
    }

    @media (max-width:680px){
      .page-profile .grid2,
      .page-profile .statGrid{
        grid-template-columns:1fr;
      }
    }

/* From plano.html */
:root{
      --bg:#050505;
      --bg-soft:#0b0b0b;
      --card:#111111;
      --card-soft:#151515;
      --line:rgba(255,255,255,.10);
      --line-strong:rgba(255,255,255,.16);
      --text:#ffffff;
      --text-soft:rgba(255,255,255,.74);
      --text-fade:rgba(255,255,255,.56);
      --yellow:#FFD400;
      --yellow-soft:rgba(255,212,0,.12);
      --yellow-soft-2:rgba(255,212,0,.08);
      --green:#7CFFB4;
      --danger:#ff7676;
      --shadow:0 14px 40px rgba(0,0,0,.35);
      --radius-xl:28px;
      --radius-lg:22px;
      --radius-md:18px;
      --radius-sm:14px;
      --maxw:1120px;
      --footer-total-height:88px;
    }

    *{ box-sizing:border-box; }
    html,body{ margin:0; padding:0; }

    body.page-plans{
      min-height:100vh;
      background:
        radial-gradient(circle at top, rgba(255,212,0,.08), transparent 24%),
        linear-gradient(180deg, #050505 0%, #090909 100%);
      color:var(--text);
      font-family: Inter, Arial, Helvetica, sans-serif;
    }

    .page-plans .page-header{
      position:sticky;
      top:0;
      z-index:20;
      backdrop-filter: blur(10px);
      background:rgba(5,5,5,.84);
      border-bottom:1px solid rgba(255,255,255,.06);
    }

    .page-plans .page-header-box{
      max-width:var(--maxw);
      margin:0 auto;
      padding:18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }

    .page-plans .brand-block{
      min-width:0;
    }

    .page-plans .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.18em;
    }

    .page-plans .logoLink{
      color:var(--yellow);
      text-decoration:none;
    }

    .page-plans .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.14em;
      color:var(--text-fade);
    }

    .page-plans .user-bar{
      color:var(--text-soft);
      font-size:13px;
      text-align:right;
      line-height:1.35;
    }

    .page-plans .user-bar strong{
      color:#fff;
      font-weight:800;
    }

    .page-plans .container{
      width:100%;
      max-width:var(--maxw);
      margin:0 auto;
      padding:22px 18px calc(var(--footer-total-height) + 32px);
    }

    .page-plans .plansWrap{
      padding-bottom: calc(var(--footer-total-height) + 28px);
    }

    .page-plans .hero{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      margin-bottom:18px;
      padding:22px;
      border:1px solid rgba(255,255,255,.08);
      border-radius:var(--radius-xl);
      background:
        radial-gradient(circle at 0% 0%, rgba(255,212,0,.10), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      box-shadow:var(--shadow);
    }

    .page-plans .heroTitle{
      margin:0;
      font-size:30px;
      line-height:1.05;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .page-plans .heroSub{
      margin:8px 0 0;
      font-size:14px;
      line-height:1.45;
      color:var(--text-soft);
      max-width:760px;
    }

    .page-plans .pill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      color:rgba(255,255,255,.88);
      font-size:12px;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      white-space:nowrap;
      flex-shrink:0;
    }

    .page-plans .pillPrimary{
      border-color:rgba(255,212,0,.22);
      background:var(--yellow-soft);
      color:#fff;
    }

    .page-plans .dot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:#909090;
      flex-shrink:0;
    }

    .page-plans .card{
      border:1px solid var(--line);
      border-radius:var(--radius-xl);
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.025));
      box-shadow:var(--shadow);
      padding:22px;
      margin-bottom:16px;
    }

    .page-plans .card.locked{
      opacity:.95;
    }

    .page-plans .cardTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin-bottom:10px;
    }

    .page-plans .cardTitle{
      margin:0;
      font-size:22px;
      line-height:1.1;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .page-plans .cardDesc{
      margin:0;
      color:var(--text-soft);
      font-size:14px;
      line-height:1.5;
    }

    .page-plans .strip{
      margin-top:14px;
      padding:12px 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
      background:
        linear-gradient(90deg, rgba(255,212,0,.14), rgba(255,255,255,.03));
    }

    .page-plans .stripTag{
      display:inline-flex;
      align-items:center;
      gap:10px;
      font-size:12px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.08em;
      color:rgba(255,255,255,.92);
    }

    .page-plans .grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:14px;
    }

    .page-plans .actions{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:14px;
    }

    .page-plans .btn,
    .page-plans .chip,
    .page-plans .modalClose{
      appearance:none;
      border:none;
      outline:none;
      transition:transform .12s ease, opacity .12s ease, background .12s ease, border-color .12s ease;
    }

    .page-plans .btn:active,
    .page-plans .chip:active,
    .page-plans .modalClose:active{
      transform:translateY(1px);
    }

    .page-plans .btn{
      min-height:46px;
      padding:0 18px;
      border-radius:14px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      cursor:pointer;
    }

    .page-plans .btnPrimary{
      border:1px solid rgba(255,212,0,.22);
      background:var(--yellow);
      color:#000;
    }

    .page-plans .btnGhost{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .page-plans .btnWide{
      flex:1;
      min-width:160px;
    }

    .page-plans .filterBar{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:12px;
      margin-bottom:8px;
    }

    .page-plans .chip{
      border-radius:999px;
      padding:10px 12px;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      font-size:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.86);
      cursor:pointer;
      user-select:none;
    }

    .page-plans .chipActive{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:rgba(255,255,255,.96);
    }

    .page-plans .lockOverlay{
      margin-top:12px;
      padding:12px;
      border-radius:16px;
      border:1px solid rgba(255,212,0,.18);
      background:rgba(255,212,0,.08);
      color:rgba(255,255,255,.88);
    }

    .page-plans .lockBadge{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(0,0,0,.20);
      font-size:12px;
      font-weight:900;
      text-transform:uppercase;
    }

    .page-plans .lockHint{
      margin-top:8px;
      font-size:13px;
      color:rgba(255,255,255,.80);
    }

    .page-plans .modalBackdrop{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.72);
      display:none;
      align-items:center;
      justify-content:center;
      padding:18px;
      z-index:9999;
      backdrop-filter: blur(6px);
    }

    .page-plans .modalCard{
      width:min(720px, 100%);
      border-radius:22px;
      background:rgba(18,18,18,.98);
      border:1px solid rgba(255,212,0,.18);
      box-shadow:0 18px 60px rgba(0,0,0,.6);
      overflow:hidden;
      position:relative;
    }

    .page-plans .modalHeader{
      padding:18px 18px 0 18px;
      display:flex;
      gap:10px;
      align-items:flex-start;
      justify-content:space-between;
    }

    .page-plans .modalClose{
      width:40px;
      height:40px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
    }

    .page-plans .modalBody{
      padding:0 18px 18px 18px;
    }

    .page-plans .modalTitle{
      font-size:22px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:var(--yellow);
      margin-top:2px;
    }

    .page-plans .modalSub{
      color:rgba(255,255,255,.76);
      margin-top:6px;
      line-height:1.45;
      font-size:14px;
    }

    .page-plans .modalMetaRow{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:14px;
    }

    .page-plans .metaPill{
      padding:8px 10px;
      border-radius:999px;
      font-size:12px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.82);
      display:flex;
      gap:8px;
      align-items:center;
    }

    .page-plans .metaDot{
      width:8px;
      height:8px;
      border-radius:999px;
      background:var(--yellow);
      box-shadow:0 0 0 4px rgba(255,212,0,.12);
    }

    .page-plans .modalStrip{
      margin-top:14px;
      border-radius:14px;
      background:linear-gradient(90deg, rgba(255,212,0,.18), rgba(255,255,255,.04));
      border:1px solid rgba(255,255,255,.10);
      padding:12px;
      color:rgba(255,255,255,.88);
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      font-size:12px;
    }

    .page-plans .modalGrid{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
    }

    .page-plans .modalBox{
      border-radius:16px;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      padding:12px;
      color:rgba(255,255,255,.82);
      font-size:14px;
      line-height:1.5;
    }

    .page-plans .modalBox h4{
      margin:0 0 6px 0;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-size:12px;
      color:rgba(255,255,255,.92);
    }

    .page-plans .modalActions{
      margin-top:14px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .page-plans .lockedHint{
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(255,212,0,.18);
      background:rgba(255,212,0,.08);
      color:rgba(255,255,255,.88);
      font-size:13px;
    }

    .page-plans #appFooter{
      margin-top:auto;
    }

    @media (max-width: 920px){
      .page-plans .grid{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 760px){
      .page-plans .page-header-box{
        padding:16px 14px;
        align-items:flex-start;
        flex-direction:column;
      }

      .page-plans .user-bar{
        text-align:left;
      }

      .page-plans .container{
        padding:16px 14px calc(var(--footer-total-height) + 24px);
      }

      .page-plans .hero,
      .page-plans .card{
        padding:18px;
      }

      .page-plans .hero{
        flex-direction:column;
      }

      .page-plans .cardTop{
        flex-direction:column;
        align-items:flex-start;
      }

      .page-plans .modalGrid{
        grid-template-columns:1fr;
      }
    }

    @media (max-width: 640px){
      .page-plans .brand-title{
        font-size:24px;
      }

      .page-plans .heroTitle{
        font-size:24px;
      }

      .page-plans .cardTitle{
        font-size:20px;
      }

      .page-plans .btn{
        width:100%;
      }

      .page-plans .btnWide{
        width:100%;
        min-width:0;
      }
    }

/* From planos.html */
.lockedCard{
      position:relative;
      opacity:.65;
    }
    .lockOverlay{
      position:absolute;
      inset:0;
      background:rgba(0,0,0,.75);
      border-radius:22px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:8px;
      font-weight:800;
      letter-spacing:.1em;
      text-transform:uppercase;
    }
    .lockOverlay span{
      font-size:26px;
    }

/* From planos_semana.html */
/* FORCE override do app.css sÃ³ nesta pÃ¡gina */
body.page-generator .container .step button.btn{
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.92) !important;
}

body.page-generator .container .step button.btn.active{
  background: #FFD400 !important;
  border-color: #FFD400 !important;
  color: #000 !important;
}

body.page-generator .container .step button.btn.btnSubmit{
  background: #FFD400 !important;
  border: 0 !important;
  color: #000 !important;
  font-weight: 900 !important;
}

/* From plano_corrida.html */
.page-run .containerWrap{
  width:100%;
  max-width:900px;
  margin:0 auto;
}

.page-run .cardPremium{
  border:1px solid rgba(255,255,255,.08);
  background:radial-gradient(circle at 20% 0%, rgba(255,212,0,.15), rgba(0,0,0,1));
  border-radius:28px;
  padding:24px;
  box-shadow:var(--shadow-soft);
}

.page-run .topBar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:24px;
  gap:12px;
  flex-wrap:wrap;
}

.page-run .topTitle{
  font-size:20px;
  font-weight:900;
  color:#fff;
  letter-spacing:.02em;
}

.page-run .topSub{
  font-size:13px;
  color:#aaa;
  margin-top:4px;
}

.page-run .weekHeader{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:18px;
  flex-wrap:wrap;
}

.page-run .weekLeft{
  min-width:0;
}

.page-run .weekKicker{
  font-size:12px;
  color:#aaa;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
}

.page-run .weekRange{
  font-size:16px;
  color:#fff;
  font-weight:800;
  margin-top:4px;
}

.page-run .weekBtns{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.page-run .dayCard{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  border-radius:20px;
  padding:16px;
  transition:.2s;
  margin-bottom:12px;
}

.page-run .dayCard:hover{
  background:rgba(255,255,255,.07);
}

.page-run .dayTop{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}

.page-run .dayDate{
  font-size:13px;
  color:#aaa;
}

.page-run .dayTitle{
  font-size:18px;
  font-weight:900;
  color:#fff;
  margin-top:4px;
}

.page-run .dayMeta{
  font-size:12px;
  color:rgba(255,255,255,.60);
  margin-top:4px;
}

.page-run .dayDur{
  font-size:13px;
  color:#fff;
  white-space:nowrap;
  font-weight:800;
}

.page-run .dayActions{
  display:flex;
  gap:10px;
  margin-top:14px;
  flex-wrap:wrap;
}

.page-run .btnPrimary{
  background:#FFD400;
  color:#000;
  font-weight:900;
  border-radius:16px;
  padding:12px 16px;
  text-transform:uppercase;
  letter-spacing:.06em;
  cursor:pointer;
  border:0;
  min-height:46px;
}

.page-run .btnGhost{
  border:1px solid rgba(255,255,255,.15);
  border-radius:16px;
  padding:12px 16px;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  cursor:pointer;
  background:rgba(255,255,255,.06);
  min-height:46px;
}

.page-run .btnPrimary.flex,
.page-run .btnGhost.flex{
  flex:1;
  min-width:180px;
}

.page-run .emptyState{
  text-align:center;
  margin-top:40px;
}

.page-run .emptyTitle{
  font-size:16px;
  color:#fff;
}

.page-run .bottomActions{
  margin-top:24px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

@media (max-width: 640px){
  .page-run .cardPremium{
    padding:18px;
    border-radius:20px;
  }

  .page-run .bottomActions{
    grid-template-columns:1fr;
  }
}

/* ===== MODAL ===== */
.modalOverlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.78);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:999;
  padding:16px;
}

.modalBox{
  width:min(980px, 96vw);
  border-radius:28px;
  border:1px solid rgba(255,255,255,.10);
  background:radial-gradient(circle at 20% 0%, rgba(255,212,0,.10), rgba(0,0,0,1));
  box-shadow:0 40px 160px rgba(0,0,0,.75);
  padding:22px;
}

.modalTop{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.modalH{
  margin:0;
  font-size:32px;
  font-weight:1000;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.95);
}

.modalClose{
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:rgba(255,255,255,.85);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}

.modalDesc{
  margin-top:6px;
  color:rgba(255,255,255,.68);
  font-size:15px;
}

.chips{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border-radius:999px;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  font-size:13px;
  color:rgba(255,255,255,.88);
}

.chipDot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(255,212,0,.95);
  box-shadow:0 0 0 4px rgba(255,212,0,.10);
}

.modalBanner{
  margin-top:16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  padding:14px 16px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.90);
}

.modalGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px;
}

.modalCard{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  padding:16px;
}

.modalCardTitle{
  font-size:14px;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(255,255,255,.90);
  margin-bottom:8px;
}

.modalCardBody{
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.45;
}

.modalActions{
  margin-top:16px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

@media (max-width: 720px){
  .modalH{ font-size:24px; }
  .modalGrid, .modalActions{ grid-template-columns:1fr; }
}

/* From plano_hybrid.html */
.weekNav{
      display:flex; gap:10px; align-items:center; justify-content:space-between;
      flex-wrap:wrap; margin-top: 10px;
    }
    .weekTitle{
      font-weight:900; letter-spacing:.08em; text-transform:uppercase;
      color: rgba(255,255,255,.92);
      margin:0;
    }
    .weekSub{ margin:6px 0 0; color: rgba(255,255,255,.68); font-size:12px; }
    .navBtns{ display:flex; gap:10px; align-items:center; }
    .miniBtn{
      height:40px; padding:0 14px; border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
      cursor:pointer;
    }
    .miniBtn:active{ transform: translateY(1px); }
    .miniBtn.primary{
      border-color: rgba(255,212,0,.22);
      background: rgba(255,212,0,.14);
      color: rgba(255,255,255,.95);
    }

    .toolbar{
      display:flex; gap:10px; flex-wrap:wrap;
      align-items:center; margin-top:12px;
    }
    .togglePill{
      display:inline-flex; align-items:center; gap:10px;
      padding:10px 14px; border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      cursor:pointer;
      user-select:none;
    }
    .togglePill.on{
      border-color: rgba(255,212,0,.22);
      background: rgba(255,212,0,.12);
    }
    .toggleDot{
      width:10px; height:10px; border-radius:999px;
      background:#666;
    }
    .togglePill.on .toggleDot{
      background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12);
    }
    .search{
      flex:1; min-width: 220px;
      height:44px; border-radius:16px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.05);
      color:#fff; padding:0 14px;
      outline:none;
    }

    .viewBtns{ display:flex; gap:10px; }
    .viewBtn{
      height:44px; padding:0 16px; border-radius:16px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      cursor:pointer;
    }
    .viewBtn.on{
      border-color: rgba(255,212,0,.22);
      background: rgba(255,212,0,.12);
    }

    .kpis{ margin-top:12px; display:grid; gap:10px; grid-template-columns: repeat(4, minmax(0,1fr)); }
    @media (max-width: 860px){ .kpis{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
    .kpi{
      border-radius:18px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
    }
    .kpiLabel{ color: rgba(255,255,255,.70); font-size:12px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
    .kpiVal{ margin-top:8px; font-size:26px; font-weight:900; color: rgba(255,255,255,.94); }
    .kpiSub{ margin-top:6px; color: rgba(255,255,255,.70); font-size:12px; }

    .daysWrap{ margin-top: 14px; display:grid; gap:12px; }
    .gridWrap{ margin-top: 14px; display:grid; gap:12px; grid-template-columns: repeat(2, minmax(0,1fr)); }
    @media (max-width: 860px){ .gridWrap{ grid-template-columns: 1fr; } }

    .dayCard{
      border-radius: 18px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
      position:relative;
      overflow:hidden;
    }
    .dayTop{
      display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
    }
    .dayLeft{ min-width: 0; }
    .dayName{
      margin:0;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color: rgba(255,255,255,.92);
      font-size: 13px;
    }
    .dayDate{
      margin-top:6px;
      color: rgba(255,255,255,.68);
      font-size: 12px;
    }
    .dayPill{
      display:inline-flex; align-items:center; gap:10px;
      padding:8px 12px; border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: rgba(255,255,255,.86);
      font-size:12px;
      flex-shrink:0;
      white-space:nowrap;
    }
    .dot{ width:10px; height:10px; border-radius:999px; background:#aaa; }
    .dot.ok{ background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .dot.done{ background:#7CFFB4; box-shadow:0 0 0 5px rgba(120,255,180,.10); }
    .dot.off{ background:#666; box-shadow:none; }

    .title{
      margin: 10px 0 0;
      font-weight: 900;
      color: rgba(255,255,255,.94);
      font-size: 18px;
      letter-spacing:.02em;
    }
    .metaRow{
      margin-top:8px;
      display:flex; gap:10px; flex-wrap:wrap;
      color: rgba(255,255,255,.70);
      font-size: 12px;
    }
    .metaTag{
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding:6px 10px;
      border-radius:999px;
    }
    .notes{
      margin-top:10px;
      color: rgba(255,255,255,.72);
      font-size: 13px;
      line-height:1.35;
      display:none;
    }
    .actionsRow{
      margin-top: 12px;
      display:flex; gap:10px; flex-wrap:wrap;
    }
    .btnOpen{
      height:44px; padding:0 16px; border-radius:14px;
      border:1px solid rgba(255,212,0,.22);
      background:#FFD400;
      color:#000; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
      cursor:pointer;
      flex: 1;
      min-width: 180px;
    }
    .btnGhost2{
      height:44px; padding:0 16px; border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(255,255,255,.06);
      color:#fff; font-weight:900; letter-spacing:.08em; text-transform:uppercase;
      cursor:pointer;
      flex: 1;
      min-width: 160px;
    }

    .skeleton{
      opacity:.75;
      border-color: rgba(255,255,255,.10);
      background: rgba(255,255,255,.03);
    }
    .skLine{
      height:12px; border-radius:999px;
      background: rgba(255,255,255,.08);
      margin-top:10px;
      width: 70%;
    }
    .skLine.sm{ width: 45%; }
    .skLine.lg{ width: 90%; }

/* From plano_treinos.html */
:root{
      --bg:#050505;
      --bg-soft:#0c0c0c;
      --card:#101010;
      --card-2:#141414;
      --line:rgba(255,255,255,.10);
      --line-strong:rgba(255,255,255,.16);
      --text:#ffffff;
      --text-soft:rgba(255,255,255,.72);
      --text-fade:rgba(255,255,255,.56);
      --yellow:#FFD400;
      --yellow-soft:rgba(255,212,0,.14);
      --green:#7CFFB4;
      --shadow:0 10px 30px rgba(0,0,0,.30);
      --radius-xl:28px;
      --radius-lg:20px;
      --radius-md:16px;
      --radius-sm:14px;
      --maxw:1120px;
    }

    *{ box-sizing:border-box; }

    html,body{ margin:0; padding:0; }

    body{
      min-height:100vh;
      background:
        radial-gradient(circle at top, rgba(255,212,0,.08), transparent 26%),
        linear-gradient(180deg, #050505 0%, #090909 100%);
      color:var(--text);
      font-family: Inter, Arial, Helvetica, sans-serif;
    }

    .pageShell{
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .topbar{
      position:sticky;
      top:0;
      z-index:20;
      backdrop-filter: blur(10px);
      background:rgba(5,5,5,.84);
      border-bottom:1px solid rgba(255,255,255,.06);
    }

    .topbarInner{
      max-width:var(--maxw);
      margin:0 auto;
      padding:18px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
    }

    .brandBlock{
      min-width:0;
    }

    .brandTitle{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.18em;
      color:var(--yellow);
    }

    .brandSub{
      margin:6px 0 0;
      font-size:11px;
      text-transform:uppercase;
      letter-spacing:.14em;
      color:var(--text-fade);
    }

    #userBar{
      color:var(--text-soft);
      font-size:13px;
      text-align:right;
      line-height:1.35;
    }

    #userBar strong{
      color:#fff;
      font-weight:800;
    }

    .pageContainer{
      width:100%;
      max-width:var(--maxw);
      margin:0 auto;
      padding:22px 18px 120px;
      flex:1;
    }

    .hero{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:16px;
      margin-bottom:18px;
      padding:22px;
      border:1px solid rgba(255,255,255,.08);
      border-radius:var(--radius-xl);
      background:
        radial-gradient(circle at 0% 0%, rgba(255,212,0,.10), transparent 34%),
        linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
      box-shadow:var(--shadow);
    }

    .heroTitle{
      margin:0;
      font-size:28px;
      line-height:1.05;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .heroSub{
      margin:8px 0 0;
      font-size:14px;
      line-height:1.45;
      color:var(--text-soft);
      max-width:720px;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.05);
      color:rgba(255,255,255,.88);
      font-size:12px;
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      white-space:nowrap;
      flex-shrink:0;
    }

    .pillPrimary{
      border-color:rgba(255,212,0,.22);
      background:var(--yellow-soft);
      color:#fff;
    }

    .dot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:#8c8c8c;
      flex-shrink:0;
    }

    .dot.ok{ background:var(--yellow); box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .dot.done{ background:var(--green); box-shadow:0 0 0 5px rgba(124,255,180,.12); }
    .dot.off{ background:#666; box-shadow:none; }

    .card{
      border:1px solid var(--line);
      border-radius:var(--radius-xl);
      background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.025));
      box-shadow:var(--shadow);
      padding:22px;
    }

    .cardTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      margin-bottom:10px;
    }

    .cardTitle{
      margin:0;
      font-size:22px;
      line-height:1.1;
      font-weight:900;
      letter-spacing:-.02em;
      color:#fff;
    }

    .weekNav{
      display:flex;
      gap:12px;
      align-items:center;
      justify-content:space-between;
      flex-wrap:wrap;
      margin-top:14px;
      padding:16px 18px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
      border-radius:20px;
    }

    .weekTitle{
      margin:0;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-size:14px;
    }

    .weekSub{
      margin:6px 0 0;
      color:rgba(255,255,255,.68);
      font-size:12px;
      line-height:1.35;
    }

    .navBtns{
      display:flex;
      gap:10px;
      align-items:center;
      flex-wrap:wrap;
    }

    .miniBtn,
    .btn,
    .btnOpen,
    .btnGhost2{
      appearance:none;
      border:none;
      outline:none;
      cursor:pointer;
      transition:transform .12s ease, opacity .12s ease, background .12s ease, border-color .12s ease;
    }

    .miniBtn:active,
    .btn:active,
    .btnOpen:active,
    .btnGhost2:active{
      transform:translateY(1px);
    }

    .miniBtn{
      height:42px;
      padding:0 14px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
      font-weight:800;
      letter-spacing:.06em;
      text-transform:uppercase;
      min-width:44px;
    }

    .miniBtn.primary{
      border-color:rgba(255,212,0,.22);
      background:var(--yellow-soft);
      color:#fff;
    }

    .daysWrap{
      margin-top:16px;
      display:grid;
      gap:14px;
    }

    .dayCard{
      border-radius:20px;
      border:1px solid rgba(255,255,255,.10);
      background:
        linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.025));
      padding:16px;
      position:relative;
      overflow:hidden;
    }

    .dayTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap:10px;
    }

    .dayLeft{ min-width:0; }

    .dayName{
      margin:0;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-size:13px;
    }

    .dayDate{
      margin-top:6px;
      color:rgba(255,255,255,.68);
      font-size:12px;
    }

    .dayPill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.86);
      font-size:12px;
      flex-shrink:0;
      white-space:nowrap;
    }

    .title{
      margin:12px 0 0;
      font-weight:900;
      color:rgba(255,255,255,.95);
      font-size:20px;
      letter-spacing:-.01em;
      line-height:1.2;
    }

    .metaRow{
      margin-top:10px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      color:rgba(255,255,255,.70);
      font-size:12px;
    }

    .metaTag{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      padding:7px 10px;
      border-radius:999px;
    }

    .notes{
      margin-top:12px;
      color:rgba(255,255,255,.74);
      font-size:13px;
      line-height:1.5;
      display:none;
      padding:12px 14px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(255,255,255,.03);
    }

    .actionsRow{
      margin-top:14px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .btn{
      height:46px;
      padding:0 18px;
      border-radius:14px;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .btnGhost{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .btnOpen{
      height:46px;
      padding:0 16px;
      border-radius:14px;
      border:1px solid rgba(255,212,0,.22);
      background:var(--yellow);
      color:#000;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      flex:1;
      min-width:180px;
    }

    .btnGhost2{
      height:46px;
      padding:0 16px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      flex:1;
      min-width:160px;
    }

    .actions{
      margin-top:16px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .skeleton{
      opacity:.75;
      border-color:rgba(255,255,255,.10);
      background:rgba(255,255,255,.03);
    }

    .skLine{
      height:12px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      margin-top:10px;
      width:70%;
    }

    .skLine.sm{ width:45%; }
    .skLine.lg{ width:90%; }

    .bottom-nav{
      margin-top:auto;
    }

    @media (max-width: 860px){
      .topbarInner{
        align-items:flex-start;
        flex-direction:column;
      }

      #userBar{
        text-align:left;
      }

      .hero,
      .card{
        padding:18px;
      }

      .hero{
        flex-direction:column;
      }

      .cardTop{
        flex-direction:column;
        align-items:flex-start;
      }

      .weekNav{
        align-items:flex-start;
      }
    }

    @media (max-width: 640px){
      .pageContainer{
        padding:16px 14px 110px;
      }

      .topbarInner{
        padding:16px 14px;
      }

      .brandTitle{
        font-size:24px;
      }

      .heroTitle{
        font-size:24px;
      }

      .cardTitle{
        font-size:20px;
      }

      .title{
        font-size:18px;
      }

      .btnOpen,
      .btnGhost2,
      .btn{
        width:100%;
        min-width:0;
      }

      .navBtns{
        width:100%;
      }

      .navBtns .miniBtn{
        flex:1;
      }

      .dayTop{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* From plano_wizard.html */
.wizardWrap{ max-width: 820px; margin: 0 auto; }
    .stepPill{
      display:inline-flex; align-items:center; gap:10px;
      padding:8px 12px; border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: rgba(255,255,255,.86);
      font-size:12px;
    }
    .stepDot{ width:10px; height:10px; border-radius:999px; background:#FFD400; box-shadow:0 0 0 5px rgba(255,212,0,.12); }
    .progressBar{
      width:100%; height:10px; border-radius:999px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.10);
      overflow:hidden;
      margin-top: 10px;
    }
    .progressFill{ height:100%; width:0%; background: rgba(255,212,0,.85); transition: width .25s ease; }
    .optionGrid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 10px;
      margin-top: 12px;
    }
    @media (min-width: 720px){
      .optionGrid{ grid-template-columns: 1fr 1fr; }
    }
    .opt{
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding: 12px;
      cursor:pointer;
      transition: transform .08s ease, border-color .15s ease, background .15s ease;
      user-select: none;
    }
    .opt:hover{ transform: translateY(-1px); border-color: rgba(255,212,0,.22); background: rgba(255,255,255,.05); }
    .opt.active{
      border-color: rgba(255,212,0,.35);
      background: rgba(255,212,0,.08);
      box-shadow: 0 0 0 4px rgba(255,212,0,.08);
    }
    .optTitle{
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: rgba(255,255,255,.92);
      font-size: 13px;
      margin: 0;
    }
    .optDesc{ margin-top: 6px; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.35; }
    .inlineRow{
      display:flex; gap:10px; flex-wrap:wrap;
      margin-top: 10px;
    }
    .select{
      flex: 1;
      min-width: 220px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.06);
      color: #fff;
      padding: 12px 12px;
      outline: none;
    }
    .hintBox{
      margin-top: 12px;
      padding: 12px;
      border-radius: 16px;
      border: 1px solid rgba(255,212,0,.18);
      background: rgba(255,212,0,.08);
      color: rgba(255,255,255,.86);
      line-height: 1.35;
      font-size: 13px;
    }
    .mutedSmall{ color: rgba(255,255,255,.65); font-size: 12px; margin-top: 8px; }
    .errBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(255,120,120,.22);
      background: rgba(255,120,120,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }
    .successBox{
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      border: 1px solid rgba(120,255,180,.18);
      background: rgba(120,255,180,.10);
      color: rgba(255,255,255,.92);
      display:none;
      font-size: 13px;
    }

/* From plano_wizard_deka.html */
.page-deka-wizard .wizardWrap{
      width:100%;
      max-width:820px;
      margin:0 auto;
    }

    .page-deka-wizard .stepPill{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.86);
      font-size:12px;
    }

    .page-deka-wizard .stepDot{
      width:10px;
      height:10px;
      border-radius:999px;
      background:#FFD400;
      box-shadow:0 0 0 5px rgba(255,212,0,.12);
    }

    .page-deka-wizard .progressBar{
      width:100%;
      height:10px;
      border-radius:999px;
      background:rgba(255,255,255,.08);
      border:1px solid rgba(255,255,255,.10);
      overflow:hidden;
      margin-top:10px;
    }

    .page-deka-wizard .progressFill{
      height:100%;
      width:0%;
      background:rgba(255,212,0,.85);
      transition:width .25s ease;
    }

    .page-deka-wizard .optionGrid{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin-top:12px;
    }

    @media (min-width:720px){
      .page-deka-wizard .optionGrid{
        grid-template-columns:1fr 1fr;
      }
    }

    .page-deka-wizard .opt{
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      padding:12px;
      cursor:pointer;
      transition:transform .08s ease, border-color .15s ease, background .15s ease;
      user-select:none;
    }

    .page-deka-wizard .opt:hover{
      transform:translateY(-1px);
      border-color:rgba(255,212,0,.22);
      background:rgba(255,255,255,.05);
    }

    .page-deka-wizard .opt.active{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.08);
      box-shadow:0 0 0 4px rgba(255,212,0,.08);
    }

    .page-deka-wizard .optTitle{
      font-weight:900;
      letter-spacing:.08em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
      font-size:13px;
      margin:0;
    }

    .page-deka-wizard .optDesc{
      margin-top:6px;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.35;
    }

    .page-deka-wizard .inlineRow{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:10px;
    }

    .page-deka-wizard .select{
      flex:1;
      min-width:220px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      padding:12px 12px;
      outline:none;
    }

    .page-deka-wizard .select:focus{
      border-color:rgba(255,212,0,.35);
    }

    .page-deka-wizard .hintBox{
      margin-top:12px;
      padding:12px;
      border-radius:16px;
      border:1px solid rgba(255,212,0,.18);
      background:rgba(255,212,0,.08);
      color:rgba(255,255,255,.86);
      line-height:1.35;
      font-size:13px;
    }

    .page-deka-wizard .mutedSmall{
      color:rgba(255,255,255,.65);
      font-size:12px;
      margin-top:8px;
    }

    .page-deka-wizard .errBox{
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(255,120,120,.22);
      background:rgba(255,120,120,.10);
      color:rgba(255,255,255,.92);
      display:none;
      font-size:13px;
    }

    .page-deka-wizard .successBox{
      margin-top:10px;
      padding:10px 12px;
      border-radius:14px;
      border:1px solid rgba(120,255,180,.18);
      background:rgba(120,255,180,.10);
      color:rgba(255,255,255,.92);
      display:none;
      font-size:13px;
    }

    .page-deka-wizard .headerMeta{
      display:flex;
      align-items:center;
      gap:8px;
      flex-wrap:wrap;
    }

    .page-deka-wizard .vipBadge{
      display:inline-block;
      font-size:10px;
      padding:6px 10px;
      border-radius:999px;
      background:#FFD400;
      color:#000;
      font-weight:900;
      letter-spacing:.12em;
      text-transform:uppercase;
      line-height:1;
    }

/* From plano_wizard_running.html */
.page-generator .wizardWrap{
  width:100%;
  max-width:760px;
  margin:0 auto;
}

.page-generator .page-main{
  padding-bottom:calc(150px + env(safe-area-inset-bottom, 0px));
}

.page-generator .progress{
  height:10px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  overflow:hidden;
  margin-top:8px;
}

.page-generator .progress-bar{
  height:100%;
  width:0%;
  background:rgba(255,212,0,.95);
  transition:.25s;
}

.page-generator .progress-text{
  margin-top:10px;
  font-size:12px;
  color:rgba(255,255,255,.65);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.page-generator .step{
  display:none;
  margin-top:18px;
  padding:22px;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at top left, rgba(255,212,0,.12), transparent 40%),
    rgba(255,255,255,.04);
  box-shadow:var(--shadow-soft);
}

.page-generator .step.active{
  display:block;
}

.page-generator .step h2{
  margin:0 0 14px;
  font-size:18px;
  letter-spacing:.08em;
  font-weight:900;
  text-transform:uppercase;
  color:rgba(255,255,255,.95);
}

.page-generator .grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.page-generator .grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; }
.page-generator .grid-4{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.page-generator .grid-7{ display:grid; grid-template-columns:repeat(7, 1fr); gap:10px; }
.page-generator .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }

.page-generator .inp,
.page-generator select.inp{
  width:100%;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  padding:14px;
  color:#fff;
  outline:none;
}

.page-generator select.inp option{
  color:#000;
}

.page-generator .inp:focus,
.page-generator select.inp:focus{
  border-color:rgba(255,212,0,.35);
}

.page-generator .hint{
  margin-top:8px;
  font-size:12px;
  color:rgba(255,255,255,.55);
  line-height:1.4;
}

.page-generator .msgErr{ color:#ffb4b0; }
.page-generator .msgOk{ color:rgba(255,255,255,.75); }

.page-generator .backBtn{
  margin:16px auto 0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  padding:14px 12px;
  color:rgba(255,255,255,.78);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:900;
  cursor:pointer;
}

.page-generator .dayChip{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  border-radius:999px;
  padding:12px 0;
  text-align:center;
  font-size:12px;
  cursor:pointer;
  user-select:none;
}

.page-generator .dayChip.active{
  border-color:rgba(255,212,0,.75);
  background:rgba(255,212,0,.18);
}

.page-generator .vipBadge{
  display:inline-block;
  font-size:10px;
  padding:6px 10px;
  border-radius:999px;
  background:#FFD400;
  color:#000;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
}

.page-generator .headerMeta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.page-generator .btnChoice{
  width:100%;
  border-radius:20px;
  padding:14px 12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06) !important;
  color:rgba(255,255,255,.92) !important;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
}

.page-generator .btnChoice.active{
  border-color:rgba(255,212,0,.75) !important;
  background:rgba(255,212,0,.18) !important;
  color:rgba(255,255,255,.95) !important;
}

.page-generator .btnChoice.is-disabled{
  opacity:.45;
  pointer-events:none;
}

.page-generator .btnPrimary{
  width:100%;
  border-radius:20px;
  padding:14px 12px;
  border:0;
  background:#FFD400 !important;
  color:#000 !important;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
}

.page-generator .btnPrimary:active{
  transform:scale(.99);
}

.page-generator .timeWrap{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
}

.page-generator .timeBox{
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  padding:12px;
  background:rgba(255,255,255,.04);
}

.page-generator .timeLbl{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(255,255,255,.55);
  margin-bottom:8px;
}

.page-generator .summaryBox{
  line-height:1.8;
}

.hidden{ display:none !important; }

@media (max-width: 760px){
  .page-generator .grid-7{ grid-template-columns:repeat(4, 1fr); }
}

@media (max-width: 640px){
  .page-generator .grid-2,
  .page-generator .grid-3,
  .page-generator .grid-4,
  .page-generator .row2,
  .page-generator .timeWrap{
    grid-template-columns:1fr;
  }

  .page-generator .grid-7{
    grid-template-columns:repeat(4, 1fr);
  }

  .page-generator .step{
    padding:18px;
    border-radius:20px;
  }
}

/* From pricing.html */
:root{
      --primary:#FFD400;
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-pricing{
      min-height:100vh;
      overflow-x:hidden;
    }

    .pricing-shell{
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .pricing-main{
      flex:1;
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(150px + env(safe-area-inset-bottom, 0px));
    }

    .pricing-wrap{
      width:100%;
    }

    .hero2{
      margin-top:2px;
      padding:20px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:linear-gradient(180deg, rgba(255,212,0,.10), rgba(255,255,255,.03));
      box-shadow:var(--shadow);
    }

    .hero2 h2{
      margin:0;
      font-size:28px;
      font-weight:900;
      letter-spacing:1px;
      text-transform:uppercase;
    }

    .hero2 p{
      margin:8px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      max-width:70ch;
      line-height:1.5;
    }

    .toggleRow{
      margin-top:14px;
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
    }

    .toggleBtn{
      height:40px;
      padding:0 14px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#ddd;
      font-weight:900;
      letter-spacing:.4px;
      text-transform:uppercase;
      cursor:pointer;
      transition:.18s ease;
    }

    .toggleBtn.on{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .grid2{
      margin-top:14px;
      display:grid;
      grid-template-columns:1fr;
      gap:14px;
    }

    @media(min-width:980px){
      .grid2{ grid-template-columns:1fr 1fr; }
    }

    .planCard{
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      padding:18px;
      position:relative;
      overflow:hidden;
      box-shadow:var(--shadow);
    }

    .planCard:before{
      content:"";
      position:absolute;
      inset:-2px;
      background:radial-gradient(700px 280px at 20% 10%, rgba(255,212,0,.12), transparent 60%);
      pointer-events:none;
    }

    .planCard.vip{
      border-color:rgba(255,212,0,.30);
      background:rgba(255,212,0,.08);
    }

    .planTop{
      position:relative;
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:flex-start;
    }

    .planName{
      margin:0;
      font-size:18px;
      font-weight:900;
      letter-spacing:1px;
      text-transform:uppercase;
    }

    .planTag{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:7px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      letter-spacing:.4px;
      text-transform:uppercase;
      color:#ddd;
      white-space:nowrap;
    }

    .planTag.primary{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.12);
      color:#fff;
    }

    .priceRow{
      position:relative;
      margin-top:12px;
      display:flex;
      align-items:baseline;
      gap:10px;
      flex-wrap:wrap;
    }

    .priceMain{
      font-size:30px;
      font-weight:900;
      color:var(--primary);
      letter-spacing:1px;
    }

    .priceSub{
      font-size:12px;
      color:rgba(255,255,255,.65);
    }

    .feat{
      position:relative;
      margin-top:14px;
      display:flex;
      flex-direction:column;
      gap:10px;
    }

    .featItem{
      display:flex;
      gap:10px;
      align-items:flex-start;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.08);
      background:rgba(0,0,0,.20);
      padding:10px 12px;
      color:rgba(255,255,255,.84);
      font-size:13px;
      line-height:1.4;
    }

    .featItem b{ color:#fff; }

    .check{
      color:var(--primary);
      font-weight:900;
      flex:0 0 auto;
    }

    .ctaRow{
      position:relative;
      margin-top:14px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .ctaRow .btn{
      min-width:220px;
    }

    .fine{
      position:relative;
      margin-top:10px;
      color:rgba(255,255,255,.55);
      font-size:12px;
      line-height:1.4;
    }

    .faq{
      margin-top:14px;
      border-radius:24px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.04);
      padding:18px;
      box-shadow:var(--shadow);
    }

    .faqTop{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      margin-bottom:8px;
    }

    .faqTitle{
      margin:0;
      font-size:16px;
      font-weight:900;
      letter-spacing:.8px;
      text-transform:uppercase;
      color:#fff;
    }

    .pill{
      display:inline-flex;
      align-items:center;
      gap:8px;
      min-height:38px;
      padding:0 12px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      font-size:12px;
      font-weight:900;
      color:#ddd;
      text-transform:uppercase;
    }

    .dot{
      width:8px;
      height:8px;
      border-radius:50%;
      background:var(--primary);
      box-shadow:0 0 0 4px rgba(255,212,0,.12);
    }

    .faq h3{
      margin:14px 0 0;
      font-size:14px;
      font-weight:900;
      letter-spacing:.6px;
      text-transform:uppercase;
      color:#fff;
    }

    .faq p{
      margin:8px 0 0;
      color:rgba(255,255,255,.72);
      font-size:13px;
      line-height:1.5;
    }

    .legalMini{
      margin-top:16px;
      color:rgba(255,255,255,.55);
      font-size:12px;
      line-height:1.4;
    }

    .legalMini a{
      color:var(--primary);
      text-decoration:none;
    }

    .legalMini a:hover{
      text-decoration:underline;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .pricing-main{
        padding:8px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box,
      .hero2,
      .planCard,
      .faq{
        border-radius:20px;
      }

      .hero2{
        padding:18px;
      }

      .hero2 h2{
        font-size:24px;
      }

      .ctaRow .btn{
        min-width:unset;
        width:100%;
      }

      .planTop,
      .faqTop{
        flex-direction:column;
        align-items:flex-start;
      }
    }

/* From recuperar-password.html */
:root{
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --muted-2:#8f8f8f;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#FFD400;
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
      --form-max:470px;
    }

    *{
      box-sizing:border-box;
    }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-recover{
      min-height:100vh;
      overflow-x:hidden;
    }

    .recover-shell{
      position:relative;
      min-height:100vh;
      background:#000;
      overflow:hidden;
    }

    .recover-bg{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .recover-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.30;
    }

    .recover-bg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.14), transparent 22%),
        linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.78)),
        rgba(0,0,0,.46);
    }

    .recover-inner{
      position:relative;
      z-index:1;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .recover-main{
      flex:1;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 18px calc(150px + env(safe-area-inset-bottom, 0px));
      text-align:center;
    }

    .recover-wrap{
      width:100%;
      max-width:var(--form-max);
    }

    .recover-panel{
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:28px 24px 24px;
      background:linear-gradient(180deg, rgba(17,17,17,.78), rgba(9,9,9,.88));
      backdrop-filter:blur(10px);
      box-shadow:var(--shadow);
    }

    .recover-kicker{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .recover-title{
      margin:16px 0 0;
      font-size:44px;
      line-height:.92;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:-.02em;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .recover-title span{
      display:block;
      color:var(--primary);
    }

    .recover-subtitle{
      margin:14px auto 0;
      max-width:360px;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .form-block{
      margin-top:28px;
      text-align:left;
    }

    .recover-form{
      display:grid;
      gap:16px;
    }

    .field{
      display:block;
      text-align:left;
    }

    .field-label{
      display:block;
      margin:0 0 8px;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .field-input{
      width:100%;
      min-height:54px;
      padding:0 16px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      transition:.18s ease;
      font-size:15px;
    }

    .field-input::placeholder{
      color:#8f8f8f;
    }

    .field-input:focus{
      border-color:rgba(255,212,0,.45);
      box-shadow:0 0 0 3px rgba(255,212,0,.12);
      background:rgba(255,255,255,.07);
    }

    .btn-main,
    .btn-secondary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      min-height:54px;
      padding:0 18px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-decoration:none;
      cursor:pointer;
      transition:.18s ease;
    }

    .btn-main{
      border:0;
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.15);
    }

    .btn-main:hover{
      transform:translateY(-1px);
      filter:brightness(1.02);
    }

    .btn-secondary{
      margin-top:14px;
      border:2px solid var(--primary);
      background:transparent;
      color:var(--primary);
    }

    .btn-secondary:hover{
      transform:translateY(-1px);
      background:rgba(255,212,0,.06);
    }

    .form-msg{
      margin-top:14px;
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
      text-align:center;
    }

    .form-msg.is-success{
      color:#b9ffbf;
    }

    .form-msg.is-error{
      color:#ffb4b0;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      body.page-recover{
        overflow:auto;
      }

      .page-header{
        padding:14px 14px 8px;
      }

      .recover-main{
        align-items:flex-start;
        padding:18px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .recover-panel,
      .page-header-box{
        border-radius:20px;
      }

      .recover-panel{
        padding:22px 18px 18px;
      }

      .recover-title{
        font-size:36px;
      }

      .brand-title{
        font-size:24px;
      }
    }

/* From register.html */
:root{
      --bg:#050505;
      --panel:#111111;
      --panel-2:#171717;
      --text:#ffffff;
      --muted:#bdbdbd;
      --muted-2:#8f8f8f;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#FFD400;
      --shadow:0 18px 42px rgba(0,0,0,.30);
      --max:1180px;
      --form-max:470px;
    }

    *{
      box-sizing:border-box;
    }

    html, body{
      margin:0;
      padding:0;
      min-height:100%;
      background:#000;
      color:var(--text);
      font-family:Montserrat, Arial, Helvetica, sans-serif;
    }

    body.page-register{
      min-height:100vh;
      overflow-x:hidden;
    }

    .register-shell{
      position:relative;
      min-height:100vh;
      background:#000;
      overflow:hidden;
    }

    .register-bg{
      position:absolute;
      inset:0;
      z-index:0;
    }

    .register-bg img{
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      opacity:.30;
    }

    .register-bg::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.14), transparent 22%),
        linear-gradient(180deg, rgba(0,0,0,.44), rgba(0,0,0,.78)),
        rgba(0,0,0,.46);
    }

    .register-inner{
      position:relative;
      z-index:1;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .register-main{
      flex:1;
      display:flex;
      align-items:center;
      justify-content:center;
      padding:20px 18px calc(150px + env(safe-area-inset-bottom, 0px));
      text-align:center;
    }

    .register-wrap{
      width:100%;
      max-width:var(--form-max);
    }

    .register-panel{
      border:1px solid rgba(255,255,255,.08);
      border-radius:24px;
      padding:28px 24px 24px;
      background:linear-gradient(180deg, rgba(17,17,17,.78), rgba(9,9,9,.88));
      backdrop-filter:blur(10px);
      box-shadow:var(--shadow);
    }

    .register-kicker{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:34px;
      padding:0 12px;
      border-radius:999px;
      background:rgba(255,212,0,.08);
      border:1px solid rgba(255,212,0,.18);
      color:var(--primary);
      font-size:11px;
      font-weight:800;
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .register-title{
      margin:16px 0 0;
      font-size:44px;
      line-height:.92;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:-.02em;
      font-family:"Bebas Neue", Arial, sans-serif;
    }

    .register-title span{
      display:block;
      color:var(--primary);
    }

    .register-subtitle{
      margin:14px auto 0;
      max-width:360px;
      color:#d0d0d0;
      font-size:14px;
      line-height:1.6;
    }

    .form-block{
      margin-top:28px;
      text-align:left;
    }

    .register-form{
      display:grid;
      gap:16px;
    }

    .field{
      display:block;
      text-align:left;
    }

    .field-label{
      display:block;
      margin:0 0 8px;
      font-size:11px;
      color:#cfcfcf;
      text-transform:uppercase;
      letter-spacing:.16em;
      font-weight:700;
    }

    .field-input{
      width:100%;
      min-height:54px;
      padding:0 16px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      transition:.18s ease;
      font-size:15px;
    }

    .field-input::placeholder{
      color:#8f8f8f;
    }

    .field-input:focus{
      border-color:rgba(255,212,0,.45);
      box-shadow:0 0 0 3px rgba(255,212,0,.12);
      background:rgba(255,255,255,.07);
    }

    .field-help{
      margin-top:8px;
      font-size:11px;
      color:#9f9f9f;
      line-height:1.4;
    }

    .btn-main,
    .btn-secondary{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      width:100%;
      min-height:54px;
      padding:0 18px;
      border-radius:16px;
      font-size:14px;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-decoration:none;
      cursor:pointer;
      transition:.18s ease;
    }

    .btn-main{
      border:0;
      background:var(--primary);
      color:#111;
      box-shadow:0 10px 24px rgba(255,212,0,.15);
    }

    .btn-main:hover{
      transform:translateY(-1px);
      filter:brightness(1.02);
    }

    .btn-secondary{
      margin-top:14px;
      border:2px solid var(--primary);
      background:transparent;
      color:var(--primary);
    }

    .btn-secondary:hover{
      transform:translateY(-1px);
      background:rgba(255,212,0,.06);
    }

    .form-msg{
      margin-top:14px;
      min-height:18px;
      font-size:12px;
      color:#cfcfcf;
      line-height:1.45;
      text-align:center;
    }

    .form-msg.is-error{
      color:#ffb4b0;
    }

    .form-msg.is-success{
      color:#b9ffbf;
    }

    @media (max-width: 768px){
      .page-header-box{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }
    }

    @media (max-width: 640px){
      body.page-register{
        overflow:auto;
      }

      .page-header{
        padding:14px 14px 8px;
      }

      .register-main{
        align-items:flex-start;
        padding:18px 14px calc(150px + env(safe-area-inset-bottom, 0px));
      }

      .register-panel,
      .page-header-box{
        border-radius:20px;
      }

      .register-panel{
        padding:22px 18px 18px;
      }

      .register-title{
        font-size:36px;
      }

      .brand-title{
        font-size:24px;
      }
    }

/* From treino_corrida.html */
.wrap{ max-width:980px; margin:0 auto; padding:18px 18px 120px; }
    .cardPremium{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.05);
      border-radius:26px;
      padding:18px;
      box-shadow:0 20px 50px rgba(0,0,0,.35);
    }
    .cardGlow{
      background:
        radial-gradient(1200px 500px at 40% 0%, rgba(255,212,0,.14), transparent 55%),
        rgba(255,255,255,.05);
    }
    .topRow{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
    .titleBig{
      font-size:26px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; margin:0;
    }
    .subtitle{ color:rgba(255,255,255,.72); margin-top:6px; font-size:13px; }
    .metaLine{
      margin-top:10px;
      color:rgba(255,255,255,.72);
      font-size:12px;
      display:flex; flex-wrap:wrap; gap:10px; align-items:center;
    }
    .pill{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      font-size:12px;
      color:rgba(255,255,255,.90);
      user-select:none;
      white-space:nowrap;
    }
    .pillDot{ width:8px; height:8px; border-radius:999px; background:rgba(255,255,255,.35); }
    .pillVip{ border-color:rgba(255,212,0,.45); background:rgba(255,212,0,.12); }
    .pillVip .pillDot{ background:rgba(255,212,0,.85); }
    .btnRow{ display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
    .btn{
      height:44px;
      padding:0 14px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.92);
      font-weight:800;
      letter-spacing:.08em;
      text-transform:uppercase;
      font-size:12px;
      cursor:pointer;
    }
    .btnPrimary{
      background:#FFD400;
      color:#000;
      border-color:rgba(255,212,0,.55);
    }
    .btnGhost{ background:rgba(255,255,255,.04); }
    .btn:active{ transform:scale(.99); }
    .split{
      display:grid; grid-template-columns:1.05fr .95fr; gap:14px;
      margin-top:14px;
    }
    @media(max-width:860px){
      .split{ grid-template-columns:1fr; }
      .btnRow{ justify-content:flex-start; }
    }

    .zoneBox{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      border-radius:18px;
      padding:14px;
    }
    .zoneBox h3{
      margin:0; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
      color:rgba(255,255,255,.65);
    }
    .zoneMain{
      margin-top:8px;
      font-size:20px;
      font-weight:900;
      letter-spacing:.02em;
      color:rgba(255,255,255,.95);
    }
    .zoneSub{
      margin-top:6px; font-size:12px; color:rgba(255,255,255,.65);
      line-height:1.25;
    }

    .blocks{
      display:flex; flex-direction:column; gap:10px;
      margin-top:14px;
    }
    .block{
      border:1px solid rgba(255,255,255,.10);
      background:rgba(255,255,255,.04);
      border-radius:18px;
      padding:14px;
      cursor:pointer;
      transition:.15s ease;
    }
    .block:hover{ background:rgba(255,255,255,.06); }
    .block.active{
      border-color:rgba(255,212,0,.35);
      background:
        radial-gradient(700px 240px at 20% 0%, rgba(255,212,0,.14), transparent 60%),
        rgba(255,255,255,.05);
    }
    .blockTop{
      display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
    }
    .blockName{ font-size:18px; font-weight:900; margin:0; }
    .blockDur{ font-size:13px; color:rgba(255,255,255,.70); font-weight:800; }
    .blockChips{
      display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;
      align-items:center;
    }
    .chip{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(0,0,0,.18);
      font-size:12px;
      color:rgba(255,255,255,.92);
    }
    .chip strong{ font-weight:900; }
    .chipZone{
      border-color:rgba(255,212,0,.35);
      background:rgba(255,212,0,.10);
    }
    .chipPace{
      border-color:rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
    }
    .blockCue{
      margin-top:10px;
      color:rgba(255,255,255,.70);
      font-size:12px;
      line-height:1.3;
    }
    .subtleLine{ border-top:1px solid rgba(255,255,255,.10); margin:14px 0; }

    .stickyBar{
      position:fixed;
      left:0; right:0; bottom:64px;
      display:flex; justify-content:center;
      z-index:999;
      pointer-events:none;
    }
    .stickyInner{
      width:min(980px, 96vw);
      pointer-events:auto;
      border:1px solid rgba(255,255,255,.10);
      background:rgba(0,0,0,.72);
      backdrop-filter:blur(10px);
      border-radius:22px;
      padding:10px;
      display:flex;
      gap:10px;
      align-items:center;
      justify-content:space-between;
    }
    .timerMini{
      font-variant-numeric:tabular-nums;
      color:rgba(255,255,255,.85);
      font-weight:900;
      letter-spacing:.06em;
    }

    .modalBg{
      position:fixed; inset:0;
      background:rgba(0,0,0,.62);
      display:none;
      align-items:center; justify-content:center;
      z-index:2000;
      padding:18px;
    }
    .modal{
      width:min(760px, 96vw);
      border-radius:22px;
      border:1px solid rgba(255,255,255,.12);
      background:
        radial-gradient(900px 360px at 30% 0%, rgba(255,212,0,.12), transparent 60%),
        rgba(15,15,15,.96);
      box-shadow:0 30px 80px rgba(0,0,0,.55);
      padding:16px;
    }
    .modalTop{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
    .modal h2{ margin:0; font-size:18px; font-weight:1000; }
    .modal .closeX{
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:rgba(255,255,255,.9);
      border-radius:14px;
      height:40px;
      padding:0 12px;
      font-weight:900;
      cursor:pointer;
    }
    .modalBody{
      margin-top:12px;
      color:rgba(255,255,255,.80);
      font-size:13px;
      line-height:1.4;
    }
    .modalGrid{
      display:grid; grid-template-columns:1fr 1fr; gap:12px;
      margin-top:12px;
    }
    @media(max-width:700px){ .modalGrid{ grid-template-columns:1fr; } }

    .toast{
      position:fixed; left:50%; bottom:120px; transform:translateX(-50%);
      background:rgba(0,0,0,.78);
      border:1px solid rgba(255,255,255,.12);
      padding:10px 12px;
      border-radius:14px;
      color:rgba(255,255,255,.92);
      font-size:14px;
      display:none;
      max-width:92vw;
      z-index:9999;
    }

    .fbRow{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    @media(max-width:700px){ .fbRow{ grid-template-columns:1fr; } }
    .inp, .sel, textarea{
      width:100%;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      padding:12px 12px;
      color:white;
      font-size:14px;
      outline:none;
    }
    textarea{ min-height:96px; resize:vertical; }
    input[type="range"]{ width:100%; }
    .smallHint{ font-size:11px; color:rgba(255,255,255,.55); margin-top:6px; }

/* From treino_dia.html */
:root{
      --bg:#060606;
      --panel:#101010;
      --panel-2:#161616;
      --text:#ffffff;
      --muted:#b9b9b9;
      --line:rgba(255,255,255,.08);
      --line-2:rgba(255,255,255,.12);
      --primary:#ffd400;
      --shadow:0 18px 42px rgba(0,0,0,.28);
      --max:1100px;
    }

    *{ box-sizing:border-box; }

    html, body{
      margin:0;
      padding:0;
      background:
        radial-gradient(circle at top right, rgba(255,212,0,.08), transparent 20%),
        radial-gradient(circle at top left, rgba(255,255,255,.03), transparent 18%),
        var(--bg);
      color:var(--text);
    }

    body.page-workout{
      min-height:100vh;
      padding-bottom:calc(140px + env(safe-area-inset-bottom, 0px));
    }

    .page-shell{
      width:100%;
    }

    .page-header{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:18px 18px 10px;
    }

    .page-header-box{
      display:flex;
      justify-content:space-between;
      align-items:flex-start;
      gap:16px;
      padding:18px 20px;
      border:1px solid var(--line);
      border-radius:22px;
      background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
      box-shadow:var(--shadow);
      backdrop-filter:blur(8px);
    }

    .brand-block{
      min-width:0;
    }

    .brand-title{
      margin:0;
      font-size:28px;
      line-height:1;
      font-weight:900;
      letter-spacing:.14em;
      color:var(--primary);
      text-transform:uppercase;
    }

    .brand-subtitle{
      margin:6px 0 0;
      font-size:11px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.18em;
      color:#c8c8c8;
    }

    .user-bar{
      font-size:12px;
      line-height:1.4;
      color:#cfcfcf;
      text-align:right;
      white-space:nowrap;
      padding-top:4px;
    }

    .user-bar strong{
      color:#fff;
    }

    .resume-banner{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:0 18px 10px;
    }

    .resume-inner{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:14px;
      padding:16px 18px;
      border:1px solid rgba(255,212,0,.18);
      border-radius:18px;
      background:rgba(255,212,0,.07);
      box-shadow:var(--shadow);
    }

    .resume-copy{
      min-width:0;
    }

    .resume-title{
      margin:0;
      font-size:15px;
      font-weight:900;
      color:#fff;
    }

    .resume-text{
      margin:4px 0 0;
      font-size:13px;
      color:#d0d0d0;
      line-height:1.45;
    }

    .resume-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }

    .page-content{
      width:100%;
      max-width:var(--max);
      margin:0 auto;
      padding:8px 18px calc(140px + env(safe-area-inset-bottom, 0px));
    }

    .muted-text{
      color:#bbb;
      margin:0;
    }

    .is-hidden{
      display:none !important;
    }

    .amrap-stats{
      text-align:center;
      color:#bbb;
      margin:-4px 0 12px;
    }

    .week-adjust-box{
      margin-top:14px;
      padding:12px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
    }

    .week-adjust-title{
      margin:0;
      color:#ddd;
      font-weight:800;
    }

    .week-adjust-text{
      margin:6px 0 0;
      color:#bbb;
      font-size:12px;
      line-height:1.35;
    }

    .week-adjust-actions{
      display:flex;
      gap:10px;
      margin-top:10px;
    }

    .adjust-btn{
      height:44px;
      border-radius:14px;
    }

    .adjust-msg{
      margin-top:10px;
      color:#bbb;
      font-size:12px;
      line-height:1.35;
    }

    .feedback-actions{
      display:flex;
      gap:12px;
      margin-top:14px;
    }

    .full-width{
      width:100%;
    }

    .mt-12{
      margin-top:12px;
    }

    .feedback-input,
    .feedback-select{
      width:100%;
      margin-top:8px;
      margin-bottom:14px;
      padding:12px;
      border-radius:12px;
      border:1px solid rgba(255,255,255,.15);
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    .feedback-label{
      font-size:13px;
      color:#bbb;
      display:block;
    }

    .feedback-meta{
      margin:0 0 10px;
      color:#bbb;
    }

    .feedback-rpe{
      text-align:center;
      color:#bbb;
      margin-bottom:14px;
    }

    @media (max-width: 768px){
      .page-header-box,
      .resume-inner{
        flex-direction:column;
        align-items:flex-start;
      }

      .user-bar{
        text-align:left;
        white-space:normal;
      }

      .resume-actions,
      .week-adjust-actions,
      .feedback-actions{
        flex-direction:column;
        width:100%;
      }

      .resume-actions .btn,
      .week-adjust-actions .btn,
      .feedback-actions .btn{
        width:100%;
      }
    }

    @media (max-width: 640px){
      .page-header{
        padding:14px 14px 8px;
      }

      .resume-banner{
        padding:0 14px 10px;
      }

      .page-content{
        padding:8px 14px calc(140px + env(safe-area-inset-bottom, 0px));
      }

      .page-header-box{
        border-radius:18px;
        padding:16px;
      }

      .brand-title{
        font-size:24px;
      }
    }

/* From treino_dia_plano.html */
/* ===== FEEDBACK MODAL ===== */
    .fbOverlay{
      position:fixed; inset:0;
      background:rgba(0,0,0,.68);
      backdrop-filter: blur(6px);
      display:flex; align-items:center; justify-content:center;
      padding:18px;
      z-index:9999;
    }
    .fbModal{
      width:min(560px, 100%);
      background:#111;
      border:1px solid rgba(255,255,255,.10);
      border-radius:22px;
      box-shadow: 0 18px 60px rgba(0,0,0,.55);
      overflow:hidden;
      color:#fff;
    }
    .fbHeader{
      display:flex; align-items:flex-start; justify-content:space-between;
      gap:12px;
      padding:16px 16px 10px;
      border-bottom:1px solid rgba(255,255,255,.08);
    }
    .fbTitle{ font-size:18px; font-weight:900; letter-spacing:.2px; }
    .fbSub{ font-size:12px; color:rgba(255,255,255,.70); margin-top:3px; }
    .fbClose{
      border:0; background:transparent; color:rgba(255,255,255,.75);
      font-size:18px; cursor:pointer; padding:6px 8px;
    }
    .fbBody{ padding:14px 16px 10px; }
    .fbBlock{ margin-bottom:14px; }
    .fbLabel{ font-size:13px; font-weight:800; margin-bottom:8px; }
    .fbRow{ display:flex; gap:10px; }
    .fbRowCenter{ align-items:center; }
    .fbWrap{ flex-wrap:wrap; }

    .fbPill, .fbChip{
      border:1px solid rgba(255,255,255,.14);
      background:rgba(255,255,255,.06);
      color:#fff;
      padding:10px 12px;
      border-radius:999px;
      cursor:pointer;
      font-weight:800;
      font-size:13px;
      transition:.15s;
      user-select:none;
    }
    .fbChip{ padding:9px 11px; }
    .fbPill.isActive, .fbChip.isActive{
      border-color: rgba(255,212,0,.65);
      box-shadow: 0 0 0 3px rgba(255,212,0,.16);
    }
    .fbHint{ margin-top:6px; font-size:12px; color:rgba(255,255,255,.60); }

    .fbRange{ width:100%; accent-color:#FFD400; }
    .fbValue{ min-width:64px; text-align:right; font-weight:900; }

    .fbCheck{
      display:flex; align-items:center; gap:10px;
      font-weight:800; font-size:13px;
      color:rgba(255,255,255,.88);
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.12);
      padding:12px;
      border-radius:14px;
    }
    .fbCheck input{ transform: scale(1.1); }

    .fbNotes{
      width:100%;
      padding:12px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,255,255,.06);
      color:#fff;
      outline:none;
      resize:none;
      line-height:1.35;
    }
    .fbNotes::placeholder{ color: rgba(255,255,255,.35); }

    .fbFooter{
      display:flex; gap:10px;
      padding:12px 16px 16px;
      border-top:1px solid rgba(255,255,255,.08);
    }
    .fbBtn{
      flex:1;
      height:46px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.12);
      background:rgba(255,212,0,.95);
      color:#000;
      font-weight:900;
      cursor:pointer;
    }
    .fbBtn.ghost{
      background:rgba(255,255,255,.06);
      color:#fff;
    }

    /* Pequeno wrap para video */
    .vimeoWrap{
      position:relative; width:100%;
      padding-top:56.25%;
      border-radius:14px;
      overflow:hidden;
      margin-top:10px;
      border:1px solid rgba(255,255,255,.12);
    }
    .vimeoWrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* From treino_hybrid.html */
/* painel detalhe (leve, sem mexer no css global) */
    .detailPanel{
      margin-top:12px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      padding:12px;
    }
    .detailPanel.hidden{ display:none; }
    .detailHeader{
      display:flex; align-items:center; justify-content:space-between; gap:10px;
      margin-bottom:10px;
    }
    .detailHeader .titleSmall{
      font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      font-size:12px; color: rgba(255,255,255,.78);
      margin:0;
    }
    .detailSec{
      margin-top:10px;
      padding-top:10px;
      border-top:1px solid rgba(255,255,255,.08);
    }
    .detailSec:first-child{ margin-top:0; padding-top:0; border-top:0; }
    .detailSecTitle{
      font-weight:900; letter-spacing:.06em; text-transform:uppercase;
      font-size:12px; color: rgba(255,255,255,.75);
      margin:0 0 8px;
      display:flex; justify-content:space-between; gap:10px;
    }
    .detailRow{
      padding:10px 10px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.10);
      background: rgba(0,0,0,.18);
      margin-top:8px;
    }
    .detailRowTop{
      display:flex; justify-content:space-between; gap:10px; align-items:flex-start;
    }
    .detailName{
      font-weight:900; font-size:14px; color: rgba(255,255,255,.94);
      margin:0;
      line-height:1.2;
    }
    .detailRight{
      color: rgba(255,255,255,.70);
      font-weight:800;
      white-space:nowrap;
    }
    .detailMeta{
      margin-top:6px;
      font-size:12px;
      color: rgba(255,255,255,.70);
      line-height:1.35;
    }
    .detailVideo{
      margin-top:10px;
    }


