/* ═══════════════════════════════════════════════════════════════
   Unicheck Widget — Styles
   Все классы с префиксом .uc- для изоляции от хостовой страницы.
   ═══════════════════════════════════════════════════════════════ */

/* ── Design Tokens (из Figma партнёра: Logiways) ──────────────── */
:root {
  /* Палитра партнёра: чёрно-белый минимализм */
  --uc-color-primary: #1A1A1A;
  --uc-color-primary-hover: #333333;
  --uc-color-primary-light: #F5F5F5;
  --uc-color-accent: #EC3915;
  --uc-color-accent-hover: #D4320F;
  --uc-color-success: #1A7F37;
  --uc-color-success-bg: #EEFBF3;
  --uc-color-warning: #9A6700;
  --uc-color-warning-bg: #FFF8E7;
  --uc-color-danger: #EC3915;
  --uc-color-danger-bg: #FFF0EE;
  --uc-color-surface: #FFFFFF;
  --uc-color-surface-alt: #F5F5F5;
  --uc-color-bubble-system: #F5F5F5;
  --uc-color-bubble-user: #EC3915;
  --uc-color-bubble-user-text: #FFFFFF;
  --uc-color-border: rgba(0, 0, 0, 0.06);
  --uc-color-border-solid: #E6E6E6;
  --uc-color-text: #000000;
  --uc-color-text-muted: #808080;
  --uc-color-text-tertiary: #A4A4A4;
  --uc-color-disabled: #CBCBCB;
  --uc-color-backdrop: rgba(0, 0, 0, 0.4);

  /* Шрифт партнёра: Inter Tight */
  --uc-font-family: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --uc-font-mono: "SF Mono", Monaco, Menlo, "Courier New", monospace;
  --uc-font-size-xs: 11px;
  --uc-font-size-sm: 13px;
  --uc-font-size-base: 14px;
  --uc-font-size-lg: 16px;
  --uc-font-size-xl: 18px;
  --uc-font-size-xxl: 24px;

  --uc-line-height: 1.5;

  /* Spacing (из Figma: 4, 8, 16, 20, 24, 32) */
  --uc-space-1: 4px;
  --uc-space-2: 8px;
  --uc-space-3: 12px;
  --uc-space-4: 16px;
  --uc-space-5: 24px;
  --uc-space-6: 32px;

  /* Радиусы (из Figma: 4, 8, 12, 16, 24, 28, 96) */
  --uc-radius-sm: 8px;
  --uc-radius-md: 12px;
  --uc-radius-lg: 16px;
  --uc-radius-bubble: 16px;
  --uc-radius-full: 96px;

  /* Тени (из Figma: 0 8px 40px rgba(0,0,0,0.08)) */
  --uc-shadow-sm: 0 1px 3px rgba(0,0,0,0.06);
  --uc-shadow-md: 0 4px 16px rgba(0,0,0,0.08);
  --uc-shadow-lg: 0 8px 40px rgba(0,0,0,0.08);
  --uc-shadow-xl: 0 8px 40px rgba(0,0,0,0.12);

  --uc-z-widget: 99999;
  --uc-z-toast: 100000;

  --uc-transition-fast: 150ms ease;
  --uc-transition-base: 200ms ease-out;
  --uc-transition-open: 280ms cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Root Reset ────────────────────────────────────────────────── */
.uc-root,
.uc-root *,
.uc-root *::before,
.uc-root *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.uc-root {
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-base);
  line-height: var(--uc-line-height);
  color: var(--uc-color-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.uc-root button {
  font-family: inherit;
  border: none;
  background: transparent;
  cursor: pointer;
  outline: none;
}

/* Кнопки с собственным фоном — повышенная специфичность */
.uc-root button.uc-fab { background: var(--uc-color-primary); }
.uc-root .uc-input-area__send { background: var(--uc-color-accent); }
.uc-root .uc-input-area__send:disabled { background: var(--uc-color-disabled); }
.uc-root button.uc-chip--primary { background: var(--uc-color-accent); }
.uc-root .uc-hardgate__cta { background: var(--uc-color-accent); }
.uc-root button.uc-report__cta-btn { background: var(--uc-color-accent); }
.uc-root .uc-error-card__actions .uc-chip--accent,
.uc-root a.uc-chip--accent {
  background: var(--uc-color-accent);
  color: #fff;
  border-color: var(--uc-color-accent);
}

.uc-root input,
.uc-root textarea {
  font-family: inherit;
  border: none;
  outline: none;
}

/* ── Focus Ring ────────────────────────────────────────────────── */
.uc-root *:focus-visible {
  outline: 2px solid var(--uc-color-primary);
  outline-offset: 2px;
  border-radius: var(--uc-radius-sm);
}

/* ── Dock FAB (macOS-стиль) ─────────────────────────────────────── */
.uc-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: var(--uc-z-widget);
  display: flex;
  align-items: center;
  gap: 0;
  height: 52px;
  padding: 0;
  background: var(--uc-color-primary);
  color: #fff;
  border: none;
  border-radius: 14px;
  box-shadow: var(--uc-shadow-lg);
  cursor: pointer;
  overflow: hidden;
  text-align: left;
}

/* Иконка — всегда видна */
.uc-fab__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 0 14px;
  height: 52px;
}

.uc-fab__icon img {
  height: 100%;
  max-height: 22px;
  width: auto;
  filter: brightness(0) invert(1);
}

