/* ==========================================================================
   Athletic Hitting Development — mobile-first core stylesheet (v3.0.0)
   Replaces assets/site.css.

   Written mobile-first: base rules ARE the phone layout. Desktop is one
   min-width block at the bottom. The old file was desktop-first with ~12
   stacked max-width:820px override blocks patched on over time, which is
   why small changes kept breaking the phone.

   Class names are deliberately identical to the old stylesheet, so an
   unconverted page can be moved onto this file by swapping two URLs.
   ========================================================================== */

/* ---- tokens ------------------------------------------------------------ */
:root{
  --navy:#071a33;
  --navy-2:#0d2b52;
  --red:#e2222b;
  --red-lt:#ff5b61;
  --ink:#142033;
  --soft:#f4f7fa;
  --line:#dbe2ea;
  --muted:#667085;

  --safe-top:env(safe-area-inset-top,0px);
  --safe-bottom:env(safe-area-inset-bottom,0px);
  --tap:48px;
  --navh:64px;
  --gut:16px;
  --radius:14px;

  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:#fff;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* room for the bottom tab bar */
  padding-bottom:calc(var(--navh) + var(--safe-bottom) + 8px);
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button{font:inherit}

h1,h2,h3{margin:0;line-height:1.02;letter-spacing:-.02em;font-weight:900}
h1{font-size:clamp(34px,9.5vw,46px)}
h2{font-size:clamp(27px,7.2vw,34px);color:var(--navy);letter-spacing:-.03em}
h3{font-size:20px;letter-spacing:-.01em}
p{margin:0 0 14px}

.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 var(--gut)}
.hidden{display:none}

/* ---- accessibility furniture ------------------------------------------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:9999;
  background:var(--red);color:#fff;padding:12px 16px;font-weight:900;
}
.skip-link:focus{left:8px;top:calc(8px + var(--safe-top))}
:focus-visible{outline:3px solid var(--red-lt);outline-offset:2px;border-radius:4px}

.offline-banner{display:none;background:#3a2a05;color:#ffe6a8;font-size:13px;padding:9px var(--gut);text-align:center}
.offline .offline-banner{display:block}

/* ---- app bar ------------------------------------------------------------ */
.site-header{
  position:sticky;top:0;z-index:60;
  background:var(--navy);color:#fff;
  padding-top:var(--safe-top);
  transition:box-shadow .18s ease;
}
.site-header.scrolled{box-shadow:0 2px 14px rgba(0,0,0,.3)}
.header-inner{
  max-width:1180px;margin:0 auto;
  padding:8px var(--gut);
  display:flex;align-items:center;gap:10px;
  min-height:56px;
}
.brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;flex:1;min-width:0;position:relative;z-index:75}
.brand-logo-canonical{width:40px;height:40px;flex:none}
.brand-copy{min-width:0}
.brand b{display:block;font-size:11px;letter-spacing:.07em;line-height:1.25}
.brand small{display:none}

.menu-btn{
  width:var(--tap);height:var(--tap);flex:none;
  background:transparent;border:0;color:#fff;font-size:24px;line-height:1;
  border-radius:10px;cursor:pointer;
  position:relative;z-index:75;
}
.nav-open{overflow:hidden}
/* lift the header's stacking context above the bottom tab bar while open */
.nav-open .site-header{z-index:6000}
.menu-btn:active{background:rgba(255,255,255,.12)}

/* full-height drawer instead of a floating dropdown */
.nav{
  display:none;
  position:fixed;inset:0;z-index:70;
  background:var(--navy);
  padding:calc(var(--safe-top) + 68px) var(--gut) calc(var(--safe-bottom) + 24px);
  overflow-y:auto;
  flex-direction:column;gap:2px;
}
.nav.open{display:flex}
.nav a{
  color:#fff;text-decoration:none;
  font-size:17px;font-weight:900;letter-spacing:.04em;
  padding:16px 12px;border-radius:12px;
  border-bottom:1px solid rgba(255,255,255,.08);
  min-height:var(--tap);display:flex;align-items:center;
}
.nav a:active{background:rgba(255,255,255,.12)}
.nav.open ~ .site-header{z-index:80}

