
:root{--ink:#241f2b;--muted:#8c8490;--line:#e9e3e8;--paper:#fbfaf9;--lilac:#cfc1f4;--coral:#eb8e75;--green:#68ad85;--shadow:0 20px 50px rgba(42,28,47,.08);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:14px}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;overflow:hidden}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;border-bottom:1px solid var(--line);background:rgba(251,250,249,.92);position:relative;z-index:3}.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:flex;align-items:flex-end;gap:3px;height:25px}.brand-mark span{display:block;width:6px;border-radius:8px;background:var(--ink)}.brand-mark span:nth-child(1){height:13px}.brand-mark span:nth-child(2){height:21px;background:var(--coral)}.brand-mark span:nth-child(3){height:17px;background:var(--lilac)}.brand-name{letter-spacing:.19em;font-size:13px;font-weight:800}.brand-subtitle{font-size:10px;color:var(--muted);margin-top:3px}.topbar-actions{display:flex;align-items:center;gap:12px}.store-chip{display:flex;align-items:center;gap:8px;color:#645c67;font-size:12px;padding:9px 13px;border:1px solid var(--line);background:#fff}.status-dot,.live-dot{width:7px;height:7px;border-radius:100%;background:var(--green);display:inline-block;box-shadow:0 0 0 3px rgba(104,173,133,.14)}.icon-button,.avatar-button{border:1px solid var(--line);background:#fff;width:34px;height:34px;display:grid;place-items:center;color:var(--muted)}.avatar-button{border-radius:50%;background:var(--ink);color:#fff;font-size:12px;border-color:var(--ink)}.hero-band{min-height:370px;background:#f1edf4;display:flex;align-items:center;justify-content:space-between;padding:52px 12vw 47px 14vw;position:relative}.hero-band:after{content:"";position:absolute;width:370px;height:370px;background:#e9e1ee;right:14%;top:-190px;border-radius:50%}.hero-copy{position:relative;z-index:1;max-width:520px}.eyebrow,.section-kicker,.card-label{font-size:10px;letter-spacing:.18em;color:#928895;font-weight:700}.eyebrow{display:flex;align-items:center;gap:9px}.eyebrow-line{height:1px;width:24px;background:var(--coral)}h1{font-size:50px;line-height:1.18;letter-spacing:-.045em;margin:22px 0 18px;font-weight:750}h1 em{font-style:normal;color:#8e79b1}.hero-copy p{color:#756d78;line-height:1.8;max-width:415px}.hero-pills{display:flex;gap:8px;margin-top:24px}.hero-pills span{font-size:11px;color:#716977;display:flex;align-items:center;gap:6px}.hero-pills i{font-style:normal;color:var(--coral);font-size:10px}.hero-orbit{height:250px;width:320px;position:relative;z-index:1;margin-right:4vw}.orbit-ring{position:absolute;border:1px solid rgba(143,117,173,.35);border-radius:50%;transform:rotate(-28deg)}.ring-one{width:300px;height:145px;top:52px;left:3px}.ring-two{width:280px;height:145px;top:51px;left:18px;transform:rotate(25deg);border-color:rgba(235,142,117,.28)}.hero-swatch{position:absolute;width:72px;height:97px;border-radius:42px 42px 30px 30px;transform:rotate(33deg);box-shadow:0 14px 28px rgba(59,36,73,.12)}.swatch-lilac{background:linear-gradient(150deg,#fff,#bea9ec);left:85px;top:50px}.swatch-coral{background:linear-gradient(150deg,#ffd9cd,#d76f65);left:160px;top:73px;transform:rotate(63deg)}.swatch-ink{background:linear-gradient(150deg,#4a384b,#17131c);left:220px;top:37px;transform:rotate(94deg)}.hero-note{position:absolute;right:5px;bottom:5px;display:flex;flex-direction:column;align-items:flex-end;color:#766b7a;font-size:10px}.hero-note strong{font-size:13px;color:var(--ink);margin-bottom:3px}.workspace{max-width:1140px;margin:0 auto;padding:64px 32px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.section-heading h2{font-size:31px;letter-spacing:-.04em;margin:10px 0 0}.heading-note{font-size:11px;color:var(--muted)}.heading-note strong{color:var(--ink);font-weight:600;margin-left:5px}.preview-grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(320px,.8fr);gap:18px}.camera-panel,.style-panel,.management-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.camera-panel{padding:18px}.panel-topline{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.08em;color:#77707a;font-weight:700;margin-bottom:15px}.text-button{border:0;background:transparent;color:#958b98;font-size:11px;padding:0}.camera-stage{height:405px;background:#e8e3e8;position:relative;overflow:hidden;display:grid;place-items:center;background-image:radial-gradient(#fff8 1px,transparent 1px);background-size:16px 16px}.camera-stage:before{content:"";position:absolute;inset:18px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.44)}.camera-corners i{position:absolute;width:25px;height:25px;border-color:rgba(53,38,60,.32);border-style:solid}.camera-corners i:nth-child(1){top:33px;left:33px;border-width:2px 0 0 2px}.camera-corners i:nth-child(2){top:33px;right:33px;border-width:2px 2px 0 0}.camera-corners i:nth-child(3){bottom:33px;left:33px;border-width:0 0 2px 2px}.camera-corners i:nth-child(4){bottom:33px;right:33px;border-width:0 2px 2px 0}.camera-instruction{display:flex;align-items:center;flex-direction:column;gap:6px;color:#776f79;z-index:1;transition:.3s}.hand-icon{font-size:45px;filter:grayscale(1);opacity:.48}.camera-instruction strong{font-size:13px}.camera-instruction small{font-size:10px;color:#9a919b}.camera-badge{position:absolute;bottom:31px;left:50%;transform:translateX(-50%);background:rgba(37,31,43,.72);color:#fff;padding:7px 12px;border-radius:20px;font-size:10px;display:flex;align-items:center;gap:7px}.scan-line{display:none;width:6px;height:6px;border-radius:50%;background:var(--coral)}.camera-badge.scanning .scan-line{display:block;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.35}}.camera-controls{display:flex;gap:10px;margin-top:16px}.capture-button,.primary-button,.secondary-button{height:42px;border:0;padding:0 18px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px}.capture-button,.primary-button{color:#fff;background:var(--ink)}.capture-button span{font-size:17px;color:#f2aaa0}.secondary-button{background:#f4f1f4;color:#655c68}.style-panel{padding:18px;display:flex;flex-direction:column;min-height:505px}.filter-row{display:flex;gap:5px;padding-bottom:13px;border-bottom:1px solid var(--line)}.filter{border:0;background:transparent;color:#9c939f;font-size:11px;padding:6px 9px}.filter.active{background:#f2edf6;color:#79618e}.style-list{display:flex;flex-direction:column;gap:2px;overflow:auto;max-height:315px;padding-top:8px}.style-item{display:flex;align-items:center;gap:11px;padding:9px 7px;border:1px solid transparent;cursor:pointer}.style-item:hover,.style-item.selected{background:#faf8fb;border-color:#eee8f0}.style-thumb{width:42px;height:48px;flex:0 0 42px;border-radius:22px 22px 15px 15px;position:relative;overflow:hidden}.style-thumb:after{content:"";position:absolute;inset:5px 9px 8px;border-radius:15px 15px 10px 10px;background:var(--thumb-fill);box-shadow:inset 2px 3px 6px #fff8}.style-item-info{min-width:0;flex:1}.style-item-info strong{display:block;font-size:12px;margin-bottom:4px}.style-item-info span{font-size:10px;color:var(--muted)}.style-item-price{font-size:11px;color:#746478}.selection-summary{border-top:1px solid var(--line);margin-top:auto;padding:15px 0 13px;display:flex;align-items:center;justify-content:space-between}.selection-summary span{font-size:10px;color:var(--muted);display:block;margin-bottom:4px}.selection-summary strong{font-size:13px}.price{font-size:19px;font-weight:700}.full-width{width:100%}.primary-button span{font-size:17px;margin-left:auto}.management-view{padding-top:52px}.hidden{display:none!important}.management-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.management-card{padding:24px}.store-profile-card{grid-row:span 2;background:#f4f0f5}.card-label{margin-bottom:22px}.store-profile-title{display:flex;align-items:center;gap:13px}.store-avatar{width:44px;height:44px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:15px}.store-profile-title h3,.management-card h3{font-size:18px;margin:0 0 4px}.store-profile-title p,.management-card>p{color:var(--muted);font-size:11px;margin:0;line-height:1.7}.expiry-block{display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #dfd6e1;margin-top:34px;padding-top:24px}.expiry-block span:first-child{font-size:11px;color:#827789;display:block;margin-bottom:7px}.expiry-block strong{font-size:23px;letter-spacing:-.04em}.valid-badge{padding:5px 9px;background:#e7f4eb;color:#4e8d68;font-size:10px}.valid-badge.expired{background:#fae6e4;color:#b56b68}.progress-track{height:4px;background:#ded7e0;margin:20px 0 10px;overflow:hidden}.progress-track span{height:100%;display:block;background:var(--coral);width:75%}.helper-text{font-size:11px;color:#958a98;line-height:1.6}.expiry-card label{display:block;font-size:11px;color:#726a76;margin:22px 0 8px}.date-input-wrap{position:relative}.date-input-wrap input{width:100%;height:43px;border:1px solid var(--line);padding:0 12px;color:var(--ink);background:#fff}.date-input-wrap span{position:absolute;right:13px;top:12px;color:#9a909e;pointer-events:none}.expiry-card .primary-button{margin-top:15px}.save-feedback{height:17px;margin-top:9px;font-size:10px;color:var(--green)}.card-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.card-heading h3{margin:0}.card-heading span{font-size:11px;color:var(--muted)}.style-table{border-top:1px solid var(--line)}.table-row{height:49px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.table-row .style-thumb{width:27px;height:31px;flex-basis:27px;border-radius:14px 14px 8px 8px}.table-row .style-thumb:after{inset:3px 6px 5px}.table-row strong{font-size:11px;flex:1}.table-row span{font-size:10px;color:var(--muted)}.upload-style-button{margin-top:15px;height:39px;border:1px dashed #cfc5d2;color:#87798b;display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;cursor:pointer}.upload-style-button span{font-size:17px}.footer{max-width:1140px;margin:0 auto;padding:18px 32px 35px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;letter-spacing:.04em;color:#aaa1ad}.modal-backdrop{position:fixed;inset:0;background:rgba(34,27,39,.38);z-index:10;display:grid;place-items:center;padding:18px}.modal{background:#fff;width:min(100%,390px);padding:34px;position:relative;box-shadow:0 30px 80px rgba(26,18,33,.2)}.modal-close{position:absolute;right:16px;top:14px;border:0;background:transparent;color:#a79daa;font-size:23px}.modal-kicker{font-size:10px;letter-spacing:.18em;color:#998b9f;font-weight:700;margin-bottom:13px}.modal h2{font-size:26px;letter-spacing:-.04em;margin:0 0 7px}.modal p{font-size:12px;color:var(--muted);line-height:1.8;margin:0 0 23px}.modal label{font-size:11px;color:#776d7b;display:block;margin:14px 0}.modal input{display:block;width:100%;height:42px;border:1px solid var(--line);margin-top:7px;padding:0 12px;color:var(--ink);outline:none}.modal input:focus{border-color:#bdaac7}.password-wrap{position:relative}.password-wrap input{padding-right:42px}.password-wrap button{position:absolute;right:8px;top:7px;border:0;background:transparent;color:#a398a8}.demo-hint{font-size:10px;color:#a198a3;background:#faf7fa;padding:9px 10px;margin:18px 0}.form-error{height:16px;color:#bd6a68;font-size:10px;margin-top:8px}.notice-modal{text-align:center;padding:42px 36px 34px}.notice-icon{width:42px;height:42px;background:#e8f5eb;color:#51a171;border-radius:50%;display:grid;place-items:center;margin:0 auto 17px;font-size:21px}.notice-modal h2{font-size:22px}.notice-modal p{margin-bottom:22px}@media(max-width:820px){.topbar{padding:0 22px}.store-chip{display:none}.hero-band{padding:45px 28px 40px;min-height:420px}.hero-orbit{position:absolute;right:-62px;bottom:13px;opacity:.66;transform:scale(.72)}h1{font-size:41px}.workspace{padding:46px 18px}.preview-grid{grid-template-columns:1fr}.style-panel{min-height:0}.style-list{max-height:none}.management-grid{grid-template-columns:1fr}.store-profile-card{grid-row:auto}.section-heading{align-items:flex-start;gap:14px;flex-direction:column}.heading-note{align-self:flex-start}.footer{padding:18px}.footer span:last-child{display:none}}@media(max-width:460px){.hero-band{min-height:450px}.camera-stage{height:340px}.camera-controls{flex-direction:column}.capture-button,.secondary-button{width:100%}.modal{padding:30px 22px}.brand-name{font-size:12px}}

/* Live camera and captured photo layers */
.camera-stage.camera-active,.camera-stage.photo-active{background:#27232a;background-image:none}
.camera-stage.camera-active:before,.camera-stage.photo-active:before{display:none}
#cameraVideo,#capturedPhoto{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#cameraVideo{transform:scaleX(-1)}
#cameraVideo.visible,#capturedPhoto.visible{display:block}
#capturedPhoto{z-index:1}
#nailOverlay{display:none;position:absolute;inset:0;width:100%;height:100%;z-index:2;transform:translate(var(--fit-x,0),var(--fit-y,0)) scale(var(--fit-scale,1));transform-origin:center;pointer-events:none;overflow:visible}
#nailOverlay.visible{display:block}
.nail-shapes path{fill:var(--nail-color,#e9bfae);fill-opacity:.76;stroke:rgba(255,255,255,.8);stroke-width:3;filter:drop-shadow(0 2px 2px rgba(55,31,44,.18));transition:fill .2s}
.camera-corners{position:absolute;inset:0;z-index:3;pointer-events:none}
.camera-badge{z-index:4;white-space:nowrap}
.camera-instruction{position:relative}
.fit-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;padding:13px 3px 0}
.fit-controls label{display:grid;grid-template-columns:auto 1fr 30px;align-items:center;gap:8px;font-size:10px;color:#766d79}
.fit-controls input{min-width:0;width:100%;accent-color:#937ca1}
.fit-controls label span{text-align:right;font-variant-numeric:tabular-nums}
.fit-hint{grid-column:1/-1;font-size:10px;color:#a198a3}
.camera-controls .secondary-button{white-space:nowrap}
@media(max-width:820px){.fit-controls{grid-template-columns:1fr}.fit-hint{grid-column:auto}}
