/* NotForgotten - Premium CSS Stylesheet */

:root {
  --bg-primary: #fefdfb;      /* Warm white / soft ivory */
  --bg-secondary: #f6f2eb;    /* Calming sand / beige */
  --bg-tertiary: #ede7dc;     /* Darker sand for card dividers */
  --text-main: #3c322e;       /* Deep charcoal warm brown */
  --text-muted: #78655e;      /* Soft clay / slate brown */
  
  --accent-gold: #c5a059;     /* Warm satin gold */
  --accent-gold-light: rgba(197, 160, 89, 0.12);
  --accent-gold-dark: #aa8641;
  
  --accent-rose: #dca392;     /* Warm emotional peach rose */
  --accent-rose-light: rgba(220, 163, 146, 0.12);
  --accent-rose-dark: #c28876;
  
  --accent-sage: #809689;     /* Soft tranquil sage green */
  --accent-sage-light: rgba(128, 150, 137, 0.12);
  --accent-sage-dark: #677d70;

  --accent-red: #c66b5c;      /* Soft warning red */
  --accent-red-light: rgba(198, 107, 92, 0.1);
  --accent-red-dark: #ad5446;

  --border-color: #ebdcd0;    /* Warm beige border */
  --border-color-light: #f5ece5;
  --card-shadow: 0 10px 30px rgba(60, 50, 46, 0.04);
  --card-shadow-hover: 0 20px 40px rgba(60, 50, 46, 0.08);
  --transition-speed: 0.3s;
  
  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Envelope Letter Opening Ceremony Animation variables */
  --letter-lift-y: -330px;
  --letter-open-y: -120px;
  --letter-open-height: 580px;
}

/* Base Styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-sans);
  background-color: var(--bg-secondary);
  color: var(--text-main);
  line-height: 1.6;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

/* Typography */
h1, h2, h3, h4, .logo-text, .letter-title {
  font-family: var(--font-serif);
  font-weight: 600;
}

p {
  font-weight: 400;
  font-size: 0.95rem;
}

/* Utilities */
.hidden {
  display: none !important;
}

.hidden-element {
  display: none !important;
}

.text-center {
  text-align: center;
}

.italic {
  font-style: italic;
}

/* Layout Elements */
.app-header {
  background-color: var(--bg-primary);
  border-bottom: 1px solid var(--border-color);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.015);
}

.header-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo-group {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  cursor: pointer;
}

.logo-icon {
  width: 28px;
  height: 28px;
  color: var(--accent-gold);
}

.logo-text {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.5px;
  color: var(--text-main);
}

.nav-modes {
  display: flex;
  gap: 0.8rem;
}

@media (max-width: 768px) {
  .header-container {
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
  }
  .nav-modes {
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
  }
}

.nav-btn {
  background: transparent;
  border: 1px solid transparent;
  border-radius: 20px;
  padding: 0.5rem 1.1rem;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  transition: all var(--transition-speed) ease;
}

.nav-btn-icon {
  width: 15px;
  height: 15px;
}

.nav-btn:hover {
  background-color: var(--bg-secondary);
  color: var(--text-main);
}

.nav-btn.active {
  background-color: var(--accent-gold-light);
  border-color: var(--accent-gold);
  color: var(--accent-gold-dark);
}

.badge {
  background-color: var(--accent-rose);
  color: white;
  border-radius: 10px;
  padding: 1px 7px;
  font-size: 0.75rem;
  font-weight: 700;
}

/* Toast Banner */
.toast-banner {
  background-color: var(--accent-sage-dark);
  color: white;
  padding: 0.75rem 2rem;
  position: relative;
  z-index: 99;
  animation: slideDown 0.4s ease-out;
}

.toast-content {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
}

.toast-close {
  background: none;
  border: none;
  color: white;
  font-size: 1.4rem;
  cursor: pointer;
  line-height: 1;
}

/* Main Container */
.main-content {
  flex: 1;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 2.5rem 2rem;
}

/* SECTION 1: LANDING */
.hero-container {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 4rem;
  align-items: center;
  padding: 2rem 0 4rem;
}

@media (max-width: 768px) {
  .hero-container {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

.hero-text-block {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.hero-tagline {
  color: var(--accent-gold-dark);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 2px;
}

.hero-title {
  font-size: 3.2rem;
  line-height: 1.15;
  color: var(--text-main);
}

.hero-subtitle {
  font-size: 1.1rem;
  color: var(--text-muted);
  max-width: 580px;
}

.hero-actions {
  display: flex;
  gap: 1rem;
  margin-top: 1rem;
}

/* Buttons */
.btn {
  border-radius: 25px;
  font-family: var(--font-sans);
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-speed) ease;
  text-decoration: none;
}

.btn-lg {
  padding: 0.9rem 1.8rem;
  font-size: 1rem;
}

.btn-md {
  padding: 0.65rem 1.4rem;
  font-size: 0.9rem;
}

.btn-sm {
  padding: 0.45rem 1rem;
  font-size: 0.8rem;
}

.btn-xs {
  padding: 0.25rem 0.6rem;
  font-size: 0.75rem;
  border-radius: 12px;
}

.btn-primary {
  background-color: var(--accent-gold);
  border: 1px solid var(--accent-gold);
  color: white;
}

.btn-primary:hover {
  background-color: var(--accent-gold-dark);
  border-color: var(--accent-gold-dark);
  box-shadow: 0 4px 15px rgba(197, 160, 89, 0.2);
}

.btn-secondary {
  background-color: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-main);
}

.btn-secondary:hover {
  background-color: var(--bg-primary);
  border-color: var(--text-muted);
}

/* Heirloom Card (Hero Mockup) */
.heirloom-card {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 2.2rem;
  box-shadow: var(--card-shadow);
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  position: relative;
  background-image: radial-gradient(var(--bg-secondary) 1px, transparent 0);
  background-size: 24px 24px;
}

.heirloom-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.heirloom-header svg {
  width: 16px;
  height: 16px;
  color: var(--accent-gold);
}

.heirloom-body h3 {
  font-size: 1.4rem;
  margin-bottom: 0.8rem;
  color: var(--text-main);
}

.heirloom-body p {
  font-family: var(--font-serif);
  font-size: 1.05rem;
  font-style: italic;
  color: var(--text-muted);
  border-left: 2px solid var(--accent-rose);
  padding-left: 1rem;
  margin-bottom: 1.2rem;
}

.heirloom-gift-tag {
  background-color: var(--accent-rose-light);
  border: 1px dashed var(--accent-rose);
  border-radius: 8px;
  padding: 0.6rem 1rem;
  font-size: 0.8rem;
  color: var(--accent-rose-dark);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.heirloom-gift-tag svg {
  width: 15px;
  height: 15px;
}

.heirloom-footer {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  border-top: 1px solid var(--border-color);
  padding-top: 1rem;
  color: var(--text-muted);
}

/* Features Grid */
.features-section {
  padding: 4rem 0 2rem;
  border-top: 1px solid var(--border-color);
}

.section-title {
  font-size: 2.2rem;
  color: var(--text-main);
  margin-bottom: 3rem;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

@media (max-width: 768px) {
  .features-grid {
    grid-template-columns: 1fr;
  }
}

.feature-card {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color-light);
  border-radius: 12px;
  padding: 2rem;
  box-shadow: var(--card-shadow);
  text-align: center;
  transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
}

.feature-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--card-shadow-hover);
}

.feature-icon-wrapper {
  width: 50px;
  height: 50px;
  background-color: var(--accent-gold-light);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-gold-dark);
  margin: 0 auto 1.5rem;
}

.feature-icon-wrapper svg {
  width: 24px;
  height: 24px;
}

.feature-card h3 {
  font-size: 1.25rem;
  margin-bottom: 0.8rem;
  color: var(--text-main);
}

