/*
 * RAVA P01 — Global Application Shell
 * Final runtime authority for semantic tokens, Persian RTL foundations,
 * shared shell, interaction states and recoverable system states.
 */
:root {
  color-scheme: light;
  --rava-color-canvas: #f4f1ea;
  --rava-color-surface: #fbfaf7;
  --rava-color-support: #b7c1b4;
  --rava-color-surface-muted: color-mix(in srgb, var(--rava-color-support) 28%, var(--rava-color-surface));
  --rava-color-text: #171a17;
  --rava-color-text-secondary: #5f6b73;
  --rava-color-text-muted: #5f6b73;
  --rava-color-text-faint: #5f6b73;
  --rava-color-border: color-mix(in srgb, var(--rava-color-text) 18%, transparent);
  --rava-color-border-soft: color-mix(in srgb, var(--rava-color-text) 9%, transparent);
  --rava-color-accent: #214c3c;
  --rava-color-accent-muted: color-mix(in srgb, var(--rava-color-accent) 10%, var(--rava-color-surface));
  --rava-color-highlight: #7e5b19;
  --rava-color-danger: #7a3941;
  --rava-color-warning: #7e5b19;
  --rava-color-success: #214c3c;
  --rava-color-info: #5f6b73;
  --rava-font-ui: Vazirmatn, Tahoma, Arial, sans-serif;
  --rava-font-display: Vazirmatn, Tahoma, Arial, sans-serif;
  --rava-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --rava-space-1: .25rem;
  --rava-space-2: .5rem;
  --rava-space-3: .75rem;
  --rava-space-4: 1rem;
  --rava-space-5: 1.5rem;
  --rava-space-6: 2rem;
  --rava-space-7: 3rem;
  --rava-space-8: 4.5rem;
  --rava-radius-xs: 4px;
  --rava-radius-sm: 7px;
  --rava-radius-md: 12px;
  --rava-shell: 1420px;
  --rava-content: 1180px;
  --rava-reading: 760px;
  --rava-control-height: 48px;
  --rava-header-height: 78px;
  --rava-header-offset: var(--rava-header-height);
  --rava-mobile-nav-height: 68px;
  --rava-mobile-nav-min-height: 68px;
  --rava-motion-fast: 160ms;
  --rava-motion-normal: 180ms;
  --rava-motion-slow: 200ms;
  --rava-duration-fast: 160ms;
  --rava-duration: 180ms;
  --rava-ease-standard: cubic-bezier(.2,.8,.2,1);
  --rava-safe-top: env(safe-area-inset-top, 0px);
  --rava-safe-right: env(safe-area-inset-right, 0px);
  --rava-safe-bottom: env(safe-area-inset-bottom, 0px);
  --rava-safe-left: env(safe-area-inset-left, 0px);
  --rava-layer-z: 10020;
  --rava-shadow-layer: 0 28px 80px rgb(26 29 26 / 14%);

  /* Compatibility aliases. New P01 work must use semantic variables above. */
  --rava-ink: var(--rava-color-text);
  --rava-paper: var(--rava-color-surface);
  --rava-soft: var(--rava-color-surface-muted);
  --rava-line: var(--rava-color-border);
  --rava-muted: var(--rava-color-text-muted);
  --rava-accent: var(--rava-color-accent);
  --rava-radius: var(--rava-radius-xs);
  --rava-bg: var(--rava-color-canvas);
  --rava-surface: var(--rava-color-surface);
  --rava-surface-subtle: var(--rava-color-surface-muted);
  --rava-text: var(--rava-color-text);
  --rava-text-muted: var(--rava-color-text-muted);
  --rava-border: var(--rava-color-border);
  --rava-focus: var(--rava-color-accent);
  --rava-success: var(--rava-color-success);
  --rava-warning: var(--rava-color-warning);
  --rava-danger: var(--rava-color-danger);
  --rava-info: var(--rava-color-info);
  --rava-sans: var(--rava-font-ui);
  --rava-display: var(--rava-font-display);
  --rava-mono: var(--rava-font-mono);
  --paper: var(--rava-color-canvas);
  --paper-2: var(--rava-color-surface);
  --paper-3: var(--rava-color-surface-muted);
  --ink: var(--rava-color-text);
  --ink-2: var(--rava-color-text-secondary);
  --line: var(--rava-color-border);
  --line-soft: var(--rava-color-border-soft);
  --muted: var(--rava-color-text-muted);
  --faint: var(--rava-color-text-faint);
  --forest: var(--rava-color-accent);
  --forest-pale: var(--rava-color-accent-muted);
  --copper: var(--rava-color-highlight);
  --font-ui: var(--rava-font-ui);
  --font-display: var(--rava-font-display);
  --font-mono: var(--rava-font-mono);
  --header-h: var(--rava-header-height);
  --safe-bottom: var(--rava-safe-bottom);
}

html {
  direction: rtl;
  max-width: 100%;
  scroll-padding-block-start: calc(var(--rava-header-offset) + 1rem);
  text-size-adjust: 100%;
}

body.rava-p1-shell {
  min-width: 0;
  max-width: 100%;
  margin: 0;
  overflow-x: clip;
  background: var(--rava-color-canvas);
  color: var(--rava-color-text);
  font-family: var(--rava-font-ui);
  font-size: 1rem;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.rava-p1-shell :where(button, input, select, textarea) { font: inherit; }
body.rava-p1-shell :where(h1, h2, h3, h4, h5, h6) {
  color: inherit;
  font-family: var(--rava-font-display);
  font-weight: 650;
  letter-spacing: -.025em;
  text-wrap: balance;
}
body.rava-p1-shell :where(p, li, dd, small) { overflow-wrap: anywhere; }
body.rava-p1-shell :where(img, svg, video, canvas, iframe, table) { max-width: 100%; }
body.rava-p1-shell :where([dir="ltr"], code, kbd, samp, .rava-data-number, [data-rava-money]) {
  unicode-bidi: isolate;
  font-variant-numeric: tabular-nums;
}
body.rava-p1-shell :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--rava-color-accent);
  outline-offset: 3px;
}
body.rava-p1-shell :where(button, [role="button"]):disabled,
body.rava-p1-shell [aria-disabled="true"] {
  cursor: not-allowed;
}
html.rava-layer-open, body.rava-layer-open { overflow: hidden; }

