*{box-sizing:border-box}html,body,#root{width:100%;min-width:0;max-width:100vw;height:100%;margin:0;overflow:hidden}body{color:#fff;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#050405;font-family:Inter,PingFang SC,Microsoft YaHei,ui-sans-serif,system-ui,sans-serif;overflow:hidden}button,select,label{touch-action:manipulation}.customer-fallback,.customer-upload{margin:18px 0}.customer-fallback .measure-secondary,.customer-upload .measure-secondary{margin-top:10px}.customer-manual{text-align:center;box-sizing:border-box;text-decoration:none;display:block}.customer-link{box-sizing:border-box;border:1px solid #cfc4b7;border-radius:6px;width:100%;margin-top:6px;padding:10px;font-size:12px;display:block}.customer-upload h2{margin:0 0 8px;font-family:Songti SC,Noto Serif CJK SC,serif;font-size:22px;font-weight:400}.customer-upload-row{border-bottom:1px solid var(--line,#e6ded3);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:14px;display:flex}.customer-upload-row .measure-secondary{width:auto;min-height:44px;margin:0;padding:8px 16px;font-size:13px}.customer-group-list{margin:18px 0}.customer-group-row{border-bottom:1px solid var(--line,#e6ded3);align-items:center;gap:12px;padding:12px 0;display:flex}.customer-group-row>div{flex:1;min-width:0}.customer-group-row strong{font-size:15px;font-weight:500}.customer-group-row p{color:var(--muted,#7d7468);margin:2px 0 0;font-size:12px}.customer-wechat-banner{color:#6c5420;background:#fff6e5;border:1px solid #ecd6a7;border-radius:8px;margin:0 0 14px;padding:12px 14px;font-size:13px;line-height:1.7}.customer-empty{text-align:center;max-width:520px;margin:72px auto;padding:0 22px}.measure-page{color:#302d29;--bronze:#957b62;--muted:#77716a;--line:#e4ddd3;background:#f8f6f2;height:100dvh;font-family:PingFang SC,Microsoft YaHei,sans-serif;overflow:auto}.measure-page *{box-sizing:border-box}.measure-page button,.measure-page select{font:inherit}.measure-page button{cursor:pointer}.measure-page button:disabled{cursor:wait;opacity:.55}.measure-page button:focus-visible,.measure-page select:focus-visible{outline-offset:4px;outline:3px solid #aa8763}.measure-shell{max-width:1040px;margin:auto;padding:0 36px}.measure-header{border-bottom:1px solid var(--line);letter-spacing:3px;justify-content:space-between;align-items:center;height:88px;font-family:Songti SC,Noto Serif CJK SC,serif;font-size:22px;display:flex}.measure-header small{letter-spacing:1px;color:#796852;vertical-align:middle;background:#eee7dd;border-radius:3px;margin-left:10px;padding:5px 7px;font:10px sans-serif}.measure-icon,.measure-link{color:inherit;background:0 0;border:0;min-height:44px;padding:10px}.measure-icon{font-size:34px;line-height:1}.measure-link{letter-spacing:1px;color:var(--bronze);font-size:13px}.measure-intro{text-align:center;padding:40px 0 28px}.measure-eyebrow{letter-spacing:5px;color:var(--bronze);margin:0 0 17px;font-size:12px}.measure-intro .measure-eyebrow:before,.measure-intro .measure-eyebrow:after{content:"";vertical-align:middle;background:#bca58f;width:32px;height:1px;margin:0 16px;display:inline-block}.measure-page h1{letter-spacing:3px;margin:0;font-family:Songti SC,Noto Serif CJK SC,SimSun,serif;font-size:clamp(32px,4.5vw,52px);font-weight:400;line-height:1.4}.measure-subtitle{color:var(--muted);margin:16px 0 0;font-size:14px;line-height:1.8}.measure-hero{margin:0;position:relative}.measure-hero img{object-fit:cover;object-position:center 43%;border-radius:16px;width:100%;max-height:450px;display:block}.measure-hero figcaption{color:var(--muted);letter-spacing:1px;justify-content:space-between;padding:13px 3px;font-size:12px;display:flex}.measure-hero figcaption small{color:#a69a8b;font-size:10px}.measure-steps{text-align:center;grid-template-columns:repeat(3,1fr);margin:22px 0 27px;display:grid}.measure-steps>div+div{border-left:1px solid var(--line)}.measure-steps em{color:var(--bronze);font-family:Georgia,serif;font-size:29px}.measure-steps p{color:#615a52;margin:9px 0 0;font-size:12px}.measure-home-action{text-align:center;max-width:570px;margin:auto}.measure-primary,.measure-secondary{letter-spacing:2px;border:0;border-radius:10px;width:100%;min-height:56px;padding:15px 20px;font-size:16px}.measure-primary{color:#fff;background:#302d29;justify-content:center;align-items:center;gap:30px;display:flex}.measure-primary:hover:not(:disabled){background:#484039}.measure-primary span{font-size:22px}.measure-secondary{color:#655746;background:0 0;border:1px solid #cfc4b7;margin-top:12px}.measure-fine{color:var(--muted);text-align:center;margin:12px 0;font-size:12px;line-height:1.8}.measure-demo{border-bottom:1px solid #baa28a;min-height:30px;padding:5px 0}.measure-test-note{color:#8b8176;text-align:left;margin:19px 0;font-size:11px;line-height:1.9}.measure-footer{text-align:center;letter-spacing:3px;color:#a19689;padding:25px 0 30px;font-size:10px}.measure-work{max-width:650px;margin:30px auto 0}.measure-work h1{font-size:32px}.measure-progress{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:30px;display:grid}.measure-progress span{border-bottom:2px solid var(--line);color:#8f877d;text-align:center;padding:10px 0;font-size:11px}.measure-progress .current{color:#5a4630;border-color:#967553}.measure-progress .done{color:#62755a;border-color:#a3b49a}.measure-viewfinder{aspect-ratio:3/4;background:#25231f;border-radius:14px;max-height:65dvh;margin:22px 0 18px;position:relative;overflow:hidden}.measure-viewfinder video{object-fit:contain;width:100%;height:100%;display:block}.measure-camera-empty{color:#d2c4b1;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.measure-camera-empty span{font-size:55px;font-weight:200}.measure-camera-empty p{font-size:13px}.measure-frame-corners{pointer-events:none;border:1px solid #ded3bb80;border-radius:20px;position:absolute;inset:12%}.measure-live{color:#fff;background:#0008;border-radius:20px;padding:7px 10px;font-size:10px;position:absolute;top:12px;left:12px}.measure-guidance{text-align:center;color:#fff;background:#211c17bb;border-radius:9px;padding:12px;font-size:13px;position:absolute;bottom:15px;left:10px;right:10px}.measure-error{color:#8c4629;background:#fff2e9;border:1px solid #dbc0ae;border-radius:8px;padding:14px;font-size:13px;line-height:1.8}.measure-camera-select{color:var(--muted);align-items:center;gap:12px;margin:12px 0;font-size:12px;display:flex}.measure-camera-select select{border:1px solid var(--line);color:#403a34;background:#fff;border-radius:5px;flex:1;min-width:0;padding:10px}.measure-work progress{accent-color:#957b62;width:100%;height:7px}.measure-gallery{grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0;display:grid}.measure-gallery figure{min-width:0;margin:0}.measure-gallery img{aspect-ratio:3/4;object-fit:contain;background:#e8e1d8;border-radius:6px;width:100%;display:block}.measure-gallery figcaption{color:var(--muted);justify-content:space-between;padding:7px 0;font-size:10px;display:flex}.measure-gallery figcaption span{font-size:8px}.measure-results{margin:25px 0}.measure-results article{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:15px 0;display:flex}.measure-results img{object-fit:contain;background:#e8e1d8;border-radius:7px;width:72px;height:84px}.measure-results article div{flex:1}.measure-results strong{font-size:15px;font-weight:500}.measure-results p{color:var(--muted);font-size:12px}.measure-result-note{background:#eee8df;border-radius:10px;margin:20px 0;padding:18px}.measure-result-note strong{font-size:14px;font-weight:500}.measure-result-note p{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.8}.measure-modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#211c1766;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.measure-modal{background:#faf7f1;border-radius:18px;max-width:480px;max-height:90dvh;padding:30px;position:relative;overflow:auto;box-shadow:0 25px 100px #0003}.measure-modal h2{font-family:serif;font-size:25px;font-weight:400}.measure-modal ol{padding-left:22px}.measure-modal li{color:var(--bronze);padding:5px 0 8px}.measure-modal li strong{color:#403830;font-size:14px;font-weight:500}.measure-modal li p{color:var(--muted);margin:7px 0;font-size:12px;line-height:1.9}.measure-modal-close{color:#796852;background:0 0;border:0;width:44px;height:44px;font-size:27px;position:absolute;top:10px;right:15px}@media (width>=800px){.measure-hero{max-width:770px;margin:auto}.measure-steps{max-width:700px;margin:25px auto 30px}.measure-work .measure-viewfinder{max-height:540px}}@media (width<=600px){.measure-shell{padding:0 22px}.measure-header{letter-spacing:2px;height:67px;font-size:18px}.measure-header small{margin-left:6px;font-size:9px}.measure-intro{padding:31px 0 23px}.measure-eyebrow{letter-spacing:4px;margin-bottom:14px;font-size:10px}.measure-page h1{letter-spacing:2px;font-size:34px;line-height:1.45}.measure-subtitle{margin-top:12px;font-size:12px}.measure-hero img{object-position:47% center;height:285px}.measure-hero figcaption{letter-spacing:0;padding-top:11px;font-size:10px}.measure-steps{margin:20px 0 24px}.measure-steps p{letter-spacing:0;font-size:10px}.measure-steps em{font-size:25px}.measure-primary{min-height:54px;font-size:15px}.measure-fine,.measure-test-note{font-size:10px}.measure-footer{padding-top:15px}.measure-work{margin-top:23px}.measure-work h1{font-size:29px}.measure-progress{gap:4px;margin-bottom:25px}.measure-progress span{font-size:10px}.measure-gallery{gap:7px}}.measure-metrics{margin:24px 0}.measure-metrics h2{color:#79634d;font-size:17px;font-weight:500}.measure-metrics article{border:1px solid var(--line);background:#fffaf3;border-radius:10px;margin:12px 0;padding:17px}.measure-metrics strong{font-size:15px;font-weight:500}.measure-metrics small{color:#94764f;margin-left:8px;font-size:10px}.measure-metrics dl{grid-template-columns:1fr 1fr;gap:15px;margin:20px 0 10px;display:grid}.measure-metrics dt{color:var(--muted);font-size:10px}.measure-metrics dd{font-variant-numeric:tabular-nums;margin:6px 0 0;font-size:18px}.measure-metrics article p{color:#8b7055;font-size:11px;line-height:1.8}@media (prefers-reduced-motion:no-preference){.measure-intro,.measure-work{animation:.35s ease-out measure-appear}@keyframes measure-appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}.measure-photo-check{border-top:1px solid var(--line);padding:12px 0}.measure-photo-check strong{font-size:12px}.measure-photo-check .measure-link{padding-left:0}.measure-review-image{object-fit:contain;width:100%;max-height:55dvh;display:block}.measure-photo-checks summary{line-height:1.8}.measure-lab{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:10px;margin:20px 0;padding:16px}.measure-lab h2{font-size:17px}.measure-lab p{color:var(--muted);font-size:11px;line-height:1.8}.measure-lab-history{font-size:12px}.measure-lab-comparison{background:#eee8df;border-radius:8px;padding:12px}.measure-lab-comparison select{border:1px solid var(--line);background:#fffaf3;width:100%;max-width:100%;margin-top:8px;padding:8px;font-size:11px;display:block}.measure-overlay-photo{position:relative}.measure-overlay-photo .measure-review-image{width:100%;max-height:none;margin:0;display:block}.measure-overlay-photo svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.nail-summary{border-block:1px solid var(--line);margin:24px 0;padding:16px 0}.nail-summary h2{margin:0 0 10px;font-size:20px;font-weight:500}.nail-summary h3{font-size:15px;font-weight:500}.nail-summary p{color:var(--muted);margin:7px 0;font-size:11px;line-height:1.7}.nail-summary-strip{scroll-snap-type:x proximity;grid-auto-columns:210px;grid-auto-flow:column;gap:14px;padding:0 0 12px;display:grid;overflow-x:auto}.nail-summary-card{scroll-snap-align:start;min-width:0}.nail-summary-card h4{margin:0 0 10px;font-size:14px;font-weight:500}.nail-summary-card h4 small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.nail-summary-photo,.nail-summary-empty{aspect-ratio:1;background:#eae4db;border-radius:8px;width:100%;display:block;overflow:hidden}.nail-summary-empty{color:var(--muted);place-items:center;font-size:12px;display:grid}.nail-summary .nail-summary-values{color:var(--ink,#302d29);font-variant-numeric:tabular-nums;font-size:15px}.nail-summary .nail-summary-status{color:#9b4535}.capture-ruler{pointer-events:none;color:#fff;z-index:2;background:linear-gradient(#171717b8 0 29px,#0000 29px),linear-gradient(90deg,#171717b8 0 29px,#0000 29px);width:100%;height:100%;position:absolute;inset:0}.capture-ruler line{stroke:currentColor;stroke-width:1px}.capture-ruler text{fill:currentColor;font:9px sans-serif}.capture-level{z-index:3;color:#f4dbb5;background:#171717d9;border:1px solid #ffffff40;border-radius:10px;align-items:center;gap:8px;max-width:calc(100% - 48px);padding:8px;display:flex;position:absolute;top:42px;right:10px}.capture-level strong,.capture-level small{font-size:11px;line-height:1.6;display:block}.capture-level small{max-width:180px;font-size:10px}.capture-level button{color:#332d25;background:#fff2df;border:0;border-radius:5px;min-height:36px;margin-top:4px;padding:8px;font-size:11px}.capture-level-target{background:linear-gradient(#0000 49%,#fff5 49% 51%,#0000 51%),linear-gradient(90deg,#0000 49%,#fff5 49% 51%,#0000 51%);border:1px solid;border-radius:50%;flex-shrink:0;width:50px;height:50px;position:relative}.capture-level-target i{border:1px solid;border-radius:50%;width:16px;height:16px;position:absolute;top:16px;left:16px}.capture-level-target b{background:currentColor;border-radius:50%;width:8px;height:8px;position:absolute;top:20px;left:20px}.capture-level.is-level{color:#a8efb1}.measure-viewfinder .measure-live{top:auto;bottom:85px;left:40px}.measure-viewfinder .measure-guidance{left:38px}.screen-ruler-dialog{width:min(480px,100%);padding:20px}.screen-ruler-dialog h2{margin:0 0 12px}.screen-ruler-dialog p{font-size:12px;line-height:1.7}.screen-card-space{justify-content:center;margin:16px -20px;display:flex}.screen-card-outline{background:#e5dccb;border-radius:10px;outline:1px solid #302d29;flex-shrink:0;place-items:center;display:grid}.screen-card-outline span{color:#716454;font-size:12px}.screen-ruler-dialog label{font-size:13px;display:block}.screen-ruler-dialog input[type=range]{width:100%;height:40px}.screen-ruler-adjust{gap:10px;margin-bottom:14px;display:flex}.screen-ruler-adjust button{background:#fffaf3;border:1px solid #b6a38d;border-radius:6px;flex:1;min-height:40px}.screen-ruler-calibration>.measure-secondary{min-height:44px;padding:10px;font-size:13px}.measure-modal-backdrop:has(.screen-ruler-dialog){padding:10px}.measure-gallery-preview{margin:16px 0}.measure-gallery-preview img{background:#25231f;border-radius:8px;width:100%;display:block}.measure-gallery-preview figcaption{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:11px;display:flex}.phone-model-calibration{text-align:center;margin:12px 0}.phone-model-calibration label{text-align:left;margin:10px 0;font-size:13px;display:block}.phone-model-calibration select{border:1px solid var(--line);color:#403a34;background:#fff;border-radius:6px;width:100%;min-height:44px;margin-top:6px;padding:8px}.capture-anim{background:#f1ebe2;border-radius:12px;align-items:center;gap:12px;margin:14px 0 0;padding:10px 12px;display:flex}.capture-anim-scene{flex:0 0 38%;max-width:170px;height:auto}.capture-anim-text{flex:1;min-width:0}.capture-anim-text ol{color:#5d5348;margin:0 0 2px;padding-left:18px;font-size:12px;line-height:1.7}.capture-anim-text .measure-link{min-height:0;padding:2px 0;font-size:12px}.capture-anim-collapsed{color:#796852;letter-spacing:1px;background:0 0;border:1px dashed #cfc4b7;border-radius:10px;width:100%;min-height:40px;margin:14px 0 0;font-size:12px}.ca-table{fill:#e6dccd}.ca-hand rect,.ca-hand ellipse{fill:#e9b99a}.ca-hand .ca-nail{fill:#fff6ee;stroke:#c9926f;stroke-width:1.5px}.ca-card rect:first-child{fill:#2f4a7a}.ca-card rect:last-child{fill:#d8b95b}.ca-arc{fill:none;stroke:#8b7355;stroke-width:2px;stroke-dasharray:5 5;stroke-linecap:round}.ca-phone-body rect{fill:#3b3631}.ca-phone-body circle{fill:#8f8478}.ca-dir{fill:none;stroke:#7b5a3c;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.ca-phone-body{transform-box:fill-box;transform-origin:50%;animation:3.4s ease-in-out infinite alternate ca-sweep}.ca-nail{animation:1.8s ease-in-out infinite ca-pulse}.ca-dir{animation:1.6s ease-in-out infinite ca-nudge}@keyframes ca-sweep{0%{transform:translate(-62px,10px)rotate(-14deg)}to{transform:translate(62px,10px)rotate(14deg)}}@keyframes ca-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes ca-nudge{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@media (prefers-reduced-motion:reduce){.ca-phone-body,.ca-nail,.ca-dir{animation:none}}.ca-side-floor{stroke:#8b7355;stroke-width:2px}.ca-side-phone-body{fill:#3b3631}.ca-side-lens{fill:#8f8478}.ca-side-phone{animation:3s ease-in-out infinite alternate ca-lower}@keyframes ca-lower{0%{transform:translateY(-6px)}to{transform:translateY(46px)}}@media (prefers-reduced-motion:reduce){.ca-side-phone{animation:none;transform:translateY(40px)}}.live-strip{color:#f4efe7;background:#25231f;border-left:5px solid #8b8378;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:4px 12px;margin:8px 0 0;padding:8px 12px;display:grid}.live-strip .live-text{min-width:0}.live-strip strong{font-size:15px;font-weight:600;line-height:1.3;display:block}.live-strip small{opacity:.7;margin-top:1px;font-size:11px;display:block}.live-strip .live-chips{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.live-chips span{background:#ffffff1f;border-radius:99px;padding:2px 7px;font-size:11px}.live-chips span.done{background:#4d8a5e}.live-chips span.warn{background:#a8612c}.live-dial{width:52px;height:52px}.dial-range{fill:#ffffff1a}.dial-hole{fill:#25231f}.dial-flat{fill:#68c48073;stroke:#68c480;stroke-width:1px}.dial-axis{stroke:#ffffff40;stroke-width:.7px}.dial-dot{fill:#ffd36b;stroke:#25231f;stroke-width:1px}.live-moving{border-left-color:#e0a030}.live-ready{border-left-color:#68c480}.live-captured{background:#2f4a37;border-left-color:#68c480}.live-idle{border-left-color:#8b8378}.measure-viewfinder{outline-offset:3px;outline:0 solid #0000;transition:outline-color .12s}.measure-viewfinder.live-moving{outline:4px solid #e0a030}.measure-viewfinder.live-ready{outline:4px solid #68c480}.measure-viewfinder.live-captured{outline:7px solid #68c480}.measure-shell:has(.is-capturing) .measure-header{display:none}.measure-work.is-capturing .measure-viewfinder{max-height:calc(100dvh - 330px);margin:10px 0 8px}.measure-work.is-capturing .measure-fine{margin:4px 0}.measure-work.is-capturing .measure-primary,.measure-work.is-capturing .measure-secondary{min-height:46px}.measure-work.is-capturing .live-chips span{padding:1px 6px;font-size:10.5px}.measure-work.is-capturing .measure-viewfinder video{object-fit:cover}@media (prefers-reduced-motion:reduce){.measure-viewfinder{transition:none}}.measure-quality{color:#5d5348;background:#f1ebe2;border-radius:12px;margin:10px 0;padding:10px 12px;font-size:12.5px;line-height:1.6}.measure-quality p{margin:2px 0}.measure-quality-stable{color:#2f6a42}.measure-quality-unstable,.measure-quality-need_more{color:#a8612c}.measure-gallery figure.excluded img{opacity:.4;outline:2px solid #a8612c}.measure-gallery figure.excluded figcaption{color:#a8612c}.live-bar{background:#ffffff24;border-radius:3px;grid-column:1/-1;height:5px;overflow:hidden}.live-bar span{background:#68c480;height:100%;transition:width .25s;display:block}@media (prefers-reduced-motion:reduce){.live-bar span{transition:none}}.measure-side-row{gap:8px;margin-top:6px;display:flex;overflow-x:auto}.measure-side-row figure{text-align:center;flex:0 0 84px;margin:0;font-size:10.5px}.measure-side-row img{object-fit:cover;border-radius:8px;width:84px;height:84px;display:block}.measure-side-row figure.excluded img{opacity:.4;outline:2px solid #a8612c}.measure-side-row figure.excluded figcaption{color:#a8612c}
