/* ==========================================================================
   Poptávky.market — design tokens & custom surfaces
   Mirrors the system from the Landing Hero prototype.
   ========================================================================== */

html, body { background: #FAFAF7; }
body {
  font-family: 'Manrope', system-ui, sans-serif;
  color: #0A0A0B;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* --- Soft mesh backdrop ---------------------------------------------------- */
.mesh {
  background:
    radial-gradient(60% 50% at 12% 8%,  oklch(0.92 0.06 268 / 0.55), transparent 60%),
    radial-gradient(45% 40% at 92% 18%, oklch(0.95 0.05 85  / 0.55), transparent 65%),
    radial-gradient(55% 50% at 78% 92%, oklch(0.94 0.04 268 / 0.45), transparent 70%),
    linear-gradient(180deg, #FAFAF7 0%, #F6F4EE 100%);
}

.grain { position: relative; }
.grain::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/></svg>");
}

/* --- Glass surfaces -------------------------------------------------------- */
.glass {
  background: rgba(255, 255, 255, 0.62);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.7);
}
.glass-dark {
  background: rgba(10, 10, 11, 0.72);
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
}

/* --- Custom range slider --------------------------------------------------- */
input[type="range"].rng {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  width: 100%;
  height: 28px;
}
input[type="range"].rng::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(to right, oklch(0.45 0.18 268) var(--p, 30%), #E6E4DD var(--p, 30%));
}
input[type="range"].rng::-moz-range-track {
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(to right, oklch(0.45 0.18 268) var(--p, 30%), #E6E4DD var(--p, 30%));
}
input[type="range"].rng::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: white;
  border: 1px solid #E6E4DD;
  margin-top: -8px;
  box-shadow: 0 1px 2px rgba(10, 10, 11, 0.08), 0 6px 18px -6px rgba(10, 10, 11, 0.18);
  cursor: grab;
}
input[type="range"].rng::-webkit-slider-thumb:active { cursor: grabbing; }
input[type="range"].rng::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: white;
  border: 1px solid #E6E4DD;
  box-shadow: 0 1px 2px rgba(10, 10, 11, 0.08), 0 6px 18px -6px rgba(10, 10, 11, 0.18);
}

/* --- Striped placeholder for logo slots ------------------------------------ */
.stripe-slot {
  background-image: repeating-linear-gradient(135deg, #ECEAE2 0 8px, #F4F2EC 8px 16px);
}

/* --- Animations ------------------------------------------------------------ */
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.float-y { animation: floatY 7s ease-in-out infinite; }

@keyframes pulseDot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .5; transform: scale(.85); } }
.pulse-dot { animation: pulseDot 1.6s ease-in-out infinite; }

@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.rise { animation: rise .6s cubic-bezier(.2, .7, .2, 1) both; }

/* --- Focus rings ----------------------------------------------------------- */
.focus-ring:focus-within { box-shadow: 0 0 0 3px oklch(0.45 0.18 268 / 0.18); }

/* --- Lucide icon sizing ---------------------------------------------------- */
[data-lucide] { width: 1em; height: 1em; display: inline-block; vertical-align: -0.125em; }

/* --- Tabular numerals ------------------------------------------------------ */
.tabular-nums { font-variant-numeric: tabular-nums; }

/* --- Custom scrollbar for category overlay -------------------------------- */
.scroll-soft::-webkit-scrollbar { width: 8px; }
.scroll-soft::-webkit-scrollbar-track { background: transparent; }
.scroll-soft::-webkit-scrollbar-thumb { background: #E6E4DD; border-radius: 999px; }
.scroll-soft::-webkit-scrollbar-thumb:hover { background: #C9C7BF; }

/* --- Hide spin buttons on number inputs ----------------------------------- */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
