:root,[data-theme=light]{--canvas-bg:#f5f0e8;--dot-color:rgba(0,0,0,.13);--dot-hover-color:#111;--anchor-color:#b1dc31;--segment-color:#111;--preview-color:#888;--eraser-highlight:#ff2d55;--toolbar-bg:#111;--toolbar-text:#f5f0e8;--accent:#c8f542;--accent-hover:#d4ff57;--border:2.5px solid #111;--shadow:3px 3px 0 #111}[data-theme=dark]{--canvas-bg:#171717;--dot-color:#262626;--dot-hover-color:#a9a9a9;--anchor-color:#b1dc31;--segment-color:#c1bebb;--preview-color:#666;--eraser-highlight:#ff2d55;--toolbar-bg:#111;--toolbar-text:#f5f0e8;--accent:#c8f542;--accent-hover:#d4ff57;--border:2.5px solid #333;--shadow:3px 3px 0 #000}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden;font-family:IBM Plex Sans,sans-serif;color:#111;cursor:crosshair}body,html,svg#canvas{background:var(--canvas-bg)}svg#canvas{position:fixed;inset:0;width:100vw;height:100dvh;touch-action:none}.preview-march{animation:march .4s linear infinite}@keyframes march{to{stroke-dashoffset:-18}}.toolbar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:100;background:var(--toolbar-bg);border:var(--border);border-radius:14px;padding:5px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;cursor:-webkit-grab;cursor:grab;max-width:calc(100vw - 32px)}.toolbar-dragging{cursor:-webkit-grabbing;cursor:grabbing}.toolbar-scroll{display:flex;align-items:center;gap:2px;padding:0 6px}.toolbar-fade{display:none}@media only screen and (max-width:767px){.toolbar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.toolbar-scroll::-webkit-scrollbar{display:none}.toolbar-fade{display:block;position:absolute;top:0;bottom:0;width:12px;pointer-events:none;z-index:2;opacity:0;transition:opacity .15s}.toolbar-fade.visible{opacity:1}.toolbar-fade-left{left:0;background:linear-gradient(to right,var(--toolbar-bg),transparent);border-radius:14px 0 0 14px}.toolbar-fade-right{right:0;background:linear-gradient(to left,var(--toolbar-bg),transparent);border-radius:0 14px 14px 0}}.tool-btn{flex-shrink:0;width:34px;height:34px;border:2.5px solid transparent;background:transparent;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--toolbar-text);transition:all .1s}.tool-btn:hover{background:hsla(0,0%,100%,.08)}.tool-btn.active{background:var(--accent);color:#111;border-color:#111;box-shadow:1px 1px 0 rgba(0,0,0,.3)}.toolbar-sep{flex-shrink:0;width:2px;height:22px;background:hsla(0,0%,100%,.12);margin:0 4px;border-radius:1px}.stroke-control{flex-shrink:0;gap:0;margin:0 2px}.stroke-btn,.stroke-control{display:flex;align-items:center}.stroke-btn{width:28px;height:28px;border:none;background:transparent;color:var(--toolbar-text);cursor:pointer;justify-content:center;border-radius:6px;font-size:14px;font-family:IBM Plex Sans,sans-serif;font-weight:500;transition:background .1s}.stroke-btn:hover{background:hsla(0,0%,100%,.1)}.stroke-value{font-family:IBM Plex Sans,sans-serif;font-size:14px;font-weight:500;min-width:22px;text-align:center;line-height:1}.stroke-value,.undo-btn{color:var(--toolbar-text)}.undo-btn{flex-shrink:0;width:38px;height:38px;border:2.5px solid transparent;background:transparent;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s}.undo-btn:hover{background:hsla(0,0%,100%,.08)}.undo-btn:active{background:var(--accent);color:#111}.confirm-modal-cancel,.confirm-modal-confirm{flex:1 1;padding:10px 20px;border-radius:12px;font-family:IBM Plex Sans,sans-serif;font-size:14px;cursor:pointer;transition:all .1s}.confirm-modal-cancel{background:transparent;border:1px solid #333;color:#888}.confirm-modal-cancel:hover{border-color:#555}.confirm-modal-confirm{background:var(--accent);border:none;color:#111;font-weight:500}.confirm-modal-confirm:hover{background:var(--accent-hover)}.help-dialog-card{scrollbar-width:none}.help-dialog-card::-webkit-scrollbar{display:none}.help-kbd{display:inline-block;font-family:IBM Plex Sans,sans-serif;font-size:10px;font-weight:500;color:#999;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:5px;padding:2px 6px;line-height:1.4;min-width:20px;text-align:center}