:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f8fa;--card:#fff;--ink:#171a22;--muted:#545e6e;--line:#e2e6ed;--line-strong:#cbd2dd;--brand:#b83280;--brand-hover:#9d174d;--brand-ink:#6b21a8;--brand-tint:#fdf2f9;--violet:#6d28d9;--brand2:#6d28d9;--brand-deep:#6b21a8;--ok:#15803d;--warn:#a16207;--err:#b91c1c;--info:#1d4ed8;--ok-tint:#ecfdf5;--warn-tint:#fffbeb;--err-tint:#fef2f2;--info-tint:#eff6ff;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow:0 1px 2px #1018280a, 0 8px 24px #1018280d;--shadow-lift:0 12px 32px #1018281a;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--dark-bg:#12141d;--dark-card:#1a1d29;--dark-line:#2a2e3f;--dark-ink:#e7e9f2;--dark-muted:#a8adbd}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;font-size:15px;line-height:1.65}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0 0 var(--sp-3);letter-spacing:-.01em;text-wrap:balance;font-weight:700}h1{font-size:34px;line-height:1.25}h2{font-size:22px;line-height:1.3}h3{font-size:17px;line-height:1.4}h4{font-size:15px}p{margin:0 0 var(--sp-3);text-wrap:pretty}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,Consolas,monospace;font-size:13px}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--violet);outline-offset:2px}.container{max-width:1120px;padding:var(--sp-5) var(--sp-4) 72px;margin:0 auto}.row{gap:var(--sp-3);align-items:center;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.col{gap:var(--sp-3);flex-direction:column;display:flex}.grid{gap:var(--sp-4);display:grid}.grid.c2{grid-template-columns:1fr 1fr}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}@media (max-width:860px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}.site-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:40;background:#fffffff0;position:sticky;top:0}.site-header .inner{max-width:1120px;padding:0 var(--sp-4);align-items:center;gap:var(--sp-5);height:60px;margin:0 auto;display:flex}.logo{letter-spacing:-.02em;color:var(--brand-ink);font-size:19px;font-weight:800}.nav{gap:var(--sp-1);flex:1;display:flex}.nav a{padding:7px var(--sp-3);border-radius:var(--radius-sm);color:var(--muted);font-weight:500}.nav a:hover{color:var(--ink);background:#f1f2f6}.nav a.active{background:var(--brand-tint);color:var(--brand-ink);font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-5)}.card.pad0{padding:0;overflow:hidden}.card .card,.card .stat-card{border:0;border-top:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;padding-left:0;padding-right:0}.card-title{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.section-title{margin:var(--sp-6) 0 var(--sp-4);font-size:19px;font-weight:700}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--ink);text-align:center;background:#fff;border:1px solid #0000;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;transition:background-color .16s,border-color .16s,color .16s,transform 80ms;display:inline-flex}.btn:hover{background:#f3f4f7}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand);color:#fff;box-shadow:0 1px 2px #1018281f}.btn.primary:hover{background:var(--brand-hover)}.btn.ghost{border-color:var(--line-strong);color:var(--ink);background:#fff}.btn.ghost:hover{border-color:var(--muted);background:#f7f8fa}.btn.danger{background:var(--err-tint);color:var(--err);border-color:#fecaca}.btn.danger:hover{background:#fee2e2}.btn.sm{padding:5px 11px;font-size:13px}.btn.lg{padding:13px 26px;font-size:15px}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;color:var(--ink);background:#fff;outline:none;padding:10px 13px;font-family:inherit;font-size:15px;transition:border-color .16s,box-shadow .16s}.input:focus,.select:focus,.textarea:focus{border-color:var(--violet);box-shadow:0 0 0 3px #171a2214}.textarea{resize:vertical;min-height:96px}.label{color:var(--muted);margin:var(--sp-3) 0 var(--sp-1);font-size:13px;font-weight:600;display:block}.form-grid{gap:0 var(--sp-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.checkbox-line{gap:var(--sp-2);color:var(--ink);align-items:flex-start;font-size:14px;display:flex}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line-strong);white-space:nowrap;padding:10px;font-size:13px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 10px}.table tr:hover td{background:#fafbfc}.badge{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;padding:3px 9px;font-size:13px;font-weight:600;display:inline-flex}.badge.ok{background:var(--ok-tint);color:var(--ok)}.badge.warn{background:var(--warn-tint);color:var(--warn)}.badge.err{background:var(--err-tint);color:var(--err)}.badge.info{background:var(--info-tint);color:var(--info)}.badge.brand{background:var(--brand-tint);color:var(--brand-ink)}.badge.gray{color:var(--muted);background:#f1f3f6}.vm-progress-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap;display:flex}.vm-progress-copy{flex-direction:column;gap:1px;display:flex}.vm-progress-title{align-items:center;gap:10px;display:flex}.vm-progress-title strong{color:var(--ink);font-size:15px;font-weight:700}.vm-progress-updated{color:var(--ok);font-size:13px;font-weight:600;animation:.3s ease-out vm-appear}.vm-progress-figure{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.vm-progress-figure b{color:var(--brand-ink);font-variant-numeric:tabular-nums;font-size:20px}.vm-progress-bar{background:var(--line);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.vm-progress-bar i{background:var(--brand);border-radius:3px;height:100%;transition:width .7s cubic-bezier(.22,.7,.3,1);display:block}.vm-progress.is-halted .vm-progress-bar i,.vm-progress.is-halted .vm-step-meter i{background:var(--muted)}.vm-steps{margin-top:var(--sp-4);padding-bottom:4px;display:flex;overflow-x:auto}.vm-step{text-align:center;min-width:112px;animation:.4s ease-out both vm-stepin;animation-delay:calc(var(--vm-i) * 65ms);flex:1 0 112px;padding:32px 5px 0;position:relative}.vm-step-line{background:var(--line);width:100%;height:2px;position:absolute;top:11px;left:-50%;overflow:hidden}.vm-step:first-child .vm-step-line{display:none}.vm-step-line i{background:var(--brand);width:0;height:100%;transition:width .7s cubic-bezier(.22,.7,.3,1);display:block}.vm-step.is-done .vm-step-line i{width:100%}.vm-step.is-now .vm-step-line i{width:38%;animation:2.4s ease-in-out infinite vm-rail}.vm-step-dot{z-index:2;border:2px solid var(--line-strong);background:var(--card);width:22px;height:22px;color:var(--muted);border-radius:50%;font-size:13px;font-weight:700;line-height:18px;transition:background .35s,border-color .35s,color .35s;position:absolute;top:1px;left:50%;transform:translate(-50%)}.vm-step.is-done .vm-step-dot{background:var(--brand);border-color:var(--brand);color:#fff}.vm-step.is-now .vm-step-dot{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-ink)}.vm-step.is-now .vm-step-dot:after{content:"";border:2px solid var(--brand);border-radius:50%;animation:2s ease-out infinite vm-pulse;position:absolute;inset:-6px}.vm-step.is-halted .vm-step-dot{background:var(--bg);border-color:var(--muted)}.vm-step-name{color:var(--muted);font-size:13px;line-height:1.45}.vm-step.is-done .vm-step-name{color:var(--ink);font-weight:600}.vm-step.is-now .vm-step-name{color:var(--brand-ink);font-weight:700}.vm-step-state{min-height:20px;color:var(--muted);white-space:nowrap;justify-content:center;align-items:center;gap:4px;margin-top:2px;font-size:13px;display:flex}.vm-step.is-done .vm-step-state{color:var(--ok)}.vm-step.is-now .vm-step-state{color:var(--brand-ink);font-weight:600}.vm-dots{gap:3px;display:inline-flex}.vm-dots i{background:var(--brand);border-radius:50%;width:3px;height:3px;animation:1.2s ease-in-out infinite vm-blink}.vm-dots i:nth-child(2){animation-delay:.18s}.vm-dots i:nth-child(3){animation-delay:.36s}.vm-step-meter{background:var(--line);border-radius:2px;height:3px;margin:8px 9px 0;display:block;overflow:hidden}.vm-step-meter i{background:var(--brand);border-radius:2px;height:100%;transition:width .7s cubic-bezier(.22,.7,.3,1);display:block}.vm-step-meter.is-indeterminate i{width:38%;animation:1.9s ease-in-out infinite vm-flow}.vm-progress-meta{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}@keyframes vm-stepin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes vm-pulse{0%{opacity:.7;transform:scale(.72)}75%,to{opacity:0;transform:scale(1.35)}}@keyframes vm-flow{0%{transform:translate(-110%)}to{transform:translate(270%)}}@keyframes vm-rail{0%{transform:translate(-110%)}to{transform:translate(270%)}}@keyframes vm-blink{0%,60%,to{opacity:.25}30%{opacity:1}}@keyframes vm-appear{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.vm-step{animation:none}.vm-step-meter.is-indeterminate i,.vm-step.is-now .vm-step-line i{width:55%;animation:none;transform:none}.vm-step.is-now .vm-step-dot:after,.vm-dots i{animation:none}}.timeline{flex-direction:column;gap:0;display:flex}.timeline .tl-item{padding:0 0 18px 22px;position:relative}.timeline .tl-item:before{content:"";background:var(--violet);border-radius:50%;width:8px;height:8px;position:absolute;top:6px;left:6px}.timeline .tl-item:after{content:"";background:var(--line);width:1.5px;position:absolute;top:16px;bottom:0;left:9.5px}.timeline .tl-item:last-child:after{display:none}.kv{gap:6px var(--sp-3);grid-template-columns:96px 1fr;font-size:14px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.tabs{gap:var(--sp-2);border-bottom:1px solid var(--line);margin-bottom:var(--sp-4);flex-wrap:wrap;padding-bottom:0;display:flex}.tabs a,.tabs button{padding:9px var(--sp-4);cursor:pointer;color:var(--muted);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-family:inherit;font-size:14px;font-weight:600}.tabs a.active,.tabs button.active{color:var(--brand-ink);border-bottom-color:var(--brand)}.tabs a:hover,.tabs button:hover{color:var(--ink)}.style-card{border-radius:var(--radius);background:var(--card);cursor:pointer;box-shadow:var(--shadow);border:2px solid #0000;transition:border-color .16s,transform .16s;position:relative;overflow:hidden}.style-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.style-card.selected{border-color:var(--brand)}.style-card img{aspect-ratio:3/4;object-fit:cover;background:#ece9f1;width:100%;display:block}.style-card .meta{padding:10px 12px}.style-card .pick-mark{border:1.5px solid var(--line-strong);color:#fff;background:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;display:flex;position:absolute;top:8px;right:8px}.style-card.selected .pick-mark{background:var(--brand);border-color:#0000}.workspace{background:var(--dark-bg);border-radius:var(--radius);color:var(--dark-ink);padding:var(--sp-4)}.workspace .ws-title{color:var(--dark-ink);margin-bottom:10px;font-weight:700}.ws-cols{gap:var(--sp-4);grid-template-columns:300px 1fr 300px;display:grid}@media (max-width:1000px){.ws-cols{grid-template-columns:1fr}}.ws-panel{background:var(--dark-card);border:1px solid var(--dark-line);border-radius:var(--radius);padding:var(--sp-4);min-height:420px}.workspace :where(p,span,b,strong,small,label,li,dt,dd,div){color:inherit}.workspace .muted,.workspace .label,.workspace .kv dt{color:var(--dark-muted)}.workspace .small{color:inherit}.workspace .small.muted{color:var(--dark-muted)}.workspace .checkbox-line{color:var(--dark-ink)}.workspace .checkbox-line input[type=checkbox]{accent-color:var(--brand);flex-shrink:0;width:16px;height:16px}.workspace .input,.workspace .select,.workspace .textarea{border-color:var(--dark-line);color:var(--dark-ink);background:#232734}.workspace :where(.input,.select,.textarea)::placeholder{color:#9aa2b8;opacity:1}.workspace .input:focus,.workspace .select:focus,.workspace .textarea:focus{border-color:#c58adf;box-shadow:0 0 0 3px #e8c3f529}.workspace .divider{background:var(--dark-line)}.workspace .btn.ghost{border-color:var(--dark-line);color:var(--dark-ink);background:0 0}.workspace .btn.ghost:hover{color:#fff;background:#ffffff0f}.workspace .btn.primary:disabled{opacity:1;color:#f2eaf0;background:#7a3a60;border-color:#7a3a60}.workspace .badge{color:var(--dark-ink);background:#ffffff17}.workspace .badge.gray{color:var(--dark-muted);background:#ffffff17}.workspace .badge.ok{color:#7ee2b8;background:#34d39924}.workspace .badge.warn{color:#f7cd75;background:#fbbf2426}.workspace .badge.err{color:#ffa8a8;background:#f8717129}.workspace .badge.info{color:#a9caff;background:#60a5fa26}.workspace .notice{color:var(--dark-muted)}.upload-slot{border:1px dashed var(--dark-line);border-radius:var(--radius-sm);color:var(--dark-ink);background:#ffffff05;margin-bottom:10px;padding:10px}.upload-slot img{object-fit:cover;border-radius:var(--radius-sm);background:#10121a;width:100%;height:110px}.upload-empty{border-radius:var(--radius-sm);color:#9aa2b8;background:#10121a;justify-content:center;align-items:center;height:110px;font-size:13px;display:flex}.modal-mask{z-index:100;padding:var(--sp-4);background:#0f121e8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);width:100%;max-width:520px;padding:var(--sp-5);background:#fff;max-height:86vh;overflow:auto;box-shadow:0 20px 60px #1018283d}.modal.lg{max-width:760px}.modal-title{font-size:19px}.pack-list{border-top:1px solid var(--line);margin:var(--sp-4) 0}.pack-row{padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}.notice{padding:6px 0 6px var(--sp-3);margin:var(--sp-4) 0;background:0 0;border:0;border-left:2px solid;border-radius:0;font-size:13.5px;font-weight:500;line-height:1.7}.notice.info{color:#1e40af}.notice.warn{color:#92400e}.notice.err{color:#991b1b}.notice.ok{color:#065f46}.notice.brand{color:var(--brand-ink)}.notice .btn{margin-left:10px}.card .notice,.hero-card .notice{margin:var(--sp-3) 0 0}.photo-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.photo-cell{border-radius:var(--radius-sm);cursor:pointer;background:#ece9f1;border:2px solid #0000;position:relative;overflow:hidden}.photo-cell.selected{border-color:var(--brand)}.photo-cell img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.photo-cell .tag{color:#fff;border-radius:var(--radius-sm);background:#0000009e;padding:2px 7px;font-size:13px;position:absolute;bottom:6px;left:6px}.layout-stage{border-radius:var(--radius);border:1px solid var(--line);background:repeating-conic-gradient(#f4f4f7 0% 25%,#fff 0% 50%) 50%/24px 24px;justify-content:center;align-items:center;min-height:320px;padding:18px;display:flex;position:relative}.stage-inner{border-radius:var(--radius-sm);background:#fff;position:relative;overflow:hidden;box-shadow:0 10px 30px #1418282e}.stage-inner img.drag-photo{cursor:grab;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform-origin:50%;position:absolute}.stage-inner img.drag-photo:active{cursor:grabbing}.crop-overlay{pointer-events:none;border:2px dashed #6d28d98c;position:absolute;inset:0}.safe-hint{pointer-events:none;border:1px dashed #a1620780;position:absolute;inset:0}.album-page{border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.album-page .ph{background:#ece9f1;position:relative}.album-page .ph img{object-fit:cover;width:100%;height:100%;display:block}.issue-list{flex-direction:column;gap:6px;display:flex}.issue{border-radius:var(--radius-sm);padding:7px 10px;font-size:13px}.issue.error{background:var(--err-tint);color:#991b1b}.issue.warn{background:var(--warn-tint);color:#92400e}.admin-shell{background:#f3f4f7;min-height:100vh;display:flex}.admin-side{color:#c9cdda;width:210px;padding:var(--sp-4) 10px;background:#14161f;flex-shrink:0}.admin-side a{border-radius:var(--radius-sm);color:#c2c6d3;margin:2px 0;padding:9px 12px;font-size:13px;display:block}.admin-side a:hover{color:#fff;background:#20242f}.admin-side a.active{background:var(--brand-ink);color:#fff;font-weight:600}.admin-side .group{color:#a8adbd;margin:var(--sp-4) 8px var(--sp-1);letter-spacing:1px;font-size:13px}.admin-main{padding:var(--sp-5) var(--sp-5) 60px;flex:1;min-width:0}.stat-card{border-radius:var(--radius);padding:var(--sp-4) var(--sp-4);border:1px solid var(--line);background:#fff}.stat-card .num{font-size:26px;font-weight:800;line-height:1.2}.stat-card .lbl{color:var(--muted);font-size:13px}.hero{border:0;border-bottom:1px solid var(--line);padding:var(--sp-6) 0 var(--sp-7);margin-top:var(--sp-2);background:0 0;border-radius:0}.hero h1{letter-spacing:-.02em;margin-bottom:var(--sp-4);font-size:clamp(28px,4vw,40px);line-height:1.25}.hero .grad{color:var(--brand-ink)}.hero-cards{gap:var(--sp-5);margin-top:var(--sp-6);grid-template-columns:repeat(3,1fr);display:grid}.hero-cards.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:860px){.hero-cards,.hero-cards.cols2{grid-template-columns:1fr}}.hero-card{background:var(--card);border-radius:var(--radius);padding:var(--sp-5);box-shadow:var(--shadow);border:1px solid var(--line)}.hero-card-head{margin-bottom:var(--sp-3);align-items:center;gap:10px;display:flex}.hero-card-head h2{margin:0;font-size:18px;line-height:1.35}.hero-card .ico{background:0 0;border-radius:0;flex-shrink:0;align-items:center;width:auto;height:auto;margin:0;font-size:22px;line-height:1;display:inline-flex}.hero-card .btn{margin-top:var(--sp-2)}.price{color:var(--brand-ink);font-weight:800}.price.big{font-size:24px}.price-note{color:var(--muted);font-size:13px}.divider{background:var(--line);height:1px;margin:var(--sp-4) 0}.center{text-align:center}.right{text-align:right}.spacer{flex:1}.nowrap{white-space:nowrap}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.thumb{object-fit:cover;border-radius:var(--radius-sm);background:#ece9f1;width:64px;height:48px;display:block}.toast-wrap{z-index:200;gap:var(--sp-2);flex-direction:column;display:flex;position:fixed;top:72px;left:50%;transform:translate(-50%)}.toast{color:#fff;border-radius:var(--radius-sm);padding:10px var(--sp-4);background:#14161f;font-size:14px;animation:.2s ease-out fadein;box-shadow:0 8px 30px #10182840}@keyframes fadein{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}footer.site-footer{border-top:1px solid var(--line);margin-top:var(--sp-7);padding:var(--sp-5) var(--sp-4);color:var(--muted);font-size:13px}footer.site-footer .inner{justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;max-width:1120px;margin:0 auto;display:flex}footer.site-footer .beian{border-top:1px solid var(--line);text-align:center;max-width:1120px;color:var(--muted);gap:var(--sp-4);flex-wrap:wrap;justify-content:center;margin:10px auto 0;padding-top:10px;font-size:13px;display:flex}footer.site-footer .beian a{color:var(--muted)}footer.site-footer .beian a:hover{color:var(--brand-ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
