:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef1f4;color:#17202a;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}.app{min-height:100vh;padding:28px;background:linear-gradient(180deg,#ffffffad,#fff0),#eef1f4;transition:background-color .12s ease}.app.pulse{background-color:#dfeee9}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 auto 22px;max-width:1180px}h1,h2,p{margin:0}h1{font-size:30px;line-height:1.1;font-weight:760}.topbar p{margin-top:7px;color:#51606f}.status{display:inline-flex;align-items:center;gap:8px;min-width:132px;justify-content:center;border:1px solid #c9d1da;border-radius:8px;padding:10px 12px;background:#fff;text-transform:capitalize;font-weight:700}.status.connected{color:#0d6b4f;border-color:#8cc8b5}.status.failed,.status.unsupported{color:#9b2c2c;border-color:#e2a5a5}.grid{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(260px,.8fr);gap:16px;max-width:1180px;margin:0 auto}.panel{border:1px solid #ccd4dc;border-radius:8px;background:#fff;box-shadow:0 1px 2px #141f2a0f}.controls{padding:18px}label{display:grid;gap:8px;margin-bottom:14px;color:#4c5b69;font-size:13px;font-weight:700}input{width:100%;min-height:42px;border:1px solid #b7c2cc;border-radius:6px;padding:9px 11px;color:#16212d;background:#f9fbfc}input[type=checkbox]{width:18px;min-height:18px;accent-color:#17202a}.inlineOption{display:inline-flex;align-items:center;gap:10px;min-height:34px;margin-bottom:16px}.inlineOption span{color:#24313e}.buttonRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}button{min-height:42px;border:1px solid #9cadb8;border-radius:6px;background:#17202a;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;font-weight:730}button:disabled{cursor:not-allowed;background:#d3d9df;color:#6d7883;border-color:#c7d0d9}.meters{padding:18px;display:grid;gap:12px}.meter{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;border-bottom:1px solid #e3e8ed}.meter span{color:#51606f}.meter strong{color:#17202a}.hapticBadge{min-height:76px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #9fc5ba;border-radius:8px;background:#edf8f4;color:#0d6b4f;font-weight:760}.logPanel{grid-column:1 / -1;min-height:370px;overflow:hidden}.logHeader{height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e2e7ec;padding:0 16px}.logHeader h2{font-size:17px}.logActions{display:inline-flex;align-items:center;gap:8px}.logActions button{min-height:34px;background:#f8fafb;color:#24313e}.eventLog{height:316px;overflow:auto;background:#111820;padding:12px}.eventLog article{border-bottom:1px solid #2b3744;padding:10px 4px 12px}.eventLog strong{color:#87d8bd;font-size:13px}pre{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:#d8e2ec;font-size:12px;line-height:1.45}.empty{color:#a9b6c3;padding:18px 4px}@media(max-width:760px){.app{padding:18px}.topbar{align-items:stretch;flex-direction:column}.grid{grid-template-columns:1fr}.buttonRow{grid-template-columns:repeat(2,minmax(0,1fr))}}
