/* ============================================================
   glass.css — Sanchez Ethics Global
   iOS 27 Liquid Glass material utilities. Restrained, premium.
   ============================================================ */

/* ---------- Core material ---------- */
.glass {
  background:
    linear-gradient(135deg, var(--glass-tint), rgba(255, 255, 255, 0.03)),
    var(--color-surface-glass);
  backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(var(--glass-saturate));
  border: 1px solid var(--glass-border);
  box-shadow: var(--glass-shadow);
  border-radius: var(--radius-lg);
  isolation: isolate;
}

/* The full premium recipe — heavier highlight + depth */
.liquid-glass {
  position: relative;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.04)),
    var(--color-surface-glass);
  backdrop-filter: blur(20px) saturate(1.5) brightness(1.04);
  -webkit-backdrop-filter: blur(20px) saturate(1.5) brightness(1.04);
  border: 1px solid var(--glass-border);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    inset 0 -1px 0 rgba(0, 0, 0, 0.02),
    0 8px 32px rgba(28, 28, 26, 0.06),
    0 1px 2px rgba(28, 28, 26, 0.04);
  border-radius: var(--radius-lg);
  isolation: isolate;
}
[data-theme="dark"] .liquid-glass {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.01)),
    var(--color-surface-glass);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.2),
    0 8px 32px rgba(0, 0, 0, 0.45),
    0 1px 2px rgba(0, 0, 0, 0.3);
}

/* Card variant — more solid, readable text */
.glass-card {
  position: relative;
  background:
    linear-gradient(135deg, var(--glass-tint), rgba(255, 255, 255, 0.02)),
    color-mix(in oklch, var(--color-surface) 78%, transparent);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  border: 1px solid var(--glass-border);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 6px 24px rgba(28, 28, 26, 0.05);
  border-radius: var(--radius-lg);
  isolation: isolate;
}
[data-theme="dark"] .glass-card {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 6px 24px rgba(0, 0, 0, 0.4);
}

/* Hairline rim highlight overlay */
.glass-rim::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.6), transparent 40%, transparent 60%, rgba(255, 255, 255, 0.18));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}
[data-theme="dark"] .glass-rim::after {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.16), transparent 40%, transparent 60%, rgba(255, 255, 255, 0.04));
}

/* Hover shimmer sweep — gradient highlight moves L->R */
.glass-shimmer { position: relative; overflow: hidden; }
.glass-shimmer::before {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 70%;
  height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.35), transparent);
  transform: skewX(-18deg);
  transition: left 700ms var(--ease-spring);
  pointer-events: none;
  z-index: 2;
}
.glass-shimmer:hover::before,
.glass-shimmer:focus-within::before { left: 130%; }
[data-theme="dark"] .glass-shimmer::before {
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.10), transparent);
}

/* Concentric inner element */
.glass-inset {
  border-radius: var(--radius-md);
  background: color-mix(in oklch, var(--color-surface-2) 60%, transparent);
  border: 1px solid var(--glass-border);
}

/* Thin glass divider strip */
.glass-divider {
  height: 1px;
  border: none;
  background: linear-gradient(90deg, transparent, var(--color-divider-strong), transparent);
  opacity: 0.6;
  margin: 0;
}

/* ---------- Fallbacks ---------- */
@supports not (backdrop-filter: blur(1px)) {
  .glass, .liquid-glass, .glass-card {
    background: color-mix(in oklch, var(--color-surface) 92%, transparent);
  }
}

/* Reduced transparency — solid surfaces */
@media (prefers-reduced-transparency: reduce) {
  .glass, .liquid-glass, .glass-card {
    background: var(--color-surface) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  .glass-shimmer::before { display: none; }
}

/* Print — strip glass */
@media print {
  .glass, .liquid-glass, .glass-card {
    background: #fff !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    border: 1px solid #ccc !important;
  }
  .glass-shimmer::before, .glass-rim::after { display: none !important; }
}
