*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#2d3748;background:#f0f4f8;min-height:100vh;font-family:Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif}.page{max-width:600px;margin:0 auto;padding:clamp(16px,4vw,32px)}.header{text-align:center;padding:clamp(24px,5vw,40px) 0 clamp(16px,3vw,24px)}.header-title{color:#1a365d;font-size:clamp(18px,5vw,24px);font-weight:700}.header-sub{color:#718096;margin-top:6px;font-size:clamp(12px,3vw,14px)}.main{flex-direction:column;gap:20px;display:flex}.step-indicator{justify-content:center;gap:10px;display:flex}.step-dot{background:#cbd5e0;border-radius:50%;width:12px;height:12px;transition:background .3s}.step-dot.active{background:#3182ce}.diagnosis-form{flex-direction:column;gap:14px;display:flex}.select-field{flex-direction:column;gap:6px;display:flex}.select-field.disabled{opacity:.45}.select-label{color:#2d3748;font-size:clamp(13px,3vw,15px);font-weight:600}.select-input{appearance:none;cursor:pointer;background:#fff;border:1px solid #cbd5e0;border-radius:8px;width:100%;padding:clamp(10px,2.5vw,13px) clamp(12px,3vw,16px);font-size:clamp(13px,3vw,15px);transition:border-color .2s}.select-input:focus{border-color:#3182ce;outline:none;box-shadow:0 0 0 3px #3182ce26}.select-input:disabled{cursor:not-allowed;background:#f7fafc}.loading{text-align:center;color:#718096;padding:12px;font-size:14px}.error-message{text-align:center;color:#e53e3e;background:#fff5f5;border-radius:8px;padding:10px;font-size:14px}.result-card{background:#fff;border-radius:12px;flex-direction:column;gap:20px;padding:clamp(16px,4vw,24px);display:flex;box-shadow:0 2px 12px #00000014}.result-header{flex-direction:column;gap:10px;display:flex}.intensity-badge{border-radius:20px;width:fit-content;padding:4px 12px;font-size:12px;font-weight:700;display:inline-block}.intensity-badge.hard{color:#c53030;background:#fff5f5}.intensity-badge.moderate{color:#c05621;background:#fffaf0}.intensity-badge.light{color:#276749;background:#f0fff4}.result-message{color:#2d3748;font-size:clamp(14px,3.5vw,16px);font-weight:600;line-height:1.6}.calorie-section{background:#ebf8ff;border-radius:8px;align-items:baseline;gap:6px;padding:14px 16px;display:flex}.calorie-label{color:#2b6cb0;font-size:clamp(12px,3vw,13px)}.calorie-num{color:#2b6cb0;font-size:clamp(20px,5vw,26px);font-weight:700}.calorie-unit{color:#2b6cb0;font-size:14px}.exercise-list-title{color:#2d3748;margin-bottom:10px;font-size:clamp(13px,3vw,15px);font-weight:700}.exercise-item{border-bottom:1px solid #edf2f7;align-items:center;gap:12px;padding:10px 0;display:flex}.exercise-item:last-child{border-bottom:none}.exercise-index{color:#fff;background:#3182ce;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.exercise-name{flex:1;font-size:clamp(13px,3vw,15px);font-weight:600}.exercise-detail{color:#718096;white-space:nowrap;font-size:clamp(12px,2.5vw,13px)}.fallback-notice{color:#a0aec0;text-align:center;font-size:12px}.reset-button{color:#fff;cursor:pointer;background:#3182ce;border:none;border-radius:8px;width:100%;padding:clamp(12px,3vw,14px);font-size:clamp(14px,3vw,16px);font-weight:600;transition:background .2s}.reset-button:hover{background:#2b6cb0}.error-boundary{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:40px 20px;display:flex}