/* Раскрывающийся контент */
.uc-fab__expand {
  display: flex;
  align-items: center;
  gap: var(--uc-space-3);
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  white-space: nowrap;
  transition: max-width 400ms cubic-bezier(0.16, 1, 0.3, 1),
              opacity 250ms ease-out 150ms,
              padding 400ms cubic-bezier(0.16, 1, 0.3, 1);
  padding: 0;
}

.uc-fab .uc-fab__expand {
  max-width: 300px;
  opacity: 1;
  padding: 0 20px 0 0;
}

.uc-fab__divider {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.2);
  flex-shrink: 0;
  margin-right: var(--uc-space-3);
}

.uc-fab__text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
  max-width: 200px;
}

.uc-fab__title {
  font-size: var(--uc-font-size-sm);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.uc-fab__subtitle {
  font-size: var(--uc-font-size-xs);
  opacity: 0.65;
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.uc-fab__arrow {
  flex-shrink: 0;
  opacity: 0.5;
  transition: transform 300ms ease, opacity 300ms ease;
}

.uc-fab__arrow svg {
  width: 16px;
  height: 16px;
}

.uc-fab .uc-fab__arrow {
  opacity: 0.7;
}

.uc-fab:hover .uc-fab__arrow {
  opacity: 1;
  transform: translateX(2px);
}

/* Hover */
.uc-fab {
  transition: box-shadow 300ms ease,
              transform 300ms ease,
              width 380ms cubic-bezier(0.16, 1, 0.3, 1),
              border-radius 380ms cubic-bezier(0.16, 1, 0.3, 1);
}

.uc-fab:hover {
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.15);
  transform: translateY(-1px);
}

.uc-fab:active {
  transform: translateY(0);
  transition-duration: 100ms;
}

/* Пульс-точка */
.uc-fab__pulse {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 12px;
  height: 12px;
  background: var(--uc-color-accent);
  border-radius: 50%;
  border: 2.5px solid #fff;
  animation: uc-pulse 2s ease-in-out 3;
}

@keyframes uc-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.6; }
}

.uc-fab__close-icon {
  display: none;
}

.uc-fab__close-icon svg {
  width: 20px;
  height: 20px;
}

/* ── Открытое состояние ── */
.uc-fab--open {
  height: 44px;
  border-radius: var(--uc-radius-sm);
  box-shadow: var(--uc-shadow-lg);
}

.uc-fab--open .uc-fab__icon,
.uc-fab--open .uc-fab__expand,
.uc-fab--open .uc-fab__pulse {
  display: none;
}

.uc-fab--open .uc-fab__close-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
}

.uc-fab--open:hover .uc-fab__expand {
  max-width: 0;
  opacity: 0;
  padding: 0;
}

/* ── Компактный режим (/route/{uuid}) ──────────────────────────── */
/* По умолчанию скрываем текстовую часть — только логотип */
.uc-fab--compact:not(.uc-fab--open) .uc-fab__expand {
  max-width: 0;
  opacity: 0;
  padding: 0;
}

/* При наведении — плавно раскрываем до полного FAB */
.uc-fab--compact:not(.uc-fab--open):hover .uc-fab__expand {
  max-width: 300px;
  opacity: 1;
  padding: 0 20px 0 0;
}

/* Widget Panel (Desktop) ────────────────────────────────────── */
.uc-panel {
  position: fixed;
  bottom: 80px;
  right: 24px;
  z-index: var(--uc-z-widget);
  width: 380px;
  height: 600px;
  max-height: calc(100vh - 120px);
  background: var(--uc-color-surface);
  border-radius: var(--uc-radius-lg);
  box-shadow: var(--uc-shadow-xl);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform-origin: bottom right;
  /* Animation states handled by JS */
}

/* Left position overrides */
.uc-root--left .uc-fab  { right: auto; left: 24px; }
.uc-root--left .uc-panel { right: auto; left: 24px; transform-origin: bottom left; }

.uc-panel--hidden {
  display: none;
}

.uc-panel--entering {
  animation: uc-panel-enter var(--uc-transition-open) forwards;
}

.uc-panel--leaving {
  animation: uc-panel-leave 200ms ease-in forwards;
}

@keyframes uc-panel-enter {
  from { opacity: 0; transform: scale(0.9) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes uc-panel-leave {
  from { opacity: 1; transform: scale(1) translateY(0); }
  to   { opacity: 0; transform: scale(0.9) translateY(8px); }
}

/* ── Header ────────────────────────────────────────────────────── */
.uc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--uc-space-4);
  border-bottom: 1px solid var(--uc-color-border);
  background: var(--uc-color-surface);
  flex-shrink: 0;
  min-height: 56px;
}

.uc-header__logo {
  display: flex;
  align-items: center;
  gap: var(--uc-space-1);
  margin-left: var(--uc-space-2);
}

.uc-header__logo img {
  height: 24px;
  width: auto;
}

.uc-header__logo-suffix {
  font-size: var(--uc-font-size-lg);
  font-weight: 600;
  color: var(--uc-color-text);
}

.uc-header__title-group {
  flex: 1;
  min-width: 0;
}

.uc-header__title {
  font-size: var(--uc-font-size-lg);
  font-weight: 700;
  color: var(--uc-color-text);
  line-height: 1.2;
}

.uc-header__subtitle {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  line-height: 1.3;
  margin-top: 2px;
}

.uc-header__actions {
  display: flex;
  align-items: center;
  gap: var(--uc-space-2);
  flex-shrink: 0;
}

.uc-header__btn {
  display: flex;
  align-items: center;
  gap: var(--uc-space-1);
  padding: var(--uc-space-1) var(--uc-space-2);
  border-radius: var(--uc-radius-sm);
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-muted);
  transition: color var(--uc-transition-fast), background var(--uc-transition-fast);
  cursor: pointer;
}

