.lang-switcher[data-v-75c8d4b2]{display:flex;align-items:center}.lang-select[data-v-75c8d4b2]{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.82rem;cursor:pointer;max-width:130px}.lang-select[data-v-75c8d4b2]:hover{color:var(--text-primary);border-color:#3b82f666}.lang-select[data-v-75c8d4b2]:focus{outline:none;border-color:var(--accent)}.sr-only[data-v-75c8d4b2]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header[data-v-7d9f7e65]{border-bottom:1px solid var(--border);background:#0f1117d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100}.header-inner[data-v-7d9f7e65]{display:flex;align-items:center;justify-content:space-between;height:64px}.logo[data-v-7d9f7e65]{display:flex;align-items:center;gap:10px;font-weight:700;font-size:1.1rem}.logo-icon[data-v-7d9f7e65]{font-size:1.4rem}.nav[data-v-7d9f7e65]{display:flex;align-items:center;gap:8px}.nav-link[data-v-7d9f7e65]{padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:500;color:var(--text-secondary);transition:color .2s,background .2s}.nav-link[data-v-7d9f7e65]:hover,.nav-link.is-active[data-v-7d9f7e65]{color:var(--text-primary);background:var(--bg-secondary)}.nav-dropdown[data-v-7d9f7e65]{position:relative}.nav-dropdown-trigger[data-v-7d9f7e65]{display:inline-flex;align-items:center;gap:4px}.chevron[data-v-7d9f7e65]{font-size:.7rem;transition:transform .2s}.nav-dropdown:hover .chevron[data-v-7d9f7e65],.nav-dropdown:focus-within .chevron[data-v-7d9f7e65]{transform:rotate(180deg)}.dropdown-menu[data-v-7d9f7e65]{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);box-shadow:0 10px 30px #00000059;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility .15s;z-index:200}.nav-dropdown:hover .dropdown-menu[data-v-7d9f7e65],.nav-dropdown:focus-within .dropdown-menu[data-v-7d9f7e65]{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item[data-v-7d9f7e65]{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:7px;font-size:.88rem;color:var(--text-secondary);transition:color .15s,background .15s}.dropdown-item[data-v-7d9f7e65]:hover,.dropdown-item.router-link-exact-active[data-v-7d9f7e65]{color:var(--text-primary);background:var(--bg-secondary)}.dropdown-item-icon[data-v-7d9f7e65]{font-size:1.1rem}@media(max-width:768px){.nav-link[data-v-7d9f7e65]{padding:8px 10px;font-size:.82rem}.dropdown-menu[data-v-7d9f7e65]{min-width:170px}}.info-section[data-v-995fdfbb]{border-top:1px solid var(--border);padding:40px 0 56px;background:var(--bg-primary)}.info-inner[data-v-995fdfbb]{max-width:820px}.info-lead[data-v-995fdfbb]{color:var(--text-secondary);font-size:.95rem;margin-bottom:24px}.info-title[data-v-995fdfbb]{font-size:1.25rem;font-weight:700;margin-bottom:16px}.faq-list[data-v-995fdfbb]{list-style:none;display:flex;flex-direction:column;gap:10px}.faq-item[data-v-995fdfbb]{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);overflow:hidden}.faq-q[data-v-995fdfbb]{cursor:pointer;padding:14px 18px;font-weight:600;font-size:.95rem;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}.faq-q[data-v-995fdfbb]::-webkit-details-marker{display:none}.faq-q[data-v-995fdfbb]:after{content:"+";color:var(--text-muted);font-size:1.2rem;line-height:1;transition:transform .2s ease}details[open] .faq-q[data-v-995fdfbb]:after{content:"−"}.faq-a[data-v-995fdfbb]{padding:0 18px 16px;color:var(--text-secondary);font-size:.9rem;line-height:1.7}@media(max-width:768px){.info-section[data-v-995fdfbb]{padding:28px 0 40px}}.app[data-v-c101c974]{min-height:100vh;display:flex;flex-direction:column}main[data-v-c101c974]{flex:1}.home-page[data-v-c3423db3]{max-width:1000px;margin:0 auto;padding:40px 16px 56px}.home-hero[data-v-c3423db3]{text-align:center;margin-bottom:40px}.home-hero h1[data-v-c3423db3]{font-size:1.9rem;font-weight:800;margin-bottom:12px}.home-hero p[data-v-c3423db3]{color:var(--text-secondary);font-size:.95rem;max-width:620px;margin:0 auto;line-height:1.6}.home-section+.home-section[data-v-c3423db3]{margin-top:40px;padding-top:36px;border-top:1px solid var(--border)}.section-title[data-v-c3423db3]{font-size:1.1rem;font-weight:700;margin-bottom:16px;color:var(--text-primary)}.tool-grid[data-v-c3423db3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.tool-card[data-v-c3423db3]{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);transition:transform .15s,border-color .15s,background .15s}.tool-card[data-v-c3423db3]:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--bg-secondary)}.tool-card-icon[data-v-c3423db3]{font-size:1.9rem}.tool-card-title[data-v-c3423db3]{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.tool-card-desc[data-v-c3423db3]{font-size:.85rem;color:var(--text-secondary);line-height:1.55;flex:1}.tool-card-cta[data-v-c3423db3]{margin-top:4px;font-size:.82rem;font-weight:600;color:var(--accent)}@media(max-width:768px){.home-page[data-v-c3423db3]{padding:28px 16px 40px}.home-hero h1[data-v-c3423db3]{font-size:1.5rem}}.key-spacer[data-v-502d9bbd]{--key-w: 1;flex:none;width:calc(var(--key-unit) * var(--key-w) + var(--key-gap) * max(0,var(--key-w) - 1));height:var(--key-unit);visibility:hidden;pointer-events:none}.key-cap[data-v-502d9bbd]{--key-w: 1;--key-h: 1;position:relative;flex:none;width:calc(var(--key-unit) * var(--key-w) + var(--key-gap) * max(0,var(--key-w) - 1));height:calc(var(--key-unit) * var(--key-h) + var(--key-gap) * max(0,var(--key-h) - 1));background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 1px #ffffff0f;transition:background .1s ease,box-shadow .1s ease,transform .08s ease,border-color .1s ease;-webkit-user-select:none;user-select:none}.key-cap--fill[data-v-502d9bbd]{width:100%;height:100%}.key-cap.has-counts[data-v-502d9bbd]{justify-content:flex-start;padding-top:5px;padding-bottom:12px}.key-cap.tested[data-v-502d9bbd]{background:#22c55e33;border-color:#4ade8073;box-shadow:0 0 8px #22c55e26}.key-cap.tested .key-label[data-v-502d9bbd]{color:#86efac}.key-cap.pressed[data-v-502d9bbd]{background:linear-gradient(180deg,#4ade80,#22c55e,#15803d);border-color:#86efacbf;box-shadow:0 0 16px #4ade808c,inset 0 1px #ffffff4d;transform:translateY(1px)}.key-label[data-v-502d9bbd]{position:relative;z-index:1;font-size:.6rem;font-weight:600;color:#ffffff80;text-align:center;line-height:1.15;padding:0 2px;white-space:pre-line;max-width:100%;overflow:hidden;text-overflow:ellipsis}.key-cap.has-counts .key-label[data-v-502d9bbd]{font-size:.52rem}.key-cap.pressed .key-label[data-v-502d9bbd]{color:#fff;font-weight:700}.key-counts[data-v-502d9bbd]{position:absolute;bottom:3px;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:1px;font-family:var(--font-mono);font-size:.48rem;font-weight:700;line-height:1;pointer-events:none}.count-down[data-v-502d9bbd]{color:#93c5fd}.count-sep[data-v-502d9bbd]{color:#ffffff4d;font-size:.42rem}.count-up[data-v-502d9bbd]{color:#fcd34d}.key-cap.pressed .count-down[data-v-502d9bbd],.key-cap.pressed .count-up[data-v-502d9bbd],.key-cap.pressed .count-sep[data-v-502d9bbd]{color:#ffffffeb}.keyboard[data-v-856c4125]{display:inline-flex;flex-wrap:nowrap;align-items:flex-start;gap:calc(var(--key-gap) * 4);padding:8px 10px;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.04) 0%,transparent 55%),linear-gradient(165deg,#2a3148,#1e2433);border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:0 8px 32px #00000059,inset 0 1px #ffffff0f}.keyboard-section[data-v-856c4125]{display:flex;flex-direction:column;gap:var(--key-gap);flex-shrink:0}.keyboard-section--nav[data-v-856c4125],.keyboard-section--numpad[data-v-856c4125]{padding-top:calc(var(--key-unit) + var(--key-gap))}.keyboard-section--grid[data-v-856c4125]{display:grid;grid-template-columns:repeat(4,var(--key-unit));grid-template-rows:repeat(5,var(--key-unit));gap:var(--key-gap)}.keyboard-row[data-v-856c4125]{display:flex;flex-wrap:nowrap;gap:var(--key-gap);align-items:stretch;min-height:var(--key-unit)}.test-page[data-v-e4ca4c40]{height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;padding:10px 16px 12px;box-sizing:border-box}.test-toolbar[data-v-e4ca4c40]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-bottom:10px}.toolbar-left[data-v-e4ca4c40]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-e4ca4c40]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-e4ca4c40]{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-sm[data-v-e4ca4c40]{padding:6px 14px;font-size:.82rem}.test-layout[data-v-e4ca4c40]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px}.test-page .card[data-v-e4ca4c40]{padding:10px;min-height:0}.keyboard-area[data-v-e4ca4c40]{display:flex;flex-direction:column;overflow:hidden}.keyboard-box[data-v-e4ca4c40]{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,rgba(59,130,246,.05) 0%,transparent 70%);border-radius:10px}.keyboard-legend[data-v-e4ca4c40]{flex-shrink:0;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 16px;padding-top:8px;margin-top:8px;border-top:1px solid var(--border)}.legend-item[data-v-e4ca4c40]{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-secondary)}.legend-dot[data-v-e4ca4c40]{width:10px;height:10px;border-radius:3px;border:1px solid var(--border)}.legend-dot--default[data-v-e4ca4c40]{background:var(--bg-key)}.legend-dot--tested[data-v-e4ca4c40]{background:#22c55e40;border-color:#4ade8080}.legend-dot--pressed[data-v-e4ca4c40]{background:linear-gradient(180deg,#4ade80,#22c55e);border-color:#86efac}.legend-item--count[data-v-e4ca4c40]{font-family:var(--font-mono);font-size:.7rem}.legend-item--count .count-down[data-v-e4ca4c40]{color:#60a5fa}.legend-item--count .count-up[data-v-e4ca4c40]{color:#fbbf24}.sidebar[data-v-e4ca4c40]{display:flex;flex-direction:column;gap:0;overflow:hidden}.sidebar-block[data-v-e4ca4c40]{padding:8px 0;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-block[data-v-e4ca4c40]:last-child{border-bottom:none;flex:1;min-height:0;display:flex;flex-direction:column}.block-head[data-v-e4ca4c40]{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.live-count[data-v-e4ca4c40]{font-size:1.1rem;font-family:var(--font-mono);color:#22c55e}.totals[data-v-e4ca4c40]{font-family:var(--font-mono);font-size:.85rem;display:flex;gap:8px}.count-down[data-v-e4ca4c40]{color:#60a5fa}.count-up[data-v-e4ca4c40]{color:#fbbf24}.tag-row[data-v-e4ca4c40]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.tag[data-v-e4ca4c40]{padding:2px 8px;background:#22c55e1f;border:1px solid rgba(34,197,94,.35);border-radius:4px;font-size:.72rem;font-family:var(--font-mono);color:#4ade80}.tag em[data-v-e4ca4c40]{font-style:normal;color:var(--text-muted);margin-left:4px;font-size:.65rem}.last-event[data-v-e4ca4c40]{font-size:.72rem;font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-list[data-v-e4ca4c40]{max-height:100px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.stats-row[data-v-e4ca4c40]{display:flex;justify-content:space-between;font-size:.72rem;font-family:var(--font-mono);padding:2px 4px;border-radius:4px}.stats-row.mismatch[data-v-e4ca4c40]{background:#f59e0b1a}.log-block[data-v-e4ca4c40]{overflow:hidden}.event-log[data-v-e4ca4c40]{flex:1;min-height:0;overflow-y:auto}.log-line[data-v-e4ca4c40]{font-size:.65rem;font-family:var(--font-mono);color:var(--text-secondary);padding:2px 0;border-bottom:1px solid rgba(51,65,85,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.muted[data-v-e4ca4c40]{font-size:.72rem;color:var(--text-muted)}@media(max-width:1024px){.test-page[data-v-e4ca4c40]{height:auto;max-height:none;overflow:visible}.test-layout[data-v-e4ca4c40]{grid-template-columns:1fr}.keyboard-box[data-v-e4ca4c40]{min-height:280px}.sidebar[data-v-e4ca4c40]{max-height:320px}}.mouse-btn[data-v-3491f4e0]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;-webkit-user-select:none;user-select:none;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);transition:background .12s ease,box-shadow .12s ease,transform .1s ease,border-color .12s ease}.mouse-btn.large[data-v-3491f4e0]{min-height:92px;padding:10px 8px 16px}.mouse-btn.left[data-v-3491f4e0]{border-radius:28px 10px 12px 28px}.mouse-btn.right[data-v-3491f4e0]{border-radius:10px 28px 28px 12px}.mouse-btn.wheel[data-v-3491f4e0]{width:100%;min-height:32px;padding:4px 2px 12px;border-radius:6px;background:transparent;border-color:transparent}.mouse-btn.wheel.has-counts[data-v-3491f4e0]{background:#ffffff0a;border-color:#ffffff0f}.mouse-btn.side[data-v-3491f4e0]{width:52px;min-height:44px;padding:6px 4px 14px;border-radius:10px;background:#ffffff0d}.mouse-btn.tested[data-v-3491f4e0]{background:#22c55e2e;border-color:#4ade8073;box-shadow:0 0 10px #22c55e26}.mouse-btn.tested .btn-label[data-v-3491f4e0]{color:#86efac}.mouse-btn.pressed[data-v-3491f4e0]{background:linear-gradient(180deg,#4ade80,#22c55e 55%,#15803d);border-color:#86efaccc;box-shadow:0 0 18px #4ade808c,inset 0 1px #ffffff40;transform:scale(.98)}.btn-label[data-v-3491f4e0]{font-size:.78rem;font-weight:600;color:#ffffff8c;text-align:center;z-index:1;line-height:1.2;letter-spacing:.02em}.mouse-btn.wheel .btn-label[data-v-3491f4e0],.mouse-btn.side .btn-label[data-v-3491f4e0]{font-size:.62rem}.mouse-btn.large.has-counts .btn-label[data-v-3491f4e0],.mouse-btn.side.has-counts .btn-label[data-v-3491f4e0]{margin-bottom:8px;font-size:.7rem}.mouse-btn.wheel.has-counts .btn-label[data-v-3491f4e0]{margin-bottom:4px;font-size:.58rem}.mouse-btn.pressed .btn-label[data-v-3491f4e0]{color:#fff}.btn-counts[data-v-3491f4e0]{position:absolute;bottom:5px;left:0;right:0;display:flex;justify-content:center;gap:1px;font-family:var(--font-mono);font-size:.52rem;font-weight:700;z-index:2;line-height:1}.count-down[data-v-3491f4e0]{color:#93c5fd}.count-sep[data-v-3491f4e0]{color:#ffffff59;font-size:.48rem}.count-up[data-v-3491f4e0]{color:#fcd34d}.mouse-btn.pressed .count-down[data-v-3491f4e0],.mouse-btn.pressed .count-up[data-v-3491f4e0],.mouse-btn.pressed .count-sep[data-v-3491f4e0]{color:#ffffffeb}.mouse-layout[data-v-0de04697]{display:flex;justify-content:center;padding:4px 0}.mouse-shell[data-v-0de04697]{display:flex;align-items:center;gap:14px}.mouse-body[data-v-0de04697]{position:relative;width:300px;padding:14px 16px 22px;background:radial-gradient(ellipse at 50% 0%,rgba(255,255,255,.07) 0%,transparent 55%),linear-gradient(165deg,#343d56,#252b3d 45%,#1c2130);border:1px solid rgba(255,255,255,.1);border-radius:48% 48% 42% 42%/38% 38% 58% 58%;box-shadow:0 12px 40px #00000073,inset 0 1px #ffffff1f,inset 0 -8px 20px #00000040}.mouse-top[data-v-0de04697]{display:grid;grid-template-columns:1fr 58px 1fr;gap:6px;align-items:stretch}.wheel-stack[data-v-0de04697]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.wheel-unit[data-v-0de04697]{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;background:#00000038;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.wheel-ridge[data-v-0de04697]{width:22px;height:32px;border-radius:6px;background:linear-gradient(90deg,#1a1f2e,#3d4660,#1a1f2e);border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 2px 4px #00000080}.wheel-stat[data-v-0de04697]{display:flex;align-items:center;gap:3px;font-size:.62rem;font-family:var(--font-mono);font-weight:600;color:var(--text-muted);line-height:1}.wheel-stat.active[data-v-0de04697]{color:#93c5fd}.wheel-stat:last-child.active[data-v-0de04697]{color:#fcd34d}.mouse-tail[data-v-0de04697]{height:28px;margin:8px auto 0;width:38%;border-radius:0 0 20px 20px;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,transparent 100%)}.thumb-rail[data-v-0de04697]{display:flex;flex-direction:column;gap:8px;padding:8px 0}@media(max-width:768px){.mouse-body[data-v-0de04697]{width:260px;padding:12px 14px 18px}.mouse-top[data-v-0de04697]{grid-template-columns:1fr 50px 1fr}}.mouse-pad[data-v-c5dbfc8b]{position:relative;height:100%;min-height:90px;display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;overflow:hidden}.pad-header[data-v-c5dbfc8b]{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#0003;border-bottom:1px solid var(--border);flex-shrink:0}.pad-title[data-v-c5dbfc8b]{font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.pad-coords[data-v-c5dbfc8b]{font-family:var(--font-mono);font-size:.65rem;color:var(--text-secondary)}.pad-surface[data-v-c5dbfc8b]{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;cursor:crosshair;background:radial-gradient(circle at center,rgba(59,130,246,.04) 0%,transparent 70%),repeating-linear-gradient(0deg,transparent,transparent 19px,rgba(255,255,255,.03) 19px,rgba(255,255,255,.03) 20px),repeating-linear-gradient(90deg,transparent,transparent 19px,rgba(255,255,255,.03) 19px,rgba(255,255,255,.03) 20px);transition:background-color .2s}.pad-surface[data-v-c5dbfc8b]:hover{background-color:#3b82f60a}.pad-hint[data-v-c5dbfc8b]{color:var(--text-muted);font-size:.72rem;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.7}.click-marker[data-v-c5dbfc8b]{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid #22c55e;background:#22c55e59;box-shadow:0 0 10px #22c55e80;pointer-events:none;animation:ripple-c5dbfc8b .5s ease-out}@keyframes ripple-c5dbfc8b{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.dpi-test[data-v-204d74f3]{height:100%;display:flex;flex-direction:column;min-height:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;overflow:hidden}.dpi-header[data-v-204d74f3]{display:flex;flex-direction:column;gap:6px;padding:6px 10px;background:#0003;border-bottom:1px solid var(--border);flex-shrink:0}.dpi-title[data-v-204d74f3]{font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.distance-config[data-v-204d74f3]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.distance-presets[data-v-204d74f3]{display:flex;gap:3px;flex-wrap:wrap}.preset-btn[data-v-204d74f3]{min-width:26px;padding:2px 6px;border-radius:5px;font-size:.62rem;font-weight:600;font-family:var(--font-mono);background:#ffffff0a;color:var(--text-muted);border:1px solid transparent}.preset-btn[data-v-204d74f3]:after{content:"cm";font-size:.5rem;margin-left:1px;opacity:.7}.preset-btn.active[data-v-204d74f3]{background:#3b82f633;border-color:#3b82f680;color:#93c5fd}.preset-btn[data-v-204d74f3]:disabled{opacity:.4}.distance-input-wrap[data-v-204d74f3]{display:flex;align-items:center;gap:4px;flex-shrink:0}.distance-input[data-v-204d74f3]{width:52px;padding:3px 6px;border-radius:5px;border:1px solid var(--border);background:#ffffff0d;color:var(--text-primary);font-family:var(--font-mono);font-size:.68rem;text-align:center}.distance-input[data-v-204d74f3]:focus{outline:none;border-color:var(--accent)}.distance-input[data-v-204d74f3]:disabled{opacity:.5}.distance-unit[data-v-204d74f3]{font-size:.62rem;color:var(--text-muted)}.dpi-pad[data-v-204d74f3]{flex:1;min-height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;text-align:center;padding:10px;transition:background .2s}.dpi-pad[data-v-204d74f3]:hover{background:#3b82f60d}.dpi-pad--measuring[data-v-204d74f3]{background:#22c55e14;cursor:none}.dpi-pad--done[data-v-204d74f3]{background:#3b82f60f}.dpi-icon[data-v-204d74f3]{font-size:1.2rem;color:var(--text-muted);line-height:1}.dpi-icon.pulse[data-v-204d74f3]{color:#22c55e;animation:blink-204d74f3 1.2s ease-in-out infinite}@keyframes blink-204d74f3{0%,to{opacity:1}50%{opacity:.35}}.pad-title[data-v-204d74f3]{font-size:.72rem;font-weight:600;color:var(--text-secondary)}.pad-live strong[data-v-204d74f3]{font-family:var(--font-mono);font-size:1.3rem;color:#22c55e}.result-value[data-v-204d74f3]{font-size:2rem;font-weight:800;font-family:var(--font-mono);color:var(--accent);line-height:1}.pad-sub[data-v-204d74f3]{font-size:.62rem;color:var(--text-muted)}.link-btn[data-v-204d74f3]{background:none;border:none;color:var(--accent);font-size:.65rem;padding:2px 0 0}.error-msg[data-v-204d74f3]{font-size:.62rem;color:var(--danger);padding:0 10px 4px}.dpi-history[data-v-204d74f3]{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 10px 8px;flex-shrink:0}.history-item[data-v-204d74f3]{padding:1px 7px;background:#ffffff0d;border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:.58rem;color:var(--text-secondary)}.history-avg[data-v-204d74f3]{font-size:.58rem;color:var(--text-muted);font-family:var(--font-mono)}.test-page[data-v-18e287cc]{height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;padding:10px 16px 12px;box-sizing:border-box}.test-toolbar[data-v-18e287cc]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-bottom:10px}.toolbar-left[data-v-18e287cc]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-18e287cc]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-18e287cc]{font-size:.8rem;color:var(--text-muted)}.btn-sm[data-v-18e287cc]{padding:6px 14px;font-size:.82rem}.test-layout[data-v-18e287cc]{flex:1;min-height:0;display:grid;grid-template-columns:1fr 260px;gap:12px}.test-page .card[data-v-18e287cc]{padding:12px;min-height:0}.mouse-area[data-v-18e287cc]{display:flex;flex-direction:column;overflow:hidden}.mouse-box[data-v-18e287cc]{flex:0 1 46%;min-height:140px;max-height:52%;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 60%,rgba(59,130,246,.06) 0%,transparent 65%);border-radius:12px}.mouse-scale[data-v-18e287cc]{transform-origin:center center}.mouse-bottom[data-v-18e287cc]{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.bottom-cell[data-v-18e287cc]{min-height:0;display:flex;flex-direction:column}.mouse-legend[data-v-18e287cc]{flex-shrink:0;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 16px;padding-top:8px;margin-top:8px;border-top:1px solid var(--border)}.legend-item[data-v-18e287cc]{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-secondary)}.legend-dot[data-v-18e287cc]{width:10px;height:10px;border-radius:3px;border:1px solid var(--border)}.legend-dot--default[data-v-18e287cc]{background:var(--bg-key)}.legend-dot--tested[data-v-18e287cc]{background:#22c55e40;border-color:#4ade8080}.legend-dot--pressed[data-v-18e287cc]{background:linear-gradient(180deg,#4ade80,#22c55e);border-color:#86efac}.legend-item--count[data-v-18e287cc]{font-family:var(--font-mono);font-size:.7rem}.legend-item--count .count-down[data-v-18e287cc]{color:#60a5fa}.legend-item--count .count-up[data-v-18e287cc]{color:#fbbf24}.sidebar[data-v-18e287cc]{display:flex;flex-direction:column;overflow:hidden}.sidebar-block[data-v-18e287cc]{padding:8px 0;border-bottom:1px solid var(--border);flex-shrink:0}.log-block[data-v-18e287cc]{flex:1;min-height:0;display:flex;flex-direction:column;border-bottom:none}.block-head[data-v-18e287cc]{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.live-count[data-v-18e287cc]{font-size:1.1rem;font-family:var(--font-mono);color:#22c55e}.totals[data-v-18e287cc]{font-family:var(--font-mono);font-size:.85rem;display:flex;gap:8px}.count-down[data-v-18e287cc]{color:#60a5fa}.count-up[data-v-18e287cc]{color:#fbbf24}.tag-row[data-v-18e287cc]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.tag[data-v-18e287cc]{padding:2px 8px;background:#22c55e1f;border:1px solid rgba(34,197,94,.35);border-radius:4px;font-size:.72rem;font-family:var(--font-mono);color:#4ade80}.tag em[data-v-18e287cc]{font-style:normal;color:var(--text-muted);margin-left:4px;font-size:.65rem}.last-event[data-v-18e287cc]{font-size:.72rem;font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-list[data-v-18e287cc]{max-height:80px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.stats-row[data-v-18e287cc]{display:flex;justify-content:space-between;font-size:.72rem;font-family:var(--font-mono);padding:2px 4px;border-radius:4px}.stats-row.mismatch[data-v-18e287cc]{background:#f59e0b1a}.extra-row[data-v-18e287cc]{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;font-size:.72rem;color:var(--text-secondary)}.extra-row strong[data-v-18e287cc]{font-family:var(--font-mono);color:var(--text-primary);margin-left:4px}.event-log[data-v-18e287cc]{flex:1;min-height:0;overflow-y:auto}.log-line[data-v-18e287cc]{font-size:.65rem;font-family:var(--font-mono);color:var(--text-secondary);padding:2px 0;border-bottom:1px solid rgba(51,65,85,.35);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.muted[data-v-18e287cc]{font-size:.72rem;color:var(--text-muted)}.mouse-area[data-v-18e287cc] .mouse-layout{padding:0}@media(max-width:1024px){.test-page[data-v-18e287cc]{height:auto;max-height:none;overflow:visible}.test-layout[data-v-18e287cc],.mouse-bottom[data-v-18e287cc]{grid-template-columns:1fr}.sidebar[data-v-18e287cc]{max-height:320px}}.pattern[data-v-d4f926bc]{width:100%;height:100%}.pattern--gradient[data-v-d4f926bc]{background:linear-gradient(to right,#000,#fff)}.pattern--checkerboard[data-v-d4f926bc]{background-color:#fff;background-image:linear-gradient(45deg,#000 25%,transparent 25%),linear-gradient(-45deg,#000 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#000 75%),linear-gradient(-45deg,transparent 75%,#000 75%);background-size:40px 40px;background-position:0 0,0 20px,20px -20px,-20px 0}.test-page[data-v-98a227e1]{height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;padding:10px 16px 12px;box-sizing:border-box}.test-toolbar[data-v-98a227e1]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-bottom:10px}.toolbar-left[data-v-98a227e1]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-98a227e1]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-98a227e1]{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-sm[data-v-98a227e1]{padding:6px 14px;font-size:.82rem}.test-layout[data-v-98a227e1]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px}.test-page .card[data-v-98a227e1]{padding:10px;min-height:0}.preview-area[data-v-98a227e1]{display:flex;flex-direction:column;overflow:hidden}.preview-box[data-v-98a227e1]{flex:1;min-height:0;border-radius:10px;overflow:hidden;cursor:pointer;border:1px solid var(--border)}.preview-label[data-v-98a227e1]{flex-shrink:0;margin-top:8px;font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px}.preview-tip[data-v-98a227e1]{font-weight:400;font-size:.72rem;color:var(--text-muted)}.sidebar[data-v-98a227e1]{display:flex;flex-direction:column;overflow:hidden}.sidebar-block[data-v-98a227e1]{padding:8px 0;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-block[data-v-98a227e1]:last-child{border-bottom:none}.block-head[data-v-98a227e1]{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.pattern-grid[data-v-98a227e1]{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pattern-btn[data-v-98a227e1]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.72rem;text-align:left;transition:border-color .15s,background .15s}.pattern-btn[data-v-98a227e1]:hover{border-color:#3b82f680;color:var(--text-primary)}.pattern-btn.active[data-v-98a227e1]{border-color:var(--accent);background:#3b82f61f;color:var(--text-primary)}.pattern-swatch[data-v-98a227e1]{width:18px;height:18px;border-radius:4px;border:1px solid rgba(255,255,255,.15);flex-shrink:0}.swatch--gradient[data-v-98a227e1]{background:linear-gradient(to right,#000,#fff)}.swatch--checkerboard[data-v-98a227e1]{background-color:#fff;background-image:linear-gradient(45deg,#000 25%,transparent 25%),linear-gradient(-45deg,#000 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#000 75%),linear-gradient(-45deg,transparent 75%,#000 75%);background-size:8px 8px;background-position:0 0,0 4px,4px -4px,-4px 0}.pattern-name[data-v-98a227e1]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-list[data-v-98a227e1]{display:flex;flex-direction:column;gap:6px}.info-row[data-v-98a227e1]{display:flex;justify-content:space-between;gap:8px;font-size:.72rem}.info-row dt[data-v-98a227e1]{color:var(--text-muted)}.info-row dd[data-v-98a227e1]{font-family:var(--font-mono);color:var(--text-primary);text-align:right}.tips-block[data-v-98a227e1]{padding-top:10px}.tip[data-v-98a227e1]{font-size:.72rem;color:var(--text-secondary);line-height:1.5}.fullscreen-layer[data-v-98a227e1]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;pointer-events:none;cursor:pointer}.fullscreen-layer[data-v-98a227e1]:fullscreen{z-index:9999;opacity:1;pointer-events:auto}.fullscreen-bar[data-v-98a227e1]{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:16px;padding:12px 20px;background:#000000a6;color:#fff;font-size:.85rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fullscreen-hint[data-v-98a227e1]{flex:1;color:#ffffffb3;font-size:.78rem}.exit-btn[data-v-98a227e1]{padding:6px 14px;border-radius:6px;background:#ffffff26;color:#fff;font-size:.82rem;border:1px solid rgba(255,255,255,.25);transition:background .15s}.exit-btn[data-v-98a227e1]:hover{background:#ffffff40}@media(max-width:1024px){.test-page[data-v-98a227e1]{height:auto;max-height:none;overflow:visible}.test-layout[data-v-98a227e1]{grid-template-columns:1fr}.preview-box[data-v-98a227e1]{min-height:280px}}.fullscreen-layer:fullscreen{width:100%;height:100%}.mic-visualizer[data-v-5214ba51]{width:100%;height:100%;display:block;border-radius:10px;background:radial-gradient(ellipse at 50% 100%,rgba(59,130,246,.08) 0%,transparent 70%)}.test-page[data-v-9758fb11]{height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;padding:10px 16px 12px;box-sizing:border-box}.test-toolbar[data-v-9758fb11]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-bottom:10px}.toolbar-left[data-v-9758fb11]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-9758fb11]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-9758fb11]{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-actions[data-v-9758fb11]{display:flex;gap:8px;flex-shrink:0}.btn-sm[data-v-9758fb11]{padding:6px 14px;font-size:.82rem}.test-layout[data-v-9758fb11]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px}.test-page .card[data-v-9758fb11]{padding:10px;min-height:0}.visual-area[data-v-9758fb11]{display:flex;flex-direction:column;gap:10px;overflow:hidden}.visual-box[data-v-9758fb11]{position:relative;flex:1;min-height:0;border:1px solid var(--border);border-radius:10px;overflow:hidden}.visual-placeholder[data-v-9758fb11]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0f1117b8;color:var(--text-secondary);text-align:center;padding:20px}.visual-placeholder--clickable[data-v-9758fb11]{cursor:pointer;transition:background .15s}.visual-placeholder--clickable[data-v-9758fb11]:hover{background:#0f1117d1}.placeholder-btn[data-v-9758fb11]{margin-top:4px}.visual-placeholder--error[data-v-9758fb11]{color:#fca5a5}.placeholder-icon[data-v-9758fb11]{font-size:2rem}.level-panel[data-v-9758fb11]{flex-shrink:0}.level-head[data-v-9758fb11]{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;margin-bottom:6px}.level-head strong[data-v-9758fb11]{font-family:var(--font-mono);font-size:1rem}.level-track[data-v-9758fb11]{position:relative;height:14px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border);overflow:hidden}.level-fill[data-v-9758fb11]{height:100%;border-radius:999px;transition:width .05s linear,background-color .15s}.level-peak[data-v-9758fb11]{position:absolute;top:1px;bottom:1px;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 6px #fffc}.level-meta[data-v-9758fb11]{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:.72rem;color:var(--text-muted)}.status-pill[data-v-9758fb11]{padding:2px 8px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border)}.status-pill--active[data-v-9758fb11]{color:#4ade80;border-color:#22c55e66;background:#22c55e1a}.status-pill--error[data-v-9758fb11]{color:#fca5a5;border-color:#ef444466;background:#ef44441a}.sidebar[data-v-9758fb11]{display:flex;flex-direction:column;overflow:hidden}.sidebar-block[data-v-9758fb11]{padding:8px 0;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-block[data-v-9758fb11]:last-child{border-bottom:none}.block-head[data-v-9758fb11]{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.device-select-wrap[data-v-9758fb11]{display:block}.device-select[data-v-9758fb11]{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.78rem}.device-select[data-v-9758fb11]:disabled{opacity:.6}.device-name[data-v-9758fb11]{margin-top:6px;font-size:.72rem;color:var(--text-secondary);word-break:break-word}.info-list[data-v-9758fb11]{display:flex;flex-direction:column;gap:6px}.info-row[data-v-9758fb11]{display:flex;justify-content:space-between;gap:8px;font-size:.72rem}.info-row dt[data-v-9758fb11]{color:var(--text-muted)}.info-row dd[data-v-9758fb11]{font-family:var(--font-mono);color:var(--text-primary);text-align:right}.tips-block[data-v-9758fb11]{padding-top:10px}.tip[data-v-9758fb11]{font-size:.72rem;color:var(--text-secondary);line-height:1.5}.muted[data-v-9758fb11]{font-size:.72rem;color:var(--text-muted)}.sr-only[data-v-9758fb11]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1024px){.test-page[data-v-9758fb11]{height:auto;max-height:none;overflow:visible}.test-layout[data-v-9758fb11]{grid-template-columns:1fr}.visual-box[data-v-9758fb11]{min-height:240px}}.test-page[data-v-fdc336dd]{height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;padding:10px 16px 12px;box-sizing:border-box}.test-toolbar[data-v-fdc336dd]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-bottom:10px}.toolbar-left[data-v-fdc336dd]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-fdc336dd]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-fdc336dd]{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-actions[data-v-fdc336dd]{display:flex;gap:8px;flex-shrink:0}.btn-sm[data-v-fdc336dd]{padding:6px 14px;font-size:.82rem}.test-layout[data-v-fdc336dd]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px}.test-page .card[data-v-fdc336dd]{padding:10px;min-height:0}.visual-area[data-v-fdc336dd]{display:flex;flex-direction:column;gap:8px;overflow:hidden}.visual-box[data-v-fdc336dd]{position:relative;flex:1;min-height:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#000}.camera-video[data-v-fdc336dd]{width:100%;height:100%;object-fit:contain;display:block;background:#000}.camera-video--mirrored[data-v-fdc336dd]{transform:scaleX(-1)}.visual-placeholder[data-v-fdc336dd]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0f1117d1;color:var(--text-secondary);text-align:center;padding:20px}.visual-placeholder--clickable[data-v-fdc336dd]{cursor:pointer;transition:background .15s}.visual-placeholder--clickable[data-v-fdc336dd]:hover{background:#0f1117e6}.visual-placeholder--error[data-v-fdc336dd]{color:#fca5a5}.placeholder-icon[data-v-fdc336dd]{font-size:2rem}.placeholder-btn[data-v-fdc336dd]{margin-top:4px}.preview-meta[data-v-fdc336dd]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.resolution-tag[data-v-fdc336dd]{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.status-pill[data-v-fdc336dd]{padding:2px 8px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border);font-size:.72rem;color:var(--text-secondary)}.status-pill--active[data-v-fdc336dd]{color:#4ade80;border-color:#22c55e66;background:#22c55e1a}.status-pill--error[data-v-fdc336dd]{color:#fca5a5;border-color:#ef444466;background:#ef44441a}.sidebar[data-v-fdc336dd]{display:flex;flex-direction:column;overflow:hidden}.sidebar-block[data-v-fdc336dd]{padding:8px 0;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-block[data-v-fdc336dd]:last-child{border-bottom:none}.block-head[data-v-fdc336dd]{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.device-select[data-v-fdc336dd]{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.78rem}.device-select[data-v-fdc336dd]:disabled{opacity:.6}.device-name[data-v-fdc336dd]{margin-top:6px;font-size:.72rem;color:var(--text-secondary);word-break:break-word}.option-row[data-v-fdc336dd]{display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-secondary);cursor:pointer}.info-list[data-v-fdc336dd]{display:flex;flex-direction:column;gap:6px}.info-row[data-v-fdc336dd]{display:flex;justify-content:space-between;gap:8px;font-size:.72rem}.info-row dt[data-v-fdc336dd]{color:var(--text-muted)}.info-row dd[data-v-fdc336dd]{font-family:var(--font-mono);color:var(--text-primary);text-align:right}.snapshot-preview[data-v-fdc336dd]{width:100%;border-radius:8px;border:1px solid var(--border);display:block;margin-bottom:8px}.snapshot-download[data-v-fdc336dd]{width:100%}.tips-block[data-v-fdc336dd]{padding-top:10px}.tip[data-v-fdc336dd]{font-size:.72rem;color:var(--text-secondary);line-height:1.5}.muted[data-v-fdc336dd]{font-size:.72rem;color:var(--text-muted)}.sr-only[data-v-fdc336dd]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1024px){.test-page[data-v-fdc336dd]{height:auto;max-height:none;overflow:visible}.test-layout[data-v-fdc336dd]{grid-template-columns:1fr}.visual-box[data-v-fdc336dd]{min-height:280px}}.speaker-visualizer[data-v-505490d0]{width:100%;height:100%;display:block;border-radius:10px;background:radial-gradient(ellipse at 50% 100%,rgba(59,130,246,.1) 0%,transparent 70%)}.test-page[data-v-64f7f0fe]{height:calc(100vh - 64px);max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;padding:10px 16px 12px;box-sizing:border-box}.test-toolbar[data-v-64f7f0fe]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin-bottom:10px}.toolbar-left[data-v-64f7f0fe]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-64f7f0fe]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-64f7f0fe]{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toolbar-actions[data-v-64f7f0fe]{display:flex;gap:8px;flex-shrink:0}.btn-sm[data-v-64f7f0fe]{padding:6px 14px;font-size:.82rem}.test-layout[data-v-64f7f0fe]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px}.test-page .card[data-v-64f7f0fe]{padding:10px;min-height:0}.visual-area[data-v-64f7f0fe]{display:flex;flex-direction:column;gap:10px;overflow:hidden}.visual-box[data-v-64f7f0fe]{position:relative;flex:1;min-height:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#0f111780}.visual-placeholder[data-v-64f7f0fe]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0f1117d1;color:var(--text-secondary);text-align:center;padding:20px}.visual-placeholder--clickable[data-v-64f7f0fe]{cursor:pointer;transition:background .15s}.visual-placeholder--clickable[data-v-64f7f0fe]:hover{background:#0f1117e6}.visual-placeholder--error[data-v-64f7f0fe]{color:#fca5a5}.placeholder-icon[data-v-64f7f0fe]{font-size:2rem}.placeholder-btn[data-v-64f7f0fe]{margin-top:4px}.playback-meta[data-v-64f7f0fe]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0}.current-test[data-v-64f7f0fe]{font-size:.78rem;color:var(--text-secondary)}.status-pill[data-v-64f7f0fe]{padding:2px 8px;border-radius:999px;background:var(--bg-secondary);border:1px solid var(--border);font-size:.72rem;color:var(--text-secondary)}.status-pill--active[data-v-64f7f0fe]{color:#60a5fa;border-color:#3b82f666;background:#3b82f61a}.status-pill--error[data-v-64f7f0fe]{color:#fca5a5;border-color:#ef444466;background:#ef44441a}.volume-panel[data-v-64f7f0fe]{flex-shrink:0}.volume-head[data-v-64f7f0fe]{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;margin-bottom:6px}.volume-head strong[data-v-64f7f0fe]{font-family:var(--font-mono)}.volume-slider[data-v-64f7f0fe]{width:100%;accent-color:var(--accent)}.sidebar[data-v-64f7f0fe]{display:flex;flex-direction:column;overflow:hidden}.sidebar-block[data-v-64f7f0fe]{padding:8px 0;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-block[data-v-64f7f0fe]:last-child{border-bottom:none}.block-head[data-v-64f7f0fe]{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.test-grid[data-v-64f7f0fe]{display:grid;grid-template-columns:1fr 1fr;gap:6px}.test-btn[data-v-64f7f0fe]{padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.72rem;text-align:left;transition:border-color .15s,background .15s,color .15s}.test-btn[data-v-64f7f0fe]:hover{border-color:#3b82f680;color:var(--text-primary)}.test-btn.active[data-v-64f7f0fe]{border-color:var(--accent);background:#3b82f61f;color:var(--text-primary)}.device-select[data-v-64f7f0fe]{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-size:.78rem}.tips-block[data-v-64f7f0fe]{padding-top:10px}.tip[data-v-64f7f0fe]{font-size:.72rem;color:var(--text-secondary);line-height:1.5}.sr-only[data-v-64f7f0fe]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1024px){.test-page[data-v-64f7f0fe]{height:auto;max-height:none;overflow:visible}.test-layout[data-v-64f7f0fe]{grid-template-columns:1fr}.visual-box[data-v-64f7f0fe]{min-height:240px}}.ico-page[data-v-6f16f509]{max-width:1000px;margin:0 auto;padding:16px}.test-toolbar[data-v-6f16f509]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.toolbar-left[data-v-6f16f509]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-6f16f509]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-6f16f509]{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-sm[data-v-6f16f509]{padding:6px 14px;font-size:.82rem}.ico-layout[data-v-6f16f509]{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;align-items:start}.ico-main[data-v-6f16f509]{min-height:320px;display:flex;align-items:center;justify-content:center}.dropzone[data-v-6f16f509]{width:100%;min-height:300px;border:2px dashed var(--border);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:border-color .2s,background .2s}.dropzone[data-v-6f16f509]:hover,.dropzone.is-drag[data-v-6f16f509]{border-color:var(--accent);background:#3b82f60f}.dropzone-icon[data-v-6f16f509]{font-size:2.4rem}.dropzone-title[data-v-6f16f509]{font-weight:600}.dropzone-hint[data-v-6f16f509]{font-size:.82rem;color:var(--text-muted)}.source-view[data-v-6f16f509]{width:100%;display:flex;flex-direction:column;align-items:center;gap:14px}.source-preview[data-v-6f16f509]{--bg: transparent;width:220px;height:220px;border-radius:12px;display:flex;align-items:center;justify-content:center;background-color:var(--bg);background-image:var(--bg, none);background:var(--bg),repeating-conic-gradient(#2a2f3e,#2a2f3e 25%,#232734 0%,#232734 50%) 50% / 20px 20px;overflow:hidden}.source-preview img[data-v-6f16f509]{max-width:100%;max-height:100%;object-fit:contain}.source-meta[data-v-6f16f509]{display:flex;align-items:center;gap:14px;font-size:.82rem;color:var(--text-secondary);font-family:var(--font-mono)}.ico-options[data-v-6f16f509]{display:flex;flex-direction:column;gap:18px}.opt-head[data-v-6f16f509]{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.size-grid[data-v-6f16f509]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.size-chip[data-v-6f16f509]{padding:8px 0;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.82rem;font-family:var(--font-mono);transition:all .15s}.size-chip.active[data-v-6f16f509]{border-color:var(--accent);background:#3b82f626;color:var(--text-primary)}.seg[data-v-6f16f509]{display:flex;gap:6px}.seg-btn[data-v-6f16f509]{flex:1;padding:8px 0;border-radius:8px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-secondary);font-size:.82rem}.seg-btn.active[data-v-6f16f509]{border-color:var(--accent);background:#3b82f626;color:var(--text-primary)}.bg-row[data-v-6f16f509]{display:flex;gap:8px}.bg-chip[data-v-6f16f509]{width:32px;height:32px;border-radius:8px;border:2px solid var(--border);cursor:pointer}.bg-chip.transparent[data-v-6f16f509]{background:repeating-conic-gradient(#2a2f3e,#2a2f3e 25%,#232734 0%,#232734 50%) 50% / 12px 12px}.bg-chip.active[data-v-6f16f509]{border-color:var(--accent)}.opt-actions[data-v-6f16f509]{display:flex;flex-direction:column;gap:12px;margin-top:4px}.opt-actions .btn-primary[data-v-6f16f509]{width:100%}.opt-actions .btn-primary[data-v-6f16f509]:disabled{opacity:.5;cursor:not-allowed}.result-box[data-v-6f16f509]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}.result-label[data-v-6f16f509]{font-size:.78rem;color:var(--text-secondary)}.error-text[data-v-6f16f509]{font-size:.8rem;color:var(--danger)}.visually-hidden[data-v-6f16f509]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:860px){.ico-layout[data-v-6f16f509]{grid-template-columns:1fr}}.hub-page[data-v-a34142ad]{max-width:1000px;margin:0 auto;padding:40px 16px 56px}.hub-hero[data-v-a34142ad]{text-align:center;margin-bottom:32px}.hub-hero h1[data-v-a34142ad]{font-size:1.7rem;font-weight:800;margin-bottom:10px}.hub-hero p[data-v-a34142ad]{color:var(--text-secondary);font-size:.95rem;max-width:560px;margin:0 auto;line-height:1.6}.hub-grid[data-v-a34142ad]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.hub-card[data-v-a34142ad]{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);transition:transform .15s,border-color .15s,background .15s}.hub-card[data-v-a34142ad]:hover{transform:translateY(-2px);border-color:var(--accent);background:var(--bg-secondary)}.hub-card-icon[data-v-a34142ad]{font-size:1.9rem}.hub-card-title[data-v-a34142ad]{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.hub-card-desc[data-v-a34142ad]{font-size:.85rem;color:var(--text-secondary);line-height:1.55;flex:1}.hub-card-cta[data-v-a34142ad]{margin-top:4px;font-size:.82rem;font-weight:600;color:var(--accent)}@media(max-width:768px){.hub-page[data-v-a34142ad]{padding:28px 16px 40px}.hub-hero h1[data-v-a34142ad]{font-size:1.4rem}}.compress-page[data-v-bcf1acc7]{max-width:800px;margin:0 auto;padding:16px}.test-toolbar[data-v-bcf1acc7]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.toolbar-left[data-v-bcf1acc7]{display:flex;align-items:baseline;gap:12px;min-width:0}.test-toolbar h1[data-v-bcf1acc7]{font-size:1.15rem;font-weight:700;white-space:nowrap}.toolbar-hint[data-v-bcf1acc7]{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-sm[data-v-bcf1acc7]{padding:6px 14px;font-size:.82rem}.compress-main[data-v-bcf1acc7]{min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center}.dropzone[data-v-bcf1acc7]{width:100%;min-height:320px;border:2px dashed var(--border);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:border-color .2s,background .2s}.dropzone[data-v-bcf1acc7]:hover,.dropzone.is-drag[data-v-bcf1acc7]{border-color:var(--accent);background:#3b82f60f}.dropzone-icon[data-v-bcf1acc7]{font-size:2.4rem}.dropzone-title[data-v-bcf1acc7]{font-weight:600}.dropzone-hint[data-v-bcf1acc7]{font-size:.82rem;color:var(--text-muted)}.preview-wrap[data-v-bcf1acc7]{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0}.preview-head[data-v-bcf1acc7]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-label[data-v-bcf1acc7]{font-size:.78rem;font-weight:600;color:var(--text-secondary)}.preview-status[data-v-bcf1acc7]{font-size:.72rem;color:var(--text-muted)}.preview-box[data-v-bcf1acc7]{width:100%;max-height:360px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#2a2f3e,#2a2f3e 25%,#232734 0%,#232734 50%) 50% / 20px 20px;border-radius:10px;overflow:hidden}.preview-box img[data-v-bcf1acc7]{max-width:100%;max-height:360px;object-fit:contain}.compare[data-v-bcf1acc7]{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}.compare-col[data-v-bcf1acc7]{display:flex;flex-direction:column;align-items:center;gap:2px}.compare-label[data-v-bcf1acc7]{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.compare-size[data-v-bcf1acc7]{font-family:var(--font-mono);font-size:1rem;font-weight:600}.compare-size.accent[data-v-bcf1acc7]{color:#22c55e}.compare-dim[data-v-bcf1acc7]{font-size:.72rem;color:var(--text-secondary);font-family:var(--font-mono)}.compare-arrow[data-v-bcf1acc7]{color:var(--text-muted);font-size:1.2rem}.saved-badge[data-v-bcf1acc7]{padding:4px 12px;border-radius:999px;background:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#4ade80;font-size:.8rem;font-weight:600}.kept-badge[data-v-bcf1acc7]{padding:4px 12px;border-radius:999px;background:#3b82f61f;border:1px solid rgba(59,130,246,.35);color:#93c5fd;font-size:.8rem;font-weight:600}.action-row[data-v-bcf1acc7]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.error-text[data-v-bcf1acc7]{margin-top:12px;font-size:.8rem;color:var(--danger)}.visually-hidden[data-v-bcf1acc7]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0f1117;--bg-secondary: #1a1d27;--bg-card: #222633;--bg-key: #2d3348;--bg-key-pressed: #22c55e;--bg-key-pressed-glow: rgba(34, 197, 94, .35);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent: #3b82f6;--accent-hover: #2563eb;--border: #334155;--warning: #f59e0b;--danger: #ef4444;--radius: 12px;--key-unit: 44px;--key-gap: 4px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace}html{font-size:16px;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;outline:none}.container{max-width:1200px;margin:0 auto;padding:0 24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:8px;font-size:1rem;font-weight:600;transition:all .2s ease}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #3b82f666}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px}@media(max-width:768px){:root{--key-unit: 28px;--key-gap: 3px}.container{padding:0 16px}}