.feature-card p {
  color: var(--text-muted);
  font-size: 0.88rem;
}

.simulation-guide-card {
  background-color: var(--accent-sage-light);
  border: 1px solid var(--accent-sage);
  border-radius: 12px;
  padding: 1.8rem;
  margin-top: 3rem;
  color: var(--text-main);
}

.simulation-guide-card h3 {
  color: var(--accent-sage-dark);
  margin-bottom: 0.8rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.simulation-guide-card ol {
  margin-left: 1.5rem;
  margin-top: 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

/* SECTION 2: CREATOR WORKSPACE */
.creator-container {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 2.5rem;
  align-items: start;
}

@media (max-width: 900px) {
  .creator-container {
    grid-template-columns: 1fr;
  }
}

.creator-sidebar {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 1.5rem;
  box-shadow: var(--card-shadow);
}

.creator-profile {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 1.2rem;
  margin-bottom: 1.2rem;
}

.creator-profile .avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
}

.creator-profile .avatar svg {
  width: 22px;
  height: 22px;
}

.creator-profile .info h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-main);
}

.creator-profile .info p {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.sidebar-btn {
  background: none;
  border: none;
  text-align: left;
  padding: 0.7rem 0.9rem;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 0.88rem;
  color: var(--text-muted);
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  transition: all var(--transition-speed) ease;
}

.sidebar-btn:hover {
  background-color: var(--bg-secondary);
  color: var(--text-main);
}

.sidebar-btn.active {
  background-color: var(--accent-gold-light);
  color: var(--accent-gold-dark);
  font-weight: 600;
}

.sb-icon {
  width: 17px;
  height: 17px;
}

/* Creator Main Panels */
.creator-main-panel {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 2.5rem;
  box-shadow: var(--card-shadow);
  min-height: 480px;
}

.panel-title {
  font-size: 1.8rem;
  color: var(--text-main);
  margin-bottom: 0.5rem;
}

.panel-desc {
  font-size: 0.9rem;
  color: var(--text-muted);
  margin-bottom: 1.5rem;
}

/* Overview Tab / Stats */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

@media (max-width: 600px) {
  .stats-grid {
    grid-template-columns: 1fr;
  }
}

.stat-card {
  border: 1px solid var(--border-color-light);
  border-radius: 10px;
  padding: 1.2rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  background-color: var(--bg-primary);
  box-shadow: 0 4px 12px rgba(0,0,0,0.005);
}

.stat-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stat-icon svg {
  width: 20px;
  height: 20px;
}

.red-light {
  background-color: var(--accent-rose-light);
  color: var(--accent-rose-dark);
}

.green-light {
  background-color: var(--accent-sage-light);
  color: var(--accent-sage-dark);
}

.gold-light {
  background-color: var(--accent-gold-light);
  color: var(--accent-gold-dark);
}

.stat-details {
  display: flex;
  flex-direction: column;
}

.stat-val {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.2;
}

.stat-lbl {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.panel-section {
  margin-bottom: 2rem;
}

.panel-section h3 {
  font-size: 1.15rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid var(--border-color-light);
  padding-bottom: 0.5rem;
}

.upcoming-release-box {
  background-color: var(--bg-secondary);
  border-radius: 8px;
  padding: 1.2rem;
  border: 1px solid var(--border-color);
}

.executor-summary-card {
  background-color: var(--bg-secondary);
  border: 1px dashed var(--border-color);
  border-radius: 8px;
  padding: 1.2rem;
  margin-top: 2rem;
}

.esc-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-main);
  text-transform: uppercase;
  margin-bottom: 0.6rem;
}

.esc-header svg {
  width: 16px;
  height: 16px;
  color: var(--accent-gold);
}

.esc-body p {
  font-size: 0.85rem;
  color: var(--text-muted);
}

.esc-body .small-text {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  line-height: 1.4;
}

/* Recipients List & Form */
.tab-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.form-card {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}

.form-card h3 {
  font-size: 1.1rem;
  margin-bottom: 1rem;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-bottom: 1.2rem;
}

@media (max-width: 600px) {
  .form-grid {
    grid-template-columns: 1fr;
  }
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.form-group label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
}

.form-group input, .form-group select, .form-group textarea {
  border: 1px solid var(--border-color);
  border-radius: 6px;
  padding: 0.55rem 0.8rem;
  font-family: var(--font-sans);
  font-size: 0.88rem;
  background-color: var(--bg-primary);
  color: var(--text-main);
  transition: border-color var(--transition-speed) ease;
}

.form-group input:focus, .form-group select:focus, .form-group textarea:focus {
  outline: none;
  border-color: var(--accent-gold);
}

.form-control-large {
  font-size: 1rem !important;
  padding: 0.8rem 1rem !important;
}

textarea.paper-style {
  font-family: var(--font-serif);
  font-size: 1.1rem !important;
  line-height: 1.6;
  background-image: linear-gradient(rgba(235, 220, 208, 0.5) 1px, transparent 1px);
  background-size: 100% 2rem;
  line-height: 2rem;
  padding: 0.5rem 1rem !important;
  border: 1px solid var(--border-color);
}

.help-text {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.help-text a {
  color: var(--accent-gold-dark);
  text-decoration: underline;
}

.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
}

.recipients-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (max-width: 600px) {
  .recipients-grid {
    grid-template-columns: 1fr;
  }
}

.recipient-card {
  border: 1px solid var(--border-color-light);
  border-radius: 8px;
  padding: 1.2rem;
  background-color: var(--bg-primary);
  display: flex;
  justify-content: space-between;
  align-items: start;
  box-shadow: 0 2px 8px rgba(0,0,0,0.005);
}

.recipient-card-info h4 {
  font-size: 1.05rem;
  color: var(--text-main);
}

.rep-tag {
  display: inline-block;
  background-color: var(--accent-sage-light);
  color: var(--accent-sage-dark);
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 4px;
  padding: 1px 6px;
  margin-top: 0.2rem;
}

.recipient-card-info p {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 0.4rem;
}

.recipient-card-actions {
  display: flex;
  gap: 0.4rem;
}

.btn-icon {
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  padding: 0.2rem;
  border-radius: 4px;
}

.btn-icon:hover {
  background-color: var(--bg-secondary);
  color: var(--text-main);
}

.btn-icon svg {
  width: 16px;
  height: 16px;
}

/* WIZARD BUILDER */
.wizard-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2rem;
}

.wizard-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  opacity: 0.4;
  transition: opacity var(--transition-speed) ease;
  width: 80px;
}

.wizard-step.active {
  opacity: 1;
}

.wizard-step.completed {
  opacity: 0.85;
}

.wizard-step.completed .num {
  background-color: var(--accent-sage);
  border-color: var(--accent-sage);
  color: white;
}

.wizard-step .num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-main);
  background-color: var(--bg-primary);
  transition: all var(--transition-speed) ease;
}

.wizard-step.active .num {
  border-color: var(--accent-gold);
  background-color: var(--accent-gold);
  color: white;
  box-shadow: 0 0 10px rgba(197, 160, 89, 0.3);
}

.wizard-step .label {
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
}

.step-divider {
  flex-grow: 1;
  height: 1px;
  background-color: var(--border-color);
  margin-bottom: 1.2rem;
}

.wizard-content-step {
  display: none;
  animation: fadeIn 0.4s ease-out;
}

.wizard-content-step.active-step {
  display: block;
}

.step-desc {
  font-size: 0.9rem;
  color: var(--text-muted);
  margin-bottom: 1.5rem;
}

.wizard-input-container {
  max-width: 500px;
  margin: 1rem 0;
}

.wizard-alert-info {
  background-color: var(--accent-gold-light);
  border: 1px solid var(--accent-gold);
  border-radius: 8px;
  padding: 1rem;
  display: flex;
  gap: 0.8rem;
  align-items: flex-start;
  margin-top: 1.5rem;
  max-width: 500px;
}