.rava-shell,
.rava-content-shell {
  width: min(var(--rava-shell), calc(100% - max(2rem, var(--rava-safe-left) + var(--rava-safe-right) + 2rem)));
  margin-inline: auto;
}
.rava-reading-shell { width: min(100%, var(--rava-reading)); }
.rava-skip-link {
  position: fixed;
  inset-block-start: calc(.5rem + var(--rava-safe-top));
  inset-inline-start: .5rem;
  z-index: 10050;
  translate: 0 -180%;
  min-height: var(--rava-control-height);
  padding: .65rem 1rem;
  display: inline-flex;
  align-items: center;
  background: var(--rava-color-text);
  color: var(--rava-color-surface);
  border-radius: var(--rava-radius-xs);
}
.rava-skip-link:focus { translate: 0 0; }
.screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Global header */
.rava-system-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 1000;
  padding-block-start: var(--rava-safe-top);
  background: color-mix(in srgb, var(--rava-color-surface) 93%, transparent);
  border-block-end: 1px solid transparent;
  backdrop-filter: blur(18px);
  transition: border-color var(--rava-motion-fast), background var(--rava-motion-fast), transform var(--rava-motion-normal) var(--rava-ease-standard);
  will-change: transform;
}
.rava-system-header.is-scrolled { border-color: var(--rava-color-border); }
.rava-system-header.is-hidden { transform: translateY(-110%); }
.rava-header-shell {
  min-height: var(--rava-header-height);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2.5rem);
}
.rava-wordmark {
  min-width: max-content;
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  color: var(--rava-color-text);
  text-decoration: none;
}
.rava-wordmark .rava-brand-mark { inline-size: 38px; block-size: 38px; flex: 0 0 38px; }
.rava-wordmark .rava-brand-mark img { inline-size: 100%; block-size: 100%; object-fit: contain; }
.rava-wordmark > .rava-wordmark-slogan { display: grid; line-height: 1; }
.rava-wordmark small { color: var(--rava-color-text-muted); font: 650 .62rem/1.25 var(--rava-font-mono); letter-spacing: .06em; white-space: nowrap; }
.rava-primary-nav { min-width: 0; justify-self: center; }
.rava-system-menu,
.rava-mobile-menu { padding: 0; margin: 0; list-style: none; }
.rava-system-menu { display: flex; align-items: center; gap: clamp(.9rem, 1.8vw, 1.8rem); }
.rava-system-menu a {
  position: relative;
  min-height: var(--rava-control-height);
  display: inline-flex;
  align-items: center;
  color: var(--rava-color-text);
  font-size: .88rem;
  font-weight: 650;
  white-space: nowrap;
  text-decoration: none;
}
.rava-system-menu a::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: .25rem;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform var(--rava-motion-fast) ease;
}
.rava-system-menu a:is(:hover, :focus-visible, [aria-current="page"])::after { transform: scaleX(1); }
.rava-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .25rem; }
.rava-svg-icon { width: 1.35rem; height: 1.35rem; flex: 0 0 auto; }
.rava-icon-button,
.rava-environment-trigger,
.rava-workspace-entry,
.rava-layer-close {
  min-width: var(--rava-control-height);
  min-height: var(--rava-control-height);
  border: 1px solid transparent;
  border-radius: var(--rava-radius-xs);
  background: transparent;
  color: var(--rava-color-text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  text-decoration: none;
  transition: background var(--rava-motion-fast), color var(--rava-motion-fast), border-color var(--rava-motion-fast), transform var(--rava-motion-fast);
}
.rava-icon-button:is(:hover, :focus-visible),
.rava-environment-trigger:is(:hover, :focus-visible),
.rava-layer-close:is(:hover, :focus-visible) { background: var(--rava-color-surface-muted); }
.rava-icon-button:active,
.rava-environment-trigger:active,
.rava-workspace-entry:active { transform: translateY(1px); }
.rava-workspace-entry { padding-inline: .9rem; border-color: var(--rava-color-border); font-size: .82rem; font-weight: 700; }
.rava-workspace-entry:is(:hover, :focus-visible) { border-color: var(--rava-color-text); background: var(--rava-color-text); color: var(--rava-color-surface); }
.rava-environment-trigger { padding-inline: .3rem .55rem; }
.rava-environment-avatar {
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--rava-color-border);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-weight: 750;
}
.rava-environment-avatar .rava-svg-icon { width: 1rem; }
.rava-environment-label { max-width: 6.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; font-weight: 650; }
.rava-environment-trigger > .rava-svg-icon-chevron { width: .85rem; transform: rotate(90deg); }
.rava-notification-button { position: relative; }
.rava-notification-count,
.rava-cart-count {
  position: absolute;
  inset-block-start: .1rem;
  inset-inline-end: .05rem;
  min-width: 1.1rem;
  height: 1.1rem;
  padding-inline: .2rem;
  display: grid;
  place-items: center;
  border: 2px solid var(--rava-color-surface);
  border-radius: 999px;
  background: var(--rava-color-danger);
  color: #fff;
  font: 750 .58rem/1 var(--rava-font-mono);
}
.rava-notification-count.is-empty { display: none; }
.rava-menu-toggle { display: none; }

/* Context strip */
.rava-workspace-context-bar { border-block-end: 1px solid var(--rava-color-border); background: var(--rava-color-surface-muted); }
.rava-workspace-context-bar > .rava-shell { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .78rem; }
.rava-workspace-context-bar button { min-height: 40px; border: 0; background: none; color: inherit; display: inline-flex; align-items: center; gap: .35rem; }
.rava-workspace-context-bar .rava-svg-icon { width: 1rem; transform: rotate(90deg); }

/* Global layers */
.rava-system-layer,
.rava-environment-panel {
  position: fixed;
  inset: 0;
  z-index: var(--rava-layer-z);
  padding: max(.75rem, var(--rava-safe-top)) max(.75rem, var(--rava-safe-right)) max(.75rem, var(--rava-safe-bottom)) max(.75rem, var(--rava-safe-left));
  background: rgb(26 29 26 / 42%);
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--rava-motion-normal) var(--rava-ease-standard), visibility var(--rava-motion-normal);
}
.rava-system-layer.is-open,
.rava-environment-panel.is-open { opacity: 1; visibility: visible; }
.rava-search-panel.is-open,
.rava-environment-panel.is-open { display: grid; place-items: center; overflow-y: auto; }
.rava-search-dialog,
.rava-environment-dialog,
.rava-mobile-drawer-inner {
  background: var(--rava-color-surface);
  border: 1px solid var(--rava-color-border);
  box-shadow: var(--rava-shadow-layer);
  opacity: 0;
  transform: translateY(-.75rem);
  transition: opacity var(--rava-motion-normal) var(--rava-ease-standard), transform var(--rava-motion-normal) var(--rava-ease-standard);
}
.is-open > :is(.rava-search-dialog, .rava-environment-dialog, .rava-mobile-drawer-inner) { opacity: 1; transform: none; }
.rava-search-dialog { position: relative; inset: auto; width: min(880px, 100%); max-height: min(720px, calc(100dvh - 2rem - var(--rava-safe-top) - var(--rava-safe-bottom))); margin: auto; padding: clamp(1.25rem, 3vw, 2.6rem); overflow-y: auto; overscroll-behavior: contain; border-radius: clamp(.75rem, 1.4vw, 1.1rem); }
.rava-environment-dialog { width: min(680px, 100%); margin-inline: auto; padding: clamp(1.1rem, 2.5vw, 2rem); }
.rava-layer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 2rem; margin-block-end: clamp(1.5rem, 4vw, 3rem); }
.rava-layer-head span { color: var(--rava-color-text-muted); font: 650 .7rem/1.5 var(--rava-font-mono); letter-spacing: .09em; }
.rava-layer-head h2 { margin: .45rem 0 0; font-size: clamp(1.65rem, 3vw, 2.8rem); }
.rava-layer-close { border-color: var(--rava-color-border); }
.rava-global-search {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding-block-end: .75rem;
  border-block-end: 1px solid var(--rava-color-text);
}
.rava-global-search label { display: grid; place-items: center; }
.rava-global-search input { width: 100%; min-height: 3.5rem; border: 0; outline: 0; background: transparent; color: var(--rava-color-text); font-size: clamp(1rem, 2vw, 1.35rem); }
.rava-search-scope { margin-block: 2rem 1.2rem; padding-block-start: 1rem; border-block-start: 1px solid var(--rava-color-border); }
.rava-search-scope span { color: var(--rava-color-text-muted); font-size: .72rem; }
.rava-search-scope p { margin: .4rem 0 0; }
.rava-search-links { display: flex; flex-wrap: wrap; gap: .55rem; }
.rava-search-links a { min-height: var(--rava-control-height); padding: .55rem .8rem; display: inline-flex; align-items: center; border: 1px solid var(--rava-color-border); color: var(--rava-color-text); font-size: .8rem; text-decoration: none; }
.rava-search-links a:is(:hover, :focus-visible) { border-color: var(--rava-color-text); background: var(--rava-color-surface-muted); }
.rava-environment-grid { display: grid; gap: .6rem; }
.rava-environment-card {
  min-height: 76px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: .85rem;
  border: 1px solid var(--rava-color-border);
  color: var(--rava-color-text);
  text-decoration: none;
  transition: border-color var(--rava-motion-fast), background var(--rava-motion-fast);
}
.rava-environment-card:is(:hover, :focus-visible),
.rava-environment-card.is-current { border-color: var(--rava-color-text); background: var(--rava-color-surface-muted); }
.rava-environment-icon { width: 42px; height: 42px; display: grid; place-items: center; background: var(--rava-color-accent-muted); border-radius: 50%; color: var(--rava-color-accent); }
.rava-environment-card > span:nth-child(2) { min-width: 0; display: grid; gap: .2rem; }
.rava-environment-card small { color: var(--rava-color-text-muted); }
.rava-environment-current { min-width: 2rem; color: var(--rava-color-text-muted); font-size: .72rem; }
.rava-environment-current .rava-svg-icon { width: 1rem; }
.rava-environment-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .8rem; margin-block-start: 1rem; padding-block-start: 1rem; border-block-start: 1px solid var(--rava-color-border); }
.rava-environment-foot a { min-height: var(--rava-control-height); display: inline-flex; align-items: center; color: var(--rava-color-text-muted); font-size: .82rem; }
.rava-mobile-drawer { display: flex; justify-content: flex-start; padding: 0; }
.rava-mobile-drawer:not(.is-open) { display: none; }
.rava-mobile-drawer-inner {
  width: min(430px, 94vw);
  height: 100dvh;
  margin-inline-end: auto;
  padding: max(1rem, var(--rava-safe-top)) max(1.1rem, var(--rava-safe-right)) calc(2rem + var(--rava-safe-bottom)) max(1.1rem, var(--rava-safe-left));
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(-105%);
}
.rava-mobile-drawer.is-open .rava-mobile-drawer-inner { transform: none; }
.rava-mobile-drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block-end: 1rem; border-block-end: 1px solid var(--rava-color-border); }
.rava-mobile-menu { display: grid; margin-block-start: 1rem; }
.rava-mobile-menu li { border-block-end: 1px solid var(--rava-color-border-soft); }
.rava-mobile-menu a { min-height: 56px; display: flex; align-items: center; color: var(--rava-color-text); font: 650 1.35rem/1.3 var(--rava-font-display); text-decoration: none; }
.rava-mobile-menu a[aria-current="page"] { color: var(--rava-color-accent); }
.rava-mobile-drawer-actions { display: grid; gap: .6rem; margin-block-start: 1.5rem; }
.rava-mobile-drawer-actions > a { min-height: 70px; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .8rem; padding: .8rem; border: 1px solid var(--rava-color-border); color: inherit; text-decoration: none; }
.rava-mobile-drawer-actions span { display: grid; }
.rava-mobile-drawer-actions small { color: var(--rava-color-text-muted); }
.rava-mobile-drawer-secondary { display: flex; flex-wrap: wrap; gap: .65rem 1rem; margin-block-start: 1.5rem; }
.rava-mobile-drawer-secondary a { min-height: var(--rava-control-height); display: inline-flex; align-items: center; color: var(--rava-color-text-muted); font-size: .78rem; }

