﻿/* TrendPret Combined CSS - auto-generated */
/* DO NOT EDIT - this file is generated from 8 source CSS files */

/* ====== theme-unified.css ====== */
/* ═══════════════════════════════════════════════════════════════════════════════
   TRENDPREȚ — UNIFIED THEME SYSTEM v4.0  (Complete Bootstrap 5.3.3 Coverage)
   ═══════════════════════════════════════════════════════════════════════════════
   Loaded AFTER Bootstrap 5.3.3.
   Night = default.  Day = [data-theme="day"].
   Every Bootstrap component is themed for both modes.
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §1  CSS CUSTOM PROPERTIES — Night (default)                            ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
:root {
   /* Backgrounds */
   --tp-bg0: #050914;
   --tp-bg1: #071126;
   --tp-bg2: #0a1836;
   --tp-bg3: #0f1419;
   --tp-bg4: #1a1f2e;
   --tp-bg5: #252b3b;
   /* Foregrounds */
   --tp-fg: #eaf0ff;
   --tp-fg-secondary: #9fb0d8;
   --tp-fg-tertiary: #6b7280;
   --tp-fg-muted: #4b5563;
   --tp-muted: #9fb0d8;
   /* Borders */
   --tp-border: rgba(255, 255, 255, .10);
   --tp-border2: rgba(255, 255, 255, .06);
   --tp-border3: rgba(255, 255, 255, .03);
   /* Glows */
   --tp-glow: rgba(63, 161, 255, .35);
   --tp-glow2: rgba(0, 240, 255, .22);
   --tp-glow3: rgba(20, 184, 166, .22);
   --tp-glow4: rgba(46, 229, 157, .12);
   /* Accents */
   --tp-accent: #36d1ff;
   --tp-accent2: #14b8a6;
   --tp-accent-hover: #5ce4ff;
   --tp-accent2-hover: #2dd4bf;
   /* Semantic */
   --tp-good: #2ee59d;
   --tp-good-light: #10b981;
   --tp-bad: #ff5f8a;
   --tp-bad-light: #ef4444;
   --tp-warn: #ffcc66;
   --tp-warn-light: #f59e0b;
   --tp-info: #60a5fa;
   /* Shadows */
   --tp-shadow: 0 12px 36px rgba(0, 0, 0, .22);
   --tp-shadow2: 0 6px 18px rgba(0, 0, 0, .16);
   --tp-shadow3: 0 3px 8px rgba(0, 0, 0, .12);
   --tp-shadow4: 0 1px 4px rgba(0, 0, 0, .08);
   /* Typography */
   --tp-font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif;
   --tp-font-code: "Courier New", Courier, monospace;
   /* Radii */
   --tp-radius: 18px;
   --tp-radius2: 24px;
   --tp-radius3: 12px;
   --tp-radius4: 8px;
   /* Transitions */
   --tp-transition: all .2s cubic-bezier(.4, 0, .2, 1);
   --tp-transition-fast: all .1s cubic-bezier(.4, 0, .2, 1);
   --tp-transition-slow: all .3s cubic-bezier(.4, 0, .2, 1);

   /* === Bootstrap variable overrides (night) === */
   --bs-body-bg: #071126;
   --bs-body-color: #eaf0ff;
   --bs-emphasis-color: #f8fafc;
   --bs-secondary-color: #9fb0d8;
   --bs-tertiary-color: #6b7280;
   --bs-border-color: rgba(255, 255, 255, .10);
   --bs-border-color-translucent: rgba(255, 255, 255, .06);
   --bs-link-color: #36d1ff;
   --bs-link-hover-color: #5ce4ff;
   --bs-code-color: #e879f9;
   --bs-highlight-bg: rgba(255, 204, 102, .15);
   --bs-heading-color: #f1f5f9;
   --bs-secondary-bg: rgba(255, 255, 255, .06);
   --bs-secondary-bg-rgb: 255, 255, 255;
   --bs-tertiary-bg: rgba(255, 255, 255, .03);
   --bs-tertiary-bg-rgb: 255, 255, 255;
   --bs-primary-rgb: 54, 209, 255;
   --bs-success-rgb: 34, 197, 94;
   --bs-danger-rgb: 239, 68, 68;
   --bs-warning-rgb: 245, 158, 11;
   --bs-info-rgb: 14, 165, 233;
   --bs-light-rgb: 248, 250, 252;
   --bs-dark-rgb: 30, 41, 59;
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §2  CSS CUSTOM PROPERTIES — Day                                        ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
:root[data-theme="day"] {
   --tp-bg0: #f4f6ff;
   --tp-bg1: #eef2ff;
   --tp-bg2: #e9eeff;
   --tp-bg3: #ffffff;
   --tp-bg4: #f8f9fc;
   --tp-bg5: #f1f5f9;
   --tp-fg: #0b1020;
   --tp-fg-secondary: #56638a;
   --tp-fg-tertiary: #94a3b8;
   --tp-fg-muted: #cbd5e1;
   --tp-muted: #64748b;
   --tp-border: rgba(15, 23, 42, .10);
   --tp-border2: rgba(15, 23, 42, .06);
   --tp-border3: rgba(15, 23, 42, .03);
   --tp-glow: rgba(14, 116, 144, .16);
   --tp-glow2: rgba(14, 165, 233, .12);
   --tp-glow3: rgba(13, 148, 136, .08);
   --tp-glow4: rgba(34, 197, 94, .08);
   --tp-accent: #0891b2;
   --tp-accent2: #0d9488;
   --tp-accent-hover: #0e7490;
   --tp-accent2-hover: #0f766e;
   --tp-good: #16a34a;
   --tp-good-light: #22c55e;
   --tp-bad: #dc2626;
   --tp-bad-light: #ef4444;
   --tp-warn: #f59e0b;
   --tp-warn-light: #fbbf24;
   --tp-info: #0891b2;
   --tp-shadow: 0 8px 24px rgba(15, 23, 42, .08);
   --tp-shadow2: 0 4px 14px rgba(15, 23, 42, .06);
   --tp-shadow3: 0 2px 6px rgba(15, 23, 42, .04);
   --tp-shadow4: 0 1px 3px rgba(15, 23, 42, .03);

   --bs-body-bg: #f4f6ff;
   --bs-body-color: #0b1020;
   --bs-emphasis-color: #0f172a;
   --bs-secondary-color: #56638a;
   --bs-tertiary-color: #94a3b8;
   --bs-border-color: rgba(15, 23, 42, .10);
   --bs-border-color-translucent: rgba(15, 23, 42, .06);
   --bs-link-color: #0891b2;
   --bs-link-hover-color: #0e7490;
   --bs-code-color: #9333ea;
   --bs-highlight-bg: rgba(245, 158, 11, .12);
   --bs-heading-color: #1e293b;
   --bs-secondary-bg: #f1f5f9;
   --bs-secondary-bg-rgb: 241, 245, 249;
   --bs-tertiary-bg: #f8fafc;
   --bs-tertiary-bg-rgb: 248, 250, 252;
   --bs-primary-rgb: 8, 145, 178;
   --bs-success-rgb: 22, 163, 74;
   --bs-danger-rgb: 220, 38, 38;
   --bs-warning-rgb: 217, 119, 6;
   --bs-info-rgb: 14, 165, 233;
   --bs-light-rgb: 248, 250, 252;
   --bs-dark-rgb: 15, 23, 42;
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §3  BASE / RESET                                                       ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
* {
   box-sizing: border-box
}

html {
   scroll-behavior: smooth
}

html,
body {
   margin: 0;
   padding: 0
}

body {
   font-family: var(--tp-font);
   display: flex;
   flex-direction: column;
   min-height: 100vh;
   background-color: var(--tp-bg2);
   background-image:
      radial-gradient(1200px 800px at 15% 10%, rgba(20, 184, 166, .22), transparent 60%),
      radial-gradient(900px 700px at 85% 15%, rgba(54, 209, 255, .18), transparent 55%),
      radial-gradient(900px 900px at 55% 85%, rgba(46, 229, 157, .12), transparent 55%),
      linear-gradient(180deg, var(--tp-bg0), var(--tp-bg1) 40%, var(--tp-bg2));
   background-attachment: fixed;
   color: var(--tp-fg);
   transition: background-color .3s ease, color .3s ease;
}

[data-theme="day"] body {
   background-color: var(--tp-bg1);
   background-image: linear-gradient(180deg, var(--tp-bg0), var(--tp-bg1));
   background-attachment: fixed;
   color: var(--tp-fg)
}

/* Prevent horizontal overflow without using overflow-x (which breaks position:sticky) */
body > *:not(script):not(style) {
   max-width: 100vw;
}

.tp-noise::before {
   content: "";
   position: fixed;
   inset: 0;
   pointer-events: none;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
   mix-blend-mode: overlay;
   opacity: .25;
   z-index: 0;
}

a {
   color: var(--tp-accent);
   text-decoration: none;
   transition: var(--tp-transition-fast)
}

a:hover {
   color: var(--tp-accent-hover)
}

[data-theme="day"] a {
   color: #0891b2
}

[data-theme="day"] a:hover {
   color: #5568d3
}

hr {
   border-color: var(--tp-border);
   opacity: .6
}

[data-theme="night"] hr {
   border-color: rgba(255, 255, 255, .08)
}

[data-theme="day"] hr {
   border-color: rgba(15, 23, 42, .10)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §4  TYPOGRAPHY                                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
h1,
h2,
h3,
h4,
h5,
h6 {
   color: var(--tp-fg);
   font-weight: 700;
   margin-bottom: 1rem
}

h1 {
   font-size: 2.5rem
}

h2 {
   font-size: 2rem
}

h3 {
   font-size: 1.5rem
}

h4 {
   font-size: 1.25rem
}

h5 {
   font-size: 1.1rem
}

h6 {
   font-size: 1rem
}

p {
   color: var(--tp-fg);
   line-height: 1.6;
   margin-bottom: 1rem
}

[data-theme="day"] h1,
[data-theme="day"] h2,
[data-theme="day"] h3,
[data-theme="day"] h4,
[data-theme="day"] h5,
[data-theme="day"] h6 {
   color: #1e293b
}

code {
   font-family: var(--tp-font-code);
   background: var(--tp-bg3);
   padding: .2rem .4rem;
   border-radius: var(--tp-radius4);
   color: var(--tp-accent)
}

pre {
   background: var(--tp-bg3);
   border: 1px solid var(--tp-border);
   border-radius: var(--tp-radius3);
   padding: 1rem;
   overflow-x: auto
}

[data-theme="day"] code {
   background: #f1f5f9;
   color: #9333ea
}

[data-theme="day"] pre {
   background: #f8fafc;
   border-color: #e2e8f0
}

mark,
.mark {
   background: rgba(255, 204, 102, .15);
   color: var(--tp-fg);
   padding: .15em .35em;
   border-radius: 4px
}

[data-theme="day"] mark,
[data-theme="day"] .mark {
   background: rgba(245, 158, 11, .15);
   color: #1e293b
}

blockquote {
   border-left: 4px solid var(--tp-accent);
   padding: .75rem 1.25rem;
   margin: 1rem 0;
   background: rgba(255, 255, 255, .03);
   border-radius: 0 var(--tp-radius4) var(--tp-radius4) 0
}

[data-theme="day"] blockquote {
   background: rgba(8, 145, 178, .04);
   border-left-color: #0891b2
}

.lead {
   font-size: 1.25rem;
   font-weight: 300;
   color: var(--tp-fg-secondary)
}

[data-theme="day"] .lead {
   color: #475569
}

/* ── Text utilities ───────────────────────────────────────────────────────── */
.tp-muted,
.text-muted {
   color: var(--tp-fg-secondary) !important;
   opacity: 1 !important
}

.text-secondary {
   color: var(--tp-fg-secondary) !important
}

.small,
small {
   opacity: .95;
   font-size: .875rem
}

[data-theme="day"] .tp-muted,
[data-theme="day"] .text-muted {
   color: #64748b !important
}

[data-theme="night"] small,
[data-theme="night"] .small {
   color: #d1d5db;
   opacity: .85
}

/* Bootstrap text-* color classes */
.text-primary {
   color: var(--tp-accent) !important
}

.text-success {
   color: var(--tp-good) !important
}

.text-danger {
   color: var(--tp-bad) !important
}

.text-warning {
   color: var(--tp-warn) !important
}

.text-info {
   color: var(--tp-info) !important
}

[data-theme="day"] .text-primary {
   color: #0891b2 !important
}

[data-theme="day"] .text-success {
   color: #16a34a !important
}

[data-theme="day"] .text-danger {
   color: #dc2626 !important
}

[data-theme="day"] .text-warning {
   color: #d97706 !important
}

[data-theme="day"] .text-info {
   color: #0ea5e9 !important
}

[data-theme="day"] .text-dark {
   color: #1e293b !important
}

[data-theme="day"] .text-body {
   color: #0b1020 !important
}

[data-theme="day"] .text-black {
   color: #0f172a !important
}

[data-theme="day"] .text-light {
   color: #64748b !important
}

[data-theme="day"] .text-white {
   color: #0f172a !important
}

[data-theme="night"] .text-primary {
   color: #60a5fa !important
}

[data-theme="night"] .text-success {
   color: #4ade80 !important
}

[data-theme="night"] .text-danger {
   color: #f87171 !important
}

[data-theme="night"] .text-warning {
   color: #fbbf24 !important
}

[data-theme="night"] .text-info {
   color: #38bdf8 !important
}

[data-theme="night"] .text-dark {
   color: rgba(255, 255, 255, .88) !important
}

[data-theme="night"] .text-body {
   color: rgba(255, 255, 255, .88) !important
}

[data-theme="night"] .text-black {
   color: rgba(255, 255, 255, .88) !important
}

[data-theme="night"] .text-light {
   color: rgba(255, 255, 255, .7) !important
}

[data-theme="night"] .text-white {
   color: #fff !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §5  BACKGROUND UTILITIES                                               ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .bg-white {
   background: rgba(255, 255, 255, .06) !important
}

[data-theme="night"] .bg-light {
   background: rgba(255, 255, 255, .05) !important
}

[data-theme="night"] .bg-body {
   background: var(--tp-bg1) !important
}

[data-theme="night"] .bg-body-secondary {
   background: rgba(255, 255, 255, .04) !important
}

[data-theme="night"] .bg-body-tertiary {
   background: rgba(255, 255, 255, .03) !important
}

[data-theme="night"] .bg-dark {
   background: rgba(255, 255, 255, .08) !important
}

[data-theme="night"] .bg-transparent {
   background: transparent !important
}

[data-theme="day"] .bg-white {
   background: #fff !important
}

[data-theme="day"] .bg-light {
   background: #f8fafc !important
}

[data-theme="day"] .bg-body {
   background: #f4f6ff !important
}

[data-theme="day"] .bg-body-secondary {
   background: #f1f5f9 !important
}

[data-theme="day"] .bg-body-tertiary {
   background: #f8fafc !important
}

[data-theme="day"] .bg-dark {
   background: #1e293b !important;
   color: #f8fafc !important
}

/* Semantic backgrounds */
.bg-primary {
   background: rgba(var(--bs-primary-rgb), .75) !important
}

.bg-success {
   background: rgba(var(--bs-success-rgb), .65) !important
}

.bg-danger {
   background: rgba(var(--bs-danger-rgb), .65) !important
}

.bg-warning {
   background: rgba(var(--bs-warning-rgb), .65) !important
}

.bg-info {
   background: rgba(var(--bs-info-rgb), .65) !important
}

.bg-secondary {
   background: rgba(108, 117, 125, .55) !important
}

[data-theme="day"] .bg-primary {
   background: #0891b2 !important;
   color: #fff !important
}

[data-theme="day"] .bg-success {
   background: #16a34a !important;
   color: #fff !important
}

[data-theme="day"] .bg-danger {
   background: #dc2626 !important;
   color: #fff !important
}

[data-theme="day"] .bg-warning {
   background: #f59e0b !important;
   color: #1c1917 !important
}

[data-theme="day"] .bg-info {
   background: #0ea5e9 !important;
   color: #fff !important
}

[data-theme="day"] .bg-secondary {
   background: #64748b !important;
   color: #fff !important
}

[data-theme="night"] .bg-primary {
   background: rgba(54, 209, 255, .2) !important;
   color: #93c5fd !important
}

[data-theme="night"] .bg-success {
   background: rgba(34, 197, 94, .2) !important;
   color: #86efac !important
}

[data-theme="night"] .bg-danger {
   background: rgba(239, 68, 68, .2) !important;
   color: #fca5a5 !important
}

[data-theme="night"] .bg-warning {
   background: rgba(245, 158, 11, .2) !important;
   color: #fcd34d !important
}

[data-theme="night"] .bg-info {
   background: rgba(14, 165, 233, .2) !important;
   color: #7dd3fc !important
}

[data-theme="night"] .bg-secondary {
   background: rgba(108, 117, 125, .25) !important;
   color: #d1d5db !important
}

/* Subtle backgrounds */
[data-theme="night"] .bg-primary-subtle {
   background: rgba(54, 209, 255, .12) !important;
   color: #93c5fd !important
}

[data-theme="night"] .bg-success-subtle {
   background: rgba(34, 197, 94, .12) !important;
   color: #86efac !important
}

[data-theme="night"] .bg-danger-subtle {
   background: rgba(239, 68, 68, .12) !important;
   color: #fca5a5 !important
}

[data-theme="night"] .bg-warning-subtle {
   background: rgba(245, 158, 11, .12) !important;
   color: #fcd34d !important
}

[data-theme="night"] .bg-info-subtle {
   background: rgba(14, 165, 233, .12) !important;
   color: #7dd3fc !important
}

[data-theme="night"] .bg-light-subtle {
   background: rgba(255, 255, 255, .04) !important
}

[data-theme="night"] .bg-dark-subtle {
   background: rgba(255, 255, 255, .08) !important
}

[data-theme="night"] .bg-secondary-subtle {
   background: rgba(108, 117, 125, .15) !important;
   color: #d1d5db !important
}

[data-theme="day"] .bg-primary-subtle {
   background: rgba(8, 145, 178, .08) !important;
   color: #1e40af !important
}

[data-theme="day"] .bg-success-subtle {
   background: rgba(22, 163, 74, .08) !important;
   color: #166534 !important
}

[data-theme="day"] .bg-danger-subtle {
   background: rgba(220, 38, 38, .08) !important;
   color: #991b1b !important
}

[data-theme="day"] .bg-warning-subtle {
   background: rgba(217, 119, 6, .08) !important;
   color: #92400e !important
}

[data-theme="day"] .bg-info-subtle {
   background: rgba(14, 165, 233, .08) !important;
   color: #075985 !important
}

[data-theme="day"] .bg-light-subtle {
   background: #f8fafc !important
}

[data-theme="day"] .bg-dark-subtle {
   background: #e2e8f0 !important
}

[data-theme="day"] .bg-secondary-subtle {
   background: #f1f5f9 !important;
   color: #475569 !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §6  CONTAINERS                                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.container {
   max-width: 1320px;
   margin-left: auto;
   margin-right: auto;
   padding-left: 1rem;
   padding-right: 1rem
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §7  CARDS                                                               ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-card,
.card {
   background: rgba(30,41,59,.55);
   border: 1px solid rgba(255,255,255,.08);
   border-radius: var(--tp-radius2);
   box-shadow: 0 8px 32px rgba(0,0,0,.18);
   backdrop-filter: blur(18px);
   -webkit-backdrop-filter: blur(18px);
   transition: var(--tp-transition);
   color: var(--tp-fg);
}

[data-theme="day"] .tp-card,
[data-theme="day"] .card {
   background: rgba(255,255,255,.65);
   border-color: rgba(0,0,0,.08);
   color: #334155;
   box-shadow: 0 4px 24px rgba(0,0,0,.06)
}

[data-theme="night"] .tp-card,
[data-theme="night"] .card {
   background: rgba(26,31,46,.55);
   border-color: rgba(255,255,255,.08);
   color: #e5e7eb
}

.tp-card-hd,
.tp-card-header,
.card-header {
   padding: 1.25rem 1.5rem;
   border-bottom: 1px solid var(--tp-border2);
   display: flex;
   align-items: center;
   justify-content: space-between;
   font-weight: 700;
   letter-spacing: .02em;
   background: transparent;
   color: var(--tp-fg);
}

[data-theme="day"] .card-header {
   background: rgba(248,249,252,.5);
   border-bottom-color: rgba(0,0,0,.06);
   color: #1e293b
}

[data-theme="night"] .card-header {
   background: rgba(255, 255, 255, .04);
   border-bottom-color: rgba(255, 255, 255, .06);
   color: #f1f5f9
}

/* Card header with bg- variants */
[data-theme="night"] .card-header.bg-primary {
   background: rgba(54, 209, 255, .15) !important;
   color: #93c5fd !important;
   border-bottom-color: rgba(54, 209, 255, .2) !important
}

[data-theme="night"] .card-header.bg-success {
   background: rgba(34, 197, 94, .15) !important;
   color: #86efac !important;
   border-bottom-color: rgba(34, 197, 94, .2) !important
}

[data-theme="night"] .card-header.bg-danger {
   background: rgba(239, 68, 68, .15) !important;
   color: #fca5a5 !important
}

[data-theme="night"] .card-header.bg-warning {
   background: rgba(245, 158, 11, .15) !important;
   color: #fcd34d !important
}

[data-theme="night"] .card-header.bg-info {
   background: rgba(14, 165, 233, .15) !important;
   color: #7dd3fc !important
}

[data-theme="night"] .card-header.bg-light {
   background: rgba(255, 255, 255, .04) !important;
   color: #e5e7eb !important
}

[data-theme="night"] .card-header.bg-dark {
   background: rgba(255, 255, 255, .08) !important;
   color: #f1f5f9 !important
}

.tp-card-title {
   font-weight: 700;
   letter-spacing: .2px
}

.card-title {
   color: var(--tp-fg);
   font-weight: 700
}

[data-theme="day"] .card-title {
   color: #1e293b
}

[data-theme="night"] .card-title {
   color: #f1f5f9
}

.card-text {
   color: var(--tp-fg-secondary)
}

[data-theme="day"] .card-text {
   color: #475569
}

[data-theme="night"] .card-text {
   color: #9fb0d8
}

.tp-card-bd,
.tp-card-body,
.card-body {
   padding: 1.25rem 1.5rem;
   color: var(--tp-fg)
}

.card-footer {
   padding: 1rem 1.5rem;
   border-top: 1px solid var(--tp-border2);
   background: transparent;
   color: var(--tp-fg)
}

[data-theme="day"] .card-footer {
   background: rgba(248,249,252,.5);
   border-top-color: rgba(0,0,0,.06)
}

[data-theme="night"] .card-footer {
   background: rgba(255, 255, 255, .03);
   border-top-color: rgba(255, 255, 255, .06)
}

.card-img-top {
   border-top-left-radius: calc(var(--tp-radius2) - 1px);
   border-top-right-radius: calc(var(--tp-radius2) - 1px)
}

.tp-card.hoverable {
   transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease
}

.tp-card.hoverable:hover {
   transform: translateY(-4px);
   border-color: rgba(255,255,255,.14);
   box-shadow: 0 22px 70px rgba(0, 0, 0, .35), 0 0 0 1px rgba(54, 209, 255, .08)
}

[data-theme="day"] .tp-card.hoverable {
   box-shadow: 0 4px 24px rgba(0,0,0,.06)
}

[data-theme="day"] .tp-card.hoverable:hover {
   box-shadow: 0 12px 28px rgba(8, 145, 178, .15);
   border-color: rgba(0,0,0,.12);
   transform: translateY(-4px)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §8  BUTTONS — COMPLETE                                                 ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.btn,
.tp-btn {
   padding: .6rem 1.2rem;
   border-radius: 8px;
   font-weight: 600;
   transition: all .2s ease;
   border: none;
   cursor: pointer;
   position: relative;
   overflow: hidden;
}

.btn:hover,
.tp-btn:hover {
   transform: scale(1.02)
}

.btn:active,
.tp-btn:active {
   transform: scale(0.98)
}

/* Gradient hero button */
.tp-btn,
.btn.tp-btn {
   border: none !important;
   background: linear-gradient(135deg, #0891b2, #0ea5e9) !important;
   box-shadow: 0 2px 6px rgba(8, 145, 178, .15);
   border-radius: 8px !important;
   font-weight: 700;
   color: #fff !important;
}

.tp-btn:hover {
   filter: brightness(1.06);
   box-shadow: 0 3px 10px rgba(8, 145, 178, .18)
}

[data-theme="night"] .tp-btn {
   color: #fff !important
}

/* ── Solid buttons ─────────────────────────────────────────────────────── */
.btn-primary {
   background: linear-gradient(135deg, #0891b2, #0ea5e9) !important;
   color: #fff !important;
   border: none !important;
   border-radius: 8px !important;
   box-shadow: 0 2px 6px rgba(8, 145, 178, .15)
}

.btn-primary:hover,
.btn-primary:focus {
   filter: brightness(1.08);
   box-shadow: 0 3px 10px rgba(8, 145, 178, .22)
}

.btn-secondary {
   background: var(--tp-bg4);
   color: var(--tp-fg);
   border: 1px solid var(--tp-border)
}

.btn-secondary:hover {
   background: var(--tp-bg5);
   border-color: var(--tp-border)
}

.btn-success {
   background: var(--tp-good);
   color: #fff
}

.btn-success:hover {
   background: var(--tp-good-light)
}

.btn-danger {
   background: var(--tp-bad);
   color: #fff
}

.btn-danger:hover {
   background: var(--tp-bad-light)
}

.btn-warning {
   background: var(--tp-warn);
   color: #1c1917
}

.btn-warning:hover {
   background: var(--tp-warn-light)
}

.btn-info {
   background: var(--tp-info);
   color: #fff
}

.btn-info:hover {
   background: #0e7490
}

.btn-light {
   background: var(--tp-bg5);
   color: var(--tp-fg);
   border: 1px solid var(--tp-border2)
}

.btn-light:hover {
   background: var(--tp-bg4);
   border-color: var(--tp-border)
}

.btn-dark {
   background: var(--tp-bg3);
   color: var(--tp-fg);
   border: 1px solid var(--tp-border)
}

.btn-dark:hover {
   background: var(--tp-bg4)
}

.btn-link {
   background: transparent;
   color: var(--tp-accent);
   border: none;
   text-decoration: underline;
   box-shadow: none
}

.btn-link:hover {
   color: var(--tp-accent-hover)
}

/* Day solid overrides */
[data-theme="day"] .btn-primary {
   background: linear-gradient(135deg, #0891b2, #0ea5e9) !important;
   border: none !important;
   color: #fff !important
}

[data-theme="day"] .btn-secondary {
   background: #64748b !important;
   border-color: #64748b !important;
   color: #fff !important
}

[data-theme="day"] .btn-success {
   background: #22c55e !important;
   border-color: #22c55e !important;
   color: #fff !important
}

[data-theme="day"] .btn-danger {
   background: #ef4444 !important;
   border-color: #ef4444 !important;
   color: #fff !important
}

[data-theme="day"] .btn-warning {
   background: #f59e0b !important;
   border-color: #f59e0b !important;
   color: #1c1917 !important
}

[data-theme="day"] .btn-info {
   background: #0ea5e9 !important;
   border-color: #0ea5e9 !important;
   color: #fff !important
}

[data-theme="day"] .btn-light {
   background: #f1f5f9 !important;
   border-color: #e2e8f0 !important;
   color: #334155 !important
}

[data-theme="day"] .btn-dark {
   background: #1e293b !important;
   border-color: #1e293b !important;
   color: #f8fafc !important
}

[data-theme="day"] .btn-link {
   color: #0891b2 !important
}

[data-theme="day"] .btn-link:hover {
   color: #0e7490 !important
}

/* Night solid overrides */
[data-theme="night"] .btn-primary {
   background: linear-gradient(135deg, #36d1ff, #0ea5e9) !important;
   border: none !important;
   color: #fff !important
}

[data-theme="night"] .btn-primary:hover {
   filter: brightness(1.1)
}

[data-theme="night"] .btn-secondary {
   background: rgba(108, 117, 125, .65) !important;
   border-color: rgba(108, 117, 125, .65) !important;
   color: #fff !important
}

[data-theme="night"] .btn-success {
   background: #22c55e !important;
   border-color: #22c55e !important;
   color: #fff !important
}

[data-theme="night"] .btn-success:hover {
   background: #16a34a !important
}

[data-theme="night"] .btn-danger {
   background: #ef4444 !important;
   border-color: #ef4444 !important;
   color: #fff !important
}

[data-theme="night"] .btn-danger:hover {
   background: #dc2626 !important
}

[data-theme="night"] .btn-warning {
   background: #f59e0b !important;
   border-color: #f59e0b !important;
   color: #1c1917 !important
}

[data-theme="night"] .btn-warning:hover {
   background: #d97706 !important
}

[data-theme="night"] .btn-info {
   background: #0ea5e9 !important;
   border-color: #0ea5e9 !important;
   color: #fff !important
}

[data-theme="night"] .btn-info:hover {
   background: #0284c7 !important
}

[data-theme="night"] .btn-light {
   background: rgba(255, 255, 255, .08) !important;
   border-color: rgba(255, 255, 255, .12) !important;
   color: #e5e7eb !important
}

[data-theme="night"] .btn-light:hover {
   background: rgba(255, 255, 255, .12) !important
}

[data-theme="night"] .btn-dark {
   background: rgba(255, 255, 255, .12) !important;
   border-color: rgba(255, 255, 255, .18) !important;
   color: #f1f5f9 !important
}

[data-theme="night"] .btn-dark:hover {
   background: rgba(255, 255, 255, .18) !important
}

[data-theme="night"] .btn-link {
   color: #60a5fa !important
}

[data-theme="night"] .btn-link:hover {
   color: #93c5fd !important
}

/* ── Outline buttons — Night ───────────────────────────────────────────── */
[data-theme="night"] .btn-outline-primary {
   color: #60a5fa !important;
   border-color: rgba(96, 165, 250, .45) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-primary:hover {
   background: rgba(96, 165, 250, .15) !important;
   color: #93c5fd !important;
   border-color: rgba(96, 165, 250, .6) !important
}

[data-theme="night"] .btn-outline-secondary {
   color: rgba(255, 255, 255, .75) !important;
   border-color: rgba(255, 255, 255, .20) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-secondary:hover {
   background: rgba(255, 255, 255, .08) !important;
   color: rgba(255, 255, 255, .92) !important
}

[data-theme="night"] .btn-outline-success {
   color: #4ade80 !important;
   border-color: rgba(74, 222, 128, .45) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-success:hover {
   background: rgba(74, 222, 128, .15) !important;
   color: #86efac !important
}

[data-theme="night"] .btn-outline-danger {
   color: #f87171 !important;
   border-color: rgba(248, 113, 113, .45) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-danger:hover {
   background: rgba(248, 113, 113, .15) !important;
   color: #fca5a5 !important
}

[data-theme="night"] .btn-outline-warning {
   color: #fbbf24 !important;
   border-color: rgba(251, 191, 36, .45) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-warning:hover {
   background: rgba(251, 191, 36, .15) !important;
   color: #fcd34d !important
}

[data-theme="night"] .btn-outline-info {
   color: #38bdf8 !important;
   border-color: rgba(56, 189, 248, .45) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-info:hover {
   background: rgba(56, 189, 248, .15) !important;
   color: #7dd3fc !important
}

[data-theme="night"] .btn-outline-light {
   color: rgba(255, 255, 255, .85) !important;
   border-color: rgba(255, 255, 255, .25) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-light:hover {
   background: rgba(255, 255, 255, .08) !important;
   color: #fff !important
}

[data-theme="night"] .btn-outline-dark {
   color: rgba(255, 255, 255, .75) !important;
   border-color: rgba(255, 255, 255, .20) !important;
   background: transparent !important
}

[data-theme="night"] .btn-outline-dark:hover {
   background: rgba(255, 255, 255, .08) !important;
   color: #fff !important
}

/* ── Outline buttons — Day ─────────────────────────────────────────────── */
[data-theme="day"] .btn-outline-primary {
   color: #0891b2 !important;
   border-color: #0891b2 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-primary:hover {
   background: rgba(8, 145, 178, .08) !important
}

[data-theme="day"] .btn-outline-secondary {
   color: #475569 !important;
   border-color: #94a3b8 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-secondary:hover {
   background: rgba(71, 85, 105, .06) !important;
   color: #1e293b !important
}

[data-theme="day"] .btn-outline-success {
   color: #16a34a !important;
   border-color: #16a34a !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-success:hover {
   background: rgba(22, 163, 74, .08) !important
}

[data-theme="day"] .btn-outline-danger {
   color: #dc2626 !important;
   border-color: #dc2626 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-danger:hover {
   background: rgba(220, 38, 38, .08) !important
}

[data-theme="day"] .btn-outline-warning {
   color: #d97706 !important;
   border-color: #d97706 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-warning:hover {
   background: rgba(217, 119, 6, .08) !important
}

[data-theme="day"] .btn-outline-info {
   color: #0284c7 !important;
   border-color: #0284c7 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-info:hover {
   background: rgba(2, 132, 199, .08) !important
}

[data-theme="day"] .btn-outline-light {
   color: #64748b !important;
   border-color: #cbd5e1 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-light:hover {
   background: #f1f5f9 !important;
   color: #334155 !important
}

[data-theme="day"] .btn-outline-dark {
   color: #1e293b !important;
   border-color: #334155 !important;
   background: transparent !important
}

[data-theme="day"] .btn-outline-dark:hover {
   background: rgba(30, 41, 59, .06) !important
}

/* Custom .btn-outline (no Bootstrap variant suffix) */
.btn-outline {
   border: 1px solid var(--tp-border) !important;
   background: rgba(255, 255, 255, .03) !important;
   border-radius: 8px !important;
   color: var(--tp-fg) !important
}

.btn-outline:hover {
   background: rgba(255, 255, 255, .06) !important
}

[data-theme="day"] .btn-outline:not([class*="btn-outline-"]) {
   border-color: rgba(15, 23, 42, .14) !important;
   color: #334155 !important;
   background: rgba(255, 255, 255, .6) !important
}

[data-theme="day"] .btn-outline:not([class*="btn-outline-"]):hover {
   background: rgba(255, 255, 255, .9) !important;
   border-color: rgba(15, 23, 42, .22) !important
}

[data-theme="night"] .btn-outline:not([class*="btn-outline-"]) {
   border-color: rgba(255, 255, 255, .18) !important;
   color: rgba(255, 255, 255, .82) !important;
   background: rgba(255, 255, 255, .03) !important
}

[data-theme="night"] .btn-outline:not([class*="btn-outline-"]):hover {
   background: rgba(255, 255, 255, .08) !important;
   border-color: rgba(255, 255, 255, .30) !important;
   color: #fff !important
}

/* btn-close */
.btn-close {
   background: transparent;
   border: none;
   opacity: .7;
   transition: var(--tp-transition-fast)
}

.btn-close:hover {
   opacity: 1
}

[data-theme="night"] .btn-close {
   filter: invert(1) grayscale(100%) brightness(200%)
}

/* Button sizes */
.btn-sm {
   padding: .35rem .75rem;
   font-size: .85rem;
   border-radius: var(--tp-radius4)
}

.btn-lg {
   padding: .75rem 1.5rem;
   font-size: 1.1rem;
   border-radius: var(--tp-radius3)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §9  BADGES — COMPLETE                                                  ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-badge,
.badge {
   display: inline-flex;
   align-items: center;
   gap: .45rem;
   padding: .45rem .65rem;
   border-radius: 999px;
   border: 1px solid var(--tp-border);
   font-size: .85rem;
   font-weight: 600;
   background: rgba(54, 209, 255, .15);
   color: var(--tp-accent);
}

.tp-badge i {
   opacity: .95
}

.tp-badge.soft {
   border-color: var(--tp-border2);
   background: rgba(255, 255, 255, .03)
}

.tp-badge.soft {
   animation: badgePulse 2s ease-in-out infinite
}

[data-theme="day"] .tp-badge,
[data-theme="day"] .badge {
   background: rgba(8, 145, 178, .1);
   color: #0891b2;
   border: 1px solid rgba(8, 145, 178, .2)
}

[data-theme="night"] .tp-badge,
[data-theme="night"] .badge {
   background: rgba(54, 209, 255, .12);
   color: #5ce4ff;
   border: 1px solid rgba(54, 209, 255, .25)
}

[data-theme="night"] .tp-badge.soft {
   background: rgba(54, 209, 255, .15);
   color: #7eeaff
}

/* Bootstrap badge colors */
[data-theme="day"] .badge.bg-primary,
.badge.text-bg-primary {
   background: #0891b2 !important;
   color: #fff !important;
   border: none !important
}

[data-theme="day"] .badge.bg-secondary,
.badge.text-bg-secondary {
   background: #64748b !important;
   color: #fff !important;
   border: none !important
}

[data-theme="day"] .badge.bg-success,
.badge.text-bg-success {
   background: #16a34a !important;
   color: #fff !important;
   border: none !important
}

[data-theme="day"] .badge.bg-danger,
.badge.text-bg-danger {
   background: #dc2626 !important;
   color: #fff !important;
   border: none !important
}

[data-theme="day"] .badge.bg-warning,
.badge.text-bg-warning {
   background: #f59e0b !important;
   color: #1c1917 !important;
   border: none !important
}

[data-theme="day"] .badge.bg-info,
.badge.text-bg-info {
   background: #0ea5e9 !important;
   color: #fff !important;
   border: none !important
}

[data-theme="day"] .badge.bg-light,
.badge.text-bg-light {
   background: #f1f5f9 !important;
   color: #334155 !important;
   border: 1px solid #e2e8f0 !important
}

[data-theme="day"] .badge.bg-dark,
.badge.text-bg-dark {
   background: #1e293b !important;
   color: #f8fafc !important;
   border: none !important
}

[data-theme="night"] .badge.bg-primary,
.badge.text-bg-primary {
   background: rgba(96, 165, 250, .25) !important;
   color: #93c5fd !important;
   border: 1px solid rgba(96, 165, 250, .35) !important
}

[data-theme="night"] .badge.bg-secondary,
.badge.text-bg-secondary {
   background: rgba(108, 117, 125, .35) !important;
   color: #d1d5db !important;
   border: 1px solid rgba(108, 117, 125, .4) !important
}

[data-theme="night"] .badge.bg-success,
.badge.text-bg-success {
   background: rgba(34, 197, 94, .25) !important;
   color: #86efac !important;
   border: 1px solid rgba(34, 197, 94, .35) !important
}

[data-theme="night"] .badge.bg-danger,
.badge.text-bg-danger {
   background: rgba(239, 68, 68, .25) !important;
   color: #fca5a5 !important;
   border: 1px solid rgba(239, 68, 68, .35) !important
}

[data-theme="night"] .badge.bg-warning,
.badge.text-bg-warning {
   background: rgba(245, 158, 11, .25) !important;
   color: #fcd34d !important;
   border: 1px solid rgba(245, 158, 11, .35) !important
}

[data-theme="night"] .badge.bg-info,
.badge.text-bg-info {
   background: rgba(14, 165, 233, .25) !important;
   color: #7dd3fc !important;
   border: 1px solid rgba(14, 165, 233, .35) !important
}

[data-theme="night"] .badge.bg-light,
.badge.text-bg-light {
   background: rgba(255, 255, 255, .08) !important;
   color: #e5e7eb !important;
   border: 1px solid rgba(255, 255, 255, .12) !important
}

[data-theme="night"] .badge.bg-dark,
.badge.text-bg-dark {
   background: rgba(255, 255, 255, .12) !important;
   color: #f1f5f9 !important;
   border: 1px solid rgba(255, 255, 255, .18) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §10  FORMS — COMPLETE                                                  ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.form-control,
.form-select,
textarea.form-control {
   background-color: rgba(255, 255, 255, .04);
   border: 1px solid rgba(255, 255, 255, .12);
   color: rgba(255, 255, 255, .92);
   font-family: var(--tp-font);
   transition: border-color .15s ease, box-shadow .15s ease;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus {
   background-color: rgba(255, 255, 255, .06);
   border-color: rgba(54, 209, 255, .5);
   box-shadow: 0 0 0 .2rem rgba(54, 209, 255, .25);
   color: rgba(255, 255, 255, .95);
}

.form-control::placeholder,
textarea.form-control::placeholder {
   color: rgba(255, 255, 255, .35)
}

[data-theme="day"] .form-control,
[data-theme="day"] .form-select,
[data-theme="day"] textarea.form-control {
   background-color: #fff !important;
   border-color: #d1d5db !important;
   color: #1e293b !important;
}

[data-theme="day"] .form-control:focus,
[data-theme="day"] .form-select:focus,
[data-theme="day"] textarea.form-control:focus {
   background-color: #fff !important;
   border-color: #0891b2 !important;
   box-shadow: 0 0 0 .2rem rgba(8, 145, 178, .15) !important;
   color: #1e293b !important;
}

[data-theme="day"] .form-control::placeholder,
[data-theme="day"] textarea.form-control::placeholder {
   color: #9ca3af !important
}

[data-theme="night"] .form-control,
[data-theme="night"] .form-select,
[data-theme="night"] textarea.form-control {
   background-color: rgba(255, 255, 255, .04) !important;
   border-color: rgba(255, 255, 255, .12) !important;
   color: rgba(255, 255, 255, .92) !important;
}

[data-theme="night"] .form-control:focus,
[data-theme="night"] .form-select:focus {
   background-color: rgba(255, 255, 255, .06) !important;
   border-color: rgba(54, 209, 255, .5) !important;
   box-shadow: 0 0 0 .2rem rgba(54, 209, 255, .25) !important;
}

[data-theme="night"] .form-control::placeholder {
   color: rgba(255, 255, 255, .35) !important
}

/* Labels */
.form-label,
label {
   color: var(--tp-fg-secondary);
   font-weight: 500;
   margin-bottom: .5rem
}

[data-theme="day"] .form-label,
[data-theme="day"] label {
   color: #475569 !important
}

[data-theme="night"] .form-label,
[data-theme="night"] label {
   color: rgba(255, 255, 255, .78) !important
}

/* Form text */
.form-text {
   color: var(--tp-fg-tertiary)
}

[data-theme="day"] .form-text {
   color: #64748b !important
}

[data-theme="night"] .form-text {
   color: #9ca3af !important
}

/* Checkboxes & Radios */
.form-check-input {
   background-color: rgba(255, 255, 255, .06);
   border: 1px solid rgba(255, 255, 255, .12);
   cursor: pointer;
   transition: background-color .15s ease, border-color .15s ease
}

.form-check-input:checked {
   background-color: rgba(54, 209, 255, .75);
   border-color: rgba(54, 209, 255, .75)
}

.form-check-input:focus {
   box-shadow: 0 0 0 .2rem rgba(54, 209, 255, .25)
}

[data-theme="day"] .form-check-input {
   background-color: #fff !important;
   border-color: #d1d5db !important
}

[data-theme="day"] .form-check-input:checked {
   background-color: #0891b2 !important;
   border-color: #0891b2 !important
}

[data-theme="day"] .form-check-input:focus {
   box-shadow: 0 0 0 .2rem rgba(8, 145, 178, .2) !important
}

[data-theme="day"] .form-check-label {
   color: #334155 !important
}

[data-theme="night"] .form-check-label {
   color: rgba(255, 255, 255, .88) !important
}

[data-theme="night"] .form-check-input {
   background-color: rgba(255, 255, 255, .06) !important;
   border-color: rgba(255, 255, 255, .22) !important
}

[data-theme="night"] .form-check-input:checked {
   background-color: rgba(54, 209, 255, .7) !important;
   border-color: rgba(54, 209, 255, .7) !important
}

/* Switch */
.form-switch .form-check-input {
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23999'/%3e%3c/svg%3e")
}

[data-theme="night"] .form-switch .form-check-input {
   background-color: rgba(255, 255, 255, .12) !important;
   border-color: rgba(255, 255, 255, .18) !important;
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba(255,255,255,.6)'/%3e%3c/svg%3e") !important
}

[data-theme="night"] .form-switch .form-check-input:checked {
   background-color: rgba(54, 209, 255, .7) !important;
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e") !important
}

[data-theme="day"] .form-switch .form-check-input {
   background-color: #e2e8f0 !important;
   border-color: #cbd5e1 !important
}

[data-theme="day"] .form-switch .form-check-input:checked {
   background-color: #0891b2 !important;
   border-color: #0891b2 !important
}

/* Input group */
.input-group-text {
   background: rgba(255, 255, 255, .06);
   border-color: rgba(255, 255, 255, .12);
   color: rgba(255, 255, 255, .7)
}

[data-theme="day"] .input-group-text {
   background: #f1f5f9 !important;
   border-color: #d1d5db !important;
   color: #475569 !important
}

[data-theme="night"] .input-group-text {
   background: rgba(255, 255, 255, .06) !important;
   border-color: rgba(255, 255, 255, .12) !important;
   color: rgba(255, 255, 255, .7) !important
}

/* Floating labels */
[data-theme="night"] .form-floating>.form-control:focus~label,
[data-theme="night"] .form-floating>.form-control:not(:placeholder-shown)~label {
   color: rgba(255, 255, 255, .65) !important
}

[data-theme="day"] .form-floating>.form-control:focus~label,
[data-theme="day"] .form-floating>.form-control:not(:placeholder-shown)~label {
   color: #64748b !important
}

/* Form-select dropdown arrow */
[data-theme="night"] .form-select {
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e5e7eb' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
   background-repeat: no-repeat !important;
   background-position: right .75rem center !important;
   background-size: 16px 12px !important;
}

[data-theme="night"] .form-select option {
   background: #1a1f2e;
   color: #e5e7eb
}

[data-theme="day"] .form-select {
   background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23374151' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
   background-repeat: no-repeat !important;
   background-position: right .75rem center !important;
   background-size: 16px 12px !important;
}

/* Validation */
.is-invalid {
   border-color: #ef4444 !important
}

.is-invalid:focus {
   box-shadow: 0 0 0 .2rem rgba(239, 68, 68, .25) !important
}

.is-valid {
   border-color: #22c55e !important
}

.is-valid:focus {
   box-shadow: 0 0 0 .2rem rgba(34, 197, 94, .25) !important
}

.invalid-feedback {
   color: #ef4444;
   font-size: .85rem
}

.valid-feedback {
   color: #22c55e;
   font-size: .85rem
}

[data-theme="night"] .invalid-feedback {
   color: #fca5a5 !important
}

[data-theme="night"] .valid-feedback {
   color: #86efac !important
}

/* Range */
.form-range::-webkit-slider-thumb {
   background: var(--tp-accent)
}

.form-range::-moz-range-thumb {
   background: var(--tp-accent)
}

[data-theme="day"] .form-range::-webkit-slider-runnable-track {
   background: #e2e8f0
}

[data-theme="night"] .form-range::-webkit-slider-runnable-track {
   background: rgba(255, 255, 255, .12)
}

/* Number input arrows hide */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
   -webkit-appearance: none;
   margin: 0
}

input[type="number"] {
   -moz-appearance: textfield;
   appearance: textfield
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §11  TABLES — COMPLETE                                                 ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.table {
   color: var(--tp-fg);
   border-color: var(--tp-border2);
   --bs-table-bg: transparent;
   --bs-table-color: var(--tp-fg)
}

.table thead th {
   background-color: rgba(255, 255, 255, .05);
   border-color: var(--tp-border2);
   color: var(--tp-fg);
   font-weight: 700
}

.table tbody tr {
   border-color: var(--tp-border2);
   transition: background .12s ease
}

.table tbody tr:hover {
   background-color: rgba(255, 255, 255, .04)
}

.table td,
.table th {
   border-top: 1px solid var(--tp-border2) !important
}

[data-theme="day"] .table {
   color: #334155;
   --bs-table-bg: transparent;
   --bs-table-color: #334155
}

[data-theme="day"] .table thead th {
   background: #f8f9fc;
   border-color: #e5e7eb;
   border-bottom: 2px solid #e5e7eb;
   color: #1e293b;
   font-weight: 600
}

[data-theme="day"] .table tbody tr:hover {
   background: #f9fafb
}

[data-theme="day"] .table td,
[data-theme="day"] .table th {
   border-color: #e5e7eb !important
}

[data-theme="night"] .table {
   color: #e5e7eb;
   --bs-table-bg: transparent;
   --bs-table-color: #e5e7eb
}

[data-theme="night"] .table thead th {
   background: #1a1f2e;
   color: #f1f5f9;
   border-bottom: 2px solid #374151
}

[data-theme="night"] .table tbody tr {
   border-color: #2d3548
}

[data-theme="night"] .table tbody tr:hover {
   background: #252b3b
}

[data-theme="night"] .table td,
[data-theme="night"] .table th {
   border-color: #2d3548 !important
}

/* Table variants */
[data-theme="night"] .table-striped>tbody>tr:nth-of-type(odd)>* {
   --bs-table-bg-type: rgba(255, 255, 255, .03);
   color: #e5e7eb
}

[data-theme="day"] .table-striped>tbody>tr:nth-of-type(odd)>* {
   --bs-table-bg-type: rgba(0, 0, 0, .02);
   color: #334155
}

[data-theme="night"] .table-hover>tbody>tr:hover>* {
   --bs-table-bg-state: rgba(255, 255, 255, .06);
   color: #f1f5f9
}

[data-theme="day"] .table-hover>tbody>tr:hover>* {
   --bs-table-bg-state: rgba(0, 0, 0, .03);
   color: #1e293b
}

[data-theme="night"] .table-bordered {
   border-color: rgba(255, 255, 255, .08) !important
}

[data-theme="night"] .table-bordered td,
[data-theme="night"] .table-bordered th {
   border-color: rgba(255, 255, 255, .08) !important
}

[data-theme="day"] .table-bordered {
   border-color: #e5e7eb !important
}

[data-theme="day"] .table-bordered td,
[data-theme="day"] .table-bordered th {
   border-color: #e5e7eb !important
}

/* Table contextual */
[data-theme="night"] .table-primary {
   --bs-table-bg: rgba(54, 209, 255, .08);
   --bs-table-color: #93c5fd
}

[data-theme="night"] .table-success {
   --bs-table-bg: rgba(34, 197, 94, .08);
   --bs-table-color: #86efac
}

[data-theme="night"] .table-danger {
   --bs-table-bg: rgba(239, 68, 68, .08);
   --bs-table-color: #fca5a5
}

[data-theme="night"] .table-warning {
   --bs-table-bg: rgba(245, 158, 11, .08);
   --bs-table-color: #fcd34d
}

[data-theme="night"] .table-info {
   --bs-table-bg: rgba(14, 165, 233, .08);
   --bs-table-color: #7dd3fc
}

[data-theme="night"] .table-light {
   --bs-table-bg: rgba(255, 255, 255, .04);
   --bs-table-color: #e5e7eb
}

[data-theme="night"] .table-dark {
   --bs-table-bg: rgba(255, 255, 255, .08);
   --bs-table-color: #f1f5f9
}

[data-theme="night"] .table-active {
   --bs-table-bg: rgba(255, 255, 255, .06);
   --bs-table-color: #f1f5f9
}

[data-theme="day"] .table-primary {
   --bs-table-bg: rgba(8, 145, 178, .06);
   --bs-table-color: #1e40af
}

[data-theme="day"] .table-success {
   --bs-table-bg: rgba(22, 163, 74, .06);
   --bs-table-color: #166534
}

[data-theme="day"] .table-danger {
   --bs-table-bg: rgba(220, 38, 38, .06);
   --bs-table-color: #991b1b
}

[data-theme="day"] .table-warning {
   --bs-table-bg: rgba(217, 119, 6, .06);
   --bs-table-color: #92400e
}

[data-theme="day"] .table-info {
   --bs-table-bg: rgba(14, 165, 233, .06);
   --bs-table-color: #075985
}

[data-theme="day"] .table-active {
   --bs-table-bg: rgba(0, 0, 0, .04);
   --bs-table-color: #1e293b
}

/* Custom .tp-table */
.table.tp-table {
   color: var(--tp-fg);
   --bs-table-bg: transparent;
   --bs-table-color: var(--tp-fg)
}

.table.tp-table thead th {
   color: var(--tp-fg-secondary);
   font-weight: 700;
   border-bottom: 1px solid var(--tp-border) !important
}

.table.tp-table td,
.table.tp-table th {
   border-color: var(--tp-border) !important;
   padding: .85rem
}

.table.tp-table tbody tr:hover {
   background: rgba(255, 255, 255, .06)
}

[data-theme="day"] .table.tp-table tbody tr:hover {
   background: rgba(15, 23, 42, .04)
}

/* Table responsive wrapper */
.table-responsive {
   border-radius: var(--tp-radius4);
   overflow: auto
}

[data-theme="night"] .table-responsive {
   border-color: rgba(255, 255, 255, .08)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §12  ALERTS — COMPLETE                                                 ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.alert {
   border-radius: var(--tp-radius3);
   border: 1px solid;
   padding: 1rem;
   animation: slideInDown .3s ease-out
}

[data-theme="day"] .alert-primary {
   background: rgba(8, 145, 178, .08);
   border-color: rgba(8, 145, 178, .2);
   color: #1e40af
}

[data-theme="day"] .alert-secondary {
   background: #f1f5f9;
   border-color: #e2e8f0;
   color: #475569
}

[data-theme="day"] .alert-success {
   background: #ecfdf5;
   border-color: #a7f3d0;
   color: #065f46
}

[data-theme="day"] .alert-danger {
   background: #fef2f2;
   border-color: #fecaca;
   color: #991b1b
}

[data-theme="day"] .alert-warning {
   background: #fffbeb;
   border-color: #fde68a;
   color: #92400e
}

[data-theme="day"] .alert-info {
   background: #eff6ff;
   border-color: #bfdbfe;
   color: #1e40af
}

[data-theme="day"] .alert-light {
   background: #f8fafc;
   border-color: #e2e8f0;
   color: #475569
}

[data-theme="day"] .alert-dark {
   background: #f1f5f9;
   border-color: #cbd5e1;
   color: #1e293b
}

[data-theme="night"] .alert-primary {
   background: rgba(54, 209, 255, .1);
   border-color: rgba(54, 209, 255, .25);
   color: #93c5fd
}

[data-theme="night"] .alert-secondary {
   background: rgba(255, 255, 255, .04);
   border-color: rgba(255, 255, 255, .08);
   color: #d1d5db
}

[data-theme="night"] .alert-success {
   background: rgba(16, 185, 129, .15);
   border-color: rgba(16, 185, 129, .3);
   color: #6ee7b7
}

[data-theme="night"] .alert-danger {
   background: rgba(239, 68, 68, .15);
   border-color: rgba(239, 68, 68, .3);
   color: #fca5a5
}

[data-theme="night"] .alert-warning {
   background: linear-gradient(135deg, rgba(245, 158, 11, .15), rgba(251, 191, 36, .15)) !important;
   border-color: rgba(245, 158, 11, .35) !important;
   color: #fcd34d
}

[data-theme="night"] .alert-warning strong {
   color: #fbbf24 !important
}

[data-theme="night"] .alert-info {
   background: rgba(59, 130, 246, .15);
   border-color: rgba(59, 130, 246, .3);
   color: #93c5fd
}

[data-theme="night"] .alert-light {
   background: rgba(255, 255, 255, .04);
   border-color: rgba(255, 255, 255, .08);
   color: #e5e7eb
}

[data-theme="night"] .alert-dark {
   background: rgba(255, 255, 255, .06);
   border-color: rgba(255, 255, 255, .10);
   color: #f1f5f9
}

.alert-dismissible .btn-close {
   background: transparent;
   border: none;
   opacity: .7;
   transition: var(--tp-transition-fast)
}

.alert-dismissible .btn-close:hover {
   opacity: 1
}

/* Custom alert boxes */
.tp-alert-box {
   position: relative;
   padding: 1rem 1.25rem;
   margin-bottom: 1rem;
   border: 1px solid transparent;
   border-radius: .375rem
}

.tp-alert-warning {
   background-color: rgba(245, 158, 11, .1);
   border-color: rgba(245, 158, 11, .25);
   color: #92400e
}

.tp-alert-success {
   background-color: rgba(16, 185, 129, .1);
   border-color: rgba(16, 185, 129, .25);
   color: #065f46
}

[data-theme="night"] .tp-alert-warning {
   color: #fcd34d
}

[data-theme="night"] .tp-alert-success {
   color: #6ee7b7
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §13  NAVIGATION — Tabs, Pills, Navbar                                  ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
/* Tabs */
[data-theme="day"] .nav-tabs {
   border-bottom-color: #e5e7eb
}

[data-theme="day"] .nav-tabs .nav-link {
   color: #64748b !important
}

[data-theme="day"] .nav-tabs .nav-link:hover {
   color: #334155 !important;
   border-color: #e5e7eb #e5e7eb #fff !important
}

[data-theme="day"] .nav-tabs .nav-link.active {
   color: #1e293b !important;
   border-color: #0891b2 #0891b2 #fff !important;
   background: #fff !important
}

[data-theme="night"] .nav-tabs {
   border-bottom-color: rgba(255, 255, 255, .08)
}

[data-theme="night"] .nav-tabs .nav-link {
   color: rgba(255, 255, 255, .55) !important
}

[data-theme="night"] .nav-tabs .nav-link:hover {
   color: rgba(255, 255, 255, .85) !important;
   border-color: rgba(255, 255, 255, .12) rgba(255, 255, 255, .12) transparent !important
}

[data-theme="night"] .nav-tabs .nav-link.active {
   color: #fff !important;
   border-color: rgba(54, 209, 255, .5) rgba(54, 209, 255, .5) transparent !important;
   background: rgba(255, 255, 255, .05) !important
}

/* Pills */
.nav-pills .nav-link {
   border-radius: var(--tp-radius3);
   color: var(--tp-fg-secondary)
}

.nav-pills .nav-link.active {
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   color: #fff
}

[data-theme="day"] .nav-pills .nav-link {
   color: #475569 !important
}

[data-theme="day"] .nav-pills .nav-link:hover {
   background: rgba(8, 145, 178, .06) !important;
   color: #0891b2 !important
}

[data-theme="day"] .nav-pills .nav-link.active {
   background: linear-gradient(135deg, #0891b2, #0ea5e9) !important;
   color: #fff !important
}

[data-theme="night"] .nav-pills .nav-link {
   color: rgba(255, 255, 255, .65) !important
}

[data-theme="night"] .nav-pills .nav-link:hover {
   background: rgba(255, 255, 255, .06) !important;
   color: rgba(255, 255, 255, .9) !important
}

[data-theme="night"] .nav-pills .nav-link.active {
   background: rgba(54, 209, 255, .75) !important;
   color: #050d1a !important
}

/* Navbar */
[data-theme="night"] .navbar {
   background: rgba(7, 17, 38, .85) !important;
   border-bottom: 1px solid rgba(255, 255, 255, .06);
   backdrop-filter: blur(15px)
}

[data-theme="day"] .navbar {
   background: rgba(255, 255, 255, .85) !important;
   border-bottom: 1px solid rgba(15, 23, 42, .06);
   backdrop-filter: blur(15px)
}

[data-theme="night"] .navbar-brand {
   color: #f1f5f9 !important
}

[data-theme="day"] .navbar-brand {
   color: #1e293b !important
}

[data-theme="night"] .navbar-toggler {
   border-color: rgba(255, 255, 255, .15) !important;
   color: rgba(255, 255, 255, .8) !important
}

[data-theme="night"] .navbar-toggler-icon {
   filter: invert(1)
}

/* Tab content/pane */
.tab-pane {
   color: var(--tp-fg)
}

[data-theme="day"] .tab-content {
   color: #334155
}

[data-theme="night"] .tab-content {
   color: #e5e7eb
}

/* Breadcrumbs */
[data-theme="day"] .breadcrumb {
   background: transparent
}

[data-theme="day"] .breadcrumb-item+.breadcrumb-item::before {
   color: #94a3b8
}

[data-theme="day"] .breadcrumb-item a {
   color: #0891b2
}

[data-theme="day"] .breadcrumb-item.active {
   color: #64748b
}

[data-theme="night"] .breadcrumb-item+.breadcrumb-item::before {
   color: rgba(255, 255, 255, .3)
}

[data-theme="night"] .breadcrumb-item a {
   color: #60a5fa
}

[data-theme="night"] .breadcrumb-item.active {
   color: rgba(255, 255, 255, .55)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §14  PAGINATION                                                         ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.page-link {
   background: var(--tp-bg3);
   border-color: var(--tp-border2);
   color: var(--tp-fg-secondary);
   transition: var(--tp-transition-fast)
}

.page-link:hover {
   background: var(--tp-bg4);
   border-color: var(--tp-border);
   color: var(--tp-fg)
}

.page-item.active .page-link {
   background: var(--tp-accent);
   border-color: var(--tp-accent);
   color: #fff
}

[data-theme="day"] .page-link {
   background: #fff !important;
   border-color: #d1d5db !important;
   color: #334155 !important
}

[data-theme="day"] .page-link:hover {
   background: #f1f5f9 !important;
   color: #1e293b !important
}

[data-theme="day"] .page-item.active .page-link {
   background: #0891b2 !important;
   border-color: #0891b2 !important;
   color: #fff !important
}

[data-theme="day"] .page-item.disabled .page-link {
   color: #94a3b8 !important;
   background: #f8f9fa !important
}

[data-theme="night"] .page-link {
   background: rgba(255, 255, 255, .04) !important;
   border-color: rgba(255, 255, 255, .10) !important;
   color: rgba(255, 255, 255, .78) !important
}

[data-theme="night"] .page-link:hover {
   background: rgba(255, 255, 255, .08) !important;
   color: #fff !important
}

[data-theme="night"] .page-item.active .page-link {
   background: rgba(54, 209, 255, .75) !important;
   border-color: rgba(54, 209, 255, .75) !important;
   color: #050d1a !important
}

[data-theme="night"] .page-item.disabled .page-link {
   background: rgba(255, 255, 255, .02) !important;
   color: rgba(255, 255, 255, .3) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §15  DROPDOWNS                                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.dropdown-menu {
   background: var(--tp-bg3);
   border: 1px solid var(--tp-border2);
   box-shadow: var(--tp-shadow2);
   border-radius: var(--tp-radius3)
}

.dropdown-item {
   color: var(--tp-fg-secondary);
   transition: var(--tp-transition-fast)
}

.dropdown-item:hover,
.dropdown-item:focus {
   background: var(--tp-bg4);
   color: var(--tp-fg)
}

.dropdown-item.active,
.dropdown-item:active {
   background: var(--tp-accent);
   color: #fff
}

.dropdown-header {
   color: var(--tp-fg-tertiary);
   font-weight: 700;
   font-size: .85rem
}

[data-theme="day"] .dropdown-menu {
   background: #fff !important;
   border-color: #e5e7eb !important;
   box-shadow: 0 4px 16px rgba(0, 0, 0, .08) !important
}

[data-theme="day"] .dropdown-item {
   color: #334155 !important
}

[data-theme="day"] .dropdown-item:hover {
   background: #f1f5f9 !important;
   color: #0f172a !important
}

[data-theme="day"] .dropdown-divider {
   border-color: #e5e7eb !important
}

[data-theme="day"] .dropdown-header {
   color: #94a3b8 !important
}

[data-theme="night"] .dropdown-menu {
   background: #1a1f2e !important;
   border-color: rgba(255, 255, 255, .10) !important;
   box-shadow: 0 10px 30px rgba(0, 0, 0, .5) !important
}

[data-theme="night"] .dropdown-item {
   color: rgba(255, 255, 255, .85) !important
}

[data-theme="night"] .dropdown-item:hover {
   background: rgba(255, 255, 255, .08) !important;
   color: #fff !important
}

[data-theme="night"] .dropdown-divider {
   border-color: rgba(255, 255, 255, .08) !important
}

[data-theme="night"] .dropdown-header {
   color: rgba(255, 255, 255, .45) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §16  ACCORDION                                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="day"] .accordion-item {
   background: #fff !important;
   border-color: #e5e7eb !important
}

[data-theme="day"] .accordion-button {
   background: #f8f9fc !important;
   color: #1e293b !important
}

[data-theme="day"] .accordion-button:not(.collapsed) {
   background: rgba(8, 145, 178, .06) !important;
   color: #0891b2 !important
}

[data-theme="day"] .accordion-body {
   color: #334155 !important;
   background: #fff !important
}

[data-theme="day"] .accordion-button::after {
   filter: none
}

[data-theme="night"] .accordion-item {
   background: rgba(255, 255, 255, .03) !important;
   border-color: rgba(255, 255, 255, .08) !important
}

[data-theme="night"] .accordion-button {
   background: rgba(255, 255, 255, .04) !important;
   color: rgba(255, 255, 255, .88) !important
}

[data-theme="night"] .accordion-button:not(.collapsed) {
   background: rgba(54, 209, 255, .1) !important;
   color: #93c5fd !important
}

[data-theme="night"] .accordion-button::after {
   filter: invert(1)
}

[data-theme="night"] .accordion-body {
   color: rgba(255, 255, 255, .85) !important
}

[data-theme="night"] .accordion-button:focus {
   box-shadow: 0 0 0 .2rem rgba(54, 209, 255, .2)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §17  PROGRESS                                                           ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.progress {
   background-color: rgba(255, 255, 255, .08);
   border-radius: var(--tp-radius4);
   height: .5rem;
   overflow: hidden
}

.progress-bar {
   background: linear-gradient(90deg, var(--tp-accent), var(--tp-accent2));
   height: 100%
}

[data-theme="day"] .progress {
   background-color: #e5e7eb !important
}

[data-theme="day"] .progress-bar {
   background: linear-gradient(90deg, #0891b2, #0d9488)
}

[data-theme="night"] .progress {
   background-color: rgba(255, 255, 255, .08) !important
}

.progress-bar-striped {
   background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
   background-size: 1rem 1rem
}

.progress-bar-animated {
   animation: progress-bar-stripes 1s linear infinite
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §18  MODALS                                                             ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.modal-content {
   background: var(--tp-bg4);
   border: 1px solid var(--tp-border2);
   border-radius: var(--tp-radius2);
   box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
   color: var(--tp-fg)
}

.modal-header {
   border-bottom: 1px solid var(--tp-border2);
   padding: 1.5rem;
   display: flex;
   align-items: center;
   justify-content: space-between
}

.modal-title {
   color: var(--tp-fg);
   font-weight: 700;
   font-size: 1.25rem
}

.modal-body {
   padding: 1.5rem;
   color: var(--tp-fg)
}

.modal-footer {
   border-top: 1px solid var(--tp-border2);
   padding: 1rem 1.5rem;
   display: flex;
   align-items: center;
   gap: .5rem;
   background: rgba(26, 31, 46, .5)
}

.modal.fade .modal-dialog {
   transition: transform .3s ease-out;
   transform: scale(.95)
}

.modal.show .modal-dialog {
   transform: scale(1)
}

.modal-backdrop {
   background: rgba(0, 0, 0, .5)
}

[data-theme="day"] .modal-content {
   background: #fff;
   box-shadow: 0 4px 18px rgba(0, 0, 0, .08);
   border-color: #e5e7eb;
   color: #334155
}

[data-theme="day"] .modal-header {
   border-bottom-color: #e5e7eb
}

[data-theme="day"] .modal-title {
   color: #0b1020
}

[data-theme="day"] .modal-body {
   color: #334155
}

[data-theme="day"] .modal-footer {
   background: #f8f9fc;
   border-top-color: #e5e7eb
}

[data-theme="night"] .modal-content {
   background: #1a1f2e;
   border: 1px solid #2d3548;
   color: #e5e7eb
}

[data-theme="night"] .modal-header {
   background: #1a1f2e;
   border-bottom: 1px solid #2d3548;
   color: #f1f5f9
}

[data-theme="night"] .modal-body {
   background: #1a1f2e;
   color: #e5e7eb
}

[data-theme="night"] .modal-footer {
   background: rgba(26, 31, 46, .5) !important;
   border-top-color: #2d3548 !important
}

[data-theme="night"] .modal-footer .btn-outline {
   border-color: #374151 !important;
   color: #e5e7eb !important
}

[data-theme="night"] .modal-footer .btn-outline:hover {
   background: rgba(255, 255, 255, .05) !important;
   border-color: #4b5563 !important
}

/* Custom tp-modal */
.tp-modal .modal-content {
   border-radius: 22px;
   border: 1px solid var(--tp-border);
   background: linear-gradient(180deg, rgba(10, 24, 54, .92), rgba(7, 17, 38, .92));
   box-shadow: var(--tp-shadow);
   backdrop-filter: blur(12px);
   color: var(--tp-fg)
}

.tp-modal .modal-header {
   border-bottom: 1px solid var(--tp-border2)
}

.tp-modal .modal-footer {
   border-top: 1px solid var(--tp-border2)
}

.tp-modal .btn-close {
   filter: invert(1);
   opacity: .7
}

.tp-modal-icon {
   width: 40px;
   height: 40px;
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   border-radius: 10px;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1.25rem;
   color: #fff
}

.tp-modal-hidden {
   display: none !important
}

.tp-modal-visible {
   display: flex !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §19  LIST GROUPS                                                        ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.list-group-item {
   background: var(--tp-bg3);
   border: 1px solid var(--tp-border2);
   color: var(--tp-fg);
   transition: var(--tp-transition-fast)
}

.list-group-item:hover {
   background: var(--tp-bg4);
   border-color: var(--tp-border)
}

[data-theme="day"] .list-group-item {
   background: #fff;
   border-color: #e5e7eb;
   color: #334155
}

[data-theme="day"] .list-group-item:hover {
   background: #f9fafb
}

[data-theme="day"] .list-group-item-action:hover {
   background: #f1f5f9;
   color: #1e293b
}

[data-theme="day"] .list-group-item-action:active {
   background: #e2e8f0;
   color: #0f172a
}

[data-theme="day"] .list-group-item.active {
   background: #0891b2;
   border-color: #0891b2;
   color: #fff
}

[data-theme="night"] .list-group-item {
   background: rgba(255, 255, 255, .03);
   border-color: rgba(255, 255, 255, .08);
   color: #e5e7eb
}

[data-theme="night"] .list-group-item:hover {
   background: rgba(255, 255, 255, .06)
}

[data-theme="night"] .list-group-item-action:hover {
   background: rgba(255, 255, 255, .08);
   color: #f1f5f9
}

[data-theme="night"] .list-group-item-action:active {
   background: rgba(255, 255, 255, .12);
   color: #fff
}

[data-theme="night"] .list-group-item.active {
   background: rgba(54, 209, 255, .7);
   border-color: rgba(54, 209, 255, .7);
   color: #050d1a
}

/* List group flush */
.list-group-flush .list-group-item {
   border-left: 0;
   border-right: 0;
   border-radius: 0
}

/* List group contextual */
[data-theme="night"] .list-group-item-primary {
   background: rgba(54, 209, 255, .08);
   color: #93c5fd;
   border-color: rgba(54, 209, 255, .15)
}

[data-theme="night"] .list-group-item-success {
   background: rgba(34, 197, 94, .08);
   color: #86efac;
   border-color: rgba(34, 197, 94, .15)
}

[data-theme="night"] .list-group-item-danger {
   background: rgba(239, 68, 68, .08);
   color: #fca5a5;
   border-color: rgba(239, 68, 68, .15)
}

[data-theme="night"] .list-group-item-warning {
   background: rgba(245, 158, 11, .08);
   color: #fcd34d;
   border-color: rgba(245, 158, 11, .15)
}

[data-theme="night"] .list-group-item-info {
   background: rgba(14, 165, 233, .08);
   color: #7dd3fc;
   border-color: rgba(14, 165, 233, .15)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §20  OFFCANVAS                                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .offcanvas {
   background: #0f1419;
   color: #e5e7eb;
   border-color: rgba(255, 255, 255, .08)
}

[data-theme="day"] .offcanvas {
   background: #fff;
   color: #334155;
   border-color: #e5e7eb
}

[data-theme="night"] .offcanvas-header {
   border-bottom-color: rgba(255, 255, 255, .06)
}

[data-theme="day"] .offcanvas-header {
   border-bottom-color: #e5e7eb
}

[data-theme="night"] .offcanvas-title {
   color: #f1f5f9
}

[data-theme="day"] .offcanvas-title {
   color: #1e293b
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §21  TOASTS (Bootstrap)                                                 ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .toast {
   background: rgba(26, 31, 46, .95);
   border-color: rgba(255, 255, 255, .08);
   color: #e5e7eb
}

[data-theme="night"] .toast-header {
   background: rgba(255, 255, 255, .04);
   border-bottom-color: rgba(255, 255, 255, .06);
   color: #f1f5f9
}

[data-theme="night"] .toast-body {
   color: #e5e7eb
}

[data-theme="day"] .toast {
   background: rgba(255, 255, 255, .95);
   border-color: #e5e7eb;
   color: #334155
}

[data-theme="day"] .toast-header {
   background: #f8f9fc;
   border-bottom-color: #e5e7eb;
   color: #1e293b
}

/* Custom tp-toast */
#tpToast {
   position: fixed;
   right: 18px;
   bottom: 18px;
   z-index: 2000;
   padding: 10px 14px;
   border-radius: 14px;
   background: rgba(10, 24, 54, .85);
   border: 1px solid rgba(255, 255, 255, .14);
   box-shadow: 0 18px 60px rgba(0, 0, 0, .45);
   opacity: 0;
   transform: translateY(10px);
   transition: opacity .18s ease, transform .18s ease;
   max-width: min(420px, calc(100vw - 36px));
   color: var(--tp-fg);
}

#tpToast.show {
   opacity: 1;
   transform: none
}

[data-theme="day"] #tpToast {
   background: rgba(255, 255, 255, .95);
   border-color: rgba(0, 0, 0, .08);
   box-shadow: 0 10px 30px rgba(0, 0, 0, .1);
   color: #1e293b
}

/* Toast type variants */
#tpToast.tp-toast-error {
   background: linear-gradient(135deg, rgba(239,68,68,.95), rgba(220,38,38,.95));
   color: #fff;
   border-color: rgba(239,68,68,.3);
}
#tpToast.tp-toast-success {
   background: linear-gradient(135deg, rgba(34,197,94,.95), rgba(22,163,74,.95));
   color: #fff;
   border-color: rgba(34,197,94,.3);
}
[data-theme="day"] #tpToast.tp-toast-error {
   background: linear-gradient(135deg, #ef4444, #dc2626);
   color: #fff;
}
[data-theme="day"] #tpToast.tp-toast-success {
   background: linear-gradient(135deg, #22c55e, #16a34a);
   color: #fff;
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §22  SPINNERS                                                           ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .spinner-border {
   border-color: rgba(255, 255, 255, .15);
   border-right-color: rgba(255, 255, 255, .8)
}

[data-theme="day"] .spinner-border {
   border-color: rgba(0, 0, 0, .08);
   border-right-color: #334155
}

[data-theme="night"] .spinner-grow {
   background: rgba(255, 255, 255, .8)
}

[data-theme="day"] .spinner-grow {
   background: #334155
}

/* Colored spinners */
.spinner-border.text-primary {
   border-right-color: var(--tp-accent) !important
}

.spinner-border.text-success {
   border-right-color: var(--tp-good) !important
}

.spinner-border.text-danger {
   border-right-color: var(--tp-bad) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §23  TOOLTIPS & POPOVERS                                               ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .tooltip-inner {
   background: #252b3b;
   color: #f1f5f9;
   border: 1px solid rgba(255, 255, 255, .08)
}

[data-theme="day"] .tooltip-inner {
   background: #1e293b;
   color: #f8fafc
}

[data-theme="night"] .popover {
   background: #1a1f2e;
   border-color: rgba(255, 255, 255, .10);
   color: #e5e7eb
}

[data-theme="night"] .popover-header {
   background: rgba(255, 255, 255, .04);
   border-bottom-color: rgba(255, 255, 255, .06);
   color: #f1f5f9
}

[data-theme="night"] .popover-body {
   color: #e5e7eb
}

[data-theme="day"] .popover {
   background: #fff;
   border-color: #e5e7eb
}

[data-theme="day"] .popover-header {
   background: #f8f9fc;
   border-bottom-color: #e5e7eb;
   color: #1e293b
}

[data-theme="day"] .popover-body {
   color: #334155
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §24  CAROUSEL (Bootstrap)                                               ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .carousel-control-prev-icon,
[data-theme="night"] .carousel-control-next-icon {
   filter: invert(1)
}

[data-theme="night"] .carousel-indicators [data-bs-target] {
   background: rgba(255, 255, 255, .6)
}

[data-theme="night"] .carousel-indicators .active {
   background: #fff
}

[data-theme="night"] .carousel-caption {
   color: #f1f5f9
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §25  PLACEHOLDERS                                                       ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] .placeholder {
   background: rgba(255, 255, 255, .12) !important;
   opacity: 1
}

[data-theme="day"] .placeholder {
   background: rgba(0, 0, 0, .08) !important;
   opacity: 1
}

.skeleton {
   background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
   background-size: 200% 100%;
   animation: loading 1.5s ease-in-out infinite
}

[data-theme="night"] .skeleton {
   background: linear-gradient(90deg, #1a1d2e 25%, #252836 50%, #1a1d2e 75%);
   background-size: 200% 100%
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §26  BORDERS                                                            ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="day"] .border {
   border-color: #e5e7eb !important
}

[data-theme="day"] .border-top {
   border-top-color: #e5e7eb !important
}

[data-theme="day"] .border-bottom {
   border-bottom-color: #e5e7eb !important
}

[data-theme="day"] .border-start {
   border-left-color: #e5e7eb !important
}

[data-theme="day"] .border-end {
   border-right-color: #e5e7eb !important
}

[data-theme="night"] .border {
   border-color: rgba(255, 255, 255, .10) !important
}

[data-theme="night"] .border-top {
   border-top-color: rgba(255, 255, 255, .10) !important
}

[data-theme="night"] .border-bottom {
   border-bottom-color: rgba(255, 255, 255, .10) !important
}

[data-theme="night"] .border-start {
   border-left-color: rgba(255, 255, 255, .10) !important
}

[data-theme="night"] .border-end {
   border-right-color: rgba(255, 255, 255, .10) !important
}

/* Semantic border colors */
[data-theme="day"] .border-primary {
   border-color: #0891b2 !important
}

[data-theme="day"] .border-success {
   border-color: #16a34a !important
}

[data-theme="day"] .border-danger {
   border-color: #dc2626 !important
}

[data-theme="day"] .border-warning {
   border-color: #d97706 !important
}

[data-theme="day"] .border-info {
   border-color: #0ea5e9 !important
}

[data-theme="day"] .border-light {
   border-color: #e2e8f0 !important
}

[data-theme="day"] .border-dark {
   border-color: #334155 !important
}

[data-theme="night"] .border-primary {
   border-color: rgba(96, 165, 250, .45) !important
}

[data-theme="night"] .border-success {
   border-color: rgba(74, 222, 128, .45) !important
}

[data-theme="night"] .border-danger {
   border-color: rgba(248, 113, 113, .45) !important
}

[data-theme="night"] .border-warning {
   border-color: rgba(251, 191, 36, .45) !important
}

[data-theme="night"] .border-info {
   border-color: rgba(56, 189, 248, .45) !important
}

[data-theme="night"] .border-light {
   border-color: rgba(255, 255, 255, .08) !important
}

[data-theme="night"] .border-dark {
   border-color: rgba(255, 255, 255, .15) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §27  SHADOWS                                                            ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="day"] .shadow {
   box-shadow: 0 2px 8px rgba(15, 23, 42, .08) !important
}

[data-theme="day"] .shadow-sm {
   box-shadow: 0 1px 3px rgba(15, 23, 42, .06) !important
}

[data-theme="day"] .shadow-lg {
   box-shadow: 0 10px 30px rgba(15, 23, 42, .12) !important
}

[data-theme="night"] .shadow {
   box-shadow: 0 2px 8px rgba(0, 0, 0, .35) !important
}

[data-theme="night"] .shadow-sm {
   box-shadow: 0 1px 3px rgba(0, 0, 0, .25) !important
}

[data-theme="night"] .shadow-lg {
   box-shadow: 0 10px 30px rgba(0, 0, 0, .5) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §28  SCROLLBAR                                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
::-webkit-scrollbar {
   width: 12px;
   height: 12px
}

::-webkit-scrollbar-track {
   background: var(--tp-bg3)
}

::-webkit-scrollbar-thumb {
   background: #374151;
   border-radius: 6px
}

::-webkit-scrollbar-thumb:hover {
   background: #4b5563
}

[data-theme="day"] ::-webkit-scrollbar-track {
   background: #f1f5f9
}

[data-theme="day"] ::-webkit-scrollbar-thumb {
   background: #cbd5e1
}

[data-theme="day"] ::-webkit-scrollbar-thumb:hover {
   background: #94a3b8
}

[data-theme="night"] ::-webkit-scrollbar-track {
   background: #0f1419
}

[data-theme="night"] ::-webkit-scrollbar-thumb {
   background: #374151
}

[data-theme="night"] ::-webkit-scrollbar-thumb:hover {
   background: #4b5563
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §29  THUMBNAILS & IMAGES                                                ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-thumb {
   width: 86px;
   height: 86px;
   border-radius: 16px;
   border: 1px solid var(--tp-border);
   background: rgba(255, 255, 255, .06);
   display: flex;
   align-items: center;
   justify-content: center;
   overflow: hidden
}

.tp-thumb img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block
}

.tp-thumb.sm {
   width: 40px;
   height: 40px;
   border-radius: 12px
}

.tp-thumb.lg {
   width: 84px;
   height: 84px;
   border-radius: 18px
}

.tp-thumb.contain img {
   object-fit: contain;
   padding: 10px;
   background: transparent
}

.tp-thumb.placeholder {
   color: var(--tp-fg-secondary);
   font-size: 24px
}

.tp-product-main-thumb {
   width: 100% !important;
   max-width: 300px !important;
   height: auto !important;
   aspect-ratio: 1/1 !important
}

img {
   max-width: 100%;
   height: auto
}

[data-theme="night"] .img-thumbnail {
   background: rgba(255, 255, 255, .04);
   border-color: rgba(255, 255, 255, .10)
}

[data-theme="day"] .img-thumbnail {
   background: #fff;
   border-color: #dee2e6
}

[data-theme="night"] figure figcaption {
   color: rgba(255, 255, 255, .55)
}

[data-theme="day"] figure figcaption {
   color: #64748b
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §30  PRODUCT GRID & CARDS (tp-*)                                        ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */

/* --- Grid-view product cards (vertical layout) --- */
.tp-grid:not(.cols-1) .tp-pcard {
   display: flex !important;
   flex-direction: column !important;
   align-items: stretch !important;
   padding: 0 !important;
   gap: 0 !important;
   overflow: hidden;
   height: 100%;
   transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

/* Prevent visited / hover link color override on product cards */
.tp-pcard,
.tp-pcard:visited,
.tp-pcard:hover,
.tp-pcard:active,
.tp-pcard:focus {
   color: inherit !important;
   text-decoration: none !important;
}

.tp-grid:not(.cols-1) .tp-pcard:hover {
   transform: translateY(-3px);
   border-color: rgba(54, 209, 255, .18);
   box-shadow: 0 16px 48px rgba(0,0,0,.35), 0 0 0 1px rgba(54,209,255,.08);
}
[data-theme="day"] .tp-grid:not(.cols-1) .tp-pcard:hover {
   box-shadow: 0 12px 40px rgba(0,0,0,.12), 0 0 0 1px rgba(8,145,178,.12);
   border-color: rgba(8,145,178,.18);
}

.tp-grid:not(.cols-1) .tp-pcard-thumb {
   width: 100% !important;
   height: auto !important;
   aspect-ratio: 4/3;
   border-radius: 0 !important;
   flex-shrink: 0;
   overflow: hidden;
   background: #ffffff !important;
}

.tp-grid:not(.cols-1) .tp-pcard-thumb img {
   width: 100%;
   height: 100%;
   object-fit: contain;
   padding: 10px;
   transition: transform .25s cubic-bezier(0.4, 0, 0.2, 1);
   background: #ffffff;
   will-change: transform;
   backface-visibility: hidden;
}

.tp-grid:not(.cols-1) .tp-pcard:hover .tp-pcard-thumb img {
   transform: scale(1.06);
}

.tp-grid:not(.cols-1) .tp-pcard-body {
   padding: .5rem .6rem .6rem;
   display: flex;
   flex-direction: column;
   flex: 1;
   min-width: 0;
}
[data-theme="day"] .tp-grid:not(.cols-1) .tp-pcard-body {
   background: transparent;
}

.tp-grid:not(.cols-1) .tp-pcard-title {
   font-size: .8rem;
   font-weight: 600;
   line-height: 1.25;
   margin-bottom: .25rem;
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
}

.tp-grid:not(.cols-1) .tp-pcard-store {
   font-size: .72rem;
   color: var(--tp-muted);
   margin-top: auto;
   padding-top: .3rem;
   display: flex;
   align-items: center;
   gap: .3rem;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
}

.tp-grid:not(.cols-1) .tp-pcard-store .tp-pcard-store-link {
   text-decoration: underline;
   text-decoration-color: transparent;
   transition: text-decoration-color .15s;
}

.tp-grid:not(.cols-1) .tp-pcard-store .tp-pcard-store-link:hover {
   text-decoration-color: var(--tp-accent);
   color: var(--tp-accent);
}

.tp-grid:not(.cols-1) .tp-pcard-meta {
   padding-top: .25rem;
}

.tp-grid:not(.cols-1) .tp-pcard-price {
   font-weight: 700;
   font-size: .85rem;
   color: var(--tp-good);
}

.tp-grid:not(.cols-1) .tp-pcard-side {
   display: none !important;
}

/* --- Store link inside card --- */
.tp-pcard-store {
   font-size: .8rem;
   color: var(--tp-muted);
   display: flex;
   align-items: center;
   gap: .3rem;
}
.tp-pcard-store .tp-pcard-store-link {
   cursor: pointer;
}
.tp-pcard-price {
   font-weight: 700;
   color: var(--tp-good);
}

.tp-grid {
   display: grid;
   gap: 14px
}

.tp-grid.cols-2 {
   grid-template-columns: repeat(2, minmax(0, 1fr))
}

.tp-grid.cols-3 {
   grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
   gap: 1rem
}

@media(max-width:992px) {
   .tp-grid.cols-3 {
      grid-template-columns: repeat(2, minmax(0, 1fr))
   }
}

@media(max-width:768px) {
   .tp-grid:not(.cols-1) {
      display: grid !important;
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      gap: .65rem !important
   }
}

@media(max-width:480px) {
   .tp-grid:not(.cols-1) {
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
      gap: .5rem !important
   }

   .tp-grid:not(.cols-1) .tp-pcard-title {
      font-size: .72rem !important
   }

   .tp-grid:not(.cols-1) .tp-pcard-store {
      font-size: .65rem !important
   }

   .tp-grid:not(.cols-1) .tp-pcard-price {
      font-size: .78rem !important
   }

   .tp-grid:not(.cols-1) .tp-pcard-body {
      padding: .4rem .5rem .5rem !important
   }
}

/* List view */
.tp-grid.cols-1 {
   display: flex;
   flex-direction: column;
   gap: 1rem
}

.tp-grid.cols-1 .tp-pcard {
   display: flex !important;
   flex-direction: row !important;
   align-items: center;
   padding: 1rem !important;
   gap: 1rem !important;
   height: auto;
}

.tp-grid.cols-1 .tp-pcard-thumb {
   width: 100px !important;
   height: 100px !important;
   aspect-ratio: auto !important;
   flex-shrink: 0;
   border-radius: 12px !important;
}

.tp-grid.cols-1 .tp-pcard-thumb img {
   padding: 8px;
}

.tp-grid.cols-1 .tp-pcard-body {
   flex: 1;
   display: flex;
   flex-direction: column;
   justify-content: center;
   padding: 0 !important;
   min-width: 0;
}

.tp-grid.cols-1 .tp-pcard-title {
   font-size: 1rem;
   margin-bottom: .35rem;
   line-height: 1.35;
   -webkit-line-clamp: 2;
   line-clamp: 2
}

.tp-grid.cols-1 .tp-pcard-store {
   margin-bottom: .25rem;
}

.tp-grid.cols-1 .tp-pcard-price {
   font-size: 1.1rem;
}

.tp-grid.cols-1 .tp-pcard-side {
   display: none !important;
}

@media(max-width:480px) {
   .tp-grid.cols-1 .tp-pcard-thumb {
      width: 72px !important;
      height: 72px !important;
   }
   .tp-grid.cols-1 .tp-pcard-title {
      font-size: .9rem;
   }
}

/* View toggle */
.tp-view-toggle {
   transition: all .2s ease
}

.tp-view-toggle.active {
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   color: #fff;
   border-color: #0891b2
}

.tp-view-toggle:not(.active):hover {
   background: rgba(8, 145, 178, .1);
   border-color: #0891b2
}

/* Product card */
.tp-pcard {
   background: var(--tp-bg4);
   border: 1px solid var(--tp-border2);
   border-radius: var(--tp-radius2);
   transition: var(--tp-transition);
   color: var(--tp-fg);
   text-decoration: none;
   display: block;
}

.tp-pcard:hover {
   transform: scale(1.015);
   border-color: var(--tp-border);
   box-shadow: var(--tp-shadow3)
}

[data-theme="day"] .tp-pcard {
   background: #fff;
   border-color: #e5e7eb;
   color: #334155
}

[data-theme="night"] .tp-pcard {
   background: #1a1f2e;
   border-color: #2d3548;
   color: #e5e7eb
}

.tp-prod-card {
   display: flex;
   gap: 12px;
   align-items: center;
   padding: 12px;
   border-radius: 18px;
   border: 1px solid var(--tp-border2);
   background: rgba(255, 255, 255, .03);
   transition: transform .15s ease, border-color .15s ease, background .15s ease
}

.tp-prod-card:hover {
   transform: scale(1.01);
   border-color: rgba(54, 209, 255, .22);
   background: rgba(255, 255, 255, .04)
}

.tp-prod-title {
   font-weight: 800;
   line-height: 1.15
}

.tp-clamp-1 {
   display: -webkit-box;
   -webkit-line-clamp: 1;
   line-clamp: 1;
   -webkit-box-orient: vertical;
   overflow: hidden
}

.tp-clamp-2 {
   display: -webkit-box;
   -webkit-line-clamp: 2;
   line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden
}

.tp-price {
   font-weight: 900;
   letter-spacing: .2px
}

.tp-spark {
   width: 10px;
   height: 10px;
   border-radius: 50%;
   background: var(--tp-accent);
   box-shadow: 0 0 0 4px rgba(54, 209, 255, .12), 0 0 16px rgba(54, 209, 255, .45)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §31  MERCHANT CARDS                                                     ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-merchant {
   background: var(--tp-bg4);
   border: 1px solid var(--tp-border2);
   border-radius: var(--tp-radius3);
   padding: 1rem;
   transition: var(--tp-transition-fast)
}

.tp-merchant:hover {
   background: var(--tp-bg5);
   border-color: var(--tp-border)
}

[data-theme="day"] .tp-merchant {
   background: #fff;
   border-color: #e5e7eb
}

[data-theme="day"] .tp-merchant:hover {
   background: #f9fafb;
   border-color: #d1d5db
}

[data-theme="night"] .tp-merchant {
   background: #1a1f2e;
   border-color: #2d3548
}

[data-theme="night"] .tp-merchant:hover {
   background: #252b3b;
   border-color: #374151
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §32  BEST OFFER & PRICE DISPLAY                                        ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-offer-best,
.tp-best-row {
   background: linear-gradient(135deg, rgba(16, 185, 129, .04), rgba(5, 150, 105, .04)) !important;
   border-left: 3px solid var(--tp-good) !important;
   border-radius: var(--tp-radius3)
}

.tp-offer-best:hover,
.tp-best-row:hover {
   background: linear-gradient(135deg, rgba(16, 185, 129, .07), rgba(5, 150, 105, .06)) !important
}

[data-theme="day"] .tp-offer-best,
[data-theme="day"] .tp-best-row {
   background: rgba(5, 150, 105, .04) !important;
   border-color: rgba(5, 150, 105, .35) !important;
   color: #064e3b !important
}

[data-theme="day"] .tp-offer-best *,
[data-theme="day"] .tp-best-row * {
   color: #064e3b !important
}

[data-theme="day"] .tp-offer-best .btn,
[data-theme="day"] .tp-best-row .btn {
   color: #fff !important
}

[data-theme="night"] .tp-offer-best,
[data-theme="night"] .tp-best-row {
   background: linear-gradient(135deg, rgba(46, 229, 157, .06), rgba(16, 185, 129, .05)) !important;
   border-left-color: var(--tp-good) !important
}

[data-theme="night"] .tp-offer-best:hover,
[data-theme="night"] .tp-best-row:hover {
   background: linear-gradient(135deg, rgba(46, 229, 157, .10), rgba(16, 185, 129, .08)) !important
}

[data-theme="night"] .tp-offer-best *,
[data-theme="night"] .tp-best-row * {
   color: #d1fae5 !important
}

[data-theme="night"] .tp-offer-best .btn,
[data-theme="night"] .tp-best-row .btn {
   color: #fff !important
}

[data-theme="night"] .tp-offers-table tr.tp-best td {
   color: #0b1520 !important
}

[data-theme="night"] .tp-offers-table tr.tp-best td .text-muted,
[data-theme="night"] .tp-offers-table tr.tp-best td small {
   color: rgba(11, 21, 32, .75) !important
}

.tp-best-price-value {
   color: var(--tp-good);
   font-weight: 700;
   font-size: 1.5rem
}

[data-theme="day"] .tp-best-price-value {
   color: #059669
}

.tp-live-dot {
   display: inline-block;
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: var(--tp-accent);
   box-shadow: 0 0 12px rgba(54, 209, 255, .5);
   animation: pulse 2s infinite
}

[data-theme="day"] .tp-live-dot {
   background: #0891b2;
   box-shadow: 0 0 8px rgba(8, 145, 178, .4)
}

/* Price boxes */
.tp-price-box {
   transition: all .3s ease
}

.tp-price-current-box {
   display: flex;
   background: linear-gradient(135deg, rgba(59, 130, 246, .2), rgba(14, 165, 233, .2));
   border: 1px solid rgba(59, 130, 246, .4);
   border-radius: var(--tp-radius3);
   padding: 1rem
}

.tp-price-current:hover {
   border-color: rgba(239, 68, 68, .4) !important;
   transform: scale(1.02);
   box-shadow: 0 3px 8px rgba(239, 68, 68, .12)
}

[data-theme="day"] .tp-price-current-box {
   background: linear-gradient(135deg, rgba(8, 145, 178, .08), rgba(20, 184, 166, .08));
   border-color: rgba(8, 145, 178, .2)
}

[data-theme="night"] .tp-price-current-box {
   background: linear-gradient(135deg, rgba(59, 130, 246, .2), rgba(14, 165, 233, .2)) !important;
   border-color: rgba(59, 130, 246, .4) !important
}

[data-theme="night"] .tp-price-current-box .h4 {
   color: #60a5fa !important
}

[data-theme="night"] .tp-price-current-box .small {
   color: #94a3b8 !important
}

[data-theme="night"] .tp-price-current {
   background: linear-gradient(135deg, rgba(239, 68, 68, .15), rgba(220, 38, 38, .15)) !important;
   border-color: rgba(239, 68, 68, .4) !important
}

[data-theme="night"] .tp-price-current span {
   color: #fca5a5 !important
}

[data-theme="night"] .tp-price-current .h3 {
   color: #f87171 !important
}

.tp-price-target {
   background: linear-gradient(135deg, rgba(54, 209, 255, .08), rgba(20, 184, 166, .06));
   border: 1px solid rgba(54, 209, 255, .25);
   border-radius: var(--tp-radius3);
   padding: 1rem
}

.tp-price-target span {
   color: var(--tp-accent);
   font-weight: 600
}

.tp-price-target:hover {
   border-color: rgba(54, 209, 255, .4) !important;
   transform: scale(1.02);
   box-shadow: 0 3px 8px rgba(54, 209, 255, .08)
}

[data-theme="day"] .tp-price-target {
   background: linear-gradient(135deg, rgba(8, 145, 178, .06), rgba(13, 148, 136, .04));
   border-color: rgba(8, 145, 178, .2)
}

[data-theme="day"] .tp-price-target span {
   color: #0891b2
}

[data-theme="night"] .tp-price-target {
   background: linear-gradient(135deg, rgba(54, 209, 255, .08), rgba(20, 184, 166, .06)) !important;
   border-color: rgba(54, 209, 255, .25) !important
}

[data-theme="night"] .tp-price-target span {
   color: #67e8f9 !important
}

[data-theme="night"] .tp-price-target-input {
   background: #0f1419 !important;
   border-color: var(--tp-accent) !important;
   color: #67e8f9 !important
}

[data-theme="night"] .tp-price-target-input::placeholder {
   color: #6b7280 !important
}

.tp-price-target-input:focus {
   outline: none !important;
   border-color: var(--tp-accent) !important;
   box-shadow: 0 0 0 4px rgba(54, 209, 255, .12) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §33  TREND + STOCK BADGES                                               ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-trend-badge {
   display: inline-flex;
   align-items: center;
   gap: .25rem;
   padding: .25rem .75rem;
   border-radius: 8px;
   font-size: .8rem;
   font-weight: 600;
   white-space: nowrap
}

.tp-trend-badge i {
   font-size: 1rem
}

.tp-trend-up {
   background: none;
   border: none;
   color: #dc2626;
   font-weight: 600;
   font-size: .85rem
}

.tp-trend-down {
   background: none;
   border: none;
   color: #059669;
   font-weight: 600;
   font-size: .85rem
}

.tp-trend-stable {
   background: none;
   border: none;
   color: #64748b;
   font-weight: 600;
   font-size: .85rem
}

[data-theme="night"] .tp-trend-up {
   background: none;
   border: none;
   color: #f87171
}

[data-theme="night"] .tp-trend-down {
   background: none;
   border: none;
   color: #6ee7b7
}

[data-theme="night"] .tp-trend-stable {
   background: none;
   border: none;
   color: #9ca3af
}

.tp-stock-badge {
   font-weight: 700 !important;
   font-size: .75rem !important;
   padding: 0 !important;
   border-radius: 0 !important;
   background: transparent !important;
   border: none !important
}

.tp-stock-badge.in {
   color: #16a34a !important
}

.tp-stock-badge.out {
   color: #dc2626 !important
}

.tp-stock-badge.limited {
   color: #b45309 !important
}

.tp-stock-badge.preorder {
   color: #d97706 !important
}

.tp-stock-badge.supplier {
   color: #0ea5e9 !important
}

.tp-stock-badge.unknown {
   color: #6b7280 !important
}

[data-theme="night"] .tp-stock-badge.in {
   background: rgba(52, 211, 153, .2) !important;
   color: #6ee7b7 !important;
   border-color: rgba(52, 211, 153, .4) !important
}

[data-theme="night"] .tp-stock-badge.out {
   background: rgba(248, 113, 113, .2) !important;
   color: #fca5a5 !important;
   border-color: rgba(248, 113, 113, .4) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §34  NEWSLETTER & AUTH                                                   ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-newsletter-box {
   background: linear-gradient(135deg, rgba(8, 145, 178, .1), rgba(14, 165, 233, .1));
   border: 1px solid rgba(8, 145, 178, .3);
   border-radius: var(--tp-radius2);
   padding: 2rem;
   cursor: pointer;
   transition: all .3s ease
}

.tp-newsletter-box:hover {
   transform: scale(1.01);
   box-shadow: 0 3px 8px rgba(8, 145, 178, .10)
}

[data-theme="day"] .tp-newsletter-box {
   background: linear-gradient(135deg, rgba(8, 145, 178, .05), rgba(14, 165, 233, .05));
   border-color: rgba(8, 145, 178, .15)
}

[data-theme="night"] .tp-newsletter-box {
   background: linear-gradient(135deg, rgba(54, 209, 255, .08), rgba(20, 184, 166, .08)) !important;
   border-color: rgba(54, 209, 255, .2) !important
}

[data-theme="night"] .tp-newsletter-box label {
   color: var(--tp-accent, #36d1ff) !important
}

[data-theme="night"] .tp-newsletter-box p {
   color: #9ca3af !important
}

[data-theme="night"] #tpNewsletterBox strong {
   color: var(--tp-accent, #36d1ff) !important
}

[data-theme="night"] #tpNewsletterBox span {
   color: #9ca3af !important
}

[data-theme="night"] .tp-auth-message {
   background: linear-gradient(135deg, rgba(16, 185, 129, .15), rgba(5, 150, 105, .15)) !important;
   border-color: rgba(16, 185, 129, .35) !important
}

[data-theme="night"] .tp-auth-message strong {
   color: #34d399 !important
}

[data-theme="night"] .tp-auth-message span {
   color: #6ee7b7 !important
}

[data-theme="night"] #tpUnauthMsg {
   background: linear-gradient(135deg, rgba(245, 158, 11, .15), rgba(251, 191, 36, .15)) !important;
   border-color: rgba(245, 158, 11, .35) !important
}

[data-theme="night"] #tpUnauthMsg strong {
   color: #fbbf24 !important
}

[data-theme="night"] #tpUnauthMsg span {
   color: #fcd34d !important
}

[data-theme="night"] input[name="target_price"],
[data-theme="night"] input[name="email"] {
   background: #0f1419 !important;
   border-color: #374151 !important;
   color: #e5e7eb !important
}

[data-theme="night"] input[name="target_price"]:focus,
[data-theme="night"] input[name="email"]:focus {
   border-color: var(--tp-accent, #36d1ff) !important;
   background: #1a1f2e !important
}

[data-theme="night"] input[name="email"][readonly] {
   background: rgba(54, 209, 255, .08) !important
}

[data-theme="night"] .form-label i {
   color: var(--tp-accent, #36d1ff) !important
}

.tp-number-input-wrapper {
   position: relative;
   display: inline-block;
   width: 100%
}

.tp-number-arrows {
   position: absolute;
   right: 8px;
   top: 50%;
   transform: translateY(-50%);
   display: flex;
   flex-direction: column;
   gap: 2px
}

.tp-number-arrow {
   width: 20px;
   height: 20px;
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   border: none;
   border-radius: 4px;
   color: #fff;
   font-size: .7rem;
   cursor: pointer;
   display: flex;
   align-items: center;
   justify-content: center;
   transition: all .2s ease
}

.tp-number-arrow:hover {
   background: linear-gradient(135deg, #5568d3, #6a4191);
   transform: scale(1.1)
}

.tp-number-arrow:active {
   transform: scale(.95)
}

[data-theme="night"] .tp-number-arrow {
   background: linear-gradient(135deg, #36d1ff, #14b8a6) !important
}

[data-theme="night"] .tp-number-arrow:hover {
   background: linear-gradient(135deg, #0ea5e9, #0d9488) !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §35  FAVORITES / HEART                                                  ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-heart {
   width: 44px;
   height: 44px;
   border-radius: 8px;
   border: 1px solid var(--tp-border);
   background: rgba(255, 255, 255, .06);
   display: inline-flex;
   align-items: center;
   justify-content: center;
   transition: transform .12s ease, box-shadow .12s ease, background .12s ease
}

.tp-heart i {
   font-size: 18px
}

.tp-heart:hover {
   transform: scale(1.08);
   box-shadow: 0 4px 14px rgba(0, 0, 0, .10)
}

.tp-heart.active {
   border-color: rgba(255, 95, 138, .55);
   background: rgba(255, 95, 138, .14)
}

.tp-heart.active i {
   color: var(--tp-bad)
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §36  PRICE FILTER                                                       ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-filter-panel {
   background: rgba(255, 255, 255, .5);
   backdrop-filter: blur(10px);
   border: 1px solid rgba(0, 0, 0, .08);
   border-radius: 12px;
   padding: 1.25rem 1.5rem;
   margin-bottom: 1.5rem
}

.tp-filter-section {
   display: flex;
   flex-wrap: nowrap;
   gap: 1rem;
   align-items: center;
   overflow-x: auto;
   -webkit-overflow-scrolling: touch;
   scrollbar-width: none;
}
.tp-filter-section::-webkit-scrollbar { display: none; }

.tp-filter-group {
   display: flex;
   align-items: center;
   gap: .5rem
}

.tp-filter-label {
   font-weight: 600;
   color: #64748b;
   font-size: .9rem;
   white-space: nowrap
}

.tp-sort-select {
   border: 2px solid #e2e8f0;
   border-radius: 10px;
   padding: .5rem 2.5rem .5rem 1rem;
   font-size: .9rem;
   font-weight: 500;
   background: transparent;
   color: #334155;
   cursor: pointer;
   transition: all .2s ease;
   appearance: none;
   background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%230891b2' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
   background-repeat: no-repeat;
   background-position: right .75rem center;
   background-size: 16px
}

.tp-sort-select:hover {
   border-color: #0891b2;
   box-shadow: 0 0 0 3px rgba(8, 145, 178, .1)
}

.tp-sort-select:focus {
   outline: none;
   border-color: #0891b2;
   box-shadow: 0 0 0 4px rgba(8, 145, 178, .15)
}

.tp-price-filter-inputs {
   display: flex;
   align-items: center;
   gap: .5rem
}

.tp-price-input {
   width: 110px;
   border: 2px solid #e2e8f0;
   border-radius: 10px;
   padding: .5rem .75rem;
   font-size: .9rem;
   font-weight: 500;
   text-align: center;
   transition: all .2s ease
}

.tp-price-input:hover {
   border-color: #cbd5e1
}

.tp-price-input:focus {
   outline: none;
   border-color: #0891b2;
   box-shadow: 0 0 0 3px rgba(8, 145, 178, .1)
}

.tp-price-separator {
   color: #94a3b8;
   font-weight: 600
}

.tp-filter-apply {
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   border: none;
   border-radius: 8px;
   color: #fff;
   font-weight: 600;
   padding: .5rem 1.25rem;
   font-size: .9rem;
   cursor: pointer;
   transition: all .2s ease;
   box-shadow: 0 2px 8px rgba(8, 145, 178, .3)
}

.tp-filter-apply:hover {
   transform: scale(1.02);
   box-shadow: 0 4px 12px rgba(8, 145, 178, .4)
}

.tp-filter-apply:active {
   transform: scale(0.98)
}

.tp-filter-reset {
   background: transparent;
   border: 2px solid #e2e8f0;
   border-radius: 8px;
   color: #64748b;
   font-weight: 600;
   padding: .5rem 1rem;
   font-size: .9rem;
   cursor: pointer;
   transition: all .2s ease
}

.tp-filter-reset:hover {
   border-color: #cbd5e1;
   background: rgba(0, 0, 0, .02)
}

.tp-filter-stats {
   display: flex;
   align-items: center;
   gap: .5rem;
   padding: .5rem 1rem;
   background: rgba(8, 145, 178, .05);
   border: 1px solid rgba(8, 145, 178, .15);
   border-radius: 10px;
   font-size: .85rem;
   color: #0891b2;
   font-weight: 600
}

[data-theme="night"] .tp-filter-panel {
   background: rgba(15, 20, 25, .8);
   border-color: rgba(255, 255, 255, .1)
}

[data-theme="night"] .tp-filter-label {
   color: #9ca3af
}

[data-theme="night"] .tp-sort-select,
[data-theme="night"] .tp-price-input {
   background: rgba(15, 20, 25, 0.6);
   border-color: #374151;
   color: #e8eaf0
}

[data-theme="night"] .tp-sort-select:hover,
[data-theme="night"] .tp-price-input:hover {
   border-color: rgba(255, 255, 255, 0.25)
}

[data-theme="night"] .tp-sort-select option {
   background: #1e2228;
   color: #e8eaf0
}

[data-theme="night"] .tp-filter-reset {
   border-color: #374151;
   color: #9ca3af
}

[data-theme="night"] .tp-filter-reset:hover {
   border-color: #4b5563;
   background: rgba(255, 255, 255, .05)
}

[data-theme="night"] .tp-filter-stats {
   background: rgba(54, 209, 255, .08);
   border-color: rgba(54, 209, 255, .15);
   color: var(--tp-accent, #36d1ff)
}

[data-theme="night"] .tp-price-separator {
   color: #6b7280
}

.tp-filter-bottom-row {
   display: flex;
   align-items: center;
   gap: .75rem;
   width: 100%;
   margin-top: .25rem;
}

.tp-filter-bottom-row .tp-filter-stats {
   flex: 1;
   min-width: 0;
}

.tp-filter-bottom-row .tp-view-buttons {
   flex-shrink: 0;
   margin-left: auto;
}

@media(max-width:768px) {
   .tp-filter-panel { padding: .875rem 1rem; }

   .tp-filter-section {
      flex-direction: row;
      align-items: center;
      gap: .5rem;
      flex-wrap: nowrap;
      overflow-x: auto;
   }

   /* Row 1: Sort — full width */
   .tp-filter-group {
      flex-direction: row;
      align-items: center;
      flex-wrap: nowrap;
      gap: .5rem;
      flex-shrink: 0;
   }

   .tp-filter-label {
      font-size: .82rem;
      flex-shrink: 0;
   }

   .tp-sort-select {
      flex: 1;
      font-size: .82rem;
      padding: .4rem 2rem .4rem .75rem;
   }

   /* Row 2: Price inputs + Filtrează + Reset — all on one row */
   .tp-price-filter-inputs {
      display: flex;
      flex-wrap: nowrap;
      gap: .4rem;
      width: 100%;
      align-items: center;
   }

   .tp-price-input {
      flex: 1;
      min-width: 0;
      width: auto;
      padding: .4rem .5rem;
      font-size: .82rem;
   }

   .tp-filter-apply {
      font-size: .8rem;
      padding: .4rem .75rem;
      white-space: nowrap;
      flex-shrink: 0;
   }

   .tp-filter-reset {
      font-size: .8rem;
      padding: .4rem .6rem;
      flex-shrink: 0;
   }

   /* Row 3: View toggle + Stats — side by side */
   .tp-filter-bottom-row {
      flex-direction: row;
      align-items: center;
      gap: .5rem;
   }

   .tp-filter-stats {
      font-size: .8rem;
      padding: .35rem .75rem;
      justify-content: center;
   }
}

@media(max-width:480px) {
   .tp-filter-panel { padding: .75rem; }
   .tp-filter-group { gap: .35rem; }
   /* Hide price label text on narrow screens to save space */
   .tp-filter-group:nth-child(2) .tp-filter-label { display: none; }
   .tp-price-separator { display: none; }
   .tp-price-input { min-width: 0; font-size: .78rem; padding: .35rem .4rem; }
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §37  ADMIN PANEL LAYOUT                                                 ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
body:has(.tp-admin-layout) {
   background: var(--tp-bg0) !important
}

body:has(.tp-admin-layout) nav:not(.tp-admin-nav) {
   display: none !important
}

body:has(.tp-admin-layout) #main-content {
   padding: 0
}

body:has(.tp-admin-layout) .container:has(.tp-admin-layout) {
   max-width: 100%;
   padding: 0;
   margin: 0
}

.tp-admin-layout {
   display: flex;
   min-height: 100vh;
   background: var(--tp-bg0);
   width: 100vw;
   position: relative;
   left: 50%;
   right: 50%;
   margin-left: -50vw;
   margin-right: -50vw
}

.tp-admin-sidebar {
   width: 260px;
   min-width: 260px;
   background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04));
   border-right: 1px solid var(--tp-border);
   backdrop-filter: blur(20px);
   box-shadow: var(--tp-shadow2);
   display: flex;
   flex-direction: column;
   position: fixed;
   top: 0;
   left: 0;
   height: 100vh;
   overflow-y: auto;
   z-index: 1000;
}

.tp-admin-sidebar-header {
   padding: 1.5rem 1.25rem;
   border-bottom: 1px solid var(--tp-border);
   display: flex;
   align-items: center;
   gap: .75rem;
   font-size: 1.125rem;
   font-weight: 700;
   color: var(--tp-fg);
   background: linear-gradient(135deg, rgba(54, 209, 255, .12), rgba(20, 184, 166, .12));
}

.tp-admin-sidebar-header i {
   font-size: 1.3rem
}

.tp-admin-nav {
   flex: 1;
   padding: 1rem 0
}

.tp-admin-nav-item {
   display: flex;
   align-items: center;
   gap: .6rem;
   padding: .45rem 1.1rem;
   color: var(--tp-fg);
   text-decoration: none;
   transition: all .2s ease;
   border-left: 3px solid transparent;
   border-top: none;
   border-right: none;
   border-bottom: none;
   background: transparent;
   cursor: pointer;
   font-size: .875rem;
   width: 100%;
   text-align: left;
}

.tp-admin-nav-item:hover {
   background: linear-gradient(90deg, rgba(54, 209, 255, .15), rgba(20, 184, 166, .10));
   color: var(--tp-accent);
   border-left-color: var(--tp-accent)
}

.tp-admin-nav-item.tp-admin-nav-active {
   background: linear-gradient(90deg, rgba(54, 209, 255, .22), rgba(20, 184, 166, .15));
   color: var(--tp-accent);
   border-left-color: var(--tp-accent);
   font-weight: 600
}

.tp-admin-nav-item i {
   font-size: 1.1rem;
   width: 20px;
   text-align: center
}

.tp-admin-nav-divider {
   height: 1px;
   background: var(--tp-border);
   margin: .4rem 1.1rem
}

.tp-admin-nav-category {
   margin: .5rem 0
}

.tp-admin-nav-toggle {
   width: 100%;
   padding: .75rem 1rem;
   background: none;
   border: none;
   color: var(--tp-fg-secondary);
   font-size: .9rem;
   font-weight: 600;
   display: flex;
   align-items: center;
   gap: .75rem;
   cursor: pointer;
   transition: all .2s ease;
   text-align: left;
   letter-spacing: .02em
}

.tp-admin-nav-toggle:hover {
   color: var(--tp-fg);
   background: rgba(255, 255, 255, .05)
}

.tp-admin-nav-toggle i {
   display: inline-block;
   transition: transform .2s ease
}

.tp-admin-nav-toggle.active i {
   transform: rotate(90deg)
}

.tp-admin-nav-submenu {
   display: none;
   padding-left: .5rem;
   border-left: 2px solid var(--tp-accent);
   margin-left: .5rem
}

.tp-admin-nav-submenu.active {
   display: block
}

.tp-admin-nav-submenu .tp-admin-nav-item {
   padding-left: 1.5rem;
   font-size: .85rem
}

.tp-admin-nav-submenu .tp-admin-nav-item i {
   margin-right: .5rem
}

.tp-admin-content {
   flex: 1;
   margin-left: 260px;
   display: flex;
   flex-direction: column
}

.tp-admin-content-header {
   background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04));
   border-bottom: 1px solid var(--tp-border);
   backdrop-filter: blur(15px);
   padding: 1.5rem 2rem;
   position: sticky;
   top: 0;
   z-index: 100;
   box-shadow: 0 2px 8px rgba(0, 0, 0, .08)
}

.tp-admin-header-row {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 1rem;
   flex-wrap: nowrap;
   min-width: 0
}

.tp-admin-page-title {
   margin: 0;
   font-size: 1.75rem;
   font-weight: 700;
   color: var(--tp-fg);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   flex: 1 1 0
}

.tp-admin-header-actions {
   display: flex;
   align-items: center;
   gap: .5rem;
   flex-wrap: nowrap;
   white-space: nowrap;
   flex-shrink: 0
}

.tp-admin-header-actions .btn {
   font-size: .85rem
}

.tp-admin-content-body {
   flex: 1;
   padding: 2rem;
   max-width: 100%
}

.tp-admin-content-body .tp-card {
   margin-bottom: 1.5rem
}

.tp-admin-content-body table {
   width: 100%;
   margin-bottom: 1rem
}

[data-theme="day"] .tp-admin-sidebar {
   background: linear-gradient(180deg, rgba(14, 116, 144, .08), rgba(14, 165, 233, .05));
   border-right-color: var(--tp-border);
   box-shadow: 0 2px 8px rgba(15, 23, 42, .08)
}

[data-theme="day"] .tp-admin-sidebar-header {
   border-bottom-color: var(--tp-border);
   color: var(--tp-fg);
   background: linear-gradient(135deg, rgba(8, 145, 178, .12), rgba(124, 58, 237, .10))
}

[data-theme="day"] .tp-admin-nav-item {
   color: var(--tp-fg)
}

[data-theme="day"] .tp-admin-nav-item:hover {
   background: linear-gradient(90deg, rgba(8, 145, 178, .12), rgba(124, 58, 237, .08));
   color: var(--tp-accent);
   border-left-color: var(--tp-accent)
}

[data-theme="day"] .tp-admin-nav-item.tp-admin-nav-active {
   background: linear-gradient(90deg, rgba(8, 145, 178, .18), rgba(124, 58, 237, .12));
   color: var(--tp-accent);
   border-left-color: var(--tp-accent)
}

[data-theme="day"] .tp-admin-content-header {
   background: linear-gradient(180deg, rgba(255, 255, 255, .6), rgba(238, 242, 255, .4));
   border-bottom-color: var(--tp-border);
   box-shadow: 0 2px 8px rgba(15, 23, 42, .06)
}

[data-theme="night"] .tp-admin-sidebar {
   background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04));
   border-right-color: var(--tp-border);
   box-shadow: var(--tp-shadow2)
}

[data-theme="night"] .tp-admin-sidebar-header {
   border-bottom-color: var(--tp-border);
   color: var(--tp-fg);
   background: linear-gradient(135deg, rgba(54, 209, 255, .18), rgba(20, 184, 166, .15))
}

[data-theme="night"] .tp-admin-nav-item {
   color: var(--tp-fg)
}

[data-theme="night"] .tp-admin-nav-item:hover {
   background: linear-gradient(90deg, rgba(54, 209, 255, .25), rgba(20, 184, 166, .18));
   color: var(--tp-accent);
   border-left-color: var(--tp-accent)
}

[data-theme="night"] .tp-admin-nav-item.tp-admin-nav-active {
   background: linear-gradient(90deg, rgba(54, 209, 255, .35), rgba(20, 184, 166, .25));
   color: var(--tp-accent);
   border-left-color: var(--tp-accent)
}

[data-theme="night"] .tp-admin-content-header {
   background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04));
   border-bottom-color: var(--tp-border);
   box-shadow: 0 2px 12px rgba(0, 0, 0, .3)
}

.tp-admin-tabs a {
   text-decoration: none;
   padding: .55rem .85rem;
   border-radius: 8px;
   border: 1px solid var(--tp-border2);
   background: rgba(255, 255, 255, .03);
   font-weight: 800;
   transition: all .2s ease
}

.tp-admin-tabs a.active,
.tp-admin-tabs a:hover {
   border-color: rgba(54, 209, 255, .28);
   background: rgba(255, 255, 255, .05)
}

/* Admin card headers: always keep buttons beside titles (override §43 responsive column layout) */
.tp-admin-layout .tp-card-hd,
.tp-admin-layout .tp-card-header,
.tp-admin-layout .card-header,
.tp-admin-layout .card-hdr {
   display: flex !important;
   flex-direction: row !important;
   align-items: center !important;
   justify-content: space-between !important;
   flex-wrap: wrap;
   gap: .5rem
}

/* ── Admin uniform card styles ─────────────────────────────────────── */
.tp-admin-layout .tp-card,
.tp-admin-layout .tp-card.hoverable {
   background: var(--tp-bg3);
   border: 1px solid var(--tp-border2);
   border-radius: 16px;
   box-shadow: var(--tp-shadow2);
   transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tp-admin-layout .tp-card.hoverable:hover {
   transform: scale(1.01);
   border-color: var(--tp-border);
   box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

[data-theme="day"] .tp-admin-layout .tp-card,
[data-theme="day"] .tp-admin-layout .tp-card.hoverable {
   background: #fff;
   border-color: #e5e7eb;
   box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}

[data-theme="day"] .tp-admin-layout .tp-card.hoverable:hover {
   box-shadow: 0 6px 20px rgba(15, 23, 42, .10);
   border-color: #d1d5db;
}

[data-theme="night"] .tp-admin-layout .tp-card,
[data-theme="night"] .tp-admin-layout .tp-card.hoverable {
   background: rgba(255, 255, 255, .04);
   border-color: rgba(255, 255, 255, .08);
   box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

[data-theme="night"] .tp-admin-layout .tp-card.hoverable:hover {
   box-shadow: 0 8px 28px rgba(0, 0, 0, .35);
   border-color: rgba(255, 255, 255, .14);
}

/* ── Admin card headers uniform ─── */
.tp-admin-layout .tp-card-hd {
   padding: 1rem 1.25rem;
   border-bottom: 1px solid var(--tp-border2);
   font-weight: 600;
}

.tp-admin-layout .tp-card-title {
   font-weight: 700;
   font-size: .95rem;
   letter-spacing: .01em;
}

.tp-admin-layout .tp-card-bd {
   padding: 1.25rem;
}

/* cards without tp-card-bd or tp-card-hd get inner padding */
.tp-admin-layout .tp-card.stat-card {
   padding: 1.25rem;
}

/* ── Admin stat boxes (cron, feed_submissions, etc.) ─── */
.tp-admin-layout .stat-box,
.tp-admin-layout .cron-stat {
   border-radius: 14px;
   padding: 1rem 1.25rem;
   text-align: center;
   border: 1px solid var(--tp-border2);
   transition: transform .15s ease, box-shadow .15s ease;
}

.tp-admin-layout .stat-box:hover,
.tp-admin-layout .cron-stat:hover {
   transform: scale(1.01);
   box-shadow: 0 2px 6px rgba(0, 0, 0, .05);
}

[data-theme="day"] .tp-admin-layout .stat-box,
[data-theme="day"] .tp-admin-layout .cron-stat {
   background: linear-gradient(135deg, rgba(8, 145, 178, .06), rgba(14, 165, 233, .06));
   border-color: rgba(8, 145, 178, .12);
}

[data-theme="night"] .tp-admin-layout .stat-box,
[data-theme="night"] .tp-admin-layout .cron-stat {
   background: rgba(255, 255, 255, .04);
   border-color: rgba(255, 255, 255, .08);
}

.tp-admin-layout .stat-box .stat-value,
.tp-admin-layout .cron-stat .stat-val {
   font-size: 1.5rem;
   font-weight: 700;
   line-height: 1.2;
}

.tp-admin-layout .stat-box .stat-label,
.tp-admin-layout .cron-stat .stat-lbl {
   font-size: .8rem;
   opacity: .65;
   margin-top: 2px;
}

/* ── Admin tables uniform ─── */
.tp-admin-layout .tp-admin-table-wrap {
   overflow-x: auto;
   -webkit-overflow-scrolling: touch;
}

.tp-admin-layout .tp-admin-tbl {
   font-size: .87rem;
}

.tp-admin-layout .tp-admin-tbl thead th {
   font-size: .78rem;
   text-transform: uppercase;
   letter-spacing: .04em;
   font-weight: 700;
   opacity: .7;
   white-space: nowrap;
}

/* ── Admin terminal/pre blocks ─── */
.tp-admin-layout .tp-terminal,
.tp-admin-layout pre {
   font-family: 'Consolas', 'Monaco', monospace;
   font-size: .82rem;
   border-radius: 10px;
   border: 1px solid var(--tp-border2);
}

[data-theme="day"] .tp-admin-layout .tp-terminal,
[data-theme="day"] .tp-admin-layout pre {
   background: #f8f9fc;
   color: #334155;
}

[data-theme="night"] .tp-admin-layout .tp-terminal,
[data-theme="night"] .tp-admin-layout pre {
   background: rgba(0, 0, 0, .3);
   color: rgba(200, 220, 255, .75);
}

/* ── Admin badges uniform ─── */
.tp-admin-layout .tp-badge {
   display: inline-flex;
   align-items: center;
   gap: 4px;
   padding: 3px 10px;
   border-radius: 20px;
   font-size: .78rem;
   font-weight: 600;
   white-space: nowrap;
}

/* ── Admin buttons uniform ─── */
.tp-admin-layout .btn-outline {
   border-radius: 8px;
   font-weight: 600;
   font-size: .85rem;
   transition: all .18s ease;
}

.tp-admin-layout .btn-outline:hover {
   transform: scale(1.02);
   box-shadow: 0 1px 4px rgba(0, 0, 0, .05);
}

/* ── Admin nested cards (settings page) ─── */
.tp-admin-layout .tp-card-inner {
   border-radius: 12px;
   padding: 1.25rem;
   border: 1px solid var(--tp-border2);
}

[data-theme="day"] .tp-admin-layout .tp-card-inner {
   background: #f8fafc;
   border-color: #e5e7eb;
}

[data-theme="night"] .tp-admin-layout .tp-card-inner {
   background: rgba(255, 255, 255, .03);
   border-color: rgba(255, 255, 255, .06);
}

/* Old @media 992 / 768 sidebar rules removed — floating overlay at 991px handles everything.
   Content-area mobile tweaks are now in the floating overlay media queries below. */

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §38  LOADING SCREEN                                                     ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-loading-overlay {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   display: flex;
   align-items: center;
   justify-content: center;
   z-index: 99999;
   opacity: 1;
   transition: opacity .3s ease, visibility .3s ease
}

.tp-loading-overlay.fade-out {
   opacity: 0;
   visibility: hidden
}

.tp-loading-content {
   text-align: center;
   color: #fff
}

.tp-spinner {
   width: 60px;
   height: 60px;
   margin: 0 auto 20px;
   border: 4px solid rgba(255, 255, 255, .3);
   border-top-color: #fff;
   border-radius: 50%;
   animation: tp-spin .8s linear infinite
}

@keyframes tp-spin {
   to {
      transform: rotate(360deg)
   }
}

.tp-loading-text {
   font-size: 18px;
   font-weight: 600;
   margin-bottom: 10px;
   animation: tp-pulse 1.5s ease-in-out infinite
}

@keyframes tp-pulse {

   0%,
   100% {
      opacity: 1
   }

   50% {
      opacity: .5
   }
}

.tp-loading-subtext {
   font-size: 14px;
   opacity: .8
}

.btn-loading {
   position: relative;
   pointer-events: none;
   color: transparent !important
}

.btn-loading::after {
   content: '';
   position: absolute;
   width: 20px;
   height: 20px;
   top: 50%;
   left: 50%;
   margin-left: -10px;
   margin-top: -10px;
   border: 2px solid rgba(255, 255, 255, .3);
   border-top-color: #fff;
   border-radius: 50%;
   animation: tp-spin .6s linear infinite
}

.tp-page-transition {
   animation: tp-fadeIn .3s ease-in-out
}

@keyframes tp-fadeIn {
   from {
      opacity: 0;
      transform: translateY(10px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

.form-submitting {
   opacity: .6;
   pointer-events: none
}

.form-submitting .btn {
   cursor: wait
}

.btn-ripple {
   position: relative;
   overflow: hidden
}

.btn-ripple::before {
   content: '';
   position: absolute;
   top: 50%;
   left: 50%;
   width: 0;
   height: 0;
   border-radius: 50%;
   background: rgba(255, 255, 255, .3);
   transform: translate(-50%, -50%);
   transition: width .6s, height .6s
}

.btn-ripple:active::before {
   width: 300px;
   height: 300px
}

@keyframes tp-success {
   0% {
      transform: scale(.8);
      opacity: 0
   }

   50% {
      transform: scale(1.1)
   }

   100% {
      transform: scale(1);
      opacity: 1
   }
}

.tp-success-icon {
   animation: tp-success .5s ease-out
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §39  ANIMATIONS                                                         ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
@keyframes fadeIn {
   from {
      opacity: 0
   }

   to {
      opacity: 1
   }
}

@keyframes slideInUp {
   from {
      opacity: 0;
      transform: translateY(20px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

@keyframes slideInDown {
   from {
      opacity: 0;
      transform: translateY(-20px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

@keyframes pulse {

   0%,
   100% {
      opacity: 1
   }

   50% {
      opacity: .5
   }
}

@keyframes badgePulse {

   0%,
   100% {
      box-shadow: 0 0 0 0 rgba(8, 145, 178, .4)
   }

   50% {
      box-shadow: 0 0 0 8px rgba(8, 145, 178, 0)
   }
}

@keyframes revealUp {
   from {
      opacity: 0;
      transform: translateY(30px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

@keyframes loading {
   0% {
      background-position: 200% 0
   }

   100% {
      background-position: -200% 0
   }
}

@keyframes tooltipIn {
   from {
      opacity: 0;
      transform: scale(.8)
   }

   to {
      opacity: 1;
      transform: scale(1)
   }
}

@keyframes checkmark {
   0% {
      transform: scale(0) rotate(45deg)
   }

   50% {
      transform: scale(1.2) rotate(45deg)
   }

   100% {
      transform: scale(1) rotate(45deg)
   }
}

.animate-fadeIn {
   animation: fadeIn .3s ease-out
}

.animate-slideInUp {
   animation: slideInUp .3s ease-out
}

.animate-slideInDown {
   animation: slideInDown .3s ease-out
}

.animate-pulse {
   animation: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite
}

.success-checkmark {
   animation: checkmark .5s ease-out
}

.tooltip {
   animation: tooltipIn .15s ease-out
}

.tp-reveal {
   opacity: 0;
   transform: translateY(10px);
   transition: opacity .5s ease, transform .5s ease
}

.tp-reveal.on {
   opacity: 1;
   transform: none
}

.tp-stagger>* {
   animation: revealUp .5s ease-out backwards
}

.tp-stagger>*:nth-child(1) {
   animation-delay: .05s
}

.tp-stagger>*:nth-child(2) {
   animation-delay: .1s
}

.tp-stagger>*:nth-child(3) {
   animation-delay: .15s
}

.tp-stagger>*:nth-child(4) {
   animation-delay: .2s
}

.tp-stagger>*:nth-child(5) {
   animation-delay: .25s
}

.tp-stagger>*:nth-child(6) {
   animation-delay: .3s
}

.tp-link {
   position: relative;
   transition: color .2s ease
}

.tp-link::after {
   content: '';
   position: absolute;
   bottom: -2px;
   left: 0;
   width: 0;
   height: 2px;
   background: currentColor;
   transition: width .3s ease
}

.tp-link:hover::after {
   width: 100%
}

.bi-arrow-repeat,
.bi-gear,
.bi-download {
   transition: transform .3s ease
}

.btn:hover .bi-arrow-repeat,
.btn:hover .bi-gear {
   transform: rotate(180deg)
}

[data-theme] {
   transition: background-color .3s ease, color .3s ease
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §39b  BREADCRUMB NAVIGATION                                             ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.tp-breadcrumb {
   padding: .65rem 1rem;
   margin-bottom: 1rem;
   background: rgba(255,255,255,.04);
   border: 1px solid var(--tp-border2);
   border-radius: var(--tp-radius2, 10px);
   backdrop-filter: blur(6px);
   -webkit-backdrop-filter: blur(6px);
}
.tp-breadcrumb-list {
   list-style: none;
   margin: 0;
   padding: 0;
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 0;
   font-size: .82rem;
   line-height: 1.4;
}
.tp-breadcrumb-item {
   display: inline-flex;
   align-items: center;
   color: var(--tp-muted);
}
.tp-breadcrumb-item a {
   color: var(--tp-muted);
   text-decoration: none;
   transition: color .15s ease, background .15s ease;
   white-space: nowrap;
   padding: .15rem .4rem;
   border-radius: 4px;
}
.tp-breadcrumb-item a:hover {
   color: var(--tp-accent);
   background: rgba(255,255,255,.06);
   text-decoration: none;
}
.tp-breadcrumb-item .bi-house-door-fill {
   font-size: .85rem;
   vertical-align: -.08em;
}
.tp-breadcrumb-item.active span {
   color: var(--tp-fg);
   font-weight: 500;
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
   max-width: 360px;
   display: inline-block;
   vertical-align: bottom;
   padding: .15rem .4rem;
}
.tp-breadcrumb-sep {
   margin: 0 .25rem;
   font-size: .6rem;
   opacity: .4;
   display: inline-flex;
   align-items: center;
}
/* Day tweaks */
[data-theme="day"] .tp-breadcrumb {
   background: rgba(0,0,0,.025);
   border-color: rgba(0,0,0,.06);
}
[data-theme="day"] .tp-breadcrumb-item a { color: #6b7280; }
[data-theme="day"] .tp-breadcrumb-item a:hover { color: var(--tp-accent); background: rgba(0,0,0,.04); }
[data-theme="day"] .tp-breadcrumb-item.active span { color: var(--tp-fg); }
/* Mobile: smaller text, shorter max-width on last crumb */
@media (max-width: 575px) {
   .tp-breadcrumb { padding: .5rem .75rem; margin-bottom: .75rem; }
   .tp-breadcrumb-list { font-size: .75rem; }
   .tp-breadcrumb-item.active span { max-width: 200px; }
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §40  FOOTER                                                             ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
nav {
   flex-shrink: 0
}

.tp-footer {
   flex-shrink: 0;
   margin-top: auto !important;
   margin-bottom: 0 !important;
   padding-top: 2rem !important;
   padding-bottom: 2rem !important;
   background: rgba(30, 41, 59, 0.55) !important;
   backdrop-filter: blur(18px) !important;
   -webkit-backdrop-filter: blur(18px) !important;
   border-color: rgba(255, 255, 255, 0.08) !important;
}

[data-theme="day"] .tp-footer {
   background: rgba(255, 255, 255, 0.65) !important;
   border-color: rgba(0, 0, 0, 0.08) !important;
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §41  UTILITIES & ACCESSIBILITY                                          ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
.opacity-75 {
   opacity: .75
}

.opacity-50 {
   opacity: .50
}

.opacity-25 {
   opacity: .25
}

.gap-1 {
   gap: .25rem
}

.gap-2 {
   gap: .5rem
}

.gap-3 {
   gap: 1rem
}

.gap-4 {
   gap: 1.5rem
}

.gap-5 {
   gap: 2rem
}

.rounded {
   border-radius: var(--tp-radius3)
}

.rounded-lg {
   border-radius: var(--tp-radius2)
}

.rounded-full {
   border-radius: 999px
}

.skip-to-main {
   position: absolute;
   left: -9999px;
   top: auto;
   width: 1px;
   height: 1px;
   overflow: hidden;
   z-index: 99999;
   opacity: 0;
   pointer-events: none
}

.skip-to-main:focus-visible {
   position: fixed;
   top: 0;
   left: 0;
   width: auto;
   height: auto;
   padding: 1rem 2rem;
   background: var(--tp-accent);
   color: #fff;
   font-weight: 700;
   text-decoration: none;
   z-index: 99999;
   opacity: 1;
   pointer-events: auto
}

*:focus-visible {
   outline: 2px solid var(--tp-accent, #0891b2);
   outline-offset: 2px;
   transition: outline-offset .2s ease
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §42  TABLE RESPONSIVE (mobile column hiding)                            ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
:root[data-theme="night"] .form-select option {
   background: #0a1836 !important;
   color: #eaf0ff !important
}

@media(max-width:767px) {

   /* Prevent horizontal scroll on the offers wrapper */
   .tp-offers-wrap {
      overflow-x: hidden !important;
      overflow-y: visible !important;
      width: 100% !important;
   }

   .tp-offers-table {
      table-layout: fixed !important;
      width: 100% !important;
   }

   /* Collapse hidden columns to 0 width */
   .tp-offers-table thead th:nth-child(2),
   .tp-offers-table tbody td:nth-child(2),
   .tp-offers-table thead th:nth-child(3),
   .tp-offers-table tbody td:nth-child(3) {
      display: none !important;
      width: 0 !important;
      padding: 0 !important;
      border: 0 !important;
   }

   .tp-offers-table thead th,
   .tp-offers-table tbody td {
      padding: .4rem .25rem !important
   }

   /* Visible column widths: Magazin 40%, Pret 28%, Button 32% */
   .tp-offers-table thead th:first-child,
   .tp-offers-table tbody td:first-child {
      min-width: auto !important;
      max-width: none !important;
      width: 40% !important;
      overflow: hidden;
   }

   .tp-offers-table thead th:nth-child(4),
   .tp-offers-table tbody td:nth-child(4) {
      min-width: auto !important;
      width: 28% !important;
      white-space: nowrap;
   }

   .tp-offers-table thead th:nth-child(5),
   .tp-offers-table tbody td:nth-child(5) {
      min-width: auto !important;
      width: 32% !important;
   }

   .tp-offers-table tbody td:first-child .d-flex { flex-wrap: nowrap; overflow: hidden; }
   .tp-offers-table tbody td:first-child .min-w-0 { min-width: 0; overflow: hidden; }

   /* Button compact on mobile — show full text */
   .tp-offers-table .tp-btn {
      padding: 4px 10px !important;
      font-size: 0.75rem !important;
      white-space: nowrap;
   }
   .tp-offers-table .tp-btn i {
      font-size: 0.75rem !important;
      margin-right: 3px !important;
   }
   .tp-offers-table .btn-secondary {
      padding: 4px 10px !important;
      font-size: 0.75rem !important;
      white-space: nowrap;
   }
   .tp-offers-table .btn-secondary i {
      font-size: 0.75rem !important;
      margin-right: 3px !important;
   }

   .admin-users-table thead th:nth-child(4),
   .admin-users-table tbody td:nth-child(4),
   .admin-users-table thead th:nth-child(5),
   .admin-users-table tbody td:nth-child(5) {
      display: none
   }

   .admin-merchants-table thead th:nth-child(3),
   .admin-merchants-table tbody td:nth-child(3),
   .admin-merchants-table thead th:nth-child(5),
   .admin-merchants-table tbody td:nth-child(5) {
      display: none
   }

   .admin-feeds-table thead th:nth-child(4),
   .admin-feeds-table tbody td:nth-child(4),
   .admin-feeds-table thead th:nth-child(5),
   .admin-feeds-table tbody td:nth-child(5) {
      display: none
   }

   .admin-products-table thead th:nth-child(2),
   .admin-products-table tbody td:nth-child(2),
   .admin-products-table thead th:nth-child(5),
   .admin-products-table tbody td:nth-child(5),
   .admin-products-table thead th:nth-child(6),
   .admin-products-table tbody td:nth-child(6),
   .admin-products-table thead th:nth-child(8),
   .admin-products-table tbody td:nth-child(8),
   .admin-products-table thead th:nth-child(9),
   .admin-products-table tbody td:nth-child(9) {
      display: none
   }

   .admin-newsletter-table thead th:nth-child(3),
   .admin-newsletter-table tbody td:nth-child(3),
   .admin-newsletter-table thead th:nth-child(4),
   .admin-newsletter-table tbody td:nth-child(4) {
      display: none
   }

   .account-watchlist-table thead th:nth-child(2),
   .account-watchlist-table tbody td:nth-child(2),
   .account-watchlist-table thead th:nth-child(4),
   .account-watchlist-table tbody td:nth-child(4) {
      display: none
   }

   .table thead th,
   .table tbody td {
      padding: .75rem .5rem !important;
      font-size: .875rem !important
   }
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §43  RESPONSIVE                                                         ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
@media(max-width:768px) {
   h1 {
      font-size: 1.75rem
   }

   h2 {
      font-size: 1.5rem
   }

   h3 {
      font-size: 1.25rem
   }

   .container {
      padding-left: 1rem;
      padding-right: 1rem
   }

   .tp-card-hd,
   .tp-card-header,
   .card-header {
      flex-direction: column;
      align-items: flex-start;
      gap: .5rem
   }
}

@media(max-width:480px) {
   h1 {
      font-size: 1.5rem
   }

   h2 {
      font-size: 1.25rem
   }

   h3 {
      font-size: 1.1rem
   }

   .container {
      padding-left: .75rem;
      padding-right: .75rem
   }

   .btn {
      padding: .5rem 1rem;
      font-size: .9rem
   }
}

@media(prefers-reduced-motion:reduce) {

   *,
   *::before,
   *::after {
      animation-duration: .01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: .01ms !important
   }
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §44  MISC                                                               ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */
[data-theme="night"] #btnCleanAllPriceHistory {
   background: linear-gradient(45deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .04)) !important;
   color: rgba(255, 255, 255, .85) !important;
   border: 1px solid rgba(255, 255, 255, .12) !important
}

[data-theme="day"] #btnCleanAllPriceHistory {
   background: linear-gradient(45deg, #f3f4f6, #fff) !important;
   color: #1e293b !important;
   border: 1px solid #d1d5db !important
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §45  CARD UTILITY CLASSES — Frontend Uniformization                     ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */

/* Auth pages — login, register, 2fa, activate */
.tp-card-auth {
   padding: 1.5rem;
}

@media (min-width: 768px) {
   .tp-card-auth {
      padding: 2.5rem;
   }
}

/* Full-page content cards — search, category, error, etc. */
.tp-card-page {
   padding: 1.5rem;
}

@media (min-width: 768px) {
   .tp-card-page {
      padding: 2rem 2.5rem;
   }
}

/* Error page suggestions card */
.tp-error-suggestions {
   padding: 1.5rem;
}

@media (min-width: 992px) {
   .tp-error-suggestions {
      padding: 2.5rem;
   }
}

.tp-error-suggestions__title {
   font-weight: 800;
   font-size: 1.1rem;
   color: var(--tp-fg);
}

.tp-error-suggestions__icon {
   color: var(--tp-accent);
}

[data-theme="day"] .tp-error-suggestions {
   background: var(--tp-bg3);
   border-color: rgba(8, 145, 178, .12);
}

[data-theme="day"] .tp-error-suggestions__icon {
   color: #0891b2;
}

/* Day theme — Auth card improvements */
[data-theme="day"] .tp-card-auth {
   background: rgba(255, 255, 255, .85);
   border-color: rgba(15, 23, 42, .08);
   box-shadow: 0 8px 32px rgba(15, 23, 42, .08);
}

/* Day theme — Page card improvements */
[data-theme="day"] .tp-card-page {
   background: rgba(255, 255, 255, .85);
   border-color: rgba(15, 23, 42, .08);
   box-shadow: 0 8px 32px rgba(15, 23, 42, .08);
}

/* Day theme — Form input refinements */
[data-theme="day"] .form-control,
[data-theme="day"] .form-select {
   background-color: #fff !important;
   border-color: rgba(15, 23, 42, .15) !important;
   color: #0b1020 !important;
}

[data-theme="day"] .form-control::placeholder {
   color: #94a3b8;
}

[data-theme="day"] .form-control:focus,
[data-theme="day"] .form-select:focus {
   box-shadow: 0 0 0 .25rem rgba(8, 145, 178, .15) !important;
   border-color: rgba(8, 145, 178, .4) !important;
}

/* Day theme — Button outline refinements */
[data-theme="day"] .btn-outline {
   border-color: rgba(15, 23, 42, .12) !important;
   background: rgba(255, 255, 255, .6) !important;
   color: #1e293b !important;
}

[data-theme="day"] .btn-outline:hover {
   background: rgba(8, 145, 178, .06) !important;
   border-color: rgba(8, 145, 178, .2) !important;
}

/* Day theme — Alert boxes */
[data-theme="day"] .alert-success {
   background: rgba(22, 163, 74, .08);
   border-color: rgba(22, 163, 74, .2);
   color: #166534;
}

[data-theme="day"] .alert-danger {
   background: rgba(220, 38, 38, .08);
   border-color: rgba(220, 38, 38, .2);
   color: #991b1b;
}

[data-theme="day"] .alert-warning {
   background: rgba(217, 119, 6, .08);
   border-color: rgba(217, 119, 6, .2);
   color: #92400e;
}

/* ╔═══════════════════════════════════════════════════════════════════════════╗
   ║  §46  HOME PAGE REVAMP                                                   ║
   ╚═══════════════════════════════════════════════════════════════════════════╝ */

.tp-home-hero {
   position: relative;
   padding: 4rem 1rem 3rem 1rem;
   z-index: 1;
}

.tp-home-search {
   position: relative;
   box-shadow: 0 4px 18px rgba(0, 0, 0, 0.10);
   border-radius: 50px;
   transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tp-home-search:focus-within {
   transform: scale(1.01);
   box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
}

.tp-home-search input {
   background: var(--tp-bg3);
   border: 1px solid var(--tp-border);
   height: 60px;
   font-size: 1.1rem;
   padding-left: 3.5rem;
   /* Space for icon */
   padding-right: 8rem;
   /* Space for button */
   color: var(--tp-fg);
}

[data-theme="day"] .tp-home-search input {
   background: #fff;
   border-color: rgba(15, 23, 42, 0.1);
}

.tp-home-search input:focus {
   border-color: var(--tp-accent);
   box-shadow: none;
}

.tp-home-search-btn {
   position: absolute;
   right: 6px;
   top: 6px;
   bottom: 6px;
   border-radius: 8px !important;
   padding: 0 2rem;
   font-size: 1rem;
   display: flex;
   align-items: center;
}

.tp-stat-card {
   background: var(--tp-bg3);
   border: 1px solid var(--tp-border);
   border-radius: var(--tp-radius);
   padding: 1.5rem;
   text-align: center;
   transition: transform 0.2s ease, border-color 0.2s ease;
   height: 100%;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
}

[data-theme="day"] .tp-stat-card {
   background: rgba(255, 255, 255, 0.6);
   border-color: rgba(15, 23, 42, 0.08);
}

.tp-stat-card:hover {
   transform: translateY(-5px);
   border-color: var(--tp-accent);
}

.tp-stat-val {
   font-size: 2rem;
   font-weight: 800;
   background: linear-gradient(135deg, var(--tp-fg), var(--tp-muted));
   background-clip: text;
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   line-height: 1.2;
   margin-bottom: 0.25rem;
}

/* Soft Background Utilities */
.bg-soft-primary {
   background-color: rgba(59, 130, 246, .15);
   color: #3b82f6
}

.bg-soft-success {
   background-color: rgba(16, 185, 129, .15);
   color: #10b981
}

.bg-soft-warning {
   background-color: rgba(245, 158, 11, .15);
   color: #f59e0b
}

.bg-soft-info {
   background-color: rgba(54, 209, 255, .15);
   color: #36d1ff
}

[data-theme="day"] .bg-soft-primary {
   background-color: rgba(8, 145, 178, .1);
   color: #0891b2
}

[data-theme="day"] .bg-soft-success {
   background-color: rgba(5, 150, 105, .1);
   color: #059669
}

[data-theme="day"] .bg-soft-warning {
   background-color: rgba(217, 119, 6, .1);
   color: #d97706
}

[data-theme="day"] .bg-soft-info {
   background-color: rgba(8, 145, 178, .1);
   color: #0891b2
}

[data-theme="day"] .tp-stat-val {
   background: linear-gradient(135deg, #1e293b, #475569);
   background-clip: text;
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
}

/* ===== REVAMPED SECONDARY SECTIONS ===== */

/* Top Lists (Popular & New) */
.tp-toplist-row {
   display: flex;
   align-items: center;
   gap: 12px;
   padding: 10px;
   border-radius: 12px;
   background: transparent;
   transition: all 0.2s ease;
   border: 1px solid transparent;
}

.tp-toplist-row:hover {
   background: rgba(125, 125, 125, 0.05);
   transform: translateX(4px);
   border-color: rgba(125, 125, 125, 0.1);
}

.tp-toplist-thumb {
   width: 54px;
   height: 54px;
   border-radius: 10px;
   background: #fff;
   padding: 4px;
   display: flex;
   align-items: center;
   justify-content: center;
   flex-shrink: 0;
   box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.tp-toplist-thumb img {
   max-width: 100%;
   max-height: 100%;
   object-fit: contain;
}

.tp-toplist-title {
   font-weight: 600;
   font-size: 0.95rem;
   color: var(--tp-fg);
   line-height: 1.3;
   margin-bottom: 2px;
}

.tp-toplist-price {
   font-weight: 700;
   color: var(--tp-accent);
   font-size: 0.95rem;
   white-space: nowrap;
}

/* Merchants Grid Polish */
.tp-grid.cols-5 {
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 12px;
}

@media(min-width: 576px) {
   .tp-grid.cols-5 {
      grid-template-columns: repeat(3, 1fr);
   }
}

@media(min-width: 992px) {
   .tp-grid.cols-5 {
      grid-template-columns: repeat(5, 1fr);
   }
}

.tp-merchant-card {
   position: relative;
   display: flex;
   flex-direction: column;
   background: rgba(30,41,59,.55);
   backdrop-filter: blur(18px);
   -webkit-backdrop-filter: blur(18px);
   border: 1px solid rgba(255,255,255, 0.08);
   border-radius: 16px;
   padding: 16px;
   transition: all 0.3s ease;
   overflow: hidden;
   height: 100%;
   text-decoration: none;
   color: var(--tp-fg);
}

.tp-merchant-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.1);
   border-color: var(--tp-accent);
   z-index: 1;
}

[data-theme="day"] .tp-merchant-card {
   background: rgba(255,255,255,.65);
   border-color: rgba(0,0,0,.08);
}

[data-theme="dark"] .tp-merchant-card {
   background: rgba(255, 255, 255, 0.03);
   border-color: rgba(255, 255, 255, 0.08);
}

.tp-merchant-card__logo-wrap {
   height: 48px;
   margin-bottom: 12px;
   display: flex;
   align-items: center;
   background: #fff;
   border-radius: 10px;
   padding: 6px 10px;
}

.tp-merchant-card__logo-wrap img {
   max-height: 100%;
   max-width: 100%;
}

.tp-merchant-card__initials {
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: var(--tp-accent);
   color: #fff;
   display: flex;
   align-items: center;
   justify-content: center;
   font-weight: 700;
   font-size: 1.2rem;
}

.tp-merchant-card__name {
   font-weight: 700;
   font-size: 1rem;
   margin-bottom: 4px;
   color: var(--tp-fg);
}

.tp-merchant-card__products {
   font-size: 0.8rem;
   color: var(--tp-muted);
}

.tp-stat-label {
   color: var(--tp-muted);
   font-size: 0.9rem;
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   END OF UNIFIED THEME — v4.2  (46 sections, full Bootstrap 5.3.3 coverage)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════════
   TRENDPREȚ — CUSTOM OVERRIDES & HARMONIZATION
   ═══════════════════════════════════════════════════════════════════════════════ */

/* ─── Background Continuity ─── */
html {
   background: var(--tp-bg0) !important;
   min-height: 100%;
}

/* ─── Frontend Spacing & Header ─── */
#main-content {
   margin-top: 24px !important;
   padding-bottom: 1px;
   /* prevent margin collapse */
}

/* Homepage: hero section symmetric spacing */
#main-content:has(.hero) {
   margin-top: 12px !important;
   padding-top: 0 !important;
}
#main-content:has(.hero) > .container {
   padding-top: 0 !important;
}

body:has(.tp-admin-layout) #main-content {
   margin-top: 0 !important;
}

.tp-nav {
   background: rgba(30, 41, 59, 0.72) !important;
   backdrop-filter: blur(18px) !important;
   -webkit-backdrop-filter: blur(18px) !important;
   border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

[data-theme="day"] .tp-nav {
   background: rgba(241, 245, 249, 0.82) !important;
   border-bottom-color: rgba(15, 23, 42, 0.08) !important;
}

/* ─── Home Page: Statistics Card ───
   Uses adjacent sibling selector: #tpToast sits before the first .tp-card
   so #tpToast + .tp-card targets the hero card on the home page only. */
#tpToast+.tp-card .col-lg-5 {
   background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)) !important;
   border: 1px solid rgba(255, 255, 255, 0.12) !important;
   border-radius: 20px !important;
   backdrop-filter: blur(14px) !important;
   -webkit-backdrop-filter: blur(14px) !important;
   padding: 1.75rem !important;
   transition: all 0.35s ease !important;
   box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18) !important;
}

#tpToast+.tp-card .col-lg-5:hover {
   background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05)) !important;
   border-color: rgba(54, 209, 255, 0.3) !important;
   transform: translateY(-3px);
   box-shadow: 0 14px 44px rgba(0, 0, 0, 0.25) !important;
}

[data-theme="day"] #tpToast+.tp-card .col-lg-5 {
   background: rgba(255, 255, 255, 0.85) !important;
   border-color: rgba(15, 23, 42, 0.1) !important;
   box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06) !important;
}

[data-theme="day"] #tpToast+.tp-card .col-lg-5:hover {
   box-shadow: 0 14px 44px rgba(0, 0, 0, 0.1) !important;
   border-color: rgba(54, 140, 255, 0.2) !important;
}

/* ─── Search Page Harmonization ─── */

/* ── Search Header ── */
.tp-search-header {
   border-bottom: 1px solid rgba(128,128,128,.12);
   padding-bottom: .75rem;
   margin-bottom: 0;
}

/* ── Search Form ── */
.tp-search-main-row {
   display: flex;
   gap: .5rem;
   align-items: stretch;
}
.tp-search-input-wrap {
   flex: 1;
   position: relative;
}
.tp-search-icon {
   position: absolute;
   left: 14px;
   top: 50%;
   transform: translateY(-50%);
   color: #94a3b8;
   font-size: 1.1rem;
   pointer-events: none;
   z-index: 2;
}
.tp-search-input-wrap .form-control {
   padding-left: 2.5rem;
   border-radius: 10px;
   border: 2px solid #e2e8f0;
   transition: border-color .2s, box-shadow .2s;
}
.tp-search-input-wrap .form-control:focus {
   border-color: var(--tp-accent, #0891b2);
   box-shadow: 0 0 0 3px rgba(8,145,178,.12);
}
.tp-search-btn {
   border-radius: 10px !important;
   padding-left: 1.25rem;
   padding-right: 1.25rem;
   white-space: nowrap;
   flex-shrink: 0;
}

/* ── Searchable Merchant Dropdown ── */
.tp-merchant-dropdown {
   position: relative;
   flex-shrink: 0;
   min-width: 180px;
   max-width: 240px;
}
.tp-merchant-select-hidden {
   display: none !important;
}
.tp-merchant-toggle {
   display: flex;
   align-items: center;
   gap: 6px;
   width: 100%;
   height: 100%;
   padding: .5rem .75rem;
   background: #fff;
   border: 2px solid #e2e8f0;
   border-radius: 10px;
   cursor: pointer;
   font-size: .9rem;
   color: #334155;
   transition: border-color .2s, box-shadow .2s;
   white-space: nowrap;
}
.tp-merchant-toggle:hover { border-color: var(--tp-accent, #0891b2); }
.tp-merchant-toggle:focus { border-color: var(--tp-accent, #0891b2); box-shadow: 0 0 0 3px rgba(8,145,178,.12); outline: none; }
.tp-merchant-text {
   flex: 1;
   overflow: hidden;
   text-overflow: ellipsis;
   text-align: left;
}
.tp-merchant-arrow {
   font-size: .65rem;
   opacity: .5;
   transition: transform .2s;
}
.tp-merchant-dropdown.open .tp-merchant-arrow { transform: rotate(180deg); }
.tp-merchant-panel {
   display: none;
   position: absolute;
   top: calc(100% + 4px);
   left: 0;
   right: 0;
   z-index: 1060;
   background: #fff;
   border: 1px solid #e2e8f0;
   border-radius: 10px;
   box-shadow: 0 8px 24px rgba(0,0,0,.12);
   overflow: hidden;
   min-width: 240px;
}
.tp-merchant-dropdown.open .tp-merchant-panel { display: flex; flex-direction: column; }
.tp-merchant-search-wrap {
   position: relative;
   padding: 8px;
   border-bottom: 1px solid rgba(128,128,128,.1);
}
.tp-merchant-search-icon {
   position: absolute;
   left: 18px;
   top: 50%;
   transform: translateY(-50%);
   color: #94a3b8;
   font-size: .85rem;
   pointer-events: none;
}
.tp-merchant-search {
   width: 100%;
   padding: 6px 10px 6px 30px;
   border: 1px solid #e2e8f0;
   border-radius: 6px;
   font-size: .85rem;
   background: transparent;
   color: inherit;
}
.tp-merchant-search:focus { outline: none; border-color: var(--tp-accent,#0891b2); }
.tp-merchant-search::placeholder { color: rgba(148,163,184,.6); }
.tp-merchant-list {
   max-height: 240px;
   overflow-y: auto;
   padding: 4px 0;
}
.tp-merchant-opt {
   padding: 7px 14px;
   cursor: pointer;
   font-size: .85rem;
   transition: background .1s;
}
.tp-merchant-opt:hover { background: rgba(8,145,178,.08); }
.tp-merchant-opt.active { background: rgba(8,145,178,.12); font-weight: 600; color: var(--tp-accent,#0891b2); }
.tp-merchant-empty { padding: 16px; text-align: center; color: #94a3b8; font-size: .85rem; }

/* Night mode: merchant dropdown */
[data-theme="night"] .tp-merchant-toggle {
   background: rgba(15,20,25,.6);
   border-color: #374151;
   color: #e5e7eb;
}
[data-theme="night"] .tp-merchant-toggle:hover { border-color: var(--tp-accent,#36d1ff); }
[data-theme="night"] .tp-merchant-panel {
   background: #1e293b;
   border-color: rgba(255,255,255,.12);
   box-shadow: 0 8px 24px rgba(0,0,0,.4);
}
[data-theme="night"] .tp-merchant-search {
   background: rgba(15,20,25,.6);
   border-color: rgba(255,255,255,.12);
   color: #e5e7eb;
}
[data-theme="night"] .tp-merchant-search:focus { border-color: var(--tp-accent,#36d1ff); }
[data-theme="night"] .tp-merchant-opt:hover { background: rgba(54,209,255,.1); }
[data-theme="night"] .tp-merchant-opt.active { background: rgba(54,209,255,.15); color: var(--tp-accent,#36d1ff); }
[data-theme="night"] .tp-merchant-empty { color: #6b7280; }

/* Day mode: search input */
[data-theme="day"] .tp-search-input-wrap .form-control {
   background: #fff;
   border-color: #d1d5db;
   color: #1f2937;
}
[data-theme="night"] .tp-search-input-wrap .form-control {
   background: rgba(15,20,25,.6);
   border-color: #374151;
   color: #e5e7eb;
}

/* ── Advanced filters ── */
.tp-advanced-filters {
   border: 1px solid rgba(128,128,128,.1);
   border-radius: 8px;
   padding: 0;
}
.tp-advanced-filters[open] {
   padding: 0;
}
.tp-advanced-toggle {
   cursor: pointer;
   font-size: .85rem;
   font-weight: 500;
   color: var(--tp-accent, #0891b2);
   padding: .5rem .75rem;
   list-style: none;
   user-select: none;
}
.tp-advanced-toggle::-webkit-details-marker { display: none; }
.tp-advanced-toggle::marker { display: none; content: ''; }
.tp-advanced-toggle:hover { opacity: .8; }
.tp-advanced-body {
   padding: 0 .75rem .75rem;
}
.tp-advanced-row {
   display: flex;
   align-items: center;
   gap: .5rem;
   flex-wrap: nowrap;
   overflow-x: auto;
   -webkit-overflow-scrolling: touch;
   scrollbar-width: none;
}
.tp-advanced-row::-webkit-scrollbar { display: none; }
.tp-advanced-row .form-control {
   flex: 1 1 150px;
   min-width: 120px;
   font-size: .85rem;
}
.tp-advanced-check {
   flex-shrink: 0;
   white-space: nowrap;
}
.tp-advanced-hint {
   flex-shrink: 0;
   white-space: nowrap;
}
.tp-advanced-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
   gap: .5rem;
}
.tp-advanced-grid .form-control,
.tp-advanced-grid .form-select {
   font-size: .85rem;
}

/* ── Recent searches tags ── */
.tp-recent-tag {
   display: inline-flex;
   align-items: center;
   padding: .25rem .65rem;
   background: rgba(8,145,178,.06);
   border: 1px solid rgba(8,145,178,.15);
   border-radius: 20px;
   font-size: .8rem;
   color: var(--tp-accent, #0891b2);
   text-decoration: none;
   transition: all .15s;
}
.tp-recent-tag:hover {
   background: rgba(8,145,178,.12);
   color: var(--tp-accent, #0891b2);
   text-decoration: none;
}
[data-theme="night"] .tp-recent-tag {
   background: rgba(54,209,255,.06);
   border-color: rgba(54,209,255,.15);
   color: var(--tp-accent, #36d1ff);
}
[data-theme="night"] .tp-recent-tag:hover {
   background: rgba(54,209,255,.12);
}

/* ── Recent products ── */
.tp-recent-item {
   border-radius: 8px;
   text-decoration: none;
   color: inherit;
   transition: background .15s;
}
.tp-recent-item:hover {
   background: rgba(128,128,128,.06);
   color: inherit;
   text-decoration: none;
}
.tp-recent-title {
   font-size: .78rem;
   line-height: 1.3;
   display: -webkit-box;
   -webkit-line-clamp: 2;
   -webkit-box-orient: vertical;
   overflow: hidden;
}
.tp-btn-ghost {
   background: transparent;
   border: none;
   color: #94a3b8;
   font-size: .78rem;
   cursor: pointer;
   padding: .2rem .5rem;
   border-radius: 4px;
}
.tp-btn-ghost:hover { background: rgba(128,128,128,.08); color: #64748b; }

/* ── Empty state ── */
.tp-empty-state {
   text-align: center;
   padding: 2rem 1rem;
}

/* ── Filter right section ── */
.tp-filter-right {
   display: flex;
   align-items: center;
   gap: .75rem;
   margin-left: auto;
}

/* Filter panel - keep one row */
.tp-filter-section {
   flex-wrap: nowrap !important;
   gap: 12px !important;
   align-items: center !important;
   overflow-x: auto;
}

.tp-price-filter-inputs {
   flex-wrap: nowrap !important;
   gap: 8px !important;
}

/* ─── Mobile Responsiveness ─── */
@media (max-width: 767.98px) {

   /* Grid cols handled by §30 */

   .tp-grid.cols-5 {
      grid-template-columns: repeat(2, 1fr) !important;
   }

   /* Header nav: ensure buttons are visible */
   .tp-nav-menu.open {
      display: flex !important;
      flex-direction: column !important;
      gap: 4px !important;
      padding: 12px !important;
   }

   .tp-nav-btn {
      min-height: 44px !important;
      /* touch target */
      min-width: 44px !important;
   }

   /* Main content reduced top margin on mobile */
   #main-content {
      margin-top: 16px !important;
   }
   #main-content:has(.hero) {
      margin-top: 10px !important;
      padding-top: 0 !important;
   }

   /* Home hero: stack columns */
   #tpToast+.tp-card .col-lg-5 {
      margin-top: 1rem;
   }

   /* Advanced filters: wrap on mobile */
   .tp-advanced-row {
      flex-wrap: wrap;
   }
   .tp-advanced-row .form-control {
      flex: 1 1 calc(33% - .5rem);
      min-width: 100px;
   }
   .tp-advanced-hint {
      white-space: normal;
   }

   /* Search form: stack on mobile */
   .tp-search-main-row {
      flex-direction: column !important;
   }
   .tp-merchant-dropdown {
      max-width: 100% !important;
      min-width: 0 !important;
   }
   .tp-merchant-panel {
      min-width: 100% !important;
   }
   .tp-search-btn {
      width: 100% !important;
   }
   .tp-advanced-grid {
      grid-template-columns: repeat(3, 1fr) !important;
      gap: .4rem !important;
   }

   /* Home search form stack */
   .tp-card .d-flex.gap-2:has(input[name="q"]) {
      flex-direction: column !important;
   }

   .tp-card .d-flex.gap-2:has(input[name="q"]) .btn {
      width: 100% !important;
   }

   /* Filter panel: responsive layout */
   .tp-filter-group {
      flex-shrink: 0;
   }

   .tp-filter-stats {
      text-align: center !important;
   }

   .tp-filter-right {
      margin-left: auto;
   }

   .tp-filter-bottom-row {
      flex-direction: row !important;
      align-items: center !important;
      gap: .5rem !important;
   }

   .tp-filter-bottom-row .tp-filter-stats {
      flex: 1 !important;
      width: auto !important;
   }

   .tp-filter-bottom-row .tp-view-buttons {
      flex-shrink: 0 !important;
      margin-left: auto !important;
   }

   /* Price row: stay on one line */
   .tp-price-filter-inputs {
      width: 100% !important;
      flex-wrap: nowrap !important;
   }

   .tp-price-input {
      flex: 1 !important;
      min-width: 0 !important;
   }
}

@media (max-width: 575.98px) {

   /* Merchant cards grid: single column on very small screens (only merchant listing, not product grids) */
   .tp-merchant-grid.cols-5 {
      grid-template-columns: 1fr !important;
   }

   /* Table responsive: prevent horizontal overflow */
   .table-responsive {
      margin: 0 -0.75rem;
      padding: 0 0.75rem;
   }
}

/* ─── Footer fixes ─── */
footer.container {
   margin-top: auto !important;
   /* push footer to bottom */
}

/* ─── Nested container fix ───
   Some page templates (merchant.php, search.php, product.php, category.php) wrap
   their content in an extra .container inside head.php's .container.
   This makes the inner container transparent so content stays full-width. */
#main-content>.container>.container {
   max-width: 100% !important;
   padding-left: 0 !important;
   padding-right: 0 !important;
   width: 100% !important;
}

/* ═══════════════════════════════════════════════
   MERCHANT PAGE HEADER
   ═══════════════════════════════════════════════ */

/* Merchant header card: transparent glass-morphism (no accent bar) */
.tp-merchant-header {
   position: relative;
   overflow: hidden;
}

/* ─── Filter Button Day/Night Fix ─── */
[data-theme="day"] .tp-filter-apply {
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   color: #fff;
   box-shadow: 0 2px 8px rgba(8, 145, 178, 0.25);
}

[data-theme="day"] .tp-filter-apply:hover {
   background: linear-gradient(135deg, #0e7490, #0891b2);
   color: #fff;
   box-shadow: 0 4px 12px rgba(8, 145, 178, 0.35);
}

[data-theme="day"] .tp-filter-reset {
   border-color: #d1d5db;
   color: #6b7280;
   background: rgba(255, 255, 255, 0.8);
}

[data-theme="day"] .tp-filter-reset:hover {
   border-color: #9ca3af;
   background: rgba(0, 0, 0, 0.03);
}

[data-theme="day"] .tp-filter-panel {
   background: rgba(255, 255, 255, 0.9);
   border-color: rgba(0, 0, 0, 0.08);
   box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
}

[data-theme="day"] .tp-filter-label {
   color: #4b5563;
}

[data-theme="day"] .tp-sort-select,
[data-theme="day"] .tp-price-input {
   background: #fff;
   border-color: #d1d5db;
   color: #1f2937;
}

[data-theme="day"] .tp-sort-select:hover,
[data-theme="day"] .tp-price-input:hover {
   border-color: #9ca3af;
}

[data-theme="day"] .tp-sort-select:focus,
[data-theme="day"] .tp-price-input:focus {
   border-color: #0891b2;
   box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.1);
}

[data-theme="day"] .tp-filter-stats {
   background: rgba(8, 145, 178, 0.06);
   border-color: rgba(8, 145, 178, 0.12);
   color: #0891b2;
}

[data-theme="day"] .tp-view-btn {
   background: rgba(0, 0, 0, 0.04);
   border-color: #d1d5db;
   color: #6b7280;
}

[data-theme="day"] .tp-view-btn.active {
   background: linear-gradient(135deg, #0891b2, #0ea5e9);
   color: #fff;
   border-color: #0891b2;
}

/* ═══════════════════════════════════════════════
   MOBILE FIXES
   ═══════════════════════════════════════════════ */

/* ─── Home page: ensure cards fit grid cells ─── */
@media (max-width: 767.98px) {
   .tp-grid .tp-pcard {
      margin-bottom: 0;
   }
}

/* ─── Product page: hide 2yr & 3yr history buttons on mobile ─── */
@media (max-width: 767.98px) {

   .tp-filter-btn[data-days="730"],
   .tp-filter-btn[data-days="1095"] {
      display: none !important;
   }
}

/* ─── Product gallery: center navigation arrows vertically ─── */
.product-gallery-modal .carousel-control-prev,
.product-gallery-modal .carousel-control-next {
   top: 50% !important;
   bottom: auto !important;
   transform: translateY(-50%);
   position: absolute !important;
}

/* ─── Product offers table: mobile responsive ─── */
@media (max-width: 767.98px) {

   /* Prevent horizontal scroll on the offers wrapper */
   .tp-offers-wrap {
      overflow-x: hidden !important;
      overflow-y: visible !important;
      width: 100% !important;
   }

   .tp-offers-table {
      font-size: 0.82rem !important;
      table-layout: fixed !important;
      width: 100% !important;
   }

   /* Collapse hidden columns completely */
   .tp-offers-table thead th:nth-child(2),
   .tp-offers-table tbody td:nth-child(2),
   .tp-offers-table thead th:nth-child(3),
   .tp-offers-table tbody td:nth-child(3) {
      display: none !important;
      width: 0 !important;
      padding: 0 !important;
      border: 0 !important;
   }

   /* Reduce padding */
   .tp-offers-table td,
   .tp-offers-table th {
      min-width: auto !important;
      padding: .4rem .25rem !important;
   }

   /* Column width distribution: Magazin 40%, Pret 28%, Button 32% */
   .tp-offers-table thead th:first-child,
   .tp-offers-table tbody td:first-child {
      width: 40% !important;
      overflow: hidden;
   }
   .tp-offers-table thead th:nth-child(4),
   .tp-offers-table tbody td:nth-child(4) {
      width: 28% !important;
      white-space: nowrap;
   }
   .tp-offers-table thead th:nth-child(5),
   .tp-offers-table tbody td:nth-child(5) {
      width: 32% !important;
   }

   .tp-offers-table tbody td:first-child .d-flex { flex-wrap: nowrap; overflow: hidden; }
   .tp-offers-table tbody td:first-child .min-w-0 { min-width: 0; overflow: hidden; }

   /* Button compact on mobile — show full text */
   .tp-offers-table .tp-btn {
      padding: 4px 10px !important;
      font-size: 0.75rem !important;
      white-space: nowrap;
   }
   .tp-offers-table .tp-btn i {
      font-size: 0.75rem !important;
      margin-right: 3px !important;
   }
   .tp-offers-table .btn-secondary {
      padding: 4px 10px !important;
      font-size: 0.75rem !important;
      white-space: nowrap;
   }
   .tp-offers-table .btn-secondary i {
      font-size: 0.75rem !important;
      margin-right: 3px !important;
   }

   /* Product page mobile text sizes */
   .tp-best-price-value {
      font-size: 1.75rem !important;
   }
   .tp-best-price-label {
      font-size: 0.95rem !important;
   }
   .tp-currency {
      font-size: 1.15rem !important;
   }
   .tp-best-merchant {
      font-size: 0.85rem !important;
   }
}

/* ====== tp-fixes.min.css ====== */
/* TrendPret UI fixes (night-mode contrast, offer highlight, MVP lists)
   Safe to include after /assets/app.css */

/* Night mode: improve general text contrast inside light panels */
[data-theme="night"] .tp-card,
[data-theme="night"] .card,
[data-theme="night"] .tp-panel {
  color: rgba(255,255,255,0.92);
}

/* Keep buttons readable in night mode */
[data-theme="night"] .tp-offer-best .btn,
[data-theme="night"] .tp-offer-bestrow .btn,
[data-theme="night"] .tp-best-row .btn,
[data-theme="night"] .bg-success-subtle .btn {
  color: #fff !important;
}
/* Slightly adjust background for night mode so the band doesn't glare */
[data-theme="night"] .tp-offer-best,
[data-theme="night"] .tp-offer-bestrow,
[data-theme="night"] .tp-best-row,
[data-theme="night"] .bg-success-subtle {
  background-color: rgba(25, 135, 84, 0.25) !important;
  border-color: rgba(25, 135, 84, 0.35) !important;
}

/* Explain "scor" chips a bit better when used on index cards */
.tp-score-help {
  font-size: 0.85rem;
  opacity: 0.85;
}

/* MVP lists: better spacing and readability */
.tp-mvp-list .list-group-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.tp-mvp-list .tp-mvp-title {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tp-mvp-list .tp-mvp-price {
  font-weight: 700;
  white-space: nowrap;
}


/* Night mode: keep best-offer row readable */
[data-theme="night"] .tp-offer-best,
[data-theme="night"] .tp-offer-bestrow,
[data-theme="night"] .tp-best-row,
[data-theme="night"] .bg-success-subtle {
  color: rgba(255,255,255,0.92) !important;
}
[data-theme="night"] .tp-offer-best *,
[data-theme="night"] .tp-offer-bestrow *,
[data-theme="night"] .tp-best-row *,
[data-theme="night"] .bg-success-subtle * {
  color: rgba(255,255,255,0.92) !important;
}


.tp-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:992px){.tp-account-grid{grid-template-columns:1fr;}}

/* Merchants grid (home) */
.tp-merchant-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:992px){.tp-merchant-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.tp-merchant-grid{grid-template-columns:1fr;}}
.tp-merchant{border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:6px;min-height:92px;}
[data-theme="day"] .tp-merchant{border-color:rgba(0,0,0,0.08);}
.tp-merchant-logo{width:56px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.10);}
[data-theme="day"] .tp-merchant-logo{background:rgba(0,0,0,0.04);border-color:rgba(0,0,0,0.06);}
.tp-merchant-logo img{max-width:100%;max-height:100%;display:block;}
.tp-merchant-logo span{font-weight:800;opacity:.85;}
.tp-merchant-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tp-merchant-domain{font-size:.85rem;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Unified product card */
.tp-pcard{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(255,255,255,0.08);border-radius:18px;text-decoration:none;color:inherit;background:rgba(30,41,59,.55);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
[data-theme="day"] .tp-pcard{background:rgba(255,255,255,.65);border-color:rgba(0,0,0,0.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
[data-theme="night"] .tp-pcard{border-color:rgba(255,255,255,0.08);}
.tp-pcard:hover{transform:scale(1.015);transition:transform .15s ease;}
.tp-pcard-thumb{width:72px;height:72px;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#ffffff;flex:0 0 auto;}
[data-theme="night"] .tp-pcard-thumb{background:rgba(255,255,255,0.06);} 
.tp-pcard-thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.tp-pcard-body{flex:1;min-width:0;}
.tp-pcard-title{font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-decoration:none;}
.tp-pcard-title{font-weight:550;letter-spacing:.1px;}
.tp-pcard-meta{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.9rem;opacity:.85;}
.tp-mlogo{width:18px;height:18px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:rgba(0,0,0,0.06);}
[data-theme="night"] .tp-mlogo{background:rgba(255,255,255,0.08);} 
.tp-mlogo img{width:100%;height:100%;object-fit:contain;}
.tp-pcard-merchant{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tp-pcard-side{white-space:nowrap;}
.tp-bestprice{padding:6px 10px;border-radius:999px;background:rgba(8,145,178,0.10);border:1px solid rgba(8,145,178,0.18);font-weight:700;color:var(--tp-accent);}
.tp-product-head{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:start;}
@media (max-width: 768px){.tp-product-head{grid-template-columns:1fr;}}
/* Product page: thumb pătrat fix */
.tp-product-thumb{width:100%;max-width:320px;height:320px;aspect-ratio:1/1;border-radius:20px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.04);box-shadow:0 2px 8px rgba(0,0,0,0.08);}
@media (min-width:768px){.tp-product-thumb{max-width:350px;height:350px;}}
[data-theme="night"] .tp-product-thumb{background:rgba(255,255,255,0.05);box-shadow:0 2px 12px rgba(0,0,0,0.3);}
.tp-product-thumb img{width:100%;height:100%;object-fit:contain;display:block;}

/* Button animations */
.tp-btn-animate{transition:transform 0.15s ease,box-shadow 0.15s ease;}
.tp-btn-animate:active{transform:scale(0.95);}

/* Best price section - cu grid pentru buton în dreapta */
.tp-best-price-section{background:linear-gradient(135deg, rgba(16,185,129,0.06), rgba(5,150,105,0.03));border:2px solid rgba(16,185,129,0.20);border-radius:16px;padding:16px 20px;}
[data-theme="night"] .tp-best-price-section{background:linear-gradient(135deg, rgba(46,229,157,0.08), rgba(16,185,129,0.05));border-color:rgba(46,229,157,0.25);}
.tp-best-price-label{font-size:1.125rem;font-weight:700;color:var(--tp-good);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px;opacity:.85;}
[data-theme="night"] .tp-best-price-label{color:var(--tp-good);opacity:.9;}
.tp-best-price-value{font-size:2.25rem;font-weight:900;line-height:1.1;color:var(--tp-good);}
[data-theme="night"] .tp-best-price-value{color:var(--tp-good);}
.tp-currency{font-size:1.5rem;font-weight:700;opacity:0.85;}
.tp-best-merchant{font-size:0.95rem;margin-top:8px;color:rgba(0,0,0,0.75);}
[data-theme="night"] .tp-best-merchant{color:rgba(255,255,255,0.75);}
.tp-merchant-link-inline{color:var(--tp-good);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(16,185,129,0.3);transition:all 0.2s;}
[data-theme="night"] .tp-merchant-link-inline{color:var(--tp-good);}
.tp-merchant-link-inline:hover{color:var(--tp-good-light);border-bottom-color:var(--tp-good);}
[data-theme="night"] .tp-merchant-link-inline:hover{color:var(--tp-good-light);border-bottom-color:var(--tp-good);}

/* Favorite button active state */
.tp-btn-favorite.active{background:rgba(239,68,68,0.10);border-color:rgba(239,68,68,0.30);color:#ef4444;}
[data-theme="night"] .tp-btn-favorite.active{background:rgba(248,113,113,0.12);border-color:rgba(248,113,113,0.30);color:#f87171;}
[data-theme="day"] .tp-btn-favorite.active{background:rgba(220,38,38,0.08);border-color:rgba(220,38,38,0.25);color:#dc2626;}

/* Alert button active state */
.tp-btn-alert.active{background:rgba(8,145,178,0.10);border-color:rgba(8,145,178,0.30);color:#0891b2;}
[data-theme="night"] .tp-btn-alert.active{background:rgba(54,209,255,0.12);border-color:rgba(54,209,255,0.30);color:#36d1ff;}
[data-theme="day"] .tp-btn-alert.active{background:rgba(8,145,178,0.08);border-color:rgba(8,145,178,0.25);color:#0891b2;}

/* Modal redesigned */
.tp-modal-content{border-radius:16px;border:none;box-shadow:0 6px 24px rgba(0,0,0,0.10);}
[data-theme="night"] .tp-modal-content{background:#1a1d23;box-shadow:0 6px 24px rgba(0,0,0,0.30);}
.tp-modal-header{border-bottom:1px solid rgba(0,0,0,0.06);padding:16px 20px;}
[data-theme="night"] .tp-modal-header{border-bottom-color:rgba(255,255,255,0.06);}
.tp-modal-icon{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,rgba(8,145,178,0.08),rgba(14,165,233,0.05));display:flex;align-items:center;justify-content:center;color:var(--tp-accent);font-size:1.1rem;}
[data-theme="night"] .tp-modal-icon{background:linear-gradient(135deg,rgba(54,209,255,0.10),rgba(20,184,166,0.06));color:var(--tp-accent);}
.tp-modal-body{padding:16px 20px;}
.tp-modal-footer{border-top:1px solid rgba(0,0,0,0.06);padding:12px 20px;}
[data-theme="night"] .tp-modal-footer{border-top-color:rgba(255,255,255,0.06);}
.tp-alert-info{background:rgba(8,145,178,0.08);border:1px solid rgba(8,145,178,0.2);border-radius:12px;}
[data-theme="night"] .tp-alert-info{background:rgba(54,209,255,0.15);border-color:rgba(54,209,255,0.3);}

/* Price history filters */
.tp-price-filters{display:flex;gap:6px;flex-wrap:wrap;}
.tp-filter-btn{border:1px solid rgba(0,0,0,0.12);background:transparent;color:inherit;padding:6px 12px;border-radius:8px;font-size:0.875rem;font-weight:500;transition:all 0.2s;cursor:pointer;}
[data-theme="night"] .tp-filter-btn{border-color:rgba(255,255,255,0.15);}
.tp-filter-btn:hover{background:rgba(0,0,0,0.05);transform:scale(1.02);}
[data-theme="night"] .tp-filter-btn:hover{background:rgba(255,255,255,0.08);}
.tp-filter-btn.active{background:linear-gradient(135deg, #0891b2, #0ea5e9);color:#fff;border-color:transparent;box-shadow:0 2px 6px rgba(8,145,178,0.18);}
[data-theme="night"] .tp-filter-btn.active{background:linear-gradient(135deg, #36d1ff, #0ea5e9);border-color:transparent;color:#fff;box-shadow:0 2px 6px rgba(54,209,255,0.18);}

/* Badge count */
.tp-badge-count{background:rgba(0,0,0,0.06);color:inherit;padding:4px 12px;border-radius:12px;font-size:0.875rem;font-weight:600;}
[data-theme="night"] .tp-badge-count{background:rgba(255,255,255,0.1);}

/* Offers table improvements - compact și lizibil */
.tp-offers-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.tp-offers-table{font-size:0.9rem;}
.tp-offers-table thead{background:rgba(0,0,0,0.02);}
[data-theme="night"] .tp-offers-table thead{background:rgba(255,255,255,0.03);}
.tp-offers-table td,.tp-offers-table th{padding:0.75rem;vertical-align:middle;}
.tp-offers-table td:first-child{min-width:160px;}
.tp-offers-table td:nth-child(2){max-width:420px;}
.tp-offers-table td:nth-child(3){min-width:80px;}
.tp-offers-table td:nth-child(4){min-width:120px;white-space:nowrap;}
.tp-offers-table thead th{font-size:0.85rem;font-weight:600;color:var(--tp-fg-secondary,#6c757d);border-bottom:2px solid var(--tp-border,#dee2e6);}
.tp-offers-table tbody tr{border-bottom:1px solid var(--tp-border2,#f0f0f0);}
.tp-offers-table tbody tr:hover{background:rgba(var(--bs-primary-rgb,0,123,255),0.04);}
.tp-offers-table .tp-mlogo-sm{width:40px;height:40px;border-radius:10px;flex-shrink:0;overflow:hidden;display:block;}
.tp-offers-table .tp-mlogo-sm img{width:100%;height:100%;object-fit:contain;background:#fff;}
.tp-offers-table .tp-rating-mini{font-size:0.75rem;color:var(--tp-warn,#ffc107);white-space:nowrap;}
.tp-offers-table .tp-rating-mini i{font-size:0.7rem;}
.tp-offers-table .tp-stock-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:0.75rem;font-weight:600;}
.tp-offers-table .tp-stock-badge.in{background:rgba(25,135,84,0.12);color:#16a34a;}
.tp-offers-table .tp-stock-badge.out{background:rgba(220,38,38,0.10);color:#dc2626;}
[data-theme="night"] .tp-offers-table .tp-stock-badge.in{background:rgba(25,135,84,0.18);color:#4bb543;}
[data-theme="night"] .tp-offers-table .tp-stock-badge.out{background:rgba(220,38,38,0.15);color:#f87171;}
.tp-offers-table .tp-clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4;}

.tp-product-main{min-width:0;}
.tp-mlogo-lg{width:40px;height:40px;border-radius:14px;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;background:rgba(0,0,0,0.03);}
[data-theme="night"] .tp-mlogo-lg{background:rgba(255,255,255,0.06);} 
.tp-mlogo-lg img{width:100%;height:100%;object-fit:contain;display:block;}

.tp-price-big{font-weight:800;letter-spacing:.2px;}
.tp-price-best{font-weight:900;padding:6px 10px;border-radius:999px;background:rgba(8,145,178,0.10);border:1px solid rgba(8,145,178,0.18);display:inline-block;color:var(--tp-accent);}
[data-theme="night"] .tp-price-best{background:rgba(54,209,255,0.12);border-color:rgba(54,209,255,0.22);color:var(--tp-accent);}
.tp-merchant-link{color:var(--tp-accent);font-weight:700;text-decoration:none;border-bottom:2px solid rgba(8,145,178,0.35);transition:all 0.2s;}
.tp-merchant-link:hover{color:var(--tp-accent-hover);filter:brightness(1.1);border-bottom-color:var(--tp-accent);}
.tp-share-btn{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;}

/* ── Theme-aware color utility classes ── */
/* Accent link (replaces inline #667eea) */
.tp-link-accent{color:var(--tp-accent);text-decoration:none;font-weight:600;transition:color .2s ease;}
.tp-link-accent:hover{color:var(--tp-accent-hover);}

/* Semantic icon colors */
.tp-icon-accent{color:var(--tp-accent);}
.tp-icon-warn{color:var(--tp-warn);}
.tp-icon-good{color:var(--tp-good);}
.tp-icon-bad{color:var(--tp-bad);}
.tp-icon-muted{color:var(--tp-fg-secondary);}

/* Star rating color */
.tp-star{font-size:.8rem;color:var(--tp-warn);}
.tp-star-sm{font-size:.75rem;color:var(--tp-warn);}
.tp-star-dim{opacity:.3;}
.tp-star-value{color:var(--tp-warn);font-weight:600;}

/* Trend arrows */
.tp-trend-up{color:var(--tp-bad);}
.tp-trend-down{color:var(--tp-good);}
.tp-trend-stable{color:var(--tp-fg-tertiary);}

/* Stock badges */
.tp-stock-in{color:var(--tp-good);font-weight:700;font-size:.75rem;}
.tp-stock-out{color:var(--tp-bad);font-weight:700;font-size:.75rem;}

/* Best price highlight */
.tp-price-highlight{color:var(--tp-accent);font-size:1.1rem;}

/* Active bell / heart */
.tp-icon-bell-active{color:var(--tp-warn);}
.tp-icon-heart-active{color:var(--tp-bad);}

/* Merchant hover link in offers table */
.tp-merchant-hover{color:inherit;text-decoration:none;}
.tp-merchant-hover:hover{color:var(--tp-accent);}

/* Product card accent price / border */
.tp-pcard-accent{color:var(--tp-accent);}
.tp-pcard-border-accent{border-left:3px solid var(--tp-accent);}

/* Modal themed components */
.tp-modal-price-box{border-radius:10px;padding:0.85rem 1rem;height:100%;}
.tp-modal-price-box--current{background:rgba(var(--bs-danger-rgb),.05);border:1.5px solid rgba(var(--bs-danger-rgb),.15);}
.tp-modal-price-box--target{background:rgba(54,209,255,.04);border:1.5px solid rgba(54,209,255,.12);}
.tp-modal-price-label{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;}
.tp-modal-price-label--current{color:var(--tp-bad);}
.tp-modal-price-label--target{color:var(--tp-accent2);}
.tp-modal-price-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;}
.tp-modal-price-icon--current{background:linear-gradient(135deg,var(--tp-bad),var(--tp-bad-light));}
.tp-modal-price-icon--target{background:linear-gradient(135deg,var(--tp-accent),var(--tp-accent2));}
.tp-modal-price-icon i{color:#fff;font-size:.75rem;}
.tp-modal-price-value--current{color:var(--tp-bad);font-size:1.15rem !important;}
.tp-modal-price-value--target{color:var(--tp-accent2);}
.tp-modal-target-input{border:1.5px solid var(--tp-border);background:var(--tp-bg3);font-size:1.1rem;font-weight:bold;color:var(--tp-accent);text-align:center;border-radius:8px;padding:.6rem 3rem .6rem .6rem;}
.tp-modal-target-input:focus{border-color:var(--tp-accent);box-shadow:0 0 0 3px rgba(54,209,255,.08);}
.tp-modal-target-suffix{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:var(--tp-accent);font-weight:700;font-size:1.1rem;pointer-events:none;}
.tp-modal-email-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--tp-fg-secondary);font-size:1rem;pointer-events:none;}
.tp-modal-email-icon--auth{color:var(--tp-accent);}
.tp-modal-email-input{padding-left:3rem;border-radius:10px;border:1.5px solid var(--tp-border);font-size:.9rem;transition:all .2s ease;}
.tp-modal-email-input:focus{border-color:var(--tp-accent);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.08);}
.tp-modal-email-input--auth{background:rgba(var(--bs-primary-rgb),.04);}

/* Newsletter box */
.tp-newsletter-box{background:rgba(var(--bs-primary-rgb),.04);border:1.5px solid rgba(var(--bs-primary-rgb),.12);border-radius:10px;padding:.85rem 1rem;transition:all .3s ease;}
.tp-newsletter-box:hover{border-color:rgba(var(--bs-primary-rgb),.3);background:rgba(var(--bs-primary-rgb),.07);}
.tp-newsletter-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--tp-accent),var(--tp-accent2));border-radius:8px;box-shadow:var(--tp-shadow4);display:flex;align-items:center;justify-content:center;}
.tp-newsletter-icon i{color:#fff;font-size:1.1rem;}
.tp-newsletter-check{width:1.1rem;height:1.1rem;cursor:pointer;border-width:1.5px;border-color:var(--tp-accent);}
.tp-newsletter-label{cursor:pointer;font-weight:600;color:var(--tp-accent);font-size:.9rem;}
.tp-newsletter-desc{color:var(--tp-fg-secondary);font-size:.8rem;line-height:1.4;padding-left:1.75rem;}

/* Alert info boxes (warn / success) */
.tp-alert-box-themed{border-radius:10px;padding:.75rem 1rem;}
.tp-alert-box-themed--warn{background:rgba(var(--bs-warning-rgb),.07);border:1px solid rgba(var(--bs-warning-rgb),.18);}
.tp-alert-box-themed--success{background:rgba(var(--bs-success-rgb),.07);border:1px solid rgba(var(--bs-success-rgb),.18);}
.tp-alert-icon{width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.tp-alert-icon--warn{background:linear-gradient(135deg,var(--tp-warn),var(--tp-warn-light));}
.tp-alert-icon--success{background:linear-gradient(135deg,var(--tp-good),var(--tp-good-light));}
.tp-alert-icon i{color:#fff;font-size:.95rem;}
.tp-alert-text--warn strong{color:var(--tp-warn);}
.tp-alert-text--warn span{color:var(--tp-fg-secondary);font-size:.82rem;}
.tp-alert-text--success strong{color:var(--tp-good);}
.tp-alert-text--success span{color:var(--tp-fg-secondary);font-size:.82rem;}

/* Modal footer themed */
.tp-modal-footer-themed{background:var(--tp-bg4);border-top:1px solid var(--tp-border);padding:1rem 1.25rem;display:flex;gap:.5rem;}
.tp-modal-save-btn{border-radius:8px;font-weight:600;background:linear-gradient(135deg,var(--tp-accent),var(--tp-accent2));border:none;box-shadow:var(--tp-shadow4);}

/* Report modal form themed */
.tp-form-themed{border-radius:12px;border:2px solid var(--tp-border);font-size:1rem;padding:.75rem 1rem;}
.tp-form-textarea-themed{border-radius:12px;border:2px solid var(--tp-border);font-size:1rem;padding:1rem;resize:vertical;min-height:100px;}

/* Stat value themed colors */
.tp-stat-accent{color:var(--tp-accent);}
.tp-stat-info{color:var(--tp-info);}
.tp-stat-warn{color:var(--tp-warn);}
.tp-stat-good{color:var(--tp-good);}
.tp-stat-bad{color:var(--tp-bad);}
.tp-stat-muted{color:var(--tp-fg-secondary);}

/* Admin badge themed */
.tp-badge-good{border-color:rgba(var(--bs-success-rgb),.35);background:rgba(var(--bs-success-rgb),.10);color:var(--tp-good);}
.tp-badge-bad{border-color:rgba(var(--bs-danger-rgb),.35);background:rgba(var(--bs-danger-rgb),.10);color:var(--tp-bad);}
.tp-badge-warn{border-color:rgba(var(--bs-warning-rgb),.35);background:rgba(var(--bs-warning-rgb),.10);color:var(--tp-warn);}
.tp-badge-muted{border-color:rgba(156,163,175,.35);background:rgba(156,163,175,.10);color:var(--tp-fg-secondary);}

/* Admin terminal / log pre */
.tp-terminal{background:var(--tp-bg0);color:var(--tp-fg);padding:12px;border-radius:8px;max-height:60vh;overflow:auto;white-space:pre-wrap;}

/* Debug panels themed */
.tp-debug-panel{background:var(--tp-bg4);border:1px solid var(--tp-border);border-radius:4px;padding:20px;margin-top:40px;}
.tp-debug-pre{background:var(--tp-bg3);padding:10px;border-radius:4px;overflow-x:auto;font-size:.85rem;}

/* Error page suggestion card */
.tp-error-suggestions{background:linear-gradient(135deg,var(--tp-bg3),var(--tp-bg4));color:var(--tp-fg);border-radius:var(--tp-radius);padding:2rem;}
.tp-error-suggestions__title{letter-spacing:.12em;color:var(--tp-accent);text-transform:uppercase;font-size:.85rem;font-weight:600;margin-bottom:.5rem;}
.tp-error-suggestions__icon{color:var(--tp-accent);}

/* Admin no-image placeholder (JS-generated) */
.tp-no-img-placeholder{width:72px;height:72px;background:var(--tp-bg4);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--tp-fg-muted);}

/* Admin CRUD help icon */
.tp-help-icon-themed{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--tp-accent);color:#fff;font-size:11px;align-items:center;justify-content:center;cursor:help;}

/* ── Merchant Cards (Homepage) ── */
.tp-merchant-card{position:relative;display:flex;flex-direction:column;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(30,41,59,.55);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:inherit;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;}
.tp-merchant-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,0.12);border-color:rgba(54,209,255,0.25);}
[data-theme="day"] .tp-merchant-card{background:rgba(255,255,255,.65);border-color:rgba(0,0,0,.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 1px 4px rgba(0,0,0,0.04);}
[data-theme="day"] .tp-merchant-card:hover{box-shadow:0 8px 30px rgba(0,0,0,0.10);}
[data-theme="night"] .tp-merchant-card{border-color:rgba(255,255,255,0.08);}
[data-theme="night"] .tp-merchant-card:hover{border-color:rgba(54,209,255,0.30);}

/* Logo area — always white so all logos are visible */
.tp-merchant-card__logo-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:90px;padding:12px 20px;background:#fff;border-radius:20px 20px 0 0;flex-shrink:0;overflow:hidden;}
.tp-merchant-card__logo-wrap img{max-width:100%;max-height:60px;height:auto;width:auto;object-fit:contain;display:block;}

/* Initials fallback */
.tp-merchant-card__initials{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;font-size:1.3rem;font-weight:800;letter-spacing:1px;color:#fff;background:linear-gradient(135deg,#0891b2,#0ea5e9);flex-shrink:0;}

/* Body: name + meta — transparent to match card glass */
.tp-merchant-card__body{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px;flex:1;min-width:0;transition:background-color .3s ease,color .3s ease;background:transparent;}
[data-theme="day"] .tp-merchant-card__body{background:transparent;color:#374151;}
[data-theme="night"] .tp-merchant-card__body{background:transparent;color:#d1d5db;}
.tp-merchant-card__name{font-weight:700;font-size:.95rem;line-height:1.3;}
.tp-merchant-card__products{font-size:.8rem;color:var(--tp-fg-secondary);white-space:nowrap;}
.tp-merchant-card__body .tp-rating{font-size:.78rem;}
.tp-merchant-card__body .tp-rating i{font-size:.72rem;}

/* ── Shimmer / shine hover effect ── */
.tp-merchant-card__shine{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.15) 50%,transparent 70%);pointer-events:none;transition:none;}
.tp-merchant-card:hover .tp-merchant-card__shine{animation:tpCardShine .7s ease forwards;}
[data-theme="night"] .tp-merchant-card__shine{background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.06) 50%,transparent 70%);}
@keyframes tpCardShine{0%{left:-100%;}100%{left:100%;}}

/* ── Merchant Page Logo ── */
.tp-merchant-page-logo{display:flex;align-items:center;justify-content:center;width:220px;height:120px;flex-shrink:0;padding:10px 16px;border-radius:18px;background:#fff;border:1px solid rgba(0,0,0,0.06);overflow:hidden;}
[data-theme="night"] .tp-merchant-page-logo{background:linear-gradient(135deg,rgba(255,255,255,0.08),rgba(255,255,255,0.03));border-color:rgba(255,255,255,0.08);}
.tp-merchant-page-logo img{max-width:100%;max-height:90px;height:auto;width:auto;object-fit:contain;display:block;}
.tp-merchant-page-logo__initials{display:flex;align-items:center;justify-content:center;width:80px;height:90px;border-radius:14px;font-size:1.8rem;font-weight:800;letter-spacing:2px;color:#fff;background:linear-gradient(135deg,#0891b2,#0ea5e9);}

/* ── Homepage Top Lists (full-row clickable) ── */
.tp-toplist-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:inherit;transition:background .2s ease,transform .15s ease;border-bottom:1px solid var(--tp-border);}
.tp-toplist-row:last-child{border-bottom:none;}
.tp-toplist-row:hover{background:var(--tp-bg5);transform:translateX(3px);}
[data-theme="day"] .tp-toplist-row:hover{background:#f0f4ff;}
.tp-toplist-thumb{width:46px;height:46px;flex-shrink:0;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--tp-border);display:flex;align-items:center;justify-content:center;}
.tp-toplist-thumb img{width:100%;height:100%;object-fit:contain;padding:3px;}
.tp-toplist-title{font-weight:600;font-size:.9rem;color:var(--tp-fg);}
.tp-toplist-price{font-weight:700;font-size:.88rem;color:var(--tp-accent);white-space:nowrap;}
.tp-pill{padding:4px 8px;border-radius:999px;font-size:.8rem;border:1px solid rgba(255,255,255,0.10);background:rgba(255,255,255,0.06);}
[data-theme="day"] .tp-pill{border-color:rgba(0,0,0,0.08);background:rgba(0,0,0,0.03);}
.tp-rating i{color:var(--tp-warn,#f5c542);}
[data-theme="night"] .tp-bestprice{background:rgba(54,209,255,0.14);border-color:rgba(54,209,255,0.22);} 

/* Marquee / carousel */
.tp-marquee{overflow:hidden;}
.tp-marquee-track{display:flex;gap:12px;align-items:stretch;animation:tpMarquee 30s linear infinite;}
.tp-marquee:hover .tp-marquee-track{animation-play-state:paused;}
.tp-marquee-item{min-width:320px;}

/* Live indicator dot */
.tp-live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;background:rgba(54,209,255,0.9);box-shadow:0 0 0 0 rgba(54,209,255,0.55);animation:tpPulse 2.2s ease-in-out infinite;vertical-align:middle;}
@keyframes tpPulse{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(54,209,255,0.55);}70%{transform:scale(1.05);box-shadow:0 0 0 8px rgba(54,209,255,0);}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(54,209,255,0);}}

/* Home: Statistici offer mini-carousel */
.tp-stats-carousel{position:relative;overflow-x:auto;border-radius:16px;overflow-anchor:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.tp-stats-carousel::-webkit-scrollbar{display:none;}
.tp-stats-carousel-track{display:flex;gap:12px;align-items:stretch;overflow:visible;scrollbar-width:none;}
.tp-stats-carousel-item{min-width:100%;scroll-snap-align:start;flex-shrink:0;}
@media (min-width: 992px){
  .tp-stats-carousel-item{min-width:calc(100% - 0px);} /* one card per slide inside the stats box */
}
.tp-offercard{display:flex;align-items:stretch;gap:10px;padding:10px;border-radius:16px;border:1px solid rgba(0,0,0,0.08);background:rgba(255,255,255,0.02);}
[data-theme="day"] .tp-offercard{background:rgba(255,255,255,.65);border-color:rgba(0,0,0,0.08);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);}
[data-theme="night"] .tp-offercard{border-color:rgba(255,255,255,0.10);background:rgba(255,255,255,0.03);}
.tp-offercard-main{display:flex;align-items:center;gap:10px;min-width:0;flex:1;text-decoration:none;color:inherit;}
.tp-offercard-thumb{width:46px;height:46px;border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.03);flex:0 0 auto;}
[data-theme="night"] .tp-offercard-thumb{background:rgba(255,255,255,0.06);} 
.tp-offercard-thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.tp-offercard-body{display:flex;flex-direction:column;gap:4px;min-width:0;}
.tp-offercard-title{font-weight:600;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tp-offercard-price{font-weight:800;letter-spacing:.1px;white-space:nowrap;}
.tp-offercard-cta{border-radius:12px;font-weight:800;padding:.45rem .7rem;align-self:center;}
@keyframes tpMarquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}

/* Product page: alert icon under heart */
.tp-alert-icon{border:1px solid rgba(0,0,0,0.10);background:transparent;border-radius:14px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;}
[data-theme="night"] .tp-alert-icon{border-color:rgba(255,255,255,0.12);} 
.tp-alert-icon:hover{transform:scale(1.08);}

/* Offers table spacing & highlight */
.tp-best-row{background:rgba(54,209,255,0.05);} 
[data-theme="night"] .tp-best-row{background:rgba(54,209,255,0.08);}

/* Admin tables in night mode - FORCE DARK BG */
[data-theme="night"] .table {
  color: rgba(255,255,255,0.92) !important;
  border-color: rgba(255,255,255,0.10) !important;
  background-color: transparent !important;
  --bs-table-bg: transparent !important;
  --bs-table-color: rgba(255,255,255,0.92) !important;
  --bs-table-striped-bg: transparent !important;
}
[data-theme="night"] .table-striped > tbody > tr:nth-of-type(odd) {
  --bs-table-bg: transparent !important;
  background-color: transparent !important;
}
[data-theme="night"] .table thead {
  background-color: rgba(255,255,255,0.05) !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  --bs-table-bg: rgba(255,255,255,0.05) !important;
}
[data-theme="night"] .table thead th {
  color: rgba(255,255,255,0.92) !important;
  border-color: rgba(255,255,255,0.10) !important;
  background-color: rgba(255,255,255,0.05) !important;
  font-weight: 600 !important;
  --bs-table-bg: rgba(255,255,255,0.05) !important;
}
[data-theme="night"] .table tbody {
  --bs-table-bg: transparent !important;
}
[data-theme="night"] .table tbody tr {
  border-bottom: 1px solid rgba(255,255,255,0.06) !important;
  background-color: transparent !important;
  --bs-table-bg: transparent !important;
}
[data-theme="night"] .table tbody tr:hover {
  background-color: rgba(255,255,255,0.04) !important;
  --bs-table-accent-bg: rgba(255,255,255,0.04) !important;
}
[data-theme="night"] .table td,
[data-theme="night"] .table th {
  border-color: rgba(255,255,255,0.06) !important;
  color: rgba(255,255,255,0.92) !important;
  padding: 0.75rem !important;
  background-color: transparent !important;
  --bs-table-bg: transparent !important;
}
[data-theme="night"] .table-sm td,
[data-theme="night"] .table-sm th {
  color: rgba(255,255,255,0.92) !important;
  background-color: transparent !important;
}
[data-theme="night"] .table-hover tbody tr:hover {
  background-color: rgba(255,255,255,0.04) !important;
  color: rgba(255,255,255,0.92) !important;
  --bs-table-accent-bg: rgba(255,255,255,0.04) !important;
}

/* Admin table responsive sizing */
.table { font-size: 0.95rem; }
.table-sm { font-size: 0.88rem; }
.table td, .table th { 
  padding: 0.6rem 0.75rem; 
  vertical-align: middle;
  word-break: break-word;
}
.table-responsive { overflow-x: auto; }
.table-responsive table { min-width: 500px; }

/* Compact buttons in tables */
.table .btn { 
  padding: 0.35rem 0.6rem; 
  font-size: 0.85rem; 
}
.table .btn-sm { 
  padding: 0.25rem 0.5rem; 
  font-size: 0.8rem; 
}
[data-theme="night"] .table .btn-outline { 
  border-color: rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.85);
}
.table .btn-outline:hover {
  background-color: rgba(255,193,7,0.15);
  border-color: rgba(255,193,7,0.4);
  color: rgba(255,193,7,0.95);
}

/* Admin modal styling for night mode */
[data-theme="night"] .modal-content {
  background-color: rgba(7,17,38,0.98);
  border: 1px solid rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.92);
  box-shadow: 0 6px 24px rgba(0,0,0,0.25);
}
[data-theme="night"] .modal-header {
  border-bottom: 1px solid rgba(255,255,255,0.10);
  color: rgba(255,255,255,0.92);
  background-color: rgba(255,255,255,0.02);
}
[data-theme="night"] .modal-header .btn-close {
  filter: invert(1);
  opacity: 0.7;
}
[data-theme="night"] .modal-footer {
  border-top: 1px solid rgba(255,255,255,0.10);
  background-color: rgba(255,255,255,0.02);
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

/* Modal button styling */
[data-theme="night"] .modal-footer .btn {
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
  min-width: 100px;
}
[data-theme="night"] .modal-footer .btn-outline {
  border-color: rgba(255,255,255,0.25);
  color: rgba(255,255,255,0.85);
  background-color: transparent;
}
[data-theme="night"] .modal-footer .btn-outline:hover {
  background-color: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.40);
  color: rgba(255,255,255,0.95);
}
[data-theme="night"] .modal-footer .tp-btn {
  background-color: rgba(54,209,255,0.85) !important;
  border-color: rgba(54,209,255,0.85) !important;
  color: #050d1a !important;
  font-weight: 600;
}
[data-theme="night"] .modal-footer .tp-btn:hover {
  background-color: rgba(54,209,255,0.95) !important;
  border-color: rgba(54,209,255,0.95) !important;
}

/* Logo preview in modal */
.tp-logo-preview {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 8px;
  background-color: rgba(255,255,255,0.02);
  min-height: 100px;
}
.tp-logo-preview img {
  border-radius: 6px;
}

/* Modal body styling */
[data-theme="night"] .modal-body {
  color: rgba(255,255,255,0.92);
  padding: 1.5rem;
}
[data-theme="night"] .modal-body .row {
  margin: 0;
}
[data-theme="night"] .modal-body label {
  color: rgba(255,255,255,0.92);
  font-weight: 500;
  margin-bottom: 0.4rem;
}

/* Form controls styling in night mode */
[data-theme="night"] .form-control,
[data-theme="night"] .form-select,
[data-theme="night"] textarea.form-control {
  background-color: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.92);
}
[data-theme="night"] .form-control:focus,
[data-theme="night"] .form-select:focus,
[data-theme="night"] textarea.form-control:focus {
  background-color: rgba(255,255,255,0.06);
  border-color: rgba(54,209,255,0.5);
  box-shadow: 0 0 0 0.2rem rgba(54,209,255,0.25);
  color: rgba(255,255,255,0.95);
}
[data-theme="night"] .form-control::placeholder {
  color: rgba(255,255,255,0.35);
}
[data-theme="night"] .form-check-input {
  background-color: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.20);
}
[data-theme="night"] .form-check-input:checked {
  background-color: rgba(54,209,255,0.7);
  border-color: rgba(54,209,255,0.7);
}
[data-theme="night"] .form-check-input:focus {
  border-color: rgba(54,209,255,0.5);
  box-shadow: 0 0 0 0.25rem rgba(54,209,255,0.25);
}

/* Form labels in night mode */
[data-theme="night"] .form-label {
  color: rgba(255,255,255,0.92);
}
[data-theme="night"] .tp-muted {
  color: rgba(255,255,255,0.60) !important;
}

/* Admin buttons styling */
[data-theme="night"] .btn-primary {
  background: linear-gradient(135deg, #36d1ff, #0ea5e9) !important;
  border: none;
  color: #fff;
}
[data-theme="night"] .btn-primary:hover {
  filter: brightness(1.08);
}
[data-theme="night"] .btn-secondary {
  background-color: rgba(108,117,125,0.6);
  border-color: rgba(108,117,125,0.6);
  color: rgba(255,255,255,0.95);
}
[data-theme="night"] .btn-secondary:hover {
  background-color: rgba(108,117,125,0.75);
  border-color: rgba(108,117,125,0.75);
}

.tp-mlogo-lg{width:34px;height:34px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.08);}
[data-theme="night"] .tp-mlogo-lg{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.10);} 
.tp-mlogo-lg img{width:100%;height:100%;object-fit:contain;}
.tp-price-big{font-weight:800;font-size:1.05rem;}
.tp-offer-cta{padding:.5rem .8rem;border-radius:12px;font-weight:700;}
.tp-stock{padding:4px 10px;border-radius:999px;font-size:.85rem;font-weight:700;}
.tp-stock.in{background:rgba(8,145,178,0.10);border:1px solid rgba(8,145,178,0.18);} 
.tp-stock.out{background:rgba(220,53,69,0.10);border:1px solid rgba(220,53,69,0.18);} 

/* Social buttons */
.tp-social{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,0.10);text-decoration:none;color:inherit;}
[data-theme="night"] .tp-social{border-color:rgba(255,255,255,0.12);} 

.tp-stars button{background:transparent;border:0;padding:0 2px;font-size:18px;line-height:1;color:#f5c542;}
.tp-stars .tp-star{cursor:pointer;}



/* Home dedicated carousel sizing */
#tpHomeOfferCarousel{overflow:hidden;}
#tpHomeOfferCarousel .tp-stats-carousel-track{gap:14px;transition:transform .45s ease;}
#tpHomeOfferCarousel .tp-stats-carousel-item{min-width:320px;max-width:360px;flex:0 0 auto;}
@media (max-width: 575.98px){
  #tpHomeOfferCarousel .tp-stats-carousel-item{min-width:260px;max-width:300px;}
}

/* Stats carousel (Statistici box) */
#tpStatsOfferCarousel{scroll-behavior:smooth;}
#tpStatsOfferCarousel .tp-stats-carousel-track::-webkit-scrollbar{display:none;}
#tpStatsOfferCarousel .tp-stats-carousel-item{min-width:100%;max-width:100%;flex:0 0 auto;scroll-snap-align:start;}

/* Enforce merchants grid on home */
.tp-grid{ display:grid; gap:14px; }
.tp-grid.cols-4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
@media (max-width: 1200px){ .tp-grid.cols-4{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 992px){ .tp-grid.cols-4{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 576px){ .tp-grid.cols-4{ grid-template-columns: 1fr; } }
.tp-grid.cols-5{ grid-template-columns: repeat(5, minmax(0,1fr)); }
@media (max-width: 1200px){ .tp-grid.cols-5{ grid-template-columns: repeat(4, minmax(0,1fr)); } }
@media (max-width: 992px){ .tp-grid.cols-5{ grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 768px){ .tp-grid.cols-5{ grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 480px){ .tp-grid.cols-5{ grid-template-columns: repeat(2, minmax(0,1fr)); } }

.tp-rating{ display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.tp-rating .bi{ font-size: 14px; color: rgba(255,255,255,.35); }
.tp-rating .bi-star-fill{ color:#fbbf24; }
.tp-rating .bi-star-half{ color: rgba(251,191,36,.75); }
.tp-rating .tp-muted{ opacity:.8; }

.tp-merchant-rating-box{ display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.tp-merchant-rating-line{ display:flex; align-items:center; gap:8px; }
.tp-merchant-avg-pill{ padding:4px 8px; border-radius:999px; background: rgba(251,191,36,.12); border: 1px solid rgba(251,191,36,.22); font-weight:600; font-size:12px; }

/* Merchant page rating info (avg + vote count) */
.tp-merchant-rating-info{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;}
.tp-merchant-avg-badge{display:inline-flex;align-items:baseline;gap:2px;font-size:1.35rem;font-weight:700;color:#fbbf24;letter-spacing:-0.5px;}
.tp-merchant-avg-badge .tp-merchant-avg-max{font-size:0.85rem;font-weight:500;color:var(--tp-muted);opacity:.7;}
.tp-merchant-vote-count{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:999px;font-size:0.85rem;font-weight:600;background:rgba(251,191,36,0.10);border:1px solid rgba(251,191,36,0.18);color:#fbbf24;}
.tp-merchant-vote-count i{font-size:0.8rem;opacity:.8;}
[data-theme="day"] .tp-merchant-avg-badge{color:#b48a0a;}
[data-theme="day"] .tp-merchant-vote-count{background:rgba(180,138,10,0.08);border-color:rgba(180,138,10,0.18);color:#8a6a08;}
.tp-merchant-rate-cta{color:#fbbf24;font-weight:500;animation:tp-rate-cta-pulse 2.5s ease-in-out infinite;}
[data-theme="day"] .tp-merchant-rate-cta{color:#b48a0a;}
@keyframes tp-rate-cta-pulse{0%,100%{opacity:.6;}50%{opacity:1;}}

/* Slider: hide scrollbar */
#tpStatsOfferCarousel .tp-stats-carousel-track{ scrollbar-width:none; }
#tpStatsOfferCarousel .tp-stats-carousel-track::-webkit-scrollbar{ display:none; }

/* Night theme: Top produse accesate list styling */
[data-theme="night"] .tp-card .list-group-item { 
  background: rgba(255,255,255,0.03) !important; 
  border-color: rgba(255,255,255,0.10) !important;
  color: rgba(255,255,255,0.92);
}
[data-theme="night"] .tp-card .list-group-item:hover { 
  background: rgba(255,255,255,0.06) !important; 
}
[data-theme="night"] .tp-card .list-group-item .text-bg-secondary { 
  background-color: rgba(108,117,125,0.6) !important; 
  color: rgba(255,255,255,0.92) !important;
}

/* Merchant rating: interactive stars */
.tp-rate-stars{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:nowrap;}
.tp-rate-star{border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.03);border-radius:10px;
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,0.35);cursor:pointer;transition:transform .12s ease, background .12s ease, color .12s ease, border-color .12s ease;
}
[data-theme="day"] .tp-rate-star{border-color:rgba(0,0,0,0.12);background:#fff;color:rgba(0,0,0,0.28);}
.tp-rate-star:hover{transform:scale(1.08);border-color:rgba(255,193,7,0.55);background:rgba(255,193,7,0.10);color:rgba(255,193,7,0.95);}
.tp-rate-star.is-on{border-color:rgba(255,193,7,0.55);background:rgba(255,193,7,0.10);color:rgba(255,193,7,0.95);}
/* Hover rating widget */
.tp-rate-stars-hover{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:nowrap;}
.tp-rate-stars-hover .tp-rate-star{border:0;background:transparent;width:36px;height:36px;color:#ffc107;opacity:0.9;font-size:1.75rem;padding:0;}
.tp-rate-stars-hover .tp-rate-star:hover{opacity:1;transform:scale(1.2);}
.tp-rate-stars-hover .tp-rate-star i.bi-star{opacity:0.35;}
.tp-rate-stars-hover .tp-rate-star i.bi-star-fill{opacity:1;}
.tp-rate-stars-hover:hover .tp-rate-star i.bi-star-fill{opacity:0.35;}
.tp-rate-stars-hover .tp-rate-star:hover i.bi-star,
.tp-rate-stars-hover .tp-rate-star:hover ~ .tp-rate-star i.bi-star{opacity:0.35;}
.tp-rate-stars-hover .tp-rate-star:hover i.bi-star-fill,
.tp-rate-stars-hover .tp-rate-star:hover ~ .tp-rate-star i.bi-star-fill{opacity:1;}

/* ═══════════════════════════════════════════════════════════════
   Canonical Groups — Full Day/Night Theme Support
   ═══════════════════════════════════════════════════════════════ */

/* ── Layout ── */
.tp-cg-wrap { padding: 20px 24px; }

/* ── Search bar ── */
.tp-cg-search-bar {
  display: flex; align-items: center; gap: 10px; margin-bottom: 18px; flex-wrap: wrap;
}
.tp-cg-search-bar__input {
  flex: 1 1 300px; min-width: 200px; padding: 9px 16px; border-radius: 12px;
  border: 1px solid var(--tp-cg-border);
  background: var(--tp-cg-input-bg, rgba(255,255,255,.06));
  color: var(--tp-cg-fg); font-size: 14px;
  transition: border-color .2s, box-shadow .2s; outline: none;
}
.tp-cg-search-bar__input::placeholder { color: var(--tp-cg-muted); opacity: .7; }
.tp-cg-search-bar__input:focus {
  border-color: var(--tp-cg-accent); box-shadow: 0 0 0 3px rgba(var(--tp-cg-accent-rgb, 0,206,209), .15);
}
.tp-cg-search-bar__btn { padding: 9px 20px; font-weight: 600; }
.tp-cg-search-bar__clear { font-size: 13px; }
.tp-cg-search-info {
  margin-bottom: 16px; padding: 10px 16px; border-radius: 10px;
  background: var(--tp-cg-primary-bg); color: var(--tp-cg-fg);
  font-size: 13px; border: 1px solid var(--tp-cg-border-soft);
}

/* ── Head product site link ── */
.tp-cgd-head__site-link {
  display: inline-block; margin-left: 8px; font-size: 18px;
  text-decoration: none; opacity: .6;
  transition: opacity .2s, transform .2s;
  vertical-align: middle;
}
.tp-cgd-head__site-link:hover { opacity: 1; transform: scale(1.15); }

/* ── Stats bar ── */
.tp-cg-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.tp-cg-stat {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 16px 12px; border-radius: 14px;
  background: var(--tp-cg-card-bg);
  border: 1px solid var(--tp-cg-border);
  transition: transform .15s ease, box-shadow .15s ease;
}
.tp-cg-stat:hover { transform: scale(1.02); box-shadow: var(--tp-cg-hover-shadow); }
.tp-cg-stat__icon { font-size: 22px; line-height: 1; }
.tp-cg-stat__val { font-size: 20px; font-weight: 700; color: var(--tp-cg-fg); }
.tp-cg-stat__label { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--tp-cg-muted); }

/* ── Empty state ── */
.tp-cg-empty {
  text-align: center; padding: 48px 20px;
  background: var(--tp-cg-card-bg); border: 1px dashed var(--tp-cg-border);
  border-radius: 14px; color: var(--tp-cg-muted);
}
.tp-cg-empty__icon { font-size: 36px; display: block; margin-bottom: 10px; }
.tp-cg-empty p { margin: 0; font-size: 14px; }

/* ── Table ── */
.tp-cg-table-wrap {
  border-radius: 14px; overflow: hidden;
  border: 1px solid var(--tp-cg-border);
  background: var(--tp-cg-card-bg);
}
.tp-cg-table {
  width: 100%; border-collapse: collapse;
  font-size: 13px; color: var(--tp-cg-fg);
}
.tp-cg-table thead { background: var(--tp-cg-th-bg); }
.tp-cg-table th {
  padding: 10px 14px; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .5px;
  color: var(--tp-cg-muted); border-bottom: 1px solid var(--tp-cg-border);
  white-space: nowrap;
}
.tp-cg-th--img { width: 60px; text-align: center; }
.tp-cg-th--title { min-width: 200px; }
.tp-cg-th--num { width: 70px; text-align: center; }
.tp-cg-th--act { width: 110px; text-align: center; }

.tp-cg-table td {
  padding: 10px 14px; vertical-align: middle;
  border-bottom: 1px solid var(--tp-cg-border-soft);
}
.tp-cg-table tbody tr:last-child td { border-bottom: none; }

/* ── Row ── */
.tp-cg-row {
  cursor: pointer;
  transition: background .15s ease;
}
.tp-cg-row:hover { background: var(--tp-cg-row-hover); }
.tp-cg-row--primary { background: var(--tp-cg-primary-bg) !important; }

/* ── Cell helpers ── */
.tp-cg-cell--img { text-align: center; }
.tp-cg-cell--title { line-height: 1.35; }
.tp-cg-cell--num { text-align: center; }
.tp-cg-cell--act { text-align: center; white-space: nowrap; }

/* ── Thumbnail ── */
.tp-cg-thumb {
  width: 48px; height: 48px; border-radius: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  overflow: hidden;
  background: var(--tp-cg-thumb-bg);
  border: 1px solid var(--tp-cg-border-soft);
}
.tp-cg-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.tp-cg-thumb__ph { font-size: 20px; opacity: .5; }

/* ── Title + ID ── */
.tp-cg-title {
  display: block; font-weight: 600; color: var(--tp-cg-fg);
  line-height: 1.3;
}
.tp-cg-id {
  display: block; font-size: 11px; color: var(--tp-cg-muted); margin-top: 2px;
}
.tp-cg-brand { color: var(--tp-cg-muted); font-size: 13px; }

/* ── Badges ── */
.tp-cg-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 22px; padding: 0 8px;
  border-radius: 999px; font-size: 11px; font-weight: 700;
  line-height: 1;
}
.tp-cg-badge--members { background: var(--tp-cg-badge-members-bg); color: var(--tp-cg-badge-members-fg); }
.tp-cg-badge--offers { background: var(--tp-cg-badge-offers-bg); color: var(--tp-cg-badge-offers-fg); }
.tp-cg-badge--primary { background: var(--tp-cg-badge-primary-bg); color: var(--tp-cg-badge-primary-fg); font-size: 10px; padding: 2px 8px; }
.tp-cg-badge--muted { background: var(--tp-cg-badge-muted-bg); color: var(--tp-cg-muted); }

/* ── Buttons ── */
.tp-cg-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 14px; border-radius: 10px;
  font-size: 12px; font-weight: 600; line-height: 1;
  border: 1px solid var(--tp-cg-btn-border);
  background: var(--tp-cg-btn-bg); color: var(--tp-cg-btn-fg);
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: all .15s ease;
}
.tp-cg-btn:hover {
  background: var(--tp-cg-btn-hover-bg); color: var(--tp-cg-btn-hover-fg);
  border-color: var(--tp-cg-btn-hover-border);
  transform: scale(1.02);
}
.tp-cg-btn--back {
  background: var(--tp-cg-btn-back-bg); border-color: var(--tp-cg-btn-back-border);
  color: var(--tp-cg-btn-back-fg);
}
.tp-cg-btn--back:hover {
  background: var(--tp-cg-btn-back-hover);
}
.tp-cg-btn--sm { padding: 4px 10px; font-size: 11px; border-radius: 8px; }
.tp-cg-btn--danger {
  border-color: var(--tp-cg-btn-danger-border);
  background: var(--tp-cg-btn-danger-bg); color: var(--tp-cg-btn-danger-fg);
}
.tp-cg-btn--danger:hover {
  background: var(--tp-cg-btn-danger-hover-bg); color: #fff;
  border-color: var(--tp-cg-btn-danger-hover-border);
}
.tp-cg-btn--lock {
  border-color: var(--tp-cg-btn-lock-border);
  background: var(--tp-cg-btn-lock-bg); color: var(--tp-cg-btn-lock-fg);
}
.tp-cg-btn--lock:hover, .tp-cg-btn--locked {
  background: var(--tp-cg-btn-lock-active-bg); color: var(--tp-cg-btn-lock-active-fg);
  border-color: var(--tp-cg-btn-lock-active-border);
}

/* ── Pagination ── */
.tp-cg-pag {
  display: flex; flex-wrap: wrap; gap: 6px;
  justify-content: center; margin-top: 20px; padding: 12px 0;
}
.tp-cg-pag__link {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 36px; height: 34px; padding: 0 10px;
  border-radius: 10px; font-size: 13px; font-weight: 500;
  text-decoration: none;
  background: var(--tp-cg-pag-bg); border: 1px solid var(--tp-cg-pag-border);
  color: var(--tp-cg-pag-fg);
  transition: all .15s ease;
}
.tp-cg-pag__link:hover {
  background: var(--tp-cg-pag-hover-bg); color: var(--tp-cg-pag-hover-fg);
  border-color: var(--tp-cg-pag-hover-border);
}
.tp-cg-pag__link--active {
  background: var(--tp-cg-pag-active-bg) !important;
  border-color: var(--tp-cg-pag-active-border) !important;
  color: var(--tp-cg-pag-active-fg) !important;
  font-weight: 700;
}

/* ── Detail: Head card ── */
.tp-cg-back { margin-bottom: 16px; }
.tp-cgd-head {
  border-radius: 16px; overflow: hidden;
  background: var(--tp-cg-card-bg);
  border: 1px solid var(--tp-cg-border);
  margin-bottom: 24px;
}
.tp-cgd-head__badge {
  padding: 10px 20px; font-size: 12px; font-weight: 700; letter-spacing: .5px;
  text-transform: uppercase;
  background: var(--tp-cg-head-badge-bg); color: var(--tp-cg-head-badge-fg);
  border-bottom: 1px solid var(--tp-cg-border);
}
.tp-cgd-head__body {
  display: flex; gap: 24px; padding: 20px;
}
.tp-cgd-head__img {
  flex-shrink: 0; width: 140px; height: 140px;
  border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: var(--tp-cg-thumb-bg); border: 1px solid var(--tp-cg-border-soft);
  overflow: hidden;
}
.tp-cgd-head__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.tp-cgd-head__nopic { font-size: 40px; opacity: .4; }
.tp-cgd-head__info { flex: 1; min-width: 0; }
.tp-cgd-head__title {
  margin: 0 0 14px 0; font-size: 17px; font-weight: 700;
  color: var(--tp-cg-fg); line-height: 1.35;
}
.tp-cgd-head__meta { display: flex; flex-direction: column; gap: 6px; }
.tp-cgd-meta-row { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.tp-cgd-meta-label {
  flex-shrink: 0; width: 80px; font-weight: 600;
  color: var(--tp-cg-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .3px;
}
.tp-cgd-meta-val { color: var(--tp-cg-fg); }
.tp-cgd-meta-val--code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; padding: 2px 8px;
  border-radius: 6px;
  background: var(--tp-cg-code-bg); color: var(--tp-cg-code-fg);
}

/* ── Detail: Protection ── */
.tp-cgd-head__protect {
  padding: 14px 20px; border-top: 1px solid var(--tp-cg-border-soft);
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.tp-cgd-head__protect-title { font-size: 13px; font-weight: 700; color: var(--tp-cg-fg); }
.tp-cgd-head__protect-desc { font-size: 11px; color: var(--tp-cg-muted); }
.tp-cgd-head__protect-btns { display: flex; gap: 8px; margin-left: auto; }

/* ── Detail: Members section ── */
.tp-cgd-members {
  border-radius: 16px; overflow: hidden;
  background: var(--tp-cg-card-bg);
  border: 1px solid var(--tp-cg-border);
}
.tp-cgd-members__header {
  padding: 14px 20px; border-bottom: 1px solid var(--tp-cg-border);
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px;
}
.tp-cgd-members__title {
  margin: 0; font-size: 15px; font-weight: 700; color: var(--tp-cg-fg);
}
.tp-cgd-search {
  flex: 1 1 220px; max-width: 340px;
}
.tp-cgd-search__input {
  width: 100%; padding: 7px 14px; border-radius: 10px;
  border: 1px solid var(--tp-cg-border);
  background: var(--tp-cg-input-bg, rgba(255,255,255,.06));
  color: var(--tp-cg-fg); font-size: 13px;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
}
.tp-cgd-search__input::placeholder { color: var(--tp-cg-muted); opacity: .7; }
.tp-cgd-search__input:focus {
  border-color: var(--tp-cg-accent); box-shadow: 0 0 0 3px rgba(var(--tp-cg-accent-rgb, 0,206,209), .15);
}
.tp-cgd-no-results {
  text-align: center; padding: 32px 16px; color: var(--tp-cg-muted);
}
.tp-cgd-no-results .tp-cg-empty__icon { font-size: 2rem; display: block; margin-bottom: 8px; }
.tp-cgd-members .tp-cg-table-wrap { border: none; border-radius: 0; }

/* ── Responsive ── */
@media (max-width: 768px) {
  .tp-cg-wrap { padding: 12px; }
  .tp-cg-stats { grid-template-columns: repeat(2, 1fr); }
  .tp-cg-search-bar { flex-direction: column; }
  .tp-cg-search-bar__input { flex: 1 1 auto; min-width: 0; width: 100%; }
  .tp-cgd-head__body { flex-direction: column; gap: 14px; }
  .tp-cgd-head__img { width: 100px; height: 100px; }
  .tp-cgd-head__protect { flex-direction: column; align-items: flex-start; }
  .tp-cgd-head__protect-btns { margin-left: 0; }
  .tp-cg-th--act, .tp-cg-cell--act { display: none; }
}

/* ═══ DAY THEME TOKENS ═══ */
[data-theme="day"] {
  --tp-cg-fg: #1e293b;
  --tp-cg-muted: #64748b;
  --tp-cg-card-bg: #fff;
  --tp-cg-border: rgba(15,23,42,.10);
  --tp-cg-border-soft: rgba(15,23,42,.06);
  --tp-cg-th-bg: #f8fafc;
  --tp-cg-row-hover: rgba(8,145,178,.04);
  --tp-cg-primary-bg: rgba(8,145,178,.06);
  --tp-cg-hover-shadow: 0 4px 12px rgba(15,23,42,.08);
  --tp-cg-thumb-bg: #f1f5f9;

  --tp-cg-badge-members-bg: rgba(8,145,178,.10);
  --tp-cg-badge-members-fg: #0891b2;
  --tp-cg-badge-offers-bg: rgba(22,163,74,.10);
  --tp-cg-badge-offers-fg: #16a34a;
  --tp-cg-badge-primary-bg: rgba(22,163,74,.12);
  --tp-cg-badge-primary-fg: #16a34a;
  --tp-cg-badge-muted-bg: rgba(15,23,42,.05);

  --tp-cg-btn-bg: #fff;
  --tp-cg-btn-fg: #0891b2;
  --tp-cg-btn-border: rgba(8,145,178,.25);
  --tp-cg-btn-hover-bg: rgba(8,145,178,.06);
  --tp-cg-btn-hover-fg: #0e7490;
  --tp-cg-btn-hover-border: rgba(8,145,178,.4);

  --tp-cg-btn-back-bg: #f1f5f9;
  --tp-cg-btn-back-border: rgba(15,23,42,.10);
  --tp-cg-btn-back-fg: #475569;
  --tp-cg-btn-back-hover: #e2e8f0;

  --tp-cg-btn-danger-bg: #fff;
  --tp-cg-btn-danger-fg: #dc2626;
  --tp-cg-btn-danger-border: rgba(220,38,38,.25);
  --tp-cg-btn-danger-hover-bg: #dc2626;
  --tp-cg-btn-danger-hover-border: #dc2626;

  --tp-cg-btn-lock-bg: #fff;
  --tp-cg-btn-lock-fg: #0e7490;
  --tp-cg-btn-lock-border: rgba(14,116,144,.25);
  --tp-cg-btn-lock-active-bg: rgba(14,116,144,.10);
  --tp-cg-btn-lock-active-fg: #0e7490;
  --tp-cg-btn-lock-active-border: rgba(14,116,144,.4);

  --tp-cg-pag-bg: #fff;
  --tp-cg-pag-border: rgba(15,23,42,.10);
  --tp-cg-pag-fg: #475569;
  --tp-cg-pag-hover-bg: #f1f5f9;
  --tp-cg-pag-hover-fg: #1e293b;
  --tp-cg-pag-hover-border: rgba(15,23,42,.18);
  --tp-cg-pag-active-bg: linear-gradient(135deg, #0891b2, #0e7490);
  --tp-cg-pag-active-border: transparent;
  --tp-cg-pag-active-fg: #fff;

  --tp-cg-head-badge-bg: linear-gradient(135deg, rgba(8,145,178,.08), rgba(14,116,144,.06));
  --tp-cg-head-badge-fg: #0891b2;

  --tp-cg-code-bg: #f1f5f9;
  --tp-cg-code-fg: #334155;
  --tp-cg-input-bg: #fff;
  --tp-cg-accent: #0891b2;
  --tp-cg-accent-rgb: 8,145,178;
}

/* ═══ NIGHT THEME TOKENS ═══ */
[data-theme="night"] {
  --tp-cg-fg: #eaf0ff;
  --tp-cg-muted: rgba(255,255,255,.55);
  --tp-cg-card-bg: rgba(255,255,255,.04);
  --tp-cg-border: rgba(255,255,255,.10);
  --tp-cg-border-soft: rgba(255,255,255,.06);
  --tp-cg-th-bg: rgba(255,255,255,.06);
  --tp-cg-row-hover: rgba(54,209,255,.06);
  --tp-cg-primary-bg: rgba(54,209,255,.08);
  --tp-cg-hover-shadow: 0 4px 16px rgba(0,0,0,.35);
  --tp-cg-thumb-bg: rgba(255,255,255,.06);

  --tp-cg-badge-members-bg: rgba(54,209,255,.15);
  --tp-cg-badge-members-fg: #7dd3fc;
  --tp-cg-badge-offers-bg: rgba(74,222,128,.15);
  --tp-cg-badge-offers-fg: #86efac;
  --tp-cg-badge-primary-bg: rgba(74,222,128,.15);
  --tp-cg-badge-primary-fg: #86efac;
  --tp-cg-badge-muted-bg: rgba(255,255,255,.06);

  --tp-cg-btn-bg: rgba(255,255,255,.04);
  --tp-cg-btn-fg: #7dd3fc;
  --tp-cg-btn-border: rgba(54,209,255,.25);
  --tp-cg-btn-hover-bg: rgba(54,209,255,.12);
  --tp-cg-btn-hover-fg: #bae6fd;
  --tp-cg-btn-hover-border: rgba(54,209,255,.4);

  --tp-cg-btn-back-bg: rgba(255,255,255,.06);
  --tp-cg-btn-back-border: rgba(255,255,255,.12);
  --tp-cg-btn-back-fg: rgba(255,255,255,.75);
  --tp-cg-btn-back-hover: rgba(255,255,255,.10);

  --tp-cg-btn-danger-bg: rgba(255,255,255,.04);
  --tp-cg-btn-danger-fg: #fca5a5;
  --tp-cg-btn-danger-border: rgba(248,113,113,.25);
  --tp-cg-btn-danger-hover-bg: rgba(239,68,68,.75);
  --tp-cg-btn-danger-hover-border: rgba(239,68,68,.75);

  --tp-cg-btn-lock-bg: rgba(255,255,255,.04);
  --tp-cg-btn-lock-fg: #c4b5fd;
  --tp-cg-btn-lock-border: rgba(167,139,250,.25);
  --tp-cg-btn-lock-active-bg: rgba(167,139,250,.15);
  --tp-cg-btn-lock-active-fg: #ddd6fe;
  --tp-cg-btn-lock-active-border: rgba(167,139,250,.4);

  --tp-cg-pag-bg: rgba(255,255,255,.04);
  --tp-cg-pag-border: rgba(255,255,255,.10);
  --tp-cg-pag-fg: rgba(255,255,255,.70);
  --tp-cg-pag-hover-bg: rgba(255,255,255,.08);
  --tp-cg-pag-hover-fg: #fff;
  --tp-cg-pag-hover-border: rgba(255,255,255,.18);
  --tp-cg-pag-active-bg: linear-gradient(135deg, rgba(54,209,255,.7), rgba(8,145,178,.6));
  --tp-cg-pag-active-border: transparent;
  --tp-cg-pag-active-fg: #fff;

  --tp-cg-head-badge-bg: linear-gradient(135deg, rgba(54,209,255,.15), rgba(8,145,178,.12));
  --tp-cg-head-badge-fg: #7dd3fc;

  --tp-cg-code-bg: rgba(255,255,255,.08);
  --tp-cg-code-fg: #c4b5fd;
  --tp-cg-input-bg: rgba(255,255,255,.06);
  --tp-cg-accent: #36d1ff;
  --tp-cg-accent-rgb: 54,209,255;
}

/* ── Canonical Groups: Toolbar ── */
.tp-cg-toolbar {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: .75rem 0;
  padding: .75rem 1rem;
  background: var(--tp-cg-stat-bg);
  border-radius: 12px;
  border: 1px solid var(--tp-cg-border);
  flex-wrap: wrap;
}
.tp-cg-btn--danger {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  color: #fff !important;
  border: none;
  font-weight: 600;
  padding: .5rem 1.25rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: .85rem;
  transition: all .2s;
}
.tp-cg-btn--danger:hover { filter: brightness(1.15); transform: scale(1.02); }
.tp-cg-btn--danger:disabled { opacity: .5; cursor: not-allowed; transform: none; }

.tp-cg-btn--primary {
  background: linear-gradient(135deg, var(--tp-cg-accent, #0891b2), #36d1ff) !important;
  color: #fff !important;
  border: none;
  font-weight: 600;
  padding: .5rem 1.25rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: .85rem;
  transition: all .2s;
}
.tp-cg-btn--primary:hover { filter: brightness(1.15); transform: scale(1.02); }
.tp-cg-btn--primary:disabled { opacity: .5; cursor: not-allowed; transform: none; }

.tp-cg-toolbar__status {
  font-size: .85rem;
  font-weight: 500;
  margin-left: auto;
}
.tp-cg-toolbar__status--ok { color: #22c55e; }
.tp-cg-toolbar__status--err { color: #ef4444; }
.tp-cg-toolbar__status--warn { color: #f59e0b; }
.tp-cg-toolbar__status--info { color: var(--tp-cg-accent, #0891b2); }

/* ── Canonical Groups: Progress ── */
.tp-cg-progress {
  margin: .75rem 0;
  padding: 1rem;
  background: var(--tp-cg-stat-bg);
  border-radius: 12px;
  border: 1px solid var(--tp-cg-border);
}
.tp-cg-progress__bar-wrap {
  height: 24px;
  background: var(--tp-cg-input-bg, rgba(0,0,0,.08));
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: .75rem;
}
.tp-cg-progress__bar {
  height: 100%;
  background: linear-gradient(135deg, var(--tp-cg-accent, #0891b2), #36d1ff);
  border-radius: 12px;
  transition: width .3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75rem;
  font-weight: 700;
  color: #fff;
  min-width: 0;
}
.tp-cg-progress__log {
  max-height: 200px;
  overflow-y: auto;
  font-size: .8rem;
  line-height: 1.5;
  padding: .75rem;
  border-radius: 8px;
  background: var(--tp-cg-input-bg, rgba(0,0,0,.06));
  color: var(--tp-cg-fg);
  border: 1px solid var(--tp-cg-border);
  white-space: pre-wrap;
  word-break: break-word;
  margin: 0;
}

/* responsive */
@media (max-width: 600px) {
  .tp-cg-toolbar { flex-direction: column; align-items: stretch; }
  .tp-cg-toolbar__status { margin-left: 0; text-align: center; margin-top: .5rem; }
}

/* ═══════════════════════════════════════════════════════════════════════
   GLOBAL RESPONSIVE & MOBILE-FRIENDLY UTILITIES
   ═══════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════
   UNIFIED ADMIN TABLE SYSTEM — tp-admin-table-wrap
   Single pattern for ALL admin tables: responsive, themed, mobile-ready
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Scroll wrapper ── */
.tp-admin-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.5rem;padding:0 .5rem;border-radius:10px;}

/* ── Base table ── */
.tp-admin-table-wrap>.tp-admin-tbl{width:100%;min-width:600px;border-collapse:separate;border-spacing:0;font-size:.88rem;color:var(--tp-fg);background:transparent;}
.tp-admin-table-wrap>.tp-admin-tbl th,
.tp-admin-table-wrap>.tp-admin-tbl td{padding:.65rem .75rem;vertical-align:middle;white-space:nowrap;border-bottom:1px solid var(--tp-border,rgba(128,128,128,.15));}

/* ── Sticky themed header ── */
.tp-admin-table-wrap>.tp-admin-tbl>thead>tr>th{position:sticky;top:0;z-index:2;background:var(--tp-bg4,#f8f9fc);font-weight:700;font-size:.82rem;color:var(--tp-fg-secondary,#64748b);text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid var(--tp-border,rgba(128,128,128,.15));white-space:nowrap;}
[data-theme="night"] .tp-admin-table-wrap>.tp-admin-tbl>thead>tr>th{background:var(--tp-bg4,#1a1f2e);color:var(--tp-fg-secondary,rgba(255,255,255,.6));}

/* ── Row hover ── */
.tp-admin-table-wrap>.tp-admin-tbl>tbody>tr{transition:background .12s;}
.tp-admin-table-wrap>.tp-admin-tbl>tbody>tr:hover>*{background-color:var(--tp-bg4,rgba(0,0,0,.02)) !important;}
[data-theme="night"] .tp-admin-table-wrap>.tp-admin-tbl>tbody>tr:hover>*{background-color:rgba(255,255,255,.04) !important;}

/* ── Striped rows (optional: add .tp-striped to table) ── */
.tp-admin-table-wrap>.tp-admin-tbl.tp-striped>tbody>tr:nth-child(even)>td{background:rgba(0,0,0,.015);}
[data-theme="night"] .tp-admin-table-wrap>.tp-admin-tbl.tp-striped>tbody>tr:nth-child(even)>td{background:rgba(255,255,255,.02);}

/* ── Cell types ── */
.tp-admin-tbl .tp-cell-id{font-family:var(--tp-font-code,monospace);font-size:.8rem;max-width:80px;color:var(--tp-fg-secondary);}
.tp-admin-tbl .tp-cell-title{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tp-admin-tbl .tp-cell-wrap{white-space:normal !important;word-break:break-word;min-width:100px;}
.tp-admin-tbl .tp-cell-actions{white-space:nowrap;text-align:right;}
.tp-admin-tbl .tp-cell-center{text-align:center;}
.tp-admin-tbl .tp-cell-num{text-align:right;font-variant-numeric:tabular-nums;}
.tp-admin-tbl .tp-cell-date{font-size:.8rem;color:var(--tp-fg-secondary);white-space:nowrap;}
.tp-admin-tbl .tp-cell-trunc{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tp-admin-tbl .tp-cell-url{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;word-break:break-all;}

/* ── Links ── */
.tp-admin-tbl a{color:var(--tp-accent);text-decoration:none;}.tp-admin-tbl a:hover{color:var(--tp-accent-hover);text-decoration:underline;}

/* ── Sortable headers ── */
.tp-admin-tbl th a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:4px;}.tp-admin-tbl th a:hover{color:var(--tp-accent);}

/* ── Buttons in tables ── */
.tp-admin-tbl .btn{padding:.3rem .55rem;font-size:.8rem;border-radius:8px;}
.tp-admin-tbl .btn-group .btn{border-radius:0;}.tp-admin-tbl .btn-group .btn:first-child{border-radius:8px 0 0 8px;}.tp-admin-tbl .btn-group .btn:last-child{border-radius:0 8px 8px 0;}
.tp-admin-tbl .btn-group .btn:only-child{border-radius:8px;}

/* ── Thumbnails ── */
.tp-admin-tbl .tp-tbl-thumb{width:40px;height:40px;border-radius:6px;object-fit:contain;background:var(--tp-bg4);border:1px solid var(--tp-border,rgba(128,128,128,.1));}

/* ── Empty state ── */
.tp-admin-tbl .tp-tbl-empty{text-align:center;padding:2.5rem 1rem !important;color:var(--tp-fg-secondary);font-size:.9rem;}
.tp-admin-tbl .tp-tbl-empty i{font-size:1.8rem;display:block;margin-bottom:.5rem;opacity:.5;}

/* ── Badges in tables (inherit existing) ── */
.tp-admin-tbl .tp-badge{font-size:.75rem;}

/* ═══ BACKWARD COMPAT: old .table-responsive + Bootstrap .table in admin ═══ */
.container-fluid .table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.5rem;padding:0 .5rem;}
.container-fluid .table-responsive table{min-width:600px;}
.container-fluid .table-responsive th,.container-fluid .table-responsive td{white-space:nowrap;vertical-align:middle;}
.container-fluid .table-responsive .table>thead>tr>th{position:sticky;top:0;z-index:2;background:var(--tp-bg4,#f8f9fc);font-weight:700;font-size:.82rem;color:var(--tp-fg-secondary,#64748b);text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid var(--tp-border,rgba(128,128,128,.15));}
[data-theme="night"] .container-fluid .table-responsive .table>thead>tr>th{background:var(--tp-bg4,#1a1f2e);color:var(--tp-fg-secondary,rgba(255,255,255,.6));}
.container-fluid .table-hover>tbody>tr:hover>*{background-color:var(--tp-bg4,rgba(0,0,0,.02)) !important;}
/* Admin status badges — centralized theme-aware */
.tp-status-active,.badge-active,.badge-approved{background:rgba(34,197,94,.15) !important;color:var(--tp-good) !important;border:1px solid rgba(34,197,94,.3);}
.tp-status-inactive,.badge-inactive,.badge-rejected{background:rgba(239,68,68,.12) !important;color:var(--tp-bad) !important;border:1px solid rgba(239,68,68,.25);}
.tp-status-pending,.badge-pending{background:rgba(245,158,11,.12) !important;color:var(--tp-warn) !important;border:1px solid rgba(245,158,11,.25);}
.tp-status-paused,.badge-paused{background:var(--tp-bg4) !important;color:var(--tp-fg-secondary) !important;border:1px solid var(--tp-border);}
/* Admin stat value — accent colored */
.tp-stat-value,.stat-value{color:var(--tp-accent) !important;font-weight:700;}
.tp-stat-label,.stat-label{color:var(--tp-fg-secondary) !important;font-size:.85rem;}
/* Stat box container */
.stat-box,.tp-stat-box{
  padding:1rem;border-radius:var(--tp-radius2,12px);text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.03));
  border:1px solid var(--tp-border2);backdrop-filter:blur(6px);
}
[data-theme="day"] .stat-box,[data-theme="day"] .tp-stat-box{
  background:rgba(255,255,255,.6);border-color:var(--tp-border);
}
/* Admin help icon — centralized */
.tp-help-icon,.tp-section-help{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--tp-accent);color:#fff;font-size:11px;font-weight:700;cursor:help;flex-shrink:0;}
/* Admin inline styles override for common patterns */
.container-fluid .table td,.container-fluid .table th{color:var(--tp-fg);}
.container-fluid .table a{color:var(--tp-accent);}.container-fluid .table a:hover{color:var(--tp-accent-hover);}

/* ── Admin Pagination (extracted from inline) ── */
.tp-pagination{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--tp-border);border-bottom:1px solid var(--tp-border);margin:8px 0;flex-wrap:wrap;gap:10px;}
.tp-pagination .tp-pg-list{display:flex;list-style:none;margin:0;padding:0;gap:2px;flex-wrap:wrap;}
.tp-pagination .tp-pg-list li a,
.tp-pagination .tp-pg-list li span{display:inline-block;padding:4px 10px;border:1px solid var(--tp-border);border-radius:4px;text-decoration:none;color:inherit;font-size:.85rem;cursor:pointer;}
.tp-pagination .tp-pg-list li a:hover{background:rgba(54,209,255,.15);border-color:rgba(54,209,255,.4);}
.tp-pagination .tp-pg-list li.active a{background:var(--tp-accent);color:#fff;border-color:var(--tp-accent);}
.tp-pagination .tp-pg-list li.disabled a,
.tp-pagination .tp-pg-list li.disabled span{opacity:.4;pointer-events:none;cursor:default;}
.tp-pagination .tp-pg-jump{display:flex;align-items:center;gap:6px;}
.tp-pagination .tp-pg-jump input{width:70px;padding:4px 8px;border:1px solid var(--tp-border);border-radius:4px;font-size:.85rem;background:transparent;color:inherit;}
.tp-pagination .tp-pg-jump button{padding:4px 12px;border:1px solid rgba(54,209,255,.4);border-radius:4px;background:rgba(54,209,255,.1);color:inherit;font-size:.85rem;cursor:pointer;}
.tp-pagination .tp-pg-jump button:hover{background:rgba(54,209,255,.25);}

/* ── Footer redesign v2 ── */
.tp-footer-wrap{margin-top:auto;}

/* Newsletter strip */
.tp-footer-nl{background:linear-gradient(135deg, rgba(54,209,255,.08) 0%, rgba(20,184,166,.06) 100%);border-top:1px solid var(--tp-border);border-bottom:1px solid var(--tp-border);}
[data-theme="day"] .tp-footer-nl{background:linear-gradient(135deg, rgba(54,209,255,.06) 0%, rgba(20,184,166,.04) 100%);}
.tp-footer-nl-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:2rem 0;}
.tp-footer-nl-text{display:flex;align-items:center;gap:1rem;flex:1;min-width:0;}
.tp-footer-nl-icon{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg, var(--tp-accent), var(--tp-accent2));display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#fff;flex-shrink:0;}
.tp-footer-nl-title{font-weight:700;font-size:1.1rem;color:var(--tp-fg);margin-bottom:2px;}
.tp-footer-nl-desc{font-size:.85rem;color:var(--tp-fg-secondary);line-height:1.4;}
.tp-footer-nl-form{display:flex;gap:.5rem;flex-shrink:0;}
.tp-footer-nl-input-wrap{position:relative;}
.tp-footer-nl-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--tp-fg-tertiary);font-size:.95rem;pointer-events:none;}
.tp-footer-nl-input{width:280px;padding:10px 14px 10px 40px;border:1px solid var(--tp-border);border-radius:12px;background:var(--tp-bg3);color:var(--tp-fg);font-size:.9rem;transition:border-color .2s,box-shadow .2s;}
.tp-footer-nl-input:focus{outline:none;border-color:var(--tp-accent);box-shadow:0 0 0 3px rgba(54,209,255,.15);}
.tp-footer-nl-input::placeholder{color:var(--tp-fg-tertiary);}
.tp-footer-nl-btn{padding:10px 24px;border:none;border-radius:12px;background:linear-gradient(135deg, var(--tp-accent), var(--tp-accent2));color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .15s,box-shadow .15s;white-space:nowrap;}
.tp-footer-nl-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px rgba(54,209,255,.3);}

/* Main footer area */
.tp-footer-main{padding:3rem 0 2rem;border-bottom:1px solid var(--tp-border);}
.tp-footer-cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem;}
.tp-footer-col{}
.tp-footer-brand-logo{margin-bottom:1rem;}
.tp-footer-brand-logo img{max-width:56px;max-height:56px;border-radius:12px;padding:4px;background:var(--tp-bg4);border:1px solid var(--tp-border);}
.tp-footer-brand-text{font-size:1.8rem;font-weight:800;background:linear-gradient(135deg, var(--tp-accent), var(--tp-accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.tp-footer-about{font-size:.88rem;color:var(--tp-fg-secondary);line-height:1.6;margin:0 0 1.2rem;}
.tp-footer-socials{display:flex;gap:8px;}
.tp-footer-social{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--tp-fg-secondary);background:var(--tp-bg4);border:1px solid var(--tp-border);text-decoration:none;transition:all .2s;}
.tp-footer-social:hover{color:#fff;background:var(--tp-accent);border-color:var(--tp-accent);transform:translateY(-2px);box-shadow:0 4px 12px rgba(54,209,255,.25);}

.tp-footer-heading{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:1.2px;color:var(--tp-fg-tertiary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--tp-accent);display:inline-block;}
.tp-footer-nav{display:flex;flex-direction:column;gap:6px;}
.tp-footer-nav a{display:flex;align-items:center;gap:10px;color:var(--tp-fg-secondary);text-decoration:none;font-size:.88rem;padding:5px 0;transition:color .15s,transform .15s;}
.tp-footer-nav a i{font-size:.85rem;width:18px;text-align:center;color:var(--tp-fg-tertiary);transition:color .15s;}
.tp-footer-nav a:hover{color:var(--tp-accent);transform:translateX(3px);}
.tp-footer-nav a:hover i{color:var(--tp-accent);}

/* Bottom bar */
.tp-footer-bar{padding:1.2rem 0;}
.tp-footer-bar-inner{display:flex;align-items:center;justify-content:space-between;}
.tp-footer-copyright{font-size:.82rem;color:var(--tp-fg-tertiary);}
.tp-footer-tagline{font-size:.82rem;color:var(--tp-fg-tertiary);display:flex;align-items:center;gap:8px;font-style:italic;}
.tp-footer-bar-logo{height:18px;opacity:.5;}

/* ── Footer responsive ── */
@media (max-width: 991px){
  .tp-footer-cols{grid-template-columns:1fr 1fr 1fr;gap:2rem;}
  .tp-footer-col.tp-footer-brand{grid-column:1 / -1;}
  .tp-footer-about{max-width:500px;}
  .tp-footer-nl-inner{flex-direction:column;align-items:stretch;gap:1rem;}
  .tp-footer-nl-form{width:100%;}
  .tp-footer-nl-input{width:100%;flex:1;}
}
@media (max-width: 767px){
  .tp-footer-cols{grid-template-columns:1fr 1fr;gap:1.5rem;}
  .tp-footer-col.tp-footer-brand{grid-column:1 / -1;text-align:center;}
  .tp-footer-brand-logo{display:flex;justify-content:center;}
  .tp-footer-about{margin-left:auto;margin-right:auto;}
  .tp-footer-socials{justify-content:center;}
  .tp-footer-bar-inner{flex-direction:column;gap:4px;text-align:center;}
}
@media (max-width: 575px){
  .tp-footer-cols{grid-template-columns:1fr 1fr;gap:1.5rem;text-align:center;}
  .tp-footer-col.tp-footer-brand{grid-column:1 / -1;text-align:center;}
  /* Descoperă and Contul meu side-by-side */
  .tp-footer-col--discover, .tp-footer-col--account{grid-column:auto;}
  /* Legal: full width, horizontal layout */
  .tp-footer-col--legal{grid-column:1 / -1;text-align:center;}
  .tp-footer-col--legal .tp-footer-nav--legal{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px 14px;}
  .tp-footer-col--legal .tp-footer-nav--legal a{padding:3px 0;font-size:.82rem;}
  .tp-footer-col--legal .tp-footer-nav--legal a i{display:none;}
  .tp-footer-heading{display:block;text-align:center;border-bottom:none;padding-bottom:0;}
  .tp-footer-heading::after{content:'';display:block;width:24px;height:2px;background:var(--tp-accent);margin:6px auto 0;}
  .tp-footer-nav{align-items:center;}
  .tp-footer-nav a{justify-content:center;}
  .tp-footer-socials{justify-content:center;}
  .tp-footer-nl-form{flex-direction:column;}
  .tp-footer-nl-btn{width:100%;}
  .tp-footer-nl-text{flex-direction:column;text-align:center;}
}

/* ── Voucher code box — theme-aware ── */
.voucher-code-box{background:var(--tp-bg4);border:2px dashed var(--tp-accent);border-radius:8px;padding:12px 20px;font-family:var(--tp-font-code);font-weight:bold;font-size:18px;letter-spacing:2px;text-align:center;position:relative;cursor:pointer;transition:all .3s ease;color:var(--tp-fg);}
.voucher-code-box:hover{background:var(--tp-bg5);}
.voucher-code-box .copy-hint{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--tp-accent);}
.voucher-discount-badge{background:linear-gradient(135deg,var(--tp-good),var(--tp-good-light));color:#fff;padding:6px 14px;border-radius:20px;font-weight:bold;font-size:14px;}
.copy-success{animation:copyPulse .3s ease;}
@keyframes copyPulse{0%{transform:scale(1);}50%{transform:scale(1.05);background:rgba(34,197,94,.3);}100%{transform:scale(1);}}

/* ── Promo badge — theme-aware ── */
.tp-promo-badge{background:linear-gradient(135deg,var(--tp-bad),var(--tp-bad-light));color:#fff;font-size:14px;padding:8px 12px;border-radius:6px;font-weight:700;}
.tp-promo-merchant-logo{width:48px;height:48px;object-fit:contain;border-radius:8px;background:var(--tp-bg4);padding:4px;border:1px solid var(--tp-border);}
.tp-voucher-merchant-logo{width:56px;height:56px;object-fit:contain;border-radius:8px;background:var(--tp-bg4);padding:4px;border:1px solid var(--tp-border);}
.tp-voucher-icon-fallback{width:56px;height:56px;border-radius:8px;background:linear-gradient(135deg,var(--tp-accent),var(--tp-accent2));display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* ── Account dashboard: alert badges ── */
.tp-thumb-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:1.25rem;}
[data-theme="day"] .tp-thumb-placeholder{background:#fff5f5;color:var(--tp-bad);}
[data-theme="night"] .tp-thumb-placeholder{background:rgba(239,68,68,.12);color:var(--tp-bad);}
.tp-alert-thumb-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-weight:700;}
[data-theme="day"] .tp-alert-thumb-placeholder{background:linear-gradient(180deg,#fff6d8,#fff1b8);color:#b45309;}
[data-theme="night"] .tp-alert-thumb-placeholder{background:linear-gradient(180deg,rgba(245,158,11,.18),rgba(245,158,11,.1));color:var(--tp-warn);}
.alert-target-badge{padding:.35rem .6rem;border-radius:8px;font-weight:700;}
[data-theme="day"] .alert-target-badge{background:#fff8e1;color:#b45309;}
[data-theme="night"] .alert-target-badge{background:rgba(245,158,11,.15);color:var(--tp-warn);}

/* ── Modals: force theme compliance ── */
.modal-content{background:var(--tp-bg3,#fff);color:var(--tp-fg);border:1px solid var(--tp-border);}
.modal-header{border-bottom:1px solid var(--tp-border);}
.modal-footer{border-top:1px solid var(--tp-border);}
.modal-header .btn-close{filter:var(--tp-close-filter,none);}
[data-theme="night"] .modal-header .btn-close{filter:invert(1) grayscale(100%) brightness(200%);}

/* ── Feed Preview Overlay (CRUD modal) ── */
.tp-feed-preview-overlay{position:absolute;inset:0;z-index:10;background:var(--tp-bg3,#fff);overflow-y:auto;border-radius:inherit;padding:16px 20px;}
.tp-feed-preview-panel{position:relative;}
.tp-feed-preview-close{position:sticky;top:0;text-align:right;z-index:2;padding-bottom:8px;}
.tp-feed-preview-body{font-size:.88rem;}
.tp-feed-preview-body table{width:100%;border-collapse:collapse;}
.tp-feed-preview-body th{font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;opacity:.6;padding:6px 8px;border-bottom:1px solid var(--tp-border);}
.tp-feed-preview-body td{padding:6px 8px;border-bottom:1px solid rgba(128,128,128,.08);color:var(--tp-fg);}
[data-theme="day"] .tp-feed-preview-overlay{background:#fff;border:1px solid #e5e7eb;}
[data-theme="night"] .tp-feed-preview-overlay{background:#1a1f2e;border:1px solid #2d3548;}

/* ── CRUD modal day-mode refinements ── */
[data-theme="day"] .modal-body .form-text{color:#6b7280;}
[data-theme="day"] .modal-body .tp-muted{color:#6b7280 !important;}
[data-theme="day"] .modal-body .tp-json-editor{background:#f8f9fc;border-color:#d1d5db;color:#1e293b;}
[data-theme="day"] .modal-body pre.bg-dark{background:#f1f5f9 !important;color:#334155 !important;}
[data-theme="day"] .modal-body .alert-success{background:rgba(5,150,105,.06);border-color:rgba(5,150,105,.15);color:#065f46;}
[data-theme="day"] .modal-body .tp-help-icon-themed{background:rgba(0,0,0,.06);color:#334155;}
[data-theme="day"] .modal-footer .btn-outline{border-color:#d1d5db;color:#334155;}
[data-theme="day"] .modal-footer .btn-outline:hover{background:#f1f5f9;}

/* ── Global mobile responsiveness ── */
@media (max-width: 991px){
  /* Admin table on tablet: allow scroll */
  .container-fluid .table-responsive,.tp-admin-table-wrap{margin:0 -12px;padding:0 12px;}
  /* Table: reduce cell padding */
  .tp-admin-tbl th,.tp-admin-tbl td{padding:.5rem .55rem;font-size:.82rem;}
  .tp-admin-tbl>thead>tr>th{font-size:.75rem;}
  /* Admin filter form: 2-column on tablet */
  .container-fluid form.row>[class*="col-lg-"]{flex:0 0 50%;max-width:50%;}
}
@media (max-width: 767px){
  .container{padding-left:12px;padding-right:12px;}
  .tp-card{border-radius:14px !important;}
  .tp-card-bd{padding:14px !important;}
  .tp-card-hd{padding:12px 14px !important;}
  h1,.h1{font-size:1.5rem !important;}
  h2,.h2{font-size:1.3rem !important;}
  h3,.h3{font-size:1.15rem !important;}
  .display-5{font-size:1.6rem !important;}
  .display-6{font-size:1.35rem !important;}
  /* Merchant page logo: shrink on mobile */
  .tp-merchant-page-logo{width:140px;height:70px;padding:8px 14px;}
  .tp-merchant-page-logo img{max-height:50px;}
  .tp-merchant-page-logo__initials{width:56px;height:50px;font-size:1.3rem;}
  /* Toplist rows mobile */
  .tp-toplist-thumb{width:38px;height:38px;}
  .tp-toplist-title{font-size:.82rem;}
  .tp-toplist-price{font-size:.8rem;}
  .tp-admin-tabs{overflow-x:auto;flex-wrap:nowrap !important;-webkit-overflow-scrolling:touch;padding-bottom:4px;}
  .tp-admin-tabs a{white-space:nowrap;flex-shrink:0;}
  .tp-filter-section{flex-direction:row !important;flex-wrap:nowrap !important;gap:8px !important;overflow-x:auto !important;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .tp-filter-section::-webkit-scrollbar{display:none;}
  .tp-filter-group{flex-shrink:0 !important;}
  .tp-price-filter-inputs{flex-wrap:wrap !important;gap:6px !important;}
  .tp-view-buttons{margin-left:0 !important;}
  .tp-pagination{flex-direction:column;align-items:stretch;text-align:center;gap:8px;}
  .tp-pagination .tp-pg-list{justify-content:center;}
  .tp-pagination .tp-pg-jump{justify-content:center;}
  /* Admin sidebar mobile — moved to admin-layout.css */
}
@media (max-width: 575px){
  .tp-grid.cols-3{--cols:2;}
  .tp-grid.cols-4{--cols:2;}
  .tp-grid.cols-5{--cols:2;}
  .tp-pcard-body{padding:8px !important;}
  .tp-pcard-title{font-size:.85rem !important;}
  .tp-merchant-card__logo-wrap{height:70px !important;padding:8px 12px !important;}
  .tp-merchant-card__body{padding:8px 10px 10px !important;}
  .tp-merchant-card__name{font-size:.85rem !important;}
  .btn{font-size:.85rem;padding:.35rem .65rem;}
  .tp-search-modal .tp-search-content{padding:0 12px;}
  .tp-search-results-grid,.tp-search-recent-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr)) !important;gap:10px !important;}
  .tp-search-result-card-thumb,.tp-search-recent-card-thumb{height:100px !important;}
  /* Footer mobile — handled by .tp-footer-wrap responsive rules */
  /* Legal pages mobile */
  .legal-content{padding:0 !important;font-size:.95rem;}
  .legal-content h2{font-size:1.1rem !important;}
  .legal-content ul,.legal-content ol{padding-left:1.25rem;}
  /* Account dashboard mobile */
  .tp-grid.cols-1 .tp-pcard{flex-direction:column;gap:8px;}
  .tp-grid.cols-1 .tp-pcard .tp-pcard-thumb{width:60px !important;height:60px !important;flex-shrink:0;}
  .tp-pcard-side{flex-direction:row !important;width:100%;justify-content:flex-end;}
  .alert-target-badge{font-size:.8rem;padding:.25rem .5rem !important;}
  .alerts-current{font-size:.9rem !important;}
  /* Voucher cards mobile */
  .voucher-code-box{font-size:14px !important;letter-spacing:1px !important;padding:10px 14px !important;}
  .voucher-code-box .copy-hint{display:none;}
  .voucher-discount-badge{font-size:12px !important;padding:4px 10px !important;}
  /* Admin filter form mobile */
  .container-fluid form.row{gap:8px !important;}
  .container-fluid form.row>[class*="col-"]{flex:0 0 100%;max-width:100%;}
  /* Modal mobile */
  .modal-dialog{margin:8px !important;max-width:calc(100vw - 16px) !important;}
  .modal-body{padding:12px !important;}
  .modal-header,.modal-footer{padding:10px 12px !important;}
  /* Alert modal mobile */
  .tp-modal-body{padding:12px 14px !important;}
  .tp-modal-header{padding:12px 14px !important;}
  .tp-modal-footer,.tp-modal-footer-themed{padding:10px 14px !important;}
  .tp-modal-price-box{padding:0.65rem 0.75rem !important;}
  .tp-modal-price-value--current{font-size:1rem !important;}
  .tp-modal-target-input{font-size:.95rem !important;padding:.5rem 2.5rem .5rem .5rem !important;}
  .tp-modal-target-suffix{font-size:.95rem !important;right:.75rem !important;}
  .tp-modal-price-label{font-size:.65rem !important;}
  .tp-modal-price-icon{width:22px !important;height:22px !important;}
  .tp-modal-price-icon i{font-size:.65rem !important;}
  .tp-modal-email-input{font-size:.85rem !important;padding-left:2.5rem !important;}
  .tp-modal-email-icon{left:.75rem !important;font-size:.9rem !important;}
  .tp-newsletter-box{padding:.65rem .75rem !important;}
  .tp-newsletter-icon{width:30px !important;height:30px !important;}
  .tp-newsletter-icon i{font-size:.95rem !important;}
  .tp-newsletter-label{font-size:.82rem !important;}
  .tp-newsletter-desc{font-size:.75rem !important;padding-left:1.5rem !important;}
  .tp-alert-box-themed{padding:.6rem .75rem !important;}
  .tp-modal-footer-themed .btn{font-size:.82rem !important;padding:.4rem .6rem !important;}
  .tp-modal-icon{width:28px !important;height:28px !important;font-size:1rem !important;}
  #tpAlertModal .modal-header h5{font-size:.95rem !important;}
}
@media (max-width: 400px){
  .tp-grid.cols-3,.tp-grid.cols-4,.tp-grid.cols-5,.tp-grid.cols-2{--cols:1;}
  /* Extra small: stack promo cards */
  .tp-promo-badge{font-size:11px !important;padding:5px 8px !important;}
  .tp-promo-merchant-logo{width:36px !important;height:36px !important;}
  .tp-voucher-merchant-logo,.tp-voucher-icon-fallback{width:42px !important;height:42px !important;}
}

/* ====== css\tp-fixes.css ====== */
/* TrendPret  carousel stability fix */

.tp-carousel {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.tp-carousel-track {
  display: flex;
  gap: 16px;
  padding: 8px 16px;
}

.tp-carousel-item {
  min-width: 260px;
  max-width: 260px;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}

.tp-carousel img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* View Toggle Buttons - Subtle styling to match UI */
.tp-view-buttons {
  display: inline-flex;
  gap: 3px;
  background: transparent;
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  padding: 3px;
  vertical-align: middle;
}

.tp-view-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  color: var(--bs-body-color);
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
  font-size: 16px;
  opacity: 0.6;
}

.tp-view-btn:hover {
  background: var(--bs-secondary-bg);
  opacity: 1;
}

.tp-view-btn.active {
  background: var(--bs-secondary-bg);
  color: var(--bs-body-color);
  opacity: 1;
}

/* Load More Button & End Message */
.tp-load-more-container {
  padding: 2rem 1rem;
}

.tp-load-more-container .text-muted {
  font-size: 0.95rem;
  letter-spacing: 0.01em;
}

.tp-load-more-container .btn-primary {
  color: white !important;
}

/* Filter Panel - Compact to fit on one line */
.tp-filter-panel {
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  padding: 0.75rem 1rem;
  margin-bottom: 1.5rem;
}

.tp-filter-section {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.tp-filter-section::-webkit-scrollbar { display: none; }

@media(max-width:768px) {
  .tp-filter-section {
    flex-direction: row;
    align-items: center;
    gap: .5rem;
    flex-wrap: nowrap;
    overflow-x: auto;
  }
}

.tp-filter-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.tp-filter-label {
  font-weight: 500;
  font-size: 0.85rem;
  color: var(--bs-body-color);
  margin-bottom: 0;
  white-space: nowrap;
}

.tp-sort-select,
.tp-price-input {
  border: 1px solid var(--bs-border-color);
  border-radius: 6px;
  padding: 0.4rem 0.65rem;
  font-size: 0.85rem;
  transition: all 0.2s ease;
  background: transparent;
}

.tp-sort-select {
  min-width: 140px;
}

.tp-price-input {
  width: 80px;
}

.tp-price-separator {
  color: var(--bs-secondary);
  font-size: 0.85rem;
}

.tp-price-filter-inputs {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

.tp-sort-select:focus,
.tp-price-input:focus {
  outline: none;
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 2px rgba(var(--bs-primary-rgb), 0.1);
}

.tp-filter-apply,
.tp-filter-reset {
  border-radius: 6px;
  font-size: 0.85rem;
  padding: 0.4rem 0.75rem;
  transition: all 0.2s ease;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.45);
  white-space: nowrap;
}

.tp-filter-apply:hover,
.tp-filter-reset:hover {
  background: var(--bs-secondary-bg);
}

.tp-filter-stats {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--bs-secondary);
  white-space: nowrap;
}

/* Search Input Group - Unified */
.input-group-lg {
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  border-radius: 10px;
}

.input-group-lg .form-control,
.input-group-lg .form-select {
  border: 1px solid var(--bs-border-color);
  font-size: 0.95rem;
  padding: 0.75rem 1rem;
  background: var(--bs-body-bg);
}

.input-group-lg .form-control {
  flex: 1;
}

.input-group-lg .form-select {
  max-width: 180px;
  border-left: none;
  border-right: none;
}

.input-group-lg .btn {
  padding: 0.75rem 1.5rem;
  font-weight: 500;
  font-size: 0.95rem;
  border: none;
  background: var(--bs-primary);
  color: white;
}

.input-group-lg .btn:hover {
  opacity: 0.9;
}

.input-group-lg > :not(:first-child) {
  margin-left: -1px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.input-group-lg > :not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}


/* ====== css\tp-night-fixes.css ====== */
/* Night-mode contrast fixes for the "best offer" green band */
html[data-theme="night"] .offer-best,
html[data-theme="night"] .offer-best *,
html[data-theme="night"] .bg-success,
html[data-theme="night"] .bg-success * {
  color: rgba(255,255,255,0.92) !important;
  font-weight: 600;
}

/* If the best-offer row uses Bootstrap subtle green, keep text readable */
html[data-theme="night"] .bg-success-subtle,
html[data-theme="night"] .bg-success-subtle * {
  color: rgba(255,255,255,0.92) !important;
}

/* Slightly deepen the green band in night mode */
html[data-theme="night"] .offer-best,
html[data-theme="night"] .bg-success-subtle {
  background-color: rgba(25, 135, 84, 0.28) !important;
  border-color: rgba(25, 135, 84, 0.45) !important;
}
/* View Toggle Buttons - Night Mode */
html[data-theme="night"] .tp-view-btn {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
}

html[data-theme="night"] .tp-view-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.9);
  opacity: 1;
}

html[data-theme="night"] .tp-view-btn.active {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.25);
  color: rgba(255, 255, 255, 0.95);
  opacity: 1;
}

/* Outline Buttons (Filter tabs, etc.) - Night Mode - FORCED */
html[data-theme="night"] .tp-btn-outline,
html[data-theme="night"] .btn.tp-btn-outline {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 2px solid rgba(255, 255, 255, 0.25) !important;
  color: rgba(255, 255, 255, 0.8) !important;
}

html[data-theme="night"] .tp-btn-outline:hover,
html[data-theme="night"] .btn.tp-btn-outline:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  border: 2px solid rgba(255, 255, 255, 0.4) !important;
  color: rgba(255, 255, 255, 1) !important;
}

html[data-theme="night"] .tp-btn-outline.active,
html[data-theme="night"] .btn.tp-btn-outline.active {
  background: rgba(103, 126, 234, 0.3) !important;
  border: 2px solid rgba(103, 126, 234, 0.6) !important;
  color: rgba(255, 255, 255, 1) !important;
  font-weight: 600;
}

/* Filter Panel - Night Mode */
html[data-theme="night"] .tp-filter-panel {
  background: rgba(30,41,59,.55);
  border-color: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

html[data-theme="night"] .tp-filter-label {
  color: rgba(255, 255, 255, 0.85);
}

html[data-theme="night"] .tp-price-separator {
  color: rgba(255, 255, 255, 0.5);
}

html[data-theme="night"] .tp-sort-select,
html[data-theme="night"] .tp-price-input {
  background: rgba(15, 20, 25, 0.6);
  border-color: #374151;
  color: #e8eaf0;
}

html[data-theme="night"] .tp-sort-select option {
  background: #1e2228;
  color: #e8eaf0;
}

html[data-theme="night"] .tp-sort-select:focus,
html[data-theme="night"] .tp-price-input:focus {
  background: rgba(15, 20, 25, 0.7);
  border-color: #36d1ff;
  box-shadow: 0 0 0 3px rgba(54,209,255,0.1);
}

html[data-theme="night"] .tp-filter-stats {
  color: rgba(255, 255, 255, 0.6);
}

html[data-theme="night"] .tp-filter-apply,
html[data-theme="night"] .tp-filter-reset {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.85);
}

html[data-theme="night"] .tp-filter-apply:hover,
html[data-theme="night"] .tp-filter-reset:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* Load More End Message - Night Mode */
html[data-theme="night"] .tp-load-more-container .text-muted {
  color: rgba(255, 255, 255, 0.5) !important;
}

html[data-theme="night"] .tp-load-more-container .btn-primary {
  color: white !important;
}

/* Search Input Group - Night Mode */
html[data-theme="night"] .input-group-lg .form-control,
html[data-theme="night"] .input-group-lg .form-select {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
}

html[data-theme="night"] .input-group-lg .form-control:focus,
html[data-theme="night"] .input-group-lg .form-select:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--bs-primary);
}

html[data-theme="night"] .input-group-lg .form-control::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

html[data-theme="night"] .input-group-lg .btn {
  background: var(--bs-primary);
  color: white;
}

/* Newsletter Form - Night Mode */
html[data-theme="night"] #tpNewsletterForm .form-control {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.9);
}

html[data-theme="night"] #tpNewsletterForm .form-control::placeholder {
  color: rgba(255, 255, 255, 0.4);
}

html[data-theme="night"] #tpNewsletterForm .form-control:focus {
  background: rgba(255, 255, 255, 0.08);
  border-color: var(--bs-primary);
}

html[data-theme="night"] #tpNewsletterForm .btn {
  background: var(--bs-primary);
  color: white;
}


/* ====== css\footer-fix.css ====== */
/* Footer spacing fix - nu afectează header */
html, body {
  margin: 0;
  padding: 0;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Header și nav rămân normale */
nav {
  flex-shrink: 0;
}

/* Footer lipit jos */
.tp-footer {
  flex-shrink: 0;
  margin-top: auto !important;
  margin-bottom: 0 !important;
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}

/* Reduce marginile cardurilor */
.tp-card.mb-4 {
  margin-bottom: 1.5rem !important;
}

.tp-card.mb-3 {
  margin-bottom: 1rem !important;
}

/* Ultimul card are margin mic */
body > .container:last-of-type > .tp-card:last-child,
body > .container:last-of-type > div:last-child .tp-card:last-child {
  margin-bottom: 1.5rem !important;
}


/* ====== css\table-fixes.css ====== */
/* Table fixes - simple stock badges without balloons */
.tp-stock-badge {
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  border: none !important;
}

.tp-stock-badge.in {
  color: #16a34a !important;
}

.tp-stock-badge.out {
  color: #dc2626 !important;
}

.tp-stock-badge.limited { color: #b45309 !important; } /* amber/orange */
.tp-stock-badge.preorder { color: #d97706 !important; } /* darker amber */
.tp-stock-badge.supplier { color: #0ea5e9 !important; } /* cyan for supplier */
.tp-stock-badge.unknown { color: #6b7280 !important; } /* muted gray */
.tp-stock-badge.check { color: #d97706 !important; } /* amber — Verifică stoc */

/* Night mode: lighten dim badge colors for readability */
[data-theme="night"] .tp-stock-badge.unknown { color: #9ca3af !important; }
[data-theme="night"] .tp-stock-badge.limited { color: #f59e0b !important; }

/* Night mode fix for select merchant */
:root[data-theme="night"] .form-select option {
  background: #0a1836 !important;
  color: #eaf0ff !important;
}

/* Responsive table optimizations for mobile */
@media (max-width: 767px) {
  /* Product page - Offers table */
  .tp-offers-table thead th:nth-child(2),
  .tp-offers-table tbody td:nth-child(2) {
    display: none; /* Hide "Produs" column */
  }
  .tp-offers-table thead th:nth-child(3),
  .tp-offers-table tbody td:nth-child(3) {
    display: none; /* Hide "Trend" column */
  }
  .tp-offers-table thead th,
  .tp-offers-table tbody td {
    padding: 0.75rem 0.5rem !important;
  }
  .tp-offers-table thead th:first-child,
  .tp-offers-table tbody td:first-child {
    min-width: 120px !important;
  }
  
  /* Admin Users table */
  .admin-users-table thead th:nth-child(4),
  .admin-users-table tbody td:nth-child(4) {
    display: none; /* Hide "Created At" */
  }
  .admin-users-table thead th:nth-child(5),
  .admin-users-table tbody td:nth-child(5) {
    display: none; /* Hide "Last Login" */
  }
  
  /* Admin Merchants table */
  .admin-merchants-table thead th:nth-child(3),
  .admin-merchants-table tbody td:nth-child(3) {
    display: none; /* Hide "Website" */
  }
  .admin-merchants-table thead th:nth-child(5),
  .admin-merchants-table tbody td:nth-child(5) {
    display: none; /* Hide "Created" */
  }
  
  /* Admin Feeds table */
  .admin-feeds-table thead th:nth-child(4),
  .admin-feeds-table tbody td:nth-child(4) {
    display: none; /* Hide "Type" */
  }
  .admin-feeds-table thead th:nth-child(5),
  .admin-feeds-table tbody td:nth-child(5) {
    display: none; /* Hide "Frequency" */
  }
  
  /* Admin Products table */
  .admin-products-table thead th:nth-child(2),
  .admin-products-table tbody td:nth-child(2) {
    display: none; /* Hide "Imagine" */
  }
  .admin-products-table thead th:nth-child(5),
  .admin-products-table tbody td:nth-child(5) {
    display: none; /* Hide "Brand" */
  }
  .admin-products-table thead th:nth-child(6),
  .admin-products-table tbody td:nth-child(6) {
    display: none; /* Hide "EAN" */
  }
  .admin-products-table thead th:nth-child(8),
  .admin-products-table tbody td:nth-child(8) {
    display: none; /* Hide "Preț Max" */
  }
  .admin-products-table thead th:nth-child(9),
  .admin-products-table tbody td:nth-child(9) {
    display: none; /* Hide "Magazin(e)" */
  }
  
  /* Admin Newsletter table */
  .admin-newsletter-table thead th:nth-child(3),
  .admin-newsletter-table tbody td:nth-child(3) {
    display: none; /* Hide "Status" */
  }
  .admin-newsletter-table thead th:nth-child(4),
  .admin-newsletter-table tbody td:nth-child(4) {
    display: none; /* Hide "Subscribed At" */
  }
  
  /* Account Dashboard - Watchlist */
  .account-watchlist-table thead th:nth-child(2),
  .account-watchlist-table tbody td:nth-child(2) {
    display: none; /* Hide "Image" */
  }
  .account-watchlist-table thead th:nth-child(4),
  .account-watchlist-table tbody td:nth-child(4) {
    display: none; /* Hide "Current Price" */
  }
  
  /* General table padding reduction on mobile */
  .table thead th,
  .table tbody td {
    padding: 0.75rem 0.5rem !important;
    font-size: 0.875rem !important;
  }
  
  /* Prevent text wrapping weirdly */
  .table thead th,
  .table tbody td {
    white-space: normal !important;
    word-break: break-word !important;
  }
}


/* ====== lighthouse-optimizations.css ====== */
/* Lighthouse Performance & Accessibility Optimizations */

/* Prevent layout shift pentru imagini */
img {
  max-width: 100%;
  height: auto;
}

/* Aspect ratio pentru thumbnail-uri (previne CLS) — 
   grid view gets its own aspect-ratio from theme-unified.css §30 */
.tp-pcard-thumb {
  contain: layout;
}

.tp-thumb {
  contain: layout;
}

/* Reduce motion pentru accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Îmbunătățiri contrast pentru accessibility */
.tp-muted {
  opacity: 0.75;
}

/* Focus visible pentru keyboard navigation */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--tp-accent, #36d1ff);
  outline-offset: 2px;
}

/* Skip to main content pentru screen readers */
.skip-to-main {
  position: absolute;
  left: -9999px;
  z-index: 999;
  padding: 1em;
  background-color: var(--tp-bg, #fff);
  color: var(--tp-fg, #000);
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
}

.skip-to-main:focus-visible {
  left: 50%;
  transform: translateX(-50%);
  top: 1em;
  opacity: 1;
  pointer-events: auto;
}

/* Lazy loading placeholder pentru imagini */
img[loading="lazy"] {
  background: var(--tp-border, #e0e0e0);
}

/* Content visibility pentru off-screen elements */
.tp-pcard:not(:nth-child(-n+6)) {
  content-visibility: auto;
  contain-intrinsic-size: 300px;
}

/* Will-change pentru animații smooth */
.tp-card.hoverable {
  will-change: transform;
}

/* Optimizare rendering pentru liste lungi */
.tp-products-grid {
  contain: layout style paint;
}


/* ====== readability-improvements.css ====== */
/* Îmbunătățiri Lizibilitate & UX/UI Plăcut - TrendPreț */

/* === DAY MODE - Culori mai soft, mai puțin agresive === */

[data-theme="day"] {
  /* Background principal mai cald */
  background: #f8f9fc;
}

[data-theme="day"] body {
  color: #2c3e50;
}

/* Text normal - gri mai cald, nu negru dur */
[data-theme="day"] .tp-card,
[data-theme="day"] .card {
  color: #334155;
  background: rgba(255,255,255,.65);
  border-color: rgba(0,0,0,.08);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* Text muted - mai vizibil */
[data-theme="day"] .tp-muted,
[data-theme="day"] .text-muted {
  color: #64748b !important;
  opacity: 1;
}

/* Links mai plăcute */
[data-theme="day"] a {
  color: var(--tp-accent, #0891b2);
}

[data-theme="day"] a:hover {
  color: var(--tp-accent-hover, #0e7490);
}

/* Buttons mai soft */
[data-theme="day"] .tp-btn,
[data-theme="day"] .btn-primary {
  background: linear-gradient(135deg, #0891b2, #0ea5e9) !important;
  border: none;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(8, 145, 178, 0.2);
}

[data-theme="day"] .tp-btn:hover,
[data-theme="day"] .btn-primary:hover {
  box-shadow: 0 3px 10px rgba(8, 145, 178, 0.18);
}

/* Badge mai soft */
[data-theme="day"] .tp-badge,
[data-theme="day"] .badge {
  background: rgba(8, 145, 178, 0.08);
  color: #0891b2;
  border: 1px solid rgba(8, 145, 178, 0.15);
}

/* Input fields */
[data-theme="day"] .form-control {
  background: #ffffff;
  border-color: #d1d5db;
  color: #334155;
}

[data-theme="day"] .form-control:focus {
  border-color: var(--tp-accent, #0891b2);
  box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.1);
}

/* === NIGHT MODE - Contrast mai bun, mai puțin obositor === */

[data-theme="night"] {
  background: #0f1419;
}

[data-theme="night"] body {
  color: #e5e7eb;
}

/* Carduri - contrast îmbunătățit */
[data-theme="night"] .tp-card,
[data-theme="night"] .card {
  background: rgba(26,31,46,.55);
  border-color: rgba(255,255,255,.08);
  color: #e5e7eb;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* Text muted - mai vizibil în dark mode */
[data-theme="night"] .tp-muted,
[data-theme="night"] .text-muted {
  color: #9ca3af !important;
  opacity: 1;
}

/* Small text - mai lizibil */
[data-theme="night"] .small,
[data-theme="night"] small {
  color: #d1d5db;
  opacity: 0.85;
}

/* Links în dark mode */
[data-theme="night"] a {
  color: var(--tp-accent, #36d1ff);
}

[data-theme="night"] a:hover {
  color: var(--tp-accent-hover, #5ce4ff);
}

/* Buttons în dark mode */
[data-theme="night"] .tp-btn,
[data-theme="night"] .btn-primary {
  background: linear-gradient(135deg, #36d1ff, #0ea5e9) !important;
  color: #fff !important;
  border: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

/* Badge în dark mode */
[data-theme="night"] .tp-badge,
[data-theme="night"] .badge {
  background: rgba(54, 209, 255, 0.12);
  color: #5ce4ff;
  border: 1px solid rgba(54, 209, 255, 0.25);
}

[data-theme="night"] .tp-badge.soft {
  background: rgba(54, 209, 255, 0.15);
  color: #7eeaff;
}

/* Input fields în dark mode - mai vizibile */
[data-theme="night"] .form-control {
  background: #0f1419;
  border-color: #374151;
  color: #e5e7eb;
}

[data-theme="night"] .form-control:focus {
  background: #1a1f2e;
  border-color: var(--tp-accent, #36d1ff);
  box-shadow: 0 0 0 3px rgba(54, 209, 255, 0.12);
  color: #f3f4f6;
}

[data-theme="night"] .form-control::placeholder {
  color: #6b7280;
}

/* === TITLURI - Mai puțin agresive === */

/* Day mode titles */
[data-theme="day"] h1,
[data-theme="day"] h2,
[data-theme="day"] h3,
[data-theme="day"] h4,
[data-theme="day"] h5,
[data-theme="day"] h6 {
  color: #1e293b;
  font-weight: 700;
}

/* Night mode titles */
[data-theme="night"] h1,
[data-theme="night"] h2,
[data-theme="night"] h3,
[data-theme="night"] h4,
[data-theme="night"] h5,
[data-theme="night"] h6 {
  color: #f1f5f9;
  font-weight: 700;
}

/* === TABLES - Mai lizibile === */

/* Day mode tables */
[data-theme="day"] .table {
  color: #334155;
}

[data-theme="day"] .table thead th {
  background: #f8f9fc;
  color: #1e293b;
  border-bottom: 2px solid #e5e7eb;
  font-weight: 600;
}

[data-theme="day"] .table tbody tr:hover {
  background: #f9fafb;
}

/* Night mode tables */
[data-theme="night"] .table {
  color: #e5e7eb;
}

[data-theme="night"] .table thead th {
  background: #1a1f2e;
  color: #f1f5f9;
  border-bottom: 2px solid #374151;
  font-weight: 600;
}

[data-theme="night"] .table tbody tr {
  border-color: #2d3548;
}

[data-theme="night"] .table tbody tr:hover {
  background: #252b3b;
}

/* === ALERTS - Mai plăcute vizual === */

/* Success alerts */
[data-theme="day"] .alert-success {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #065f46;
}

[data-theme="night"] .alert-success {
  background: rgba(16, 185, 129, 0.15);
  border-color: rgba(16, 185, 129, 0.3);
  color: #6ee7b7;
}

/* Error alerts */
[data-theme="day"] .alert-danger {
  background: #fef2f2;
  border-color: #fecaca;
  color: #991b1b;
}

[data-theme="night"] .alert-danger {
  background: rgba(239, 68, 68, 0.15);
  border-color: rgba(239, 68, 68, 0.3);
  color: #fca5a5;
}

/* Info alerts */
[data-theme="day"] .alert-info {
  background: #eff6ff;
  border-color: #bfdbfe;
  color: #1e40af;
}

[data-theme="night"] .alert-info {
  background: rgba(59, 130, 246, 0.15);
  border-color: rgba(59, 130, 246, 0.3);
  color: #93c5fd;
}

/* Warning alerts */
[data-theme="day"] .alert-warning {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

[data-theme="night"] .alert-warning {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.3);
  color: #fcd34d;
}

/* === SHADOWS - Mai soft === */

[data-theme="day"] .tp-card.hoverable {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

[data-theme="day"] .tp-card.hoverable:hover {
  box-shadow: 0 10px 25px rgba(8, 145, 178, 0.12);
}

[data-theme="night"] .tp-card.hoverable {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

[data-theme="night"] .tp-card.hoverable:hover {
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5);
}

/* === BORDERS - Mai subtile === */

[data-theme="day"] .border,
[data-theme="day"] [class*="border-"] {
  border-color: #e5e7eb !important;
}

[data-theme="night"] .border,
[data-theme="night"] [class*="border-"] {
  border-color: #374151 !important;
}

/* === LIST GROUPS - Contrast îmbunătățit === */

[data-theme="day"] .list-group-item {
  background: #ffffff;
  border-color: #e5e7eb;
  color: #334155;
}

[data-theme="day"] .list-group-item:hover {
  background: #f9fafb;
}

[data-theme="night"] .list-group-item {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
  color: #e5e7eb;
}

[data-theme="night"] .list-group-item:hover {
  background: rgba(255, 255, 255, 0.06);
}

/* === PRICE DISPLAY - Mai vizibil === */

[data-theme="day"] .tp-best-price-value {
  color: #059669;
}

[data-theme="night"] .tp-best-price-value {
  color: #6ee7b7;
}

/* === STATS & BADGES === */

[data-theme="day"] .tp-live-dot {
  background: #0891b2;
  box-shadow: 0 0 8px rgba(8, 145, 178, 0.4);
}

[data-theme="night"] .tp-live-dot {
  background: var(--tp-accent);
  box-shadow: 0 0 12px rgba(54, 209, 255, 0.5);
}

/* === MERCHANT CARDS === */

[data-theme="day"] .tp-merchant {
  background: #ffffff;
  border-color: #e5e7eb;
}

[data-theme="day"] .tp-merchant:hover {
  background: #f9fafb;
  border-color: #d1d5db;
}

[data-theme="night"] .tp-merchant {
  background: #1a1f2e;
  border-color: #2d3548;
}

[data-theme="night"] .tp-merchant:hover {
  background: #252b3b;
  border-color: #374151;
}

/* === BEST OFFER ROW - Mai soft === */

[data-theme="day"] .tp-offer-best,
[data-theme="day"] .tp-best-row {
  background: #ecfdf5 !important;
  border-color: #a7f3d0 !important;
  color: #065f46 !important;
}

[data-theme="night"] .tp-offer-best,
[data-theme="night"] .tp-best-row {
  background: rgba(16, 185, 129, 0.15) !important;
  border-color: rgba(16, 185, 129, 0.25) !important;
  color: #d1fae5 !important;
}

[data-theme="night"] .tp-offer-best *,
[data-theme="night"] .tp-best-row * {
  color: #d1fae5 !important;
}

[data-theme="night"] .tp-offer-best .btn,
[data-theme="night"] .tp-best-row .btn {
  color: #ffffff !important;
}

/* === PRODUCT CARDS - Contrast îmbunătățit === */

[data-theme="day"] .tp-pcard {
  background: rgba(255,255,255,.65);
  border-color: rgba(0,0,0,.08);
  color: #334155;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

[data-theme="night"] .tp-pcard {
  background: rgba(30,41,59,.55);
  border-color: rgba(255,255,255,.08);
  color: #e5e7eb;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

/* === ACCESSIBILITY - Focus states vizibile === */

*:focus-visible {
  outline: 2px solid var(--tp-accent, #36d1ff);
  outline-offset: 2px;
}

[data-theme="night"] *:focus-visible {
  outline-color: var(--tp-accent, #36d1ff);
}

/* === SCROLLBARS - Mai plăcute === */

[data-theme="day"] ::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

[data-theme="day"] ::-webkit-scrollbar-track {
  background: #f1f5f9;
}

[data-theme="day"] ::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 6px;
}

[data-theme="day"] ::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

[data-theme="night"] ::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

[data-theme="night"] ::-webkit-scrollbar-track {
  background: #0f1419;
}

[data-theme="night"] ::-webkit-scrollbar-thumb {
  background: #374151;
  border-radius: 6px;
}

[data-theme="night"] ::-webkit-scrollbar-thumb:hover {
  background: #4b5563;
}

/* === MODAL STYLES - Night Mode === */

[data-theme="night"] .modal-content {
  background: #1a1f2e;
  border: 1px solid #2d3548;
  color: #e5e7eb;
}

[data-theme="night"] .modal-header {
  background: #1a1f2e;
  border-bottom: 1px solid #2d3548;
  color: #f1f5f9;
}

[data-theme="night"] .modal-body {
  background: #1a1f2e;
  color: #e5e7eb;
}

[data-theme="night"] .modal-footer {
  background: #1a1f2e;
  border-top: 1px solid #2d3548;
}

[data-theme="night"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme="night"] .input-group-text {
  background: #0f1419;
  border-color: #374151;
  color: #9ca3af;
}

[data-theme="night"] .form-label {
  color: #f1f5f9;
}

[data-theme="night"] .form-text,
[data-theme="night"] .small {
  color: #9ca3af;
}

/* Modal spacing improvements */
.tp-modal-content {
  border-radius: 16px;
  overflow: hidden;
}

.tp-modal-header {
  padding: 1rem 1.25rem;
}

.tp-modal-body {
  padding: 1rem 1.25rem;
}

.tp-modal-footer {
  padding: 1rem 1.25rem;
  gap: 0.5rem;
}

.tp-modal-icon {
  width: 34px;
  height: 34px;
  background: linear-gradient(135deg, #0891b2 0%, #0ea5e9 100%);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: #fff;
}

/* Price current box - always visible */
.tp-price-current-box {
  display: flex;
}

/* Modal visibility control */
.tp-modal-hidden {
  display: none !important;
}

.tp-modal-visible {
  display: flex !important;
}

/* Custom alert boxes (replacing Bootstrap .alert to prevent auto-dismiss) */
.tp-alert-box {
  position: relative;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.375rem;
}

.tp-alert-warning {
  background-color: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.25);
  color: #92400e;
}

.tp-alert-success {
  background-color: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.25);
  color: #065f46;
}

/* Night mode: lighten alert text for readability */
[data-theme="night"] .tp-alert-warning {
  color: #fcd34d;
}
[data-theme="night"] .tp-alert-success {
  color: #6ee7b7;
}

/* Modal price boxes - side by side */
.tp-price-box {
  transition: all 0.3s ease;
}

.tp-price-current:hover {
  border-color: rgba(239, 68, 68, 0.4) !important;
  transform: scale(1.02);
  box-shadow: 0 3px 8px rgba(239, 68, 68, 0.12);
}

.tp-price-target:hover {
  border-color: rgba(54, 209, 255, 0.4) !important;
  transform: scale(1.02);
  box-shadow: 0 3px 8px rgba(54, 209, 255, 0.12);
}

.tp-price-target-input:focus {
  outline: none !important;
  border-color: var(--tp-accent) !important;
  box-shadow: 0 0 0 4px rgba(54, 209, 255, 0.15) !important;
}

/* Newsletter box hover effect */
.tp-newsletter-box {
  cursor: pointer;
}

/* Input number styling - remove default arrows */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* Custom number input with styled arrows */
.tp-number-input-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
}

.tp-number-arrows {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.tp-number-arrow {
  width: 20px;
  height: 20px;
  background: linear-gradient(135deg, #0891b2 0%, #0ea5e9 100%);
  border: none;
  border-radius: 4px;
  color: white;
  font-size: 0.7rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.tp-number-arrow:hover {
  background: linear-gradient(135deg, #0e7490 0%, #0284c7 100%);
  transform: scale(1.1);
}

.tp-number-arrow:active {
  transform: scale(0.95);
}

/* Newsletter box styling */
#tpNewsletterBox {
  transition: all 0.3s ease;
}

#tpNewsletterBox:hover {
  transform: scale(1.01);
  box-shadow: 0 3px 8px rgba(8, 145, 178, 0.08);
}

/* Night mode pentru modal alertă */
[data-theme="night"] .tp-price-current-box {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.2) 0%, rgba(99, 102, 241, 0.2) 100%) !important;
  border-color: rgba(59, 130, 246, 0.4) !important;
}

[data-theme="night"] .tp-price-current-box .h4 {
  color: #60a5fa !important;
}

[data-theme="night"] .tp-price-current-box .small {
  color: #94a3b8 !important;
}

[data-theme="night"] .tp-auth-message {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(5, 150, 105, 0.15) 100%) !important;
  border-color: rgba(16, 185, 129, 0.35) !important;
}

[data-theme="night"] .tp-auth-message strong {
  color: #34d399 !important;
}

[data-theme="night"] .tp-auth-message span {
  color: #6ee7b7 !important;
}

/* Unauth message night mode */
[data-theme="night"] #tpUnauthMsg {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.15) 0%, rgba(251, 191, 36, 0.15) 100%) !important;
  border-color: rgba(245, 158, 11, 0.35) !important;
}

[data-theme="night"] #tpUnauthMsg strong {
  color: #fbbf24 !important;
}

[data-theme="night"] #tpUnauthMsg span {
  color: #fcd34d !important;
}

/* Newsletter box night mode */
[data-theme="night"] #tpNewsletterBox > div {
  background: linear-gradient(135deg, rgba(54, 209, 255, 0.08) 0%, rgba(20, 184, 166, 0.08) 100%) !important;
  border-color: rgba(54, 209, 255, 0.2) !important;
}

[data-theme="night"] #tpNewsletterBox strong {
  color: var(--tp-accent, #36d1ff) !important;
}

[data-theme="night"] #tpNewsletterBox span {
  color: #9ca3af !important;
}

/* Input styling for night mode */
[data-theme="night"] input[name="target_price"],
[data-theme="night"] input[name="email"] {
  background: #0f1419 !important;
  border-color: #374151 !important;
  color: #e5e7eb !important;
}

[data-theme="night"] input[name="target_price"]:focus,
[data-theme="night"] input[name="email"]:focus {
  border-color: var(--tp-accent, #36d1ff) !important;
  background: #1a1f2e !important;
}

[data-theme="night"] input[name="email"][readonly] {
  background: rgba(54, 209, 255, 0.08) !important;
}

/* Labels and helper text in night mode */
[data-theme="night"] .form-label i {
  color: var(--tp-accent, #36d1ff) !important;
}

[data-theme="night"] .form-text {
  color: #9ca3af !important;
}

/* Alert warning in night mode */
[data-theme="night"] .alert-warning {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.15) 0%, rgba(251, 191, 36, 0.15) 100%) !important;
  border-color: rgba(245, 158, 11, 0.35) !important;
}

[data-theme="night"] .alert-warning strong {
  color: #fbbf24 !important;
}

[data-theme="night"] .alert-warning span {
  color: #fcd34d !important;
}

/* Checkbox container in night mode */
[data-theme="night"] .form-check {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: #374151 !important;
}

/* Modal footer in night mode */
[data-theme="night"] .modal-footer {
  background: rgba(26, 31, 46, 0.5) !important;
  border-top-color: #2d3548 !important;
}

/* Modal buttons */
.modal-footer .btn {
  transition: all 0.2s ease;
}

.modal-footer .btn:hover {
  transform: scale(1.02);
}

.modal-footer .tp-btn:hover {
  box-shadow: 0 6px 16px rgba(8, 145, 178, 0.3) !important;
}

[data-theme="night"] .modal-footer .btn-outline {
  border-color: #374151 !important;
  color: #e5e7eb !important;
}

[data-theme="night"] .modal-footer .btn-outline:hover {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: #4b5563 !important;
}

/* Night mode for modal price boxes */
[data-theme="night"] .tp-price-current {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(220, 38, 38, 0.15) 100%) !important;
  border-color: rgba(239, 68, 68, 0.4) !important;
}

[data-theme="night"] .tp-price-current span {
  color: #fca5a5 !important;
}

[data-theme="night"] .tp-price-current .h3 {
  color: #f87171 !important;
}

[data-theme="night"] .tp-price-target {
  background: linear-gradient(135deg, rgba(54, 209, 255, 0.10) 0%, rgba(20, 184, 166, 0.10) 100%) !important;
  border-color: rgba(54, 209, 255, 0.3) !important;
}

[data-theme="night"] .tp-price-target span {
  color: #67e8f9 !important;
}

[data-theme="night"] .tp-price-target-input {
  background: #0f1419 !important;
  border-color: #36d1ff !important;
  color: #67e8f9 !important;
}

[data-theme="night"] .tp-price-target-input::placeholder {
  color: #6b7280 !important;
}

[data-theme="night"] .tp-newsletter-box {
  background: linear-gradient(135deg, rgba(54, 209, 255, 0.08) 0%, rgba(20, 184, 166, 0.08) 100%) !important;
  border-color: rgba(54, 209, 255, 0.2) !important;
}

[data-theme="night"] .tp-newsletter-box label {
  color: var(--tp-accent, #36d1ff) !important;
}

[data-theme="night"] .tp-newsletter-box p {
  color: #9ca3af !important;
}

[data-theme="night"] .tp-number-arrow {
  background: linear-gradient(135deg, #36d1ff 0%, #14b8a6 100%) !important;
}

[data-theme="night"] .tp-number-arrow:hover {
  background: linear-gradient(135deg, #0ea5e9 0%, #0d9488 100%) !important;
}

/* Trend badges for offers table */
.tp-trend-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.75rem;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  white-space: nowrap;
}

.tp-trend-up {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.1) 0%, rgba(220, 38, 38, 0.1) 100%);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #dc2626;
}

.tp-trend-up i {
  font-size: 1rem;
}

.tp-trend-down {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.1) 0%, rgba(5, 150, 105, 0.1) 100%);
  border: 1px solid rgba(16, 185, 129, 0.3);
  color: #059669;
}

.tp-trend-down i {
  font-size: 1rem;
}

.tp-trend-stable {
  background: rgba(148, 163, 184, 0.1);
  border: 1px solid rgba(148, 163, 184, 0.3);
  color: #64748b;
}

.tp-trend-stable i {
  font-size: 1rem;
}

/* Night mode for trend badges */
[data-theme="night"] .tp-trend-up {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(220, 38, 38, 0.15) 100%);
  border-color: rgba(239, 68, 68, 0.4);
  color: #f87171;
}

[data-theme="night"] .tp-trend-down {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, rgba(5, 150, 105, 0.15) 100%);
  border-color: rgba(16, 185, 129, 0.4);
  color: #6ee7b7;
}

[data-theme="night"] .tp-trend-stable {
  background: rgba(148, 163, 184, 0.15);
  border-color: rgba(148, 163, 184, 0.4);
  color: #9ca3af;
}

/* Best price row highlight */
.tp-best-row {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.05) 0%, rgba(5, 150, 105, 0.05) 100%) !important;
  border-left: 3px solid #10b981 !important;
}

.tp-best-row:hover {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(5, 150, 105, 0.08) 100%) !important;
}

[data-theme="night"] .tp-best-row {
  background: linear-gradient(135deg, rgba(46, 229, 157, 0.08) 0%, rgba(16, 185, 129, 0.08) 100%) !important;
  border-left-color: #2ee59d !important;
}

[data-theme="night"] .tp-best-row:hover {
  background: linear-gradient(135deg, rgba(46, 229, 157, 0.12) 0%, rgba(16, 185, 129, 0.12) 100%) !important;
}

/* Stock badges night mode */
[data-theme="night"] .tp-stock-badge.in {
  background: rgba(52, 211, 153, 0.2) !important;
  color: #6ee7b7 !important;
  border-color: rgba(52, 211, 153, 0.4) !important;
}

[data-theme="night"] .tp-stock-badge.out {
  background: rgba(248, 113, 113, 0.2) !important;
  color: #fca5a5 !important;
  border-color: rgba(248, 113, 113, 0.4) !important;
}

[data-theme="night"] .tp-stock-badge.check {
  background: rgba(251, 191, 36, 0.2) !important;
  color: #fcd34d !important;
  border-color: rgba(251, 191, 36, 0.4) !important;
}

/* === PRODUCT IMAGE BACKGROUNDS ===
   PNGs: transparent area filled with white
   JPGs: surrounding space matches typical white product photo background
   Works in both day and night modes */

/* All product image containers — white background for clean product display */
.tp-pcard-thumb,
.tp-offercard-thumb,
.tp-toplist-thumb,
.tp-thumb-item,
.tp-product-main-thumb,
.home-pcard-img-wrap,
.mp-card-img-wrap {
  background: #ffffff !important;
}

/* Product page main image */
.tp-product-main-thumb img {
  background: #ffffff;
}

/* Gallery thumbnail items */
.tp-thumb-item {
  background: #ffffff !important;
}

/* Limit thumbnail size — keep all gallery thumbs consistently sized */
.tp-thumb-thumbs .thumb-wrap {
  max-width: 67px;
  max-height: 67px;
  flex-shrink: 0;
}

/* Variants / similar products thumb containers on product page */
.tp-card .tp-thumb {
  background: #ffffff !important;
}

/* Night mode — keep white for product images (photos always look best on white) */
[data-theme="night"] .tp-pcard-thumb,
[data-theme="night"] .tp-offercard-thumb,
[data-theme="night"] .tp-toplist-thumb,
[data-theme="night"] .tp-thumb-item,
[data-theme="night"] .tp-product-main-thumb,
[data-theme="night"] .tp-card .tp-thumb {
  background: #ffffff !important;
}

/* Subtle border around white image containers in night mode for separation */
[data-theme="night"] .tp-pcard-thumb,
[data-theme="night"] .tp-offercard-thumb,
[data-theme="night"] .tp-toplist-thumb {
  border: 1px solid rgba(255, 255, 255, 0.08);
}

/* Day mode — keep white so image area blends with card background */
[data-theme="day"] .tp-pcard-thumb,
[data-theme="day"] .tp-offercard-thumb,
[data-theme="day"] .tp-toplist-thumb,
[data-theme="day"] .home-pcard-img-wrap,
[data-theme="day"] .mp-card-img-wrap {
  background: #ffffff !important;
}

/* Ensure object-fit: contain on all product images for proper aspect ratio */
.tp-pcard-thumb img,
.tp-offercard-thumb img,
.tp-toplist-thumb img,
.tp-thumb-item img,
.tp-product-main-thumb img,
.home-pcard-img-wrap img,
.mp-card-img-wrap img {
  object-fit: contain !important;
  background: #ffffff !important;
}

/* ═══ Admin Mobile: Hamburger toggle + Sidebar overlay ═══ */
.tp-admin-sidebar-toggle {
   display: none;
   position: fixed;
   top: 12px;
   left: 12px;
   z-index: 1100;
   background: var(--tp-bg2);
   border: 1px solid var(--tp-border);
   border-radius: 8px;
   padding: 8px 10px;
   color: var(--tp-fg);
   font-size: 1.25rem;
   cursor: pointer;
   box-shadow: var(--tp-shadow2);
   line-height: 1;
}
.tp-admin-sidebar-overlay {
   display: none;
   position: fixed;
   inset: 0;
   background: rgba(0,0,0,.45);
   z-index: 999;
}
@media (max-width: 991px) {
   .tp-admin-sidebar-toggle { display: block; }

   /* Floating sidebar: slides in from left with text labels visible */
   .tp-admin-sidebar {
      width: 260px;
      min-width: 260px;
      transform: translateX(-100%);
      transition: transform .25s ease;
   }
   .tp-admin-sidebar.open {
      transform: translateX(0);
   }
   /* Ensure text labels are always visible in floating mode */
   .tp-admin-sidebar-header span,
   .tp-admin-nav-item span {
      display: inline !important;
   }
   .tp-admin-sidebar-header {
      justify-content: flex-start !important;
      padding: 1.25rem 1rem !important;
   }
   .tp-admin-nav-item {
      justify-content: flex-start !important;
      padding: .45rem 1.1rem !important;
   }
   .tp-admin-sidebar-overlay.open {
      display: block;
   }

   .tp-admin-content {
      margin-left: 0 !important;
   }

   .tp-admin-content-header {
      padding: 1rem 1rem 1rem 3.5rem;
   }
   .tp-admin-content-body {
      padding: 1rem;
   }

   .tp-admin-page-title {
      font-size: 1.25rem;
   }
   .tp-admin-header-row {
      flex-wrap: wrap;
      gap: .5rem;
   }
   .tp-admin-header-actions {
      flex-wrap: wrap;
   }
}

@media (max-width: 767px) {
   .tp-admin-sidebar {
      width: 260px;
      min-width: 260px;
   }
   .tp-admin-page-title {
      font-size: 1.1rem;
   }
   .tp-admin-content-header {
      padding: .75rem .75rem .75rem 3.2rem;
   }
   .tp-admin-content-body {
      padding: .75rem;
   }

   /* Stack stat-boxes / dashboard cards */
   .tp-admin-layout .row > [class*="col-md-"],
   .tp-admin-layout .row > [class*="col-lg-"] {
      flex: 0 0 100% !important;
      max-width: 100% !important;
   }

   /* Allow half-width for small stat cards */
   .tp-admin-layout .row > .col-md-2,
   .tp-admin-layout .row > .col-md-3 {
      flex: 0 0 50% !important;
      max-width: 50% !important;
   }

   /* Responsive tables */
   .tp-admin-table-wrap,
   .table-responsive {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      margin: 0 -.75rem;
      padding: 0 .75rem;
   }
   .tp-admin-tbl {
      font-size: .8rem !important;
   }
   .tp-admin-tbl thead th {
      font-size: .7rem !important;
   }
   .tp-admin-tbl td, .tp-admin-tbl th {
      padding: .35rem .4rem !important;
   }

   /* Cards */
   .tp-admin-layout .tp-card {
      border-radius: 12px;
   }
   .tp-admin-layout .tp-card-hd {
      padding: .75rem 1rem;
      font-size: .85rem;
   }
   .tp-admin-layout .tp-card-bd {
      padding: .75rem;
   }

   /* Stat boxes */
   .tp-admin-layout .stat-box,
   .tp-admin-layout .cron-stat {
      padding: .75rem;
      border-radius: 10px;
   }
   .tp-admin-layout .stat-box .stat-value,
   .tp-admin-layout .cron-stat .stat-val {
      font-size: 1.2rem;
   }

   /* Button groups stack on small screens */
   .tp-admin-header-actions .btn {
      font-size: .78rem;
      padding: .3rem .5rem;
   }

   /* Forms: full-width inputs */
   .tp-admin-layout .row > [class*="col-"] .form-control,
   .tp-admin-layout .row > [class*="col-"] .form-select {
      font-size: .88rem;
   }
}

@media (max-width: 480px) {
   .tp-admin-sidebar {
      width: 240px;
      min-width: 240px;
   }
   .tp-admin-sidebar-toggle {
      top: 8px;
      left: 8px;
      padding: 6px 8px;
      font-size: 1.1rem;
   }
   .tp-admin-page-title {
      font-size: 1rem;
   }
   .tp-admin-content-body {
      padding: .5rem;
   }

   /* All stat cards full width on tiny screens */
   .tp-admin-layout .row > .col-md-2,
   .tp-admin-layout .row > .col-md-3 {
      flex: 0 0 100% !important;
      max-width: 100% !important;
   }

   /* Modal dialogs nearly full width */
   .tp-admin-layout .modal-dialog {
      margin: .5rem;
      max-width: calc(100vw - 1rem);
   }

   /* Tables: even more compact */
   .tp-admin-tbl td, .tp-admin-tbl th {
      padding: .25rem .3rem !important;
      font-size: .75rem !important;
   }
   .tp-admin-tbl thead th {
      font-size: .65rem !important;
   }
}