.wai-icon svg {
  width: 18px;
  height: 18px;
  color: var(--accent-gold-dark);
}

.wai-text {
  font-size: 0.82rem;
  color: var(--text-main);
}

/* Media Recorder Panel */
.media-record-section {
  margin-top: 1.5rem;
  border-top: 1px solid var(--border-color-light);
  padding-top: 1.5rem;
}

.recorder-box {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 1.2rem;
  margin-top: 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.recorder-controls {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.btn-record {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 20px;
  padding: 0.5rem 1.2rem;
  cursor: pointer;
  font-family: var(--font-sans);
  font-size: 0.85rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-main);
}

.record-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--accent-red);
}

.btn-record.recording {
  background-color: var(--accent-red-light);
  border-color: var(--accent-red);
  color: var(--accent-red-dark);
}

.btn-record.recording .record-dot {
  animation: pulse 1s infinite alternate;
}

.recorder-status {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.waveform-container {
  display: flex;
  align-items: center;
  gap: 1rem;
  animation: fadeIn 0.3s ease;
}

.visual-waveform {
  display: flex;
  align-items: center;
  gap: 3px;
  height: 30px;
}

.visual-waveform .bar {
  width: 3px;
  height: 10px;
  background-color: var(--accent-red);
  border-radius: 2px;
  animation: none;
}

.btn-record.recording ~ .waveform-container .visual-waveform .bar {
  animation: wavePulse 0.8s ease infinite alternate;
}

/* Set staggered waveform delay */
.visual-waveform .bar:nth-child(2) { animation-delay: 0.1s; height: 18px; }
.visual-waveform .bar:nth-child(3) { animation-delay: 0.2s; height: 25px; }
.visual-waveform .bar:nth-child(4) { animation-delay: 0.15s; height: 12px; }
.visual-waveform .bar:nth-child(5) { animation-delay: 0.3s; height: 28px; }
.visual-waveform .bar:nth-child(6) { animation-delay: 0.25s; height: 16px; }
.visual-waveform .bar:nth-child(7) { animation-delay: 0.35s; height: 20px; }
.visual-waveform .bar:nth-child(8) { animation-delay: 0.4s; height: 8px; }
.visual-waveform .bar:nth-child(9) { animation-delay: 0.1s; height: 18px; }
.visual-waveform .bar:nth-child(10) { animation-delay: 0.3s; height: 26px; }

.waveform-container .timer {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent-red-dark);
}

.mock-media-player {
  background-color: var(--bg-primary);
  border: 1px solid var(--accent-sage);
  border-radius: 6px;
  padding: 0.6rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  animation: slideUp 0.3s ease;
}

.mock-media-player .play-icon {
  width: 16px;
  height: 16px;
  color: var(--accent-sage-dark);
}

.mock-media-player .media-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--accent-sage-dark);
  flex-grow: 1;
  margin-left: 0.8rem;
}

.btn-delete-media {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.2rem;
  cursor: pointer;
}

/* Gift Cards & Selection */
.gift-category-selector {
  display: flex;
  gap: 0.6rem;
  margin-bottom: 1.5rem;
}

.gift-cat-btn {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 20px;
  padding: 0.4rem 1rem;
  font-family: var(--font-sans);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  transition: all var(--transition-speed) ease;
}

.gift-cat-btn.active {
  background-color: var(--accent-rose-light);
  border-color: var(--accent-rose);
  color: var(--accent-rose-dark);
}

.gifts-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}

@media (max-width: 700px) {
  .gifts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  @media (max-width: 480px) {
    .gifts-grid {
      grid-template-columns: 1fr;
    }
  }
}

.gift-card {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color-light);
  border-radius: 8px;
  padding: 1rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: all var(--transition-speed) ease;
  position: relative;
}

.gift-card:hover {
  border-color: var(--border-color);
  box-shadow: 0 4px 12px rgba(0,0,0,0.02);
}

.gift-card.selected {
  border-color: var(--accent-gold);
  background-color: var(--accent-gold-light);
}

.gift-card .gift-badge {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
}

.gb-sentimental {
  background-color: var(--accent-rose-light);
  color: var(--accent-rose-dark);
}

.gb-digital {
  background-color: var(--accent-sage-light);
  color: var(--accent-sage-dark);
}

.gift-card-icon {
  width: 32px;
  height: 32px;
  color: var(--text-muted);
}

.gift-card.selected .gift-card-icon {
  color: var(--accent-gold-dark);
}

.gift-card h4 {
  font-size: 0.85rem;
  font-weight: 700;
  margin-top: 0.2rem;
}

.gift-card p {
  font-size: 0.72rem;
  color: var(--text-muted);
  line-height: 1.4;
}

.gift-card .price {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-main);
  margin-top: auto;
}

.gift-selection-summary {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.8rem 1.2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1rem;
}

.gift-selection-summary .text {
  font-size: 0.82rem;
  font-weight: 600;
}

/* Review Step */
.review-capsule-card {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 1.5rem;
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.r-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  font-size: 0.9rem;
  border-bottom: 1px solid var(--border-color-light);
  padding-bottom: 0.5rem;
}

.r-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.r-lbl {
  font-weight: 600;
  color: var(--text-muted);
}

.r-val {
  color: var(--text-main);
}

.sealing-wax-ceremony {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  padding: 1rem 0;
}

.wax-seal-wrapper {
  width: 70px;
  height: 70px;
  background-color: var(--accent-red-dark);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 10px rgba(173, 84, 70, 0.4), inset 0 2px 4px rgba(255,255,255,0.2);
  border: 3px solid #924033;
}

.wax-seal-stamp {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.5rem;
  color: #fbd6d0;
  text-shadow: 1px 1px 1px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
}

.wizard-footer {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
  border-top: 1px solid var(--border-color-light);
  padding-top: 1.5rem;
}

/* Timeline Layout */
.timeline-container {
  position: relative;
  max-width: 700px;
  margin: 2rem 0;
  padding-left: 2rem;
}

.timeline-container::before {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  left: 7px;
  width: 2px;
  background-color: var(--border-color);
}

.timeline-node {
  position: relative;
  margin-bottom: 2rem;
  animation: fadeIn 0.4s ease;
}

.timeline-node::before {
  content: '';
  position: absolute;
  top: 20px;
  left: -29px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--bg-primary);
  border: 3px solid var(--accent-gold);
  z-index: 2;
  box-shadow: 0 0 0 4px var(--bg-primary);
}

.timeline-node.released::before {
  border-color: var(--accent-sage);
}

.timeline-node.pending::before {
  border-color: var(--accent-rose);
}

.tn-card {
  position: relative;
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color-light);
  border-radius: 10px;
  padding: 1.2rem 1.5rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.005);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.tn-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-right: 3.5rem; /* Prevent overlap with absolute Edit/Delete buttons */
}

.tn-date {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--accent-gold-dark);
}

.timeline-node.released .tn-date {
  color: var(--accent-sage-dark);
}

.timeline-node.pending .tn-date {
  color: var(--accent-rose-dark);
}

.tn-status-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 10px;
  text-transform: uppercase;
}

.tsb-locked {
  background-color: var(--accent-gold-light);
  color: var(--accent-gold-dark);
}

.tsb-pending {
  background-color: var(--accent-rose-light);
  color: var(--accent-rose-dark);
}

.tsb-released {
  background-color: var(--accent-sage-light);
  color: var(--accent-sage-dark);
}

.tn-card h3 {
  font-size: 1.15rem;
  color: var(--text-main);
}

