@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff) format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2) format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff) format("woff")}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff")}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff")}:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);--ui: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--dim: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--paper: #edf2f4;--panel: #f8fafb;--ink: #112336;--muted: #5d7184;--line: #cfdae1;--grid: #dde7ec;--grid2: #c4d3dc;--wall: #112336;--accent: #1f5eff;--accent-ink: #ffffff;--room: rgba(31, 94, 255, .08);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0c2644;--panel: #11335a;--ink: #e8f1ff;--muted: #8fb0d6;--line: #1f4a7d;--grid: #15396a;--grid2: #1f4d86;--wall: #e8f1ff;--accent: #ffd23f;--accent-ink: #1a1400;--room: rgba(255, 255, 255, .06);color-scheme:dark}}:root[data-theme=dark]{--paper: #0c2644;--panel: #11335a;--ink: #e8f1ff;--muted: #8fb0d6;--line: #1f4a7d;--grid: #15396a;--grid2: #1f4d86;--wall: #e8f1ff;--accent: #ffd23f;--accent-ink: #1a1400;--room: rgba(255, 255, 255, .06);color-scheme:dark}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}*,*:before,*:after{box-sizing:inherit}[hidden]{display:none!important}body{margin:0;height:100%;background:var(--paper);color:var(--ink);font:400 14px/1.35 var(--ui);overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--panel);border-bottom:1px solid var(--line)}.sp{flex:1}.seg{display:flex;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:2px}.seg button{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);padding:8px 12px;border-radius:8px;font-weight:600;font-size:15px}.seg button.on{background:var(--ink);color:var(--paper)}.ico{display:flex;align-items:center;justify-content:center;gap:4px;min-width:40px;height:40px;padding:0 9px;border:1px solid var(--line);background:var(--panel);border-radius:10px;font-weight:600}.ico:active{background:var(--paper)}.ico.arm{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button:disabled{opacity:.38;cursor:default}.settings{display:flex;align-items:center;gap:16px;padding:6px 10px;overflow-x:auto;white-space:nowrap;background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:none}.settings::-webkit-scrollbar{display:none}.settings label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.settings select{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:5px 6px;color:var(--ink);font-weight:500}.settings input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}#stage{position:relative;flex:1;min-height:0;background:var(--paper)}#cv{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}#cv.edit{cursor:default}#cv.view{cursor:grab}#cv.view:active{cursor:grabbing}.chip{position:absolute;left:10px;top:10px;pointer-events:none;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font:500 16px/1 var(--dim);letter-spacing:.2px}.zoom{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:6px}.zoom button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:0}.zoom button:active{background:var(--paper)}.zoom button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.hint{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:min(300px,calc(100% - 40px));text-align:center;pointer-events:none;color:var(--muted)}.hint strong{display:block;color:var(--ink);font-size:20px;font-weight:600;margin-bottom:4px}.dock{background:var(--panel);border-top:1px solid var(--line);padding:10px}.status{margin:0 0 8px;color:var(--muted);font-size:13px;min-height:2.7em}.row{display:flex;gap:10px;align-items:stretch}.lenbox{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:0 10px;min-width:0;flex:0 0 auto}.lenbox span{color:var(--muted);font-size:13px}.lenbox input{width:68px;min-width:0;border:0;background:transparent;font:600 22px/1 var(--dim);padding:10px 0;text-align:right}.lenbox input:focus-visible{outline:none}.lenbox:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.lenbox em{font-style:normal;color:var(--muted);font-size:14px;width:20px}.pad{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;flex:1;min-width:0}.pad button{height:46px;border:1px solid var(--ink);background:var(--panel);border-radius:10px;font-size:22px;line-height:1;padding:0}.pad button:active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.actions{display:flex;gap:8px;margin-top:8px}.btn{flex:1;height:40px;border:1px solid var(--line);background:var(--panel);border-radius:10px;font-weight:600;padding:0 12px}.btn:active{background:var(--paper)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.danger{color:var(--ink)}.row .btn{flex:1;height:auto;min-height:44px}.summary{display:flex;gap:8px}.summary>div{flex:1;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px 10px}.summary>div.wide{flex:1.5}.summary span{display:block;color:var(--muted);font-size:12px}.summary strong{display:block;font:600 22px/1.15 var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:480px){.seg button{padding:8px 9px;min-height:40px;min-width:40px;justify-content:center}.seg button .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.top{gap:4px;padding:8px}.row.axis{flex-wrap:wrap;gap:6px}.row.axis .btn{flex:1 1 30%;white-space:nowrap}}.btn.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.row.axis{margin-top:8px}.row.axis .btn{min-height:40px}.fld{flex:1;min-width:0;border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:4px 10px 6px}.fld:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.fld span{display:block;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fld div{display:flex;align-items:baseline;gap:4px}.fld input{flex:1;min-width:0;border:0;background:transparent;font:600 20px/1.2 var(--dim);padding:0}.fld input:focus-visible{outline:none}.fld em{font-style:normal;color:var(--muted);font-size:13px}.segb{display:flex;flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.segb button{flex:1;min-height:44px;border:0;background:var(--panel);font-weight:600;padding:0 4px;font-size:14px}.segb button+button{border-left:1px solid var(--line)}.segb button.on{background:var(--ink);color:var(--paper)}#openRow .row+.row{margin-top:8px}.row.axis .btn{padding:0 6px;font-size:14px}.btn.arm{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.namechip{pointer-events:auto;cursor:pointer;color:var(--ink);max-width:calc(100% - 70px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.namechip:active{background:var(--paper)}#hud{top:46px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:center}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#08142280}.drawer{position:relative;width:min(520px,100%);max-height:82%;overflow-y:auto;display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);border-bottom:0;border-radius:16px 16px 0 0;padding:14px 14px calc(14px + env(safe-area-inset-bottom,0px))}.drawer-head{display:flex;align-items:center;justify-content:space-between}.drawer h2{margin:0;font-size:19px;font-weight:600}.drawer .btn{flex:none;min-height:44px}.plans{list-style:none;margin:0;padding:0;overflow-y:auto;min-height:96px;flex:1 1 auto;display:flex;flex-direction:column;gap:6px}.plan{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:12px;padding:3px;background:var(--paper)}.plan.cur{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.plan .open{flex:1;min-width:0;text-align:left;border:0;background:transparent;padding:7px 10px;display:flex;flex-direction:column;gap:1px}.pname{font-weight:600;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmeta{color:var(--muted);font-size:13px}.mini{min-width:38px;height:38px;border:0;background:transparent;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--muted);padding:0}.mini:active{background:var(--line)}.mini.arm{background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:13px;padding:0 10px}.rename{flex:1;min-width:0;font-size:16px;font-weight:600;padding:9px 10px;border:1px solid var(--accent);border-radius:8px;background:var(--panel);margin:2px}.note{margin:0;color:var(--muted);font-size:13px}.io{border:1px solid var(--line);border-radius:12px;background:var(--paper)}.io summary{padding:12px;font-weight:600;cursor:pointer;list-style-position:inside}.io-body{display:flex;flex-direction:column;gap:8px;padding:0 10px 10px}.io-row{display:flex;gap:8px}.io-row .btn{min-height:44px;height:auto;padding:6px 10px}.io textarea{width:100%;resize:vertical;min-height:70px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:8px 10px;font:12px/1.35 ui-monospace,Menlo,Consolas,monospace}.io select{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-weight:500}.svgrow{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.svgprev{background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px;max-height:260px;overflow:auto}.svgprev svg{display:block;width:100%;height:auto;max-height:240px}#printArea{display:none}@media print{html,body{height:auto!important;overflow:visible!important;background:#fff!important}:root{padding:0!important}body>*{display:none!important}body>#printArea{display:block!important}#printArea .pg{display:flex;align-items:center;justify-content:center;overflow:hidden}#printArea svg{display:block}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.sr{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}#root{height:100%}#app{display:flex;flex-direction:column;height:100%;height:100dvh;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.gate{min-height:100%;display:grid;place-items:center;padding:24px 16px}.gate .card{width:min(380px,100%);display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px}.gate h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.2px}.gate p{margin:0;color:var(--muted)}.gate .mark{width:34px;height:34px;color:var(--accent);stroke-width:1.8}.gate .btn{height:46px;flex:none;font-size:16px}.gate .err{color:var(--ink);border:1px solid var(--accent);border-radius:10px;padding:8px 10px}.gate .fine{font-size:13px}.acct{position:relative;font-weight:600;font-family:var(--dim);font-size:17px}.dot{position:absolute;right:5px;bottom:5px;width:9px;height:9px;border-radius:50%;background:var(--muted);border:2px solid var(--panel);box-sizing:content-box;display:none}.acct[data-sync=syncing] .dot,.acct[data-sync=offline] .dot,.acct[data-sync=signed-out] .dot,.acct[data-sync=error] .dot{display:block}.acct[data-sync=signed-out] .dot,.acct[data-sync=error] .dot{background:var(--accent)}.menu{position:fixed;z-index:30;right:10px;top:calc(env(safe-area-inset-top,0px) + 58px);width:min(300px,calc(100% - 20px));display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;box-shadow:0 10px 30px #08142240}.menu .who{margin:0;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu .btn{flex:none;height:44px;display:flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}.menurow{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:13px}.menurow .segb{flex:0 1 190px}.menurow .segb button{min-height:38px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.library{margin-top:8px}.libcats{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:6px}.libcats::-webkit-scrollbar{display:none}.libcats button{flex:none;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 12px;font-weight:600;font-size:13px}.libcats button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.libitems{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px;max-height:168px;overflow-y:auto}.libitem{text-align:left;border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:6px 10px;min-height:44px}.libitem strong{display:block;font-size:14px;font-weight:600}.libitem span{display:block;color:var(--muted);font-size:12px}.libitem.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.libitem.on span{color:inherit}#itemRow .row+.row{margin-top:8px}#itemTitle{margin:0 0 8px}.panes{flex:1;min-height:0;display:flex}.panes>#stage,.panes>#stage3d{flex:1;min-width:0}.panes.split>#stage3d{border-left:1px solid var(--line)}#stage3d{position:relative;background:#eef1f5}#stage3d canvas{display:block;touch-action:none}.hint3d{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;height:fit-content;width:min(320px,calc(100% - 40px));text-align:center;color:var(--muted)}.panebtn{left:auto;right:10px;pointer-events:auto;cursor:pointer}.panebtn.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.kitchenRow{margin-top:8px}.fld select{width:100%;border:0;background:transparent;font:600 18px/1.2 var(--dim);color:var(--ink);padding:0}#kitchenPanel .note{margin:8px 0 0}.dock{max-height:42%;overflow-y:auto;overscroll-behavior:contain;flex:none}.dock .status{position:sticky;top:-10px;margin-top:-10px;padding-top:10px;background:var(--panel);z-index:1}@media(orientation:landscape)and (max-height:520px){#app{display:grid;grid-template-columns:minmax(0,1fr) min(360px,42vw);grid-template-rows:auto auto minmax(0,1fr)}#app>.top,#app>.settings{grid-column:1 / -1}#app>.panes{grid-column:1;grid-row:3}#app>.dock{grid-column:2;grid-row:3;max-height:none;border-top:0;border-left:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain;min-height:0}.dock .row{flex-wrap:wrap}.dock .row>.btn,.dock .row>.fld,.dock .row>.lenbox{flex:1 1 40%}.dock .row>.pad,.dock .row>.segb{flex:1 1 100%}.settings,.top{padding:4px 10px}}.panes.stack{flex-direction:column}.panes.stack>#stage3d{border-left:0;border-top:1px solid var(--line)}#stage,#stage3d{container-type:size}@container (max-height: 340px){.zoom{gap:4px;bottom:6px}.zoom button{width:36px;height:36px}.panebtn{right:56px}}.settings.more{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 36px),transparent)}@media(pointer:coarse){.settings select,.fld select{min-height:40px;font-size:16px}.settings label:has(input[type=checkbox]){min-height:40px}.settings input[type=checkbox]{width:22px;height:22px}.chip.namechip,.panebtn{min-height:40px;display:flex;align-items:center}.libcats button{min-height:40px}.row.axis .btn{min-width:44px}input,select,textarea{font-size:max(16px,1em)}}
