/* Button dimensions only. Keep the existing colors, borders, shadows and artwork. */
:root {
  --pp-button-height: 44px;
  --pp-button-small-height: 36px;
  --pp-button-font: 14px;
  --pp-button-small-font: 12px;
}

/* The older brand layer gave every .button a 48/52px minimum, including .small. */
body[data-theme] .button {
  box-sizing: border-box;
  min-height: var(--pp-button-height) !important;
  height: auto !important;
  padding: 9px 16px !important;
  font-size: var(--pp-button-font) !important;
  line-height: 1.35 !important;
  text-align: center;
  white-space: normal;
}
body[data-theme] .button.small {
  min-height: var(--pp-button-small-height) !important;
  padding: 7px 12px !important;
  font-size: var(--pp-button-small-font) !important;
}

/* Buttons that use separate class names share the same regular scale. */
body[data-theme] :is(.hero-login,.play-button,.level-roadmap-button,.pp-mobile-outline,.ppc-plus,.ppc-admin,.pp-folder-toggle) {
  box-sizing: border-box;
  min-height: var(--pp-button-height) !important;
  height: auto !important;
  padding: 9px 16px !important;
  font-size: var(--pp-button-font) !important;
  line-height: 1.35 !important;
}
body[data-theme] .composer button {
  min-height: var(--pp-button-height) !important;
  padding: 9px 14px !important;
  font-size: var(--pp-button-font) !important;
  line-height: 1.35 !important;
}
body[data-theme] .pco-pay {
  min-height: var(--pp-button-height) !important;
  padding: 9px 16px !important;
  font-size: var(--pp-button-font) !important;
}
body[data-theme] .pco-pay b { font-size: var(--pp-button-font) !important; }

/* Compact actions retain their purpose without expanding to 52px on phones. */
body[data-theme] :is(.ppc-ghost,.reaction,.results-motion-toggle,.pp-dash-pills button) {
  box-sizing: border-box;
  min-height: var(--pp-button-small-height) !important;
  height: auto !important;
  padding: 7px 12px !important;
  font-size: var(--pp-button-small-font) !important;
  line-height: 1.35 !important;
}
body[data-theme] :is(.lesson-link,.ppc-profile,.ppc-sugg button,.ppc-unknown button,.pp-resource-menu button,.account-popover > a,.account-popover > button) {
  box-sizing: border-box;
  min-height: var(--pp-button-height) !important;
  height: auto !important;
  padding: 9px 12px !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}

/* Filters and segmented choices may grow when translated labels wrap. */
body[data-theme] :is(.chip,.ppc-eat,.ppc-seg button,.ppc-tabs button) {
  box-sizing: border-box;
  min-height: var(--pp-button-small-height) !important;
  height: auto !important;
  padding: 6px 12px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  white-space: normal;
}
body[data-theme] .ppc-chip {
  box-sizing: border-box;
  min-height: 48px !important;
  height: auto !important;
  padding: 7px 12px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  align-items: flex-start;
  text-align: left;
}
body[data-theme] :is(.text-link,button.text-link,a.text-link,.pco-link) {
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

/* Header and icon-only controls have deliberate square hit areas. */
body[data-theme]>header :is(.profile,.mode-toggle,.account-menu > summary) {
  box-sizing: border-box;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
}
body[data-theme]>header .button.small { min-height: 44px !important; }
body[data-theme] :is(.pp-cat-btn,.pp2-sw,.ppc-log li button) {
  box-sizing: border-box;
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
}
body[data-theme] .lesson-complete-icon {
  width: 36px !important;
  min-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  flex-basis: 36px !important;
}
body[data-theme] .calendar-head .button {
  box-sizing: border-box;
  flex: 0 0 44px;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
}

/* The food calculator and live lesson are separate HTML documents. */
body.calculator-page :is(.calc-btn,.menu-btn,.lookup-btn,.log-add-btn-wide,.ai-photo-btn) {
  box-sizing: border-box;
  min-height: var(--pp-button-height) !important;
  height: auto !important;
  padding: 9px 14px !important;
  font-size: var(--pp-button-font) !important;
  line-height: 1.35 !important;
}
body.calculator-page :is(.shuffle-btn,.eaten-toggle,.seg button) {
  box-sizing: border-box;
  min-height: var(--pp-button-small-height) !important;
  height: auto !important;
  padding: 7px 10px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}
body.calculator-page .goal-btn {
  box-sizing: border-box;
  min-height: 52px !important;
  height: auto !important;
  padding: 7px 6px !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}
body.calculator-page :is(.water-btn,.log-add-btn,.burn-add-btn) {
  box-sizing: border-box;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
}
body.calculator-page .log-del {
  box-sizing: border-box;
  width: 28px;
  height: 28px;
  padding: 0 !important;
}
body.calculator-page :is(.water-reset,.tracker-reset) {
  min-height: 0;
  padding: 0;
  font-size: 13px !important;
  line-height: 1.45 !important;
}
body.live-page :is(.chat-input button,.live-admin button) {
  box-sizing: border-box;
  min-height: var(--pp-button-height) !important;
  height: auto !important;
  padding: 9px 14px !important;
  font-size: var(--pp-button-font) !important;
  line-height: 1.35 !important;
}
body.live-page .live-theme {
  width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
}

@media (max-width: 800px) {
  :root { --pp-button-small-height: 40px; }
  body[data-theme] .button.small { min-height: 40px !important; }
  body[data-theme] :is(.chip,.ppc-eat,.ppc-seg button,.ppc-tabs button) { min-height: 40px !important; }
  body[data-theme] .ppc-chip { min-height: 48px !important; }
  body[data-theme] .calendar-grid .event-link {
    box-sizing: border-box;
    display: block;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow-wrap: normal;
    padding: 4px 3px;
    font-size: 10px;
    line-height: 1.3;
  }
}

/* Keep the wide admin users table inside its own horizontal scroller. */
@media (max-width: 760px) {
  body.admin-portal :is(#app,.admin-workspace,.admin-content,.pp-dashboard,.pp-dash-members) {
    min-width: 0;
    max-width: 100%;
  }
  body.admin-portal .admin-workspace { grid-template-columns: minmax(0,1fr); }
  body.admin-portal .pp-dash-table {
    display: block;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
  }
  body.admin-portal .pp-dash-table table {
    width: 740px;
    min-width: 740px;
  }
}
