/* ============================================
   WispherFlow — Studio Layout
   OpenAI pattern: sidebar on page bg,
   content panel floats as rounded white card
   ============================================ */

.studio-layout {
  display: flex;
  height: 100%;
  background: var(--canvas-100);
  overflow: hidden;
}

/* --- Sidebar (transparent, sits on page bg) --- */
.sidebar {
  width: 172px;
  height: 100%;
  background: transparent;
  display: flex;
  flex-direction: column;
  transition: width 0.3s var(--ease);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
  flex-shrink: 0;
  z-index: 5;
}
.sidebar::-webkit-scrollbar {
  display: none;
}

.sidebar.collapsed {
  width: 60px;
}
.sidebar.collapsed .sidebar-nav {
  padding: 8px;
  align-items: center;
}
.sidebar.collapsed .nav-item {
  width: 36px;
  height: 36px;
  padding: 0;
  justify-content: center;
  border-radius: var(--radius-lg);
}
.sidebar.collapsed .nav-item svg {
  margin: 0;
}
.sidebar.collapsed .sidebar-bottom {
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sidebar.collapsed .sb-user-row {
  width: 44px;
  justify-content: center;
}
.sidebar.collapsed .user-pill {
  padding: 0;
  justify-content: center;
  flex: none;
}
.sidebar.collapsed .sidebar-top {
  justify-content: center;
  padding: 16px 8px;
}

/* Floating hamburger handle — shown on desktop when sidebar is collapsed */
.sidebar-reopen-btn {
  position: fixed;
  top: 14px;
  left: 14px;
  z-index: 100;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  border-radius: var(--radius-full, 9999px);
  cursor: pointer;
  color: var(--canvas-700);
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0;
  transition: background 0.2s ease, color 0.2s ease;
}
.sidebar-reopen-btn:hover {
  background: var(--terra-50);
  color: var(--terra);
}
[data-theme='dark'] .sidebar-reopen-btn:hover {
  background: rgba(224, 124, 88, 0.12);
  color: #e07c58;
}
/* Hide on mobile — the studio-mobile-topbar hamburger handles mobile */
@media (max-width: 767px) {
  .sidebar-reopen-btn { display: none !important; }
}

.sidebar-top {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 14px 8px;
}

/* ── Motion curves — smooth, no overshoot (CEO/CRM/User validated) ── */
:root {
  --spring-open: cubic-bezier(0.25, 0.46, 0.45, 0.94); /* gentle start, ease-out, no bounce */
  --spring-close: cubic-bezier(0.55, 0, 1, 0.45); /* decisive ease-in exit */
  --spring-morph: cubic-bezier(0.4, 0, 0.2, 1); /* Material standard — deliberate, not theatrical */
}

/* ── Hamburger button ── */
.sidebar-toggle {
  width: 32px;
  height: 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: none;
  background: transparent;
  border-radius: var(--radius-full);
  cursor: pointer;
  color: var(--canvas-500);
  flex-shrink: 0;
  transition:
    background 0.2s ease,
    color 0.2s ease;
  padding: 0;
}
.sidebar-toggle:hover {
  background: var(--terra-50);
  color: var(--terra);
}
[data-theme='dark'] .sidebar-toggle:hover {
  background: rgba(224, 124, 88, 0.12);
  color: #e07c58;
}

/* ── Hamburger lines ── */
.hb-line {
  display: block;
  width: 18px;
  height: 1.75px;
  border-radius: 2px;
  background: currentColor;
  transform-origin: center;
  transition-property: transform, opacity, width;
  transition-duration: 300ms;
  transition-timing-function: var(--spring-morph);
}
.hb-top {
  transition-delay: 0ms;
}
.hb-mid {
  transition-delay: 40ms;
}
.hb-bot {
  transition-delay: 80ms;
}

/* ── Morph to X when sidebar is open (mobile) ── */
.sidebar.mobile-open .sidebar-toggle .hb-top {
  transform: rotate(45deg) translate(4.5px, 4.5px);
  transition-delay: 80ms;
}
.sidebar.mobile-open .sidebar-toggle .hb-mid {
  transform: scaleX(0);
  opacity: 0;
  transition-delay: 40ms;
}
.sidebar.mobile-open .sidebar-toggle .hb-bot {
  transform: rotate(-45deg) translate(4.5px, -4.5px);
  transition-delay: 0ms;
}

.sidebar-logo {
  overflow: hidden;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}
.sidebar-logo .logo-svg {
  width: 24px;
  height: 24px;
}
.sidebar-logo .logo-name {
  font-size: 14.5px;
}
.sidebar-logo .logo-name .logo-o {
  width: 0.72em;
  height: 0.72em;
}
.sidebar.collapsed .sidebar-logo {
  opacity: 0;
  width: 0;
}

.sidebar-nav {
  flex: 1;
  padding: 2px 8px;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border: none;
  background: transparent;
  border-radius: var(--radius-xl);
  -webkit-appearance: none;
  appearance: none;
  font-family: var(--font);
  font-size: 13px;
  font-weight: 500;
  color: var(--canvas-600);
  cursor: pointer;
  transition: all 0.2s var(--ease-out-snap, cubic-bezier(0.23, 1, 0.32, 1));
  white-space: nowrap;
  width: 100%;
  text-align: left;
  position: relative;
  overflow: hidden;
  transform: translateX(0);
}
/* Sliding accent bar on the left edge */
.nav-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  background: var(--terra);
  border-radius: 0 3px 3px 0;
  transform: translateY(-50%);
  transition:
    height 0.25s var(--ease-out-snap, cubic-bezier(0.23, 1, 0.32, 1)),
    opacity 0.15s ease;
  opacity: 0;
}
.nav-item:hover {
  background: var(--terra-50);
  color: var(--terra-700);
  transform: translateX(4px);
}
.nav-item:hover::before {
  height: 60%;
  opacity: 1;
}
.nav-item:hover svg {
  color: var(--terra);
}
.nav-item:active {
  transform: translateX(4px) scale(0.97);
}
.nav-item.active {
  background: var(--terra-50);
  color: var(--terra-700);
  font-weight: 600;
  transform: translateX(4px);
  box-shadow: 0 2px 8px rgba(217, 119, 87, 0.1);
}
.nav-item.active::before {
  height: 60%;
  opacity: 1;
}
.nav-item.active svg {
  color: var(--terra);
}

/* Dark mode overrides — match sidebar text to main content style */
[data-theme='dark'] .sidebar {
  background: rgba(0, 0, 0, 0.15);
}
[data-theme='dark'] .sidebar .logo-name {
  color: #fff;
}
[data-theme='dark'] .tab-header h1 {
  color: #fff;
}
[data-theme='dark'] .tab-header p {
  color: var(--text-secondary);
}
[data-theme='dark'] .user-name {
  color: var(--text-primary);
}
[data-theme='dark'] .user-plan-badge {
  color: var(--text-primary);
}
[data-theme='dark'] .nav-item {
  color: var(--text-primary);
  font-weight: 500;
}
[data-theme='dark'] .nav-item svg {
  color: var(--text-secondary);
}
[data-theme='dark'] .nav-item:hover {
  background: rgba(255, 255, 255, 0.07);
  color: #fff;
}
[data-theme='dark'] .nav-item:hover svg {
  color: #fff;
}
[data-theme='dark'] .nav-item.active {
  background: rgba(217, 119, 87, 0.1);
  color: #fff;
  box-shadow: none;
  font-weight: 600;
}
[data-theme='dark'] .nav-item.active svg {
  color: #d97757;
}
.nav-item svg {
  flex-shrink: 0;
  width: 17px;
  height: 17px;
  transition:
    color 0.25s ease,
    transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Sign Out — red accent on hover */
.nav-item-signout:hover {
  background: var(--red-50) !important;
  color: var(--red-500) !important;
}
.nav-item-signout:hover::before {
  background: var(--red-500) !important;
}
.nav-item-signout:hover svg {
  color: var(--red-500) !important;
}
[data-theme='dark'] .nav-item-signout:hover {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #f87171 !important;
}
[data-theme='dark'] .nav-item-signout:hover svg {
  color: #f87171 !important;
}

.nav-label {
  overflow: hidden;
  transition: opacity 0.2s ease;
}
.sidebar.collapsed .nav-label {
  opacity: 0;
  width: 0;
}

/* --- Sidebar-bottom theme icon button ---
   Small icon button beside the user avatar. Hides in collapsed state
   (theme is still accessible from Settings). */
.sb-user-row {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-bottom: 2px;
}
.user-plan-row {
  display: flex;
  align-items: center;
  gap: 4px;
}
/* Bell + theme icons in sb-user-row, right of user-pill — desktop only */
.sb-user-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  flex-shrink: 0;
}
.sb-top-icon-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  color: var(--canvas-500);
  flex-shrink: 0;
  position: relative;
  transition:
    background 0.18s ease,
    color 0.18s ease;
}
.sb-top-icon-btn:hover {
  background: var(--terra-50);
  color: var(--terra);
}
.sb-top-icon-btn:hover .tcb-icon {
  transform: rotate(25deg) scale(1.1);
}
[data-theme='dark'] .sb-top-icon-btn:hover {
  background: rgba(224, 124, 88, 0.12);
  color: #e07c58;
}
.sidebar.collapsed .sb-user-actions {
  display: none;
}
@media (max-width: 768px) {
  .sb-user-actions {
    display: none !important;
  }
}

/* Utility icon row — bell + theme toggle centered */
.nav-item-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  padding: 2px 0;
}
.nav-item-row .nav-item {
  flex: 1;
  min-width: 0;
}
.nav-item-row .sb-top-icon-btn {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
}
.sidebar.collapsed .nav-item-row .sb-top-icon-btn {
  display: none;
}
@media (max-width: 768px) {
  .nav-item-row .sb-top-icon-btn {
    display: none !important;
  }
}

/* Mobile-only theme icon — inline in user-plan-row next to plan badge */
.sb-mobile-theme-btn {
  display: none;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  border-radius: var(--radius-sm);
  cursor: pointer;
  color: var(--canvas-500);
  padding: 0;
  transition: color 0.18s ease;
}
.sb-mobile-theme-btn .tcb-icon {
  width: 14px;
  height: 14px;
}
.sb-mobile-theme-btn .tcb-icon svg {
  width: 14px;
  height: 14px;
}
.sb-mobile-theme-btn:hover {
  color: var(--terra);
}
.sb-mobile-theme-btn:hover .tcb-icon {
  transform: rotate(25deg) scale(1.1);
}
[data-theme='dark'] .sb-mobile-theme-btn:hover {
  color: #e07c58;
}
@media (max-width: 768px) {
  .sb-mobile-theme-btn {
    display: flex;
  }
}
.sb-theme-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  border-radius: var(--radius-md);
  cursor: pointer;
  color: var(--canvas-500);
  flex-shrink: 0;
  transition:
    background 0.18s ease,
    color 0.18s ease;
}
.sb-theme-btn:hover {
  background: var(--terra-50);
  color: var(--terra);
  transform: rotate(30deg) scale(1.1);
}
[data-theme='dark'] .sb-theme-btn:hover {
  background: rgba(224, 124, 88, 0.12);
  color: #e07c58;
}
.sidebar.collapsed .sb-theme-btn {
  display: none;
}
.sidebar.collapsed .user-plan-row {
  display: none;
}

/* Shared icon animation — used by sidebar, atlas, and settings buttons */
.tcb-icon {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition:
    transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.18s ease;
}
.tcb-icon.tcb-spin {
  transform: rotate(180deg) scale(0.5);
  opacity: 0;
}
.tcb-text {
  white-space: nowrap;
  transition:
    opacity 0.2s ease,
    width 0.3s var(--ease);
}

/* Atlas sidebar compact variant */
.atlas-theme-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: auto;
  margin: 0;
  padding: 8px 12px;
  border: none;
  background: transparent;
  border-radius: var(--radius-md);
  font-family: var(--font);
  font-size: 13.5px;
  font-weight: 500;
  color: var(--canvas-500);
  cursor: pointer;
  transition:
    background 0.18s ease,
    color 0.18s ease;
}
.atlas-theme-btn:hover {
  background: var(--canvas-200);
  color: var(--canvas-700);
}

.sidebar-bottom {
  padding: 6px 8px 8px;
  margin-top: auto;
  flex-shrink: 0;
  position: relative;
}

/* ── Credits card in sidebar — clean bordered card with terra accent ──────── */
/* Base = light theme (no data-theme attr). Dark = [data-theme="dark"]. */
.sb-credits-card {
  margin: 0 4px 10px;
  padding: 14px 16px 12px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(217, 119, 87, 0.18);
  box-shadow:
    0 2px 12px rgba(217, 119, 87, 0.07),
    0 0 0 1px rgba(217, 119, 87, 0.04);
  position: relative;
  overflow: hidden;
}
.sb-credits-card::before {
  content: '';
  position: absolute;
  top: -20px;
  right: -20px;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(217, 119, 87, 0.05) 0%, transparent 70%);
  pointer-events: none;
}
[data-theme='dark'] .sb-credits-card {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(217, 119, 87, 0.2);
  box-shadow:
    0 2px 12px rgba(217, 119, 87, 0.08),
    0 0 0 1px rgba(217, 119, 87, 0.05);
}
[data-theme='dark'] .sb-credits-card::before {
  background: radial-gradient(circle, rgba(217, 119, 87, 0.08) 0%, transparent 70%);
}
.sb-credits-top {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 10px;
}
.sb-credits-count {
  font-size: 32px;
  font-weight: 800;
  color: #131314;
  letter-spacing: -0.03em;
  line-height: 1;
  text-shadow: none;
}
[data-theme='dark'] .sb-credits-count {
  color: #f0f0f0;
}
.sb-credits-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #6b7280;
}
[data-theme='dark'] .sb-credits-label {
  color: rgba(255, 255, 255, 0.45);
}
.sb-credits-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 8px 12px;
  border: none;
  border-radius: 8px;
  background: #111;
  color: #fff;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: 0.02em;
  transition: all 0.18s ease;
  -webkit-appearance: none;
  appearance: none;
  position: relative;
  z-index: 1;
}
.sb-credits-btn:hover {
  background: #222;
}
.sb-credits-btn:active {
  transform: scale(0.97);
}
/* Universal contrast rule — dark theme inverts: white bg + BLACK text.
   !important so Electron desktop app + any cascade override can't break it. */
[data-theme='dark'] .sb-credits-btn {
  background: #f5f5f5 !important;
  color: #111 !important;
}
[data-theme='dark'] .sb-credits-btn:hover {
  background: #e5e5e5 !important;
  color: #111 !important;
}
[data-theme='dark'] .sb-credits-btn * {
  color: #111 !important;
}

/* Low credits — muted amber */
.sb-credits-low .sb-credits-count {
  color: #92700a;
}
[data-theme='dark'] .sb-credits-low .sb-credits-count {
  color: #c9a64a;
}

/* Zero credits — muted red */
.sb-credits-zero .sb-credits-count {
  color: #b04040;
}
[data-theme='dark'] .sb-credits-zero .sb-credits-count {
  color: #c07070;
}
.sb-credits-zero .sb-credits-btn {
  background: #111;
  color: #fff;
  animation: none;
}
[data-theme='dark'] .sb-credits-zero .sb-credits-btn {
  background: #f5f5f5;
  color: #111;
}

/* Unlimited — relaxed */
.sb-credits-unlimited .sb-credits-count {
  font-size: 24px;
}

/* Lock icon button — inside the fold credits row, next to the "36" number */
.sb-credits-lock {
  display: inline-flex;
  align-items: center;
  color: rgba(217, 119, 87, 0.6);
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  line-height: 1;
  position: relative;
  top: 1px;
  margin-right: 1px;
}
.sb-credits-lock:hover {
  color: rgba(217, 119, 87, 0.9);
}
[data-theme='dark'] .sb-credits-lock {
  color: rgba(217, 119, 87, 0.5);
}
[data-theme='dark'] .sb-credits-lock:hover {
  color: rgba(217, 119, 87, 0.8);
}

/* Credits lock info popover */
.sb-lock-popover {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 4px;
  right: 4px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  padding: 14px 16px 12px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1), 0 2px 8px rgba(0, 0, 0, 0.06);
  z-index: 200;
  display: none;
  pointer-events: none;
}
.sb-lock-popover.visible {
  display: block;
  pointer-events: auto;
}
[data-theme='dark'] .sb-lock-popover {
  background: #1a1a26;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.3);
}
.sb-lock-popover-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #111827;
  margin-bottom: 8px;
}
[data-theme='dark'] .sb-lock-popover-header {
  color: #f0ede8;
}
.sb-lock-popover-header svg {
  color: #d97757;
  flex-shrink: 0;
}
.sb-lock-popover p {
  margin: 0 0 7px;
  font-size: 11.5px;
  line-height: 1.55;
  color: #6b7280;
}
[data-theme='dark'] .sb-lock-popover p {
  color: #9898a8;
}
.sb-lock-popover p strong {
  color: #111827;
  font-weight: 600;
}
[data-theme='dark'] .sb-lock-popover p strong {
  color: #f0ede8;
}
.sb-lock-popover-foot {
  font-size: 10.5px;
  color: #9ca3af;
  font-style: italic;
  margin-top: 4px;
}
[data-theme='dark'] .sb-lock-popover-foot {
  color: rgba(255, 255, 255, 0.3);
}

