:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#15171c;--panel:#1e2128;--line:#2c313b;--text:#e7eaf0;--mute:#9aa3b2;--accent:#4f8cff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overflow:hidden}.app{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);display:grid;position:relative}.topbar{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:16px;min-height:44px;padding:0 16px;display:flex}.brand{font-weight:650}.hint{color:var(--mute);font-size:14px}.viewport{min-height:0;position:relative;overflow:hidden}.viewport-canvas{touch-action:none;width:100%;height:100%;display:block}.footer{background:var(--panel);border-top:1px solid var(--line);min-height:44px;color:var(--mute);flex-wrap:wrap;align-items:center;gap:6px 18px;padding:6px 16px;font-size:13px;display:flex}.footer .version{margin-left:auto}.update{left:50%;bottom:calc(60px + env(safe-area-inset-bottom));background:var(--accent);color:#fff;border:0;border-radius:22px;min-height:44px;padding:0 20px;font-size:15px;font-weight:600;position:absolute;transform:translate(-50%)}.hintcard{text-align:center;min-width:0;color:var(--mute);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:14px;overflow:hidden}.hintcard b{color:var(--text)}.chip{border:1px solid var(--line);min-height:32px;color:var(--mute);white-space:nowrap;border-radius:16px;align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.brand-logo{vertical-align:middle;flex:none;width:30px;height:30px;margin-right:8px}.chip-warn{color:#f0b850;background:0 0;border-color:#e0a030;min-height:44px;font-weight:600}.toolbar{background:var(--panel);border-top:1px solid var(--line);align-items:center;gap:10px;padding:6px 12px;display:flex;overflow-x:auto}.tool{min-width:56px;min-height:48px;color:var(--text);background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;display:inline-flex}.tool.on,.tool:active{color:#9cc0ff;background:#2b3140}.seg{border:1px solid var(--line);border-radius:10px;margin:0 auto;display:inline-flex;overflow:hidden}.seg button{border:0;border-right:1px solid var(--line);min-height:44px;color:var(--mute);white-space:nowrap;background:0 0;padding:0 14px;font-size:14px}.seg button:last-child{border-right:0}.seg button.on{color:#cfe0ff;background:#263451;font-weight:600}.seg button:disabled{opacity:.5}.btn{min-height:44px;color:var(--text);background:#262b35;border:1px solid #3a4252;border-radius:10px;padding:0 16px;font-size:14px}.btn:active{background:#323a4a}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.speed{border:1px solid var(--line);max-width:min(460px,100% - 160px);color:var(--mute);background:#14161ce0;border-radius:12px;gap:6px;padding:10px 12px;font-size:13px;display:grid;position:absolute;top:12px;left:12px}.speed b{color:var(--text)}.speed .btn{justify-self:start}.selchip{white-space:nowrap;background:#14161ceb;border:1px solid #2f5fb3;border-radius:14px;align-items:center;gap:14px;padding:6px 6px 6px 16px;font-size:14px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}@media (max-width:700px){.hintcard{display:none}.chip{margin-left:auto}}button,input,select{font:inherit}button{appearance:none;touch-action:manipulation}.hintcard.sketching{border-color:#2f5fb3}.numchip.pattern{white-space:normal;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 160px);left:calc(50% + 70px)}.numchip .patgroup{border-left:1px solid var(--line);align-items:center;gap:8px;padding-left:8px;display:inline-flex}.numchip.pattern input{width:64px}.numchip .mute{color:var(--mute)}.skstatus{color:var(--mute);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.skmsg{z-index:6;pointer-events:none;background:#462814eb;border:1px solid #a8642c;border-radius:12px;padding:6px 12px;font-size:14px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.numchip{white-space:nowrap;background:#14161cf0;border:1px solid #2f5fb3;border-radius:14px;align-items:center;gap:8px;padding:6px 6px 6px 14px;font-size:14px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.numchip label{align-items:center;gap:8px;display:flex}.numchip input{width:92px;min-height:40px;color:var(--text);-webkit-user-select:text;user-select:text;background:#11131a;border:1px solid #3a4252;border-radius:8px;padding:0 10px;font-size:17px}.btn:disabled,.tool:disabled{opacity:.4}.btn.primary{background:#2457c5;border-color:#3a6fe0;align-items:center;gap:6px;font-weight:600;display:inline-flex}.toolbar-gap{flex:1}.numchip.relate{white-space:normal;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 160px);left:calc(50% + 70px)}.btn.tagbtn{background:#3a2c14;border-color:#a8742c;border-radius:18px;min-height:36px;padding:0 10px;font-size:13px}.rail{z-index:5;scrollbar-width:none;pointer-events:none;flex-direction:column;gap:8px;max-height:calc(100% - 20px);display:flex;position:absolute;overflow:hidden auto}.rail::-webkit-scrollbar{display:none}.rail.left{align-items:flex-start;top:10px;left:10px}.rail.right{align-items:flex-end;top:10px;right:10px}.rail.left{max-height:calc(100% - 160px)}.rail-hint{pointer-events:none;max-width:150px;color:var(--mute);background:#1e2128db;border-radius:10px;padding:6px 10px;font-size:12px}.rail-group{pointer-events:auto;flex-direction:column;gap:2px;display:flex}.rail.right .rail-group{align-items:flex-end}.rail-group.row{flex-direction:row;gap:6px}.rail-item{align-items:center;gap:8px;display:flex}.rail-item.right{flex-direction:row-reverse}.rail-btn{width:44px;height:42px;color:var(--text);background:#242832f5;border:1px solid #343a46;border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.rail-btn.small{border-radius:10px;width:36px;height:34px}.rail-btn.on{color:#cfe0ff;background:#263451;border-color:#3d6fd6}.rail-btn:active{background:#323a4a}.rail-btn:disabled{opacity:.38}.rail-corner{background:linear-gradient(135deg,#0000 55%,#9aa3b2 56%);border-radius:0 0 9px;width:14px;height:14px;position:absolute;bottom:2px;right:2px}.rail-label{white-space:nowrap;background:#1e2128db;border:1px solid #2c313b;border-radius:10px;flex-direction:column;justify-content:center;min-height:34px;padding:3px 10px;font-size:13px;font-weight:600;line-height:1.15;display:inline-flex}.rail-label small{color:var(--mute);font-size:11px;font-weight:400}.rail-label.off{color:#6f7787}.rail-plane{pointer-events:none;color:var(--mute);white-space:nowrap;background:#1e2128db;border:1px dashed #3a4252;border-radius:10px;padding:4px 10px;font-size:12px}.rail-plane.small{white-space:normal;text-align:center;max-width:44px;padding:3px 4px;font-size:10px}.flyout-scrim{z-index:7;position:fixed;inset:0}.flyout,.menu{z-index:8;background:#1e2128fa;border:1px solid #3a4252;border-radius:14px;flex-direction:column;gap:2px;min-width:200px;max-height:calc(100% - 20px);padding:6px;display:flex;position:absolute;overflow-y:auto;box-shadow:0 10px 30px #00000073}.flyout{top:10px;left:64px}.labels .flyout{left:210px}.flyout.right{top:10px;left:auto;right:64px}.labels .flyout.right{right:210px}.menu{max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);top:46px;left:120px}.flyout-item{min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:10px;flex-direction:column;justify-content:center;align-items:flex-start;padding:4px 12px;font-size:15px;display:flex}.flyout-item small{color:var(--mute);font-size:12px}.flyout-item.on{color:#cfe0ff;background:#263451}.flyout-item:active{background:#323a4a}.flyout-item:disabled{opacity:.45}.sheet{z-index:9;background:#1e2128fa;border:1px solid #3a4252;border-radius:16px;width:min(360px,100% - 24px);padding:10px 12px 14px;position:absolute;box-shadow:0 10px 30px #00000073}.sheet.snap-panel{top:10px;right:64px}.labels .sheet.snap-panel{right:210px}.sheet.items{z-index:10;top:10px;left:10px}.sheet.about{top:40px;left:50%;transform:translate(-50%)}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.sheet-title{letter-spacing:.04em;color:var(--mute);margin:10px 4px 4px;font-size:12px}.sheet-box{background:#22262f;border-radius:12px;overflow:hidden}.snap-row,.item-row{border-bottom:1px solid #2c313b;align-items:center;gap:10px;min-height:48px;padding:4px 12px;font-size:15px;display:flex}.snap-row span,.item-row span{flex:1}.snap-row:last-child,.item-row:last-child{border-bottom:0}.mute{color:var(--mute)}input.switch{appearance:none;background:#3a4252;border-radius:15px;flex:none;width:50px;height:30px;margin:0;transition:background .15s;position:relative}input.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}input.switch:checked{background:#2457c5}input.switch:checked:after{transform:translate(20px)}.hintcard-gap{flex:1}.numchip.pattern,.numchip.relate{max-width:calc(100% - 140px);left:50%}.numchip.relate.raised{bottom:74px}.flyout-item.tile{flex-direction:row;justify-content:flex-start;align-items:center;gap:12px;padding:4px 8px}.tile-icon{background:#2b3140;border-radius:12px;flex:none;justify-content:center;align-items:center;width:52px;height:46px;display:inline-flex}.flyout-item.tile.on .tile-icon{color:#fff;background:#3d6fd6}.tile-text{flex-direction:column;display:flex}.tile-text small{color:var(--mute);font-size:12px}.oppanel{z-index:6;background:#1e2128f7;border:1px solid #3a4252;border-radius:16px;flex-direction:column;gap:8px;width:min(720px,100% - 24px);padding:10px 12px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000073}.op-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.op-body{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.op-foot{justify-content:flex-end;align-items:center;gap:8px;display:flex}.op-foot .mute{flex:1;font-size:13px}.op-error{background:#462814eb;border:1px solid #a8642c;border-radius:10px;padding:6px 10px;font-size:14px}.opfield{align-items:center;gap:6px;font-size:14px;display:inline-flex}.opfield input{width:80px;min-height:40px;color:var(--text);-webkit-user-select:text;user-select:text;background:#11131a;border:1px solid #3a4252;border-radius:8px;padding:0 10px;font-size:17px}.opfield-num{align-items:stretch;gap:2px;display:inline-flex}.opfield-num input{text-align:center;border-radius:0}.opfield-step{width:32px;min-height:40px;color:var(--text);background:#1a1e29;border:1px solid #3a4252;flex:none;font-size:18px;line-height:1}.opfield-step:first-child{border-radius:8px 0 0 8px}.opfield-num input+.opfield-step{border-radius:0 8px 8px 0}.opfield-num input:not(:first-child){border-left:none}.opfield-step:active{background:#262c3b}.seg.small{margin:0}.seg.small button{min-height:40px;padding:0 10px;font-size:13px}.btn.on{color:#cfe0ff;background:#263451;border-color:#3d6fd6}.menu-title{letter-spacing:.04em;color:var(--mute);margin:8px 12px 2px;font-size:12px}.tool:disabled{opacity:.38}.floatbar{z-index:6;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));background:#1e2128f5;border:1px solid #3a4252;border-radius:16px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:8px 10px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 30px #00000073}.finishbtn{z-index:6;right:calc(14px + env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));position:absolute}.skstatus.float{z-index:5;right:calc(14px + env(safe-area-inset-right));bottom:calc(66px + env(safe-area-inset-bottom));pointer-events:none;background:#14161ccc;border-radius:10px;max-width:50%;padding:5px 10px;position:absolute}.status-line.show{z-index:6;max-width:calc(100% - 24px);color:var(--mute);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#1e2128f0;border:1px solid #3a4252;border-radius:12px;gap:12px;padding:6px 12px;font-size:13px;display:flex;position:absolute;top:56px;left:50%;overflow:hidden;transform:translate(-50%)}.status-line.show .version{display:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.speed{top:10px;left:auto;right:64px}.labels .speed{right:160px}.handle-label{z-index:7;will-change:transform;background:#fff;border:2px solid #3d6fd6;border-radius:12px;align-items:center;gap:6px;padding:4px;display:flex;position:absolute;top:0;left:0;box-shadow:0 4px 14px #00000059}.hl-dist{color:#11131a;align-items:baseline;gap:3px;font-weight:700;display:inline-flex}.hl-dist input{color:#11131a;text-align:center;-webkit-user-select:text;user-select:text;background:#eef2fb;border:0;border-radius:8px;width:64px;min-height:36px;font-size:18px;font-weight:700}.hl-dist span{font-size:12px}.hl-op{color:#11131a;background:#fff;border:1px solid #c9d3ea;border-radius:8px;min-height:36px;padding:0 8px;font-size:16px}.menu{gap:0;min-width:280px;padding:6px 0}.menu-row{min-height:48px;color:var(--text);text-align:left;background:0 0;border:0;border-top:1px solid #2c313b;justify-content:space-between;align-items:center;gap:16px;padding:6px 16px;font-size:16px;display:flex}.menu-row span{flex-direction:column;display:flex}.menu-row small{color:var(--mute);font-size:12px}.menu-row:disabled{color:#8a93a3}.menu-row:active:not(:disabled){background:#323a4a}.menu-gap{background:#00000040;height:8px}small.block{font-size:12px;display:block}.help-search{width:100%;min-height:40px;color:var(--text);box-sizing:border-box;background:#11131a;border:1px solid #3a4252;border-radius:8px;margin:8px 0 0;padding:0 12px;font-size:15px;display:block}.help-list{color:var(--text);gap:8px;padding:10px 12px;font-size:14px;display:grid}.linkrow{width:100%;color:var(--text);text-align:left;background:0 0;border:0}.linkrow:disabled{color:#8a93a3}.hl-cut{color:#b3261e;padding:0 10px;font-weight:700}.oppanel{border-radius:14px;gap:4px;width:auto;max-width:calc(100% - 24px);padding:6px 6px 6px 12px}.op-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.op-note{white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-size:13px;overflow:hidden}.op-x{width:36px;height:36px;color:var(--text);background:#262b35;border:1px solid #3a4252;border-radius:10px;font-size:15px}.oppanel .seg.small button,.oppanel .btn{min-height:36px;padding:0 10px;font-size:13px}.oppanel .opfield input{width:64px;min-height:36px}.oppanel .opfield-step{width:28px;min-height:36px}.above-sel .oppanel{bottom:74px}.btn.small{min-height:34px;padding:0 10px;font-size:13px}.btn.danger{white-space:normal;background:#5a1f1a;border-color:#b3261e;max-width:180px}.item-row .btn.small+.btn.small,.item-row .rail-btn.small+.btn.small{margin-left:2px}.sheet.history{z-index:10;width:min(320px,100% - 24px);max-height:min(42%,100% - 84px);inset:auto 10px 64px auto;overflow-y:auto}.history-dock{z-index:10;border:1px solid var(--line);min-height:44px;color:var(--text);font:inherit;background:#1e2128f5;border-radius:12px;align-items:center;gap:8px;padding:0 14px;font-size:15px;display:flex;position:absolute;bottom:10px;right:10px}.history-dock.on{border-color:var(--accent);background:#263451}.hist-list{flex-direction:column;display:flex}.hist-row{border-bottom:1px solid #2c313b;flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;padding:4px 8px;display:flex}.hist-row:last-child{border-bottom:0}.hist-row.off .hist-name{color:#6f7787;text-decoration:line-through}.hist-n{text-align:right;width:20px;font-size:12px}.hist-name{min-width:90px;color:var(--text);text-align:left;background:0 0;border:0;flex:1;padding:6px 4px;font-size:15px}.hist-name-input,.hist-size input{min-height:34px;color:var(--text);-webkit-user-select:text;user-select:text;background:#11131a;border:1px solid #3a4252;border-radius:8px;padding:0 8px;font-size:16px}.hist-name-input{flex:1;min-width:90px}.hist-size{align-items:center;gap:4px;font-size:12px;display:inline-flex}.hist-size input{width:64px}.brand.linkish{color:var(--text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:220px;padding:0;font-size:16px;font-weight:650;overflow:hidden}.print .snap-row.good>span:last-child{color:#2f9e44}.print .snap-row.bad>span:last-child{color:#e5484d}.print .snap-row>span:last-child{text-align:right;align-items:center;gap:8px;margin-left:auto;display:inline-flex}.print-bed,.print-num{align-items:center;gap:4px;display:inline-flex}.print-num input{text-align:right;width:4.2em;font:inherit;border:1px solid var(--line);background:var(--bg);color:inherit;border-radius:6px;padding:4px 6px}.print .small{margin:8px 2px 0;font-size:12px}.sheet-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.library .small{margin:0 2px 8px;font-size:12px}.lib-select{font:inherit;border:1px solid var(--line);background:var(--bg);color:inherit;border-radius:6px;min-width:6em;padding:5px 8px}.sheet{overscroll-behavior:contain;max-height:calc(100% - 20px);overflow-y:auto}.sheet.about{max-height:calc(100% - 50px)}.menu,.flyout{overscroll-behavior:contain;max-width:calc(100% - 20px)}.topbar{min-width:0}.brand{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (max-width:560px){.rail-label,[data-testid=rail-labels]{display:none}.labels .flyout{left:64px}.labels .flyout.right,.labels .sheet.snap-panel{right:64px}.topbar{gap:6px;padding:0 8px}.brand{max-width:34vw}.chip{display:none}.menu{min-width:0;left:8px;right:8px}}.item-name{min-height:40px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex:1;padding:0}.item-row.on{background:#263451;border-radius:10px}.home{z-index:50;background:radial-gradient(900px 520px at 50% -10%, #4f8cff2e, transparent 70%), radial-gradient(700px 420px at 100% 110%, #d9a4411a, transparent 70%), var(--bg);color:var(--text);position:fixed;inset:0}.splash{--wait:.45s;flex-direction:column;justify-content:center;align-items:center;gap:22px;display:flex}.splash-logo{filter:drop-shadow(0 18px 30px #0000008c)drop-shadow(0 0 40px #4f8cff33);width:180px;height:180px;animation:logo-in .5s var(--wait) cubic-bezier(.2, .8, .2, 1) both}.sp-sketch{stroke-dasharray:1;stroke-dashoffset:1px;animation:sp-draw .55s calc(var(--wait) + 50ms) ease-in-out forwards, sp-out .3s calc(var(--wait) + 1s) ease-in forwards}.sp-dot{transform-box:fill-box;transform-origin:50%;animation:sp-pop .25s ease-out both, sp-out .3s calc(var(--wait) + 1s) ease-in forwards}.sp-facet{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.28s cubic-bezier(.2,.8,.2,1) forwards sp-fold}@keyframes sp-fold{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}@keyframes sp-out{to{opacity:0}}@keyframes sp-draw{to{stroke-dashoffset:0}}@keyframes sp-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.splash *,.splash{animation-duration:10ms!important;animation-delay:0s!important}}.splash-name{letter-spacing:.02em;animation:fade-up .6s calc(var(--wait) + .25s) ease-out both;font-size:26px;font-weight:650}@keyframes logo-in{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.welcome{-webkit-overflow-scrolling:touch;overflow-y:auto}.welcome .home-inner{animation:.4s ease-out both fade-up}.home-inner{max-width:760px;padding:max(48px, env(safe-area-inset-top)) 16px max(32px, env(safe-area-inset-bottom));margin:0 auto}.home-head{align-items:center;gap:18px;margin:4vh 0 34px;display:flex}.home-logo{filter:drop-shadow(0 8px 16px #00000073);flex:none;width:72px;height:72px}.home-head h1{letter-spacing:.01em;margin:0 0 4px;font-size:30px;font-weight:700}.home-head p{margin:0;font-size:16px}.home-actions{grid-template-columns:1fr 1fr;gap:14px;display:grid}.home-card{border:1px solid var(--line);min-height:92px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:linear-gradient(#232731,#1b1e25);border-radius:18px;align-items:center;gap:16px;padding:18px 20px;transition:transform .12s,border-color .12s;display:flex}.home-card:active{transform:scale(.98)}.home-card.primary{background:linear-gradient(#2b4f9a,#1f3a75);border-color:#4f8cff99}.home-card svg{color:#cfe0ff;flex:none}.home-card span,.home-row-text{flex-direction:column;gap:3px;min-width:0;display:flex}.home-card b{font-size:19px}.home-card small,.home-row small{color:var(--mute);font-size:13px}.home-card.primary small{color:#c4d6ff}.home-card:disabled,.home-row:disabled{opacity:.7}.home-recent h2{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:36px 0 12px;font-size:14px;font-weight:600}.home-list{border:1px solid var(--line);background:#1a1d23;border-radius:16px;overflow:hidden}.home-row{border:0;border-top:1px solid var(--line);width:100%;min-height:64px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;align-items:center;gap:14px;padding:10px 16px;display:flex}.home-row:first-child{border-top:0}.home-row:active{background:#232731}.home-row-icon{color:#9fbcf5;background:#262b35;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.home-row-text b{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.home-row-go{color:var(--mute);margin-left:auto;font-size:24px}.home-empty{border:1px dashed var(--line);text-align:center;border-radius:16px;padding:22px 16px}@media (max-width:520px){.home-actions{grid-template-columns:1fr}}.sheet.items{width:min(250px,100% - 24px)}.item-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sheet.items .item-row{gap:6px;padding:4px 8px 4px 12px}.sheet.items .item-design .item-text{font-weight:600}.item-name{align-items:center;gap:6px;min-width:0;display:flex}.item-hint{flex:none;font-size:11px}.item-rename{border:1px solid var(--accent);min-width:0;min-height:40px;color:var(--text);font:inherit;-webkit-user-select:text;user-select:text;background:#15171c;border-radius:8px;flex:1;padding:0 10px}.item-del.armed{color:#fff;background:#b4373b;border-color:#d4555a;width:auto;padding:0 8px;font-size:13px;font-weight:600}.op-ok{color:#fff;min-height:40px;font:inherit;background:#2b4f9a;border:1px solid #4f8cffb3;border-radius:10px;flex:none;padding:0 14px;font-weight:600}.op-ok:disabled{opacity:.4}.move-label{white-space:nowrap;pointer-events:none;background:#14161beb;border:1px solid #3a4252;border-radius:10px;padding:6px 10px;font-size:15px;font-weight:600}.collision-chip{z-index:6;color:#ffd9d9;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#3c1416f0;border:1px solid #d4555a;border-radius:12px;max-width:min(640px,100% - 140px);padding:8px 14px;font-size:14px;position:absolute;top:10px;left:50%;overflow:hidden;transform:translate(-50%)}.flyout-head{width:100%;min-height:56px;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;font-size:17px;font-weight:600;display:flex}.flyout-head span{flex-direction:column;display:flex}.flyout-head small{color:var(--mute);font-size:12px;font-weight:400}.flyout-head svg{color:var(--mute);flex:none;transition:transform .15s}.flyout-head.open svg{transform:rotate(90deg)}.flyout-head.open{background:#232731}.constraint-chip{color:#ffe9b8;background:#3c2c10f0;border-color:#d9a441;top:58px}.sheet.constraints{width:min(400px,100% - 24px)}.con-row .item-text b{font-weight:600}.con-bad{color:#ffb84d}.con-num{border:1px solid var(--line);width:58px;min-height:36px;color:var(--text);font:inherit;text-align:right;-webkit-user-select:text;user-select:text;background:#15171c;border-radius:8px;flex:none;padding:0 6px}.con-grid{grid-template-columns:repeat(4,60px);gap:8px;padding:6px 10px 10px;display:grid}.con-tile{border:1px solid var(--line);color:#cfe0ff;background:#232731;border-radius:12px;place-items:center;width:60px;height:56px;display:grid}.con-tile:active:not(:disabled){background:#2b4f9a}.con-tile.on{color:#ffb3b3;border-color:#d4555a}.con-tile:disabled{opacity:.4}.con-sym{color:#cfe0ff;flex:none}@media (max-width:420px){.con-grid{grid-template-columns:repeat(3,60px)}}.measure-pick{border:1px solid var(--line);min-height:34px;color:var(--text);font:inherit;background:#15171c;border-radius:8px;padding:0 6px;font-weight:600}.item-row:has(.sketch-ask){flex-wrap:wrap}.sketch-ask{flex-direction:column;flex-basis:100%;gap:6px;padding:6px 0 4px;display:flex}.sketch-ask .btn{width:100%}.sheet.library{z-index:11;width:min(330px,100% - 84px);max-height:calc(100% - 20px);top:10px;left:70px;overflow-y:auto}.lib-head{min-height:48px;font-size:16px}.lib-item{border-bottom:1px solid #2c313b}.lib-item:last-child{border-bottom:0}.lib-row{align-items:center;gap:6px;padding-right:8px;display:flex}.lib-main{min-height:48px;color:var(--text);font:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:4px 12px;display:flex}.lib-ico{color:#9fbcf5;flex:none}.lib-info{border:1px solid var(--line);width:30px;height:30px;color:var(--mute);background:0 0;border-radius:50%;flex:none;font:italic 600 14px Georgia,serif}.lib-info.on{color:#fff;background:#2b4f9a;border-color:#4f8cff}.lib-note{color:var(--mute);margin:0 12px 10px 50px;font-size:13px}.account-inner{max-width:460px}.account-tabs{width:100%;margin-bottom:18px;display:flex}.account-tabs button{flex:1;min-height:44px}.account-form{gap:14px;display:grid}.account-names{grid-template-columns:1fr 1fr;gap:12px;display:grid}.account-form label{color:var(--mute);gap:6px;font-size:14px;display:grid}.account-form input{background:var(--panel);min-height:48px;color:var(--text);border:1px solid #3a4252;border-radius:10px;padding:0 14px;font-size:17px}.account-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.account-go{justify-content:center;min-height:50px;margin-top:4px;font-size:16px}.account-error{color:#ff8a8a;margin:0;font-size:14px}.home.account{z-index:60}.dim-overlay{pointer-events:none;z-index:6;position:absolute;inset:0;overflow:hidden}.dim-lines{width:100%;height:100%;position:absolute;inset:0}.dim-lines line{stroke:#9cc3ff;stroke-width:1.2px}.dim-lines path{fill:#9cc3ff}.dim-lines .on{stroke:#ffd24a}.dim-lines path.on{fill:#ffd24a}.dim-label{pointer-events:auto;will-change:transform;align-items:center;gap:4px;display:flex;position:absolute;top:0;left:0}.dim-num{color:#dbe8ff;text-shadow:0 0 3px #15171c,0 0 3px #15171c,0 0 2px #15171c;cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;padding:0 6px;font:600 14px/1 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.dim-num:active{color:#ffd24a}.dim-label.editing{color:#15171c;z-index:2;background:#fff;border:2px solid #3d6fd6;border-radius:12px;padding:4px;box-shadow:0 4px 14px #00000059}.dim-input{color:#15171c;background:#fff;border:1px solid #c5cfe0;border-radius:8px;width:80px;min-height:44px;padding:0 8px;font-size:17px}.dim-input.bad{background:#fff1f0;border-color:#e0483d}.dim-pre,.dim-unit{color:#4a5363;font-size:14px}.dim-btn{color:#15171c;background:#f2f5fa;border:1px solid #c5cfe0;border-radius:8px;min-width:44px;min-height:44px;font-size:16px}.dim-btn.on{color:#fff;background:#2457c5;border-color:#2457c5}.dim-lines .axis-pick{stroke:#ffd24a;stroke-width:3px;fill:none;opacity:.85}.snap-tag{color:#ffd24a;white-space:nowrap;pointer-events:none;visibility:hidden;will-change:transform;background:#15171ce0;border:1px solid #ffd24a;border-radius:8px;padding:3px 8px;font-size:12px;font-weight:600;position:absolute;top:0;left:0}.dim-num{touch-action:none}.dim-lines .rel-square{fill:none;stroke:#7ee0a1;stroke-width:1.6px}.dim-lines .rel-square.on{stroke:#ffd24a}.rel-mark{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.rel-glyph{pointer-events:auto;color:#7ee0a1;background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex;position:absolute;top:-22px;left:-22px}.rel-glyph svg{box-sizing:content-box;background:#15171cd9;border:1px solid #7ee0a18c;border-radius:5px;padding:2px}.rel-mark.open .rel-glyph{color:#ffd24a}.rel-glyph.ghost svg{display:none}.rel-remove{color:#15171c;white-space:nowrap;pointer-events:auto;background:#fff;border:1px solid #c5cfe0;border-radius:10px;min-height:44px;padding:0 12px;font-size:14px;position:absolute;top:-22px;left:18px;box-shadow:0 4px 14px #00000059}