.tn-recipient-tag {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.tn-recipient-tag strong {
  color: var(--text-main);
}

.tn-message-excerpt {
  font-family: var(--font-serif);
  font-size: 0.92rem;
  font-style: italic;
  color: var(--text-muted);
  border-left: 2px solid var(--border-color);
  padding-left: 0.8rem;
  margin: 0.2rem 0;
}

.tn-attachments {
  display: flex;
  gap: 0.8rem;
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-top: 0.4rem;
  border-top: 1px solid var(--border-color-light);
  padding-top: 0.5rem;
}

.tn-att-item {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}

.tn-att-item svg {
  width: 12px;
  height: 12px;
}

.tn-delete-btn {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: none;
  border: none;
  color: #ad5446;
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  opacity: 0.2;
  transition: all var(--transition-speed) ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tn-delete-btn svg {
  width: 18px;
  height: 18px;
}

.tn-delete-btn:hover {
  background-color: var(--accent-red-light);
  color: var(--accent-red-dark);
}

.tn-card:hover .tn-delete-btn {
  opacity: 1;
}

/* SECTION 3: EXECUTOR PANEL */
.section-header-box {
  margin-bottom: 2rem;
}

.section-subtitle {
  color: var(--text-muted);
  font-size: 0.95rem;
}

.executor-layout-grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 2rem;
  align-items: start;
}

@media (max-width: 800px) {
  .executor-layout-grid {
    grid-template-columns: 1fr;
  }
}

.panel-card {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.8rem;
  box-shadow: var(--card-shadow);
  margin-bottom: 1.5rem;
}

.danger-card {
  border-left: 4px solid var(--accent-red);
}

.instruction-card {
  background-color: var(--bg-secondary);
  border-style: dashed;
}

.instruction-card h3 {
  font-size: 1rem;
  margin-bottom: 0.8rem;
}

.instruction-card p {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 0.5rem;
}

.card-desc {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin-bottom: 1.2rem;
}

.card-section-title {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}

/* Toggle Switch Styling */
.toggle-control {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  background-color: var(--bg-secondary);
  padding: 1.2rem;
  border-radius: 8px;
  border: 1px solid var(--border-color);
  margin-bottom: 1.2rem;
}

.switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 28px;
  flex-shrink: 0;
}

.switch input { 
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--border-color);
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  transition: .4s;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}

input:checked + .slider {
  background-color: var(--accent-red);
}

input:focus + .slider {
  box-shadow: 0 0 1px var(--accent-red);
}

input:checked + .slider:before {
  transform: translateX(22px);
}

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.toggle-label-desc {
  display: flex;
  flex-direction: column;
}

.toggle-label-desc strong {
  font-size: 0.88rem;
  color: var(--text-main);
}

.toggle-label-desc span {
  font-size: 0.72rem;
  color: var(--text-muted);
  line-height: 1.3;
}

.simulator-helper-alert {
  background-color: var(--accent-rose-light);
  border-radius: 6px;
  padding: 0.8rem 1rem;
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
}

.simulator-helper-alert svg {
  width: 16px;
  height: 16px;
  color: var(--accent-rose-dark);
  flex-shrink: 0;
}

.simulator-helper-alert p {
  font-size: 0.75rem;
  color: var(--text-muted);
  line-height: 1.4;
}

/* Executor Milestone Action items */
.executor-milestones-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1rem;
}

.exe-milestone-item {
  border: 1px solid var(--border-color-light);
  border-radius: 8px;
  padding: 1.2rem;
  background-color: var(--bg-primary);
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.005);
}

.emi-details h4 {
  font-size: 0.95rem;
  color: var(--text-main);
}

.emi-details p {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-top: 0.2rem;
}

.emi-details strong {
  color: var(--text-main);
}

.empty-state {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--text-muted);
  font-size: 0.88rem;
  font-style: italic;
}

/* SECTION 4: RECIPIENT MODE */
.recipient-welcome-banner {
  text-align: center;
  margin-bottom: 3rem;
  background-image: linear-gradient(180deg, var(--bg-primary) 0%, transparent 100%);
  border: 1px solid var(--border-color-light);
  border-radius: 16px;
  padding: 3rem 1rem;
  box-shadow: var(--card-shadow);
}

.recipient-welcome-banner h2 {
  font-size: 2.2rem;
  color: var(--text-main);
  margin-bottom: 0.5rem;
}

.recipient-welcome-banner p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--text-muted);
}

.recipient-inbox-layout {
  max-width: 900px;
  margin: 0 auto;
}

.inbox-section-title {
  font-size: 1.2rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 0.5rem;
}

.recipient-inbox-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}

@media (max-width: 600px) {
  .recipient-inbox-grid {
    grid-template-columns: 1fr;
  }
}

.inbox-card {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.8rem;
  box-shadow: var(--card-shadow);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  position: relative;
  transition: all var(--transition-speed) ease;
}

.inbox-card.card-locked {
  background-color: #faf8f5;
  border-style: dashed;
}

.inbox-card.card-released {
  cursor: pointer;
}

.inbox-card.card-released:hover {
  transform: translateY(-4px);
  box-shadow: var(--card-shadow-hover);
  border-color: var(--accent-sage);
}

.ic-tag {
  align-self: flex-start;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 10px;
}

.ic-tag-locked {
  background-color: var(--accent-gold-light);
  color: var(--accent-gold-dark);
}

.ic-tag-released {
  background-color: var(--accent-sage-light);
  color: var(--accent-sage-dark);
}

.inbox-card h4 {
  font-size: 1.25rem;
  color: var(--text-main);
}

.inbox-card p.desc {
  font-size: 0.85rem;
  color: var(--text-muted);
}

.inbox-card .sender-info {
  font-size: 0.75rem;
  color: var(--text-muted);
  border-top: 1px solid var(--border-color-light);
  padding-top: 0.8rem;
  margin-top: auto;
  display: flex;
  justify-content: space-between;
}

/* ENVELOPE MODAL & OPENING CEREMONY */
.envelope-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(60, 50, 46, 0.45);
  backdrop-filter: blur(10px);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  animation: fadeIn 0.4s ease;
  overflow-y: auto; /* Fallback scrollbar if viewport is too short */
}

/* Full-coverage transparent backdrop layer – clicking it closes the modal.
   Sits at z-index 0 so all envelope content is layered above it. */
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 0;
  cursor: pointer;
}

.envelope-container-wrapper {
  position: relative;
  width: 100%;
  max-width: 600px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  z-index: 1; /* Sit above the transparent modal-backdrop */
}

.btn-close-envelope {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.2);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background-color var(--transition-speed) ease;
  z-index: 1010; /* Float above sliding card */
}

.btn-close-envelope:hover {
  background-color: rgba(255,255,255,0.3);
}

.btn-close-envelope svg {
  width: 20px;
  height: 20px;
}

.envelope-outer {
  position: relative;
  width: 520px;
  height: 340px;
  background-color: var(--env-bg, var(--bg-primary));
  border: 1px solid var(--env-border, var(--border-color));
  border-radius: 10px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  overflow: visible; /* Need letter to slide out */
  perspective: 1000px; /* Enable 3D folding */
  transition: transform 0.6s ease;
}

@media (max-width: 580px) {
  :root {
    --letter-lift-y: -200px;
    --letter-open-y: -75px;
    --letter-open-height: 360px;
  }
  .envelope-outer {
    width: 320px;
    height: 210px;
  }
  .envelope-flap {
    border-left-width: 160px !important;
    border-right-width: 160px !important;
    border-top-width: 110px !important;
  }
}

/* Flap at top of envelope */
.envelope-flap {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  border-left: 260px solid transparent;
  border-right: 260px solid transparent;
  border-top: 175px solid var(--env-flap, var(--bg-secondary));
  border-bottom: 0 solid transparent;
  transform-origin: top center;
  z-index: 4;
  transition: transform 0.5s ease, z-index 0.2s ease 0.3s;
}

