/* Flat, warm monochrome: tokens and control geometry informed by Stageshow. */
:root{--ink:#f3f1eb;--ink-soft:#d3d0c8;--muted:#aaa79e;--page:#111110;--card:#1c1c1a;--blue:#e6e3da;--blue-light:#44433f;--blue-pale:#262623;--line:#3a3935;--navy:#f3f1eb;--shadow:none;--radius:14px;--radius-sm:8px;--ss-surface:#282825;--ss-text-strong:#f5f3ed;--ss-ink-4:#41403c;--ss-accent:#f3f1eb;--ss-radius-sm:8px;--ss-radius-md:9px;--ss-radius-pill:999px;--ss-control:44px;--ss-row:40px;--ss-danger:#a4534d;color-scheme:dark}
body{background:#111110;color:var(--ink);font-size:16px;line-height:1.5}
button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #f2eee4;outline-offset:3px}
.sidebar{background:#151514;border-color:#31312e;padding:31px 20px}.brand{padding:0;gap:0;font-size:15px;letter-spacing:-.2px;line-height:1.12;color:#f6f4ee}.brand-mark{display:none}.side-nav{margin-top:52px;gap:4px}.nav-item{padding:12px;color:#b1aea6;font-size:15px;font-weight:600;border-radius:8px}.nav-item:hover,.nav-item.active{background:#30302d;color:#fff}.side-bottom{border-color:#33332f}.text-btn{font-size:14px;color:#c0bdb4}
.topbar{margin-bottom:36px}.greeting{color:#dbd8d0;font-size:15px}.mobile-brand{color:#f6f4ee;font-size:15px;letter-spacing:-.2px}.header-settings{background:#292927;color:#e4e1d9;padding:10px 14px;min-height:42px;border-radius:8px;font-size:14px;font-weight:700}.header-settings:hover{background:#383834}.avatar,.round-btn{display:none}
.page-heading{margin-bottom:24px}.page-heading h1{font-size:clamp(34px,3.8vw,46px);line-height:1.12;letter-spacing:-1.8px}.subheading,.next-meta,.session-progress{font-size:15px;color:#aaa79f}.plain-link,.back{font-size:14px;color:#e2ded4}.plain-link:hover,.back:hover{color:#fff}.back{margin-bottom:22px}
.panel,.plan-card,.session-item,.exercise-row{background:#1c1c1a;border:0;border-radius:14px;box-shadow:none;color:#f5f3ed}.panel{padding:26px}.panel-heading h2{font-size:19px;letter-spacing:-.45px}.panel-heading{gap:16px}.calendar-layout,.col{gap:14px}
.button.ss-button,.button{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 17px;border:0;border-radius:8px;box-shadow:none;background:#efede6;color:#141413;font-size:15px;font-weight:750;line-height:1.3;white-space:normal;transform:none}.button:hover,.button.ss-button:hover{background:#fff;color:#111;transform:none}.button.outline{background:#30302d;color:#efede6;border:1px solid #4a4944}.button.outline:hover{background:#3a3935;color:#fff}.button.small{min-height:40px;padding:8px 12px;font-size:14px}.button:disabled{opacity:.42}
.calendar-panel{background:#1c1c1a}.calendar-head{margin-bottom:22px}.calendar-head h2{font-size:20px}.calendar-arrows button,.week-nav button{background:#30302c;color:#f2f0e9;width:40px;height:40px}.calendar-dows span{color:#aaa69c;font-size:12px;letter-spacing:0}.calendar-grid{gap:7px}.cal-day{min-height:57px;background:#282825;color:#e6e4dc;border:1px solid transparent;border-radius:9px;font-size:15px;gap:5px}.cal-day:hover{background:#363630}.cal-day.selected{background:#e9e7e0;color:#131313}.cal-day i.planned,.calendar-key i.planned{background:#aaa69c;width:6px;height:6px}.cal-completed,.cal-day.selected .cal-completed{position:static;color:#f3f1eb;font-size:14px;line-height:1}.cal-day.selected .cal-completed{color:#131313}.legend-completed{color:#f3f1eb;font-size:15px}.calendar-key{color:#aaa79e;font-size:13px;gap:18px}.day-record,.overview-line{border-color:#393834}.day-record strong,.history-line strong{font-size:15px;color:#f3f1eb}.day-record p,.history-line small{font-size:13px;color:#aaa79e}.done-mark{background:#363632;color:#f3f1eb}.icon-soft{background:#343430;color:#f3f1eb}.empty-date{font-size:14px;color:#aaa79e}
.next-panel,.workout-head{background:#292926;border:0;color:#f6f4ee}.next-panel .panel-heading{margin-bottom:24px}.next-title{font-size:32px;letter-spacing:-1.1px}.plan-date,.overview-date{color:#c6c3b9;font-size:13px;font-weight:700;text-transform:none}.overview-date{min-width:59px}.overview-line{padding:13px 0;color:#e9e7e0;font-size:15px}.next-visuals{gap:8px;margin:22px 0}.week-nav strong{font-size:14px;color:#e0ded7}.tag{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:#aca99f}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plan-card.compact-plan{min-width:0;min-height:210px;padding:20px;display:flex;flex-direction:column;overflow:hidden}.plan-card h3{margin:20px 0 15px;font-size:25px;line-height:1.15}.plan-card .plan-top{gap:10px;align-items:flex-start}.plan-card .tag{text-align:right;white-space:normal}.compact-plan .plan-visuals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;min-width:0;margin:0 0 18px;padding:0}.compact-plan .plan-visuals .image-button{width:100%;min-width:0;max-width:100%;margin:0;display:block;line-height:0}.compact-plan .plan-thumb{display:block;width:100%;height:auto;aspect-ratio:1;max-width:100%;border:0;margin:0;border-radius:7px}.plan-card.compact-plan>.plain-link{margin-top:auto;font-size:14px}
.image-button{padding:0;margin:0;border-radius:8px}.image-button:hover{box-shadow:0 0 0 2px #e9e6dc}.mini-image,.plan-thumb{background:#282825}.classic-art{background:#222220}.pair-thumb{display:block;position:relative;overflow:hidden;aspect-ratio:1;background:#20201e}.pair-thumb img{position:absolute;inset:0 auto 0 0;width:200%!important;max-width:none!important;height:100%!important;border:0!important;object-fit:fill!important;border-radius:0!important}.empty-thumb{display:grid;place-items:center;background:#292927;color:#b5b1a6;font-size:11px;font-weight:700;line-height:1.2;text-align:center;padding:4px;overflow:hidden}.plan-thumb.empty-thumb{font-size:clamp(8px,1vw,11px)}
.workout-head{padding:27px}.workout-head h1,.session-head h1{font-size:34px;line-height:1.15}.workout-head p{color:#b8b5ac;font-size:14px;text-transform:none}.warmup-preview{background:#252522;border:0;color:#f4f1e9}.warmup-symbol{background:#41403c;color:#f5f3ed;border-radius:8px}.warmup-preview strong,.warmup-heading strong{font-size:15px}.warmup-preview small,.warmup-heading small{font-size:13px;color:#bbb7ad}.drag-hint{font-size:13px;color:#aaa79d;margin:6px 3px 12px}
.editable-row{grid-template-columns:32px auto minmax(0,1fr) auto;gap:12px;min-width:0}.exercise-row{padding:13px}.exercise-row .mini-image{width:68px;height:68px;border-radius:8px}.exercise-name{font-size:16px;font-weight:750}.exercise-sub{font-size:14px;color:#b3b0a7}.replace-btn,.remove-small,.exercise-action,.drag-handle{background:#33332f;color:#e9e6dd;border-radius:8px}.replace-btn{font-size:13px;padding:10px 12px;min-height:40px}.remove-small,.exercise-action{min-width:40px;min-height:40px}.replace-btn:hover,.remove-small:hover,.exercise-action:hover{background:#45443f}.drag-handle{width:32px;min-width:32px;height:44px;color:#d4d1c9;touch-action:none}.dragging{outline:2px solid #e9e5da;box-shadow:none}.add-exercise{font-size:15px;min-height:48px;border:1px dashed #76736b;color:#ebe8df;border-radius:9px}.add-exercise:hover{background:#292926}
.session-item{padding:21px}.session-item-head img,.session-item-head .mini-image{width:60px;height:60px}.session-edit-controls{gap:8px}.set-heading{color:#aaa79d;font-size:12px;font-weight:700}.set-num{font-size:14px;color:#ccc8bd}.set-row input,.session-notes,.form-grid input,.custom-form input,.custom-form select,.library-search,.warmup-fields input{background:#131312;color:#f4f1e9;border:1px solid #484741;border-radius:8px;font-size:16px}.set-row input::placeholder,.session-notes::placeholder,.library-search::placeholder{color:#918e85}.set-done{background:#353530;color:#b5b2a8;border-radius:8px;min-width:42px;min-height:42px}.set-done.done{background:#efede6;color:#171716}.timer{background:#292926}.timer-value{color:#f3f1eb;font-size:24px}
.warmup-session{background:#252522;border:0}.warmup-activity{border-color:#45443f}.warmup-options .choice,.choice{background:#343430;color:#e3e0d8;border:1px solid transparent;border-radius:8px;padding:10px 13px;font-size:14px;min-height:42px}.warmup-options .choice:hover,.choice:hover{background:#44443e}.warmup-options .choice.active,.choice.active{background:#e8e6df;color:#171716;border-color:#e8e6df}.warmup-fields{gap:10px}.warmup-fields label{color:#c7c3b9;font-size:13px}.warmup-fields input{font-size:16px;min-height:44px}.warmup-check{background:#383833;color:#ece9e1;min-height:42px;font-size:14px}.warmup-check.done{background:#e7e5de;color:#171716}.warmup-add,.warmup-remove{font-size:14px;color:#e1ddd3}.warmup-remove{color:#bbb7ae}
.history-record{border-color:#3a3934}.history-line,.history-line:first-child,.history-line:last-child{padding:15px 0;color:#eeeae1}.history-delete{background:#342a29;color:#f0c1bc;font-size:13px;min-height:40px}.history-delete:hover{background:#493431;color:#ffe2de}
.modal{background:#1c1c1a;color:#f6f4ed;border:1px solid #494842;border-radius:14px;box-shadow:none}.modal::backdrop{background:rgba(0,0,0,.78);backdrop-filter:none}.modal-inner{padding:26px}.modal-top h2{font-size:26px;letter-spacing:-.7px}.modal-close{background:#33332f;color:#eeeae1;width:42px;height:42px}.modal-intro{font-size:14px;color:#bcb8af}.field legend,.form-grid label{font-size:14px;color:#e4e0d7}.ready-preview span{font-size:12px;background:#30302d;color:#d7d4ca}.library-row{background:transparent;color:#f1eee7;border-color:#3a3934}.library-desc strong{font-size:14px}.library-desc small{font-size:12px;color:#b6b2a8}.library-select{color:#e9e5da;font-size:13px}.preference-manage{background:#30302d;color:#ebe9e1;font-size:14px}.pref-record{border-color:#3d3c37}.pref-record small,.legal-credit{color:#aaa69c}.detail-title{font-size:16px}.cue-list li{font-size:15px;color:#d4d1c8;line-height:1.65}.cue-list li:before{color:#aaa69c;font-size:12px}.preference-block{border-color:#3a3934}.baseline,.soft-box,.warmup-summary{background:#30302c;color:#e0dcd2}.baseline strong{color:#f5f2ea}.summary-copy{font-size:15px;color:#d5d2c9}.analysis-values b{font-size:14px;color:#f0ede4}.analysis-values,.analysis-intro span,.completion-summary{font-size:13px;color:#b7b3a9}
.pose-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pose-card{position:relative;overflow:hidden;aspect-ratio:1;background:#171716;border:0;border-radius:9px}.pose-card .pair-img{position:absolute;top:0;left:0;width:200%;max-width:none;height:100%;object-fit:fill}.pose-card .pair-img.peak{left:-100%}.pose-card figcaption{font-size:12px;background:#111;color:#e9e6dc}.muscle-strip{background:#292926;color:#e9e6de;padding:12px 14px;margin:10px 0 23px}.muscle-strip span{font-size:12px;color:#b1aea4}.muscle-strip strong{font-size:14px;color:#eeeae0}.illustration-unavailable{color:#aaa69c;font-size:14px;padding:12px 0 0}
.mobile-settings{display:none}
@media(max-width:1050px){.plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.shell main{padding:24px 20px 110px}.mobile-brand{display:block;margin-bottom:7px;font-size:14px}.greeting{font-size:14px;color:#bbb8ae}.mobile-nav{background:#171716;border-color:#383733;gap:8px;padding:9px 15px calc(8px + env(safe-area-inset-bottom))}.mobile-nav button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:42px;flex:1;border-radius:8px;color:#aaa79e;font-size:13px}.mobile-nav button.active{background:#343430;color:#f7f5ee}.header-settings{font-size:13px}.plans{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.shell main{padding:22px 15px 104px}.topbar{margin-bottom:28px}.page-heading h1{font-size:34px}.panel,.calendar-panel{padding:20px}.calendar-grid{gap:5px}.cal-day{min-height:53px;font-size:14px}.plans{grid-template-columns:1fr;gap:12px}.plan-card.compact-plan{min-height:0;padding:20px}.plan-card h3{font-size:24px;margin:17px 0 15px}.compact-plan .plan-visuals{max-width:100%;grid-template-columns:repeat(4,minmax(0,1fr))}.compact-plan .plan-thumb{max-height:72px;width:100%;object-fit:contain}.calendar-key{font-size:12px}.editable-row{grid-template-columns:29px 58px minmax(0,1fr);gap:9px}.editable-row .drag-handle{width:29px;min-width:29px}.editable-row .exercise-controls{grid-column:3}.exercise-row .mini-image{width:58px;height:58px}.exercise-name{font-size:15px}.exercise-sub{font-size:13px}.session-item{padding:16px}.set-row input[type=text]{font-size:16px}.set-heading{font-size:10px}.warmup-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.modal-inner{padding:20px}.modal-top h2{font-size:23px}.pose-card figcaption{font-size:11px}.history-delete{font-size:12px}}
/* Thumbnails are independent grid items; legacy mobile card buttons used row 2/column 2. */
.compact-plan .plan-visuals > .image-button{grid-column:auto!important;grid-row:auto!important;justify-self:stretch;align-self:stretch}
@media(max-width:520px){.set-heading{font-size:12px;letter-spacing:-.3px}}
.plan-thumb.empty-thumb,.mini-image.empty-thumb{background:#292927;color:#b5b1a6}
.compact-plan .plan-thumb.classic-art,.next-visuals .plan-thumb.classic-art{background:#222220}
.plan-card.compact-plan .plan-visuals{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;min-width:0}
.plan-card.compact-plan .plan-visuals>.image-button{min-width:0;width:100%;max-width:100%;grid-column:auto!important;grid-row:auto!important}
.timer .button.ss-button{width:auto;min-width:0;flex:1 1 0}
/* Large gym equipment adds atmosphere without changing the flat controls. */
body{isolation:isolate}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:url("assets/gym-background.jpg") right center/cover no-repeat;opacity:.23}
.next-panel,.workout-head{position:relative;isolation:isolate;overflow:hidden}
.next-panel::before,.workout-head::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("assets/gym-background.jpg") right center/cover no-repeat;opacity:.38}
@media(max-width:520px){body::before{background-position:75% center;opacity:.19}}
.modal-top>div{min-width:0}.modal-top h2{overflow-wrap:anywhere}.modal-close{flex-shrink:0}
@media(max-width:520px){.modal-top{gap:8px}}
@media(max-width:360px){.modal{width:calc(100% - 16px)}.modal-inner{padding:16px}.modal-top{gap:6px}}
