*,:before,:after{box-sizing:border-box}:root{--bg:#0f1115;--bg-elevated:#1a1d24;--bg-card:#1e222b;--text:#e5e7eb;--text-muted:#9ca3af;--text-dim:#6b7280;--border:#2d3139;--hang:#f59e0b;--hang-bg:#f59e0b1f;--pullups:#a78bfa;--pullups-bg:#a78bfa1f;--rest:#38bdf8;--rest-bg:#38bdf81f;--accent:#f59e0b;--accent-hover:#fbbf24;--danger:#ef4444;--success:#22c55e;--radius:12px;--radius-lg:20px;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100svh;margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{margin:0;font-weight:600}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;font-family:inherit}button:disabled{opacity:.4;cursor:not-allowed}.app{flex-direction:column;flex:1;width:100%;max-width:480px;min-height:100svh;margin:0 auto;display:flex}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.app-header h1{letter-spacing:-.02em;font-size:20px}.header-actions{align-items:center;gap:12px;display:flex}.header-duration{color:var(--text-muted);font-size:13px;font-family:var(--mono)}.signin{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.signin-form{align-items:center;gap:8px;display:flex}.signin-input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:8px;width:180px;padding:8px 12px;font-size:13px}.signin-input:focus{border-color:var(--accent);outline:none}.btn-signin{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500}.btn-signin:hover{border-color:var(--text-dim)}.signin-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:13px;overflow:hidden}.signin-sent{color:var(--success);font-size:13px}.signin-error{color:var(--danger);text-align:right;flex-basis:100%;font-size:12px}.app-main{flex-direction:column;flex:1;gap:20px;padding:20px;display:flex}.app-footer{text-align:center;padding:12px 20px 20px}.app-footer p{color:var(--text-dim);margin:0;font-size:12px}.timer-display{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border);flex-direction:column;align-items:center;gap:16px;padding:24px 20px;transition:border-color .4s,box-shadow .4s;display:flex;position:relative;overflow:hidden}.timer-display.phase-hang{border-color:#f59e0b4d;box-shadow:0 0 40px #f59e0b0f}.timer-display.phase-pullups{border-color:#a78bfa4d;box-shadow:0 0 40px #a78bfa0f}.timer-display.phase-rest{border-color:#38bdf84d;box-shadow:0 0 40px #38bdf80f}.overall-progress{background:var(--border);height:3px;position:absolute;top:0;left:0;right:0}.overall-progress-fill{background:var(--accent);border-radius:0 2px 2px 0;height:100%;transition:width .2s linear}.step-counter{font-size:12px;font-family:var(--mono);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.step-label{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.grip-badge{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:500;transition:opacity .3s;display:inline-flex}.step-title{letter-spacing:-.01em;font-size:22px}.step-subtitle{color:var(--text-muted);margin:0;font-size:14px}.big-timer{font-family:var(--mono);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:88px;font-weight:700;line-height:1;transition:color .4s,font-size .3s}.big-timer.tenths{font-size:72px}.phase-hang .big-timer{color:var(--hang)}.phase-pullups .big-timer:not(.timed){color:var(--pullups);font-size:56px}.phase-rest .big-timer{color:var(--rest)}.next-up{border-radius:var(--radius);background:var(--bg-elevated);border:1px dashed var(--border);flex-direction:column;align-items:center;gap:8px;width:100%;padding:12px 16px;display:flex}.next-up-caption{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:11px;font-weight:600}.next-up-step{flex-direction:column;align-items:center;gap:4px;display:flex}.next-up-title{font-size:16px;font-weight:600}.next-up-subtitle{color:var(--text-muted);font-size:13px}.step-progress{background:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.step-progress-fill{border-radius:2px;height:100%;transition:width .1s linear,background-color .4s}.phase-hang .step-progress-fill{background:var(--hang)}.phase-pullups .step-progress-fill{background:var(--pullups)}.phase-rest .step-progress-fill{background:var(--rest)}.status-badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:500;transition:background-color .3s,color .3s}.status-idle{background:var(--bg-elevated);color:var(--text-muted)}.status-running{color:var(--success);background:#22c55e26}.status-paused{color:var(--hang);background:#f59e0b26}.status-finished{color:var(--success);background:#22c55e26}.controls{flex-direction:column;gap:12px;display:flex}.controls-secondary{justify-content:center;gap:12px;display:flex}.btn{border-radius:var(--radius);justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:15px;font-weight:500;transition:background .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-secondary{background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border);border-radius:50%;width:52px;height:52px;padding:0}.btn-secondary:hover:not(:disabled){color:var(--text);border-color:var(--text-dim)}.btn-main{border-radius:var(--radius-lg);width:100%;padding:18px 24px;font-size:17px;font-weight:600}.btn-start{background:var(--accent);color:#1a1a1a}.btn-start:hover{background:var(--accent-hover)}.btn-pause{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-pause:hover{background:var(--bg-elevated)}.btn-complete{border-radius:var(--radius);background:var(--pullups);color:#1a1a1a;width:100%;padding:14px 24px;font-size:15px;font-weight:600}.btn-edit{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 16px;font-size:13px}.btn-edit:hover{border-color:var(--text-dim)}.routine-overview{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);margin:0 20px 8px;overflow:hidden}.routine-overview-toggle{width:100%;color:var(--text);text-align:left;background:0 0;align-items:center;gap:12px;padding:14px 16px;display:flex}.routine-overview-title{flex:1;font-size:14px;font-weight:500}.routine-overview-meta{color:var(--text-dim);font-size:12px;font-family:var(--mono)}.chevron{color:var(--text-dim);transition:transform .2s}.chevron.open{transform:rotate(180deg)}.routine-steps{max-height:320px;margin:0;padding:0 8px 8px;list-style:none;overflow-y:auto}.routine-step{border-radius:8px;align-items:center;gap:10px;padding:8px;font-size:14px;display:flex}.routine-step.current{background:var(--bg-elevated);outline:1px solid var(--accent);outline-offset:-1px}.routine-step.past{opacity:.45}.step-num{font-family:var(--mono);color:var(--text-dim);text-align:right;flex-shrink:0;width:22px;font-size:11px}.step-icon{flex-shrink:0;font-size:16px}.step-info{flex-direction:column;gap:1px;min-width:0;display:flex}.step-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.step-grip{color:var(--text-muted);font-weight:400}.step-detail{color:var(--text-dim);font-size:12px;font-family:var(--mono)}.routine-editor{flex-direction:column;flex:1;gap:16px;width:100%;max-width:480px;min-height:100svh;margin:0 auto;padding:16px 20px 32px;display:flex}.editor-header{justify-content:space-between;align-items:center;display:flex}.editor-header h3{font-size:18px}.btn-text{color:var(--text-muted);background:0 0;border-radius:6px;padding:6px 10px;font-size:14px}.btn-text:hover{color:var(--text);background:var(--bg-elevated)}.editor-field{flex-direction:column;gap:6px;display:flex}.editor-field>span{color:var(--text-muted);font-size:13px;font-weight:500}.editor-field input[type=text]{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);width:100%;padding:12px 14px;font-family:inherit;font-size:15px}.editor-field input[type=text]:focus{border-color:var(--accent);outline:none}.editor-steps{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.editor-step{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.editor-step.type-hang{border-left:3px solid var(--hang)}.editor-step.type-pullups{border-left:3px solid var(--pullups)}.editor-step.type-rest{border-left:3px solid var(--rest)}.editor-step-row{align-items:center;gap:8px;display:flex}.editor-step-index{font-family:var(--mono);color:var(--text-dim);text-align:right;flex-shrink:0;width:20px;font-size:11px}.editor-step-row select,.editor-step-row input,.editor-step-fields select,.editor-step-fields input{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.editor-step-row select:focus,.editor-step-row input:focus,.editor-step-fields select:focus,.editor-step-fields input:focus{border-color:var(--accent);outline:none}.editor-label-input{flex:1;min-width:0}.editor-step-actions{flex-shrink:0;gap:4px;display:flex}.btn-icon{background:var(--bg-elevated);border:1px solid var(--border);width:28px;height:28px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:10px;display:inline-flex}.btn-icon:hover:not(:disabled){color:var(--text);border-color:var(--text-dim)}.btn-icon:disabled{opacity:.3}.btn-remove:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.editor-step-fields{gap:12px;padding-left:28px;display:flex}.editor-step-fields label{color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.editor-step-fields input[type=number]{width:64px}.editor-add-buttons{gap:8px;display:flex}.btn-add{background:var(--bg-card);color:var(--text-muted);border:1px dashed var(--border);border-radius:var(--radius);flex:1;padding:10px;font-size:13px}.btn-add:hover{color:var(--text);border-color:var(--text-dim)}.btn-save{border-radius:var(--radius-lg);background:var(--accent);color:#1a1a1a;width:100%;padding:14px;font-size:15px;font-weight:600}.btn-save:hover:not(:disabled){background:var(--accent-hover)}.session-history{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);margin:0 20px 8px;overflow:hidden}.session-history-toggle{width:100%;color:var(--text);text-align:left;background:0 0;align-items:center;gap:12px;padding:14px 16px;display:flex}.session-history-title{flex:1;font-size:14px;font-weight:500}.session-history-meta{color:var(--text-dim);font-size:12px;font-family:var(--mono)}.session-history-body{padding:0 8px 8px}.session-history-empty{color:var(--text-dim);text-align:center;margin:0;padding:12px 8px;font-size:13px}.session-list{flex-direction:column;gap:4px;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.session-item{border-radius:8px;align-items:center;gap:8px;padding:8px;font-size:14px;display:flex}.session-item:hover{background:var(--bg-elevated)}.session-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.session-routine{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.session-meta{color:var(--text-dim);font-size:12px;font-family:var(--mono)}.session-clear{margin:4px auto 0;display:block}@supports (padding:max(0px)){.app-header{padding-top:max(16px, env(safe-area-inset-top))}.app-footer{padding-bottom:max(20px, env(safe-area-inset-bottom))}.routine-editor{padding-top:max(16px, env(safe-area-inset-top));padding-bottom:max(32px, env(safe-area-inset-bottom))}}
