:root{--bg:#f5f5fa;--panel:#ffffff;--panel2:#f8f8fc;--line:#e5e5f0;--ink:#242431;--muted:#747488;--accent:#7047eb;--accent2:#18855e;--warn:#a56513;--danger:#c84962;}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);overflow:hidden;font-size:13px;}.app{display:flex;flex-direction:column;height:100vh}header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line);flex-shrink:0;}header h1{font-size:15px;font-weight:600;letter-spacing:.3px}header .sub{color:var(--muted);font-size:11px}.spacer{flex:1}.btn{background:var(--panel2);border:1px solid var(--line);color:var(--ink);padding:6px 14px;border-radius:6px;cursor:pointer;font-size:12px;font-family:inherit;transition:.15s;white-space:nowrap;}.btn:hover{background:#efecfb;border-color:#c9bdf1}.btn.primary{background:var(--accent);border-color:var(--accent);color:#ffffff;font-weight:600}.btn.primary:hover{background:#5f35db}.btn.ghost{background:transparent}.btn.danger{color:#b93d56;border-color:#efd1d9}.btn.danger:hover{background:#fff0f3;border-color:#d88b9d}.btn:disabled{opacity:.4;cursor:not-allowed}main{display:flex;flex:1;min-height:0}.stage{flex:1;position:relative;overflow:hidden;background:linear-gradient(45deg,#eeeef5 25%,transparent 25%,transparent 75%,#eeeef5 75%) 0 0/24px 24px,linear-gradient(45deg,#eeeef5 25%,#f4f4f9 25%,#f4f4f9 75%,#eeeef5 75%) 12px 12px/24px 24px;display:flex;align-items:center;justify-content:center;}#main{display:block;cursor:crosshair}.dropzone{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:2px dashed #dcdcea;border-radius:12px;margin:24px;color:var(--muted);transition:.2s;text-align:center;padding:20px;}.dropzone.over{border-color:var(--accent);background:rgba(112,71,235,.08);color:var(--accent)}.dropzone .big{font-size:32px;opacity:.5}.dropzone h2{font-size:17px;font-weight:600;color:var(--ink)}.dropzone p{font-size:12px;line-height:1.9}.dropzone.hidden{display:none}.hint{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.94);width:340px;max-width:calc(100% - 28px);border:1px solid var(--line);border-radius:11px;padding:9px 11px 11px;color:var(--muted);font-size:11px;line-height:1.5;pointer-events:none;box-shadow:0 10px 30px rgba(47,35,89,.06);backdrop-filter:blur(7px);}.hint.collapsed{width:auto;padding:6px 8px}.hint .hint-toggle{pointer-events:auto;display:flex;align-items:center;gap:6px;padding:2px 5px 2px 2px;border:0;background:transparent;color:var(--ink);font-family:inherit;font-size:11px;font-weight:600;cursor:pointer}.hint .hint-toggle:hover{color:var(--accent)}.hint .hint-toggle-icon{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;color:var(--accent);line-height:0;background:var(--panel2)}.collapse-glyph{width:12px;height:12px;display:block;transform-origin:50% 50%;transition:transform .18s}.collapse-glyph path{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hint:not(.collapsed) .hint-toggle-icon .collapse-glyph{transform:rotate(180deg)}.hint .hint-body{margin-top:7px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.hint.collapsed .hint-body{display:none}.hint .hint-intro{margin-bottom:7px;color:#747488;font-size:10.5px}.hint .hint-grid{display:grid;grid-template-columns:1fr;gap:7px}.hint .hint-card{padding:8px 9px;border:1px solid rgba(255,255,255,.075);border-radius:8px;background:#f8f7fd}.hint .hint-card.wide{grid-column:1/-1}.hint .hint-card-title{display:flex;align-items:center;gap:6px;margin-bottom:4px;color:var(--accent);font-weight:700}.hint .hint-card-title .num{width:16px;height:16px;display:grid;place-items:center;border-radius:5px;background:rgba(112,71,235,.15);font:700 9px ui-monospace,monospace}.hint .hint-item{margin-top:3px}.hint .hint-item:first-of-type{margin-top:0}.hint .hint-item::before{content:'·';margin-right:5px;color:#647086}.hint .hint-feature{color:#48485c}.hint .hint-feature::before{color:var(--accent2)}.hint b{color:var(--ink);font-weight:600}.hint kbd{background:var(--panel2);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-size:10px;font-family:ui-monospace,monospace;color:var(--ink);}.panel{width:350px;flex-shrink:0;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden;}.panel-scroll{overflow-y:auto;flex:1;padding:14px}.panel-scroll::-webkit-scrollbar{width:9px}.panel-scroll::-webkit-scrollbar-thumb{background:#dcdcea;border-radius:5px}.hist-bar{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:none;align-items:center;gap:8px;z-index:6;padding:7px 9px;border-radius:11px;background:rgba(255,255,255,.96);border:1px solid #dcdcea;box-shadow:0 6px 22px rgba(47,35,89,.08);backdrop-filter:blur(8px);}.hist-bar.show{display:flex}.hist-bar{width:max-content;max-width:calc(100% - 24px);flex-wrap:wrap;justify-content:center;gap:6px}.canvas-paint-tools{display:flex;align-items:center;gap:5px;flex-shrink:0}.hist-bar button.canvas-tool{width:32px;height:32px;padding:0;display:grid;place-items:center}.canvas-tool svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.canvas-tool .paint-chip{width:18px;height:18px;border-radius:4px;border:1px solid rgba(255,255,255,.55);background:#000}.color-editor-controls{padding:10px 14px;border-bottom:1px solid var(--line)}.color-editor-controls .row{margin-bottom:7px}.color-editor-controls .row select{min-width:0}.paint-extras{display:flex;align-items:center;gap:8px;margin-top:8px;color:var(--muted);font-size:11px}.paint-extras input[type=color]{width:36px;height:28px;padding:2px;background:var(--bg);border:1px solid var(--line);border-radius:5px}.paint-extras .btn{margin-left:auto;font-size:10px;padding:5px 8px}.float-prev{position:absolute;z-index:7;width:300px;max-width:calc(100% - 28px);background:rgba(255,255,255,.96);border:1px solid #dcdcea;border-radius:10px;padding:9px;box-shadow:0 8px 26px rgba(47,35,89,.08);backdrop-filter:blur(8px);top:14px;right:14px;left:auto;bottom:auto;}.float-prev.pos-tl{top:14px;left:14px;right:auto;bottom:auto}.float-prev.pos-tr{top:14px;right:14px;left:auto;bottom:auto}.float-prev.pos-bl{bottom:14px;left:14px;right:auto;top:auto}.float-prev.pos-br{bottom:14px;right:14px;left:auto;top:auto}.float-prev.hidden{display:none}.float-prev.preview-15{width:450px}.float-prev.preview-2{width:600px}.float-prev .fp-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-bottom:7px}.float-prev .fp-size{font-family:ui-monospace,monospace;color:var(--accent)}.float-prev .fp-head-actions{display:flex;align-items:center;gap:7px}.float-prev .fp-scales{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden}.float-prev .fp-scale{min-width:31px;height:22px;padding:0 5px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted);font:10px ui-monospace,monospace;cursor:pointer}.float-prev .fp-scale:first-child{border-left:0}.float-prev .fp-scale:hover{color:var(--ink);background:rgba(112,71,235,.09)}.float-prev .fp-scale.active{color:#fff;background:var(--accent)}.float-prev .pv-wrap{margin-bottom:8px;display:grid;place-items:center;overflow:auto}.float-prev .pv-wrap canvas{width:auto;height:auto;max-width:none;display:block;border-radius:6px;background:#f7f7fc}.preview-backgrounds{display:flex;align-items:center;gap:7px;margin-bottom:8px}.preview-backgrounds>span{font-size:10px;color:var(--muted);margin-right:2px}.preview-background{width:23px;height:23px;flex:none;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:5px;cursor:pointer;background:var(--swatch);color:var(--check,#fff);position:relative}.preview-background[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:2px}.preview-background[aria-pressed="true"]::after{content:'✓';display:grid;place-items:center;position:absolute;inset:0;font:700 13px/1 sans-serif}.preview-background:focus-visible{outline:2px solid #fff;outline-offset:2px}.float-prev .fp-corners{display:flex;gap:6px;justify-content:center}.float-prev .fp-corner{flex:1;height:28px;padding:0;display:grid;place-items:center;font-size:0;line-height:0;background:var(--panel2);border:1px solid var(--line);border-radius:7px;color:var(--ink)}.float-prev .fp-corner svg{width:16px;height:16px;display:block;overflow:visible;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none}.float-prev .fp-corner:hover{border-color:var(--accent);color:var(--accent)}.float-prev .fp-corner.active{border-color:var(--accent);background:rgba(112,71,235,.16)}.hist-bar .btn{flex:0 0 auto;padding:6px 13px;font-size:12px}.hist-bar .btn:disabled{opacity:.38;cursor:not-allowed}.hist-bar .btn:disabled:hover{background:var(--panel2);border-color:var(--line)}.hist-n{font-size:10px;color:var(--muted);font-family:ui-monospace,monospace;white-space:nowrap;min-width:40px;text-align:center;}.zoom-box{display:flex;align-items:center;gap:4px;flex:0 0 auto}.hist-bar .zbtn{padding:6px 8px;min-width:26px;text-align:center;line-height:1;font-size:12px}.zval{min-width:56px;font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}.hbar-sep{width:1px;height:18px;background:#dcdcea;flex:0 0 auto;margin:0 2px}.group{margin-bottom:16px;background:var(--panel2);border-radius:9px;padding:12px;border:1px solid var(--line)}.group>h3{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.9px;margin-bottom:11px;display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;}.group>h3 .n{width:16px;height:16px;border-radius:4px;background:var(--accent);color:#ffffff;display:inline-flex;align-items:center;justify-content:center;font-size:10px;}.group>h3 .help{margin-left:auto;flex-shrink:0;position:relative;width:14px;height:14px;border-radius:50%;border:1px solid var(--line);color:var(--muted);font-size:9px;font-weight:700;line-height:1;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;cursor:help;user-select:none;}.group>h3 .help:hover,.group>h3 .help.show{color:var(--accent);border-color:var(--accent);background:rgba(112,71,235,.12)}.help-tip{position:absolute;right:-4px;top:calc(100% + 7px);width:224px;max-width:224px;background:#ffffff;border:1px solid #dedeea;border-radius:7px;padding:9px 11px;color:var(--ink);font-size:10.5px;font-weight:400;line-height:1.65;letter-spacing:0;text-transform:none;text-align:left;white-space:normal;box-shadow:0 10px 26px rgba(47,35,89,.12);opacity:0;visibility:hidden;transition:.14s;z-index:80;pointer-events:none;}.help:hover .help-tip,.help:focus .help-tip,.help.show .help-tip{opacity:1;visibility:visible;pointer-events:auto;}.help-tip::before{content:'';position:absolute;top:-9px;left:0;right:0;height:9px}.help-tip b{color:var(--accent);font-weight:600}.help-tip kbd{background:#f0edfa;border:1px solid #dedeea;border-radius:3px;padding:0 4px;font-size:9.5px;font-family:inherit;}.help-tip hr{border:0;border-top:1px solid #e5e5f0;margin:7px 0}.row{display:flex;align-items:center;gap:9px;margin-bottom:9px}.row:last-child{margin-bottom:0}.row label{flex-shrink:0;color:var(--muted);font-size:11.5px;min-width:62px}.row input[type=range]{flex:1;accent-color:var(--accent);height:4px;cursor:pointer}.row .val{min-width:44px;text-align:right;font-family:ui-monospace,monospace;font-size:11px;color:var(--ink);background:var(--bg);padding:2px 6px;border-radius:4px;}.row select,.row input[type=number],.row input[type=text]{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:5px 8px;border-radius:5px;font-size:11.5px;font-family:inherit;}.row .full{width:100%}.file-name-row{align-items:center;gap:8px;margin-bottom:10px}.row.file-name-row input[type=text]{min-width:0;padding:7px 9px;font-size:12px}.file-save-status{flex:0 0 auto;min-width:72px;max-width:112px;text-align:center!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)!important;background:#f5f4fa!important;border:1px solid var(--line);padding:5px 7px!important;border-radius:5px!important;}.project-library-row{display:grid;grid-template-columns:minmax(0,1fr) 58px;gap:7px;margin-bottom:9px;position:relative}.project-picker{position:relative;min-width:0}.project-picker-trigger{width:100%;height:38px;padding:3px 7px 3px 4px;display:grid;grid-template-columns:31px minmax(0,1fr) 16px;align-items:center;gap:7px;background:var(--bg);border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:11px;font-family:inherit;text-align:left;cursor:pointer}.project-picker-trigger:hover,.project-picker.open .project-picker-trigger{border-color:#c9bdf1;background:#f3f0fc}.project-picker-trigger.empty{grid-template-columns:minmax(0,1fr) 16px;padding-left:8px}.project-picker-thumb,.project-option-thumb,.import-project-thumb{display:block;object-fit:contain;background-color:#ffffff;border:1px solid var(--line);border-radius:4px;background-image:linear-gradient(45deg,#eeeef5 25%,transparent 25%),linear-gradient(-45deg,#eeeef5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eeeef5 75%),linear-gradient(-45deg,transparent 75%,#eeeef5 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.project-picker-thumb{width:31px;height:31px}.project-picker-text{min-width:0;display:flex;flex-direction:column;gap:1px}.project-picker-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.project-picker-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9.5px}.project-picker-arrow{width:13px;height:13px;color:var(--muted);transition:transform .15s}.project-picker.open .project-picker-arrow{transform:rotate(180deg)}.project-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:90;max-height:260px;overflow:auto;padding:4px;background:#ffffff;border:1px solid #dedeea;border-radius:7px;box-shadow:0 12px 28px rgba(47,35,89,.09)}.project-picker.open .project-menu{display:block}.project-option{width:100%;padding:5px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:8px;border:0;border-radius:5px;background:transparent;color:var(--ink);font-size:11px;font-family:inherit;text-align:left;cursor:pointer}.project-option:hover,.project-option[aria-selected="true"]{background:rgba(112,71,235,.13)}.project-option-thumb{width:40px;height:40px}.project-option-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.project-option-meta{display:block;margin-top:2px;color:var(--muted);font-size:9.5px}.project-picker-empty{padding:10px;color:var(--muted);font-size:10.5px;text-align:center}.project-library-row .btn{min-width:58px;padding-left:7px;padding-right:7px}.file-group .project-library-row{grid-template-columns:minmax(0,1fr) 48px;gap:6px;margin-bottom:6px}.file-group .project-picker-trigger{height:34px;grid-template-columns:26px minmax(0,1fr) 13px;gap:6px}.file-group .project-picker-trigger.empty{grid-template-columns:minmax(0,1fr) 13px}.file-group .project-picker-thumb{width:26px;height:26px}.file-group .project-picker-trigger .project-picker-meta{display:none}.file-group .project-library-row .btn{min-width:0;padding:0 7px}.file-group .file-name-row{display:grid;grid-template-columns:minmax(0,1fr) auto 48px;gap:6px;margin-bottom:8px}.file-group .file-name-row input[type=text]{width:100%;height:32px;padding:5px 8px;font-size:12px}.file-group .file-save-status{min-width:0;max-width:86px;padding:0!important;border:0;background:transparent!important;text-align:right!important;font-size:10px;border-radius:0!important}.file-group .file-name-row .btn{height:32px;padding:0 6px}.file-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.file-actions .btn{height:30px;min-width:0;padding:0 8px;font-size:11px}.file-actions .file-manage{background:transparent;color:var(--muted)}.file-actions .file-delete{background:transparent;color:#b93d56;border-color:#efd1d9}@media(pointer:coarse){.file-group .project-picker-trigger,.file-group .file-name-row input[type=text],.file-group .file-name-row .btn,.file-actions .btn{min-height:36px}}.import-project-preview{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:8px;margin:7px 0;padding:6px;background:var(--bg);border:1px solid var(--line);border-radius:7px}.import-project-preview[hidden]{display:none}.import-project-thumb{width:46px;height:46px}.import-project-copy{min-width:0}.import-project-copy strong,.import-project-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-project-copy strong{font-size:11px}.import-project-copy span{margin-top:3px;color:var(--muted);font-size:9.5px}.import-project-actions{display:flex;flex-direction:column;gap:4px}.import-project-actions .btn{min-width:44px!important;padding:3px 6px!important;font-size:10px}.chk{display:flex;align-items:center;gap:7px;cursor:pointer;color:var(--muted);font-size:11.5px}.chk input{accent-color:var(--accent);cursor:pointer;width:14px;height:14px}.chk:hover{color:var(--ink)}.btns{display:flex;gap:7px;flex-wrap:wrap}.btns .btn{flex:1;min-width:78px}.btn.full{width:100%}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.export-item{display:grid;grid-template-columns:minmax(0,1fr) 38px;min-width:0}.export-download{width:100%;min-width:0;padding:9px 10px;text-align:left;border-radius:6px 0 0 6px}.export-copy{width:38px;min-width:38px;margin-left:-1px;padding:0;display:grid;place-items:center;border-radius:0 6px 6px 0;color:var(--accent);font-size:16px;line-height:1}.export-copy:hover{position:relative;z-index:1;color:#fff;border-color:var(--accent);background:rgba(112,71,235,.16)}.export-copy.copied{color:var(--accent2);border-color:var(--accent2);background:rgba(24,133,94,.12)}.export-item.is-primary .export-copy{border-color:var(--accent);background:rgba(112,71,235,.14)}.export-item.is-primary .export-copy:hover{background:rgba(112,71,235,.28)}.watermark-box{margin-top:9px;padding:7px;background:var(--bg);border:1px solid var(--line);border-radius:7px}.watermark-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.watermark-head label{color:var(--ink);font-size:11px;font-weight:600}.watermark-head span{color:#687386;font-size:9.5px}.watermark-switch{display:flex;align-items:center;gap:7px;cursor:pointer}.watermark-switch input{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.watermark-editor{margin-top:8px}.watermark-editor[hidden],.watermark-last[hidden]{display:none}.watermark-last{margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#687386;font-size:10.5px}.watermark-input{display:grid;grid-template-columns:minmax(0,1fr) 28px}.watermark-input input{min-width:0;padding:5px 8px;background:#ffffff;border:1px solid var(--line);border-radius:5px 0 0 5px;color:var(--ink);font-size:11px;font-family:inherit}.watermark-input input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.watermark-input .btn{min-width:28px;width:28px;margin-left:-1px;padding:0;border-radius:0 5px 5px 0;color:var(--muted);font-size:14px}.watermark-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.watermark-tags:empty{display:none}.watermark-tag{display:inline-flex;align-items:center;min-width:0;border:1px solid #dedeea;border-radius:999px;background:#f2f0fa;overflow:hidden}.watermark-tag-use,.watermark-tag-remove{border:0;background:transparent;color:var(--muted);font-family:inherit;cursor:pointer}.watermark-tag-use{max-width:190px;padding:3px 5px 3px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9.5px}.watermark-tag-remove{width:21px;height:21px;padding:0;display:grid;place-items:center;font-size:11px}.watermark-tag:hover{border-color:#b8a6e8}.watermark-tag-use:hover{color:var(--ink)}.watermark-tag-remove:hover{color:#b93d56;background:rgba(255,107,107,.1)}.grid-stepper{flex:1;display:grid;grid-template-columns:36px minmax(56px,1fr) 36px;gap:7px;align-items:center}.grid-stepper .btn{width:36px;min-width:36px;padding:6px 0;text-align:center}.row .grid-stepper .val{box-sizing:border-box;width:100%;min-width:0;text-align:center;font-variant-numeric:tabular-nums}.dimension-row{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:6px;margin-bottom:10px}.dimension-control{display:grid;grid-template-columns:auto 24px minmax(0,1fr) 24px;align-items:center;gap:3px;min-width:0}.dimension-control>span:first-child{color:var(--muted);font-size:12px}.dimension-control .btn{min-width:24px;width:24px;padding:5px 0}.dimension-control .val{min-width:0;width:100%;text-align:center;font-variant-numeric:tabular-nums}.grid-count-input{height:28px;padding:3px 2px!important;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--ink);font:11px ui-monospace,monospace;appearance:textfield;-moz-appearance:textfield;}.grid-count-input::-webkit-inner-spin-button,.grid-count-input::-webkit-outer-spin-button{appearance:none;margin:0}.grid-count-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.aspect-lock{width:28px;min-width:28px;height:28px;padding:0;display:grid;place-items:center;color:var(--muted);font-size:11px}.aspect-lock .lock-icon{font-size:13px;line-height:1}.aspect-lock[aria-pressed="true"]{color:var(--accent2);border-color:var(--accent2);background:rgba(24,133,94,.1)}.grid-group .dimension-row{grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr);align-items:end;gap:8px;margin-bottom:12px}.grid-group .dimension-control{display:flex;flex-direction:column;align-items:stretch;gap:5px}.grid-group .dimension-control>label{font-size:11px;color:var(--muted);padding-left:1px}.dimension-stepper{display:grid;grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;height:34px;background:var(--bg);border:1px solid var(--line);border-radius:7px;overflow:hidden}.grid-group .dimension-stepper .btn{width:28px;min-width:0;height:32px;padding:0;border:0;border-radius:0;background:transparent;font-size:16px;color:var(--muted)}.grid-group .dimension-stepper .btn:hover{background:var(--panel2);color:var(--ink)}.grid-group .dimension-stepper .grid-count-input{height:32px;border:0;border-radius:0;background:transparent;font-size:14px;font-weight:600;outline:0;box-shadow:none}.dimension-stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.grid-group .aspect-lock{height:30px;width:30px;min-width:30px;margin-bottom:2px;padding:0;display:flex;align-items:center;justify-content:center;line-height:0;border-color:transparent;background:transparent;color:var(--muted)}.grid-group .aspect-lock:hover{background:var(--panel2);color:var(--ink)}.grid-group .aspect-lock[aria-pressed="true"]{color:var(--accent2);background:rgba(24,133,94,.13);border-color:rgba(24,133,94,.35)}.grid-group .lock-icon{width:18px;height:18px;display:block;flex:none;margin:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.grid-group .grid-sampling{gap:8px;margin-bottom:8px}.grid-group .grid-sampling label{min-width:0;flex:none;font-size:11px}.grid-group .grid-sampling select{min-width:0;height:32px;padding:4px 7px;border-radius:6px}.grid-display{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:9px}.grid-display .chk{justify-content:center;gap:4px;padding:6px 2px;border:1px solid var(--line);border-radius:6px;font-size:10.5px;white-space:nowrap;min-width:0}.grid-display .chk input{width:12px;height:12px;flex-shrink:0}.grid-display .chk:has(input:checked){background:rgba(112,71,235,.06);border-color:#c9bdf1;color:var(--ink)}.grid-group .grid-auto{height:32px;display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;color:var(--accent);font-size:11px;padding:0 8px}.grid-auto svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}@media(pointer:coarse){.grid-group .dimension-stepper{height:38px}.grid-group .dimension-stepper .btn,.grid-group .dimension-stepper .grid-count-input{height:36px}.grid-group .aspect-lock{height:34px}.grid-group .grid-auto,.grid-display .chk{min-height:36px}}.group.collapsed{padding-bottom:10px}.group.collapsed>h3{margin-bottom:0}.group.collapsed>.group-body{display:none}.color-stats-group>h3 .collapsed-stats{display:none;min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;font-weight:500;letter-spacing:0;text-transform:none;font-family:ui-monospace,monospace}.color-stats-group.collapsed>h3 .collapsed-stats{display:block}.color-stats-group.collapsed>h3 .help{display:none}.group-collapse{flex:0 0 auto;width:22px;height:22px;padding:0;margin-left:auto;border:0;border-radius:5px;display:grid;place-items:center;background:transparent;color:var(--muted);cursor:pointer;font-family:inherit;font-size:0;line-height:0;transition:.15s;}.group>h3 .help+.group-collapse{margin-left:0}.group-collapse:hover{background:rgba(112,71,235,.12);color:var(--accent)}.group:not(.collapsed) .group-collapse .collapse-glyph{transform:rotate(180deg)}.tool-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:8px}.tool-modes.three{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-modes .btn{min-width:0;padding:7px 6px}.tool-status{min-height:31px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0;padding:7px 9px;border-radius:6px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.35;}.tool-status strong{color:var(--ink);font-weight:600;text-align:right}.flow-hint{font-size:10.5px;color:var(--muted);line-height:1.55;margin-top:7px}.flow-hint b{color:var(--ink)}.bg-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:10px}.bg-tools .btn{height:33px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 6px;font-size:11px}.bg-tools svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.bg-group .bg-tolerance{gap:8px;margin-bottom:9px}.bg-group .bg-tolerance label{min-width:0;flex:none;font-size:11px}.bg-readout{padding:8px 9px;margin-bottom:9px;border:1px solid var(--line);border-radius:7px;background:var(--bg)}.bg-instruction{display:block;color:var(--ink);font-size:11px;line-height:1.5}.bg-summary{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:4px}.bg-summary strong{font-size:10.5px;font-weight:500;color:var(--muted);line-height:1.4}.bg-group.has-candidates .bg-summary strong{color:#b64074}.bg-group .bg-clear{padding:2px 0;border:0;background:transparent;font-size:10px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.bg-clear[hidden]{display:none}.bg-actions{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:5px}.bg-actions .btn{height:32px;padding:0 8px;font-size:11px}@media(pointer:coarse){.bg-tools .btn,.bg-actions .btn{min-height:36px}}.paint-color-row{display:grid;grid-template-columns:auto 38px minmax(0,1fr);align-items:center;gap:7px;margin-bottom:8px}.paint-color-row label{color:var(--muted);font-size:11.5px}.paint-color-row input[type=color]{width:100%;height:30px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--bg);cursor:pointer}.paint-color-row .btn{min-width:0;padding:6px 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn.subtle-danger{color:#b93d56;background:transparent;border-color:#efd1d9}.btn.subtle-danger:hover{background:#fff0f3;border-color:#d88b9d}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.note{font-size:10.5px;color:var(--muted);line-height:1.65;margin-top:8px}#preview{width:auto;height:auto;max-width:none;image-rendering:pixelated;border:0;border-radius:7px;background-color:#fafafe;display:block;background-image:linear-gradient(45deg,#eeeef5 25%,transparent 25%),linear-gradient(-45deg,#eeeef5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eeeef5 75%),linear-gradient(-45deg,transparent 75%,#eeeef5 75%);background-size:16px 16px;background-position:0 0,0 8px,8px -8px,-8px 0;}.pv-wrap{position:relative;margin-bottom:10px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:9px;}.stat{min-width:0;background:var(--bg);border-radius:6px;padding:6px 3px;text-align:center}.stat .k{color:var(--muted);font-size:10px}.stat .v{overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:700;font-family:ui-monospace,monospace;margin-top:1px}.stat.stat-clean{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 9px;text-align:left}.stat.stat-clean .v{flex:0 0 auto;margin:0;font-size:11px}.clean-summary{display:flex;align-items:center;flex-wrap:wrap;gap:3px 8px;min-width:0;flex:1}.stat.stat-clean .clean-summary .v{flex-shrink:1;white-space:normal;overflow-wrap:anywhere}.map-preview{flex:none;gap:5px;font-size:10.5px;white-space:nowrap;padding:3px 5px;border-radius:4px}.map-preview input{width:13px;height:13px}.map-preview:has(input:checked){color:var(--accent);background:rgba(112,71,235,.09)}.swatches{display:flex;flex-wrap:wrap;gap:3px;margin-top:8px}.swatches.collapsed{overflow:hidden}.sw-toggle{width:100%;margin-top:7px;padding:4px 0;font-size:10.5px;color:var(--muted);background:transparent;border:1px dashed var(--line);}.sw-toggle:hover{color:var(--accent);border-color:var(--accent);background:rgba(112,71,235,.08)}.batch-color-status{margin-top:7px;color:#a56513;font-size:10px;line-height:1.4}.sw{width:26px;height:26px;border-radius:4px;border:1px solid rgba(255,255,255,.14);cursor:pointer;position:relative;transition:.12s;}.sw:hover{transform:scale(1.14);z-index:2;border-color:var(--ink)}.sw.selected{z-index:3;border-color:#fff;outline:2px solid var(--accent);outline-offset:1px;box-shadow:0 0 0 3px rgba(112,71,235,.2),0 0 12px rgba(112,71,235,.7)}.sw.replaced{border-color:#a56513;box-shadow:inset 0 0 0 1px #a56513}.sw .edited-mark{position:absolute;right:-3px;top:-5px;z-index:4;width:12px;height:12px;border-radius:50%;display:grid;place-items:center;background:#a56513;color:#261600;font:700 8px/1 sans-serif;box-shadow:0 1px 4px rgba(0,0,0,.7)}.sw .cnt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.95);font-family:ui-monospace,monospace;}.sw .code{position:absolute;bottom:-1px;left:0;right:0;text-align:center;font-size:7px;background:rgba(0,0,0,.68);color:#fff;border-radius:0 0 3px 3px;font-family:ui-monospace,monospace;}.toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%) translateY(12px);max-width:calc(100vw - 32px);background:var(--accent2);color:#ffffff;padding:9px 20px;border-radius:7px;font-size:12.5px;font-weight:600;opacity:0;transition:.28s;z-index:99;pointer-events:none;}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.modal{position:fixed;inset:0;background:rgba(42,35,69,.25);z-index:200;display:none;align-items:center;justify-content:center;padding:24px;}.modal.show{display:flex}.modal-box{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:min(940px,94vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;}.modal-head{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:12.5px;}.modal-head b{font-family:ui-monospace,monospace;word-break:break-all}.modal-body{overflow:auto;padding:14px;background:#f7f7fc;display:flex;justify-content:center}.modal-body img{max-width:100%;image-rendering:pixelated;border:1px solid var(--line);border-radius:6px}.modal-body textarea{width:100%;height:44vh;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:10px;font-family:ui-monospace,monospace;font-size:11.5px;resize:vertical;}.modal-foot{display:flex;align-items:center;gap:9px;padding:11px 14px;border-top:1px solid var(--line)}.modal-foot .btn{flex:0 0 auto;text-decoration:none;display:inline-flex;align-items:center}.modal-foot .note{margin:0;flex:1;min-width:0}.color-editor .modal-box{width:min(760px,94vw)}.color-editor-current{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.color-editor-current .sample{width:24px;height:24px;border-radius:5px;border:1px solid rgba(255,255,255,.3)}.color-editor .modal-body{display:block;padding:12px;min-height:180px}.batch-palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:6px;width:100%}.palette-color{height:44px;min-width:0;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:6px;position:relative;cursor:pointer;overflow:hidden}.palette-color:hover,.palette-color:focus{z-index:2;outline:2px solid #fff;outline-offset:1px}.palette-color .palette-code{position:absolute;left:0;right:0;bottom:0;padding:2px 1px;background:rgba(0,0,0,.7);color:#fff;font:8px ui-monospace,monospace;text-align:center}.palette-color.current{z-index:3;outline:3px solid #fff;outline-offset:1px;box-shadow:0 0 0 5px var(--accent),inset 0 0 0 2px rgba(0,0,0,.65)}.palette-color.current::after{content:'✓';position:absolute;top:3px;right:3px;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#111;box-shadow:0 1px 4px rgba(47,35,89,.12);font:800 13px/1 sans-serif;pointer-events:none}.palette-color.current .palette-code{background:#1264b8;color:#fff;font-weight:700}.btn.restore-color{color:#915a0a;border-color:#e4cea8;background:rgba(255,180,84,.08)}.archive-manager .modal-box{width:min(680px,94vw)}.archive-manager .modal-body{display:block;min-height:100px}.archive-summary{padding:10px 14px;color:var(--muted);font-size:12px;line-height:1.6;border-bottom:1px solid var(--line)}.archive-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--muted);font-size:12px}.archive-row{display:grid;grid-template-columns:18px 40px minmax(0,1fr);align-items:center;gap:10px;padding:10px 6px;border-bottom:1px solid var(--line);cursor:pointer}.archive-row:has(input:checked){background:rgba(112,71,235,.12)}.archive-row input{accent-color:var(--accent);width:16px;height:16px}.archive-name{display:block;overflow-wrap:anywhere;font-size:13px;font-weight:600}.archive-meta{display:block;color:var(--muted);font-size:11px;margin-top:4px;line-height:1.5}.archive-manager .modal-foot{flex-wrap:wrap}@media(min-width:821px){.panel-scroll{padding:10px}.group{margin-bottom:9px;padding:9px;border-radius:8px}.group>h3{min-height:22px;margin-bottom:7px;line-height:1.2}.group.collapsed{padding-top:7px;padding-bottom:7px}.group-collapse{width:20px;height:20px}.row{gap:7px;margin-bottom:6px}.row select,.row input[type=number],.row input[type=text]{padding:4px 7px}.row .val{padding:2px 5px}.panel .btn{padding:5px 10px}.btns{gap:5px}.file-name-row{gap:6px;margin-bottom:7px}.row.file-name-row input[type=text]{padding:5px 8px}.file-save-status{padding:4px 6px!important}.project-library-row{gap:5px;margin-bottom:7px}.project-picker-trigger{height:36px}.dimension-row{gap:6px;margin-bottom:7px}.dimension-control{grid-template-columns:auto 24px minmax(0,1fr) 24px;gap:3px}.dimension-control .btn{min-width:24px;width:24px;padding:3px 0}.grid-count-input{height:26px}.aspect-lock{padding:0}.tool-modes{gap:5px;margin-bottom:6px}.tool-modes .btn{padding:5px 5px}.tool-status{min-height:27px;margin:5px 0;padding:5px 7px}.flow-hint{line-height:1.45;margin-top:5px}.paint-color-row{margin-bottom:6px}.paint-color-row input[type=color]{height:27px}.note{line-height:1.5;margin-top:6px}.stats{gap:4px;margin-bottom:6px}.stat{padding:4px 2px}.stat.stat-clean{padding:4px 7px}.swatches{margin-top:6px}.sw-toggle{margin-top:5px}.batch-color-status{margin-top:5px}.export-grid{gap:5px}.export-download{padding:7px 8px}.watermark-box{margin-top:7px;padding:6px}}@media(max-width:820px){html,body{height:auto;min-height:100%;overflow:auto}body{font-size:14px}.app{height:auto;min-height:100vh}header{position:sticky;top:0;z-index:100;flex-wrap:wrap;padding:9px 12px}header .sub{display:none}header .home-link{order:-1}header .spacer{display:none}header .btn{padding:7px 10px}main{flex-direction:column;min-height:0}.stage{min-height:62vh;height:62vh}.panel{width:100%;border-left:0;border-top:1px solid var(--line);overflow:visible}.panel-scroll{overflow:visible;padding:12px}.hint{display:none!important}.float-prev{width:min(250px,52vw)}.group{padding:13px}.row label,.chk{font-size:13px}.row select,.row input[type=number],.row input[type=text]{font-size:14px}}@media(max-width:1080px) and (min-width:821px){.hint{width:340px}}@media(max-width:520px){header h1{font-size:14px}header #btnResetGrid,header #btnFit{display:none}.stage{min-height:56vh;height:56vh}.dropzone{margin:12px}.dropzone h2{font-size:16px}.dropzone p{font-size:13px}.float-prev{width:46vw;top:8px!important;right:8px!important;left:auto!important;bottom:auto!important}.hist-bar{bottom:8px;max-width:calc(100% - 16px);gap:4px}.hist-bar .btn{padding:7px 8px}.hist-n{display:none}.export-grid{grid-template-columns:1fr}.modal{padding:10px}}:root{color-scheme:light;--soft:#f0ecff;--shadow:0 6px 24px rgba(47,35,89,.045)}.app{padding:16px;gap:14px;height:100dvh}header{min-height:64px;padding:12px 18px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);flex-wrap:wrap}header h1{font-size:18px;letter-spacing:-.6px}header h1::before{content:'';display:inline-block;width:10px;height:10px;background:var(--accent);border-radius:3px;margin-right:9px;box-shadow:5px -5px 0 var(--soft)}header .sub{font-size:11px}main{gap:16px}.stage{border:1px solid var(--line);border-radius:24px;background-color:#f1f1f8;box-shadow:inset 0 0 90px rgba(112,71,235,.025)}.panel{width:360px;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.panel-scroll{padding:16px;scrollbar-color:#d9d3e9 transparent;scrollbar-width:thin}.panel-scroll::-webkit-scrollbar-thumb{background:#d9d3e9;border:2px solid #fff}.group{padding:14px;margin-bottom:12px;border-radius:15px;background:#fff;border-color:#ebebf3}.group>h3{color:var(--ink);font-size:12px;letter-spacing:.2px;margin-bottom:12px}.group>h3 .n{width:22px;height:22px;border-radius:7px;background:var(--soft);color:var(--accent)}.group.collapsed{padding:11px 14px}.btn{border-radius:9px;background:#f8f8fc;min-height:30px;font-weight:500}.btn:hover{background:var(--soft);border-color:#d6cafa}.btn.primary{color:#fff;box-shadow:0 3px 9px rgba(112,71,235,.14)}.btn.primary:hover{background:#5f35db}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn.ghost:hover{background:var(--soft)}#btnAuto{color:var(--accent);background:var(--soft);border-color:#e2d9ff}.row select,.row input[type=number],.row input[type=text],.project-picker-trigger,.watermark-input input{background:#f8f8fc;border-radius:8px}.row select{min-height:30px}.row .val,.tool-status,.bg-readout,.stat,.watermark-box{background:#f8f8fc}.group .dimension-stepper{background:#f8f8fc;border-radius:9px}.grid-display .chk:has(input:checked){background:var(--soft);color:var(--accent);border-color:#d9cef6}.grid-group .grid-auto{background:var(--soft);border-color:#e2d9ff}.grid-group .grid-auto:hover{background:#e7dfff}.grid-group .aspect-lock[aria-pressed="true"]{background:#eaf6f0;border-color:#cce8da}.dropzone{inset:50% auto auto 50%;transform:translate(-50%,-50%);margin:0;width:min(480px,calc(100% - 48px));min-height:310px;border:1px dashed #d1c5ef;border-radius:28px;background:rgba(255,255,255,.88);box-shadow:0 16px 60px rgba(69,48,114,.035);gap:20px;cursor:pointer}.dropzone:hover{border-color:var(--accent);background:#fff}.dropzone .big{width:68px;height:68px;display:grid;place-items:center;background:var(--soft);border-radius:22px;opacity:1}.dropzone h2{font-size:21px;letter-spacing:-.5px}.dropzone p{line-height:2;color:var(--muted)}.dropzone p b:first-child{color:var(--accent)}.hint,.float-prev,.hist-bar{border-radius:16px;box-shadow:0 8px 30px rgba(47,35,89,.07)}.hint .hint-body,.hint .hint-card{border-color:var(--line)}.hist-bar{padding:10px 12px}.hbar-sep{background:var(--line)}.export-copy:hover{color:var(--accent)}.modal{backdrop-filter:blur(6px)}.modal-box{border-radius:22px;box-shadow:0 24px 80px rgba(47,35,89,.14)}.help-tip{box-shadow:0 8px 28px rgba(47,35,89,.1);border-radius:12px}.palette-color.current .palette-code{background:var(--accent)}.preview-background:focus-visible{outline-color:var(--accent)}@media(min-width:821px) and (max-width:1200px){header .sub{display:none}.app{padding:12px;gap:12px}.panel{width:340px}main{gap:12px}}@media(max-width:820px){.app{padding:8px;height:auto;min-height:100dvh;gap:10px}header{border-radius:16px;gap:8px;padding:10px;min-height:58px}header .chk{font-size:11px}main{gap:10px}.stage{flex:none;border-radius:20px}.panel{width:100%;border-radius:20px}.panel-scroll{padding:12px}.group{padding:14px}.dropzone{min-height:270px}.float-prev{border-radius:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}:root[data-theme="dark"]{--bg:#15171c;--panel:#1d2027;--panel2:#242832;--line:#313644;--ink:#e8eaed;--muted:#9aa3b2;--accent:#4da3ff;--accent2:#37d67a;--warn:#ffb454;--danger:#ff6b6b}:root[data-theme="dark"] body{background:var(--bg);color:var(--ink)}:root[data-theme="dark"] header{background:var(--panel);border-bottom:1px solid var(--line)}:root[data-theme="dark"] header .sub{color:var(--muted)}:root[data-theme="dark"] .btn{background:var(--panel2);border:1px solid var(--line);color:var(--ink)}:root[data-theme="dark"] .btn:hover{background:#2e3340;border-color:#454d5e}:root[data-theme="dark"] .btn.primary{background:var(--accent);border-color:var(--accent);color:#08121e}:root[data-theme="dark"] .btn.primary:hover{background:#6bb5ff}:root[data-theme="dark"] .btn.ghost{background:transparent}:root[data-theme="dark"] .btn.danger{color:#ff8f8f;border-color:#5a3030}:root[data-theme="dark"] .btn.danger:hover{background:#3a2226;border-color:#8a4040}:root[data-theme="dark"] .stage{background:linear-gradient(45deg,#1a1d23 25%,transparent 25%,transparent 75%,#1a1d23 75%) 0 0/24px 24px,linear-gradient(45deg,#1a1d23 25%,#20242c 25%,#20242c 75%,#1a1d23 75%) 12px 12px/24px 24px}:root[data-theme="dark"] .dropzone{border:2px dashed #3a4150;color:var(--muted)}:root[data-theme="dark"] .dropzone.over{border-color:var(--accent);background:rgba(77,163,255,.08);color:var(--accent)}:root[data-theme="dark"] .dropzone h2{color:var(--ink)}:root[data-theme="dark"] .hint{background:rgba(20,23,28,.8);border:1px solid var(--line);color:var(--muted);box-shadow:0 10px 30px rgba(0,0,0,.24)}:root[data-theme="dark"] .hint .hint-toggle{border:0;background:transparent;color:var(--ink)}:root[data-theme="dark"] .hint .hint-toggle:hover{color:var(--accent)}:root[data-theme="dark"] .hint .hint-toggle-icon{border:1px solid var(--line);color:var(--accent);background:var(--panel2)}:root[data-theme="dark"] .hint .hint-body{border-top:1px solid rgba(255,255,255,.08)}:root[data-theme="dark"] .hint .hint-intro{color:#b8c0cc}:root[data-theme="dark"] .hint .hint-card{border:1px solid rgba(255,255,255,.075);background:rgba(9,11,15,.28)}:root[data-theme="dark"] .hint .hint-card-title{color:var(--accent)}:root[data-theme="dark"] .hint .hint-card-title .num{background:rgba(77,163,255,.15)}:root[data-theme="dark"] .hint .hint-item::before{color:#647086}:root[data-theme="dark"] .hint .hint-feature{color:#d7dde7}:root[data-theme="dark"] .hint .hint-feature::before{color:var(--accent2)}:root[data-theme="dark"] .hint b{color:var(--ink)}:root[data-theme="dark"] .hint kbd{background:var(--panel2);border:1px solid var(--line);color:var(--ink)}:root[data-theme="dark"] .panel{background:var(--panel);border-left:1px solid var(--line)}:root[data-theme="dark"] .panel-scroll::-webkit-scrollbar-thumb{background:#3a4150}:root[data-theme="dark"] .hist-bar{background:rgba(20,23,29,.86);border:1px solid #3a4150;box-shadow:0 6px 22px rgba(0,0,0,.5)}:root[data-theme="dark"] .canvas-tool .paint-chip{border:1px solid rgba(255,255,255,.55);background:#000}:root[data-theme="dark"] .color-editor-controls{border-bottom:1px solid var(--line)}:root[data-theme="dark"] .paint-extras{color:var(--muted)}:root[data-theme="dark"] .paint-extras input[type=color]{background:var(--bg);border:1px solid var(--line)}:root[data-theme="dark"] .float-prev{background:rgba(20,23,29,.9);border:1px solid #3a4150;box-shadow:0 8px 26px rgba(0,0,0,.5)}:root[data-theme="dark"] .float-prev .fp-head{color:var(--muted)}:root[data-theme="dark"] .float-prev .fp-size{color:var(--accent)}:root[data-theme="dark"] .float-prev .fp-scales{border:1px solid var(--line)}:root[data-theme="dark"] .float-prev .fp-scale{border:0;border-left:1px solid var(--line);background:transparent;color:var(--muted)}:root[data-theme="dark"] .float-prev .fp-scale:first-child{border-left:0}:root[data-theme="dark"] .float-prev .fp-scale:hover{color:var(--ink);background:rgba(77,163,255,.09)}:root[data-theme="dark"] .float-prev .fp-scale.active{color:#fff;background:var(--accent)}:root[data-theme="dark"] .float-prev .pv-wrap canvas{background:#0d0f13}:root[data-theme="dark"] .preview-backgrounds>span{color:var(--muted)}:root[data-theme="dark"] .preview-background{border:1px solid rgba(255,255,255,.35);background:var(--swatch);color:var(--check,#fff)}:root[data-theme="dark"] .float-prev .fp-corner{background:var(--panel2);border:1px solid var(--line);color:var(--ink)}:root[data-theme="dark"] .float-prev .fp-corner:hover{border-color:var(--accent);color:var(--accent)}:root[data-theme="dark"] .float-prev .fp-corner.active{border-color:var(--accent);background:rgba(77,163,255,.16)}:root[data-theme="dark"] .hist-bar .btn:disabled:hover{background:var(--panel2);border-color:var(--line)}:root[data-theme="dark"] .hist-n{color:var(--muted)}:root[data-theme="dark"] .hbar-sep{background:#3a4150}:root[data-theme="dark"] .group{background:var(--panel2);border:1px solid var(--line)}:root[data-theme="dark"] .group>h3{color:var(--accent)}:root[data-theme="dark"] .group>h3 .n{background:var(--accent);color:#08121e}:root[data-theme="dark"] .group>h3 .help{border:1px solid var(--line);color:var(--muted)}:root[data-theme="dark"] .group>h3 .help:hover,:root[data-theme="dark"] .group>h3 .help.show{color:var(--accent);border-color:var(--accent);background:rgba(77,163,255,.12)}:root[data-theme="dark"] .help-tip{background:#0d1015;border:1px solid #3a4250;color:var(--ink);box-shadow:0 10px 26px rgba(0,0,0,.6)}:root[data-theme="dark"] .help-tip b{color:var(--accent)}:root[data-theme="dark"] .help-tip kbd{background:#232936;border:1px solid #3a4250}:root[data-theme="dark"] .help-tip hr{border:0;border-top:1px solid #2b323e}:root[data-theme="dark"] .row label{color:var(--muted)}:root[data-theme="dark"] .row input[type=range]{accent-color:var(--accent)}:root[data-theme="dark"] .row .val{color:var(--ink);background:var(--bg)}:root[data-theme="dark"] .row select,:root[data-theme="dark"] .row input[type=number],:root[data-theme="dark"] .row input[type=text]{background:var(--bg);border:1px solid var(--line);color:var(--ink)}:root[data-theme="dark"] .file-save-status{color:var(--muted)!important;background:rgba(12,15,20,.72)!important;border:1px solid var(--line)}:root[data-theme="dark"] .project-picker-trigger{background:var(--bg);border:1px solid var(--line);color:var(--ink)}:root[data-theme="dark"] .project-picker-trigger:hover,:root[data-theme="dark"] .project-picker.open .project-picker-trigger{border-color:#4a5364;background:#191c22}:root[data-theme="dark"] .project-picker-thumb,:root[data-theme="dark"] .project-option-thumb,:root[data-theme="dark"] .import-project-thumb{background-color:#171a20;border:1px solid var(--line);background-image:linear-gradient(45deg,#262b34 25%,transparent 25%),linear-gradient(-45deg,#262b34 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#262b34 75%),linear-gradient(-45deg,transparent 75%,#262b34 75%)}:root[data-theme="dark"] .project-picker-meta{color:var(--muted)}:root[data-theme="dark"] .project-picker-arrow{color:var(--muted)}:root[data-theme="dark"] .project-menu{background:#171a20;border:1px solid #424a59;box-shadow:0 12px 28px rgba(0,0,0,.55)}:root[data-theme="dark"] .project-option{border:0;background:transparent;color:var(--ink)}:root[data-theme="dark"] .project-option:hover,:root[data-theme="dark"] .project-option[aria-selected="true"]{background:rgba(77,163,255,.13)}:root[data-theme="dark"] .project-option-meta{color:var(--muted)}:root[data-theme="dark"] .project-picker-empty{color:var(--muted)}:root[data-theme="dark"] .file-group .file-save-status{border:0;background:transparent!important}:root[data-theme="dark"] .file-actions .file-manage{background:transparent;color:var(--muted)}:root[data-theme="dark"] .file-actions .file-delete{background:transparent;color:#ffb0b0;border-color:#50353c}:root[data-theme="dark"] .import-project-preview{background:var(--bg);border:1px solid var(--line)}:root[data-theme="dark"] .import-project-copy span{color:var(--muted)}:root[data-theme="dark"] .chk{color:var(--muted)}:root[data-theme="dark"] .chk input{accent-color:var(--accent)}:root[data-theme="dark"] .chk:hover{color:var(--ink)}:root[data-theme="dark"] .export-copy{color:var(--accent)}:root[data-theme="dark"] .export-copy:hover{color:#fff;border-color:var(--accent);background:rgba(77,163,255,.16)}:root[data-theme="dark"] .export-copy.copied{color:var(--accent2);border-color:var(--accent2);background:rgba(55,214,122,.12)}:root[data-theme="dark"] .export-item.is-primary .export-copy{border-color:var(--accent);background:rgba(77,163,255,.14)}:root[data-theme="dark"] .export-item.is-primary .export-copy:hover{background:rgba(77,163,255,.28)}:root[data-theme="dark"] .watermark-box{background:var(--bg);border:1px solid var(--line)}:root[data-theme="dark"] .watermark-head label{color:var(--ink)}:root[data-theme="dark"] .watermark-head span{color:#687386}:root[data-theme="dark"] .watermark-switch input{accent-color:var(--accent)}:root[data-theme="dark"] .watermark-last{color:#687386}:root[data-theme="dark"] .watermark-input input{background:#11141a;border:1px solid var(--line);color:var(--ink)}:root[data-theme="dark"] .watermark-input input:focus{border-color:var(--accent)}:root[data-theme="dark"] .watermark-input .btn{color:var(--muted)}:root[data-theme="dark"] .watermark-tag{border:1px solid #3a4250;background:#202530}:root[data-theme="dark"] .watermark-tag-use,:root[data-theme="dark"] .watermark-tag-remove{border:0;background:transparent;color:var(--muted)}:root[data-theme="dark"] .watermark-tag:hover{border-color:#536078}:root[data-theme="dark"] .watermark-tag-use:hover{color:var(--ink)}:root[data-theme="dark"] .watermark-tag-remove:hover{color:#ff8f8f;background:rgba(255,107,107,.1)}:root[data-theme="dark"] .dimension-control>span:first-child{color:var(--muted)}:root[data-theme="dark"] .grid-count-input{border:1px solid var(--line);background:var(--bg);color:var(--ink)}:root[data-theme="dark"] .grid-count-input:focus{border-color:var(--accent)}:root[data-theme="dark"] .aspect-lock{color:var(--muted)}:root[data-theme="dark"] .aspect-lock[aria-pressed="true"]{color:var(--accent2);border-color:var(--accent2);background:rgba(55,214,122,.1)}:root[data-theme="dark"] .grid-group .dimension-control>label{color:var(--muted)}:root[data-theme="dark"] .dimension-stepper{background:var(--bg);border:1px solid var(--line)}:root[data-theme="dark"] .grid-group .dimension-stepper .btn{border:0;background:transparent;color:var(--muted)}:root[data-theme="dark"] .grid-group .dimension-stepper .btn:hover{background:var(--panel2);color:var(--ink)}:root[data-theme="dark"] .grid-group .dimension-stepper .grid-count-input{border:0;background:transparent;box-shadow:none}:root[data-theme="dark"] .dimension-stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}:root[data-theme="dark"] .grid-group .aspect-lock{border-color:transparent;background:transparent;color:var(--muted)}:root[data-theme="dark"] .grid-group .aspect-lock:hover{background:var(--panel2);color:var(--ink)}:root[data-theme="dark"] .grid-group .aspect-lock[aria-pressed="true"]{color:var(--accent2);background:rgba(55,214,122,.13);border-color:rgba(55,214,122,.35)}:root[data-theme="dark"] .grid-display .chk{border:1px solid var(--line)}:root[data-theme="dark"] .grid-display .chk:has(input:checked){background:rgba(77,163,255,.06);border-color:#3f5066;color:var(--ink)}:root[data-theme="dark"] .grid-group .grid-auto{background:transparent;color:var(--accent)}:root[data-theme="dark"] .color-stats-group>h3 .collapsed-stats{color:var(--muted)}:root[data-theme="dark"] .group-collapse{border:0;background:transparent;color:var(--muted)}:root[data-theme="dark"] .group-collapse:hover{background:rgba(77,163,255,.12);color:var(--accent)}:root[data-theme="dark"] .tool-status{background:var(--bg);border:1px solid var(--line);color:var(--muted)}:root[data-theme="dark"] .tool-status strong{color:var(--ink)}:root[data-theme="dark"] .flow-hint{color:var(--muted)}:root[data-theme="dark"] .flow-hint b{color:var(--ink)}:root[data-theme="dark"] .bg-readout{border:1px solid var(--line);background:var(--bg)}:root[data-theme="dark"] .bg-instruction{color:var(--ink)}:root[data-theme="dark"] .bg-summary strong{color:var(--muted)}:root[data-theme="dark"] .bg-group.has-candidates .bg-summary strong{color:#ff9dc4}:root[data-theme="dark"] .bg-group .bg-clear{border:0;background:transparent;color:var(--muted)}:root[data-theme="dark"] .paint-color-row label{color:var(--muted)}:root[data-theme="dark"] .paint-color-row input[type=color]{border:1px solid var(--line);background:var(--bg)}:root[data-theme="dark"] .btn.subtle-danger{color:#ff9b9b;background:transparent;border-color:#56343a}:root[data-theme="dark"] .btn.subtle-danger:hover{background:#382328;border-color:#87505a}:root[data-theme="dark"] .visually-hidden{border:0!important}:root[data-theme="dark"] .note{color:var(--muted)}:root[data-theme="dark"] #preview{border:0;background-color:#14171d;background-image:linear-gradient(45deg,#252a33 25%,transparent 25%),linear-gradient(-45deg,#252a33 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#252a33 75%),linear-gradient(-45deg,transparent 75%,#252a33 75%)}:root[data-theme="dark"] .stat{background:var(--bg)}:root[data-theme="dark"] .stat .k{color:var(--muted)}:root[data-theme="dark"] .map-preview:has(input:checked){color:var(--accent);background:rgba(77,163,255,.09)}:root[data-theme="dark"] .sw-toggle{color:var(--muted);background:transparent;border:1px dashed var(--line)}:root[data-theme="dark"] .sw-toggle:hover{color:var(--accent);border-color:var(--accent);background:rgba(77,163,255,.08)}:root[data-theme="dark"] .batch-color-status{color:#ffb454}:root[data-theme="dark"] .sw{border:1px solid rgba(255,255,255,.14)}:root[data-theme="dark"] .sw:hover{border-color:var(--ink)}:root[data-theme="dark"] .sw.selected{border-color:#fff;box-shadow:0 0 0 3px rgba(77,163,255,.2),0 0 12px rgba(77,163,255,.7)}:root[data-theme="dark"] .sw.replaced{border-color:#ffb454;box-shadow:inset 0 0 0 1px #ffb454}:root[data-theme="dark"] .sw .edited-mark{background:#ffb454;color:#261600;box-shadow:0 1px 4px rgba(0,0,0,.7)}:root[data-theme="dark"] .sw .cnt{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.95)}:root[data-theme="dark"] .sw .code{background:rgba(0,0,0,.68);color:#fff}:root[data-theme="dark"] .toast{background:var(--accent2);color:#06210f}:root[data-theme="dark"] .modal{background:rgba(6,10,16,.84)}:root[data-theme="dark"] .modal-box{background:var(--panel);border:1px solid var(--line)}:root[data-theme="dark"] .modal-head{border-bottom:1px solid var(--line)}:root[data-theme="dark"] .modal-body{background:#0d0f13}:root[data-theme="dark"] .modal-body img{border:1px solid var(--line)}:root[data-theme="dark"] .modal-body textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line)}:root[data-theme="dark"] .modal-foot{border-top:1px solid var(--line)}:root[data-theme="dark"] .color-editor-current{color:var(--muted)}:root[data-theme="dark"] .color-editor-current .sample{border:1px solid rgba(255,255,255,.3)}:root[data-theme="dark"] .palette-color{border:1px solid rgba(255,255,255,.18)}:root[data-theme="dark"] .palette-color .palette-code{background:rgba(0,0,0,.7);color:#fff}:root[data-theme="dark"] .palette-color.current{box-shadow:0 0 0 5px var(--accent),inset 0 0 0 2px rgba(0,0,0,.65)}:root[data-theme="dark"] .palette-color.current::after{background:#fff;color:#111;box-shadow:0 1px 4px rgba(0,0,0,.6)}:root[data-theme="dark"] .palette-color.current .palette-code{background:#1264b8;color:#fff}:root[data-theme="dark"] .btn.restore-color{color:#ffbd72;border-color:#875a31;background:rgba(255,180,84,.08)}:root[data-theme="dark"] .archive-summary{color:var(--muted);border-bottom:1px solid var(--line)}:root[data-theme="dark"] .archive-toolbar{color:var(--muted)}:root[data-theme="dark"] .archive-row{border-bottom:1px solid var(--line)}:root[data-theme="dark"] .archive-row:has(input:checked){background:rgba(77,163,255,.12)}:root[data-theme="dark"] .archive-row input{accent-color:var(--accent)}:root[data-theme="dark"] .archive-meta{color:var(--muted)}:root[data-theme="dark"] .panel{border-left:0;border-top:1px solid var(--line)}:root[data-theme="dark"]{color-scheme:dark}:root[data-theme="dark"] .group{background:var(--panel)}:root[data-theme="dark"] .group>h3 .n{color:#fff}:root[data-theme="dark"] #btnAuto{background:rgba(77,163,255,.12);border-color:#3f5066}:root[data-theme="dark"] .theme-toggle{background:var(--panel2)}:root[data-theme="dark"] .dropzone{background:rgba(29,32,39,.94)}:root[data-theme="dark"] header h1::before{background:var(--accent)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff);color:var(--ink);font-family:inherit;font-size:12px;font-weight:500;line-height:1.4;cursor:pointer;white-space:nowrap}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.theme-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.theme-toggle .theme-sun{display:none}:root[data-theme="dark"] .theme-toggle .theme-sun{display:block}:root[data-theme="dark"] .theme-toggle .theme-moon{display:none}nav .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.locale-picker{display:inline-flex;align-items:center;gap:5px;max-width:200px;min-width:0;font:13px/1.4 system-ui,sans-serif}.locale-picker select{font:inherit;max-width:165px;min-height:36px;min-width:0;border:1px solid var(--line,#d8d8df);border-radius:9px;padding:6px 22px 6px 8px;color:var(--ink,#252433);background:var(--panel,#fff)}.locale-picker select:focus-visible{outline:2px solid var(--accent,#7047eb);outline-offset:3px}header .locale-picker{max-width:180px}header .locale-picker select{max-width:140px}@media(max-width:480px){.locale-picker{font-size:12px;max-width:150px}.locale-picker select{max-width:120px}.links{gap:8px!important}.guide-nav{gap:10px!important}nav .links{flex-wrap:wrap;justify-content:flex-end}nav .brand{flex-shrink:0}.article h1{overflow-wrap:anywhere}header .locale-picker select{max-width:110px}}@font-face{font-family:Silkscreen;src:url('../fonts/Silkscreen-Regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:FusionPixel;src:url('../fonts/fusion-pixel-12px-proportional-zh_hans.otf.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}:root{--pixel:Silkscreen,FusionPixel,system-ui,sans-serif}html:lang(zh),html:lang(ja),html:lang(ko){--pixel:FusionPixel,Silkscreen,system-ui,sans-serif}h1,h2,h3,.brand,.button,.links a,.labels,.step b,.eyebrow,header h1,.btn,.theme-toggle{font-family:var(--pixel);font-weight:400;font-synthesis:none}.hero h1{font-size:48px;line-height:1.25;letter-spacing:-.035em;overflow-wrap:anywhere}html:lang(zh) .hero h1,html:lang(ja) .hero h1,html:lang(ko) .hero h1{font-size:60px;line-height:1.2;letter-spacing:0;font-weight:400}.article h1{letter-spacing:0!important}.button,.links a,.btn{letter-spacing:0}@media(min-width:1440px){html:lang(en) .hero h1{font-size:64px}}@media(min-width:761px) and (max-width:1100px){.hero h1{font-size:36px}html:lang(zh) .hero h1,html:lang(ja) .hero h1,html:lang(ko) .hero h1{font-size:48px}}@media(max-width:760px){.hero h1{font-size:36px}html:lang(zh) .hero h1,html:lang(ja) .hero h1,html:lang(ko) .hero h1{font-size:48px}.button{font-size:12px;gap:10px}}