/* Back overlay representing side and bottom folds */
.envelope-body-fold {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: 
    linear-gradient(33deg, var(--env-fold-1, #ede7dc) 50%, transparent 50%),
    linear-gradient(-33deg, var(--env-fold-1, #ede7dc) 50%, transparent 50%),
    linear-gradient(to top, var(--env-fold-2, #e6dfd5) 50%, transparent 50%);
  background-position: left bottom, right bottom, center bottom;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  border-radius: 0 0 10px 10px;
  pointer-events: none;
  z-index: 3;
}

/* Wax Seal Stamp holding the flap down */
.wax-seal-button {
  position: absolute;
  top: 150px;
  left: 52%;
  transform: translate(-50%, -50%);
  width: 66px;
  height: 66px;
  background-color: var(--seal-bg, var(--accent-red-dark));
  border-radius: 50%;
  z-index: 5;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15), inset 0 2px 4px rgba(255,255,255,0.2);
  border: 3px solid var(--seal-border, #8e3e33);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease;
}

@media (max-width: 580px) {
  .wax-seal-button {
    top: 95px;
    width: 46px;
    height: 46px;
    border-width: 2px;
  }
  .wax-seal-inner span {
    font-size: 1rem !important;
  }
}

.wax-seal-inner span {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.3rem;
  color: var(--seal-text, #fbd6d0);
  transform: rotate(-10deg);
  display: block;
}

.wax-seal-button:hover {
  transform: translate(-50%, -50%) scale(1.08);
}

/* The letter paper locked inside */
.envelope-letter {
  position: absolute;
  top: 15px;
  left: 15px;
  right: 15px;
  height: calc(100% - 30px);
  background-color: #fffdf9;
  border: 1px solid var(--border-color-light);
  border-radius: 6px;
  padding: 2rem;
  box-shadow: 0 2px 5px rgba(0,0,0,0.03);
  z-index: 2;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), z-index 0.1s ease 0.3s, opacity 0.3s ease, height 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  overflow: hidden;
  opacity: 0.8;
}

/* Envelope Interactive Open States */
.envelope-outer.open {
  cursor: default;
}

/* 1. Flap flips up */
.envelope-outer.open .envelope-flap {
  transform: rotateX(180deg);
  z-index: 1; /* Drop index below letter once flipped */
}

/* 2. Wax Seal slides down & disappears */
.envelope-outer.open .wax-seal-button {
  opacity: 0;
  transform: translate(-50%, -20%) scale(0.6);
  pointer-events: none;
}

/* 3. Letter slides up and sizes to readability */
.envelope-outer.open .envelope-letter {
  animation: web-lift-and-unfold 1.2s cubic-bezier(0.25, 1, 0.5, 1) 0.4s forwards;
  opacity: 1;
  box-shadow: 0 20px 40px rgba(0,0,0,0.15);
  border: 1px solid var(--border-color);
  overflow-y: auto;
}

@keyframes web-lift-and-unfold {
  0% {
    transform: translateY(0);
    height: calc(100% - 30px);
    z-index: 2;
  }
  45% {
    transform: translateY(var(--letter-lift-y));
    height: calc(100% - 30px);
    z-index: 2;
  }
  50% {
    transform: translateY(var(--letter-lift-y));
    height: calc(100% - 30px);
    z-index: 10;
  }
  100% {
    transform: translateY(var(--letter-open-y));
    height: var(--letter-open-height);
    z-index: 10;
  }
}

/* Letter Scroll Area Adjustments inside transform-scaled parent */
.letter-scroll-area {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
}

.envelope-outer.open .letter-scroll-area {
  transform: none;
  height: 100%;
  padding-bottom: 2rem;
}

@media (max-width: 580px) {
  .envelope-outer.open .letter-scroll-area {
    transform: none;
    height: 100%;
  }
}

.letter-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--accent-gold-dark);
  text-transform: uppercase;
}

.letter-title {
  font-size: 1.6rem;
  color: var(--text-main);
  border-bottom: 1px solid var(--border-color-light);
  padding-bottom: 0.5rem;
}

.letter-text {
  font-family: var(--font-serif);
  font-size: 1.15rem;
  line-height: 1.8;
  color: var(--text-main);
  white-space: pre-line;
}

/* Letter Audio Panel */
.letter-media-block {
  margin-top: 1.5rem;
  border-top: 2px dashed var(--border-color);
  padding-top: 1rem;
}

.letter-media-block h4 {
  font-size: 0.8rem;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.6rem;
}

.letter-audio-player {
  background-color: var(--bg-secondary);
  border-radius: 30px;
  padding: 0.5rem 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.btn-play-audio {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: var(--accent-sage);
  border: none;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.btn-play-audio svg {
  width: 16px;
  height: 16px;
}

.btn-play-audio:hover {
  background-color: var(--accent-sage-dark);
}

.audio-progress-bar {
  flex-grow: 1;
  height: 6px;
  background-color: var(--border-color);
  border-radius: 3px;
  position: relative;
  cursor: pointer;
  transition: height 0.2s ease, background-color 0.2s ease;
}

.audio-progress-bar:hover {
  height: 8px;
  background-color: var(--border-color-light);
}

/* Invisible hit target expansion for easier clicking and seeking */
.audio-progress-bar::before {
  content: '';
  position: absolute;
  top: -12px;
  bottom: -12px;
  left: -8px;
  right: -8px;
  background: transparent;
  z-index: 1;
}

.audio-progress-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 0%;
  background-color: var(--accent-sage-dark);
  border-radius: 3px;
  transition: width 0.1s linear;
  z-index: 2;
  pointer-events: none; /* Let clicks pass through to the progress bar hit target */
}

.audio-time {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
}

.playback-status-msg {
  font-size: 0.72rem;
  color: var(--text-muted);
  display: block;
  margin-top: 0.3rem;
  margin-left: 1rem;
}

/* Letter Gift Panel */
.letter-gift-block {
  margin-top: 1.5rem;
  border-top: 2px dashed var(--border-color);
  padding-top: 1rem;
}

.letter-gift-block h4 {
  font-size: 0.8rem;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.6rem;
}

.gift-voucher-card {
  border: 1px solid var(--accent-rose);
  background-color: var(--accent-rose-light);
  border-radius: 8px;
  padding: 1rem;
  display: flex;
  gap: 1rem;
  align-items: center;
}

.gift-icon-box {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--accent-rose-dark);
  flex-shrink: 0;
}

.gift-icon-box svg {
  width: 24px;
  height: 24px;
}

.gift-info-box {
  display: flex;
  flex-direction: column;
}

.gift-info-box h5 {
  font-size: 0.95rem;
  color: var(--text-main);
}

.gift-info-box p {
  font-size: 0.75rem;
  color: var(--text-muted);
  line-height: 1.3;
  margin-top: 0.1rem;
}

.gift-value-badge {
  font-family: var(--font-sans);
  font-weight: 700;
  color: var(--accent-rose-dark);
  font-size: 0.9rem;
  margin-top: 0.3rem;
  align-self: flex-start;
}

.envelope-instruction-text {
  font-size: 0.9rem;
  color: #fffdf9;
  text-align: center;
  text-shadow: 0 2px 4px rgba(0,0,0,0.5);
  font-family: var(--font-serif);
  font-style: italic;
  animation: pulse 1.5s infinite alternate;
  transition: opacity 0.3s ease;
}

.envelope-outer.open ~ .envelope-instruction-text {
  opacity: 0;
  pointer-events: none;
  animation: none;
}

/* Footer Section */
.app-footer {
  background-color: var(--bg-primary);
  border-top: 1px solid var(--border-color);
  padding: 1.5rem 0;
  margin-top: auto;
}

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.footer-meta {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--accent-gold-dark);
}

/* Animations */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes slideDown {
  from { transform: translateY(-100%); }
  to { transform: translateY(0); }
}

@keyframes slideUp {
  from { transform: translateY(15px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes pulse {
  from { opacity: 0.6; }
  to { opacity: 1; }
}

@keyframes wavePulse {
  from { transform: scaleY(1); }
  to { transform: scaleY(0.2); }
}

/* ==========================================================================
   ALIGNMENT ADDITIONS: Brand Logo, Storage, Recipes, Deletion & Previews
   ========================================================================== */

/* Brand Logo Figures (tt) holding hands */
.logo-text-row {
  display: inline-flex;
  align-items: center;
  gap: 0;
  vertical-align: middle;
}

.logo-base-text {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--text-main);
  line-height: 1;
}

.logo-figures-container {
  display: inline-flex;
  position: relative;
  width: 20px;
  height: 22px;
  margin: 0 2px;
  vertical-align: middle;
}

.person {
  position: absolute;
  bottom: 1px;
  width: 10px;
  height: 22px;
}

.left-person {
  left: 0;
}

.right-person {
  left: 10px;
}

.person .head {
  position: absolute;
  top: 1px;
  left: 3px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: var(--accent-gold);
}

.person .body {
  position: absolute;
  top: 5px;
  left: 4px;
  width: 2px;
  height: 12px;
  background-color: var(--accent-gold);
}

.person .arm {
  position: absolute;
  top: 8px;
  height: 2px;
  background-color: var(--accent-gold);
}

.left-person .arm-left {
  left: 0px;
  width: 5px;
}

.left-person .arm-right {
  left: 5px;
  width: 6px;
}

.right-person .arm-left {
  left: -1px;
  width: 6px;
}

.right-person .arm-right {
  left: 5px;
  width: 5px;
}

/* Storage Plan Settings Card */
.storage-plan-card {
  background-color: var(--bg-primary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.5rem;
  margin-top: 1.5rem;
  box-shadow: var(--card-shadow);
}

.storage-plan-card h3 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
  color: var(--text-main);
}

.storage-plan-card .card-desc {
  font-size: 0.88rem;
  color: var(--text-muted);
  margin-bottom: 1rem;
}

.storage-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
}

@media (max-width: 600px) {
  .storage-options {
    grid-template-columns: 1fr;
  }
}

.storage-option-btn {
  background-color: var(--bg-secondary);
  border: 2px solid transparent;
  border-radius: 10px;
  padding: 1rem;
  cursor: pointer;
  text-align: left;
  transition: all var(--transition-speed) ease;
}

.storage-option-btn:hover {
  background-color: var(--bg-primary);
  border-color: var(--border-color);
}

.storage-option-btn.active {
  background-color: var(--accent-gold-light);
  border-color: var(--accent-gold);
}

.storage-option-btn h4 {
  font-size: 1rem;
  color: var(--text-main);
  margin-bottom: 0.25rem;
}

.storage-option-btn p {
  font-size: 0.75rem;
  color: var(--text-muted);
}

/* Media Attachment Buttons with badges & locks */
.wiz-media-btn-row {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 0.5rem;
}

.media-btn-container {
  position: relative;
  flex: 1;
  min-width: 120px;
}

.wiz-media-btn {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  border: 1px solid var(--border-color);
  background-color: var(--bg-primary);
  border-radius: 10px;
  cursor: pointer;
  transition: all var(--transition-speed) ease;
  height: 80px;
}

.wiz-media-btn:hover:not(:disabled) {
  background-color: var(--bg-secondary);
  border-color: var(--text-muted);
}

.wiz-media-btn .icon {
  font-size: 1.5rem;
  margin-bottom: 0.25rem;
}

.wiz-media-btn .lbl {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-main);
}

.wiz-media-btn .plan-badge {
  position: absolute;
  top: 5px;
  right: 5px;
  font-size: 0.65rem;
  font-weight: 700;
  padding: 1px 4px;
  border-radius: 4px;
  text-transform: uppercase;
}

.wiz-media-btn .plan-badge.free {
  background-color: var(--accent-sage-light);
  color: var(--accent-sage-dark);
}

.wiz-media-btn .plan-badge.standard {
  background-color: var(--accent-gold-light);
  color: var(--accent-gold-dark);
}

.wiz-media-btn .plan-badge.premium {
  background-color: var(--accent-rose-light);
  color: var(--accent-rose-dark);
}

.media-lock-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(60, 50, 46, 0.7);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--transition-speed) ease;
}

.media-lock-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.media-lock-overlay span {
  font-size: 1.25rem;
  margin-bottom: 0.1rem;
}

.media-lock-overlay small {
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Recipients Checklist */
.recipients-checklist-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.8rem;
  background-color: var(--bg-primary);
}

.recipient-check-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9rem;
  cursor: pointer;
  padding: 0.3rem 0.5rem;
  border-radius: 4px;
  transition: background-color var(--transition-speed) ease;
}

