*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f8f5f2;min-height:100vh;font-family:Segoe UI,system-ui,sans-serif}#root{text-align:left;border:none;width:100%;max-width:100%}.page{flex-direction:column;min-height:100vh;display:flex}.header{background:#fff;border-bottom:1px solid #ece8e3;padding:20px 24px}.logo-text{letter-spacing:-.3px;color:#1a1a1a;font-size:18px;font-weight:700}.main{flex:1;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex}.card{background:#fff;border-radius:24px;width:100%;max-width:440px;padding:40px 36px;box-shadow:0 4px 24px #0000000f}.center-card{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.title{letter-spacing:-.5px;color:#1a1a1a;margin-bottom:8px;font-size:26px;font-weight:700}.subtitle{color:#888;margin-bottom:32px;font-size:14px;line-height:1.5}.form{flex-direction:column;gap:24px;display:flex}.photo-section{flex-direction:column;align-items:center;gap:12px;display:flex}.photo-upload{cursor:pointer;background:#faf9f7;border:2px dashed #d4cec8;border-radius:50%;width:130px;height:130px;padding:0;transition:border-color .2s;overflow:hidden}.photo-upload:hover{border-color:#b8a99a}.photo-placeholder{color:#aaa;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;font-size:13px;display:flex}.photo-preview{object-fit:cover;width:100%;height:100%}.photo-change-btn{color:#888;cursor:pointer;background:0 0;border:none;font-size:13px;text-decoration:underline}.photo-change-btn:hover{color:#555}.input-group{flex-direction:column;gap:8px;display:flex}.label{color:#555;font-size:14px;font-weight:600}.input-wrapper{background:#faf9f7;border:1.5px solid #e5e0da;border-radius:12px;align-items:center;transition:border-color .2s;display:flex;overflow:hidden}.input-wrapper:focus-within{background:#fff;border-color:#1a1a1a}.input{color:#1a1a1a;-moz-appearance:textfield;background:0 0;border:none;outline:none;flex:1;padding:14px 16px;font-size:18px;font-weight:500}.input::-webkit-inner-spin-button{-webkit-appearance:none}.input::-webkit-outer-spin-button{-webkit-appearance:none}.unit{color:#aaa;-webkit-user-select:none;user-select:none;padding-right:16px;font-size:14px;font-weight:500}.submit-btn{color:#fff;cursor:pointer;background:#1a1a1a;border:none;border-radius:12px;width:100%;margin-top:8px;padding:16px;font-size:16px;font-weight:600;transition:background .2s,opacity .2s}.submit-btn:hover:not(:disabled){background:#333}.submit-btn:disabled{opacity:.3;cursor:not-allowed}.spinner{border:3px solid #e5e0da;border-top-color:#1a1a1a;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:#1a1a1a;font-size:18px;font-weight:600}.loading-sub{color:#aaa;font-size:14px}.error-icon{font-size:40px}.report-wrap{flex-direction:column;gap:16px;width:100%;max-width:540px;display:flex}.report-profile{background:#fff;border-radius:20px;align-items:flex-start;gap:20px;padding:24px;display:flex;box-shadow:0 4px 24px #0000000f}.report-photo{object-fit:cover;border-radius:50%;flex-shrink:0;width:80px;height:80px}.report-body-type{color:#1a1a1a;margin-bottom:6px;font-size:20px;font-weight:700}.report-body-analysis{color:#666;font-size:14px;line-height:1.6}.report-section{background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 24px #0000000f}.section-title{color:#1a1a1a;margin-bottom:14px;font-size:15px;font-weight:700}.section-desc{color:#666;margin-top:12px;font-size:14px;line-height:1.6}.tag-row{flex-wrap:wrap;gap:8px;display:flex}.tag{border-radius:100px;padding:6px 14px;font-size:13px;font-weight:500}.tag-color{color:#555;background:#f0ede8}.tag-style{color:#3a3fcf;background:#eef0ff}.tag-avoid{color:#c0392b;background:#fff0f0}.item-list{flex-direction:column;gap:6px;padding-left:20px;display:flex}.item-list li{color:#444;font-size:14px;line-height:1.5}.tip-box{background:#1a1a1a;border-radius:20px;padding:24px;box-shadow:0 4px 24px #0000001f}.tip-label{color:#aaa;letter-spacing:.5px;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:600}.tip-text{color:#f0ede8;font-size:15px;line-height:1.7}@media (width<=480px){.card,.report-profile,.report-section,.tip-box{padding:20px}.title{font-size:22px}.report-profile{text-align:center;flex-direction:column;align-items:center}}
