/* Mockup-specific styles */

/* —— MATCH CARD —— */
.mock-match, .mock-plan, .mock-safety, .mock-couples {
  display: flex; flex-direction: column;
  height: 100%;
  font-family: var(--sans);
}
.mock-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px;
}
.mock-tag {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--slate);
}
.mock-tag.safety { color: var(--forest); }
.mock-mono {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--slate-2);
}
.mock-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--sunset);
  animation: pulse 2s infinite;
}

.mock-photo {
  background: #D8C9AD;
  border-radius: 10px;
  height: 110px;
  position: relative;
  overflow: hidden;
  margin-bottom: 12px;
}
.mock-photo-inner {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 10px 12px;
  background: linear-gradient(180deg, transparent 40%, rgba(26,26,26,0.65));
  color: #fff;
}
.photo-stripe {
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 14px,
    rgba(26,26,26,0.04) 14px 15px
  );
}
.photo-label { font-size: 15px; font-weight: 500; position: relative; display: inline-flex; align-items: center; gap: 6px; }
.photo-verified {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: rgba(255,255,255,0.18);
  color: #fff;
  backdrop-filter: blur(2px);
}
.photo-sub { font-size: 11px; opacity: 0.85; position: relative; font-family: var(--mono); letter-spacing: 0.06em; }

.mock-reason {
  font-size: 12px;
  line-height: 1.4;
  color: var(--slate);
  margin-bottom: 14px;
}
.mock-reason em { font-style: normal; color: var(--ink); font-weight: 500; background: rgba(232, 93, 60, 0.15); padding: 0 3px; }
.reason-tag {
  display: block;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--slate-2);
  margin-bottom: 4px;
}

.mock-actions {
  display: flex; gap: 8px;
  margin-top: auto;
}
.btn-pass, .btn-approve {
  flex: 1;
  padding: 10px;
  font-size: 12px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
  font-weight: 500;
  transition: all 0.25s;
}
.btn-pass.active { background: #F1E9D8; border-color: var(--slate-2); }
.btn-approve.active {
  background: var(--forest); color: #fff; border-color: var(--forest);
  box-shadow: 0 4px 12px -4px rgba(45, 90, 61, 0.5);
}

/* —— DATE PLAN —— */
.plan-row {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px; margin-bottom: 6px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: #FBF8F2;
  transition: all 0.3s;
}
.plan-row.sel {
  background: #fff;
  border-color: var(--forest);
  box-shadow: 0 4px 12px -4px rgba(45, 90, 61, 0.2);
}
.plan-check {
  width: 16px; height: 16px;
  border-radius: 50%;
  border: 1.5px solid var(--line-strong);
  font-size: 10px;
  display: flex; align-items: center; justify-content: center;
  color: #fff;
  flex-shrink: 0;
  margin-top: 2px;
  transition: all 0.3s;
}
.plan-row.sel .plan-check {
  background: var(--forest);
  border-color: var(--forest);
}
.plan-body { flex: 1; min-width: 0; }
.plan-name { font-size: 12px; font-weight: 500; display: inline-flex; align-items: center; gap: 5px; }
.plan-video-ico { color: var(--sunset); flex-shrink: 0; }
.plan-time { font-family: var(--mono); font-size: 10px; color: var(--slate); letter-spacing: 0.06em; }
.plan-deal { font-size: 10px; color: var(--sunset); margin-top: 2px; font-weight: 500; }

.plan-foot {
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11px;
  color: var(--slate);
}
.plan-foot .token { font-size: 14px; }

/* —— SAFETY TIMER —— */
.verified-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  margin: 6px 0 2px;
  background: rgba(45,90,61,0.07);
  border: 1px solid rgba(45,90,61,0.12);
  border-radius: 6px;
  font-size: 9px;
  color: var(--ink);
  width: fit-content;
}
.verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--forest);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.06em;
  font-weight: 500;
  white-space: nowrap;
}
.prompt-deck {
  position: relative;
  flex: 1;
  margin: 4px 6px 16px 0;
  min-height: 120px;
  overflow: visible;
}
.prompt-card {
  position: absolute;
  inset: 0;
  background: #F5EFDF;
  border: 1px solid rgba(26,26,26,0.08);
  border-radius: 10px;
  padding: 14px 14px 16px;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform 0.5s cubic-bezier(.2,.8,.2,1), opacity 0.4s;
  transform-origin: center center;
  box-shadow: 0 2px 8px rgba(26,26,26,0.04);
}
.prompt-card.pos-0 {
  transform: translateX(0) translateY(0) rotate(0deg);
  opacity: 1;
  z-index: 3;
}
.prompt-card.pos-1 {
  transform: translateX(6px) translateY(8px) rotate(2deg) scale(0.96);
  opacity: 1;
  z-index: 2;
}
.prompt-card.pos-2 {
  transform: translateX(12px) translateY(14px) rotate(3.5deg) scale(0.92);
  opacity: 1;
  z-index: 1;
}
.prompt-card.pos-3 {
  transform: translateX(-140%) translateY(-8px) rotate(-12deg) scale(0.95);
  opacity: 0;
  z-index: 0;
}
.prompt-label {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.18em;
  color: var(--sunset);
}
.prompt-text {
  font-family: var(--display);
  font-size: 20px;
  line-height: 1.15;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.sos-btn {
  margin-top: 8px;
  background: transparent;
  color: var(--rust);
  border: 1px solid rgba(184,84,80,0.35);
  border-radius: 6px;
  padding: 6px 8px;
  font-size: 9px;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
}
.sos-ico {
  width: 11px; height: 11px;
  min-width: 11px;
  background: var(--rust); color: #fff;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 8px; font-family: var(--mono); font-weight: 700;
  flex-shrink: 0;
}
.sos-text { flex: 0 0 auto; }
  letter-spacing: 0.16em;
  color: var(--slate);
  margin-bottom: 14px;
}
.timer-bar {
  height: 4px;
  background: rgba(45, 90, 61, 0.15);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 14px;
}
.timer-fill {
  height: 100%;
  background: var(--forest);
  border-radius: 2px;
  transition: width 0.3s linear;
}
.safety-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px;
  padding: 8px 10px;
  border-radius: 7px;
  background: rgba(45, 90, 61, 0.08);
  color: var(--forest);
  margin-bottom: 6px;
}
.safety-row .safety-ico {
  width: 18px; height: 18px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--forest); color: #fff;
  font-size: 10px; font-family: var(--mono); font-weight: 600;
  flex-shrink: 0;
}
.safety-row.alert { background: rgba(184,84,80,0.08); color: var(--rust); }
.safety-row.alert .safety-ico { background: var(--rust); }