.uc-header__btn:hover {
  color: var(--uc-color-text);
  background: var(--uc-color-surface-alt);
}

.uc-header__btn svg {
  width: 16px;
  height: 16px;
}

.uc-header__minimize {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--uc-radius-sm);
  color: var(--uc-color-text-muted);
  transition: color var(--uc-transition-fast), background var(--uc-transition-fast);
  cursor: pointer;
}

.uc-header__minimize:hover {
  color: var(--uc-color-text);
  background: var(--uc-color-surface-alt);
}

.uc-header__minimize svg {
  width: 18px;
  height: 18px;
}

/* ── Scenario Picker ───────────────────────────────────────────── */
.uc-scenario {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: var(--uc-space-5);
  overflow-y: auto;
}

/* Intro block — product description */
.uc-scenario__intro {
  background: var(--uc-color-surface-alt);
  border-radius: var(--uc-radius-lg);
  padding: var(--uc-space-4);
  margin-bottom: var(--uc-space-5);
}

.uc-scenario__intro-title {
  font-size: var(--uc-font-size-lg);
  font-weight: 700;
  color: var(--uc-color-text);
  line-height: 1.3;
  margin-bottom: var(--uc-space-2);
}

.uc-scenario__intro-desc {
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-muted);
  line-height: 1.5;
  margin-bottom: var(--uc-space-3);
}

.uc-scenario__intro-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--uc-space-2) var(--uc-space-2);
}

.uc-scenario__intro-feature {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text);
  font-weight: 500;
}

.uc-scenario__intro-feature svg {
  width: 14px;
  height: 14px;
  color: var(--uc-color-success);
  flex-shrink: 0;
}

.uc-scenario__label {
  font-size: var(--uc-font-size-xs);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: var(--uc-color-text-tertiary);
  text-align: center;
  margin-bottom: var(--uc-space-4);
}

.uc-scenario__cards {
  display: flex;
  flex-direction: column;
  gap: var(--uc-space-3);
}

.uc-scenario__card {
  display: flex;
  align-items: center;
  gap: var(--uc-space-4);
  padding: var(--uc-space-4);
  background: var(--uc-color-surface-alt);
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-lg);
  cursor: pointer;
  transition: background var(--uc-transition-fast), transform var(--uc-transition-fast), box-shadow var(--uc-transition-fast);
  min-height: 80px;
}

.uc-scenario__card:hover {
  background: var(--uc-color-border-solid);
  transform: scale(1.01);
  box-shadow: var(--uc-shadow-sm);
}

.uc-scenario__card:active {
  transform: scale(0.99);
}

.uc-scenario__icon {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: var(--uc-radius-sm);
  background: var(--uc-color-primary-light);
  color: var(--uc-color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 700;
}

.uc-scenario__icon svg {
  width: 22px;
  height: 22px;
}

.uc-scenario__card-body {
  flex: 1;
  min-width: 0;
}

.uc-scenario__card-title {
  font-size: var(--uc-font-size-base);
  font-weight: 600;
  color: var(--uc-color-text);
  margin-bottom: 2px;
}

.uc-scenario__card-desc {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  line-height: 1.4;
}

.uc-scenario__chevron {
  color: var(--uc-color-text-tertiary);
  flex-shrink: 0;
}

.uc-scenario__chevron svg {
  width: 18px;
  height: 18px;
}

/* ── Footer (shared) ───────────────────────────────────────────── */
.uc-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--uc-space-3) var(--uc-space-4);
  border-top: 1px solid var(--uc-color-border);
  background: var(--uc-color-surface);
  flex-shrink: 0;
}

.uc-footer__limits {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
}

.uc-footer__powered {
  font-size: 10px;
  color: var(--uc-color-text-tertiary);
  text-decoration: none;
  transition: color var(--uc-transition-fast);
}

.uc-footer__powered:hover {
  color: var(--uc-color-text-muted);
}

/* ── Chat View ─────────────────────────────────────────────────── */
.uc-chat {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.uc-chat__messages {
  flex: 1;
  overflow-y: auto;
  padding: var(--uc-space-4);
  display: flex;
  flex-direction: column;
  gap: var(--uc-space-3);
  scroll-behavior: smooth;
}

/* ── Chat Bubbles ──────────────────────────────────────────────── */
.uc-bubble {
  max-width: 80%;
  padding: var(--uc-space-3) var(--uc-space-4);
  line-height: var(--uc-line-height);
  font-size: var(--uc-font-size-base);
  animation: uc-bubble-in var(--uc-transition-base) both;
}

@keyframes uc-bubble-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

.uc-bubble--system {
  align-self: flex-start;
  background: var(--uc-color-bubble-system);
  color: var(--uc-color-text);
  border-radius: var(--uc-radius-bubble);
}

.uc-bubble--user {
  align-self: flex-end;
  background: var(--uc-color-bubble-user);
  color: var(--uc-color-bubble-user-text);
  border-radius: var(--uc-radius-bubble);
}

/* Wide bubble for classification result */
.uc-bubble--wide {
  max-width: 90%;
  padding: var(--uc-space-4) var(--uc-space-5);
}

/* ── Typing Indicator ──────────────────────────────────────────── */
.uc-typing {
  align-self: flex-start;
  display: flex;
  gap: 4px;
  padding: var(--uc-space-3) var(--uc-space-4);
  background: var(--uc-color-bubble-system);
  border-radius: var(--uc-radius-bubble);
  animation: uc-bubble-in var(--uc-transition-base) both;
}

.uc-typing__dot {
  width: 8px;
  height: 8px;
  background: var(--uc-color-text-tertiary);
  border-radius: 50%;
  animation: uc-typing-bounce 1.2s ease-in-out infinite;
}

.uc-typing__dot:nth-child(2) { animation-delay: 0.15s; }
.uc-typing__dot:nth-child(3) { animation-delay: 0.3s; }

@keyframes uc-typing-bounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30% { transform: translateY(-4px); opacity: 1; }
}