/* ── 3D Paper Fold on sidebar credits card ──────────────────────────── */
.sb-fold-corner {
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 42px;
  height: 42px;
  cursor: pointer;
  z-index: 3;
  transition:
    transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.25s ease;
}
.sb-fold-corner:hover {
  transform: scale(1.12);
}
.sb-fold-corner:active {
  transform: scale(0.94);
}
.sb-fold-triangle {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 42px 42px;
  border-color: transparent transparent rgba(217, 119, 87, 0.13) transparent;
  border-radius: 0 0 14px 0;
  filter: drop-shadow(-1px -1px 3px rgba(0, 0, 0, 0.06));
  transition: border-color 0.2s;
}
.sb-fold-corner:hover .sb-fold-triangle {
  border-color: transparent transparent rgba(217, 119, 87, 0.28) transparent;
}
[data-theme='dark'] .sb-fold-triangle {
  border-color: transparent transparent rgba(255, 255, 255, 0.08) transparent;
}
[data-theme='dark'] .sb-fold-corner:hover .sb-fold-triangle {
  border-color: transparent transparent rgba(255, 255, 255, 0.16) transparent;
}
.sb-fold-hint {
  position: absolute;
  bottom: 7px;
  right: 5px;
  font-size: 9px;
  font-weight: 800;
  color: rgba(217, 119, 87, 0.6);
  transform: rotate(-45deg);
  transform-origin: center;
  pointer-events: none;
  letter-spacing: -0.02em;
}
.sb-fold-corner:hover .sb-fold-hint {
  color: rgba(217, 119, 87, 0.9);
}
[data-theme='dark'] .sb-fold-hint {
  color: rgba(255, 255, 255, 0.3);
}
[data-theme='dark'] .sb-fold-corner:hover .sb-fold-hint {
  color: rgba(255, 255, 255, 0.6);
}
/* Reveal panel */
.sb-fold-reveal {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform-origin: bottom right;
  transform: perspective(600px) rotateX(-6deg);
  transition:
    max-height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.3s ease,
    transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.sb-credits-card.sb-fold-open .sb-fold-reveal {
  max-height: 80px;
  opacity: 1;
  transform: perspective(600px) rotateX(0deg);
}
.sb-fold-reveal-inner {
  padding: 10px 0 2px;
  border-top: 1px dashed rgba(217, 119, 87, 0.18);
  margin-top: 10px;
}
[data-theme='dark'] .sb-fold-reveal-inner {
  border-top-color: rgba(255, 255, 255, 0.1);
}
.sb-fold-credits-row {
  display: flex;
  align-items: baseline;
  gap: 5px;
}
.sb-fold-credits-num {
  font-size: 20px;
  font-weight: 800;
  color: rgba(217, 119, 87, 0.7);
  letter-spacing: -0.02em;
  line-height: 1;
}
[data-theme='dark'] .sb-fold-credits-num {
  color: rgba(217, 119, 87, 0.6);
}
.sb-fold-credits-label {
  font-size: 9px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #9ca3af;
}
[data-theme='dark'] .sb-fold-credits-label {
  color: rgba(255, 255, 255, 0.35);
}
.sb-fold-credits-note {
  font-size: 9px;
  color: #9ca3af;
  margin-top: 4px;
  line-height: 1.3;
}
[data-theme='dark'] .sb-fold-credits-note {
  color: rgba(255, 255, 255, 0.3);
}
/* Hide fold corner when open */
.sb-credits-card.sb-fold-open .sb-fold-corner {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.4);
}
/* Hide fold corner when no sub+credits combo */
.sb-credits-card:not(.sb-has-fold) .sb-fold-corner {
  display: none !important;
}

/* Collapsed sidebar — hide card */
.sidebar.collapsed .sb-credits-card {
  display: none !important;
}

.user-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  overflow: hidden;
  border-radius: var(--radius-xl);
  flex: 1;
  min-width: 0;
  transition:
    background 0.25s ease,
    transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.user-pill:hover {
  background: var(--terra-50);
  transform: translateX(4px);
}
[data-theme='dark'] .user-pill:hover {
  background: rgba(224, 124, 88, 0.1);
}

/* Avatar progress ring wrapper */
.avatar-ring-wrap {
  position: relative;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
}
.avatar-ring {
  position: absolute;
  top: 0;
  left: 0;
}
.avatar-ring-bg {
  stroke: var(--canvas-200);
}
[data-theme='dark'] .avatar-ring-bg {
  stroke: var(--canvas-300);
}
.avatar-ring-fill {
  stroke: var(--terra);
  stroke-dasharray: 100.53; /* 2π × 16 */
  stroke-dashoffset: 100.53;
  transition: stroke-dashoffset 0.6s ease;
}
.avatar-ring-tooltip {
  display: none;
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%);
  background: var(--canvas-950);
  color: var(--canvas-50);
  font-size: 11px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 6px;
  white-space: nowrap;
  z-index: 100;
  pointer-events: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.avatar-ring-tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--canvas-950);
}
.avatar-ring-wrap:hover .avatar-ring-tooltip {
  display: block;
}

.user-avatar {
  width: 26px;
  height: 26px;
  background: linear-gradient(135deg, var(--terra-100), var(--terra-200));
  color: var(--terra-700);
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
  overflow: hidden;
  position: absolute;
  top: 5px;
  left: 5px;
  /* Background-image is set inline-style by JS once a profile pic is
   * uploaded; size + position keep the image cropped to the circle. */
  background-size: cover;
  background-position: center;
  transition:
    transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
    box-shadow 0.3s ease;
}

/* Edit-pencil overlay — appears on hover over the avatar wrap so the
 * user can swap their profile picture in one click. The wrap already
 * has cursor:pointer + onclick="openProfilePicPicker()" wired up. */
.user-avatar-edit-overlay {
  position: absolute;
  top: 5px;
  left: 5px;
  width: 26px;
  height: 26px;
  border-radius: var(--radius-md);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease;
  z-index: 2;
}
.user-avatar-edit-wrap:hover .user-avatar-edit-overlay,
.user-avatar-edit-wrap:focus-within .user-avatar-edit-overlay {
  opacity: 1;
}
.user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.user-pill:hover .user-avatar {
  transform: scale(1.08);
  box-shadow: 0 2px 8px rgba(217, 119, 87, 0.2);
}

.user-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
}
.user-name {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-primary);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.user-plan-badge {
  font-size: 9px;
  font-weight: 600;
  color: var(--terra);
  background: var(--terra-50);
  padding: 1px 6px;
  border-radius: var(--radius-full);
  width: fit-content;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  transition: all 0.2s ease;
}
.plan-badge-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  padding: 1px 5px 1px 6px;
}
.plan-badge-btn:hover {
  filter: brightness(1.1);
  transform: scale(1.06);
}
.plan-badge-btn svg {
  opacity: 0.6;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}
.plan-badge-btn:hover svg {
  opacity: 1;
  transform: translateX(2px);
}
.user-plan-badge.plan-sub {
  color: var(--white);
  background: linear-gradient(135deg, var(--terra), var(--terra-700));
}
.user-plan-badge.plan-lifetime {
  color: var(--white);
  background: linear-gradient(135deg, var(--canvas-700), var(--canvas-900));
}
[data-theme='dark'] .user-plan-badge {
  background: rgba(224, 124, 88, 0.12);
  color: #e07c58;
}
[data-theme='dark'] .user-plan-badge.plan-sub {
  background: linear-gradient(135deg, #e07c58, #c46a4a);
  color: #fff;
}
[data-theme='dark'] .user-plan-badge.plan-lifetime {
  background: linear-gradient(135deg, var(--canvas-500), var(--canvas-700));
  color: #fff;
}

/* Persistent credit pill in sidebar */
.user-credit-pill {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--terra);
  background: var(--terra-50);
  padding: 2px 8px;
  border-radius: var(--radius-full);
  cursor: pointer;
  transition: all 0.2s ease;
  letter-spacing: 0.03em;
}
.user-credit-pill:hover {
  background: var(--canvas-200);
  color: var(--text-primary);
}
.user-credit-pill.low-credits {
  color: #ef4444;
  background: rgba(239, 68, 68, 0.08);
  font-weight: 600;
}
[data-theme='dark'] .user-credit-pill {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.45);
}
[data-theme='dark'] .user-credit-pill:hover {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
}
[data-theme='dark'] .user-credit-pill.low-credits {
  color: #f87171;
  background: rgba(239, 68, 68, 0.1);
}
.sidebar.collapsed .user-credit-pill {
  display: none !important;
}

.sidebar.collapsed .user-name {
  opacity: 0;
  width: 0;
}
.sidebar.collapsed .user-plan-badge {
  opacity: 0;
  width: 0;
  height: 0;
  padding: 0;
}
.sidebar.collapsed .user-info {
  gap: 0;
}

/* --- Main Content (floating white card) --- */
.studio-main {
  flex: 1;
  min-height: 0; /* flex child must opt out of min-height:auto so overflow-y activates */
  overflow-y: auto;
  background: var(--white);
  border-radius: var(--radius-2xl);
  margin: 6px 6px 6px 0;
  box-shadow: var(--shadow-sm);
  transition:
    margin 0.35s var(--ease),
    border-radius 0.35s var(--ease),
    box-shadow 0.35s var(--ease);
  scrollbar-width: thin;
  scrollbar-color: var(--canvas-200) transparent;
}

[data-theme='dark'] .studio-main {
  background: rgba(0, 0, 0, 0.15);
}

/* Custom scrollbar — inset to match rounded card */
.studio-main::-webkit-scrollbar {
  width: 8px;
}
.studio-main::-webkit-scrollbar-track {
  background: transparent;
  margin-top: 16px;
  margin-bottom: 16px;
}
.studio-main::-webkit-scrollbar-thumb {
  background: var(--canvas-200);
  border-radius: 100px;
  border: 2px solid var(--white);
  background-clip: padding-box;
}
.studio-main::-webkit-scrollbar-thumb:hover {
  background: var(--canvas-300);
  border: 2px solid var(--white);
  background-clip: padding-box;
}
[data-theme='dark'] .studio-main::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(0, 0, 0, 0.15);
  background-clip: padding-box;
}
[data-theme='dark'] .studio-main::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(0, 0, 0, 0.15);
  background-clip: padding-box;
}
.tab-content {
  display: none;
}
.tab-content.active {
  display: block;
  opacity: 1 !important;
  transform: none !important;
}

.tab-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px 10px;
  background: var(--white);
  position: sticky;
  top: 0;
  z-index: 10;
  border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
}

/* ── Global top-right action icons (theme + bell) — universal SaaS pattern.
   Plain icons, no border/card/box, just color change on hover. */
.global-top-btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none !important;
  background: transparent !important;
  color: var(--text-2, #6b7280);
  padding: 0;
  margin: 0;
  border-radius: 0;
  cursor: pointer;
  flex-shrink: 0;
  transition: color 0.15s;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}
.global-top-btn:hover {
  background: transparent !important;
  color: var(--text, #111);
}
.global-top-btn:focus,
.global-top-btn:focus-visible {
  outline: none;
  background: transparent !important;
}
/* Dark theme — base color is light grey, hover goes to white so it's actually
   visible against the dark surface (var(--text) was falling back to #111 black) */
[data-theme='dark'] .global-top-btn {
  color: rgba(255, 255, 255, 0.65);
}
[data-theme='dark'] .global-top-btn:hover {
  color: #ffffff;
}

/* Hide sidebar bell + sidebar theme toggle on desktop — they live in the
   tab-header global top-actions group now. Mobile keeps its own header bell. */
@media (min-width: 768px) {
  #notif-bell,
  .nav-item-row .sb-top-icon-btn {
    display: none !important;
  }
}

/* External Billing link — visible ONLY in the Electron desktop app.
   Web users have the in-tab Billing button below; the external link is
   redundant for them. Button has inline style="display:none" in HTML;
   this CSS unhides it when body.is-electron is set. */
body.is-electron .sb-billing-external {
  display: flex !important;
}
/* On mobile, the .topbar-right (mobile topbar) already has theme + bell —
   so hide ALL duplicate placements: tab-header injection, atlas-topbar
   injection, and the legacy sidebar mobile theme button */
@media (max-width: 767px) {
  .tab-header .global-top-actions,
  .atlas-topbar-right .global-top-actions,
  .sb-mobile-theme-btn,
  .nav-mobile-theme-btn {
    display: none !important;
  }
}
.tab-header h1 {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--canvas-950);
}
.tab-header p {
  font-size: 12.5px;
  color: var(--text-secondary);
  margin-top: 1px;
}

.tab-body {
  padding: 16px 24px;
}
#tab-analytics .tab-body,
#tab-creator .tab-body {
  padding: 16px 12px;
}

/* ============================================
   Atlas Mode — full-screen chat takeover
   Sidebar hides, content goes edge-to-edge
   ============================================ */
/* Lock the entire layout to exactly viewport height in atlas mode */
.studio-layout.atlas-mode {
  height: 100vh;
  height: 100dvh;
  max-height: 100vh;
  max-height: 100dvh;
  overflow: hidden;
}
.studio-layout.atlas-mode .sidebar {
  width: 0;
  min-width: 0;
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
}
.studio-layout.atlas-mode .studio-main {
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  height: 100%;
}

#tab-atlas {
  display: none;
}
#tab-atlas.active {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
#tab-atlas .atlas-chat {
  height: 100%;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* Responsive */
@media (max-width: 768px) {
  .sidebar {
    width: 64px;
  }
  .nav-label,
  .sidebar-logo,
  .user-name {
    opacity: 0;
    width: 0;
  }
  .tab-header {
    padding: 14px 16px 10px;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  }
  .tab-header h1 {
    font-size: 12.5px;
  }
  .tab-body {
    padding: 14px 16px;
  }
  .analytics-grid {
    grid-template-columns: 1fr 1fr;
  }
  .atlas-history.open {
    width: 180px;
    min-width: 180px;
  }
  .atlas-history-item {
    font-size: 12.5px;
    padding: 7px 10px;
  }
  .atlas-history-search {
    font-size: 12.5px;
  }
  .atlas-history-search-wrap {
    padding: 6px 10px;
  }
  .atlas-history-bottom button {
    font-size: 12px;
  }
  .atlas-suggestions {
    gap: 6px;
    margin-top: 8px;
  }
  .atlas-chip {
    font-size: 12px;
    padding: 6px 12px;
    gap: 5px;
  }
  .atlas-chip svg {
    width: 12px;
    height: 12px;
  }
  .atlas-welcome-icon svg {
    width: 32px;
    height: 32px;
  }
  .atlas-welcome h2 {
    font-size: clamp(22px, 6vw, 30px);
    margin-bottom: 4px;
  }
  .atlas-welcome-sub {
    font-size: 13.5px;
  }
  .atlas-empty {
    padding: 16px 16px 0;
    flex-direction: column;
    align-items: center;
  }
  .atlas-messages-area {
    padding: 14px 16px;
  }
  .atlas-input-bar {
    padding: 8px 14px !important;
    padding-bottom: max(10px, env(safe-area-inset-bottom, 10px)) !important;
  }
  /* Atlas chat fills viewport — no extra bottom space */
  #tab-atlas.active {
    height: 100% !important;
    overflow: hidden !important;
  }
  .atlas-compose {
    padding: 4px;
  }
  .atlas-attach-btn,
  .atlas-voice-btn {
    width: 32px;
    height: 32px;
  }
  .atlas-send-btn {
    width: 32px;
    height: 32px;
  }
  .atlas-compose-input {
    font-size: 13.5px;
    padding: 8px 4px;
  }
  .atlas-input-hint {
    font-size: 10.5px;
    margin-top: 6px;
  }
  .atlas-topbar {
    padding: 6px 12px;
    min-height: 38px;
  }
  .atlas-topbar-right span {
    display: none;
  }
  .studio-main {
    margin: 4px 4px 4px 0;
    border-radius: var(--radius-xl);
  }
}
/* Studio mobile top bar — hidden on desktop */
.studio-mobile-topbar {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: var(--white);
  border-bottom: 1px solid var(--canvas-150, var(--canvas-100));
  flex-shrink: 0;
}
/* ── Hamburger menu button — animated morph to × ── */
.studio-mobile-menu-btn {
  width: 38px;
  height: 38px;
  border: none;
  background: transparent;
  border-radius: 12px;
  color: var(--canvas-600);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4.5px;
  padding: 0;
  flex-shrink: 0;
  transition:
    background 0.2s var(--ease),
    color 0.2s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.studio-mobile-menu-btn:hover,
.studio-mobile-menu-btn:active {
  background: var(--canvas-100);
  color: var(--canvas-800);
}
.studio-mobile-menu-btn.is-open {
  background: rgba(217, 119, 87, 0.1);
  color: var(--terra);
}

/* Animated bars */
.hmb-bar {
  display: block;
  width: 18px;
  height: 1.5px;
  background: currentColor;
  border-radius: 2px;
  transform-origin: center;
  transition:
    transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.2s ease,
    width 0.25s var(--ease);
}
/* Open state — morph to × */
.studio-mobile-menu-btn.is-open .hmb-top {
  transform: translateY(6px) rotate(45deg);
}
.studio-mobile-menu-btn.is-open .hmb-mid {
  opacity: 0;
  width: 0;
}
.studio-mobile-menu-btn.is-open .hmb-bot {
  transform: translateY(-6px) rotate(-45deg);
}

.studio-mobile-topbar .logo .logo-svg {
  width: 28px;
  height: 28px;
}
.studio-mobile-topbar .logo-name {
  font-size: 17px;
  font-weight: 700;
}
[data-theme='dark'] .studio-mobile-topbar {
  background: var(--bg-card);
  border-bottom-color: rgba(255, 255, 255, 0.09);
}
[data-theme='dark'] .studio-mobile-menu-btn {
  color: var(--text-secondary);
}
[data-theme='dark'] .studio-mobile-menu-btn:hover {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-primary);
}
[data-theme='dark'] .studio-mobile-menu-btn.is-open {
  background: rgba(224, 124, 88, 0.12);
  color: #e07c58;
}

