:root{--bg: #ececec;--ink: #1c1c1f;--muted: #6d6a66;--line: #e6e2dc;--card: #ffffff;--purple: #6f4bff;--purple-dark: #5a38e6;--shadow: 0 10px 30px rgba(28, 28, 31, .08);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#f3f3f3}button,input{font:inherit}.app{height:100%;display:flex;flex-direction:column}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#fff;border-bottom:1px solid #eee}.top-actions{display:flex;align-items:center;gap:10px}.user-name{color:var(--muted);font-size:13px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.02em}.logo{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;color:#fff;background:var(--purple)}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:72px 280px minmax(380px,.95fr) minmax(420px,1.15fr);grid-template-areas:"nav side editor stage"}body[data-page=mockup] .workspace{grid-template-columns:72px 340px minmax(420px,1fr);grid-template-areas:"nav side stage"}body[data-page=mockup] .panel{padding:14px 14px 28px}body[data-page=mockup] .editor{display:none}body[data-page=upload] .workspace{grid-template-columns:72px 340px minmax(420px,1fr);grid-template-areas:"nav side stage"}body[data-page=upload] .editor,.rail-btn[hidden]{display:none}.field{display:flex;flex-direction:column;gap:6px;margin:10px 0;font-size:13px;color:#6d6964}.field input,.field select{border:1px solid #ece8e4;border-radius:10px;padding:8px 10px;font:inherit;color:#1d1a17;background:#fff}.upload-list{display:flex;flex-direction:column;gap:8px}.upload-list button{border:1px solid #ece8e4;background:#fff;border-radius:10px;padding:8px 10px;text-align:left;cursor:pointer}.rail{grid-area:nav;background:#fff;border-right:1px solid #eee;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px}.rail-btn{width:58px;border:0;background:transparent;border-radius:12px;color:#8a8680;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 7px;font-size:12px}.rail-btn.active{color:var(--purple);background:#f4f0ff;font-weight:700}.source-tabs{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;margin-bottom:12px}.source-tabs button{border:0;border-radius:12px;padding:9px 0;background:transparent;color:#3a3835;cursor:pointer}.source-tabs button.active{background:#7b61ff;color:#fff;font-weight:700}.library-search{display:flex;align-items:center;gap:8px;border:1px solid #ece8e4;border-radius:12px;padding:0 12px;margin-bottom:12px;background:#fff}.library-search svg{width:16px;height:16px;fill:none;stroke:#8a8680;stroke-width:1.8;flex:none}.library-search input{width:100%;border:0;outline:0;padding:9px 0;background:transparent;font-size:13px}.library-search[hidden],.library-bar[hidden],.library-groups[hidden],#library-toggle[hidden]{display:none}.library-bar{display:flex;align-items:center;gap:6px;margin-bottom:8px}.library-chips{display:flex;gap:4px;overflow:auto;flex:1;scrollbar-width:none}.library-chips button{border:1px solid transparent;background:transparent;color:#3a3835;border-radius:999px;padding:4px 10px;cursor:pointer;white-space:nowrap;font-size:13px}.library-chips button.active{border-color:#7b61ff;color:#6f4bff;font-weight:650}#library-toggle{width:32px;height:32px;flex:none;border:1px solid #ece8f4;border-radius:10px;background:#fff;color:#6f4bff;cursor:pointer;display:grid;place-items:center}#library-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}#library-toggle.open svg{transform:rotate(180deg)}.library-heading{margin:8px 2px 10px;font-size:15px;font-weight:700}.library-group{margin:4px 0 8px}.library-group h3{display:inline-flex;margin:8px 0;padding:4px 12px;border:1px solid #ddd8ea;border-radius:999px;font-size:13px;font-weight:650}.library-group h3.active{border-color:#7b61ff;color:#6f4bff}.library-tags{display:flex;flex-wrap:wrap;gap:12px 16px;margin:0 2px 14px}.library-tags button{border:0;background:transparent;color:#2c2a28;cursor:pointer;padding:0;font-size:13px}.library-tags button.active{color:var(--purple);font-weight:700}.choice button[data-member="1"]:after{content:"会员";display:block;font-size:10px;color:var(--purple)}.member-card{position:relative;width:min(420px,calc(100vw - 32px));padding:22px;background:#fff;border-radius:18px}.member-plans{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.member-plans button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px 10px;cursor:pointer;text-align:left}.member-plans button b,.member-plans button span{display:block}.member-plans button span{color:var(--muted);margin-top:4px;font-size:13px}.model-cats{display:flex;gap:6px;overflow:auto;margin-bottom:12px;padding-bottom:2px}.model-cats button{border:0;background:#f3f1ee;color:#6d6a66;border-radius:999px;padding:6px 12px;cursor:pointer;white-space:nowrap;font-size:13px}.model-cats button.active{background:#f4f0ff;color:var(--purple);font-weight:700}.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px}.model-tile{min-width:0}.model-card{position:relative;width:100%;border:0;background:#f3f3f5;border-radius:12px;padding:8px;cursor:pointer;aspect-ratio:1}.model-card.active{border-color:var(--purple);box-shadow:0 0 0 1px var(--purple)}.model-card canvas,.model-card img{width:100%;height:100%;display:block;border-radius:8px;background:transparent;object-fit:contain}.model-card .member-badge{position:absolute;top:6px;right:6px;margin:0;padding:1px 5px;border-radius:999px;background:#fff;font-size:10px}.swatches{display:flex;justify-content:center;gap:6px;margin-top:8px}.swatches button{width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #c8c4be;padding:0;cursor:pointer}.swatches button.active{box-shadow:0 0 0 1px #7b61ff}.model-card b{display:block;margin-top:6px;font-size:12px;font-weight:650}.face-menu{position:fixed;z-index:30;width:148px;background:#fff;border-radius:12px;box-shadow:0 12px 32px #1c1c1f29;padding:8px}.face-menu[hidden]{display:none}.face-menu-title{font-size:12px;color:var(--muted);padding:2px 6px 6px}.face-menu button{width:100%;border:0;background:transparent;text-align:left;border-radius:8px;padding:8px;cursor:pointer}.face-menu button:hover{background:#f6f3ff;color:var(--purple-dark)}.panel{grid-area:side;background:var(--card);border-right:1px solid #eee;overflow:auto;padding:16px 16px 28px}.editor{grid-area:editor;min-width:0;min-height:0;display:flex;flex-direction:column;background:#f6f4f1;border-right:1px solid #eee}.editor-head{padding:12px 14px 0}.editor-head .hint{margin-top:0}.editor-canvas-wrap{flex:1;min-height:0;margin:8px 12px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:#f3f1ee}.editor-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px 12px;background:#fff;border-top:1px solid #eee;color:var(--muted);font-size:12px}.editor-actions{display:flex;flex-wrap:wrap;gap:8px}.editor-bar input[type=range]{width:min(92px,18vw);accent-color:var(--purple)}.axis{display:flex;align-items:center;gap:6px}.axis span{min-width:40px;color:var(--ink);font-weight:700}.block+.block{margin-top:18px}.block-title{font-size:13px;font-weight:700;margin-bottom:8px}.upload{display:flex;gap:10px;align-items:center;border:1px dashed #cfc9ff;background:#f7f5ff;border-radius:12px;padding:12px;cursor:pointer}.upload.dragover{border-color:var(--purple);background:#efeaff}.upload input{display:none}.upload-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--purple);color:#fff;font-weight:700}.upload-copy{display:flex;flex-direction:column;gap:2px}.upload-copy small,.hint,.file-name{color:var(--muted);font-size:12px;line-height:1.45}.file-name{margin:8px 0 0}.row{display:flex;gap:8px;margin-top:10px}.btn{border:0;border-radius:10px;padding:8px 12px;cursor:pointer}.btn.primary{background:var(--purple);color:#fff;font-weight:700}.btn.primary:hover{background:var(--purple-dark)}.btn.ghost{flex:1;background:#f4f4f5;color:var(--ink)}.btn.compact{flex:none}.btn.ghost:hover{background:#ececee}.btn.slim{padding:7px 14px}#preview{width:100%;height:100%;display:block;touch-action:none}.hint{margin:8px 0 0}.sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sizes label,.color-row{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.sizes input,.color-row input[type=color]{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}.sizes input{height:34px;padding:0 8px;color:var(--ink)}.color-row{margin-top:10px;flex-direction:row;align-items:center;justify-content:space-between}.color-row input[type=color]{width:42px;height:28px;padding:0}.segment,.papers{display:flex;gap:8px}.seg,.paper{flex:1;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 6px;cursor:pointer;color:var(--ink)}.seg.active,.paper.active{border-color:var(--purple);background:#f4f0ff;color:var(--purple-dark);font-weight:700}.paper{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px}.paper i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.08)}.stage{grid-area:stage;position:relative;min-width:0;min-height:0;background:radial-gradient(ellipse at center,#f3f3f3,#d5d5d5 78%)}.stage canvas.view{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.hint-float{position:absolute;top:14px;left:50%;transform:translate(-50%);background:#fffc;color:var(--muted);font-size:12px;padding:6px 12px;border-radius:999px;pointer-events:none}.toolbar{position:absolute;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:#fffffff0;border-radius:14px;padding:8px;box-shadow:var(--shadow)}.icon-btn{width:34px;height:34px;border:0;border-radius:10px;background:#f4f4f5;cursor:pointer;color:var(--ink);display:grid;place-items:center}.icon-btn:hover,.icon-btn.active{background:#ece8ff;color:var(--purple-dark)}.fold{display:flex;align-items:center;gap:8px;padding:0 6px;color:var(--muted);font-size:12px}.fold input[type=range]{width:140px;accent-color:var(--purple)}.modal[hidden]{display:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#1c1c1f47}.export-card{position:relative;width:min(1180px,100%);max-height:min(720px,calc(100vh - 48px));background:#fff;border-radius:18px;box-shadow:0 24px 80px #1c1c1f2e;display:flex;flex-direction:column;overflow:hidden}.export-tabs{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;height:64px;padding:0 56px;border-bottom:1px solid #eee}.export-tab{border:0;background:transparent;padding:12px 14px;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent}.export-tab.active{color:var(--ink);font-weight:700;border-bottom-color:var(--purple)}.export-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);margin-left:0}.export-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;min-height:0}.export-stage{position:relative;min-height:520px;max-height:64vh;background:radial-gradient(ellipse at center,#f3f3f3,#d5d5d5 78%);display:grid;place-items:center;padding:18px;overflow:hidden}#export-preview,#export-dieline-preview{max-width:100%;max-height:calc(64vh - 36px);width:auto;height:auto;object-fit:contain}#export-dieline-preview{background:#fff;border-radius:12px}.export-options{padding:28px 28px 22px;overflow:auto}.export-options h2{margin:0 0 12px;font-size:18px}.option-label{margin:12px 0 8px;font-size:13px;font-weight:700}.choice{display:flex;flex-wrap:wrap;gap:8px}.choice button{border:1px solid #e4e0da;background:#fff;border-radius:10px;padding:8px 14px;cursor:pointer}.choice button.active{border-color:var(--purple);color:var(--purple-dark);font-weight:700;background:#f6f3ff}.choice-stack{flex-direction:column}.choice-stack button{text-align:left;display:flex;flex-direction:column;gap:2px}.choice-stack span{color:var(--muted);font-size:12px;font-weight:400}.switch{display:flex;align-items:center;gap:8px;margin:8px 0;font-size:13px}.export-go{width:100%;height:46px;margin-top:18px;font-size:15px}.export-status{min-height:1.2em;color:var(--muted);font-size:12px}.export-samples{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:6px;height:150px;margin-bottom:12px}.export-sample{position:relative;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#dff2fa,#cfe9f7)}.export-sample img{width:100%;height:100%;object-fit:cover;display:block}.sample-tag{position:absolute;left:8px;top:8px;z-index:1;padding:2px 7px;border-radius:5px;background:#ffffffeb;color:var(--ink);font-size:11px;font-weight:700}.sample-zoom{position:absolute;right:8px;bottom:8px;z-index:2;width:28px;height:28px;border:0;border-radius:50%;background:#1c1c1fb8;color:#fff;font-size:15px;line-height:1;cursor:pointer}.sample-zoom:hover{background:#1c1c1fe6}.export-tech{margin:0 0 14px;color:var(--ink);font-size:13px;line-height:1.7}.export-tech a{color:var(--purple);text-decoration:none}.export-tech a:hover{text-decoration:underline}.export-shadow-switch{margin:14px 0 12px;font-size:14px;color:var(--ink)}.export-shadow-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:38px;height:22px;flex:none;border-radius:999px;background:#d9d9d9;position:relative;cursor:pointer;transition:background .2s ease}.export-shadow-switch input:after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000002e;transition:left .2s ease}.export-shadow-switch input:checked{background:var(--purple)}.export-shadow-switch input:checked:after{left:19px}.export-options .choice{gap:8px}.export-options .choice button{min-height:42px;flex:1;font-size:14px;border-radius:8px}.export-spark{margin-right:6px;color:#ffe27a;font-size:15px;line-height:1}.export-ratio{position:absolute;left:18px;bottom:16px;z-index:3;display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border:1px solid #e4e0da;border-radius:8px;background:#fff;color:var(--ink);font-size:13px;box-shadow:0 2px 8px #0000000f}.export-ratio[hidden]{display:none}.export-ratio select{border:0;outline:none;background:transparent;color:inherit;font:inherit;cursor:pointer}.export-card.share-mode{width:min(1180px,100%)}.share-mode .export-stage{padding:0}.share-mode .export-options h2{font-size:20px;margin-bottom:10px}.share-viewer-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(ellipse at center,#f3f3f3,#d5d5d5 78%)}.share-viewer-wrap img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;transition:opacity .25s ease}.share-viewer-wrap iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:transparent}.share-viewer-wrap.ready #share-viewer-fallback{opacity:0}.share-brand{position:absolute;left:22px;bottom:18px;display:flex;align-items:center;gap:6px;color:#1f1c1959;font-size:13px;pointer-events:none}.share-brand:before{content:"◉";font-size:15px;line-height:1}.share-brand[hidden]{display:none}.share-watermark{position:absolute;top:-25%;right:-25%;bottom:-25%;left:-25%;display:flex;align-items:center;justify-content:center;transform:rotate(-24deg);color:#1f1c190b;font-size:46px;font-weight:800;letter-spacing:18px;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none}.share-watermark[hidden]{display:none}.share-lead{margin:0 0 18px;color:var(--muted);font-size:13px}.share-switch{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin:14px 0;font-size:14px;color:var(--ink);cursor:pointer}.share-switch input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:40px;height:22px;flex:none;border-radius:999px;background:#d9d9d9;position:relative;cursor:pointer;transition:background .2s ease}.share-switch input:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000002e;transition:left .2s ease}.share-switch input:checked{background:var(--purple)}.share-switch input:checked:after{left:21px}.info-dot{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:2px;border-radius:50%;background:#f5b400;color:#fff;font-size:10px;font-style:normal;vertical-align:middle;cursor:help}.share-link{width:100%;height:38px;margin-top:14px;padding:0 10px;border:1px solid #e4e0da;border-radius:8px;background:#fff;color:var(--muted);font-size:12px}.share-stop{display:block;margin:12px 0 4px;padding:0;border:0;background:none;color:var(--muted);font-size:13px;text-decoration:underline;cursor:pointer}.share-stop[hidden]{display:none}@media(max-width:900px){.export-card.share-mode{width:100%}.share-mode .export-body{grid-template-columns:1fr}.share-mode .export-stage{min-height:260px;max-height:38vh}}.video-styles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.video-style{border:1px solid #e4e0da;background:#f7f6f4;border-radius:10px;min-height:72px;cursor:pointer;position:relative;padding:8px;text-align:left}.video-style.active{border-color:var(--purple);background:#f6f3ff}.video-style b{display:block;font-size:13px}.video-style i{position:absolute;right:6px;bottom:6px;font-style:normal;font-size:11px;background:#fff;border-radius:999px;padding:1px 6px}#export-html-code{width:100%;height:88px;margin-top:10px;border-radius:8px;border:1px solid var(--line);font-size:11px}.export-video-note{position:absolute;left:16px;right:16px;bottom:16px;background:#ffffffe6;border-radius:10px;padding:8px 10px;font-size:12px}@media(max-width:800px){.export-body{grid-template-columns:1fr}.export-stage{min-height:180px}}@media(max-width:1100px){html,body,.app{height:auto;min-height:100%}.workspace{flex:none;grid-template-columns:64px 1fr;grid-template-rows:auto auto minmax(360px,70vh);grid-template-areas:"nav side" "nav editor" "nav stage"}body[data-page=mockup] .workspace{grid-template-columns:64px 1fr;grid-template-rows:auto minmax(420px,78vh);grid-template-areas:"nav side" "nav stage"}.panel{overflow:visible;max-height:none}.rail{position:sticky;top:0;align-self:start;min-height:100vh}.fold input[type=range]{width:90px}.editor-bar{flex-wrap:wrap}}
