*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--canvas: #ffffff;--surface: #fafafc;--card: #ffffff;--ink: #1a1a2e;--body: #4a4a6a;--muted: #afafc3;--hairline: #eeeef4;--pink: #ff4d8f;--pink-hover: #e9407a;--pink-soft: rgba(255, 77, 143, .06);--pink-border: rgba(255, 77, 143, .15);--green: #2ed573;--green-soft: rgba(46, 213, 115, .08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .03), 0 1px 4px rgba(0, 0, 0, .03);--shadow-md: 0 2px 8px rgba(0, 0, 0, .04), 0 4px 16px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 24px rgba(0, 0, 0, .06);--radius-sm: 8px;--radius-card: 16px;--radius-pill: 100px}@media(prefers-color-scheme:dark){:root{--canvas: #0f0f1a;--surface: #151528;--card: #1e1e35;--ink: #e8e8f0;--body: #9b9baf;--muted: #6b6b80;--hairline: #2a2a40;--pink: #ff6ba6;--pink-hover: #ff8db8;--pink-soft: rgba(255, 107, 166, .08);--pink-border: rgba(255, 107, 166, .2);--green: #4ade80;--green-soft: rgba(74, 222, 128, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .15), 0 1px 4px rgba(0, 0, 0, .12);--shadow-md: 0 2px 8px rgba(0, 0, 0, .2), 0 4px 16px rgba(0, 0, 0, .2);--shadow-lg: 0 4px 24px rgba(0, 0, 0, .3)}}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh}#root{display:flex;flex-direction:column;min-height:100dvh}main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem}.connect-screen{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:380px;text-align:center;padding:2.5rem 1.5rem;background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-md);border:1px solid var(--hairline)}.connect-screen h1{font-size:1.6rem;font-weight:700;background:linear-gradient(135deg,var(--pink),var(--pink-hover));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.subtitle{color:var(--body);font-size:.9rem;line-height:1.5}.hint{color:var(--muted);font-size:.78rem;line-height:1.5}.connect-btn{margin-top:.5rem;padding:0 2.5rem;height:48px;font-size:1.05rem;font-weight:600;border:none;border-radius:var(--radius-pill);background:var(--pink);color:#fff;cursor:pointer;transition:background .2s,box-shadow .2s,transform .15s;letter-spacing:.01em}.connect-btn:hover:not(:disabled){background:var(--pink-hover);box-shadow:0 4px 20px #ff4d8f4d;transform:translateY(-1px)}.connect-btn:active:not(:disabled){transform:translateY(0)}.connect-btn:disabled{opacity:.4;cursor:not-allowed}.panel{width:100%;max-width:440px;display:flex;flex-direction:column;gap:1.25rem}.panel-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:0 .25rem}.panel-header h1{font-size:1.2rem;font-weight:700;background:linear-gradient(135deg,var(--pink),var(--pink-hover));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.status-badge{font-size:.72rem;padding:.2rem .65rem;border-radius:var(--radius-pill);background:var(--green-soft);color:var(--green);font-weight:600;letter-spacing:.02em}.disconnect-btn{margin-left:auto;background:none;border:1px solid var(--hairline);color:var(--body);padding:.3rem .85rem;border-radius:var(--radius-pill);font-size:.8rem;font-weight:500;cursor:pointer;transition:border-color .2s,color .2s}.disconnect-btn:hover{border-color:var(--pink);color:var(--pink)}.section{display:flex;flex-direction:column;gap:.6rem}.section h2{font-size:.82rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:0 .25rem}.control-group{background:var(--card);border-radius:var(--radius-card);padding:1rem 1.25rem;box-shadow:var(--shadow-sm);border:1px solid var(--hairline);transition:box-shadow .2s}.control-group:focus-within{box-shadow:var(--shadow-md)}.control-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.label{font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.35rem}.label .icon{flex-shrink:0}.gear-badge{font-size:.72rem;padding:.15rem .55rem;border-radius:var(--radius-pill);background:var(--pink-soft);color:var(--pink);font-weight:700;min-width:3.2rem;text-align:center;transition:background .2s}.gear-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,var(--pink) 0%,var(--pink) var(--pct),var(--hairline) var(--pct),var(--hairline) 100%);outline:none;cursor:pointer}.gear-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px}.gear-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--pink);cursor:pointer;border:3px solid var(--card);box-shadow:0 1px 4px #00000026;transition:transform .15s,box-shadow .15s;margin-top:-9px}.gear-slider::-webkit-slider-thumb:hover{transform:scale(1.12);box-shadow:0 2px 8px #ff4d8f4d}.gear-slider::-moz-range-track{height:6px;border-radius:3px;background:var(--hairline)}.gear-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--pink);cursor:pointer;border:3px solid var(--card);box-shadow:0 1px 4px #00000026}.gear-slider::-moz-range-progress{height:6px;border-radius:3px;background:var(--pink)}.gear-slider:disabled{opacity:.3;cursor:not-allowed}.gear-slider:disabled::-webkit-slider-thumb{cursor:not-allowed;transform:none}.toggle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.toggle-btn{padding:.7rem .5rem;border-radius:var(--radius-pill);border:1.5px solid var(--hairline);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .18s;text-align:center;background:transparent;color:var(--body)}.toggle-btn.off:hover{border-color:var(--pink-border);color:var(--pink)}.toggle-btn.on{background:var(--pink);border-color:var(--pink);color:#fff;box-shadow:0 2px 12px #ff4d8f33}.toggle-btn.on:hover{background:var(--pink-hover)}.toggle-btn:disabled{opacity:.3;cursor:not-allowed}.stop-all-btn{padding:0 1.5rem;height:48px;border:2px solid var(--pink-border);border-radius:var(--radius-pill);background:transparent;color:var(--pink);font-size:.95rem;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.02em}.stop-all-btn:hover:not(:disabled){background:var(--pink);color:#fff;box-shadow:0 4px 20px #ff4d8f40}.stop-all-btn:active:not(:disabled){transform:scale(.98)}.stop-all-btn:disabled{opacity:.3;cursor:not-allowed}.error{color:var(--body);font-size:.82rem;text-align:center;background:var(--pink-soft);border:1px solid var(--pink-border);padding:.6rem 1rem;border-radius:var(--radius-sm);line-height:1.5;word-break:break-word}@media(max-width:500px){main{padding:1rem .75rem}.panel{gap:1rem}.control-group{padding:.85rem 1rem}.connect-screen{padding:2rem 1.25rem;border-radius:12px}.connect-screen h1{font-size:1.4rem}.toggle-btn{padding:.65rem .4rem;font-size:.8rem}.toggle-grid{gap:.4rem}.gear-slider::-webkit-slider-thumb{width:28px;height:28px;margin-top:-11px}.gear-slider::-moz-range-thumb{width:28px;height:28px}.connect-btn{height:52px;width:100%}.stop-all-btn{height:52px}}@media(max-width:380px){.panel-header{gap:.5rem}.panel-header h1{font-size:1rem}.section h2{font-size:.75rem}.label{font-size:.82rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