/* —— COUPLES —— */
.couples-msg {
  font-size: 12px;
  padding: 8px 12px;
  border-radius: 14px;
  max-width: 80%;
  margin-bottom: 5px;
  line-height: 1.3;
}
.msg-them { background: #F0E9DB; color: var(--ink); align-self: flex-start; border-bottom-left-radius: 4px; }
.msg-me { background: var(--forest); color: #fff; align-self: flex-end; border-bottom-right-radius: 4px; }
.ai-prompt {
  margin-top: auto;
  background: var(--ink);
  color: var(--bone);
  padding: 10px;
  border-radius: 10px;
}
.ai-label {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.18em;
  color: var(--sunset);
}
.ai-body {
  font-size: 11px;
  line-height: 1.4;
  color: rgba(250,247,242,0.9);
  margin: 6px 0 8px;
}
.ai-body strong { color: #fff; font-weight: 500; }
.ai-actions { display: flex; gap: 6px; }
.ai-btn {
  font-size: 10px;
  padding: 5px 10px;
  border-radius: 6px;
  background: var(--sunset);
  color: #fff;
  cursor: pointer;
  font-weight: 500;
}
.ai-btn.ghost { background: transparent; border: 1px solid rgba(250,247,242,0.2); color: rgba(250,247,242,0.7); }

.mock-couples { display: flex; flex-direction: column; }

/* —— VOICE CHAT (step 0) —— */
.mock-voice {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 16px 14px;
  height: 100%;
  background: #F5E6D8;
  border: 1px solid rgba(232,93,60,0.25);
  border-radius: 14px;
  text-align: center;
}
.voice-header {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 auto 18px;
  max-width: 100%;
  width: fit-content;
}
.voice-header .voice-bars {
  width: auto;
  flex: 0 0 auto;
}
.voice-meta-stage + .voice-quote-stage,
.voice-meta-stage {
  margin-top: 0;
}
.voice-quote-stage {
  margin-top: 2px;
}
.voice-label {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--sunset);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.voice-mic {
  flex: 0 0 auto;
  display: block;
}
.voice-meta {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--sunset);
}
.voice-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sunset);
  animation: voice-pulse 1.2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes voice-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: 0.45; transform: scale(0.7); }
}
.voice-meta-stage {
  position: relative;
  height: 14px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.voice-meta-stage .voice-meta {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: translateY(3px);
  transition: opacity 500ms ease, transform 500ms ease;
  white-space: nowrap;
}
.voice-meta-stage .voice-meta.is-active {
  opacity: 1;
  transform: translateY(0);
}
.voice-bars {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 2px;
  height: 22px;
  flex: 1;
  min-width: 0;
}
.voice-header .voice-bars {
  max-width: none;
}
.voice-bar {
  width: 2px;
  background: var(--sunset);
  border-radius: 1px;
  transition: height 120ms linear;
}
.voice-quote {
  font-family: var(--display);
  font-style: italic;
  font-size: 15px;
  line-height: 1.4;
  color: #2A1F1A;
  max-width: 200px;
  font-feature-settings: "liga" 0, "dlig" 0, "calt" 0, "ss01" 0, "ss02" 0, "ss03" 0;
  font-variant-ligatures: none;
  font-variant: normal;
  -webkit-font-feature-settings: "liga" 0, "dlig" 0, "calt" 0;
}
.voice-quote-stage {
  position: relative;
  width: 100%;
  max-width: 240px;
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.voice-quote-stage .voice-quote {
  position: absolute;
  inset: 0;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 600ms ease, transform 600ms ease;
  pointer-events: none;
}
.voice-quote-stage .voice-quote.is-active {
  opacity: 1;
  transform: translateY(0);
}
