/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!../../node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!../../node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"Inter","arguments":[{"subsets":["latin","cyrillic"],"variable":"--font-sans","display":"swap"}],"variableName":"inter"} ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/ba9851c3c22cd980-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/21350d82a1f187e9-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/df0a9ae256c0569c-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/8e9860b6e62d6359-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'Inter Fallback';src: local("Arial");ascent-override: 90.44%;descent-override: 22.52%;line-gap-override: 0.00%;size-adjust: 107.12%
}.__className_fcbcbf {font-family: 'Inter', 'Inter Fallback';font-style: normal
}.__variable_fcbcbf {--font-sans: 'Inter', 'Inter Fallback'
}

/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[2].use[1]!../../node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[14].oneOf[2].use[2]!../../node_modules/next/font/google/target.css?{"path":"src/app/layout.tsx","import":"JetBrains_Mono","arguments":[{"subsets":["latin","cyrillic"],"variable":"--font-mono","display":"swap"}],"variableName":"jb"} ***!
  \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(/_next/static/media/886030b0b59bc5a7-s.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(/_next/static/media/0aa834ed78bf6d07-s.p.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(/_next/static/media/67957d42bae0796d-s.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(/_next/static/media/f911b923c6adde36-s.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(/_next/static/media/939c4f875ee75fbb-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(/_next/static/media/bb3ef058b751a6ad-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: 'JetBrains Mono Fallback';src: local("Arial");ascent-override: 75.79%;descent-override: 22.29%;line-gap-override: 0.00%;size-adjust: 134.59%
}.__className_89caef {font-family: 'JetBrains Mono', 'JetBrains Mono Fallback';font-style: normal
}.__variable_89caef {--font-mono: 'JetBrains Mono', 'JetBrains Mono Fallback'
}

/*!****************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../../node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!../../node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/styles/globals.css ***!
  \****************************************************************************************************************************************************************************************************************************************************************************/
/* YoboMarket — порт styles.css из дизайн-бандла claude design (variant B).
   Шрифты подключены через next/font в layout.tsx (Inter + JetBrains Mono).
   Системный стек начинается с Apple SF — на macOS/iOS отрисуется именно он. */

:root {
  /* base — warm-cool white с лёгким фиолетовым подтоном */
  --bg: #F6F5FB;
  --bg-2: #FFFFFF;
  --bg-3: #EEECF7;
  --ink: #0E0B1F;
  --ink-2: #2D2A40;
  --muted: #6B6880;
  --line: #E4E1EE;
  --line-strong: #CFCBE0;

  /* accents */
  --purple: #6B5FE8;
  --purple-ink: #4A3FD1;
  --purple-soft: #B5B0E8;
  --purple-wash: #ECEAF9;
  --purple-wash-2: #DAD6F4;

  /* utility colors */
  --mint: #A8E6C9;
  --amber: #F5C86E;
  --pink: #F5A3C7;
  --coral: #F39182;

  --ok: #2BB673;
  --warn: #E9A84C;
  --err: #E55C5C;

  /* radii */
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 32px;

  /* shadows */
  --shadow-sm: 0 1px 2px rgba(14, 11, 31, 0.04), 0 1px 1px rgba(14, 11, 31, 0.03);
  --shadow-md: 0 8px 24px -8px rgba(74, 63, 209, 0.12), 0 2px 4px rgba(14, 11, 31, 0.04);
  --shadow-lg: 0 24px 48px -16px rgba(74, 63, 209, 0.25), 0 4px 8px rgba(14, 11, 31, 0.04);

  /* text — стек начинается с Apple SF; на macOS/iOS показывается оригинал,
     на остальных платформах — Inter (через next/font, см. layout.tsx). */
  --sans:
    -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display',
    var(--font-sans), system-ui, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --mono:
    'SF Mono', ui-monospace, var(--font-mono), 'Menlo', 'Monaco', 'Consolas', monospace;
}

[data-theme='dark'] {
  --bg: #0E0B1F;
  --bg-2: #17132E;
  --bg-3: #221C3D;
  --ink: #F6F5FB;
  --ink-2: #C8C5D9;
  --muted: #8B87A3;
  --line: #2A2447;
  --line-strong: #3A3360;
  --purple-wash: #221C3D;
  --purple-wash-2: #2D2650;
  --shadow-md: 0 8px 24px -8px rgba(0, 0, 0, 0.5), 0 2px 4px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 24px 48px -16px rgba(0, 0, 0, 0.6), 0 4px 8px rgba(0, 0, 0, 0.3);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: var(--sans);
  background: var(--bg);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body {
  min-height: 100vh;
  font-size: 16px;
  line-height: 1.5;
}

a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, textarea, select { font-family: inherit; color: inherit; }

::selection { background: var(--purple); color: white; }

/* =========== Buttons =========== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 20px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  transition: transform 0.18s cubic-bezier(0.22, 0.61, 0.36, 1), background 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  white-space: nowrap;
}
.btn:hover:not(:disabled) { transform: translateY(-1px); }
.btn:active { transform: translateY(0) scale(0.98); }
.btn:disabled { opacity: 0.6; cursor: not-allowed; }

.btn-primary {
  background: var(--ink);
  color: var(--bg-2);
}
.btn-primary:hover:not(:disabled) { background: var(--purple); }

.btn-purple {
  background: var(--purple);
  color: #fff;
  box-shadow: 0 6px 16px -4px rgba(107, 95, 232, 0.45);
}
.btn-purple:hover:not(:disabled) { background: var(--purple-ink); }

.btn-ghost {
  background: var(--bg-2);
  color: var(--ink);
  border: 1px solid var(--line);
}
.btn-ghost:hover:not(:disabled) { border-color: var(--line-strong); background: var(--bg-3); }

.btn-lg { padding: 16px 28px; font-size: 16px; }
.btn-sm { padding: 8px 14px; font-size: 13px; }

/* Round icon button (header) — мягкий hover */
.icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: var(--ink);
  border: 1px solid var(--line);
  background: transparent;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s cubic-bezier(0.22, 0.61, 0.36, 1);
  cursor: pointer;
}
.icon-btn:hover { background: var(--bg-3); border-color: var(--line-strong); }
.icon-btn:active { transform: scale(0.94); }

/* Строка заказа в /account — мягкий hover-фон, без JS */
.order-row:hover { background: var(--bg-3); }

/* =========== Chips =========== */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  background: var(--purple-wash);
  color: var(--purple-ink);
}
.chip-ink { background: var(--ink); color: var(--bg-2); }
.chip-ghost { background: var(--bg-2); color: var(--ink-2); border: 1px solid var(--line); }

[data-theme='dark'] .chip { color: #C5BEFF; }

/* =========== Cards =========== */
.card {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.card:hover {
  border-color: var(--purple-soft);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

/* =========== Inputs =========== */
.input {
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--r-md);
  background: var(--bg-2);
  border: 1px solid var(--line);
  font-size: 15px;
  transition: border-color 0.15s ease;
  outline: none;
}
.input:focus { border-color: var(--purple); }

/* =========== Typography =========== */
.display {
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.92;
  text-wrap: balance;
}
.h1 {
  font-size: clamp(36px, 5vw, 56px);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1;
  margin: 0;
}
.h2 {
  font-size: clamp(28px, 3.5vw, 38px);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0;
}
.h3 {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
}
.mono { font-family: var(--mono); letter-spacing: -0.02em; }
.small { font-size: 13px; color: var(--muted); }
.muted { color: var(--muted); }

/* =========== Layout =========== */
.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
}

.page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.page-main {
  flex: 1 1;
  /* Лёгкий fade-in при смене страницы — не отвлекает, добавляет плавности */
  animation: fadeIn 0.3s ease-out both;
}

/* =========== Category tile =========== */
.tile {
  position: relative;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  overflow: hidden;
  transition: all 0.2s ease;
  cursor: pointer;
  min-height: 180px;
}
.tile:hover {
  border-color: var(--purple);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

/* =========== Scrollbar =========== */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 999px; }
*::-webkit-scrollbar-thumb:hover { background: var(--muted); }

/* =========== Dashed frame =========== */
.dashed-frame {
  border: 2px dashed var(--ink);
  border-radius: var(--r-lg);
}

/* =========== Placeholder image =========== */
.img-ph {
  background:
    repeating-linear-gradient(
      135deg,
      var(--bg-3) 0,
      var(--bg-3) 8px,
      var(--bg-2) 8px,
      var(--bg-2) 16px
    );
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
}

/* =========== Animations =========== */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes pulse {
  0%, 100% { opacity: 0.85; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.06); }
}
@keyframes spin {
  to { transform: rotate(360deg); }
}
@keyframes blink {
  0%, 45%, 55%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.2); }
}

/* On-mount: лёгкий fade + slight slide-up. Используется для page entry и stagger. */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
@keyframes yobo-skeleton {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.float { animation: float 4s ease-in-out infinite; }
.spin { animation: spin 1s linear infinite; }

/* On-mount хелперы. Используем will-change исключительно во время анимации. */
.anim-fade-up { animation: fadeUp 0.45s cubic-bezier(0.22, 0.61, 0.36, 1) both; }
.anim-fade-in { animation: fadeIn 0.35s ease-out both; }
.anim-scale-in { animation: scaleIn 0.4s cubic-bezier(0.22, 0.61, 0.36, 1) both; }

/* Stagger через CSS variable — задаётся inline style="--i:0/1/2/3..." */
.stagger > * {
  animation: fadeUp 0.5s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  animation-delay: calc(var(--stagger-step, 60ms) * var(--i, 0));
}

/* Reveal-on-scroll: до viewport — скрыт; .is-visible — анимируется */
.reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Smooth scroll по якорям */
html { scroll-behavior: smooth; }

/* Универсальный hover-lift для интерактивных карточек */
.lift {
  transition: transform 0.2s cubic-bezier(0.22, 0.61, 0.36, 1),
              box-shadow 0.2s ease,
              border-color 0.2s ease;
}
.lift:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

/* Для пользователей с reduce-motion — выключаем все наши анимации */
@media (prefers-reduced-motion: reduce) {
  .float, .spin, .anim-fade-up, .anim-fade-in, .anim-scale-in, .stagger > *,
  .reveal { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
  html { scroll-behavior: auto; }
}

/* Speech bubble */
.bubble {
  position: relative;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 500;
  box-shadow: var(--shadow-sm);
}
.bubble::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 24px;
  width: 16px;
  height: 16px;
  background: var(--bg-2);
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  transform: rotate(45deg);
}

/* Toggle switches for payments */
.pay-method {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--bg-2);
  cursor: pointer;
  transition: all 0.15s ease;
}
.pay-method:hover { border-color: var(--purple-soft); }
.pay-method.selected { border-color: var(--purple); background: var(--purple-wash); }

/* Progress steps */
.steps {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--muted);
}
.step-dot {
  width: 24px; height: 24px;
  border-radius: 999px;
  background: var(--bg-3);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 12px;
}
.step-dot.active { background: var(--purple); color: #fff; }
.step-dot.done { background: var(--ok); color: #fff; }

