:root{color-scheme:dark;--bg-0: #07070d;--bg-1: #0b0c16;--bg-2: #10121f;--surface: rgba(22,24,40,.55);--surface-solid: #141626;--surface-hover: rgba(34,37,58,.7);--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.14);--text-0: #f3f4fb;--text-1: #b9bdd4;--text-2: #979db7;--text-3: #7c8199;--violet: #8b5cf6;--violet-2: #a78bfa;--cyan: #22d3ee;--cyan-2: #38bdf8;--grad: linear-gradient(100deg,#8b5cf6 0%,#6366f1 45%,#22d3ee 100%);--grad-soft: linear-gradient(100deg,rgba(139,92,246,.16),rgba(34,211,238,.12));--danger: #fb8695;--success: #34d399;--warn: #fbbf24;--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-pill: 999px;--shadow-card: 0 24px 60px -20px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.05);--shadow-glow: 0 10px 40px -8px rgba(99,102,241,.55);--shadow-button: var(--shadow-glow), inset 0 1px 0 rgba(255,255,255,.3);--shadow-float: 0 12px 32px -12px rgba(0,0,0,.6);--space-1: 6px;--space-2: 10px;--space-3: 16px;--space-4: 24px;--space-5: 36px;--space-6: 56px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif;--font-display: var(--font);--font-mono: "IBM Plex Mono", "Noto Sans Mono CJK SC", monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 15px;--fs-lg: 18px;--fs-xl: 24px;--fs-2xl: 34px;--motion-fast: .14s;--motion: .24s;--ease: cubic-bezier(.22,1,.36,1)}:root{color-scheme:light;--f-bg:#f2f0ea;--f-paper:#fffefa;--f-ink:#233b38;--f-muted:#727b72;--f-line:#d8dcd2;--f-accent:#285f53;--f-soft:#e5ece2;--f-red:#9d3e45}*{box-sizing:border-box}body{margin:0;background:var(--f-bg);color:var(--f-ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,Noto Sans CJK SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--f-line);border-radius:6px;background:var(--f-paper);color:var(--f-ink);padding:8px 12px}button:hover:not(:disabled){border-color:var(--f-accent);background:var(--f-soft)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--f-accent);outline-offset:3px}input,select,textarea{width:100%;min-width:0;border:1px solid var(--f-line);background:var(--f-paper);color:var(--f-ink);border-radius:6px;padding:10px 11px}textarea{min-height:95px;resize:vertical}label{display:grid;gap:7px;font-size:12px;font-weight:550}small{font-size:11px}h1,h2,h3,p{margin:0}h1{font-family:"Noto Serif CJK SC",Songti SC,serif;font-weight:500;letter-spacing:.02em}h2{font-size:19px}h3{font-size:14px}p{color:var(--f-muted)}.f-primary{background:var(--f-accent);border-color:var(--f-accent);color:#fff}.f-primary:hover:not(:disabled){background:#1b4a40;color:#fff}.f-top{padding:15px 32px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--f-line);background:var(--f-paper)}.f-brand{font-size:21px;font-weight:650;letter-spacing:-.5px}.f-brand span{font-size:10px;letter-spacing:2px;font-weight:500;margin-left:5px}.f-top-label{font-size:11px;letter-spacing:1px;color:var(--f-muted)}.f-top>div{margin-left:auto;display:flex;gap:24px;align-items:center;font-size:12px}.f-user{color:var(--f-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis}.f-title{max-width:1660px;margin:auto;padding:35px 32px 28px;display:flex;align-items:end;justify-content:space-between;gap:20px}.f-title h1{font-size:32px;margin:8px 0}.f-title p{font-size:12px}.f-eyebrow{font-size:10px;letter-spacing:2px;color:var(--f-accent);font-weight:600}.f-tabs{display:flex;gap:5px;background:#e7e9e0;padding:4px;border-radius:9px;flex-shrink:0}.f-tabs button{background:transparent;border-color:transparent}.f-tabs .on{background:var(--f-paper);box-shadow:0 1px 4px #233b3810}.f-tabs small{margin-left:8px}.f-message{margin:0 32px 16px;padding:12px 16px;background:var(--f-soft);border:1px solid #c8d8c5;border-radius:6px;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:12px}.f-message button{border:0;padding:2px 6px;background:transparent;flex-shrink:0}.f-error{color:var(--f-red)}.f-workspace{max-width:1660px;margin:auto;padding:0 32px 36px;display:grid;grid-template-columns:225px minmax(0,1fr);gap:25px}.f-projects{align-self:start;padding:18px;background:var(--f-paper);border:1px solid var(--f-line);border-radius:9px;display:grid;gap:14px}.f-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.f-section-heading b{font-size:12px}.f-projects .f-primary{padding:5px 8px;font-size:11px}.f-projects>input{font-size:11px}.f-check{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:400}.f-check input{width:14px;height:14px;accent-color:var(--f-accent)}.f-project-list{display:grid;gap:8px;max-height:65vh;overflow:auto}.f-project-list>button{text-align:left;border-color:transparent;padding:13px;display:grid;gap:4px;background:var(--f-bg)}.f-project-list b{font-size:13px}.f-project-list span,.f-project-list small{color:var(--f-muted);font-size:10px}.f-project-list .selected{background:var(--f-soft);border-color:#a6c5ad;box-shadow:inset 3px 0 var(--f-accent)}.f-hint{font-size:11px}.f-design{min-width:0}.f-project-heading{display:flex;justify-content:space-between;gap:20px;padding:8px 0 23px}.f-project-heading>div:first-child{min-width:0;overflow-wrap:anywhere}.f-project-heading h2{font-size:23px;margin:3px 0 8px}.f-project-heading span{color:var(--f-muted);font-size:10px;letter-spacing:1px}.f-project-heading p{font-size:12px;max-width:700px}.f-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.f-actions button{font-size:11px;padding:6px 9px;white-space:nowrap}.f-design-controls{min-width:0;margin:0;padding:0;border:1px solid var(--f-line);border-radius:9px;background:var(--f-paper)}.f-design-controls legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.f-workflows{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--f-line)}.f-workflows>button{background:transparent;border:0;border-bottom:3px solid transparent;border-radius:0;padding:17px 10px;display:grid;gap:5px;text-align:left}.f-workflows b{font-size:12px}.f-workflows small{color:var(--f-muted);font-size:10px}.f-workflows .on{border-bottom-color:var(--f-accent);background:#e9eee5}.f-composer{padding:23px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(200px,1fr);gap:25px}.f-composer h3,.f-composer .f-section-heading{margin-bottom:15px}.f-composer .f-section-heading h3{margin:0}.f-composer .f-section-heading button{border:0;background:transparent;font-size:11px}.f-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.f-fields input{font-size:12px}.f-extra{margin-top:16px}.f-reference{border-left:1px dashed var(--f-line);padding-left:25px;min-width:0}.f-reference>p{font-size:10px;margin-bottom:12px}.f-upload{padding:13px;border:1px dashed #a2b8a9;border-radius:6px;background:#f5f8f0;cursor:pointer;text-align:center;display:block;color:var(--f-accent)}.f-upload input{display:none}.f-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.f-reference-grid button{padding:3px;aspect-ratio:3/4;overflow:hidden}.f-reference-grid img{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px}.f-reference-grid .on{border:2px solid var(--f-accent)}.f-reference label small{font-weight:400;color:var(--f-muted)}.f-submit{padding:17px 23px;background:#eff2e9;border-top:1px solid var(--f-line);display:flex;align-items:center;justify-content:end;gap:20px}.f-submit>label{display:flex;align-items:center;gap:10px;white-space:nowrap;margin-right:auto}.f-submit select{width:70px}.f-submit>span{font-size:13px}.f-submit small{display:block;color:var(--f-muted);font-size:10px}.f-submit>.f-primary{padding:11px 23px}.f-results-heading{padding:28px 0 16px}.f-results-heading small{margin-left:7px;color:var(--f-muted)}.f-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.f-result{background:var(--f-paper);border:1px solid var(--f-line);border-radius:8px;overflow:hidden;min-width:0}.f-result>a{display:block;background:#e6e9e0}.f-result img{display:block;width:100%;aspect-ratio:2/3;object-fit:contain}.f-result-placeholder{aspect-ratio:2/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:repeating-linear-gradient(45deg,#e8ede5,#e8ede5 1px,#f4f5ed 1px 9px);color:var(--f-muted)}.f-result-placeholder progress{width:65%;height:5px;accent-color:var(--f-accent)}.f-result-info{padding:15px;display:grid;gap:8px}.f-result-info>b{font-size:12px}.f-result-info p{font-size:11px}.f-status{font-size:10px;letter-spacing:1px;color:var(--f-muted)}.f-status.succeeded{color:var(--f-accent)}.f-status.failed{color:var(--f-red)}.f-result details{font-size:11px}.f-result summary{cursor:pointer}.f-result pre{white-space:pre-wrap;overflow-wrap:anywhere;font:11px/1.7 inherit;color:var(--f-muted)}.f-empty{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.f-empty h2{font:26px "Noto Serif CJK SC",serif}.f-empty p{font-size:12px}.f-garment{font:80px Georgia,serif;color:#8fa692}.f-empty-small{min-height:200px;border:1px dashed var(--f-line);border-radius:8px}.f-template-page{max-width:1660px;margin:auto;padding:0 32px 40px}.f-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.f-toolbar label{display:flex;align-items:center;gap:15px;white-space:nowrap}.f-toolbar select{min-width:170px}.f-toolbar p{font-size:11px}.f-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.f-template{background:var(--f-paper);border:1px solid var(--f-line);border-top:3px solid #91aa96;border-radius:8px;padding:22px;display:grid;gap:12px;min-width:0}.f-template>span{font-size:10px;color:var(--f-muted);letter-spacing:1px}.f-template h2{font:22px "Noto Serif CJK SC",Songti SC,serif}.f-template p{font-size:12px}.f-swatches{display:flex;align-items:center;gap:8px;border-top:1px dashed var(--f-line);padding-top:13px;font-size:11px;color:var(--f-muted)}.f-swatches i{width:7px;height:7px;border-radius:50%;background:#a5b9a0}.f-template.disabled{opacity:.7;border-top-color:#bbb}.f-footer{border-top:1px solid var(--f-line);padding:18px 32px;display:flex;justify-content:center;gap:15px;flex-wrap:wrap;color:var(--f-muted);font-size:10px}.f-dialog{width:min(720px,calc(100vw - 30px));max-height:90dvh;overflow:auto;background:var(--f-paper);color:var(--f-ink);border:1px solid var(--f-line);border-radius:12px;padding:25px;box-shadow:0 20px 80px #172a2935}.f-dialog::backdrop{background:#172a2977;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.f-dialog>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:15px}.f-editor{display:grid;gap:17px}.f-quiet{border:0;background:transparent}.f-login{max-width:1000px;margin:auto;min-height:75vh;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:70px;padding:50px 30px}.f-login h1{font-size:46px;line-height:1.4;margin:15px 0 25px}.f-login form{display:grid;gap:20px;padding:30px;border:1px solid var(--f-line);background:var(--f-paper);border-radius:10px}.f-login form>a{font-size:12px}.f-projects input,.f-fields input,.f-reference select{min-height:40px}@media(min-width:1450px){.f-results{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.f-workspace{grid-template-columns:185px minmax(0,1fr);gap:18px;padding:0 20px 30px}.f-composer{grid-template-columns:minmax(0,1fr);padding:20px}.f-reference{border:0;border-top:1px dashed var(--f-line);padding:18px 0 0}.f-reference-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.f-reference-grid button{max-width:100px}.f-template-grid,.f-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.f-top{padding:13px 17px;gap:10px}.f-top-label,.f-user{display:none}.f-top>div{font-size:11px}.f-brand{font-size:18px}.f-brand span{font-size:8px}.f-title{padding:25px 17px;align-items:start;flex-direction:column}.f-title h1{font-size:27px}.f-workspace{padding:0 14px 24px;grid-template-columns:minmax(0,1fr);gap:18px}.f-projects{padding:13px}.f-project-list{max-height:160px;grid-template-columns:repeat(2,minmax(0,1fr))}.f-project-heading{flex-direction:column;gap:12px}.f-workflows{grid-template-columns:repeat(2,minmax(0,1fr))}.f-workflows>button{padding:12px;font-size:11px}.f-workflows small{font-size:9px}.f-composer{padding:15px}.f-fields{gap:12px}.f-submit{padding:14px;gap:12px;flex-wrap:wrap;justify-content:space-between}.f-submit>label{margin:0}.f-submit>span{font-size:11px}.f-submit>.f-primary{width:100%}.f-results{gap:10px}.f-result-info{padding:10px}.f-result-info>.f-actions{gap:5px}.f-actions button{font-size:10px;padding:6px}.f-template-page{padding:0 14px 25px}.f-template-grid{grid-template-columns:minmax(0,1fr)}.f-template{padding:20px}.f-toolbar{align-items:start;flex-direction:column}.f-toolbar p{font-size:10px}.f-message{margin:0 14px 15px;overflow-wrap:anywhere}.f-login{min-height:auto;grid-template-columns:minmax(0,1fr);gap:30px;padding:35px 22px}.f-login h1{font-size:34px}.f-login form{padding:23px}.f-footer{padding:17px;gap:9px 13px}.f-dialog{padding:18px}.f-results-heading{gap:10px}.f-results-heading select{font-size:11px;padding:6px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.f-workflows{grid-template-columns:repeat(5,minmax(0,1fr))}.f-mask{margin-top:20px;display:grid;gap:10px}.f-mask>p{font-size:11px}.f-mask-stage{position:relative;max-width:360px;width:100%;line-height:0;border:1px solid var(--f-line);background:#fff}.f-mask-stage>img{width:100%;height:auto;display:block}.f-mask-stage>canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.f-mask input[type=range]{padding:0;accent-color:var(--f-accent)}.f-mask small{line-height:1.5;color:var(--f-muted)}.f-log-page{max-width:1500px;margin:auto;padding:0 32px 40px}.f-log-filter{display:grid;grid-template-columns:180px 1fr auto;align-items:end;gap:14px;margin:20px 0}.f-log-page h3{margin:24px 0 14px}.f-log-table{overflow:auto;background:var(--f-paper);border:1px solid var(--f-line);border-radius:8px}.f-log-table table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.f-log-table th,.f-log-table td{padding:12px;text-align:left;border-bottom:1px solid var(--f-line)}.f-log-errors{display:grid;gap:10px}.f-log-errors article{display:grid;gap:6px;padding:15px;background:var(--f-paper);border:1px solid var(--f-line);border-radius:7px;overflow-wrap:anywhere}.f-log-errors span,.f-log-errors small{color:var(--f-muted);font-size:11px}@media(max-width:700px){.f-workflows{grid-template-columns:repeat(2,minmax(0,1fr))}.f-title .f-tabs{width:100%;justify-content:space-between}.f-tabs button{font-size:12px;padding:7px}.f-top>div{gap:10px}.f-top>div>a:first-child{display:none}.f-top>div>button{padding:5px}.f-log-page{padding:0 14px 25px}.f-log-filter{grid-template-columns:1fr}.f-log-filter>button{width:100%}.f-mask-stage{max-width:100%}}
