:root{--panel:#131720;--line:#292f3b;--lime:#caff3d;--muted:#929aaa}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{margin:0;background:radial-gradient(circle at 50% -10%,#29303d,#0b0e13 42%,#080a0e);color:#f3f5f8;font-family:Arial,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.45;min-height:100vh}
main{max-width:1160px;margin:auto;padding:0 22px 40px}
button,input,select{font:inherit;color:inherit;line-height:1.25;letter-spacing:normal}
button{-webkit-tap-highlight-color:transparent}
header{height:74px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none}
nav{display:flex;gap:7px}nav button{border:1px solid var(--line);background:#151923;padding:9px 13px;border-radius:8px;cursor:pointer;white-space:nowrap}
.hero{text-align:center;padding:38px 0 28px}.beats{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;min-height:62px}
.beats button{width:58px;height:58px;border-radius:50%;border:1px solid #38404f;background:#181c25;color:#9299a8;font-weight:700;cursor:pointer;padding:0}
.beats small{display:block;font-size:8px;line-height:1.25;margin-top:3px;letter-spacing:.35px}.beats .accent{color:var(--lime);border-color:#8cac36}.beats .muted{opacity:.35}.beats .active{background:var(--lime);color:#10130b;transform:scale(1.12);box-shadow:0 0 26px #caff3d77}
.tempo{color:var(--lime);font-size:11px;letter-spacing:2px;font-weight:700;margin:22px 0 4px}.bpm{display:flex;align-items:center;justify-content:center;gap:24px}.bpm>button{font-size:42px;width:48px;border:0;background:none;color:#737a89;cursor:pointer}.bpm label input{display:block;width:240px;border:0;outline:0;background:none;text-align:center;font-size:106px;line-height:1;font-weight:800;letter-spacing:-3px}.bpm label small{color:#767e8d;letter-spacing:2px}.range{width:100%;accent-color:var(--lime)}.hero>.range{max-width:500px}
.transport{display:flex;align-items:center;justify-content:center;gap:16px;margin:22px}.transport button{width:52px;height:52px;border:1px solid var(--line);background:#161a23;border-radius:50%;font-weight:700;cursor:pointer}.transport .play{width:80px;height:80px;border:0;background:var(--lime);color:#10130b;font-size:25px;box-shadow:0 0 30px #caff3d44}.transport .play.on{background:#ff7043;box-shadow:0 0 30px #ff704355}.status{display:flex;justify-content:center;align-items:center;gap:8px;color:#81899a;font-size:11px;letter-spacing:.6px}.status b{color:#fff;font-size:13px}
.grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px}article,.presets{min-height:260px;padding:21px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,#151923,#10131a)}h2{font-size:15px;line-height:1.35;margin:0 0 22px;letter-spacing:.1px}.label{display:flex;justify-content:space-between;color:#a0a7b5;font-size:10px;line-height:1.4;letter-spacing:.65px;text-transform:uppercase;margin:17px 0 8px}.label b{color:var(--lime)}
.segments{display:flex;gap:5px}.segments button{flex:1;border:1px solid var(--line);border-radius:7px;background:#0d1016;color:#9299a7;padding:8px 3px;cursor:pointer;min-width:0}.segments .sel{color:var(--lime);border-color:#89a936;background:#273218}.segments.big button{font-size:22px}.segments.big small{display:block;font-size:8px;line-height:1.25;margin-top:4px;white-space:nowrap}
.switchline{display:flex;justify-content:space-between;align-items:center}.switchline small{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:4px}.switch{width:46px;height:25px;padding:3px;border:0;border-radius:20px;background:#353b47;cursor:pointer}.switch i{display:block;width:19px;height:19px;border-radius:50%;background:#fff;transition:.2s}.switch.on{background:var(--lime)}.switch.on i{transform:translateX(21px);background:#111}
.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:24px}.fields label{text-align:center;color:#9299a7;font-size:9px;line-height:1.35;text-transform:uppercase}.fields input{display:block;width:100%;text-align:center;background:#0c0f14;border:1px solid var(--line);border-radius:7px;padding:7px;margin:6px 0;font-weight:700}.fields small{text-transform:none;font-size:8px}.progress{height:5px;background:#2a3039;border-radius:5px;margin-top:24px;overflow:hidden}.progress i{display:block;height:100%;background:var(--lime);width:0}.hint,.tip{text-align:center;color:#8c94a3;font-size:10px;line-height:1.55;margin-top:14px}.tip{margin-top:20px}
.sound-select{width:calc(100% - 104px);height:38px;background:#0d1016;border:1px solid var(--line);border-radius:8px;padding:0 9px;vertical-align:middle}.preview-sound{width:96px;height:38px;margin-left:4px;border:1px solid #64752e;border-radius:8px;background:#273218;color:var(--lime);cursor:pointer;font-size:11px;font-weight:700}.presets{min-height:0;margin-top:14px}.presets>div{display:flex;gap:8px;overflow:auto}.preset{min-width:165px;text-align:left;background:#171b24;border:1px solid var(--line);border-radius:9px;padding:11px;cursor:pointer}.preset small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:4px}.hidden{display:none}footer{text-align:center;color:#707889;font-size:11px;line-height:1.8;margin-top:26px}footer span{color:#555d6b}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:#e8ebf1;color:#111;padding:10px 16px;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:800px){main{padding:0 13px 25px}header{height:64px}nav button:first-child{display:none}.hero{padding-top:25px}.beats button{width:46px;height:46px}.bpm label input{font-size:80px;width:180px;letter-spacing:-2px}.grid{grid-template-columns:1fr}article{min-height:auto}.transport{margin:16px}.hero>.range{max-width:90%}}
@media(max-width:430px){.beats{gap:5px}.beats button{width:41px;height:41px;font-size:13px}.beats small{font-size:7px}.bpm label input{font-size:70px;width:160px}.bpm{gap:2px}nav button{padding:8px}.sound-select{width:calc(100% - 94px)}.preview-sound{width:86px;font-size:10px}}
