:root{color:#303a31;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#45664e;--green-dark:#34513c;--green-soft:#edf2eb;--line:#e8eae2;--muted:#899084;--orange:#c6855e;--surface:#fff;--shadow:0 4px 20px #364b3404;background:#f7f7f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #b5c9a4}input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #8eaa87}button,select{touch-action:manipulation}svg{flex-shrink:0}input[type=checkbox]{accent-color:var(--green);cursor:pointer}button{background:0 0;border:0}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-header{border-bottom:1px solid var(--line);background:#fffefa;height:76px}.header-inner{align-items:center;gap:25px;max-width:1632px;height:100%;margin:auto;padding:0 36px;display:flex}.brand{white-space:nowrap;letter-spacing:2px;align-items:center;gap:11px;font-size:23px;font-weight:700;display:flex}.brand>span:last-child{align-items:center;gap:13px;display:flex}.brand-sub{letter-spacing:1px;color:#7b8375;font-size:12px;font-weight:500}.brand-symbol{grid-template-columns:1fr 1fr;gap:3px;width:31px;height:31px;display:grid;transform:rotate(-8deg)}.brand-symbol i{background:var(--green);border-radius:6px;position:relative}.brand-symbol i:after{content:"";background:#fffdf7;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.brand-symbol i:nth-child(2){background:#8ca18a}.brand-symbol i:nth-child(3){background:#b6c5a7}.header-divider{background:var(--line);width:1px;height:24px}.header-page{color:#66715f;align-items:center;gap:9px;font-size:13px;display:flex}.version-tag{letter-spacing:1px;color:#9a987b;border:1px solid #e8e5d6;border-radius:4px;padding:2px 4px;font-size:8px}.header-actions{align-items:center;gap:12px;margin-left:auto;display:flex}.save-status{color:#8a9485;align-items:center;gap:5px;margin-right:8px;font-size:11px;display:flex}.save-failed{color:#aa5c3b}.icon-button{color:#7c8677;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.icon-button:hover:not(:disabled){color:#3d5a43;background:#edf1e9}.button{border:1px solid var(--line);border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-size:12px;font-weight:550;transition:background .15s,border-color .15s;display:inline-flex}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}.button.subtle{background:#fffefa}.button.subtle:hover{background:#f1f3ec}.header-export{min-height:39px;padding:0 17px}.text-button{color:#6a8465;align-items:center;gap:6px;padding:2px 0;font-size:11px;display:inline-flex}.text-button:hover{color:#36543d}.app-main{max-width:1632px;margin:auto;padding:0 36px}.workspace-intro{justify-content:space-between;align-items:center;padding:35px 1px 27px;display:flex}.eyebrow{letter-spacing:2.1px;color:#9c9f86;align-items:center;gap:7px;font-size:9px;font-weight:650;display:flex}.eyebrow>span{background:#caa070;border-radius:50%;width:5px;height:5px;display:block}h1{letter-spacing:1.2px;margin:8px 0 7px;font-size:27px;font-weight:650;line-height:1.5}h1>span{color:#536e51}.workspace-intro p{color:#92958b;letter-spacing:.3px;margin:0;font-size:11px}.privacy-note{color:#7b8a71;align-items:center;gap:10px;padding-right:2px;display:flex}.privacy-note>div{font-size:11px;line-height:1.8}.privacy-note span{color:#a1a699;font-size:10px;display:block}.workspace{grid-template-columns:264px minmax(0,1fr) 230px;align-items:start;gap:18px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px;overflow:hidden}.panel-heading{color:#46543e;border-bottom:1px solid #edf0e8;justify-content:space-between;align-items:center;height:55px;padding:0 19px;font-size:13px;font-weight:600;display:flex}.panel-heading>span:first-child{align-items:center;gap:9px;display:flex}.settings-panel>summary{cursor:pointer;list-style:none}.settings-panel>summary::-webkit-details-marker{display:none}.details-chevron{color:#9ba492;transition:transform .15s}.settings-panel[open] .details-chevron{transform:rotate(180deg)}.settings-content{padding:20px 18px 10px}.field-heading{align-items:center;gap:8px;margin-bottom:15px;display:flex}.field-heading h2{color:#59614f;margin:0;font-size:11px;font-weight:600}.step-label{color:#a3ae91;letter-spacing:1px;font-size:9px;font-weight:600}.upload-zone{background:#fafbf6;border:1px dashed #cbd4c0;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:155px;display:flex;position:relative;overflow:hidden}.upload-zone:hover,.upload-zone.drag-over{background:#f0f4e9;border-color:#8da083}.upload-zone>strong{font-size:11px;font-weight:500}.upload-zone>span:not(.change-image){color:#9aab91;font-size:10px}.upload-icon{background:#edf2e5;border-radius:12px;justify-content:center;align-items:center;width:43px;height:43px;display:flex;color:#83966c!important}.source-thumb{object-fit:contain;width:90%;height:90%;image-rendering:pixelated;filter:drop-shadow(0 3px 5px #85857513)}.change-image{color:#6b7c5d;background:#fffffff2;border:1px solid #e6eadd;border-radius:5px;align-items:center;gap:5px;padding:5px 7px;font-size:9px;display:flex;position:absolute;bottom:8px;right:8px}.source-caption{color:#a0a697;justify-content:space-between;align-items:center;gap:4px;margin:8px 0 10px;font-size:8px;display:flex}.source-caption>span:first-child{white-space:nowrap;text-overflow:ellipsis;color:#8e9685;max-width:120px;font-size:9px;overflow:hidden}.example-button{justify-content:center;gap:5px;width:100%;font-size:10px}.settings-divider{background:#eef0e8;height:1px;margin:20px 0}.field-label{color:#5c6555;justify-content:space-between;margin:0 0 9px;font-size:11px;display:flex}.field-label>span{color:#a7ac9f;font-size:9px}.select-wrap{position:relative}.select-wrap>svg{color:#9ba492;pointer-events:none;position:absolute;top:13px;right:11px}.select-wrap select{appearance:none;color:#5d6757;cursor:pointer;background:#fcfcf9;border:1px solid #e6e9df;border-radius:7px;width:100%;height:40px;padding:0 12px;font-size:11px}.range-heading{color:#5b6452;justify-content:space-between;align-items:center;margin-top:21px;margin-bottom:12px;font-size:11px;display:flex}.range-heading>div{color:#939d87;align-items:center;gap:5px;font-size:10px;display:flex}.range-heading input{text-align:center;color:#586e44;background:#f1f4eb;border:1px solid #e4e9d9;border-radius:5px;width:37px;height:25px;font-size:11px;font-weight:600}.range-heading strong{color:#637a50;font-size:13px;font-weight:600}.range-heading>span{color:#9ba18f;font-size:10px}.range{appearance:none;background:linear-gradient(to right,#82996a 0%,#82996a var(--range-progress),#e9ede1 var(--range-progress),#e9ede1 100%);cursor:pointer;border-radius:9px;width:100%;height:4px;margin:4px 0 15px;display:block}.range::-webkit-slider-thumb{appearance:none;background:#728b59;border:3px solid #fff;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 1px #b4c2a3,0 2px 3px #5c725c15}.range::-moz-range-thumb{background:#728b59;border:3px solid #fff;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 1px #b4c2a3}.size-presets{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.size-presets button{color:#8a9480;background:#fff;border:1px solid #e9ece2;border-radius:5px;height:29px;font-size:10px}.size-presets button.active{color:#667c4f;background:#edf2e5;border-color:#c5d1b7;font-weight:600}.size-presets button:hover{border-color:#b1c19f}.aspect-row{color:#a0a594;justify-content:space-between;align-items:center;min-height:20px;margin-top:11px;font-size:9px;display:flex}.aspect-row label{align-items:center;gap:4px;display:flex}.aspect-row input[type=checkbox]{width:11px;height:11px;margin:0}.height-field input{border:1px solid var(--line);border-radius:4px;width:36px;padding:2px 3px;font-size:10px}.color-range{margin-top:19px}.range-ends{color:#afb5a4;justify-content:space-between;margin-top:-3px;margin-bottom:17px;font-size:9px;display:flex}.option-row{justify-content:space-between;align-items:center;margin-top:17px;display:flex}.option-row strong{color:#66705b;font-size:11px;font-weight:500;display:block}.option-row span{color:#a5ac9a;margin-top:4px;font-size:8px;display:block}.switch{appearance:none;cursor:pointer;background:#dce2d4;border-radius:20px;width:29px;height:17px;margin:0;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:11px;height:11px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0001}.switch:checked{background:#8eaa70}.switch:checked:after{transform:translate(12px)}.advanced{margin:18px 0 0}.advanced summary{color:#9aa48e;cursor:pointer;justify-content:space-between;align-items:center;font-size:9px;list-style:none;display:flex}.advanced summary::-webkit-details-marker{display:none}.advanced label{color:#859077;margin-top:14px;font-size:10px;display:block}.advanced label>span{float:right}.advanced input{width:100%;accent-color:var(--green);height:4px;margin-top:12px;display:block}.generate-button{width:100%;height:41px;margin-top:21px;font-size:12px;font-weight:500}.generate-button>svg:last-child{margin-left:auto}.generate-button>svg:first-child{margin-right:auto}.generate-note{text-align:center;color:#a0a997;margin:9px 0 4px;font-size:9px}.small-tip{color:#a9b197;align-items:flex-start;gap:8px;padding:17px 7px;display:flex}.small-tip>svg{margin-top:2px}.small-tip p{color:#929d83;margin:0;font-size:10px;line-height:1.8}.small-tip p>span{color:#b0b5a5;font-size:9px;display:block}.stage-column{min-width:0}.stage-card{border-radius:13px}.stage-heading{border-bottom:1px solid #edf0e8;justify-content:space-between;align-items:center;height:62px;padding:0 20px;display:flex}.view-switch{background:#f3f5ef;border:1px solid #e9ede1;border-radius:8px;gap:2px;padding:3px;display:flex}.view-switch>button{color:#97a18c;white-space:nowrap;border-radius:5px;align-items:center;gap:7px;height:32px;padding:0 13px;font-size:11px;display:flex}.view-switch>button.active{color:#4f6a46;background:#fff;font-weight:600;box-shadow:0 1px 4px #3e542014}.canvas-dimensions{color:#6b7962;font-variant-numeric:tabular-nums;font-size:11px;font-weight:500}.canvas-dimensions>span{color:#a1aa96;margin-left:4px;font-size:9px}.editor-toolbar{border-bottom:1px solid #edf0e8;justify-content:space-between;align-items:center;height:50px;padding:0 16px;display:flex}.tool-group{align-items:center;gap:3px;display:flex}.tool-button{color:#929b89;border-radius:6px;justify-content:center;align-items:center;gap:5px;min-width:31px;height:31px;padding:0 7px;display:flex}.tool-button>span{font-size:10px;display:none}.tool-button.active{color:#637d4c;background:#ecf2e5}.tool-button.active>span{display:inline}.tool-button:hover{background:#f3f5ef}.history-tools{border-left:1px solid #e9ede0;gap:2px;padding-left:10px;display:flex}.stage-body{background:#f4f5ee;height:525px;position:relative}.pattern-viewport{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5ddc9 transparent;background-color:#f4f5ee;background-image:radial-gradient(#c9d1bb75 .7px,#0000 .7px);background-size:12px 12px;position:absolute;inset:0;overflow:auto}.canvas-mat{place-items:center;display:grid;position:relative}.canvas-paper{position:relative;box-shadow:0 3px 10px #5263380d}.canvas-paper canvas{background:#fff;max-width:none;display:block}.canvas-ruler-x{text-align:center;color:#acb39d;letter-spacing:1px;width:100%;font-size:9px;position:absolute;top:-22px;left:0}.canvas-ruler-y{color:#acb39d;writing-mode:vertical-rl;letter-spacing:1px;font-size:9px;position:absolute;top:50%;left:-29px}.stage-footer{border-top:1px solid #e8eddf;justify-content:space-between;align-items:center;height:47px;padding:0 16px;display:flex}.canvas-toggles{gap:15px;display:flex}.canvas-toggles label{color:#8e9a7e;cursor:pointer;align-items:center;gap:4px;font-size:10px;display:flex}.canvas-toggles input{width:11px;height:11px;margin:0}.zoom-tools{align-items:center;gap:1px;display:flex}.zoom-label{color:#8b9780;min-width:42px;padding:5px;font-size:10px}.zoom-tools>span{background:#e6ebdd;width:1px;height:13px;margin:0 5px}.zoom-tools .icon-button{width:27px;height:27px}.project-bar{justify-content:space-between;align-items:center;gap:10px;padding:15px 2px 14px;display:flex}.project-name{align-items:center;gap:7px;min-width:0;display:flex}.project-dot{background:#b2bc96;border-radius:50%;width:5px;height:5px}.project-name>input{color:#77846a;text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:4px;width:130px;max-width:160px;padding:3px 2px;font-size:11px;font-weight:500}.project-name>input:focus{background:#fff;border-color:#ccd6bc;outline:none}.original-tag{color:#a2aa8a;white-space:nowrap;background:#f0f1e7;border:1px solid #e4e8d7;border-radius:4px;padding:2px 5px;font-size:8px}.hover-position{color:#aeb6a2;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:9px}.stats-row{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:1fr 1fr 1.2fr;gap:0;padding:17px 0;display:grid}.stats-row>div{border-right:1px solid #eff1e9;justify-content:center;align-items:center;gap:11px;min-width:0;display:flex}.stats-row>div:last-child{border:0}.stat-icon{border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.mint{color:#8ba476;background:#edf3e8}.peach{color:#d0a07e;background:#fbefe7}.cream{color:#bbad6d;background:#f6f2df}.stats-row p{margin:0}.stats-row p>strong{color:#58684a;font-variant-numeric:tabular-nums;font-size:19px;font-weight:600;line-height:1.4;display:block}.stats-row small{color:#a7af98;margin-left:4px;font-size:9px;font-weight:400}.stats-row p>span{color:#abb29e;font-size:9px}.stats-row p>.dimension-stat{white-space:nowrap;padding:4px 0 3px;font-size:11px;font-weight:500}.under-workspace{color:#a1ad93;justify-content:space-between;align-items:center;gap:8px;margin:13px 2px;display:flex}.under-workspace>span{align-items:center;gap:5px;font-size:9px;display:flex}.under-workspace .text-button{color:#9faa8f;font-size:9px}.stage-3d{height:575px}.loading-3d{color:#88997d;flex-direction:column;justify-content:center;align-items:center;gap:9px;height:100%;font-size:11px;display:flex}.generation-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:#6e875c;z-index:5;background:#fafbf4dd;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.generation-overlay strong{font-size:13px;font-weight:500}.generation-overlay span{color:#96a386;font-size:10px}.preview-hint{color:#9ba68e;align-items:center;gap:5px;font-size:10px;display:flex}.model-label{color:#a9b39d;font-size:9px}.palette-content{padding:15px 15px 17px}.count-badge{color:#98a982;background:#eff3e6;border-radius:5px;padding:3px 7px;font-size:9px;font-weight:400}.palette-description{color:#a2ab95;margin:0 0 12px;font-size:9px}.search-field{color:#b0b89f;background:#fafbf7;border:1px solid #e9ecdf;border-radius:7px;align-items:center;gap:6px;height:33px;padding:0 9px;display:flex}.search-field input{color:#6f7e5f;background:0 0;border:none;outline:none;width:100%;min-width:0;height:28px;font-size:10px}.search-field input::placeholder{color:#adb5a0}.search-field input:focus-visible{outline:none}.search-field>button{color:#a1ad90;padding:0;display:flex}.color-list{scrollbar-width:thin;scrollbar-color:#d9e1cd transparent;max-height:462px;margin-top:16px;padding-right:2px;overflow:auto}.color-list-labels{color:#b2baa4;justify-content:space-between;margin:0 5px 9px;padding-right:5px;font-size:9px;display:flex}.color-row{border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;width:100%;height:46px;margin-bottom:3px;padding:0 8px;display:flex;position:relative}.color-row:hover{background:#f5f7f0}.color-row.selected{background:#f1f5e9;border-color:#dde6cb}.color-row.highlighted{outline:1px solid #afc195}.color-swatch{border:1px solid #42502c0f;border-radius:6px;flex-shrink:0;width:25px;height:25px}.color-code{text-align:left;color:#6d7b5b;font-size:10px;font-weight:550}.color-code small{color:#b1b9a4;font-size:8px;font-weight:400;line-height:1.8;display:block}.color-count{color:#879874;font-variant-numeric:tabular-nums;margin-left:auto;padding-right:3px;font-size:11px}.color-row>svg{color:#96aa77;width:11px}.color-row:not(.selected) .color-count{padding-right:22px}.empty-colors{color:#9ca78f;text-align:center;padding:20px 3px;font-size:11px}.palette-add{color:#9ba98a;background:#fcfdf8;border-style:dashed;border-color:#dce3cf;border-radius:6px;width:100%;height:33px;min-height:33px;margin:12px 0 18px;font-size:9px}.palette-add:hover{background:#f1f5e9}.selected-color{border-top:1px solid #edf1e3;align-items:center;gap:9px;padding-top:14px;display:flex}.selected-color>span{border:1px solid #364c2714;border-radius:7px;width:31px;height:31px}.selected-color>div{color:#acb49e;flex:1;font-size:9px}.selected-color strong{color:#7b8b67;align-items:center;gap:7px;margin-top:4px;font-size:11px;font-weight:500;display:flex}.selected-color small{color:#acb69d;font-size:8px;font-weight:400}.selected-color .icon-button{color:#a6b28f;width:27px}.bead-size{color:#9ca98b;border-top:1px solid #edf1e3;justify-content:space-between;align-items:center;gap:4px;margin-top:17px;padding-top:16px;font-size:9px;display:flex}.bead-size select{color:#849772;background:#fafcf6;border:1px solid #e7ecdc;border-radius:5px;max-width:130px;height:28px;padding:0 3px;font-size:9px}.materials-button{color:#8d9e78;background:#fcfdf8;border-color:#e5ebd9;border-radius:6px;justify-content:space-between;width:100%;min-height:35px;margin-top:15px;padding:0 8px;font-size:10px}.materials-button:hover{background:#f2f6e9}.palette-footnote{color:#b6bda8;margin:10px 1px 0;font-size:8px;line-height:1.9}.page-footer{color:#b0b8a4;border-top:1px solid #e9ede0;justify-content:space-between;align-items:center;margin-top:24px;padding:23px 1px 27px;font-size:9px;display:flex}.footer-brand{align-items:center;gap:8px;display:flex}.footer-brand .brand-symbol{opacity:.55;gap:1px;width:14px;height:14px}.footer-brand .brand-symbol i{border-radius:2px}.footer-brand .brand-symbol i:after{width:2px;height:2px}.page-footer>div{align-items:center;gap:20px;display:flex}.page-footer button{color:#a5af97;padding:0;font-size:9px}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#24312355;justify-content:center;align-items:center;padding:24px;animation:.15s ease-out appear;display:flex;position:fixed;inset:0}.modal{overscroll-behavior:contain;background:#fffefa;border:1px solid #f1f1e4;border-radius:19px;width:470px;max-width:100%;max-height:calc(100dvh - 48px);padding:27px;overflow:auto;box-shadow:0 20px 90px #23301b24}.modal-heading{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:23px;display:flex}.modal-heading h2{letter-spacing:1px;margin:9px 0;font-size:23px;font-weight:600}.modal-heading p{color:#9ba38e;overflow-wrap:anywhere;margin:0;font-size:11px;line-height:1.8}.modal-heading .icon-button{margin:-4px -7px 0 0}.export-code-option{color:#708560;cursor:pointer;background:#f3f5ed;border:1px solid #e8eddd;border-radius:8px;align-items:flex-start;gap:8px;margin-bottom:16px;padding:12px;font-size:11px;display:flex}.export-code-option input{margin:1px 0}.export-code-option small{color:#a4af94;margin-top:5px;font-size:9px;display:block}.export-options{flex-direction:column;gap:9px;display:flex}.export-option{text-align:left;background:#fff;border:1px solid #e8edde;border-radius:10px;align-items:center;gap:13px;width:100%;padding:14px;display:flex}.export-option:hover:not(:disabled){background:#fcfdf9;border-color:#bdcfac}.export-file-icon{color:#92a87c;background:#edf3e7;border-radius:9px;place-items:center;width:41px;height:41px;display:grid}.export-file-icon.pdf{color:#cda381;background:#fbefe7}.export-file-icon.csv{color:#b8b075;background:#f4f2df}.export-file-icon.json{color:#a3a0bc;background:#eeeef4}.export-option>span:nth-child(2){flex:1;min-width:0}.export-option strong{align-items:center;gap:8px;font-size:12px;font-weight:550;display:flex}.export-option strong small{letter-spacing:.6px;color:#a1ae92;background:#f2f6ec;border-radius:4px;padding:3px 5px;font-size:8px;font-weight:500}.export-option>span>span{color:#a6b098;margin-top:6px;font-size:9px;line-height:1.5;display:block}.export-option>svg{color:#a0ae8b}.modal-footnote{color:#aeb79e;justify-content:center;align-items:center;gap:5px;margin-top:20px;font-size:9px;display:flex}.help-steps{flex-direction:column;gap:20px;padding:0;list-style:none;display:flex}.help-steps li{gap:12px;display:flex}.help-steps li>span{letter-spacing:1px;color:#b2bc9d;margin-top:2px;font-size:11px}.help-steps h3{color:#718462;margin:0 0 6px;font-size:12px;font-weight:600}.help-steps p{color:#9da98d;margin:0;font-size:10px;line-height:1.9}.help-local{color:#9aaa86;background:#f2f5e9;border-radius:9px;gap:9px;margin-top:24px;padding:14px;display:flex}.help-local p{margin:0;font-size:10px;line-height:1.8}.help-local strong{color:#a5b093;font-size:9px;font-weight:400;display:block}.license-note{color:#aeb7a0;margin-top:18px;font-size:8px;line-height:1.8}.import-in-help{color:#859773;width:100%;margin-top:13px;font-size:11px}.full-palette-modal{width:550px}.full-palette{grid-template-columns:repeat(8,1fr);gap:9px;max-height:55dvh;padding:4px;display:grid;overflow:auto}.full-palette button{color:#98a58a;border:1px solid #0000;border-radius:5px;min-height:44px;padding:3px;font-size:8px}.full-palette button:hover{background:#f1f6e7;border-color:#b5c8a0}.full-palette button>span{aspect-ratio:1.2;border:1px solid #566b3820;border-radius:5px;margin-bottom:4px;display:block}.toast{z-index:100;color:#718b5b;background:#fafff2fa;border:1px solid #d9e5cf;border-radius:11px;align-items:center;gap:9px;width:max-content;max-width:calc(100vw - 30px);padding:13px 16px;font-size:11px;animation:.15s ease-out appear;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #3f512419}.toast>button{color:#98ae7f;align-items:center;margin-left:7px;padding:0;display:flex}.toast>span{line-height:1.7}@keyframes appear{0%{opacity:0}to{opacity:1}}@media (width>=1500px){.workspace{grid-template-columns:280px minmax(0,1fr) 250px;gap:22px}.stage-body{height:590px}.stage-3d{height:640px}.upload-zone{height:172px}.color-list{max-height:510px}.tool-button>span{display:inline}}@media (width<=1190px){.app-main,.header-inner{padding-left:22px;padding-right:22px}.workspace{grid-template-columns:238px minmax(0,1fr);gap:16px}.palette-panel{grid-column:2}.stage-column{grid-area:1/2/3}.settings-column{grid-area:1/1}.palette-panel{grid-area:2/1}.palette-panel .color-list{max-height:230px}.stage-body{height:530px}.stage-3d{height:580px}.header-page{display:none}.header-inner{gap:20px}.stats-row .stat-icon{display:none}.stats-row>div{gap:4px}.palette-content{padding:14px}.workspace-intro{padding-top:30px}.settings-content{padding:18px 15px 11px}}@media (width<=900px){.workspace{flex-direction:column;gap:16px;display:flex}.settings-column,.stage-column,.palette-panel{width:100%}.settings-column{order:0}.stage-column{order:1}.palette-panel{order:2}.settings-column .small-tip{display:none}.settings-content{grid-template-columns:1fr 1fr;gap:0 22px;display:grid}.settings-content>*{grid-column:2}.settings-content>.field-heading:first-child{grid-area:1/1}.settings-content>.upload-zone{grid-area:2/1/8;height:100%;min-height:170px}.settings-content>.source-caption{grid-area:8/1}.settings-content>.example-button{grid-area:9/1;align-self:start}.settings-content>.settings-divider{display:none}.settings-content>.field-heading:nth-of-type(3){grid-area:1/2}.settings-content .range-heading{margin-top:12px}.settings-content .generate-button,.settings-content .generate-note{grid-column:1/-1}.settings-content .option-row{margin-top:12px}.settings-content>.field-heading:nth-child(7){grid-row:1}.upload-zone .source-thumb{max-height:200px}.palette-content .color-list{grid-template-columns:repeat(3,1fr);gap:3px 8px;max-height:280px;margin-top:14px;display:grid}.color-list-labels{grid-column:1/-1}.palette-content{padding:15px 18px}.palette-content .selected-color{max-width:none}.selected-color>div{flex:1}.palette-panel .bead-size{border:0;width:45%;margin:0;padding-right:15px;display:inline-flex}.palette-panel .materials-button{width:53%;margin-top:17px;margin-left:2%}.palette-add{margin-bottom:0}.palette-description{margin-bottom:10px}.palette-footnote{margin-top:12px}.stage-body{height:530px}.stage-3d{height:580px}.stage-card{scroll-margin-top:15px}.header-divider{display:none}.header-inner{gap:12px}.save-status{display:none}.privacy-note{font-size:9px}.workspace-intro{padding-bottom:23px}.stats-row .stat-icon{display:flex}.stats-row>div{gap:10px}}@media (width<=600px){.app-header{height:65px}.header-inner{gap:0;padding:0 17px}.brand{letter-spacing:1.5px;gap:8px;font-size:21px}.brand-symbol{gap:2px;width:27px;height:27px}.brand-symbol i{border-radius:5px}.brand-sub{display:none}.header-actions{gap:6px}.header-export{border-radius:7px;gap:6px;height:34px;min-height:34px;padding:0 11px;font-size:11px}.header-export>svg:last-child{display:none}.help-button{width:31px}.desktop-import{display:none}.app-main{padding:0 15px}.workspace-intro{align-items:flex-end;padding:24px 1px 22px}.eyebrow{letter-spacing:1.6px;gap:5px;font-size:8px}h1{letter-spacing:.5px;margin:9px 0 7px;font-size:22px}h1>span{display:block}.workspace-intro p{letter-spacing:0;font-size:10px;line-height:1.7}.privacy-note{justify-content:flex-end;width:27px;height:30px;padding:0}.privacy-note>svg{color:#a0af91;width:16px;height:16px}.privacy-note>div{display:none}.workspace{gap:13px}.panel{border-radius:11px}.panel-heading{height:48px;padding:0 15px;font-size:12px}.panel-heading svg{width:15px;height:15px}.settings-panel:not([open]) .panel-heading{border-bottom:0}.settings-panel:not([open]) .panel-heading>span:after{content:"上传图片 / 调整格数与配色";color:#a5af97;margin-left:3px;font-size:9px;font-weight:400}.settings-content{padding:17px;display:block}.field-heading{margin-bottom:12px}.upload-zone{height:150px!important;min-height:0!important}.upload-zone .source-thumb{max-height:135px}.settings-content .settings-divider{margin:19px 0;display:block}.field-label{margin-top:15px}.range-heading{margin-top:18px!important}.size-presets button{height:33px}.option-row{margin-top:17px!important}.option-row span{font-size:9px}.option-row strong{font-size:12px}.switch{width:34px;height:20px}.switch:after{width:14px;height:14px}.switch:checked:after{transform:translate(14px)}.generate-button{height:44px;margin-top:20px}.generate-note{margin-top:10px;font-size:9px}.source-caption>span:first-child{max-width:180px}.stage-heading{height:56px;padding:0 12px}.view-switch{border-radius:7px;padding:3px}.view-switch>button{gap:5px;height:30px;padding:0 10px;font-size:10px}.view-switch>button>svg{width:14px;height:14px}.canvas-dimensions{font-size:10px}.editor-toolbar{gap:5px;height:47px;padding:0 9px}.tool-group{gap:2px}.tool-button{width:31px;min-width:31px;height:31px;padding:0}.tool-button.active{gap:5px;width:auto;padding:0 8px}.tool-button.active>span{font-size:9px}.tool-button>svg{width:16px;height:16px}.history-tools{gap:0;padding-left:4px}.history-tools .icon-button{width:28px;height:29px}.stage-body{height:390px}.stage-3d{height:437px}.stage-footer{height:43px;padding:0 11px}.canvas-toggles{gap:11px}.canvas-toggles label{font-size:9px}.canvas-toggles input{width:12px;height:12px}.zoom-label{min-width:37px;font-size:9px}.zoom-tools .icon-button{width:26px;height:28px}.project-bar{flex-wrap:wrap;gap:3px;padding:12px 2px 11px}.project-name{gap:4px}.project-name>input{width:112px;max-width:150px;font-size:10px}.original-tag{padding:2px 4px;font-size:7px}.hover-position{font-size:8px}.stats-row{border-radius:9px;padding:15px 0}.stats-row>div{gap:7px}.stats-row .stat-icon{display:none}.stats-row p>strong{font-size:19px}.stats-row p>span,.stats-row small{font-size:8px}.stats-row p>.dimension-stat{font-size:10px}.under-workspace{align-items:flex-start;gap:5px;margin-top:11px}.under-workspace>span{gap:4px;font-size:8px;line-height:1.5}.under-workspace>span>svg{width:11px;height:11px}.under-workspace .text-button{white-space:nowrap;gap:3px;font-size:8px;line-height:1.5}.under-workspace .text-button>svg{width:10px;height:10px}.palette-content{padding:14px}.palette-content .color-list{grid-template-columns:repeat(2,1fr);gap:3px 8px;max-height:295px}.color-row{height:47px;padding:0 7px}.color-count,.color-code{font-size:11px}.color-code small{font-size:8px}.color-row:not(.selected) .color-count{padding-right:18px}.palette-description{font-size:10px}.search-field{height:37px}.search-field input{height:33px;font-size:11px}.selected-color{margin-top:4px}.selected-color>div{font-size:10px}.selected-color strong{font-size:12px}.selected-color small{font-size:9px}.palette-panel .bead-size{flex-wrap:wrap;gap:6px;width:45%;padding:0;font-size:10px}.bead-size select{max-width:125px;height:32px;font-size:10px}.palette-panel .materials-button{width:51%;min-height:37px;margin-left:4%;padding:0 9px;font-size:10px}.palette-footnote{font-size:9px}.palette-add{height:35px;font-size:10px}.page-footer{flex-wrap:wrap;gap:12px;margin-top:25px;padding:20px 1px 25px;font-size:8px}.page-footer>div{gap:13px;font-size:8px}.page-footer button{font-size:8px}.footer-brand{font-size:9px}.modal-backdrop{align-items:center;padding:14px}.modal{border-radius:15px;max-height:calc(100dvh - 28px);padding:22px 18px}.modal-heading h2{font-size:22px}.modal-heading{margin-bottom:19px}.modal-heading p{font-size:10px}.export-option{gap:10px;padding:12px}.export-option strong{font-size:12px}.export-option>span>span{font-size:9px}.export-code-option{padding:12px 10px;font-size:11px}.export-code-option small{font-size:8px}.full-palette{grid-template-columns:repeat(6,1fr);gap:6px}.toast{bottom:max(17px,env(safe-area-inset-bottom));gap:7px;padding:11px 12px;font-size:10px}.model-label{font-size:8px}.preview-hint{font-size:9px}.help-steps p,.help-local p{font-size:11px}.help-local strong{font-size:10px}.license-note{font-size:9px}}@media (width<=360px){.app-main{padding:0 10px}.header-inner{padding:0 12px}.stage-heading{padding:0 9px}.view-switch>button{padding:0 8px;font-size:9px}.tool-group{gap:0}.tool-button{width:28px;min-width:28px}.tool-button.active{padding:0 5px}.history-tools .icon-button{width:25px}.stage-body{height:350px}.stage-3d{height:397px}.hover-position{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=600px){.header-export{min-height:40px}.help-button{width:37px;height:40px}.tool-button{width:35px;min-width:35px;height:36px}.tool-button.active{padding:0 8px}.history-tools .icon-button{width:31px;height:36px}.editor-toolbar{height:50px}.canvas-toggles label{min-height:30px}.zoom-tools .icon-button{width:29px;height:32px}.field-heading h2,.field-label,.range-heading,.select-wrap select{font-size:12px}.aspect-row{font-size:10px}.source-caption{font-size:9px}.palette-description{color:#849177}.color-code small{color:#8c9a7c}.color-list-labels{color:#8d9b7e}.generate-note{color:#8f9d81}}.app-header{z-index:30;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;position:sticky;top:0}:root{--muted:#63705e;font-variant-numeric:tabular-nums}h1,h2{text-wrap:balance}.workspace-intro p,.activation-hint{text-wrap:pretty}.license-button{white-space:nowrap;color:#45664e;background:#f4f7ef;border:1px solid #d6dfcf;min-height:40px;font-size:12px}.license-button.activated{background:#edf4eb}.license-banner{background:#fffaf0;border:1px solid #dfd8c1;border-radius:12px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:16px 20px;display:flex}.license-banner>div{align-items:center;gap:12px;display:flex}.license-banner strong{color:#3e4c38;font-size:14px;display:block}.license-banner small{color:#626954;margin-top:5px;font-size:12px;line-height:1.7;display:block}.license-banner>.button{flex-shrink:0;min-height:40px}.license-banner.is-active{background:#f0f5ed;border-color:#dce5d5}.license-modal{max-width:480px}.activation-input{color:#5b7354;border:1px solid #cbd6c4;border-radius:9px;align-items:center;gap:10px;margin-top:10px;padding:0 13px;display:flex}.activation-input input{background:0 0;border:0;outline:0;width:100%;min-width:0;height:49px;font-size:14px}.activation-input:focus-within{outline-offset:2px;outline:2px solid #7d9b75}.activation-submit{width:100%;min-height:48px;margin-top:18px}.activation-hint{color:#65705d;margin:18px 0;font-size:12px;line-height:1.9}.activation-error{color:#a43c32;background:#fff1ec;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.7}.license-success{color:#416039;background:#eff5eb;border-radius:10px;align-items:flex-start;gap:14px;padding:18px;display:flex}.license-success strong{font-size:15px}.license-success p{margin:6px 0 0;font-size:13px;line-height:1.8}.pattern-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.pattern-actions .button{min-height:40px;font-size:12px}.tool-button>span{display:inline!important}.tool-button{width:auto;min-width:44px;min-height:40px;padding:0 10px}.cost-estimate{color:#5e6b55;border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0;padding:14px 0;font-size:12px;display:flex}.cost-estimate>span{align-items:center;gap:5px;display:flex}.cost-estimate input{background:#f8f9f5;border:1px solid #dce2d5;border-radius:6px;width:62px;padding:7px 5px}.cost-estimate>strong{color:#45664e;margin-left:auto;font-size:16px}.cost-estimate small{width:100%;font-size:11px;line-height:1.7}.source-thumb{outline:1px solid #0000001a}.palette-description,.palette-footnote,.generate-note,.source-caption,.color-list-labels,.color-code small,.hover-position{color:#626f59}.stage-card{scroll-margin-top:90px}@media (width<=1100px){.header-page,.header-divider,.header-actions .save-status{display:none}}@media (width<=600px){.app-header{height:68px}.header-inner{padding:0 12px}.header-actions{gap:5px}.license-button{gap:4px;padding:0 9px;font-size:11px}.header-export{padding:0 9px;font-size:11px}.help-button{display:none}.license-banner{align-items:flex-start;gap:12px;margin-bottom:15px;padding:14px}.license-banner>div{align-items:flex-start;gap:8px}.license-banner>div>svg{width:16px;margin-top:2px}.license-banner strong{font-size:13px;line-height:1.6}.license-banner small{font-size:12px;line-height:1.7}.license-banner>.button{min-height:40px;margin-top:1px;padding:0 10px;font-size:11px}.workspace-intro p{font-size:12px}.settings-panel:not([open]) .panel-heading>span:after{color:#68765c;content:"上传图片 / 调整设置";font-size:10px}.editor-toolbar{align-items:center;gap:5px;height:auto;min-height:60px;padding:8px}.tool-group{flex:1;gap:2px}.tool-button,.tool-button.active{flex-direction:column;gap:3px;width:40px;min-width:40px;height:44px;padding:4px 2px;display:flex}.tool-button>span,.tool-button.active>span{font-size:10px;line-height:1.1}.history-tools{gap:0;padding-left:2px}.history-tools .icon-button{width:36px;height:44px}.canvas-toggles label{gap:5px;min-height:40px;font-size:11px}.canvas-toggles{gap:8px}.stage-footer{height:48px;padding:0 9px}.zoom-tools .icon-button{width:32px;height:40px}.zoom-label{min-width:38px;font-size:11px}.zoom-tools>span,.zoom-tools .icon-button:last-child{display:none}.size-presets button,.palette-add,.bead-size select,.search-field{min-height:40px}.source-caption,.generate-note,.aspect-row,.option-row span{font-size:11px}.palette-description{font-size:12px}.color-code{font-size:13px}.color-code small{font-size:10px}.color-row{min-height:50px}.color-count{font-size:13px}.selected-color>div,.selected-color small{font-size:11px}.palette-footnote{font-size:11px;line-height:1.8}.stats-row p>span{font-size:11px}.stats-row p>.dimension-stat{font-size:12px}.stats-row small{font-size:10px}.pattern-actions{gap:6px}.pattern-actions .button{padding:0 10px;font-size:11px}.project-name>input{font-size:12px}.original-tag{font-size:9px}.hover-position,.under-workspace>span,.under-workspace .text-button{font-size:10px}.palette-panel .materials-button{min-height:44px;font-size:11px}.page-footer>div,.page-footer button{font-size:10px}.modal-heading p{font-size:12px;line-height:1.7}.export-option strong{font-size:14px}.export-option>span>span{font-size:11px}.export-code-option small{font-size:11px;line-height:1.7}.full-palette button{min-height:44px}.toast,.cost-estimate{font-size:12px}.activation-input input{font-size:16px}}@media (width<=360px){.tool-button,.tool-button.active{width:40px;min-width:40px}.history-tools .icon-button{width:40px}.editor-toolbar{padding:6px}.license-banner{flex-wrap:wrap}.license-banner>.button{margin-left:24px}.brand{font-size:19px}.header-export,.license-button{padding:0 8px}.tool-group{gap:1px}}@media (pointer:coarse),(width<=600px){.text-button,.zoom-label,.page-footer button{min-height:40px}.search-field>button,.icon-button{min-width:40px;min-height:40px}.editor-toolbar{flex-wrap:wrap}.history-tools .icon-button{width:40px}.toast button{min-width:40px;min-height:40px}}