/* ── Classification Result ─────────────────────────────────────── */
.uc-classification {
  text-align: center;
}

.uc-classification__label {
  font-size: var(--uc-font-size-xs);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--uc-color-text-tertiary);
  margin-bottom: var(--uc-space-2);
}

.uc-classification__code {
  font-family: var(--uc-font-mono);
  font-weight: 700;
  font-size: var(--uc-font-size-xxl);
  color: var(--uc-color-text);
  letter-spacing: 1px;
  margin-bottom: var(--uc-space-2);
}

.uc-classification__name {
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text);
  margin-bottom: 2px;
  line-height: 1.4;
}

.uc-classification__group {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  margin-bottom: var(--uc-space-3);
  line-height: 1.4;
}

.uc-classification__meta {
  display: flex;
  justify-content: center;
  gap: var(--uc-space-4);
  margin-bottom: var(--uc-space-3);
  font-size: var(--uc-font-size-sm);
}

.uc-classification__meta span {
  color: var(--uc-color-text-muted);
}

.uc-classification__meta strong {
  color: var(--uc-color-text);
}

.uc-classification__explanation {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  line-height: 1.5;
  text-align: left;
  font-style: italic;
}

/* ── Classification Picker (3 cards) ──────────────────────────── */
.uc-root .uc-pick {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 0;
}

.uc-root .uc-pick__card {
  position: relative;
  padding: 14px 16px;
  background: var(--uc-color-surface);
  border: 1.5px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
}

.uc-root .uc-pick__card:not(.uc-pick__card--selected):hover {
  border-color: var(--uc-color-text-muted);
}

.uc-root .uc-pick__card--recommended:not(.uc-pick__card--selected) {
  border-color: var(--uc-color-text);
}

.uc-root .uc-pick__card--selected {
  border-color: var(--uc-color-accent);
  box-shadow: 0 0 0 1px var(--uc-color-accent);
}

.uc-root .uc-pick__badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--uc-color-surface);
  background: var(--uc-color-text);
  padding: 2px 8px;
  border-radius: 4px;
  margin-bottom: 8px;
}

.uc-root .uc-pick__code {
  font-family: var(--uc-font-mono);
  font-size: var(--uc-font-size-lg);
  font-weight: 700;
  color: var(--uc-color-text);
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.uc-root .uc-pick__name {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  line-height: 1.4;
  margin-bottom: 10px;
}

.uc-root .uc-pick__meta {
  display: flex;
  gap: 16px;
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  margin-bottom: 10px;
}

.uc-root .uc-pick__meta strong {
  color: var(--uc-color-text);
}

.uc-root .uc-pick__confidence {
  display: flex;
  align-items: center;
  gap: 8px;
}

.uc-root .uc-pick__confidence-label {
  font-size: 10px;
  color: var(--uc-color-text-tertiary);
  white-space: nowrap;
}

.uc-root .uc-pick__confidence-bar {
  flex: 1;
  height: 4px;
  background: var(--uc-color-surface-alt);
  border-radius: 2px;
  overflow: hidden;
}

.uc-root .uc-pick__confidence-fill {
  height: 100%;
  background: var(--uc-color-text);
  border-radius: 2px;
  transition: width 600ms ease;
}

.uc-root .uc-pick__card--selected .uc-pick__confidence-fill {
  background: var(--uc-color-accent);
}

.uc-root .uc-pick__confidence-val {
  font-size: 11px;
  font-weight: 600;
  color: var(--uc-color-text-muted);
  min-width: 30px;
  text-align: right;
}

.uc-root .uc-pick__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.uc-root button.uc-pick__confirm {
  width: 100%;
  height: 44px;
  background: var(--uc-color-accent);
  color: #fff;
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-base);
  font-weight: 600;
  border: none;
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background 200ms ease, opacity 200ms ease;
}

.uc-root button.uc-pick__confirm:disabled {
  opacity: 0.4;
  cursor: default;
}

.uc-root button.uc-pick__confirm:not(:disabled):hover {
  background: var(--uc-color-accent-hover);
}

.uc-root button.uc-pick__explain {
  width: 100%;
  height: 40px;
  background: transparent;
  color: var(--uc-color-text-muted);
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-sm);
  font-weight: 500;
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background 200ms ease, color 200ms ease;
}

.uc-root button.uc-pick__explain:disabled {
  opacity: 0.4;
  cursor: default;
}

.uc-root button.uc-pick__explain:not(:disabled):hover {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text);
}

.uc-root button.uc-pick__none {
  width: 100%;
  height: 40px;
  background: transparent;
  color: var(--uc-color-text-muted);
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-sm);
  font-weight: 500;
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background 200ms ease, color 200ms ease;
}

.uc-root button.uc-pick__none:hover {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text);
}

/* ── Action Chips ──────────────────────────────────────────────── */
.uc-chips {
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  gap: var(--uc-space-2);
  margin-top: var(--uc-space-1);
  animation: uc-bubble-in var(--uc-transition-base) both;
}