/* Buttons */
.rava-button,
body.rava-p1-shell :where(.btn, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit) {
  min-height: var(--rava-control-height);
  padding-inline: 1.1rem;
  border: 1px solid var(--rava-color-text);
  border-radius: var(--rava-radius-xs);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  background: transparent;
  color: var(--rava-color-text);
  font-family: var(--rava-font-ui);
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
  text-decoration: none;
  transition: background var(--rava-motion-fast), color var(--rava-motion-fast), border-color var(--rava-motion-fast), transform var(--rava-motion-fast), opacity var(--rava-motion-fast);
}
.rava-button-primary,
body.rava-p1-shell :where(.btn-primary, .woocommerce button.button.alt, .woocommerce a.button.alt) { background: var(--rava-color-text); color: var(--rava-color-surface) !important; }
.rava-button-secondary { background: var(--rava-color-surface); color: var(--rava-color-text); }
.rava-button-quiet { border-color: transparent; background: transparent; color: var(--rava-color-text); }
.rava-button-danger { border-color: var(--rava-color-danger); background: var(--rava-color-danger); color: #fff; }
.rava-button:is(:hover, :focus-visible):not(:disabled):not([aria-disabled="true"]),
body.rava-p1-shell :where(.btn, .woocommerce button.button, .woocommerce a.button):is(:hover, :focus-visible):not(:disabled) { transform: translateY(-1px); }
.rava-button-primary:is(:hover, :focus-visible):not(:disabled),
body.rava-p1-shell :where(.btn-primary, .woocommerce button.button.alt, .woocommerce a.button.alt):is(:hover, :focus-visible):not(:disabled) { background: var(--rava-color-accent); border-color: var(--rava-color-accent); color: #fff !important; }
.rava-button-secondary:is(:hover, :focus-visible):not(:disabled),
.rava-button-quiet:is(:hover, :focus-visible):not(:disabled) { background: var(--rava-color-surface-muted); }
.rava-button-danger:is(:hover, :focus-visible):not(:disabled) { background: color-mix(in srgb, var(--rava-color-danger) 86%, #000); }
.rava-button:active:not(:disabled) { transform: translateY(1px); }
.rava-button:disabled,
.rava-button[aria-disabled="true"],
body.rava-p1-shell :where(.btn, .woocommerce button.button):disabled { opacity: .46; filter: grayscale(.2); }
.rava-button.is-loading { position: relative; cursor: progress; }
.rava-button.is-loading::before { content: ""; width: 1rem; height: 1rem; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: rava-p1-spin .8s linear infinite; }

/* Fields and validation */
.rava-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.rava-field { min-width: 0; display: grid; align-content: start; gap: .45rem; }
.rava-field-full { grid-column: 1 / -1; }
.rava-field > label,
.rava-choice-group > legend,
body.rava-p1-shell .field > span { color: var(--rava-color-text-secondary); font-size: .82rem; font-weight: 700; }
.rava-required { color: var(--rava-color-danger); }
.rava-field :where(input, select, textarea),
body.rava-p1-shell :where(.input, .select, .textarea, .field input, .field select, .field textarea),
body.rava-p1-shell .woocommerce :where(input.input-text, select, textarea) {
  width: 100%;
  min-height: var(--rava-control-height);
  padding: .72rem .82rem;
  border: 1px solid var(--rava-color-border);
  border-radius: var(--rava-radius-xs);
  background: var(--rava-color-surface);
  color: var(--rava-color-text);
  caret-color: var(--rava-color-accent);
  transition: border-color var(--rava-motion-fast), background var(--rava-motion-fast), box-shadow var(--rava-motion-fast);
}
.rava-field textarea,
body.rava-p1-shell :where(.textarea, .field textarea) { min-height: 7rem; resize: vertical; }
.rava-field :where(input, select, textarea):hover:not(:disabled),
body.rava-p1-shell :where(.input, .select, .textarea, .field input, .field select, .field textarea):hover:not(:disabled) { border-color: var(--rava-color-text-muted); }
.rava-field :where(input, select, textarea):focus,
body.rava-p1-shell :where(.input, .select, .textarea, .field input, .field select, .field textarea):focus { border-color: var(--rava-color-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--rava-color-accent) 15%, transparent); outline: 0; }
.rava-field :where(input, textarea)[readonly] { background: var(--rava-color-surface-muted); color: var(--rava-color-text-secondary); }
.rava-field :where(input, select, textarea):disabled { background: var(--rava-color-surface-muted); color: var(--rava-color-text-muted); opacity: .7; }
.rava-field.is-invalid :where(input, select, textarea),
.rava-field :where(input, select, textarea)[aria-invalid="true"] { border-color: var(--rava-color-danger); box-shadow: 0 0 0 2px color-mix(in srgb, var(--rava-color-danger) 12%, transparent); }
.rava-field-help { color: var(--rava-color-text-muted); font-size: .75rem; }
.rava-field-error { color: var(--rava-color-danger); font-size: .76rem; font-weight: 650; }
.rava-choice-group { min-width: 0; margin: 0; padding: 1rem; display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; border: 1px solid var(--rava-color-border); }
.rava-choice-group label { min-height: var(--rava-control-height); display: inline-flex; align-items: center; gap: .55rem; }
body.rava-p1-shell :where(input[type="checkbox"], input[type="radio"]) { width: 1.15rem; height: 1.15rem; accent-color: var(--rava-color-accent); }

/* Cards */
.rava-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.rava-card {
  min-width: 0;
  min-height: 220px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  border: 1px solid var(--rava-color-border);
  border-radius: var(--rava-radius-sm);
  background: var(--rava-color-surface);
  color: var(--rava-color-text);
  text-decoration: none;
  transition: border-color var(--rava-motion-fast), background var(--rava-motion-fast), transform var(--rava-motion-fast);
}
.rava-card h3 { margin: .55rem 0; font-size: 1.3rem; }
.rava-card p { margin: 0 0 1rem; color: var(--rava-color-text-muted); }
.rava-card-kicker { color: var(--rava-color-text-faint); font: 650 .68rem/1.4 var(--rava-font-mono); letter-spacing: .08em; }
.rava-card-link:is(:hover, :focus-visible) { border-color: var(--rava-color-text); background: var(--rava-color-surface-muted); transform: translateY(-2px); }
.rava-card-action { margin-block-start: auto; display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; }
.rava-card-action .rava-svg-icon { width: 1rem; transform: rotate(180deg); }
.rava-card.is-selected { border-color: var(--rava-color-accent); box-shadow: inset 0 0 0 2px var(--rava-color-accent-muted); }
.rava-card.is-disabled { opacity: .55; background: var(--rava-color-surface-muted); }
.rava-status-label {
  min-height: 28px;
  margin-block-start: auto;
  padding-inline: .65rem;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border: 1px solid var(--rava-color-border);
  border-radius: 999px;
  background: var(--rava-color-surface);
  color: var(--rava-color-text-muted);
  font-size: .72rem;
  font-weight: 700;
}
.rava-status-label::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.rava-status-tone-success { color: var(--rava-color-success); border-color: color-mix(in srgb, var(--rava-color-success) 35%, var(--rava-color-border)); background: color-mix(in srgb, var(--rava-color-success) 7%, var(--rava-color-surface)); }
.rava-status-tone-warning { color: var(--rava-color-warning); border-color: color-mix(in srgb, var(--rava-color-warning) 35%, var(--rava-color-border)); background: color-mix(in srgb, var(--rava-color-warning) 7%, var(--rava-color-surface)); }
.rava-status-tone-danger { color: var(--rava-color-danger); border-color: color-mix(in srgb, var(--rava-color-danger) 35%, var(--rava-color-border)); background: color-mix(in srgb, var(--rava-color-danger) 7%, var(--rava-color-surface)); }

/* Loading and recovery states */
.rava-loading-region { min-height: 190px; padding: 1rem; display: grid; grid-template-columns: minmax(140px, .35fr) 1fr; gap: 1.25rem; border: 1px solid var(--rava-color-border); background: var(--rava-color-surface); }
.rava-skeleton { min-height: 1rem; border-radius: var(--rava-radius-xs); background: linear-gradient(90deg, var(--rava-color-surface-muted) 20%, var(--rava-color-border-soft) 45%, var(--rava-color-surface-muted) 70%); background-size: 240% 100%; animation: rava-p1-shimmer 1.35s ease-in-out infinite; }
.rava-skeleton-media { min-height: 150px; }
.rava-skeleton-stack { display: grid; align-content: center; gap: 1rem; }
.rava-skeleton.is-short { width: 42%; }
.rava-skeleton.is-medium { width: 72%; }
.rava-state-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.rava-state {
  min-width: 0;
  min-height: 280px;
  padding: clamp(1.25rem, 3vw, 2rem);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: start;
  gap: 1rem;
  border: 1px solid var(--rava-color-border);
  border-radius: var(--rava-radius-sm);
  background: var(--rava-color-surface);
}
.rava-state-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--rava-color-surface-muted); color: var(--rava-color-text-secondary); }
.rava-state-copy > span { color: var(--rava-color-text-faint); font: 650 .68rem/1.4 var(--rava-font-mono); letter-spacing: .08em; }
.rava-state h2 { margin: .45rem 0 .35rem; font-size: clamp(1.25rem, 2vw, 1.65rem); }
.rava-state p { margin: 0; color: var(--rava-color-text-muted); }
.rava-state-actions { grid-column: 1 / -1; align-self: end; display: flex; flex-wrap: wrap; gap: .6rem; margin-block-start: auto; padding-block-start: 1rem; }
.rava-state-error { border-color: color-mix(in srgb, var(--rava-color-danger) 42%, var(--rava-color-border)); }
.rava-state-error .rava-state-icon,
.rava-state-destructive .rava-state-icon { color: var(--rava-color-danger); background: color-mix(in srgb, var(--rava-color-danger) 9%, var(--rava-color-surface)); }
.rava-state-permission .rava-state-icon { color: var(--rava-color-warning); background: color-mix(in srgb, var(--rava-color-warning) 9%, var(--rava-color-surface)); }
.rava-state-archived { background: var(--rava-color-surface-muted); }
.rava-state-archived .rava-state-copy > span { color: var(--rava-color-text-muted); }

/* QA-only state laboratory */
.rava-state-lab { padding-block: clamp(3rem, 7vw, 7rem); }
.rava-state-lab-header { max-width: 850px; margin-block-end: var(--rava-space-7); }
.rava-state-lab-header h1 { margin: .75rem 0; font-size: clamp(2.5rem, 7vw, 6rem); line-height: 1.08; }
.rava-state-lab-header p { max-width: 65ch; margin: 0; color: var(--rava-color-text-muted); font-size: 1.05rem; }
.rava-system-kicker,
.rava-state-lab-heading > span { color: var(--rava-color-text-faint); font: 650 .7rem/1.5 var(--rava-font-mono); letter-spacing: .1em; }
.rava-state-lab-section { padding-block: var(--rava-space-6); border-block-start: 1px solid var(--rava-color-border); }
.rava-state-lab-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-block-end: 1.5rem; }
.rava-state-lab-heading h2 { margin: 0; font-size: clamp(1.5rem, 3vw, 2.35rem); }
.rava-component-row { display: flex; flex-wrap: wrap; gap: .75rem; }

