:root {
  --ink: #17211d;
  --green: #0b5a40;
  --green-2: #08734d;
  --leaf: #20a465;
  --paper: #f6f7f5;
  --white: #fff;
  --gold: #f2c744;
  --gold-soft: #fff4bf;
  --mint: #eaf8f0;
  --mint-2: #d7f3e4;
  --cream: #fff9e8;
  --line: #e7e9e6;
  --muted: #68716d;
  --shadow: 0 8px 26px rgba(27, 55, 44, .08);
  --radius: 20px;
}

html { background: #eff2ef; }
body { background: #f7f8f6; color: var(--ink); letter-spacing: -.005em; }
.nvt-app { background: #f7f8f6; }
.nvt-shell { width: min(1240px, 100%); padding: 30px 30px 100px; }
.preview-note { background: #fff3b8!important; color: #615014!important; border-bottom: 1px solid #ead780; }

/* App chrome */
.nvt-sidebar { background: #0b4d38; border-right: 0; box-shadow: 10px 0 40px rgba(8, 47, 34, .08); }
.nvt-sidebar-logo { width: 172px; }
.nvt-sidebar nav { gap: 4px; }
.nvt-sidebar nav a, .nvt-sidebar__logout { min-height: 44px; border-radius: 13px; font-size: 14px; color: #d5e8df; transition: .18s ease; }
.nvt-sidebar nav a:hover { background: rgba(255,255,255,.08); transform: translateX(2px); }
.nvt-sidebar nav a.is-active { color: #fff; background: rgba(255,255,255,.13); box-shadow: inset 3px 0 0 var(--gold); }
.nvt-mobile-header { height: 72px; padding: 10px 16px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); box-shadow: 0 5px 20px rgba(24,51,41,.06); backdrop-filter: blur(18px); }
.nvt-mobile-logo-wrap { width: 130px; height: 44px; border-radius: 10px; }
.nvt-wallet-pill { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 14px; background: var(--mint); color: var(--green); box-shadow: none; }
.nvt-bottom-nav { left: 10px; right: 10px; bottom: max(8px, env(safe-area-inset-bottom)); padding: 6px; background: rgba(255,255,255,.97); border: 1px solid #e4e8e4; border-radius: 18px; box-shadow: 0 12px 35px rgba(22,48,38,.18); backdrop-filter: blur(18px); }
.nvt-bottom-nav > a, .nvt-bottom-nav > button { color: #747d78; min-height: 52px; }
.nvt-bottom-nav > a:hover, .nvt-bottom-nav > button:hover { color: var(--green); }
.nvt-bottom-nav .is-active { background: var(--mint); color: var(--green-2); }
.nvt-bottom-nav .is-active span { transform: translateY(-1px); }
.nvt-more-menu { border: 1px solid var(--line); box-shadow: 0 18px 50px rgba(23,53,42,.18); }

/* Type and section rhythm */
.nvt-eyebrow { color: var(--green-2)!important; letter-spacing: .11em!important; }
.nvt-page-head, .nvt-welcome { margin-bottom: 22px; }
.nvt-page-head h1, .nvt-welcome h1 { color: #13271f; font-weight: 850; letter-spacing: -.045em; }
.nvt-page-head p, .nvt-welcome p { color: var(--muted); }
.nvt-section { margin-top: 30px; }
.nvt-section__head { margin-bottom: 14px; align-items: end; }
.nvt-section__head h2, .nvt-card h2 { font-weight: 820; }

/* Surfaces */
.nvt-card, .nvt-profile-card, .nvt-stat, .nvt-offer-card, .nvt-product-card { background: #fff; border: 1px solid var(--line); box-shadow: none; }
.nvt-card, .nvt-profile-card { border-radius: 20px; }
.nvt-card:hover, .nvt-stat:hover, .nvt-offer-card:hover { transform: none; box-shadow: var(--shadow); }

/* Zepto-inspired campaign surface, Nutriveta palette */
.nvt-offer-banner { aspect-ratio: 16/9; border-radius: 26px; padding: clamp(26px,5vw,60px); background: radial-gradient(circle at 83% 22%,rgba(255,255,255,.12) 0 9%,transparent 9.5%), radial-gradient(circle at 90% 72%,rgba(242,199,68,.24) 0 19%,transparent 19.5%), linear-gradient(145deg,#064b34 0%,#08734d 58%,#16a064 100%); box-shadow: 0 18px 48px rgba(9,90,63,.22); }
.nvt-offer-banner::before { border-color: rgba(255,255,255,.16); }
.nvt-offer-banner::after { width: 260px; height: 260px; border-width: 46px; right: -65px; top: -75px; }
.nvt-offer-banner h2 { max-width: 680px; font-size: clamp(28px,4.6vw,58px); font-weight: 900; line-height: .98; }
.nvt-offer-banner .nvt-coin { width: 60px; height: 60px; font-size: 20px; border-width: 5px; }
.nvt-offer-banner .nvt-btn--light { min-height: 48px; padding-inline: 22px!important; border-radius: 15px!important; background: #fff!important; color: var(--green)!important; box-shadow: 0 10px 26px rgba(4,51,35,.18); }

/* Dashboard app cards */
.nvt-dashboard-grid { gap: 14px; }
.nvt-wallet-milestone, .nvt-wallet-milestone--dashboard { background: linear-gradient(145deg,#fff9df,#fff); border: 1px solid #ecdfae; border-radius: 22px; box-shadow: none; }
.nvt-wallet-milestone__coin { background: linear-gradient(145deg,#ffe278,#f2c744); }
.nvt-wallet-milestone__track, .nvt-route { height: 10px; background: #ebeee9; }
.nvt-wallet-milestone__track span, .nvt-route::before { background: linear-gradient(90deg,var(--green-2),#74b94f,var(--gold)); }
.nvt-tracker { background: #fff; }
.nvt-comparison-message { padding: 10px 12px; border: 0; background: var(--gold-soft); }
.nvt-quick-actions { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.nvt-quick-actions a { min-height: 104px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: none; }
.nvt-quick-actions a:hover { transform: translateY(-2px); border-color: #cde7d8; box-shadow: var(--shadow); }
.nvt-quick-actions a span { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 8px; border-radius: 14px; background: var(--mint); color: var(--green-2); }

/* Catalogue */
.nvt-product-tools { position: sticky; top: 8px; z-index: 25; display: grid; gap: 10px; margin-bottom: 16px; padding: 10px; border-radius: 19px; background: rgba(247,248,246,.92); backdrop-filter: blur(18px); }
.nvt-search { max-width: none; min-height: 52px; padding-inline: 17px; border: 1px solid var(--line); border-radius: 16px; background: #fff; box-shadow: 0 7px 22px rgba(22,49,38,.06); }
.nvt-search input { height: 50px; }
.nvt-filters { gap: 8px; }
.nvt-filters button { min-height: 37px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 99px; background: #fff; box-shadow: none; font-size: 13px; font-weight: 730; }
.nvt-filters button.is-active { background: var(--green); color: #fff; border-color: var(--green); }
.nvt-product-grid, .nvt-highlight-strip { grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 13px; }
.nvt-product-card { border-radius: 18px; overflow: hidden; transition: transform .2s ease,box-shadow .2s ease; }
.nvt-product-card:hover { translate: 0 -3px; box-shadow: 0 12px 30px rgba(21,53,40,.11); }
.nvt-product-card__image { aspect-ratio: 1/1; padding: 14px; background: linear-gradient(145deg,#f0f6f1,#fafcf9); }
.nvt-product-card__body { padding: 14px; }
.nvt-product-card h3 { min-height: 2.35em; margin: 3px 0 9px; font-size: 17px; font-weight: 820; }
.nvt-product-card .nvt-eyebrow { font-size: 9px!important; }
.nvt-bag-size { margin: 6px 0; }
.nvt-price-table { margin: 8px 0; }
.nvt-price-table > div { padding: 7px 0; }
.nvt-price-table dt { font-size: 10px; }
.nvt-price-table dd { font-size: 16px; }
.nvt-price-table .nvt-reward-row { margin-inline: -5px; padding: 8px 6px; border-radius: 9px; background: var(--gold-soft); }
.nvt-product-card__action .button { width: 100%; min-height: 42px; border: 2px solid var(--green-2)!important; background: #fff!important; color: var(--green-2)!important; box-shadow: none!important; }
.nvt-product-card__action .button:hover { background: var(--green)!important; color: #fff!important; }
.nvt-product-coin { width: 54px; height: 54px; top: 10px; right: 10px; border-width: 4px; }
.nvt-product-coin strong { font-size: 19px; }
.nvt-scheme-badge { top: 10px; left: 10px; border-radius: 7px; }

/* Wallet, orders, offers and account */
.nvt-stat-grid { gap: 11px; }
.nvt-stat { border-radius: 18px; }
.nvt-stat--primary { background: linear-gradient(145deg,#07553c,#08734d); border-color: transparent; }
.nvt-table-wrap { border: 1px solid var(--line); border-radius: 18px; box-shadow: none; }
.nvt-table th { background: #f0f5f1; }
.nvt-table tbody tr:hover { background: #fbfdfb; }
.nvt-status { background: var(--mint); color: var(--green-2); }
.nvt-offer-grid { gap: 13px; }
.nvt-offer-card { border-radius: 20px; background: linear-gradient(145deg,#fff,#fff9e7); }
.nvt-profile-card { max-width: none; }
.nvt-support-grid { gap: 13px; }

/* Cart and checkout behave like app sheets */
.nvt-cart-totals, .nvt-checkout-order { border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 12px 35px rgba(23,54,42,.09); }
.nvt-checkout-grid { gap: 14px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .nvt-form input, .nvt-form select, .nvt-form textarea { min-height: 48px; border: 1px solid #dfe5e0; border-radius: 13px; background: #fff; }

/* Login and registration */
.nvt-login__brand { background: radial-gradient(circle at 77% 22%,rgba(242,199,68,.16),transparent 14rem),linear-gradient(145deg,#073f2e,#08734d 72%,#18a064); }
.nvt-login__panel { background: #f7f8f6; }
.nvt-login__card { padding: clamp(8px,3vw,28px); }
.nvt-auth-tabs { background: #e9eee9; }
.nvt-auth-tabs button.is-active { color: var(--green-2); box-shadow: 0 7px 18px rgba(16,69,49,.08); }
.nvt-preview-login__form input:focus, .nvt-register-form input:focus, .nvt-form input:focus, .nvt-form select:focus, .nvt-form textarea:focus { border-color: #55ad7a; box-shadow: 0 0 0 4px rgba(32,164,101,.10); }

/* Motion polish */
.nvt-page-head, .nvt-welcome { animation: nvt-app-rise .45s cubic-bezier(.16,1,.3,1) both; }
.nvt-product-card { animation: nvt-app-rise .38s cubic-bezier(.16,1,.3,1) both; }
.nvt-reward-preview-controls { opacity: .22; }
.nvt-reward-preview-controls:hover { opacity: 1; }
@keyframes nvt-app-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

@media (max-width: 980px) {
  .nvt-shell { padding: 22px 16px 100px; }
  .nvt-product-tools { top: 72px; margin-inline: -4px; }
  .nvt-reward-preview-controls { display: none; }
}

@media (max-width: 720px) {
  :root { --radius: 18px; }
  body { background: #f8f9f7; }
  .nvt-page-head h1, .nvt-welcome h1 { font-size: 29px; }
  .nvt-page-head p { font-size: 13px; }
  .nvt-offer-banner { border-radius: 22px; padding: 20px; }
  .nvt-offer-banner h2 { font-size: clamp(21px,6vw,29px); }
  .nvt-offer-banner .nvt-btn { min-height: 38px; }
  .nvt-dashboard-grid { gap: 11px; }
  .nvt-quick-actions { display: flex; gap: 9px; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x mandatory; }
  .nvt-quick-actions a { flex: 0 0 112px; min-height: 100px; scroll-snap-align: start; }
  .nvt-product-grid, .nvt-highlight-strip { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .nvt-product-card__image { aspect-ratio: 1/1; }
  .nvt-product-card__body { padding: 11px; }
  .nvt-product-card h3 { min-height: 2.5em; font-size: 15px; }
  .nvt-price-table dd { font-size: 14px; }
  .nvt-price-table dd small { font-size: 10px; }
  .nvt-product-card__action .button { min-height: 39px!important; padding: 8px!important; font-size: 12px!important; }
  .nvt-product-coin { width: 48px; height: 48px; }
  .nvt-product-coin strong { font-size: 17px; }
  .nvt-product-coin small { font-size: 7px; }
  .nvt-stat { padding: 16px; }
  .nvt-stat strong { font-size: 25px; }
  .nvt-offer-grid { grid-template-columns: 1fr; }
  .nvt-bottom-nav small { font-size: 9px; }
}

@media (max-width: 390px) {
  .nvt-shell { padding-inline: 11px; }
  .nvt-product-grid { gap: 8px; }
  .nvt-product-card__body { padding: 10px; }
  .nvt-price-table dt { font-size: 9px; }
  .nvt-product-coin { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .nvt-page-head, .nvt-welcome, .nvt-product-card { animation: none; }
}