.uc-chips__row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--uc-space-2);
}

.uc-chip {
  display: inline-flex;
  align-items: center;
  padding: var(--uc-space-2) var(--uc-space-4);
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text);
  background: var(--uc-color-surface-alt);
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background var(--uc-transition-fast), border-color var(--uc-transition-fast), color var(--uc-transition-fast);
  min-height: 44px;
}

.uc-chip:hover {
  background: var(--uc-color-border-solid);
  border-color: var(--uc-color-border-solid);
}

.uc-chip--code {
  font-family: var(--uc-font-mono);
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  cursor: default;
  background: var(--uc-color-surface-alt);
}

.uc-chip--code:hover {
  background: var(--uc-color-surface-alt);
  border-color: var(--uc-color-border-solid);
}

.uc-chip--primary {
  background: var(--uc-color-accent);
  color: #fff;
  border-color: var(--uc-color-accent);
}

.uc-chip--primary:hover {
  background: var(--uc-color-accent-hover);
  border-color: var(--uc-color-accent-hover);
}

.uc-chip--accent {
  background: var(--uc-color-accent);
  color: #fff;
  border-color: var(--uc-color-accent);
}

.uc-chip--accent:hover {
  background: var(--uc-color-accent-hover);
  border-color: var(--uc-color-accent-hover);
}

.uc-chips--fade-out {
  animation: uc-fade-out 150ms ease forwards;
}

@keyframes uc-fade-out {
  to { opacity: 0; height: 0; margin: 0; padding: 0; overflow: hidden; }
}

/* ── Chat Input ────────────────────────────────────────────────── */
.uc-input-area {
  flex-shrink: 0;
  border-top: 1px solid var(--uc-color-border);
  background: var(--uc-color-surface);
  padding: var(--uc-space-3) var(--uc-space-4);
}

.uc-input-area__limits {
  text-align: center;
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-tertiary);
  padding-top: var(--uc-space-2);
}

.uc-input-area__row {
  display: flex;
  align-items: flex-end;
  gap: var(--uc-space-2);
}

.uc-input-area__field {
  flex: 1;
  min-height: 44px;
  max-height: 120px;
  padding: 10px var(--uc-space-3);
  font-size: var(--uc-font-size-base);
  line-height: var(--uc-line-height);
  color: var(--uc-color-text);
  background: var(--uc-color-surface-alt);
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  resize: none;
  overflow-y: auto;
  transition: border-color var(--uc-transition-fast);
}

.uc-input-area__field:focus {
  border-color: var(--uc-color-text-muted);
  outline: none;
}

.uc-input-area__field::placeholder {
  color: var(--uc-color-text-tertiary);
}

.uc-input-area__field--warning {
  border-color: var(--uc-color-warning) !important;
}

.uc-input-area__send {
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: var(--uc-radius-sm);
  background: var(--uc-color-accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background var(--uc-transition-fast);
  cursor: pointer;
}

.uc-input-area__send:hover {
  background: #D4320F;
}

.uc-input-area__send:disabled {
  background: var(--uc-color-disabled);
  cursor: default;
}

.uc-input-area__send svg {
  width: 18px;
  height: 18px;
}

/* ── Report Card ───────────────────────────────────────────────── */
.uc-report {
  align-self: stretch;
  background: var(--uc-color-surface);
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-lg);
  margin: var(--uc-space-2) 0;
}

.uc-report__body {
  padding: var(--uc-space-5);
}

/* Code section — centered like screenshot */
.uc-report__code-section {
  text-align: center;
  margin-bottom: var(--uc-space-5);
  padding-bottom: var(--uc-space-4);
  border-bottom: 1px solid var(--uc-color-border);
}

.uc-report__code-label {
  font-size: var(--uc-font-size-xs);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--uc-color-text-tertiary);
  margin-bottom: var(--uc-space-2);
}

.uc-report__code-value {
  font-family: var(--uc-font-mono);
  font-size: 28px;
  font-weight: 700;
  color: var(--uc-color-text);
  letter-spacing: 2px;
  margin-bottom: var(--uc-space-2);
}

.uc-report__code-name {
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text);
  margin-bottom: 2px;
  line-height: 1.4;
}

.uc-report__section-title {
  font-size: var(--uc-font-size-base);
  font-weight: 600;
  color: var(--uc-color-text);
  margin-bottom: var(--uc-space-3);
}

.uc-report__code-group {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  line-height: 1.4;
}

/* Payments card */
.uc-report__card {
  background: var(--uc-color-surface-alt);
  border-radius: var(--uc-radius-sm);
  padding: var(--uc-space-3) var(--uc-space-4);
  margin-bottom: var(--uc-space-3);
}

.uc-report__card-title {
  font-size: var(--uc-font-size-sm);
  font-weight: 600;
  margin-bottom: var(--uc-space-3);
  text-align: center;
}

.uc-report__payments {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--uc-space-3);
}

.uc-report__payment-item {
  text-align: center;
}

.uc-report__payment-label {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  margin-bottom: 2px;
}

.uc-report__payment-value {
  font-size: var(--uc-font-size-lg);
  font-weight: 700;
  color: var(--uc-color-text);
}

.uc-report__preference {
  display: flex;
  align-items: center;
  gap: var(--uc-space-2);
  margin-top: var(--uc-space-3);
  padding: var(--uc-space-2) var(--uc-space-3);
  background: var(--uc-color-surface-alt);
  border-radius: var(--uc-radius-sm);
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  color: var(--uc-color-success);
}

.uc-report__preference svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* Markers */
.uc-report__markers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--uc-space-2);
  margin-bottom: var(--uc-space-3);
}

