/*
 * RT UI Components v3.0.0 — neutral-by-default.
 * RULE: only explicit .rtui-* classes receive visual styles.
 * No root typography, no universal descendant reset, no bare element selectors.
 */

[data-rtui-root] :is(.rtui-btn,.rtui-input,.rtui-select,.rtui-textarea,.rtui-card,.rtui-alert,.rtui-badge,.rtui-tab,.rtui-table-wrap,.rtui-field,.rtui-stack,.rtui-cluster,.rtui-grid) {
  box-sizing: border-box;
}

[data-rtui-root] .rtui-h1,
[data-rtui-root] .rtui-h2,
[data-rtui-root] .rtui-h3,
[data-rtui-root] .rtui-h4 {
  margin: 0;
  color: var(--rtui-color-text);
  font-family: var(--rtui-component-heading-font, inherit);
  font-weight: var(--rtui-font-weight-bold);
  line-height: var(--rtui-line-height-heading);
  letter-spacing: normal;
  text-transform: none;
}
[data-rtui-root] .rtui-h1 { font-size: clamp(var(--rtui-font-size-h1-min), 1.6rem + 1vw, var(--rtui-font-size-h1-max)); }
[data-rtui-root] .rtui-h2 { font-size: clamp(var(--rtui-font-size-h2-min), 1.35rem + .5vw, var(--rtui-font-size-h2-max)); }
[data-rtui-root] .rtui-h3 { font-size: var(--rtui-font-size-h3); }
[data-rtui-root] .rtui-h4 { font-size: var(--rtui-font-size-h4); }

[data-rtui-root] .rtui-text { margin: 0; color: var(--rtui-color-text); font: inherit; }
[data-rtui-root] .rtui-text-muted { margin: 0; color: var(--rtui-color-text-muted); font: inherit; }
[data-rtui-root] .rtui-text-subtle { margin: 0; color: var(--rtui-color-text-subtle); font: inherit; }
[data-rtui-root] .rtui-prose { max-width: var(--rtui-reading-measure); }
[data-rtui-root] .rtui-link { color: var(--rtui-color-primary); text-decoration: underline; text-underline-offset: .18em; }
[data-rtui-root] .rtui-link:hover { color: var(--rtui-color-primary-dark); }

[data-rtui-root] .rtui-stack { display:flex; flex-direction:column; gap:var(--rtui-space-4); }
[data-rtui-root] .rtui-stack-sm { display:flex; flex-direction:column; gap:var(--rtui-space-2); }
[data-rtui-root] .rtui-stack-lg { display:flex; flex-direction:column; gap:var(--rtui-space-6); }
[data-rtui-root] .rtui-cluster { display:flex; flex-wrap:wrap; align-items:center; gap:var(--rtui-space-3); }
[data-rtui-root] .rtui-grid { display:grid; min-width:0; gap:var(--rtui-grid-gap); }
[data-rtui-root] .rtui-grid-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
[data-rtui-root] .rtui-grid-3 { grid-template-columns:repeat(3,minmax(0,1fr)); }

[data-rtui-root] .rtui-card {
  min-width:0; padding:var(--rtui-box-padding); color:var(--rtui-color-text); background:var(--rtui-color-surface);
  border:1px solid var(--rtui-color-border); border-radius:var(--rtui-radius-box); box-shadow:none;
}
[data-rtui-root] .rtui-card-header { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:var(--rtui-space-4); margin-bottom:var(--rtui-space-5); padding-bottom:var(--rtui-space-4); border-bottom:1px solid var(--rtui-color-neutral); }

[data-rtui-root] .rtui-field { min-width:0; }
[data-rtui-root] .rtui-field + .rtui-field { margin-top:var(--rtui-space-5); }
[data-rtui-root] .rtui-label,
[data-rtui-root] .rtui-legend { display:block; margin:0 0 var(--rtui-space-2); color:var(--rtui-color-text); font:inherit; font-size:var(--rtui-font-size-sm); font-weight:var(--rtui-font-weight-bold); line-height:var(--rtui-line-height-ui); text-transform:none; letter-spacing:normal; }
[data-rtui-root] .rtui-help,
[data-rtui-root] .rtui-error { display:block; margin-top:var(--rtui-space-2); font:inherit; font-size:var(--rtui-font-size-sm); line-height:var(--rtui-line-height-ui); }
[data-rtui-root] .rtui-help { color:var(--rtui-color-text-muted); }
[data-rtui-root] .rtui-error { color:var(--rtui-color-danger); font-weight:var(--rtui-font-weight-semibold); }

