/* TikTok Commerce Engine - Dark Immersive Aesthetic */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

:root {
  --tt-accent: #FF004F;
  --tt-accent-hover: #E00045;
  --tt-cyan: #00F2FE;
  --tt-bg-canvas: #0F1015;
  --tt-bg-surface: #161822;
  --tt-bg-card: rgba(22, 24, 34, 0.92);
  --tt-bg-elevated: #1E202C;
  --tt-text-primary: #FFFFFF;
  --tt-text-secondary: rgba(255, 255, 255, 0.78);
  --tt-text-muted: rgba(255, 255, 255, 0.48);
  --tt-border: rgba(255, 255, 255, 0.12);
  --tt-radius: 16px;
  --tt-font: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
}

body.tiktok-theme {
  background-color: #0F1015 !important;
  color: #FFFFFF !important;
  font-family: var(--tt-font) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
  -webkit-font-smoothing: antialiased !important;
}

/* OpenCart Bootstrap & Standard Pages Dark Reset */
body.tiktok-theme .container {
  background: transparent !important;
}
body.tiktok-theme .well, 
body.tiktok-theme .panel, 
body.tiktok-theme .panel-default {
  background-color: #161822 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #ffffff !important;
  border-radius: 14px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4) !important;
}
body.tiktok-theme .panel-default > .panel-heading {
  background-color: #1E202C !important;
  color: #ffffff !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
}
body.tiktok-theme .panel-body {
  color: #ffffff !important;
}
body.tiktok-theme .form-control, 
body.tiktok-theme input[type="text"], 
body.tiktok-theme input[type="password"], 
body.tiktok-theme input[type="email"], 
body.tiktok-theme select, 
body.tiktok-theme textarea {
  background-color: #0F1015 !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
  border-radius: 10px !important;
}
body.tiktok-theme .form-control:focus {
  border-color: #FF004F !important;
  box-shadow: 0 0 0 2px rgba(255, 0, 79, 0.25) !important;
}
body.tiktok-theme .btn-primary {
  background: linear-gradient(135deg, #FF004F 0%, #E00045 100%) !important;
  border: none !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  padding: 8px 18px !important;
  transition: opacity 0.2s ease !important;
}
body.tiktok-theme .btn-primary:hover {
  opacity: 0.9 !important;
}
body.tiktok-theme .btn-default {
  background: #1E202C !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  color: #ffffff !important;
  border-radius: 10px !important;
}
body.tiktok-theme .table {
  color: #ffffff !important;
  background: transparent !important;
}
body.tiktok-theme .table > tbody > tr > td, 
body.tiktok-theme .table > thead > tr > th {
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
}
body.tiktok-theme .breadcrumb {
  background: transparent !important;
  padding: 8px 0 !important;
  margin-bottom: 12px !important;
}
body.tiktok-theme .breadcrumb > li > a {
  color: rgba(255, 255, 255, 0.6) !important;
}
body.tiktok-theme .breadcrumb > li + li:before {
  color: rgba(255, 255, 255, 0.3) !important;
}
body.tiktok-theme legend, 
body.tiktok-theme h1, 
body.tiktok-theme h2, 
body.tiktok-theme h3, 
body.tiktok-theme h4, 
body.tiktok-theme h5, 
body.tiktok-theme h6,
body.tiktok-theme label,
body.tiktok-theme p {
  color: #ffffff !important;
}
body.tiktok-theme .alert {
  border-radius: 12px !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
}

/* Header */
.tt-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(15, 16, 21, 0.94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding: 10px 14px;
}
.tt-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.tt-brand {
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none !important;
  color: #fff !important;
  font-weight: 800;
  font-size: 15px;
  flex-shrink: 1;
  min-width: 0;
  max-width: 55%;
}
.tt-brand-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
  font-size: 14px;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
}
.tt-brand-badge {
  background: linear-gradient(135deg, var(--tt-accent), #FF3366);
  color: #fff;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}
.tt-search-bar {
  flex: 1;
  max-width: 380px;
  position: relative;
  min-width: 0;
}
.tt-search-form {
  position: relative;
  width: 100%;
  margin: 0;
}
.tt-search-bar input {
  width: 100% !important;
  background: #161822 !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 20px !important;
  padding: 6px 12px 6px 34px !important;
  color: #fff !important;
  font-size: 12px !important;
  height: 34px !important;
  outline: none !important;
  box-sizing: border-box !important;
}
.tt-search-bar input:focus {
  border-color: var(--tt-accent) !important;
  box-shadow: 0 0 0 2px rgba(255, 0, 79, 0.2) !important;
}
.tt-search-bar svg {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.45);
  pointer-events: none;
}
.tt-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.tt-icon-btn {
  background: #161822 !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #fff !important;
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  position: relative !important;
  text-decoration: none !important;
  padding: 0 !important;
}
.tt-icon-btn:hover {
  background: #1E202C !important;
  border-color: rgba(255,255,255,0.3) !important;
}
.tt-icon-btn .tt-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  background: #FF004F;
  color: white;
  font-size: 9px;
  font-weight: 800;
  padding: 1px 4px;
  border-radius: 8px;
  line-height: 1;
}