/* Footer */
.rava-institutional-footer { margin-block: 0; overflow: hidden; padding: clamp(3rem, 6vw, 5rem) 0 calc(1.75rem + var(--rava-safe-bottom)); border-block-start: 1px solid rgb(255 253 250 / 12%); background: var(--rava-color-text); color: var(--rava-color-surface); }
.rava-footer-statement { display: grid; grid-template-columns: minmax(0, .75fr) minmax(260px, 1fr); gap: 3rem; align-items: end; padding-block-end: 3rem; }
.rava-wordmark-footer { color: var(--rava-color-surface); }
.rava-wordmark-footer .rava-brand-mark { inline-size: 48px; block-size: 48px; flex-basis: 48px; }
.rava-wordmark-footer small { color: rgb(255 253 250 / 60%); }
.rava-footer-statement p { max-width: 38rem; margin: 0; color: rgb(255 253 250 / 64%); font-size: 1.05rem; }
.rava-footer-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; border-block: 1px solid rgb(255 253 250 / 16%); }
.rava-footer-groups details { padding: 1.5rem; border-inline-end: 1px solid rgb(255 253 250 / 16%); }
.rava-footer-groups details:first-child { padding-inline-start: 0; }
.rava-footer-groups details:last-child { border-inline-end: 0; padding-inline-end: 0; }
.rava-footer-groups summary { list-style: none; color: rgb(255 253 250 / 58%); font-size: .75rem; font-weight: 700; }
.rava-footer-groups summary::-webkit-details-marker { display: none; }
.rava-footer-groups nav { display: grid; gap: .5rem; margin-block-start: 1rem; }
.rava-footer-groups a { min-height: 36px; display: flex; align-items: center; color: var(--rava-color-surface); text-decoration: none; }
.rava-footer-groups a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .3rem; }
.rava-footer-lookup { display: grid; grid-template-columns: 1fr minmax(300px, .8fr); align-items: center; gap: 2rem; padding-block: 2rem; border-block-end: 1px solid rgb(255 253 250 / 16%); }
.rava-footer-lookup > div { display: grid; }
.rava-footer-lookup span { color: rgb(255 253 250 / 48%); font: 650 .65rem/1.4 var(--rava-font-mono); letter-spacing: .1em; }
.rava-footer-lookup form { display: grid; grid-template-columns: 1fr auto; align-items: center; border-block-end: 1px solid rgb(255 253 250 / 46%); }
.rava-footer-lookup input { min-width: 0; min-height: var(--rava-control-height); border: 0; outline: 0; background: transparent; color: var(--rava-color-surface); text-align: start; }
.rava-footer-lookup button { width: var(--rava-control-height); height: var(--rava-control-height); border: 0; background: transparent; color: var(--rava-color-surface); }
.rava-footer-lookup button .rava-svg-icon { transform: rotate(180deg); }
.rava-footer-meta { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding-block-start: 1.5rem; color: rgb(255 253 250 / 48%); font-size: .72rem; }

