/* Hallmark · macrostructure: Workbench · tone: modern-minimal · anchor hue: lime */
/* Hallmark · pre-emit critique: P4 H4 E4 S5 R4 V4 */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
@import url('/tokens.css');
.auth-shell{max-width:580px;margin:0 auto;padding:clamp(24px,8vw,80px) 20px}.auth-shell>.brand{margin-bottom:32px}.auth-panel{display:grid;gap:24px}.auth-panel h1{font-size:clamp(2rem,7vw,3rem)}.auth-panel input{width:100%;min-width:0}.topline{flex-wrap:wrap}
.library-controls{display:grid;gap:16px;margin:20px 0}.library-controls label{display:grid;gap:8px}.library-entry{padding:20px 0;border-bottom:var(--rule)}.library-entry .buttons{margin-top:12px}.library-entry p{margin-top:6px}.heading{flex-wrap:wrap}
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font:var(--text-body)/1.55 var(--font-body)}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:var(--rule);background:transparent;border-radius:var(--radius-sm);padding:var(--space-sm) var(--space-md);min-height:44px;white-space:nowrap}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button:hover{background:var(--color-raised)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}a{color:var(--color-accent)}input,select,textarea{background:var(--color-paper);border:var(--rule);border-radius:var(--radius-sm);padding:var(--space-sm);min-height:44px;max-width:100%;color-scheme:dark}textarea{width:100%;resize:vertical}h1,h2,h3,p{margin:0}h1,h2,h3,.brand,.big{font-family:var(--font-display)}h1{font-size:clamp(2rem,4vw,var(--text-title));line-height:1.1;letter-spacing:-.04em;overflow-wrap:anywhere}h2{font-size:1.3rem;line-height:1.3}h3{font-size:1.08rem}p{color:var(--color-muted)}small,.muted{color:var(--color-muted);font-size:var(--text-small)}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{border-right:var(--rule);padding:var(--space-xl) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-2xl);position:sticky;top:0;height:100vh}.brand{font-size:1.4rem;font-weight:700;letter-spacing:-.06em;white-space:nowrap}.brand b{color:var(--color-accent)}.brand small{display:block;font-family:var(--font-body);font-weight:400;letter-spacing:0;margin-top:var(--space-xs)}nav{display:flex;flex-direction:column;gap:var(--space-sm)}nav button{text-align:left;border-color:transparent;display:flex;align-items:center;gap:var(--space-md);font-weight:500}nav button.active{background:var(--color-raised);color:var(--color-accent)}.nav-icon{width:22px;font-size:1.2rem;text-align:center}.sidebar-bottom{margin-top:auto;display:grid;gap:var(--space-md)}.avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--color-raised);margin-right:var(--space-sm)}main{padding:var(--space-xl) var(--space-2xl);max-width:1500px;width:100%;margin:auto}.topline,.row,.heading,.card-title,.weeknav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.topline{margin-bottom:var(--space-xl);font-size:var(--text-small);color:var(--color-muted)}.heading{margin-bottom:var(--space-xl);align-items:flex-end}.heading p{margin-top:var(--space-sm)}.primary{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent);font-weight:700}.primary:hover{background:var(--color-ink)}.subtle{border:none;color:var(--color-muted)}.weeknav{margin-bottom:var(--space-md)}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-sm);margin-bottom:var(--space-xl)}.day{padding:var(--space-md) var(--space-sm);text-align:center;background:var(--color-panel);display:grid;justify-items:center;gap:var(--space-xs)}.day span{font-size:var(--text-small);color:var(--color-muted)}.day b{font-family:var(--font-display);font-size:1.45rem;font-weight:500}.day small{font-size:.75rem}.day.selected{border-color:var(--color-accent);background:var(--color-raised)}.day.selected b{color:var(--color-accent)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-xl);align-items:start}.panel{border:var(--rule);border-radius:var(--radius-lg);padding:var(--space-lg);background:var(--color-panel)}.panel+.panel{margin-top:var(--space-lg)}.card-title{margin-bottom:var(--space-lg)}.pill{font-size:.75rem;padding:var(--space-xs) var(--space-sm);border:var(--rule);border-radius:99px;white-space:nowrap;color:var(--color-muted)}.accent{color:var(--color-accent)}.notice{border:var(--rule);padding:var(--space-md);border-radius:var(--radius-sm);margin-bottom:var(--space-lg);font-size:var(--text-small);color:var(--color-muted)}.exercise{padding:var(--space-lg) 0;border-top:var(--rule)}.exercise:first-of-type{border-top:none}.exercise-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.exercise-heading p{font-size:var(--text-small)}.sethead,.setrow{display:grid;grid-template-columns:40px minmax(65px,1fr) minmax(65px,1fr) 52px;gap:var(--space-sm);align-items:center}.sethead{font-size:var(--text-small);color:var(--color-muted);margin-bottom:var(--space-sm)}.setrow{margin-top:var(--space-sm)}.setrow input{width:100%;text-align:center}.setrow label{display:grid;place-items:center;min-height:44px}.check{appearance:none;width:44px!important;height:44px;cursor:pointer;display:grid;place-content:center;margin:0;border-radius:var(--radius-sm)}.check:checked{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.check:checked:after{content:'✓';font-weight:700}.setrow.done .setnum{color:var(--color-accent)}.setnum{color:var(--color-muted);padding-left:var(--space-sm)}.superset{margin-top:var(--space-md);padding:var(--space-sm) 0;color:var(--color-accent);font-size:var(--text-small);border-bottom:var(--rule)}.progressbar{height:5px;background:var(--color-line);border-radius:var(--radius-sm);overflow:hidden;margin:var(--space-md) 0}.progressbar div{height:100%;background:var(--color-accent)}.big{font-size:2.5rem;letter-spacing:-.04em;line-height:1.2}.big small{font-size:1rem;letter-spacing:0}.stack{display:grid;gap:var(--space-md)}.aside-note{border-top:var(--rule);padding-top:var(--space-md);margin-top:var(--space-md)}.full{width:100%}.timer{font-family:var(--font-display);font-size:3.2rem;font-variant-numeric:tabular-nums;text-align:center;margin:var(--space-md) 0}.buttons{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.empty{padding:var(--space-xl) 0;text-align:center;display:grid;justify-items:center;gap:var(--space-md)}.empty h2{font-size:1.5rem}.plan-row{padding:var(--space-lg) 0;border-top:var(--rule);display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:var(--space-md);align-items:center}.plan-row p{font-size:var(--text-small)}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.metric{padding:var(--space-lg) 0}.metric .big{margin:var(--space-md) 0}.chart{width:100%;height:160px;color:var(--color-accent)}.chart polyline{fill:none;stroke:currentColor;stroke-width:3}.chart circle{fill:currentColor}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:var(--space-md) var(--space-sm);border-bottom:var(--rule);font-size:var(--text-small)}th{color:var(--color-muted);font-weight:400}.error{color:var(--color-error)}#status{font-size:var(--text-small)}dialog{background:var(--color-panel);color:var(--color-ink);border:var(--rule);border-radius:var(--radius-lg);padding:var(--space-lg);width:min(620px,calc(100% - 32px));max-height:90vh}dialog::backdrop{background:var(--color-paper);opacity:.8}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}form{display:grid;gap:var(--space-md)}form label{display:grid;gap:var(--space-sm);font-size:var(--text-small)}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.help{font-size:var(--text-small)}.loading{padding:var(--space-2xl)}.mobile-name{display:none}.history-note{white-space:pre-wrap}.linkbutton{display:inline-block;padding:var(--space-sm) 0;min-height:44px}.rest-symbol{font-family:var(--font-display);font-size:4rem;color:var(--color-accent)}.save-error{background:var(--color-panel);border:1px solid var(--color-error);padding:var(--space-md);margin-bottom:var(--space-lg)}
@media(max-width:1150px){main{padding:var(--space-xl)}.layout{grid-template-columns:minmax(0,1fr) 260px}.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:var(--space-xl) var(--space-md)}.brand{font-size:1.2rem}}
@media(max-width:900px){.shell{display:block}.sidebar{height:auto;position:static;border-right:0;padding:var(--space-md) var(--space-lg);border-bottom:var(--rule);gap:var(--space-md)}.brand small,.sidebar-bottom{display:none}nav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--color-panel);border-top:var(--rule);padding:var(--space-sm);padding-bottom:max(var(--space-sm),env(safe-area-inset-bottom))}nav button{display:grid;justify-items:center;text-align:center;gap:var(--space-xs);padding:var(--space-xs);font-size:var(--text-small)}nav button:last-child{display:none}.nav-icon{font-size:1rem}.layout{grid-template-columns:minmax(0,1fr) 250px}main{padding-bottom:112px}.heading{align-items:flex-start}.topline{margin-bottom:var(--space-lg)}}
@media(max-width:680px){main{padding:var(--space-lg) var(--space-md) 112px}.layout,.two{grid-template-columns:minmax(0,1fr)}.heading{display:block}.heading>.buttons,.heading>button{margin-top:var(--space-md)}.week{gap:var(--space-xs)}.day{padding:var(--space-sm) var(--space-xs);border-radius:var(--radius-sm)}.day small{display:none}.day span{font-size:.75rem}.day b{font-size:1.2rem}.panel{padding:var(--space-md)}.plan-row{grid-template-columns:75px minmax(0,1fr)}.plan-row button{grid-column:2;justify-self:start}.topline{align-items:flex-start}.formgrid{grid-template-columns:minmax(0,1fr)}.weeknav{gap:var(--space-sm)}.weeknav strong{font-size:var(--text-small)}.weeknav button{padding:var(--space-sm)}.sethead,.setrow{grid-template-columns:28px minmax(55px,1fr) minmax(55px,1fr) 44px}.exercise-heading{align-items:flex-start}.card-title{align-items:flex-start}.buttons{gap:var(--space-sm)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}button:active{transform:none}}
progress.progressbar{display:block;width:100%;border:0;appearance:none}progress::-webkit-progress-bar{background:var(--color-line);border-radius:var(--radius-sm)}progress::-webkit-progress-value{background:var(--color-accent);border-radius:var(--radius-sm)}progress::-moz-progress-bar{background:var(--color-accent)}input:disabled{opacity:.55;cursor:not-allowed}.help,.error{min-height:1.5em}input:user-invalid{border-color:var(--color-error)}
@media(max-width:680px){.panel>.row,.card-title{flex-wrap:wrap}.heading{margin-bottom:var(--space-lg)}.topline{font-size:.75rem}.week{margin-bottom:var(--space-lg)}.notice{padding:var(--space-sm);font-size:.8rem}.tablewrap{max-width:100%}.plan-row select{grid-column:2;width:100%}}
