:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;color:#f6f7f5;background:#101111;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg:#101111;--panel:#1a1c1b;--panel2:#202321;--edge:#333735;--muted:#9b9f99;--lime:#d8fa77;--white:#f6f7f5;--red:#ff9d95;--radius:19px}
*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--lime);outline-offset:2px}a{color:inherit}::selection{background:#a8d04a;color:#101111}
.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--edge);padding:31px 19px;display:flex;flex-direction:column}.brand{font-size:29px;font-weight:900;letter-spacing:-2.2px;margin:2px 14px 38px}.brand em{font-style:normal;color:var(--lime)}.nav{display:grid;gap:7px}.nav button{width:100%;display:flex;align-items:center;gap:13px;border:0;border-radius:12px;padding:13px 14px;color:#b0b3ad;background:transparent;font-size:14px;font-weight:600;text-align:left}.nav button:hover,.nav button.active{background:#252a23;color:var(--white)}.nav button.active .navico{color:var(--lime)}.navico{width:21px;text-align:center;font-size:19px}.sidebar-bottom{margin-top:auto;padding:16px 10px;border-top:1px solid var(--edge)}.side-caption{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:1.3px}.sidebar-bottom b{display:block;font-size:13px;margin-top:8px}.connection{width:7px;height:7px;border-radius:50%;background:var(--lime);display:inline-block;margin-right:6px}
.main{width:min(1160px,100%);padding:34px 42px 70px;margin:0 auto}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:30px}.overline{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--lime);font-weight:700}.page-title{font-size:clamp(29px,3.5vw,43px);letter-spacing:-1.65px;font-weight:760;line-height:1.08;margin:10px 0}.sub{font-size:14px;color:var(--muted);line-height:1.55}.topright{display:flex;gap:10px;align-items:center;flex-shrink:0}.datepill{border:1px solid var(--edge);border-radius:13px;padding:11px 13px;color:#d9ded4;font-size:12px}.iconbtn{background:var(--panel);border:1px solid var(--edge);color:var(--white);border-radius:12px;padding:10px 14px;font-size:17px}.btn{border:0;background:var(--lime);color:#11140c;padding:12px 18px;border-radius:12px;font-size:13px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:43px}.btn:hover{filter:brightness(.94)}.btn.ghost{border:1px solid var(--edge);background:#252826;color:var(--white)}.btn.outline{border:1px solid #576247;background:transparent;color:var(--lime)}.btn.small{min-height:32px;padding:8px 11px;border-radius:9px;font-size:12px}.btn.red{color:var(--red);background:#382321}.button-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grid2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,1fr);gap:17px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.panel{background:var(--panel);border:1px solid #2c302c;border-radius:var(--radius);padding:21px}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.panel-title h2{font-size:16px;letter-spacing:-.3px;margin:0}.panel-title span{font-size:12px;color:var(--muted)}.hero{border:1px solid #3b4930;background:radial-gradient(circle at 97% 0%,#35492b 0%,#202b20 27%,#1a1f1b 57%,#1a1c1b 100%);border-radius:21px;padding:29px;margin-bottom:17px;position:relative;overflow:hidden;min-height:195px}.hero:after{content:'F';font-size:228px;line-height:1;position:absolute;right:30px;top:-43px;color:#a5d56e0a;font-weight:900;pointer-events:none}.hero h2{font-size:clamp(25px,3vw,38px);line-height:1.13;letter-spacing:-1.35px;max-width:560px;margin:13px 0 11px}.hero p{max-width:570px;color:#b9c2b1;font-size:13px;line-height:1.6}.hero .button-row{position:relative;z-index:1;margin-top:18px}.metric{background:var(--panel);border:1px solid #303330;border-radius:17px;padding:19px}.metric-label{font-size:12px;color:var(--muted)}.metric-value{font-size:29px;letter-spacing:-1px;font-weight:730;margin:10px 0 3px}.metric-note{font-size:11px;color:var(--muted)}.lime{color:var(--lime)}.subheading{font-size:18px;letter-spacing:-.5px;margin:27px 0 14px;font-weight:700}
.weekstrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.daytile{border:1px solid #393c39;background:#242624;color:#c6cbc3;text-align:center;border-radius:13px;padding:10px 2px;min-height:82px}.daytile:hover{border-color:#83945e}.daytile.selected{background:#2a3723;border-color:#a5ce61;color:var(--white)}.daytile small{display:block;font-size:11px;color:#9da397;margin-bottom:5px}.daytile strong{font-size:20px;font-weight:700}.daytile .dot{width:5px;height:5px;border-radius:50%;background:var(--lime);margin:6px auto 0}.daytile .dot.blank{background:transparent}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:100px;border:1px solid #434a40;background:#282e26;padding:5px 9px;font-size:10px;color:#b6d59a}.tag.grey{border-color:#3c403c;background:#262926;color:#aeb1ac}.tag.lime{color:#17200a;background:var(--lime);border-color:var(--lime);font-weight:750}.tag.orange{background:#413328;border-color:#6b5141;color:#f0c3a0}
.plan-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:13px;border-top:1px solid #343835;padding:12px 0}.plan-row:first-child{border-top:0}.thumb{height:52px;width:52px;flex-shrink:0;object-fit:cover;object-position:center;background:#2e3330;border-radius:10px}.img-fallback{background:linear-gradient(135deg,#2e3a2b,#202522);display:flex;align-items:center;justify-content:center;color:#9bbb74;font-size:22px}.plan-title{font-size:13px;font-weight:650;line-height:1.4}.plan-meta{font-size:11px;color:var(--muted);margin-top:4px}.rightmeta{text-align:right;color:var(--muted);font-size:12px}.empty{text-align:center;padding:35px;color:var(--muted);font-size:13px}.empty strong{color:var(--white);display:block;margin-bottom:8px;font-size:16px}.tip{padding:13px 14px;border-radius:12px;background:#262b25;border:1px solid #384536;font-size:12px;color:#c5d0bc;line-height:1.65}.tip strong{color:var(--lime)}
.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:12px 0 15px}.calendar-head h2{font-size:22px;letter-spacing:-.7px;margin:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{text-align:center;font-size:11px;color:#93988f;text-transform:uppercase;padding:10px}.calday{height:90px;min-width:0;position:relative;background:#222522;border:1px solid #353a35;border-radius:12px;text-align:left;color:#f3f5ee;padding:10px;display:flex;flex-direction:column;gap:5px}.calday.other{opacity:.32}.calday.selected{border-color:var(--lime);background:#2e3927}.calday.today .calnum{color:var(--lime)}.calnum{font-weight:750;font-size:12px}.calbadge{font-size:10px;color:#b8d5a8;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.caldone{margin-top:auto;color:var(--lime);font-size:10px}.calday:hover{border-color:#7c925d}.calendar-side .select{width:100%;margin:12px 0}.select,.search,input[type=number],input[type=text],textarea{background:#111412;border:1px solid #414641;border-radius:10px;color:#f4f6f2;padding:11px;min-width:0;max-width:100%}.select{min-height:44px}input::placeholder,textarea::placeholder{color:#777f75}textarea{resize:vertical}.choice-grid{display:flex;flex-wrap:wrap;gap:8px}.choice{background:#242924;border:1px solid #414841;border-radius:10px;padding:10px 12px;color:#d1d9cd;font-size:12px}.choice.active{background:#39472c;border-color:var(--lime);color:var(--lime)}
.session-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 18px}.session-headleft{display:flex;align-items:center;gap:14px}.session-count{height:46px;width:46px;border:1px solid #5c704d;background:#283522;border-radius:12px;color:var(--lime);display:grid;place-items:center;font-size:17px;font-weight:700}.session-headleft h3{margin:0 0 5px;font-size:17px}.session-headleft p{margin:0;font-size:12px;color:var(--muted)}.exercise-card{border:1px solid #343934;background:var(--panel);border-radius:17px;margin-bottom:12px;overflow:hidden}.exercise-top{display:flex;align-items:center;gap:13px;padding:14px 17px;border-bottom:1px solid #303630}.exercise-top .thumb{height:65px;width:71px}.exercise-name{font-size:15px;font-weight:720;margin:0 0 6px}.exercise-sub{font-size:11px;color:var(--muted)}.exercise-controls{margin-left:auto;display:flex;gap:6px}.plain-icon{color:#a5b29b;background:transparent;border:0;font-size:18px;padding:7px 9px}.plain-icon:hover{color:var(--white)}.exercise-body{padding:14px 17px}.set-table{display:grid;grid-template-columns:47px minmax(0,1fr) minmax(0,1fr) 46px 30px;gap:8px;align-items:center;margin-bottom:7px}.set-table.labels{font-size:10px;color:#858c82;text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.set-no{font-size:12px;color:#a0aa9a;font-weight:650}.set-no.warm{color:#dbbd8b}.set-table input{width:100%;min-height:38px;padding:8px 10px}.donebtn{height:37px;border:1px solid #444c40;border-radius:9px;background:#252c25;color:#84947a}.donebtn.isdone{background:var(--lime);color:#1a2110;border-color:var(--lime);font-weight:900}.set-remove{border:0;background:transparent;color:#868a85;font-size:19px;padding:4px}.exercise-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}.assist-note{font-size:11px;color:#bccbb3}.assist-note strong{color:var(--lime)}.exercise-bar{display:flex;gap:8px;flex-wrap:wrap}
.catalog-tools{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}.catalog-tools .search{flex:1;min-width:195px}.catalog-tools .select{min-width:155px}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.library-item{border:1px solid #383e38;background:#202420;border-radius:14px;overflow:hidden;text-align:left;color:#e7ebe4;padding:0;min-width:0}.library-item:hover{border-color:#9dbf75;transform:translateY(-1px)}.library-img{height:132px;width:100%;object-fit:contain;background:#262d28}.library-item .libbody{padding:13px}.libname{font-size:12px;font-weight:700;line-height:1.4;min-height:34px}.libmeta{font-size:10px;color:#939b8f;margin-top:7px}.resultcount{color:var(--muted);font-size:11px;margin-bottom:10px}
.modaloverlay{position:fixed;inset:0;background:#030503cf;z-index:30;display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(970px,100%);max-height:min(90vh,960px);background:#191d19;border:1px solid #4b5845;border-radius:22px;box-shadow:0 30px 90px #0009;display:flex;flex-direction:column;overflow:hidden}.modal-head{padding:21px 24px;border-bottom:1px solid #384039;display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h3{margin:0;font-size:19px;letter-spacing:-.5px}.modal-body{padding:20px 24px;overflow:auto;flex:1}.modal-foot{border-top:1px solid #353c35;padding:15px 24px;color:var(--muted);font-size:11px}.detail-layout{display:grid;grid-template-columns:minmax(200px,1fr) 1.1fr;gap:20px}.detail-layout img{width:100%;border-radius:15px;background:#273027;max-height:310px;object-fit:contain}.detail-layout h3{margin:4px 0 9px;font-size:21px}.detail-layout li{margin-bottom:8px;font-size:12px;line-height:1.5;color:#c5c9c2}.history-pills{display:flex;gap:7px;flex-wrap:wrap}.history-pill{padding:9px 11px;font-size:12px;border:1px solid #495145;border-radius:10px;background:#252b24;color:#d7dcd3}.history-pill.active{background:#d8fa77;color:#131a0c;border-color:var(--lime)}.chart-wrap{margin-top:15px;min-height:205px}.progress-chart{width:100%;height:auto;display:block;overflow:visible}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.statmini{background:#242824;border:1px solid #383e38;border-radius:13px;padding:16px}.statmini strong{display:block;font-size:24px;letter-spacing:-1px;margin-top:8px}.statmini span{font-size:11px;color:var(--muted)}
.chat-panel{background:#1a1d1a;border:1px solid #30382f;border-radius:20px;display:flex;flex-direction:column;min-height:530px;max-height:calc(100vh - 205px)}.messages{padding:20px;flex:1;overflow:auto;display:flex;flex-direction:column;gap:15px}.msg{max-width:88%;padding:13px 15px;border-radius:14px;font-size:13px;line-height:1.65;white-space:pre-wrap;word-break:break-word}.msg.assistant{align-self:flex-start;background:#272e25;border:1px solid #3b4736}.msg.user{align-self:flex-end;background:#3b4c2c;border:1px solid #587148}.chat-compose{display:flex;gap:9px;padding:16px;border-top:1px solid #30382f}.chat-compose textarea{flex:1;min-height:48px;max-height:160px}.prompt-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 20px 18px}.hint{font-size:11px;color:#929b90;line-height:1.5}
.settings-card{max-width:650px}.divider{height:1px;background:#343a34;margin:18px 0}.notice{padding:13px 15px;border:1px solid #6c5543;border-radius:11px;background:#30251d;color:#e3c0aa;font-size:12px;line-height:1.6}.footer{font-size:11px;color:#697068;margin-top:30px}.mobile-nav{display:none}#toast{position:fixed;bottom:20px;right:20px;z-index:100;background:var(--lime);color:#16200d;border-radius:12px;padding:11px 15px;font-size:12px;font-weight:700;box-shadow:0 10px 30px #0005;opacity:0;transition:opacity .2s;pointer-events:none}#toast.on{opacity:1}
@media(max-width:1080px){.main{padding:28px 24px 80px}.sidebar{width:205px}.shell{grid-template-columns:205px minmax(0,1fr)}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2{grid-template-columns:minmax(0,1fr)}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:750px){.shell{display:block}.sidebar{display:none}.main{padding:24px 15px 105px}.topbar{margin-bottom:24px}.topright{gap:5px}.datepill{display:none}.page-title{font-size:32px}.panel{padding:16px}.hero{padding:22px;min-height:173px}.hero h2{font-size:28px}.metric{padding:14px}.metric-value{font-size:25px}.grid3{gap:7px}.grid2{gap:12px}.daytile{min-height:70px;padding:7px 2px}.daytile strong{font-size:18px}.calday{height:67px;padding:6px}.calbadge{font-size:8px}.calendar-grid{gap:4px}.weekday{padding:6px 0}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.library-img{height:115px}.libname{font-size:11px}.libmeta{font-size:10px}.modaloverlay{padding:0;align-items:flex-end}.modal{width:100%;max-height:92vh;border-radius:21px 21px 0 0}.modal-body{padding:15px}.modal-head{padding:17px}.detail-layout{grid-template-columns:1fr}.detail-layout img{max-height:200px}.catalog-tools .select{flex:1;min-width:120px}.exercise-top{padding:11px}.exercise-top .thumb{height:56px;width:56px}.exercise-name{font-size:13px}.exercise-body{padding:12px}.set-table{grid-template-columns:38px minmax(0,1fr) minmax(0,1fr) 39px 25px;gap:5px}.set-table input{padding:8px 6px;font-size:13px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:#141714f5;backdrop-filter:blur(15px);border-top:1px solid #393f38;padding:8px 5px calc(8px + env(safe-area-inset-bottom));z-index:20}.mobile-nav button{border:0;background:transparent;color:#a4aa9e;font-size:10px;display:flex;flex-direction:column;gap:3px;align-items:center;padding:5px 0}.mobile-nav button span{font-size:21px}.mobile-nav button.active{color:var(--lime)}.chat-panel{min-height:62vh;max-height:calc(100vh - 220px)}.chat-compose{padding:9px}.chat-compose .btn{padding:10px}.session-header{align-items:flex-start;flex-direction:column}.session-header>.button-row{width:100%}.session-header .button-row .btn{flex:1}#toast{bottom:85px;left:15px;right:15px;text-align:center}.grid4{grid-template-columns:repeat(2,1fr)}}
/* Server-sync status: always visible, including on phones. */
.sync-indicator{display:flex;gap:5px;align-items:center;font-size:12px;color:#bdcbb4;margin-top:12px}
.sync-indicator .connection{flex-shrink:0;margin-right:3px}
.sync-indicator[data-status="offline"] .connection,.sync-indicator[data-status="conflict"] .connection{background:#ffa68c}
.sync-indicator[data-status="connecting"] .connection,.sync-indicator[data-status="saving"] .connection,.sync-indicator[data-status="pending"] .connection{background:#efd187}
.sync-top{display:none;margin:0 0 18px}
.sync-notice{background:#252a20;border:1px solid #677151;border-radius:13px;padding:16px;margin-bottom:20px;font-size:13px;line-height:1.5}
.sync-notice.danger{background:#33251f;border-color:#9a6250}
.sync-notice p{font-size:12px;color:#bec5b6;margin:6px 0 12px}
.boot{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#afbbaa}
.boot .brand{margin:0;color:#fff}
@media(max-width:750px){.sync-top{display:block}.sync-indicator{margin-top:0}.sync-notice{margin-bottom:15px}}
/* Separate account authentication view. */
.auth-page{min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);background:#111412;color:#edf3e8}
.auth-card{width:min(460px,calc(100% - 44px));margin:auto;padding:55px 0}
.auth-mark{font-size:40px;font-weight:900;letter-spacing:-3px}.auth-mark>span:first-child{color:#c5f177}.auth-dot{color:#c5f177}
.auth-kicker{margin-top:5px;font-size:10px;font-weight:700;letter-spacing:3px;color:#9cab93}
.auth-card h1{font-size:36px;letter-spacing:-1.5px;line-height:1.1;margin:55px 0 13px}
.auth-desc{font-size:14px;color:#a3aca0;line-height:1.65;margin-bottom:30px}
.auth-switch{display:flex;border-radius:12px;padding:4px;background:#232925;margin-bottom:25px}
.auth-switch button{width:50%;padding:12px;border:0;color:#99a598;background:transparent;border-radius:9px;font-weight:650;font-size:13px;cursor:pointer}
.auth-switch button.on{background:#394436;color:#e8f7db}
.auth-form{display:grid;gap:16px}.auth-form label{display:grid;gap:8px;color:#cbd5c4;font-size:13px;font-weight:650}
.auth-form input{display:block;background:#1c211f;color:white;border:1px solid #394239;border-radius:11px;padding:15px 14px;font-size:16px;width:100%;outline:none}
.auth-form input:focus{border-color:#c3ee77;box-shadow:0 0 0 2px #c3ee7720}
.auth-error{min-height:18px;margin:0;color:#ffa88e;font-size:12px}
.auth-submit{padding:15px 18px;width:100%;display:flex;align-items:center;justify-content:space-between;font-size:15px}
.auth-submit:disabled{opacity:.5}.auth-foot{font-size:11px;line-height:1.65;color:#7f8d7a;margin-top:22px}
.auth-brand-side{position:relative;background:radial-gradient(ellipse at 30% 40%,#394d30 0,#263024 26%,#1b211c 65%,#151916 100%);display:flex;flex-direction:column;justify-content:center;padding:9%;font-size:clamp(36px,5.8vw,92px);font-weight:900;letter-spacing:-3px;line-height:.98}
.auth-brand-side span{color:#c5f177}.auth-brand-side p{font-size:12px;font-weight:700;letter-spacing:3px;color:#91a587;margin-top:40px}
.mini-username{font-size:12px;color:#d6e5ce;font-weight:700;margin-right:12px}
@media(max-width:750px){.auth-page{display:block;min-height:100svh}.auth-brand-side{display:none}.auth-card{width:min(430px,calc(100% - 45px));padding:10vh 0 30px}.auth-card h1{margin-top:58px;font-size:32px}}

/* v3.1: iPhone Pro Max / safe area / narrow layouts */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
.shell,.main,.panel,.exercise-card,.exercise-body,.calendar-side,.chat-panel{min-width:0;max-width:100%}
.main{overflow-wrap:anywhere}
.used-pill{color:#d8fa77;font-size:10px;font-weight:600}
@media(max-width:750px){
.main{width:100%;padding:14px 12px calc(105px + env(safe-area-inset-bottom));overflow-x:clip}
.page-title{font-size:clamp(25px,7vw,32px)}
.topbar,.session-header,.exercise-top,.exercise-foot,.button-row{max-width:100%;min-width:0}
.session-header .button-row{flex-wrap:wrap}
.exercise-card{overflow:hidden}
.exercise-top{gap:8px}
.exercise-controls{flex-shrink:0}
.set-table{width:100%;min-width:0;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 34px 22px;gap:4px}
.set-table>*{min-width:0}
.set-table input{width:100%;min-width:0;padding:7px 3px;font-size:16px}
.mobile-nav{padding-bottom:calc(7px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr))}
.mobile-nav button{min-width:0;font-size:9px;padding:5px 1px}
.calendar-grid{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}
.calday{min-width:0;overflow:hidden}
.calbadge,.caldone{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.catalog-tools .search{min-width:0;width:100%;flex-basis:100%}
.chat-panel{min-height:55dvh;max-height:calc(100dvh - 185px)}
.modal{max-height:calc(100dvh - env(safe-area-inset-top) - 12px)}
.modal-body{overscroll-behavior:contain}
}
@media(max-width:390px){.main{padding-left:9px;padding-right:9px}.panel{padding:11px}.set-table{grid-template-columns:25px minmax(0,1fr) minmax(0,1fr) 32px 20px;gap:3px}.library-grid{gap:6px}}


/* v3.2: mobile calendar and individual exercise drill-down */
html,body,#app{width:100%;min-width:0;overflow-x:clip}
.plan-row-click{width:100%;text-align:left;border:0;border-bottom:1px solid #343a34;background:transparent;color:inherit;cursor:pointer;font:inherit}
.plan-row-click:active{background:#293126}
.plan-row-click .rightmeta{white-space:nowrap}
.exercise-history-row{border-top:1px solid #343b34;padding:13px 0}
.history-date{color:#d8fa77;background:transparent;border:0;padding:4px 0 10px;font-weight:700}
.history-sets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.history-set{padding:7px 9px;background:#252a25;border:1px solid #3b4439;border-radius:9px;font-size:12px}
.history-set.done{border-color:#6c8748}
.history-ex-links{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.history-ex-link{border:1px solid #45513c;border-radius:8px;padding:5px 7px;color:#d5e9b0;background:#283125;font-size:11px;text-align:left}
@media(max-width:750px){
 .main{max-width:100vw;overflow-x:clip}
 .weekstrip{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:4px!important;min-width:0!important}
 .daytile{width:100%!important;min-width:0!important;max-width:100%!important;padding:8px 0!important}
 .daytile small{font-size:10px!important;white-space:nowrap}
 .daytile strong{font-size:17px!important}
 .plan-row{min-width:0;gap:8px}
 .plan-row>div:nth-child(2){min-width:0;flex:1}
 .plan-title,.plan-meta{overflow-wrap:anywhere}
 .plan-row .rightmeta{font-size:11px;flex-shrink:0}
 .panel-title{flex-wrap:wrap;gap:8px}
 .panel-title h2{min-width:0}
 .mobile-nav{bottom:0}
}
/* FORM 3.3 — warm, editorial, touch-first interface. No external fonts. */
:root{
 color:#25332b;background:#f2f3ee;
 --bg:#f2f3ee;--panel:#ffffff;--panel2:#f7f8f4;--edge:#dce3d9;
 --muted:#6b786e;--lime:#315a43;--white:#24342b;--red:#a44545;--radius:17px;
 font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
}
html,body{background:var(--bg);color:var(--white)}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #92bca0;outline-offset:2px}
::selection{background:#bad7b6;color:#163d25}
.shell{background:var(--bg)}
.sidebar{background:#f9faf6;border-color:#dbe2db}
.brand{color:#203e2e}.brand em{color:#6fa080}
.nav button{color:#657368}.nav button.active,.nav button:hover{background:#e6eee4;color:#234936}
.sidebar-bottom{border-color:#dce2d9}.sidebar-bottom b{color:#203a2b}
.connection{background:#649b74}
.main{width:min(1140px,100%)}
.overline{color:#597d63;font-size:10px;letter-spacing:1.5px}
.page-title{color:#1f3026;letter-spacing:-1.1px}
.sub,.hint{color:#728075}
.datepill{background:white;border-color:#dce3d9;color:#435749}
.iconbtn{background:#fff;border:1px solid #dce3d9;color:#365142;box-shadow:0 2px 8px #16301e09}
.btn{background:#315a43;color:white;border-radius:11px;box-shadow:none;font-size:13px}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:#f4f6f1;color:#3b5946;border:1px solid #dbe4d9}
.btn.outline{border:1px solid #93aa95;background:#f7fbf6;color:#315a43}
.btn.red{background:#fff4f2;color:#a44545;border:1px solid #f0d2cd}
.panel,.metric,.exercise-card,.statmini{background:#fff;border:1px solid #dee4db;box-shadow:0 8px 28px rgba(20,40,25,.035)}
.panel-title h2{color:#2a392f}.panel-title span{color:#718075}
.hero{background:linear-gradient(135deg,#e4eee0,#f8faf6);border-color:#d3e0cf;color:#273a2d}
.hero h2{color:#253d2f}.hero p{color:#5e7864}
.tag{background:#eff4ec;border-color:#d6e2d1;color:#587b61}
.tag.grey{background:#f3f5f1;color:#6f7971;border-color:#e1e5e0}
.tag.lime{background:#e2efdc;color:#315a43;border-color:#bad3b9}
.tag.orange{background:#fff0df;color:#a87340;border-color:#f0ddc7}
.lime{color:#3d7650}
.metric-value{color:#26382c}.metric-note,.metric-label{color:#6d7b6f}
.weekstrip{gap:5px}
.daytile{background:#f4f6f3;color:#4b5a4f;border:1px solid #e1e6df;border-radius:12px;min-width:0}
.daytile:hover{border-color:#8caa90}
.daytile.selected{background:#315a43;border-color:#315a43;color:white}
.daytile.selected small{color:#e3eddf}
.daytile small{color:#68786c}
.daytile .dot{background:#6aa27c}
.daytile.selected .dot{background:#eaf9e6}
.plan-row{border-color:#e8ece5}
.plan-row-click{border:0;border-top:1px solid #e6eae4;background:transparent;color:#24352b}
.plan-row-click:hover,.plan-row-click:focus-visible{background:#f7faf4}
.plan-row-click:active{background:#eaf3e8}
.thumb,.img-fallback{background:#edf0e9}
.plan-title{color:#27382b;font-weight:700}
.plan-meta,.rightmeta{color:#697b6e}
.actual-pending{color:#9aa49b;font-size:12px;font-weight:500}
.tip{background:#f2f7ef;border-color:#dbe8d6;color:#47634e}
.tip strong{color:#315a43}
.calday{background:#f8faf7;border-color:#e1e7de;color:#395041}
.calday.selected{background:#e3efe1;border-color:#709b76}
.calday.today .calnum,.caldone{color:#3a7950}
.calbadge{color:#42764f}.weekday{color:#8e9a90}
.select,.search,input[type=number],input[type=text],textarea{background:#fbfcf9;border:1px solid #d5ded3;color:#26392b}
input::placeholder,textarea::placeholder{color:#a0ada0}
.choice{background:#f4f7f2;color:#556a59;border:1px solid #dee7db}
.choice.active{background:#e3f1df;color:#315a43;border-color:#789e79}
.session-count{background:#e1efdf;border-color:#c6ddc5;color:#315a43}
.session-headleft h3,.session-headleft p{color:#2e4434}
.exercise-top{border-color:#e4eae2}
.exercise-sub,.set-no{color:#748178}
.plain-icon{color:#6e8171}.plain-icon:hover{color:#315a43}
.set-table.labels{color:#869389}
.set-table input{background:#f9fbf8;border-color:#d9e1d5;color:#253a2a}
.donebtn{background:#f4f8f1;border-color:#d8e2d5;color:#7f9b80}
.donebtn.isdone{background:#315a43;border-color:#315a43;color:#fff}
.set-remove{color:#9da8a0}
.assist-note{color:#708476}
.suggestion{border:1px solid #d5e6d4;border-radius:10px;padding:10px;background:#f3f8f1}
.suggestion strong{color:#315a43}
.exercise-history-row{border-color:#e6ece4}.history-date{color:#3a7250}
.history-set{background:#f3f7f1;border:1px solid #d6e2d4;color:#334736}
.history-set.done{border-color:#b9d3b7}
.history-ex-link{background:#f0f6ed;border:1px solid #d2e3ce;color:#375f42}
.modaloverlay{background:#101a1473}
.modal{background:#f8faf6;border-color:#dce6d9;box-shadow:0 20px 70px #102a173d}
.modal-head,.modal-foot{background:#fff;border-color:#e4ece2}
.modal-head h3{color:#2c4533}
.detail-layout li{color:#59695d}
.library-item{background:#fff;border-color:#e2e8e0}
.library-item:hover{border-color:#97b99c}
.libname{color:#2b4131}.libmeta{color:#7b887c}
.resultcount{color:#7a887d}
.statmini{background:#fff;border-color:#e0e7de}
.chat-panel{background:#fff;border-color:#e1e9df}
.msg.assistant{background:#f2f6f0;border-color:#dce7d8;color:#263e2b}
.msg.user{background:#e1efde;border-color:#bad6ba;color:#213b27}
.chat-compose{border-color:#e2e7df}
.notice{background:#fff8f4;border-color:#edd8d0;color:#815e52}
.divider{background:#e3eae1}
.sync-indicator{color:#64816b}.sync-notice{background:#eaf2e6;border-color:#c9ddc6;color:#31543b}.sync-notice p{color:#5e7562}
.sync-notice.danger{background:#fff3ed;border-color:#e2b8a8;color:#925c4b}
.boot{color:#526e56}.boot .brand{color:#26442f}
.auth-page{background:#f4f7f2;color:#253a2a}
.auth-card h1{color:#26392c}.auth-mark{color:#2f4936}.auth-mark>span:first-child,.auth-dot{color:#538162}.auth-desc,.auth-foot{color:#758678}
.auth-kicker{color:#6f8b74}.auth-switch{background:#e7ede3}.auth-switch button{color:#67806c}.auth-switch button.on{background:#fff;color:#254a32}
.auth-form label{color:#4f6553}.auth-form input{background:#fff;color:#243a29;border-color:#cadccc}.auth-form input:focus{border-color:#668c6a}
.auth-brand-side{background:linear-gradient(145deg,#c2d8c3,#e6eee0);color:#20422a}.auth-brand-side span{color:#557d5d}.auth-brand-side p{color:#5d7960}
.auth-error{color:#b8504c}
.footer{color:#8c968c}
.mini-username{color:#4c6a55}
.mobile-nav{background:rgba(251,252,249,.96)!important;border-color:#dae3d7!important;box-shadow:0 -8px 28px #172b1910}
.mobile-nav button{color:#78887b!important}
.mobile-nav button.active{color:#2b6e45!important}
#toast{background:#315a43;color:#fff}
/* Home: show useful controls first; secondary analytics are deliberately collapsed. */
.today-heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin:0 0 18px}
.today-heading h1{font-size:clamp(28px,5vw,43px);letter-spacing:-1.6px;line-height:1.03;margin:8px 0 5px;color:#203528}
.today-heading p{color:#738275;font-size:13px;margin:0}
.week-panel{padding:17px 20px;margin-bottom:14px}
.week-panel .panel-title{margin-bottom:12px}
.text-link{background:none;color:#396a4b;border:0;font-size:12px;font-weight:700;padding:4px}
.workout-overview{padding:18px 20px}
.workout-overview-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.workout-overview-head h2{font-size:clamp(17px,3vw,23px);letter-spacing:-.5px;margin:5px 0}
.panel-hint{font-size:11px;color:#89978a;padding-bottom:9px}
.actual-result{display:flex;flex-direction:column;align-items:flex-end;min-width:97px;max-width:130px;line-height:1.3;gap:2px}
.actual-result b{font-size:12px;color:#2d6542;font-weight:750;white-space:normal}
.actual-result small{font-size:10px;color:#718172;line-height:1.25}
.row-chevron{color:#8dac93;font-size:18px}
.plan-text{min-width:0}
.empty-state{padding:18px 12px 10px;color:#566d5d}
.empty-graphic{border:1px solid #d6e7d3;background:#eaf3e6;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;font-size:21px;color:#477653}
.empty-state h3{margin:13px 0 4px;color:#2f4835;font-size:18px}
.empty-state p{margin:0 0 17px;max-width:390px;line-height:1.5;font-size:13px}
.extra-details{border:1px solid #dce4d9;border-radius:16px;background:#fff;margin-top:13px;overflow:hidden}
.extra-details summary{cursor:pointer;list-style:none;padding:15px 20px;color:#45624e;font-size:13px;font-weight:650;display:flex;justify-content:space-between}
.extra-details summary::-webkit-details-marker{display:none}
.extra-inner{padding:0 18px 16px}
.session-sort-hint{margin:0 0 10px;font-size:12px;color:#6a816f}
.exercise-top .thumb{height:62px;width:64px}
.exercise-heading{min-width:0;flex:1}
.exercise-title-button{border:0;background:transparent;display:block;color:#243a2a;font-weight:760;font-size:15px;padding:0 0 4px;text-align:left;line-height:1.22}
.exercise-title-button span{color:#85a78c;font-size:12px}
.exercise-inline-result{color:#4c7459;font-size:11px;margin-top:6px;line-height:1.3}
.exercise-inline-result b{font-weight:700}
.exercise-controls{margin-left:auto;align-self:flex-start;display:flex;gap:3px}
.reorder-pair{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:#f3f7f1;border:1px solid #dce7d8;border-radius:10px;overflow:hidden}
.move-btn{font-size:16px;padding:5px 8px;color:#477456}
.move-btn:disabled{opacity:.2}
.delete-exercise{color:#a1a9a0}
.set-options{display:flex;justify-content:space-between;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:15px}
.mode-switch{background:#f3f6f1;display:inline-flex;border:1px solid #dce5d9;padding:3px;border-radius:12px;margin-top:6px;gap:2px}
.mode-option{background:transparent;color:#647869;padding:7px 11px;border:0;border-radius:9px;font-size:12px;font-weight:650}
.mode-option.on{background:white;box-shadow:0 2px 5px #192e1b12;color:#2b6641}
.goal-field{font-size:11px;color:#78897a;display:flex;flex-direction:column;gap:5px;max-width:130px}
.goal-field input{font-size:13px;padding:8px 10px}
.no-load-pill{display:grid;place-items:center;min-height:39px;border-radius:9px;background:#f2f7f0;border:1px solid #dfe9db;color:#577860;font-size:12px;font-weight:600}
.set-table.labels{margin-bottom:6px}
.set-table{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 44px 27px}
.set-table input{font-size:16px}
.focus-summary{margin-bottom:10px;background:#e9f2e5;padding:14px 16px;border-radius:13px;color:#4c7057;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:12px}
.focus-summary strong{font-size:14px;color:#24563b;text-align:right}
.focus-summary strong small{display:block;font-size:10px}
.session-modal .single-exercise{box-shadow:none;border:1px solid #e1e9de;margin-bottom:0}
.session-modal .exercise-top{padding:12px}
.session-modal .exercise-title-button{pointer-events:none}
.focus-navigation{display:flex;justify-content:space-between;gap:10px;margin-top:15px}
.session-modal .modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}
.session-modal .modal-foot span{font-size:11px;color:#829083}
.progress-layout{display:grid;grid-template-columns:minmax(235px,.8fr) minmax(0,1.5fr);gap:14px;align-items:start}
.progress-index{padding:10px;max-height:75vh;overflow-y:auto}
.progress-index .panel-title{margin:10px 8px 16px}
.progress-list-item{display:grid;grid-template-columns:45px minmax(0,1fr) 12px;gap:10px;align-items:center;width:100%;border:1px solid transparent;border-radius:12px;background:transparent;padding:9px;text-align:left;color:#2d4835}
.progress-list-item.active{background:#edf6ea;border-color:#d8e8d2}
.progress-list-item .thumb{width:45px;height:45px}
.progress-list-item b{font-size:12px;display:block;line-height:1.3}
.progress-list-item small{font-size:10px;color:#7a8a7b;display:block;margin-top:3px}
.progress-list-item small b{display:inline;color:#4f765c}
.progress-detail{min-width:0}
.progress-topline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.progress-topline>div{padding:9px;background:#f5f8f3;border-radius:10px}
.progress-topline small{font-size:10px;color:#728477;display:block}
.progress-topline b{display:block;font-size:16px;margin-top:7px;overflow-wrap:anywhere}
/* Always fit the viewport. No horizontal swipe to reach the seventh day. */
html,body,#app{width:100%;min-width:0;overflow-x:clip}
.plan-row{grid-template-columns:50px minmax(0,1fr) auto;min-width:0}
.weekstrip{grid-template-columns:repeat(7,minmax(0,1fr))!important;min-width:0}
.daytile{min-width:0!important;max-width:100%!important}
@media(max-width:900px){.progress-layout{grid-template-columns:1fr}.progress-index{max-height:none}}
@media(max-width:750px){
 .main{padding:14px 12px calc(92px + env(safe-area-inset-bottom));width:100%;overflow-x:clip}
 .panel{padding:15px}
 .week-panel{padding:14px 12px}
 .weekstrip{gap:4px}
 .daytile{min-height:66px;padding:8px 0!important}
 .daytile small{font-size:10px;white-space:nowrap}
 .daytile strong{font-size:17px}
 .workout-overview{padding:13px 12px}
 .workout-overview-head h2{font-size:17px}
 .workout-overview-head .btn{font-size:11px;padding:8px 10px}
 .plan-row{grid-template-columns:43px minmax(0,1fr) minmax(82px,auto);gap:8px;padding:10px 0}
 .plan-row .thumb{width:43px;height:43px}
 .plan-title{font-size:12px;line-height:1.25}
 .plan-meta{font-size:10px;line-height:1.3}
 .actual-result{min-width:82px;max-width:120px}
 .actual-result b{font-size:11px}
 .actual-result small{font-size:10px}
 .mobile-nav{padding:5px 3px calc(5px + env(safe-area-inset-bottom))!important}
 .mobile-nav button{gap:4px;font-size:10px;min-width:0;color:#77877c}
 .mobile-nav button span{font-size:19px}
 .session-header .button-row{width:100%}
 .exercise-top{gap:8px}
 .exercise-top .thumb{height:45px;width:45px}
 .exercise-title-button{font-size:12px}
 .exercise-sub{font-size:10px}
 .exercise-controls{gap:0}
 .move-btn{padding:5px 6px}
 .info-btn,.delete-exercise{font-size:14px;padding:5px 6px}
 .exercise-body{padding:12px}
 .set-options{gap:8px}
 .mode-option{padding:7px 8px;font-size:11px}
 .set-table{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 35px 22px;gap:4px}
 .set-table input{font-size:16px;padding:7px 4px}
 .no-load-pill{font-size:10px}
 .session-modal-overlay{align-items:flex-end}
 .session-modal{width:100%;max-height:calc(100dvh - env(safe-area-inset-top) - 8px);border-radius:24px 24px 0 0;display:flex;flex-direction:column}
 .session-modal .modal-head{padding:14px 16px}
 .session-modal .modal-head h3{font-size:17px}
 .session-modal .modal-body{padding:12px;min-height:0;overflow-y:auto}
 .session-modal .modal-foot{padding:10px 13px calc(10px + env(safe-area-inset-bottom))}
 .progress-index{max-height:330px;overflow:auto}
 .progress-topline{gap:6px}
 .progress-topline b{font-size:13px}
 .session-sort-hint{font-size:11px}
 .grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
 .metric{padding:10px}.metric-value{font-size:20px}
}
@media(max-width:375px){
 .daytile strong{font-size:15px}
 .daytile small{font-size:9px}
 .plan-row{grid-template-columns:36px minmax(0,1fr) 82px;gap:6px}
 .plan-row .thumb{width:36px;height:36px}
 .plan-title{font-size:11px}
 .actual-result{max-width:82px}
 .workout-overview-head{align-items:flex-start}
 .mode-option{padding:6px}
}
/* Compact session overview / tap-to-edit diary */
.session-list{padding:7px 15px;margin-bottom:14px}
.session-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-bottom:1px solid #e6ebe3;gap:5px;min-width:0}
.session-item:last-child{border-bottom:0}
.session-open{border:0;background:transparent;padding:10px 0;display:flex;gap:10px;text-align:left;align-items:center;min-width:0;color:#29402e}
.session-open .thumb{width:48px;height:48px;flex-shrink:0}
.session-item-text{display:block;min-width:0;flex:1}
.session-item-text b{display:block;font-size:13px;line-height:1.3}
.session-item-text small{color:#748676;display:block;font-size:11px;margin-top:4px;line-height:1.25}
.session-item-text small b{display:inline;color:#4a7756;font-size:11px}
.session-item-text small .actual-pending{font-size:11px}
.session-move{display:grid;grid-template-columns:repeat(3,30px);gap:2px}
.session-move .move-btn{border:1px solid #e0e9dc;border-radius:8px;background:#f5f8f3;color:#396a4b;font-size:16px;padding:4px 0;min-height:32px}
.session-move .move-btn.remove{color:#9c6464}
.session-move .move-btn:disabled{opacity:.25}
.progress-mode{background:#f3f6f1;border:1px solid #e0e9dc;display:flex;gap:3px;padding:4px;border-radius:12px;margin-bottom:13px;width:fit-content;max-width:100%;flex-wrap:wrap}
@media(max-width:750px){.session-list{padding:4px 9px}.session-open .thumb{width:40px;height:40px}.session-item-text b{font-size:12px}.session-item-text small{font-size:10px}.session-move{grid-template-columns:repeat(3,26px)}.session-move .move-btn{font-size:14px;min-height:30px}.session-open{gap:6px}}
@media(max-width:360px){.session-move{grid-template-columns:repeat(3,23px)}.session-item-text b{font-size:11px}}
@media(max-width:750px){.main{padding-top:calc(14px + env(safe-area-inset-top))}}
/* ------------------------------------------------------------------
 FORM / PRIVATE TRAINING JOURNAL — EDITION 03.4
 Visual language: tailored editorial typography, forest enamel, bone,
 aged brass and hairline detailing. No external fonts or images needed.
 ------------------------------------------------------------------ */
:root {
  --bg: #081913;
  --panel: #11281f;
  --panel2: #19372b;
  --edge: rgba(214,229,207,.14);
  --muted: #a0b5a6;
  --lime: #c5d7b2;
  --white: #f2f1e9;
  --red: #e5a09a;
  --radius: 17px;
  --forest: #0b241b;
  --forest-2: #153b2e;
  --forest-3: #214c3c;
  --bone: #f0eee5;
  --bone-mute: #b1b9a9;
  --brass: #c6b78a;
  --brass-dim: #8f9275;
  --hairline: rgba(232,240,219,.12);
  color:var(--white);background:var(--bg);
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
}
html,body,#app{color:var(--white);background:var(--bg);min-height:100%;overflow-x:clip}
body{background:radial-gradient(ellipse 750px 550px at 67% -200px,rgba(44,95,71,.23),transparent 85%),var(--bg)}
*{scrollbar-color:#375a45 #0a1c16}
::selection{background:#cabd91;color:#10251b}
:where(button,input,select,textarea):focus-visible{outline:2px solid #e0cc9c;outline-offset:3px}
.shell{grid-template-columns:245px minmax(0,1fr);background:transparent}
.sidebar{background:linear-gradient(180deg,#081812,#0b2119 65%,#0a1d15);border-color:var(--hairline);padding:34px 17px 30px}
.brand{display:flex;align-items:center;gap:12px;color:var(--bone);margin:0 8px 58px;font-size:30px;font-weight:800;letter-spacing:-1.4px}
.brand-mark{display:grid;place-items:center;height:45px;width:45px;flex:none;border:1px solid rgba(204,193,148,.55);border-radius:12px;color:#d7c9a2;font:italic 29px Georgia,serif;background:linear-gradient(142deg,rgba(173,164,119,.12),transparent)}
.brand-wordmark{line-height:1;white-space:nowrap}.brand-period{color:var(--brass)}
.brand-wordmark small{display:block;white-space:nowrap;font-size:7px;font-weight:650;letter-spacing:1.18px;color:#8ea696;margin-top:8px}
.nav{gap:8px}.nav button{padding:15px 16px;border-radius:12px;font-size:13px;color:#a1b2a3;font-weight:540;gap:14px;transition:background .18s,border-color .18s,color .18s;border:1px solid transparent}
.nav button:hover{background:rgba(203,224,198,.06);color:var(--bone)}
.nav button.active{color:var(--bone);background:linear-gradient(90deg,rgba(196,182,138,.15),rgba(196,182,138,.035));border-color:rgba(196,182,138,.15)}
.nav button.active .navico{color:var(--brass)}.navico{width:23px;height:23px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.navico svg{width:19px;height:19px}.navlabel{line-height:1.2}
.sidebar-bottom{border-color:var(--hairline);padding:22px 10px 0}
.sidebar-bottom .side-caption{color:#819d8a;font-size:9px;letter-spacing:1.7px}
.sidebar-bottom b{color:#d9e0d1;font-size:14px;font-weight:550}
.sidebar-bottom .hint{color:#7e9988}.sidebar-bottom .btn.ghost{margin-top:10px}
.connection{background:#8cbb8f;box-shadow:0 0 0 3px rgba(140,187,143,.1)}
.main{max-width:1120px;padding:31px 46px 90px;overflow-wrap:normal}
.sync-top{border:0;background:transparent;color:#9ab29f;padding:1px 0 21px;display:flex;justify-content:flex-end;gap:8px;align-items:center}
.mini-username{color:#b0c5b0;font-size:11px;letter-spacing:.1px;font-weight:500}
.sync-indicator{color:#8faf98;font-size:11px}.sync-indicator .connection{width:6px;height:6px}
.overline{color:var(--brass);font-size:10px;font-weight:700;letter-spacing:2.3px}
.page-title{font-family:Georgia,"Times New Roman",serif;color:var(--bone);font-size:clamp(32px,4.8vw,58px);font-weight:400;letter-spacing:-1.6px;line-height:1.05;margin:14px 0 10px}
.sub,.hint{color:#9caf9d;line-height:1.58}
.topbar{margin-bottom:28px;align-items:center}.topright{gap:8px}.datepill{color:#c7d3c4;border-color:var(--hairline);background:#11281f;padding:11px 13px}
.iconbtn{border:1px solid rgba(222,234,214,.16);background:#19392d;color:#f0eee6;box-shadow:none;border-radius:11px}
.iconbtn:hover{background:#28503f}
.btn{background:var(--bone);color:#173a2b;border:1px solid transparent;border-radius:10px;font-weight:690;box-shadow:none;min-height:43px;transition:transform .16s,background .16s}
.btn:hover{background:#fffef9;filter:none;transform:translateY(-1px)}
.btn.ghost{background:#1b3b2e;color:#e4e9db;border:1px solid rgba(206,232,202,.18)}
.btn.ghost:hover{background:#285140}
.btn.outline{background:transparent;border:1px solid rgba(202,183,143,.56);color:#dfd0a9}
.btn.red{color:#e3afa4;background:#3c2828;border-color:#6e3d3a}
.btn.small{font-size:12px;border-radius:10px;padding:8px 12px}
.panel,.exercise-card,.metric,.statmini{background:#10281f;border:1px solid var(--hairline);box-shadow:none;border-radius:17px}
.panel-title h2{font-size:20px;font-family:Georgia,serif;letter-spacing:-.3px;font-weight:400;color:#eaece4}
.panel-title span{color:#94b09a}.panel-title{margin-bottom:17px}
.grid2,.grid3{gap:14px}
/* Main cover — not a generic rectangular dashboard tile */
.today-hero{position:relative;isolation:isolate;overflow:hidden;margin-bottom:30px;min-height:300px;border-radius:20px;
 background:radial-gradient(circle at 87% 41%,rgba(74,125,84,.36) 0%,rgba(42,90,62,.16) 24%,transparent 58%),linear-gradient(115deg,#0e3929,#103628 45%,#09261d 100%);
 border:1px solid rgba(179,197,145,.36);box-shadow:0 24px 70px rgba(0,0,0,.16)}
.today-hero:before{content:'';position:absolute;top:-210px;right:-110px;width:500px;height:500px;border:1px solid rgba(214,205,166,.08);border-radius:50%;z-index:-1}
.today-hero:after{content:'';position:absolute;top:-153px;right:-52px;width:390px;height:390px;border:1px solid rgba(214,205,166,.09);border-radius:50%;z-index:-1}
.hero-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 29px 17px;border-bottom:1px solid rgba(219,230,203,.12);font-size:9px;color:#d0d6be;letter-spacing:2px;font-weight:650}
.hero-glyph{display:inline-block;font:italic 19px Georgia,serif;letter-spacing:-1px;color:var(--brass);vertical-align:-2px;margin-right:9px}
.hero-date{letter-spacing:1.4px;color:#a9c0a9;white-space:nowrap}
.hero-display{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:217px;padding:27px 29px 23px;gap:10px}
.hero-copy{position:relative;z-index:2}
.hero-overline{font-size:9px;letter-spacing:2.1px;color:#cabf94;font-weight:600;display:flex;align-items:center;gap:9px}
.hero-dash{width:19px;height:1px;background:#c3b788;display:inline-block}
.hero-copy h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(43px,5.9vw,73px);font-weight:400;line-height:1.04;letter-spacing:-2.4px;color:var(--bone);margin:14px 0 11px}
.hero-copy h1 em{font-weight:400;color:#ccbe96}
.hero-copy p{max-width:420px;color:#b5c8b5;line-height:1.5;font-size:12px;margin:0}
.hero-insignia{flex:0 0 215px;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;color:#c8bc97}
.hero-insignia:before,.hero-insignia:after{content:'';position:absolute;border:1px solid rgba(215,204,167,.2);border-radius:50%;inset:7% 16%}
.hero-insignia:after{inset:19% 26%;border-color:rgba(222,214,181,.17)}
.hero-insignia span{font:italic 83px Georgia,serif;line-height:1;transform:translateY(-1px)}
.hero-insignia small{font-size:8px;letter-spacing:2.7px;margin-top:7px;color:#a6ac8e}
.hero-bottom{border-top:1px solid rgba(219,230,203,.12);min-height:61px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 22px 11px 29px;background:rgba(3,20,13,.24)}
.hero-bottom-meta{display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1.3px;color:#bdd0bc;font-weight:700}
.hero-status-dot{width:7px;height:7px;border-radius:50%;background:#acb891}
.hero-cta{border:1px solid rgba(214,203,170,.48);background:rgba(199,180,134,.12);border-radius:10px;padding:11px 14px 11px 17px;color:#e6d7af;display:inline-flex;align-items:center;gap:22px;font-weight:650;font-size:11px;white-space:nowrap}
.hero-cta:hover{background:rgba(199,180,134,.21)}.hero-cta span{font-size:17px;font-weight:400}
.section-eyebrow{display:flex;align-items:center;gap:17px;color:#b7b994;letter-spacing:1.65px;font-size:9px;font-weight:700;margin:25px 3px 13px}
.section-eyebrow span:last-child{margin-left:auto;color:#748c7c;white-space:nowrap}
.eyebrow-rule{height:1px;background:rgba(201,197,156,.17);flex:1}
/* Contrast piece of bone paper: warm leather-club aesthetic, not a white UI. */
.week-panel{background:#e7e9dc;border:1px solid #d3d9ca;border-radius:18px;padding:19px 23px 22px;margin-bottom:26px;color:#173a2b;box-shadow:0 10px 30px rgba(2,13,7,.08)}
.week-panel .panel-title{margin-bottom:15px}.week-panel .panel-title h2{color:#1c3f30;font-family:Georgia,serif;font-size:24px}
.text-link{color:#315a46;font-weight:680;background:transparent;border:0;white-space:nowrap;font-size:11px}
.text-link span{font-size:16px;font-weight:400;margin-left:4px}
.weekstrip{gap:7px!important;grid-template-columns:repeat(7,minmax(0,1fr))!important}
.daytile{min-width:0!important;max-width:none;background:rgba(255,255,255,.51);border:1px solid #d5ddce;color:#244b36;border-radius:12px;min-height:88px;padding:11px 2px;transition:background .18s,transform .18s,border-color .18s}
.daytile:hover{background:#f7f7ed;border-color:#6c967d;transform:translateY(-2px)}
.daytile small{color:#6d8573;font-weight:550;font-size:10px;margin-bottom:10px}
.daytile strong{font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.1}
.daytile.selected{color:#f8f5e8;background:linear-gradient(145deg,#174735,#0e2f24);border:1px solid #174c35;box-shadow:0 4px 10px rgba(15,48,32,.15)}
.daytile.selected small{color:#ccdcc9}.daytile .dot{background:#5d8660;width:4px;height:4px;margin:10px auto 0}
.daytile.selected .dot{background:#cabb91}.daytile .dot.blank{background:transparent}
/* Session card, with deliberate indexing and realistic numbers */
.workout-overview{background:#102b21;border:1px solid rgba(202,215,188,.19);padding:22px 26px 12px;border-radius:18px}
.workout-overview-head{align-items:center;gap:15px;margin-bottom:16px}
.workout-small-date{font-size:9px;color:#c4ba91;letter-spacing:1.65px;font-weight:720;text-transform:uppercase}
.workout-overview-head h2{color:#f2f0e5;font-family:Georgia,serif;font-size:clamp(24px,3vw,34px);font-weight:400;letter-spacing:-1px;margin:7px 0 0}
.workout-open{background:#e7e5d7;border-color:transparent;color:#204735;border-radius:10px;white-space:nowrap}
.workout-open span{font-size:17px;font-weight:400;margin-left:12px}
.workout-progress{padding:0 0 17px;border-bottom:1px solid var(--hairline);margin:0 0 3px}
.workout-progress-bar{height:3px;background:#335040;border-radius:6px;overflow:hidden}
.workout-progress-bar span{display:block;height:100%;background:linear-gradient(90deg,#9cb69e,#d1c29b);border-radius:6px}
.workout-progress p{display:flex;justify-content:space-between;margin:8px 0 0;color:#91aa99;font-size:10px;line-height:1.3;gap:6px}
.workout-progress b{color:#d1c49b;font-weight:700;white-space:nowrap}
.plan-row.plan-row-click{background:transparent;color:#e8ece3;border:0;border-bottom:1px solid rgba(224,235,215,.1);display:grid;grid-template-columns:23px 46px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;width:100%;padding:14px 0;transition:background .18s}
.plan-row.plan-row-click:last-child{border-bottom:none}.plan-row.plan-row-click:hover{background:rgba(185,212,180,.06)}
.exercise-order{font-family:Georgia,serif;font-size:16px;color:#8c9c78;font-weight:400}
.plan-row .thumb,.plan-row .img-fallback.thumb{width:46px;height:46px;border-radius:9px;object-fit:cover;background:linear-gradient(135deg,#2c5440,#1b392b)}
.img-fallback{background:radial-gradient(circle at 24% 10%,#4c795b,#234735 78%)!important;color:#c0c39f!important;border:1px solid rgba(223,234,214,.08)}
.plan-text{min-width:0}.plan-row .plan-title{font-weight:650;font-size:13px;color:#e5e9df;line-height:1.35}
.plan-row .plan-meta{font-size:10px;color:#93a99a;margin-top:5px;line-height:1.4}
.plan-row .rightmeta.actual-result{max-width:127px;min-width:86px;text-align:right;flex-shrink:0;gap:3px}
.actual-result b{color:#e5dbc0;font-size:11px;font-weight:700}
.actual-result small,.actual-pending{color:#8a9e8d!important;font-size:10px!important}
.row-chevron{color:#8ba78e;font-size:18px}
.extra-details{background:#0c231b;border:1px solid var(--hairline);border-radius:17px;margin-top:16px}
.extra-details summary{padding:22px 25px;color:#c2cfb9;font-size:10px;font-weight:700;letter-spacing:1.5px}
.extra-arrow{font-size:20px;color:#bdae8b;line-height:1}
.extra-inner{padding:5px 20px 21px}.metric{background:#19362a;border:1px solid var(--hairline);padding:16px}
.metric-label{color:#a5b2a0;font-size:9px;letter-spacing:1.1px}.metric-value{color:#eae8dd;font-family:Georgia,serif;font-size:34px;font-weight:400;margin:7px 0}
.metric-note{color:#889d8a}.tip{background:#1b382b;border:1px solid rgba(201,221,191,.13);color:#c3cbb7}.tip strong{color:#d5c695}
.empty-state{color:#adbaad;display:flex;flex-direction:column;align-items:flex-start;padding:22px 6px 30px}
.empty-graphic{background:#234c39;border:1px solid rgba(203,215,174,.2);color:#d1c299;display:flex;width:54px;height:54px}
.empty-state h3{font-family:Georgia,serif;font-size:27px;font-weight:400;color:#ecede1}
.empty-state p{color:#95aa9a}
/* Other screens adopt the same palette, with restrained contrast. */
.tag{color:#cfdfc8;background:#224333;border:1px solid rgba(188,214,174,.18)}
.tag.grey{background:#183027;color:#b2c3b2;border-color:rgba(206,226,207,.15)}
.tag.lime{color:#173a2a;background:#dfddc6;border-color:#dfddc6}.tag.orange{background:#40392b;border-color:#76664d;color:#dfc89f}
.calendar-head h2{font-family:Georgia,serif;font-size:26px;font-weight:400;color:var(--bone)}
.calday{background:#19352a;border-color:rgba(210,224,200,.11);color:#dde8d8;border-radius:10px}
.calday:hover{border-color:rgba(212,198,148,.6)}
.calday.selected{border-color:#c1b38a;background:#29513d}.calday.today .calnum{color:#e4d7b0}.calbadge{color:#a6c7a5}.caldone{color:#d4cba5}.weekday{color:#8da893}
.choice{background:#18382a;color:#c2d2c0;border:1px solid rgba(218,229,204,.15)}
.choice:hover{border-color:#a8b795}.choice.active{color:#132b1e;background:#ddd9c7;border-color:#ddd9c7}
.select,.search,input[type=number],input[type=text],input[type=password],textarea{background:#0b2119;border:1px solid rgba(216,231,203,.21);color:#f1f2e8;border-radius:10px;font-size:14px}
input::placeholder,textarea::placeholder{color:#829c88}
.select:focus,.search:focus,input:focus,textarea:focus{border-color:#a4b799}
.session-count{background:#e6e0c8;border-color:#e6e0c8;color:#183d2c;font-family:Georgia,serif;font-size:22px}
.session-headleft h3{font-family:Georgia,serif;font-weight:400;color:var(--bone)}.session-headleft p{color:#9bae9f}
.session-sort-hint{color:#9bae9f}
.session-list{background:#10291f}
.session-item{border-color:rgba(214,232,206,.11)!important}
.session-open{color:#e2e7dc!important}.session-item-text b{color:#e7e8dc}.session-item-text small{color:#95ac98}
.session-item-text small b,.exercise-inline-result b{color:#d5c99e}
.session-move .move-btn{background:#1c3a2c!important;color:#c7d7c2!important;border:1px solid rgba(201,223,195,.18)!important}
.session-move .move-btn.remove{color:#e2a49c!important}
.exercise-card{background:#163427;border-color:rgba(216,232,206,.15)}
.exercise-top{border-color:var(--hairline)}
.exercise-title-button{color:#efeee3}.exercise-title-button span{color:#c6b88c}
.exercise-sub{color:#9caf9d}.exercise-inline-result{color:#d6c99f}
.exercise-body{background:#11291f}
.set-table.labels{color:#a0b7a0}.set-no{color:#c8d5bd}.set-no.warm{color:#d0be92}
.set-table input{background:#0c251b;border-color:rgba(217,235,205,.19);color:#e8ecdf}
.donebtn{background:#1c3b2d;border-color:#4a6650;color:#b3c5af}
.donebtn.isdone{background:#d6ceb0;border-color:#d6ceb0;color:#18352b}
.set-remove{color:#93a99a}.assist-note{color:#adc0a7}.assist-note strong{color:#d8cba2}
.goal-field{color:#a1b69e}.no-load-pill{color:#c8d9c3;background:#17382a;border-color:rgba(217,231,202,.2)}
.mode-switch,.progress-mode{background:#0c241a;border:1px solid rgba(214,230,203,.18)}
.mode-option{color:#a6bbaa}.mode-option.on{background:#e1dfd2;color:#1e4634;box-shadow:none}
.reorder-pair{background:#1a382a;border-color:var(--hairline)}
.move-btn{color:#c5d0ba}.delete-exercise{color:#c79088}
.suggestion{background:#1c3b2d;border-color:#4c7052}.suggestion strong{color:#d8cca5}
.focus-summary{background:#193e2e;color:#becfb8;border:1px solid #385c43}
.focus-summary strong{color:#e4d8b2}
.focus-summary strong small{color:#aabda8}
.focus-navigation .btn.ghost{background:#1c3b2d}
/* Progress index and actual set history */
.progress-index{background:#0f271e;border-color:var(--hairline)}
.progress-index .panel-title h2{font-family:Georgia,serif;font-weight:400}
.progress-list-item{color:#e5e8dc;border-color:transparent}
.progress-list-item.active{background:#234634;border-color:#557458}
.progress-list-item b{color:#dfe8d9}.progress-list-item small{color:#9aa99b}.progress-list-item small b{color:#d9c99b}
.progress-topline>div{background:#1b392b}.progress-topline small{color:#9bae9f}.progress-topline b{color:#eae9db}
.exercise-history-row{border-color:var(--hairline)}.history-date{color:#e0cda0}
.history-set{background:#1a3a2b;border-color:#47624a;color:#d3e0cd}.history-set.done{border-color:#b5a97e}
.history-ex-link{background:#1c3c2c;color:#dcd2ad;border-color:#5a6e54}
/* Catalog and conversations */
.library-item{background:#183529;border-color:var(--hairline);color:#e9ebdf}
.library-item:hover{border-color:#968e6f}.libname{color:#e4e9dc}.libmeta{color:#a3b7a7}.used-pill{color:#d4c295}
.resultcount{color:#92a899}.chat-panel{background:#11281f;border-color:var(--hairline)}
.msg.assistant{background:#1e3d2f;border:1px solid #365840;color:#e0e8d9}.msg.user{background:#e0decc;border-color:#d0cbb8;color:#1f4533}
.chat-compose{border-color:rgba(218,232,207,.16)}
/* Elegant, legible modals on a real phone */
.modaloverlay{background:rgba(0,12,6,.81);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.modal{background:#0d281e;border:1px solid rgba(212,226,203,.2);box-shadow:0 26px 90px rgba(0,0,0,.47);color:#e8eee0}
.modal-head,.modal-foot{background:#102d22;border-color:var(--hairline)}
.modal-head h3{color:#f0eee2;font-family:Georgia,serif;font-size:24px;font-weight:400}
.modal-body{background:#0d281e}
.session-modal .single-exercise{background:#173729;border-color:var(--hairline)}
.session-modal .exercise-top{background:#193d2e}.session-modal .exercise-body{background:#11291f}
.session-modal .modal-foot span{color:#91aa96}
.detail-layout li{color:#b2c4b1}
.notice{background:#3a2928;border-color:#75514c;color:#e8b5a6}
.divider{background:var(--hairline)}
.sync-notice{background:#1d3e2d;border-color:#4e6b4d;color:#d0dfc7}.sync-notice p{color:#b7c9ad}
.sync-notice.danger{background:#402c29;border-color:#b06856;color:#f0c2b7}
.footer{font-size:9px;letter-spacing:1.1px;color:#708779;text-align:center;margin-top:32px;text-transform:uppercase}
.footer span{color:#a89d78;padding:0 8px}
/* Login is also branded, not just a recolored admin form. */
.auth-page{background:#081b14;color:var(--bone)}
.auth-card{position:relative}
.auth-mark{color:#f0eee3;font-family:Georgia,serif;font-size:46px;font-weight:400;letter-spacing:-2px}
.auth-mark>span:first-child,.auth-dot{color:#caba8f}.auth-kicker{color:#b7ba94}
.auth-card h1{font-family:Georgia,serif;color:#f5f0e4;font-size:42px;font-weight:400;letter-spacing:-1.2px}
.auth-desc,.auth-foot{color:#9db29e}
.auth-switch{background:#143126;border:1px solid rgba(205,228,201,.16)}
.auth-switch button{color:#b2c4b5}.auth-switch button.on{background:#dbcfae;color:#183726}
.auth-form label{color:#cfdbc8}
.auth-form input{background:#0c241b;color:#f2f3e9;border:1px solid #47604b}
.auth-form input:focus{border-color:#c5b58b;box-shadow:0 0 0 2px rgba(199,180,140,.1)}
.auth-brand-side{background:radial-gradient(circle at 60% 30%,#23513d 0%,#103426 34%,#081b14 78%);color:#f5f0e5;font-family:Georgia,serif;font-weight:400}
.auth-brand-side span{color:#c9b78c}.auth-brand-side p{color:#b7bfa5}
.auth-error{color:#f0a9a4}
#toast{background:#dbcfae;color:#1a382b;border:1px solid #c3b48d}
/* Touch device: floating bottom bar, week 7 columns, no sideways motion */
@media(max-width:900px){.progress-layout{grid-template-columns:1fr}.progress-index{max-height:none}}
@media(max-width:750px){
 .shell{display:block}
 .main{width:100%;max-width:none;padding:calc(10px + env(safe-area-inset-top)) 15px calc(108px + env(safe-area-inset-bottom));overflow-x:clip}
 .sync-top{padding:5px 4px 14px;min-height:28px}
 .today-hero{margin:0 0 25px;min-height:0;border-radius:16px}
 .hero-kicker{padding:14px 17px 12px;font-size:8px;letter-spacing:1.15px;gap:8px}
 .hero-glyph{font-size:17px;margin-right:4px}.hero-date{font-size:8px;letter-spacing:.7px}
 .hero-display{padding:20px 19px 18px;min-height:190px;align-items:center}
 .hero-copy{max-width:100%;padding-right:50px}
 .hero-copy h1{font-size:clamp(43px,12vw,62px);letter-spacing:-1.7px;margin:13px 0 10px;line-height:1.02}
 .hero-overline{font-size:8px;letter-spacing:1.2px;gap:7px}
 .hero-dash{width:13px}
 .hero-copy p{font-size:11px;max-width:290px;line-height:1.47}
 .hero-insignia{position:absolute;right:-46px;top:32px;bottom:0;width:173px;flex:none;opacity:.26;pointer-events:none}
 .hero-insignia span{font-size:85px}.hero-insignia small{display:none}
 .hero-bottom{padding:11px 15px;min-height:55px;gap:6px}
 .hero-bottom-meta{font-size:7px;letter-spacing:.5px;max-width:49%;line-height:1.4}
 .hero-cta{font-size:10px;gap:9px;padding:11px 12px;white-space:nowrap}
 .section-eyebrow{margin:22px 2px 12px;gap:10px;font-size:8px;letter-spacing:1.1px}
 .week-panel{padding:16px 14px 17px;border-radius:16px;margin-bottom:24px}
 .week-panel .panel-title{margin-bottom:12px}
 .week-panel .panel-title h2{font-size:23px}
 .weekstrip{gap:5px!important}
 .daytile{min-height:66px;padding:9px 0!important;border-radius:10px}
 .daytile small{font-size:9px!important;margin-bottom:5px}
 .daytile strong{font-size:19px!important}
 .daytile .dot{margin:7px auto 0}
 .workout-overview{padding:18px 16px 9px;border-radius:16px}
 .workout-overview-head{align-items:flex-start;gap:8px}
 .workout-overview-head h2{font-size:26px;line-height:1.1;margin-top:6px}
 .workout-small-date{font-size:8px;letter-spacing:.9px}
 .workout-open{padding:9px 10px;font-size:10px;white-space:nowrap;min-height:36px}
 .workout-open span{font-size:14px;margin-left:5px}
 .workout-progress{padding-bottom:12px}
 .plan-row.plan-row-click{grid-template-columns:19px 40px minmax(0,1fr) auto;gap:8px;padding:13px 0}
 .exercise-order{font-size:13px}.plan-row .thumb,.plan-row .img-fallback.thumb{width:40px;height:40px;border-radius:8px}
 .plan-row .plan-title{font-size:12px;line-height:1.3}
 .plan-row .plan-meta{font-size:9px;margin-top:3px}
 .plan-row .rightmeta.actual-result{min-width:68px;max-width:105px;font-size:10px}
 .actual-result b{font-size:10px}.actual-result small{font-size:9px}
 .panel-title h2{font-size:21px}
 .extra-details summary{padding:18px 16px;font-size:9px}
 .metric{padding:11px}.metric-label{font-size:8px}.metric-value{font-size:25px}
 .mobile-nav{position:fixed;z-index:80;bottom:calc(9px + env(safe-area-inset-bottom));left:12px;right:12px;width:calc(100% - 24px);height:70px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;
   padding:6px 6px 8px!important;background:rgba(11,37,27,.96)!important;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
   border:1px solid rgba(204,219,186,.24)!important;border-radius:17px;box-shadow:0 16px 46px rgba(0,9,5,.45)}
 .mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;color:#9eb29f!important;padding:4px 0!important;font-size:10px;letter-spacing:-.2px;font-weight:530;border-radius:11px}
 .mobile-nav button .navico{width:23px;height:23px;color:#9db4a0}
 .mobile-nav button .navico svg{width:20px;height:20px}
 .mobile-nav button.active{background:rgba(197,184,144,.12);color:#e7ddbf!important}
 .mobile-nav button.active .navico{color:#dac999}
 .topbar{margin:13px 0 22px;align-items:center;gap:12px}
 .page-title{font-size:36px}
 .datepill{display:none}
 .topright .iconbtn{padding:8px 11px}
 .session-header,.exercise-top,.exercise-foot,.button-row{max-width:100%;min-width:0}
 .set-table{grid-template-columns:27px minmax(0,1fr) minmax(0,1fr) 40px 23px;gap:5px}
 .set-table input{font-size:16px}
 .session-item-text b{font-size:12px;color:#f0f0e7}
 .session-item-text small{font-size:10px;color:#9cad9f}
 .session-list{padding:7px 9px}
 .session-move{grid-template-columns:repeat(3,28px)}
 .modaloverlay{align-items:flex-end}
 .modal{margin:0;width:100%;max-width:100vw;border-radius:19px 19px 0 0;max-height:calc(100dvh - env(safe-area-inset-top) - 8px)}
 .modal-head{padding:14px 18px}.modal-head h3{font-size:22px}
 .session-modal .modal-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
 .session-modal .modal-foot span{font-size:10px}
 .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
 .calday{min-width:0;overflow:hidden}
 .footer{margin-top:32px;font-size:8px;line-height:1.6}
}
@media(max-width:385px){
 .main{padding-left:10px;padding-right:10px}
 .hero-kicker{padding-left:13px;padding-right:13px}
 .hero-display{padding-left:14px}.hero-bottom{padding-left:12px;padding-right:12px}
 .hero-copy h1{font-size:42px}
 .daytile{min-height:62px}.daytile strong{font-size:17px!important}
 .weekstrip{gap:4px!important}
 .plan-row.plan-row-click{grid-template-columns:16px 38px minmax(0,1fr) auto;gap:5px}
 .plan-row .thumb,.plan-row .img-fallback.thumb{width:38px;height:38px}
 .plan-row .actual-result{min-width:62px;max-width:78px}
 .session-move{grid-template-columns:repeat(3,24px)}
 .session-item-text b{font-size:11px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Explicit label sizing overrides the pre-v3.4 icon-span rule. */
@media(max-width:750px){
 .mobile-nav button span.navlabel{display:block;font-size:10px!important;line-height:1.05;letter-spacing:-.15px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
 .mobile-nav button span.navico{font-size:20px!important}
}
/* Browser QA: keep the training sheet above the floating navigation,
   and place the workload format on its own line on narrow displays. */
.modaloverlay{z-index:120}
.set-options > div:first-child > .overline{display:block;margin-bottom:9px}
@media(max-width:750px){
 .session-modal .set-options{display:flex;flex-direction:column;align-items:stretch;gap:13px}
 .session-modal .set-options > div:first-child{min-width:0;width:100%}
 .session-modal .mode-switch{margin-top:0;width:fit-content;max-width:100%;flex-wrap:wrap}
 .session-modal .goal-field{align-items:flex-start;max-width:none}
 .session-modal .goal-field input{max-width:160px}
}

/* ===============================================================
   FORM 3.5 / DEEP FOREST
   Modern sans-serif, midnight pine, warm platinum accents.
   Visual-only update: training data and interactions unchanged.
   =============================================================== */
:root {
  --bg:#06120e;
  --panel:#0b2119;
  --panel2:#102b21;
  --edge:rgba(188,211,191,.12);
  --muted:#91aa9a;
  --lime:#a5bfa7;
  --white:#f2f3ee;
  --forest:#091b14;
  --forest-2:#0f2b20;
  --forest-3:#17392b;
  --bone:#f3f3eb;
  --bone-mute:#abbcb0;
  --brass:#b6ae8d;
  --brass-dim:#879887;
  --hairline:rgba(185,212,193,.115);
  font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
  color:var(--white);
  background:var(--bg);
}
html,body,#app {background:var(--bg);color:var(--white)}
body{background:radial-gradient(ellipse 780px 500px at 78% -250px,rgba(32,65,48,.13),transparent 85%),var(--bg)}
*{scrollbar-color:#254938 #071710}
::selection{background:#476b57;color:#fff}
:where(button,input,select,textarea):focus-visible{outline-color:#c9d8b7}
/* Deep, restrained surfaces */
.sidebar{background:linear-gradient(180deg,#07150f,#081911 85%);border-color:var(--hairline)}
.main{background:transparent}
.panel,.exercise-card,.metric,.statmini{background:#0c211a;border-color:var(--hairline)}
.iconbtn{background:#112d22;border-color:var(--hairline)}
.iconbtn:hover{background:#1a3a2c}
.nav button.active{background:#172c22;border-color:rgba(176,195,172,.17)}
.nav button.active .navico{color:#c1c9b1}
.nav button:hover{background:#122b20}
.brand-mark{background:#102a20;border-color:#445c4c;color:#f3f3e9;font:750 25px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;border-radius:11px}
.brand-period{color:#a9b69c}
/* Modern typography, no italic editorial serif or formal ornamentation */
.page-title,.panel-title h2,.hero-copy h1,.hero-copy h1 em,
.week-panel .panel-title h2,.daytile strong,.workout-overview-head h2,
.exercise-order,.metric-value,.empty-state h3,.calendar-head h2,
.session-count,.session-headleft h3,.progress-index .panel-title h2,
.modal-head h3,.auth-mark,.auth-card h1,.auth-brand-side,.hero-insignia span,.hero-glyph {
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,sans-serif;
  font-style:normal;
}
.page-title{font-weight:720;letter-spacing:-1.35px;font-size:clamp(31px,4.2vw,47px)}
.panel-title h2{font-weight:675;font-size:18px;letter-spacing:-.5px}
.overline{color:#b2bfa9;letter-spacing:1.65px}
/* Cover: inky pine, light typography, no showy heraldry */
.today-hero{
  background:linear-gradient(130deg,#112e22 0%,#0b261b 55%,#0a1e17 100%);
  border:1px solid rgba(169,193,170,.28);
  box-shadow:0 18px 55px rgba(0,0,0,.17);
  border-radius:19px;
  min-height:258px;
}
.today-hero:before,.today-hero:after{border-color:rgba(189,202,183,.045)}
.hero-kicker{color:#aebfb0;letter-spacing:1.4px;border-color:var(--hairline);font-weight:600}
.hero-glyph{font-size:15px;font-weight:800;letter-spacing:-.3px;color:#e2e6db;vertical-align:-1px}
.hero-date{color:#8da999}
.hero-display{min-height:177px}
.hero-overline{color:#adbda8;font-size:9px;letter-spacing:1.5px}
.hero-dash{background:#8aaf95}
.hero-copy h1{font-weight:740;line-height:1.06;letter-spacing:-2.3px;font-size:clamp(37px,5vw,58px);color:#f5f6f0}
.hero-copy h1 em{font-weight:740;color:#b6cfb5}
.hero-copy p{color:#a1b7a8;font-size:12px;line-height:1.55}
.hero-insignia{color:#9caf9e;opacity:.22}
.hero-insignia:before,.hero-insignia:after{border-color:rgba(202,224,201,.16)}
.hero-insignia span{font-weight:780;letter-spacing:-4px}
.hero-insignia small{color:#7b9c86}
.hero-bottom{background:#071b13;border-color:var(--hairline)}
.hero-bottom-meta{color:#b6c8b9;letter-spacing:1px}
.hero-status-dot{background:#a0c4a6}
.hero-cta{border-color:#526957;background:#173629;color:#ecf0e5;font-weight:650;box-shadow:none}
.hero-cta:hover{background:#234534}
.section-eyebrow{color:#9eb4a4;letter-spacing:1.35px}
.section-eyebrow span:last-child{color:#738f7d}
.eyebrow-rule{background:rgba(166,193,167,.16)}
/* Previously bone-white calendar now matching dark forest */
.week-panel{background:#10261d;border-color:rgba(174,196,174,.17);box-shadow:none;color:#f0f4ea;border-radius:17px}
.week-panel .panel-title h2{color:#f1f3ed;font-weight:690;font-size:21px;letter-spacing:-.55px}
.text-link{color:#b3c9b0}
.daytile{background:#162e23;border-color:#284438;color:#e2ebdf;box-shadow:none}
.daytile:hover{background:#1d3c2d;border-color:#6f9a7e}
.daytile small{color:#a1bca7}
.daytile strong{font-size:21px;font-weight:650;letter-spacing:-.6px}
.daytile.selected{background:#28523b;border-color:#67977c;box-shadow:0 0 0 1px rgba(138,182,148,.13);color:#f5f6f0}
.daytile.selected small{color:#c8dec9}
.daytile .dot{background:#5e8f70}
.daytile.selected .dot{background:#d5dfc6}
/* Workout journal: compact high-contrast data rather than ornament */
.workout-overview{background:#0d271d;border:1px solid rgba(164,192,169,.18);border-radius:17px}
.workout-overview-head h2{font-size:clamp(23px,2.6vw,30px);font-weight:700;letter-spacing:-.8px;color:#f1f4ec}
.workout-small-date{color:#aabcaa;letter-spacing:1.1px}
.workout-open{background:#e5eae0;color:#102c1f}
.workout-open:hover{background:#fff}
.workout-progress-bar{background:#284838}
.workout-progress-bar span{background:linear-gradient(90deg,#5d9577,#b5cfb5)}
.workout-progress b{color:#bbd1b4}
.plan-row.plan-row-click{border-color:rgba(182,208,188,.095)}
.plan-row.plan-row-click:hover{background:rgba(150,192,161,.05)}
.exercise-order{color:#78998a;font-size:13px;font-weight:590}
.plan-row .thumb,.plan-row .img-fallback.thumb{background:#163a2a}
.img-fallback{background:linear-gradient(135deg,#1b4934,#103024)!important;color:#a4c1a9!important}
.plan-row .plan-title{color:#e6eee5}
.plan-row .plan-meta{color:#8fae9a}
.actual-result b{color:#edf1e7}
.actual-result small,.actual-pending{color:#93a99a!important}
.row-chevron{color:#82a68d}
.extra-details{background:#0a1e16;border-color:var(--hairline)}
.extra-details summary{color:#b6cdbb}
.extra-arrow{color:#a7c3ac}
.metric{background:#112c21}
.metric-value{font-size:29px;font-weight:740;letter-spacing:-.8px}
.tip,.suggestion{background:#143327;border-color:#305341}
.tip strong,.suggestion strong{color:#c4d8b6}
/* Other pages respect the same low-glare green palette */
.calday{background:#142e22;border-color:#2a4838}
.calday.selected{background:#244b35;border-color:#80ab88}
.calday.today .calnum{color:#d8e6c9}
.session-count{background:#dce7d7;color:#153c2b;border-color:#dce7d7;font-weight:760}
.session-headleft h3{font-weight:685;letter-spacing:-.5px}
.session-list,.progress-index{background:#0b2119}
.exercise-card,.exercise-body{background:#0c271c}
.session-item,.session-open{background:transparent}
.session-move .move-btn,.move-btn{background:#193b2b!important;border-color:#335a42!important}
.set-table input{background:#0a2118}
.donebtn.isdone{background:#b7d1b2;border-color:#b7d1b2;color:#143524}
.mode-option.on{background:#dae7d4;color:#123b29}
.progress-list-item.active{background:#1d422e;border-color:#567d60}
.progress-list-item small b{color:#cbdac0}
.progress-topline>div{background:#193b2b}
.history-date{color:#bcd4b7}
.history-set{background:#163729}
.history-ex-link{background:#1b3b2c;color:#d4e1c9}
.library-item{background:#102d21}
.library-item:hover{border-color:#718b73}
.msg.assistant{background:#1a3b2d}
.msg.user{background:#dfe9db;color:#143423}
.modal,.modal-body{background:#0a2118}
.modal-head,.modal-foot{background:#0d2a1e}
.modal-head h3{font-weight:700;font-size:21px;letter-spacing:-.6px}
.session-modal .single-exercise{background:#102b20}
.session-modal .exercise-top{background:#15382a}
.session-modal .exercise-body{background:#0c291e}
.auth-page{background:#061610}
.auth-mark{font-weight:800;letter-spacing:-2px}
.auth-card h1{font-size:36px;font-weight:740;letter-spacing:-1.3px}
.auth-brand-side{background:linear-gradient(135deg,#123629,#081a13);font-weight:720}
.auth-brand-side span{color:#aecab0}
.auth-switch{background:#102c21}
.auth-switch button.on{background:#d5e2d2;color:#163727}
.auth-form input{background:#0b251a}
#toast{background:#d8e5d4;color:#102f20;border-color:#a3c4a8}
/* Mobile: fewer vertical flourishes and typography that reads comfortably */
@media(max-width:750px){
  .main{padding-left:13px;padding-right:13px}
  .today-hero{min-height:0;margin-bottom:23px}
  .hero-kicker{padding:12px 17px;font-size:8px;letter-spacing:.9px}
  .hero-display{padding:21px 19px;min-height:156px}
  .hero-copy h1{font-size:clamp(36px,10vw,50px);letter-spacing:-1.75px;margin:10px 0 10px}
  .hero-overline{font-size:8px;letter-spacing:1.2px}
  .hero-copy p{font-size:11px;max-width:280px}
  .hero-insignia{opacity:.12}
  .hero-bottom{padding:11px 15px;min-height:52px}
  .hero-cta{font-size:10px;padding:10px 11px}
  .section-eyebrow{margin:21px 2px 11px}
  .week-panel{padding:17px 13px 18px;margin-bottom:22px}
  .week-panel .panel-title h2{font-size:20px}
  .daytile{min-height:65px;border-radius:9px}
  .daytile strong{font-size:18px!important}
  .daytile small{font-size:9px!important}
  .workout-overview{padding:17px 15px 10px}
  .workout-overview-head h2{font-size:23px}
  .mobile-nav{background:rgba(7,28,19,.97)!important;border-color:rgba(151,188,156,.26)!important;box-shadow:0 12px 34px rgba(0,0,0,.4)}
  .mobile-nav button.active{background:rgba(154,195,162,.15);color:#e6f0df!important}
  .mobile-nav button.active .navico{color:#c2dfc1}
  .mobile-nav button{color:#8fae9a!important}
  .footer{color:#678673}
}
@media(max-width:385px){.hero-copy h1{font-size:37px}}