.uc-report__marker {
  display: flex;
  align-items: flex-start;
  gap: var(--uc-space-2);
  padding: var(--uc-space-3);
  border-radius: var(--uc-radius-sm);
  line-height: 1.3;
}

.uc-report__marker--yes {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text);
}

.uc-report__marker--no {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text-muted);
}

.uc-report__marker--danger {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text);
}

.uc-report__marker-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.uc-report__marker-icon svg {
  width: 16px;
  height: 16px;
}

.uc-report__marker-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.uc-report__marker-label {
  font-size: var(--uc-font-size-xs);
  opacity: 0.8;
}

.uc-report__marker-status {
  font-size: var(--uc-font-size-sm);
  font-weight: 600;
}

/* Risks */
.uc-report__risks {
  display: flex;
  align-items: flex-start;
  gap: var(--uc-space-3);
  padding: var(--uc-space-3) var(--uc-space-4);
  background: var(--uc-color-surface-alt);
  border-radius: var(--uc-radius-sm);
  margin-bottom: var(--uc-space-3);
  color: var(--uc-color-text);
}

.uc-report__risks svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  margin-top: 2px;
}

.uc-report__risks-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: var(--uc-font-size-sm);
  font-weight: 600;
}

.uc-report__risks-sub {
  font-weight: 400;
  font-size: var(--uc-font-size-xs);
  opacity: 0.8;
}

/* CTA */
.uc-report__cta {
  margin-top: var(--uc-space-3);
}

.uc-report__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 56px;
  padding: 0 var(--uc-space-5);
  background: var(--uc-color-accent);
  color: #fff;
  font-size: var(--uc-font-size-lg);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  border-radius: var(--uc-radius-sm);
  transition: background var(--uc-transition-fast);
  cursor: pointer;
}

.uc-report__cta-btn:hover {
  background: var(--uc-color-accent-hover);
}

.uc-report__cta-hint {
  text-align: center;
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  margin-top: var(--uc-space-2);
  line-height: 1.4;
}

/* Collapsible */
.uc-report__collapse {
  border-top: 1px solid var(--uc-color-border);
}

.uc-report__collapse-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--uc-space-3) var(--uc-space-4);
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-muted);
  cursor: pointer;
  transition: color var(--uc-transition-fast);
}

.uc-report__collapse-toggle:hover {
  color: var(--uc-color-text);
}

.uc-report__collapse-toggle svg {
  width: 16px;
  height: 16px;
  transition: transform var(--uc-transition-fast);
}

.uc-report__collapse-toggle--open svg {
  transform: rotate(180deg);
}

.uc-report__collapse-content {
  padding: 0 var(--uc-space-4) var(--uc-space-4);
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text-muted);
  line-height: 1.6;
  display: none;
}

.uc-report__collapse-content--open {
  display: block;
}

.uc-report__collapse-note {
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text);
  line-height: 1.5;
  padding: var(--uc-space-3);
  background: var(--uc-color-surface-alt);
  border-radius: var(--uc-radius-sm);
  margin-bottom: var(--uc-space-3);
  font-weight: 500;
}

.uc-report__collapse-content ul {
  list-style: none;
  padding: 0;
}

.uc-report__collapse-content li {
  padding: var(--uc-space-1) 0;
  padding-left: var(--uc-space-4);
  position: relative;
}

.uc-report__collapse-content li::before {
  content: "•";
  position: absolute;
  left: var(--uc-space-2);
  color: var(--uc-color-text-tertiary);
}

/* ── Hard Gate ─────────────────────────────────────────────────── */
.uc-root .uc-hardgate {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px 24px;
  text-align: center;
}

.uc-root .uc-hardgate__badge {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--uc-color-surface-alt);
  border-radius: 50%;
  margin-bottom: 20px;
  color: var(--uc-color-text);
}

.uc-root .uc-hardgate__badge svg {
  width: 22px;
  height: 22px;
}

.uc-root .uc-hardgate__title {
  font-size: var(--uc-font-size-lg);
  font-weight: 600;
  color: var(--uc-color-text);
  margin-bottom: 6px;
  letter-spacing: -0.2px;
}

.uc-root .uc-hardgate__subtitle {
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-tertiary);
  margin-bottom: 16px;
}

.uc-root .uc-hardgate__desc {
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-muted);
  line-height: 1.55;
  margin-bottom: 24px;
  max-width: 280px;
}

.uc-root .uc-hardgate__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 100%;
  max-width: 260px;
}

.uc-root .uc-hardgate__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 44px;
  padding: 0 20px;
  background: var(--uc-color-accent);
  color: #fff;
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-base);
  font-weight: 600;
  text-decoration: none;
  border: none;
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background 200ms ease;
}

.uc-root .uc-hardgate__cta:hover {
  background: var(--uc-color-accent-hover);
}

.uc-root button.uc-hardgate__back {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  padding: 0 20px;
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-sm);
  font-weight: 500;
  color: var(--uc-color-text-muted);
  background: transparent;
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: color 200ms ease, background 200ms ease;
}

.uc-root button.uc-hardgate__back:hover {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text);
}

.uc-root .uc-hardgate__timer {
  margin-top: 16px;
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-tertiary);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.2px;
}

/* ── Error Card (in chat) ──────────────────────────────────────── */
.uc-root .uc-error-card {
  align-self: stretch;
  background: var(--uc-color-surface);
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-lg);
  padding: 24px 20px;
  text-align: center;
  animation: uc-bubble-in var(--uc-transition-base) both;
}