/* Sidebar mobile overlay — animated backdrop */
.sidebar-mobile-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(18, 12, 8, 0);
  backdrop-filter: blur(0px) saturate(1);
  -webkit-backdrop-filter: blur(0px) saturate(1);
  z-index: 99;
  pointer-events: none;
  transition:
    background 280ms ease-in,
    backdrop-filter 280ms ease-in,
    -webkit-backdrop-filter 280ms ease-in;
}
.sidebar-mobile-overlay.open {
  background: rgba(18, 12, 8, 0.45);
  backdrop-filter: blur(6px) saturate(0.8);
  -webkit-backdrop-filter: blur(6px) saturate(0.8);
  pointer-events: auto;
  transition:
    background 380ms ease-out,
    backdrop-filter 380ms ease-out,
    -webkit-backdrop-filter 380ms ease-out;
}
[data-theme='dark'] .sidebar-mobile-overlay.open {
  background: rgba(0, 0, 0, 0.6);
}

@media (max-width: 767px) {
  /* Show mobile topbar */
  #screen-studio.active {
    display: flex;
    flex-direction: column;
  }
  .studio-mobile-topbar {
    display: flex;
  }
  .studio-layout {
    flex: 1;
    min-height: 0;
  }

  /* Sidebar — smooth animated drawer (no overshoot, gentle start) */
  .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 220px;
    background: var(--canvas-100);
    z-index: 100;
    transform: translateX(-100%) scaleX(0.96);
    transform-origin: left center;
    opacity: 0;
    transition:
      transform 280ms var(--spring-close),
      opacity 180ms ease-in 40ms;
    pointer-events: auto;
    overflow-y: auto;
    box-shadow: none;
  }
  .sidebar.mobile-open {
    transform: translateX(0) scaleX(1);
    opacity: 1;
    box-shadow: 6px 0 32px rgba(0, 0, 0, 0.18);
    transition:
      transform 380ms var(--spring-open),
      opacity 220ms ease-out;
  }
  /* Override atlas-mode sidebar collapse when mobile drawer is open */
  .studio-layout.atlas-mode .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 220px;
    transform: translateX(-100%) scaleX(0.96);
    transform-origin: left center;
    opacity: 0;
    transition:
      transform 280ms var(--spring-close),
      opacity 180ms ease-in 40ms;
    pointer-events: auto;
    overflow-y: auto;
  }
  .studio-layout.atlas-mode .sidebar.mobile-open {
    transform: translateX(0) scaleX(1);
    opacity: 1;
    box-shadow: 6px 0 32px rgba(0, 0, 0, 0.18);
    transition:
      transform 380ms var(--spring-open),
      opacity 220ms ease-out;
  }
  [data-theme='dark'] .sidebar.mobile-open {
    background: var(--bg-card);
  }

  /* Force expanded layout in mobile drawer */
  .sidebar.mobile-open .nav-label {
    opacity: 1;
    width: auto;
  }
  .sidebar.mobile-open .sidebar-logo {
    opacity: 1;
    width: auto;
  }
  .sidebar.mobile-open .user-name {
    opacity: 1;
    width: auto;
  }

  /* Wider sidebar + bigger fonts on mobile */
  .sidebar {
    width: 270px;
  }
  .sidebar.mobile-open .nav-item {
    font-size: 17px;
    padding: 12px 16px;
    gap: 12px;
  }
  .sidebar.mobile-open .nav-item svg {
    width: 22px;
    height: 22px;
  }
  .sidebar.mobile-open .nav-label {
    font-size: 17px;
  }
  .sidebar.mobile-open .sidebar-top {
    padding: 16px 16px 10px;
  }
  .sidebar.mobile-open .sidebar-nav {
    padding: 6px 10px;
    gap: 4px;
  }
  .sidebar.mobile-open .sidebar-bottom {
    padding: 12px 14px;
  }
  .sidebar.mobile-open .sidebar-bottom .nav-item {
    font-size: 17px;
    padding: 12px 16px;
    gap: 12px;
  }
  .sidebar.mobile-open .sidebar-bottom .nav-item svg {
    width: 22px;
    height: 22px;
  }
  .sidebar.mobile-open .guide-help-btn {
    font-size: 15px;
    padding: 10px 16px;
    gap: 12px;
  }
  .sidebar.mobile-open .guide-help-btn svg {
    width: 20px;
    height: 20px;
  }
  .sidebar.mobile-open .nav-item-signout {
    font-size: 17px;
  }
  .sidebar.mobile-open .user-name {
    font-size: 16px;
  }
  .sidebar.mobile-open .sb-plan-badge {
    font-size: 12px;
  }
  .studio-layout.atlas-mode .sidebar {
    width: 270px;
  }

  /* Hide sidebar profile bell on mobile — topbar already has one */
  .user-pill .notif-bell {
    display: none !important;
  }
  /* Tighten user-pill gap now that the bell is gone */
  .user-pill {
    gap: 8px;
  }

  .studio-layout {
    height: auto; /* override 100% from base — flex:1 + min-height:0 handles sizing */
  }
  .studio-main {
    margin: 0;
    border-radius: 0;
    -webkit-overflow-scrolling: touch; /* momentum scroll on iOS */
    touch-action: pan-y;               /* Android: pass vertical pans to scroll container */
    overscroll-behavior: contain;      /* don't let scroll bubble to overflow:hidden ancestors */
  }
  .tab-header {
    padding: 14px 16px 10px;
    border-radius: 0;
    flex-wrap: wrap;
    gap: 10px;
  }
  .tab-header h1 {
    font-size: 20px;
    font-weight: 700;
  }
  .tab-body {
    padding: 14px 16px;
    font-size: 15px;
  }
  .analytics-grid {
    grid-template-columns: 1fr 1fr;
  }
  .tab-header .btn {
    font-size: 14px;
    padding: 8px 14px;
    min-height: 40px;
  }
  .creator-stats-row {
    grid-template-columns: repeat(2, 1fr);
  }
  .creator-grid-2col {
    grid-template-columns: 1fr;
  }
  .creator-apply-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  /* Appeal pipeline — stack vertically on mobile */
  .appeal-pipeline {
    flex-direction: column;
    gap: 0;
  }
  .appeal-step {
    flex-direction: row;
    gap: 10px;
  }
  .appeal-step-info {
    align-items: flex-start;
    text-align: left;
  }
  .appeal-step-connector {
    width: 2px;
    height: 20px;
    min-width: 2px;
    margin: 0 0 0 clamp(14px, 1.1vw, 17px);
  }
  .rejection-actions {
    gap: 6px;
  }
  .rejection-btn {
    padding: 7px 12px;
    font-size: 12.5px;
  }
  /* Atlas fullscreen mobile — hide studio topbar, atlas becomes primary header */
  #screen-studio.atlas-active .studio-mobile-topbar {
    display: none !important;
  }
  /* Atlas compact mobile */
  .atlas-suggestions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    max-width: 100%;
  }
  .atlas-chip {
    font-size: 11px;
    padding: 7px 10px;
    gap: 5px;
    border-radius: 8px;
  }
  .atlas-chip svg {
    width: 12px;
    height: 12px;
  }
  .atlas-welcome-icon svg {
    width: 28px;
    height: 28px;
  }
  .atlas-welcome h2 {
    font-size: 14.5px;
  }
  .atlas-welcome p {
    font-size: 11px;
    margin-bottom: 12px;
    line-height: 1.5;
  }
  .atlas-empty {
    padding: 12px 12px 0;
  }
  .atlas-input-bar {
    padding: 8px 12px;
    padding-bottom: max(12px, env(safe-area-inset-bottom, 12px));
  }
  .atlas-compose {
    padding: 4px;
  }
  .atlas-attach-btn,
  .atlas-voice-btn {
    width: 30px;
    height: 30px;
  }
  .atlas-send-btn {
    width: 30px;
    height: 30px;
  }
  .atlas-compose-input {
    font-size: 13px;
    padding: 7px 4px;
  }
  .atlas-input-hint {
    font-size: 10px;
  }
  .atlas-topbar {
    padding: 4px 10px;
    min-height: 34px;
  }
  /* Atlas fullscreen: topbar is the primary header */
  .studio-layout.atlas-mode .atlas-topbar {
    padding: 10px 16px;
    min-height: 44px;
    border-bottom: 1px solid var(--canvas-150, var(--canvas-100));
  }
  [data-theme='dark'] .studio-layout.atlas-mode .atlas-topbar {
    border-bottom-color: rgba(255, 255, 255, 0.06);
  }
  .atlas-model-btn {
    font-size: 12.5px;
    padding: 4px 8px;
  }
  .atlas-nav-btn {
    display: none;
  }
  .atlas-history-toggle {
    display: flex;
    width: 28px;
    height: 28px;
    border-radius: 8px;
  }
  .atlas-history-toggle svg {
    width: 14px;
    height: 14px;
  }
  .studio-layout.atlas-mode .atlas-history-toggle {
    width: 30px;
    height: 30px;
  }
  .studio-layout.atlas-mode .atlas-history-toggle svg {
    width: 15px;
    height: 15px;
  }
  /* Atlas menu btn — show on mobile for sidebar nav */
  .atlas-topbar-menu-btn {
    width: 30px;
    height: 30px;
  }
  .studio-layout.atlas-mode .atlas-topbar-menu-btn {
    width: 34px;
    height: 34px;
  }
  /* History sidebar — overlay drawer (slides over chat, does not push) */
  #tab-atlas .atlas-chat {
    position: relative;
  }
  .atlas-history {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    z-index: 90;
    width: 260px;
    transform: translateX(-100%);
    transition: transform 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    background: var(--canvas-100, #f0ede8);
    box-shadow: 4px 0 28px rgba(0, 0, 0, 0.14);
    overflow-y: auto;
    overflow-x: hidden;
  }
  [data-theme='dark'] .atlas-history {
    background: var(--bg-card, #1c1c1e);
    box-shadow: 4px 0 28px rgba(0, 0, 0, 0.45);
  }
  .atlas-history.open {
    transform: translateX(0);
    width: 260px;
    min-width: 260px;
  }
  .atlas-history-head {
    padding: 10px 10px 6px;
  }
  .atlas-sidebar-logo-btn {
    width: 30px;
    height: 30px;
  }
  .atlas-sidebar-newchat {
    width: 30px;
    height: 30px;
  }
  .atlas-history-search-wrap {
    margin: 2px 8px 6px;
    padding: 5px 10px;
  }
  .atlas-history-search {
    font-size: 12.5px;
  }
  .atlas-history-item {
    font-size: 12.5px;
    padding: 7px 10px;
  }
  .atlas-history-dots {
    width: 24px;
    height: 24px;
  }
  .atlas-history-list {
    padding: 0 6px 10px;
  }
  .atlas-history-bottom {
    padding: 6px 8px;
  }
  .atlas-history-bottom button {
    font-size: 12px;
  }
}

/* ============================================
   Creator Partner Tab
   ============================================ */
.creator-tab-body {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

/* Partner Dashboard */
.creator-dashboard {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.5vw, 22px);
}
.creator-dashboard > * {
  border-radius: var(--radius-lg);
}

/* Help Bar */
.creator-helpbar {
  display: flex;
  gap: 8px;
  align-items: center;
}
.creator-helpbar .chb-payout {
  margin-left: auto;
}
.chb-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--text-secondary);
  background: var(--bg-subtle);
  border: 1px solid var(--border);
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.chb-btn:hover {
  color: var(--text-primary);
  background: var(--bg-card);
  border-color: var(--border-strong);
}
.chb-payout {
  background: #131314 !important;
  color: #fff !important;
  border-color: #131314 !important;
  font-weight: 700;
  padding: 6px 16px;
  letter-spacing: 0.01em;
}
.chb-payout:hover {
  background: #2a2a2c !important;
  border-color: #2a2a2c !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.chb-payout svg {
  color: #fff !important;
}
[data-theme='dark'] .chb-payout {
  background: #131314 !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}
[data-theme='dark'] .chb-payout:hover {
  background: #2a2a2c !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  color: #fff !important;
}
[data-theme='dark'] .chb-payout svg {
  color: #fff !important;
}

/* Creator Footer Links */
.creator-footer-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 8px 0 4px;
}
.creator-footer-links a {
  font-size: 12.5px;
  font-weight: 500;
  color: var(--text-muted);
  text-decoration: none;
  transition: color 0.15s;
}
.creator-footer-links a:hover {
  color: var(--text-primary);
}
.cfl-dot {
  font-size: 11px;
  color: var(--text-muted);
  opacity: 0.5;
}

/* Apply Banner */
.creator-apply-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--bg-card);
  border-radius: var(--radius-xl);
  padding: clamp(20px, 1.8vw, 28px);
  box-shadow: var(--shadow-sm);
}

.cab-left {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}

.cab-icon {
  flex-shrink: 0;
  width: clamp(40px, 3vw, 48px);
  height: clamp(40px, 3vw, 48px);
  background: var(--terra-50);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--terra);
}

.cab-left h2 {
  font-family: var(--font-display);
  font-size: clamp(16px, 1.1vw, 18px);
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 4px;
}

.cab-left p {
  font-size: clamp(13px, 0.85vw, 14px);
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 480px;
}

.creator-apply-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

/* === Rejection Card + Appeal System === */
.rejection-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: clamp(18px, 2vw, 28px);
  box-shadow: var(--shadow-sm);
}
.rejection-card-top {
  display: flex;
  align-items: flex-start;
  gap: clamp(12px, 1.2vw, 16px);
  margin-bottom: 12px;
}
.rejection-icon {
  flex-shrink: 0;
  width: clamp(40px, 3vw, 48px);
  height: clamp(40px, 3vw, 48px);
  background: #fef2f2;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #dc3545;
}
.rejection-text h2 {
  font-family: var(--font-display);
  font-size: clamp(16px, 1.1vw, 18px);
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 4px;
}
.rejection-text p {
  font-size: clamp(13px, 0.85vw, 14px);
  line-height: 1.6;
  color: var(--text-secondary);
}
.rejection-countdown {
  font-size: clamp(12.5px, 0.8vw, 13.5px);
  color: var(--text-muted);
  margin-bottom: 16px;
  padding: 10px 14px;
  background: var(--bg-subtle, var(--canvas-50));
  border-radius: var(--radius-md);
  border-left: 3px solid var(--canvas-300);
}
.rejection-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.rejection-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: clamp(12.5px, 0.82vw, 13.5px);
  font-weight: 600;
  border-radius: var(--radius-md);
  white-space: nowrap;
}
.btn-ghost {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.15s;
}
.btn-ghost:hover {
  background: var(--canvas-50);
  border-color: var(--canvas-300);
  color: var(--text-primary);
}

/* Appeal Tracking Pipeline */
.appeal-tracker {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: clamp(18px, 2vw, 24px);
  margin-top: 12px;
  box-shadow: var(--shadow-sm);
}
.appeal-tracker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.appeal-tracker-head h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 15px);
  font-weight: 700;
  color: var(--text-primary);
}
.appeal-tracker-date {
  font-size: clamp(11px, 0.75vw, 12.5px);
  color: var(--text-muted);
  font-weight: 500;
}
.appeal-pipeline {
  display: flex;
  align-items: flex-start;
}
.appeal-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 0 0 auto;
}
.appeal-step-dot {
  width: clamp(28px, 2.2vw, 34px);
  height: clamp(28px, 2.2vw, 34px);
  border-radius: 50%;
  background: var(--canvas-100);
  border: 2px solid var(--canvas-200);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--canvas-400);
  transition: all 0.3s;
  flex-shrink: 0;
}
.appeal-step.completed .appeal-step-dot,
.appeal-step.active .appeal-step-dot {
  background: var(--terra-50);
  border-color: var(--terra);
  color: var(--terra);
}
.appeal-step.approved .appeal-step-dot {
  background: #dcfce7;
  border-color: #22c55e;
  color: #22c55e;
}
.appeal-step.denied .appeal-step-dot {
  background: #fef2f2;
  border-color: #dc3545;
  color: #dc3545;
}
.appeal-step-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.appeal-step-label {
  font-size: clamp(12px, 0.8vw, 13px);
  font-weight: 700;
  color: var(--text-muted);
}
.appeal-step.completed .appeal-step-label,
.appeal-step.active .appeal-step-label {
  color: var(--text-primary);
}
.appeal-step-desc {
  font-size: clamp(10px, 0.68vw, 11px);
  color: var(--text-muted);
  margin-top: 2px;
}
.appeal-step-connector {
  flex: 1;
  height: 2px;
  background: var(--canvas-200);
  min-width: 24px;
  margin: clamp(14px, 1.1vw, 17px) 6px 0;
  border-radius: 1px;
  transition: background 0.3s;
}
.appeal-step-connector.filled {
  background: var(--terra);
}

/* FAQ Section */
.rejection-faq {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: clamp(18px, 2vw, 24px);
  margin-top: 12px;
  box-shadow: var(--shadow-sm);
}
.rejection-faq-head {
  margin-bottom: 12px;
}
.rejection-faq-head h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 15px);
  font-weight: 700;
  color: var(--text-primary);
}
.faq-item {
  border-bottom: 1px solid var(--canvas-100);
}
.faq-item:last-child {
  border-bottom: none;
}
.faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font);
  font-size: clamp(13px, 0.85vw, 14px);
  font-weight: 600;
  color: var(--text-primary);
  text-align: left;
  transition: color 0.15s;
}
.faq-question:hover {
  color: var(--terra);
}
.faq-chevron {
  flex-shrink: 0;
  color: var(--canvas-400);
  transition: transform 0.25s ease;
}
.faq-item.open .faq-chevron {
  transform: rotate(180deg);
}
.faq-answer {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.3s ease,
    padding 0.3s ease;
  padding: 0;
}
.faq-item.open .faq-answer {
  max-height: 200px;
  padding: 0 0 12px;
}
.faq-answer p {
  font-size: clamp(12.5px, 0.8vw, 13.5px);
  line-height: 1.65;
  color: var(--text-secondary);
}

