:root{--color-primary: #1769aa;--color-primary-hover: #0b4c82;--color-primary-light: #7ab7ef;--color-secondary: #0a2948;--color-tertiary: #edf6ff;--color-base: #f6f8fb;--color-surface: #ffffff;--color-mist: #eef4f7;--color-line: #dbe6f0;--color-line-strong: #c8d7e5;--color-ink: #142235;--color-muted: #5f6d7d;--radius-control: 14px;--radius-card: 24px;--radius-pill: 9999px;--space-gutter: 20px;--font-sans: "SUIT Variable", -apple-system, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--shadow-soft: 0 8px 24px rgba(10, 41, 72, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-base);color:var(--color-ink);font-family:var(--font-sans);font-size:16px;line-height:1.75;word-break:keep-all;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;color:var(--color-secondary);letter-spacing:-.01em;line-height:1.3}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-main{max-width:560px;margin:0 auto;padding:16px var(--space-gutter) 48px}.page-header{margin-bottom:20px}.page-date{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--color-muted);margin-bottom:6px}.page-title{font-size:1.5rem;font-weight:800;margin-bottom:4px}.page-diagnosis{color:var(--color-muted);font-size:15px;margin-bottom:10px}.stage-badge{display:inline-block;background:var(--color-tertiary);color:var(--color-primary);border-radius:var(--radius-pill);padding:4px 14px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.save-error{margin-bottom:16px;padding:10px 14px;background:var(--color-mist);border:1px solid var(--color-line-strong);border-radius:var(--radius-control);color:var(--color-secondary);font-size:14px}.page-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.today-complete{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1.5px solid var(--color-line-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-secondary);font-size:15px;font-weight:700;cursor:pointer;touch-action:manipulation;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.today-complete .today-complete-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--color-line-strong);border-radius:50%;font-size:12px;line-height:1;color:transparent;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.today-complete:hover{border-color:var(--color-primary)}.today-complete.is-done{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}.today-complete.is-done .today-complete-icon{background:var(--color-surface);border-color:var(--color-surface);color:var(--color-primary)}.today-done-note{margin-bottom:16px;padding:10px 14px;background:var(--color-tertiary);color:var(--color-primary-hover);border-radius:var(--radius-control);font-weight:700;font-size:15px}.exercise-list{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}.exercise-card{background:var(--color-surface);border:1.5px solid var(--color-line);border-radius:var(--radius-card);padding:20px;transition:border-color .2s ease,background-color .2s ease}.exercise-head{margin-bottom:8px}.exercise-no{display:inline-block;background:var(--color-mist);color:var(--color-muted);border-radius:var(--radius-pill);padding:2px 12px;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:6px}.exercise-title{font-size:1.2rem;font-weight:800}.exercise-desc{font-size:15px;margin-bottom:8px}.exercise-benefit{font-size:14px;color:var(--color-muted);margin-bottom:8px}.exercise-dosage{display:flex;align-items:baseline;gap:8px;font-size:14px;font-weight:700;color:var(--color-primary-hover);font-variant-numeric:tabular-nums;margin-bottom:10px}.field-label{flex:none;font-size:12px;font-weight:700;color:var(--color-muted)}.exercise-caution{display:flex;align-items:baseline;gap:8px;background:var(--color-mist);border-left:3px solid var(--color-line-strong);border-radius:0 var(--radius-control) var(--radius-control) 0;padding:8px 12px;font-size:14px;color:var(--color-ink);margin-bottom:14px}.weekly-tracker{margin-bottom:28px}.weekly-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.weekly-title{font-size:15px;font-weight:800}.weekly-nav{display:flex;align-items:center;gap:8px}.weekly-arrow{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-secondary);font-size:20px;line-height:1;cursor:pointer;touch-action:manipulation}.weekly-arrow:disabled{opacity:.4;cursor:default}.weekly-range{font-size:13px;font-weight:700;color:var(--color-muted);font-variant-numeric:tabular-nums;min-width:8.5em;text-align:center}.weekly-days{display:flex;justify-content:space-between;gap:4px;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-card);padding:12px 10px}.weekly-days li{flex:1;display:flex}.weekly-day{width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;min-height:68px;padding:8px 0;border:none;border-radius:var(--radius-control);background:transparent;cursor:pointer;touch-action:manipulation;transition:background-color .2s ease}.weekly-day:disabled{cursor:default}.weekly-weekday{font-size:12px;font-weight:700;color:var(--color-muted)}.weekly-daynum{font-size:15px;font-weight:700;color:var(--color-ink);font-variant-numeric:tabular-nums}.weekly-mark{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--color-line);background:var(--color-mist);color:var(--color-muted);font-size:13px;font-weight:700}.weekly-day.is-done .weekly-mark{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface)}.weekly-day.is-today .weekly-weekday,.weekly-day.is-today .weekly-daynum{color:var(--color-primary)}.weekly-day.is-future{opacity:.4}.weekly-day.is-future .weekly-mark{background:transparent;color:transparent}.btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:none;border-radius:var(--radius-pill);background:var(--color-primary);color:var(--color-surface);font-size:16px;font-weight:700;cursor:pointer;transition:background-color .2s ease}.btn-primary:hover{background:var(--color-primary-hover)}.error-screen{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-card);padding:40px 24px;margin-top:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.error-title{font-size:1.25rem;font-weight:800}.error-description{color:var(--color-muted);font-size:15px}.error-screen .btn-primary{margin-top:8px}.skeleton{display:flex;flex-direction:column;gap:14px}.skeleton-block{background:var(--color-mist);border-radius:var(--radius-card);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-header{height:96px;border-radius:var(--radius-control)}.skeleton-progress{height:84px}.skeleton-card{height:220px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media(min-width:768px){.app-main{padding-top:32px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.exercise-photo{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:var(--radius-control);border:1px solid var(--color-line);margin-bottom:12px;background:var(--color-mist)}.exercise-steps{list-style:decimal;margin:0 0 10px;padding-left:22px;display:grid;gap:6px;color:var(--color-ink);font-size:15px;line-height:1.55;word-break:keep-all}.exercise-steps li::marker{color:var(--color-primary);font-weight:700}
