*{box-sizing:border-box}:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;min-width:320px;min-height:100vh}#root{min-height:100vh}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2)}.header{text-align:center;padding:2rem 1rem;color:#fff}.header h1{font-size:2.5rem;margin:0;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{margin:.5rem 0 0;font-size:1.1rem;opacity:.9}.main-content{flex:1;padding:0 1rem 2rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.input-section{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}@media(max-width:768px){.input-section{grid-template-columns:1fr}}.upload-area{background:#fff;border-radius:20px;padding:1.5rem;box-shadow:0 10px 40px #00000026}.upload-area h2{margin:0 0 1rem;color:#333;font-size:1.3rem;text-align:center}.drop-zone{border:3px dashed #ddd;border-radius:15px;padding:2rem;text-align:center;cursor:pointer;transition:all .3s ease;min-height:300px;display:flex;align-items:center;justify-content:center;background:#fafafa}.drop-zone:hover{border-color:#667eea;background:#f0f0ff}.drop-zone.has-image{padding:.5rem;border-style:solid;border-color:#667eea}.drop-placeholder{color:#888}.upload-icon{font-size:4rem;display:block;margin-bottom:1rem}.drop-placeholder p{margin:.5rem 0}.hint{font-size:.85rem;color:#aaa}.preview-image{max-width:100%;max-height:350px;border-radius:10px;object-fit:contain}.file-input{display:none}.info-form{background:#fff;border-radius:20px;padding:1.5rem;box-shadow:0 10px 40px #00000026}.info-form h2{margin:0 0 1.5rem;color:#333;font-size:1.3rem;text-align:center}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:600;font-size:.95rem}.form-group input{width:100%;padding:.9rem 1rem;border:2px solid #e0e0e0;border-radius:10px;font-size:1rem;transition:border-color .3s;box-sizing:border-box;background:#fafafa}.form-group input:focus{outline:none;border-color:#667eea;background:#fff}.form-group input::placeholder{color:#aaa}.style-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.style-btn{padding:.9rem .5rem;border:2px solid #e0e0e0;border-radius:10px;background:#fafafa;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .3s;color:#666}.style-btn:hover{border-color:#667eea;color:#667eea}.style-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.button-group{display:flex;gap:1rem;margin-top:2rem}.analyze-btn{flex:2;padding:1rem 2rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #667eea66}.analyze-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea80}.analyze-btn:disabled{opacity:.7;cursor:not-allowed}.reset-btn{flex:1;padding:1rem 1.5rem;background:#f0f0f0;color:#666;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s}.reset-btn:hover{background:#e0e0e0;color:#333}.result-section{background:#fff;border-radius:20px;padding:2rem;box-shadow:0 10px 40px #00000026;animation:fadeIn .5s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-section h2{text-align:center;color:#333;margin:0 0 1.5rem;font-size:1.5rem}.result-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.result-card{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);border-radius:15px;padding:1.5rem;transition:transform .3s}.result-card:hover{transform:translateY(-5px)}.result-card h3{margin:0 0 1rem;color:#333;font-size:1.1rem;text-align:center;padding-bottom:.5rem;border-bottom:2px solid rgba(102,126,234,.3)}.bmi-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.bmi-card h3{color:#fff;border-bottom-color:#ffffff4d}.bmi-display{text-align:center;margin:1rem 0}.bmi-value{font-size:3rem;font-weight:700;display:block}.bmi-label{font-size:.9rem;opacity:.8}.body-type{text-align:center;font-size:1.3rem;font-weight:600;margin:.5rem 0}.bmi-category{text-align:center;font-size:1rem;opacity:.9;background:#fff3;padding:.3rem 1rem;border-radius:20px;display:inline-block;width:fit-content;margin:0 auto;display:block}.recommendation-list{list-style:none;padding:0;margin:0}.recommendation-list li{border-bottom:1px solid rgba(0,0,0,.1);color:#444;font-size:.95rem;position:relative;padding:.7rem 0 .7rem 1.5rem}.recommendation-list li:last-child{border-bottom:none}.recommendation-list li:before{content:"✓";position:absolute;left:0;color:#667eea;font-weight:700}.color-tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.color-tag{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500}.tips-list{list-style:none;padding:0;margin:0}.tips-list li{border-bottom:1px solid rgba(0,0,0,.1);color:#444;font-size:.95rem;position:relative;padding:.7rem 0 .7rem 1.5rem}.tips-list li:last-child{border-bottom:none}.tips-list li:before{content:"💡";position:absolute;left:0}.ai-report-section{margin-top:2rem;text-align:center}.ai-report-btn{padding:1rem 2rem;background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff;border:none;border-radius:15px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 4px 20px #f093fb66;display:inline-flex;align-items:center;gap:.5rem}.ai-report-btn:hover:not(:disabled){transform:translateY(-3px);box-shadow:0 6px 25px #f093fb80}.ai-report-btn:disabled{opacity:.8;cursor:not-allowed}.ai-icon{font-size:1.2rem}.loading-spinner{width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-report-card{background:linear-gradient(135deg,#fff,#fdf2f8);border-radius:20px;padding:2rem;text-align:left;box-shadow:0 10px 40px #f093fb33;border:2px solid rgba(240,147,251,.3)}.ai-report-card h3{display:flex;align-items:center;gap:.5rem;color:#333;font-size:1.4rem;margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(240,147,251,.3)}.ai-report-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem}.ai-report-loading .loading-spinner{width:40px;height:40px;border-width:4px}.ai-report-loading p{color:#666;font-size:1rem;margin:0}.ai-report-content{color:#444;line-height:1.8}.ai-report-content h4{color:#667eea;font-size:1.2rem;margin:1.5rem 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid rgba(102,126,234,.2)}.ai-report-content h5{color:#764ba2;font-size:1.05rem;margin:1rem 0 .5rem}.ai-report-content p{margin:.5rem 0}.ai-report-content li{margin:.3rem 0;padding-left:.5rem;list-style-position:inside}.footer{text-align:center;padding:1.5rem;color:#fffc;font-size:.9rem}.footer p{margin:0}@media(max-width:480px){.header h1{font-size:1.8rem}.subtitle{font-size:.95rem}.upload-area,.info-form,.result-section{padding:1rem}.drop-zone{min-height:200px;padding:1rem}.upload-icon{font-size:3rem}.button-group{flex-direction:column}.analyze-btn,.reset-btn{flex:none;width:100%}.result-cards{grid-template-columns:1fr}.style-buttons{grid-template-columns:repeat(2,1fr);gap:.5rem}.style-btn{font-size:.85rem;padding:.7rem .3rem}.ai-report-btn{font-size:1rem;padding:.9rem 1.5rem}.ai-report-card{padding:1.5rem}.ai-report-card h3{font-size:1.2rem}.ai-report-content h4{font-size:1.1rem}}.hairstyle-section{margin-top:2rem}.hairstyle-btn{width:100%;padding:1rem 2rem;font-size:1.1rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#d946ef);color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 20px #8b5cf64d}.hairstyle-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #8b5cf666}.hairstyle-btn:disabled{opacity:.7;cursor:not-allowed}.hairstyle-card{background:linear-gradient(135deg,#fff,#f5f0ff);border-radius:20px;padding:2rem;box-shadow:0 10px 40px #8b5cf633;border:2px solid rgba(139,92,246,.3)}.hairstyle-card h3{margin:0 0 1rem;font-size:1.4rem;color:#333;display:flex;align-items:center;gap:.5rem;padding-bottom:1rem;border-bottom:2px solid rgba(139,92,246,.3)}.hairstyle-analysis{color:#555;margin-bottom:1.5rem;line-height:1.6;font-size:1rem}.hairstyle-image-container{margin-bottom:1.5rem}.hairstyle-grid-image{width:100%;border-radius:12px;box-shadow:0 4px 20px #00000026}.hairstyle-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.hairstyle-info{display:flex;gap:.75rem;padding:.75rem;background:#8b5cf60d;border-radius:10px;border:1px solid rgba(139,92,246,.1);transition:transform .2s,box-shadow .2s}.hairstyle-info:hover{transform:translateY(-2px);box-shadow:0 4px 12px #8b5cf626}.hairstyle-number{width:24px;height:24px;background:linear-gradient(135deg,#8b5cf6,#d946ef);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;flex-shrink:0;color:#fff}.hairstyle-info strong{font-size:.9rem;display:block;margin-bottom:.25rem;color:#333}.hairstyle-info p{font-size:.8rem;color:#666;margin:0;line-height:1.4}@media(max-width:768px){.hairstyle-list{grid-template-columns:1fr}.hairstyle-card{padding:1.5rem}.hairstyle-card h3{font-size:1.2rem}.hairstyle-btn{font-size:1rem;padding:.9rem 1.5rem}}