/* Appeal Modal */
.creator-appeal-modal {
  width: clamp(320px, 92vw, 440px) !important;
}
.appeal-modal-icon {
  width: 44px;
  height: 44px;
  background: var(--terra-50);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--terra);
  margin-bottom: 12px;
}
.label-optional {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 11px;
}
.appeal-upload-zone {
  border: 1.5px dashed var(--canvas-200);
  border-radius: var(--radius-md);
  transition: all 0.2s;
  overflow: hidden;
}
.appeal-upload-zone.drag-over {
  border-color: var(--terra);
  background: var(--terra-50);
}
.upload-zone-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 16px;
  cursor: pointer;
  color: var(--canvas-400);
  text-align: center;
}
.upload-zone-content:hover {
  color: var(--terra);
}
.upload-zone-content span {
  font-size: 12.5px;
  font-weight: 500;
}
.upload-hint {
  font-size: 10.5px !important;
  color: var(--text-muted) !important;
  font-weight: 400 !important;
}
.appeal-file-list {
  display: flex;
  flex-direction: column;
}
.appeal-file-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: var(--bg-subtle);
  border-top: 1px solid var(--canvas-100);
  font-size: 12.5px;
}
.appeal-file-name {
  flex: 1;
  font-weight: 500;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.appeal-file-size {
  font-size: 11px;
  color: var(--text-muted);
  flex-shrink: 0;
}
.appeal-file-remove {
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 16px;
  border-radius: 4px;
  transition: all 0.15s;
  flex-shrink: 0;
}
.appeal-file-remove:hover {
  background: #fef2f2;
  color: #dc3545;
}
.appeal-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 12px 0;
}
.appeal-success-icon {
  width: 52px;
  height: 52px;
  background: #dcfce7;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #22c55e;
  margin-bottom: 12px;
}
.appeal-success h3 {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.appeal-success p {
  font-size: 13px;
  line-height: 1.6;
  color: var(--text-secondary);
  max-width: 320px;
}

/* Dark theme — rejection, appeal, FAQ */
[data-theme='dark'] .rejection-icon {
  background: rgba(220, 53, 69, 0.12);
}
[data-theme='dark'] .rejection-countdown {
  background: var(--canvas-100);
  border-left-color: var(--canvas-400);
}
[data-theme='dark'] .btn-ghost {
  border-color: var(--canvas-300);
  color: var(--canvas-500);
}
[data-theme='dark'] .btn-ghost:hover {
  background: var(--canvas-100);
  color: var(--text-primary);
  border-color: var(--canvas-400);
}
[data-theme='dark'] .appeal-step-dot {
  background: var(--canvas-200);
  border-color: var(--canvas-400);
}
[data-theme='dark'] .appeal-step.completed .appeal-step-dot,
[data-theme='dark'] .appeal-step.active .appeal-step-dot {
  background: rgba(217, 119, 87, 0.15);
}
[data-theme='dark'] .appeal-step.approved .appeal-step-dot {
  background: rgba(34, 197, 94, 0.15);
  border-color: #22c55e;
}
[data-theme='dark'] .appeal-step.denied .appeal-step-dot {
  background: rgba(220, 53, 69, 0.15);
}
[data-theme='dark'] .appeal-step-connector {
  background: var(--canvas-300);
}
[data-theme='dark'] .appeal-upload-zone {
  border-color: var(--canvas-300);
}
[data-theme='dark'] .appeal-upload-zone.drag-over {
  background: rgba(217, 119, 87, 0.08);
}
[data-theme='dark'] .appeal-file-row {
  background: var(--canvas-100);
  border-top-color: var(--canvas-200);
}
[data-theme='dark'] .appeal-file-remove:hover {
  background: rgba(220, 53, 69, 0.12);
}
[data-theme='dark'] .appeal-success-icon {
  background: rgba(34, 197, 94, 0.12);
}
[data-theme='dark'] .faq-item {
  border-bottom-color: var(--canvas-200);
}

/* Stats Row */
.creator-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(12px, 1.5vw, 22px);
}

.creator-stat-card {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: clamp(14px, 1.2vw, 18px);
  box-shadow: var(--shadow-sm);
  display: flex;
  gap: 12px;
  align-items: center;
}

.csc-icon {
  width: clamp(34px, 2.5vw, 40px);
  height: clamp(34px, 2.5vw, 40px);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.csc-icon svg {
  width: clamp(16px, 1.2vw, 20px);
  height: clamp(16px, 1.2vw, 20px);
}

.csc-earnings,
.csc-clicks,
.csc-signups,
.csc-conv {
  background: var(--terra-50);
  color: var(--terra);
}

.csc-label {
  display: block;
  font-size: clamp(10.5px, 0.7vw, 12px);
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 2px;
}

.csc-value {
  font-family: var(--font-display);
  font-size: clamp(17px, 1.3vw, 20px);
  font-weight: 800;
  color: var(--text-primary);
}

/* Referral Link Section */
.creator-ref-section {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: clamp(16px, 1.4vw, 22px);
  box-shadow: var(--shadow-sm);
}

.creator-ref-section h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 14.5px);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 12px;
}

.creator-ref-row {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}

.creator-ref-input {
  flex: 1;
  padding: 8px 12px;
  background: var(--bg-subtle);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-sm);
  font-family: var(--font-mono);
  font-size: clamp(13px, 0.85vw, 14px);
  color: var(--text-primary);
  outline: none;
}

.creator-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-size: 13.5px;
  font-weight: 600;
  transition: all 0.2s ease;
}
.creator-copy-btn:hover {
  background: var(--terra) !important;
  color: #fff !important;
  border-color: var(--terra) !important;
}

.creator-promo-code {
  font-size: 12.5px;
  color: var(--text-muted);
}

.creator-promo-code strong {
  color: var(--terra);
  font-family: var(--font-mono);
  margin-left: 6px;
  font-size: 13px;
  letter-spacing: 0.05em;
}

/* Two-column grid */
.creator-grid-2col {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: clamp(14px, 1.5vw, 22px);
}

/* Earnings Chart Card */
.creator-chart-card {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: clamp(16px, 1.4vw, 22px);
  box-shadow: var(--shadow-sm);
}

.ccc-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.ccc-header h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 14.5px);
  font-weight: 700;
  color: var(--text-primary);
}

.ccc-period-pills {
  display: flex;
  gap: 4px;
}

.ccc-period-pills .pill-btn {
  padding: 4px 12px;
  font-size: 12.5px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-strong);
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s;
}

.ccc-period-pills .pill-btn.active {
  background: var(--terra);
  color: #fff;
  border-color: var(--terra);
}

.ccc-chart-area {
  height: 120px;
  margin-bottom: 8px;
  position: relative;
}

.creator-earnings-chart {
  width: 100%;
  height: 100%;
}

.ccc-empty-chart {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11.5px;
  color: var(--text-muted);
  font-weight: 500;
}

.ccc-chart-labels {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--text-muted);
  font-weight: 600;
}

/* Referrals Card */
.creator-referrals-card {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: clamp(16px, 1.4vw, 22px);
  box-shadow: var(--shadow-sm);
}

.creator-referrals-card h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 14.5px);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.creator-referrals-list {
  max-height: 220px;
  overflow-y: auto;
  scrollbar-width: none;
}
.creator-referrals-list::-webkit-scrollbar {
  display: none;
}

.creator-referral-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-strong);
  font-size: 13.5px;
}
.creator-referral-row:last-child {
  border-bottom: none;
}
.crr-name {
  font-weight: 600;
  color: var(--text-primary);
  flex: 1;
}
.crr-stage {
  font-weight: 700;
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0 12px;
}
.crr-date {
  color: var(--text-muted);
  font-size: 12.5px;
}

.creator-referral-empty {
  text-align: center;
  padding: 32px 16px;
  color: var(--text-muted);
}

.creator-referral-empty svg {
  margin-bottom: 12px;
  color: var(--text-muted);
}

.creator-referral-empty p {
  font-size: 13.5px;
  line-height: 1.6;
}

/* Resources Grid */
.creator-resources-section {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: clamp(16px, 1.4vw, 22px);
  box-shadow: var(--shadow-sm);
}

.creator-resources-section h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 14.5px);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.creator-resources-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(12px, 1.2vw, 20px);
}

.creator-resource-card {
  background: var(--bg-subtle);
  border-radius: var(--radius-md);
  padding: clamp(14px, 1.2vw, 18px) clamp(12px, 1vw, 16px);
  cursor: pointer;
  transition: all 0.2s var(--ease);
}

.creator-resource-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.crc-icon {
  width: clamp(32px, 2.2vw, 36px);
  height: clamp(32px, 2.2vw, 36px);
  background: var(--terra-50);
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--terra);
  margin-bottom: 10px;
}

.creator-resource-card strong {
  display: block;
  font-size: clamp(13px, 0.85vw, 14px);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 3px;
}

.creator-resource-card span {
  font-size: clamp(11px, 0.72vw, 12.5px);
  line-height: 1.5;
  color: var(--text-secondary);
}

/* Tier Progress */
.creator-tier-section {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-lg);
  padding: clamp(16px, 1.4vw, 22px);
  box-shadow: var(--shadow-sm);
}

.creator-tier-section h3 {
  font-family: var(--font-display);
  font-size: clamp(13.5px, 0.9vw, 14.5px);
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 14px;
}

.creator-tier-card {
  background: var(--bg-subtle);
  border-radius: var(--radius-md);
  padding: clamp(14px, 1.2vw, 18px);
}

.ctc-current {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.ctc-badge {
  padding: 3px 12px;
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ctc-bronze {
  background: rgba(136, 150, 168, 0.12);
  color: #8896a8;
}
.ctc-silver {
  background: rgba(212, 160, 32, 0.1);
  color: #d4a020;
}
.ctc-gold {
  background: rgba(139, 127, 186, 0.1);
  color: #8b7fba;
}
.ctc-platinum {
  background: rgba(217, 119, 87, 0.1);
  color: var(--terra);
}

.ctc-progress-text {
  font-size: 12.5px;
  color: var(--text-secondary);
}

.ctc-progress-text strong {
  color: var(--terra);
}

.ctc-progress-bar {
  height: 6px;
  background: var(--border-strong);
  border-radius: 3px;
  margin-bottom: 16px;
  overflow: hidden;
}

.ctc-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--terra), var(--terra-300));
  border-radius: 3px;
  transition: width 0.5s var(--ease);
}

.ctc-tiers-row {
  display: flex;
  justify-content: space-between;
}

.ctc-tier {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-muted);
}

.ctc-tier small {
  font-size: 11px;
  color: var(--text-muted);
  opacity: 0.7;
}

.ctc-tier-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--canvas-100);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--canvas-400);
  transition: all 0.3s var(--ease);
}

.ctc-dot-active {
  background: var(--terra-50);
  color: var(--terra);
  box-shadow: 0 0 10px rgba(217, 119, 87, 0.25);
}

/* Creator Apply Modal */
.creator-modal {
  width: clamp(300px, 90vw, 400px);
  max-width: 90vw;
  padding: clamp(20px, 3vw, 28px) clamp(18px, 3vw, 24px) clamp(18px, 3vw, 24px);
  position: relative;
  background: var(--bg-card);
  border-radius: var(--radius-2xl);
  box-shadow:
    0 32px 80px rgba(19, 19, 20, 0.14),
    0 0 0 1px rgba(0, 0, 0, 0.03);
  max-height: 80vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.creator-modal::-webkit-scrollbar {
  display: none;
}

.creator-modal .modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: var(--canvas-100);
  border-radius: var(--radius-sm);
  cursor: pointer;
  color: var(--canvas-500);
  font-size: 20px;
  transition: all 0.2s var(--ease);
}
.creator-modal .modal-close:hover {
  background: var(--canvas-200);
  color: var(--canvas-900);
  transform: rotate(90deg);
}

.creator-modal h2 {
  font-family: var(--font-display);
  font-size: clamp(14.5px, 1.2vw, 17px);
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 4px;
  letter-spacing: -0.02em;
}

.creator-modal .modal-desc {
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 16px;
  line-height: 1.55;
}

.creator-modal .form-group {
  margin-bottom: 12px;
}

.creator-modal label,
.creator-modal .label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 5px;
  letter-spacing: 0.01em;
}

.creator-modal .form-input {
  width: 100%;
  padding: 8px 12px;
  background: var(--bg-subtle);
  border: 1.5px solid rgba(0, 0, 0, 0.06);
  border-radius: var(--radius-sm);
  font-size: 13.5px;
  color: var(--text-primary);
  outline: none;
  font-family: var(--font);
  transition: all 0.2s var(--ease);
  box-sizing: border-box;
}

.creator-modal .form-input:focus {
  border-color: var(--terra);
  box-shadow: 0 0 0 3px rgba(217, 119, 87, 0.08);
  background: var(--bg-card);
}

.creator-modal .form-input::placeholder {
  color: var(--text-muted);
}

/* Custom Select Dropdown */
.custom-select {
  position: relative;
  cursor: pointer;
}
/* When dropdown is open inside a modal, expand space so options aren't clipped */
.modal-body .custom-select.open {
  margin-bottom: 180px;
  transition: margin-bottom 0.2s var(--ease);
}

.cs-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  background: var(--bg-subtle);
  border: 1.5px solid rgba(0, 0, 0, 0.06);
  border-radius: var(--radius-sm);
  font-size: 13.5px;
  color: var(--text-primary);
  transition: all 0.2s var(--ease);
}

.cs-trigger svg {
  flex-shrink: 0;
  color: var(--text-muted);
  transition: transform 0.2s var(--ease);
}

.custom-select.open .cs-trigger {
  border-color: var(--terra);
  box-shadow: 0 0 0 3px rgba(217, 119, 87, 0.08);
}

.custom-select.open .cs-trigger svg {
  transform: rotate(180deg);
}

.cs-value[data-placeholder='true'] {
  color: var(--text-muted);
}

.cs-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: var(--bg-card);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  z-index: 10;
  display: none;
  overflow: hidden;
}

.custom-select.open .cs-dropdown {
  display: block;
  animation: modalIn 0.2s var(--ease);
}

.cs-option {
  padding: 7px 12px;
  font-size: 13.5px;
  color: var(--text-primary);
  transition: all 0.15s;
  cursor: pointer;
}

.cs-option:hover {
  background: var(--terra-50);
  color: var(--terra-700);
}

.cs-option.selected {
  background: var(--terra-50);
  color: var(--terra);
  font-weight: 600;
}

/* Dark mode custom select */
[data-theme='dark'] .cs-trigger {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #fff;
}
[data-theme='dark'] .custom-select.open .cs-trigger {
  border-color: var(--terra);
  box-shadow: 0 0 0 3px rgba(217, 119, 87, 0.12);
}
[data-theme='dark'] .cs-dropdown {
  background: var(--bg-elevated);
  border-color: rgba(255, 255, 255, 0.09);
}
[data-theme='dark'] .cs-option {
  color: var(--text-secondary);
}
[data-theme='dark'] .cs-option:hover {
  background: rgba(217, 119, 87, 0.12);
  color: var(--terra);
}
[data-theme='dark'] .cs-option.selected {
  background: rgba(217, 119, 87, 0.15);
  color: var(--terra);
}

.creator-modal textarea.form-input {
  resize: vertical;
  min-height: 56px;
  line-height: 1.5;
}

.creator-modal .btn-primary {
  padding: 9px 20px;
  font-size: 13.5px;
  font-weight: 700;
  border-radius: var(--radius-sm);
  margin-top: 2px;
}

/* Override base .modal constraints */
.modal.creator-modal {
  width: clamp(300px, 90vw, 400px);
  max-width: 90vw;
  max-height: 80vh;
  padding: clamp(20px, 3vw, 28px) clamp(18px, 3vw, 24px) clamp(18px, 3vw, 24px);
  overflow-y: auto;
  overflow-x: hidden;
}

/* Creator modal responsive */
@media (max-width: 480px) {
  .creator-modal,
  .modal.creator-modal {
    padding: 22px 18px 18px;
  }
  .creator-modal h2 {
    font-size: 17px;
    margin-bottom: 4px;
  }
  .creator-modal .modal-desc {
    font-size: 13.5px;
    margin-bottom: 14px;
    line-height: 1.5;
  }
  .creator-modal label,
  .creator-modal .label {
    font-size: 13px;
    margin-bottom: 5px;
    font-weight: 600;
  }
  .creator-modal .form-group {
    margin-bottom: 12px;
  }
  .creator-modal .form-input {
    padding: 10px 12px;
    font-size: 15px;
    border-radius: 10px;
  }
  .cs-trigger {
    padding: 10px 12px;
    font-size: 15px;
  }
  .cs-option {
    padding: 10px 12px;
    font-size: 15px;
  }
  .creator-modal .btn-primary {
    padding: 12px 20px;
    font-size: 15px;
    min-height: 46px;
    border-radius: 10px;
  }
  .creator-modal .modal-close {
    width: 32px;
    height: 32px;
    font-size: 20px;
    top: 14px;
    right: 14px;
  }
}

