/* ═══════════════════════════════════════════════════════════
   STYLE A: LIQUID GLASS
   Reference: iOS 26 (2025) "Liquid Glass" design language

   Maximum translucency. Deep blurs. Light refraction at edges.
   Everything floats. No hard lines. The UI breathes.
   ═══════════════════════════════════════════════════════════ */

/* ── Design Tokens ─────────────────────────────────────── */

.style-liquid {
  /* Glass materials — extremely transparent */
  --glass-bg: rgba(255, 255, 255, 0.06);
  --glass-bg-hover: rgba(255, 255, 255, 0.10);
  --glass-bg-active: rgba(255, 255, 255, 0.04);
  --glass-bg-strong: rgba(255, 255, 255, 0.12);
  --glass-border: rgba(255, 255, 255, 0.16);
  --glass-border-strong: rgba(255, 255, 255, 0.24);

  /* Blur — heavy, cinematic */
  --blur-card: 40px;
  --blur-modal: 60px;
  --blur-nav: 80px;
  --blur-input: 24px;

  /* Saturation — colors behind the glass pop */
  --saturation: saturate(180%);

  /* Light refraction — diagonal shine hitting glass */
  --shine: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.22) 0%,
    rgba(255, 255, 255, 0.08) 30%,
    transparent 50%
  );

  /* Edge highlight — Fresnel-like bright rim */
  --edge-light: inset 0 0.5px 0 0 rgba(255, 255, 255, 0.20);

  /* Radii — everything ultra-rounded */
  --r-card: 28px;
  --r-button: 999px;
  --r-input: 20px;
  --r-chip: 999px;
  --r-modal: 36px;
  --r-small: 14px;

  /* Shadows — soft, deeply diffused */
  --shadow-card:
    0 2px 4px rgba(0, 0, 0, 0.04),
    0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-card-hover:
    0 4px 8px rgba(0, 0, 0, 0.06),
    0 12px 40px rgba(0, 0, 0, 0.16);
  --shadow-modal:
    0 8px 16px rgba(0, 0, 0, 0.08),
    0 24px 64px rgba(0, 0, 0, 0.32);
  --shadow-nav: 0 -8px 32px rgba(0, 0, 0, 0.15);
  --shadow-button: 0 2px 12px rgba(0, 0, 0, 0.10);
  --shadow-glow: 0 0 24px -4px;

  /* Typography — SF Pro system stack */
  --font-display: -apple-system, BlinkMacSystemFont, 'SF Pro Display', system-ui, sans-serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'SF Pro Text', system-ui, sans-serif;
  --font-mono: 'SF Mono', 'Menlo', 'Consolas', monospace;
}


/* ── Card ──────────────────────────────────────────────── */

.style-liquid .card {
  position: relative;
  overflow: hidden;
  background: var(--glass-bg);
  backdrop-filter: blur(var(--blur-card)) var(--saturation);
  -webkit-backdrop-filter: blur(var(--blur-card)) var(--saturation);
  border: 1px solid var(--glass-border);
  border-radius: var(--r-card);
  box-shadow: var(--shadow-card), var(--edge-light);
  transition:
    transform var(--dur-fast) var(--ease-spring),
    box-shadow var(--dur-normal) ease;
}

/* Shine refraction overlay */
.style-liquid .card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--shine);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
  opacity: 0.6;
}

/* Glass tint from theme */
.style-liquid .card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--glass-tint, transparent);
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
}

/* Interactive cards */
.style-liquid .card.tappable:active {
  transform: scale(0.97);
  box-shadow: var(--shadow-card), var(--edge-light);
}

@media (hover: hover) {
  .style-liquid .card.tappable:hover {
    background: var(--glass-bg-hover);
    box-shadow: var(--shadow-card-hover), var(--edge-light);
  }
}


/* ── Buttons ───────────────────────────────────────────── */

/* Primary — gradient fill, the main CTA */
.style-liquid .btn-primary {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-8);
  padding: var(--sp-12) var(--sp-24);
  border-radius: var(--r-button);
  background: var(--gradient-primary);
  color: #fff;
  font-weight: var(--fw-semibold);
  font-size: var(--text-body);
  box-shadow: var(--shadow-button);
  transition:
    transform var(--dur-fast) var(--ease-spring),
    box-shadow var(--dur-fast) ease,
    opacity var(--dur-fast) ease;
  overflow: hidden;
}

/* Glass sheen layer on top of gradient */
.style-liquid .btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.20) 0%,
    rgba(255, 255, 255, 0.00) 50%
  );
  border-radius: inherit;
  pointer-events: none;
}

.style-liquid .btn-primary:active {
  transform: scale(0.96);
  opacity: 0.9;
}

@media (hover: hover) {
  .style-liquid .btn-primary:hover {
    box-shadow: var(--shadow-glow) var(--accent-primary);
  }
}

