body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;transition:background-color .15s ease,border-color .15s ease,color .15s ease}#root,body,html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;height:100%;margin:0;padding:0;width:100%}body{background:#f3f4f6;overflow:hidden}.app-shell{background:#f5f7fb;color:#1f2937;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;width:100%}.app-shell[data-theme=dark]{background:#18181b;color:#e5e7eb}.editor-container{flex:1 1;min-height:0;order:1;position:relative;width:100%}.editor-wrapper{height:100%;width:100%}.editor-wrapper,.monaco-editor{inset:0;position:absolute;z-index:1}.canvas-layer{background:#0000;height:100%;inset:0;pointer-events:auto;position:absolute;transition:visibility .15s ease;visibility:visible;width:100%;z-index:2}.canvas-element{display:block;height:100%;width:100%}.array-cell-value{align-items:center;color:#0f172a;display:flex;font-weight:700;justify-content:center;line-height:1;overflow:hidden;padding:0 6px;pointer-events:none;position:absolute;text-align:center;text-overflow:ellipsis;text-shadow:0 1px 0 #fff9;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:10}.app-shell[data-theme=dark] .array-cell-value{color:#f8fafc;text-shadow:0 1px 0 #0f172acc}.canvas-layer[data-tool=draw]{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath d='M7 16.5 14.5 9l2.5 2.5L9.5 19 5 20l2-3.5Z' fill='%23111827'/%3E%3Cpath d='m14.5 6.5 3 3' stroke='%23111827' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='m4.5 19.5 3-1 1 1-1 3-3-3Z' fill='%23ef4444' stroke='%23111827'/%3E%3C/svg%3E") 2 22,crosshair}.cell-editor-input{appearance:none;-webkit-appearance:none;background:#fffffffa;border:1px solid #0f172a2e;border-radius:8px;box-shadow:0 10px 28px #0f172a2e;caret-color:#2563eb;color:#0f172a;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;line-height:1.2;outline:none;overflow:hidden;padding:4px 8px;text-align:center;z-index:40}.cell-editor-input:focus{border-color:#2563ebcc;box-shadow:0 12px 32px #2563eb33}.app-shell[data-theme=dark] .cell-editor-input{background:#18181bf5;border-color:#60a5fa73;box-shadow:0 8px 24px #00000059;color:#f9fafb}.app-shell[data-theme=dark] .cell-editor-input:focus{border-color:#60a5facc;box-shadow:0 10px 28px #3b82f638}.top-toolbar{-webkit-overflow-scrolling:touch;align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffbf;border-bottom:1px solid #00000014;box-shadow:0 2px 8px #0000000f;display:flex;flex-shrink:0;flex-wrap:nowrap;gap:clamp(2px,.35vw,4px);height:auto;justify-content:space-between;min-height:60px;min-width:0;order:0;overflow-x:auto;overflow-y:hidden;padding:clamp(2px,.45vw,4px) clamp(3px,.7vw,6px)}.toolbar-center::-webkit-scrollbar,.top-toolbar::-webkit-scrollbar{height:6px}.toolbar-center::-webkit-scrollbar-track,.top-toolbar::-webkit-scrollbar-track{background:#0000}.toolbar-center::-webkit-scrollbar-thumb,.top-toolbar::-webkit-scrollbar-thumb{background:#64748b4d;border-radius:999px}.toolbar-center::-webkit-scrollbar-thumb:hover,.top-toolbar::-webkit-scrollbar-thumb:hover{background:#64748b73}.app-shell[data-theme=dark] .top-toolbar{background:#1e1e1ebf;border-bottom-color:#ffffff14;box-shadow:0 2px 8px #00000026}.toolbar-left,.toolbar-right{align-items:center;display:flex;flex-shrink:0;gap:4px;min-width:0}.toolbar-center{-webkit-overflow-scrolling:touch;align-items:center;display:flex;flex:1 1 auto;flex-wrap:nowrap;gap:clamp(2px,.35vw,3px);justify-content:flex-start;min-width:0;overflow-x:auto;overflow-y:hidden}.brand{color:#1f2937;font-size:clamp(.68rem,1vw,.95rem);font-weight:700;letter-spacing:.04em;text-transform:lowercase;white-space:nowrap}.app-shell[data-theme=dark] .brand{color:#e5e7eb}.draw-width-slider,.eraser-slider,.shape-item,.shapes-pin-btn,.tool-btn,.toolbar-color,.toolbar-field,.toolbar-icon-btn,.toolbar-select{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tool-btn{background:#fff9;border:1px solid #0000;border-radius:12px;color:#1f2937;cursor:pointer;flex-shrink:0;font-size:18px;height:clamp(24px,2.6vw,32px);padding:0;transition:all .2s ease;width:clamp(24px,2.6vw,32px)}.tool-btn,.tool-btn-icon{align-items:center;display:flex;justify-content:center}.tool-btn-icon{line-height:1}.tool-btn-label{display:none}.tool-btn:hover{background:#2563eb1f;border-color:#2563eb40;transform:translateY(-2px) scale(1.03)}.tool-btn:active{transform:scale(.95)}.tool-btn.active{background:linear-gradient(135deg,#2563eb,#7c3aed);border-color:#0000;box-shadow:0 6px 18px #2563eb59;color:#fff;transform:scale(1.05)}.app-shell[data-theme=dark] .tool-btn{background:#3c3c3c99;border-color:#0000;color:#e5e7eb}.app-shell[data-theme=dark] .tool-btn:hover{background:#2563eb2e;border-color:#2563eb40}.toolbar-divider{background:#0000001a;flex-shrink:0;height:clamp(12px,1.6vw,18px);margin:0 2px;width:1px}.app-shell[data-theme=dark] .toolbar-divider{background:#ffffff1a}.toolbar-field{align-items:center;background:#ffffffa6;border:1px solid #0000001a;border-radius:10px;display:inline-flex;flex-direction:row;flex-shrink:0;gap:clamp(2px,.3vw,4px);height:clamp(22px,2.4vw,30px);padding:0 clamp(2px,.4vw,4px);transition:all .2s ease}.toolbar-field:hover{background:#ffffffbf}.toolbar-field-label{color:#4b5563;flex-shrink:0;font-size:clamp(.55rem,.72vw,.7rem);font-weight:700;letter-spacing:.02em;line-height:1;-webkit-user-select:none;user-select:none;white-space:nowrap}.toolbar-color,.toolbar-select{background:#ffffffb3;border:1px solid #0000001a;border-radius:10px;color:#1f2937;cursor:pointer;font-size:.85rem;height:clamp(22px,2.4vw,30px);padding:4px 10px;transition:all .2s ease}.toolbar-select{background:#0000;border:0;font-size:clamp(.62rem,.8vw,.8rem);height:clamp(16px,2vw,20px);line-height:clamp(16px,2vw,20px);min-width:clamp(34px,4.4vw,46px);padding:0}.toolbar-color{flex-shrink:0;height:clamp(22px,2.4vw,30px);padding:1px;width:clamp(22px,2.4vw,30px)}.toolbar-color:hover,.toolbar-select:hover{opacity:.9;transform:translateY(-1px)}.app-shell[data-theme=dark] .toolbar-color,.app-shell[data-theme=dark] .toolbar-select{background:#0000;border-color:#0000;color:#e5e7eb}.app-shell[data-theme=dark] .toolbar-field-label{color:#d1d5db}.app-shell[data-theme=dark] .toolbar-field{background:#3c3c3ca6;border-color:#ffffff1a}.toolbar-icon-btn{align-items:center;background:#ffffffa6;border:1px solid #0000001a;border-radius:10px;color:#1f2937;cursor:pointer;display:flex;flex-shrink:0;font-size:.95rem;height:clamp(24px,2.4vw,30px);justify-content:center;padding:0;transition:all .2s ease;width:clamp(24px,2.4vw,30px)}.toolbar-icon-btn.mode-btn{font-size:.74rem;font-weight:700;letter-spacing:.02em;min-width:62px;padding:0 10px;width:auto}.mode-label-short{display:none}.toolbar-icon-btn:hover:not(:disabled){background:#2563eb1f;border-color:#2563eb40;transform:translateY(-2px)}.toolbar-icon-btn:active:not(:disabled){transform:scale(.95)}.toolbar-icon-btn:disabled{cursor:not-allowed;opacity:.4}.toolbar-icon-btn.active{background:linear-gradient(135deg,#2563eb,#7c3aed);border-color:#0000;box-shadow:0 6px 18px #2563eb59;color:#fff}.app-shell[data-theme=dark] .toolbar-icon-btn{background:#3c3c3ca6;border-color:#ffffff1a;color:#e5e7eb}.app-shell[data-theme=dark] .toolbar-icon-btn.active{color:#fff}.mobile-tools-btn{display:none}.mobile-tools-panel{animation:slideDown .2s ease;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffbf;border-bottom:1px solid #00000014;display:none;left:0;padding:4px 6px;position:absolute;right:0;top:42px;z-index:10}.mobile-tools-panel.open{display:flex}.mobile-tools-panel-inner{align-items:center;display:flex;flex-wrap:wrap;gap:3px;width:100%}.app-shell[data-theme=dark] .mobile-tools-panel{background:#1e1e1ebf;border-bottom-color:#ffffff14}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.status-bar{background:#ffffff80;border-top:1px solid #00000014;color:#666;font-size:.85rem;height:auto;order:2;padding:4px 16px}.app-shell[data-theme=dark] .status-bar{background:#1e1e1e80;border-top-color:#ffffff14;color:#aaa}.shapes-hover-zone{width:10px;z-index:19}.shapes-hover-zone,.shapes-panel{height:100%;position:absolute;right:0;top:0}.shapes-panel{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffbf;border-left:1px solid #00000014;border-right:none;left:auto;overflow:hidden;transition:width .25s ease;width:8px;z-index:20}.shapes-panel.dragging,.shapes-panel.expanded,.shapes-panel.pinned,.shapes-panel:hover{width:220px}.app-shell[data-theme=dark] .shapes-panel{background:#1e1e1ecc;border-left:1px solid #ffffff14}.shapes-content{align-items:flex-start;display:flex;flex-direction:column;gap:10px;height:100%;overflow-x:hidden;overflow-y:auto;padding:12px;width:220px}.shapes-content::-webkit-scrollbar{width:6px}.shapes-content::-webkit-scrollbar-track{background:#0000}.shapes-content::-webkit-scrollbar-thumb{background:#0003;border-radius:3px}.shapes-content::-webkit-scrollbar-thumb:hover{background:#00000059}.app-shell[data-theme=dark] .shapes-content::-webkit-scrollbar-thumb{background:#fff3}.app-shell[data-theme=dark] .shapes-content::-webkit-scrollbar-thumb:hover{background:#ffffff59}.shapes-panel-hint{background:#fffc;border:1px solid #00000014;border-radius:999px;color:#334155;font-size:.68rem;font-weight:700;letter-spacing:.02em;padding:5px 8px;pointer-events:none;position:absolute;right:14px;top:14px;transition:opacity .2s ease,transform .2s ease;z-index:18}.shapes-panel-hint.hidden{opacity:0;transform:translateX(8px)}.app-shell[data-theme=dark] .shapes-panel-hint{background:#1e1e1edb;border-color:#ffffff14;color:#dbe7ff}.shapes-panel-head{align-items:center;display:flex;justify-content:space-between}.shapes-panel-title{color:#334155;font-size:.8rem;font-weight:700;letter-spacing:.02em}.app-shell[data-theme=dark] .shapes-panel-title{color:#e2e8f0}.shapes-pin-btn{background:#ffffffa8;border:1px solid #0000001f;border-radius:8px;color:#334155;cursor:pointer;font-size:.74rem;font-weight:600;height:30px;padding:0 10px}.shapes-pin-btn:hover{background:#2563eb1f;border-color:#2563eb40}.shapes-pin-btn.active{background:linear-gradient(135deg,#2563eb,#7c3aed);border-color:#0000;color:#fff}.app-shell[data-theme=dark] .shapes-pin-btn{background:#3c3c3cb3;border-color:#ffffff24;color:#e2e8f0}.shapes-group{display:flex;flex-direction:column;gap:6px}.shapes-group-title{color:#64748b;font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.app-shell[data-theme=dark] .shapes-group-title{color:#94a3b8}.shapes-group-items{display:flex;flex-direction:column;gap:6px}.shape-item{align-items:center;background:#fff9;border:1px solid #0000;border-radius:10px;color:#1f2937;cursor:grab;display:flex;gap:10px;height:42px;padding:0 12px;text-align:left;transition:width .25s ease,transform .2s ease}.shape-item:hover{background:#2563eb1f;border-color:#2563eb33;transform:translateX(-4px)}.shape-item:active{cursor:grabbing}.shape-item.active{background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}.shape-item-icon{line-height:1;text-align:center;width:16px}.shape-item-label{font-size:.82rem;font-weight:600}.app-shell[data-theme=dark] .shape-item{background:#3c3c3cb8;color:#e5e7eb}.app-shell[data-theme=dark] .shape-item:hover{background:#2563eb3d}.draw-width-slider,.eraser-slider{align-items:center;background:#fffc;border:1px solid #0000001a;border-radius:14px;display:flex;flex-direction:column;gap:10px;left:14px;padding:10px 0;position:absolute;top:50%;transform:translateY(-50%);width:38px;z-index:30}.app-shell[data-theme=dark] .draw-width-slider,.app-shell[data-theme=dark] .eraser-slider{background:#1e1e1ed1;border-color:#ffffff1a}.draw-width-slider-track,.eraser-slider-track{border-radius:999px;cursor:ns-resize;height:120px;outline:none;position:relative;width:4px}.eraser-slider-track{background:linear-gradient(0deg,#ef44442e,#ef4444d1)}.draw-width-slider-track{background:linear-gradient(0deg,#3b82f62e,#3b82f6d6)}.eraser-slider-track:focus-visible{box-shadow:0 0 0 2px #ef44443d}.draw-width-slider-track:focus-visible{box-shadow:0 0 0 2px #3b82f63d}.draw-width-slider-thumb,.eraser-slider-thumb{border:1px solid #ffffffe6;border-radius:999px;height:12px;left:50%;position:absolute;transform:translate(-50%);transition:transform .12s ease,box-shadow .16s ease;width:12px}.eraser-slider-thumb{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.draw-width-slider-thumb{background:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.draw-width-slider-thumb.dragging,.draw-width-slider-thumb:hover,.eraser-slider-thumb.dragging,.eraser-slider-thumb:hover{transform:translate(-50%) scale(1.12)}.eraser-slider-thumb.dragging,.eraser-slider-thumb:hover{box-shadow:0 0 0 4px #ef444447,0 4px 10px #ef444452}.draw-width-slider-thumb.dragging,.draw-width-slider-thumb:hover{box-shadow:0 0 0 4px #3b82f647,0 4px 10px #3b82f652}.draw-width-slider-value,.eraser-slider-value{color:#334155;font-size:.68rem;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none}.app-shell[data-theme=dark] .draw-width-slider-value,.app-shell[data-theme=dark] .eraser-slider-value{color:#e2e8f0}@media (max-width:960px){.app-shell{height:100dvh}.shapes-hover-zone,.shapes-panel,.shapes-panel-hint{display:none}.top-toolbar{gap:3px;min-height:40px;padding:3px 4px}.toolbar-left{display:none}.toolbar-center{gap:2px}.toolbar-field-label{display:none}.toolbar-field{gap:2px}.tool-btn,.toolbar-icon-btn{border-radius:6px;font-size:11px;height:26px;width:26px}.toolbar-icon-btn.mode-btn{font-size:.58rem;min-width:42px;padding:0 4px}.mode-label-full{display:none}.mode-label-short{display:inline}.toolbar-color{height:22px;width:22px}.toolbar-divider{height:14px;margin:0 1px}.draw-width-slider,.eraser-slider{left:8px;padding:8px 0;width:34px}.draw-width-slider-track,.eraser-slider-track{height:96px}.draw-width-slider-value,.eraser-slider-value{font-size:.62rem}}@media (max-width:720px){.top-toolbar{gap:2px;min-height:38px;padding:2px 3px}.toolbar-right{gap:2px}.toolbar-left{gap:4px}.brand{font-size:.68rem;letter-spacing:.01em}.tool-btn,.toolbar-icon-btn{border-radius:6px;font-size:10px;height:24px;width:24px}.toolbar-icon-btn.mode-btn{font-size:clamp(.52rem,.75vw,.68rem);min-width:clamp(42px,4.8vw,54px);padding:0 clamp(3px,.5vw,6px);width:auto}.toolbar-field{border-radius:6px;height:24px;padding:0 2px}.toolbar-select{font-size:.62rem;height:16px;min-width:30px}.toolbar-color{height:20px;width:20px}.draw-width-slider,.eraser-slider{left:6px;padding:6px 0;width:30px}.draw-width-slider-track,.eraser-slider-track{height:82px}.draw-width-slider-thumb,.eraser-slider-thumb{height:10px;width:10px}.draw-width-slider-value,.eraser-slider-value{font-size:.56rem}.toolbar-divider{height:14px;margin:0 1px}.status-bar{font-size:.78rem;padding:4px 10px}.mobile-tools-btn,.mobile-tools-panel{display:none!important}}
/*# sourceMappingURL=main.b47089dd.css.map*/