.uc-root .uc-error-card__badge {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--uc-color-surface-alt);
  border-radius: 50%;
  margin: 0 auto 16px;
  color: var(--uc-color-text-muted);
}

.uc-root .uc-error-card__badge svg {
  width: 22px;
  height: 22px;
}

.uc-root .uc-error-card__title {
  font-size: var(--uc-font-size-lg);
  font-weight: 600;
  color: var(--uc-color-text);
  margin-bottom: 6px;
  letter-spacing: -0.2px;
}

.uc-root .uc-error-card__desc {
  font-size: var(--uc-font-size-sm);
  color: var(--uc-color-text-muted);
  line-height: 1.5;
  margin-bottom: 20px;
  max-width: 260px;
  margin-left: auto;
  margin-right: auto;
}

.uc-root .uc-error-card__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.uc-root button.uc-error-card__retry {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  height: 44px;
  background: var(--uc-color-accent);
  color: #fff;
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-base);
  font-weight: 600;
  border: none;
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background 200ms ease;
}

.uc-root button.uc-error-card__retry svg {
  width: 16px;
  height: 16px;
}

.uc-root button.uc-error-card__retry:hover {
  background: var(--uc-color-accent-hover);
}

.uc-root .uc-error-card__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  font-family: var(--uc-font-family);
  font-size: var(--uc-font-size-sm);
  font-weight: 500;
  color: var(--uc-color-text-muted);
  text-decoration: none;
  background: transparent;
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  cursor: pointer;
  transition: background 200ms ease, color 200ms ease;
}

.uc-root .uc-error-card__link:hover {
  background: var(--uc-color-surface-alt);
  color: var(--uc-color-text);
}

/* ── Toast ─────────────────────────────────────────────────────── */
.uc-toast-container {
  position: absolute;
  top: var(--uc-space-4);
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--uc-z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--uc-space-2);
  pointer-events: none;
  width: calc(100% - var(--uc-space-4) * 2);
  max-width: 320px;
}

.uc-toast {
  padding: var(--uc-space-3) var(--uc-space-4);
  border-radius: var(--uc-radius-sm);
  font-size: var(--uc-font-size-sm);
  font-weight: 500;
  text-align: center;
  box-shadow: var(--uc-shadow-md);
  animation: uc-toast-in 200ms ease-out forwards;
  pointer-events: auto;
}

.uc-toast--leaving {
  animation: uc-toast-out 200ms ease-in forwards;
}

.uc-toast--success {
  background: var(--uc-color-success);
  color: #fff;
}

.uc-toast--warning {
  background: var(--uc-color-warning);
  color: #fff;
}

.uc-toast--info {
  background: var(--uc-color-primary);
  color: #fff;
}

@keyframes uc-toast-in {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes uc-toast-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(-8px); }
}

/* ── Generating state ──────────────────────────────────────────── */
.uc-generating {
  display: flex;
  align-items: center;
  gap: var(--uc-space-2);
}

.uc-generating__spinner {
  width: 16px;
  height: 16px;
  border: 2px solid var(--uc-color-border-solid);
  border-top-color: var(--uc-color-primary);
  border-radius: 50%;
  animation: uc-spin 0.8s linear infinite;
}

@keyframes uc-spin {
  to { transform: rotate(360deg); }
}

/* ── Screen transitions ────────────────────────────────────────── */
.uc-screen-enter {
  animation: uc-screen-in var(--uc-transition-base) forwards;
}

.uc-screen-leave {
  animation: uc-screen-out 150ms ease-in forwards;
}

