/* GOAT Path · Training Log action chrome.
   Keep Training Log edit/remove controls visually identical to the established Food Log controls.
   Loaded after styles.css so this remains a narrow presentation override only. */

/* Exercise / manager-level remove = Food Log meal/session remove. */
.log-ex-remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  min-width:26px;
  min-height:26px;
  padding:0;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
  color:var(--bad,#DC2626)!important;
  font:600 13px/1 var(--body);
  cursor:pointer;
  opacity:.9;
  flex:none;
}
.log-ex-remove:hover,.log-ex-remove:active{
  opacity:1;
  color:var(--bad,#DC2626)!important;
  border-color:var(--bad,#DC2626);
  background:rgba(220,38,38,.10);
}

/* Set edit/remove pair = Food Log item edit/remove pair. */
.log-rx-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:27px;
  height:27px;
  min-width:27px;
  min-height:27px;
  padding:0;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
  color:var(--mut);
  font:600 12px/1 var(--body);
  cursor:pointer;
  flex:none;
}
.log-rx-edit:hover,.log-rx-edit:active{
  color:var(--acc2);
  border-color:var(--acc2);
  background:var(--surface);
}
.log-rx-remove{
  color:var(--bad,#DC2626)!important;
}
.log-rx-remove:hover,.log-rx-remove:active{
  color:var(--bad,#DC2626)!important;
  border-color:var(--bad,#DC2626);
  background:rgba(220,38,38,.10);
}

/* The base stylesheet previously enlarged these controls again on narrow phones. */
@media(max-width:390px){
  .log-rx-icon{
    width:27px;
    height:27px;
    min-width:27px;
    min-height:27px;
  }
}

/* 2026.10.07 · exercise actions + numeric-only closed rep range. */
.log-ex-head-actions{display:flex;align-items:center;gap:6px;flex:none}
.log-ex-manage{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;min-width:26px;min-height:26px;padding:0;
  border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--mut);
  font:700 16px/1 var(--body);cursor:pointer;flex:none;
}
.log-ex-manage:hover,.log-ex-manage:active{color:var(--ink);background:var(--soft)}
.log-exercise .log-ex-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.repselect{
  position:relative;display:flex;align-items:center;width:100%;min-width:0;min-height:38px;
  border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-sizing:border-box;
}
.repselect-v{display:block;width:100%;padding:8px 30px 8px 11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}
.repselect::after{content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-65%) rotate(45deg);pointer-events:none;opacity:.72}
.repselect select{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2}
.repselect:focus-within{border-color:var(--acc);outline:2px solid var(--focus-ring);outline-offset:1px}
@media(max-width:390px){.repselect{min-height:40px}.repselect-v{padding-left:7px;padding-right:25px}.repselect::after{right:9px}}

/* 2026.10.07 · Cardio + Gut use the same saved-summary/edit language as Food + Training. */
.log-summary{position:relative;align-items:flex-start;gap:8px;padding:9px 4px}
.log-summary-bar{width:4px;align-self:stretch;min-height:44px;border-radius:999px;background:var(--acc);flex:none}
.act-summary .log-summary-bar{background:var(--eng)}
.gut-summary .log-summary-bar{background:var(--acc2)}
.log-summary .li-txt{min-width:0}
.log-summary-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;flex-wrap:wrap}
.log-summary-tag{display:inline-flex;margin-top:3px}
.log-summary-meta{display:block!important;margin:3px 0 0!important}
.log-summary-kcal{white-space:nowrap;flex:none}
#v-log .log-summary :is(.li-mac,.log-summary-meta,.log-summary-kcal){font-family:var(--body);font-variant-numeric:tabular-nums}
.log-summary-note{display:block;font-size:12px;color:var(--mut);line-height:1.4;margin-top:3px;overflow-wrap:anywhere}
.log-auto-step{grid-template-columns:minmax(0,1fr)!important;align-items:start!important}
.log-auto-step .chip{white-space:nowrap}
.actrow.editing{grid-template-areas:"nm x" "meta meta" "sub sub" "foot foot"}
.actrow>.ar-foot{grid-area:foot;display:flex;align-items:center;justify-content:space-between;gap:8px}
.ar-foot .ar-kc{white-space:nowrap;margin:0}
.gutrow.editing{grid-template-areas:"time bristol bristol del" "urg pain gi gi" "note note note note" "foot foot foot foot"}
.gut-edit-foot{grid-area:foot;display:flex;justify-content:flex-end}
@media(max-width:390px){
  .log-summary{gap:7px;padding:8px 3px}
  .log-summary-top{align-items:flex-start}
  .log-summary-kcal{font-size:11px}
}


.gutrow>.gr-time{grid-area:time}
.gutrow>.gr-bristol{grid-area:bristol}
.gutrow>.gr-urg{grid-area:urg}
.gutrow>.gr-pain{grid-area:pain}
.gutrow>.gr-gi{grid-area:gi}
.gutrow>.gr-note{grid-area:note}
.gutrow>.gr-del{grid-area:del;align-self:start}
.gutrow .ar-f>input,.gutrow .ar-f>select{width:100%}

/* Log shares Customize Analysis row dimensions and the modal's native scroll. */
.gp-log-fold>.gp-body{min-width:0}
.gp-log-add-actions{gap:8px;margin-top:6px;flex-wrap:wrap}
.gp-log-add-session{margin-top:12px}
.gp-log-add-meal{margin-top:8px}
/* Reuse the compact disclosure inside Training; toggling never remounts its parent. */
.gp-program-preview{margin-bottom:12px;border:1px solid var(--acc);background:var(--accT05)}
.gp-program-preview>.gp-summary .gp-title{overflow-wrap:anywhere}
.gp-log-program-apply{margin-top:8px}
.gp-prog-fill{max-width:440px;padding-top:16px}
.gp-prog-fill-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.gp-prog-fill-head h1{flex:1;min-width:0;margin:0;font-size:17px;line-height:1.2}
.gp-prog-fill-head>.btn{flex:none;display:flex;align-items:center;justify-content:center;width:28px;min-height:28px;padding:0;border:0}
/* Full-row Log actions include the iOS haptic wrapper as well as plain buttons. */
#v-log .gp-log-full-action,
.gp-builder .gp-log-full-action{display:block;width:100%;min-width:0}
#v-log .gp-log-full-action>.gp-log-haptic,
.gp-builder .gp-log-full-action>.gp-log-haptic{display:flex;width:100%;min-width:0}
#v-log .gp-log-full-action .btn,
.gp-builder .gp-log-full-action .btn{
 display:flex;align-items:center;justify-content:center;width:100%;min-width:0;
 box-sizing:border-box;min-height:28px;margin:0;padding:3px 10px;
 font-size:12px;line-height:20px;border-radius:9px;white-space:nowrap
}
.gp-log-custom-hint{margin-bottom:8px}
.gp-log-custom-actions{gap:8px;margin-top:12px;flex-wrap:wrap}
.gp-log-done{width:100%}
.gp-log-customize .arr-name input:disabled{opacity:.48}

/* Log entry actions: equal-width pairs and full-width singles; keep the existing button theme. */
#v-log .gp-log-add-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
#v-log .gp-log-add-actions>.btn,
#v-log .gp-log-fold>.gp-body>.btn,
#v-log .sesscard>.btn.additem,
#v-log .mgfoot>.btn.additem{
 display:flex;align-items:center;justify-content:center;box-sizing:border-box;
 min-height:44px;min-width:0;text-align:center;white-space:nowrap
}
#v-log .gp-log-add-actions>.btn,
#v-log .gp-log-fold>.gp-body>.btn,
#v-log .sesscard>.btn.additem{width:100%}
#v-log .gp-log-fold>.gp-body>.btn,
#v-log .sesscard>.btn.additem{margin-top:8px}
#v-log .mgfoot>.btn.additem{flex:1 1 0}
#v-log .mgfoot>.chip{flex:0 0 auto}
@media(max-width:360px){#v-log .gp-log-add-actions>.btn{padding-inline:6px}}

/* Food Log: compact saved rows; entry controls keep their existing reading size. */
#v-log .mg-head{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr) auto;gap:6px}
#v-log .mg-head .mg-sp{display:none}
#v-log .mg-head .mg-num,#v-log .mg-head .mg-time{
 width:100%;min-width:0;box-sizing:border-box;
 height:30px;min-height:30px;padding:2px 6px;line-height:20px
}
#v-log .mg-head .mg-num{padding-right:20px}
#v-log .mg-head .mg-end{gap:4px}
#v-log .food-summary-head{align-items:center;gap:6px;margin-bottom:0}
#v-log .food-summary-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}
#v-log .food-summary-copy .li-name{font-size:var(--saved-item-font-size);font-weight:600;line-height:1.4}
#v-log .food-summary-copy .upfchip{margin:0;padding:2px 5px;font-size:10px;grid-column:2;grid-row:1;justify-self:end}
#v-log .fr-nutrients-preview{width:100%;min-width:0}
#v-log .fr-custom-edit{width:100%;min-width:0}
#v-log .fr-custom-edit>summary{display:inline-flex;align-items:center;cursor:pointer;color:var(--mut);font:600 12px/1.5 var(--body);padding:5px 0}
#v-log .fr-custom-edit>.fr-cust{margin-top:4px}
#v-log .fr-custom-edit .fr-cust input{font-size:16px}
#v-log .food-log-summary .li-act{gap:4px}
@media(max-width:360px){
 #v-log .food-summary-copy .upf-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #v-log .mg-head{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}
 #v-log .mg-head .mg-end{grid-column:1/-1;justify-self:end}
}
#v-log .meal-nutrients{margin-top:8px;min-width:0}
#v-log .meal-nutrients .food-nutrients{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
/* Totals use a neutral theme-derived shade; individual food tiles keep their own surface. */
#v-log .meal-nutrients .food-nutrient{padding:6px 1px;gap:2px;background:color-mix(in srgb,var(--soft4) 90%,var(--ink) 10%)}
#v-log .meal-nutrients .food-nutrient-label,
#v-log .meal-nutrients .food-nutrient-unit{color:color-mix(in srgb,var(--ink) 75%,var(--mut) 25%)}
#v-log .meal-nutrients .food-nutrient-value{font-size:clamp(10px,2.6vw,13px)}
#v-log .mgfoot{display:block;margin-top:8px}
#v-log .mgfoot>.btn.additem,
#v-log [data-log-sec="meals"] .gp-log-add-actions>.btn,
#v-log .gp-log-fold>.gp-body>.btn,
#v-log .sesscard>.btn.additem,
#v-log .log-exercise .log-ex-actions button.log-ex-action,
.gp-builder .log-exercise .log-ex-actions button.log-ex-action{
 width:100%;min-height:28px;padding:3px 10px;line-height:20px;font-size:12px;
 border-radius:9px;white-space:nowrap
}
#v-log .log-exercise .log-ex-actions button.log-ex-action,
.gp-builder .log-exercise .log-ex-actions button.log-ex-action{padding-inline:2px;font-size:clamp(10px,2.8vw,12px)}
@media(max-width:360px){
 #v-log .log-exercise,
.gp-builder .log-exercise{padding-inline:4px}
 #v-log .log-exercise .log-ex-actions,
.gp-builder .log-exercise .log-ex-actions{grid-template-columns:1.2fr 1.14fr 1fr;gap:3px}
}
/* More specific than legacy meal/time and custom-macro rules, including tablet widths.
   Do not disable pinch zoom. A 16px minimum prevents iOS form-focus auto zoom. */
