:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#fffffff2;background-color:#1a1a2e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.timer-status,.stat-label,.error-msg,.install-text{-webkit-user-select:text;user-select:text}body{margin:0;padding:0;min-width:100vw;min-height:100vh;display:flex;align-items:center;justify-content:center}#app{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1rem}.timer-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;width:100%;max-width:400px}.timer-display{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.timer-title{font-size:1.25rem;font-weight:500;opacity:.7;margin:0}.timer-time{font-size:4rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.1em;color:#00d4ff;font-family:Courier New,monospace;line-height:1;transition:transform .15s cubic-bezier(.34,1.56,.64,1),color .15s ease-out}.bpm-label{font-size:.9rem;opacity:.7;text-transform:lowercase;letter-spacing:.1em;font-weight:500;color:#00d4ff;margin-top:-.5rem}.timer-status{font-size:.95rem;opacity:.6;min-height:1.5rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.timer-status.running{color:#0f8;animation:pulse-text 1s ease-in-out infinite}.wake-lock-status{font-size:.8rem;opacity:.5;min-height:1.2rem;letter-spacing:.05em;font-weight:400;margin-top:-.5rem}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.6}}.controls{display:flex;flex-direction:column;gap:1rem;width:100%}.preset-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;width:100%}.preset-btn{padding:1.2rem;background-color:#ffffff14;border:1px solid rgba(0,212,255,.3);border-radius:12px;color:#fffc;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.preset-btn:active{transform:scale(.95)}.preset-btn:focus-visible{outline:2px solid #00d4ff;outline-offset:2px}.preset-btn:disabled{opacity:.3;cursor:not-allowed}.preset-btn.active{background-color:#00d4ff;border-color:#00d4ff;color:#1a1a2e;box-shadow:0 0 20px #00d4ff4d}.preset-btn.active:disabled{opacity:.5}.custom-input-row{display:flex;gap:.8rem;width:100%}.custom-input{flex:1;padding:1rem;background-color:#ffffff14;border:1px solid rgba(0,212,255,.3);border-radius:12px;color:#fffffff2;font-size:1rem;font-weight:500;font-family:Courier New,monospace;text-align:center;transition:all .2s ease}.custom-input:focus{outline:none;border-color:#00d4ff;background-color:#00d4ff1a;box-shadow:0 0 20px #00d4ff33}.custom-input:disabled{opacity:.3;cursor:not-allowed}.action-buttons{display:flex;gap:.8rem;width:100%;position:relative}.btn-primary,.btn-secondary{flex:1;padding:1.2rem;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em}.btn-primary{background-color:#00d4ff;color:#1a1a2e}.btn-primary:active{transform:scale(.95);box-shadow:0 0 20px #00d4ff80}.btn-primary:focus-visible,.btn-secondary:focus-visible{outline:2px solid #00d4ff;outline-offset:3px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background-color:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#fffc}.btn-secondary:active{transform:scale(.95);background-color:#ffffff1f}.btn-primary.waiting-tap,.btn-secondary.waiting-tap{animation:pulse-button .5s ease-in-out}@keyframes pulse-button{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.tap-hint{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:.5rem;padding:.5rem 1rem;background-color:#00d4ffe6;color:#1a1a2e;border-radius:8px;font-size:.85rem;font-weight:600;white-space:nowrap;pointer-events:none;animation:fade-in-up .2s ease-out}@keyframes fade-in-up{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;width:100%;padding:1.5rem;background-color:#00d4ff0d;border:1px solid rgba(0,212,255,.2);border-radius:12px}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.stat-label{font-size:.75rem;opacity:.6;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:1.25rem;font-weight:600;color:#00d4ff;font-family:Courier New,monospace;min-height:1.5rem}.setting-select{margin-top:.5rem;padding:.5rem;background-color:#00d4ff1a;border:1px solid rgba(0,212,255,.3);color:#00d4ff;border-radius:6px;cursor:pointer;font-size:.8rem;width:100%;text-align:center}.vibration-feedback{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background-color:#00d4ff1a;border:2px solid #00d4ff;border-radius:50%;pointer-events:none;opacity:0;animation:vibrate-pulse .4s ease-out}@keyframes vibrate-pulse{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}.error-msg{color:#ff6b6b;font-size:.9rem;text-align:center;min-height:1.5rem}.install-banner{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#00d4fff2,#00b4d8f2);padding:1.5rem;transform:translateY(100%);transition:transform .3s ease-out;z-index:1000;box-shadow:0 -4px 20px #0000004d}.install-banner.show{transform:translateY(0)}.install-banner-content{display:flex;align-items:center;gap:1rem;max-width:600px;margin:0 auto}.install-icon{font-size:2rem;flex-shrink:0}.install-text{flex:1;color:#1a1a2e}.install-title{font-size:1rem;font-weight:600;margin-bottom:.25rem}.install-subtitle{font-size:.85rem;opacity:.8}.install-btn{padding:.75rem 1.5rem;background-color:#1a1a2e;color:#00d4ff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.install-btn:active{transform:scale(.95)}.install-close{width:2rem;height:2rem;background-color:#1a1a2e33;color:#1a1a2e;border:none;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.install-close:active{transform:scale(.9);background-color:#1a1a2e4d}@media(max-width:480px){.timer-time{font-size:3rem}.timer-container{gap:1.5rem}.preset-buttons{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr;gap:1rem}.install-banner-content{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