/* Dark mode overrides */
[data-theme='dark'] .creator-apply-banner {
  background: var(--bg-card);
}
[data-theme='dark'] .cab-icon {
  background: rgba(217, 119, 87, 0.12);
}
[data-theme='dark'] .cab-left h2 {
  color: #fff;
}
[data-theme='dark'] .creator-stat-card {
  background: var(--bg-card);
}
[data-theme='dark'] .csc-value {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-ref-section {
  background: var(--bg-card);
}
[data-theme='dark'] .creator-ref-section h3 {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-ref-input {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--text-primary);
}
[data-theme='dark'] .creator-chart-card {
  background: var(--bg-card);
}
[data-theme='dark'] .ccc-header h3 {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-referrals-card {
  background: var(--bg-card);
}
[data-theme='dark'] .creator-referrals-card h3 {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-resources-section {
  background: var(--bg-card);
}
[data-theme='dark'] .creator-resources-section h3 {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-resource-card {
  background: rgba(255, 255, 255, 0.03);
}
[data-theme='dark'] .creator-resource-card strong {
  color: var(--text-primary);
}
[data-theme='dark'] .crc-icon {
  background: rgba(217, 119, 87, 0.1);
}
[data-theme='dark'] .creator-tier-section {
  background: var(--bg-card);
}
[data-theme='dark'] .creator-tier-section h3 {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-tier-card {
  background: rgba(255, 255, 255, 0.03);
}
[data-theme='dark'] .creator-modal {
  background: var(--bg-card);
}
[data-theme='dark'] .creator-modal .modal-close {
  background: rgba(255, 255, 255, 0.06);
  color: var(--canvas-600);
}
[data-theme='dark'] .creator-modal .modal-close:hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--canvas-950);
}
[data-theme='dark'] .creator-modal h2 {
  color: var(--text-primary);
}
[data-theme='dark'] .creator-modal .modal-desc {
  color: var(--text-muted);
}
[data-theme='dark'] .creator-modal label,
[data-theme='dark'] .creator-modal .label {
  color: var(--text-secondary);
}
[data-theme='dark'] .creator-modal .form-input {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: var(--text-primary);
}
[data-theme='dark'] .creator-modal .form-input:focus {
  border-color: var(--terra);
  box-shadow: 0 0 0 3px rgba(217, 119, 87, 0.12);
  background: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .creator-modal .form-input::placeholder {
  color: var(--canvas-500);
}

/* ── Creator Document Modal ── */
.creator-doc-modal {
  width: 720px;
  max-width: 92vw;
  max-height: 85vh;
  padding: 0;
  background: var(--bg-card);
  border-radius: var(--radius-xl);
  box-shadow:
    0 25px 80px rgba(0, 0, 0, 0.2),
    0 0 0 1px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: cdmSlideUp 0.3s ease;
}
@keyframes cdmSlideUp {
  from {
    opacity: 0;
    transform: translateY(24px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.cdm-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  background: var(--bg-subtle);
}
.cdm-tabs {
  display: flex;
  gap: 4px;
}
.cdm-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-secondary);
  background: none;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: var(--font-body);
}
.cdm-tab:hover {
  background: rgba(0, 0, 0, 0.04);
  color: var(--text-primary);
}
.cdm-tab.active {
  background: var(--bg-card);
  color: var(--text-primary);
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.06),
    0 0 0 1px rgba(0, 0, 0, 0.04);
}
.cdm-close {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: none;
  font-size: 22px;
  color: var(--text-muted);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.2s ease;
}
.cdm-close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: var(--text-primary);
  transform: rotate(90deg);
}
.cdm-content {
  display: none;
  overflow-y: auto;
  padding: 0 32px 32px;
  flex: 1;
}
.cdm-content.active {
  display: block;
}
.cdm-content::-webkit-scrollbar {
  width: 5px;
}
.cdm-content::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

/* Hero Section */
.cdm-hero {
  padding: 32px 0 24px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 28px;
}
.cdm-hero-badge {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--terra);
  background: var(--terra-50);
  padding: 4px 10px;
  border-radius: 20px;
  margin-bottom: 12px;
}
.cdm-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(22px, 1.6vw, 27px);
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.03em;
  margin-bottom: 6px;
}
.cdm-hero p {
  font-size: 15px;
  color: var(--text-secondary);
  line-height: 1.6;
}

/* Sections */
.cdm-section {
  margin-bottom: 32px;
}
.cdm-section h2 {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.02em;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.cdm-section-desc {
  font-size: 14.5px;
  color: var(--text-secondary);
  margin-bottom: 16px;
  line-height: 1.6;
}

/* Flow Steps */
.cdm-flow {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.cdm-flow-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
}
.cdm-flow-num {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--terra);
  color: white;
  font-size: 14.5px;
  font-weight: 800;
  font-family: var(--font-display);
  margin-bottom: 4px;
}
.cdm-flow-step strong {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-primary);
}
.cdm-flow-step span {
  font-size: 12.5px;
  color: var(--text-secondary);
  line-height: 1.5;
}
.cdm-flow-arrow {
  color: var(--text-muted);
  padding-top: 6px;
  flex-shrink: 0;
}

/* Dashboard Grid */
.cdm-dash-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.cdm-dash-item {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border-radius: var(--radius-md);
  background: var(--bg-subtle);
  border: 1px solid var(--border);
}
.cdm-dash-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cdm-dash-item strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 2px;
}
.cdm-dash-item span {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.5;
}

/* Tier Cards */
.cdm-tiers {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.cdm-tier-card {
  padding: 18px 14px;
  border-radius: var(--radius-md);
  background: var(--bg-subtle);
  border: 1px solid var(--border);
  text-align: center;
  border-top: 3px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  transition: all 0.3s var(--ease);
}
.cdm-tier-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
.cdm-tier-icon {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
  margin-bottom: 6px;
  position: relative;
  overflow: hidden;
}
.cdm-tier-icon::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  transform: scaleY(0);
  transform-origin: bottom;
  z-index: 0;
}
.cdm-tier-card:hover .cdm-tier-icon::before {
  animation: tierIconFill 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
/* Bronze: cool moonlight blue-gray */
.cdm-tier-bronze .cdm-tier-icon {
  background: rgba(160, 174, 192, 0.12);
  color: #8896a8;
}
.cdm-tier-bronze .cdm-tier-icon::before {
  background: rgba(160, 174, 192, 0.22);
}
/* Silver: warm solar amber */
.cdm-tier-silver .cdm-tier-icon {
  background: rgba(234, 179, 56, 0.1);
  color: #d4a020;
}
.cdm-tier-silver .cdm-tier-icon::before {
  background: rgba(234, 179, 56, 0.2);
}
/* Gold: cosmic violet-steel */
.cdm-tier-gold .cdm-tier-icon {
  background: rgba(139, 128, 186, 0.1);
  color: #8b7fba;
}
.cdm-tier-gold .cdm-tier-icon::before {
  background: rgba(139, 128, 186, 0.2);
}
/* Platinum: deep ember / singularity orange */
.cdm-tier-platinum .cdm-tier-icon {
  background: rgba(217, 119, 87, 0.1);
  color: var(--terra);
}
.cdm-tier-platinum .cdm-tier-icon::before {
  background: rgba(217, 119, 87, 0.2);
}
@keyframes tierIconFill {
  0% {
    transform: scaleY(0);
  }
  100% {
    transform: scaleY(1);
  }
}

/* ====== 3D Globe — rotating ball effect ====== */

/* Surface scrolls left to simulate globe spinning */
@keyframes globeSpin {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
/* Saturn body — highlight shifts to simulate rotation */
@keyframes saturnBodySpin {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 200% 50%;
  }
}
/* Star glow pulse */
@keyframes tierStarGlow {
  0%,
  100% {
    box-shadow: 0 0 6px 2px rgba(232, 160, 64, 0.25);
  }
  50% {
    box-shadow: 0 0 14px 5px rgba(232, 160, 64, 0.5);
  }
}

/* --- Globe container (Moon, Mars, Star) --- */
.tier-globe {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  display: inline-block;
}
/* The image is 2x wide and scrolls to simulate rotation */
.tier-globe img {
  width: 200%;
  height: 100%;
  object-fit: cover;
  animation: globeSpin 15s linear infinite;
}
/* 3D sphere lighting overlay — highlight top-left, shadow edges */
.tier-globe::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(
    circle at 32% 30%,
    rgba(255, 255, 255, 0.25) 0%,
    rgba(255, 255, 255, 0.08) 20%,
    transparent 45%,
    rgba(0, 0, 0, 0.12) 70%,
    rgba(0, 0, 0, 0.3) 100%
  );
  pointer-events: none;
  z-index: 1;
}

/* Speed variations per tier */
.cdm-tier-bronze .tier-globe img {
  animation-duration: 18s;
}
.cdm-tier-silver .tier-globe img {
  animation-duration: 14s;
}
.cdm-tier-platinum .tier-globe img {
  animation-duration: 22s;
}

/* Star globe — add glow ring */
.tier-globe-star {
  box-shadow: 0 0 8px 2px rgba(232, 160, 64, 0.35);
  animation: tierStarGlow 2.5s ease-in-out infinite;
}

/* --- Saturn (CSS-built: spinning body + static ring) --- */
.tier-saturn {
  position: relative;
  width: 38px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Planet body — gradient sphere that rotates via background shift */
.tier-saturn-body {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 30%, rgba(255, 255, 255, 0.2) 0%, transparent 40%),
    repeating-linear-gradient(180deg, #d4c078 0%, #c8b060 8%, #b8a050 16%, #d0be70 24%, #c0a850 32%);
  background-size:
    100% 100%,
    200% 100%;
  animation: saturnBodySpin 12s linear infinite;
  position: relative;
  z-index: 2;
  box-shadow:
    inset -4px -2px 6px rgba(0, 0, 0, 0.25),
    inset 2px 2px 4px rgba(255, 255, 255, 0.15);
}
/* Ring — static 3D ellipse around the body */
.tier-saturn-ring {
  position: absolute;
  width: 36px;
  height: 36px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotateX(68deg);
  border-radius: 50%;
  border: 2.5px solid transparent;
  background:
    linear-gradient(180deg, rgba(160, 140, 120, 0.5), rgba(120, 110, 150, 0.4), rgba(160, 140, 120, 0.3)) padding-box,
    linear-gradient(180deg, #a08c78, #8b7fba, #a08c78) border-box;
  z-index: 1;
  pointer-events: none;
}
/* Outer ring (second ring layer via box-shadow) */
.tier-saturn-ring::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 1.5px solid rgba(139, 127, 186, 0.25);
  pointer-events: none;
}

/* --- Dot-sized globe (progress dots, 12px) --- */
.tier-globe-dot {
  width: 12px;
  height: 12px;
  display: inline-block;
}
.tier-globe-dot img {
  animation-duration: 20s;
}
/* Dot-sized Saturn */
.tier-saturn-dot {
  width: 18px;
  height: 14px;
  display: inline-flex;
}
.tier-saturn-dot .tier-saturn-body {
  width: 8px;
  height: 8px;
}
.tier-saturn-dot .tier-saturn-ring {
  width: 16px;
  height: 16px;
  border-width: 1.5px;
}
.tier-saturn-dot .tier-saturn-ring::after {
  display: none;
}

/* --- Chip-sized globe (payout chip, 16px) --- */
.tier-globe-chip {
  width: 16px;
  height: 16px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 3px;
}
.tier-globe-chip img {
  animation-duration: 20s;
}
.tier-globe-chip.tier-globe-star {
  box-shadow: 0 0 5px 1px rgba(232, 160, 64, 0.3);
}
/* Chip-sized Saturn */
.tier-saturn-chip {
  width: 24px;
  height: 16px;
  display: inline-flex;
  vertical-align: middle;
  margin-right: 3px;
}
.tier-saturn-chip .tier-saturn-body {
  width: 10px;
  height: 10px;
}
.tier-saturn-chip .tier-saturn-ring {
  width: 22px;
  height: 22px;
  border-width: 1.5px;
}
.tier-saturn-chip .tier-saturn-ring::after {
  display: none;
}
.cdm-tier-card:nth-child(1) .cdm-tier-icon::before {
  animation: tierIconFill 0.5s 0.1s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.cdm-tier-card:nth-child(2) .cdm-tier-icon::before {
  animation: tierIconFill 0.5s 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.cdm-tier-card:nth-child(3) .cdm-tier-icon::before {
  animation: tierIconFill 0.5s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.cdm-tier-card:nth-child(4) .cdm-tier-icon::before {
  animation: tierIconFill 0.5s 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.cdm-tier-card strong {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text-primary);
}
.cdm-tier-card span {
  font-size: 12.5px;
  color: var(--text-muted);
}
.cdm-tier-rate {
  font-family: var(--font-display);
  font-size: clamp(20px, 1.4vw, 25px);
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 4px;
}
.cdm-tier-bronze {
  border-top-color: #8896a8;
}
.cdm-tier-bronze .cdm-tier-rate {
  color: #8896a8;
}
.cdm-tier-silver {
  border-top-color: #d4a020;
}
.cdm-tier-silver .cdm-tier-rate {
  color: #d4a020;
}
.cdm-tier-gold {
  border-top-color: #8b7fba;
}
.cdm-tier-gold .cdm-tier-rate {
  color: #8b7fba;
}
.cdm-tier-platinum {
  border-top-color: var(--terra);
}
.cdm-tier-platinum .cdm-tier-rate {
  color: var(--terra);
}

/* Tips */
.cdm-tips {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cdm-tip {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  background: var(--bg-subtle);
  border: 1px solid var(--border);
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.5;
}
.cdm-tip-num {
  font-family: var(--font-display);
  font-size: 12.5px;
  font-weight: 800;
  color: var(--terra);
  flex-shrink: 0;
  opacity: 0.7;
}

/* FAQ */
.cdm-faq {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cdm-faq-item {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.cdm-faq-item summary {
  padding: 12px 16px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background 0.15s ease;
}
.cdm-faq-item summary:hover {
  background: var(--bg-subtle);
}
.cdm-faq-item summary::after {
  content: '+';
  font-size: 18px;
  font-weight: 400;
  color: var(--text-muted);
  transition: transform 0.2s ease;
}
.cdm-faq-item[open] summary::after {
  content: '−';
}
.cdm-faq-item summary::-webkit-details-marker {
  display: none;
}
.cdm-faq-item p {
  padding: 0 16px 14px;
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.7;
}

/* Legal Sections */
.cdm-legal p {
  font-size: 14.5px;
  color: var(--text-secondary);
  line-height: 1.75;
  margin-bottom: 10px;
}
.cdm-legal ul {
  padding-left: 20px;
  margin-bottom: 12px;
}
.cdm-legal li {
  font-size: 14.5px;
  color: var(--text-secondary);
  line-height: 1.75;
  margin-bottom: 4px;
}
.cdm-legal strong {
  color: var(--text-primary);
}

/* Explain List (Guide detailed breakdowns) */
.cdm-explain-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cdm-explain {
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--border);
  transition: background 0.15s;
}
.cdm-explain:hover {
  background: var(--bg-subtle);
}
.cdm-explain-label {
  font-size: 13.5px;
  font-weight: 800;
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  margin-bottom: 4px;
  color: var(--text-primary);
}
.cdm-explain p {
  font-size: 14px;
  color: var(--text-secondary);
  line-height: 1.7;
  margin: 0;
}
.cdm-explain code {
  font-family: var(--font-mono);
  font-size: 13px;
  background: rgba(0, 0, 0, 0.04);
  padding: 1px 5px;
  border-radius: 3px;
  color: var(--terra);
}
[data-theme='dark'] .cdm-explain code {
  background: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .cdm-explain:hover {
  background: rgba(255, 255, 255, 0.02);
}

/* ── Payout Page (v3 — Stripe-inspired) ── */

/* Top Row: Balance Cards */
.po-top-row {
  margin: 20px 0 0;
}
.po-balance-card {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.po-balance-card > div {
  padding: 20px 24px;
  border-right: 1px solid var(--border);
}
.po-balance-card > div:last-child {
  border-right: none;
}
.po-bal-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: 6px;
}
.po-bal-amount {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: clamp(18px, 1.3vw, 21px);
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.03em;
  line-height: 1;
}
.po-bal-muted {
  color: var(--text-muted);
  font-size: clamp(16px, 1.1vw, 18px);
}
.po-bal-action {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 28px !important;
}
.po-request-btn {
  padding: 8px 22px;
  font-size: 13.5px;
  font-weight: 700;
  font-family: var(--font-body);
  color: white;
  background: var(--canvas-900);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.po-request-btn:hover {
  background: var(--canvas-800);
}
.po-request-btn:disabled {
  opacity: 0.2;
  cursor: not-allowed;
}

/* Info Strip */
.po-info-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 0;
  flex-wrap: wrap;
}
.po-info-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-muted);
  background: var(--bg-subtle);
  border-radius: 20px;
  border: 1px solid var(--border);
}
.po-info-chip svg {
  opacity: 0.5;
}
.po-info-tier {
  color: var(--terra);
  background: var(--terra-50);
  border-color: rgba(217, 119, 87, 0.15);
}
.po-info-tier svg {
  opacity: 0.7;
  color: var(--terra);
}
.po-info-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--terra);
  text-decoration: none;
  margin-left: auto;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  transition: background 0.15s;
}
.po-info-link:hover {
  background: var(--terra-50);
}
.po-info-link.active .po-schedule-chevron {
  transform: rotate(180deg);
}
.po-schedule-chevron {
  transition: transform 0.2s ease;
}

/* Schedule Dropdown */
.po-schedule-dropdown {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.35s ease,
    opacity 0.2s ease;
  opacity: 0;
}
.po-schedule-dropdown.open {
  max-height: 300px;
  opacity: 1;
  margin-bottom: 8px;
}
.po-sched-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding-bottom: 4px;
}
.po-sched-card {
  padding: 14px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-subtle);
}
.po-sched-card strong {
  display: block;
  font-size: 13px;
  font-weight: 800;
  font-family: var(--font-display);
  color: var(--text-primary);
  margin-bottom: 4px;
}
.po-sched-card p {
  font-size: 12.5px;
  color: var(--text-muted);
  line-height: 1.55;
  margin: 0;
}

/* ── Earnings Timeline ─────────────────────────────────────────────────── */
.po-earnings-timeline {
  margin: 16px 0;
  padding: 20px 24px;
  background: var(--bg-card);
  border: 1px solid var(--canvas-200);
  border-radius: 12px;
}
.po-timeline-track {
  display: flex;
  align-items: flex-start;
  gap: 0;
}
.po-tl-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
  padding: 0 8px;
}
.po-tl-dot {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}
.po-tl-dot.po-tl-earned {
  background: var(--canvas-100);
  border: 2px solid var(--canvas-400);
}
.po-tl-dot.po-tl-held {
  background: var(--canvas-100);
  border: 2px solid var(--canvas-400);
}
.po-tl-dot.po-tl-available {
  background: var(--canvas-100);
  border: 2px solid var(--canvas-400);
}
.po-tl-dot.po-tl-paid {
  background: var(--terra-50);
  border: 2px solid var(--terra);
}
.po-tl-connector {
  position: absolute;
  top: 16px;
  left: calc(50% + 16px);
  width: calc(100% - 32px);
  height: 2px;
  background: var(--canvas-200);
}
.po-tl-step:last-child .po-tl-connector {
  display: none;
}
.po-tl-step strong {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 3px;
}
.po-tl-step span {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.4;
}
[data-theme='dark'] .po-earnings-timeline {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}
@media (max-width: 500px) {
  .po-timeline-track {
    flex-direction: column;
    gap: 0;
  }
  .po-tl-step {
    flex-direction: row;
    gap: 12px;
    text-align: left;
    padding: 8px 0;
  }
  .po-tl-connector {
    display: none;
  }
}

