.workout-list{display:grid;gap:12px}.workout-item{border:1px solid var(--color-border);border-radius:18px;background:#fff;overflow:hidden;box-shadow:var(--shadow-sm)}.workout-summary{display:flex;align-items:center;gap:12px;padding:15px}.workout-summary-main{flex:1;min-width:0}.workout-summary-main strong{display:block}.workout-summary-main span{font-size:.78rem;color:var(--color-text-muted)}.workout-detail{display:grid;gap:14px;padding:0 15px 16px}.exercise-info{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.exercise-info>div{border-radius:12px;background:var(--color-surface-soft);border:1px solid var(--color-border);padding:10px;text-align:center}.exercise-info strong{display:block}.set-card{border:1px solid var(--color-border);border-radius:15px;overflow:hidden;background:#fff}.set-card-header{display:flex;justify-content:space-between;align-items:center;padding:12px 13px}.set-card-body{display:grid;gap:12px;padding:0 13px 13px}.set-card.completed .set-card-header{background:var(--color-success-soft)}.set-line{font-weight:800;color:var(--color-success)}.set-summary-button{width:100%;border:0;text-align:left}.numeric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bodyweight-row{display:flex;align-items:center;gap:9px;min-height:42px}.add-workout-button{width:58px;height:58px;border:0;border-radius:50%;color:#fff;background:var(--color-primary);font-size:2rem;box-shadow:0 8px 24px rgba(255,90,31,.32)}.training-finish{width:calc(100% - 74px);min-height:56px}.rest-overlay{position:fixed;inset:0;z-index:700;display:grid;place-items:center;background:rgba(20,22,26,.72);padding:24px}.rest-dialog{width:min(92vw,420px);border-radius:24px;background:#fff;padding:28px;text-align:center;box-shadow:var(--shadow-md)}.rest-value{font-size:4rem;font-weight:900;letter-spacing:.04em;color:var(--color-primary);margin:8px 0}.timer-locked{pointer-events:none;user-select:none}

.workout-item{transition:opacity .2s ease,filter .2s ease,transform .2s ease}.workout-item.workout-muted{opacity:.34;filter:saturate(.35)}.workout-item.workout-muted:hover{opacity:.52}

/* v23: compact three-digit set entry */
.compact-set-header{
  padding:9px 11px;
}

.set-header-actions{
  display:flex;
  align-items:center;
  gap:14px;
}

.bodyweight-inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:.76rem;
  color:var(--color-text-muted);
  white-space:nowrap;
}

.bodyweight-inline input{
  margin:0;
}

.compact-set-body{
  gap:7px;
  padding:0 11px 11px;
}

/* 重量欄と回数操作を一列に配置。
   重量→−1は広め、−1→回数→＋1は狭め。 */
.compact-numeric-row{
  display:grid;
  grid-template-columns:112px minmax(166px,1fr);
  column-gap:22px;
  align-items:end;
}

.compact-number-field{
  min-width:0;
}

.compact-number-field>label{
  display:block;
  margin:0 0 4px 2px;
  color:var(--color-text-muted);
  font-size:.72rem;
  white-space:nowrap;
}

.number-input-shell{
  display:flex;
  align-items:center;
  min-width:0;
  height:42px;
  border:1px solid var(--color-border);
  border-radius:12px;
  background:#fff;
}

.compact-weight-shell{
  width:112px;
}

.compact-reps-shell{
  width:84px;
}

.compact-number-input{
  width:100%;
  min-width:0;
  height:100%;
  border:0;
  outline:0;
  background:transparent;
  padding:0 3px 0 8px;
  color:var(--color-text);
  font:inherit;
  font-size:1rem;
  font-weight:800;
  text-align:right;
}

.compact-number-input:focus{
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--color-primary) 48%,transparent);
  border-radius:11px;
}

.compact-number-input::-webkit-inner-spin-button,
.compact-number-input::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* 掛け算記号に見えない、薄いグレーの丸いクリアボタン */
.clear-number{
  display:grid;
  place-items:center;
  flex:0 0 28px;
  width:28px;
  height:28px;
  margin-right:5px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#e9ebef;
  color:#747a84;
}

.clear-number span{
  display:block;
  font-size:.92rem;
  font-weight:850;
  line-height:1;
}

.clear-number:active{
  background:#d9dce2;
  color:#515761;
  transform:scale(.95);
}

