:root{--ap-canvas:#000;--ap-surface:#1c1c1e;--ap-text:#f5f5f7;--ap-text-muted:#86868b;--ap-border:#424245;--ap-action:#2997ff;--ap-action-hover:#1483f6;--ap-success:#34c759;--ap-key-bg:#2c2c2e;--ap-key-shadow:0 4px 6px #0006, 0 1px 3px #0000004d, inset 0 1px 0 #3a3a3c;--ap-mouse-body:#1c1c1e;--ap-mouse-shadow:0 20px 40px #00000080, inset 0 0 0 1px #424245;--shadow-panel:0 4px 24px #0006;--radius-btn:980px;--radius-card:24px;--transition:all .4s cubic-bezier(.25, 1, .5, 1)}.input-tester-wrapper *{box-sizing:border-box;-webkit-user-select:none;user-select:none}.input-tester-wrapper{background-color:var(--ap-canvas);min-height:100vh;color:var(--ap-text);flex-direction:column;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif;transition:background-color .3s;display:flex;overflow-x:hidden}.log-box{background:var(--ap-surface);border:1px solid var(--ap-border);width:0;min-width:100%;height:50px;box-shadow:var(--shadow-panel);border-radius:12px;align-items:center;gap:15px;margin-bottom:15px;padding:0 10px;transition:all .3s;display:flex;overflow:hidden}.reset-btn{color:#fff;cursor:pointer;background:#ff3b30;border:none;border-radius:8px;outline:none;padding:6px 12px;font-size:13px;font-weight:600;transition:background .1s}.reset-btn:hover{background:#ff453a}.reset-btn:active{transform:scale(.95)}.log-container{white-space:nowrap;-ms-overflow-style:none;scrollbar-width:none;flex-direction:row;flex:1;align-items:center;gap:8px;min-width:0;height:100%;display:flex;overflow-x:auto}.log-container::-webkit-scrollbar{display:none}.log-item{background:var(--ap-canvas);border:1px solid var(--ap-border);color:var(--ap-action);border-radius:6px;padding:4px 10px;font-family:monospace;font-size:12px;animation:.2s ease-out forwards slideIn}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.keyboard-inner{flex-direction:column;align-items:stretch;width:max-content;max-width:100%;display:flex}.keyboard-wrapper{flex-direction:row;gap:20px;display:flex}.keyboard-main,.keyboard-nav,.keyboard-numpad{flex-direction:column;gap:6px;display:flex}.row{gap:6px;display:flex;position:relative}.spacer{flex-grow:.5}.key{background-color:var(--ap-key-bg);border:1px solid var(--ap-border);min-width:48px;height:48px;color:var(--ap-text);box-shadow:var(--ap-key-shadow);border-radius:8px;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:all .1s ease-out;display:flex;position:relative}.key.small{height:36px;font-size:11px}.key.registered{background-color:var(--ap-success);border-color:var(--ap-success);color:#fff;box-shadow:0 0 10px #34c7594d}.key.active{background-color:var(--ap-action);border-color:var(--ap-action);color:#fff;box-shadow:0 0 15px var(--ap-action), inset 0 2px 5px #ffffff4d;z-index:10;transform:translateY(2px)}.w-1-25{width:60px}.w-1-5{width:72px}.w-1-75{width:84px}.w-2{width:96px}.w-2-25{width:108px}.w-2-75{width:132px}.w-6-25{width:300px}.w-2-pad{width:102px}.h-2{height:102px;position:absolute;top:0;right:0}.polling-stats{flex-direction:row;align-items:center;gap:15px;margin-bottom:10px;display:flex}.polling-note{color:var(--ap-text-muted);text-align:center;margin-bottom:25px;font-size:11px;font-style:italic}.hz-box{background:var(--ap-surface);border:1px solid var(--ap-border);color:var(--ap-text-muted);box-shadow:var(--shadow-panel);border-radius:8px;padding:10px 15px;font-family:monospace;font-size:14px}#hz-val{color:var(--ap-action);font-size:20px;font-weight:700}#hz-graph{background:var(--ap-surface);border:1px solid var(--ap-border);box-shadow:var(--shadow-panel);border-radius:8px}.mouse-model{width:220px;height:380px;display:flex;position:relative}.mouse-side-left,.mouse-side-right{z-index:5;flex-direction:column;gap:15px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.mouse-side-left{left:-20px}.mouse-side-right{right:-20px}.btn-side{background:var(--ap-key-bg);border:1px solid var(--ap-border);width:30px;height:40px;color:var(--ap-text-muted);justify-content:center;align-items:center;font-size:11px;transition:all .1s ease-out;display:flex}.btn-side-left{border-radius:5px 0 0 5px;box-shadow:-4px 0 10px #0000001a}.btn-side-right{border-radius:0 5px 5px 0;box-shadow:4px 0 10px #0000001a}.mouse-body{background:var(--ap-mouse-body);width:100%;height:100%;box-shadow:var(--ap-mouse-shadow);z-index:10;border-radius:110px 110px 90px 90px;transition:box-shadow .3s,background .3s;position:relative;overflow:hidden}.btn-left,.btn-right{background:var(--ap-key-bg);border:1px solid var(--ap-border);width:49%;height:45%;color:var(--ap-text-muted);justify-content:center;align-items:center;font-size:24px;font-weight:800;transition:all .1s ease-out;display:flex;position:absolute;top:0}.btn-left{border-right:none;border-radius:90px 10px 10px;left:0}.btn-right{border-left:none;border-radius:10px 90px 10px 10px;right:0}.btn-middle{background:var(--ap-canvas);border:1px solid var(--ap-border);z-index:20;border-radius:15px;justify-content:center;align-items:center;width:30px;height:70px;transition:all .1s ease-out;display:flex;position:absolute;top:15%;left:50%;transform:translate(-50%)}.scroll-wheel{background:var(--ap-border);border-radius:6px;width:12px;height:40px;transition:all .1s ease-out;box-shadow:inset 0 2px 5px #0000001a}.laser-bounds{background:var(--ap-canvas);border:1px solid var(--ap-border);border-radius:5px;justify-content:center;align-items:center;width:30px;height:30px;display:flex;position:absolute;bottom:20%;left:50%;transform:translate(-50%);box-shadow:inset 0 2px 5px #0003}.laser-dot{opacity:.5;background:red;border-radius:50%;width:8px;height:8px;transition:opacity .1s,transform .1s;position:relative;box-shadow:0 0 10px red}.btn-side.active,.btn-left.active,.btn-right.active,.btn-middle.active{background:var(--ap-action);border-color:var(--ap-action);color:#fff;box-shadow:0 0 15px var(--ap-action)}.btn-left.registered,.btn-right.registered,.btn-side.registered,.btn-middle.registered{background-color:var(--ap-success);border-color:var(--ap-success);color:#fff;box-shadow:0 0 10px #34c7594d}.btn-side-left.active{transform:translate(-2px)}.btn-side-right.active{transform:translate(2px)}.scroll-wheel.active,.scroll-wheel.active-up,.scroll-wheel.active-down{background:var(--ap-action);box-shadow:0 0 10px var(--ap-action)}.scroll-wheel.active-up{transform:translateY(-5px)}.scroll-wheel.active-down{transform:translateY(5px)}.laser-dot.active{opacity:1;transform:scale(1.5);box-shadow:0 0 20px red}.mouse-stats{color:var(--ap-text);text-align:center;margin-top:20px;font-size:14px;font-weight:600}#scroll-dir{font-family:monospace;font-size:16px;font-weight:700}