@media(max-width:1024px){
 #v-log .mealgrp input,#v-log .mealgrp select{font-size:16px;min-width:0}
 #v-log .foodrow input{font-size:16px}
}

/* Set editor: full-width controls, one primary input row, compact optional details. */
#v-log .log-exercise .exrow.editing,
.gp-builder .log-exercise .exrow.editing{padding:8px 0;margin:4px 0;border:0;background:transparent;box-shadow:none}
#v-log .exrow.editing input,#v-log .exrow.editing select,#v-log .exrow.editing textarea,
#v-log .exrow.editing .repselect-v,
.gp-builder .exrow.editing input,
.gp-builder .exrow.editing select,
.gp-builder .exrow.editing textarea,
.gp-builder .exrow.editing .repselect-v{font-size:16px}
#v-log .exrow.editing .er-rirrow,
.gp-builder .exrow.editing .er-rirrow{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;width:100%;margin-bottom:8px}
#v-log .exrow.editing .rirseg,
.gp-builder .exrow.editing .rirseg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%;box-sizing:border-box}
#v-log .exrow.editing .rirseg button,
.gp-builder .exrow.editing .rirseg button{flex:1 1 0;min-width:0;min-height:32px;padding:3px 0;line-height:20px}
#v-log .exrow.editing .er-sec,
.gp-builder .exrow.editing .er-sec{gap:6px}
#v-log .exrow.editing .er-more,
.gp-builder .exrow.editing .er-more{
 display:flex;align-items:center;flex-wrap:nowrap;gap:6px;width:100%;min-height:32px;
 box-sizing:border-box;padding:4px 8px;line-height:20px;white-space:nowrap
}
#v-log .exrow.editing .er-msum,
.gp-builder .exrow.editing .er-msum{flex:1 1 0;max-width:none;min-width:0;text-align:right}
/* Override the legacy desktop rule that forced details open. */
#v-log .exrow.editing .er-adv,
.gp-builder .exrow.editing .er-adv{display:none!important;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:6px;align-items:start}
#v-log .exrow.editing .er-adv.on,
.gp-builder .exrow.editing .er-adv.on{display:grid!important}
#v-log .exrow.editing .er-adv>select,
.gp-builder .exrow.editing .er-adv>select{width:100%;min-width:0;max-width:100%;height:36px;min-height:36px;padding:5px 7px;box-sizing:border-box}
#v-log .exrow.editing .er-adv>.er-tempo,
.gp-builder .exrow.editing .er-adv>.er-tempo{grid-column:1/-1}
#v-log .exrow.editing .er-adv>.painbtn,
.gp-builder .exrow.editing .er-adv>.painbtn{grid-column:1/-1;justify-self:start;min-height:28px;padding:3px 8px;line-height:20px}
#v-log .exrow.editing .log-row-note,
.gp-builder .exrow.editing .log-row-note{grid-column:1/-1;width:100%;min-width:0}
#v-log .exrow.editing .log-row-note textarea,
.gp-builder .exrow.editing .log-row-note textarea{box-sizing:border-box;height:44px;min-height:44px;padding:5px 8px;line-height:20px;resize:vertical}
/* Match Food Log: keep search and numeric fields full width; edit actions share a separate bottom row. */
#v-log .exrow.editing .er-donerow,
.gp-builder .exrow.editing .er-donerow{
 display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:8px;align-items:center;
 width:100%;min-width:0
}
#v-log .exrow.editing .er-donerow>.gp-log-haptic,
.gp-builder .exrow.editing .er-donerow>.gp-log-haptic{width:100%;min-width:0}
#v-log .exrow.editing .er-donerow>.ll-done,
.gp-builder .exrow.editing .er-donerow>.ll-done{width:100%;min-height:28px;padding:3px 10px;line-height:20px;border-radius:9px}
@media(max-width:390px){
 #v-log .exrow.editing .er-cols,#v-log .exrow.editing .er-grid,
.gp-builder .exrow.editing .er-cols,
.gp-builder .exrow.editing .er-grid{grid-template-columns:44px minmax(0,1.2fr) minmax(0,1fr)}
 #v-log .exrow.editing .repselect-v,
.gp-builder .exrow.editing .repselect-v{padding-left:5px;padding-right:21px}
 #v-log .exrow.editing .repselect::after,
.gp-builder .exrow.editing .repselect::after{right:7px}
}
@media(min-width:900px){
 #v-log .exrow.editing .er-adv,
.gp-builder .exrow.editing .er-adv{grid-template-columns:repeat(3,minmax(0,1fr))}
 #v-log .exrow.editing .er-adv>.er-tempo,
.gp-builder .exrow.editing .er-adv>.er-tempo{grid-column:auto}
}