[data-rtui-root] .rtui-input,
[data-rtui-root] .rtui-select,
[data-rtui-root] .rtui-textarea {
  appearance:auto; -webkit-appearance:auto; width:100%; max-width:100%; margin:0;
  color:var(--rtui-color-text); background-color:var(--rtui-color-surface); border:1px solid var(--rtui-color-border); border-radius:var(--rtui-radius-field); box-shadow:none;
  font:inherit; font-size:var(--rtui-font-size-md); line-height:var(--rtui-line-height-ui); letter-spacing:normal; text-align:start; text-indent:0; text-shadow:none; text-transform:none;
  transition:border-color var(--rtui-motion-fast) var(--rtui-ease), background-color var(--rtui-motion-fast) var(--rtui-ease), box-shadow var(--rtui-motion-fast) var(--rtui-ease);
}
[data-rtui-root] .rtui-input,
[data-rtui-root] .rtui-select { min-height:var(--rtui-control-min-height); padding:var(--rtui-field-padding-y) var(--rtui-field-padding-x); }
[data-rtui-root] .rtui-textarea { min-height:var(--rtui-textarea-min-height); padding:var(--rtui-field-padding-y) var(--rtui-field-padding-x); resize:vertical; }
[data-rtui-root] .rtui-input::placeholder,
[data-rtui-root] .rtui-textarea::placeholder { color:var(--rtui-color-text-subtle); opacity:1; }
[data-rtui-root] .rtui-input:hover:not(:disabled):not([readonly]),
[data-rtui-root] .rtui-select:hover:not(:disabled),
[data-rtui-root] .rtui-textarea:hover:not(:disabled):not([readonly]) { border-color:var(--rtui-color-border-hover); }
[data-rtui-root] .rtui-input:focus-visible,
[data-rtui-root] .rtui-select:focus-visible,
[data-rtui-root] .rtui-textarea:focus-visible,
[data-rtui-root] .rtui-btn:focus-visible,
[data-rtui-root] .rtui-tab:focus-visible,
[data-rtui-root] .rtui-link:focus-visible { outline:var(--rtui-focus-ring-width) solid var(--rtui-color-focus); outline-offset:var(--rtui-focus-offset); }
[data-rtui-root] .rtui-input[readonly],
[data-rtui-root] .rtui-textarea[readonly] { color:var(--rtui-color-text-muted); background:var(--rtui-color-background); }
[data-rtui-root] .rtui-input:disabled,
[data-rtui-root] .rtui-select:disabled,
[data-rtui-root] .rtui-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; }
[data-rtui-root] .rtui-input[aria-invalid="true"],
[data-rtui-root] .rtui-select[aria-invalid="true"],
[data-rtui-root] .rtui-textarea[aria-invalid="true"] { border-color:var(--rtui-color-danger); }

[data-rtui-root] .rtui-btn {
  appearance:none; -webkit-appearance:none; display:inline-flex; align-items:center; justify-content:center; gap:var(--rtui-space-2);
  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);
  border:1px solid transparent; border-radius:var(--rtui-radius-button); box-shadow:none; cursor:pointer;
  font:inherit; font-size:var(--rtui-font-size-md); font-weight:var(--rtui-font-weight-semibold); line-height:var(--rtui-line-height-ui); letter-spacing:normal; text-align:center; text-decoration:none; text-shadow:none; text-transform:none; white-space:normal;
  transition:background-color var(--rtui-motion-fast) var(--rtui-ease), border-color var(--rtui-motion-fast) var(--rtui-ease), color var(--rtui-motion-fast) var(--rtui-ease);
}
[data-rtui-root] .rtui-btn-primary { color:var(--rtui-color-white); background:var(--rtui-color-primary); border-color:var(--rtui-color-primary); }
[data-rtui-root] .rtui-btn-primary:hover { color:var(--rtui-color-white); background:var(--rtui-color-primary-dark); border-color:var(--rtui-color-primary-dark); }
[data-rtui-root] .rtui-btn-secondary { color:var(--rtui-color-text); background:var(--rtui-color-surface); border-color:var(--rtui-color-border-strong); }
[data-rtui-root] .rtui-btn-secondary:hover { color:var(--rtui-color-text); background:var(--rtui-color-background); border-color:var(--rtui-color-primary); }
[data-rtui-root] .rtui-btn-danger { color:var(--rtui-color-white); background:var(--rtui-color-danger); border-color:var(--rtui-color-danger); }
[data-rtui-root] .rtui-btn-danger:hover { color:var(--rtui-color-white); background:var(--rtui-color-danger-dark); border-color:var(--rtui-color-danger-dark); }
[data-rtui-root] .rtui-btn:disabled,
[data-rtui-root] .rtui-btn[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] .rtui-alert { padding:var(--rtui-space-4); border:1px solid var(--rtui-color-border); border-radius:var(--rtui-radius-box); color:var(--rtui-color-text); background:var(--rtui-color-surface); }
[data-rtui-root] .rtui-alert-success { border-color:var(--rtui-color-success-border); background:var(--rtui-color-success-soft); }
[data-rtui-root] .rtui-alert-warning { border-color:var(--rtui-color-warning-border); background:var(--rtui-color-warning-soft); }
[data-rtui-root] .rtui-alert-danger { border-color:var(--rtui-color-danger-border); background:var(--rtui-color-danger-soft); }
[data-rtui-root] .rtui-alert-info { border-color:var(--rtui-color-primary-border); background:var(--rtui-color-primary-soft); }

