:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.6;font-weight:400;color-scheme:light dark;color:#e6e6e6;background-color:#1e1e1e;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-color: #646cff;--primary-hover: #7a80ff;--background-light: #ffffff;--background-dark: #1e1e1e;--text-light: #213547;--text-dark: #e6e6e6}html,body,#root{width:100%;height:100%;margin:0;padding:0}body{margin:0;min-width:320px;min-height:100vh;display:flex;flex-direction:column;align-items:center;background-color:var(--background-dark);color:var(--text-dark)}main{width:100%;max-width:800px;padding:40px 20px;box-sizing:border-box}h1,h2,h3{margin:0 0 1rem;font-weight:600}h1{font-size:2.4em}p{margin:.5rem 0 1rem;line-height:1.8}a{font-weight:500;color:var(--primary-color);text-decoration:none;transition:color .25s}a:hover{color:var(--primary-hover)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#2a2a2a;color:#fff;cursor:pointer;transition:all .25s ease}button:hover{background-color:#3a3a3a;border-color:var(--primary-color)}button:focus{outline:3px solid var(--primary-color);outline-offset:2px}@media(prefers-color-scheme:light){:root{color:var(--text-light);background-color:var(--background-light)}body{background-color:var(--background-light);color:var(--text-light)}button{background-color:#f4f4f4;color:#000}button:hover{background-color:#eaeaea}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{margin:0;padding:0;width:100%;min-height:100vh;overflow-x:hidden}body{background:#0a0a0a}.app-root{min-height:100vh;background:#0a0a0a;color:#fafafa;display:flex;align-items:center;justify-content:center;padding:16px;width:100%;overflow-x:hidden}.app-card{width:100%;max-width:900px;background:#1a1a1a;border-radius:16px;padding:24px;box-shadow:0 0 24px #0009;margin:0 auto;overflow:hidden}.title{font-size:24px;font-weight:700;margin-bottom:12px;word-break:keep-all}.controls{display:flex;gap:12px;margin-bottom:16px;align-items:center;flex-wrap:wrap;width:100%}.btn{border:none;border-radius:8px;color:#fff;font-weight:600;padding:8px 14px;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.range{width:120px;flex-shrink:0}.status{color:#aaa;font-size:13px}.status-value{color:#fff}.btn--secondary{background:#374151;margin-bottom:16px}.btn--secondary:hover{background:#4b5563;margin-bottom:16px}.banner{margin-bottom:16px;color:#facc15;font-size:14px}.timer-controls{margin-top:8px;display:flex;gap:8px;justify-content:center}.btn--danger{background:#dc2626}.btn--danger:hover{background:#ef4444}.btn--success{background:#059669}.btn--success:hover{background:#10b981}.success{color:#10b981;font-size:18px}.layout{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;margin-bottom:16px}.panel{flex:1 1 320px;min-height:260px;display:flex;align-items:center;justify-content:center;background:#0f1724;border-radius:12px;padding:16px}.centered{text-align:center}.spike-image{width:180px;height:180px;cursor:pointer;background-size:contain;background-position:center;background-repeat:no-repeat;display:inline-block;-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.spike-help{margin-top:8px;color:#9ca3af;font-size:13px}.state-info.success{color:#10b981;font-size:18px}.state-info.danger{color:#ef4444;font-size:18px}.state-info.muted{color:#9ca3af}.side{flex:1 1 300px;min-width:260px}.subhead{font-size:14px;margin-bottom:6px}.progress-wrapper{position:relative;width:100%;height:18px;background:#18212b;border-radius:6px;overflow:hidden}.progress-bar{height:100%;background:#10b981;width:0%}.checkpoint-line{position:absolute;top:0;height:100%;width:2px;background:#facc15;transform:translate(-1px)}.progress-info{margin-top:8px;font-size:12px;color:#9ca3af;display:flex;justify-content:space-between}@media(max-width:480px){.app-root{padding:12px}.app-card{padding:16px;border-radius:12px}.title{font-size:20px}.btn{font-size:14px;padding:6px 10px}.spike-image{width:140px}.layout{flex-direction:column;align-items:center}.panel{min-height:200px}.progress-wrapper{height:14px}}@media(max-width:768px){.title{font-size:22px}.app-card{padding:20px}.layout{flex-direction:column}.panel{flex:1 1 auto;width:100%}}@media(min-width:1200px){.app-card{max-width:1000px}.title{font-size:26px}.spike-image{width:200px}}