.recipient-check-item:hover {
  background-color: var(--bg-secondary);
}

.recipient-check-item input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
}

.recipient-multiselect-banner {
  background-color: var(--accent-sage-light);
  border: 1px solid var(--accent-sage);
  color: var(--accent-sage-dark);
  border-radius: 6px;
  padding: 0.6rem 0.8rem;
  font-size: 0.8rem;
  font-weight: 600;
  margin-top: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Deletion Safety Fuse & Warning Banner */
.deletion-warning-banner {
  background-color: var(--accent-red-light);
  border: 1px solid var(--accent-red);
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: 1.5rem;
  color: var(--accent-red-dark);
}

.deletion-warning-header {
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.deletion-warning-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.deletion-timeline-card {
  border: 1.5px dashed var(--accent-red) !important;
  background-color: var(--accent-red-light) !important;
  position: relative;
}

.deletion-timeline-card .tn-delete-btn {
  display: none !important; /* Hide standard delete when pending */
}

/* Deletion Fuse Countdown styling */
.fuse-bar-track {
  width: 100%;
  height: 6px;
  background-color: var(--border-color);
  border-radius: 3px;
  margin: 0.6rem 0;
  overflow: hidden;
}

.fuse-bar-fill {
  height: 100%;
  background-color: var(--accent-red);
  transition: width 1s linear;
}

.restore-btn {
  background-color: var(--accent-sage);
  border: 1px solid var(--accent-sage);
  color: white;
  border-radius: 15px;
  padding: 0.35rem 0.9rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color var(--transition-speed) ease;
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
}

.restore-btn:hover {
  background-color: var(--accent-sage-dark);
  border-color: var(--accent-sage-dark);
}

/* Position Edit button next to delete in timeline cards */
.tn-edit-btn {
  position: absolute;
  top: 1rem;
  right: 2.8rem; /* Position next to delete button at right: 1rem */
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  padding: 4px;
  border-radius: 4px;
  transition: all var(--transition-speed) ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tn-edit-btn:hover {
  color: var(--accent-gold-dark);
  background-color: var(--bg-secondary);
}

.tn-edit-btn svg {
  width: 18px;
  height: 18px;
}

.wizard-edit-banner {
  background-color: var(--accent-gold-light);
  border: 1.5px dashed var(--accent-gold);
  color: var(--accent-gold-dark);
  border-radius: 8px;
  padding: 0.8rem 1rem;
  margin-bottom: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  font-size: 0.88rem;
}

.wizard-edit-banner .cancel-btn {
  background: transparent;
  border: 1px solid var(--accent-gold);
  color: var(--accent-gold-dark);
  border-radius: 12px;
  padding: 0.2rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-speed) ease;
}

.wizard-edit-banner .cancel-btn:hover {
  background-color: var(--accent-gold);
  color: white;
}

/* Content Type Selector (Letter vs Recipe) */
.content-type-selector {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.content-type-btn {
  flex: 1;
  background-color: var(--bg-secondary);
  border: 2px solid transparent;
  border-radius: 10px;
  padding: 1rem;
  cursor: pointer;
  transition: all var(--transition-speed) ease;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
}

.content-type-btn:hover {
  background-color: var(--bg-primary);
  border-color: var(--border-color);
}

.content-type-btn.active {
  background-color: var(--accent-gold-light);
  border-color: var(--accent-gold);
}

.content-type-btn .icon {
  font-size: 1.5rem;
}

.content-type-btn .title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-main);
}

.content-type-btn .desc {
  font-size: 0.75rem;
  color: var(--text-muted);
  text-align: left;
}

/* Secret Recipe Card in Reader */
.recipe-card-display {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  font-family: var(--font-sans);
}

.recipe-header-banner {
  background-color: var(--accent-rose-light);
  border: 1px solid var(--accent-rose);
  border-radius: 8px;
  padding: 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.recipe-header-banner .banner-icon {
  font-size: 2rem;
}

.recipe-header-banner .banner-text {
  display: flex;
  flex-direction: column;
}

.recipe-header-banner .banner-text .eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--accent-rose-dark);
  letter-spacing: 0.5px;
}