/* Stories Bar */
.tt-stories-tray {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 10px 14px;
  max-width: 1200px;
  margin: 0 auto;
  scrollbar-width: none;
}
.tt-stories-tray::-webkit-scrollbar { display: none; }
.tt-story-avatar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  text-decoration: none !important;
  flex-shrink: 0;
}
.tt-story-ring {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  padding: 2px;
  background: linear-gradient(45deg, #FF004F, #00F2FE, #FF9900);
  display: flex;
  align-items: center;
  justify-content: center;
}
.tt-story-img {
  width: 100% !important;
  height: 100% !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 2px solid #0F1015 !important;
}
.tt-story-name {
  color: rgba(255, 255, 255, 0.75) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  max-width: 56px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* Feed Reels Container */
.tt-feed-stage {
  max-width: 460px !important;
  margin: 0 auto !important;
  padding: 8px 10px 80px !important;
  background: transparent !important;
}
.tt-reel-card {
  position: relative !important;
  background: #000000 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  margin-bottom: 20px !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.8) !important;
  user-select: none !important;
  width: 100% !important;
  box-sizing: border-box !important;
  height: calc(100vh - 130px) !important;
  min-height: 520px !important;
  max-height: 740px !important;
}
.tt-reel-media {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  background: #000000 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.tt-reel-media video, 
.tt-reel-media img.tt-reel-bg-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.tt-reel-gradient-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 90px;
  background: linear-gradient(180deg, rgba(0,0,0,0.65) 0%, transparent 100%);
  pointer-events: none;
  z-index: 10;
}
.tt-reel-gradient-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 180px;
  background: linear-gradient(0deg, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.5) 50%, transparent 100%);
  pointer-events: none;
  z-index: 10;
}

.tt-sound-btn {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  background: rgba(0,0,0,0.6) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255,255,255,0.2) !important;
  color: #fff !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 20 !important;
  padding: 0 !important;
}

/* Central Play/Pause Pulsing Icon */
.tt-play-indicator {
  position: absolute;
  pointer-events: none;
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.25s ease-out;
  z-index: 15;
  color: rgba(255,255,255,0.9);
}
.tt-play-indicator.show {
  opacity: 1;
  transform: scale(1.1);
}

/* Floating Heart Animation */
.tt-heart-burst {
  position: absolute;
  pointer-events: none;
  z-index: 25;
  animation: heartFly 0.8s ease-out forwards;
  color: var(--tt-accent);
}
@keyframes heartFly {
  0% { transform: scale(0) translate(-50%, -50%); opacity: 0; }
  30% { transform: scale(1.4) translate(-50%, -50%); opacity: 1; }
  100% { transform: scale(1.8) translate(-50%, -120%); opacity: 0; }
}

/* Floating Engagement Rail */
.tt-reel-actions {
  position: absolute !important;
  right: 10px !important;
  bottom: 85px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  z-index: 20 !important;
}
.tt-action-btn {
  background: rgba(15, 16, 21, 0.72) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  color: #fff !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  border-radius: 50% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  gap: 1px !important;
  padding: 0 !important;
  text-decoration: none !important;
}
.tt-action-btn:hover {
  transform: scale(1.08);
  background: rgba(255,0,79,0.3) !important;
  border-color: var(--tt-accent) !important;
}
.tt-action-btn.liked svg {
  fill: var(--tt-accent) !important;
  color: var(--tt-accent) !important;
  filter: drop-shadow(0 0 6px rgba(255,0,79,0.8));
}

/* Product Info Overlay Card */
.tt-reel-product-overlay {
  position: absolute !important;
  left: 10px !important;
  right: 68px !important;
  bottom: 12px !important;
  background: rgba(18, 20, 29, 0.88) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 14px !important;
  padding: 8px 10px !important;
  z-index: 20 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  box-sizing: border-box !important;
}
.tt-overlay-header {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.tt-overlay-thumb {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  max-width: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  border-radius: 8px !important;
  object-fit: cover !important;
  background: #111 !important;
  flex-shrink: 0 !important;
  display: block !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
}
.tt-overlay-info {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
  flex: 1 !important;
  min-width: 0 !important;
}
.tt-overlay-title {
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #fff !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-decoration: none !important;
  line-height: 1.3 !important;
  display: block !important;
}
.tt-overlay-meta {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-top: 2px !important;
}
.tt-overlay-price {
  font-size: 13px !important;
  font-weight: 800 !important;
  color: var(--tt-cyan) !important;
}
.tt-discount-badge {
  background: var(--tt-accent) !important;
  color: #fff !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  padding: 1px 5px !important;
  border-radius: 4px !important;
}
.tt-quick-buy-btn {
  width: 100% !important;
  background: linear-gradient(135deg, var(--tt-accent) 0%, #FF2A6D 100%) !important;
  color: #fff !important;
  border: none !important;
  padding: 7px 12px !important;
  border-radius: 20px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  box-shadow: 0 4px 12px rgba(255, 0, 79, 0.4) !important;
  box-sizing: border-box !important;
}
.tt-quick-buy-btn:hover {
  opacity: 0.92;
}

/* Modals & Bottom Sheets */
.tt-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 10000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.tt-bottom-sheet {
  background: #161822;
  color: #fff;
  width: 100%;
  max-width: 500px;
  border-radius: 24px 24px 0 0;
  padding: 16px 18px 32px;
  border-top: 1px solid rgba(255,255,255,0.15);
  box-shadow: 0 -12px 48px rgba(0,0,0,0.7);
  animation: ttSlideUp 0.25s ease-out;
  max-height: 85vh;
  overflow-y: auto;
  box-sizing: border-box;
}
@keyframes ttSlideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
.tt-sheet-handle {
  width: 40px;
  height: 4px;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 4px;
  margin: 0 auto 14px;
}

/* Toast */
.tt-toast {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(22, 24, 34, 0.96);
  backdrop-filter: blur(16px);
  border: 1px solid var(--tt-accent);
  color: #fff;
  padding: 10px 20px;
  border-radius: 30px;
  font-size: 12px;
  font-weight: 700;
  z-index: 25000;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: ttFadeDown 0.25s ease-out;
}
@keyframes ttFadeDown {
  from { opacity: 0; transform: translate(-50%, -12px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
