:root{
  --mobile-app-max: 560px;
}

body[data-page="mobile-app"]{
  background: linear-gradient(180deg, rgba(17,17,17,.9), rgba(17,17,17,.5)) fixed;
  color: var(--ss-gray);
}

/* Force "mobile" nav behavior even on desktop viewports (since we're using a device frame) */
body[data-page="mobile-app"] .navlinks{display:none !important}
body[data-page="mobile-app"] .nav-toggle{display:inline-flex !important}

/* Desktop device preview frame */
.device-preview{
  min-height: 100vh;
  padding: 18px 0 34px;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
.device-inner{
  width: min(440px, calc(100% - 24px));
  border-radius: 34px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: #0b0b0b;
  box-shadow: 0 45px 80px rgba(0,0,0,.55);
}
@media (max-width: 520px){
  .device-preview{padding:0}
  .device-inner{
    width: 100%;
    border-radius: 0;
    border: 0;
    box-shadow: none;
  }
}

body[data-page="mobile-app"] p{
  color: rgba(255,255,255,.78);
}

body[data-page="mobile-app"] .lede{
  color: rgba(255,255,255,.78);
}

body[data-page="mobile-app"] .kicker{
  color: rgba(255,255,255,.72);
}

body[data-page="mobile-app"] .kicker::before{
  background: linear-gradient(90deg, var(--ss-p1), transparent);
}

body[data-page="mobile-app"] h1,
body[data-page="mobile-app"] h2,
body[data-page="mobile-app"] h3{
  color: var(--ss-white);
}

/* Buttons: increase contrast on dark mobile-app surfaces */
body[data-page="mobile-app"] .btn{
  border-color: rgba(255,255,255,.22);
  color: rgba(255,255,255,.92);
  background: rgba(255,255,255,.08);
  box-shadow: 0 16px 36px rgba(0,0,0,.45);
}
body[data-page="mobile-app"] .btn:hover{
  text-decoration: none;
}
body[data-page="mobile-app"] .btn-primary{
  background: linear-gradient(180deg, #2c6be8, #1f4f8f);
  border-color: rgba(255,255,255,.18);
  color: #ffffff;
}
body[data-page="mobile-app"] .btn-outline{
  background: rgba(255,255,255,.92);
  border-color: rgba(255,255,255,.82);
  color: rgba(0,0,0,.92);
}

/* Footer button-links on dark background */
body[data-page="mobile-app"] .footer-links a{
  color: rgba(255,255,255,.92);
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.30);
}

.mobile-hero{
  padding: 78px 0 54px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
    radial-gradient(circle at 20% 20%, rgba(175,209,220,.45), transparent 40%),
    linear-gradient(180deg, #110f1a, #1f1b2b 60%, #0b0b0b);
  border-bottom: 4px solid var(--ss-border);
}

.section-tight{
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
  border-top: 1px solid rgba(255,255,255,.06);
}

.mobile-hero .container{
  max-width: var(--mobile-app-max);
}

.mobile-hero h1{
  color: var(--ss-white);
  line-height: 1.3;
  font-size: clamp(2.2rem, 4vw, 2.8rem);
}

.mobile-hero .lede{
  color: rgba(255,255,255,.84);
  max-width: 48ch;
}

.section-heading{
  max-width: var(--mobile-app-max);
  margin-bottom: 32px;
}

.mobile-grid{
  display: grid;
  gap: 22px;
}

.checkin-card form{
  margin-top: 18px;
  display: grid;
  gap: 12px;
}

.checkin-card label{
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-weight: 600;
  font-size: .9rem;
  color: rgba(255,255,255,.88);
}

.checkin-card input,
.checkin-card select{
  border-radius: 12px;
  border: 2px solid rgba(17,17,17,.25);
  padding: 10px 12px;
  background: rgba(255,255,255,.95);
  font-family: inherit;
  font-size: 1rem;
}

.checkin-card .checkbox{
  flex-direction: row;
  align-items: center;
  font-weight: 600;
  gap: 10px;
  line-height: 1.2;
}
body[data-page="mobile-app"] .checkin-card .checkbox input{
  margin: 0;
}
body[data-page="mobile-app"] .checkin-card .checkbox span{
  display: inline-block;
}

.card{
  background: rgba(17,17,17,.85);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--ss-radius);
  padding: 26px;
  box-shadow: 0 25px 45px rgba(0,0,0,.45);
}

.card h3{
  margin-top: 0;
  color: var(--ss-white);
}

.card p{
  color: rgba(255,255,255,.80);
}

.form-help{
  font-size: .85rem;
  color: rgba(255,255,255,.74);
  margin: 0;
}

.full-width{
  width: 100%;
  text-align: center;
}

.checkin-log{
  margin-top: 18px;
  border-top: 1px dashed rgba(255,255,255,.3);
  padding-top: 14px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.checkin-entry{
  padding: 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  display: flex;
  justify-content: space-between;
  font-size: .95rem;
}

.photo-upload{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.18);
  background: linear-gradient(180deg, #2c6be8, #1f4f8f);
  color: #ffffff;
  cursor: pointer;
  font-weight: 900;
  box-shadow: 0 16px 36px rgba(0,0,0,.45);
}

.photo-upload input{
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.photo-preview{
  margin-top: 16px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.15);
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.02);
  text-align: center;
}

.photo-preview img{
  max-width: 100%;
  border-radius: 12px;
}

.gps-meta{
  margin-top: 14px;
  font-size: .95rem;
  color: rgba(255,255,255,.78);
}

.band-blue{
  background: #071023;
}

.report-grid{
  display: grid;
  gap: 16px;
}

.report-card{
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--ss-radius);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.report-top{
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.report-top strong{
  font-size: 1rem;
  color: var(--ss-white);
}

.report-top span{
  color: rgba(255,255,255,.62);
  font-size: .8rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.report-progress{
  margin-top: 12px;
}

.report-progress-value{
  font-size: .8rem;
  color: rgba(255,255,255,.72);
}

.progress-track{
  height: 10px;
  margin-top: 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.15);
  overflow: hidden;
}

.progress-fill{
  display: block;
  height: 100%;
  width: 60%;
  background: linear-gradient(90deg, var(--ss-p1), var(--ss-p2));
  border-radius: inherit;
  transition: width .4s ease;
}

.leaderboard-card{
  padding-bottom: 24px;
}

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

.leaderboard-row{
  padding: 16px;
  border-radius: 14px;
  background: rgba(255,255,255,.05);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid rgba(255,255,255,.12);
  font-weight: 700;
  font-size: .95rem;
  gap: 12px;
}

.leaderboard-row span{
  color: rgba(255,255,255,.7);
  font-weight: 700;
  white-space: nowrap;
}

.leaderboard-row strong{
  color: var(--ss-white);
}

@media (max-width: 640px){
  .card{
    padding: 20px;
  }
  .mobile-grid{
    grid-template-columns: 1fr;
  }
}