.recipe-header-banner .banner-text .name {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  color: var(--text-main);
}

.recipe-ingredients-section h4, .recipe-method-section h4 {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text-main);
  margin-bottom: 0.4rem;
}

.recipe-ingredients-box {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.8rem 1rem;
  font-size: 0.9rem;
  line-height: 1.5;
  white-space: pre-line;
  color: var(--text-main);
}

.recipe-method-box {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0.8rem 1rem;
  font-size: 0.9rem;
  line-height: 1.6;
  white-space: pre-line;
  color: var(--text-main);
}

.recipe-chef-notes-box {
  background-color: var(--accent-gold-light);
  border-left: 3px solid var(--accent-gold);
  padding: 0.8rem 1rem;
  border-radius: 0 8px 8px 0;
  font-size: 0.88rem;
}

.recipe-chef-notes-box h5 {
  font-weight: 700;
  margin-bottom: 0.2rem;
  color: var(--accent-gold-dark);
}

.recipe-chef-notes-box p {
  font-style: italic;
  color: var(--text-main);
}

/* Photos Grid inside Reader */
.letter-photos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 0.8rem;
  margin-top: 0.5rem;
}

.letter-photo-card {
  position: relative;
  aspect-ratio: 1;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border-color);
  cursor: pointer;
  transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
  background-color: var(--bg-secondary);
}

.letter-photo-card:hover {
  transform: scale(1.03);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.letter-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.letter-videos-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.8rem;
  margin-top: 0.5rem;
}

.letter-video-card {
  background-color: #000;
  border-radius: 8px;
  position: relative;
  aspect-ratio: 16/9;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.letter-video-card video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.letter-video-card .video-sim-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0,0,0,0.4);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  gap: 0.5rem;
  cursor: pointer;
}

.letter-video-card .video-sim-overlay .play-icon {
  font-size: 3rem;
  line-height: 1;
}

.letter-video-card .video-sim-overlay span {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
}

/* Fullscreen Photo Preview Modal Overlay */
.preview-modal {
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(15, 12, 10, 0.95);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  animation: fadeIn 0.3s ease-out;
}

.preview-modal.hidden {
  display: none !important;
}

.preview-img {
  max-width: 90%;
  max-height: 80%;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.5);
  animation: scaleUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.preview-close {
  position: absolute;
  top: 20px;
  right: 30px;
  color: #f1f1f1;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  transition: color 0.2s ease;
  line-height: 1;
}

.preview-close:hover {
  color: var(--accent-gold);
}

.preview-caption {
  margin-top: 15px;
  color: #ccc;
  font-size: 0.85rem;
  text-align: center;
}