@keyframes uc-screen-in {
  from { opacity: 0; transform: translateX(8px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes uc-screen-out {
  from { opacity: 1; transform: translateX(0); }
  to   { opacity: 0; transform: translateX(-8px); }
}

/* ── Debug Panel ───────────────────────────────────────────────── */
.uc-debug {
  position: fixed;
  bottom: 100px;
  right: 24px;
  z-index: calc(var(--uc-z-widget) - 1);
  background: var(--uc-color-surface);
  border: 1px solid var(--uc-color-border-solid);
  border-radius: var(--uc-radius-sm);
  box-shadow: var(--uc-shadow-md);
  font-family: var(--uc-font-mono);
  font-size: var(--uc-font-size-xs);
  min-width: 200px;
}

.uc-debug__toggle {
  display: block;
  width: 100%;
  padding: var(--uc-space-2) var(--uc-space-3);
  text-align: left;
  font-family: var(--uc-font-mono);
  font-size: var(--uc-font-size-xs);
  font-weight: 600;
  color: var(--uc-color-text-muted);
  cursor: pointer;
  border-bottom: 1px solid var(--uc-color-border);
}

.uc-debug__body {
  padding: var(--uc-space-2);
  display: none;
}

.uc-debug__body--open {
  display: block;
}

.uc-debug__body button {
  display: block;
  width: 100%;
  padding: var(--uc-space-2) var(--uc-space-3);
  text-align: left;
  font-family: var(--uc-font-mono);
  font-size: var(--uc-font-size-xs);
  color: var(--uc-color-text);
  cursor: pointer;
  border-radius: 4px;
  margin-bottom: 2px;
}

.uc-debug__body button:hover {
  background: var(--uc-color-surface-alt);
}

.uc-debug__state {
  padding: var(--uc-space-2) var(--uc-space-3);
  border-top: 1px solid var(--uc-color-border);
  color: var(--uc-color-text-muted);
  line-height: 1.6;
  white-space: pre-wrap;
}

/* ── Reduced Motion ────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .uc-root *,
  .uc-root *::before,
  .uc-root *::after {
    animation-duration: 1ms !important;
    transition-duration: 1ms !important;
  }

  /* Ensure elements with animation-based opacity become visible */
  .uc-root .uc-bubble,
  .uc-root .uc-typing,
  .uc-root .uc-chips,
  .uc-root .uc-report,
  .uc-root .uc-error-card {
    opacity: 1 !important;
  }
}

/* ── Tablet (768–1024px) — panel slightly smaller ─────────────── */
@media (max-width: 1024px) and (min-width: 768px) {
  .uc-panel {
    width: 360px;
    height: 560px;
    max-height: calc(100vh - 100px);
    bottom: 72px;
    right: 20px;
  }

  .uc-fab {
    bottom: 20px;
    right: 20px;
  }
}

/* ── Mobile (<768px) — full-screen overlay ────────────────────── */
@media (max-width: 767px) {
  .uc-fab {
    bottom: 16px;
    right: 16px;
  }

  /* Full-screen overlay */
  .uc-panel {
    bottom: 0;
    right: 0;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    max-height: 100vh;
    max-height: 100dvh;
    border-radius: 0;
    transform-origin: bottom center;
  }

  .uc-panel--entering {
    animation: uc-panel-enter-mobile 320ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
  }

  .uc-panel--leaving {
    animation: uc-panel-leave-mobile 200ms ease-in forwards;
  }

  @keyframes uc-panel-enter-mobile {
    from { opacity: 0; transform: translateY(100%); }
    to   { opacity: 1; transform: translateY(0); }
  }

  @keyframes uc-panel-leave-mobile {
    from { opacity: 1; transform: translateY(0); }
    to   { opacity: 0; transform: translateY(100%); }
  }

  /* Safe areas for notched devices */
  .uc-header {
    padding-top: max(var(--uc-space-4), env(safe-area-inset-top));
    padding-left: max(var(--uc-space-4), env(safe-area-inset-left));
    padding-right: max(var(--uc-space-4), env(safe-area-inset-right));
  }

  .uc-input-area {
    padding-bottom: max(var(--uc-space-3), env(safe-area-inset-bottom));
  }

  .uc-footer {
    padding-bottom: max(var(--uc-space-3), env(safe-area-inset-bottom));
  }

  /* Scenario intro — more breathing room */
  .uc-scenario {
    padding: var(--uc-space-4) var(--uc-space-4) var(--uc-space-3);
  }

  /* Feature grid — keep 2 columns on phones */
  .uc-scenario__intro-features {
    gap: var(--uc-space-2) var(--uc-space-3);
  }

  /* Touch-friendly scenario cards */
  .uc-scenario__card {
    min-height: 64px;
  }

  /* Touch-friendly input area */
  .uc-input-area__field {
    font-size: 16px; /* Prevents iOS zoom on focus */
  }

  /* Report markers — stack to 1 column on narrow screens */
  .uc-report__markers {
    grid-template-columns: 1fr 1fr;
  }

  /* Pick cards — larger touch targets */
  .uc-root .uc-pick__card {
    padding: 16px;
  }

  /* Hard gate — adjust padding */
  .uc-root .uc-hardgate {
    padding: 24px 20px;
  }

  .uc-root .uc-hardgate__actions {
    max-width: 100%;
  }

  /* Debug panel */
  .uc-debug {
    bottom: 80px;
    right: 16px;
    left: 16px;
    min-width: auto;
  }
}

/* ── Small phones (<375px) — tighter spacing ──────────────────── */
@media (max-width: 374px) {
  .uc-scenario__intro-features {
    grid-template-columns: 1fr;
    gap: var(--uc-space-1);
  }

  .uc-report__markers {
    grid-template-columns: 1fr;
  }

  .uc-report__payments {
    grid-template-columns: 1fr;
  }

  .uc-header__title {
    font-size: var(--uc-font-size-lg);
  }

  .uc-header__btn span {
    display: none;
  }

  .uc-footer {
    flex-direction: column;
    gap: var(--uc-space-1);
    text-align: center;
  }

  .uc-root .uc-pick__meta {
    flex-direction: column;
    gap: 4px;
  }

  .uc-root .uc-hardgate__desc {
    max-width: 100%;
  }

  .uc-root .uc-error-card__desc {
    max-width: 100%;
  }
}

/* ── Landscape phones — limit panel height ────────────────────── */
@media (max-height: 500px) and (max-width: 767px) {
  .uc-panel {
    max-height: 100dvh;
  }

  .uc-scenario__intro {
    display: none;
  }

  .uc-root .uc-hardgate {
    padding: 16px;
    justify-content: flex-start;
  }

  .uc-root .uc-hardgate__badge {
    width: 36px;
    height: 36px;
    margin-bottom: 12px;
  }
}

/* ── Mobile backdrop ──────────────────────────────────────────── */
.uc-backdrop {
  display: none;
}

@media (max-width: 767px) {
  .uc-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: calc(var(--uc-z-widget) - 1);
    background: var(--uc-color-backdrop);
    animation: uc-fade-in 200ms ease forwards;
  }

  .uc-backdrop--leaving {
    animation: uc-fade-out-simple 200ms ease forwards;
  }

  @keyframes uc-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
  }

  @keyframes uc-fade-out-simple {
    from { opacity: 1; }
    to   { opacity: 0; }
  }
}

/* ── Large desktop (1440+) — slightly larger panel ────────────── */
@media (min-width: 1440px) {
  .uc-panel {
    width: 400px;
    height: 640px;
  }
}
