
.training-page{display:grid;gap:12px}
.training-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.training-header h1{margin:4px 0 4px}
.training-header p{margin:0;color:var(--muted);font-size:12px}
.training-selector-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.training-selector-row label{display:grid;gap:5px}
.training-selector-row label span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.55px}
.training-selector-row select{width:100%;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--text)}
.secondary-button{border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:var(--surface-2);color:var(--text);font-weight:800}
.training-day-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:3px;scrollbar-width:none}
.training-day-tabs::-webkit-scrollbar{display:none}
.training-day-tab{flex:0 0 auto;border:1px solid var(--line);border-radius:13px;padding:9px 12px;background:var(--surface);color:var(--muted);font-weight:800;font-size:12px}
.training-day-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}
.training-session-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.training-session-summary article{padding:12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.training-session-summary span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.45px}
.training-session-summary strong{display:block;font-size:18px;margin-top:4px}
.session-progress-panel{position:sticky;top:72px;z-index:20;padding:13px;border-radius:18px;background:rgba(12,12,12,.94);backdrop-filter:blur(16px);border:1px solid var(--line)}
.session-progress-panel>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}
.session-progress-panel span{font-size:11px;color:var(--muted)}
.session-progress-track{height:9px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:9px}
.session-progress-track span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--success));transition:width .3s ease}
.training-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.training-exercise-list{display:grid;gap:10px}
.training-exercise-card{padding:14px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.training-exercise-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start}
.training-exercise-icon{width:64px;height:64px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.07);font-size:20px;overflow:hidden;flex:0 0 64px}.training-exercise-icon img{width:100%;height:100%;display:block;object-fit:contain;padding:4px}.training-exercise-fallback{font-size:20px}
.training-exercise-title{font-size:17px;font-weight:900;line-height:1.25}
.training-exercise-meta{font-size:11px;color:var(--muted);margin-top:4px}
.training-exercise-prescription{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.07);font-size:11px;white-space:nowrap}
.training-discipline-badge{display:inline-flex;margin-top:7px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}
.training-discipline-badge.strength{background:rgba(10,132,255,.15);color:#73b9ff}
.training-discipline-badge.swim{background:rgba(90,200,250,.15);color:#81d9ff}
.training-discipline-badge.bike{background:rgba(52,199,89,.15);color:#76e99a}
.training-discipline-badge.recovery{background:rgba(191,90,242,.15);color:#d38cff}
.training-target{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:11px;padding:10px;border-radius:13px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}
.training-target span{font-size:10px;color:var(--muted);text-transform:uppercase}
.training-target strong{font-size:12px;text-align:right}
.training-tip{margin-top:9px;padding:10px;border-radius:13px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);font-size:11px;color:var(--muted);line-height:1.4}
.training-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.training-fields input,.training-fields textarea{width:100%;min-width:0;padding:11px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2);color:var(--text)}
.training-fields textarea{grid-column:1/-1;resize:vertical;min-height:44px}
.training-rpe-box{grid-column:1/-1;padding:11px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)}
.training-rpe-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.training-rpe-head strong{font-size:13px}
.training-rpe-head span{font-size:22px;font-weight:900}
.training-rpe-slider{-webkit-appearance:none;appearance:none;width:100%;height:8px;padding:0;margin-top:9px;border:0;border-radius:999px;background:linear-gradient(90deg,var(--success) 0 60%,var(--warning) 60% 80%,var(--danger) 80% 100%)}
.training-rpe-slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:var(--text);border:3px solid var(--bg)}
.training-rpe-description{margin-top:6px;font-size:10px;color:var(--muted)}
.training-status-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}
.training-status-actions button{border:1px solid var(--line);border-radius:12px;padding:10px 6px;background:var(--surface-2);color:var(--text);font-weight:800;font-size:11px}
.training-status-actions button.active-done{background:var(--success);color:#061107;border-color:var(--success)}
.training-status-actions button.active-partial{background:var(--warning);color:#1a1200;border-color:var(--warning)}
.training-status-actions button.active-skip{background:var(--danger);color:#fff;border-color:var(--danger)}
.training-previous{margin-top:8px;font-size:10px;color:var(--muted)}
.training-empty{padding:18px;border-radius:18px;border:1px dashed var(--line);color:var(--muted);text-align:center}
.training-complete-banner{display:none;padding:13px;border-radius:16px;background:rgba(52,199,89,.14);border:1px solid rgba(52,199,89,.3);color:#7bea9c;font-weight:900;text-align:center}
.training-complete-banner.show{display:block}
.training-timer-modal{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.94);padding:20px;align-items:center;justify-content:center}
.training-timer-modal.show{display:flex}
.training-timer-panel{width:min(420px,100%);padding:20px;border-radius:24px;background:var(--surface);border:1px solid var(--line);text-align:center}
.training-timer-ring{width:210px;height:210px;margin:20px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--text) calc(var(--timer-progress)*1%),rgba(255,255,255,.08) 0);position:relative}
.training-timer-ring::after{content:"";position:absolute;width:164px;height:164px;border-radius:50%;background:var(--surface)}
.training-timer-ring strong{position:relative;z-index:1;font-size:44px}
.training-timer-presets,.training-timer-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.training-timer-presets button{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-2);color:var(--text);font-weight:800}
@media(min-width:760px){
  .training-session-summary{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:560px){
  .training-selector-row,.training-actions{grid-template-columns:1fr}
  .training-fields{grid-template-columns:1fr}
  .training-fields textarea,.training-rpe-box{grid-column:1}
}

.training-actions{grid-template-columns:1fr}
.training-actions button:disabled{opacity:.42;cursor:not-allowed}
.training-inline-timer{width:100%;margin-top:9px;padding:10px 12px;border-radius:13px;border:1px solid rgba(10,132,255,.25);background:rgba(10,132,255,.08);color:#b8d9ff;font-weight:850;text-align:left}
.training-inline-timer:active{transform:scale(.99)}

.training-exercise-timer{width:100%;margin-top:10px;padding:12px;border-radius:13px;border:1px solid rgba(52,199,89,.35);background:rgba(52,199,89,.12);color:#baf5c8;font-weight:900;text-align:left;letter-spacing:.01em}
.training-exercise-timer:active{transform:scale(.99)}

.training-actions-bottom {
  display: none;
  margin-top: 20px;
  padding-bottom: 8px;
}
.training-actions-bottom.show {
  display: block;
}
.training-actions-bottom .secondary-button {
  width: 100%;
}
