input[aria-invalid="true"] { border-color:#ff7c7c !important; box-shadow:0 0 0 3px rgba(255,124,124,.18) !important; }
body.design-refresh .eyebrow { color:#b8c6d2; }
.modal-backdrop > [role="dialog"] { max-height:min(92dvh,900px); overflow-y:auto; overscroll-behavior:contain; }
.manual-nutrient-grid,.advanced-metrics-grid { grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr)); }
@media (max-width:760px) {
  .modal-backdrop { align-items:flex-start; overflow-y:auto; padding-block:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-bottom)); }
  .modal-backdrop > [role="dialog"] {
    width:min(100%,calc(100vw - 20px));
    max-height:calc(100dvh - max(28px, env(safe-area-inset-top) + env(safe-area-inset-bottom) + 16px));
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y pinch-zoom;
    scroll-padding-bottom:calc(28px + env(safe-area-inset-bottom));
  }
  .manual-nutrient-grid,.advanced-metrics-grid { grid-template-columns:minmax(0,1fr); }
  .remove-set,.athlete-set-done,.meal-item button,.pt-info-button,.stock-avatar { min-width:44px; min-height:44px; }

  /* The program builder uses one iPhone scroller. The earlier flex rule made
     the form a nested scroller and collapsed Performance numbers to 2px. */
  #program-modal > .program-modal {
    display:block !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y pinch-zoom;
    scroll-padding-bottom:calc(32px + env(safe-area-inset-bottom));
  }
  #program-modal > .program-modal > form {
    display:grid !important;
    flex:none !important;
    overflow:visible !important;
    padding-right:0;
  }
  #program-modal details.advanced-metrics {
    min-height:58px;
    flex-shrink:0;
  }
}

/* Usability release: workout controls, import review, mobile History, and sync state. */
.workout-timer{display:flex;align-items:center;gap:12px}.workout-timer strong{margin-right:auto}.workout-pause{min-height:38px;padding:0 14px;border:1px solid #415669;border-radius:9px;background:#111a22;color:#dce9f3;font-weight:800}.workout-pause[aria-pressed="true"]{border-color:var(--interface-accent);color:var(--interface-accent)}
.athlete-rest-setting{display:grid;gap:4px;justify-items:end}.athlete-rest-setting select{min-height:32px;border:1px solid #3b4e5d;border-radius:7px;background:#101820;color:#dce8f1;padding:4px 7px;font-size:11px}
.import-review{display:grid;gap:12px;max-height:48vh;overflow:auto;margin:12px 0;padding:12px;border:1px solid #3a4c5d;border-radius:12px;background:#0e151c}.import-review-head{display:grid;gap:3px}.import-review-head span{color:#91a2b0;font-size:11px}.import-review section{display:grid;gap:8px;padding:10px;border:1px solid #2e3d49;border-radius:9px}.import-day-title,.import-review [data-import-name]{width:100%;min-height:40px;border:1px solid #3b4c59;border-radius:7px;background:#121b23;color:#f4f8fb;padding:8px}.import-review article{display:grid;gap:7px;padding:8px;border-radius:7px;background:#ffffff05}.import-review article>label{display:flex;gap:7px;align-items:center}.import-review article>div{display:grid;gap:5px}.import-review article>div label{display:grid;grid-template-columns:48px 1fr 1fr;align-items:center;gap:6px;color:#90a2b1;font-size:10px}.import-review article input[type="number"]{min-width:0;width:100%;padding:7px;border:1px solid #344653;border-radius:6px;background:#0d141a;color:#fff}.import-unparsed{display:grid;gap:5px;padding:10px;border-left:3px solid #e5b84d;background:#e5b84d10}.import-unparsed code{white-space:pre-wrap;color:#e7c979;font-size:10px}
.history-item.selected{border-color:var(--interface-accent);background:var(--interface-accent-soft)}.archive-detail-back{display:none;margin:0 0 12px;padding:8px 0;border:0;background:transparent;color:var(--interface-accent);font-weight:800}
.barcode-recovery{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}.barcode-recovery[hidden]{display:none}.barcode-recovery>button,.barcode-recovery label button{min-height:38px;border:1px solid #405363;border-radius:8px;background:#15202a;color:#d9e6f0;padding:7px 10px;font-weight:700}.barcode-recovery label{display:grid;grid-template-columns:1fr auto;gap:6px;width:100%}.barcode-recovery label[hidden]{display:none}.barcode-recovery input{min-width:0;border:1px solid #405363;border-radius:8px;background:#0e151b;color:#fff;padding:9px;font-size:16px}
.cloud-state-badge{display:inline-flex;align-items:center;gap:6px;margin:5px 0 10px;padding:6px 9px;border-radius:999px;background:#34414c;color:#dce7ee;font:800 10px "DM Sans"}.cloud-state-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:#a9b4bd}.cloud-state-badge[data-state="synced"]::before{background:#48c77b}.cloud-state-badge[data-state="syncing"]::before{background:#f0bb45}.cloud-state-badge[data-state="offline"]::before,.cloud-state-badge[data-state="error"]::before{background:#ef716d}
@media(max-width:800px){.archive-detail-back{display:block}.import-review{max-height:54dvh}.workout-timer{flex-wrap:wrap}.workout-pause{margin-left:auto}}