/* Gut editor: balanced symptom fields and compact, full-width actions. */
#v-log .gutrow.editing{
 position:relative;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
 grid-template-areas:"time bristol" "symptoms symptoms" "note note" "foot foot";
 gap:10px 8px;padding:10px;align-items:start;background:transparent
}
#v-log .gutrow.editing .ar-f>small{
 font-size:11px;font-weight:600;line-height:16px;letter-spacing:0;text-transform:none;margin:0 0 4px
}
#v-log .gutrow.editing .ar-f>input,#v-log .gutrow.editing .ar-f>select{
 width:100%;min-width:0;max-width:100%;box-sizing:border-box;height:38px;min-height:38px;
 padding:5px 8px;font-size:16px;line-height:24px;border-radius:10px
}
#v-log .gutrow.editing .gr-time>input{padding-left:5px;padding-right:5px}
#v-log .gutrow.editing .gr-bristol>small{padding-right:28px}
#v-log .gutrow.editing .gr-del{position:absolute;grid-area:auto;right:8px;top:1px;margin:0}
#v-log .gutrow.editing .gr-symptoms{grid-area:symptoms;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0}
#v-log .gutrow.editing .gr-symptoms small{white-space:nowrap}
#v-log .gutrow.editing .gr-range{display:block;font-size:10px;font-weight:400;line-height:13px}
#v-log .gutrow.editing .gr-symptoms input{text-align:center;font-variant-numeric:tabular-nums}
#v-log .gutrow.editing .gut-edit-foot{display:block;min-width:0}
#v-log .gutrow.editing .gut-edit-foot>.ll-done{width:100%;min-height:28px;padding:3px 10px;line-height:20px;border-radius:9px}

