:root{color-scheme:dark;--bg: #0d0d0c;--surface: #181816;--surface-2: #1c1b18;--panel-2: #23221f;--line: #33322d;--line-soft: #26251f;--ink: #f7f6f1;--ink-2: #d5d3c8;--ink-3: #a3a095;--accent: #f2f0e8;--on-accent: #0d0d0c;--accent-text: var(--accent);--accent-2: #7ad69a;--ok: #7ad69a;--warn: #ff9466;--paper: #f7f6f1;--paper-ink: #1b1b19;--f-display: "Big Shoulders Display", "Arial Narrow", Impact, sans-serif;--f-body: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "JetBrains Mono", ui-monospace, Menlo, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,input:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}h1,h2,h3{margin:0;text-wrap:balance}p{margin:0}.display{font-family:var(--f-display);font-weight:900;text-transform:uppercase;letter-spacing:.01em;line-height:.92}.eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.muted{color:var(--ink-3)}.note{font-size:12.5px;color:var(--ink-3);line-height:1.45}.shell{min-height:100vh;min-height:100dvh;width:100%;max-width:440px;margin:0 auto;display:flex;flex-direction:column}.shell-body{flex:1;display:flex;flex-direction:column}.screen{flex:1;width:100%;max-width:440px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}.screen.center{justify-content:center;min-height:100vh;min-height:100dvh;padding-top:calc(16px + env(safe-area-inset-top,0px))}.shell .screen{padding-bottom:24px}.top{display:flex;align-items:center;gap:12px;padding:12px 16px 4px;padding-top:calc(12px + env(safe-area-inset-top,0px))}.top .gym-logo{width:40px;height:40px;flex:none}.top .who{flex:1;min-width:0}.top .who small{display:block;color:var(--ink-3);font-size:12px}.top .who b{display:block;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .out{min-height:44px;font-size:12px;color:var(--ink-3);padding:6px 8px}.top-pill{padding:0 16px}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--panel-2);color:var(--ink)}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.gym-logo{object-fit:contain;background:transparent}svg.gym-logo{border-radius:50%}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px}.card p{margin:0}.card.narrow{width:100%}.hero{background:var(--accent);color:var(--on-accent);border-radius:16px;padding:18px 18px 16px;display:flex;flex-direction:column;gap:12px}.hero .eyebrow{color:color-mix(in srgb,var(--on-accent) 70%,transparent)}.hero .display{font-size:44px;overflow-wrap:anywhere}.hero .btn{background:var(--on-accent);color:var(--accent)}.hero p{font-size:13.5px}.hero.locked{background:var(--panel-2);color:var(--ink);border:1px dashed var(--warn)}.hero.locked .eyebrow{color:var(--warn)}.hero.locked .display{font-size:38px}.hero.locked .btn{background:var(--accent);color:var(--on-accent)}.steps{display:flex;gap:6px}.steps span{flex:1;height:8px;border-radius:4px;background:color-mix(in srgb,var(--on-accent) 18%,transparent)}.steps span.done{background:color-mix(in srgb,var(--on-accent) 55%,transparent)}.steps span.now{background:var(--on-accent)}.stepl{display:flex;justify-content:space-between;gap:8px;font-family:var(--f-mono);font-size:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;font-weight:700;font-size:15px;border-radius:12px;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}.btn.small{min-height:44px;font-size:13px;padding:0 12px;border-radius:10px}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.link{min-height:44px;padding:0 4px;font-size:14px;font-weight:600;color:var(--accent-text);background:none;border:0}.center-link{align-self:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px;text-align:left;min-height:104px}.tile b{font-size:15px}.tile small{color:var(--ink-3);font-size:12.5px;line-height:1.35}.tile .ic{width:28px;height:28px;color:var(--accent-text)}.tile.wide{grid-column:1 / -1;min-height:0;flex-direction:row;align-items:center;gap:12px}.tile.wide>div{flex:1;min-width:0;display:flex;flex-direction:column}.soon{gap:6px}.soon p{color:var(--ink-2);font-size:14px}.nav{position:sticky;bottom:0;z-index:20;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));background:#0d0d0cf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line)}.nav button{min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:11px;font-weight:600;color:var(--ink-3);padding:6px 2px;border-radius:10px}.nav button svg{width:22px;height:22px}.nav button[aria-current=page]{color:var(--accent-text)}.login{flex:1;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:28px 4px}.login .gym-logo{width:150px;height:150px;align-self:center}.login h1{font-size:40px;text-align:center}.login .hint{text-align:center}.brand{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.brand .gym-logo{width:96px;height:96px}.brand h1{font-size:34px}.field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--ink-3)}.field small{font-weight:400}.field input{width:100%;min-height:48px;padding:12px 14px;font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px}.field input:disabled{opacity:.6}.input-row{display:flex;align-items:center;gap:8px}.input-row input{flex:1;min-width:0}.hint{color:var(--ink-3);font-size:12.5px;line-height:1.45}.error{margin:0;padding:10px 12px;font-size:14px;color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent);border-radius:10px}.notice{padding:10px 12px;font-size:14px;color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent);border-radius:10px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.spinner-wrap{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent-text);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}.routine-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.routine-head h2{font-size:30px;overflow-wrap:anywhere}.lockbar{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-3);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px}.lockbar svg{width:18px;height:18px;color:var(--accent-text);flex:none}.sheets{display:flex;flex-direction:column;gap:14px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.page{position:relative;background:var(--paper);color:var(--paper-ink);border-radius:6px;padding:18px 16px 20px;overflow:hidden;box-shadow:0 10px 30px #00000073}.page .ph{display:flex;justify-content:space-between;align-items:flex-end;gap:8px;border-bottom:3px solid var(--paper-ink);padding-bottom:8px;margin-bottom:12px}.page .ph .display{font-size:30px;overflow-wrap:anywhere;min-width:0}.page .ph small{font-family:var(--f-mono);font-size:10px;text-align:right;flex:none}.page h3{font-family:var(--f-display);font-weight:800;font-size:20px;text-transform:uppercase;margin:12px 0 6px;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.page h3 em{font-style:normal;font-family:var(--f-mono);font-size:10px;background:var(--paper-ink);color:var(--accent);padding:2px 6px;border-radius:3px}.page table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.page td{padding:7px 0;border-bottom:1px solid #dcdad2;vertical-align:top;overflow-wrap:anywhere}.page td.n{width:44%;font-family:var(--f-mono);font-size:12px;text-align:right;padding-left:10px;font-variant-numeric:tabular-nums}.page .sub{display:block;font-size:11.5px;color:#5d5b53;margin-top:2px}.page .pnote{margin-top:12px;font-size:12px;background:#ece9df;border-left:3px solid var(--paper-ink);padding:8px 10px}.page .pnote p+p{margin-top:4px}.page.loading{min-height:220px;display:flex;align-items:center;justify-content:center}.page.loading .spinner{border-color:#dcdad2;border-top-color:var(--paper-ink)}.page .wm{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.18;background-repeat:repeat}.page-error{background:var(--surface);border:1px dashed var(--warn);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;font-size:14px}@media print{.sheets,.lockbar{display:none}}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;background:#000;color:#fff;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.viewer-bar{display:flex;align-items:center;gap:10px;padding:6px 12px;padding-left:calc(12px + env(safe-area-inset-left,0px));padding-right:calc(12px + env(safe-area-inset-right,0px));background:#141414eb}header.viewer-bar{padding-top:calc(6px + env(safe-area-inset-top,0px))}footer.viewer-bar{padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-between}.viewer-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-align:center}.viewer-count{font-variant-numeric:tabular-nums;color:#d1d5db;min-width:56px;text-align:right}.viewer-hint{color:#9ca3af;font-size:13px}.viewer-btn{min-height:44px;min-width:44px;padding:0 12px;font-size:15px;font-weight:600;color:#fff;background:transparent;border:1px solid #4b5563;border-radius:10px}.viewer-btn:disabled{opacity:.35;cursor:default}.viewer-rotate{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:14px;color:#111;background:#fde68a}.viewer-rotate span{flex:1}.viewer-x{min-width:44px;min-height:36px;font-size:22px;line-height:1;color:#111;background:none;border:0}.viewer-stage{position:relative;flex:1;min-height:0;overflow:hidden}.viewer-status{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center}.viewer-status p{margin:0;max-width:320px}.viewer-status .spinner-wrap .muted{color:#9ca3af}.zoom-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;touch-action:none;cursor:grab}.zoom-content{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:50% 50%;will-change:transform}.viewer-img{max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media (orientation: landscape) and (max-height: 500px){.viewer-bar{padding-top:2px;padding-bottom:2px}header.viewer-bar{padding-top:calc(2px + env(safe-area-inset-top,0px))}footer.viewer-bar{padding-bottom:calc(2px + env(safe-area-inset-bottom,0px))}.viewer-btn{min-height:40px}.viewer-hint{display:none}}.routine-pages{font-weight:400;opacity:.85}@media (prefers-reduced-motion: reduce){*{transition:none!important}}