.reps-stepper{
  display:grid;
  grid-template-columns:36px 84px 36px;
  gap:5px;
  align-items:center;
  justify-content:start;
}

.step-button{
  width:36px;
  height:36px;
  padding:0;
  border:1px solid var(--color-border);
  border-radius:50%;
  background:#fff;
  color:var(--color-text);
  box-shadow:0 2px 6px rgba(20,22,26,.08);
  font-size:.76rem;
  font-weight:850;
  line-height:1;
}

.step-button:active{
  background:var(--color-primary-soft);
  color:var(--color-primary);
  transform:scale(.95);
}

.compact-comment-field{
  gap:0;
}

.auto-grow-comment{
  min-height:34px;
  max-height:120px;
  resize:none;
  overflow-y:auto;
  padding:7px 10px;
  transition:height .08s ease;
  font-size:.88rem;
}

@media(max-width:390px){
  .compact-numeric-row{
    grid-template-columns:104px minmax(154px,1fr);
    column-gap:18px;
  }

  .compact-weight-shell{
    width:104px;
  }

  .compact-reps-shell{
    width:78px;
  }

  .reps-stepper{
    grid-template-columns:34px 78px 34px;
    gap:4px;
  }

  .step-button{
    width:34px;
    height:34px;
    font-size:.72rem;
  }

  .clear-number{
    flex-basis:25px;
    width:25px;
    height:25px;
    margin-right:4px;
  }

  .clear-number span{
    font-size:.82rem;
  }

  .compact-number-input{
    padding-left:5px;
    font-size:1rem;
  }

  .set-card-body{
    padding-left:9px;
    padding-right:9px;
  }
}

@media(max-width:345px){
  .compact-numeric-row{
    grid-template-columns:98px minmax(146px,1fr);
    column-gap:13px;
  }

  .compact-weight-shell{
    width:98px;
  }

  .compact-reps-shell{
    width:74px;
  }

  .reps-stepper{
    grid-template-columns:32px 74px 32px;
    gap:4px;
  }

  .step-button{
    width:32px;
    height:32px;
    font-size:.68rem;
  }
}


/* v26: 閉じたメニューは設定位置を隠し、少しコンパクトに */
.workout-item.is-closed .workout-summary{
  padding-top:11px;
  padding-bottom:11px;
}
.workout-item.is-closed .workout-summary-main span{
  margin-top:1px;
}
.set-collapse-button{
  width:30px;
  height:30px;
  font-size:.9rem;
}


/* v27 active set / required fields / share */
.set-card.is-inputting{border:2px solid var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 10%,transparent)}
.set-card.is-inputting .compact-set-header{background:#fff8f2}
.inputting-label{color:var(--color-primary)!important;font-weight:900}
.number-input-shell.required-empty{border-color:#e2a074;background:#fffaf6;box-shadow:0 0 0 2px rgba(255,106,0,.08)}
.number-input-shell.required-empty .compact-number-input::placeholder{color:#bb7b51}
.training-done-copy{flex:1;min-width:0}.share-training-button{margin-top:8px}

.compact-comment-text{font-size:.78rem;line-height:1.35}.comment-hint{display:block;margin-top:4px;font-size:.67rem}
.set-action-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.set-action-row .btn{width:100%;min-width:0}
.execution-time-button{display:grid;gap:2px;place-items:center;font-size:.76rem}.execution-time-button.is-measuring{border-color:var(--color-primary)}.execution-time-button b{font-size:.88rem}
.cardio-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.duration-text-input{font-size:.86rem}


/* set delete: keep the desktop click target above neighboring header controls */
.set-header-actions{position:relative;z-index:2}
.set-delete-button{position:relative;z-index:3;pointer-events:auto;touch-action:manipulation;cursor:pointer}

/* Completed set: keep per-set delete visible even while collapsed. */
.completed-set-row{
  display:flex;
  align-items:stretch;
  gap:8px;
}
.completed-set-summary{
  flex:1 1 auto;
  min-width:0;
}
.completed-set-delete{
  flex:0 0 auto;
  align-self:center;
  position:relative;
  z-index:5;
  pointer-events:auto;
  white-space:nowrap;
  margin-right:8px;
}
@media (max-width:600px){
  .completed-set-row{gap:4px;}
  .completed-set-delete{margin-right:4px;padding-inline:10px;}
}
