:root{--text:#111827;--muted:#6b7280;--bg:#fff;--soft:#f9fafb;--card:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--focus:#93c5fd;--shadow:0 10px 30px #1118270f;--sans:Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Segoe UI", system-ui, sans-serif;font:16px/1.45 var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(circle at top left, #3b82f60f, transparent 34rem), var(--bg);min-width:320px;min-height:100svh;margin:0}*{box-sizing:border-box}button,input,select,textarea{font:inherit}button,select,input,textarea{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:12px}button,select,input{min-height:42px}button{cursor:pointer;justify-content:center;align-items:center;padding:0 14px;font-weight:700;display:inline-flex}button:disabled{cursor:not-allowed;opacity:.45}input,select,textarea{width:100%;padding:10px 12px}textarea{line-height:1.45}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app{width:min(960px,100% - 32px);margin:0 auto;padding:16px 0 48px}.timer-bar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;padding:12px 0;position:sticky;top:0}.timer-button,.top-card,.category-card,.session-card,.empty-card{border:1px solid var(--border);background:var(--card);box-shadow:var(--shadow);border-radius:22px}.timer-row{align-items:stretch;gap:8px;display:flex}.timer-button{text-align:left;flex:1;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:14px 18px;display:grid}.timer-button strong{letter-spacing:-.03em;font-size:28px}.timer-button small{color:var(--muted);justify-self:end}.timer-stop{border-color:var(--border-strong);min-width:76px;color:var(--muted)}.timer-settings{border:1px solid var(--border);background:var(--card);border-radius:16px;align-items:center;gap:10px;margin-top:8px;padding:12px;display:flex}.timer-settings label{color:var(--muted);align-items:center;gap:8px;display:flex}.timer-settings input{width:84px}.timer-settings label span{white-space:nowrap}.quick-times{flex-wrap:wrap;gap:8px;display:flex}.top-card{justify-content:space-between;align-items:center;gap:14px;margin-top:4px;padding:16px;display:flex}.eyebrow{color:var(--muted);margin:0;font-size:14px;font-weight:700}.page-header{align-items:center;gap:16px;padding:12px 0 4px;display:flex}.page-header>button{flex:none}.page-header h1{letter-spacing:-.06em;margin:0;font-size:clamp(28px,5vw,40px);line-height:1.05}.new-session-row,.category-form,.session-header,.exercise-add{align-items:center;gap:10px;display:flex}.new-session-row{flex-wrap:wrap;justify-content:flex-end}.primary-button{background:var(--text);color:#fff}.session-list{margin-top:16px}.category-card{margin-top:16px;padding:20px}.section-title{justify-content:space-between;gap:12px;margin-bottom:14px;display:flex}.section-title h2{margin:0;font-size:18px}.section-title span,.muted,.empty-card span,.previous-session p{color:var(--muted)}.category-form{flex-wrap:wrap;align-items:stretch}.category-form input[type=text],.category-form>input{flex:180px}.palette{align-items:center;gap:6px;display:flex}.swatch{border-radius:999px;width:30px;height:30px;padding:0}.swatch.selected{outline:3px solid var(--focus);outline-offset:2px}.category-list{gap:8px;margin-top:14px;display:grid}.category-item{grid-template-columns:44px 1fr auto;align-items:center;gap:8px;display:grid}.category-item input[type=color]{height:42px;padding:5px}.session-list{gap:12px;display:grid}.empty-card{gap:4px;padding:28px;display:grid}.session-card{overflow:hidden}.session-header{padding:14px}.expand-button{width:42px;padding-inline:0}.session-title{letter-spacing:-.02em;background:0 0;flex:1;justify-content:flex-start;font-size:18px;font-weight:800}.session-category{border-width:2px;min-width:120px;font-weight:800}.session-body{gap:14px;padding:0 14px 14px;display:grid}.exercise-add input{flex:1}.exercise-list{gap:10px;display:grid}.exercise-card{border:1px solid var(--border);background:var(--soft);border-radius:16px;grid-template-columns:minmax(160px,1fr) auto minmax(180px,1.3fr) auto;align-items:stretch;gap:10px;padding:12px;display:grid}.exercise-name{font-weight:800}.set-control{border:1px solid var(--border);background:#fff;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 4px;display:inline-flex}.set-control button{width:38px;padding-inline:0;font-size:18px}.set-control strong{text-align:center;min-width:28px;font-size:18px}.exercise-card textarea{resize:vertical;min-height:44px}.text-button{color:var(--muted);background:0 0}.previous-session{border:1px dashed var(--border-strong);border-radius:16px;gap:8px;padding:12px;display:grid}.previous-session p{justify-content:space-between;align-items:center;gap:12px;margin:0;font-size:14px;font-weight:700;display:flex}.previous-session p span{color:var(--text)}.previous-exercise-list{gap:8px;display:grid}.previous-exercise{text-align:left;justify-content:stretch;gap:6px;height:auto;min-height:0;padding:10px 12px;display:grid}.previous-exercise-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.previous-exercise em{color:var(--muted);flex:none;font-size:13px;font-style:normal}.previous-exercise small{color:var(--muted);white-space:pre-wrap;font-weight:500;line-height:1.35}@media (width<=760px){.app{width:min(100% - 20px,960px);padding-bottom:28px}.timer-button,.timer-row,.top-card,.section-title,.session-header{align-items:stretch}.timer-row,.top-card,.section-title{display:grid}.timer-button{grid-template-columns:1fr auto}.timer-stop{width:100%}.timer-button small{grid-column:1/-1;justify-self:start}.timer-settings,.new-session-row,.category-form,.exercise-add{flex-direction:column;align-items:stretch}.new-session-row{justify-content:stretch}.session-header{flex-wrap:wrap}.session-title{min-width:calc(100% - 52px)}.session-category{width:100%}.exercise-card{grid-template-columns:1fr}.set-control{justify-content:space-between}}
