/* Plan Builder V2: one responsive editor over the existing plan model. */
.plan-builder{max-width:1320px;margin-inline:auto;min-width:0}
.builder-header{display:flex;gap:var(--s4);align-items:center;margin-bottom:var(--s4)}
.builder-header>div{flex:1;min-width:0}.builder-header h1{font-family:var(--body);font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.3;letter-spacing:-.025em;margin:4px 0 0;text-transform:none}.builder-header .eyebrow{font-size:.65rem;margin:0}
.builder-save-row{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s5)}
.builder-save-state{font-size:.78rem;color:var(--text-secondary)}.builder-save-state.is-error{color:var(--error)}
.builder-workspace{border:0;padding:0;margin:0;min-width:0}.builder-workspace:disabled{opacity:.65}
.builder-plan-name{display:flex;gap:var(--s5);align-items:end;margin-bottom:var(--s6)}.builder-plan-name>label{flex:1;max-width:750px}.builder-plan-name input{font-size:1.2rem;font-weight:650;min-height:52px}.builder-plan-name>span{padding-bottom:14px;white-space:nowrap}
.builder-owner{padding-bottom:var(--s4);font-size:var(--text-sm)}
.builder-plan-options{display:grid;gap:var(--s4);padding:var(--s5);margin-bottom:var(--s6);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface)}
.builder-options-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.builder-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s6);align-items:start}.builder-navigation{min-width:0;display:grid;gap:var(--s3)}
.builder-week-label{padding:var(--s3);color:var(--text-muted)}.builder-week-select{margin-bottom:var(--s2)}
.builder-week-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.builder-week-actions>.btn{grid-column:1/-1}.builder-week-actions .icon-btn{width:100%}
.builder-days{display:grid;gap:6px}.builder-day{display:flex;align-items:center;gap:var(--s3);text-align:left;padding:var(--s3);border:1px solid transparent;border-radius:var(--r2);background:none;min-height:64px;color:var(--text-secondary);width:100%}.builder-day>span:first-child{font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.builder-day>span:last-child{min-width:0;overflow-wrap:anywhere}.builder-day small{display:block;font-size:.7rem;color:var(--text-muted);margin-top:3px}.builder-day.active{background:var(--surface);border-color:var(--border-strong);color:var(--accent)}.builder-day:hover{background:var(--surface)}
.builder-day-select{display:none}.builder-day-content{min-width:0}.builder-day-heading{display:flex;align-items:end;gap:var(--s3);margin-bottom:var(--s5)}.builder-day-heading>label{flex:1;min-width:0}.builder-day-heading input{font-size:1rem;font-weight:600}.builder-day-menu{position:relative}.builder-day-menu>summary{list-style:none;cursor:pointer;display:grid;place-items:center;min-height:48px;width:48px;border:1px solid var(--border);border-radius:var(--r2)}.builder-day-menu summary::-webkit-details-marker{display:none}.builder-day-menu>div{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:230px;padding:8px;background:var(--background-secondary);border:1px solid var(--border-strong);border-radius:var(--r2);box-shadow:0 12px 36px #0006;display:grid}.builder-day-menu .btn{justify-content:flex-start}.builder-day-note{margin-bottom:var(--s5)}
.plan-builder .editor-exercise{padding:var(--s5);border:1px solid var(--border);border-radius:var(--r2);background:var(--surface);margin-bottom:var(--s4);min-width:0}.plan-builder .editor-exercise.drag-over{outline:2px solid var(--action);outline-offset:2px}
.builder-exercise-heading{display:flex;gap:var(--s3);align-items:center;margin-bottom:var(--s4)}.builder-exercise-name{flex:1;min-width:0}.builder-exercise-name h3{font-size:1rem;line-height:1.4;overflow-wrap:anywhere}.builder-exercise-name p{font-size:.76rem;margin:5px 0 0;color:var(--text-secondary);overflow-wrap:anywhere}.builder-group-summary{display:inline-block;font-size:.7rem;color:var(--accent);margin-top:5px}.builder-drag{cursor:grab;color:var(--text-muted);flex-shrink:0}.builder-sort-actions{display:flex;gap:2px}.plan-builder .icon-btn{min-width:44px;min-height:44px;flex-shrink:0}
.builder-basic-fields{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(140px,1.2fr);gap:var(--s4);max-width:550px}.plan-builder label{font-size:.78rem;min-width:0}.plan-builder input,.plan-builder select{min-height:48px;width:100%;font-size:1rem}.plan-builder input[type=checkbox]{width:auto;min-height:0}.plan-builder textarea{font-size:1rem}.builder-mixed{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.builder-mixed>span{font-size:.78rem;color:var(--text-secondary)}
.plan-builder summary{min-height:44px;display:flex;align-items:center;gap:var(--s2);cursor:pointer;font-size:.8rem}.plan-builder summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.plan-builder .builder-exercise-details{border-top:1px solid var(--border);margin-top:var(--s4);padding-top:var(--s2)}.builder-exercise-details>summary{color:var(--accent)}.builder-exercise-details>summary::before{content:'+';margin-right:var(--s2)}.builder-exercise-details[open]>summary::before{content:'−'}.builder-details-body{padding-top:var(--s3)}.builder-details-body h4{font-size:.9rem;margin-bottom:var(--s2)}.builder-details-body>p{margin-bottom:var(--s4)}
.builder-set-row{display:grid;grid-template-columns:55px minmax(120px,1.3fr) repeat(2,minmax(80px,1fr)) 44px;gap:var(--s3);align-items:end;padding:var(--s4) 0;border-top:1px solid var(--border)}.builder-set-row>strong{font-size:.8rem;align-self:center}.builder-set-row>.icon-btn{grid-column:5;grid-row:1;align-self:end}.builder-set-options{grid-column:2/5}.builder-set-options>div{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);padding-block:var(--s3)}.builder-set-options>summary{color:var(--text-muted);font-size:.75rem}.builder-set-actions{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-top:var(--s3)}.builder-exercise-options{border-top:1px solid var(--border);margin-top:var(--s5);padding-top:var(--s3)}.builder-exercise-options>summary{color:var(--text-secondary)}.builder-options-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4);padding-top:var(--s3)}.builder-options-grid>.full{grid-column:1/-1}.editor-group-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s3);padding-block:var(--s4)}.editor-group-tools small{flex-basis:100%}
.builder-exercise-actions{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;border-top:1px solid var(--border);padding-top:var(--s4);margin-top:var(--s4)}.builder-exercise-actions .btn{font-size:.8rem;min-height:44px;padding-inline:var(--s3)}
.builder-addbar{padding-block:var(--s3);margin-top:var(--s3)}.builder-addbar .btn{min-height:52px}.builder-history-note{font-size:.75rem;text-align:center;color:var(--text-muted);padding:var(--s3) 0 var(--s5)}.builder-empty{padding:var(--s8) var(--s4);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--r2)}.builder-empty>svg{color:var(--accent);margin-bottom:var(--s3)}.builder-empty h2{font-size:1.15rem}.builder-empty p{font-size:.85rem;margin-block:var(--s3) var(--s5)}
.builder-start-options{display:grid;gap:var(--s3);margin-top:var(--s5)}.builder-start-options .btn{display:flex;flex-direction:column;align-items:flex-start;white-space:normal;gap:5px;padding:var(--s5);text-align:left}.builder-start-options strong{font-size:.95rem}.builder-start-options span{font-size:.8rem;color:var(--text-secondary);font-weight:400}.builder-picker-filters{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3);margin-block:var(--s3)}.builder-picker-filters label{font-size:.8rem}.builder-picker-filters select{min-height:46px}.builder-picker-row{display:flex;align-items:center;min-width:0;border-bottom:1px solid var(--border)}.builder-picker-check{min-width:48px;min-height:60px;display:grid;place-items:center}.builder-picker-check input{width:20px;height:20px;accent-color:var(--action)}.builder-picker-row>button{flex:1;min-width:0;padding:var(--s4) var(--s2)!important;border:0!important;min-height:64px}.builder-picker-row strong{font-size:.87rem;display:block;overflow-wrap:anywhere}.builder-picker-row small{font-size:.73rem;display:block;margin-top:4px;color:var(--text-secondary)}
.plan-picker-dialog[open]{display:flex;flex-direction:column;max-height:90dvh;width:min(660px,calc(100vw - 24px))}.plan-picker-dialog .modal-body{overflow-y:auto;min-height:0}.plan-picker-dialog .library-list{overflow:visible;max-height:none}.plan-picker-dialog .modal-header,.plan-picker-dialog .modal-footer{flex-shrink:0}.plan-picker-dialog .modal-footer{padding-bottom:max(var(--s4),env(safe-area-inset-bottom))}
@media(min-width:1100px){.builder-navigation{position:sticky;top:100px}}
@media(max-width:959px){.builder-layout{grid-template-columns:170px minmax(0,1fr);gap:var(--s4)}.builder-set-row{gap:var(--s2)}}
@media(max-width:759px){.shell-content:has(.plan-builder) .mobile-header{display:none}.shell-content:has(.plan-builder) .main{padding-top:12px}.builder-header{gap:var(--s2);align-items:center;margin-bottom:var(--s2)}.builder-header h1{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.builder-header>.btn:first-child{padding-inline:8px;min-width:40px}.builder-header>.btn:first-child>span{display:none}.builder-header>.primary{font-size:.75rem;padding-inline:12px;min-height:44px}.builder-header>.primary>svg{display:none}.builder-save-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:var(--s3)}.builder-save-row>.text-btn{font-size:.75rem;min-height:44px}.builder-save-state{font-size:.7rem;max-width:none}.builder-plan-name{display:block;margin-bottom:var(--s4)}.builder-plan-name>span{display:none}.builder-plan-name input{font-size:1.07rem}.builder-layout{display:block}.builder-navigation{margin-bottom:var(--s3);gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr))}.builder-days,.builder-week-label{display:none}.builder-day-select{display:block;grid-column:1/-1}.builder-week-select~.builder-day-select{grid-column:2;grid-row:1}.builder-week-select{margin:0}.builder-week-actions{grid-column:1/-1;grid-row:2}.builder-add-day{display:none}.builder-day-heading>label>span{display:none}.builder-week-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.builder-week-actions>.btn{grid-column:1/-1}.builder-plan-options{padding:var(--s4)}.builder-options-grid{grid-template-columns:1fr 1fr}.builder-options-grid>label:last-child{grid-column:1/-1}.builder-day-heading{margin-bottom:var(--s3)}.plan-builder .editor-exercise{padding:var(--s4)}.builder-exercise-heading{gap:var(--s2);align-items:start}.builder-exercise-name h3{font-size:.93rem}.builder-exercise-name p{font-size:.7rem}.builder-drag{display:none}.builder-sort-actions{gap:0}.builder-sort-actions .icon-btn{min-width:44px;width:44px}.builder-basic-fields{gap:var(--s3);grid-template-columns:minmax(80px,.7fr) minmax(130px,1.3fr)}.builder-basic-fields label{font-size:.7rem}.builder-basic-fields input{font-size:1.05rem}.builder-set-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px;gap:var(--s3)}.builder-set-row>strong{grid-column:1/3}.builder-set-row>.icon-btn{grid-column:3;grid-row:1}.builder-set-row>label{grid-column:auto}.builder-set-row>label:first-of-type{grid-column:1/3}.builder-set-options{grid-column:1/-1}.builder-set-options>div{grid-template-columns:1fr}.builder-set-actions{gap:var(--s2)}.builder-set-actions>.btn{font-size:.8rem}.builder-options-grid{grid-template-columns:1fr 1fr}.builder-options-grid>label:first-child{grid-column:1/-1}.builder-exercise-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.builder-exercise-actions .btn{padding:8px 4px;font-size:.69rem;gap:4px}.builder-exercise-actions .btn svg{width:14px}.builder-addbar{position:sticky;bottom:calc(74px + env(safe-area-inset-bottom));z-index:9;padding:12px 0;background:var(--background)}.builder-history-note{padding-bottom:12px}.builder-empty{padding:var(--s6) var(--s4)}.builder-picker-filters{gap:8px}.builder-picker-filters label{font-size:.7rem}.builder-picker-filters select{font-size:.85rem;padding-inline:8px}.plan-picker-dialog .modal-header,.plan-picker-dialog .modal-body{padding:var(--s4)}body:has(.plan-builder) .improvement-fab{bottom:calc(154px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.plan-builder *{scroll-behavior:auto;transition:none}}

/* A tablet can have a narrow exercise panel beside both navigation columns.
   Size the detailed set editor by that panel, rather than the device alone. */
.builder-day-content{container-type:inline-size;container-name:builder-day}
@container builder-day (max-width:600px){
 .builder-set-row{grid-template-columns:minmax(0,1fr) 44px;gap:var(--s3)}
 .builder-set-row>strong{grid-column:1;grid-row:1}
 .builder-set-row>.icon-btn{grid-column:2;grid-row:1;justify-self:end}
 .builder-set-row>label,.builder-set-row>label:first-of-type{grid-column:1/-1}
 .builder-set-options{grid-column:1/-1}
 .builder-set-options>div{grid-template-columns:minmax(0,1fr)}
 .builder-exercise-options .builder-options-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
}

.builder-leave-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);width:100%}
.builder-leave-actions .btn{min-width:0;white-space:normal;text-align:center}
@media(max-width:759px){.builder-leave-actions{grid-template-columns:minmax(0,1fr)}}

/* Existing workout components shared by training, outside the builder. */
.bodyweight-start{border:1px solid var(--border);border-radius:var(--r3);padding:var(--s5);display:grid;gap:var(--s4);margin-top:var(--s5);min-width:0}.bodyweight-start legend{font-weight:700;padding-inline:var(--s2)}
.workout-bodyweight{display:grid;grid-template-columns:1fr auto;gap:var(--s2);padding:var(--s4);margin-bottom:var(--s4);border:1px solid var(--border);border-radius:var(--r3);background:var(--surface)}.workout-bodyweight>span,.workout-bodyweight>small{font-size:var(--text-sm);color:var(--text-secondary)}.workout-bodyweight>small{grid-column:1/-1}.workout-bodyweight strong{font-variant-numeric:tabular-nums}
.workout-group{display:flex;gap:var(--s3);align-items:center;flex-wrap:wrap;margin-bottom:var(--s5)}.workout-group>span:last-child{font-size:var(--text-sm);color:var(--text-secondary)}.bodyweight-value{font-size:clamp(1.15rem,4vw,2.3rem);overflow-wrap:anywhere;line-height:1.2}.bodyweight-control .number-field{min-height:var(--input-height);padding-block:var(--s4)}
