:root{--z1: #5b7c99;--z2: #2ea043;--z3: #d4a017;--z4: #e8711a;--z5: #d1242f}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:#0b0f14;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-variant-numeric:tabular-nums;overflow:hidden}.screen{height:100vh;width:100vw;padding:12px;position:relative}.grid{display:grid;gap:12px;height:100%}.tile{border-radius:16px;padding:1.2vmin 1.6vmin;display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:0;min-width:0;overflow:hidden;transition:background-color .6s ease,opacity .6s ease}.z1{background-color:var(--z1)}.z2{background-color:var(--z2)}.z3{background-color:var(--z3)}.z4{background-color:var(--z4)}.z5{background-color:var(--z5)}.tile.fresh{opacity:1}.tile.stale{opacity:.45}.tile.gone{opacity:.15}.name{font-size:calc(var(--bpm) * .28);font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bpm{font-size:var(--bpm);font-weight:800;line-height:1}.meta{font-size:calc(var(--bpm) * .2);opacity:.9;white-space:nowrap}.empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;opacity:.8}.empty h1{font-size:6vw;margin:0 0 1vw}.empty p{font-size:2.6vw;margin:0;opacity:.7}.conn{position:fixed;right:10px;bottom:10px;width:10px;height:10px;border-radius:50%;z-index:5}.conn.on{background:#2ea043}.conn.off{background:#d4a017}.screen{display:flex;flex-direction:column;gap:12px}.screen>.grid{flex:1;height:auto;min-height:0}.clock{flex:0 0 10vh;display:flex;align-items:center;justify-content:center;gap:4vw;border-radius:16px;background:#1c2733;font-weight:800;line-height:1;transition:background-color .4s ease}.clock-label{font-size:5vh;letter-spacing:.04em}.clock-time{font-size:8vh}.clock-paused{font-size:4vh;color:#d4a017;letter-spacing:.1em}.clock-next{font-size:3vh;opacity:.7;font-weight:600}.clock.rest{background:#34495e}.clock.paused .clock-time{opacity:.6}.clock.finished{background:#2ea043}.clock.flash{animation:clockflash 1.2s ease-out}@keyframes clockflash{0%,40%{background:#fff;color:#0b0f14}}.recovery{font-size:calc(var(--bpm) * .2);opacity:.6;font-weight:600;white-space:nowrap}.recovery.live{opacity:1;color:#fff;font-weight:800}body:has(.coach){overflow:auto}.coach{max-width:560px;margin:0 auto;padding:14px;display:flex;flex-direction:column;gap:14px;min-height:100vh}.coach header{display:flex;justify-content:space-between;align-items:center}.conn-dot{font-size:13px;opacity:.8}.conn-dot:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:currentColor}.conn-dot.on{color:#2ea043}.conn-dot.off{color:#d4a017}.coach .clock{flex:none;padding:18px 12px;flex-wrap:wrap;gap:8px 20px}.coach .clock .clock-label{font-size:26px}.coach .clock .clock-time{font-size:64px}.coach .clock .clock-paused{font-size:20px}.coach .clock .clock-next{font-size:16px}.coach-idle{text-align:center;padding:28px 0;border-radius:16px;background:#1c2733;opacity:.7;font-size:18px}.inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}.inputs label{display:flex;flex-direction:column;gap:4px;font-size:13px;opacity:.85}.inputs input{font:inherit;font-size:20px;padding:10px;width:100%;background:#141c26;color:#fff;border:1px solid #2c3a4a;border-radius:10px}.coach button{font:inherit;font-size:18px;font-weight:700;padding:16px;border-radius:12px;border:1px solid #2c3a4a;background:#1c2733;color:#fff;cursor:pointer;flex:1}.coach button.primary{background:#2ea043;border-color:#2ea043}.coach button.danger{background:#3a1a1d;border-color:#d1242f;color:#ff8d94}.coach button:disabled{opacity:.5}.coach-start button{width:100%}.coach-controls{display:flex;gap:10px}.coach-error{color:#ff8d94;font-size:14px}.coach-members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.coach-members li{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#141c26;border-radius:10px}.coach-members li.stale{opacity:.45}.coach-members .none{opacity:.6;justify-content:center}.chip{width:14px;height:14px;border-radius:50%;flex:none}.chip.z1{background:var(--z1)}.chip.z2{background:var(--z2)}.chip.z3{background:var(--z3)}.chip.z4{background:var(--z4)}.chip.z5{background:var(--z5)}.mname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.mbpm{font-weight:800;font-size:20px;min-width:3ch;text-align:right}.mrec{min-width:5ch;text-align:right;opacity:.65;font-size:14px}