.style-liquid .btn-primary:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

/* Secondary — glass pill, accent text */
.style-liquid .btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-8);
  padding: var(--sp-12) var(--sp-24);
  border-radius: var(--r-button);
  background: var(--glass-bg);
  backdrop-filter: blur(var(--blur-input)) var(--saturation);
  -webkit-backdrop-filter: blur(var(--blur-input)) var(--saturation);
  border: 1px solid var(--glass-border);
  color: var(--accent-primary);
  font-weight: var(--fw-medium);
  font-size: var(--text-body);
  transition:
    transform var(--dur-fast) var(--ease-spring),
    background var(--dur-fast) ease,
    border-color var(--dur-fast) ease;
}

.style-liquid .btn-secondary:active {
  transform: scale(0.96);
  background: var(--glass-bg-active);
}

@media (hover: hover) {
  .style-liquid .btn-secondary:hover {
    background: var(--glass-bg-hover);
    border-color: var(--accent-primary);
  }
}

.style-liquid .btn-secondary:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

/* Ghost — minimal, text only */
.style-liquid .btn-ghost {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-8);
  padding: var(--sp-10) var(--sp-16);
  border-radius: var(--r-button);
  color: var(--text-secondary);
  font-weight: var(--fw-medium);
  font-size: var(--text-body);
  transition:
    transform var(--dur-fast) var(--ease-spring),
    color var(--dur-fast) ease,
    background var(--dur-fast) ease;
}

.style-liquid .btn-ghost:active {
  transform: scale(0.96);
}

@media (hover: hover) {
  .style-liquid .btn-ghost:hover {
    color: var(--text-primary);
    background: var(--glass-bg);
  }
}

.style-liquid .btn-ghost:focus-visible {
  outline: 2px solid var(--accent-primary);
  outline-offset: 2px;
}

/* Danger variant — applies to any button */
.style-liquid .btn-danger {
  --accent-primary: var(--danger);
  background: var(--danger);
  color: #fff;
}


/* ── Input ─────────────────────────────────────────────── */

.style-liquid .input {
  display: block;
  width: 100%;
  padding: var(--sp-12) var(--sp-16);
  border-radius: var(--r-input);
  background: var(--glass-bg);
  backdrop-filter: blur(var(--blur-input)) var(--saturation);
  -webkit-backdrop-filter: blur(var(--blur-input)) var(--saturation);
  border: 1px solid var(--glass-border);
  color: var(--text-primary);
  font-size: var(--text-body);
  transition:
    border-color var(--dur-fast) ease,
    box-shadow var(--dur-normal) ease;
}

.style-liquid .input::placeholder {
  color: var(--text-muted);
}

.style-liquid .input:focus {
  border-color: var(--accent-primary);
  box-shadow:
    0 0 0 3px rgba(var(--accent-primary-rgb), 0.15),
    var(--edge-light);
}


/* ── Chips ─────────────────────────────────────────────── */

.style-liquid .chip {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-6);
  padding: var(--sp-6) var(--sp-12);
  border-radius: var(--r-chip);
  background: var(--glass-bg);
  backdrop-filter: blur(12px) var(--saturation);
  -webkit-backdrop-filter: blur(12px) var(--saturation);
  border: 1px solid var(--glass-border);
  font-size: var(--text-caption);
  font-weight: var(--fw-medium);
  color: var(--text-secondary);
  transition: transform var(--dur-fast) var(--ease-spring);
}

.style-liquid .chip:active {
  transform: scale(0.95);
}

.style-liquid .chip.success {
  color: var(--success);
  background: var(--success-bg);
  border-color: transparent;
}
.style-liquid .chip.warning {
  color: var(--warning);
  background: var(--warning-bg);
  border-color: transparent;
}
.style-liquid .chip.danger {
  color: var(--danger);
  background: var(--danger-bg);
  border-color: transparent;
}
.style-liquid .chip.info {
  color: var(--info);
  background: var(--info-bg);
  border-color: transparent;
}


/* ── Glass Utility ─────────────────────────────────────── */

.style-liquid .glass {
  background: var(--glass-bg);
  backdrop-filter: blur(var(--blur-card)) var(--saturation);
  -webkit-backdrop-filter: blur(var(--blur-card)) var(--saturation);
  border: 1px solid var(--glass-border);
  border-radius: var(--r-card);
}


/* ── Backdrop-filter Fallback ──────────────────────────── */

@supports not (backdrop-filter: blur(1px)) {
  .style-liquid .card,
  .style-liquid .glass {
    background: var(--bg-elevated);
    border-color: var(--glass-border-strong);
  }

  .style-liquid .btn-secondary,
  .style-liquid .input,
  .style-liquid .chip {
    background: var(--bg-elevated);
  }
}