/* ---- buttons ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:14px 20px;
  border:0;border-radius:12px;
  font-weight:900;font-size:15px;letter-spacing:.03em;
  text-decoration:none;cursor:pointer;text-align:center;
  touch-action:manipulation;
}
.btn-red{background:var(--red);color:#fff}
.btn-navy{background:var(--navy);color:#fff}
.btn-white{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 1px var(--line)}
.btn-white-outline{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.65)}
.btn:active{transform:translateY(1px)}
.btn.full{width:100%}

/* on a phone, stacked full-width buttons beat a wrapping row */
.actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:20px}

/* ---- sections ----------------------------------------------------------- */
.section{padding:40px 0}
.section.alt{background:var(--soft)}
.kicker{
  font-size:11px;letter-spacing:.16em;font-weight:900;
  color:var(--red);margin-bottom:8px;
}
.section h2{margin-bottom:10px}
.lead{color:#5b6574;font-size:16px;line-height:1.6;max-width:62ch}
.section-head{margin-bottom:20px}
.more-link{
  display:inline-flex;align-items:center;min-height:44px;
  font-size:12px;font-weight:900;letter-spacing:.1em;
  color:var(--red);text-decoration:none;
}

/* ---- grids & cards ------------------------------------------------------ */
.grid2,.grid3,.grid4{display:grid;grid-template-columns:1fr;gap:14px}
.split{display:grid;grid-template-columns:1fr;gap:24px}
.card{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:20px;
}
.card.dark{background:var(--navy);color:#fff;border-color:var(--navy)}
.card h3{margin:6px 0 8px}
.card p{color:#657084;font-size:15px;line-height:1.55;margin:0 0 12px}
.card.dark p{color:#d4deea}
.card .btn{width:100%}
.pill{font-size:10px;font-weight:900;letter-spacing:.14em;color:var(--red);display:block}
.card.dark .pill{color:var(--red-lt)}
.num{font-size:38px;font-weight:900;color:#d9e0e8;line-height:1}
.dark .num{color:#324c6b}
.pillar{border-top:4px solid var(--red)}
.callout{background:var(--navy);color:#fff;padding:24px;border-radius:18px}
.callout h3{font-size:26px;margin:0 0 8px}

/* ---- generic interior hero ---------------------------------------------- */
.hero{
  background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);
  color:#fff;padding:32px 0 34px;
}
.hero h1{margin:0 0 14px}
.hero p{color:#d8e2ee;font-size:16.5px;max-width:52ch;margin:0}

/* ---- home hero (mobile-dedicated) --------------------------------------- */
.m-hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.m-hero-bg{
  position:absolute;inset:0;
  background-image:url('/assets/home-stop-guessing-hero.webp');
  background-size:cover;background-position:72% 16%;background-repeat:no-repeat;
  opacity:.42;
}
.m-hero-scrim{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,26,51,.78) 0%,rgba(7,26,51,.55) 38%,rgba(7,26,51,.96) 100%);
}
.m-hero-inner{position:relative;padding:34px 0 30px}
.m-hero h1{font-size:clamp(46px,15vw,68px);line-height:.86;letter-spacing:-.045em;margin:0 0 14px}
.m-hero h1 span{display:block}
.m-hero h1 .accent{color:var(--red-lt)}
.m-hero-lead{color:#dbe5f0;font-size:16.5px;line-height:1.55;margin:0 0 4px;max-width:40ch}

/* ---- task list: the primary mobile navigation pattern -------------------- */
.m-section-title{
  font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--muted);
  margin:0 0 10px;
}
.m-list{display:grid;gap:10px}
.m-list-item{
  display:grid;grid-template-columns:44px 1fr 16px;align-items:center;gap:12px;
  width:100%;min-height:68px;padding:12px 14px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  text-align:left;text-decoration:none;color:var(--ink);cursor:pointer;
}
.m-list-item:active{background:var(--soft)}
.m-list-item .icon{
  width:44px;height:44px;border-radius:12px;
  background:var(--navy);color:#fff;
  display:grid;place-items:center;
  font-size:15px;font-weight:900;letter-spacing:.02em;
}
.m-list-item.primary .icon{background:var(--red)}
.m-list-item b{display:block;font-size:16px;line-height:1.2}
.m-list-item small{display:block;color:var(--muted);font-size:13.5px;line-height:1.35;margin-top:3px}
.m-list-item .chev{color:#9aa7b8;font-size:20px;justify-self:end}

/* ---- phase accordion ---------------------------------------------------- */
.phases{border-top:1px solid var(--line)}
.phase{border-bottom:1px solid var(--line)}
.phase-btn{
  width:100%;background:transparent;border:0;color:inherit;text-align:left;
  display:flex;align-items:center;gap:12px;
  min-height:68px;padding:14px 2px;cursor:pointer;
}
.phase-btn .range{
  flex:none;font-size:11px;font-weight:900;letter-spacing:.1em;color:var(--red);
  width:76px;line-height:1.3;
}
.phase-btn .title{flex:1;font-size:17px;font-weight:900;letter-spacing:-.01em}
.phase-btn .sign{
  flex:none;width:22px;height:22px;position:relative;
}
.phase-btn .sign::before,.phase-btn .sign::after{
  content:"";position:absolute;left:50%;top:50%;background:var(--navy);
  transform:translate(-50%,-50%);
}
.phase-btn .sign::before{width:14px;height:2px}
.phase-btn .sign::after{width:2px;height:14px;transition:transform .18s ease}
.phase[data-open="true"] .sign::after{transform:translate(-50%,-50%) scaleY(0)}
.phase-body{padding:0 2px 18px;color:#5b6574;font-size:15px;line-height:1.6}
.phase-body[hidden]{display:none}

/* ---- manifesto block ---------------------------------------------------- */
.drill-manifesto{background:var(--navy);color:#fff;padding:40px 0}
.drill-manifesto h2{color:#fff;font-size:clamp(27px,7.4vw,36px);margin:0 0 14px}
.drill-manifesto p{color:#cfdcea;font-size:16px;line-height:1.6}
.drill-manifesto-sub{color:#9fb2c8;font-size:14.5px}

/* ---- testimonials -------------------------------------------------------- */
.testimonial-grid{display:grid;grid-template-columns:1fr;gap:14px}
.testimonial-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;
}
.testimonial-card img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 22%}
.testimonial-body{padding:18px}
.testimonial-body p{font-size:15.5px;line-height:1.6;color:#2a3647;margin:0 0 12px}
.testimonial-meta{font-size:12px;font-weight:900;letter-spacing:.08em;color:var(--muted)}
.testimonial-body h3{font-size:17px;color:var(--navy);margin-top:4px}
.testimony{border-left:4px solid var(--red)}
.quote{font-size:19px;line-height:1.5;color:#1f2b3a}

/* horizontal swipe rail is a better phone pattern than 6 stacked cards */
.testimonial-rail{
  display:grid;grid-auto-flow:column;grid-auto-columns:82%;gap:12px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  margin:0 calc(var(--gut) * -1);padding:2px var(--gut) 12px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.testimonial-rail::-webkit-scrollbar{display:none}
.testimonial-rail > *{scroll-snap-align:start}

/* ---- forms --------------------------------------------------------------- */
.form{display:grid;grid-template-columns:1fr;gap:12px;margin-top:20px}
.form input,.form select,.form textarea{
  width:100%;padding:14px;
  border:1px solid #cfd7e1;border-radius:12px;
  font:inherit;font-size:16px; /* 16px stops iOS zoom-on-focus */
  background:#fff;color:var(--ink);
  min-height:52px;
}
.form textarea{min-height:120px;resize:vertical}
.hp-field{display:none}

.member-progress-banner{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:#fff5f5;border-bottom:1px solid #f3d3d5;
  padding:12px var(--gut);font-size:12px;font-weight:900;letter-spacing:.08em;
}
.member-progress-banner strong{color:var(--red)}
.member-progress-banner a{color:var(--navy);margin-left:auto}

/* ---- footer -------------------------------------------------------------- */
.footer{
  background:#051326;color:#c9d4df;
  padding:28px 0 32px;font-size:13px;line-height:1.6;
}
.footer b{color:#fff;display:block;margin-bottom:6px;letter-spacing:.06em}

/* ---- bottom tab bar ------------------------------------------------------ */
.mobile-bottom-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:5000;
  height:calc(var(--navh) + var(--safe-bottom));
  padding:6px 6px var(--safe-bottom);
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(5,1fr);
  box-shadow:0 -8px 24px rgba(7,26,51,.08);
}
.mobile-bottom-nav a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-width:0;border-radius:10px;text-decoration:none;
  color:#647184;font-size:9.5px;font-weight:900;letter-spacing:.02em;
  touch-action:manipulation;-webkit-user-select:none;user-select:none;
}
.mobile-bottom-nav a > *{pointer-events:none}
.mobile-bottom-nav .navicon{font-size:19px;line-height:1}
.mobile-bottom-nav a.active{color:var(--red);background:#fff5f5}
.mobile-bottom-nav a:active{background:#eef2f6}

/* ---- install UI ---------------------------------------------------------- */
.install-toast{
  position:fixed;left:10px;right:10px;
  bottom:calc(var(--navh) + var(--safe-bottom) + 10px);
  z-index:5200;
  display:flex;align-items:center;gap:12px;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:12px;box-shadow:0 14px 40px rgba(7,26,51,.22);
  transform:translateY(140%);transition:transform .26s ease;
}
.install-toast.show{transform:translateY(0)}
.install-toast[hidden]{display:none}
.install-toast img{width:42px;height:42px;border-radius:10px;flex:none}
.install-toast .copy{flex:1;min-width:0}
.install-toast .copy b{display:block;font-size:14px;line-height:1.25}
.install-toast .copy span{display:block;font-size:12.5px;color:var(--muted);line-height:1.3}
.install-actions{display:flex;gap:6px;flex:none}
.install-no,.install-yes{
  min-height:40px;padding:0 14px;border-radius:10px;border:0;
  font-weight:900;font-size:13px;cursor:pointer;
}
.install-no{background:#eef2f6;color:var(--muted)}
.install-yes{background:var(--red);color:#fff}

.install-modal{position:fixed;inset:0;z-index:6000;display:grid;align-items:end}
.install-modal[hidden]{display:none}
.install-backdrop{position:absolute;inset:0;background:rgba(5,15,28,.6)}
.install-sheet{
  position:relative;background:#fff;
  border-radius:20px 20px 0 0;
  padding:22px var(--gut) calc(22px + var(--safe-bottom));
  max-height:88vh;overflow-y:auto;
}
.install-close{
  position:absolute;top:10px;right:10px;width:40px;height:40px;
  background:transparent;border:0;font-size:26px;color:var(--muted);cursor:pointer;
}
.install-logo{width:56px;height:56px;border-radius:14px;margin-bottom:12px}
.install-sheet h2{font-size:24px;margin:4px 0 12px}
.install-steps{margin:0 0 12px;padding-left:20px;font-size:15px;line-height:1.65}
.install-steps li{margin-bottom:7px}
.install-note{font-size:13px;color:var(--muted)}
.install-success{font-weight:900;color:#1a7f4b}
.share-symbol{display:inline-block;transform:translateY(1px)}
.install-modal-open{overflow:hidden}

/* ==========================================================================
   Desktop / tablet. One block. Everything above is the phone.
   ========================================================================== */
@media (min-width:821px){
  :root{--gut:24px}
  body{padding-bottom:0}

  .header-inner{padding:12px var(--gut);min-height:72px}
  .brand-logo-canonical{width:60px;height:60px}
  .brand b{font-size:13px;letter-spacing:.09em}
  .brand small{display:block;color:#bdc9d7;font-size:10px;letter-spacing:.07em;margin-top:3px}
  .menu-btn{display:none}
  .nav{
    display:flex;position:static;inset:auto;flex-direction:row;gap:4px;
    padding:0;background:transparent;overflow:visible;
  }
  .nav a{
    font-size:12px;padding:10px 11px;border-bottom:0;border-radius:8px;min-height:0;
  }
  .nav a:hover{background:rgba(255,255,255,.1)}

  h1{font-size:clamp(52px,6vw,92px)}
  h2{font-size:clamp(34px,4vw,52px)}

  .section{padding:72px 0}
  .lead{font-size:17px}
  .actions{display:flex;flex-wrap:wrap;gap:12px}
  .btn{min-height:0;padding:14px 20px}
  .btn.full{width:auto}
  .card .btn{width:auto}

  .grid2{grid-template-columns:repeat(2,1fr);gap:18px}
  .grid3{grid-template-columns:repeat(3,1fr);gap:18px}
  .grid4{grid-template-columns:repeat(4,1fr);gap:18px}
  .split{grid-template-columns:1.2fr .8fr;gap:28px;align-items:start}
  .card{padding:24px;border-radius:18px;box-shadow:0 10px 26px rgba(7,26,51,.06)}

  .hero{padding:70px 0}
  .m-hero-inner{padding:76px 0 70px}
  .m-hero-bg{opacity:.5;background-position:76% 18%}
  .m-hero h1{font-size:clamp(72px,8vw,106px)}
  .m-hero-lead{font-size:19px;max-width:56ch}

  .m-list{grid-template-columns:repeat(2,1fr);gap:14px}

  .section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
  .testimonial-grid{grid-template-columns:repeat(3,1fr);gap:18px}
  .testimonial-rail{
    display:grid;grid-auto-flow:row;grid-template-columns:repeat(3,1fr);
    grid-auto-columns:auto;overflow:visible;margin:0;padding:0;
  }

  .form{grid-template-columns:1fr 1fr;gap:14px}
  .form textarea,.form .full{grid-column:1/-1}
  .form input,.form select{min-height:0}

  .mobile-bottom-nav,.install-toast{display:none!important}
  .footer{padding:36px 0}
}

/* ---- motion ------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* ==========================================================================
   Components — about, testimonials, auth, dashboard (v3.0.0)
   Ported from the v2 stylesheet and re-cut mobile-first.
   ========================================================================== */

/* ---- shared bits -------------------------------------------------------- */
.brand-logo-canonical{object-fit:contain}
.site-logo-footer{width:96px;height:auto;display:block;margin-bottom:10px}
.text-button,.text-link{
  border:0;background:none;color:var(--navy);font-weight:900;
  text-decoration:none;cursor:pointer;padding:10px 0;font-size:13px;
  min-height:44px;display:inline-flex;align-items:center;
}
.btn-soft{background:#edf2f6;color:var(--navy)}
.btn-soft.completed{background:#def7e7;color:#17663a}

/* ---- about -------------------------------------------------------------- */
.about-hero{
  background:linear-gradient(150deg,var(--navy) 0%,#102d51 100%);
  color:#fff;padding:34px 0 32px;
}
.about-hero-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
.about-hero h1{font-size:clamp(34px,10vw,50px);line-height:.92;letter-spacing:-.04em;margin:0 0 16px}
.about-hero p{color:#d6e0eb;font-size:16.5px;line-height:1.6;margin:0}
.about-logo-panel{
  background:#fff;border-radius:20px;padding:24px;
  display:flex;align-items:center;justify-content:center;
  min-height:200px;
}
.about-logo-panel img{width:min(100%,260px);height:auto}

.story-grid{display:grid;grid-template-columns:1fr;gap:26px;align-items:start}
.timeline{border-left:4px solid var(--red);padding-left:18px}
.timeline-item{margin:0 0 22px}
.timeline-item:last-child{margin-bottom:0}
.timeline-item b{display:block;color:var(--navy);font-size:17px;margin-bottom:5px;line-height:1.25}
.timeline-item p{margin:0;color:#5f6b7a;font-size:15px;line-height:1.55}

.value-grid{display:grid;grid-template-columns:1fr;gap:12px}
.value-card{
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--red);
  border-radius:var(--radius);padding:18px;
}
.value-card h3{color:var(--navy);margin:4px 0 8px;font-size:19px}
.value-card p{color:#657084;font-size:15px;line-height:1.55;margin:0}

.quote-spotlight{
  background:#fff;border:1px solid var(--line);border-left:6px solid var(--red);
  border-radius:var(--radius);padding:22px;
}
.quote-spotlight p{font-size:16px;line-height:1.65;color:#273241;margin:0 0 14px}
.quote-spotlight .source{color:#5d6877;font-size:13.5px;font-weight:700}
.quote-spotlight-photo{padding:0;overflow:hidden}
.quote-spotlight-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e9edf2}
.quote-spotlight-photo .spotlight-body{padding:20px}

/* ---- testimonials page --------------------------------------------------- */
.test-hero{background:var(--navy);color:#fff;padding:34px 0 30px}
.test-hero h1{font-size:clamp(34px,10vw,50px);line-height:.94;letter-spacing:-.04em;margin:0 0 14px}
.test-hero p{color:#d6e0eb;font-size:16.5px;line-height:1.6;margin:0}

.proof-band{background:var(--red);color:#fff;padding:18px 0}
.proof-band .wrap{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;text-align:center;
}
.proof-band b{display:block;font-size:24px;line-height:1.1}
.proof-band span{font-size:9.5px;font-weight:900;letter-spacing:.06em;line-height:1.3;display:block;margin-top:4px}

.testimonial-grid-photo{align-items:start}
.testimonial-photo-card{padding:0;overflow:hidden}
.testimonial-photo-card > img{aspect-ratio:16/9}

/* ---- auth pages ---------------------------------------------------------- */
.auth-label{font-size:12px;font-weight:900;color:var(--navy);display:grid;gap:6px}
.auth-label input{margin:0}
.auth-outline{box-shadow:inset 0 0 0 1px #cfd7e1}
.auth-show-password{
  display:flex;align-items:center;gap:10px;
  font-size:14px;font-weight:800;color:#4d5d70;cursor:pointer;
  min-height:44px;
}
/* the generic .form input rule would otherwise blow the checkbox up */
.form input[type="checkbox"],
.auth-show-password input{
  width:20px;height:20px;min-height:0;padding:0;margin:0;flex:none;
}
.auth-confirm-note{
  margin:0;font-size:12.5px;line-height:1.5;color:#6e7d8e;
  background:#f5f7fa;border-radius:12px;padding:12px;
}
.auth-status{
  border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.45;
  background:#eef3f7;color:#30465f;
}
.auth-status.error{background:#fff0f1;color:#9d2026}
.auth-status.success{background:#e7f8ee;color:#17663a}
.auth-help{font-size:13px;color:#718092;line-height:1.55;margin-top:18px}
.auth-form button:disabled{opacity:.55;cursor:not-allowed}
.install-account-card{margin-top:16px}
.install-start-card,.quick-tool-button{font:inherit;text-align:left;width:100%;border:0;cursor:pointer;background:#fff}

/* ---- dashboard ----------------------------------------------------------- */
.athlete-app-page{background:#f3f6f9}
.dashboard-main{min-height:70vh}
.dashboard-wrap{max-width:1120px}
/* keeps the dashboard inert until dashboard.js confirms the session */
.athlete-app-page:not(.dashboard-ready) .dashboard-main{opacity:.34;pointer-events:none}

.dashboard-status{
  position:fixed;z-index:120;left:50%;transform:translateX(-50%);
  top:calc(var(--safe-top) + 66px);
  max-width:calc(100vw - 24px);
  padding:10px 14px;border-radius:999px;
  background:#eaf0f5;color:var(--navy);
  font-size:12px;font-weight:900;
  box-shadow:0 8px 22px rgba(7,26,51,.12);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dashboard-status.error{background:#fff0f1;color:#9d2026}
.dashboard-status.success{background:#e7f8ee;color:#17663a}

.dashboard-hero{
  background:linear-gradient(150deg,var(--navy) 0%,#0d2b52 75%,#143a68 100%);
  color:#fff;padding:24px 0 22px;
}
.dashboard-welcome-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.dashboard-welcome-row h1{font-size:clamp(30px,9vw,44px);line-height:.94;letter-spacing:-.04em;margin:6px 0}
.dashboard-date{margin:0;color:#bed0e4;font-weight:700;font-size:13px}
.day-chip{
  width:80px;height:80px;border-radius:18px;flex:none;
  background:#fff;color:var(--navy);
  display:grid;place-items:center;align-content:center;
  box-shadow:0 14px 40px rgba(0,0,0,.16);
}
.day-chip span,.day-chip small{font-size:9.5px;font-weight:900;letter-spacing:.14em}
.day-chip strong{font-size:32px;line-height:1;color:var(--red);margin:2px 0}

.progress-card{
  margin-top:18px;padding:15px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
}
.progress-card-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-end}
.progress-card-top div{display:grid;gap:3px}
.progress-card-top b{font-size:15px}
.progress-card-top span{font-size:12px;color:#c7d7e7}
.progress-card-top strong{font-size:26px;line-height:1}
.progress-track{height:9px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden;margin-top:12px}
.progress-track span{display:block;height:100%;width:0;background:#fff;border-radius:inherit;transition:width .35s ease}

.dashboard-section{padding:30px 0}
.dashboard-section-head{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.dashboard-section-head h2,.dashboard-tools-section h2{
  font-size:clamp(26px,7vw,32px);line-height:1.02;letter-spacing:-.035em;
  color:var(--navy);margin:6px 0 0;
}
.dashboard-account-mini{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.dashboard-account-mini span{font-size:12px;color:#718092;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.today-grid{display:grid;grid-template-columns:1fr;gap:14px}
.today-main-card{
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;
}
.today-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.today-number{
  font-size:10.5px;font-weight:900;letter-spacing:.12em;
  background:var(--red);color:#fff;border-radius:999px;padding:7px 11px;
}
.today-time{font-size:12px;font-weight:900;color:#7a8695}
.today-main-card h3{font-size:26px;letter-spacing:-.03em;color:var(--navy);margin:16px 0 10px}
.today-main-card p{color:#606c7c;line-height:1.6;font-size:15.5px;margin:0}
.today-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.today-tags span{
  font-size:10px;letter-spacing:.1em;font-weight:900;color:var(--navy);
  background:#eef3f7;border-radius:999px;padding:7px 10px;
}
.today-actions{display:grid;gap:10px;margin-top:20px}
.today-actions .btn{width:100%}
.today-side-stack{display:grid;gap:12px}

.dashboard-action-card{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;
  display:grid;grid-template-columns:46px 1fr 18px;gap:12px;align-items:center;
  text-decoration:none;color:inherit;min-height:72px;
}
.dashboard-action-card:active{background:var(--soft)}
.dash-icon{
  width:46px;height:46px;border-radius:13px;flex:none;
  background:var(--navy);color:#fff;display:grid;place-items:center;
  font-size:19px;font-weight:900;
}
.checker-card .dash-icon{background:var(--red)}
.dashboard-action-card small{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--red)}
.dashboard-action-card b{display:block;color:var(--navy);font-size:16px;margin-top:4px;line-height:1.25}
.dashboard-action-card span{display:block;color:#718092;font-size:12px;line-height:1.4;margin-top:3px}
.dashboard-action-card em{font-style:normal;font-weight:900;color:#9aa5b3}

.dashboard-phase-section{background:#fff}
.phase-card{
  background:var(--navy);color:#fff;border-radius:18px;padding:20px;
  display:grid;grid-template-columns:1fr;gap:16px;align-items:center;
}
.phase-dots{display:grid;grid-template-columns:repeat(9,1fr);gap:5px}
.phase-dots span{height:10px;border-radius:999px;background:#29425f}
.phase-dots span.done{background:#fff}
.phase-dots span.current{background:var(--red)}
.phase-copy b{font-size:13px;letter-spacing:.08em}
.phase-copy p{color:#c7d4e2;line-height:1.6;font-size:15px;margin:7px 0 0}

.dashboard-reports-section{scroll-margin-top:80px}
.report-list{display:grid;gap:12px}
.report-card{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;
}
.report-status{
  grid-column:1/-1;justify-self:start;
  font-size:9px;letter-spacing:.12em;font-weight:900;
  background:#fff0f1;color:var(--red);padding:7px 9px;border-radius:999px;white-space:nowrap;
}
.report-copy small{font-size:11px;color:#8994a2;font-weight:800}
.report-copy h3{margin:4px 0 5px;color:var(--navy);font-size:17px}
.report-copy p{margin:0;color:#687687;font-size:13px;line-height:1.5}
.report-open{
  width:44px;height:44px;border-radius:12px;border:0;flex:none;
  background:#edf2f6;color:var(--navy);font-size:20px;font-weight:900;
  display:grid;place-items:center;text-decoration:none;
}
.report-open-disabled{opacity:.55}

.empty-state{
  background:#fff;border:1px dashed #cdd6df;border-radius:16px;
  padding:28px;text-align:center;
}
.empty-icon{font-size:30px;color:#98a6b6}
.empty-state h3{color:var(--navy);margin:10px 0 4px}
.empty-state p{color:#788596;margin:0;font-size:15px}

.dashboard-tools-section{background:#eaf0f5}
.quick-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.quick-tool{
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:16px;color:inherit;text-decoration:none;
  min-height:124px;display:flex;flex-direction:column;
}
.quick-tool strong{font-size:24px;color:var(--red)}
.quick-tool b{color:var(--navy);margin-top:14px;font-size:15.5px;line-height:1.25}
.quick-tool span{font-size:12px;color:#728092;line-height:1.4;margin-top:5px}
.athlete-footer{padding-bottom:24px}

@media (max-width:400px){
  .quick-tool-grid{grid-template-columns:1fr}
  .quick-tool{min-height:0}
  .proof-band b{font-size:21px}
}

/* ---- components: desktop ------------------------------------------------- */
@media (min-width:821px){
  .site-logo-footer{width:120px}

  .about-hero{padding:82px 0 70px}
  .about-hero-grid{grid-template-columns:1.15fr .85fr;gap:42px}
  .about-hero h1{font-size:clamp(52px,8vw,92px)}
  .about-hero p{font-size:19px;max-width:760px}
  .about-logo-panel{min-height:380px;padding:34px;border-radius:24px;box-shadow:0 24px 60px rgba(0,0,0,.24)}
  .about-logo-panel img{width:min(100%,420px)}

  .story-grid{grid-template-columns:.9fr 1.1fr;gap:28px}
  .timeline{padding-left:24px}
  .timeline-item b{font-size:20px}
  .value-grid{grid-template-columns:repeat(4,1fr);gap:16px}
  .value-card{padding:22px}
  .quote-spotlight p{font-size:18px}
  .quote-spotlight-photo .spotlight-body{padding:24px 26px 26px}

  .test-hero{padding:78px 0 62px}
  .test-hero h1{font-size:clamp(52px,8vw,88px)}
  .test-hero p{font-size:19px}
  .proof-band{padding:24px 0}
  .proof-band .wrap{display:flex;justify-content:center;gap:44px;flex-wrap:wrap}
  .proof-band b{font-size:34px}
  .proof-band span{font-size:11px;letter-spacing:.08em}

  .dashboard-hero{padding:44px 0 30px}
  .dashboard-welcome-row{align-items:center;gap:28px}
  .dashboard-welcome-row h1{font-size:clamp(38px,6vw,68px)}
  .day-chip{width:112px;height:112px;border-radius:24px}
  .day-chip strong{font-size:44px}
  .progress-card{margin-top:28px;padding:18px 20px;border-radius:18px}
  .dashboard-section{padding:44px 0}
  .dashboard-section-head{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:20px}
  .dashboard-section-head h2,.dashboard-tools-section h2{font-size:clamp(30px,4.5vw,48px)}
  .dashboard-account-mini{justify-content:flex-end}
  .today-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px}
  .today-main-card{padding:28px;border-radius:22px}
  .today-main-card h3{font-size:clamp(27px,4vw,40px)}
  .today-actions{display:flex;flex-wrap:wrap}
  .today-actions .btn{width:auto}
  .dashboard-action-card{padding:20px;border-radius:20px}
  .phase-card{grid-template-columns:250px 1fr;padding:24px 26px;border-radius:22px;gap:28px}
  .report-card{grid-template-columns:auto 1fr auto;padding:18px 20px;border-radius:18px;gap:18px}
  .report-status{grid-column:auto;justify-self:auto}
  .report-copy h3{font-size:19px}
  .quick-tool-grid{grid-template-columns:repeat(4,1fr);gap:12px}
  .quick-tool{min-height:150px;padding:20px;border-radius:18px}
  .quick-tool b{font-size:17px;margin-top:18px}
  .quickcards .card{min-height:260px}
  .athlete-footer{padding-bottom:36px}
  .dashboard-status{top:96px}
}