@keyframes scaleUp {
  from { transform: scale(0.95); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

/* ==========================================================================
   CUSTOM ENVELOPE THEMES & STYLING
   ========================================================================== */

/* Envelope Themes */
.envelope-outer[data-theme="classic"] {
  --env-bg: #f7f4eb;
  --env-flap: #f3edd8;
  --env-fold-1: #ede7dc;
  --env-fold-2: #e6dfd5;
  --env-border: var(--border-color);
}
.envelope-outer[data-theme="lavender"] {
  --env-bg: #f5f0f9;
  --env-flap: #ebe0f2;
  --env-fold-1: #e2d4eb;
  --env-fold-2: #d7c3e2;
  --env-border: #d4c8e3;
}
.envelope-outer[data-theme="sage"] {
  --env-bg: #f2f6f3;
  --env-flap: #e3ece6;
  --env-fold-1: #d6e3da;
  --env-fold-2: #c7d8cc;
  --env-border: #c4d5c9;
}
.envelope-outer[data-theme="rose"] {
  --env-bg: #faf0ef;
  --env-flap: #f5e1de;
  --env-fold-1: #ebd0cc;
  --env-fold-2: #debfba;
  --env-border: #e0c5c1;
}
.envelope-outer[data-theme="ocean"] {
  --env-bg: #f0f5f7;
  --env-flap: #e0ebf0;
  --env-fold-1: #d2e2e8;
  --env-fold-2: #c1d6dc;
  --env-border: #bcd1d9;
}
.envelope-outer[data-theme="midnight"] {
  --env-bg: #1e2235;
  --env-flap: #252a42;
  --env-fold-1: #2b314d;
  --env-fold-2: #353c5e;
  --env-border: #d4af37; /* Gold accent border */
}
.envelope-outer[data-theme="coral"] {
  --env-bg: #fdf4ef;
  --env-flap: #f9e6dc;
  --env-fold-1: #f3d7c9;
  --env-fold-2: #e9c3b1;
  --env-border: #e6beaa;
}
.envelope-outer[data-theme="plum"] {
  --env-bg: #f7eff2;
  --env-flap: #eedce1;
  --env-fold-1: #e2c9d1;
  --env-fold-2: #d3b1bd;
  --env-border: #d0abb8;
}
.envelope-outer[data-theme="mint"] {
  --env-bg: #eff7f4;
  --env-flap: #dceeed;
  --env-fold-1: #c9e2de;
  --env-fold-2: #b1d3ce;
  --env-border: #abbfb8;
}

/* Wax Seals Colors */
.wax-seal-button[data-color="crimson"],
.wax-seal-wrapper[data-color="crimson"] {
  --seal-bg: #9e2a2b;
  --seal-border: #781f20;
  --seal-text: #fbd6d0;
}
.wax-seal-button[data-color="gold"],
.wax-seal-wrapper[data-color="gold"] {
  --seal-bg: #b8860b;
  --seal-border: #8b6508;
  --seal-text: #fff3cd;
}
.wax-seal-button[data-color="forest"],
.wax-seal-wrapper[data-color="forest"] {
  --seal-bg: #2d5a27;
  --seal-border: #1c3b18;
  --seal-text: #d1e7dd;
}
.wax-seal-button[data-color="navy"],
.wax-seal-wrapper[data-color="navy"] {
  --seal-bg: #1d3557;
  --seal-border: #11223b;
  --seal-text: #d0e1fd;
}
.wax-seal-button[data-color="rose"],
.wax-seal-wrapper[data-color="rose"] {
  --seal-bg: #d16b8a;
  --seal-border: #a94e6c;
  --seal-text: #fddce4;
}
.wax-seal-button[data-color="copper"],
.wax-seal-wrapper[data-color="copper"] {
  --seal-bg: #c86446;
  --seal-border: #9b4830;
  --seal-text: #fbe6e0;
}
.wax-seal-button[data-color="silver"],
.wax-seal-wrapper[data-color="silver"] {
  --seal-bg: #8a9ba8;
  --seal-border: #647380;
  --seal-text: #f0f4f8;
}

/* Apply CSS variables to Wizard review seal if selected */
.wax-seal-wrapper {
  background-color: var(--seal-bg, var(--accent-red-dark));
  border-color: var(--seal-border, #924033);
}
.wax-seal-stamp {
  color: var(--seal-text, #fbd6d0);
}

/* Step 5 Customization Layout */
.wizard-customization-layout {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 2rem;
  margin-top: 1rem;
}

@media (max-width: 868px) {
  .wizard-customization-layout {
    grid-template-columns: 1fr;
  }
}

.customization-panel {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1.2rem;
}

.cust-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cust-group h4 {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-main);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}

/* Theme Options Swatches */
.theme-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.theme-swatch-btn {
  background: white;
  border: 2px solid var(--border-color-light);
  border-radius: 8px;
  padding: 0.5rem;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  transition: all var(--transition-speed) ease;
}

.theme-swatch-btn:hover {
  border-color: var(--text-muted);
}

.theme-swatch-btn.active {
  border-color: var(--accent-gold);
  box-shadow: 0 0 0 3px rgba(220, 169, 90, 0.2);
}

.theme-swatch-preview {
  width: 100%;
  height: 24px;
  border-radius: 4px;
  border: 1px solid rgba(0,0,0,0.06);
  position: relative;
  overflow: hidden;
}

/* Render small envelope fold preview inside swatch */
.theme-swatch-preview::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 50%;
  background: var(--fold-color, rgba(0,0,0,0.05));
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
}

.theme-swatch-btn span {
  font-size: 0.7rem;
  font-weight: 500;
  color: var(--text-main);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

/* Seal Color Row */
.seal-colors-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.seal-color-dot {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid white;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1), 0 0 0 1px var(--border-color-light);
  transition: all var(--transition-speed) ease;
  position: relative;
}

.seal-color-dot:hover {
  transform: scale(1.1);
}

.seal-color-dot.active {
  transform: scale(1.15);
  box-shadow: 0 3px 6px rgba(0,0,0,0.15), 0 0 0 2px var(--accent-gold);
}

/* Stamp Symbols Grid */
.stamp-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0.4rem;
}

.stamp-emoji-btn {
  background: white;
  border: 1px solid var(--border-color-light);
  border-radius: 6px;
  font-size: 1.1rem;
  padding: 0.3rem;
  cursor: pointer;
  transition: all var(--transition-speed) ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.stamp-emoji-btn:hover {
  background-color: var(--bg-secondary);
}

.stamp-emoji-btn.active {
  background-color: #fff3cd;
  border-color: var(--accent-gold);
}

.monogram-input-container {
  display: flex;
  gap: 0.8rem;
  align-items: center;
  margin-top: 0.2rem;
}

.monogram-input-container label {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-muted);
}

.monogram-text-input {
  width: 70px;
  padding: 0.3rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  text-align: center;
  font-weight: 700;
  font-size: 0.9rem;
  text-transform: uppercase;
}

/* Right Pane: Live Preview & Summary */
.preview-summary-panel {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

/* Live Scaled Envelope Mockup */
.envelope-preview-outer-container {
  background: #fdfcf9;
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 1rem;
  height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.02);
}

.envelope-preview-container {
  transform: scale(0.48);
  transform-origin: center center;
  width: 520px;
  height: 340px;
  position: absolute;
  pointer-events: none; /* Preview is non-interactive */
}

.envelope-preview-container .envelope-outer {
  box-shadow: 0 15px 30px rgba(0,0,0,0.15) !important;
}

/* Theme Swatch Specific Colors for CSS fold previews */
.theme-swatch-btn[data-theme-choice="classic"] .theme-swatch-preview { background-color: #f7f4eb; --fold-color: #ede7dc; }
.theme-swatch-btn[data-theme-choice="lavender"] .theme-swatch-preview { background-color: #f5f0f9; --fold-color: #e2d4eb; }
.theme-swatch-btn[data-theme-choice="sage"] .theme-swatch-preview { background-color: #f2f6f3; --fold-color: #d6e3da; }
.theme-swatch-btn[data-theme-choice="rose"] .theme-swatch-preview { background-color: #faf0ef; --fold-color: #ebd0cc; }
.theme-swatch-btn[data-theme-choice="ocean"] .theme-swatch-preview { background-color: #f0f5f7; --fold-color: #d2e2e8; }
.theme-swatch-btn[data-theme-choice="midnight"] .theme-swatch-preview { background-color: #1e2235; --fold-color: #2b314d; border-color: #d4af37; }
.theme-swatch-btn[data-theme-choice="coral"] .theme-swatch-preview { background-color: #fdf4ef; --fold-color: #f3d7c9; }
.theme-swatch-btn[data-theme-choice="plum"] .theme-swatch-preview { background-color: #f7eff2; --fold-color: #e2c9d1; }
.theme-swatch-btn[data-theme-choice="mint"] .theme-swatch-preview { background-color: #eff7f4; --fold-color: #c9e2de; }


/* ── Executor Role Styles (Recipient Cards) ─────────────────────────────── */

/* Name + badges row inside recipient card */
.rep-name-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 4px;
}

/* Executor highlight on recipient card */
.recipient-card-executor {
  border-left: 3px solid var(--accent-gold) !important;
  background: linear-gradient(135deg, #fffdf5 0%, var(--bg-primary) 100%) !important;
}

/* Executor badge tag (⚖️ Executor) */
.rep-tag-executor {
  background-color: var(--accent-gold-light) !important;
  color: var(--accent-gold-dark) !important;
  border: 1px solid var(--accent-gold) !important;
  font-size: 0.65rem !important;
  padding: 2px 8px !important;
}

/* Star icon button — inactive (make executor) */
.btn-icon-executor {
  color: var(--text-muted);
  opacity: 0.5;
  transition: opacity 0.2s ease, color 0.2s ease;
}
.btn-icon-executor:hover {
  opacity: 1;
  color: var(--accent-gold);
}

/* Star icon button — active (remove executor) */
.btn-icon-executor-active {
  color: var(--accent-gold);
  opacity: 1;
}
.btn-icon-executor-active svg {
  fill: var(--accent-gold);
  stroke: var(--accent-gold-dark);
}
.btn-icon-executor-active:hover {
  color: var(--accent-red);
}
.btn-icon-executor-active:hover svg {
  fill: none;
  stroke: var(--accent-red);
}

/* Executor toggle checkbox label in the add form */
.executor-toggle-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  background-color: var(--accent-gold-light);
  border: 1px solid var(--accent-gold);
  border-radius: 8px;
  padding: 12px 14px;
  transition: background-color 0.2s ease;
}
.executor-toggle-label:hover {
  background-color: #fdf3d0;
}
.executor-toggle-label input[type="checkbox"] {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  accent-color: var(--accent-gold-dark);
  flex-shrink: 0;
  cursor: pointer;
}
.executor-toggle-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.executor-toggle-text strong {
  font-size: 0.9rem;
  color: var(--text-main);
}
.executor-toggle-text span {
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.4;
}

/* Ensure the executor checkbox group spans full width of grid */
.form-group-full {
  grid-column: 1 / -1;
}

/* Site Footer */
.site-footer { 
  background-color: var(--bg-primary); 
  border-top: 1px solid var(--border-color); 
  padding: 2rem; 
  margin-top: auto; 
} 
.footer-container { 
  max-width: 1200px; 
  margin: 0 auto; 
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
  color: var(--text-muted); 
  font-size: 0.85rem; 
} 
.footer-links { 
  display: flex; 
  gap: 1.5rem; 
} 
.footer-links a { 
  color: var(--accent-gold); 
  text-decoration: none; 
} 
.footer-links a:hover { 
  text-decoration: underline; 
} 
@media (max-width: 600px) { 
  .footer-container { 
    flex-direction: column; 
    gap: 1rem; 
    text-align: center; 
  } 
}


