*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif}:root{--primary:#2563eb;--primary-light:#eff6ff;--success:#22c55e;--warning:#f97316;--danger:#ef4444;--text:#1e293b;--text-secondary:#64748b;--bg:#f8fafc;--card-bg:#fff;--border:#e2e8f0;--radius:12px;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-lg:0 4px 6px #00000012, 0 10px 15px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans KR,sans-serif;line-height:1.6}.app{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.app-header{background:var(--primary);color:#fff;text-align:center;padding:12px 16px 16px;position:relative}.app-header h1{cursor:pointer;font-size:22px;font-weight:700}.app-subtitle{opacity:.85;margin-top:4px;font-size:13px}.lang-toggle{justify-content:center;gap:4px;margin-bottom:8px;display:flex}.lang-btn{color:#ffffffb3;cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:14px;padding:4px 10px;font-size:12px;transition:all .2s}.lang-btn.active{color:var(--primary);background:#fff;border-color:#fff;font-weight:600}.lang-btn:hover:not(.active){background:#ffffff40}.app-main{flex:1;padding:16px}.scan-page{flex-direction:column;align-items:center;gap:16px;display:flex}.scan-intro{text-align:center;padding:24px 0}.scan-intro h2{margin-bottom:8px;font-size:20px}.scan-intro p{color:var(--text-secondary);font-size:14px}.qr-scanner{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.scan-hint{color:var(--text-secondary);text-align:center;font-size:13px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.divider{width:100%;color:var(--text-secondary);align-items:center;gap:12px;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.error-message{color:#991b1b;border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;width:100%;padding:12px 16px;font-size:14px}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;padding:14px 28px;font-size:16px;font-weight:600;transition:background .2s}.btn-primary:hover{background:#1d4ed8}.btn-secondary{color:var(--text);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:#fff;width:100%;padding:14px 28px;font-size:16px;font-weight:600}.btn-sample{color:var(--primary);border:2px dashed var(--primary);border-radius:var(--radius);cursor:pointer;background:#fff;width:100%;padding:14px 28px;font-size:15px;font-weight:600;transition:all .2s}.btn-sample:hover{background:var(--primary-light)}.btn-reset{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:100%;margin-top:24px;padding:16px;font-size:16px;font-weight:600}.btn-detail{color:var(--primary);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:8px 0;font-size:13px}.loading-page{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:300px;display:flex}.spinner{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.overall-summary{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);margin-bottom:16px;padding:24px 16px}.summary-header h2{margin-bottom:4px;font-size:18px}.summary-info{color:var(--text-secondary);font-size:13px;line-height:1.5}.inbody-score-section{justify-content:center;align-items:center;gap:16px;margin:20px 0;display:flex}.inbody-score-circle{background:var(--ib-color);border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:90px;height:90px;display:flex}.inbody-score-num{color:#fff;font-size:28px;font-weight:800;line-height:1}.inbody-score-label{color:#ffffffd9;margin-top:2px;font-size:10px}.body-type-badge{text-align:center;border:2px solid;border-radius:20px;padding:10px 20px;font-size:15px;font-weight:600}.muscle-fat-analysis,.weight-control-section{background:#f8fafc;border-radius:12px;margin:16px 0;padding:16px}.weight-control-section h3{color:var(--text-secondary);margin-bottom:12px;font-size:14px;font-weight:600}.weight-control-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.wc-item{background:#fff;border-radius:8px;flex-direction:column;padding:10px 12px;display:flex}.wc-label{color:var(--text-secondary);font-size:11px}.wc-value{margin-top:2px;font-size:18px;font-weight:700}.muscle-fat-analysis h3{color:var(--text-secondary);margin-bottom:14px;font-size:14px;font-weight:600}.metric-row{align-items:center;gap:10px;margin-bottom:14px;display:flex}.metric-row:last-of-type{margin-bottom:0}.metric-info{flex-shrink:0;width:80px}.metric-label{color:var(--text-secondary);font-size:11px;line-height:1.2;display:block}.metric-value{color:var(--text);font-size:18px;font-weight:700;line-height:1.3}.metric-unit{color:var(--text-secondary);margin-left:1px;font-size:11px;font-weight:400}.metric-bar-wrap{flex:1;min-width:0}.metric-bar-bg{background:#e2e8f0;border-radius:7px;height:14px;position:relative;overflow:hidden}.metric-bar-fill{border-radius:7px;height:100%;transition:width .6s}.metric-bar-zone{pointer-events:none;border-left:1.5px dashed #0003;border-right:1.5px dashed #0003;width:12.5%;height:100%;position:absolute;top:0;left:56.25%}.metric-bar-labels{color:#94a3b8;justify-content:space-between;margin-top:2px;padding:0 2px;font-size:9px;display:flex}.metric-status{white-space:nowrap;border-radius:10px;flex-shrink:0;padding:3px 8px;font-size:11px;font-weight:700}.priority-list{margin-top:16px}.priority-list h3{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.priority-item{border-radius:8px;align-items:flex-start;gap:8px;margin-bottom:6px;padding:10px 12px;font-size:14px;line-height:1.5;display:flex}.priority-high{color:#991b1b;background:#fef2f2}.priority-medium{color:#9a3412;background:#fff7ed}.priority-icon{flex-shrink:0}.priority-good{color:#166534;text-align:center;background:#f0fdf4;border-radius:8px;margin-top:16px;padding:14px;font-size:14px}.ai-summary-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid var(--primary);margin-bottom:16px;padding:20px 16px}.ai-summary-section h3{margin-bottom:12px;font-size:16px}.ai-summary-text p{color:var(--text);margin-bottom:8px;font-size:14px;line-height:1.7}.results-section{margin-bottom:24px}.results-section h2{margin-bottom:12px;font-size:18px}.result-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);border-left:4px solid #e2e8f0;margin-bottom:12px;padding:16px;transition:all .2s}.result-header{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.result-title{align-items:center;gap:8px;display:flex}.result-emoji{font-size:18px}.result-name{font-size:15px;font-weight:600}.result-value{font-size:18px;font-weight:700}.result-percent{font-size:12px;font-weight:400}.result-state{border-radius:8px;margin-top:8px;padding:8px 12px;font-size:13px;line-height:1.5}.result-chart{margin-top:10px;position:relative}.chart-markers{color:var(--text-secondary);justify-content:space-between;padding:0 4px;font-size:10px;display:flex}.result-detail{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.detail-section{margin-bottom:12px}.detail-section h4{color:var(--primary);margin-bottom:4px;font-size:13px}.detail-section p{color:var(--text);font-size:14px;line-height:1.7}.recommendation-panel{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 16px}.recommendation-panel h2{margin-bottom:4px;font-size:18px}.rec-summary{color:var(--text-secondary);margin-bottom:16px;font-size:14px;line-height:1.6}.rec-tabs{gap:8px;margin-bottom:16px;display:flex}.rec-tab{border:1px solid var(--border);cursor:pointer;text-align:center;background:#fff;border-radius:8px;flex:1;padding:10px;font-size:14px;font-weight:600;transition:all .2s}.rec-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.tab-content{min-height:200px}.exercise-overview{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}.overview-item{background:var(--bg);border-radius:8px;padding:10px 12px}.overview-label{color:var(--text-secondary);margin-bottom:2px;font-size:11px;display:block}.overview-value{font-size:13px;font-weight:600}.detail-list{padding:0;list-style:none}.detail-list li{border-bottom:1px solid #f1f5f9;padding:8px 0 8px 20px;font-size:14px;line-height:1.6;position:relative}.detail-list li:before{content:"•";color:var(--primary);font-weight:700;position:absolute;left:4px}.diet-principle{background:#fefce8;border:1px solid #fef08a;border-radius:8px;margin-bottom:12px;padding:12px;font-size:14px}.food-tags{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.food-tag{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px;padding:6px 12px;font-size:13px}h4{margin:12px 0 8px;font-size:14px}.rec-extra{border-top:1px solid var(--border);margin-top:20px;padding-top:16px}.rec-extra h3{margin-bottom:8px;font-size:15px}.rec-extra p{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.rec-extra ul{padding:0;list-style:none}.rec-extra li{padding:6px 0 6px 20px;font-size:14px;line-height:1.6;position:relative}.rec-extra li:before{content:">";color:var(--primary);position:absolute;left:4px}.rec-disclaimer{color:var(--text-secondary);text-align:center;background:#f8fafc;border-radius:8px;margin-top:20px;padding:12px;font-size:12px;line-height:1.5}.ai-text{white-space:pre-wrap;font-size:14px;line-height:1.7}.input-mode-tabs{border-radius:var(--radius);border:2px solid var(--primary);gap:0;width:100%;margin-bottom:16px;display:flex;overflow:hidden}.mode-tab{color:var(--primary);cursor:pointer;background:#fff;border:none;flex:1;padding:12px 8px;font-size:14px;font-weight:600;transition:all .2s}.mode-tab.active{background:var(--primary);color:#fff}.photo-capture{width:100%}.capture-buttons{flex-direction:column;gap:10px;width:100%;display:flex}.camera-view{border-radius:var(--radius);width:100%;position:relative;overflow:hidden}.camera-video{border-radius:var(--radius);width:100%;display:block}.camera-overlay{pointer-events:none;justify-content:center;align-items:flex-start;display:flex;position:absolute;inset:0}.camera-guide{color:#fff;background:#0009;border-radius:0 0 8px 8px;padding:8px 16px;font-size:13px}.camera-controls{justify-content:center;align-items:center;gap:20px;margin-top:12px;display:flex}.btn-capture{border:4px solid var(--primary);cursor:pointer;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:28px;transition:transform .1s;display:flex}.btn-capture:active{transform:scale(.9)}.btn-cancel{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:14px}.preview-view{width:100%}.preview-image{border-radius:var(--radius);border:2px solid var(--border);width:100%}.preview-actions{gap:10px;margin-top:12px;display:flex}.preview-actions .btn-secondary,.preview-actions .btn-primary{flex:1}.progress-bar{background:var(--border);border-radius:4px;width:200px;height:8px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:4px;height:100%;transition:width .3s}.progress-text{color:var(--text-secondary);font-size:13px}.ocr-review-page{padding-bottom:20px}.ocr-review-page h2{margin-bottom:4px;font-size:18px}.ocr-review-hint{color:var(--text-secondary);margin-bottom:16px;font-size:13px}.ocr-fields{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.ocr-field{flex-direction:column;gap:4px;display:flex}.ocr-field label{color:var(--text-secondary);font-size:12px;font-weight:500}.ocr-field input{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;padding:10px 12px;font-size:15px;font-weight:600}.ocr-field input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.ocr-actions{gap:10px;display:flex}.ocr-actions .btn-secondary,.ocr-actions .btn-primary{flex:1}.ocr-raw-text{color:var(--text-secondary);margin-top:16px;font-size:12px}.ocr-raw-text summary{cursor:pointer;padding:8px 0}.ocr-raw-text pre{white-space:pre-wrap;word-break:break-all;background:#f1f5f9;border-radius:8px;max-height:200px;padding:12px;font-size:11px;line-height:1.5;overflow-y:auto}.manual-input{padding:0 4px}.manual-hint{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.5}.required-mark{color:#ef4444;font-weight:600}.manual-fields{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.manual-field{flex-direction:column;gap:4px;display:flex}.manual-field label{color:var(--text);font-size:13px;font-weight:600}.manual-field input{border:1px solid var(--border);color:var(--text);box-sizing:border-box;background:#fff;border-radius:10px;width:100%;padding:12px 14px;font-size:16px}.manual-field input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb1a}.manual-field input::placeholder{color:#94a3b8;font-size:14px}.gender-select{gap:8px;display:flex}.gender-btn{border:2px solid var(--border);color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:10px;flex:1;padding:12px;font-size:15px;font-weight:600;transition:all .2s}.gender-btn.active{border-color:var(--primary);color:var(--primary);background:#eff6ff}.app-footer{text-align:center;padding:16px}.app-footer p{color:var(--text-secondary);font-size:11px}@media (width>=480px){.app{max-width:480px}}
