:root{--paper: #eef1f5;--paper-soft: #f7f8fa;--paper-edge: #dce0e6;--ink: #15181e;--ink-2: #3a3e47;--ink-3: #6c717c;--ink-4: #9ca1ab;--ink-5: #cbcfd6;--hair: #e1e4ea;--hair-2: #eceef2;--white: #ffffff;--accent: #3461e3;--accent-2: #234cc1;--accent-tint: #e2eafa;--soft: #dce6f5;--soft-2: #bfcfe8;--soft-stroke: #a6bbdb;--good: #1f8a5b;--warn: #b45309;--rose: #a8616a;--rose-tint: #f4e7e9;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--sh-1: 0 1px 0 rgba(24, 24, 27, .04), 0 1px 2px rgba(24, 24, 27, .05);--sh-2: 0 1px 0 rgba(24, 24, 27, .04), 0 4px 12px rgba(24, 24, 27, .07);--sh-3: 0 2px 0 rgba(24, 24, 27, .04), 0 12px 28px rgba(24, 24, 27, .1);--font-sans: "Geist", "Söhne", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, "SF Mono", monospace}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);color:var(--ink);background:var(--paper-soft);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}button{font-family:inherit}.mono{font-family:var(--font-mono)}.app{position:relative;width:100vw;height:100vh;height:100dvh;background:var(--paper-soft);display:flex;flex-direction:column;overflow:hidden;font-feature-settings:"ss01","cv11"}.mobile-ui{display:none}.topbar{height:48px;border-bottom:1px solid var(--hair);display:flex;align-items:center;padding:0 16px;gap:14px;background:var(--paper-soft);flex-shrink:0}.crumb{color:var(--ink-3);font-size:13px;display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.crumb .sep{color:var(--ink-5)}.topbar-progress{display:flex;align-items:center;gap:8px;margin-left:14px}.topbar .spacer{flex:1}.pill-toggle{display:flex;background:var(--paper);border:1px solid var(--hair);border-radius:999px;padding:2px;font-size:12px;font-family:var(--font-mono)}.pill-toggle button{border:0;background:transparent;padding:4px 10px;border-radius:999px;color:var(--ink-3);cursor:pointer;font-family:inherit;letter-spacing:.02em}.pill-toggle button.on{background:var(--white);color:var(--ink);box-shadow:var(--sh-1)}.icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--ink-2);cursor:pointer}.icon-btn:hover{background:var(--paper)}.doc-name{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:var(--r-sm);border:1px solid transparent;color:var(--ink);font-weight:500;font-size:13px;cursor:text;letter-spacing:-.005em;background:transparent;font-family:inherit;max-width:320px;min-width:0;white-space:nowrap}.doc-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.doc-name:hover{border-color:var(--hair);background:var(--paper-soft)}.doc-name.editing,.doc-name:focus{border-color:var(--accent);background:var(--white);box-shadow:0 0 0 3px var(--accent-tint);outline:none}.doc-name .pencil{color:var(--ink-4);opacity:0;transition:opacity .15s}.doc-name:hover .pencil{opacity:1}.doc-name.muted{color:var(--ink-3);font-weight:400}.doc-name.muted .pencil{opacity:1}.local-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px;border-radius:999px;background:var(--soft);border:1px solid var(--soft-2);color:var(--accent-2);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.local-chip .led{width:6px;height:6px;border-radius:50%;background:var(--good)}.split{flex:1;display:flex;min-height:0}.toolrail{width:56px;border-right:1px solid var(--hair);background:var(--paper-soft);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px;flex-shrink:0}.tool{width:36px;height:36px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.tool:hover{background:var(--paper)}.tool.active{background:var(--ink);color:#fff}.tool:disabled{opacity:.35;cursor:default}.tool .kbd{position:absolute;bottom:-2px;right:-2px;font-family:var(--font-mono);font-size:9px;color:var(--ink-3);background:var(--paper-soft);padding:0 3px;border-radius:3px;border:1px solid var(--hair);line-height:1.4}.tool.active .kbd{color:#fff;background:var(--ink-2);border-color:var(--ink-2)}.toolrail .divider{width:24px;height:1px;background:var(--hair);margin:6px 0}.canvas-wrap{flex:1;position:relative;background:radial-gradient(circle at 1px 1px,rgba(21,24,30,.055) 1px,transparent 0) 0 0 / 24px 24px,var(--paper);overflow:hidden;min-width:0;touch-action:none;-webkit-user-select:none;user-select:none}.canvas-wrap.cur-cross{cursor:crosshair}.canvas-wrap.cur-grab{cursor:grab}.canvas-wrap.cur-grabbing{cursor:grabbing}.plan-img{position:absolute;top:0;left:0;transform-origin:top left;filter:contrast(1.05) saturate(.95);-webkit-user-select:none;user-select:none;pointer-events:none;image-rendering:auto}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.ruler-x,.ruler-y{position:absolute;background:var(--paper-soft);color:var(--ink-3);z-index:5;-webkit-user-select:none;user-select:none;font-family:var(--font-mono);pointer-events:none}.ruler-x{top:0;left:0;right:0;height:22px;border-bottom:1px solid var(--hair)}.ruler-y{top:0;left:0;bottom:0;width:22px;border-right:1px solid var(--hair)}.ruler-corner{position:absolute;top:0;left:0;width:22px;height:22px;background:var(--paper-soft);border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);z-index:6;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:8.5px;color:var(--ink-3);letter-spacing:.02em}.ruler-cursor-x,.ruler-cursor-y{position:absolute;background:var(--accent);pointer-events:none;z-index:7}.ruler-cursor-x{width:1px;top:0;height:22px}.ruler-cursor-y{height:1px;left:0;width:22px}.ruler-cursor-x:after{content:"";position:absolute;top:16px;left:-2.5px;width:6px;height:6px;background:var(--accent);clip-path:polygon(50% 0,100% 100%,0 100%)}.ruler-cursor-y:after{content:"";position:absolute;left:16px;top:-2.5px;width:6px;height:6px;background:var(--accent);clip-path:polygon(0 50%,100% 0,100% 100%)}.zoom-hud{position:absolute;right:14px;bottom:14px;background:var(--white);border:1px solid var(--hair);border-radius:var(--r-sm);padding:6px 8px;font-family:var(--font-mono);font-size:11px;color:var(--ink-2);display:flex;align-items:center;gap:6px;box-shadow:var(--sh-1);z-index:8}.zoom-hud .seg{display:flex;align-items:center}.zoom-hud button{background:transparent;border:0;width:22px;height:22px;color:var(--ink-3);cursor:pointer;font-family:inherit;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:13px}.zoom-hud button:hover{background:var(--paper);color:var(--ink)}.zoom-hud button:disabled{opacity:.4;cursor:default}.zoom-hud .div{width:1px;height:14px;background:var(--hair);margin:0 2px}.zoom-hud .pct{min-width:44px;text-align:center;color:var(--ink);background:none;border:0}.zoom-hud .fit{color:var(--ink-3);padding:0 6px;font-size:10.5px;letter-spacing:.04em;background:none;border:0;cursor:pointer}.zoom-hud .fit.on{color:var(--accent)}.minimap{position:absolute;left:14px;bottom:14px;width:130px;background:var(--white);border:1px solid var(--hair);border-radius:var(--r-sm);padding:6px;box-shadow:var(--sh-1);z-index:8}.minimap .mm-frame{width:100%;aspect-ratio:1 / 1.05;background:var(--paper);border:1px solid var(--hair-2);position:relative;border-radius:2px;overflow:hidden}.minimap img{position:absolute;opacity:.6;filter:contrast(1.1)}.minimap .vp{position:absolute;border:1.5px solid var(--accent);background:#3461e312}.minimap .label{font-family:var(--font-mono);font-size:9px;color:var(--ink-3);letter-spacing:.04em;margin-top:4px;display:flex;justify-content:space-between}.sidepanel{width:280px;border-left:1px solid var(--hair);background:var(--paper-soft);display:flex;flex-direction:column;flex-shrink:0}.sidepanel header{padding:14px 16px 10px;border-bottom:1px solid var(--hair)}.sidepanel h3{margin:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600;display:flex;align-items:center;justify-content:space-between}.sidepanel h3 .count{font-family:var(--font-mono);color:var(--ink-3);font-weight:500;letter-spacing:0;text-transform:none;font-size:11px}.scale-info{padding:10px 16px 12px;border-bottom:1px solid var(--hair);font-size:12px;color:var(--ink-3);background:var(--accent-tint);display:flex;flex-direction:column;gap:2px}.scale-info .scale-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.scale-info .eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--accent-2);text-transform:uppercase;display:flex;align-items:center;gap:5px}.scale-info .ratio{color:var(--ink);font-weight:500;font-family:var(--font-mono);font-size:12px;cursor:pointer;width:fit-content}.scale-info .ratio:hover{text-decoration:underline;text-decoration-color:var(--soft-2);text-underline-offset:2px}.scale-info .redraw-ref{margin-top:8px;display:inline-flex;align-items:center;gap:7px;align-self:flex-start;height:28px;padding:0 10px;border-radius:var(--r-sm);border:1px solid var(--soft-2);background:#fff9;color:var(--accent-2);font:inherit;font-size:12px;font-weight:500;cursor:pointer}.scale-info .redraw-ref:hover{background:var(--white)}.scale-info .lockbtn{border:1px solid var(--soft-2);background:#fff9;color:var(--accent-2);border-radius:var(--r-sm);width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.scale-info .lockbtn:hover{background:var(--white)}.list{flex:1;overflow-y:auto;min-height:0}.empty-hint{padding:32px 18px;color:var(--ink-3);font-size:12.5px;line-height:1.55;text-align:center;display:flex;flex-direction:column;align-items:center}.empty-hint .strong{font-weight:500;color:var(--ink-2);margin-bottom:4px}.m-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--hair-2);font-size:13px;cursor:pointer;position:relative}.m-row:hover{background:var(--paper)}.m-row.selected{background:var(--accent-tint)}.m-row.selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}.m-row .swatch{width:10px;height:10px;border-radius:50%;border:2px solid currentColor;flex-shrink:0;cursor:pointer}.m-row.reference .swatch{background:var(--accent)}.m-row.area .swatch{border-radius:2px;background:color-mix(in srgb,currentColor 16%,transparent)}.m-row .label{flex:1;display:flex;flex-direction:column;min-width:0}.m-row .label .name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center}.m-row .label .name-input{font:inherit;font-weight:500;border:1px solid var(--accent);border-radius:var(--r-xs);padding:1px 4px;width:100%;outline:none;box-shadow:0 0 0 3px var(--accent-tint)}.m-row .ref-chip{font-family:var(--font-mono);font-size:9.5px;margin-left:6px;padding:1px 5px;border-radius:3px;background:var(--accent-tint);color:var(--accent-2);letter-spacing:.04em;font-weight:600}.m-row .label .val{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);letter-spacing:.01em}.m-row .label .val .alt{color:var(--ink-3);margin-left:6px}.m-row .eye{color:var(--ink-3);width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-xs);border:0;background:transparent;cursor:pointer}.m-row .eye:hover{background:var(--paper-edge)}.m-row .del{display:none;width:22px;height:22px;align-items:center;justify-content:center;border-radius:var(--r-xs);border:0;background:transparent;color:var(--ink-4);cursor:pointer}.m-row.hidden .label .name,.m-row.hidden .label .val{color:var(--ink-4)}.m-row.hidden .swatch{opacity:.3}.statusbar{height:28px;border-top:1px solid var(--hair);background:var(--paper-soft);display:flex;align-items:center;padding:0 14px;gap:16px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);letter-spacing:.01em;flex-shrink:0}.statusbar .dot{width:6px;height:6px;border-radius:50%;background:var(--good);display:inline-block;margin-right:6px;vertical-align:1px}.statusbar .spacer{flex:1}.statusbar>span{white-space:nowrap}.btn{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--hair);background:var(--white);color:var(--ink);font:inherit;font-size:13px;font-weight:500;cursor:pointer;box-shadow:var(--sh-1);white-space:nowrap}.btn:hover{background:var(--paper)}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:var(--ink-2)}.btn.accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.accent:hover{background:var(--accent-2)}.btn.ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink-2)}.btn.ghost:hover{background:var(--paper)}.btn .kbd{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);background:var(--paper);border:1px solid var(--hair);padding:0 4px;border-radius:3px;margin-left:4px}.btn.primary .kbd{color:#fff9;background:#ffffff14;border-color:#ffffff26}.coach{position:absolute;background:var(--ink);color:#fff;border-radius:var(--r-md);padding:12px 14px;box-shadow:var(--sh-3);max-width:320px;font-size:13px;line-height:1.5;z-index:9}.coach .step{display:inline-block;font-family:var(--font-mono);font-size:10px;color:#ffffff8c;letter-spacing:.08em;margin-bottom:4px}.coach h4{margin:0 0 4px;font-size:14px;font-weight:600;letter-spacing:-.005em}.coach p{margin:0;color:#ffffffbf;font-size:12.5px;line-height:1.5}.coach .keys{display:flex;gap:8px;margin-top:10px}.coach .keyhint{font-family:var(--font-mono);font-size:10px;color:#fff9;display:flex;align-items:center;gap:6px}.coach kbd{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);padding:2px 5px;border-radius:3px}.coach .arrow{position:absolute;width:12px;height:12px;background:var(--ink);transform:rotate(45deg)}.m-pill{position:absolute;font-family:var(--font-mono);font-size:11px;background:var(--white);border:1px solid var(--hair);border-radius:999px;padding:2px 8px;color:var(--ink);box-shadow:var(--sh-1);white-space:nowrap;letter-spacing:.01em;transform:translate(-50%,-50%);pointer-events:none;z-index:4}.m-pill.accent{background:var(--accent);border-color:var(--accent);color:#fff}.m-pill.bare{border-color:transparent;box-shadow:none;background:#ffffffd9}.m-pill .sub{color:var(--ink-3);margin-left:4px;font-size:10px}.m-pill.accent .sub{color:#ffffffb3}.cursor-readout{position:absolute;background:var(--ink);color:#fff;font-family:var(--font-mono);font-size:11px;padding:3px 8px;border-radius:4px;letter-spacing:.02em;pointer-events:none;z-index:9;white-space:nowrap}.popover{position:absolute;background:var(--white);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--sh-3);padding:14px;width:260px;z-index:10}.popover label.eyebrow{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.popover .input-row{display:flex;margin-top:8px;border:1px solid var(--hair);border-radius:var(--r-sm);overflow:hidden;background:var(--paper-soft)}.popover .input-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);background:#fff}.popover input.value{flex:1;border:0;outline:0;background:transparent;padding:8px 10px;font-family:var(--font-mono);font-size:15px;color:var(--ink);min-width:0}.popover .unit-pick{display:flex;border-left:1px solid var(--hair)}.popover .unit-pick button{border:0;background:transparent;padding:0 10px;font-family:var(--font-mono);font-size:12px;color:var(--ink-3);cursor:pointer}.popover .unit-pick button.on{color:var(--ink);background:#fff}.popover .secondrow{display:flex;justify-content:space-between;margin-top:10px;align-items:center}.popover .approx{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.popover .lock-check{display:flex;gap:6px;font-size:11px;align-items:center;color:var(--ink-3)}.popover .lock-check input{accent-color:var(--accent)}.popover .actions{display:flex;gap:8px;margin-top:12px}.popover .actions .btn{flex:1;justify-content:center}.popover .hint{font-size:11px;color:var(--ink-3);margin-top:10px;line-height:1.5}.popover .ptr{position:absolute;top:-7px;left:50%;margin-left:-7px;width:14px;height:14px;background:#fff;border:1px solid var(--hair);border-right:0;border-bottom:0;transform:rotate(45deg)}.context-bar{position:absolute;display:flex;gap:4px;background:#fff;border:1px solid var(--hair);border-radius:999px;padding:3px;box-shadow:var(--sh-2);z-index:9;transform:translate(-50%,-50%)}.context-bar .swatches{display:flex;gap:4px;align-items:center;padding:0 4px;border-left:1px solid var(--hair-2);border-right:1px solid var(--hair-2)}.context-bar .sw{width:14px;height:14px;border-radius:50%;border:2px solid transparent;cursor:pointer}.context-bar .sw.on{border-color:var(--ink)}.landing-body{flex:1;position:relative;background:var(--paper-soft)}.dropzone{position:absolute;top:40px;right:40px;bottom:40px;left:40px;border:1.5px dashed var(--ink-5);border-radius:var(--r-xl);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;color:var(--ink-2);background:radial-gradient(circle at 1px 1px,rgba(21,24,30,.045) 1px,transparent 0) 0 0 / 22px 22px;transition:border-color .15s,background .15s}.dropzone.active{border-color:var(--accent);background:var(--accent-tint)}.dropzone h2{margin:0;font-size:22px;font-weight:600;letter-spacing:-.015em}.dropzone p{margin:0;color:var(--ink-3);font-size:14px;max-width:380px;line-height:1.55}.dropzone .icon{width:56px;height:56px;border-radius:var(--r-lg);border:1px solid var(--hair);background:#fff;box-shadow:var(--sh-2);display:flex;align-items:center;justify-content:center;color:var(--ink-2)}.dropzone .browse{margin-top:4px;display:flex;gap:8px;align-items:center}.dropzone .formats{font-family:var(--font-mono);font-size:12px;color:var(--ink-3);letter-spacing:.02em;margin-top:8px}.dropzone .privacy-note{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:12px;color:var(--ink-3);letter-spacing:.02em;margin-top:6px}.dropzone .privacy-note .dot{width:6px;height:6px;border-radius:50%;background:var(--good)}.dropzone .drop-tag{font-family:var(--font-mono);font-size:11px;color:var(--accent-2);letter-spacing:.04em}.loading-block{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--ink-3)}.spinner{width:26px;height:26px;border:2.5px solid var(--ink-5);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.recents{position:absolute;left:40px;right:40px;bottom:40px;display:flex;gap:12px}.recents-empty{position:absolute;left:40px;right:40px;bottom:40px;font-family:var(--font-mono);font-size:12px;color:var(--ink-3);text-align:center}.recent-card{flex:1;background:#fff;border:1px solid var(--hair);border-radius:var(--r-md);padding:10px;display:flex;gap:10px;align-items:center;cursor:pointer;position:relative;text-align:left;min-width:0}.recent-card:hover{box-shadow:var(--sh-2)}.recent-thumb{width:38px;height:38px;border-radius:var(--r-sm);background:var(--paper);border:1px solid var(--hair);flex-shrink:0;background-size:cover;background-position:center}.recent-card .meta{font-size:12px;min-width:0;flex:1}.recent-card .meta .t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-card .meta .s{color:var(--ink-3);font-family:var(--font-mono);font-size:11px}.recent-card .del{opacity:0;border:0;background:transparent;color:var(--ink-4);cursor:pointer;padding:4px;border-radius:var(--r-xs)}.recent-card:hover .del{opacity:1}.recent-card .del:hover{background:var(--paper);color:var(--ink-2)}.toast{position:absolute;left:50%;bottom:56px;transform:translate(-50%);background:var(--ink);color:#fff;border-radius:var(--r-md);padding:9px 12px 9px 14px;display:flex;align-items:center;gap:14px;font-size:13px;box-shadow:var(--sh-3);z-index:20}.toast button{border:0;background:transparent;color:var(--accent-tint);font:inherit;font-weight:600;cursor:pointer}.toast button:hover{color:#fff}.mob-topbar-sub{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.mob-sheet{position:absolute;bottom:0;left:0;right:0;background:var(--paper-soft);border-top:1px solid var(--hair);border-radius:20px 20px 0 0;box-shadow:0 -8px 24px #18181b14;z-index:12;display:flex;flex-direction:column;transition:transform .28s cubic-bezier(.22,.61,.36,1);height:72vh;max-height:72dvh;will-change:transform}.mob-sheet.dragging{transition:none}.mob-grab{flex-shrink:0;touch-action:none;cursor:grab}.mob-sheet.dragging .mob-grab{cursor:grabbing}.mob-sheet .handle{width:36px;height:4px;border-radius:2px;background:var(--ink-5);margin:8px auto 10px}.mob-sheet-header{padding:0 18px 10px;display:flex;align-items:center;justify-content:space-between}.mob-sheet-header h4{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:6px}.mob-sheet-header .count{font-family:var(--font-mono);color:var(--ink-3);font-weight:500;text-transform:none;letter-spacing:0;font-size:11px}.mob-export{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--accent);background:var(--accent-tint);border:none;border-radius:8px;padding:6px 11px;cursor:pointer;-webkit-tap-highlight-color:transparent}.mob-export svg{width:15px;height:15px}.mob-export:active{background:var(--accent);color:#fff}.mob-sheet .list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.mob-empty{margin:4px 18px;font-size:13px;line-height:1.5;color:var(--ink-3)}.mob-sheet .m-row{padding:12px 14px;gap:6px}.mob-sheet .m-row .eye,.mob-sheet .m-row .del{width:40px;height:40px;flex-shrink:0}.mob-sheet .m-row .del{display:flex}.mob-sheet .m-row .del:active{color:var(--rose);background:var(--rose-tint)}.mob-toolbar{position:absolute;left:50%;transform:translate(-50%);z-index:11;display:flex;gap:2px;padding:5px;background:var(--paper-soft);border:1px solid var(--hair);border-radius:999px;box-shadow:var(--sh-3)}.mob-tool{width:46px;height:44px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer}.mob-tool.active{background:var(--ink);color:#fff}.loupe{position:absolute;z-index:30;border-radius:50%;overflow:hidden;background:var(--paper);border:2px solid white;box-shadow:0 0 0 1px var(--hair),var(--sh-3);pointer-events:none}.loupe-cross{position:absolute;background:#3461e373}.loupe-h{left:0;right:0;top:50%;height:1px}.loupe-v{top:0;bottom:0;left:50%;width:1px}.loupe-dot{position:absolute;top:50%;left:50%;width:12px;height:12px;transform:translate(-50%,-50%);border-radius:50%;border:1.5px solid var(--accent);box-shadow:0 0 0 1px #ffffffd9}@media (max-width: 720px){.toolrail,.sidepanel,.minimap{display:none}.topbar{gap:8px;padding:0 12px}.topbar .hide-mobile{display:none}.zoom-hud{bottom:auto;top:14px;right:14px}.mobile-ui{display:block}.landing-body{display:flex;flex-direction:column;justify-content:center;gap:20px;padding:28px 18px;overflow-y:auto}.dropzone{position:static;inset:auto;border:none;background:none;border-radius:0;gap:12px}.dropzone h2{font-size:20px}.dropzone .browse{flex-direction:column;align-self:stretch;gap:10px}.dropzone .browse .btn{width:100%;height:40px;justify-content:center}.dropzone .browse .kbd{display:none}.recents,.recents-empty{position:static;left:auto;right:auto;bottom:auto}.recents{flex-direction:column}}