/* Payment Method (horizontal) */
.po-pay-section {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0 16px;
  border-bottom: 1px solid var(--border);
}
.po-pay-label {
  font-size: 12.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  flex-shrink: 0;
}
.po-pay-methods {
  display: flex;
  gap: 6px;
}
.po-pay-opt {
  cursor: pointer;
}
.po-pay-opt input {
  display: none;
}
.po-pay-card {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  border: 1.5px solid var(--border);
  border-radius: 8px;
  transition: all 0.15s;
  background: var(--bg-card);
}
.po-pay-card:hover {
  border-color: var(--text-muted);
}
.po-pay-card span {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
}
.po-pay-opt input:checked + .po-pay-card {
  border-color: var(--terra);
  background: var(--terra-50);
}

/* Payout Method Cards */
.po-method-section {
  padding: 0 0 16px;
}
.po-method-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.po-method-header h3 {
  font-family: var(--font-display);
  font-size: 14.5px;
  font-weight: 800;
  color: var(--text-primary);
}
.po-method-status {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-muted);
}
.po-method-status.po-status-ok {
  color: var(--emerald-500);
}
.po-method-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.po-method-card {
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px 14px 14px;
  cursor: pointer;
  transition: all 0.15s;
  position: relative;
}
.po-method-card:hover {
  border-color: var(--text-muted);
  background: var(--bg-subtle);
}
.po-method-card.po-mc-selected {
  border-color: var(--terra);
  background: var(--terra-50);
}
.po-mc-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 10px;
}
.po-mc-check {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--emerald-500);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.2s;
}
.po-mc-check.visible {
  opacity: 1;
  transform: scale(1);
}
.po-method-card strong {
  display: block;
  font-size: 13.5px;
  font-weight: 800;
  font-family: var(--font-display);
  color: var(--text-primary);
  margin-bottom: 2px;
}
.po-method-card > span {
  font-size: 12px;
  color: var(--text-muted);
}
.po-mc-connected {
  display: none;
  font-size: 11px;
  font-family: 'JetBrains Mono', monospace;
  color: var(--terra);
  margin-top: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Setup Form */
.po-setup-form {
  margin-top: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px 22px;
  background: var(--bg-subtle);
  animation: poSetupIn 0.2s ease;
}
@keyframes poSetupIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.po-setup-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.po-setup-header strong {
  display: block;
  font-size: 14.5px;
  font-weight: 800;
  font-family: var(--font-display);
  color: var(--text-primary);
}
.po-setup-header span {
  font-size: 13px;
  color: var(--text-muted);
}
.po-setup-field {
  margin-bottom: 14px;
}
.po-setup-field label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-secondary);
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.po-setup-field input {
  width: 100%;
  padding: 9px 12px;
  font-size: 14.5px;
  font-family: var(--font-body);
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-card);
  color: var(--text-primary);
  transition: border-color 0.15s;
  outline: none;
  box-sizing: border-box;
}
.po-setup-field input:focus {
  border-color: var(--terra);
}
.po-setup-prefix {
  display: flex;
  align-items: center;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color 0.15s;
}
.po-setup-prefix:focus-within {
  border-color: var(--terra);
}
.po-setup-prefix span {
  padding: 9px 10px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text-muted);
  background: var(--bg-subtle);
  border-right: 1px solid var(--border);
  flex-shrink: 0;
}
.po-setup-prefix input {
  border: none !important;
  border-radius: 0 !important;
  flex: 1;
}
.po-setup-row {
}
.po-setup-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.po-setup-toggle {
  display: flex;
  gap: 0;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  overflow: hidden;
  width: fit-content;
}
.po-toggle-btn {
  padding: 7px 18px;
  font-size: 13.5px;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--text-muted);
  background: none;
  border: none;
  cursor: pointer;
  transition: all 0.15s;
}
.po-toggle-btn.active {
  background: var(--terra);
  color: white;
}
.po-setup-note {
  font-size: 12.5px;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 0 0 16px;
  padding: 10px 12px;
  background: var(--bg-card);
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--border);
}
.po-setup-actions {
  display: flex;
  gap: 8px;
  padding-top: 4px;
}
.po-setup-save {
  padding: 8px 20px;
  font-size: 13.5px;
  font-weight: 700;
  font-family: var(--font-body);
  color: white;
  background: var(--canvas-900);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background 0.15s;
}
.po-setup-save:hover {
  background: var(--canvas-800);
}
.po-setup-cancel {
  padding: 8px 16px;
  font-size: 13.5px;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--text-muted);
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.15s;
}
.po-setup-cancel:hover {
  background: var(--bg-card);
  color: var(--text-primary);
}