/* Mobile bottom navigation */
.rava-mobile-bottom-nav { display: none; }
body.rava-has-mobile-bottom-nav .rava-institutional-footer { padding-block-end: calc(1.75rem + var(--rava-mobile-nav-height) + var(--rava-safe-bottom)); }

/* Error page */
.rava-error-page { min-height: 65vh; padding-block: 4rem; display: grid; place-items: center; text-align: center; }
.rava-error-page > .rava-shell { max-width: 760px; }
.rava-error-page > .rava-shell > span { color: var(--rava-color-text-faint); font: 700 .75rem/1 var(--rava-font-mono); letter-spacing: .1em; }
.rava-error-page h1 { margin: .75rem 0; font-size: clamp(2.5rem, 8vw, 6rem); }
.rava-error-page p { color: var(--rava-color-text-muted); }
.rava-error-page > .rava-shell > div { display: flex; justify-content: center; flex-wrap: wrap; gap: .75rem; margin-block-start: 1.5rem; }

@keyframes rava-p1-spin { to { transform: rotate(1turn); } }
@keyframes rava-p1-shimmer { to { background-position: -240% 0; } }

@media (max-width: 1100px) {
  .rava-environment-label,
  .rava-workspace-entry span { display: none; }
  .rava-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  body.rava-p1-shell { padding-block-end: 0; }
  .rava-search-panel.is-open { place-items: stretch; }
  .rava-search-dialog { width: 100%; max-height: calc(100dvh - var(--rava-safe-top) - var(--rava-safe-bottom)); margin: 0; padding: 1rem; }
  body.rava-mobile-nav-suppressed { padding-block-end: 0; }
  .rava-system-header.is-hidden { transform: none; }
  .rava-header-shell { min-height: 64px; grid-template-columns: 1fr auto; gap: .75rem; }
  .rava-primary-nav,
  .rava-saved-button,
  .rava-workspace-entry,
  .rava-environment-trigger { display: none; }
  .rava-menu-toggle { display: inline-flex; }
  .rava-header-actions { gap: 0; }
  .rava-footer-groups { grid-template-columns: 1fr 1fr; }
  .rava-footer-groups details:nth-child(2) { border-inline-end: 0; }
  .rava-footer-groups details:nth-child(3) { padding-inline-start: 0; }
  .rava-footer-lookup { grid-template-columns: 1fr; }
  .rava-mobile-bottom-nav {
    position: fixed;
    z-index: 990;
    inset-inline: 0;
    inset-block-end: 0;
    min-height: calc(var(--rava-mobile-nav-min-height) + var(--rava-safe-bottom));
    padding: .35rem max(.35rem, var(--rava-safe-right)) var(--rava-safe-bottom) max(.35rem, var(--rava-safe-left));
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-block-start: 1px solid var(--rava-color-border);
    background: color-mix(in srgb, var(--rava-color-surface) 96%, transparent);
    backdrop-filter: blur(18px);
  }
  .rava-mobile-nav-item {
    min-width: 0;
    min-height: 58px;
    padding: .25rem .1rem;
    border: 0;
    border-radius: var(--rava-radius-xs);
    background: transparent;
    color: var(--rava-color-text-muted);
    display: grid;
    place-items: center;
    align-content: center;
    gap: .15rem;
    font-size: .67rem;
    text-decoration: none;
  }
  .rava-mobile-nav-item .rava-svg-icon { width: 1.2rem; height: 1.2rem; }
  .rava-mobile-nav-item:is(:hover, :focus-visible, .is-active, [aria-current="page"]) { background: var(--rava-color-accent-muted); color: var(--rava-color-accent); }
}

@media (max-width: 680px) {
  .rava-shell,
  .rava-content-shell { width: calc(100% - 1.75rem); }
  .rava-system-header .rava-wordmark { gap: .5rem; }
  .rava-system-header .rava-wordmark small { display: block; font-size: .54rem; letter-spacing: .04em; }
  .rava-icon-button { min-width: 40px; min-height: 40px; }
  .rava-global-search { grid-template-columns: auto minmax(0, 1fr); }
  .rava-global-search .rava-button { grid-column: 1 / -1; width: 100%; }
  .rava-form-grid,
  .rava-state-grid,
  .rava-loading-region { grid-template-columns: 1fr; }
  .rava-card-grid { grid-template-columns: 1fr; }
  .rava-state-lab-heading { align-items: flex-start; flex-direction: column; }
  .rava-footer-statement,
  .rava-footer-groups { grid-template-columns: 1fr; }
  .rava-footer-groups details,
  .rava-footer-groups details:first-child,
  .rava-footer-groups details:last-child,
  .rava-footer-groups details:nth-child(3) { padding-inline: 0; border-inline-end: 0; border-block-end: 1px solid rgb(255 253 250 / 16%); }
  .rava-footer-groups details:last-child { border-block-end: 0; }
  .rava-state { grid-template-columns: 1fr; }
  .rava-state-actions { grid-column: auto; }
  .rava-state-actions .rava-button { width: 100%; }
}

