:root{--bg:#f6f7f9;--surface:#fff;--text:#1b1f24;--muted:#5b6470;--border:#d5d9df;--accent:#1f6feb;--accent-text:#fff;--warn-bg:#fff4d6;--warn-text:#6b4a00;--error:#c62828;--ok:#2e7d32;--grid:#e6e9ee;--curve:#1f6feb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1216;--surface:#171b21;--text:#e6e9ee;--muted:#9aa4b1;--border:#2d343d;--accent:#4c8ff5;--accent-text:#0b0e12;--warn-bg:#3a2f12;--warn-text:#f2d28b;--error:#ff7b72;--ok:#7ee787;--grid:#252b33;--curve:#6ea8ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page-header{max-width:1080px;margin:0 auto;padding:20px 16px 4px}h1{margin:0;font-size:22px}h2{margin:0 0 12px;font-size:17px}.tagline,.hint{color:var(--muted);margin:4px 0 12px;font-size:13px}.layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;max-width:1080px;margin:0 auto;padding:12px 16px 32px;display:grid}@media (width<=760px){.layout{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px}.side{gap:16px;display:grid}.steps{margin:0 0 14px;font-size:14px}.steps summary{cursor:pointer;color:var(--accent)}.steps ol{margin:8px 0 0;padding-left:20px}.steps li{margin-bottom:4px}.link-status{margin:0 0 10px;font-size:14px}.link-status:before{content:"";background:var(--muted);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.link-status[data-state=phone]:before{background:var(--ok)}.link-status[data-state=error]{color:var(--error)}.link-status[data-state=error]:before{background:var(--error)}#pair-qr{width:100%;max-width:200px;height:auto;image-rendering:pixelated;border-radius:6px;margin:0 auto 8px;display:block}.screen-width{margin-top:4px}.pair-link{color:var(--accent);word-break:break-all;margin-bottom:10px;font-size:13px;display:block}fieldset{border:0;border-top:1px solid var(--border);margin:0;padding:12px 0 4px}legend{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:0 6px 0 0;font-size:13px;font-weight:600}.row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}.row.four{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=480px){.row,.row.four{grid-template-columns:repeat(2,minmax(0,1fr))}}label{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}label.check{color:var(--text);flex-direction:row;align-items:center;gap:8px;font-size:14px}input[type=text],input:not([type]),select{border:1px solid var(--border);background:var(--bg);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:6px;padding:7px 9px;font-size:15px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input:disabled,select:disabled{opacity:.6}input[aria-invalid=true]{border-color:var(--error)}.num{display:block;position:relative}.num input{font-variant-numeric:tabular-nums;padding-right:36px}.unit{color:var(--muted);pointer-events:none;font-size:13px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}button{border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:6px;padding:7px 12px;font-size:14px}button.secondary{color:var(--accent);background:0 0}.import{margin-bottom:4px}.import-row{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.import-row input{flex:220px}.status{min-height:1.2em;color:var(--muted);margin:6px 0 0;font-size:13px}.status[data-kind=error]{color:var(--error)}.status[data-kind=ok]{color:var(--ok)}kbd{border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;padding:0 4px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.curve{margin:4px 0 8px}.curve svg{touch-action:none;width:100%;max-width:420px;height:auto;display:block}.curve figcaption{max-width:420px;color:var(--muted);font-size:12px}.curve .grid line{stroke:var(--grid);stroke-width:1px}.curve .tick,.curve .readout{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.curve .readout{fill:var(--text);font-size:11px}.curve .reference{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.curve .line{fill:none;stroke:var(--curve);stroke-width:2px;stroke-linejoin:round}.curve .crosshair{stroke:var(--muted);stroke-width:1px}.curve .dot{fill:var(--curve);stroke:var(--surface);stroke-width:2px}#qr{width:100%;max-width:240px;height:auto;image-rendering:pixelated;border-radius:6px;margin:0 auto 12px;display:block}.buttons{flex-wrap:wrap;gap:8px;display:flex}.uri{background:var(--bg);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:6px;margin-top:8px;padding:8px;font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;display:block}.warnings{margin:12px 0 0;padding:0;list-style:none}.warnings li{background:var(--warn-bg);color:var(--warn-text);border-radius:6px;margin-top:6px;padding:8px 10px;font-size:13px}.geometry{margin:4px 0 10px}.geometry svg{width:100%;max-width:440px;height:auto;display:block}.geometry text{fill:var(--muted);font-size:10px}.geometry .caption{font-size:11px;font-weight:600}.geometry .phone{fill:var(--bg);stroke:var(--muted);stroke-width:1px}.geometry .lens{fill:var(--surface);fill-opacity:.6;stroke:var(--text);stroke-width:1.5px}.geometry .eye{fill:none;stroke:var(--muted);stroke-width:1.5px}.geometry .center-dot{fill:#e53935}.geometry .tray{stroke:var(--text);stroke-width:4px;stroke-linecap:round}.geometry .centerline{stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 3}.geometry .dim path{fill:none;stroke:var(--muted);stroke-width:1.2px}.geometry .dim .ext{stroke-dasharray:2 2}.geometry .dim.active path{stroke:var(--accent);stroke-width:2px}.geometry .dim.active text{fill:var(--accent);font-weight:600}.geometry .tray.active,.geometry .centerline.active{stroke:var(--accent)}.geometry g[data-align]{display:none}.geometry svg[data-align="0"] g[data-align="0"],.geometry svg[data-align="1"] g[data-align="1"],.geometry svg[data-align="2"] g[data-align="2"]{display:inline}
