/* Organized by product feature for straightforward maintenance. */
/* Responsive app shell, navigation and primary overlays. */

/* App shell, responsive layout, splash and navigation. */



:root{--v131-font:"Syncopate","Arial Black",system-ui,sans-serif}
.v131-splash-stage{position:absolute;inset:0;overflow:hidden;background:#000;display:flex;align-items:center;justify-content:center;isolation:isolate}
.v131-splash-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.05) contrast(1.04);transition:opacity .16s linear;background:#000}
.v131-splash-video.loop-fade{opacity:.46}
.v131-splash-vignette{position:absolute;inset:-2px;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.16) 13%,transparent 27%,transparent 70%,rgba(0,0,0,.34) 87%,#000 100%),radial-gradient(ellipse at center,transparent 48%,rgba(0,0,0,.5) 82%,#000 105%);pointer-events:none}
.v131-splash-logo{position:absolute;z-index:2;top:max(28px,5.5vh);left:50%;transform:translateX(-50%);width:min(94vw,740px);height:auto;filter:drop-shadow(0 0 8px rgba(69,197,255,.34)) drop-shadow(0 4px 12px rgba(0,0,0,.75));pointer-events:none}
.v131-enter{position:absolute;z-index:3;left:50%;bottom:max(34px,5.5vh);transform:translateX(-50%);width:min(68vw,320px);min-height:54px;border:1px solid rgba(103,218,255,.9);border-radius:18px;background:linear-gradient(180deg,rgba(31,76,106,.9),rgba(4,22,38,.94));box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -3px 8px rgba(0,0,0,.8),0 0 9px #24c8ff,0 0 26px rgba(36,200,255,.55);color:#effcff;font-family:var(--v131-font);font-size:clamp(15px,4vw,21px);font-weight:700;letter-spacing:.24em;text-indent:.24em;text-shadow:0 0 8px #7de5ff;cursor:pointer}
.v131-enter:active{transform:translateX(-50%) scale(.98)}
.v131-header-logo{display:block;width:min(100%,420px);height:44px;object-fit:contain;margin:0 auto;filter:drop-shadow(0 0 5px rgba(36,200,255,.25))}
.header-brandline .brand-lockup-copy{width:100%;display:flex;justify-content:center;align-items:center}
.header-brandline{padding:2px 24px!important}
.tabbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(48px,.52fr)!important;gap:6px!important}
.tabbar .tab-btn{font-family:var(--v131-font);font-size:clamp(10px,2.7vw,13px);letter-spacing:.04em;min-width:0;padding-left:4px;padding-right:4px}
.v131-menu-tab{font-size:23px!important;letter-spacing:0!important;padding:0!important;min-width:48px}
.splash.hidden{pointer-events:none!important}.v131-menu-backdrop.hidden{display:none!important}.v131-menu-backdrop{position:fixed;inset:0;z-index:998;background:rgba(0,0,0,.66);backdrop-filter:blur(3px)}
.v131-menu-drawer{position:fixed;z-index:999;top:0;right:0;bottom:0;width:min(86vw,360px);padding:max(18px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#0d1520,#070a0f 70%);border-left:1px solid rgba(99,205,255,.25);box-shadow:-18px 0 50px rgba(0,0,0,.7);transform:translateX(105%);transition:transform .22s ease;display:flex;flex-direction:column;gap:15px}
.v131-menu-drawer.open{transform:translateX(0)}
.v131-menu-head{display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:13px}.v131-menu-head img{width:calc(100% - 48px);height:43px;object-fit:contain}.v131-menu-head button{width:42px;height:42px;border-radius:12px;padding:0;font-size:26px}
.v131-menu-links{display:grid;gap:9px}.v131-drawer-link{width:100%;display:grid;grid-template-columns:34px 1fr;gap:10px;text-align:left;align-items:center;padding:13px;border-radius:14px;background:#111b28;border:1px solid rgba(92,176,223,.18);color:#fff}.v131-drawer-link>span:first-child{font-size:20px;text-align:center}.v131-drawer-link strong{display:block;font-family:var(--v131-font);font-size:12px;letter-spacing:.03em}.v131-drawer-link small{display:block;color:#9eacbd;font-size:11px;margin-top:4px;line-height:1.35}.v131-drawer-link.active{border-color:#29c7ff;box-shadow:0 0 18px rgba(41,199,255,.18)}
.v131-menu-future{margin-top:auto;color:#7f8c9d;font-size:11px;line-height:1.5;padding:12px;border:1px dashed rgba(255,255,255,.1);border-radius:12px}
.v131-attachment-bar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0}.v131-attachment-bar button{padding:9px 3px;font-size:11px;white-space:nowrap}.v131-location-row{margin:9px 0}.v131-location-row label span{font-weight:400;color:#8290a0}.v131-wide{grid-column:1/-1}.v131-social-attachment{margin-top:8px}
.social-composer>summary,.social-title,.section-kicker,.card h2,.scan-review-head strong{font-family:var(--cf-heading-font);font-weight:400;letter-spacing:.015em;font-synthesis:none}
.v131-social-card{margin-top:9px;padding:10px;border-radius:12px;background:linear-gradient(145deg,rgba(25,55,78,.75),rgba(13,20,29,.9));border:1px solid rgba(72,179,229,.24)}.v131-social-card strong{display:block;color:#e9faff;margin-bottom:5px}.v131-social-meta{display:flex;gap:8px;flex-wrap:wrap;color:#a8dffc;font-size:12px}.v131-social-note{margin-top:5px;color:#c9d1db;font-size:12px;line-height:1.4}.v131-social-location{margin-top:8px;color:#91a0b2;font-size:12px}
.v131-scan-warnings{margin:10px 0;padding:11px 12px;border-radius:12px;background:rgba(255,155,30,.1);border:1px solid rgba(255,164,45,.42);color:#ffd69b}.v131-scan-warnings strong{font-family:var(--v131-font);font-size:11px}.v131-scan-warnings ul{margin:7px 0 9px;padding-left:19px}.v131-scan-warnings li{margin:4px 0;font-size:12px;line-height:1.35}.scan-suspicious{border-color:#ffab3d!important;box-shadow:0 0 0 2px rgba(255,171,61,.14)!important}.v131-scan-hint{margin:10px 0 4px;color:#b7c4d1}.scan-macros{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.v131-local-test-box{margin:14px 18px 20px;padding:12px;border:1px dashed rgba(49,196,246,.38);border-radius:13px;background:rgba(11,24,37,.75);display:grid;gap:7px}.v131-local-test-box strong{font-family:var(--v131-font);font-size:10px}.v131-local-test-box span{color:#a9b5c4;font-size:11px;line-height:1.4}
@media(max-width:430px){.v131-splash-logo{top:max(22px,4.5vh);width:96vw}.v131-enter{bottom:max(28px,4vh);width:72vw}.v131-header-logo{height:38px}.header-brandline{padding-left:14px!important;padding-right:14px!important}.v131-attachment-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.v131-splash-video{display:none}.v131-splash-stage{background:#000 url('/assets/cyborg-splash-poster.jpg') center/cover no-repeat}.v131-menu-drawer{transition:none}}

/* Mobile viewport and touch layout. */
:root{
  --cf-safe-top:env(safe-area-inset-top,0px);
  --cf-safe-bottom:env(safe-area-inset-bottom,0px);
}
*,*::before,*::after{box-sizing:border-box}
html,body{width:100%;max-width:100%;min-height:100%;overflow-x:hidden!important}
body{margin:0;overscroll-behavior-x:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
img,video,canvas,svg{max-width:100%}
button,input,select,textarea{max-width:100%;font:inherit}

/* Splash: larger button, moved clear of the bottom edge. */
.splash{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;min-height:100svh!important;overflow:hidden!important}
.v131-splash-stage{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}
.v131-splash-logo{top:max(calc(var(--cf-safe-top) + 18px),4.3vh)!important;width:min(96vw,740px)!important}
.v131-enter{
  bottom:max(calc(var(--cf-safe-bottom) + 66px),9.5vh)!important;
  width:min(82vw,370px)!important;
  min-height:66px!important;
  padding:14px 22px!important;
  border-radius:21px!important;
  font-size:clamp(18px,4.8vw,23px)!important;
  letter-spacing:.25em!important;
  touch-action:manipulation;
}
.splash.hidden{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}

/* One stable, mobile-first application shell. */
header{
  width:100%!important;
  max-width:100%!important;
  padding:calc(6px + var(--cf-safe-top)) 8px 6px!important;
  overflow:visible!important;
}
.header-top{width:100%!important;min-height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:visible!important}
.header-brandline{width:100%!important;min-width:0!important;padding:0 8px!important;overflow:hidden!important}
.header-brandline .brand-lockup-copy{width:100%!important;min-width:0!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important}
.v131-header-logo{display:block!important;width:min(92vw,430px)!important;height:40px!important;max-width:100%!important;object-fit:contain!important;margin:0 auto!important}
.header-account,.utility-state{display:none!important}

.tabbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 52px!important;
  width:100%!important;
  max-width:100%!important;
  gap:6px!important;
  margin:5px 0 0!important;
}
.tabbar .tab-btn{
  width:auto!important;
  min-width:0!important;
  min-height:43px!important;
  padding:8px 4px!important;
  border-radius:11px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  font-size:clamp(10px,2.8vw,13px)!important;
  touch-action:manipulation;
}
.tabbar .v131-menu-tab{width:52px!important;min-width:52px!important;font-size:24px!important;padding:0!important}

main{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:9px 8px calc(24px + var(--cf-safe-bottom))!important;
  overflow-x:hidden!important;
}
main>*{width:100%;max-width:100%;min-width:0}
.tab-section{width:100%!important;max-width:100%!important;min-width:0!important}
.card,.global-command,.social-shell,.social-post,.food-week-card,.training-context-compact{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.card{overflow:hidden}
.top-grid,.two-col,.coach-grid,.session-timing-grid,.auth-grid,.profile-grid{
  grid-template-columns:minmax(0,1fr)!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.macro-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.coach-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.compact-command-row{grid-template-columns:38px minmax(0,1fr) 38px!important;width:100%!important;min-width:0!important}
.week-strip,.food-day-strip{width:100%!important;max-width:100%!important;min-width:0!important}
.day-title,.training-context-line,.social-topline,.social-photo-row,.setup-welcome-actions,.account-danger-zone{flex-wrap:wrap!important}
.set-row{grid-template-columns:30px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 38px!important;gap:4px!important}
input,select,textarea{min-width:0!important;width:100%;font-size:16px!important}
.social-comment-form{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important}
.social-comment-form button{width:auto!important}

/* Full-screen overlays should be the only visible layer while open. */
.auth-overlay:not(.hidden),.settings-overlay:not(.hidden),.scan-overlay:not(.hidden),.checkin-overlay:not(.hidden),.history-overlay:not(.hidden){
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  max-width:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  padding:calc(12px + var(--cf-safe-top)) 10px calc(16px + var(--cf-safe-bottom))!important;
}
.auth-shell,.settings-panel,.scan-panel,.checkin-panel,.history-panel{
  width:100%!important;
  max-width:720px!important;
  min-width:0!important;
  margin:auto!important;
  border-radius:18px!important;
}
.auth-brand .brand-lockup{max-width:100%!important;overflow:hidden!important}
.auth-brand .brand-lockup-title{white-space:normal!important;overflow-wrap:anywhere!important}

.v131-menu-backdrop{position:fixed!important;inset:0!important;z-index:20000!important}
.v131-menu-drawer{
  z-index:20001!important;
  width:min(88vw,360px)!important;
  max-width:360px!important;
  padding:calc(14px + var(--cf-safe-top)) 12px calc(18px + var(--cf-safe-bottom))!important;
  overflow-y:auto!important;
}
.v131-menu-head img{min-width:0!important;max-width:calc(100% - 48px)!important}
.v131-drawer-link{min-height:58px!important}

@media(max-width:430px){
  .v131-splash-logo{top:max(calc(var(--cf-safe-top) + 14px),3.5vh)!important;width:97vw!important}
  .v131-enter{bottom:max(calc(var(--cf-safe-bottom) + 60px),8vh)!important;width:84vw!important;min-height:64px!important}
  .v131-header-logo{height:36px!important;width:min(94vw,400px)!important}
  .tabbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 50px!important;gap:5px!important}
  .tabbar .v131-menu-tab{width:50px!important;min-width:50px!important}
  main{padding-left:7px!important;padding-right:7px!important}
  .card{padding:11px!important}
  .coach-metrics{gap:7px!important}
}
@media(max-height:700px){
  .v131-enter{bottom:max(calc(var(--cf-safe-bottom) + 42px),6vh)!important;min-height:60px!important}
  .v131-splash-logo{top:max(calc(var(--cf-safe-top) + 10px),2.5vh)!important}
}

/* Extras is a full-page destination while keeping the established drawer styling. */
.v131-menu-drawer{left:0!important;right:0!important;width:100vw!important;max-width:none!important;border-left:0!important;box-shadow:none!important}
.v131-menu-links{width:min(100%,720px);margin:0 auto}
.v131-menu-head,.v131-menu-future{width:min(100%,720px);margin-left:auto;margin-right:auto}