/* Meal AI shortcut: 70/30 on phones, bounded on desktop. */
#v-log .mgfoot{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:8px;width:min(100%,520px)}
#v-log .mgfoot>.btn{min-width:0;width:100%;min-height:28px;white-space:nowrap}
#v-log .mgfoot>.meal-ai-add{display:flex;align-items:center;justify-content:center;gap:4px;min-height:28px;padding:3px 10px;line-height:20px;font-size:12px;border-radius:9px;background:var(--surface);border:1px solid var(--line);color:var(--ink)}
#v-log .mgfoot>.meal-ai-add .ai-quick-mark{font:300 14px/1 var(--disp);letter-spacing:.23em;text-indent:.23em}

/* Training headers: a full name row, then compact time and session actions. */
#v-log .seshd{
 display:grid;grid-template-columns:minmax(0,1fr);
 gap:6px;padding-right:0;margin-bottom:8px;align-items:center
}
#v-log .sess-title-row,#v-log .sess-meta-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-width:0}
#v-log .sess-title-row{grid-template-columns:minmax(0,1fr) 26px}
#v-log .seshd .sname{
 width:100%;min-width:0;box-sizing:border-box;height:30px;min-height:30px;
 padding:2px 8px;font-size:16px;line-height:24px;border-radius:10px
}
#v-log .seshd select.sname{padding-right:26px}
#v-log .seshd .sess-del{order:0;position:static;margin:0;justify-self:end}
#v-log .seshd .th-time{order:0;width:min(100%,130px);min-width:0}
#v-log .seshd input[type=time]{
 width:100%;min-width:0;box-sizing:border-box;height:30px;min-height:30px;
 padding:2px 6px;font-size:16px;line-height:24px
}
#v-log .seshd .mg-end{justify-self:end;gap:6px}
#v-log .seshd .chip{padding:3px 7px;font-size:11px;line-height:18px;white-space:nowrap}
#v-log .seshd .sess-copy{margin:0}

/* The exercise picker occupies the entire name row, including on narrow phones. */
#v-log .exrow.editing .er-line,
.gp-builder .exrow.editing .er-line{display:block;padding-right:0}
#v-log .exrow.editing .er-name,
.gp-builder .exrow.editing .er-name{min-width:0;width:100%}
#v-log .exrow.editing .er-name>input,
.gp-builder .exrow.editing .er-name>input{width:100%;min-width:0;box-sizing:border-box}
#v-log .exrow.editing .er-donerow>.er-x,
.gp-builder .exrow.editing .er-donerow>.er-x{
 grid-column:2;justify-self:end;position:static;margin:0;
 width:36px;height:36px;min-width:36px;align-self:center
}

