:root{--bg: #f4f6f9;--card: #ffffff;--text: #0f172a;--text-2: #475569;--text-3: #94a3b8;--accent: #334155;--accent-hover: #1e293b;--line: #e5e9f0;--line-strong: #cbd5e1;--soft: #f1f5f9;--softer: #f8fafc;--good: #15803d;--bad: #b91c1c;--warn-bg: #fef3c7;--warn-ink: #92400e;--danger-bg: #fee2e2;--danger-ink: #991b1b;--info-bg: #e0e7ff;--info-ink: #3730a3;--edit-bg: #dbeafe;--good-bg: #dcfce7;--good-ink: #14532d;--on-accent: #ffffff;--glass: rgba(255, 255, 255, .84);--bar: #94a3b8;--toast-bg: #0f172a;--toast-ink: #f8fafc;--sk-a: #eef2f6;--sk-b: #e2e8f0;--radius: 18px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 8px -2px rgba(15, 23, 42, .06);--shadow-lg: 0 2px 4px rgba(15, 23, 42, .04), 0 12px 32px -8px rgba(15, 23, 42, .18), 0 32px 64px -24px rgba(15, 23, 42, .22);--ring: 0 0 0 3px rgba(51, 65, 85, .18);--ease-out: cubic-bezier(.23, 1, .32, 1);--display: "Nunito", system-ui, sans-serif;--body: "Nunito Sans", system-ui, sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}html{scrollbar-gutter:stable}body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:var(--line-strong)}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--text)}h1,h2,h3{font-family:var(--display);font-weight:800;margin:0;letter-spacing:-.01em}h1{font-size:30px;line-height:36px;letter-spacing:-.02em}h2{font-size:18px;line-height:24px}h3{font-size:16px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.small{font-size:13px}.bold{font-weight:700}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}kbd{font-family:var(--body);font-size:11px;font-weight:700;color:var(--text-2);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:6px;padding:0 5px;background:var(--card)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-strong);background:var(--card);color:var(--text);font-weight:700;border-radius:12px;padding:9px 16px;min-height:42px;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-xs);transition:transform .14s var(--ease-out),background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 1px 2px #0f172a33,inset 0 1px #ffffff14}.btn.danger{color:var(--bad)}.btn.sm{min-height:34px;padding:5px 12px;font-size:14px;border-radius:10px}.btn.link{border:0;background:none;padding:4px;min-height:0;color:var(--accent);box-shadow:none}@media(hover:hover)and (pointer:fine){.btn:hover{background:var(--softer);border-color:var(--line-strong);color:var(--text)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.btn.danger:hover{color:var(--bad);background:var(--danger-bg);border-color:var(--danger-bg)}.btn.link:hover{text-decoration:underline;background:none}}.chip{border:1px solid var(--line-strong);background:var(--card);color:var(--accent);font-size:14px;font-weight:700;border-radius:999px;padding:5px 13px;cursor:pointer;transition:transform .12s var(--ease-out),background-color .15s ease,border-color .15s ease}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}@media(hover:hover)and (pointer:fine){.chip:not([aria-pressed=true]):hover{border-color:var(--text-3)}}.field{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px}.field .hint{font-weight:400;color:var(--text-2);font-size:13px}.input,.field input,.field select,.field textarea{font-weight:400;font-size:15px;border:1px solid var(--line-strong);border-radius:12px;padding:10px 12px;background:var(--card);min-height:44px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}::placeholder{color:var(--text-3)}.field textarea{resize:vertical;min-height:96px}.input.compact{min-height:36px;padding:6px 8px;border-radius:10px}.error{color:var(--bad);font-weight:600}.banner{padding:12px 16px;border-radius:14px;background:var(--soft);color:var(--accent)}.banner.warn{background:var(--warn-bg);color:var(--warn-ink)}.banner.danger{background:var(--danger-bg);color:var(--danger-ink)}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:10px 28px;background:var(--glass);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px)}.brand{display:flex;align-items:center;gap:10px;flex-grow:1;text-decoration:none;color:var(--text)}.brand:hover{color:var(--text)}.logo{width:32px;height:32px;border-radius:10px;background:linear-gradient(160deg,#475569,#1e293b);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:17px;box-shadow:0 1px 2px #0f172a40,inset 0 1px #ffffff26}.brand-name{font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:-.01em}.search{display:flex;align-items:center;gap:8px;background:var(--soft);border:1px solid transparent;color:var(--text-2);border-radius:12px;padding:7px 10px 7px 12px;min-width:240px;flex:0 1 340px;cursor:text;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.search:focus-within{background:var(--card);border-color:var(--accent);box-shadow:var(--ring)}.search input{border:0;background:transparent;outline:none;width:100%;color:var(--text)}.search kbd{flex-shrink:0}.me{display:flex;align-items:center;gap:10px;font-weight:600;border-radius:12px;padding:4px 8px 4px 4px}@media(hover:hover)and (pointer:fine){.me:hover{background:var(--soft)}}.shell{display:flex;align-items:flex-start}.sidenav{width:240px;flex-shrink:0;padding:20px 14px;display:flex;flex-direction:column;gap:2px;position:sticky;top:53px}.nav-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:0 12px 6px}.navlink{position:relative;display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--text-2);text-decoration:none;font-weight:600;min-height:40px;transition:background-color .15s ease,color .15s ease}@media(hover:hover)and (pointer:fine){.navlink:hover{background:#e2e8f099;color:var(--text)}}.navlink.active{background:var(--card);color:var(--text);font-weight:700;box-shadow:var(--shadow-sm)}.navlink.active:before{content:"";position:absolute;left:-14px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.navlink .count{margin-left:auto;background:var(--accent);color:var(--on-accent);border-radius:999px;font-size:11px;font-weight:800;padding:1px 7px;min-width:20px;text-align:center}.main{flex:1;min-width:0;padding:28px 32px 72px;display:flex;flex-direction:column;gap:24px;max-width:1240px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.page-head>:first-child{flex-grow:1;display:flex;flex-direction:column;gap:4px}.bottomnav{display:none}@media(max-width:900px){.topbar{padding:8px 16px}.search{order:3;flex:1 1 100%;min-width:0}.search kbd{display:none}.shell{flex-direction:column}.sidenav{display:none}.main{padding:20px 16px calc(96px + env(safe-area-inset-bottom))}h1{font-size:26px;line-height:32px}.bottomnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--glass);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}.bottomnav a{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-radius:10px;font-size:11px;font-weight:700;color:var(--text-3);text-decoration:none}.bottomnav a.active{color:var(--text)}.bottomnav .count{position:absolute;top:2px;left:calc(50% + 6px);background:var(--bad);color:#fff;border-radius:999px;font-size:10px;padding:0 5px}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-sm)}.card.flush{padding:20px 0 8px}.card.flush>.card-head{padding:0 20px}.card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.card-head>h2{flex-grow:1}.code-card{margin-top:20px;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.code{font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:2px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-sm)}.stat-label{font-size:13px;font-weight:700;color:var(--text-2)}.stat-value{font-family:var(--display);font-weight:800;font-size:32px;line-height:38px;font-variant-numeric:tabular-nums}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.alert{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:16px;text-decoration:none;color:var(--text)}.alert:hover{color:var(--text);filter:brightness(.98)}.alert.warn{background:var(--warn-bg)}.alert.warn .what{color:var(--warn-ink)}.alert.danger{background:var(--danger-bg)}.alert.danger .what{color:var(--danger-ink)}.alert.info{background:var(--info-bg)}.alert.info .what{color:var(--info-ink)}.alert .what{font-size:14px;font-weight:700}.avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:var(--line);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.alert .avatar{background:var(--card)}.pill{display:inline-block;font-size:13px;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--soft);white-space:nowrap}.pill.edit{background:var(--edit-bg)}.pill.good{background:var(--good-bg);color:var(--good-ink)}.pill.warn{background:var(--warn-bg);color:var(--warn-ink)}.pill.danger{background:var(--danger-bg);color:var(--danger-ink)}.pill.info{background:var(--info-bg);color:var(--info-ink)}.up{color:var(--good);font-weight:700}.down{color:var(--bad);font-weight:700}.table-wrap{overflow-x:auto}table.clients{width:100%;min-width:900px;border-collapse:collapse;font-size:14px}table.clients th{text-align:left;color:var(--text-2);font-size:13px;font-weight:700;padding:10px 12px}table.clients td{padding:12px;border-top:1px solid var(--line);vertical-align:middle}table.clients th:first-child,table.clients td:first-child{padding-left:20px}table.clients th:last-child,table.clients td:last-child{padding-right:20px}.who{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none}.who:hover{color:var(--text)}.dots{display:flex;align-items:center;gap:4px}.dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--text-2);background:var(--card)}.dot.on{background:var(--accent);border-color:var(--accent)}.empty{padding:32px 20px;text-align:center;color:var(--text-2)}.hero{flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px 20px;padding:20px 24px}.hero .avatar{width:64px;height:64px;font-family:var(--display);font-weight:800;font-size:22px}.hero-text{flex:1 1 240px;display:flex;flex-direction:column;gap:2px}.tabs{display:flex;flex-wrap:wrap;gap:6px}.tab{padding:8px 16px;border-radius:999px;background:var(--card);border:1px solid var(--line-strong);text-decoration:none;font-weight:700;color:var(--accent);min-height:40px;display:inline-flex;align-items:center}.tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.cols{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.cols>.wide{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}.cols>.side{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:24px}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day{border-radius:14px;padding:10px 8px;min-height:84px;display:flex;flex-direction:column;gap:4px;background:var(--softer);color:var(--text-2);border:1px solid var(--line);font-size:12px}.day .d{font-weight:700}.day .t{font-size:13px;font-weight:700;overflow-wrap:anywhere}.day.done{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.day.planned{background:var(--card);color:var(--text);border-color:var(--text-3)}.day.today{box-shadow:0 0 0 2px #93c5fd}@media(max-width:640px){.week{grid-template-columns:repeat(4,minmax(0,1fr))}}.bars{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:10px;align-items:end;height:190px}.bar{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;font-size:12px}.bar .b{width:100%;max-width:48px;border-radius:8px 8px 4px 4px;background:var(--bar);min-height:2px}.bar.current .b{background:var(--accent)}.row{border-top:1px solid var(--line);padding:14px 20px;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline}.row:first-of-type{border-top:0}.workout{margin:0 12px;border-radius:14px}.workout+.workout{margin-top:2px}.workout:has([aria-expanded=true]){background:var(--softer)}.workout-head{display:flex;align-items:center;gap:14px;width:100%;padding:10px 8px;border:0;background:none;text-align:left;cursor:pointer;border-radius:14px}.workout-head{transition:background-color .15s ease}@media(hover:hover)and (pointer:fine){.workout-head:hover{background:var(--soft)}}.workout-head:active{background:var(--line)}.workout-date{width:44px;height:44px;flex-shrink:0;border-radius:12px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.workout-date .dd{font-family:var(--display);font-weight:800;font-size:17px}.workout-date .mm{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--text-2);text-transform:uppercase}.workout-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.workout-title .name{font-weight:700}.workout-title .meta{font-size:13px;color:var(--text-2)}.chev{color:var(--text-3);display:inline-flex;transition:transform .2s cubic-bezier(.23,1,.32,1)}.chev.open{transform:rotate(90deg)}.workout-body{padding:2px 16px 14px 66px;font-size:14px;transition:opacity .18s cubic-bezier(.23,1,.32,1),transform .18s cubic-bezier(.23,1,.32,1)}@starting-style{.workout-body{opacity:0;transform:translateY(-4px)}}.workout-body ul{list-style:none;margin:0;padding:0}.wb-head,.workout-body li{display:grid;grid-template-columns:minmax(0,1fr) 44px 68px 18px 64px;align-items:baseline}.wb-head{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);padding-bottom:6px;border-bottom:1px solid var(--line)}.wb-head>span:nth-child(2){text-align:center}.wb-head .wb-kg{text-align:right}.workout-body li{padding:7px 0;border-bottom:1px solid var(--line)}.workout-body li:last-child{border-bottom:0}.workout-body .ex{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:12px}.workout-body li>:nth-child(2){text-align:center;color:var(--text-2)}.workout-body .kg{text-align:right;font-weight:700}.workout-body .x{text-align:center;color:var(--text-3);font-size:12px}.workout-body .reps{text-align:left;font-weight:700}.workout-body .note{margin:10px 0 0;color:var(--text-2);font-style:italic}@media(max-width:640px){.wb-head,.workout-body li{grid-template-columns:minmax(0,1fr) 32px 60px 16px 56px}}@media(max-width:640px){.workout-body{padding-left:16px}}@media(prefers-reduced-motion:reduce){.chev{transition:none}.workout-body{transition:opacity .15s ease}@starting-style{.workout-body{transform:none}}}.list-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line)}.scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.score{background:var(--soft);border-radius:14px;padding:10px;display:flex;flex-direction:column}.score .l{font-size:12px;font-weight:700;color:var(--text-2)}.score .v{font-family:var(--display);font-weight:800;font-size:22px}.score.low{background:var(--danger-bg)}.score.low .l{color:var(--danger-ink)}.quote{margin:0;padding:12px;border-radius:14px;background:var(--softer);color:var(--accent)}.progress{height:8px;border-radius:999px;background:var(--line);overflow:hidden}.progress>div{height:100%;background:var(--accent);border-radius:999px}.plan-card{border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}.plan-card.active{border:2px solid var(--accent)}.plan-days{display:grid;grid-template-columns:100px 1fr;gap:2px 12px;font-size:14px}.ex-block{border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.ex-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ex-head .name{font-weight:800;flex-grow:1}.sets{border-collapse:collapse;font-size:14px}.sets th{text-align:left;font-size:12px;color:var(--text-2);padding:2px 8px 2px 0;font-weight:700}.sets td{padding:3px 8px 3px 0}.sets .input{width:92px}.inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.icon-btn{border:0;background:none;width:36px;height:36px;border-radius:10px;cursor:pointer;color:var(--text-2);display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--soft);color:var(--text)}.picker-list{max-height:360px;overflow-y:auto;border:1px solid var(--line);border-radius:12px}.picker-item{display:flex;width:100%;text-align:left;gap:8px;align-items:baseline;border:0;border-top:1px solid var(--line);background:var(--card);padding:10px 12px;cursor:pointer}.picker-item:first-child{border-top:0}.picker-item:hover{background:var(--soft)}.savebar{position:sticky;bottom:0;background:#f5f7faf0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid var(--line);padding:12px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}dialog{border:0;border-radius:var(--radius);padding:24px;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:0 24px 64px #0f172a40;color:var(--text)}dialog::backdrop{background:#0f172a73}.dialog-body{display:flex;flex-direction:column;gap:14px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.check{display:flex;gap:10px;align-items:center;padding:8px 0;font-weight:600}.check input{width:18px;height:18px}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.auth .card{width:min(420px,100%);padding:32px;gap:16px}.divider{display:flex;align-items:center;gap:12px;color:var(--text-2);font-size:13px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.center{min-height:60vh;display:flex;align-items:center;justify-content:center}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.area-chest{--tint: #fee2e2;--ink: #b91c1c}.area-back{--tint: #dbeafe;--ink: #1d4ed8}.area-shoulders{--tint: #fef3c7;--ink: #b45309}.area-arms{--tint: #ede9fe;--ink: #6d28d9}.area-legs{--tint: #dcfce7;--ink: #15803d}.area-glutes{--tint: #fce7f3;--ink: #be185d}.area-core{--tint: #e0f2fe;--ink: #0369a1}.area-full{--tint: #f1f5f9;--ink: #334155}.glyph{flex-shrink:0;border-radius:12px;background:var(--tint);color:var(--ink);display:inline-flex;align-items:center;justify-content:center}dialog.wide{width:min(880px,calc(100vw - 32px))}.picker-search{min-width:0;flex:none;background:var(--card);padding:10px 14px}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px}.chip-sm{font-size:13px;padding:4px 10px;color:var(--text-2)}.muscle-chip .swatch{width:10px;height:10px;border-radius:50%;background:var(--ink)}.muscle-chip[aria-pressed=true]{background:var(--tint);border-color:var(--ink);color:var(--ink)}.ex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;max-height:min(48vh,440px);overflow-y:auto;padding:2px;align-content:start}.ex-tile{display:flex;align-items:center;gap:12px;text-align:left;padding:10px;min-height:64px;border:1px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer}.ex-tile:hover{border-color:var(--line-strong);background:var(--softer)}.ex-tile.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--softer)}.ex-text{flex:1;min-width:0;display:flex;flex-direction:column}.ex-name{font-weight:700;font-size:14px;line-height:1.25}.ex-meta{font-size:12px;color:var(--text-2)}.level{display:inline-flex;gap:2px;align-items:flex-end}.level span{width:4px;border-radius:2px;background:var(--line)}.level span:nth-child(1){height:6px}.level span:nth-child(2){height:9px}.level span:nth-child(3){height:12px}.level span.on{background:var(--text-2)}.tick{width:26px;height:26px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--line-strong);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--text-2)}.ex-tile.on .tick{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.ai-mark{width:32px;height:32px;flex-shrink:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--on-accent);font-size:16px}.ai-launch{display:flex;align-items:center;gap:14px;width:100%;padding:16px 20px;cursor:pointer;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--card)}.ai-launch:hover{border-color:var(--accent);background:var(--softer)}.ai-card{border-color:var(--line-strong)}.ai-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.ai-result{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:14px}.ai-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.ai-day{border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.ai-day ol{margin:0;padding-left:18px;font-size:14px;display:flex;flex-direction:column;gap:2px}.ai-day li>span:last-child{float:right;margin-left:8px}.set-grid{display:flex;flex-direction:column;gap:6px}.set-row{display:grid;grid-template-columns:36px 136px 84px 92px 36px;gap:10px;align-items:center}.set-row>span{min-width:0}.set-row .input{width:100%}.set-row input.num{text-align:center}.set-head{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.set-head>span:nth-child(3),.set-head>span:nth-child(4){text-align:center}.set-badge{width:28px;height:28px;border-radius:8px;background:var(--soft);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}.set-badge.t-warmup{background:var(--warn-bg);color:var(--warn-ink)}.set-badge.t-drop{background:var(--info-bg);color:var(--info-ink)}.set-badge.t-failure{background:var(--danger-bg);color:var(--danger-ink)}.ex-opt{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text-2)}.ex-opt select{width:112px}.suffix-input{position:relative;display:inline-flex}.suffix-input input{width:72px;padding-right:22px}.suffix-input>span{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--text-2);pointer-events:none}@media(max-width:640px){.set-row{grid-template-columns:30px minmax(0,1fr) 64px 72px 32px;gap:6px}}.ex-create{display:flex;align-items:center;gap:12px;text-align:left;padding:10px;min-height:64px;cursor:pointer;border:1px dashed var(--line-strong);border-radius:14px;background:var(--card)}.ex-create:hover{border-color:var(--accent);background:var(--softer)}.create-ex{display:flex;flex-direction:column;gap:16px}.create-preview{display:flex;align-items:flex-end;gap:14px}.choice-set{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;min-width:0}.choice-set legend{font-weight:700;font-size:14px;padding:0;margin-bottom:8px}.create-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.segmented{display:inline-flex;flex-wrap:wrap;background:var(--soft);border-radius:12px;padding:3px;gap:2px;align-self:flex-start}.segmented button{border:0;background:none;border-radius:9px;padding:7px 12px;font-size:14px;font-weight:700;color:var(--text-2);cursor:pointer}.segmented button[aria-pressed=true]{background:var(--card);color:var(--text);box-shadow:0 1px 2px #0f172a1f}.chip,.segmented button,.ex-tile,.ex-create{transition:transform .12s ease-out}.chip:active,.segmented button:active,.ex-tile:active,.ex-create:active{transform:scale(.98)}.skeleton{display:flex;flex-direction:column;gap:10px;padding:6px 0}.sk-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--sk-a) 0%,var(--sk-b) 40%,var(--sk-a) 80%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.sk-line:first-child{height:16px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.sk-line{animation:none}}.table-search{flex:0 1 220px;min-width:160px;padding:5px 10px;margin-right:4px}tr.row-link{cursor:pointer;transition:background-color .12s ease}table.clients tbody tr:hover{background:var(--softer)}table.clients thead th{position:sticky;top:0;background:var(--card)}.toaster{position:fixed;left:0;right:0;bottom:24px;z-index:60;display:flex;justify-content:center;pointer-events:none}.toaster ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;border-radius:14px;background:var(--toast-bg);color:var(--toast-ink);font-weight:600;border:1px solid var(--line);font-size:14px;box-shadow:var(--shadow-lg);max-width:min(520px,calc(100vw - 32px));transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}@starting-style{.toast{opacity:0;transform:translateY(12px) scale(.98)}}.toast-icon{width:20px;height:20px;border-radius:50%;background:#22c55e;color:#0f172a;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;flex-shrink:0}.toast.error .toast-icon{background:#f87171}.toast-x{border:0;background:none;color:var(--text-3);cursor:pointer;width:26px;height:26px;border-radius:8px}.toast-x:hover{color:var(--toast-ink);background:#7f7f7f29}@media(max-width:900px){.toaster{bottom:calc(84px + env(safe-area-inset-bottom))}}dialog{border:1px solid var(--line);box-shadow:var(--shadow-lg)}dialog[open]{transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}@starting-style{dialog[open]{opacity:0;transform:scale(.96)}}dialog::backdrop{background:#0f172a66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog[open]::backdrop{transition:opacity .2s ease}@starting-style{dialog[open]::backdrop{opacity:0}}@media(prefers-reduced-motion:reduce){dialog[open]{transition:opacity .15s ease}@starting-style{dialog[open]{transform:none}}}.tab,.alert,.navlink,.bottomnav a{transition:transform .12s var(--ease-out),background-color .15s ease,color .15s ease}.tab:active,.alert:active,.bottomnav a:active{transform:scale(.97)}.tab{box-shadow:var(--shadow-xs)}.stat-value{letter-spacing:-.02em}.hero{background:var(--card)}.search-trigger{text-align:left;font-size:14px}.search-trigger .search-placeholder{flex:1;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(hover:hover)and (pointer:fine){.search-trigger:hover{background:var(--line)}}.skip-link{position:absolute;left:12px;top:-48px;z-index:50;background:var(--card);padding:8px 12px;border-radius:10px;box-shadow:var(--shadow-lg)}.skip-link:focus{top:10px}.main:focus{outline:none}.nav-meta{margin-left:auto;font-size:12px;font-weight:700;color:var(--text-3)}.shortcut-hint{padding:16px 12px 0}@media(max-width:640px){.me-name{display:none}}dialog.palette{padding:0;width:min(620px,calc(100vw - 24px));margin-top:12vh;border-radius:18px;overflow:hidden;transition:none}@starting-style{dialog.palette[open]{opacity:1;transform:none}}dialog.palette::backdrop{background:#0f172a52}.palette-body{display:flex;flex-direction:column;max-height:min(560px,76vh)}.palette-search{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);color:var(--text-2)}.palette-search input{flex:1;border:0;outline:none;font-size:17px;background:none;color:var(--text)}.palette-list{list-style:none;margin:0;padding:6px;overflow-y:auto;flex:1}.palette-group{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:10px 10px 4px}.palette-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;cursor:pointer}.palette-item.active{background:var(--soft)}.palette-icon{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--soft);color:var(--text-2)}.palette-item.active .palette-icon{background:var(--card);box-shadow:var(--shadow-xs)}.palette-icon .avatar{width:34px;height:34px}.palette-text{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.palette-text>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--line);background:var(--softer)}@media(max-width:640px){.palette-foot{display:none}dialog.palette{margin-top:8px}}.savebar{bottom:16px;margin-top:4px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--glass);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);box-shadow:var(--shadow-lg);z-index:10}.save-hint{order:9;margin-left:auto}@media(max-width:900px){.savebar{bottom:calc(76px + env(safe-area-inset-bottom))}.save-hint kbd,.shortcut-hint{display:none}}.page-head h1+.muted{font-size:15px}.empty{color:var(--text-3)}@media(max-width:640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:14px 16px}.stat-value{font-size:26px;line-height:32px}.tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0}.hero{padding:18px}}@media(max-width:900px){.cols>.wide,.cols>.side{flex-basis:100%}}@media(max-width:900px){.shell{align-items:stretch}.main{width:100%;max-width:100%}}.ex-wrap{display:flex;flex-direction:column}.ex-link{display:flex;justify-content:center;position:relative;height:0;z-index:1}.ex-link button{transform:translateY(-50%);margin-top:6px;border:1px dashed var(--line-strong);background:var(--card);color:var(--text-3);font-size:12px;font-weight:700;border-radius:999px;padding:3px 12px;cursor:pointer;opacity:.75;transition:opacity .15s ease,color .15s ease,border-color .15s ease}.ex-wrap:hover .ex-link button,.ex-link button:focus-visible{opacity:1}@media(hover:hover)and (pointer:fine){.ex-link button:hover{color:var(--accent);border-color:var(--accent);opacity:1}}.ex-link.on button{border-style:solid;border-color:var(--accent);background:var(--accent);color:var(--on-accent);opacity:1}@media(hover:none){.ex-link button{opacity:1}}.ex-block.linked-before,.ex-block.linked-after{border-color:var(--text-3);box-shadow:inset 3px 0 0 var(--accent)}.ex-block.linked-after{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.ex-block.linked-before{border-top-left-radius:6px;border-top-right-radius:6px}.superset-pill{background:var(--accent);color:var(--on-accent);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px}.ex-link{align-items:flex-start}.ex-link button{flex-shrink:0;line-height:18px;white-space:nowrap}:root[data-theme=dark]{--bg: #0b0e13;--card: #141920;--text: #e8edf4;--text-2: #a3aebd;--text-3: #6f7b8c;--accent: #d5dde8;--accent-hover: #f1f5f9;--on-accent: #0f172a;--line: #232a35;--line-strong: #364050;--soft: #1b212b;--softer: #171c25;--good: #4ade80;--bad: #f87171;--warn-bg: rgba(245, 158, 11, .16);--warn-ink: #fbbf24;--danger-bg: rgba(239, 68, 68, .16);--danger-ink: #fca5a5;--info-bg: rgba(99, 102, 241, .2);--info-ink: #b4bdfc;--edit-bg: rgba(59, 130, 246, .22);--good-bg: rgba(34, 197, 94, .16);--good-ink: #86efac;--glass: rgba(14, 18, 24, .8);--bar: #475263;--toast-bg: #1f2632;--toast-ink: #f1f5f9;--sk-a: #1a2029;--sk-b: #252d38;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 8px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .3), 0 16px 40px -8px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(213, 221, 232, .22);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0b0e13;--card: #141920;--text: #e8edf4;--text-2: #a3aebd;--text-3: #6f7b8c;--accent: #d5dde8;--accent-hover: #f1f5f9;--on-accent: #0f172a;--line: #232a35;--line-strong: #364050;--soft: #1b212b;--softer: #171c25;--good: #4ade80;--bad: #f87171;--warn-bg: rgba(245, 158, 11, .16);--warn-ink: #fbbf24;--danger-bg: rgba(239, 68, 68, .16);--danger-ink: #fca5a5;--info-bg: rgba(99, 102, 241, .2);--info-ink: #b4bdfc;--edit-bg: rgba(59, 130, 246, .22);--good-bg: rgba(34, 197, 94, .16);--good-ink: #86efac;--glass: rgba(14, 18, 24, .8);--bar: #475263;--toast-bg: #1f2632;--toast-ink: #f1f5f9;--sk-a: #1a2029;--sk-b: #252d38;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 2px 8px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 2px 4px rgba(0, 0, 0, .3), 0 16px 40px -8px rgba(0, 0, 0, .6);--ring: 0 0 0 3px rgba(213, 221, 232, .22);color-scheme:dark}}:root[data-theme=dark] .area-chest{--tint: rgba(239, 68, 68, .16);--ink: #fca5a5}:root[data-theme=dark] .area-back{--tint: rgba(59, 130, 246, .18);--ink: #93c5fd}:root[data-theme=dark] .area-shoulders{--tint: rgba(245, 158, 11, .16);--ink: #fcd34d}:root[data-theme=dark] .area-arms{--tint: rgba(139, 92, 246, .18);--ink: #c4b5fd}:root[data-theme=dark] .area-legs{--tint: rgba(34, 197, 94, .16);--ink: #86efac}:root[data-theme=dark] .area-glutes{--tint: rgba(236, 72, 153, .16);--ink: #f9a8d4}:root[data-theme=dark] .area-core{--tint: rgba(14, 165, 233, .16);--ink: #7dd3fc}:root[data-theme=dark] .area-full{--tint: rgba(148, 163, 184, .14);--ink: #cbd5e1}:root[data-theme=dark] dialog::backdrop,dialog.palette::backdrop{background:#0009}:root[data-theme=dark] .day.today{box-shadow:0 0 0 2px #60a5fa}:root[data-theme=dark] .logo{background:linear-gradient(160deg,#64748b,#334155)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .area-chest{--tint: rgba(239, 68, 68, .16);--ink: #fca5a5}:root:not([data-theme=light]) .area-back{--tint: rgba(59, 130, 246, .18);--ink: #93c5fd}:root:not([data-theme=light]) .area-shoulders{--tint: rgba(245, 158, 11, .16);--ink: #fcd34d}:root:not([data-theme=light]) .area-arms{--tint: rgba(139, 92, 246, .18);--ink: #c4b5fd}:root:not([data-theme=light]) .area-legs{--tint: rgba(34, 197, 94, .16);--ink: #86efac}:root:not([data-theme=light]) .area-glutes{--tint: rgba(236, 72, 153, .16);--ink: #f9a8d4}:root:not([data-theme=light]) .area-core{--tint: rgba(14, 165, 233, .16);--ink: #7dd3fc}:root:not([data-theme=light]) .area-full{--tint: rgba(148, 163, 184, .14);--ink: #cbd5e1}:root:not([data-theme=light]) dialog::backdrop,dialog.palette::backdrop{background:#0009}:root:not([data-theme=light]) .day.today{box-shadow:0 0 0 2px #60a5fa}:root:not([data-theme=light]) .logo{background:linear-gradient(160deg,#64748b,#334155)}}.theme-switch button{display:inline-flex;align-items:center;gap:6px}.theme-switch.compact button{padding:6px 10px}.sidenav-theme{padding:16px 12px 0}.week-builder{display:flex;flex-direction:column;gap:14px}.day-toggles{display:flex;flex-direction:column;gap:8px}.day-chip{min-width:52px;justify-content:center}.week-empty{display:flex;flex-direction:column;gap:4px;align-items:center;text-align:center;padding:28px 16px;border:1px dashed var(--line-strong);border-radius:16px}.day-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 4px;scrollbar-width:thin}.day-tab{flex:0 0 auto;min-width:128px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--softer);cursor:pointer;color:var(--text);transition:transform .12s var(--ease-out),border-color .15s ease,background-color .15s ease}.day-tab:active{transform:scale(.98)}@media(hover:hover)and (pointer:fine){.day-tab:not(.active):hover{border-color:var(--line-strong)}}.day-tab.active{background:var(--card);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),var(--shadow-sm)}.dt-day{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.day-tab.active .dt-day{color:var(--accent)}.dt-name{font-weight:800;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-count{font-size:12px;color:var(--text-2)}.day-panel{display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--softer)}.day-panel-head{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end}.day-panel .ex-block{background:var(--card)}.day-note{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.ex-empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:22px;border-radius:14px;cursor:pointer;border:1px dashed var(--line-strong);background:transparent;color:var(--text-2);font-weight:700}@media(hover:hover)and (pointer:fine){.ex-empty:hover{border-color:var(--accent);color:var(--text)}}.plan-instead{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--radius);text-decoration:none;color:var(--text);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:border-color .15s ease,transform .12s var(--ease-out)}.plan-instead:active{transform:scale(.99)}@media(hover:hover)and (pointer:fine){.plan-instead:hover{border-color:var(--accent);color:var(--text)}}.plan-instead-go{margin-left:auto;font-size:20px;color:var(--text-3)}
