.ob-back{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#0a0a0c8c}.ob,.ob-guide{--ob-bg: #FBFAF7;--ob-ink: #151515;--ob-ink2: #5E5A53;--ob-line: #E3DED4;--ob-card: #FFFFFF;--ob-soft: #F1EEE7;--ob-accent: var(--accent, #2563EB);--ob-tint: rgba(37, 99, 235, .08);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif}.ob{width:min(960px,100vw);height:min(640px,100vh);position:relative;overflow:hidden;border-radius:14px;background:var(--ob-bg);color:var(--ob-ink);box-shadow:0 20px 60px #00000059;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}@media(prefers-color-scheme:dark){.ob,.ob-guide{--ob-bg: #1B1B1D;--ob-ink: #F7F4EE;--ob-ink2: #A8A39A;--ob-line: #34333A;--ob-card: #232327;--ob-soft: #2A2A2F}}.ob button,.ob-guide button{font-family:inherit;cursor:pointer;color:inherit}.ob button:disabled{opacity:.4;cursor:default}.ob button:focus-visible,.ob input:focus-visible{outline:2px solid var(--ob-accent);outline-offset:2px}.ob-plateau{background-color:#0e0e10;background-image:radial-gradient(circle at 1px 1px,rgba(247,244,238,.07) 1px,transparent 0);background-size:18px 18px}.ob-welcome{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;padding:24px;box-sizing:border-box}.ob-welcome h1{margin:0;font-size:44px;line-height:1.05;font-weight:700;letter-spacing:-.02em;color:#f7f4ee;text-align:center}.ob-welcome p{margin:0;max-width:520px;font-size:17px;line-height:1.45;color:#b4afa6;text-align:center;text-wrap:pretty}.ob-primary{height:40px;padding:0 20px;border:0;border-radius:10px;background:var(--ob-accent);color:#fff!important;font-size:14px;font-weight:600}.ob-primary.large{height:46px;padding:0 30px;border-radius:12px;font-size:16px}.ob-secondary{height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--ob-line);background:var(--ob-card);font-size:14px;font-weight:500}.ob-link{height:36px;padding:0 12px;border:0;background:transparent;font-size:14px}.ob-small{height:34px;padding:0 12px;border-radius:9px;border:1px solid var(--ob-line);background:var(--ob-card);font-size:13px}.ob-split{position:absolute;inset:0;display:flex}.ob-stage{width:420px;flex:none;position:relative;overflow:hidden}.ob-scene{position:absolute;left:0;top:0;width:420px;height:640px;transform-origin:0 0}.ob-mark{position:absolute;left:26px;top:24px;display:flex;align-items:center;gap:8px;color:#f7f4ee;font-size:15px;font-weight:600;z-index:1}.ob-caption{position:absolute;left:40px;width:340px;text-align:center;font-size:13px;line-height:1.45;color:#8f8a82;text-wrap:pretty}.ob-content{flex:1;min-width:0;display:flex;flex-direction:column;padding:26px 36px 24px 40px;box-sizing:border-box}.ob-head{height:32px;flex:none;display:flex;align-items:center;justify-content:space-between}.ob-overline{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ob-ink2)}.ob-body{flex:1;min-height:0;padding-top:22px;display:flex;flex-direction:column;overflow-y:auto}.ob-body h2{margin:0;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.015em}.ob-intro{margin:10px 0 20px;font-size:15px;line-height:1.5;color:var(--ob-ink2);text-wrap:pretty}.ob-foot{height:46px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px}.ob-dots{display:flex;align-items:center;gap:6px}.ob-dots span{height:6px;border-radius:3px;transition:width .3s,background .3s}.ob-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ob-choice{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;min-height:124px;text-align:left;border-radius:14px;border:1.5px solid var(--ob-line);background:var(--ob-card)}.ob-choice[aria-pressed=true],.ob-row[aria-pressed=true],.ob-corner[aria-pressed=true]{border-color:var(--ob-accent);background:var(--ob-tint)}.ob-choice.dashed{border-style:dashed}.ob-choice b,.ob-row b{font-size:15px}.ob-choice span,.ob-row small,.ob-detail{font-size:12.5px;line-height:1.4;color:var(--ob-ink2)}.ob-list{display:flex;flex-direction:column;gap:8px}.ob-row{display:flex;align-items:center;gap:12px;min-height:58px;padding:8px 14px;text-align:left;border-radius:12px;border:1.5px solid var(--ob-line);background:var(--ob-card)}.ob-row .ob-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ob-row .ob-dot{width:20px;height:20px;flex:none;border-radius:50%;border:1.5px solid var(--ob-line);box-sizing:border-box}.ob-row[aria-pressed=true] .ob-dot{border-color:var(--ob-accent);background:var(--ob-accent)}.ob-icon{width:38px;height:38px;flex:none;border-radius:9px;background:var(--ob-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.ob-icon img{width:30px;height:30px;object-fit:contain}.ob-waiting{display:flex;align-items:center;gap:12px;height:56px;padding:0 14px;border-radius:12px;background:var(--ob-card);border:1px solid var(--ob-line);color:var(--ob-ink2);font-size:14px}.ob-wrap{display:flex;flex-wrap:wrap;gap:8px}.ob-gesture{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid transparent}.ob-gesture .ob-num{width:26px;height:26px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;background:var(--ob-soft);color:var(--ob-ink2)}.ob-gesture .ob-gt{display:flex;flex-direction:column;gap:3px}.ob-gesture b{font-size:15px}.ob-gesture .ob-gt span{font-size:13px;line-height:1.45;color:var(--ob-ink2)}.ob-chip{height:30px;padding:0 11px;border-radius:15px;border:1px solid var(--ob-line);background:var(--ob-card);font-size:12.5px;font-weight:500}.ob-chip[aria-pressed=true]{background:var(--ob-accent);border-color:var(--ob-accent);color:#fff!important}.ob-model{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 14px;border-radius:10px;border:1px solid var(--ob-line);background:var(--ob-card);font-size:14px;text-align:left}.ob-settings{margin-top:14px;display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;row-gap:12px;column-gap:12px;font-size:14px}.ob-settings>.ob-label{color:var(--ob-ink2)}.ob-field{width:76px;height:34px;box-sizing:border-box;padding:0 10px;border-radius:8px;border:1px solid var(--ob-line);background:var(--ob-card);color:var(--ob-ink);font:inherit;font-size:14px}.ob-corners{display:grid;grid-template-columns:repeat(2,44px);gap:6px}.ob-corner{width:44px;height:44px;position:relative;border-radius:9px;border:1.5px solid var(--ob-line);background:var(--ob-card)}.ob-corner i{position:absolute;left:11px;top:11px;width:19px;height:19px;border-radius:3px;border:1.5px solid var(--ob-ink2);box-sizing:border-box}.ob-corner em{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--ob-line)}.ob-corner[aria-pressed=true] em{background:var(--ob-accent)}.ob-switch{display:flex;align-items:flex-start;gap:10px;padding:0;border:0;background:transparent;text-align:left;font-size:14px}.ob-switch .ob-track{width:38px;height:22px;flex:none;border-radius:11px;position:relative;background:var(--ob-line);transition:background .2s}.ob-switch .ob-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000004d;transition:left .2s}.ob-switch[aria-pressed=true] .ob-track{background:var(--ob-accent)}.ob-switch[aria-pressed=true] .ob-track:after{left:18px}.ob-badge{padding:3px 8px;border-radius:6px;background:var(--ob-soft);color:var(--ob-ink2);font-size:11.5px;font-weight:600}.ob-note{margin-top:16px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ob-ink2)}.ob-warn{font-size:12px;color:#c2410c}@media(max-width:760px),(max-height:560px){.ob{width:100vw;height:100vh;border-radius:0}.ob-split{flex-direction:column}.ob-stage{width:100%;height:36vh}.ob-content{padding:14px 18px 16px}.ob-body h2{font-size:24px}.ob-welcome h1{font-size:34px}.ob-settings{grid-template-columns:110px minmax(0,1fr)}}@keyframes ob-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes ob-fade{0%{opacity:0}to{opacity:1}}@keyframes ob-out{0%{opacity:1}to{opacity:0}}@keyframes ob-t2800{0%{stroke-dashoffset:2800}to{stroke-dashoffset:0}}@keyframes ob-t3300{0%{stroke-dashoffset:3300}to{stroke-dashoffset:0}}@keyframes ob-move{0%{offset-distance:0%;opacity:1}94%{offset-distance:100%;opacity:1}to{offset-distance:100%;opacity:0}}@keyframes ob-glow{0%{opacity:0;transform:scale(.6)}60%{opacity:1}to{opacity:.6;transform:scale(1)}}@keyframes ob-spin{to{transform:rotate(360deg)}}@keyframes ob-pulse{0%{transform:scale(.2);opacity:.7}to{transform:scale(1);opacity:0}}@keyframes ob-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes ob-flicker{0%,to{opacity:.95}50%{opacity:.55}}@keyframes ob-glide{0%{transform:translate(-70px)}50%{transform:translate(70px)}to{transform:translate(-70px)}}@keyframes ob-flow{to{stroke-dashoffset:-28}}@keyframes ob-smoke{0%{opacity:0;transform:translateY(0) scale(.6)}25%{opacity:.45}to{opacity:0;transform:translateY(-48px) scale(1.5)}}@keyframes ob-d-trail{0%{stroke-dashoffset:140;opacity:1}50%{stroke-dashoffset:0;opacity:1}85%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes ob-f-ring{0%{stroke-dashoffset:302;opacity:1}40%{stroke-dashoffset:0;opacity:1}85%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes ob-f-spot{0%{offset-distance:0%;opacity:1}40%{offset-distance:100%;opacity:1}41%,to{offset-distance:100%;opacity:0}}@keyframes ob-g-draw{0%{stroke-dashoffset:430;stroke:#f7f4ee;opacity:1}25%{stroke-dashoffset:0;stroke:#f7f4ee}36%{stroke:#f7f4ee}42%{stroke:#6e9bff}66%{stroke:#6e9bff;opacity:1}72%{opacity:.22}94%{opacity:.22;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:0;stroke:#6e9bff}}@keyframes ob-g-chip{0%,36%{opacity:0;transform:translateY(8px)}42%,94%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes ob-g-wood{0%,62%{opacity:0}68%,94%{opacity:1}to{opacity:0}}@keyframes ob-g-burn{0%,66%{stroke-dashoffset:430;opacity:1}92%{stroke-dashoffset:0;opacity:1}96%{opacity:1}to{stroke-dashoffset:0;opacity:0}}@keyframes ob-g-head{0%,65.9%{offset-distance:0%;opacity:0}66%{offset-distance:0%;opacity:1}92%{offset-distance:100%;opacity:1}93%,to{offset-distance:100%;opacity:0}}@keyframes ob-g-row{0%,31%{background-color:var(--ob-soft);border-color:var(--ob-line)}34%,97%{background-color:transparent;border-color:transparent}to{background-color:var(--ob-soft);border-color:var(--ob-line)}}@keyframes ob-g-num{0%,31%{background-color:var(--ob-accent);color:#fff}34%,97%{background-color:var(--ob-soft);color:var(--ob-ink2)}to{background-color:var(--ob-accent);color:#fff}}.ob-w-tr1{stroke-dasharray:2800;opacity:0;animation:ob-t2800 1.2s .25s cubic-bezier(.45,0,.25,1) both,ob-out .5s 2.4s ease both}.ob-w-tr2{stroke-dasharray:3300;opacity:0;animation:ob-t3300 1.5s .9s cubic-bezier(.45,0,.25,1) both,ob-out .5s 2.4s ease both}.ob-w-h1{opacity:0;offset-path:path("M395 343L404.2 617.8L503 538L417.2 630.8L595 640L417.2 649.2L503 750L404.2 662.2L395 915L385.8 662.2L282 748L372.8 649.2L205 640L372.8 630.8L282 538L385.8 617.8Z");offset-rotate:0deg;animation:ob-move 1.2s .25s cubic-bezier(.45,0,.25,1) forwards}.ob-w-h2{opacity:0;offset-path:path("M440 253H815C915 253 985 330 985 430C985 505 935 565 855 595C945 625 1010 700 1010 790C1010 900 925 990 815 990H440V795H705C745 795 778 762 778 722C778 682 745 648 705 648H650L740 537C758 515 745 487 710 487H440Z");offset-rotate:0deg;animation:ob-move 1.5s .9s cubic-bezier(.45,0,.25,1) forwards}.ob-w-f1{animation:ob-fade .6s 1.4s ease both}.ob-w-f2{animation:ob-fade .6s 2.3s ease both}.ob-w-glow{opacity:.6;animation:ob-glow 1.4s 2.2s ease-out both}.ob-r1{animation:ob-rise .6s 2.45s cubic-bezier(.2,.8,.2,1) both}.ob-r2{animation:ob-rise .6s 2.6s cubic-bezier(.2,.8,.2,1) both}.ob-r3{animation:ob-rise .6s 2.75s cubic-bezier(.2,.8,.2,1) both}.ob-c1{animation:ob-rise .5s .05s cubic-bezier(.2,.8,.2,1) both}.ob-c2{animation:ob-rise .5s .12s cubic-bezier(.2,.8,.2,1) both}.ob-c3{animation:ob-rise .5s .2s cubic-bezier(.2,.8,.2,1) both}.ob-c4{animation:ob-rise .5s .28s cubic-bezier(.2,.8,.2,1) both}.ob-in{animation:ob-fade .7s ease both}.ob-spinner{animation:ob-spin .8s linear infinite}.ob-flick{animation:ob-flicker .35s ease-in-out infinite}.ob-glide{animation:ob-glide 4s ease-in-out infinite}.ob-flow{stroke-dasharray:8 6;animation:ob-flow .6s linear infinite}.ob-d-trail{stroke-dasharray:140;animation:ob-d-trail 4s ease-in-out infinite}.ob-f-ring{stroke-dasharray:302;animation:ob-f-ring 2.4s cubic-bezier(.3,0,.3,1) infinite}.ob-f-spot{opacity:0;offset-path:path("M110 282A70 18 0 1 0 250 282A70 18 0 1 0 110 282");offset-rotate:0deg;animation:ob-f-spot 2.4s cubic-bezier(.3,0,.3,1) infinite}.ob-g-draw{stroke-dasharray:430;stroke-dashoffset:0;opacity:.22;animation:ob-g-draw 9s linear infinite}.ob-g-chip{animation:ob-g-chip 9s linear infinite}.ob-g-wood{animation:ob-g-wood 9s linear infinite}.ob-g-burn{stroke-dasharray:430;stroke-dashoffset:0;animation:ob-g-burn 9s linear infinite}.ob-g-head{opacity:0;offset-path:path("M160 168C112 134 88 110 88 84C88 64 104 50 122 50C138 50 151 59 160 72C169 59 182 50 198 50C216 50 232 64 232 84C232 110 208 134 160 168Z");offset-rotate:0deg;animation:ob-g-head 9s linear infinite}.ob-gesture{animation:ob-g-row 9s linear infinite}.ob-gesture .ob-num{animation:ob-g-num 9s linear infinite}.ob-g-d2,.ob-g-d2 .ob-num{animation-delay:-6s}.ob-g-d3,.ob-g-d3 .ob-num{animation-delay:-3s}.ob-sweep{animation:ob-spin 2.6s linear infinite}.ob-pulse{animation:ob-pulse 2.6s ease-out infinite}.ob-pop1{animation:ob-pop .5s .1s cubic-bezier(.2,.8,.2,1) both}.ob-pop2{animation:ob-pop .5s .35s cubic-bezier(.2,.8,.2,1) both}.ob-e-tr{stroke-dasharray:2800;animation:ob-t2800 2s .3s linear both}.ob-e-fill{animation:ob-fade .8s 2.2s ease both}.ob-e-head{opacity:0;offset-path:path("M395 343L404.2 617.8L503 538L417.2 630.8L595 640L417.2 649.2L503 750L404.2 662.2L395 915L385.8 662.2L282 748L372.8 649.2L205 640L372.8 630.8L282 538L385.8 617.8Z");offset-rotate:0deg;animation:ob-move 2s .3s linear forwards}.ob-smoke{opacity:0;animation:ob-smoke 1.8s ease-out infinite}.ob-sm2{animation-delay:.6s}.ob-sm3{animation-delay:1.2s}.ob-home-ring{animation:ob-pulse 1.8s ease-out infinite}.ob-head-box{transition:left .9s cubic-bezier(.2,.8,.2,1),top .9s cubic-bezier(.2,.8,.2,1)}.ob-guide{position:fixed;inset:0;z-index:70;color:var(--ob-ink)}.ob-guide-block{position:absolute;inset:0}.ob-guide-hole{position:absolute;border-radius:10px;border:2px solid var(--ob-accent);box-sizing:border-box;pointer-events:none;box-shadow:0 0 0 9999px #0a0a0c73;transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1),width .45s cubic-bezier(.2,.8,.2,1),height .45s cubic-bezier(.2,.8,.2,1)}.ob-guide-bubble{position:absolute;display:flex;flex-direction:column;gap:8px;padding:16px;box-sizing:border-box;border-radius:14px;background:var(--ob-card);box-shadow:0 16px 40px #0000004d;transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1)}.ob-guide-bubble b{font-size:17px}.ob-guide-bubble p{margin:0;font-size:13.5px;line-height:1.45;color:var(--ob-ink2)}.ob-guide-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.ob-guide-actions button{white-space:nowrap}@media(prefers-reduced-motion:reduce){.ob-guide-hole,.ob-guide-bubble{transition:none}}.ob.fb{display:flex}.fb .fb-col{display:flex;flex-direction:column}.fb .fb-gap2{gap:2px}.fb .fb-gap6{gap:6px}.fb .fb-gap8{gap:8px}.fb .fb-gap10{gap:10px}.fb .fb-grow{flex:1}.fb .fb-row{display:flex;gap:8px}.fb .fb-wrap{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fb-side{width:300px;flex:none;box-sizing:border-box;padding:36px 32px 32px;display:flex;flex-direction:column;gap:22px;color:#f7f4ee;background-size:16px 16px}.fb-side h1{margin:0;font-size:26px;line-height:1.15;font-weight:700;letter-spacing:-.015em}.fb-side p{margin:0;font-size:15px;line-height:1.5;color:#a8a39a}.fb-what{font-size:12.5px;line-height:1.45;color:#a8a39a}.fb-what b{color:#f7f4ee;font-size:13px}.fb-art{position:relative;height:170px;display:flex;align-items:center;justify-content:center}.fb-art svg{position:relative;overflow:visible}.fb-glow{position:absolute;left:10px;top:-10px;width:220px;height:190px;border-radius:50%;background:radial-gradient(closest-side,#ff6a2b29,#ff6a2b00)}@keyframes fb-trace{0%{stroke-dashoffset:700}to{stroke-dashoffset:0}}@keyframes fb-move{0%{offset-distance:0%;opacity:1}94%{offset-distance:100%;opacity:1}to{offset-distance:100%;opacity:0}}@keyframes fb-fade{0%{opacity:0}to{opacity:1}}@keyframes fb-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fb-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes fb-spin{to{transform:rotate(360deg)}}.fb-tr{stroke-dasharray:700;animation:fb-trace 1.8s .3s cubic-bezier(.45,0,.25,1) both}.fb-head{opacity:0;offset-path:path("M30 20H170C181 20 190 29 190 40V100C190 111 181 120 170 120H90L56 148V120H30C19 120 10 111 10 100V40C10 29 19 20 30 20Z");offset-rotate:0deg;animation:fb-move 1.8s .3s cubic-bezier(.45,0,.25,1) forwards}.fb-l1{animation:fb-fade .5s 2.1s ease both}.fb-l2{animation:fb-fade .5s 2.25s ease both}.fb-l3{animation:fb-fade .5s 2.4s ease both}.fb-r1{animation:fb-rise .5s .05s cubic-bezier(.2,.8,.2,1) both}.fb-r2{animation:fb-rise .5s .12s cubic-bezier(.2,.8,.2,1) both}.fb-r3{animation:fb-rise .5s .2s cubic-bezier(.2,.8,.2,1) both}.fb-main{flex:1;min-width:0;display:flex;flex-direction:column}.fb-scroll{flex:1;overflow-y:auto;box-sizing:border-box;padding:30px 36px 24px;display:flex;flex-direction:column;gap:22px}.fb-caps{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ob-ink2)}.fb-label{font-size:14px;font-weight:600}.fb-opt{font-weight:400;color:var(--ob-ink2)}.fb-sub{font-size:12.5px;color:var(--ob-ink2)}.fb-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fb .fb-kind{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 14px;text-align:left;border-radius:14px;border:1.5px solid var(--ob-line);background:var(--ob-card);color:var(--ob-ink)}.fb .fb-kind.on{border-color:var(--ob-accent);background:var(--ob-tint)}.fb-kind b{font-size:15px}.fb-ico{width:36px;height:36px;flex:none;border-radius:10px;background:var(--ob-soft);display:flex;align-items:center;justify-content:center}.fb .fb-input{height:44px;box-sizing:border-box;padding:0 14px;border-radius:10px;border:1px solid var(--ob-line);background:var(--ob-card);color:var(--ob-ink);font-size:15px;font-family:inherit}.fb .fb-area{height:auto;min-height:104px;padding:12px 14px;line-height:1.5;resize:vertical}.fb .fb-input::placeholder{color:var(--ob-ink2);opacity:.8}.fb .fb-input:focus-visible{outline:2px solid var(--ob-accent);outline-offset:2px}.fb-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fb-seg{display:flex;padding:3px;gap:3px;border-radius:11px;background:var(--ob-soft)}.fb .fb-seg button{flex:1;min-height:38px;padding:4px 6px;border:0;border-radius:8px;background:transparent;color:var(--ob-ink);font-size:13px}.fb .fb-seg button.on{background:var(--ob-card);font-weight:600;box-shadow:0 1px 2px #0000001f}.fb .fb-chip{height:34px;padding:0 14px;border-radius:17px;border:1px solid var(--ob-line);background:var(--ob-card);color:var(--ob-ink);font-size:13.5px}.fb .fb-chip.on{border-color:var(--ob-accent);background:var(--ob-accent);color:#fff}.fb .fb-attach{display:flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--ob-line);background:var(--ob-card);color:var(--ob-ink);font-size:13.5px}.fb-pj{display:flex;align-items:center;gap:8px;height:38px;padding:0 6px 0 8px;border-radius:10px;background:var(--ob-soft);font-size:13px}.fb .fb-pj button{width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:var(--ob-ink2)}.fb-thumb{width:40px;height:26px;border-radius:5px;background-color:#0e0e10;background-image:radial-gradient(circle at 1px 1px,rgba(247,244,238,.18) 1px,transparent 0);background-size:5px 5px}.fb .fb-toggle{display:flex;align-items:flex-start;gap:12px;padding:4px 0;border:0;background:transparent;color:var(--ob-ink);text-align:left;font-size:14px}.fb-track{width:38px;height:22px;flex:none;margin-top:1px;border-radius:11px;position:relative;background:var(--ob-line)}.fb-track.on{background:var(--ob-accent)}.fb-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s ease}.fb-track.on .fb-knob{left:18px}.fb-tech{margin-left:50px;padding:8px 12px;border-radius:8px;background:var(--ob-soft);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--ob-ink2);overflow-wrap:anywhere}.fb-foot{flex:none;height:72px;box-sizing:border-box;padding:0 36px;display:flex;align-items:center;gap:12px;border-top:1px solid var(--ob-line)}.fb-hint{flex:1;font-size:13px;color:var(--ob-ink2)}.fb-hint.warn{color:#c2410c}.fb-send{display:flex;align-items:center;gap:8px}.fb-spin{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:fb-spin .8s linear infinite}.fb-done{flex:1;min-width:0;box-sizing:border-box;padding:48px 56px;display:flex;flex-direction:column;justify-content:center;gap:22px}.fb-done h2{margin:0;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.015em}.fb-done p{margin:0;max-width:480px;font-size:15px;line-height:1.5;color:var(--ob-ink2)}.fb-pop{width:56px;height:56px;border-radius:50%;background:var(--ob-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;animation:fb-pop .5s .1s cubic-bezier(.2,.8,.2,1) both}.fb-recap{max-width:480px;display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--ob-line);background:var(--ob-card);font-size:14px}.fb-recap>div{display:flex;gap:16px;padding:12px 16px;border-bottom:1px solid var(--ob-line)}.fb-recap>div:last-child{border-bottom:0}.fb-recap>div>span:first-child{width:110px;flex:none;color:var(--ob-ink2)}.fb-ell{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-done .fb-note{font-size:12.5px}@media(max-width:760px){.ob.fb{flex-direction:column}.fb-side{width:auto;flex-direction:row;align-items:center;gap:16px;padding:16px 20px}.fb-art{height:96px;width:120px;flex:none;transform:scale(.6);transform-origin:center}.fb-side h1{font-size:20px}.fb-side p{font-size:13px}.fb .fb-what,.fb .fb-side .fb-grow{display:none}.fb-main,.fb-done{min-height:0}.fb-done{overflow-y:auto}.fb-scroll{padding:20px}.fb-kinds,.fb-two{grid-template-columns:minmax(0,1fr)}.fb-foot{padding:0 20px}.fb-done{padding:28px 24px}}@media(prefers-reduced-motion:reduce){.fb *{animation:none!important;transition:none!important}.fb .fb-head{opacity:0}}:root{--bg: #f4f5f7;--panel: #ffffff;--panel-2: #eef0f3;--line: #d9dde3;--text: #1d2026;--muted: #6b7280;--accent: #2f6fed;--accent-text: #ffffff;--stage: #e3e6ea;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:13px;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #1b1d21;--panel: #24272c;--panel-2: #2c3036;--line: #3a3f46;--text: #e6e8eb;--muted: #9aa1ab;--accent: #4c8dff;--stage: #15171a}}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg)}button,select,input,a.button{font:inherit;color:inherit}a.button{text-decoration:none;display:inline-block}button,a.button{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer}button:hover:not(:disabled),a.button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}input,select{background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:3px 6px}.app{display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);height:100%}.loading,.fatal{display:grid;place-items:center;height:100%;color:var(--muted);padding:16px;text-align:center}.fatal{color:#d33}.topbar{display:flex;align-items:center;gap:8px;padding:3px 10px;min-height:36px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{font-weight:700;letter-spacing:.02em;margin-right:6px;white-space:nowrap}.topbar>.grow{flex:1}.menubar{display:flex;align-items:center;gap:2px}.menubar-item{position:relative}.menubar-item>button{position:relative;z-index:22;background:none;border:1px solid transparent;padding:4px 10px;border-radius:6px}.menubar-item>button:hover:not(:disabled),.menubar-item>button:focus-visible{background:var(--panel-2);border-color:transparent}.menubar-item>button.on{background:var(--accent);color:var(--accent-text)}.menubar .menu.dropdown{min-width:240px}.menubar .menu-back{z-index:20}.menubar-item .menu button{display:flex;align-items:center;gap:8px}.menu-check{width:14px;flex:none;text-align:center}.menu-label{flex:1;overflow:hidden;text-overflow:ellipsis;max-width:360px}.menu-shortcut{color:var(--muted);font-size:12px;margin-left:18px;font-variant-numeric:tabular-nums}.menu button:not(:disabled):hover .menu-shortcut,.menu button:focus-visible .menu-shortcut{color:inherit}.menu button:focus-visible{background:var(--accent);color:var(--accent-text);outline:none}.topbar-actions{display:flex;align-items:center;gap:6px}.drop-overlay{position:fixed;inset:8px;z-index:50;pointer-events:none;display:grid;place-items:center;border:3px dashed var(--accent);border-radius:14px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text);font-size:18px;font-weight:600}.topbar-actions button.icon{width:30px;padding:3px 0;font-size:16px;line-height:1.1}.sep{width:1px;height:20px;background:var(--line);margin:0 4px}.lang{color:var(--muted)}.body{display:grid;grid-template-columns:48px 1fr 300px;min-height:0}.tools{display:flex;flex-direction:column;gap:4px;padding:6px;background:var(--panel);border-right:1px solid var(--line)}.tools button{width:36px;height:36px;padding:0;font-size:18px;line-height:1}.tools button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.stage{position:relative;background:var(--stage);min-width:0;min-height:0}.canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;transition:opacity .2s}.toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%);max-width:70%;white-space:pre-line;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;box-shadow:0 4px 16px #0003;cursor:pointer}.panel{background:var(--panel);border-left:1px solid var(--line);overflow:auto;display:flex;flex-direction:column}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px}.panel-head h2{font-size:13px;margin:0}.icon{padding:0 8px;font-size:16px}.layers{list-style:none;margin:0;padding:0 8px}.layers li{display:flex;gap:8px;align-items:center;padding:6px;border-radius:8px;cursor:pointer;border:1px solid transparent}.layers li.active{background:var(--panel-2);border-color:var(--accent)}.swatch{width:28px;height:22px;border-radius:5px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:700;text-shadow:0 0 2px rgba(0,0,0,.6);flex:none}.layer-name{display:flex;flex-direction:column;min-width:0}.layer-name small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings{display:flex;flex-direction:column;gap:8px;padding:12px;border-top:1px solid var(--line);margin-top:8px}.field{display:flex;justify-content:space-between;align-items:center;gap:8px}.field>span:first-child{color:var(--muted)}.field input{width:110px;text-align:right}.field select{min-width:0;max-width:65%}.input-unit{display:flex;align-items:center;gap:4px}.input-unit input{width:80px}.input-unit em{font-style:normal;color:var(--muted);width:32px}.segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.segmented button{padding:4px 2px;font-size:12px}.segmented button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.toggle{display:flex;gap:8px;align-items:center}.note{color:var(--muted);margin:0}.statusbar{display:flex;gap:18px;padding:4px 12px;background:var(--panel);border-top:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden}.grow{flex:1}@media(max-width:820px){.body{grid-template-columns:48px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 40%}.side{grid-column:1 / -1;border-left:none;border-top:1px solid var(--line)}}.menu.dropdown.floating{position:fixed;margin-top:0}.side{display:flex;flex-direction:column;min-height:0;overflow:auto;background:var(--panel);border-left:1px solid var(--line)}.side .panel{border-left:none;overflow:visible}.inspector{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.inspector h2{font-size:13px;margin:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.grid2 label{display:flex;align-items:center;justify-content:space-between;gap:6px;color:var(--muted)}.row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row button.on,.topbar button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.muted{color:var(--muted)}.text-style{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:8px}.text-style textarea{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:5px;padding:4px 6px;resize:vertical}.text-style select{max-width:160px}button.link{background:none;border:none;color:var(--accent);padding:0;text-align:left}.text-field{position:absolute;z-index:2;font:inherit;font-size:14px;color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:6px;padding:4px 6px;resize:none;box-shadow:0 4px 14px #0003}.preview-card{position:absolute;top:12px;left:12px;display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;box-shadow:0 4px 16px #00000026}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:8px 12px 0}.tabs button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.laser{display:flex;flex-direction:column;gap:10px;padding:12px}.laser h2{font-size:13px;margin:0}.galvo-summary{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0;font-size:12px}.galvo-summary dt{color:var(--muted)}.galvo-summary dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.framing-keys{flex-wrap:wrap;gap:4px}.framing-keys button{min-width:32px}.calibration-result{grid-template-columns:max-content 1fr}.glyph-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:6px 0}.glyph-grid .glyph{display:flex;justify-content:center;padding:6px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit}.glyph-grid .glyph.selected{border:2px solid var(--accent)}.galvo-preview{width:100%;background:#fff;border:1px solid var(--line);border-radius:4px}.camera-result-image{margin:8px 0}.camera-result-image img{display:block;max-width:100%;max-height:300px;margin:0 auto;border:1px solid var(--line);border-radius:4px}.camera-result-findings{list-style:none;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:8px}.camera-result-findings li{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.camera-result-findings li.ok strong{color:#1f9d55}.camera-result-findings li.warn strong{color:#c27c0e}.connect{display:flex;flex-direction:column;gap:8px}.connect .address{flex:1;min-width:0}.found-lasers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.found-lasers button{width:100%;display:flex;justify-content:space-between;gap:8px;text-align:left}.found-lasers button.on{border-color:var(--accent)}.laser-head{display:flex;align-items:center;gap:8px}.state{font-weight:600;padding:2px 8px;border-radius:10px;background:var(--panel-2);white-space:nowrap}.state.idle{color:#1f9d55}.state.run,.state.jog,.state.home{color:var(--accent)}.state.alarm,.state.door{color:#d33}.state.hold{color:#c27c0e}.mono{font-variant-numeric:tabular-nums;margin:0}.tangent-preview{width:100%;height:240px;background:var(--panel-2);border-radius:6px;color:var(--text, #888)}.device-icon{width:24px;height:24px;object-fit:contain;vertical-align:middle;margin-right:8px}.gcode-preview{font-family:ui-monospace,Menlo,monospace;font-size:11px;max-height:180px;overflow:auto;background:var(--panel-2);padding:6px 8px;border-radius:6px;white-space:pre}.jog{display:grid;grid-template-columns:repeat(3,72px);gap:4px;justify-content:center}.jog select{width:72px;padding:3px 2px}.jog button{height:34px;font-size:16px}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.danger{background:#c0392b;color:#fff;border-color:#c0392b}button.stop{background:#d33;color:#fff;border-color:#d33;font-weight:700;flex:1}button.stop-small{color:#d33;border-color:#d33;font-weight:600}.console pre{max-height:180px;overflow:auto;font-size:11px;background:var(--panel-2);padding:6px;border-radius:6px;margin:6px 0}.console pre .sent{color:var(--accent)}.console pre .error{color:#d33}.console input{width:100%}.note.warn{color:#c27c0e;cursor:pointer}.row.end{justify-content:flex-end}.modal-back{position:fixed;inset:0;background:#00000059;display:grid;place-items:center;z-index:30}.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;width:min(420px,92vw);max-height:calc(100dvh - 16px);overflow:auto;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}.modal h2{margin:0;font-size:15px}.modal p{margin:0}.placement{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.placement h3,.advanced summary{margin:0;font-size:13px;font-weight:600}.origin-grid{display:grid;grid-template-columns:repeat(3,18px);gap:3px}.origin-grid button{width:18px;height:18px;padding:0;border-radius:4px}.origin-grid button.on{background:var(--accent);border-color:var(--accent)}.advanced{display:flex;flex-direction:column;gap:8px}.advanced[open]{padding-bottom:4px}.advanced>*:not(summary){margin-top:8px}.advanced summary{cursor:pointer;color:var(--muted)}.blockers ul{margin:4px 0 0;padding-left:18px}.modal p.warn{color:#c27c0e}.question-back{z-index:40}.modal.question p{white-space:pre-line;line-height:1.45}.modal.question input{width:100%;box-sizing:border-box}.statusbar button.link{background:none;border:none;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline dotted}.stage{display:flex;flex-direction:column}.viewport{position:relative;flex:1;min-height:0}.editbar{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:4px 8px;background:var(--panel);border-bottom:1px solid var(--line)}.editbar button{min-width:28px;height:26px;padding:0 6px;font-size:13px}.editbar .sep{width:1px;height:18px;background:var(--line);margin:0 2px}.editbar .tb-group{display:inline-flex;gap:4px;align-items:center;flex-wrap:nowrap}.segmented.two{grid-template-columns:repeat(2,1fr)}.menu-back{position:fixed;inset:0;z-index:20}.menu{position:fixed;display:flex;flex-direction:column;min-width:190px;padding:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #00000040}.menu button{text-align:left;border:none;background:none;padding:5px 10px;border-radius:5px}.menu button:not(:disabled):hover{background:var(--accent);color:var(--accent-text)}.menu hr{border:none;border-top:1px solid var(--line);margin:4px 0;width:100%}.modal .field input:not([inputmode]){width:220px;text-align:left}.image-panel h3{margin:0;font-size:13px}.slider{display:grid;grid-template-columns:96px 1fr 40px;align-items:center;gap:6px}.slider>span{color:var(--muted)}.slider em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.modal.wide{width:min(560px,94vw);max-height:92vh;overflow:auto}.trace-preview{width:100%;max-height:320px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:6px;image-rendering:pixelated}.slider{grid-template-columns:88px minmax(0,1fr) 34px}.slider input{width:100%;min-width:0}.test-preview{max-width:100%;align-self:center;border:1px solid var(--line);border-radius:6px}.axes{display:grid;grid-template-columns:1fr 1fr;gap:8px}fieldset.axis{border:1px solid var(--line);border-radius:8px;padding:6px 8px 8px;margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}fieldset.axis legend{color:var(--muted);padding:0 4px}fieldset.axis .field input{width:80px}@media(max-width:560px){.axes{grid-template-columns:1fr}}.reference-row{display:flex;gap:10px;align-items:center}.reference-row .grid2{flex:1}.sublayer{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:8px}.segmented.three{grid-template-columns:repeat(3,1fr)}.library-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:4px}.library-entry{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:6px}.library-entry:hover{background:var(--panel-2)}.library-entry>span{flex:1;display:flex;flex-direction:column;min-width:0}.library-entry small{color:var(--muted)}.library-filter{width:100%;box-sizing:border-box;margin-bottom:6px}textarea.notes{width:100%;box-sizing:border-box;font:inherit;resize:vertical}.menu-anchor{position:relative}.menu.dropdown{position:absolute;top:100%;left:0;margin-top:4px;z-index:21;max-height:70vh;overflow:auto}.menu-anchor .menu-back{z-index:20}.menu button{white-space:nowrap;line-height:1.3}.live-controls{display:flex;flex-direction:column;gap:4px}.ov-label{min-width:110px;font-variant-numeric:tabular-nums}.goto{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}.goto .field input{width:64px}.macros .macro{display:inline-flex;gap:2px}ol.steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px}ol.steps li>.row{margin-top:6px}.jog.mini{align-self:center;margin:6px 0}.live-controls .row{flex-wrap:nowrap}.live-controls button{padding:2px 6px}.ov-label{min-width:0;flex:1}.goto{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.goto .field input{width:52px}.goto .field{gap:4px}.modal.help{width:min(1000px,94vw);height:88vh;overflow:auto}.modal.help iframe{flex:1;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}.modal.help h2{margin:0}table.shortcuts{border-collapse:collapse;width:100%}table.shortcuts td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.shortcuts td:first-child{white-space:nowrap;color:var(--muted)}.camera-preview{width:100%;border-radius:6px;border:1px solid var(--line);background:#000}.calibration-image{max-width:100%;max-height:52vh;min-height:0;align-self:center;cursor:crosshair;border:1px solid var(--line);border-radius:8px}.tabs{grid-template-columns:repeat(3,1fr)}.editbar{position:relative}.mode-pill{position:absolute;top:calc(100% + 6px);left:8px;z-index:5;display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 10px;border-radius:999px;background:color-mix(in srgb,#db2777 18%,var(--panel));color:#db2777;font-size:12px}.align-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.editbar .align-grid button{display:flex;flex-direction:column;align-items:center;gap:4px;height:auto;min-height:58px;padding:8px 4px;font-size:11px;line-height:1.2}.align-grid button .glyph{font-size:18px}.preview-card .probe{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:6px 8px;border-radius:6px;background:color-mix(in srgb,#facc15 14%,transparent);max-width:420px}.preview-card .probe .row{display:flex;gap:6px}.modal.font-browser{width:min(560px,94vw)}.font-list{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column}.font-list h3{margin:8px 0 4px;font-size:12px;color:var(--muted);font-weight:600}.font-row{display:flex;align-items:baseline;gap:12px;text-align:left;padding:6px 8px;border:0;background:transparent;border-radius:6px}.font-row:hover,.font-row.on{background:color-mix(in srgb,var(--accent, #3b82f6) 16%,transparent)}.font-row .font-name{width:180px;flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.font-row .font-sample{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.diagnosis{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px}.diagnosis li.ok{color:var(--text)}.diagnosis li.warn{color:#c27c0e}.modal.lens-modal{width:min(560px,94vw)}.lens-models{display:flex;flex-direction:column;gap:8px}.lens-models [role=radiogroup]{display:flex;flex-direction:column;gap:4px}.lens-model{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;cursor:pointer}.lens-model.on{border-color:var(--accent)}.lens-name{flex:1;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.lens-name small{flex-basis:100%}.lens-tag{font-size:11px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent);border-radius:9px;padding:0 7px}.lens-error{font-variant-numeric:tabular-nums}.lens-preview{width:100%;height:auto;max-height:300px;object-fit:contain;border-radius:6px;background:#000}.lens-frames{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:2px;font-size:13px}.lens-frames li{display:flex;align-items:center;gap:8px}.lens-frames li .muted{margin-left:auto;font-variant-numeric:tabular-nums}.lens-frames li.warn{color:#c27c0e}.topbar,.tools,.editbar,.panel,.statusbar,.modal{zoom:var(--ui-zoom, 1)}.editbar .grow{flex:1}.editbar .modes{display:inline-flex;gap:4px}.editbar .modes button.on{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.panel-head .grow{flex:1}.menu.dropdown.end{right:0;left:auto}.menu .menu-title{padding:6px 10px 2px;font-size:11px;color:var(--muted, #888);text-transform:uppercase;letter-spacing:.03em}.menu [role=group]{display:flex;flex-direction:column}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}.modal label.column{display:flex;flex-direction:column;gap:4px}.modal label.column textarea,.modal label.column input{width:100%;box-sizing:border-box;font:inherit}.modal label.column em{font-style:normal;font-size:12px}.modal details ul{margin:6px 0 0;padding-left:18px;font-size:12px;overflow-wrap:anywhere}.update-banner{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:min(760px,94vw);padding:14px 18px;border-radius:12px;background:var(--accent);color:#fff;box-shadow:0 8px 30px #00000059;font-size:15px}.update-banner strong{font-size:17px}.update-banner span{flex:1 1 260px;opacity:.95}.update-banner button{background:#ffffff2e;color:#fff;border-color:#ffffff80}.update-banner button.primary{background:#fff;color:var(--accent);font-weight:600}a.button.donate{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #db2777;border-radius:6px;color:#db2777;text-decoration:none;font:inherit}a.button.donate:hover{background:color-mix(in srgb,#db2777 12%,transparent)}.debug-info{position:absolute;top:8px;left:8px;z-index:3;padding:6px 8px;border-radius:6px;background:color-mix(in srgb,var(--panel) 85%,transparent);color:#db2777;font:11px/1.4 ui-monospace,Menlo,monospace;pointer-events:none}.vendor-links{gap:14px;flex-wrap:wrap;font-size:13px}.diagnosis-path{list-style:none;margin:0;padding:0;font-size:12px}.diagnosis-answers{display:flex;flex-direction:column;gap:6px}.diagnosis-answers button{text-align:left;padding:8px 10px}.diagnosis-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.diagnosis-dialog h3{margin:4px 0;font-size:14px}.scan-table{display:flex;flex-direction:column;gap:4px}.scan-table .row .field{flex:1}.controller-dialog h3{margin:6px 0 2px;font-size:14px}.controller-dialog .ok{color:#16a34a;margin:0}.controller-dialog .warn{color:#dc2626;font-size:12px}ul.mismatches{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.setting-row{display:grid;grid-template-columns:1fr 110px 56px;gap:8px;align-items:center}.setting-name{display:flex;flex-direction:column}.setting-name em{font-size:11px;font-style:normal}.setting-value{text-align:right;font-variant-numeric:tabular-nums}.setting-unit{font-size:11px}ul.job-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow:auto}ul.job-log li{display:flex;flex-direction:column;gap:2px;padding-bottom:6px;border-bottom:1px solid var(--line, rgba(127,127,127,.2))}.job-log-head{display:flex;justify-content:space-between;gap:8px}ul.job-log .warn{color:#ea580c}.templates-dialog h3{margin:6px 0 2px;font-size:14px}ul.templates{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}ul.templates li{display:flex;gap:6px}ul.templates .template{flex:1;text-align:left}.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;max-height:50vh;overflow:auto}.art-item{display:flex;flex-direction:column;gap:2px}.art-insert{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px}.art-insert span{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.art-thumb{width:100%;height:80px}.art-item .row{justify-content:center}.heading-link{margin-left:auto;font-size:13px;font-weight:400}.modal h2:has(.heading-link){display:flex;align-items:center;gap:8px}.segmented.two{grid-template-columns:repeat(2,1fr);max-width:160px}.steps-dialog h3{margin:8px 0 0;font-size:14px}.steps-dialog>button{align-self:flex-start}.history-dialog h3{margin:6px 0 0;font-size:13px;color:var(--muted)}ul.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:40vh;overflow:auto}ul.history button{width:100%;text-align:left}ul.batch-files{list-style:none;margin:8px 0;padding:0;max-height:40vh;overflow:auto}ul.batch-files li{display:flex;justify-content:space-between;gap:12px;padding:2px 0;border-bottom:1px solid var(--line)}ul.history.redo button{opacity:.7}.snap-toggle{display:inline-flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.ruler{position:absolute;z-index:2;background:var(--panel);color:var(--muted);touch-action:none}.ruler-top{top:0;left:18px;right:0;height:18px;width:calc(100% - 18px);border-bottom:1px solid var(--line);cursor:s-resize}.ruler-left{top:18px;left:0;bottom:0;width:18px;height:calc(100% - 18px);border-right:1px solid var(--line);cursor:e-resize}.ruler-corner{position:absolute;z-index:2;top:0;left:0;width:18px;height:18px;padding:0;border:0;border-radius:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:12px;line-height:1}.debug-info{top:26px;left:26px}@media(max-width:560px){.brand{display:none}.topbar{flex-wrap:wrap;gap:4px;padding:2px 6px}.menubar-item>button{padding:4px 7px}.editbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.editbar>*{flex:none}.body{grid-template-columns:44px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 45%}.tools{padding:4px}.tools button{width:34px;height:34px}.statusbar{gap:10px;padding:4px 8px;overflow-x:auto;scrollbar-width:none}.statusbar>*{flex:none}}.info-list{margin:4px 0}.info-list .row{justify-content:space-between;gap:12px}.info-list dt{color:var(--muted, #888)}.info-list dd{margin:0;font-variant-numeric:tabular-nums}.preview-material{max-width:170px}.laser>button.add-laser{display:block;width:calc(100% - 16px);margin:8px}.art-catalog{display:flex;flex-direction:column;gap:8px}.art-entry{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--line);border-radius:8px}.art-entry img{width:72px;height:72px;flex:none;background:#fff;border-radius:6px;object-fit:contain}.busy-note{position:fixed;left:50%;top:40%;transform:translate(-50%);z-index:1000;padding:10px 18px;border-radius:10px;background:var(--panel, #2c2c30);color:var(--text, #f2f2f5);box-shadow:0 6px 24px #00000059;font-size:14px;pointer-events:none;opacity:0;animation:busy-appear .2s ease-out .15s forwards}@keyframes busy-appear{to{opacity:1}}