/* Saved sets use tighter spacing while keeping edit/remove controls readable. */
#v-log .log-exercise,
.gp-builder .log-exercise{margin:6px 0;padding:8px 10px 7px}
#v-log .log-ex-head,
.gp-builder .log-ex-head{gap:8px;margin-bottom:3px}
#v-log .log-ex-title,
.gp-builder .log-ex-title{font-size:var(--saved-item-font-size);line-height:1.3}
#v-log .log-prescription,
.gp-builder .log-prescription{padding:4px 0;gap:8px}
#v-log .log-rx-bar,
.gp-builder .log-rx-bar{min-height:28px}
#v-log .log-rx-main,
.gp-builder .log-rx-main{font-size:12.5px;line-height:1.3}
#v-log .log-ex-actions,
.gp-builder .log-ex-actions{margin-top:4px}

/* Reorder whole exercises from one session-level control. */
#v-log .sess-actions{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:8px;width:100%;margin-top:8px}
#v-log .sess-actions>.gp-log-haptic{width:100%;min-width:0}
#v-log .sess-actions .btn{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;box-sizing:border-box;min-height:28px;margin:0;padding:3px 10px;font-size:12px;line-height:20px;border-radius:9px;white-space:nowrap}
#v-log .sess-actions .sess-order{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
#v-log .sess-actions .sess-order:disabled{opacity:.4;cursor:default}
#v-log .sess-actions .sess-order svg{display:block;flex:none}
.log-order-sheet{width:min(560px,calc(100vw - 24px));max-height:86vh;display:flex;flex-direction:column;gap:10px}
.log-order-sheet h1{font-size:19px}
.log-order-help{font-size:12px;line-height:1.4;margin:5px 0 0}
.log-order-list{overflow:auto;min-height:0;padding:0 10px;border:1px solid var(--line);border-radius:12px}
.log-order-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.log-order-row:last-child{border-bottom:0}
.log-order-row>b{font-size:var(--saved-item-font-size);line-height:1.4;overflow-wrap:anywhere}
.log-order-number{font:600 12px var(--body);font-variant-numeric:tabular-nums;color:var(--mut)}
.log-order-actions{display:flex;gap:4px}
.log-order-move{width:38px;min-width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:600 18px var(--body);cursor:pointer}
.log-order-move:disabled{opacity:.3;cursor:default}
.log-order-done{align-self:flex-end;flex:none}


