/* Approved arc light / milk-glass visual system. Business states remain in app.mjs. */
:root{--cream:#faf6f9;--paper:#fdfafd;--ink:#432b47;--muted:#78637f;--accent:#ca85b1;--coral:#9e588a;--plum:#59415e;--line:#ded0e0;--peach:#f0e5f080;--soft:#f1e9f4;--green:#627869;--blue:#7185a0;--glass:linear-gradient(135deg,#ffffffa1,#ffffff45);--glass-line:1px solid #ffffffeb;--glass-shadow:inset 0 1px 1px #fff,0 6px 24px #72577b09;background:var(--cream);font-family:-apple-system,BlinkMacSystemFont,'Avenir Next','Segoe UI',Arial,sans-serif}
body{background:var(--cream);-webkit-font-smoothing:antialiased}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 89% 7%,#fbd9e9b0,transparent 49%),radial-gradient(ellipse at 6% 15%,#dfeaf5a8,transparent 43%),radial-gradient(ellipse at 12% 58%,#f9d7e880,transparent 49%),radial-gradient(ellipse at 93% 71%,#e1dff98a,transparent 44%),linear-gradient(130deg,#fcf7f5,#fbf6f8 42%,#fbf8f3 71%,#f0edf9)}
body{isolation:isolate}.app-frame{background:transparent;border:1px solid #ffffffbd;box-shadow:0 20px 80px #b697b71a;overflow:clip;min-height:calc(100dvh - 60px)}
button,input,select,textarea{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #86598b;outline-offset:4px}button:disabled{cursor:default}a{color:#86547d}strong{font-weight:550}h1,h2,h3{overflow-wrap:break-word;text-wrap:pretty}
.desktop-wordmark span,.logo span{color:#d886b1}.desktop-intro p{font-weight:400}.desktop-line{background:linear-gradient(90deg,#e7a3c2,#cdb5e8);width:65px}.desktop-intro small{color:var(--muted)}
.header{padding:25px 24px 19px}.logo{font-size:41px;letter-spacing:-2.6px;font-weight:500}.pill{background:var(--glass);border:var(--glass-line);box-shadow:var(--glass-shadow);padding:11px 16px;font-size:14px;min-height:46px}.pill svg{width:23px;height:23px;color:#d88fa8}.primary{min-height:54px;border-radius:32px;background:linear-gradient(120deg,#59405c,#2f2738);color:#fff;font-size:15px;padding:14px 19px;box-shadow:0 7px 18px #4834440c}.primary:disabled{opacity:.55}.secondary,.soft-button{border-radius:28px;min-height:49px;font-size:14px}.secondary{border:1px solid #d9c9df;background:#ffffff42}.soft-button{background:#f0e6f39e}.circle{border:var(--glass-line);background:var(--glass);box-shadow:var(--glass-shadow)}
.glass,.stat,.quiet,.reward,.public-id,.facts,.equipment,.welcome-story,.finish .rule{background:var(--glass);border:var(--glass-line);box-shadow:var(--glass-shadow)}
.home-dock{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(480px,100%);z-index:8;padding:10px 18px max(14px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#fcf8f7a1 34%,#f5eff7eb);pointer-events:none}.home-dock>*{pointer-events:auto}.home-dock .bottom-nav{position:static;padding:10px 7px;margin-top:12px;border:var(--glass-line);border-radius:27px;background:linear-gradient(130deg,#ffffffa1,#ffffff65);box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.home-dock:not(:has(.journey-cta)) .bottom-nav{margin-top:0}.nav-item{min-height:47px;padding:4px 2px;font-size:11px;gap:6px;color:#8d7698}.nav-item svg{width:23px;height:23px}.nav-item[aria-current=page]{background:transparent;color:#874b85}.nav-item[aria-current=page] svg{filter:drop-shadow(0 2px 4px #c995c235)}
.panel{padding:8px 24px max(140px,calc(115px + env(safe-area-inset-bottom)));min-height:calc(100dvh - 120px)}.panel h1{font-size:30px;line-height:1.2;letter-spacing:-.85px}.muted{font-size:14px;color:var(--muted)}.kicker{color:var(--muted);letter-spacing:1.7px}.stats{gap:12px;margin:27px 0}.stat{border-radius:24px;padding:22px 18px;min-width:0}.stat strong{font-size:38px;font-weight:450;line-height:1.1;margin-bottom:9px}.stat span{font-size:11px;line-height:1.5;display:block}.calendar-heading{margin-top:30px}.calendar-heading p{font-size:11px}.calendar{gap:6px}.cal span{background:#ffffff7d;border:1px solid #ffffffc9}.cal.done span{color:white;background:linear-gradient(145deg,#aa75a6,#805986);border-color:#9e76a9}.cal.today span{outline-color:#b481b3}.cal.frozen span{background:#e4edf5;color:#607994}.calendar-summary{align-items:flex-start;flex-wrap:wrap}.calendar-summary button{min-height:32px}.calendar-legend{gap:18px;font-size:11px}.quiet{border-radius:22px;padding:21px;font-size:13px}.history-row{align-items:center;border-color:#decfdf80;padding:17px 0}.history-row>div{min-width:0;line-height:1.5}.history-row>span{flex-shrink:0}.section-title{font-size:17px}
.reward{grid-template-columns:54px minmax(0,1fr) 18px;border-radius:23px;margin-top:13px;padding:18px 15px;gap:13px}.panel>.reward:first-of-type{margin-top:26px}.emblem{width:54px;height:58px;border-radius:19px;background:#e9e0ed99;color:#927d9e;border:1px solid #ffffffbd}.reward.unlocked .emblem{background:linear-gradient(145deg,#f9e5ee,#e7def6);color:#8c5487}.reward strong{font-size:15px;line-height:1.35}.reward small{font-size:11px;line-height:1.6}.reward>svg{color:#8e7597}.avatar{background:var(--glass);border:var(--glass-line);box-shadow:var(--glass-shadow);width:76px;height:76px;margin-top:16px}.public-id{padding:18px;border-radius:22px}.public-id small{font-size:11px;color:var(--muted)}.public-id strong{font-size:14px;letter-spacing:.4px}.public-id button{font-size:12px;min-height:44px;min-width:70px;color:#8c5889}.profile-row{border-color:#decedd80;padding:20px 0;gap:16px}.profile-row>span{min-width:0}.profile-row strong{font-size:15px}.profile-row small{font-size:12px;line-height:1.55;max-width:305px}.profile-row>svg{flex-shrink:0;color:#987da2}.beta-label{font-size:11px;margin:25px 0 0}
.training-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;padding:19px 22px 15px;align-items:center}.training-header .logo{font-size:33px}.back-link{justify-self:start;font-size:12px;gap:3px;white-space:nowrap}.stage-badge{justify-self:end;max-width:100%;text-align:center;font-size:12px;background:var(--glass);border:var(--glass-line);border-radius:28px;padding:9px 14px;box-shadow:var(--glass-shadow)}
.intro{text-align:center;padding:12px 24px 32px}.intro h1{font-size:32px;letter-spacing:-.9px;line-height:1.15}.intro>.muted{margin:16px 0}.intro-art{height:225px;margin:22px -7px 12px}.intro .facts{gap:8px;border-radius:23px;padding:18px 6px;margin:23px 0}.facts strong{font-size:21px}.facts span{font-size:10px;line-height:1.45;display:block}.equipment{text-align:left;border-radius:21px;margin:22px 0;font-size:12px;padding:17px;gap:10px}.equipment strong{font-size:14px}.equipment svg{color:#a275a1}
[data-testid=workout]{padding-bottom:max(20px,env(safe-area-inset-bottom))}.workout-title{padding:6px 24px 0;text-align:center}.workout-title h1{min-height:0;display:block;font-size:25px;line-height:1.22;letter-spacing:-.7px;text-align:center}.set-line{justify-content:center;gap:4px 10px;min-height:30px;margin-top:10px;font-size:12px}.chip{background:transparent;color:var(--muted);border-radius:0;padding:0;font-size:13px}.set-line>span+span::before{content:'·';margin-right:10px;color:#b598bd}.gallery{height:clamp(224px,29dvh,275px);margin:4px 12px 0;padding:0;align-items:center;isolation:isolate;overflow:visible}.gallery.floor{height:clamp(180px,23dvh,220px)}.phase-image,.sprite-image{object-fit:contain;object-position:center center;transition:none;animation:none;width:100%;height:100%;max-width:100%;display:block}.muscle-label{display:flex;align-items:center;justify-content:center;gap:7px;background:none;margin:7px auto 0;padding:6px 16px;max-width:100%;min-height:32px;font-size:11px;color:var(--muted);line-height:1.4;text-align:center}.muscle-label>i{width:7px;height:7px;border-radius:50%;background:#dea0b8;flex-shrink:0}.muscle-label svg{width:13px;height:13px}.muscle-art-row{display:flex;align-items:center;justify-content:center;gap:12px}.muscle-art-row img{width:100%;min-width:0;max-height:235px;object-fit:contain}
.phase-nav{padding:4px 24px 0;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px}.dots{max-width:165px}.dot{width:34px;min-width:24px;height:44px}.dot::after{height:8px;width:8px;background:#d9c9e0}.dot[aria-current=step]::after{width:8px;background:#d98caf}.phase-count{font-size:11px;margin-top:0;line-height:1.5;color:var(--muted)}.instruction{padding:13px 24px 16px;min-height:110px;text-align:center;align-items:start}.instruction .measure{contain:paint}.step-title{display:block;margin-bottom:9px}.step-title h2{font-size:20px;font-weight:500;line-height:1.35;text-align:center}.step-number{display:none}.instruction p{font-size:14px;line-height:1.6;color:#79667e;text-align:center}.equipment-note{margin:0 24px 16px;background:#ffffff76;border:1px solid #fff;border-radius:18px;text-align:center;font-size:12px}
.workout-footer{padding:0 24px 0;background:transparent;border:0}.clocks{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:0;min-height:82px;margin:2px 0 9px}.clocks>div,.clocks>div:last-child{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0}.clocks>div+div{border-left:1px solid #decedf;padding-left:10px}.clock-value{order:-1;font-size:43px;font-weight:450;letter-spacing:-1.4px;line-height:1.08}.clocks>div:last-child .clock-value{font-size:32px;letter-spacing:-.7px}.clock-label{font-size:10px;margin:0;min-height:15px;line-height:1.4}.cue-controls{padding:2px 0 11px;text-align:center}.cue-buttons{justify-content:center;gap:7px}.cue-buttons button{background:#ffffff5c;border:1px solid #ffffffd9;border-radius:24px;padding:8px 11px;font-size:11px;min-height:38px;color:#806387}.cue-buttons button[aria-pressed=false]{background:transparent;color:var(--muted)}.cue-buttons svg{width:15px;height:15px}.cue-help{margin:8px auto 0;max-width:330px}.cue-help summary{list-style:none;display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);cursor:pointer;padding:4px 8px;min-height:28px}.cue-help summary::-webkit-details-marker{display:none}.cue-help summary svg{width:12px;height:12px}.cue-help p{font-size:11px;text-align:left;line-height:1.6;margin:8px 0}.cue-help[open]{padding:0 10px 12px;background:#fff7;border:1px solid #fff;border-radius:17px}
.workout-dock{position:relative;background:transparent;padding:10px 8px max(6px,env(safe-area-inset-bottom));margin:0 -8px;border-radius:25px 25px 0 0}.set-actions{grid-template-columns:44px minmax(0,1fr);gap:10px;margin-bottom:0}.set-actions.first-set{grid-template-columns:1fr}.set-actions.first-set .previous{display:none}.previous{width:44px;height:44px;border-radius:50%;border:var(--glass-line);background:var(--glass);box-shadow:var(--glass-shadow);align-self:center}.workout-dock>.secondary{min-height:45px;border:0;background:transparent;padding:12px 8px 8px;gap:10px;font-size:13px}.skip-note{font-size:10px;line-height:1.6;margin:9px auto 0;max-width:310px}.streak-rule{border:1px solid #fff;border-radius:19px;background:#ffffff7a;padding:15px;margin-top:18px;font-size:11px;line-height:1.65}.review-banner{background:#f3eaf5cc;border-bottom:1px solid #fff;color:#876d92;font-size:10px}
.finish{padding:27px 25px 38px;gap:24px;min-height:calc(100dvh - 95px)}.finish-symbol{background:var(--glass);border:var(--glass-line);box-shadow:var(--glass-shadow);color:#a378a4;width:88px;height:88px;margin:8px auto 0}.finish-symbol svg{width:34px;height:34px}.finish h1{font-size:30px;line-height:1.2}.finish-time{font-size:48px;margin-bottom:10px}.finish .small{font-size:12px;line-height:1.65}.finish .rule{padding:20px;border-radius:24px;font-size:13px}.finish .button-stack{gap:12px}.reward-summary{gap:8px!important}.reward-summary span{background:#ffffff83;border:1px solid #fff;font-size:12px;padding:10px 13px}.success-art{height:165px;width:165px}.finish[data-testid=success] .finish-symbol{width:75px;height:75px}.finish[data-testid=success]{gap:21px}
dialog{border:1px solid #fff;border-radius:29px;background:#fbf7fcf5;box-shadow:0 24px 90px #60456b2c;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding:31px 24px 25px;max-height:calc(100dvh - 34px)}dialog::backdrop{background:#5944613b;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}dialog h2{font-size:25px;line-height:1.24;margin:10px 24px 19px 0}dialog p{font-size:14px;line-height:1.65}.close{background:#ffffffc4;border:1px solid white;right:13px;top:13px;width:36px;height:36px}.rule-list li{border-color:#e1d2e2;line-height:1.65}.freeze-option{background:#eee6f3;border-radius:15px;min-height:45px}.freeze-option[aria-pressed=true]{background:#e4eaf5;border-color:#b7c5db;color:#5c7191}.private-access-code{background:#efe7f399;border:1px solid white;border-radius:19px;letter-spacing:.6px}.photo-picker input::file-selector-button{background:#efe4f0;border:1px solid #e0cfe3;border-radius:18px;color:#78517a}.feedback-context{background:#efe7f3!important}.toast{background:#48314cec;border-radius:19px;bottom:110px;box-shadow:0 10px 35px #51385f22;text-align:center}.banner{background:#edf1f7b8;border:1px solid white;border-radius:20px}.session-banner{background:#faf3fbd9}.banner button{white-space:normal;min-height:44px;flex-shrink:0}.storage-warning{background:#fff0e8;color:#8c5e57}
.auth-screen{padding:45px 27px 35px;min-height:100dvh}.auth-screen .logo{margin-bottom:45px;font-size:48px}.auth-screen h1{font-size:clamp(34px,8vw,43px);line-height:1.1;font-weight:500;letter-spacing:-1.4px;margin:18px 0 20px}.auth-screen .muted{font-size:15px;line-height:1.65}.auth-screen form{margin:32px 0 18px;gap:18px}.auth-screen label{font-size:13px;color:#786080}.auth-screen input,#access-code-dialog input,#streak-dialog input,#streak-dialog textarea,#feedback-dialog textarea{border:1px solid #e0d4e5;border-radius:19px;background:#ffffff91;color:var(--ink);font-size:16px;padding:14px 16px}.auth-screen input{min-height:55px}.auth-screen input::placeholder{color:#a190a8;font-size:14px}.auth-separator{color:#937e9c;margin:27px 0 16px;font-size:11px}.auth-separator::before,.auth-separator::after{background:#decedf}.auth-footer{border-color:#e4d7e7;font-size:11px;color:var(--muted);line-height:1.7;margin-top:27px}.telegram-access{background:var(--glass);border:var(--glass-line);box-shadow:var(--glass-shadow);border-radius:28px;justify-content:center;color:#76507b;font-weight:500;min-height:54px;padding:15px 20px;font-size:14px}.telegram-access:hover{background:#fff8}.auth-screen #get-access>.small{text-align:center;font-size:11px;margin-top:10px}.auth-error{color:#9b4563}.install-banner{background:#ffffff9c;border-bottom:1px solid #fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:12px 18px}.install-banner span{color:var(--muted);font-size:10px}.install-banner button{background:#fff9;border:1px solid white;color:#81668a;border-radius:20px;font-weight:500}.install-banner strong{font-weight:500}.welcome{padding:28px 26px}.welcome-top{margin-bottom:32px}.welcome-badge{background:#ffffff8c;border:1px solid white;color:#987fa0;font-size:10px}.welcome h1{font-size:36px;letter-spacing:-1.25px}.welcome-lead{color:var(--muted);font-size:15px}.welcome-story{border-radius:26px;padding:0 20px 22px}.welcome-story p,.welcome-points p{color:var(--muted)}.welcome-art>svg>path:first-child{stroke:#dfb5d2;stroke-dasharray:none}.welcome-art>svg>circle:first-of-type{fill:#b985b4}.welcome-art>svg>circle:not(:first-of-type){fill:#fff8;stroke:#cfb6d5}.welcome-number{background:#ffffff88;border-color:#fff;color:#a071a1;width:30px;height:30px}.welcome-points{gap:24px;margin:28px 0}.welcome-install>span:first-child{background:#ffffff91;border:1px solid white;border-radius:14px;color:#a482aa}.welcome-install strong{font-weight:500}.welcome-note{border-color:#e1d3e4}.welcome-bottom{color:#9c879f}.install-help{background:#f0e6f5;border:1px solid white;border-radius:19px}.install-steps li::before{border-color:#d7c1dd;color:#98709e}
@media(min-width:600px){.app-frame{margin:24px auto 28px}.home-dock{bottom:0}.gallery{height:270px}.gallery.floor{height:205px}}
@media(max-width:520px){.app-frame{margin:0 auto;border:0;border-radius:0;box-shadow:none;min-height:100dvh}body{background:var(--cream)}.header{padding-top:max(23px,env(safe-area-inset-top))}.training-header{padding-top:max(19px,env(safe-area-inset-top))}}
@media(max-width:360px){.header{padding-left:20px;padding-right:20px}.logo{font-size:38px}.pill{font-size:12px;padding:10px 13px}.panel{padding-left:20px;padding-right:20px}.panel h1{font-size:28px}.stat{padding:18px 14px}.stat strong{font-size:34px}.calendar{gap:4px}.reward{grid-template-columns:45px minmax(0,1fr) 16px;padding:17px 13px;gap:10px}.emblem{width:45px;height:51px}.reward strong{font-size:14px}.public-id{padding:14px;gap:8px}.public-id strong{font-size:13px}.training-header{padding-left:17px;padding-right:17px}.stage-badge{font-size:11px;padding:8px 11px}.workout-title{padding-left:20px;padding-right:20px}.workout-title h1{font-size:23px}.set-line{font-size:11px;gap:5px}.gallery{height:230px;margin-left:7px;margin-right:7px}.gallery.floor{height:185px}.phase-nav{padding-left:20px;padding-right:20px}.instruction{padding-left:20px;padding-right:20px;min-height:117px}.instruction p{font-size:13px}.step-title h2{font-size:19px}.workout-footer{padding-left:20px;padding-right:20px}.clock-value{font-size:40px}.clocks>div:last-child .clock-value{font-size:29px}.cue-buttons button{padding:8px 9px;font-size:10px}.home-dock{padding-left:14px;padding-right:14px}.welcome{padding:25px 21px}.auth-screen{padding-left:23px;padding-right:23px}.install-banner{padding:11px 13px;gap:8px}.install-banner button{padding:8px 10px}}
@media(prefers-reduced-transparency:reduce){.home-dock .bottom-nav,dialog,.install-banner{background:#faf6fb;backdrop-filter:none;-webkit-backdrop-filter:none}.pill,.glass,.stat,.quiet,.reward,.public-id,.facts,.equipment,.welcome-story,.finish .rule{background:#fcf9fd}}

.workout-footer .cue-controls{padding-top:12px}.workout-footer .cue-help{margin-top:5px}

/* Preparation replaces only the button label; its footprint remains 54px. */
[data-action=begin-set].is-preparing{font-size:24px;line-height:1;font-variant-numeric:tabular-nums;opacity:1}
