:root{color-scheme:dark;--bg:#0f0f12;--chrome:#141418;--floor:#0b0b0f;--floor-hover:#1b1b22;--rule:#26262c;--rule-2:#22222a;--panel:#16161c;--panel-2:#191920;--panel-rule:#2e2e38;--field:#1e1e25;--field-rule:#33333c;--tip:#24242c;--fg-hi:#f4f4f8;--fg:#e7e7ea;--fg-1:#d7d7de;--fg-2:#c6c6d0;--fg-3:#b8b8c0;--fg-4:#8a8a93;--fg-5:#6f6f79;--fg-6:#55555f;--scroll:#2c2c34;--scroll-hi:#3a3a45;--accent:#2b6cff;--accent-hi:#4680ff;--focus:#6f9bff;--ok:#6ee7a0;--warn:#ffcf6a;--bad:#ff8a8a;--danger:#b3372f;--danger-hi:#c94339;--shadow:#0008;--shadow-hard:#000a;--veil:#06060999;--swatch-rule:#ffffff22}:root[data-theme=light]{color-scheme:light;--bg:#ececed;--chrome:#fbfbfc;--floor:#f2f2f4;--floor-hover:#e6e6ea;--rule:#dcdce1;--rule-2:#ebebef;--panel:#fff;--panel-2:#fbfbfc;--panel-rule:#d9d9df;--field:#f5f5f7;--field-rule:#cfcfd7;--tip:#2a2a33;--fg-hi:#000;--fg:#17171b;--fg-1:#303038;--fg-2:#3d3d47;--fg-3:#4f4f5a;--fg-4:#71717c;--fg-5:#8a8a95;--fg-6:#a6a6b0;--scroll:#cfcfd7;--scroll-hi:#b6b6c0;--ok:#1a8f52;--warn:#9a6a00;--bad:#c0332b;--shadow:#0000001f;--shadow-hard:#00000026;--veil:#ffffffbb;--swatch-rule:#00000026}:root[data-theme=light] .railtip{color:#f2f2f5}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body,html{background:var(--bg)}body{font:14px/1.5 ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--fg)}html:has(.shell),html:has(.shell) body{overflow:hidden}.shell{flex-direction:column;height:100vh;height:100dvh}.app,.shell{display:flex}.app{flex:1 1;min-height:0;position:relative}.topbar{height:44px;flex:none;display:flex;align-items:center;gap:4px;padding:0 10px;background:var(--chrome);border-bottom:1px solid var(--rule)}.brand{font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-4);padding:0 8px 0 4px}.tsep{width:1px;height:20px;flex:none;background:var(--rule);margin:0 6px}.tgap{margin-left:auto}.brand .ver{font-size:10px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--fg-6);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}*{scrollbar-width:thin;scrollbar-color:var(--scroll) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:6px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scroll-hi);background-clip:padding-box}.rail{width:48px;flex:none;flex-direction:column;gap:4px;padding:8px 0;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--rule);background:var(--chrome);position:relative;z-index:10}.rail,.rbtn{display:flex;align-items:center}.rbtn{width:34px;height:34px;flex:none;border-radius:8px;border:0;background:transparent;color:var(--fg-2);justify-content:center;cursor:pointer;padding:0}.rbtn:hover:not(:disabled){background:var(--rule-2);color:var(--fg-hi)}.rbtn:disabled{opacity:.3;cursor:default}.themebtn .ico{display:none;align-items:center}:root[data-theme=dark] .themebtn .sun,:root[data-theme=light] .themebtn .moon{display:flex}.rbtn.on{background:var(--accent);color:#fff}.rbtn.on:hover:not(:disabled){background:var(--accent-hi);color:#fff}.rail .sw:focus-visible,.rbtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.rsep{width:20px;height:1px;flex:none;background:var(--rule);margin:4px 0}.rgap{margin-top:auto}.railtip{position:fixed;z-index:20;pointer-events:none;background:var(--tip);border:1px solid var(--field-rule);color:var(--fg);font-size:12px;padding:5px 9px;border-radius:7px;max-width:210px;box-shadow:0 6px 20px var(--shadow)}.railtip.right{transform:translateY(-50%)}.railtip.below{transform:translateX(-50%)}.tipmain{display:block;white-space:nowrap}.tipsub{display:block;margin-top:2px;font-size:11px;font-style:italic;color:var(--fg-4);line-height:1.3}.rfly{--h:calc(var(--rows) * 44px + 10px);top:clamp(calc(var(--h) / 2 + 8px),var(--y),calc(100vh - var(--h) / 2 - 8px));position:fixed;left:56px;transform:translateY(-50%);z-index:22;width:232px;background:var(--panel);border:1px solid var(--panel-rule);border-radius:10px;padding:5px;box-shadow:0 12px 34px var(--shadow-hard)}.flyveil{position:fixed;inset:0;z-index:21}.flyrow{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border:0;border-radius:7px;background:transparent;color:var(--fg-2);cursor:pointer;text-align:left}.flyrow:hover{background:var(--rule-2);color:var(--fg)}.flyrow.on{background:var(--accent);color:#fff}.flytxt{display:flex;flex-direction:column;line-height:1.25}.flytxt b{font-size:12px;font-weight:600}.flytxt i{font-size:11px;font-style:normal;opacity:.65}.modal{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:var(--veil)}.modal-card{width:320px;padding:18px;background:var(--panel);border:1px solid var(--panel-rule);border-radius:12px;box-shadow:0 18px 48px var(--shadow-hard)}.modal-title{font-size:15px;font-weight:600;color:var(--fg)}.modal-body{margin-top:6px;font-size:13px;color:var(--fg-4);line-height:1.4}.modal-check{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12px;color:var(--fg-4);cursor:pointer}.modal-check input{accent-color:var(--accent);width:14px;height:14px;cursor:pointer}.modal-acts{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.mbtn{padding:7px 14px;border-radius:7px;border:1px solid var(--field-rule);background:transparent;color:var(--fg-2);font:inherit;font-size:13px;cursor:pointer}.mbtn:hover{background:var(--rule-2);color:var(--fg-hi)}.mbtn.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.mbtn.danger:hover{background:var(--danger-hi)}.mbtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.viewer canvas,.viewer img{-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gesture{position:absolute;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}.gesture circle,.gesture polyline,.gesture rect{fill:none;stroke:#2b6cff;stroke-width:1.5;vector-effect:non-scaling-stroke}.gesture rect{stroke-dasharray:5 4}.gesture polyline{stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.gesture polyline.paint{stroke:#00c8ff;stroke-opacity:.51;opacity:1;stroke-linecap:round;stroke-linejoin:round;vector-effect:none}.brushring{position:absolute;left:0;top:0;z-index:8;pointer-events:none;border-radius:50%;border:1.25px solid #fff;box-shadow:0 0 0 1.5px #0008,inset 0 0 0 1.5px #0008;opacity:0}.brushring.on{opacity:1}.chokepop{position:fixed;left:56px;top:56px;z-index:8;background:var(--panel-2);border:1px solid var(--panel-rule);border-radius:9px;padding:7px 9px}.chat{position:absolute;left:48px;top:0;bottom:0;z-index:9;width:25%;min-width:280px;display:flex;flex-direction:column;border-right:1px solid var(--rule);background:var(--chrome);box-shadow:8px 0 24px var(--shadow);transition:transform .1s ease-out,opacity .1s ease-out,visibility 0s}.chat.closed{transform:translateX(-100%);opacity:0;visibility:hidden;transition:transform .1s ease-in,opacity .1s ease-in,visibility 0s linear .1s}@media (prefers-reduced-motion:reduce){.chat,.chat.closed{transition:none}}.log{flex:1 1;overflow-y:auto;padding:16px 14px 18px;display:flex;flex-direction:column;gap:6px}.msg{max-width:none;word-break:break-word;white-space:pre-line}.msg.user{color:var(--fg-2);border-left:2px solid var(--accent);padding-left:10px;margin-top:16px}.msg.user:first-child{margin-top:0}.msg.user:before{content:"› ";color:var(--accent);font-weight:700}.msg.bot{color:var(--fg-3);padding-left:12px}.msg .meta{font-size:11px;color:var(--fg-5);margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.warmchip{display:flex;align-items:center;gap:8px;margin:0 12px;padding:7px 11px;font-size:12px;color:#c8b56a;background:#2a2820;border:1px solid #4a4326;border-radius:8px}.warmdot{width:8px;height:8px;border-radius:50%;background:#c8b56a;flex:none}.upload{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:9px 14px 9px 12px;cursor:pointer;font-weight:600;display:inline-flex;gap:8px}.upload,.viewer{align-items:center}.viewer{flex:1 1;display:flex;justify-content:center;position:relative;overflow:hidden;background:#dedee4 repeating-conic-gradient(#f2f2f5 0 25%,#d0d0d7 0 50%) 0/26px 26px}html[data-bg=dark] .viewer{background:#0f0f12 repeating-conic-gradient(#17171c 0 25%,#131317 0 50%) 0/26px 26px}html[data-bg=solid] .viewer{background:var(--canvas)}.viewer.underbase{background:#000!important}.viewer.grab{cursor:-webkit-grab;cursor:grab}.viewer.grab:active{cursor:-webkit-grabbing;cursor:grabbing}.viewer.aiming,.viewer.aiming.grab,.viewer.aiming.grab:active{cursor:crosshair}.viewer.painting,.viewer.painting.grab,.viewer.painting.grab:active{cursor:none}.pan{position:absolute;top:0;left:0;will-change:transform}.pan canvas.white,.pan img{display:block;width:100%;height:100%}.pan img.overlay{position:absolute;inset:0}.pan.crisp canvas.white,.pan.crisp img{image-rendering:pixelated}.pan.crisp img.overlay{image-rendering:auto}.hint{color:#82828d;font-size:15px}.upload-wrap{flex-direction:column;gap:14px}.dropzone,.upload-wrap{display:flex;align-items:center}.dropzone{position:absolute;inset:10px;z-index:5;justify-content:center;border:2px dashed #2b6cff;border-radius:14px;background:#2b6cff1a;pointer-events:none}.dropzone span{color:#cfe0ff;font-size:16px;font-weight:600}.viewer.dropping{cursor:copy}.working{position:absolute;inset:0;z-index:7;justify-content:center;background:var(--veil)}.working,.working-card{display:flex;align-items:center}.working-card{flex-direction:column;gap:8px;padding:18px 28px;background:var(--chrome);border:1px solid var(--rule);border-radius:12px}.working-msg{color:var(--fg);font-size:15px;font-weight:600}.working-tick{color:var(--fg-4);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,monospace;min-height:16px}.compare{position:absolute;inset:0;z-index:4;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:hidden;background:#0f0f12}.compare.bg-dark{background:#0f0f12 repeating-conic-gradient(#17171c 0 25%,#131317 0 50%) 0/26px 26px}.compare.bg-light{background:#dedee4 repeating-conic-gradient(#f2f2f5 0 25%,#d0d0d7 0 50%) 0/26px 26px}.clayer{position:absolute;inset:0;overflow:hidden}.clayer img{position:absolute;display:block}.clayer.crisp img{image-rendering:pixelated}.compare .cdiv{position:absolute;top:0;bottom:0;width:16px;transform:translateX(-8px);cursor:ew-resize;touch-action:none}.compare .cdiv:before{content:"";position:absolute;top:0;bottom:0;left:7px;width:2px;background:#fff;box-shadow:0 0 6px #000a}.compare .chandle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:#2b6cff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;padding-bottom:2px}.compare .clbl{position:absolute;top:8px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:6px;background:#000000a0;color:#e7e7ea;pointer-events:none}.compare .clbl.l{left:8px}.compare .clbl.r{right:8px}.sw{width:22px;height:22px;flex:none;border-radius:6px;border:1px solid var(--swatch-rule);cursor:pointer;padding:0;position:relative;overflow:hidden}.sw.active{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}.sw.checker-dark{background:repeating-conic-gradient(#5a5a63 0 25%,#33333c 0 50%) 0/10px 10px}.sw.checker-light{background:repeating-conic-gradient(#f2f2f5 0 25%,#cfcfd6 0 50%) 0/10px 10px}html[data-bg=dark] .sw.checker-dark,html[data-bg=light] .sw.checker-light,html[data-bg=solid] .sw.pick{outline:2px solid #2b6cff;outline-offset:1px;border-color:transparent}html[data-bg=solid] .sw.pick{background:var(--canvas)}.sw.pick{background:conic-gradient(from 0deg,#f44,#ff4,#4f4,#4ff,#44f,#f4f,#f44)}html[data-bg=dark] .railbg{background:repeating-conic-gradient(#5a5a63 0 25%,#33333c 0 50%) 0/10px 10px}html[data-bg=light] .railbg{background:repeating-conic-gradient(#f2f2f5 0 25%,#cfcfd6 0 50%) 0/10px 10px}html[data-bg=solid] .railbg{background:var(--canvas)}.railbg input[type=color]{display:none}html[data-bg=solid] .railbg input[type=color]{display:block}.sw input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;border:0;padding:0;cursor:pointer}.flyrow .sw{flex:none;cursor:inherit}.choke{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--fg-3);white-space:nowrap}.choke input{width:46px;background:var(--field);border:1px solid var(--panel-rule);border-radius:6px;padding:2px 5px;color:var(--fg);outline:none;font-size:11px}.choke input:focus{border-color:var(--accent)}.statusbar{height:24px;flex:none;display:flex;align-items:center;justify-content:flex-end;gap:0;padding:0 6px;font-size:11px;color:var(--fg-4);background:var(--floor);border-top:1px solid var(--rule-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.statusbar .seg{padding:0 9px;white-space:nowrap}.logwrap{position:relative;margin-right:auto;display:flex}.logwrap .act{display:flex;align-items:center;color:var(--fg-4)}.logwrap .act.open,.logwrap .act:hover{color:var(--fg-hi)}.logwrap .act svg{width:16px;height:16px}.logwrap.unread:after{content:"";position:absolute;top:2px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--floor)}.statusbar .seg+.seg,.statusbar .sizewrap+.dpi{box-shadow:inset 1px 0 0 var(--rule-2)}.statusbar .name{color:var(--fg-3);max-width:34ch;overflow:hidden;text-overflow:ellipsis}.statusbar .dim{color:var(--fg-6)}.sizewrap{position:relative;box-shadow:inset 1px 0 0 var(--rule-2)}.statusbar .act{background:transparent;border:0;color:var(--fg-1);font:inherit;cursor:pointer;height:24px;padding:0 9px}.statusbar .act.open,.statusbar .act:hover{background:var(--floor-hover);color:var(--fg-hi)}.statusbar .act:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.statusbar .dpi{font-weight:600;padding:0 9px}.statusbar .dpi.ok{color:var(--ok)}.statusbar .dpi.warn{color:var(--warn)}.statusbar .dpi.bad{color:var(--bad)}.statusbar .assumed{color:#b9a06a;margin-left:6px;padding:0 7px;border-radius:5px;cursor:help;border:1px dashed #4a3f22}.sizepop{position:absolute;bottom:28px;right:0;z-index:12;width:232px;background:var(--panel);border:1px solid var(--panel-rule);border-radius:10px;padding:10px 12px 11px;box-shadow:0 10px 30px var(--shadow-hard);cursor:default}.sptitle{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-4);margin-bottom:9px}.sprow{display:flex;align-items:center;gap:8px;height:26px;font-size:12px;color:var(--fg-1)}.sprow .spk{flex:1 1;color:var(--fg-4)}.sprow input{width:62px;background:var(--field);border:1px solid var(--field-rule);border-radius:6px;padding:3px 7px;color:var(--fg);outline:none;font:inherit;text-align:right}.sprow input:focus{border-color:var(--accent)}.sprow.ro .spv{width:62px;text-align:right;padding-right:7px;color:var(--fg-3)}.sprow .spv.ok{color:var(--ok)}.sprow .spv.warn{color:var(--warn)}.sprow .spv.bad{color:var(--bad)}.sprow .spu{width:26px;color:var(--fg-5)}.spnote{margin-top:8px;font-size:11px;line-height:1.45;color:var(--fg-5)}