:root{--bg: #ece7df;--panel: rgba(247, 244, 238, .88);--panel-solid: #f6f2eb;--raised: #faf7f1;--border: rgba(74, 62, 50, .1);--border-strong: rgba(74, 62, 50, .18);--text: #34302c;--muted: #8a8279;--hover: rgba(90, 72, 55, .06);--press: rgba(90, 72, 55, .1);--accent: #6b85b0;--accent-soft: rgba(107, 133, 176, .16);--accent-text: #4c6390;--primary-bg: #c9d6ea;--primary-hover: #bdcce5;--primary-text: #2f3d58;--danger: #b65c55;--success: #6e9b7d;--warn: #c49a45;--toast-bg: rgba(52, 48, 44, .92);--toast-text: #f6f2eb;--knob: #fbf8f2;--shadow: 0 10px 30px rgba(76, 60, 44, .09), 0 2px 6px rgba(76, 60, 44, .05);--shadow-lg: 0 24px 60px rgba(76, 60, 44, .16), 0 4px 12px rgba(76, 60, 44, .07);--radius: 14px;--gutter: max(10px, env(safe-area-inset-left));font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;color:var(--text);-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--bg: #1c1b1e;--panel: rgba(40, 38, 42, .9);--panel-solid: #28262a;--raised: #312f34;--border: rgba(255, 245, 230, .08);--border-strong: rgba(255, 245, 230, .15);--text: #ebe5dc;--muted: #a29a90;--hover: rgba(255, 245, 230, .06);--press: rgba(255, 245, 230, .11);--accent: #9fb3d6;--accent-soft: rgba(159, 179, 214, .18);--accent-text: #bccbe6;--primary-bg: #3d4a62;--primary-hover: #46546e;--primary-text: #e4ebf7;--danger: #e0918a;--success: #93bf9f;--warn: #dcb86a;--toast-bg: rgba(235, 229, 220, .95);--toast-text: #28262a;--knob: #ebe5dc;--shadow: 0 10px 30px rgba(0, 0, 0, .32), 0 2px 6px rgba(0, 0, 0, .22);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .45), 0 4px 12px rgba(0, 0, 0, .26);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;touch-action:manipulation;height:100%;overflow:hidden;background:var(--bg);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.hidden{display:none!important}body:not(.ready) .bar{opacity:0}#canvas{position:fixed;inset:0;touch-action:none;cursor:crosshair}#canvas[data-tool=brush],#canvas[data-tool=eraser]{cursor:none}#canvas[data-tool=select]{cursor:default}#canvas[data-tool=eyedropper]{cursor:copy}#canvas[data-tool=pan],#canvas.panning{cursor:grab!important}button{font:inherit;color:inherit;background:transparent;border:0;border-radius:10px;padding:0;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}button:disabled{opacity:.32;cursor:default}.ic{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:block}.ic.sm{width:16px;height:16px}.icon-btn{width:44px;height:44px;display:inline-grid;place-items:center;flex:none;transition:background .12s,color .12s}.icon-btn.sm{width:38px;height:38px}.icon-btn.sm .ic{width:18px;height:18px}@media(hover:hover){.icon-btn:hover:not(:disabled),.chip:hover,.title-btn:hover,.zoom-btn:hover,.menu-item:hover:not(:disabled),.ctx-name:hover,.link-btn:hover{background:var(--hover)}}.icon-btn:active:not(:disabled){background:var(--press)}.icon-btn.active,.icon-btn.on,.icon-btn.open,.title-btn.open,.zoom-btn.open{background:var(--accent-soft);color:var(--accent-text)}.icon-btn.danger,.menu-item.danger{color:var(--danger)}.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--border-strong);white-space:nowrap}.chip .ic{width:17px;height:17px}.chip.primary{background:var(--primary-bg);border-color:transparent;color:var(--primary-text);font-weight:600}.chip.primary:hover{background:var(--primary-hover)}.link-btn{color:var(--accent-text);padding:6px 8px;margin:4px -8px 0;text-align:left}.sep{width:1px;align-self:stretch;background:var(--border);margin:6px 4px;flex:none}.hsep{height:1px;align-self:stretch;background:var(--border);margin:4px 6px;flex:none}.muted{color:var(--muted)}.small,small{font-size:11.5px}kbd{font:500 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace;padding:3px 6px;border-radius:6px;background:var(--hover);border:1px solid var(--border);color:var(--muted);white-space:nowrap}.bar{position:fixed;z-index:10;display:flex;align-items:center;gap:2px;padding:4px;background:var(--panel);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:opacity .2s,transform .2s}body.chrome-hidden .bar,body.chrome-hidden .hints{opacity:0;pointer-events:none}.bar-tl{top:max(10px,env(safe-area-inset-top));left:var(--gutter)}.bar-tr{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right))}.title-btn{display:inline-flex;align-items:center;gap:4px;height:44px;padding:0 8px 0 10px;font-weight:600;max-width:34vw}.title-btn .doc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-btn .ic{color:var(--muted)}.zoom-btn{height:44px;min-width:58px;padding:0 10px;font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.rail{left:var(--gutter);top:50%;transform:translateY(-50%);flex-direction:column;padding:6px 5px;max-height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:none}.rail-group{display:flex;flex-direction:column;gap:2px}.preset{position:relative;width:50px;height:48px;border-radius:11px;display:grid;place-items:center}.preset canvas{width:40px;height:32px;pointer-events:none;border-radius:8px;background:var(--paper, #f8f5ee);box-shadow:inset 0 0 0 1px var(--border)}.preset-size{position:absolute;right:1px;bottom:-1px;font-size:9.5px;font-variant-numeric:tabular-nums;color:var(--muted);pointer-events:none}@media(hover:hover){.preset:hover{background:var(--hover)}}.preset.active{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent)}.preset.open{box-shadow:inset 0 0 0 1.5px var(--accent)}.rail .icon-btn{width:50px;height:46px}.color-btn{width:46px;height:46px;display:grid;place-items:center}.color-btn span{width:30px;height:30px;border-radius:50%;box-shadow:0 0 0 2px var(--panel-solid),0 0 0 3.5px var(--border-strong),inset 0 0 0 1px #0000001f}.color-btn.open span{box-shadow:0 0 0 2px var(--panel-solid),0 0 0 3.5px var(--accent)}.ctx-bar{bottom:max(12px,env(safe-area-inset-bottom));left:0;right:0;margin-inline:auto;width:max-content;max-width:calc(100vw - 24px);padding:4px 8px;gap:6px;flex-wrap:wrap;justify-content:center;min-height:48px}.ctx-bar.hint-only{padding:4px 6px 4px 16px}.ctx-name{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px 0 8px;font-weight:600}.ctx-name .ic{width:20px;height:20px}.sel-bar{top:0;left:0;transition:opacity .15s;will-change:transform}.sel-bar.hidden{display:flex!important;opacity:0;pointer-events:none}.sel-bar .icon-btn{width:44px;height:44px}.sel-color span{width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1px #00000026}.slider{display:flex;align-items:center;gap:8px;color:var(--muted);padding:0 4px;min-height:36px}.slider-label{min-width:52px}.ctx-bar .slider-label{min-width:0}.slider input[type=range]{width:130px;accent-color:var(--accent);margin:0}.slider output{min-width:38px;color:var(--text);font-variant-numeric:tabular-nums;text-align:right}input[type=range]{-webkit-appearance:none;appearance:none;height:24px;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:var(--border-strong)}input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:var(--border-strong)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--raised);border:1px solid var(--border-strong);box-shadow:0 1px 4px #0003}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--raised);border:1px solid var(--border-strong);box-shadow:0 1px 4px #0003}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:11px;background:var(--hover)}.segmented button{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 11px;border-radius:8px;color:var(--muted);white-space:nowrap}.segmented button .ic{width:17px;height:17px}.segmented.wrap{flex-wrap:wrap}.segmented.wrap button{padding:0 9px}.guide-chip{top:calc(max(10px,env(safe-area-inset-top)) + 58px);left:0;right:0;margin-inline:auto;width:max-content;max-width:calc(100vw - 24px);gap:8px;padding:4px 4px 4px 12px}.guide-chip .ic{width:18px;height:18px;color:var(--accent-text)}.guide-chip small{margin-right:4px}.segmented button.active{background:var(--raised);color:var(--text);box-shadow:0 1px 3px #0000001f}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 0;cursor:pointer}.toggle-text{display:flex;flex-direction:column;gap:2px}.toggle-text small{color:var(--muted)}.switch{-webkit-appearance:none;appearance:none;flex:none;width:40px;height:24px;border-radius:999px;background:var(--border-strong);position:relative;cursor:pointer;transition:background .15s;margin:0}.switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--knob);box-shadow:0 1px 3px #3c2d1e40;transition:transform .15s}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(16px)}.popover{position:fixed;z-index:30;background:var(--panel-solid);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-lg);animation:pop-in .14s ease-out;max-height:calc(100vh - 20px);overflow-y:auto}@keyframes pop-in{0%{opacity:0;transform:scale(.97)}}.panel-body{padding:14px 16px;width:300px;display:flex;flex-direction:column;gap:6px}.panel-title{font-weight:600;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin-top:6px}.panel-title:first-child{margin-top:0}.panel-body .slider{padding:0}.panel-body .slider input{flex:1;width:auto}.menu{padding:6px;min-width:230px;display:flex;flex-direction:column}.menu-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;text-align:left}.menu-item .ic{width:18px;height:18px;color:var(--muted)}.menu-item.danger .ic{color:inherit}.menu-item span{flex:1}.menu-sep{height:1px;background:var(--border);margin:5px 4px}.menu-heading{padding:6px 10px 2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.brush-panel{width:320px}.brush-types{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.brush-type{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-radius:11px;border:1px solid var(--border);color:var(--muted)}.brush-type canvas{width:84px;height:30px;border-radius:7px;background:var(--paper, #f8f5ee)}.brush-type.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.brush-big-preview{width:100%;height:76px;border-radius:12px;background:var(--paper, #f8f5ee);box-shadow:inset 0 0 0 1px var(--border);margin:4px 0}.picker{width:288px;padding:14px;display:flex;flex-direction:column;gap:10px}.sv{position:relative;height:160px;border-radius:12px;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--hue, red));cursor:crosshair;touch-action:none}.sv-thumb,.hue-thumb{position:absolute;width:20px;height:20px;border-radius:50%;border:3px solid var(--knob);box-shadow:0 0 0 1px #00000040,0 2px 6px #0000004d;transform:translate(-50%,-50%);pointer-events:none;background:var(--c)}.hue{position:relative;height:16px;border-radius:999px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red);cursor:pointer;touch-action:none}.hue-thumb{top:50%;background:transparent}.picker-row{display:flex;align-items:center;gap:8px}.picker-current{width:34px;height:34px;border-radius:10px;background:var(--c);box-shadow:inset 0 0 0 1px #0000001f;flex:none}.picker-hex{flex:1;min-width:0;height:34px;border-radius:10px;border:1px solid var(--border-strong);background:transparent;color:var(--text);font:500 13px ui-monospace,SFMono-Regular,Menlo,monospace;padding:0 10px;-webkit-user-select:text;user-select:text}.picker-hex:focus{outline:2px solid var(--accent);outline-offset:-1px}.picker-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:-4px}.swatch-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.swatch{aspect-ratio:1;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px #0000001f;transition:transform .1s}.swatch:hover{transform:scale(1.1)}.swatch.active{box-shadow:0 0 0 2px var(--panel-solid),0 0 0 3.5px var(--accent)}.paper-row{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.paper-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted)}.paper-swatch span{width:100%;aspect-ratio:1;border-radius:10px;background:var(--c);box-shadow:inset 0 0 0 1px var(--border-strong)}.paper-swatch small{font-size:10px}.paper-swatch.active span{box-shadow:0 0 0 2px var(--panel-solid),0 0 0 3.5px var(--accent)}.history-range{width:100%;accent-color:var(--accent)}.history-row{display:flex;align-items:center;justify-content:space-between}.history-label{font-variant-numeric:tabular-nums}.layers-panel{right:max(10px,env(safe-area-inset-right));top:64px;width:290px;max-height:calc(100vh - 140px);flex-direction:column;align-items:stretch;padding:8px;gap:4px}.layers-head{display:flex;align-items:center;gap:2px;padding-left:8px}.layers-head strong{flex:1}.layer-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:2px}.layer-row{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 2px;border-radius:11px;cursor:pointer;border:1.5px solid transparent;position:relative}@media(hover:hover){.layer-row:hover{background:var(--hover)}}.layer-row.active{background:var(--accent-soft);border-color:var(--accent)}.layer-row.dragging{opacity:.5}.layer-row.drop-before:before,.layer-row.drop-after:after{content:"";position:absolute;left:6px;right:6px;height:3px;border-radius:3px;background:var(--accent)}.layer-row.drop-before:before{top:-3px}.layer-row.drop-after:after{bottom:-3px}.grip{color:var(--muted);font-size:12px;letter-spacing:-2px;padding:10px 4px 10px 6px;cursor:grab;touch-action:none}.layer-thumb{width:56px;height:40px;border-radius:7px;box-shadow:inset 0 0 0 1px var(--border-strong);flex:none}.layer-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.layer-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-text small{color:var(--muted)}.layer-row.is-hidden .layer-name,.layer-row.is-hidden .layer-thumb{opacity:.45}.rename-input{font:inherit;font-weight:500;width:100%;padding:3px 6px;border-radius:6px;border:1px solid var(--accent);background:var(--raised);color:var(--text);-webkit-user-select:text;user-select:text}.layers-foot{border-top:1px solid var(--border);padding:6px 4px 0;display:flex;flex-direction:column;gap:2px}.layers-foot .slider input{flex:1;width:auto}.layer-actions{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.layer-actions .chip{height:30px;padding:0 10px;font-size:12px}.layer-actions .danger{margin-left:auto}.hints{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;pointer-events:none;text-align:center;display:flex;flex-direction:column;gap:10px;color:var(--muted);opacity:0;transition:opacity .4s;width:min(560px,calc(100vw - 140px))}.hints.show{opacity:.9}.hint-title{font-size:22px;font-weight:600;color:var(--text);opacity:.55;margin-bottom:4px}.hint-row kbd{margin:0 2px}.modal{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#0a0a1459;animation:fade-in .15s ease-out;padding:16px}.modal-card{background:var(--panel-solid);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-lg);width:min(760px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:10px 20px 20px}.modal-head{display:flex;align-items:center;justify-content:space-between;font-size:16px;margin:0 -8px 8px 0}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px}.help-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border)}.help-row span{text-align:right}#toast{position:fixed;bottom:84px;left:50%;transform:translate(-50%) translateY(8px);background:var(--toast-bg);color:var(--toast-text);padding:9px 16px;border-radius:999px;opacity:0;transition:opacity .18s,transform .18s;pointer-events:none;z-index:50;box-shadow:var(--shadow);white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}.show-ui{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));z-index:11;display:none;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--muted);opacity:.6}.show-ui .ic{width:16px;height:16px}body.chrome-hidden .show-ui{display:inline-flex}@media(max-width:760px){.bar-tr .sep,.bar-tr [data-act=history]{display:none}.title-btn{max-width:28vw}.ctx-bar .slider input{width:90px}.layers-panel{top:auto;bottom:76px;max-height:50vh}.help-grid{grid-template-columns:1fr}.hints{width:calc(100vw - 100px);font-size:12px}}@media(max-width:560px){.title-btn .doc-name,.bar-tr [data-act=precision],.bar-tr .zoom-btn,.ctx-bar .slider-label,.ctx-name span{display:none}}@media(max-height:640px){.preset{height:40px}.rail .icon-btn{height:38px}}button:focus{outline:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.preset-add{width:50px;height:30px;display:grid;place-items:center;color:var(--muted);border-radius:10px}@media(hover:hover){.preset-add:hover{background:var(--hover)}}.panel-foot{display:flex;gap:8px;margin-top:6px}.chip.danger{color:var(--danger)}.chip.primary.danger-fill{background:var(--danger);color:#fbf8f2}.dot{display:inline-block;width:var(--d, 8px);height:var(--d, 8px);border-radius:50%;background:currentColor;flex:none}.vchips{display:inline-flex;gap:2px}.vchip{min-width:36px;height:36px;padding:0 4px;border-radius:9px;display:inline-grid;place-items:center;color:var(--text);font-variant-numeric:tabular-nums;font-size:12px}@media(hover:hover){.vchip:hover{background:var(--hover)}}.vchip.active{background:var(--accent-soft);color:var(--accent-text);box-shadow:inset 0 0 0 1.5px var(--accent)}.tap-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tap-row .segmented button{padding:0 8px;font-size:12px}.loupe{position:fixed;top:0;left:0;z-index:60;width:72px;height:72px;border-radius:50%;background:var(--c);border:5px solid var(--knob);box-shadow:0 0 0 1px #00000040,0 8px 24px #0000004d;pointer-events:none;opacity:0;transition:opacity .12s}.loupe.show{opacity:1}.dialog{width:min(380px,100%);padding:18px 20px 16px;display:flex;flex-direction:column;gap:12px}.dialog-title{font-size:15px;font-weight:600}.dialog-text{margin:0;color:var(--muted)}.dialog-input{font:inherit;font-size:15px;height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--border-strong);background:var(--raised);color:var(--text);-webkit-user-select:text;user-select:text}.dialog-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}body.left-handed .rail{left:auto;right:max(10px,env(safe-area-inset-right))}body.left-handed .layers-panel{right:auto;left:max(10px,env(safe-area-inset-left))}.rail{padding:6px;gap:2px}.dock-history{gap:0}.preset{width:56px;height:50px}.preset canvas{width:48px;height:36px}.preset.active{transform:scale(1.04)}.preset{transition:transform .12s,background .12s}.strip{left:calc(var(--gutter) + 82px);top:50%;transform:translateY(-50%);flex-direction:column;align-items:center;padding:10px 6px 8px;gap:8px}body.left-handed .strip{left:auto;right:calc(max(10px,env(safe-area-inset-right)) + 82px)}.strip-chips{display:flex;flex-direction:column;gap:2px}.strip-chip{width:40px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--text)}.strip-chip.active{background:var(--accent-soft);color:var(--accent-text)}@media(hover:hover){.strip-chip:hover{background:var(--hover)}}.vslider{position:relative;width:40px;display:flex;flex-direction:column;align-items:center;gap:6px}.vs-track{position:relative;width:30px;height:var(--h);border-radius:15px;background:var(--hover);box-shadow:inset 0 0 0 1px var(--border);touch-action:none;cursor:ns-resize}.vs-fill{position:absolute;left:0;right:0;bottom:0;border-radius:15px;background:var(--accent-soft)}.vs-thumb{position:absolute;left:50%;width:34px;height:12px;border-radius:6px;transform:translate(-50%,50%);background:var(--raised);border:1px solid var(--border-strong);box-shadow:0 2px 6px #0000002e;pointer-events:none}.vs-bubble{position:absolute;left:50px;transform:translateY(50%);padding:4px 9px;border-radius:8px;background:var(--toast-bg);color:var(--toast-text);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s}body.left-handed .vs-bubble{left:auto;right:50px}.vslider.dragging .vs-bubble{opacity:1}.vs-label{font-size:10px;color:var(--muted);letter-spacing:.02em}.sel-bar{gap:0;padding:4px}.sel-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:58px;height:54px;padding:4px 8px;border-radius:10px;font-size:11px;color:var(--text)}.sel-btn .ic{width:21px;height:21px}.sel-btn.danger{color:var(--danger)}@media(hover:hover){.sel-btn:hover{background:var(--hover)}}.sel-btn:active{background:var(--press)}.sel-btn.open{background:var(--accent-soft);color:var(--accent-text)}.tap-row{flex-direction:column;align-items:stretch;gap:4px}.tap-row .segmented{flex-wrap:wrap}.dock-history{flex-direction:row;justify-content:center}.dock-history .icon-btn{width:28px;height:40px}.rail{max-height:calc(100vh - 92px);top:calc(50% + 20px)}@media(pointer:coarse){.rail .tool-btn[data-tool=pan]{display:none}}@media(max-height:900px){.preset{height:44px}.preset canvas{height:32px}.rail .icon-btn{height:40px}.color-btn{height:42px}.strip{top:calc(50% + 20px)}}.input-diag{position:fixed;right:10px;bottom:10px;z-index:70;margin:0;padding:8px 10px;max-width:440px;font:11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;color:#d8ffd8;background:#0a0e0cd1;border-radius:10px;pointer-events:none;white-space:pre}.outline-panel{right:max(10px,env(safe-area-inset-right));top:64px;width:320px;max-height:calc(100vh - 84px);flex-direction:column;align-items:stretch;padding:8px;gap:6px}body.left-handed .outline-panel{right:auto;left:max(10px,env(safe-area-inset-left))}.search-box{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:11px;background:var(--hover);color:var(--muted)}.search-box .ic{width:18px;height:18px}.search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:15px;-webkit-user-select:text;user-select:text}.ocr-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--accent-soft);line-height:1.35}.ocr-card .chip{flex:none}.ocr-progress{display:flex;flex-direction:column;gap:6px;padding:4px 6px;color:var(--muted);font-size:12px}.bar-track{height:4px;border-radius:4px;background:var(--border-strong);overflow:hidden}.bar-track div{height:100%;background:var(--accent);transition:width .2s}.outline-body{overflow-y:auto;display:flex;flex-direction:column;gap:2px;min-height:60px}.outline-empty{padding:14px 10px;color:var(--muted);line-height:1.45}.outline-empty-title{color:var(--text);font-weight:600;margin-bottom:4px}.outline-count{padding:4px 8px;color:var(--muted);font-size:12px}.outline-row{display:flex;align-items:center;border-radius:10px}.outline-row.level-2{padding-left:16px}.outline-row.level-3{padding-left:32px}.outline-main,.outline-result{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 10px;border-radius:10px;text-align:left}@media(hover:hover){.outline-main:hover,.outline-result:hover{background:var(--hover)}}.outline-main:active,.outline-result:active{background:var(--press)}.outline-row.level-1 .outline-text{font-weight:600}.outline-text{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.outline-text mark{background:#e2c06e6b;color:inherit;border-radius:3px;padding:0 1px}.ink-snippet{display:block;max-width:100%}.heading-chip{position:fixed;z-index:25;padding:4px;gap:4px;animation:pop-in .14s ease-out}.presence{display:flex;align-items:center;padding-left:2px}.presence:empty{display:none}.avatar{--c: var(--accent);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--c);color:#fbf8f2;font:600 11px/1 system-ui,-apple-system,sans-serif;border:2px solid var(--panel-solid);flex:none}.presence .avatar+.avatar{margin-left:-8px}.presence .avatar.more{--c: var(--muted)}.presence.offline .avatar{opacity:.45}.icon-btn.active[data-act=share]{color:var(--accent-text);background:var(--accent-soft)}.share-panel{width:min(360px,calc(100vw - 32px));padding:16px;display:flex;flex-direction:column;gap:12px}.share-panel h3,.cloud-login h3{margin:0;font-size:16px;font-weight:650}.share-panel p,.cloud-login p{margin:0;line-height:1.45;font-size:13.5px}.share-intro{display:flex;flex-direction:column;gap:8px}.share-hero{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text)}.share-hero .ic{width:24px;height:24px}.chip.wide{justify-content:center;width:100%;height:42px;font-weight:600}.share-head{display:flex;flex-direction:column;gap:4px}.share-status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.share-status i{width:8px;height:8px;border-radius:50%;background:var(--warn);flex:none}.share-status.ok i{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 22%,transparent)}.share-status.bad i{background:var(--danger)}.share-people{display:flex;flex-direction:column;gap:6px}.share-person{display:flex;align-items:center;gap:8px;font-size:14px}.share-person .avatar{border:none}.share-link{display:grid;grid-template-columns:1fr auto;gap:6px 8px;align-items:center}.share-link-text{grid-column:1 / -1;display:flex;flex-direction:column}.share-link-text span{font-weight:600;font-size:13.5px}.share-link-text small{color:var(--muted)}.share-link input,.share-name input,.cloud-save-row input,.cloud-manual input{min-width:0;height:36px;padding:0 10px;border-radius:10px;border:1px solid var(--border-strong);background:var(--raised);color:var(--text);font:inherit;font-size:13px}.share-link input{color:var(--muted)}.share-name{display:flex;align-items:center;gap:10px;font-size:13.5px}.share-name input{flex:1}.share-actions{display:flex;flex-wrap:wrap;gap:8px}body.read-only .rail,body.read-only .strip,body.read-only .ctx-bar{display:none!important}.dialog-modal{z-index:48}.cloud-dot{display:none;align-items:center;justify-content:center;width:28px;height:36px;color:var(--muted);cursor:pointer}.cloud-dot.on{display:inline-flex}.cloud-dot.saved{color:var(--success)}.cloud-dot.saving,.cloud-dot.pending{color:var(--accent-text)}.cloud-dot.saving .ic{animation:cloud-pulse 1s ease-in-out infinite alternate}.cloud-dot.error{color:var(--danger)}@keyframes cloud-pulse{to{opacity:.35}}.cloud-modal{z-index:45}.cloud-card{width:min(560px,100%);height:min(640px,calc(100vh - 32px));display:flex;flex-direction:column;padding:0;overflow:hidden}.cloud-head{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 18px;border-bottom:1px solid var(--border)}.cloud-title{display:inline-flex;align-items:center;gap:8px;font-weight:650;font-size:16px;margin-right:auto}.cloud-account{display:inline-flex;align-items:center;gap:8px;font-size:13px}.chip.sm{height:30px;padding:0 10px;font-size:12.5px}.cloud-body{flex:1;overflow-y:auto;padding:8px;-webkit-overflow-scrolling:touch}.cloud-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);font-size:13px}.cloud-save{display:flex;flex-direction:column;gap:6px;flex:1 1 260px}.cloud-save-row{display:flex;align-items:center;gap:6px}.cloud-save-row input{flex:1;font-size:15px}.tree{display:flex;flex-direction:column}.tree-row{--depth: 0;display:flex;align-items:center;gap:8px;min-height:42px;padding:0 10px 0 calc(6px + var(--depth) * 18px);border-radius:10px;text-align:left;font-size:14.5px}.tree-row:hover{background:var(--hover)}.tree-row.selected{background:var(--accent-soft);color:var(--accent-text)}.tree-row .ic{flex:none}.tree-row>.ic{color:var(--muted)}.tree-row.selected>.ic{color:inherit}.tree-chev{width:16px;display:inline-grid;place-items:center;flex:none;color:var(--muted);transition:transform .12s}.tree-chev .ic{width:14px;height:14px}.tree-chev.open{transform:rotate(90deg)}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row small{color:var(--muted);flex:none}.tree-note{--depth: 1;padding:8px 10px 8px calc(30px + var(--depth) * 18px);color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px}.tree-note.error{color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:11px;font-weight:600;margin-right:6px;white-space:nowrap}.ic.xs{width:12px;height:12px}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);display:inline-block;animation:spin .8s linear infinite;vertical-align:-2px}@keyframes spin{to{transform:rotate(360deg)}}.cloud-login{max-width:420px;margin:24px auto;padding:0 12px;display:flex;flex-direction:column;gap:12px}.cloud-wait{display:flex;flex-direction:column;gap:10px;align-items:stretch}.cloud-wait.hidden{display:none}.cloud-manual summary{cursor:pointer;color:var(--accent-text);font-size:13.5px}.cloud-manual[open]{display:flex;flex-direction:column;gap:8px}.cloud-manual label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.cloud-error{color:var(--danger);font-size:13.5px}.files{position:fixed;inset:0;z-index:25;display:grid;grid-template-columns:264px 1fr;background:var(--panel-solid);animation:fade-in .16s ease-out}@keyframes fade-in{0%{opacity:0}}.files-side{display:flex;flex-direction:column;gap:6px;min-height:0;overflow-y:auto;padding:max(16px,env(safe-area-inset-top)) 10px 24px max(12px,env(safe-area-inset-left));background:var(--bg);border-right:1px solid var(--border)}.files-brand h1{margin:4px 8px 10px;font-size:22px;font-weight:650;letter-spacing:-.01em}.files-nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:10px;font-size:14.5px;text-align:left}.nav-item span{flex:1}.nav-item small,.nav-item .ic{color:var(--muted)}.nav-item:hover{background:var(--hover)}.nav-item.active{background:var(--accent-soft);color:var(--accent-text)}.nav-item.active .ic{color:inherit}.side-title{display:flex;align-items:center;gap:8px;margin:14px 8px 4px;font-size:11.5px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);min-height:28px}.side-title span{flex:1}.side-title small{text-transform:none;letter-spacing:0;font-weight:500}.side-title.drop-over{color:var(--accent-text)}.side-connect{display:flex;flex-direction:column;gap:10px;padding:4px 8px}.side-connect p{margin:0;font-size:13px;line-height:1.4}.files-main{display:flex;flex-direction:column;min-width:0;min-height:0}.files-head{display:flex;align-items:center;gap:10px;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 6px 20px}.files-side-toggle{display:none}.crumbs{flex:1;min-width:0;display:flex;align-items:center;gap:2px;overflow:hidden}.crumb{padding:6px 8px;border-radius:8px;font-size:15px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.crumb[data-drop]:hover{background:var(--hover);color:var(--text)}.crumb.last{color:var(--text);font-size:22px;font-weight:650;letter-spacing:-.01em;flex-shrink:0;max-width:100%}.crumb-sep{color:var(--muted);display:inline-flex;flex:none}.crumb-sep .ic{width:14px;height:14px}.files-search{display:flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:10px;background:var(--hover);color:var(--muted);width:min(260px,34vw)}.files-search input{flex:1;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:14px;outline:none}.files-search:focus-within{box-shadow:0 0 0 2px var(--accent-soft)}.files-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px max(16px,env(safe-area-inset-right)) 12px 20px;border-bottom:1px solid var(--border)}.spacer{flex:1}.segmented.sm{padding:2px}.segmented.sm button{height:28px;padding:0 8px}.files-content{flex:1;overflow-y:auto;padding:18px max(20px,env(safe-area-inset-right)) 48px 20px;-webkit-overflow-scrolling:touch}.files-section+.files-section{margin-top:26px}.files-section-title{margin:0 0 12px;font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.files-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:24px 2px;color:var(--muted);font-size:14px}.files-empty p{margin:0}.files-empty.error p{color:var(--danger)}.files-hint{margin:0 0 14px;font-size:13px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px 18px}.card{display:flex;flex-direction:column;gap:8px;border-radius:16px;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.card-thumb{position:relative;aspect-ratio:4 / 3;border-radius:14px;overflow:hidden;background:var(--raised);box-shadow:var(--shadow);border:1px solid var(--border);transition:transform .15s,box-shadow .15s;display:grid;place-items:center}.card-thumb:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card.current .card-thumb,.file-row.current .row-thumb{outline:2.5px solid var(--accent);outline-offset:3px}.card-thumb img,.row-thumb img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none}.thumb-wait{width:100%;height:100%;background:linear-gradient(100deg,transparent 30%,var(--hover) 50%,transparent 70%) var(--raised);background-size:300% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.card.folder,.file-row.folder,.folder[data-tint="0"]{--tint: #6f88bd}.folder[data-tint="1"]{--tint: #6f9c80}.folder[data-tint="2"]{--tint: #c48a5e}.folder[data-tint="3"]{--tint: #8f7aab}.folder[data-tint="4"]{--tint: #ae9550}.folder[data-tint="5"]{--tint: #b97b78}.card.folder .card-thumb{background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 24%,var(--raised)),color-mix(in srgb,var(--tint) 10%,var(--raised)));border-color:color-mix(in srgb,var(--tint) 18%,transparent)}.file-row.folder .row-thumb{background:color-mix(in srgb,var(--tint) 20%,var(--raised))}.folder-art{display:grid;place-items:center;color:color-mix(in srgb,var(--tint) 85%,var(--text))}.card .folder-art .ic{width:54px;height:54px;stroke-width:1.3}.card-meta{display:flex;align-items:center;gap:4px;padding-left:2px}.card-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.card-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-text small,.row-text small{color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:2px 0}.where{max-width:14em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge.warn{background:color-mix(in srgb,var(--warn) 20%,transparent);color:color-mix(in srgb,var(--warn) 70%,var(--text))}.file-list{display:flex;flex-direction:column}.file-row{display:flex;align-items:center;gap:6px;padding:4px 4px 4px 0;border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:10px}.row-open{flex:1;min-width:0;display:flex;align-items:center;gap:14px;padding:6px;text-align:left;border-radius:10px}.row-open:hover{background:var(--hover)}.row-thumb{width:64px;height:48px;flex:none;border-radius:8px;overflow:hidden;background:var(--raised);border:1px solid var(--border);display:grid;place-items:center}.file-row.folder .row-thumb{border-color:transparent}.row-text{min-width:0;display:flex;flex-direction:column;gap:2px}.card.drop-over .card-thumb,.file-row.drop-over,.tree-row.drop-over,.crumb.drop-over{background:var(--accent-soft);outline:2px solid var(--accent);outline-offset:-2px}.card.lifted,.file-row.lifted,.tree-row.lifted{opacity:.55;transform:scale(.97);transition:transform .12s,opacity .12s}.drag-ghost{position:fixed;left:0;top:0;z-index:80;pointer-events:none;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;background:var(--panel-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);font-size:14px;font-weight:600;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}body.dragging,body.dragging *{cursor:grabbing!important}.tree-row{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tree-row.current{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.tree-row.current>.ic{color:inherit}.tree-row.off{opacity:.4}.tree-row .tree-name small{display:block;font-size:11.5px;font-weight:400}.tree-dot{width:7px;height:7px;border-radius:50%;background:var(--warn);flex:none}.picker-card{width:min(460px,100%);height:min(560px,calc(100vh - 32px))}.picker-modal{z-index:46}.picker-where{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:760px){.files{grid-template-columns:1fr}.files-side{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:2;transform:translate(-102%);transition:transform .2s ease;box-shadow:var(--shadow-lg)}.files.side-open .files-side{transform:none}.files-side-toggle{display:inline-flex}.files-search{width:40vw}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.files-drawer{position:fixed;z-index:12;top:0;bottom:0;left:0;width:290px;display:flex;flex-direction:column;gap:6px;padding:max(10px,env(safe-area-inset-top)) 8px 12px max(8px,env(safe-area-inset-left));background:var(--panel-solid);border-right:1px solid var(--border);box-shadow:var(--shadow);animation:drawer-in .18s ease-out}@keyframes drawer-in{0%{transform:translate(-30px);opacity:0}}.drawer-head{display:flex;align-items:center;gap:2px;padding:2px 2px 2px 8px}.drawer-title{flex:1;font-weight:650;font-size:16px}.files-drawer .files-search{width:auto;margin:0 4px}.drawer-body{display:flex;flex-direction:column;flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch}.files-drawer .tree-row{min-height:38px;font-size:14px;padding-left:calc(4px + var(--depth) * 16px)}body.files-open .bar-tl,body.files-open .rail,body.files-open .strip{translate:300px 0}.bar-tl,.rail,.strip{transition:translate .18s ease}.icon-btn.active[data-act=files]{color:var(--accent-text);background:var(--accent-soft)}.sep-dot{margin:0 5px}.boot-note{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:90;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:min(420px,calc(100vw - 32px));padding:20px 22px;border-radius:18px;background:var(--panel-solid);border:1px solid var(--border);box-shadow:var(--shadow-lg);text-align:center;font-size:14px;line-height:1.45;color:var(--text)}.boot-note b{font-size:15.5px}.boot-note span{color:var(--muted)}@supports (-moz-appearance: none){*{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}:root,:root[data-theme=dark]{--panel: var(--panel-solid)}}