@media (max-width: 360px) {
  .rava-shell,
  .rava-content-shell { width: calc(100% - 1rem); }
  .rava-system-header .rava-wordmark .rava-brand-mark { inline-size: 34px; block-size: 34px; flex-basis: 34px; }
  .rava-system-header .rava-wordmark small { font-size: .49rem; letter-spacing: .025em; }
  .rava-header-actions { gap: 0; }
  .rava-system-header .rava-icon-button, .rava-system-header .rava-menu-toggle { min-width: 36px; width: 36px; min-height: 36px; height: 36px; }
  .rava-mobile-nav-item { font-size: .61rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

@media (forced-colors: active) {
  .rava-system-header,
  .rava-search-dialog,
  .rava-environment-dialog,
  .rava-mobile-drawer-inner,
  .rava-button,
  .rava-field :where(input, select, textarea),
  .rava-card,
  .rava-state,
  .rava-mobile-bottom-nav { border: 1px solid CanvasText; }
  .rava-icon-button,
  .rava-layer-close,
  .rava-mobile-nav-item { forced-color-adjust: auto; }
  .rava-status-label::before { border: 1px solid CanvasText; }
}


/* P10 canonical state extensions. */
.rava-state-offline{border-color:color-mix(in srgb,var(--rava-color-text-muted) 35%,var(--rava-color-border));background:color-mix(in srgb,var(--rava-color-surface-muted) 55%,var(--rava-color-surface))}
.rava-state-offline .rava-state-icon{color:var(--rava-color-text-secondary);background:var(--rava-color-surface-muted)}
.rava-state-conflict{border-color:color-mix(in srgb,var(--rava-color-warning) 42%,var(--rava-color-border))}
.rava-state-conflict .rava-state-icon{color:var(--rava-color-warning);background:color-mix(in srgb,var(--rava-color-warning) 9%,var(--rava-color-surface))}

/* Native 1.0 Tranche 5 — contextual authenticated footer. */
.rava-context-footer{border-top:1px solid var(--rava-line);background:var(--rava-paper)}.rava-context-footer__inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:18px}.rava-context-footer__inner>div{display:grid;gap:3px}.rava-context-footer__inner>div span{font:700 .56rem/1.3 var(--rava-mono);letter-spacing:.08em;color:var(--rava-muted)}.rava-context-footer__inner>div strong{font-size:.82rem}.rava-context-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px}.rava-context-footer nav a{font-size:.68rem;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
@media(max-width:760px){.rava-context-footer__inner{min-height:auto;display:grid;gap:14px;padding-block:16px}.rava-context-footer nav{justify-content:flex-start;gap:10px 16px}.rava-context-footer nav a{min-height:32px;display:inline-flex;align-items:center}}
/* Migrated from post-P10 remediation: institutional footer density authority. */
/* Compact, fully populated footer --------------------------------------- */
.rava-institutional-footer .rava-footer-shell {
  padding-block: 2rem 1rem;
}

.rava-institutional-footer .rava-footer-statement {
  padding-block-end: 1.25rem;
}

.rava-institutional-footer .rava-footer-groups {
  margin-block: 1rem;
}

.rava-institutional-footer .rava-footer-groups details {
  padding: 1rem;
}

.rava-institutional-footer .rava-footer-groups nav {
  gap: .2rem;
  margin-block-start: .55rem;
}

.rava-institutional-footer .rava-footer-groups a {
  min-height: 28px;
  font-size: .72rem;
}

.rava-institutional-footer .rava-footer-lookup {
  padding-block: 1rem;
}

.rava-institutional-footer .rava-footer-meta {
  padding-block-start: .85rem;
}

@media(max-width:760px){.rava-institutional-footer .rava-footer-groups details{padding:.75rem 0}.rava-institutional-footer .rava-footer-groups nav{grid-template-columns:repeat(2,minmax(0,1fr))}.rava-institutional-footer .rava-footer-groups a{min-height:36px}}
@media(max-width:360px){.rava-institutional-footer .rava-footer-groups nav{grid-template-columns:1fr}}

/* Post-certification Phase 1: one accessible live-search presentation contract. */
.rava-live-search {
  position: relative;
  min-width: 0;
}
.rava-live-search__results {
  z-index: calc(var(--rava-layer-z, 1000) - 20);
  max-height: min(30rem, 62vh);
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--rava-border, #d9d6cd);
  background: var(--rava-surface, #fff);
  box-shadow: 0 18px 48px rgba(17,17,15,.12);
}
.rava-live-search:not(.p21-live-search) > .rava-live-search__results {
  position: absolute;
  inset-inline: 0;
  inset-block-start: calc(100% + 6px);
}
.rava-live-search__results[hidden] { display: none !important; }
.rava-live-search__group + .rava-live-search__group { border-block-start: 1px solid var(--rava-border, #d9d6cd); }
.rava-live-search__group-label {
  display: block;
  padding: .55rem .8rem .45rem;
  color: var(--rava-text-muted, #64645e);
  background: var(--rava-surface-muted, #f5f2eb);
  font: 650 .68rem/1.4 var(--rava-font-mono, monospace);
  letter-spacing: .02em;
}
.rava-live-search__option {
  display: grid !important;
  grid-template-columns: 2.75rem minmax(0, 1fr) !important;
  align-items: center;
  gap: .75rem !important;
  min-height: 3.75rem;
  padding: .55rem .8rem !important;
  border: 0 !important;
  border-block-end: 1px solid var(--rava-border, #d9d6cd) !important;
  color: var(--rava-text, #191a18) !important;
  background: var(--rava-surface, #fff);
  text-decoration: none !important;
}
.rava-live-search__group .rava-live-search__option:last-child { border-block-end: 0 !important; }
.rava-live-search__option:is(:hover, :focus-visible, .is-active, [aria-selected="true"]) {
  background: var(--rava-surface-muted, #f5f2eb);
  outline: none;
}
.rava-live-search__option:focus-visible { box-shadow: inset 0 0 0 2px var(--rava-text, #191a18); }
.rava-live-search__media {
  display: grid !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  place-items: center;
  overflow: hidden;
  background: var(--rava-surface-muted, #f5f2eb);
  color: var(--rava-text-muted, #64645e);
  font: 650 .7rem/1 var(--rava-font-mono, monospace);
}
.rava-live-search__media img { width: 100% !important; height: 100% !important; object-fit: cover; }
.rava-live-search__copy { display: block !important; min-width: 0; }
.rava-live-search__copy strong,
.rava-live-search__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rava-live-search__copy strong { font: 600 .9rem/1.5 var(--rava-font-ui, sans-serif) !important; }
.rava-live-search__copy small { margin-block-start: .1rem; color: var(--rava-text-muted, #64645e); font-size: .74rem !important; }
.rava-live-search__state { padding: 1rem; color: var(--rava-text-muted, #64645e); font-size: .82rem; line-height: 1.7; }
.rava-live-search__state.is-error { color: var(--rava-danger, #8b2f2f); }
.rava-global-search.rava-live-search > .rava-live-search__results,
.rava-global-search.rava-live-search > [data-rava-live-status] { grid-column: 1 / -1; }
.p06-critics__tools > .rava-live-search > label { display: grid; gap: 6px; }

@media (max-width: 600px) {
  .rava-live-search__results { max-height: min(22rem, 48dvh); }
  .rava-discover-search.rava-live-search > .rava-live-search__results {
    position: absolute;
    inset: calc(100% - 2px) 0 auto;
  }
  .rava-live-search__option { grid-template-columns: 2.5rem minmax(0, 1fr) !important; padding-inline: .65rem !important; }
  .rava-live-search__media { width: 2.5rem !important; height: 2.5rem !important; }
}

/* Post-certification Phase 1 Correction 03 — refined institutional footer. */
.rava-institutional-footer{margin:0;padding:0;background:#111310;color:#fbfaf7;border-block-start:1px solid rgba(255,255,255,.08)}
.rava-institutional-footer .rava-footer-shell{padding-block:1.25rem 1.1rem}
.rava-footer-ruleline{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block-end:1rem;border-block-end:1px solid rgba(255,255,255,.13);color:rgba(255,255,255,.38);font:.58rem/1.4 var(--rava-font-mono);letter-spacing:.14em;text-transform:uppercase}
.rava-footer-primary{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(420px,1.1fr);gap:clamp(2rem,8vw,8rem);align-items:end;padding-block:clamp(2.4rem,5vw,4.6rem)}
.rava-institutional-footer .rava-footer-statement{display:block;padding:0}
.rava-institutional-footer .rava-wordmark-footer{display:inline-flex;margin:0 0 1.25rem}
.rava-institutional-footer .rava-wordmark-footer .rava-brand-mark{inline-size:36px;block-size:36px;flex-basis:36px}
.rava-institutional-footer .rava-wordmark-footer .rava-wordmark-slogan{color:rgba(255,255,255,.54)}
.rava-institutional-footer .rava-footer-statement p{max-width:34rem;margin:0;color:rgba(255,255,255,.72);font-family:var(--rava-font-display);font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.85;letter-spacing:-.02em}
.rava-footer-primary-nav{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.8rem 2rem;border:0}
.rava-footer-primary-nav a{position:relative;display:inline-flex;align-items:baseline;gap:.55rem;min-height:0;padding:.35rem 0;border:0!important;color:#fbfaf7;font-size:.94rem;text-decoration:none}
.rava-footer-primary-nav a:nth-child(n){padding-inline:0}
.rava-footer-primary-nav a:is(:hover,:focus-visible){color:#fff;text-decoration:none}
.rava-footer-primary-nav a span{color:rgba(255,255,255,.32);font:.55rem/1 var(--rava-font-mono);letter-spacing:.08em}
.rava-footer-primary-nav a:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .18s ease}
.rava-footer-primary-nav a:is(:hover,:focus-visible):after{transform:scaleX(1)}
.rava-footer-secondary{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:1.5rem 2.5rem;padding-block:1rem 0;border-block-start:1px solid rgba(255,255,255,.13)}
.rava-footer-closing{margin:0;color:rgba(255,255,255,.47);font-size:.7rem}
.rava-footer-secondary nav{display:flex;flex-wrap:wrap;gap:.55rem 1.25rem}
.rava-footer-secondary nav a{color:rgba(255,255,255,.58);font-size:.68rem;text-decoration:none}
.rava-footer-secondary nav a:is(:hover,:focus-visible){color:#fff}
.rava-institutional-footer .rava-footer-meta{display:flex;padding:0;color:rgba(255,255,255,.32);font:.58rem/1.5 var(--rava-font-mono)}
.rava-institutional-footer .rava-footer-groups,.rava-institutional-footer .rava-footer-lookup{display:none!important}
body.rava-has-mobile-bottom-nav .rava-institutional-footer{padding-block-end:0}
@media(max-width:820px){
  .rava-footer-primary{grid-template-columns:1fr;gap:2rem;padding-block:2.5rem}
  .rava-footer-primary-nav{justify-content:flex-start;gap:.7rem 1.6rem}
  .rava-footer-secondary{grid-template-columns:1fr;align-items:start;gap:.9rem}
}
@media(max-width:420px){
  .rava-institutional-footer .rava-footer-shell{padding-block-start:1rem}
  .rava-footer-ruleline span:last-child{display:none}
  .rava-footer-primary{padding-block:2rem}
  .rava-footer-primary-nav{display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1rem}
  .rava-institutional-footer .rava-footer-statement p{font-size:1.08rem}
}

/* Post-certification Phase 1 Correction 02 — squared editorial search layer. */
.rava-search-dialog{width:min(920px,calc(100% - 32px));padding:clamp(1.5rem,3vw,2.4rem);border-radius:0;box-shadow:0 24px 80px rgba(0,0,0,.18)}
.rava-search-dialog .rava-layer-head{align-items:center;margin-block-end:1.6rem}
.rava-search-dialog .rava-layer-head h2{font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.35}
.rava-search-dialog .rava-layer-close{border-radius:0;background:transparent}
.rava-global-search{grid-template-columns:52px minmax(0,1fr) auto;gap:0;padding:0;border:1px solid var(--rava-color-text);background:var(--rava-color-surface)}
.rava-global-search label{min-height:62px;border-inline-end:1px solid var(--rava-color-border)}
.rava-global-search input{min-height:62px;padding-inline:1rem;border:0!important;border-radius:0!important;background:transparent!important;font-size:1rem}
.rava-global-search .rava-button{min-width:120px;min-height:62px;margin:0;border:0!important;border-inline-start:1px solid var(--rava-color-text)!important;border-radius:0!important;background:var(--rava-color-text)!important;color:var(--rava-color-surface)!important}
.rava-search-scope{margin-block:1.5rem 1rem;padding-block-start:1rem}
.rava-search-links{gap:.3rem 1.2rem}
.rava-search-links a{min-height:auto;padding:.2rem 0;border:0;border-radius:0;color:var(--rava-color-text-muted);text-decoration:underline;text-underline-offset:.32rem}
.rava-search-links a:is(:hover,:focus-visible){background:transparent;color:var(--rava-color-text)}
.rava-search-dialog .rava-live-search__results{border-radius:0;box-shadow:0 16px 44px rgba(17,17,15,.12)}
@media(max-width:600px){
  .rava-search-dialog{width:100%;padding:1.1rem}
  .rava-global-search{grid-template-columns:44px minmax(0,1fr)}
  .rava-global-search label,.rava-global-search input{min-height:54px}
  .rava-global-search .rava-button{grid-column:1/-1;min-height:50px;border-inline-start:0!important;border-block-start:1px solid var(--rava-color-text)!important}
}

/* Post-certification Phase 1 Correction 02 — account utilities are not environments. */
.rava-environment-foot{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}
.rava-environment-foot a{font-size:.75rem}

/* Final convergence — compact institutional footer. */
.rava-institutional-footer .rava-footer-shell{padding-block:.9rem .85rem}
.rava-footer-ruleline{padding-block-end:.72rem;font-size:.52rem;opacity:.82}
.rava-footer-primary{grid-template-columns:minmax(210px,.72fr) minmax(360px,1.28fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;padding-block:clamp(1.3rem,2.8vw,2.3rem)}
.rava-institutional-footer .rava-wordmark-footer{margin:0 0 .7rem}.rava-institutional-footer .rava-wordmark-footer .rava-brand-mark{inline-size:30px;block-size:30px;flex-basis:30px}
.rava-institutional-footer .rava-footer-statement p{max-width:25rem;font-size:clamp(.95rem,1.45vw,1.22rem);line-height:1.7}
.rava-footer-primary-nav{justify-content:flex-end;gap:.5rem 1.6rem}.rava-footer-primary-nav a{font-size:.84rem;padding:.25rem 0}.rava-footer-primary-nav a span{font-size:.5rem}
.rava-footer-secondary{grid-template-columns:minmax(180px,1fr) auto auto;gap:1rem 1.8rem;padding-block:.72rem 0}.rava-footer-closing{font-size:.62rem}.rava-footer-secondary nav a{font-size:.62rem}
@media(max-width:820px){.rava-footer-primary{grid-template-columns:1fr;gap:1.25rem;padding-block:1.5rem}.rava-footer-primary-nav{justify-content:flex-start}.rava-footer-secondary{grid-template-columns:1fr;gap:.7rem}.rava-institutional-footer .rava-footer-statement p{font-size:1rem}}


/* Search panel personal suggestions — powered by the existing Taste Profile/activity model. */
.rava-search-personal { margin-block-start: 1rem; padding-block-start: 1rem; border-block-start: 1px solid var(--rava-color-border); }
.rava-search-personal > header { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-block-end:.7rem; }
.rava-search-personal > header div { display:grid; gap:.15rem; }
.rava-search-personal > header span { font-size:.64rem; letter-spacing:.12em; color:var(--rava-color-text-muted); }
.rava-search-personal > header strong { font-size:.92rem; font-weight:600; }
.rava-search-personal > header > a { font-size:.72rem; color:inherit; text-decoration:none; border-block-end:1px solid currentColor; }
.rava-search-personal__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.55rem; }
.rava-search-personal__grid > a { min-width:0; display:grid; gap:.22rem; padding:.72rem; border:1px solid var(--rava-color-border); border-radius:var(--rava-radius-sm,10px); color:inherit; text-decoration:none; background:var(--rava-color-surface); }
.rava-search-personal__grid > a:is(:hover,:focus-visible) { border-color:var(--rava-color-text); }
.rava-search-personal__grid span,.rava-search-personal__grid small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.66rem; color:var(--rava-color-text-muted); }
.rava-search-personal__grid strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.82rem; }
.rava-search-personal__empty { display:block; padding:.75rem 0; color:var(--rava-color-text-muted); text-decoration:none; font-size:.78rem; }
@media (max-width:720px){ .rava-search-personal__grid{grid-template-columns:1fr;} .rava-search-personal__grid > a:nth-child(n+3){display:none;} }

/* UIUX-11 — search-first global discovery, Apple-inspired interaction with RAVA identity. */
.rava-search-panel {
  background: color-mix(in srgb, var(--rava-color-canvas, #f4f1ea) 94%, transparent);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.rava-search-panel.is-open {
  display: grid;
  place-items: start center;
  padding: calc(var(--rava-safe-top, 0px) + clamp(28px, 7vh, 72px)) 16px calc(var(--rava-safe-bottom, 0px) + 24px);
}
.rava-search-dialog {
  position: relative;
  width: min(920px, 100%);
  max-height: calc(100dvh - var(--rava-safe-top, 0px) - var(--rava-safe-bottom, 0px) - clamp(56px, 12vh, 120px));
  margin: 0;
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.rava-global-search__identity {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 48px;
  margin-block-end: 16px;
  padding-inline-end: 56px;
  color: var(--rava-color-text, #171a17);
}
.rava-global-search__identity > span {
  order: 1;
  color: var(--rava-color-text-muted, #5f6b73);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .12em;
}
.rava-global-search__identity > strong {
  order: 2;
  margin-inline-start: auto;
  font-size: 18px;
  font-weight: 600;
  direction: rtl;
}
.rava-global-search__desktop-close {
  position: absolute;
  inset-inline-end: 0;
  inset-block-start: 0;
  inline-size: 48px;
  block-size: 48px;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--rava-color-text, #171a17) 6%, transparent);
  color: var(--rava-color-text, #171a17);
}
.rava-global-search {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
}
.rava-global-search__bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}
.rava-global-search__field {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 48px;
  align-items: center;
  min-height: 56px;
  overflow: clip;
  border: 1px solid color-mix(in srgb, var(--rava-color-text, #171a17) 16%, transparent);
  border-radius: 14px;
  background: var(--rava-color-surface, #fbfaf7);
  transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.rava-global-search__field:focus-within {
  border-color: var(--rava-color-text, #171a17);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rava-color-text, #171a17) 16%, transparent);
}
.rava-global-search__icon {
  display: grid;
  place-items: center;
  inline-size: 48px;
  block-size: 56px;
  color: var(--rava-color-text-muted, #5f6b73);
}
.rava-global-search__icon svg,
.rava-global-search__clear svg { inline-size: 20px; block-size: 20px; }
.rava-global-search__field input {
  min-width: 0;
  min-height: 56px;
  padding: 0 4px;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--rava-color-text, #171a17);
  font: 400 16px/1.6 var(--rava-font-ui, inherit);
}
.rava-global-search__field input::-webkit-search-cancel-button { display: none; }
.rava-global-search__clear {
  display: grid;
  place-items: center;
  inline-size: 48px;
  block-size: 48px;
  margin: 4px;
  border: 0;
  border-radius: 50%;
  background: color-mix(in srgb, var(--rava-color-text, #171a17) 7%, transparent);
  color: var(--rava-color-text-muted, #5f6b73);
  cursor: pointer;
}
.rava-global-search__clear[hidden] { display: none; }
.rava-global-search__cancel { display: none; }
.rava-global-search.rava-live-search > .rava-live-search__results {
  position: static;
  width: 100%;
  max-height: min(52vh, 520px);
  margin-block-start: 12px;
  overflow-y: auto;
  border: 1px solid color-mix(in srgb, var(--rava-color-text, #171a17) 12%, transparent);
  border-radius: 14px;
  background: var(--rava-color-surface, #fbfaf7);
  box-shadow: none;
}
.rava-search-panel.has-query .rava-search-personal { display: none; }
.rava-search-personal {
  margin-block-start: 24px;
  padding-block-start: 20px;
  border-block-start: 1px solid color-mix(in srgb, var(--rava-color-text, #171a17) 12%, transparent);
}
.rava-search-personal__grid > a {
  border-radius: 10px;
  background: var(--rava-color-surface, #fbfaf7);
  transition: border-color 180ms ease, transform 180ms ease, background 180ms ease;
}
.rava-search-personal__grid > a:is(:hover,:focus-visible) {
  border-color: var(--rava-color-text, #171a17);
  transform: translateY(-1px);
}
.rava-global-search__clear:focus-visible,
.rava-global-search__desktop-close:focus-visible,
.rava-global-search__cancel:focus-visible {
  outline: 2px solid var(--rava-color-text, #171a17);
  outline-offset: 2px;
}

@media (max-width: 720px) {
  .rava-search-panel.is-open {
    place-items: stretch;
    padding: calc(var(--rava-safe-top, 0px) + 12px) 16px calc(var(--rava-safe-bottom, 0px) + 16px);
  }
  .rava-search-dialog {
    width: 100%;
    max-height: calc(100dvh - var(--rava-safe-top, 0px) - var(--rava-safe-bottom, 0px) - 28px);
    padding: 0;
  }
  .rava-global-search__identity {
    min-height: 32px;
    margin-block-end: 10px;
    padding: 0;
  }
  .rava-global-search__identity > span,
  .rava-global-search__identity > strong { font-size: 11px; }
  .rava-global-search__desktop-close { display: none; }
  .rava-global-search__bar {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }
  .rava-global-search__field {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    min-height: 52px;
    border-radius: 12px;
  }
  .rava-global-search__icon { inline-size: 44px; block-size: 52px; }
  .rava-global-search__field input { min-height: 52px; font-size: 16px; }
  .rava-global-search__clear { inline-size: 44px; block-size: 44px; margin: 4px 0; }
  .rava-global-search__cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    padding-inline: 8px;
    border: 0;
    background: transparent;
    color: var(--rava-color-text, #171a17);
    font: 500 14px/1.4 var(--rava-font-ui, inherit);
    cursor: pointer;
  }
  .rava-global-search.rava-live-search > .rava-live-search__results {
    max-height: min(58vh, 520px);
    margin-block-start: 10px;
    border-radius: 12px;
  }
  .rava-search-personal { margin-block-start: 18px; padding-block-start: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .rava-global-search__field,
  .rava-search-personal__grid > a { transition: none; }
}

/* UIUX-11 specificity guard against the earlier square search correction. */
.rava-global-search__identity { direction: ltr; }
.rava-global-search .rava-global-search__icon {
  min-height: 0;
  border: 0;
}
