/*
 * RT-Kundentool customer portal / RT UI Styleguide 3.0.0 integration.
 * Neutrality contract:
 * - the RTUI root itself has no typography/color/reset rules;
 * - only explicit RTKT-owned components are styled;
 * - no selector can address Theme/Builder elements outside .rtkt-portal;
 * - existing rtkt-* hooks/classes remain unchanged.
 */

/* Compatibility bridge for RTKT-owned action controls. */
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  display: inline-flex;
  min-height: var(--rtui-control-min-height);
  width: auto;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  gap: var(--rtui-space-2);
  margin: 0;
  padding: var(--rtui-button-padding-y) var(--rtui-button-padding-x);
  color: var(--rtkt-portal-button-color, var(--rtui-color-white));
  background: var(--rtkt-portal-button-background, var(--rtui-color-primary));
  border: 1px solid var(--rtkt-portal-button-border, var(--rtui-color-primary));
  border-radius: var(--rtkt-portal-button-radius, var(--rtui-radius-button));
  box-shadow: none;
  letter-spacing: normal;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  white-space: normal;
  cursor: pointer;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button:hover,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button.is-preview-hover {
  color: var(--rtkt-portal-button-hover-color, var(--rtui-color-white));
  background: var(--rtkt-portal-button-hover-background, var(--rtui-color-primary-dark));
  border-color: var(--rtkt-portal-button-hover-background, var(--rtui-color-primary-dark));
  text-decoration: none;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button-secondary {
  color: var(--rtkt-portal-button-secondary-color, var(--rtui-color-text));
  background: var(--rtkt-portal-button-secondary-background, var(--rtui-color-surface));
  border-color: var(--rtkt-portal-button-secondary-border, var(--rtui-color-border-strong));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button-secondary:hover,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button-secondary.is-preview-hover {
  color: var(--rtkt-portal-button-secondary-hover-color, var(--rtui-color-text));
  background: var(--rtkt-portal-button-secondary-hover-background, var(--rtui-color-background));
  border-color: var(--rtkt-portal-button-secondary-border, var(--rtui-color-primary));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button-danger {
  color: var(--rtui-color-white);
  background: var(--rtui-color-danger);
  border-color: var(--rtui-color-danger);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button-danger:hover {
  color: var(--rtui-color-white);
  background: var(--rtui-color-danger-dark);
  border-color: var(--rtui-color-danger-dark);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button:disabled,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button[aria-disabled="true"] {
  color: var(--rtui-color-disabled-text);
  background: var(--rtui-color-disabled-background);
  border-color: var(--rtui-color-neutral);
  cursor: not-allowed;
  opacity: 1;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-button:focus-visible,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-portal-nav-link:focus-visible,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-text-link:focus-visible {
  outline: var(--rtui-focus-ring-width) solid var(--rtui-color-focus);
  outline-offset: var(--rtui-focus-offset);
}

/* WordPress generates this control without the RTKT action class. It is still
 * safe because only the plugin-owned .rtkt-login form is addressed. */
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-login input[type="submit"] {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
  display: inline-flex;
  min-height: var(--rtui-control-min-height);
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: var(--rtui-button-padding-y) var(--rtui-button-padding-x);
  color: var(--rtkt-portal-button-color, var(--rtui-color-white));
  background: var(--rtkt-portal-button-background, var(--rtui-color-primary));
  border: 1px solid var(--rtkt-portal-button-border, var(--rtui-color-primary));
  border-radius: var(--rtkt-portal-button-radius, var(--rtui-radius-button));
  box-shadow: none;
  letter-spacing: normal;
  text-decoration: none;
  text-shadow: none;
  text-transform: none;
  cursor: pointer;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-login input[type="submit"]:hover {
  color: var(--rtkt-portal-button-hover-color, var(--rtui-color-white));
  background: var(--rtkt-portal-button-hover-background, var(--rtui-color-primary-dark));
  border-color: var(--rtkt-portal-button-hover-background, var(--rtui-color-primary-dark));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-login input[type="submit"]:focus-visible {
  outline: var(--rtui-focus-ring-width) solid var(--rtui-color-focus);
  outline-offset: var(--rtui-focus-offset);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-login input[type="submit"]:disabled {
  color: var(--rtui-color-disabled-text);
  background: var(--rtui-color-disabled-background);
  border-color: var(--rtui-color-neutral);
  cursor: not-allowed;
  opacity: 1;
}

/* Form baseline is limited to RTKT-owned form containers. It does not target
 * arbitrary forms or controls merely because they sit below the root. */
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
  .rtkt-field,
  .rtkt-form-field,
  .rtkt-form-grid,
  .rtkt-filter-bar,
  .rtkt-price-form,
  .rtkt-inline-form,
  .rtkt-hours-form-section,
  .rtkt-login
) :where(
  input[type="text"],
  input[type="email"],
  input[type="url"],
  input[type="password"],
  input[type="number"],
  input[type="search"],
  input[type="tel"],
  input[type="time"],
  input[type="date"],
  input[type="datetime-local"],
  select,
  textarea
) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: var(--rtui-control-min-height);
  margin: 0;
  padding: var(--rtui-field-padding-y) var(--rtui-field-padding-x);
  color: var(--rtkt-portal-field-color, var(--rtui-color-text));
  background: var(--rtkt-portal-field-background, var(--rtui-color-surface));
  border: 1px solid var(--rtkt-portal-field-border, var(--rtui-color-border));
  border-radius: var(--rtkt-portal-field-radius, var(--rtui-radius-field));
  box-shadow: none;
  letter-spacing: normal;
  text-transform: none;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
  .rtkt-field,
  .rtkt-form-field,
  .rtkt-form-grid,
  .rtkt-filter-bar,
  .rtkt-price-form,
  .rtkt-inline-form,
  .rtkt-hours-form-section,
  .rtkt-login
) textarea {
  min-height: var(--rtui-textarea-min-height);
  resize: vertical;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
  .rtkt-field,
  .rtkt-form-field,
  .rtkt-form-grid,
  .rtkt-filter-bar,
  .rtkt-price-form,
  .rtkt-inline-form,
  .rtkt-hours-form-section,
  .rtkt-login
) :where(input,select,textarea):focus-visible {
  border-color: var(--rtui-color-primary-dark);
  outline: var(--rtui-focus-ring-width) solid var(--rtui-color-focus);
  outline-offset: var(--rtui-focus-offset);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
  .rtkt-field,
  .rtkt-form-field,
  .rtkt-form-grid,
  .rtkt-filter-bar,
  .rtkt-price-form,
  .rtkt-inline-form,
  .rtkt-hours-form-section,
  .rtkt-login
) :where(input,select,textarea)[readonly] {
  color: var(--rtui-color-text-muted);
  background: var(--rtui-color-background);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
  .rtkt-field,
  .rtkt-form-field,
  .rtkt-form-grid,
  .rtkt-filter-bar,
  .rtkt-price-form,
  .rtkt-inline-form,
  .rtkt-hours-form-section,
  .rtkt-login
) :where(input,select,textarea):disabled {
  color: var(--rtui-color-disabled-text);
  background: var(--rtui-color-disabled-background);
  border-color: var(--rtui-color-neutral);
  cursor: not-allowed;
  opacity: 1;
}

/* Navigation is a dedicated RTKT component; no theme navigation is addressed. */
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-portal-nav-link {
  box-sizing: border-box;
  color: var(--rtkt-portal-nav-link-color, inherit);
  letter-spacing: normal;
  text-decoration: none;
  text-transform: none;
  text-shadow: none;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-pills .rtkt-portal-nav-link:hover,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-pills .rtkt-portal-nav-link.is-preview-hover {
  color: var(--rtkt-portal-nav-link-hover-color, var(--rtui-color-white));
  background: var(--rtkt-portal-nav-link-hover-background, var(--rtui-color-primary));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-pills .rtkt-portal-nav-link.is-active {
  color: var(--rtkt-portal-nav-link-active-color, var(--rtui-color-white));
  background: var(--rtkt-portal-nav-link-active-background, var(--rtui-color-primary));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-underline .rtkt-portal-nav-link:hover,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-underline .rtkt-portal-nav-link.is-preview-hover {
  color: var(--rtkt-portal-nav-link-hover-color, var(--rtui-color-primary-dark));
  background: transparent;
  border-bottom-color: var(--rtkt-portal-nav-link-hover-background, var(--rtui-color-primary));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-underline .rtkt-portal-nav-link.is-active {
  color: var(--rtkt-portal-nav-link-active-color, var(--rtui-color-primary-dark));
  background: transparent;
  border-bottom-color: var(--rtkt-portal-nav-link-active-background, var(--rtui-color-primary));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-buttons .rtkt-portal-nav-link:hover,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-buttons .rtkt-portal-nav-link.is-preview-hover {
  color: var(--rtkt-portal-nav-link-hover-color, var(--rtui-color-primary-dark));
  background: var(--rtkt-portal-nav-link-hover-background, var(--rtui-color-primary-softer));
  border-color: var(--rtkt-portal-nav-border, var(--rtui-color-primary-border));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-nav-buttons .rtkt-portal-nav-link.is-active {
  color: var(--rtkt-portal-nav-link-active-color, var(--rtui-color-primary-dark));
  background: var(--rtkt-portal-nav-link-active-background, var(--rtui-color-primary-softer));
  border-color: var(--rtkt-portal-nav-link-active-background, var(--rtui-color-primary-border));
}

/* Semantic RTKT states. */
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(.rtkt-status-active,.rtkt-post-status-publish) {
  color: var(--rtkt-portal-status-active-color, var(--rtui-color-success-dark));
  background: var(--rtkt-portal-status-active-background, var(--rtui-color-success-soft));
  border-color: var(--rtkt-portal-status-active-color, var(--rtui-color-success-border));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(.rtkt-status-foundation,.rtkt-post-status-pending,.rtkt-scheduled-note) {
  color: var(--rtkt-portal-status-foundation-color, var(--rtui-color-warning-dark));
  background: var(--rtkt-portal-status-foundation-background, var(--rtui-color-warning-soft));
  border-color: var(--rtkt-portal-status-foundation-color, var(--rtui-color-warning-border));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-text-link {
  color: var(--rtkt-portal-link-color, var(--rtui-color-primary));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-text-link:hover,
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-text-link.is-preview-hover {
  color: var(--rtkt-portal-link-hover-color, var(--rtui-color-primary-dark));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
  .rtkt-field>label,
  .rtkt-form-field>label,
  .rtkt-form-grid>label,
  .rtkt-login label
) {
  color: var(--rtkt-portal-label-color, var(--rtui-color-text));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-help {
  color: var(--rtkt-portal-help-color, var(--rtui-color-muted));
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-card-status:not(.rtkt-status-active):not(.rtkt-status-foundation) {
  color: var(--rtkt-portal-status-planned-color, var(--rtui-color-muted));
  background: var(--rtkt-portal-status-planned-background, #eef2f6);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal .rtkt-error {
  color: var(--rtui-color-danger-dark);
  background: var(--rtui-color-danger-soft);
  border-color: var(--rtui-color-danger-border);
}

/* Reduced motion is opt-in for RTKT controls only, never a descendant reset. */
@media (prefers-reduced-motion: reduce) {
  [data-rtui-root][data-rtui-profile="embed"].rtkt-portal :where(
    .rtkt-button,
    .rtkt-portal-nav-link,
    .rtkt-text-link,
    .rtkt-pagination a,
    .rtkt-card-action
  ) {
    transition-duration: .01ms;
    animation-duration: .01ms;
    animation-iteration-count: 1;
  }
}


/* --------------------------------------------------------------------------
 * Portal typography source (1.7.0-rc.10)
 * --------------------------------------------------------------------------
 * theme  = no RTKT heading/body sizes; controls inherit the host typography.
 * custom = RTKT controls typography explicitly via scoped variables.
 * The switch affects only the customer-portal management UI, never public
 * module renderers such as .rtkt-events or .rtkt-price-list outside the portal.
 */
/* Theme mode is intentionally declaration-free for font family and sizes.
 * The host/theme cascade remains authoritative. */
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom {
  font-family: var(--rtkt-portal-font, inherit);
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(.rtkt-portal-head h2,.rtkt-login>h2) {
  font-family: var(--rtkt-portal-title-font, var(--rtkt-portal-font, inherit));
  font-size: var(--rtkt-portal-title-size);
  font-weight: var(--rtkt-portal-title-weight, 700);
  line-height: 1.2;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(.rtkt-panel-head h2,.rtkt-section-head h2,.rtkt-section-head h3) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-section-title-size);
  font-weight: var(--rtkt-portal-section-title-weight, 700);
  line-height: 1.25;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(
  .rtkt-card>h3,
  .rtkt-panel>h3,
  .rtkt-post-main h4,
  .rtkt-price-admin-main h4,
  .rtkt-hours-admin-item h4,
  .rtkt-event-admin-main h4,
  .rtkt-empty h4,
  .rtkt-pl-item-editor__head strong
) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-item-title-size);
  font-weight: var(--rtkt-portal-card-title-weight, 700);
  line-height: 1.3;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(
  .rtkt-portal-head p,
  .rtkt-panel-head p,
  .rtkt-section-head p,
  .rtkt-card p,
  .rtkt-panel p,
  .rtkt-profile dt,
  .rtkt-profile dd,
  .rtkt-preview-empty,
  .rtkt-price-value
) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-body-size);
  font-weight: 400;
  line-height: 1.5;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(.rtkt-portal-nav-link,.rtkt-event-management-tabs a,.rtkt-pagination a) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-nav-size);
  font-weight: 600;
  line-height: 1.35;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(.rtkt-button,.rtkt-login input[type="submit"]) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-button-size);
  font-weight: 600;
  line-height: 1.35;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(
  .rtkt-field>label,
  .rtkt-form-field>label,
  .rtkt-form-grid>label,
  .rtkt-gallery-fields label,
  .rtkt-checkbox-row,
  .rtkt-inline-check,
  .rtkt-login label
) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-label-size);
  font-weight: 600;
  line-height: 1.4;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(
  .rtkt-field input,
  .rtkt-field select,
  .rtkt-field textarea,
  .rtkt-form-field input,
  .rtkt-form-field select,
  .rtkt-form-field textarea,
  .rtkt-form-grid input,
  .rtkt-form-grid select,
  .rtkt-form-grid textarea,
  .rtkt-filter-bar input,
  .rtkt-filter-bar select,
  .rtkt-price-form input,
  .rtkt-price-form select,
  .rtkt-price-form textarea,
  .rtkt-login input:not([type="submit"]),
  .rtkt-login select,
  .rtkt-login textarea
) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-field-size);
  font-weight: 400;
  line-height: 1.4;
}
[data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom :where(
  .rtkt-eyebrow,
  .rtkt-card-status,
  .rtkt-post-meta,
  .rtkt-event-admin-meta,
  .rtkt-status-label,
  .rtkt-help,
  .description,
  .rtkt-form-grid label>span,
  .rtkt-gallery-fields label>span,
  .rtkt-gallery-choice>span,
  .rtkt-hours-week-head
) {
  font-family: var(--rtkt-portal-font, inherit);
  font-size: var(--rtkt-portal-meta-size);
  font-weight: 400;
  line-height: 1.4;
}

@media (max-width: 960px) {
  [data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom {
    --rtkt-portal-title-size: var(--rtkt-portal-title-size-tablet);
    --rtkt-portal-section-title-size: var(--rtkt-portal-section-title-size-tablet);
    --rtkt-portal-item-title-size: var(--rtkt-portal-item-title-size-tablet);
    --rtkt-portal-body-size: var(--rtkt-portal-body-size-tablet);
    --rtkt-portal-nav-size: var(--rtkt-portal-nav-size-tablet);
    --rtkt-portal-button-size: var(--rtkt-portal-button-size-tablet);
    --rtkt-portal-label-size: var(--rtkt-portal-label-size-tablet);
    --rtkt-portal-field-size: var(--rtkt-portal-field-size-tablet);
    --rtkt-portal-meta-size: var(--rtkt-portal-meta-size-tablet);
    --rtkt-portal-subtitle-size: var(--rtkt-portal-subtitle-size-tablet);
  }
}
@media (max-width: 600px) {
  [data-rtui-root][data-rtui-profile="embed"].rtkt-portal.rtkt-portal-typography-custom {
    --rtkt-portal-title-size: var(--rtkt-portal-title-size-mobile);
    --rtkt-portal-section-title-size: var(--rtkt-portal-section-title-size-mobile);
    --rtkt-portal-item-title-size: var(--rtkt-portal-item-title-size-mobile);
    --rtkt-portal-body-size: var(--rtkt-portal-body-size-mobile);
    --rtkt-portal-nav-size: var(--rtkt-portal-nav-size-mobile);
    --rtkt-portal-button-size: var(--rtkt-portal-button-size-mobile);
    --rtkt-portal-label-size: var(--rtkt-portal-label-size-mobile);
    --rtkt-portal-field-size: var(--rtkt-portal-field-size-mobile);
    --rtkt-portal-meta-size: var(--rtkt-portal-meta-size-mobile);
    --rtkt-portal-subtitle-size: var(--rtkt-portal-subtitle-size-mobile);
  }
}