[data-theme='dark'] .po-method-card {
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-method-card:hover {
  border-color: rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.02);
}
[data-theme='dark'] .po-method-card.po-mc-selected {
  border-color: var(--terra);
  background: rgba(217, 119, 87, 0.06);
}
[data-theme='dark'] .po-method-card svg path[fill='#4a5568'] {
  fill: #a0aec0;
}
[data-theme='dark'] .po-setup-form {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-setup-header {
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-setup-field input {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
}
[data-theme='dark'] .po-setup-prefix {
  border-color: rgba(255, 255, 255, 0.08);
}
[data-theme='dark'] .po-setup-prefix span {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-setup-note {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-setup-save {
  background: #e8e8e8;
  color: #1a1a1e;
}
[data-theme='dark'] .po-setup-cancel {
  border-color: rgba(255, 255, 255, 0.08);
}

/* ── Stripe Connect Card ── */
.po-connect-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-lg);
  transition: border-color 0.15s;
}
.po-connect-active {
  border-color: var(--terra);
  background: var(--terra-50);
}
.po-connect-onboarding {
  border-color: var(--canvas-400);
  background: var(--canvas-50);
}
.po-connect-restricted {
  border-color: var(--canvas-400);
  background: var(--canvas-50);
}
.po-connect-new {
  border-color: var(--border);
}
.po-connect-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.po-connect-icon-ok {
  background: var(--terra-50);
  color: var(--terra);
}
.po-connect-icon-warn {
  background: var(--canvas-100);
  color: var(--canvas-500);
}
.po-connect-icon-stripe {
  background: var(--canvas-100);
  color: var(--canvas-600);
}
.po-connect-info {
  flex: 1;
  min-width: 0;
}
.po-connect-info strong {
  display: block;
  font-size: 13.5px;
  font-weight: 800;
  font-family: var(--font-display);
  color: var(--text-primary);
  margin-bottom: 2px;
}
.po-connect-info span {
  font-size: 12.5px;
  color: var(--text-muted);
  line-height: 1.4;
}
.po-connect-actions {
  flex-shrink: 0;
}
.po-connect-setup-btn,
.po-connect-dash-btn {
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 700;
  font-family: var(--font-body);
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.po-connect-setup-btn {
  background: var(--canvas-900);
  color: white;
}
.po-connect-setup-btn:hover {
  opacity: 0.9;
}
.po-connect-setup-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.po-connect-btn-amber {
  background: var(--canvas-700) !important;
  color: #fff !important;
}
.po-connect-dash-btn {
  background: var(--bg-subtle);
  color: var(--text-primary);
  border: 1px solid var(--border);
}
.po-connect-dash-btn:hover {
  background: var(--bg-card);
}
.po-status-ok {
  color: var(--terra) !important;
}
.po-status-warn {
  color: var(--text-muted) !important;
}

[data-theme='dark'] .po-connect-active {
  border-color: rgba(217, 119, 87, 0.3);
  background: rgba(217, 119, 87, 0.06);
}
[data-theme='dark'] .po-connect-onboarding,
[data-theme='dark'] .po-connect-restricted {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.03);
}
[data-theme='dark'] .po-connect-setup-btn {
  background: #e8e8e8;
  color: #1a1a1e;
}
[data-theme='dark'] .po-connect-dash-btn {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

@media (max-width: 600px) {
  .po-connect-card {
    flex-direction: column;
    text-align: center;
    gap: 10px;
    padding: 14px;
  }
  .po-connect-actions {
    width: 100%;
  }
  .po-connect-setup-btn,
  .po-connect-dash-btn {
    width: 100%;
    text-align: center;
  }
}

/* Transactions */
.po-tx-section {
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-top: 16px;
}
.po-tx-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 18px;
  border-bottom: 1px solid var(--border);
}
.po-tx-header h3 {
  font-family: var(--font-display);
  font-size: 14.5px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
.po-tx-filters {
  display: flex;
  gap: 2px;
  background: var(--bg-subtle);
  border-radius: 6px;
  padding: 2px;
  border: 1px solid var(--border);
}
.po-tx-filter {
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--font-body);
  color: var(--text-muted);
  background: none;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.15s;
}
.po-tx-filter:hover {
  color: var(--text-primary);
}
.po-tx-filter.active {
  color: var(--text-primary);
  background: var(--bg-card);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.po-tx-list {
  min-height: 140px;
}
.po-tx-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 24px;
  text-align: center;
}
.po-tx-empty strong {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 4px;
}
.po-tx-empty p {
  font-size: 12.5px;
  color: var(--text-muted);
  line-height: 1.6;
  max-width: 240px;
  margin: 0;
}

/* Transaction Row */
.po-tx-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 18px;
  border-bottom: 1px solid var(--border);
  font-size: 13.5px;
  transition: background 0.1s;
  gap: 12px;
}
.po-tx-row:last-child {
  border-bottom: none;
}
.po-tx-row:hover {
  background: var(--bg-subtle);
}
.po-tx-info {
  flex: 1;
  min-width: 0;
}
.po-tx-info strong {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 1px;
}
.po-tx-info span {
  font-size: 12.5px;
  color: var(--text-muted);
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.po-tx-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.po-tx-amount {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  font-size: 13.5px;
  white-space: nowrap;
}
.po-tx-credit {
  color: var(--emerald-500);
}
.po-tx-debit {
  color: var(--text-primary);
}
.po-tx-status {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
}
.po-tx-held {
  background: rgba(212, 168, 83, 0.1);
  color: #c49a3a;
}
.po-tx-available {
  background: rgba(16, 185, 129, 0.1);
  color: var(--emerald-500);
}
.po-tx-paid {
  background: var(--terra-50);
  color: var(--terra);
}
.po-tx-pending {
  background: var(--canvas-100);
  color: var(--text-muted);
}
.po-tx-date {
  font-family: 'JetBrains Mono', monospace;
  font-size: 12px;
  color: var(--text-muted);
  white-space: nowrap;
}

/* Dark Mode — Payout */
[data-theme='dark'] .po-balance-card {
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-balance-card > div {
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-request-btn {
  background: #e8e8e8;
  color: #1a1a1e;
}
[data-theme='dark'] .po-info-chip {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-sched-card {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-pay-card {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-pay-card:hover {
  border-color: rgba(255, 255, 255, 0.15);
}
[data-theme='dark'] .po-pay-opt input:checked + .po-pay-card {
  background: rgba(217, 119, 87, 0.06);
  border-color: var(--terra);
}
[data-theme='dark'] .po-pay-card svg path[fill='#4a5568'] {
  fill: #a0aec0;
}
[data-theme='dark'] .po-tx-section {
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-tx-header {
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-tx-filters {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-tx-filter.active {
  background: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .po-tx-row {
  border-color: rgba(255, 255, 255, 0.04);
}
[data-theme='dark'] .po-tx-row:hover {
  background: rgba(255, 255, 255, 0.02);
}
[data-theme='dark'] .po-pay-section {
  border-color: rgba(255, 255, 255, 0.06);
}

/* Dark Mode — Modal */
[data-theme='dark'] .creator-doc-modal {
  background: var(--bg-card);
  box-shadow:
    0 25px 80px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.09);
}
[data-theme='dark'] .cdm-header {
  background: var(--bg);
  border-color: rgba(255, 255, 255, 0.09);
}
[data-theme='dark'] .cdm-tab:hover {
  background: rgba(255, 255, 255, 0.05);
}
[data-theme='dark'] .cdm-tab.active {
  background: var(--bg-card);
  box-shadow:
    0 1px 3px rgba(0, 0, 0, 0.3),
    0 0 0 1px rgba(255, 255, 255, 0.09);
}
[data-theme='dark'] .cdm-close:hover {
  background: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .cdm-content::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.1);
}
[data-theme='dark'] .cdm-dash-item,
[data-theme='dark'] .cdm-tier-card,
[data-theme='dark'] .cdm-tip,
[data-theme='dark'] .cdm-faq-item {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.06);
}
[data-theme='dark'] .cdm-faq-item summary:hover {
  background: rgba(255, 255, 255, 0.03);
}

/* Responsive */
@media (max-width: 900px) {
  .creator-stats-row {
    grid-template-columns: repeat(2, 1fr);
  }
  .creator-grid-2col {
    grid-template-columns: 1fr;
  }
  .creator-resources-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .cdm-flow {
    flex-direction: column;
    align-items: center;
  }
  .cdm-flow-arrow {
    transform: rotate(90deg);
  }
  .cdm-tiers {
    grid-template-columns: repeat(2, 1fr);
  }
  .cdm-dash-grid {
    grid-template-columns: 1fr;
  }
  .po-balance-card {
    grid-template-columns: 1fr 1fr;
  }
  .po-bal-action {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding: 12px 24px 16px !important;
  }
  .po-sched-grid {
    grid-template-columns: 1fr;
  }
  .po-method-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .po-setup-2col {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .creator-apply-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .rejection-card {
    padding: 14px;
  }
  .rejection-card-top {
    gap: 10px;
  }
  .rejection-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }
  .rejection-icon svg {
    width: 24px;
    height: 24px;
  }
  .rejection-actions {
    gap: 5px;
  }
  .rejection-btn {
    padding: 6px 10px;
    font-size: 12px;
    gap: 5px;
  }
  .rejection-btn svg {
    width: 13px;
    height: 13px;
  }
  .appeal-tracker {
    padding: 14px;
    margin-top: 8px;
  }
  .appeal-step-dot {
    width: 26px;
    height: 26px;
  }
  .rejection-faq {
    padding: 14px;
    margin-top: 8px;
  }
  .faq-question {
    padding: 10px 0;
    font-size: 12.5px;
  }
  .faq-answer p {
    font-size: 12px;
  }
  .creator-appeal-modal {
    width: 94vw !important;
    padding: 16px !important;
  }
  .appeal-modal-icon {
    width: 38px;
    height: 38px;
  }
  .upload-zone-content {
    padding: 12px;
  }
  .creator-stats-row {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .creator-resources-grid {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .creator-doc-modal {
    max-width: 98vw;
  }
  .cdm-content {
    padding: 0 18px 24px;
  }
  .cdm-tiers {
    grid-template-columns: 1fr 1fr;
  }
  /* Creator compact fonts */
  .creator-tab-body {
    gap: 16px;
  }
  .creator-stat-card {
    padding: 10px;
    gap: 8px;
  }
  .csc-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
  }
  .csc-icon svg {
    width: 14px;
    height: 14px;
  }
  .csc-label {
    font-size: 9.5px;
    letter-spacing: 0.04em;
  }
  .csc-value {
    font-size: 14.5px;
  }
  .creator-ref-section {
    padding: 12px 14px;
  }
  .creator-ref-section h3 {
    font-size: 12.5px;
    margin-bottom: 8px;
  }
  .creator-ref-input {
    font-size: 12px;
    padding: 6px 10px;
  }
  .creator-copy-btn {
    font-size: 12px;
    padding: 6px 10px;
  }
  .creator-promo-code {
    font-size: 11px;
  }
  .creator-chart-card {
    padding: 12px 14px;
  }
  .ccc-header h3 {
    font-size: 12.5px;
  }
  .ccc-period-pills .pill-btn {
    font-size: 10.5px;
    padding: 3px 9px;
  }
  .ccc-chart-labels {
    font-size: 10px;
  }
  .creator-referrals-card {
    padding: 12px 14px;
  }
  .creator-referrals-card h3 {
    font-size: 12.5px;
    margin-bottom: 10px;
  }
  .creator-referral-row {
    padding: 7px 0;
    font-size: 12px;
  }
  .crr-stage {
    font-size: 10.5px;
  }
  .crr-date {
    font-size: 10.5px;
  }
  .creator-resources-section {
    padding: 12px 14px;
  }
  .creator-resources-section h3 {
    font-size: 12.5px;
    margin-bottom: 10px;
  }
  .creator-resource-card {
    padding: 10px;
  }
  .crc-icon {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    margin-bottom: 6px;
  }
  .creator-resource-card strong {
    font-size: 12px;
  }
  .creator-resource-card span {
    font-size: 10.5px;
  }
  .creator-tier-section {
    padding: 12px 14px;
  }
  .creator-tier-section h3 {
    font-size: 12.5px;
  }
  .ctc-badge {
    font-size: 9.5px;
    padding: 2px 10px;
  }
  .ctc-progress-text {
    font-size: 11px;
  }
  .ctc-tier {
    font-size: 10.5px;
  }
  .ctc-tier small {
    font-size: 9.5px;
  }
  .creator-helpbar .chb-btn {
    font-size: 11px;
    padding: 4px 10px;
  }
  .creator-footer-links a {
    font-size: 10.5px;
  }
  .cab-left h2 {
    font-size: 14.5px;
  }
  .cab-left p {
    font-size: 12px;
  }
  .cab-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
  }
  /* Creator Doc Modal (Guide / Privacy / Terms) — compact */
  .creator-doc-modal {
    border-radius: 14px;
  }
  .cdm-header {
    padding: 8px 10px;
  }
  .cdm-tabs {
    gap: 3px;
  }
  .cdm-tab {
    font-size: 12px;
    padding: 6px 10px;
    gap: 5px;
    border-radius: 7px;
  }
  .cdm-tab svg {
    width: 12px;
    height: 12px;
  }
  .cdm-close {
    width: 26px;
    height: 26px;
    font-size: 18px;
  }
  .cdm-content {
    padding: 0 14px 20px;
  }
  .cdm-hero {
    padding: 16px 0 12px;
  }
  .cdm-hero-badge {
    font-size: 10px;
    padding: 3px 10px;
    letter-spacing: 0.08em;
  }
  .cdm-hero h1 {
    font-size: 18px;
  }
  .cdm-hero p {
    font-size: 12px;
  }
  .cdm-section {
    margin-bottom: 16px;
  }
  .cdm-section h2 {
    font-size: 13.5px;
    margin-bottom: 8px;
    padding-bottom: 6px;
  }
  .cdm-section-desc {
    font-size: 12px;
    margin-bottom: 10px;
  }
  .cdm-flow-step {
    padding: 12px;
    min-width: 120px;
  }
  .cdm-flow-num {
    width: 26px;
    height: 26px;
    font-size: 12.5px;
  }
  .cdm-flow-step strong {
    font-size: 12px;
  }
  .cdm-flow-step span {
    font-size: 10.5px;
  }
  .cdm-flow-arrow svg {
    width: 16px;
    height: 16px;
  }
  .cdm-explain {
    padding: 10px 12px;
  }
  .cdm-explain-label {
    font-size: 11px;
    margin-bottom: 3px;
  }
  .cdm-explain p {
    font-size: 11px;
    line-height: 1.5;
  }
  .cdm-explain code {
    font-size: 10.5px;
    padding: 1px 5px;
  }
  .cdm-tier-card {
    padding: 12px 8px;
  }
  .cdm-tier-icon {
    width: 34px;
    height: 34px;
    margin-bottom: 6px;
  }
  .cdm-tier-rate {
    font-size: 16px;
  }
  .cdm-tier-card strong {
    font-size: 11px;
  }
  .cdm-tier-card span {
    font-size: 10px;
  }
  .cdm-tip {
    padding: 10px 12px;
    font-size: 11px;
    line-height: 1.5;
  }
  .cdm-tip-num {
    font-size: 11px;
    min-width: 22px;
  }
  .cdm-faq-item summary {
    font-size: 12px;
    padding: 9px 12px;
  }
  .cdm-faq-item p {
    font-size: 11px;
    padding: 0 12px 10px;
    line-height: 1.5;
  }
  .cdm-legal p {
    font-size: 12px;
    line-height: 1.6;
    margin-bottom: 6px;
  }
  .cdm-legal ul {
    margin: 4px 0 8px 16px;
  }
  .cdm-legal li {
    font-size: 12px;
    margin-bottom: 3px;
  }
  .cdm-legal strong {
    font-size: 12px;
  }
  /* Payouts page — compact */
  .po-top-row {
    margin: 12px 0 0;
  }
  .po-balance-card {
    padding: 0;
    border-radius: 12px;
  }
  .po-balance-card > div {
    padding: 10px 14px;
  }
  .po-bal-label {
    font-size: 10px;
  }
  .po-bal-amount {
    font-size: 16px;
  }
  .po-bal-muted {
    font-size: 13.5px;
  }
  .po-request-btn {
    font-size: 12px;
    padding: 7px 16px;
  }
  .po-info-strip {
    gap: 5px;
    padding: 10px 0;
    flex-wrap: wrap;
  }
  .po-info-chip {
    font-size: 10.5px;
    padding: 4px 8px;
    gap: 4px;
  }
  .po-info-chip svg {
    width: 11px;
    height: 11px;
  }
  .po-info-link {
    font-size: 10.5px;
    padding: 4px 8px;
  }
  .po-sched-card {
    padding: 10px 12px;
  }
  .po-sched-card strong {
    font-size: 11px;
  }
  .po-sched-card p {
    font-size: 10.5px;
  }
  .po-method-section {
    margin-top: 16px;
  }
  .po-method-header h3 {
    font-size: 12.5px;
  }
  .po-method-status {
    font-size: 10.5px;
  }
  .po-method-card {
    padding: 10px;
    border-radius: 10px;
  }
  .po-method-card svg {
    width: 22px;
    height: 22px;
  }
  .po-method-card strong {
    font-size: 11px;
  }
  .po-method-card > span {
    font-size: 10px;
  }
  .po-mc-connected {
    font-size: 10px;
  }
  .po-setup-form {
    padding: 12px;
    border-radius: 10px;
  }
  .po-setup-header strong {
    font-size: 12.5px;
  }
  .po-setup-header span {
    font-size: 10.5px;
  }
  .po-setup-field label {
    font-size: 10.5px;
  }
  .po-setup-field input {
    font-size: 12px;
    padding: 7px 10px;
  }
  .po-setup-note {
    font-size: 10.5px;
    padding: 8px 10px;
  }
  .po-setup-save,
  .po-setup-cancel {
    font-size: 12px;
    padding: 7px 14px;
  }
  .po-tx-section {
    margin-top: 16px;
    border-radius: 12px;
  }
  .po-tx-header h3 {
    font-size: 12.5px;
  }
  .po-tx-filters {
    gap: 2px;
  }
  .po-tx-filter {
    font-size: 10.5px;
    padding: 4px 8px;
  }
  .po-tx-empty {
    padding: 20px 14px;
  }
  .po-tx-empty svg {
    width: 22px;
    height: 22px;
  }
  .po-tx-empty strong {
    font-size: 12px;
  }
  .po-tx-empty p {
    font-size: 10.5px;
  }
  .po-tx-row {
    padding: 9px 12px;
  }
  .po-tx-info strong {
    font-size: 12px;
  }
  .po-tx-info span {
    font-size: 10.5px;
  }
  .po-tx-amount {
    font-size: 12.5px;
  }
  .po-tx-status {
    font-size: 9.5px;
    padding: 2px 6px;
  }
  .po-tx-date {
    font-size: 10.5px;
  }
}

/* ---- Shortcuts Strip (Sessions tab) ---- */
/* Shortcuts strip — collapsible accordion */
.shortcuts-strip {
  margin: 0 0 2px;
  background: var(--canvas-50);
  border-bottom: 1px solid var(--canvas-150);
  font-family: var(--font);
}
.shortcuts-strip-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 18px;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font);
  color: var(--canvas-500);
  transition: background 0.15s ease;
}
.shortcuts-strip-toggle:hover {
  background: rgba(0, 0, 0, 0.02);
}
.shortcuts-strip-toggle-left {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
}
.shortcuts-strip-badge {
  font-size: 10.5px;
  font-weight: 500;
  color: var(--canvas-400);
  background: var(--canvas-100);
  padding: 2px 8px;
  border-radius: var(--radius-full, 50px);
}
.shortcuts-strip-chevron {
  transition: transform 0.25s ease;
  color: var(--canvas-400);
  flex-shrink: 0;
}
.shortcuts-strip.collapsed .shortcuts-strip-chevron {
  transform: rotate(0deg);
}
.shortcuts-strip:not(.collapsed) .shortcuts-strip-chevron {
  transform: rotate(180deg);
}
.shortcuts-strip-body {
  overflow: hidden;
  max-height: 200px;
  padding: 0 18px 12px;
  transition:
    max-height 0.3s ease,
    padding 0.3s ease,
    opacity 0.25s ease;
  opacity: 1;
}
.shortcuts-strip.collapsed .shortcuts-strip-body {
  max-height: 0;
  padding: 0 18px;
  opacity: 0;
}
.shortcuts-strip-hint {
  font-size: 11px;
  font-weight: 400;
  color: var(--canvas-400);
  margin-bottom: 8px;
}
.shortcuts-strip-items {
  display: flex;
  align-items: stretch;
  gap: 8px;
}
.shortcuts-strip-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 6px;
  background: var(--white);
  border: 1px solid var(--canvas-150);
  border-radius: 8px;
  transition: border-color 0.15s ease;
}
.shortcuts-strip-item:hover {
  border-color: var(--canvas-300);
}
.shortcuts-strip-keys {
  display: flex;
  align-items: center;
  gap: 3px;
}
.shortcuts-strip-keys kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 22px;
  padding: 0 6px;
  font-family: var(--font);
  font-size: 12px;
  font-weight: 700;
  color: var(--canvas-800);
  background: var(--canvas-50);
  border: 1px solid var(--canvas-200);
  border-radius: 5px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.shortcuts-strip-or {
  font-size: 10px;
  color: var(--canvas-400);
  font-weight: 500;
}
.shortcuts-strip-action {
  font-size: 11px;
  color: var(--canvas-500);
  font-weight: 500;
  white-space: nowrap;
}
/* Dark theme */
[data-theme='dark'] .shortcuts-strip {
  background: var(--canvas-100);
  border-bottom-color: var(--canvas-300);
}
[data-theme='dark'] .shortcuts-strip-toggle:hover {
  background: rgba(255, 255, 255, 0.03);
}
[data-theme='dark'] .shortcuts-strip-badge {
  background: var(--canvas-200);
  color: var(--canvas-500);
}
[data-theme='dark'] .shortcuts-strip-item {
  background: var(--canvas-50);
  border-color: var(--canvas-200);
}
[data-theme='dark'] .shortcuts-strip-item:hover {
  border-color: var(--canvas-400);
}
[data-theme='dark'] .shortcuts-strip-keys kbd {
  background: var(--canvas-200);
  border-color: var(--canvas-300);
  color: var(--text-secondary);
}

/* Shortcuts strip — responsive */
@media (min-width: 1200px) {
  .shortcuts-strip-toggle {
    padding: 12px 24px;
  }
  .shortcuts-strip-body {
    padding: 0 24px 14px;
  }
  .shortcuts-strip.collapsed .shortcuts-strip-body {
    padding: 0 24px;
  }
  .shortcuts-strip-items {
    gap: 10px;
  }
  .shortcuts-strip-item {
    padding: 10px 8px;
  }
}
@media (max-width: 768px) {
  .shortcuts-strip-toggle {
    padding: 8px 14px;
  }
  .shortcuts-strip-body {
    padding: 0 14px 10px;
  }
  .shortcuts-strip.collapsed .shortcuts-strip-body {
    padding: 0 14px;
  }
  .shortcuts-strip-hint {
    display: none;
  }
  .shortcuts-strip-items {
    gap: 6px;
  }
  .shortcuts-strip-item {
    padding: 6px 4px;
  }
  .shortcuts-strip-keys kbd {
    min-width: 20px;
    height: 20px;
    font-size: 10.5px;
    padding: 0 4px;
  }
  .shortcuts-strip-action {
    font-size: 10px;
  }
}
/* ── First-session tour banner ───────────────────────────────────────────── */
.session-tour-banner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  background: var(--bg-card);
  border: 1px solid var(--border-soft);
  border-left: 3px solid var(--terra);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 18px;
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.5;
}
[data-theme='dark'] .session-tour-banner {
  background: var(--bg-elevated);
}
.session-tour-banner-content {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex: 1;
  min-width: 0;
}
.session-tour-banner-icon {
  flex-shrink: 0;
  margin-top: 1px;
  color: var(--terra);
}
.session-tour-banner-text {
  flex: 1;
  min-width: 0;
}
.session-tour-banner-text strong {
  color: var(--text-primary);
  display: block;
  margin-bottom: 4px;
}
.session-tour-steps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
}
.session-tour-step {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.session-tour-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: var(--terra);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  flex-shrink: 0;
}
.session-tour-link {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--terra);
  font-size: 13px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.session-tour-link:hover {
  opacity: 0.8;
}
.session-tour-sep {
  color: var(--canvas-400);
  flex-shrink: 0;
}
.session-tour-banner-dismiss {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 2px;
  cursor: pointer;
  color: var(--text-muted);
  border-radius: 4px;
  line-height: 1;
  margin-top: 1px;
}
.session-tour-banner-dismiss:hover {
  color: var(--text-secondary);
  background: var(--canvas-200);
}

@media (max-width: 480px) {
  .shortcuts-strip {
    display: none;
  }
  /* Creator Doc Modal — extra compact */
  .creator-doc-modal {
    border-radius: 12px;
    max-height: 92vh;
  }
  .cdm-header {
    padding: 6px 8px;
  }
  .cdm-tab {
    font-size: 11px;
    padding: 5px 8px;
    gap: 4px;
    border-radius: 6px;
  }
  .cdm-tab svg {
    width: 11px;
    height: 11px;
  }
  .cdm-close {
    width: 24px;
    height: 24px;
    font-size: 17px;
  }
  .cdm-content {
    padding: 0 12px 16px;
  }
  .cdm-hero {
    padding: 12px 0 10px;
  }
  .cdm-hero-badge {
    font-size: 9.5px;
    padding: 2px 8px;
  }
  .cdm-hero h1 {
    font-size: 16px;
  }
  .cdm-hero p {
    font-size: 11px;
  }
  .cdm-section {
    margin-bottom: 14px;
  }
  .cdm-section h2 {
    font-size: 13px;
    margin-bottom: 6px;
    padding-bottom: 5px;
  }
  .cdm-section-desc {
    font-size: 11px;
    margin-bottom: 8px;
  }
  .cdm-flow-step {
    padding: 10px;
  }
  .cdm-flow-num {
    width: 24px;
    height: 24px;
    font-size: 12px;
  }
  .cdm-flow-step strong {
    font-size: 11px;
  }
  .cdm-flow-step span {
    font-size: 10px;
  }
  .cdm-explain {
    padding: 8px 10px;
  }
  .cdm-explain-label {
    font-size: 10.5px;
  }
  .cdm-explain p {
    font-size: 10.5px;
  }
  .cdm-tier-card {
    padding: 10px 6px;
  }
  .cdm-tier-icon {
    width: 30px;
    height: 30px;
  }
  .cdm-tier-rate {
    font-size: 14.5px;
  }
  .cdm-tier-card strong {
    font-size: 10.5px;
  }
  .cdm-tier-card span {
    font-size: 9.5px;
  }
  .cdm-tip {
    padding: 8px 10px;
    font-size: 10.5px;
  }
  .cdm-tip-num {
    font-size: 10.5px;
    min-width: 20px;
  }
  .cdm-faq-item summary {
    font-size: 11px;
    padding: 8px 10px;
  }
  .cdm-faq-item p {
    font-size: 10.5px;
    padding: 0 10px 8px;
  }
  .cdm-legal p {
    font-size: 11px;
    margin-bottom: 5px;
  }
  .cdm-legal li {
    font-size: 11px;
  }
  /* Payouts — extra compact */
  .po-balance-card > div {
    padding: 8px 12px;
  }
  .po-bal-label {
    font-size: 9.5px;
  }
  .po-bal-amount {
    font-size: 14.5px;
  }
  .po-bal-muted {
    font-size: 12.5px;
  }
  .po-request-btn {
    font-size: 11px;
    padding: 6px 14px;
  }
  .po-info-chip {
    font-size: 10px;
    padding: 3px 7px;
  }
  .po-method-card {
    padding: 8px;
  }
  .po-method-card svg {
    width: 20px;
    height: 20px;
  }
  .po-method-card strong {
    font-size: 10.5px;
  }
  .po-method-card > span {
    font-size: 9.5px;
  }
  .po-tx-header h3 {
    font-size: 12px;
  }
  .po-tx-filter {
    font-size: 10px;
    padding: 3px 7px;
  }
  .po-tx-row {
    padding: 8px 10px;
  }
  .po-tx-info strong {
    font-size: 11px;
  }
  .po-tx-info span {
    font-size: 10px;
  }
  .po-tx-amount {
    font-size: 12px;
  }
  .po-tx-status {
    font-size: 9px;
  }
  .po-tx-date {
    font-size: 10px;
  }
}

/* ── #18: Notification Center ── */
.notif-bell {
  position: relative;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--canvas-500);
  padding: 4px;
  border-radius: 6px;
  transition:
    color 0.2s,
    background 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.notif-bell:hover {
  color: var(--canvas-800);
  background: var(--canvas-200);
}
.notif-badge {
  position: absolute;
  top: -2px;
  right: -4px;
  background: var(--terra-500);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  min-width: 14px;
  height: 14px;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  line-height: 1;
}
/* ── Notification Panel — enterprise grade popover ── */
/* ── Notification Panel — full-height right-side drawer (enterprise-style) ── */
.notif-panel {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 320px;
  background: var(--canvas-50, #fdfaf7);
  border-left: 1px solid rgba(0, 0, 0, 0.07);
  border-radius: 0;
  z-index: 501;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* Hidden: slide off-screen to the right */
  transform: translateX(100%);
  pointer-events: none;
  visibility: hidden;
  transition:
    transform 280ms cubic-bezier(0.55, 0, 1, 0.45),
    visibility 0ms linear 280ms;
}
[data-theme='dark'] .notif-panel {
  background: #1e1a17;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: -4px 0 40px rgba(0, 0, 0, 0.45);
}
.notif-panel.notif-open {
  transform: translateX(0);
  pointer-events: auto;
  visibility: visible;
  box-shadow: -4px 0 32px rgba(0, 0, 0, 0.13);
  transition:
    transform 340ms cubic-bezier(0.25, 0.46, 0.45, 0.94),
    visibility 0ms linear 0ms;
}
[data-theme='dark'] .notif-panel.notif-open {
  box-shadow: -4px 0 40px rgba(0, 0, 0, 0.45);
}

/* Header */
.notif-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--canvas-200);
  flex-shrink: 0;
}
.notif-panel-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--canvas-800);
  letter-spacing: 0;
}
.notif-head-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.notif-clear-all-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 11px;
  color: var(--canvas-400);
  padding: 4px 6px;
  border-radius: 6px;
  transition:
    color 0.15s,
    background 0.15s;
}
.notif-clear-all-btn:hover {
  color: var(--terra);
  background: var(--terra-50);
}
.notif-panel-close-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  cursor: pointer;
  border-radius: 8px;
  color: var(--canvas-400);
  transition:
    color 0.15s,
    background 0.15s;
}
.notif-panel-close-btn:hover {
  background: transparent;
  color: var(--terra);
}
[data-theme='dark'] .notif-panel-close-btn:hover {
  background: transparent;
  color: #e07c58;
}

