@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800;900&family=Noto+Sans+JP:wght@400;500;700;900&display=swap";:root{--bg: #08080f;--bg-card: #111119;--bg-card2: #1a1a26;--border: rgba(255,255,255,.08);--text: #e8e8f0;--text-muted: #6b6b88;--text-dim: #3a3a55;--exercise: #ff6b35;--exercise-2: #ff4a1c;--exercise-glow: rgba(255,107,53,.35);--rest: #00d4ff;--rest-2: #0099cc;--rest-glow: rgba(0,212,255,.3);--warn: #ffd700;--warn-glow: rgba(255,215,0,.4);--finish: #7b61ff;--finish-2: #a855f7;--finish-glow: rgba(123,97,255,.35);--green: #22c55e;--danger: #ef4444;--font-body: "Manrope", "Noto Sans JP", sans-serif;--font-mono: "DM Mono", monospace;--r-sm: 8px;--r-md: 14px;--r-lg: 20px;--r-xl: 28px;--r-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}#app{min-height:100vh;display:flex;flex-direction:column}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--r-full);font-family:var(--font-body);font-size:.9rem;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .15s,opacity .15s;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--exercise),var(--exercise-2));color:#fff;box-shadow:0 0 20px var(--exercise-glow)}.btn-primary:hover{box-shadow:0 0 32px var(--exercise-glow)}.btn-secondary{background:var(--bg-card2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{border-color:#fff3}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{color:var(--text);border-color:#fff3}.btn-danger{background:#ef444426;color:var(--danger);border:1px solid rgba(239,68,68,.3)}.btn-danger:hover{background:#ef444440}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--r-full);background:var(--bg-card2);border:1px solid var(--border);color:var(--text-muted);font-size:1.1rem}.btn-icon:hover{color:var(--text);border-color:#fff3}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-full);font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge-exercise{background:#ff6b3526;color:var(--exercise);border:1px solid rgba(255,107,53,.3)}.badge-rest{background:#00d4ff1f;color:var(--rest);border:1px solid rgba(0,212,255,.25)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-card2);border-radius:3px}#toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none}.toast{background:var(--bg-card2);border:1px solid var(--border);color:var(--text);padding:10px 20px;border-radius:var(--r-full);font-size:.85rem;font-weight:600;animation:toastIn .3s ease,toastOut .3s ease 2.7s forwards;pointer-events:auto}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(-8px)}}.spinner{width:36px;height:36px;border:3px solid var(--bg-card2);border-top-color:var(--exercise);border-radius:50%;animation:spin .7s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes scaleUp{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.home{max-width:800px;margin:0 auto;padding:40px 20px 80px;animation:fadeIn .4s ease}.home-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.home-logo{display:flex;align-items:center;gap:12px}.home-logo-icon{width:44px;height:44px;background:linear-gradient(135deg,var(--exercise),var(--exercise-2));border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 0 20px var(--exercise-glow)}.home-logo h1{font-size:1.5rem;font-weight:900;letter-spacing:-.02em;background:linear-gradient(135deg,#fff 30%,var(--text-muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-logo p{font-size:.72rem;color:var(--text-muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase;margin-top:-4px}.home-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;gap:16px;color:var(--text-muted)}.home-empty-icon{font-size:3rem;opacity:.4}.home-empty h2{font-size:1.1rem;font-weight:600;color:var(--text-muted)}.home-empty p{font-size:.85rem;color:var(--text-dim);max-width:280px}.programs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.program-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:20px 22px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;position:relative;overflow:hidden;animation:fadeIn .3s ease both}.program-card:hover{border-color:#ff6b3566;box-shadow:0 0 28px #ff6b351f,0 4px 20px #0006;transform:translateY(-2px)}.program-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,107,53,.06) 0%,transparent 60%);opacity:0;transition:opacity .2s}.program-card:hover:before{opacity:1}.program-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.program-card-name{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:4px}.program-card-meta{font-size:.75rem;color:var(--text-muted)}.program-card-actions{display:flex;gap:6px;opacity:0;transition:opacity .2s}.program-card:hover .program-card-actions{opacity:1}.part-preview{display:flex;gap:3px;height:6px;border-radius:var(--r-full);overflow:hidden;margin-bottom:14px}.part-preview-item{border-radius:var(--r-full);transition:flex .3s}.part-preview-item.exercise{background:var(--exercise)}.part-preview-item.rest{background:var(--rest)}.program-card-parts{display:flex;flex-wrap:wrap;gap:5px}.part-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-full);font-size:.7rem;font-weight:600}.part-chip.exercise{background:#ff6b351f;color:var(--exercise)}.part-chip.rest{background:#00d4ff1a;color:var(--rest)}.program-card-total{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:.78rem;color:var(--text-muted);font-weight:600}.program-card-total span{color:var(--text)}.program-card-start{position:absolute;bottom:20px;right:22px;width:36px;height:36px;border-radius:var(--r-full);background:linear-gradient(135deg,var(--exercise),var(--exercise-2));border:none;color:#fff;font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s,box-shadow .2s;box-shadow:0 0 16px var(--exercise-glow)}.program-card:hover .program-card-start{opacity:1;transform:scale(1)}.program-card-start:hover{box-shadow:0 0 24px var(--exercise-glow)}.editor{max-width:680px;margin:0 auto;padding:40px 20px 100px;animation:fadeIn .3s ease}.editor-header{display:flex;align-items:center;gap:12px;margin-bottom:32px}.editor-header h2{font-size:1.4rem;font-weight:800;letter-spacing:-.02em}.editor-name-field{margin-bottom:28px}.editor-name-field label{display:block;font-size:.75rem;font-weight:700;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.editor-name-input{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-lg);color:var(--text);font-family:var(--font-body);font-size:1rem;font-weight:600;padding:12px 16px;transition:border-color .2s,box-shadow .2s;outline:none}.editor-name-input:focus{border-color:var(--exercise);box-shadow:0 0 0 3px #ff6b3526}.editor-name-input::placeholder{color:var(--text-dim)}.editor-parts-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.editor-parts-label span{font-size:.75rem;font-weight:700;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}.parts-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.part-item{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;display:flex;align-items:center;gap:12px;animation:fadeIn .25s ease;transition:border-color .2s}.part-item.exercise{border-color:#ff6b3540}.part-item.rest{border-color:#00d4ff33}.type-toggle{display:flex;background:var(--bg-card2);border-radius:var(--r-full);padding:3px;gap:2px;flex-shrink:0}.type-btn{padding:5px 12px;border:none;border-radius:var(--r-full);font-family:var(--font-body);font-size:.72rem;font-weight:700;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s;background:transparent;color:var(--text-muted)}.type-btn.active-exercise{background:linear-gradient(135deg,var(--exercise),var(--exercise-2));color:#fff;box-shadow:0 0 10px var(--exercise-glow)}.type-btn.active-rest{background:linear-gradient(135deg,var(--rest),var(--rest-2));color:#fff;box-shadow:0 0 10px var(--rest-glow)}.duration-selector{flex:1;display:flex;flex-direction:column;gap:6px}.duration-top{display:flex;align-items:center;justify-content:space-between}.duration-value{font-size:1.1rem;font-weight:800;font-family:var(--font-mono);min-width:52px}.part-item.exercise .duration-value{color:var(--exercise)}.part-item.rest .duration-value{color:var(--rest)}.duration-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--bg-card2);outline:none;cursor:pointer}.part-item.exercise .duration-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--exercise);box-shadow:0 0 8px var(--exercise-glow);cursor:pointer}.part-item.rest .duration-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--rest);box-shadow:0 0 8px var(--rest-glow);cursor:pointer}.duration-slider::-webkit-slider-runnable-track{border-radius:2px}.part-number{width:22px;height:22px;border-radius:50%;background:var(--bg-card2);color:var(--text-muted);font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.part-delete{width:30px;height:30px;border:none;border-radius:var(--r-full);background:transparent;color:var(--text-dim);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;flex-shrink:0}.part-delete:hover{background:#ef444426;color:var(--danger)}.add-part-btns{display:flex;gap:8px;margin-bottom:32px}.editor-footer{display:flex;gap:10px;justify-content:flex-end}.editor-preview{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 16px;margin-bottom:20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.editor-preview-bar{flex:1;min-width:120px;height:8px;border-radius:var(--r-full);overflow:hidden;display:flex;gap:2px;background:var(--bg-card2)}.editor-preview-seg{border-radius:var(--r-full)}.editor-preview-seg.exercise{background:var(--exercise)}.editor-preview-seg.rest{background:var(--rest)}.editor-preview-total{font-size:.78rem;font-weight:700;color:var(--text-muted);white-space:nowrap}.runner{min-height:100vh;display:flex;flex-direction:column;transition:background .6s ease;position:relative;overflow:hidden}.runner:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 60% at 50% 40%,var(--glow-color, transparent),transparent 70%);transition:background .6s ease;pointer-events:none;z-index:0}.runner-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;position:relative;z-index:1}.runner-nav{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;position:relative;z-index:10}.runner-nav-title{font-size:.85rem;font-weight:700;color:var(--text-muted);letter-spacing:.04em}.runner-state-label{font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px;opacity:.8;animation:fadeIn .3s ease}.runner-time{font-size:clamp(90px,22vw,180px);font-weight:900;font-family:var(--font-mono);line-height:1;letter-spacing:-.04em;animation:scaleUp .3s cubic-bezier(.34,1.56,.64,1);transition:color .4s}.runner-next{margin-top:16px;font-size:.8rem;font-weight:600;color:var(--text-muted);opacity:.7;min-height:20px;animation:fadeIn .3s ease}.runner-warn-overlay{position:absolute;bottom:100px;left:50%;transform:translate(-50%);font-size:4rem;font-weight:900;font-family:var(--font-mono);color:var(--warn);text-shadow:0 0 30px var(--warn-glow);animation:warnPulse .5s ease infinite alternate;z-index:10}@keyframes warnPulse{0%{transform:translate(-50%) scale(1);text-shadow:0 0 20px var(--warn-glow)}to{transform:translate(-50%) scale(1.12);text-shadow:0 0 40px var(--warn-glow)}}.runner-controls{display:flex;align-items:center;gap:16px;margin-top:40px;position:relative;z-index:1}.btn-play{width:72px;height:72px;border-radius:var(--r-full);border:none;font-size:1.8rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn-play:hover{transform:scale(1.06)}.btn-play:active{transform:scale(.95)}.btn-stop{width:52px;height:52px;border-radius:var(--r-full);background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--danger);font-size:1.1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s}.btn-stop:hover{background:#ef444440;transform:scale(1.05)}.runner-timeline{width:100%;max-width:700px;padding:0 20px 24px;position:relative;z-index:1}.timeline-label{font-size:.72rem;font-weight:700;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.timeline-bar{display:flex;gap:3px;height:10px;border-radius:var(--r-full);overflow:hidden;background:var(--bg-card2);margin-bottom:8px}.timeline-seg{border-radius:var(--r-full);position:relative;transition:opacity .3s;overflow:hidden}.timeline-seg.exercise{background:#ff6b354d}.timeline-seg.rest{background:#00d4ff33}.timeline-seg.done.exercise,.timeline-seg.done.rest{background:#17171f}.timeline-seg.current{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}.timeline-seg.current.exercise{background:var(--exercise)}.timeline-seg.current.rest{background:var(--rest)}.timeline-seg-fill{position:absolute;top:0;right:0;bottom:0;background:#ffffff40;border-radius:inherit;transition:width .5s linear}.timeline-parts{display:flex;gap:4px;flex-wrap:wrap}.timeline-part-item{display:flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--r-full);font-size:.65rem;font-weight:700;opacity:.5;transition:opacity .3s}.timeline-part-item.exercise{background:#ff6b351a;color:var(--exercise)}.timeline-part-item.rest{background:#00d4ff14;color:var(--rest)}.timeline-part-item.done{background:#17171f;color:var(--text-muted);opacity:.55}.timeline-part-item.current{opacity:1;font-weight:800}.timeline-part-item.future{opacity:.4}.pre-countdown{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--bg);animation:fadeIn .3s ease;position:relative;overflow:hidden}.pre-countdown:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 50% 50% at 50% 50%,rgba(255,215,0,.08),transparent 70%);pointer-events:none}.pre-countdown-label{font-size:.85rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.pre-countdown-number{font-size:clamp(120px,30vw,240px);font-weight:900;font-family:var(--font-mono);color:var(--warn);text-shadow:0 0 60px var(--warn-glow);line-height:1;animation:preCountAnim .85s cubic-bezier(.34,1.56,.64,1)}@keyframes preCountAnim{0%{transform:scale(1.4);opacity:0}to{transform:scale(1);opacity:1}}.pre-countdown-sub{font-size:.9rem;color:var(--text-muted);max-width:260px;text-align:center}.pre-go{font-size:clamp(80px,20vw,160px);font-weight:900;font-family:var(--font-mono);background:linear-gradient(135deg,var(--exercise),#ff0000);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;filter:drop-shadow(0 0 30px var(--exercise-glow));animation:preCountAnim .4s cubic-bezier(.34,1.56,.64,1)}.finish{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;position:relative;overflow:hidden;background:var(--bg)}.finish:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 55% at 50% 40%,rgba(123,97,255,.15),transparent 70%);pointer-events:none}.finish-emoji{font-size:4rem;animation:scaleUp .5s cubic-bezier(.34,1.56,.64,1)}.finish-title{font-size:clamp(48px,12vw,96px);font-weight:900;background:linear-gradient(135deg,var(--finish),var(--finish-2),#e879f9);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 40px rgba(123,97,255,.5));animation:scaleUp .5s .1s cubic-bezier(.34,1.56,.64,1) both;line-height:1}.finish-subtitle{font-size:1rem;color:var(--text-muted);font-weight:600;animation:fadeIn .4s .3s ease both}.finish-stats{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;animation:fadeIn .4s .4s ease both}.finish-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-xl);padding:16px 24px;text-align:center;min-width:100px}.finish-stat-value{font-size:1.8rem;font-weight:900;font-family:var(--font-mono);background:linear-gradient(135deg,var(--finish),var(--finish-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:4px}.finish-stat-label{font-size:.7rem;font-weight:700;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}.finish-actions{display:flex;gap:10px;animation:fadeIn .4s .5s ease both}.confetti-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;overflow:hidden}.confetti-piece{position:absolute;width:8px;height:12px;border-radius:2px;animation:confettiFall linear forwards}@keyframes confettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(720deg);opacity:0}}.runner.state-exercise{--glow-color: rgba(255,107,53,.12)}.runner.state-rest{--glow-color: rgba(0,212,255,.1)}.runner.state-warn{--glow-color: rgba(255,215,0,.12)}
