/* Owner 18 Sep: larger consent checkboxes; existing copy and state unchanged. */
#consent-dialog #processing-copy,
#consent-dialog .check,
#consent-dialog .check > span,
#consent-dialog .small,
#consent-dialog .voice-native-choice {
  font-size: 14px;
  line-height: 1.5;
}

#consent-dialog .check {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  min-height: 44px;
  box-sizing: border-box;
  margin: 0;
  padding: 10px 0;
  text-align: left;
  font-weight: 400;
  cursor: pointer;
}

#consent-dialog .check > span {
  min-width: 0;
  overflow-wrap: break-word;
}

#consent-dialog .check input[type="checkbox"] {
  appearance: auto;
  box-sizing: border-box;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  margin: 0;
  padding: 0;
  align-self: start;
}

#consent-dialog .check input[type="checkbox"]:focus-visible {
  outline: 3px solid #81aa21;
  outline-offset: 3px;
}

#consent-dialog .voice-native-choice {
  min-height: 44px;
}

/* Owner 18 Sep: laptop footer below first viewport; existing menu centered. */
@media (min-width:768px) and (pointer:fine) {
  #app { padding-bottom:0; }
  #app>footer,
  #app[data-call-active="true"]>footer,
  #app[data-call-active="true"]:has(.conversation:not(.chat-collapsed) .invite-card)>footer {
    position:static;
    inset:auto;
    margin:var(--rosi-footer-reserve) clamp(24px,4vw,72px) 0;
  }
  #app>footer .footer-main {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;
    gap:4px 16px;
  }
  #app>footer .footer-lang { justify-self:start; }
  #app>footer .footer-links { justify-self:center; }
  #app>footer .footer-credit { justify-self:end; min-width:0; }
  #app #chat-collapse > span[aria-hidden] { transform:rotate(-90deg); }
}
/* Native hidden state wins existing responsive display rules. */
#app #help-open[hidden],#app #mobile-help-open[hidden] { display:none!important; }
/* Owner-approved compact logo subtitle, same font/color/header reservation. */
#app .brandbar .claim { margin-top:0; }

/* Owner 18 Sep: larger Rosi and lower call controls, bounded by usable height.
   Keep the same location before/after connection; no call-state geometry jump. */
@media (min-width:768px) and (pointer:fine) {
  #app .controls,
  #app .controls.active,
  #app[data-call-active="true"] .controls.active,
  #app .controls.active:has(#call-whatsapp:not([hidden])) {
    padding-bottom:calc(24px - clamp(0px, calc(20dvh - 112px), 20px));
  }
}
@media (min-width:768px) and (pointer:fine) and (min-height:640px) {
  #app #stage > picture,
  #app #stage > .main-motion-video { scale:1.03; }
}
@media (max-width:767px),(max-width:1024px) and (pointer:coarse) {
  #app .controls,
  #app .controls.active,
  #app[data-call-active="true"] .controls.active,
  #app .controls.active:has(#call-whatsapp:not([hidden])) {
    /* The fixed mobile footer leaves 12px, so retain a safe 4px minimum gap. */
    padding-bottom:calc(12px - clamp(0px, calc(10dvh - 56px), 8px));
  }
}
@media (max-width:767px) and (min-height:600px),
       (max-width:1024px) and (pointer:coarse) and (min-height:600px) {
  #app #stage > picture,
  #app #stage > .main-motion-video { scale:1.05; }
}