/* Training header: title, Guide, and collapse only. */
#v-log .gp-log-fold[data-log-sec="training"]>.gp-summary{display:flex;align-items:center;gap:8px}
#v-log .gp-log-fold[data-log-sec="training"]>.gp-summary .gp-copy{flex:1;min-width:0}
#v-log .gp-log-fold[data-log-sec="training"] .gp-training-guide{flex:none;min-height:34px;padding:6px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font:600 12px/1.2 var(--body);cursor:pointer}
#v-log .gp-log-fold[data-log-sec="training"] .gp-training-guide:active{transform:scale(.97)}
#v-log .gp-log-fold[data-log-sec="training"]>.gp-summary .gp-chev{flex:none}
@media(max-width:390px){#v-log .gp-log-fold[data-log-sec="training"] .gp-training-guide{padding-inline:8px}}
#goatGuide{position:fixed;inset:0;z-index:10000;background:var(--bg);color:var(--ink);display:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
#goatGuide.on{display:block}
#goatGuide .gg-head{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:12px;padding:max(12px,env(safe-area-inset-top)) 15px 12px;background:var(--surface);border-bottom:1px solid var(--line)}
#goatGuide .gg-head>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
#goatGuide .gg-head strong{font-size:16px}
#goatGuide .gg-head small{font-size:12px;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#goatGuide .gg-close{width:38px;height:38px;border:1px solid var(--line);background:var(--soft);border-radius:12px;font-size:27px;color:var(--ink);cursor:pointer}
#goatGuide .gg-main{max-width:660px;margin:auto;padding:18px 16px max(36px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}
#goatGuide .gg-progress,#goatGuide .gg-current{display:flex;justify-content:space-between;gap:8px;color:var(--mut);font-size:12px}
#goatGuide .gg-track{height:6px;background:var(--track);border-radius:999px;overflow:hidden}
#goatGuide .gg-track>span{display:block;height:100%;background:var(--acc);border-radius:999px}
#goatGuide h2{font-size:22px;line-height:1.25;letter-spacing:-.025em}
#goatGuide .gg-cues{font-size:13px;color:var(--mut)}
#goatGuide .gg-media{min-height:150px;background:var(--soft);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;place-items:center;font-size:13px;color:var(--mut);text-align:center}
#goatGuide .gg-media .ex-preview-surface{width:100%;max-height:42vh;overflow:hidden}
#goatGuide .gg-media .ex-preview-surface img,#goatGuide .gg-media .ex-preview-surface video{display:block;width:100%;max-height:42vh;object-fit:contain}
#goatGuide .gg-media .ex-preview-controls{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:8px}
#goatGuide .gg-media .ex-preview-status,#goatGuide .gg-media .ex-preview-credit{padding:4px 10px;font-size:11px}
#goatGuide .gg-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#goatGuide .gg-fields label{font-size:12px;color:var(--mut);display:flex;flex-direction:column;gap:5px}
#goatGuide .gg-fields input{width:100%;min-width:0;height:48px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 10px;font-size:16px}
#goatGuide .gg-prescription,#goatGuide .gg-foot{color:var(--mut);font-size:12px}
#goatGuide .gg-primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:51px;border-radius:12px;font-size:15px}
#goatGuide .gg-secondary{min-height:42px}
#goatGuide .gg-rest{display:flex;flex-direction:column;align-items:center;gap:17px;margin:12px 0;padding:30px 18px;border:1px solid var(--line);background:var(--surface);border-radius:20px}
#goatGuide .gg-eyebrow{font-weight:600;color:var(--mut);letter-spacing:.06em;text-transform:uppercase}
#goatGuide .gg-clock{font-variant-numeric:tabular-nums;font-size:clamp(54px,14vw,84px);line-height:1;letter-spacing:-.07em;font-weight:700}
#goatGuide .gg-clock.gg-zero{color:var(--ok)}
#goatGuide .gg-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
#goatGuide .gg-rest>.gg-primary{max-width:380px}
#goatGuide .gg-finish{padding:60px 10px;text-align:center;display:flex;flex-direction:column;gap:9px}
@media(max-width:390px){#goatGuide .gg-fields{gap:5px}}
@media(min-width:700px){#goatGuide .gg-main{padding-top:26px}}

body:has(#goatGuide.on) .toast{z-index:10002}


/* Pre-workout selection overlay, separate from the full-screen workout. */
#goatGuideSetup{display:none;position:fixed;inset:0;z-index:10001;background:rgba(8,14,24,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));align-items:center;justify-content:center}
#goatGuideSetup.on{display:flex}
#goatGuideSetup .gg-setup-panel{width:min(100%,640px);max-height:min(90dvh,820px);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
#goatGuideSetup .gg-setup-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
#goatGuideSetup .gg-setup-head h2{font-size:18px;line-height:1.3;letter-spacing:-.02em}
#goatGuideSetup .gg-setup-head span{display:block;font-size:12px;color:var(--mut);margin-top:3px}
#goatGuideSetup .gg-setup-x{flex:none;width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--ink);font-size:23px}
#goatGuideSetup .gg-setup-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px}
#goatGuideSetup .gg-setup-body h3{font-size:16px}
#goatGuideSetup .gg-setup-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:var(--soft);border:1px solid var(--line);border-radius:13px;margin-bottom:14px}
#goatGuideSetup .gg-setup-modes button{font:600 13px var(--body);min-height:39px;border:0;border-radius:9px;background:transparent;color:var(--mut)}
#goatGuideSetup .gg-setup-modes button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
#goatGuideSetup .gg-plan-list{display:flex;flex-direction:column;gap:0}
#goatGuideSetup .gg-plan-row{display:flex;align-items:flex-start;gap:12px;padding:12px 3px;border-bottom:1px solid var(--line)}
#goatGuideSetup .gg-plan-row:last-child{border-bottom:0}
#goatGuideSetup .gg-plan-num{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:var(--soft);color:var(--mut);font-size:12px;font-weight:700}
#goatGuideSetup .gg-plan-row>div{min-width:0}
#goatGuideSetup .gg-plan-row strong{display:block;font-size:13px;line-height:1.45}
#goatGuideSetup .gg-plan-row small{display:block;margin-top:4px;font-size:12px;color:var(--mut)}
#goatGuideSetup .gg-setup-rows{display:flex;flex-direction:column;gap:10px}
#goatGuideSetup .gg-edit-row{padding:12px;background:var(--soft);border:1px solid var(--line);border-radius:14px}
#goatGuideSetup .gg-setup-rowhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px;color:var(--mut);font-size:12px;font-weight:600}
#goatGuideSetup .gg-setup-rowhead button{width:28px;height:28px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--bad);font-size:18px}
#goatGuideSetup .gg-name-cell{position:relative}
#goatGuideSetup input,#goatGuideSetup select{width:100%;min-width:0;min-height:39px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:7px 9px;font-size:16px}
#goatGuideSetup .gg-match-list{position:relative;z-index:2}
#goatGuideSetup .gg-match{width:100%;display:block;text-align:left;border:1px solid var(--line);border-top:0;background:var(--surface);color:var(--ink);padding:8px 10px;font-size:13px}
#goatGuideSetup .gg-plan-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}
#goatGuideSetup .gg-plan-fields label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;color:var(--mut)}
#goatGuideSetup .gg-add-ex{width:100%;margin-top:12px;min-height:39px}
#goatGuideSetup .gg-setup-footer{flex:none;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}
#goatGuideSetup .gg-setup-footer button{display:flex;align-items:center;justify-content:center;width:100%;min-height:47px;border-radius:11px}
#goatGuideSetup .gg-setup-status{margin-top:12px;color:var(--mut);font-size:13px}
@media(max-width:390px){#goatGuideSetup .gg-plan-fields{grid-template-columns:repeat(2,minmax(0,1fr))}#goatGuideSetup .gg-setup-head{padding:12px}}


/* Full-screen workout setup and editable training workbench. */
#goatGuideSetup{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;overflow-y:auto}
#goatGuideSetup.on{display:block}
#goatGuideSetup .gg-setup-panel{width:100%;max-width:none;max-height:none;min-height:100dvh;overflow:visible;margin:0;border:0;border-radius:0;box-shadow:none;background:var(--bg)}
#goatGuideSetup .gg-setup-head,#goatGuideSetup .gg-setup-footer{width:100%;background:var(--surface)}
#goatGuideSetup .gg-setup-head>div,#goatGuideSetup .gg-setup-body,#goatGuideSetup .gg-setup-footer>button{max-width:700px}
#goatGuideSetup .gg-setup-body{width:100%;max-width:700px;flex:1;overflow:visible;margin:0 auto;padding:20px 16px}
#goatGuideSetup .gg-setup-footer{position:sticky;bottom:0;z-index:3;display:flex;justify-content:center;padding-bottom:max(14px,env(safe-area-inset-bottom))}
#goatGuideSetup .gg-setup-footer button{max-width:670px}
#goatGuideSetup .gg-setup-head{position:sticky;top:0;z-index:3;padding-top:max(16px,env(safe-area-inset-top));justify-content:space-between}
#goatGuideSetup .gg-setup-modes{margin-top:8px}
#goatGuide .gg-head{gap:12px}
#goatGuide .ggw-clock{flex:none;font-size:15px;font-variant-numeric:tabular-nums;font-weight:700;padding:9px 11px;background:var(--soft);border-radius:10px}
#goatGuide .ggw-main{max-width:800px;gap:15px;padding-bottom:max(85px,env(safe-area-inset-bottom))}
#goatGuide .ggw-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--mut);font-size:13px}
#goatGuide .ggw-textbtn{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:9px 11px;font-size:13px}
#goatGuide .ggw-exercises{display:flex;gap:8px;overflow-x:auto;padding:3px 0 11px;scroll-snap-type:x proximity}
#goatGuide .ggw-exercise-tab{flex:0 0 min(65vw,220px);scroll-snap-align:start;display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;min-height:70px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:12px;font-size:13px}
#goatGuide .ggw-exercise-tab strong{font-weight:700;line-height:1.2}
#goatGuide .ggw-exercise-tab span{color:var(--mut);font-variant-numeric:tabular-nums}
#goatGuide .ggw-exercise-tab.on{border:2px solid var(--acc);padding:11px;background:var(--soft)}
#goatGuide .ggw-focus-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
#goatGuide .ggw-focus-top h2{font-size:21px;margin:0;line-height:1.28}
#goatGuide .ggw-commands{display:flex;gap:5px;flex:none}
#goatGuide .ggw-commands button,#goatGuide .ggw-plan-controls button,#goatGuide .ggw-rest button{min-height:33px;min-width:35px;padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:12px}
#goatGuide .ggw-commands button:disabled,#goatGuide .ggw-timing button:disabled{opacity:.4}
#goatGuide .ggw-media{width:100%;min-height:135px;max-height:50vh;overflow:hidden;border-radius:15px;border:1px solid var(--line);background:var(--soft);display:grid;place-items:center}
#goatGuide .ggw-media .ex-preview-surface{max-height:37vh;width:100%}
#goatGuide .ggw-media img,#goatGuide .ggw-media video{width:100%;max-height:37vh;object-fit:contain}
#goatGuide .ggw-media .ex-preview-controls{display:flex;justify-content:center;gap:8px;padding:8px}
#goatGuide .ggw-media .ex-preview-status,#goatGuide .ggw-media .ex-preview-credit{font-size:11px;text-align:center}
#goatGuide .ggw-plan-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;color:var(--mut);font-size:13px}
#goatGuide .ggw-plan-controls span{margin-right:auto}
#goatGuide .ggw-compact-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#goatGuide .ggw-compact-fields label,#goatGuide .ggw-details-grid label{display:flex;flex-direction:column;gap:5px;color:var(--mut);font-size:12px;min-width:0}
#goatGuide .ggw-compact-fields input,#goatGuide .ggw-details-grid input,#goatGuide .ggw-details-grid select,#goatGuide .ggw-details-grid textarea,#goatGuide .ggw-add input,#goatGuide .ggw-replace input{width:100%;min-width:0;min-height:43px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:16px}
#goatGuide .ggw-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:10px}
#goatGuide .ggw-details-grid .ggw-wide{grid-column:1/-1}
#goatGuide .ggw-details-grid textarea{min-height:70px;resize:vertical}
#goatGuide .ggw-details-grid .ggw-check{flex-direction:row;align-items:center}
#goatGuide .ggw-details-grid .ggw-check input{min-height:18px;width:18px}
#goatGuide .ggw-session,#goatGuide .ggw-prescription,#goatGuide .ggw-replace,#goatGuide .ggw-record-details{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px}
#goatGuide .ggw-session>summary,#goatGuide .ggw-prescription>summary,#goatGuide .ggw-replace>summary,#goatGuide .ggw-record-details>summary{font-weight:600;font-size:13px;cursor:pointer}
#goatGuide .ggw-timing{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#goatGuide .ggw-timing span{font-size:24px;font-weight:700;font-variant-numeric:tabular-nums}
#goatGuide .ggw-timing .btn{min-height:42px}
#goatGuide .ggw-actionbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:8px}
#goatGuide .ggw-actionbar button{min-height:48px;padding:9px;font-size:13px;white-space:normal}
#goatGuide .ggw-recorded{display:flex;flex-direction:column;gap:9px}
#goatGuide .ggw-recorded h3,#goatGuide .ggw-add h3{font-size:14px}
#goatGuide .ggw-record{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
#goatGuide .ggw-record-top{display:flex;align-items:center;gap:10px;font-size:12px}
#goatGuide .ggw-record-top span{flex:1;color:var(--mut)}
#goatGuide .ggw-record-top button{border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--bad);font-size:16px;min-width:30px;min-height:30px}
#goatGuide .ggw-record-details{background:var(--surface)}
#goatGuide .ggw-add{display:flex;flex-direction:column;gap:8px;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:13px}
#goatGuide .ggw-match{display:block;text-align:left;width:100%;min-height:36px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);padding:8px 10px;font-size:12px}
#goatGuide .ggw-rest{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:12px}
#goatGuide .ggw-rest strong{font-variant-numeric:tabular-nums;font-size:19px}
#goatGuide .ggw-rest span{font-size:12px;color:var(--mut)}
#goatGuide .ggw-rest div{display:flex;gap:8px}
#goatGuide .ggw-footer{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
#goatGuide .ggw-footer button{min-height:52px;padding:10px;font-size:13px;white-space:normal}
#goatGuide .ggw-complete-note{padding:10px;border-radius:10px;background:var(--soft);color:var(--mut);font-size:13px}
#goatGuide .ggw-all-exercise{min-height:39px;font-size:13px}
@media(max-width:420px){#goatGuide .ggw-focus-top{flex-direction:column}#goatGuide .ggw-commands{align-self:flex-end}#goatGuide .ggw-details-grid{gap:7px}#goatGuide .ggw-actionbar{grid-template-columns:1fr 1fr}}


/* Shared exercise action component, including the iPhone haptic wrapper. */
.gp-exercise-add,.gp-log-haptic:has(>.gp-exercise-add){width:100%;min-width:0}
.gp-log-haptic:has(>.gp-exercise-add){display:flex}
.gp-exercise-add{display:flex;align-items:center;justify-content:center;min-height:28px;padding:3px 10px;line-height:20px;font-size:12px;border-radius:9px;white-space:nowrap}
.exercise-field-readout{display:flex;align-items:center;justify-content:center;min-width:0;min-height:38px;padding:5px 3px;font:500 12px/1.4 var(--body);color:var(--mut);text-align:center;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}

/* Read-only daily totals. Update text in place so typing and focus stay intact. */
#v-log .gp-log-count{display:block;color:var(--mut);font:500 10px/1.4 var(--body);font-variant-numeric:tabular-nums}
#v-log .gp-log-count[hidden]{display:none}

/* One quiet confirmation after a set is recorded, never on an ordinary re-render. */
@keyframes gpRecordedConfirm{
  0%{border-color:var(--ok);box-shadow:0 0 0 0 var(--okSoft)}
  45%{border-color:var(--ok);box-shadow:0 0 0 3px var(--okSoft)}
  100%{border-color:var(--line);box-shadow:none}
}
@keyframes gpRecordedCount{from{color:var(--ok)}to{color:var(--mut)}}
#goatGuide .ggw-record.gp-record-confirmed{animation:gpRecordedConfirm 650ms cubic-bezier(.22,.68,0,1) both}
#goatGuide .ggw-summary.gp-record-confirmed>span{animation:gpRecordedCount 550ms ease-out both}
@media(prefers-reduced-motion:reduce){
 #goatGuide .ggw-record.gp-record-confirmed,
 #goatGuide .ggw-summary.gp-record-confirmed>span{animation:none}
}


/* Cardio entries share the contained card layout used by Meals and Training. */
#v-log .act-summary,#v-log .log-auto-step,#v-log .actrow.editing{
 padding:11px 12px;margin:0 0 12px;border:1px solid var(--line);
 border-left:3px solid var(--acc);border-radius:13px;background:var(--soft2);
 box-shadow:0 1px 3px rgba(20,60,90,.05);min-width:0
}
#v-log .act-summary{display:block}
#v-log .act-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
#v-log .log-auto-step-title{display:flex;align-items:center;gap:7px;min-width:0}
#v-log .log-auto-step-title>.infob{flex:none}
#v-log .act-summary-head>.li-name,#v-log .log-auto-step>.li-name,#v-log .log-auto-step-title>.li-name{
 min-width:0;font-size:var(--saved-item-font-size);font-weight:600;line-height:1.4;overflow-wrap:anywhere
}
#v-log .act-summary .li-act{display:flex;flex:none;gap:5px;user-select:none}
#v-log .act-summary .log-summary-meta{font:600 12px/1.4 var(--body);color:var(--mut);overflow-wrap:anywhere}
#v-log .ar-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
#v-log .act-summary>.ar-meta{margin-top:6px}
#v-log .ar-meta>.tag{min-width:0;margin:0;white-space:normal;overflow-wrap:anywhere}
#v-log .ar-meta>.chip{flex:none;white-space:nowrap;margin:0}
#v-log .actrow>.ar-meta{grid-area:meta}
#v-log .actrow>.ar-foot{display:block}
#v-log .actrow .ar-sub{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.62fr)}
#v-log .actrow .ar-f>input,#v-log .actrow .ar-f>select{width:100%;min-width:0;box-sizing:border-box}
@media(max-width:1024px){#v-log .actrow input,#v-log .actrow select{font-size:16px}}

