:root{--bg:#0b0e0d;--panel:#171b19;--panel2:#202521;--text:#f4f6ef;--muted:#939a92;--lime:#d7ff77;--stroke:#30362f;--red:#ff897c;--r:18px}
*{box-sizing:border-box}
html{background:#101410;color:var(--text);-webkit-text-size-adjust:100%}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;color:var(--text);background:radial-gradient(ellipse at 70% -40%,#2e3e24 0%,transparent 55%),#111511;min-height:100vh}
button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--lime);outline-offset:2px}a{color:inherit}
.app-shell{max-width:520px;margin:0 auto;min-height:100dvh;background:var(--bg);position:relative;box-shadow:0 0 90px #0008;overflow-x:hidden}
.site-head{height:88px;padding:calc(17px + env(safe-area-inset-top,0px)) 22px 14px;box-sizing:content-box;height:56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #202620}
.brand{display:flex;align-items:center;gap:9px}.brand-square{font-weight:950;background:var(--lime);color:#11180b;letter-spacing:-2px;border-radius:7px;font-size:29px;line-height:34px;width:39px;text-align:center;padding-right:2px}.brand-copy{font-weight:900;font-size:11px;letter-spacing:1.3px;line-height:1.12}.brand-dot{color:var(--lime)}.head-label{font-size:9px;letter-spacing:1.4px;font-weight:750;color:#b3baad}.tiny-blip{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--lime);margin-left:3px}
#app{padding:20px 20px calc(110px + env(safe-area-inset-bottom,0px))}.eyebrow{color:var(--lime);font-size:10px;font-weight:900;letter-spacing:2px;text-transform:uppercase}.title{font-size:34px;font-weight:950;line-height:1.06;letter-spacing:-1.8px;margin:8px 0 10px}.muted{color:var(--muted)}.small{font-size:12px}.description{font-size:13px;line-height:1.6;color:#aeb6ab}.section-head{display:flex;justify-content:space-between;align-items:end;margin:26px 0 12px}.section-title{font-size:20px;font-weight:850;letter-spacing:-.6px;margin:0}.section-link{border:0;background:transparent;color:var(--lime);font-weight:750;font-size:12px;padding:6px 0}
.hello{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.circle-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--stroke);font-weight:800;color:var(--lime)}
.hero{background:var(--lime);border-radius:20px;padding:22px 21px 18px;color:#111711;min-height:246px;position:relative;overflow:hidden}.hero:before{content:"33";position:absolute;font-size:235px;line-height:1;letter-spacing:-27px;right:-22px;top:49px;color:#a6d44755;font-weight:1000;transform:rotate(-14deg);pointer-events:none}.hero-overline{position:relative;font-size:10px;font-weight:850;letter-spacing:1.9px}.hero-title{position:relative;font-size:42px;font-weight:1000;letter-spacing:-2.2px;line-height:.99;margin:17px 0 10px}.hero-sub{position:relative;font-size:13px;font-weight:600;max-width:225px;line-height:1.5}.hero-footer{position:relative;display:flex;align-items:center;justify-content:space-between;margin-top:24px}.dark-button{background:#151914;color:#edf7e2;border-radius:11px;border:0;padding:12px 18px;font-weight:850;font-size:13px}.hero-counter{font-size:11px;font-weight:800}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:12px}.stat{background:var(--panel);padding:16px 16px;border:1px solid #242b24;border-radius:var(--r)}.stat-num{font-size:30px;font-weight:950;letter-spacing:-1px}.stat-num span{color:var(--lime)}.stat-label{color:var(--muted);margin-top:4px;font-size:11px;font-weight:600}.bar-track{height:7px;background:#30372e;border-radius:20px;overflow:hidden;margin-top:14px}.bar-fill{height:100%;background:var(--lime);border-radius:20px}
.split-options{display:flex;padding:5px;background:#1b211c;border:1px solid #30382f;border-radius:13px;gap:6px}.split-options button{flex:1;border:0;border-radius:9px;padding:11px 8px;color:#a5ada3;background:transparent;font-size:12px;font-weight:750}.split-options button.active{background:var(--lime);color:#141812}.week-scroll{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:18px -20px 18px;padding:0 20px}.week-scroll::-webkit-scrollbar{display:none}.week-pill{flex-shrink:0;min-width:62px;padding:12px 8px;display:flex;flex-direction:column;gap:5px;align-items:center;border-radius:12px;background:#1a201b;color:#a9b1a5;border:1px solid #2c342b}.week-pill strong{font-size:16px}.week-pill small{font-size:10px;letter-spacing:1px;font-weight:850}.week-pill.active{background:var(--lime);border-color:var(--lime);color:#111711}
.block-card{padding:16px 16px 15px;background:var(--panel);border:1px solid #2a322b;border-radius:var(--r);margin:10px 0}.block-row{display:flex;align-items:center;gap:14px}.day-number{font-size:12px;color:var(--lime);border:1px solid #45503d;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:950;flex-shrink:0}.block-main{min-width:0;flex:1}.block-title{font-size:15px;font-weight:850;line-height:1.2}.block-desc{font-size:11px;color:var(--muted);margin-top:5px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.arrow-btn{border:0;background:#2b332a;color:var(--text);width:30px;height:30px;border-radius:10px;font-size:17px}.complete-mark{color:var(--lime);font-size:20px}
.top-meta{display:flex;gap:8px;flex-wrap:wrap}.tag{background:#242b23;color:#bbc4b5;font-size:10px;letter-spacing:.3px;font-weight:800;padding:7px 10px;border-radius:7px}.tag.lime{background:#2b3823;color:var(--lime)}.section-caption{color:var(--muted);font-size:11px;line-height:1.5}.exercise-card{border-radius:16px;background:var(--panel);border:1px solid #2a322b;padding:14px;margin:10px 0}.exercise-top{display:flex;gap:11px;align-items:flex-start}.exercise-index{color:var(--lime);font-weight:900;font-size:14px;padding-top:2px}.exercise-main{flex:1}.exercise-name{font-size:14px;font-weight:850;line-height:1.3}.exercise-details{color:#b8c3b1;font-size:11px;margin-top:7px}.exercise-notes{margin:10px 0 0;color:#9da79b;line-height:1.5;font-size:12px}.video-btn{border:1px solid #3e4a39;background:#293427;color:var(--lime);padding:10px 12px;border-radius:10px;font-size:11px;font-weight:850;margin-top:12px}.video-empty{color:#647165;font-size:11px;margin-top:12px}.primary{display:block;width:100%;border:0;border-radius:13px;background:var(--lime);color:#182017;font-size:14px;font-weight:900;padding:16px 15px;margin-top:17px}.primary:disabled{opacity:.5;cursor:not-allowed}.primary.completed{background:#293725;color:var(--lime);border:1px solid #526743}
.empty{background:#171e17;border:1px dashed #43523f;border-radius:16px;padding:23px;text-align:center}.empty-emoji{font-size:29px;margin-bottom:8px}.empty-title{font-size:15px;font-weight:850}.empty-info{color:var(--muted);font-size:12px;line-height:1.5;margin-top:8px}
.progress-row{background:var(--panel);border-radius:13px;padding:14px;margin:9px 0;display:flex;align-items:center;gap:14px}.progress-label{min-width:79px}.progress-label strong{display:block}.progress-label small{color:var(--muted);font-size:11px}.progress-dots{display:flex;gap:5px;flex:1}.progress-dot{height:26px;border-radius:5px;background:#30372f;flex:1}.progress-dot.done{background:var(--lime)}.progress-count{font-weight:850;color:#bac4b6;font-size:12px}
.profile-banner{background:var(--panel);border-radius:20px;padding:20px;display:flex;gap:14px;align-items:center;margin:16px 0 25px}.avatar{width:51px;height:51px;background:var(--lime);color:#171d14;display:grid;place-items:center;border-radius:50%;font-size:22px;font-weight:950}.profile-name{font-weight:950;font-size:18px}.profile-id{font-size:11px;color:var(--muted);margin-top:4px}.menu-list{display:grid;gap:10px}.menu-item{border:1px solid #2b332b;background:var(--panel);border-radius:13px;padding:16px;text-align:left;color:var(--text);display:flex;justify-content:space-between;align-items:center;font-weight:750;font-size:13px;text-decoration:none}.menu-item span:last-child{color:var(--lime)}
.footer-note{font-size:10px;color:#667261;letter-spacing:.8px;text-align:center;margin:30px 0}
.bottom-nav{z-index:20;position:fixed;bottom:0;width:min(100%,520px);display:flex;justify-content:space-around;align-items:center;background:#151b16f7;backdrop-filter:blur(18px);border-top:1px solid #2e382e;padding:9px 6px calc(10px + env(safe-area-inset-bottom,0px));}.bottom-nav[hidden]{display:none}.nav-button{display:flex;gap:5px;align-items:center;flex-direction:column;min-width:70px;padding:3px 0;background:transparent;border:0;color:#808b7f;font-size:10px;font-weight:700}.nav-button.selected{color:var(--lime)}.nav-icon{font-size:23px;font-weight:450;line-height:1.2}
.modal-backdrop{position:fixed;inset:0;background:#020401dc;z-index:50;display:flex;justify-content:center;align-items:flex-end;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px))}.modal-backdrop[hidden]{display:none}.modal-box{width:min(100%,496px);background:#1a211b;border:1px solid #435040;border-radius:21px;padding:17px;max-height:85dvh;overflow:auto}.modal-title-row{display:flex;justify-content:space-between;align-items:center;margin:0 0 15px}.modal-title{font-size:19px;font-weight:900}.close-btn{border:0;border-radius:8px;background:#2d372c;color:#f4f6ef;padding:7px 11px;font-size:16px}video{width:100%;max-height:60dvh;background:#000;border-radius:10px}
.form-label{display:block;font-size:11px;font-weight:800;color:#bdc7ba;margin:13px 0 6px}.field{width:100%;min-width:0;background:#101511;border:1px solid #445142;border-radius:9px;color:#f7faf3;padding:12px;font-size:13px}.field:focus{border-color:var(--lime)}textarea.field{min-height:80px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-actions{display:flex;gap:10px;align-items:center}.secondary{background:#2c382b;color:var(--lime);border:1px solid #44593e;padding:12px 14px;border-radius:11px;font-size:12px;font-weight:850}.danger{background:#39221f;color:#ffafa4;border:1px solid #72473e}.editor-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#192019;border:1px solid #303b2e;border-radius:12px;padding:12px;margin:9px 0}.editor-card button{flex-shrink:0}.editor-controls{display:flex;gap:7px}
.toast{position:fixed;z-index:90;bottom:98px;left:50%;transform:translateX(-50%) translateY(20px);color:#101610;background:var(--lime);border-radius:10px;padding:11px 14px;font-size:12px;font-weight:850;opacity:0;pointer-events:none;transition:.18s;max-width:85%;text-align:center;box-shadow:0 10px 25px #0005}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.loader{padding:80px 0;text-align:center;color:var(--muted);font-size:13px}.spinner{width:29px;height:29px;margin:auto;border:3px solid #35422d;border-top-color:var(--lime);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:600px){.app-shell{margin:30px auto;min-height:calc(100dvh - 60px);border-radius:22px}.bottom-nav{bottom:0}}@media(max-width:360px){#app{padding-left:15px;padding-right:15px}.hero-title{font-size:37px}.week-scroll{margin-left:-15px;margin-right:-15px;padding-left:15px}}
/* Exercise log and trainer access screens */
.log-summary{font-size:11px;color:#d1dcbe;margin-top:12px;padding:10px;border-radius:9px;background:#252f23;line-height:1.5}
.log-btn{background:transparent;color:var(--lime);border:1px dashed #53674a;border-radius:9px;padding:10px;font-size:10px;font-weight:900;letter-spacing:.3px;margin-top:10px;width:100%;text-align:left}
.access-person{margin:10px 0;padding:15px;border-radius:13px;background:var(--panel);border:1px solid #374431}
.access-name{font-size:14px;font-weight:850}.access-detail{font-size:11px;color:var(--muted);margin-top:6px}
.access-buttons{display:flex;gap:9px;margin-top:13px}.access-buttons button{flex:1;padding:10px;border-radius:8px;border:1px solid #445b3c;color:var(--lime);background:#293327;font-weight:800;font-size:11px}
/* Coach program toolkit */
.admin-overview{margin:13px 0;padding:14px;border:1px solid #4d6541;border-radius:13px;background:#263421;display:flex;gap:7px;flex-direction:column}
.admin-overview strong{color:var(--lime);font-size:12px}
.admin-overview span{font-size:11px;color:#ccd8be}
.admin-utilities{margin-top:23px;padding:17px 15px 18px;border:1px solid #33452c;border-radius:15px;background:#182018}
.admin-utilities .section-title{font-size:16px}
.admin-utilities .description{margin:10px 0 12px}