/* Body */
.notif-panel-body {
  overflow-y: auto;
  flex: 1;
}
/* Empty state */
.notif-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 44px 20px;
  gap: 10px;
  color: var(--canvas-400);
}
.notif-empty-state p {
  font-size: 12px;
  margin: 0;
  color: var(--canvas-400);
}
/* JS-rendered fallback empty text */
.notif-empty {
  text-align: center;
  color: var(--canvas-400);
  font-size: 12px;
  padding: 44px 20px;
  margin: 0;
}

/* Notification items */
.notif-item {
  display: flex;
  gap: 10px;
  padding: 11px 16px;
  border-bottom: 1px solid var(--canvas-150, var(--canvas-200));
  cursor: pointer;
  transition: background 0.15s;
  position: relative;
}
.notif-item:last-child {
  border-bottom: none;
}
.notif-item:hover {
  background: var(--canvas-100, var(--canvas-200));
}
.notif-item.unread {
  background: var(--terra-50);
}
.notif-item.unread::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--terra);
  border-radius: 0 2px 2px 0;
}
.notif-item.unread:hover {
  background: rgba(224, 124, 88, 0.1);
}
.notif-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--terra-500);
  flex-shrink: 0;
  margin-top: 4px;
}
.notif-item:not(.unread) .notif-dot {
  background: transparent;
}
.notif-content {
  flex: 1;
  min-width: 0;
}
.notif-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--canvas-800);
  margin: 0;
}
.notif-msg {
  font-size: 11px;
  color: var(--canvas-500);
  margin: 2px 0 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.notif-time {
  font-size: 10px;
  color: var(--canvas-400);
  margin-top: 3px;
}

/* Mobile topbar: right-align bell button */
.studio-mobile-topbar .topbar-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
/* Topbar bell — larger touch target, NO background card */
.notif-bell-topbar {
  width: 38px;
  height: 38px;
  padding: 8px !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--canvas-600) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
}
.notif-bell-topbar:hover {
  color: var(--terra) !important;
  background: transparent !important;
}
/* Topbar theme toggle — plain icon, NO background, NO border, NO box */
.topbar-theme-btn,
.studio-mobile-topbar .topbar-theme-btn {
  width: 38px;
  height: 38px;
  padding: 8px;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--canvas-600) !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.topbar-theme-btn:hover,
.topbar-theme-btn:focus,
.topbar-theme-btn:focus-visible,
.topbar-theme-btn:active {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  color: var(--terra) !important;
}
[data-theme='dark'] .topbar-theme-btn,
[data-theme='dark'] .notif-bell-topbar {
  color: rgba(255, 255, 255, 0.65) !important;
  background: transparent !important;
}
[data-theme='dark'] .topbar-theme-btn:hover,
[data-theme='dark'] .notif-bell-topbar:hover {
  color: #ffffff !important;
  background: transparent !important;
}

/* ── Notification backdrop overlay — all viewports ── */
.notif-drawer-overlay {
  display: block;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px) saturate(0.8);
  -webkit-backdrop-filter: blur(4px) saturate(0.8);
  z-index: 500;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 280ms ease-out,
    visibility 0ms linear 280ms;
}
.notif-drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transition:
    opacity 280ms ease-out,
    visibility 0ms linear 0ms;
}

/* Mobile: narrow width, keep full height from top */
@media (max-width: 767px) {
  .notif-panel {
    width: min(300px, calc(100vw - 40px));
  }
  .notif-panel-head {
    border-bottom: 2px solid var(--terra);
  }
}

/* Body scroll lock while notif drawer open */
body.notif-drawer-open {
  overflow: hidden;
}

/* ============================================
   Atlas Action Cards & Canvas Overlay
   ============================================ */

/* ── Inline action card (rendered in chat) ── */
.atlas-action-card {
  margin: 8px 0 4px 28px;
  background: var(--canvas-50, #f7f8fa);
  border: 1px solid var(--canvas-200, #e2e5ec);
  border-radius: 12px;
  overflow: hidden;
  max-width: 340px;
  animation: aacFadeIn 0.22s ease;
}
@keyframes aacFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.aac-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px 10px;
  border-bottom: 1px solid var(--canvas-150, #eaedf3);
}

.aac-icon-wrap {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

.aac-header-text {
  flex: 1;
  min-width: 0;
}

.aac-title {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--canvas-800, #1a1d2e);
  line-height: 1.2;
}

.aac-subtitle {
  font-size: 11px;
  color: var(--canvas-500, #7a7d94);
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.aac-expand-btn {
  width: 26px;
  height: 26px;
  border: 1px solid var(--canvas-200, #e2e5ec);
  border-radius: 6px;
  background: transparent;
  color: var(--canvas-500);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition:
    background 0.15s,
    color 0.15s;
}
.aac-expand-btn:hover {
  background: var(--canvas-100);
  color: var(--canvas-800);
}

.aac-session-badge {
  margin: 8px 14px 4px;
  display: inline-block;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--terra, #43c59e);
  background: var(--terra-10, #43c59e18);
  border-radius: 20px;
  padding: 2px 10px;
  letter-spacing: 0.02em;
}

.aac-actions {
  display: flex;
  gap: 8px;
  padding: 10px 14px 12px;
  flex-wrap: wrap;
}

.aac-primary-btn {
  flex: 1;
  min-width: 100px;
  padding: 7px 12px;
  background: var(--terra, #43c59e);
  color: #fff;
  border: none;
  border-radius: 7px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition:
    opacity 0.15s,
    transform 0.1s;
  white-space: nowrap;
}
.aac-primary-btn:hover {
  opacity: 0.88;
  transform: translateY(-1px);
}
.aac-primary-btn:active {
  transform: translateY(0);
}

.aac-secondary-btn {
  padding: 7px 12px;
  background: transparent;
  color: var(--canvas-600, #5a5d74);
  border: 1px solid var(--canvas-200, #e2e5ec);
  border-radius: 7px;
  font-size: 11.5px;
  font-weight: 500;
  cursor: pointer;
  transition:
    background 0.15s,
    color 0.15s;
  white-space: nowrap;
}
.aac-secondary-btn:hover {
  background: var(--canvas-100);
  color: var(--canvas-800);
}

/* Dark theme */
.dark .atlas-action-card {
  background: var(--canvas-100, #1e2130);
  border-color: var(--canvas-200, #2a2d3e);
}
.dark .aac-header {
  border-bottom-color: var(--canvas-200, #2a2d3e);
}
.dark .aac-title {
  color: var(--canvas-800, #e8eaf6);
}
.dark .aac-subtitle {
  color: var(--canvas-500, #7a7d94);
}
.dark .aac-expand-btn {
  border-color: var(--canvas-200);
}
.dark .aac-expand-btn:hover {
  background: var(--canvas-150, #252838);
}
.dark .aac-secondary-btn {
  border-color: var(--canvas-200);
  color: var(--canvas-500);
}
.dark .aac-secondary-btn:hover {
  background: var(--canvas-150);
  color: var(--canvas-800);
}

/* ── Canvas overlay (expand view) ── */
.atlas-canvas-overlay {
  position: fixed;
  inset: 0;
  z-index: 9500;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  animation: canvasOverlayIn 0.2s ease;
}
@keyframes canvasOverlayIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.atlas-canvas-panel {
  width: min(72vw, 860px);
  height: 100%;
  background: var(--bg-card);
  display: flex;
  flex-direction: column;
  box-shadow: -4px 0 32px rgba(0, 0, 0, 0.18);
  animation: canvasPanelIn 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes canvasPanelIn {
  from {
    transform: translateX(60px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.atlas-canvas-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid var(--canvas-150, #eaedf3);
  flex-shrink: 0;
  background: var(--canvas-50, #f7f8fa);
}

.atlas-canvas-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.atlas-canvas-icon {
  font-size: 18px;
}

.atlas-canvas-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--canvas-800, #1a1d2e);
}

.atlas-canvas-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.atlas-canvas-open-btn {
  padding: 5px 12px;
  background: var(--terra, #43c59e);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.atlas-canvas-open-btn:hover {
  opacity: 0.85;
}

.atlas-canvas-close-btn {
  width: 30px;
  height: 30px;
  border: none;
  border-radius: 7px;
  background: transparent;
  color: var(--canvas-500);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}
.atlas-canvas-close-btn:hover {
  background: transparent;
  color: var(--canvas-800);
}

.atlas-canvas-body {
  flex: 1;
  overflow: auto;
  padding: 0;
  position: relative;
}

.atlas-canvas-loading,
.atlas-canvas-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 13px;
  color: var(--canvas-400, #a0a3b8);
}

/* Dark theme canvas */
.dark .atlas-canvas-panel {
  background: var(--canvas-50, #16192b);
}
.dark .atlas-canvas-header {
  background: var(--canvas-100, #1e2130);
  border-color: var(--canvas-200, #2a2d3e);
}
.dark .atlas-canvas-title {
  color: var(--canvas-800, #e8eaf6);
}
.dark .atlas-canvas-close-btn {
  border-color: var(--canvas-200);
}
.dark .atlas-canvas-close-btn:hover {
  background: var(--canvas-150);
}

@media (max-width: 768px) {
  .atlas-canvas-panel {
    width: 100vw;
  }
  .atlas-action-card {
    margin-left: 0;
    max-width: 100%;
  }
}

/* ── Atlas message markdown rendering ── */
.ai-content p {
  margin: 0 0 8px;
  line-height: 1.6;
}
.ai-content p:last-child {
  margin-bottom: 0;
}
.ai-content h3.atlas-md-h2 {
  font-size: 13px;
  font-weight: 700;
  margin: 12px 0 4px;
  color: var(--canvas-800);
}
.ai-content h4.atlas-md-h3 {
  font-size: 12px;
  font-weight: 700;
  margin: 10px 0 4px;
  color: var(--canvas-700);
}
.ai-content strong {
  font-weight: 700;
}
.ai-content em {
  font-style: italic;
}
.ai-content ul.atlas-md-ul,
.ai-content ol.atlas-md-ol {
  margin: 6px 0 8px 16px;
  padding: 0;
}
.ai-content ul.atlas-md-ul li,
.ai-content ol.atlas-md-ol li {
  margin-bottom: 3px;
  line-height: 1.55;
  font-size: inherit;
}
.ai-content ul.atlas-md-ul {
  list-style: disc;
}
.ai-content ol.atlas-md-ol {
  list-style: decimal;
}
.ai-content hr.atlas-md-hr {
  border: none;
  border-top: 1px solid var(--canvas-200);
  margin: 10px 0;
}
.ai-content code.atlas-inline-code {
  background: var(--canvas-100);
  border-radius: 4px;
  padding: 1px 5px;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 0.85em;
  color: var(--terra);
}
.ai-content pre.atlas-code-block {
  background: var(--canvas-100);
  border: 1px solid var(--canvas-200);
  border-radius: 8px;
  padding: 12px 14px;
  margin: 8px 0;
  overflow-x: auto;
  font-family: 'JetBrains Mono', 'Fira Code', monospace;
  font-size: 12px;
  line-height: 1.5;
}
.ai-content pre.atlas-code-block code {
  background: none;
  padding: 0;
  color: inherit;
  font-size: inherit;
}
.ai-content .atlas-arrow {
  color: var(--terra);
  font-weight: 600;
}
.dark .ai-content code.atlas-inline-code {
  background: var(--canvas-150);
}
.dark .ai-content pre.atlas-code-block {
  background: var(--canvas-100);
  border-color: var(--canvas-200);
}

/* ── Atlas topbar: mobile/desktop visibility helpers ── */
.atlas-hide-on-mobile {
  display: flex;
}
.atlas-show-on-mobile {
  display: none;
}
body.is-capacitor .atlas-hide-on-mobile {
  display: none !important;
}
body.is-capacitor .atlas-show-on-mobile {
  display: flex !important;
}
/* Show back button + hide atom nav on mobile web when atlas is fullscreen */
@media (max-width: 767px) {
  .studio-layout.atlas-mode .atlas-show-on-mobile {
    display: flex !important;
  }
  .studio-layout.atlas-mode .atlas-hide-on-mobile {
    display: none !important;
  }
  /* History toggle always visible on mobile */
  .studio-layout.atlas-mode .atlas-history-toggle {
    display: flex !important;
  }
}

/* Atlas back chevron — flat icon button, no card or border, sits inline
 * with the model dropdown / new-chat / theme / bell row. Subtle hover-only
 * animation: a small left-shift to hint "go back" plus terra accent. */
.atlas-back-btn,
.atlas-topbar .atlas-back-btn,
.atlas-topbar-left .atlas-back-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  padding: 0 !important;
  margin: 0 8px 0 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 8px !important;
  color: var(--text-secondary, #a0a09e) !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transform: none !important;
  transition: color 0.18s var(--ease, ease), transform 0.18s var(--ease, ease), background 0.18s var(--ease, ease) !important;
}
.atlas-back-btn:hover,
.atlas-topbar .atlas-back-btn:hover,
.atlas-topbar-left .atlas-back-btn:hover {
  background: transparent !important;
  color: var(--terra, #d97757) !important;
  transform: translateX(-2px) !important;
}
[data-theme='dark'] .atlas-back-btn,
[data-theme='dark'] .atlas-topbar .atlas-back-btn,
[data-theme='dark'] .atlas-topbar-left .atlas-back-btn {
  background: transparent !important;
  border: none !important;
}
[data-theme='dark'] .atlas-back-btn:hover {
  background: transparent !important;
}

/* ── Reduced motion — respect user accessibility preference ── */
@media (prefers-reduced-motion: reduce) {
  .sidebar,
  .sidebar-mobile-overlay,
  .hb-line {
    transition-duration: 120ms !important;
    transition-timing-function: linear !important;
  }
  .sidebar {
    transform: translateX(-100%) !important;
  }
  .sidebar.mobile-open {
    transform: translateX(0) !important;
  }
}

/* ============================================
   Creator Approval Celebration
   ============================================ */
.confetti-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  overflow: hidden;
  pointer-events: auto;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.confetti-particle {
  position: absolute;
  top: -20px;
  will-change: transform, opacity;
  animation: confettiFall var(--cf-dur, 3s) var(--cf-delay, 0s) ease-out forwards;
  opacity: 0;
}

@keyframes confettiFall {
  0% {
    transform: translateY(-10vh) translateX(0) rotate(0deg);
    opacity: 1;
  }
  15% {
    opacity: 1;
  }
  85% {
    opacity: 0.8;
  }
  100% {
    transform: translateY(110vh) translateX(var(--cf-drift, 40px)) rotate(var(--cf-rot, 720deg));
    opacity: 0;
  }
}

.celebration-card {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  opacity: 0;
  animation: celebrationCardIn 0.5s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(24px) saturate(1.4);
  -webkit-backdrop-filter: blur(24px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 20px;
  padding: 48px 44px 40px;
  text-align: center;
  color: #fff;
  max-width: 420px;
  width: 90vw;
  box-shadow:
    0 24px 80px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.08) inset;
  z-index: 2;
}

@keyframes celebrationCardIn {
  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

.celebration-card .cc-emoji {
  font-size: 52px;
  line-height: 1;
  margin-bottom: 12px;
}

.celebration-card h2 {
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 8px;
  letter-spacing: -0.3px;
  color: #fff;
}

.celebration-card .cc-subtitle {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.78);
  margin: 0 0 28px;
  line-height: 1.5;
}

.celebration-card .cc-code-wrap {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 28px;
}

.celebration-card .cc-code-label {
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 6px;
}

.celebration-card .cc-code {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #ffd700;
  font-family: 'SF Mono', 'Fira Code', monospace;
}

.celebration-card .cc-get-started {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 32px;
  background: linear-gradient(135deg, #e8634a, #d4512f);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition:
    transform 0.15s,
    box-shadow 0.15s;
  box-shadow: 0 4px 16px rgba(232, 99, 74, 0.35);
}

.celebration-card .cc-get-started:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 24px rgba(232, 99, 74, 0.45);
}

.celebration-card .cc-get-started:active {
  transform: translateY(0);
}

.confetti-overlay.cc-fade-out {
  animation: ccFadeOut 0.4s ease forwards;
}

@keyframes ccFadeOut {
  to {
    opacity: 0;
  }
}
