:root{--ink:#171916;--muted:#6d7169;--paper:#f4f2eb;--card:#fff;--line:#deded5;--lime:#c8f04b;--red:#9b3027}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 Arial,sans-serif}.topbar{height:70px;padding:0 max(22px,calc((100vw - 1160px)/2));display:flex;align-items:center;border-bottom:1px solid var(--line);position:sticky;top:0;background:#f4f2ebee;backdrop-filter:blur(12px);z-index:10}.brand{display:flex;align-items:center;gap:9px;color:inherit;text-decoration:none;font-weight:800;letter-spacing:.13em}.brand span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--lime)}nav{display:flex;gap:5px;margin:auto}.nav,.help{border:0;background:transparent;font:inherit;cursor:pointer}.nav{padding:10px 15px;border-radius:30px;color:var(--muted);font-weight:bold}.nav.active{background:var(--ink);color:white}.help{border:1px solid var(--line);width:38px;height:38px;border-radius:50%;font-weight:bold}main{max-width:1160px;margin:auto;padding:48px 22px 80px}.hidden{display:none!important}.hero{display:grid;grid-template-columns:1fr 390px;align-items:end;gap:30px;margin-bottom:35px}.overline{font-size:11px;font-weight:bold;letter-spacing:.15em;color:var(--muted);margin:0 0 10px}.hero h1,.pagehead h1{font-size:clamp(40px,6vw,72px);line-height:.96;letter-spacing:-.055em;margin:0}.copy{color:var(--muted);line-height:1.7}.weekbar{border-block:1px solid var(--line);padding:16px 0;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between;text-align:center}.weekbar b{display:block}.weekbar small{color:var(--muted)}.round{width:40px;height:40px;border:1px solid var(--line);background:transparent;border-radius:50%;cursor:pointer}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{--accent:var(--lime);min-height:250px;padding:23px;background:white;border:1px solid var(--line);border-radius:19px;box-shadow:0 15px 40px #181a1612;display:flex;flex-direction:column;position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--accent)}.card.cancelled{background:transparent;box-shadow:none;opacity:.6}.card.cancelled h2{text-decoration:line-through}.cardtop{display:flex;justify-content:space-between}.daynum{font-size:38px;line-height:1;font-weight:800}.month{font-size:11px;color:var(--muted);text-transform:uppercase}.badge{font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.08em;background:#eee;padding:7px 9px;height:min-content;border-radius:20px}.badge.moved{background:#fff0b8}.badge.done{background:#dff4bc}.badge.cancelled{background:#f5cac5}.card h2{font-size:20px;margin:26px 0 5px;line-height:1.25}.sub{font-size:13px;color:var(--muted)}.actions{display:flex;gap:8px;margin-top:auto;padding-top:20px}.primary,.secondary,.danger{border:0;border-radius:10px;padding:12px 15px;font-weight:bold;cursor:pointer}.primary{background:var(--ink);color:white}.secondary{background:#e9e9e3}.danger{background:#fbe2df;color:var(--red)}.pagehead{margin-bottom:40px}.pagehead h1{font-size:56px}.program-day{border-top:1px solid var(--line);display:grid;grid-template-columns:230px 1fr;padding:22px 0}.program-day h2{margin:0}.dot{width:10px;height:10px;display:inline-block;border-radius:50%;background:var(--accent);margin-right:8px}.exercise-line{display:grid;grid-template-columns:1.4fr 120px 100px 1fr;gap:12px;border-bottom:1px solid var(--line);padding:14px 0;font-size:13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:35px}.stat{background:#fff;border:1px solid var(--line);border-radius:17px;padding:24px}.stat strong{font-size:38px;display:block}.history{display:grid;grid-template-columns:110px 1fr 120px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}dialog{width:min(960px,calc(100% - 20px));max-height:92vh;border:0;border-radius:21px;padding:0;background:var(--paper);box-shadow:0 30px 90px #0005}dialog::backdrop{background:#171916bb}.info{width:min(500px,calc(100% - 20px));padding:34px;line-height:1.7}.x{position:absolute;right:17px;top:14px;border:0;background:transparent;font-size:27px;cursor:pointer}.dialoghead{display:flex;align-items:center;justify-content:space-between;padding:26px 30px 20px;border-bottom:1px solid var(--line)}.dialoghead h2{margin:0}.dialoghead input{font:inherit;padding:9px;border:1px solid var(--line);border-radius:8px}.form{padding:0 30px 28px}.ex{padding:22px 0;border-bottom:1px solid var(--line)}.ex h3{margin:0}.meta{color:var(--muted);font-size:12px;margin:4px 0 14px}.sets{display:grid;grid-template-columns:repeat(3,1fr) 130px;gap:9px}.set,.rir{background:white;border:1px solid var(--line);border-radius:11px;padding:9px}.set label,.rir label,.note label{font-size:9px;color:var(--muted);font-weight:bold;text-transform:uppercase}.fields{display:grid;grid-template-columns:1fr 1fr;gap:5px}.set input,.rir input,.note input{width:100%;border:0;border-bottom:1px solid var(--line);padding:8px 2px;background:transparent;outline:0}.exfoot{display:grid;grid-template-columns:150px 1fr;gap:10px;margin-top:10px}.volume{font-size:12px;color:var(--muted);padding:10px}#toast{position:fixed;right:20px;bottom:20px;background:var(--ink);color:white;padding:11px 16px;border-radius:9px;opacity:0;transform:translateY(80px);transition:.2s;z-index:30}#toast.show{opacity:1;transform:none}.error{background:white;padding:25px;border-radius:15px;color:var(--red)}
@media(max-width:780px){.topbar{padding:0 15px}nav{position:fixed;bottom:0;left:0;right:0;height:62px;background:white;border-top:1px solid var(--line);justify-content:space-around;z-index:15}.nav.active{background:transparent;color:var(--ink)}main{padding:30px 15px 85px}.hero{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.card{min-height:205px}.program-day{grid-template-columns:1fr}.exercise-line{grid-template-columns:1fr 90px}.exercise-line .sub{grid-column:1/-1}.stats{grid-template-columns:1fr}.history{grid-template-columns:85px 1fr}.history>:last-child{grid-column:2}.sets{grid-template-columns:1fr 1fr}.rir{grid-column:1/-1}.dialoghead{align-items:flex-start;flex-direction:column;padding:22px 17px}.form{padding:0 17px 24px}}

/* Refined blue visual system */
:root{--ink:#101b2d;--muted:#64748b;--paper:#eef4fb;--card:#ffffff;--line:#d5e1ef;--lime:#5eead4;--red:#b33b55}body{background:radial-gradient(circle at 8% 0,#dbeafe 0,transparent 30%),radial-gradient(circle at 92% 12%,#e0e7ff 0,transparent 26%),var(--paper)}.topbar{background:#f4f8fddd;border-color:#ccdaea}.brand span,.nav.active,.primary,#toast{background:linear-gradient(135deg,#14233b,#254a79)}.brand span{color:#8adcf8}.card,.stat{border-color:#d8e4f1;box-shadow:0 18px 48px rgba(30,64,110,.09)}.card:hover{transform:translateY(-3px);box-shadow:0 22px 58px rgba(30,64,110,.14)}.card{transition:.22s ease}.round,.help{border-color:#c7d7e8}.round:hover,.help:hover{background:#dceafa}.badge{background:#e7eef7;color:#334e70}.badge.moved{background:#fef3c7;color:#805d10}.badge.done{background:#ccfbf1;color:#11695e}.badge.cancelled{background:#ffe4e6;color:#9f2940}.secondary{background:#e1eaf5}.danger{background:#ffe4e8;color:#a72e48}.set,.rir{border-color:#d8e4f1}.video-link{display:inline-flex;align-items:center;gap:4px;color:#2563a5;font-weight:bold;text-decoration:none;margin-top:5px}.video-link:hover{text-decoration:underline}.media-button{border:1px solid #bfd2e8;background:#f7fbff;color:#214d7c;border-radius:10px;padding:10px 13px;font-weight:bold;cursor:pointer;margin-top:10px}.media-button:hover{background:#dcecff}.image-dialog{width:min(900px,calc(100% - 20px));padding:28px}.workout-image{display:block;width:100%;max-height:72vh;object-fit:contain;border-radius:14px;background:#dbe7f3;margin-top:15px}.image-dialog h2{margin:0}.exercise-line{grid-template-columns:1.3fr 110px 90px 1.1fr}@media(max-width:780px){.exercise-line{grid-template-columns:1fr 90px}.media-button{margin-bottom:18px}}

/* Authentication */
.auth-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 10%,#bfdbfe,transparent 35%),radial-gradient(circle at 85% 85%,#c7d2fe,transparent 34%),#eaf1f9}.auth-shell{width:100%;max-width:520px;padding:24px}.auth-card{background:#ffffffee;border:1px solid #cfdeed;border-radius:25px;padding:38px;box-shadow:0 30px 80px rgba(30,64,110,.18);backdrop-filter:blur(15px)}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.13em;margin-bottom:45px}.auth-brand span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#14233b,#254a79);color:#8adcf8}.auth-card h1{font-size:42px;line-height:1.05;letter-spacing:-.045em;margin:0 0 14px}.auth-form{display:grid;gap:17px;margin-top:28px}.auth-form label{font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.08em;color:#52677f}.auth-form input{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #c8d7e7;border-radius:10px;background:#f8fbff;font:inherit;color:#101b2d;outline:none}.auth-form input:focus{border-color:#4d8bca;box-shadow:0 0 0 3px #bfdbfe}.auth-submit{width:100%;padding:14px;margin-top:5px}.auth-error{background:#ffe4e8;color:#9f2940;border-radius:10px;padding:11px 13px;margin-top:18px;font-size:13px}.logout-form{margin-right:10px}.logout{border:1px solid #c7d7e8;background:transparent;border-radius:20px;padding:8px 12px;color:#52677f;font-weight:bold;cursor:pointer}.logout:hover{background:#dceafa;color:#183b63}@media(max-width:780px){.auth-card{padding:28px 22px}.auth-card h1{font-size:36px}.logout-form{position:fixed;right:50px;top:17px}.topbar .help{position:fixed;right:14px;top:16px}}
.clear-exercise{float:right;margin-top:-28px;border:0;background:transparent;color:#6a83a0;font-size:11px;font-weight:bold;cursor:pointer}.clear-exercise:hover{color:#b33b55;text-decoration:underline}.form>.actions{flex-wrap:wrap}.form>.actions .danger{margin-left:auto}@media(max-width:600px){.clear-exercise{float:none;margin:7px 0 5px}.form>.actions .danger{margin-left:0;width:100%;order:3}}

/* Menu contrast, stopwatch and AI analysis */
.nav.active{background:#13233b!important;color:#fff!important}.nav.active:hover{color:#fff!important}.timer-button{border:1px solid #b8cce2;background:#edf5fd;color:#173a61;border-radius:20px;padding:8px 12px;font-weight:bold;cursor:pointer;margin-right:10px;font-variant-numeric:tabular-nums}.timer-button.running{background:#d5f5ee;border-color:#81d8c8;color:#0f6258}.timer-dialog{width:min(440px,calc(100% - 20px));padding:34px;text-align:center}.timer-dialog h2{font-size:28px;margin:0}.timer-display{font-size:72px;line-height:1;font-weight:800;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin:35px 0 20px;color:#173e6b}.timer-actions{display:flex;justify-content:center;gap:10px;margin-top:25px}.analysis-panel{display:flex;align-items:center;justify-content:space-between;gap:25px;background:#fff;border:1px solid #d4e1ef;border-radius:18px;padding:24px;margin-bottom:16px}.analysis-panel h2{margin:0 0 5px}.analysis-panel button:disabled{opacity:.6;cursor:wait}.analysis-result{background:#f8fbff;border:1px solid #d4e1ef;border-radius:18px;padding:25px;min-height:150px}.analysis-meta{color:#6b7f96;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:20px}.analysis-text{white-space:pre-wrap;line-height:1.75;color:#1b304a}.analysis-loading{min-height:100px;display:flex;align-items:center;justify-content:center;gap:12px;color:#60748b}.analysis-loading i{width:18px;height:18px;border:2px solid #bad0e7;border-top-color:#245c96;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:780px){.nav.active{background:transparent!important;color:#142b48!important;border-bottom:2px solid #3477b9;border-radius:0}.timer-button{position:fixed;right:94px;top:16px;margin:0}.analysis-panel{align-items:flex-start;flex-direction:column}.analysis-panel .primary{width:100%}.timer-display{font-size:60px}}

/* Three set columns; RIR field removed */
.sets{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:600px){.sets{grid-template-columns:1fr 1fr}.sets .set:last-child{grid-column:1/-1}}

/* Custom exercises and flexible sets */
.brand span,.auth-brand span{font-size:10px;letter-spacing:-.04em}.brand,.auth-brand{text-transform:none}.exercise-title{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.exercise-tools{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.exercise-tool{border:0;background:#e7f0fa;color:#285b8e;border-radius:8px;padding:6px 9px;font-size:10px;font-weight:bold;cursor:pointer}.exercise-tool:hover{background:#d5e7f8}.exercise-tool.danger-text{background:#ffe7eb;color:#a42f48}.replacement-note{color:#71859b;font-size:11px;margin-top:3px}.dynamic-sets{grid-template-columns:repeat(3,minmax(145px,1fr));align-items:stretch}.set-label{display:flex;align-items:center;justify-content:space-between}.set-label button{border:0;background:transparent;color:#a84257;cursor:pointer;font-size:18px}.add-set{min-height:67px;border:1px dashed #9ebbd8;background:#f6faff;color:#28659e;border-radius:11px;font-weight:bold;cursor:pointer}.add-set:hover{background:#e7f2fd}.add-exercise{width:100%;margin:20px 0 5px;padding:15px;border:1px dashed #78a7d2;background:#edf6ff;color:#1e5a91;border-radius:12px;font-weight:bold;cursor:pointer}.add-exercise:hover{background:#dceeff}
@media(max-width:780px){.dynamic-sets{grid-template-columns:1fr 1fr}.exercise-title{flex-direction:column}.exercise-tools{justify-content:flex-start}.add-set{min-height:60px}}
@media(max-width:480px){.dynamic-sets{grid-template-columns:1fr}.dynamic-sets .set:last-child{grid-column:auto}}

/* Exercise library and picker */
.library-list{display:grid;gap:0;border-top:1px solid #cdddec}.library-item{display:grid;grid-template-columns:55px 1fr 145px 80px;align-items:center;gap:16px;padding:18px 5px;border-bottom:1px solid #d6e3ef}.library-item h3{margin:0 0 3px;font-size:15px}.library-number{font-size:12px;color:#8295aa;font-weight:bold}.library-delete{border:0;background:transparent;color:#a43850;font-weight:bold;font-size:11px;cursor:pointer}.exercise-picker{width:min(560px,calc(100% - 20px));padding:32px}.exercise-picker h2{font-size:30px;margin:0 0 7px}.picker-label{display:block;font-size:11px;font-weight:bold;text-transform:uppercase;letter-spacing:.07em;color:#597087;margin-top:18px}.picker-label select,.picker-label input{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #c7d9e9;border-radius:10px;background:#f8fbff;font:inherit;color:#172c45}.picker-or{text-align:center;color:#8295aa;font-size:11px;text-transform:uppercase;margin:15px 0 -5px}.picker-check{display:flex;align-items:center;gap:8px;margin-top:15px;color:#5e748a;font-size:12px}.picker-check input{width:16px;height:16px}
@media(max-width:700px){.library-item{grid-template-columns:35px 1fr}.library-item .video-link,.library-delete{grid-column:2}.exercise-picker{padding:26px 18px}}
@media(max-width:780px){.topbar nav{overflow-x:auto;justify-content:flex-start;padding:0 6px}.topbar .nav{font-size:10px;padding:9px 7px;white-space:nowrap;flex:0 0 auto}}

/* Final mobile navigation and header fix */
@media(max-width:780px){
 body .topbar{height:64px;padding:0 12px;display:flex;align-items:center}
 body .topbar .brand{display:flex!important;visibility:visible!important;position:relative;z-index:22;font-size:12px;max-width:135px;white-space:nowrap}
 body .topbar .brand span{display:grid!important;width:32px;height:32px;flex:0 0 32px}
 body .topbar .timer-button{display:block!important;position:absolute!important;top:14px!important;right:76px!important;height:36px;margin:0;padding:7px 10px;font-size:11px;z-index:22}
 body .topbar .logout-form{display:block!important;position:absolute!important;top:14px!important;right:12px!important;margin:0;z-index:22}
 body .topbar .logout{height:36px;padding:7px 9px;font-size:10px;background:#eef5fc;color:#294f76}
 body .topbar .help{display:none!important}
 body .topbar nav{position:fixed;left:0;right:0;bottom:0;top:auto;height:64px;display:flex!important;align-items:stretch;overflow-x:auto;overflow-y:hidden;justify-content:flex-start;padding:0 5px;background:#f8fbff!important;border-top:1px solid #cadbeb;z-index:50}
 body .topbar nav .nav{display:flex;align-items:center;justify-content:center;min-width:max-content;height:63px;padding:8px 10px!important;font-size:10px!important;line-height:1.15;color:#516b85!important;background:transparent!important;border:0!important;border-radius:9px!important;white-space:nowrap}
 body .topbar nav .nav.active{color:#133b63!important;background:#d9ebfb!important;box-shadow:inset 0 -3px 0 #3478b8!important;font-weight:800}
 main{padding-bottom:86px}
}
@media(max-width:390px){body .topbar .brand{font-size:0}body .topbar .brand span{font-size:9px}body .topbar .timer-button{right:72px}}

/* Mobile hamburger sidebar */
.hamburger,.menu-overlay,.mobile-menu-title,.mobile-menu-actions{display:none}
@media(max-width:780px){
 body .topbar{height:64px;padding:0 14px;justify-content:space-between}
 body .topbar .brand{display:flex!important;position:relative!important;max-width:none!important;font-size:12px!important;visibility:visible!important}
 body .topbar .brand span{display:grid!important;font-size:9px!important}
 body .topbar>.timer-button,body .topbar>.logout-form,body .topbar>.help{display:none!important}
 body .topbar .hamburger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:42px;height:42px;border:1px solid #bdd1e4;border-radius:11px;background:#f4f9fe;cursor:pointer;position:relative;z-index:72}
 body .topbar .hamburger span{display:block;width:19px;height:2px;border-radius:2px;background:#183d63;transition:.2s}
 body.menu-open .hamburger span:nth-child(1){transform:translateY(6px) rotate(45deg)}body.menu-open .hamburger span:nth-child(2){opacity:0}body.menu-open .hamburger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
 body .topbar nav{display:flex!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;right:auto!important;width:min(330px,88vw)!important;height:100dvh!important;padding:0 14px 22px!important;background:#f7fbff!important;border:0!important;border-right:1px solid #c5d8e9!important;box-shadow:18px 0 55px rgba(14,38,65,.22)!important;z-index:80!important;overflow-y:auto!important;overflow-x:hidden!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;transform:translateX(-105%);transition:transform .25s ease}
 body.menu-open .topbar nav{transform:translateX(0)}
 body .menu-overlay{display:block;position:fixed;inset:0;background:rgba(11,28,48,.48);backdrop-filter:blur(2px);z-index:79;opacity:0;visibility:hidden;transition:.22s}
 body.menu-open .menu-overlay{opacity:1;visibility:visible}
 body.menu-open{overflow:hidden}
 body .topbar nav .mobile-menu-title{display:flex;align-items:center;gap:10px;min-height:76px;border-bottom:1px solid #d4e2ef;margin-bottom:13px}
 body .mobile-menu-title span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#173b62;color:#91d9f4;font-size:9px;font-weight:800}
 body .mobile-menu-title strong{font-size:14px;letter-spacing:.08em;color:#122c49}
 body .mobile-menu-title button{margin-left:auto;border:0;background:transparent;color:#59728a;font-size:29px;cursor:pointer}
 body .topbar nav .nav{display:flex!important;justify-content:flex-start!important;align-items:center!important;width:100%!important;min-height:46px!important;height:auto!important;padding:12px 14px!important;margin:2px 0!important;border-radius:10px!important;color:#435f7b!important;background:transparent!important;font-size:13px!important;text-align:left!important;flex:none!important}
 body .topbar nav .nav.active{background:#d9eafb!important;color:#123d67!important;box-shadow:inset 3px 0 0 #3478b8!important;border:0!important}
 body .topbar nav .mobile-menu-actions{display:grid;gap:8px;margin-top:auto;padding-top:22px;border-top:1px solid #d4e2ef}
 body .mobile-menu-actions button{display:flex;align-items:center;gap:8px;width:100%;border:1px solid #c8dbea;background:#edf5fc;color:#234f79;border-radius:10px;padding:12px 14px;font-weight:bold;cursor:pointer;text-align:left}
 body .mobile-menu-actions button b{margin-left:auto;font-variant-numeric:tabular-nums}
 body .mobile-menu-actions #mobileLogoutButton{color:#9a334a;background:#fff0f2;border-color:#f0ced5}
 main{padding-bottom:40px}
}

/* Mobile sidebar compatibility fix */
@media(max-width:780px){
 body .topbar nav{height:100vh!important;min-height:100vh!important;max-height:100vh!important;height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}
 body .topbar nav .mobile-menu-links{display:flex!important;flex-direction:column!important;align-items:stretch!important;flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding:2px 0 14px!important}
 body .topbar nav .mobile-menu-links>.nav{display:flex!important;position:static!important;visibility:visible!important;opacity:1!important;transform:none!important;flex:0 0 auto!important;width:100%!important;min-height:46px!important;color:#435f7b!important;background:transparent!important}
 body .topbar nav .mobile-menu-links>.nav.active{display:flex!important;visibility:visible!important;opacity:1!important;color:#123d67!important;background:#d9eafb!important}
 body .topbar nav .mobile-menu-actions{display:grid!important;position:static!important;visibility:visible!important;opacity:1!important;flex:0 0 auto!important;margin-top:0!important}
}
@supports not (height:100dvh){@media(max-width:780px){body .topbar nav{height:100vh!important;min-height:100vh!important;max-height:100vh!important}}}

/* Independent static mobile drawer — final override */
.mobile-drawer{display:none}
@media(max-width:780px){
 body .topbar nav{display:none!important}
 body .mobile-drawer{display:flex!important;position:fixed;left:0;top:0;bottom:0;width:min(330px,88vw);height:100vh;min-height:100vh;background:#f7fbff;border-right:1px solid #c4d7e8;box-shadow:18px 0 55px rgba(14,38,65,.25);z-index:100;flex-direction:column;padding:0 14px 22px;transform:translateX(-105%);transition:transform .24s ease;overflow:hidden}
 body.drawer-open .mobile-drawer{transform:translateX(0)}
 body.drawer-open{overflow:hidden}
 body.drawer-open #menuOverlay{display:block!important;opacity:1!important;visibility:visible!important;z-index:99!important}
 body .drawer-head{display:flex;align-items:center;gap:10px;height:76px;min-height:76px;border-bottom:1px solid #d3e1ed}
 body .drawer-head>span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#173b62;color:#91d9f4;font-size:9px;font-weight:800}
 body .drawer-head strong{font-size:14px;letter-spacing:.08em;color:#122c49}
 body .drawer-head button{margin-left:auto;border:0;background:transparent;color:#59728a;font-size:30px;cursor:pointer}
 body .drawer-links{display:flex;flex-direction:column;gap:4px;padding:14px 0;overflow-y:auto;flex:1 1 auto}
 body .drawer-link{display:block!important;visibility:visible!important;opacity:1!important;position:static!important;width:100%;min-height:47px;padding:13px 14px;border:0;border-radius:10px;background:transparent!important;color:#405d79!important;text-align:left;font-size:13px;font-weight:700;cursor:pointer}
 body .drawer-link.active{background:#d9eafb!important;color:#123d67!important;box-shadow:inset 3px 0 0 #3478b8!important}
 body .drawer-actions{display:grid;gap:9px;flex:0 0 auto;padding-top:17px;border-top:1px solid #d3e1ed}
 body .drawer-actions>button,body .drawer-actions form button{display:flex;width:100%;align-items:center;gap:8px;min-height:44px;padding:11px 14px;border:1px solid #c8dbea;border-radius:10px;background:#edf5fc;color:#234f79;font-weight:bold;cursor:pointer;text-align:left}
 body .drawer-actions>button b{margin-left:auto;font-variant-numeric:tabular-nums}
 body .drawer-actions form{margin:0}
 body .drawer-actions form .drawer-logout{color:#9a334a;background:#fff0f2;border-color:#f0ced5}
 body .topbar .hamburger{display:flex!important}
}
@supports(height:100dvh){@media(max-width:780px){body .mobile-drawer{height:100dvh;min-height:100dvh}}}

/* Base program editor */
.program-buttons{display:flex;gap:7px;flex-wrap:wrap}.edit-program{border:1px solid #a9c5df;background:#e8f3fd;color:#225c91;border-radius:10px;padding:10px 13px;font-weight:bold;cursor:pointer;margin-top:10px}.edit-program:hover{background:#d7eafb}.program-editor{width:min(760px,calc(100% - 20px));padding:32px}.program-editor>h2{font-size:31px;margin:0 0 20px}.editor-day{display:grid;grid-template-columns:180px 1fr;gap:12px;margin-bottom:22px}.program-editor label{display:block;color:#60768d;font-size:10px;font-weight:bold;text-transform:uppercase;letter-spacing:.06em}.program-editor input{display:block;width:100%;margin-top:6px;border:1px solid #c8d9e9;border-radius:9px;background:#f9fcff;padding:11px 12px;font:inherit;color:#172e48}.program-editor input:focus{outline:0;border-color:#4e8bc5;box-shadow:0 0 0 3px #d9ebfb}.program-editor-row{background:#fff;border:1px solid #d4e2ef;border-radius:13px;padding:16px;margin:10px 0}.editor-row-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.editor-row-head button{border:0;background:#ffe8ec;color:#a43149;border-radius:7px;padding:6px 9px;font-size:10px;font-weight:bold;cursor:pointer}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:11px 0}.program-editor .timer-actions{justify-content:flex-start}
@media(max-width:600px){.program-editor{padding:25px 16px}.editor-day,.editor-grid{grid-template-columns:1fr}.program-buttons{margin-bottom:18px}.program-editor .timer-actions{flex-direction:column}.program-editor .timer-actions button{width:100%}}

/* Per-workout skipped exercises */
.removed-exercises{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:20px 0 5px;padding:14px;border:1px solid #e7cbd1;background:#fff5f6;border-radius:12px}.removed-exercises>div{margin-right:auto}.removed-exercises strong{display:block;font-size:12px;color:#8f3348}.removed-exercises .sub{display:block;font-size:10px}.removed-exercises button{border:1px solid #dfb9c2;background:#fff;color:#8d3549;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:bold;cursor:pointer}.removed-exercises button:hover{background:#ffe7eb}@media(max-width:600px){.removed-exercises{align-items:stretch;flex-direction:column}.removed-exercises button{text-align:left}}

/* Always-visible skip button */
.visible-skip{border:1px solid #e0aeba!important;background:#fff0f2!important;color:#9e3049!important;border-radius:8px!important;padding:7px 10px!important;font-size:10px!important;font-weight:800!important;cursor:pointer!important;display:inline-flex!important;visibility:visible!important;opacity:1!important}.visible-skip:hover{background:#ffe0e5!important}@media(max-width:600px){.visible-skip{width:100%!important;justify-content:center!important;margin-top:4px!important}}

/* Schedule recalculation and detailed progress history */
.recalculate-button{display:block;margin:-8px 0 18px auto;border:1px solid #b9cee2;background:#edf6ff;color:#255d90;border-radius:9px;padding:9px 12px;font-size:11px;font-weight:bold;cursor:pointer}.recalculate-button:hover{background:#dceeff}.history-button{width:100%;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.history-button:hover{background:#e7f1fa}.history-button>span:nth-child(2){display:flex;flex-direction:column}.history-button>span:last-child{display:flex;align-items:center;justify-content:flex-end;gap:12px}.history-button i{font-style:normal}.history-button em{font-style:normal;font-size:20px;color:#6685a3}.history-dialog{width:min(720px,calc(100% - 20px));padding:32px}.history-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.history-dialog-head h2{font-size:34px;margin:0}.history-dialog-head p{color:#60758b;margin:4px 0 20px}.history-total{display:flex;justify-content:space-between;align-items:center;background:#dfeefa;color:#315774;border-radius:11px;padding:13px 15px;margin-bottom:15px}.history-total strong{font-size:19px}.history-exercise{border:1px solid #d4e2ee;background:#fff;border-radius:12px;padding:15px;margin:10px 0}.history-exercise h3{margin:0 0 12px;font-size:15px}.history-sets{display:grid;gap:5px}.history-sets>div{display:grid;grid-template-columns:1fr 90px 90px;gap:8px;padding:7px 9px;background:#f2f7fb;border-radius:7px;font-size:12px}.history-sets span{color:#6a7f94}.history-exercise p{font-size:12px;color:#5b7187}.history-volume{display:block;text-align:right;margin-top:10px;font-size:12px}.empty-history{padding:25px;text-align:center}
@media(max-width:600px){.recalculate-button{width:100%;margin:0 0 15px}.history-dialog{padding:25px 15px}.history-sets>div{grid-template-columns:1fr 72px 72px}.history-button{grid-template-columns:80px 1fr}.history-button>span:last-child{grid-column:2;justify-content:flex-start;margin-top:7px}.history-dialog-head h2{font-size:28px}}

/* Free-form schedule */
.dynamic-hero{margin-bottom:30px}.schedule-tools{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.delete-day{width:39px;height:39px;border:1px solid #ecc6ce;background:#fff1f3;color:#a13249;border-radius:10px;font-size:18px;cursor:pointer;margin-left:auto}.empty-week{display:grid;place-items:center;text-align:center;border:1px dashed #aac3da;background:#f6faff;border-radius:20px;padding:55px 20px;color:#57718b}.empty-week>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#deedfa;color:#2c6598;font-size:29px}.empty-week h2{margin:15px 0 3px;color:#183956}.empty-week p{margin:0 0 20px}.add-training-dialog{width:min(600px,calc(100% - 20px));padding:32px}.add-training-dialog h2{font-size:31px;margin:0 0 20px}.add-training-dialog>label{display:block;color:#60768d;font-size:10px;font-weight:bold;text-transform:uppercase}.add-training-dialog>label input{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #c7d9e9;border-radius:9px;font:inherit}.complex-picker{display:grid;gap:8px;margin:18px 0}.complex-option{display:flex;align-items:center;gap:12px;border:1px solid #d0dfec;border-left:5px solid var(--accent);background:#fff;border-radius:11px;padding:14px;cursor:pointer}.complex-option:has(input:checked){background:#e9f4fd;border-color:#8db7da}.complex-option input{width:18px;height:18px}.complex-option span{display:flex;flex-direction:column}.complex-option small{color:#6a8095;margin-top:3px}
@media(max-width:600px){.schedule-tools{display:grid}.schedule-tools button{width:100%}.add-training-dialog{padding:25px 15px}.dynamic-hero{display:block}.dynamic-hero .copy{margin-top:18px}}

/* Swimming activity */
.swim-card{background:linear-gradient(155deg,#fff,#edf9ff)}.swim-form{padding-top:22px}.swim-summary{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#dff5ff,#e8f1ff);color:#245577;border-radius:13px;padding:16px 18px;margin-bottom:17px}.swim-summary strong{font-size:22px}.swim-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.swim-grid label{color:#60768d;font-size:10px;font-weight:bold;text-transform:uppercase}.swim-grid input,.swim-grid select,.swim-grid textarea{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #c6dae9;border-radius:10px;background:#fff;font:inherit;color:#17334e}.swim-grid textarea{min-height:90px;resize:vertical}.swim-notes{grid-column:1/-1}.swim-history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0}.swim-history-grid>div{display:flex;flex-direction:column;background:#eaf6fd;border-radius:10px;padding:13px}.swim-history-grid span{font-size:10px;color:#658099;text-transform:uppercase}.swim-history-grid strong{margin-top:5px}.swim-history-notes{background:#f4f8fb;border-radius:10px;padding:14px;color:#4c657c;white-space:pre-wrap}
@media(max-width:600px){.swim-grid,.swim-history-grid{grid-template-columns:1fr}.swim-notes{grid-column:auto}.swim-head{gap:15px}}

/* Native calendar trigger */
.date-picker-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch;margin-top:6px}.date-picker-row input{margin-top:0!important}.date-picker-row button{border:1px solid #9fbeda;background:#e8f3fd;color:#205b90;border-radius:9px;padding:10px 13px;font-weight:bold;cursor:pointer}.date-picker-row button:hover{background:#d8ebfb}@media(max-width:480px){.date-picker-row{grid-template-columns:1fr}.date-picker-row button{width:100%}}

/* AI calorie estimate */
.calorie-button{border:1px solid #7eb8d8;background:linear-gradient(135deg,#e1f6ff,#e8edff);color:#174f79;border-radius:10px;padding:11px 15px;font-weight:800;cursor:pointer}.calorie-dialog{width:min(560px,calc(100% - 20px));padding:32px}.calorie-dialog h2{font-size:32px;margin:0 0 6px}.calorie-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 15px}.calorie-fields label{color:#60768d;font-size:10px;font-weight:bold;text-transform:uppercase}.calorie-fields input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #c6d9e9;border-radius:10px;font:inherit}.calorie-result{min-height:105px;border:1px solid #d1e1ee;background:#f4f9fd;border-radius:13px;padding:18px;color:#577087}.calorie-number{display:flex;align-items:baseline;gap:8px;color:#173f65}.calorie-number strong{font-size:44px;line-height:1}.calorie-range{margin:10px 0}.calorie-result p{margin:12px 0 5px;color:#26445f}.calorie-result small{display:block;line-height:1.45}.calorie-dialog button:disabled{opacity:.6}@media(max-width:600px){.calorie-dialog{padding:26px 16px}.calorie-fields{grid-template-columns:1fr}.calorie-dialog .timer-actions{flex-direction:column}.calorie-dialog .timer-actions button,.calorie-button{width:100%}}
