*,:before,:after{box-sizing:border-box}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Pretendard,Apple SD Gothic Neo,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}body{background:#f8f7f5;margin:0;padding:0}#root{width:100%}.page{background:#f8f7f5;flex-direction:column;min-height:100svh;display:flex}.header{background:#fff;border-bottom:1px solid #e8e6e2;align-items:center;gap:16px;padding:24px 40px;display:flex}.logo{align-items:center;gap:8px;display:flex}.logo-icon{color:#c9a96e;font-size:20px}.logo-text{color:#1a1a1a;letter-spacing:-.3px;font-size:18px;font-weight:600}.header-sub{color:#999;border-left:1px solid #e0ddd8;margin:0;padding-left:16px;font-size:13px}.main{flex:1;justify-content:center;align-items:center;padding:48px 20px;display:flex}.card{background:#fff;border:1px solid #e8e6e2;border-radius:20px;width:100%;max-width:480px;padding:40px;box-shadow:0 4px 24px #0000000f}.card-header{margin-bottom:36px}.card-title{color:#1a1a1a;letter-spacing:-.6px;margin:0 0 8px;font-size:26px;font-weight:700}.card-desc{color:#888;margin:0;font-size:14px;line-height:1.6}.form{flex-direction:column;gap:28px;display:flex}.section{flex-direction:column;gap:10px;display:flex}.section-label{color:#1a1a1a;cursor:default;align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.label-number{color:#c9a96e;letter-spacing:.5px;font-size:11px;font-weight:700}.photo-upload{cursor:pointer;background:#faf9f7;border:2px dashed #ddd9d3;border-radius:14px;justify-content:center;align-items:center;min-height:200px;transition:border-color .2s,background .2s;display:flex;overflow:hidden}.photo-upload:hover,.photo-upload.dragging{background:#fdf9f2;border-color:#c9a96e}.photo-placeholder{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.upload-icon{color:#c9a96e;opacity:.8;width:48px;height:48px}.upload-icon svg{width:100%;height:100%}.upload-title{color:#444;margin:0;font-size:15px;font-weight:600}.upload-hint{color:#aaa;margin:0;font-size:12px;line-height:1.6}.photo-preview{width:100%;height:240px;position:relative}.photo-preview img{object-fit:cover;width:100%;height:100%;display:block}.photo-overlay{opacity:0;background:#00000073;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:absolute;inset:0}.photo-upload:hover .photo-overlay{opacity:1}.photo-overlay span{color:#fff;letter-spacing:.3px;font-size:14px;font-weight:600}.input-group{background:#fff;border:1.5px solid #e0ddd8;border-radius:10px;align-items:center;gap:0;transition:border-color .2s;display:flex;overflow:hidden}.input-group:focus-within{border-color:#c9a96e}.number-input{color:#1a1a1a;-moz-appearance:textfield;background:0 0;border:none;outline:none;flex:1;width:0;padding:14px 16px;font-size:22px;font-weight:600}.number-input::-webkit-outer-spin-button{-webkit-appearance:none}.number-input::-webkit-inner-spin-button{-webkit-appearance:none}.number-input::placeholder{color:#ccc;font-weight:400}.unit{color:#999;white-space:nowrap;background:#f8f7f5;border-left:1.5px solid #e0ddd8;padding:14px 18px;font-size:15px;font-weight:500}.range-slider{appearance:none;cursor:pointer;accent-color:#c9a96e;background:linear-gradient(90deg,#c9a96e,#c9a96e);border-radius:2px;outline:none;width:100%;height:4px}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#c9a96e;border:3px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 1.5px #c9a96e}.range-slider::-moz-range-thumb{cursor:pointer;background:#c9a96e;border:3px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 1.5px #c9a96e}.submit-btn{letter-spacing:.2px;cursor:pointer;color:#fff;background:#1a1a1a;border:none;border-radius:12px;margin-top:8px;padding:16px;font-size:15px;font-weight:600;transition:background .2s,transform .1s,opacity .2s}.submit-btn:not(:disabled):hover{background:#333;transform:translateY(-1px)}.submit-btn:not(:disabled):active{transform:translateY(0)}.submit-btn:disabled{color:#aaa;cursor:not-allowed;background:#e0ddd8}.error-msg{color:#dc2626;background:#fff5f5;border:1px solid #fecaca;border-radius:8px;margin-bottom:4px;padding:12px 16px;font-size:14px}.loading-card{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:80px 40px;display:flex}.spinner{border:3px solid #f0ede8;border-top-color:#c9a96e;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{color:#1a1a1a;margin:0;font-size:18px;font-weight:600}.loading-sub{color:#999;margin:0;font-size:14px}.result-card{background:#fff;border:1px solid #e8e6e2;border-radius:20px;width:100%;max-width:640px;overflow:hidden;box-shadow:0 4px 24px #0000000f}.result-header{background:linear-gradient(135deg,#fdf9f2 0%,#fff 100%);border-bottom:1px solid #f0ede8;padding:32px 36px 24px}.result-title-row{align-items:center;gap:16px;display:flex}.result-avatar{object-fit:cover;border:3px solid #fff;border-radius:50%;flex-shrink:0;width:64px;height:64px;box-shadow:0 2px 8px #0000001f}.result-title{color:#1a1a1a;letter-spacing:-.4px;margin:0 0 4px;font-size:22px;font-weight:700}.result-meta{color:#999;margin:0;font-size:13px}.report-sections{padding:8px 36px 28px}.report-block{border-bottom:1px solid #f4f2ef;padding:20px 0}.report-block:last-child{border-bottom:none}.report-heading{color:#1a1a1a;align-items:center;gap:6px;margin:0 0 12px;font-size:15px;font-weight:700;display:flex}.report-body{flex-direction:column;gap:6px;padding-left:4px;display:flex}.report-para{color:#555;margin:0;font-size:14px;line-height:1.7}.report-bullet{color:#555;margin:0;padding-left:16px;font-size:14px;line-height:1.7;list-style:none;position:relative}.report-bullet:before{content:"·";color:#c9a96e;font-weight:700;position:absolute;left:4px}.report-para strong,.report-bullet strong{color:#1a1a1a;font-weight:600}.reset-btn{color:#666;cursor:pointer;background:#fff;border:1.5px solid #e0ddd8;border-radius:10px;width:calc(100% - 72px);margin:0 36px 28px;padding:14px;font-size:14px;font-weight:600;transition:border-color .2s,color .2s;display:block}.reset-btn:hover{color:#c9a96e;border-color:#c9a96e}@media (width<=520px){.card{border-radius:16px;padding:28px 20px}.header{flex-wrap:wrap;padding:16px 20px}.header-sub{display:none}}