[data-rtui-root] .rtui-badge { display:inline-flex; align-items:center; min-height:24px; padding:2px 9px; border-radius:var(--rtui-radius-pill); font:inherit; font-size:var(--rtui-font-size-xs); font-weight:var(--rtui-font-weight-bold); line-height:1.4; }
[data-rtui-root] .rtui-badge-primary { color:var(--rtui-color-primary-dark); background:var(--rtui-color-primary-soft); }
[data-rtui-root] .rtui-badge-success { color:var(--rtui-color-success-dark); background:var(--rtui-color-success-soft); }
[data-rtui-root] .rtui-badge-warning { color:var(--rtui-color-warning-dark); background:var(--rtui-color-warning-soft); }
[data-rtui-root] .rtui-badge-danger { color:var(--rtui-color-danger-dark); background:var(--rtui-color-danger-soft); }

[data-rtui-root] .rtui-tabs { display:flex; flex-wrap:wrap; gap:var(--rtui-space-2); border-bottom:1px solid var(--rtui-color-border); }
[data-rtui-root] .rtui-tab { appearance:none; -webkit-appearance:none; display:inline-flex; align-items:center; min-height:var(--rtui-control-min-height); margin:0 0 -1px; padding:var(--rtui-space-2) var(--rtui-space-4); color:var(--rtui-color-text-muted); background:transparent; border:1px solid transparent; border-bottom-color:transparent; border-radius:var(--rtui-radius-button) var(--rtui-radius-button) 0 0; font:inherit; font-weight:var(--rtui-font-weight-semibold); text-decoration:none; cursor:pointer; }
[data-rtui-root] .rtui-tab:hover { color:var(--rtui-color-primary-dark); background:var(--rtui-color-primary-softer); }
[data-rtui-root] .rtui-tab[aria-selected="true"],
[data-rtui-root] .rtui-tab.is-active { color:var(--rtui-color-primary-dark); background:var(--rtui-color-surface); border-color:var(--rtui-color-border); border-bottom-color:var(--rtui-color-surface); }

[data-rtui-root] .rtui-table-wrap { max-width:100%; overflow-x:auto; }
[data-rtui-root] .rtui-table { width:100%; border-collapse:collapse; color:var(--rtui-color-text); font:inherit; }
[data-rtui-root] .rtui-table :is(th,td) { padding:var(--rtui-space-3) var(--rtui-space-4); border-bottom:1px solid var(--rtui-color-border); text-align:start; vertical-align:top; }
[data-rtui-root] .rtui-table th { font-weight:var(--rtui-font-weight-bold); background:var(--rtui-color-surface-subtle); }

@media (max-width: 782px) {
  [data-rtui-root] .rtui-card { padding:var(--rtui-box-padding-mobile); }
  [data-rtui-root] .rtui-grid-2,
  [data-rtui-root] .rtui-grid-3 { grid-template-columns:minmax(0,1fr); }
}

@media (prefers-reduced-motion: reduce) {
  [data-rtui-root] .rtui-btn,
  [data-rtui-root] .rtui-input,
  [data-rtui-root] .rtui-select,
  [data-rtui-root] .rtui-textarea,
  [data-rtui-root] .rtui-tab { transition:none; }
}
