/* ---------- Auth (login) screen -- standalone, no shell ---------- */
.auth-screen {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: var(--sp-5);
}
.auth-card {
  width: 100%; max-width: 400px; padding: var(--sp-6);
  background: var(--c-panel);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-elevated);
}
.auth-card__brand { display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); margin-bottom: var(--sp-5); text-align: center; }
/* The image itself (assets/brand-mark.png) already carries its own dark
   app-icon background and corner radius -- this wrapper just adds lift. */
.auth-card__mark { display: flex; align-items: center; justify-content: center; filter: drop-shadow(0 10px 24px rgba(37, 99, 235, 0.5)); margin-bottom: var(--sp-1); }
.auth-card__title { font-size: var(--fs-lg); font-weight: 700; }
.auth-card__sub { font-size: var(--fs-xs); color: var(--c-text-muted); text-transform: uppercase; letter-spacing: 0.04em; margin-top: 2px; }
.auth-card__tagline {
  margin-top: var(--sp-4); font-size: var(--fs-md); font-weight: 600; line-height: 1.4;
  background: var(--c-accent-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.auth-card form { display: flex; flex-direction: column; gap: var(--sp-4); }
.auth-card__note { font-size: 11px; color: var(--c-text-faint); text-align: center; margin-top: var(--sp-4); line-height: 1.5; }

/* ---------- Home ---------- */
.home-setup-banner {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4);
  flex-wrap: wrap; padding: var(--sp-4) var(--sp-5); margin-top: var(--sp-4);
  background: var(--c-panel); border: 1px solid var(--c-border); border-radius: var(--r-lg);
}
.home-setup-banner__title { font-weight: 700; font-size: var(--fs-md); }
.home-setup-banner__sub { color: var(--c-text-muted); font-size: var(--fs-sm); margin-top: 2px; max-width: 48ch; }

.home-hero { padding: var(--sp-4) 0 var(--sp-6); max-width: 640px; }
.home-hero__eyebrow { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--c-accent-2); }
.home-hero__title { font-size: var(--fs-3xl); font-weight: 700; letter-spacing: -0.015em; margin-top: var(--sp-2); line-height: 1.15; }
.home-hero__sub { margin-top: var(--sp-3); color: var(--c-text-muted); font-size: var(--fs-base); line-height: 1.55; max-width: 52ch; }
.home-hero__actions { display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap; margin-top: var(--sp-5); }
.home-hero__link { font-size: var(--fs-sm); font-weight: 600; color: var(--c-text-muted); }
.home-hero__link:hover { color: var(--c-accent-2); }

.home-recent { padding-top: var(--sp-5); border-top: 1px solid var(--c-border); }
.home-recent__head { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--c-text-muted); margin-bottom: var(--sp-4); }
.home-empty__body { color: var(--c-text-muted); font-size: var(--fs-sm); max-width: 48ch; margin: 0 0 var(--sp-3); line-height: 1.55; }
.home-empty__body:first-of-type { color: var(--c-text); font-weight: 600; }
.home-empty__body + .btn { margin-top: var(--sp-2); }

.section-title { font-size: var(--fs-md); font-weight: 700; margin-bottom: var(--sp-4); }
.section { margin-bottom: var(--sp-6); }

.session-row {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--c-border);
}
.session-row:last-child { border-bottom: none; }
.session-row__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.session-row__name { font-weight: 600; font-size: var(--fs-sm); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-row__time { font-size: var(--fs-xs); color: var(--c-text-muted); }
.session-row__objective { font-size: var(--fs-xs); color: var(--c-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 46ch; }
.session-row__duration { font-size: var(--fs-xs); color: var(--c-text-muted); }
.session-row__actions { display: flex; align-items: center; gap: var(--sp-2); flex: none; }

/* ---------- Call prep ---------- */
.prep-setup-notice {
  font-size: var(--fs-sm); color: var(--c-text-muted); padding: var(--sp-3) var(--sp-4);
  background: var(--c-panel); border: 1px solid var(--c-border); border-radius: var(--r-md);
  margin-bottom: var(--sp-4);
}
.prep-setup-notice a { color: var(--c-accent-2); font-weight: 600; }

.prep-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--sp-6); align-items: start; }
@media (max-width: 980px) { .prep-layout { grid-template-columns: 1fr; } .prep-brief { position: static !important; } }
.prep-form { display: flex; flex-direction: column; gap: var(--sp-5); }

.prep-advanced { border-top: 1px solid var(--c-border); padding-top: var(--sp-4); }
.prep-advanced__toggle {
  cursor: pointer; font-size: var(--fs-sm); font-weight: 600; color: var(--c-accent-2);
  list-style: none; user-select: none;
}
.prep-advanced__toggle::-webkit-details-marker { display: none; }
.prep-advanced[open] .prep-advanced__toggle { color: var(--c-text-muted); }
.prep-advanced__fields { display: flex; flex-direction: column; gap: var(--sp-4); margin-top: var(--sp-4); }

.prep-brief {
  position: sticky; top: var(--sp-6);
  background: var(--c-panel);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  padding: var(--sp-5);
}
.brief__eyebrow { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-accent-2); margin-bottom: var(--sp-3); }
.brief__prospect { font-size: var(--fs-md); font-weight: 700; margin-bottom: var(--sp-4); padding-bottom: var(--sp-4); border-bottom: 1px solid var(--c-border); }
.brief__prospect.is-empty { color: var(--c-text-faint); font-weight: 500; font-style: italic; }
.brief__rows { display: flex; flex-direction: column; gap: var(--sp-3); }
.brief__row-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--c-text-muted); font-weight: 700; margin-bottom: 2px; }
.brief__row-value { font-size: var(--fs-sm); color: var(--c-text-soft); white-space: pre-wrap; line-height: 1.45; }
.brief__empty { color: var(--c-text-faint); font-size: var(--fs-sm); font-style: italic; }
.brief__status {
  display: flex; align-items: center; gap: 8px; margin-top: var(--sp-5); padding-top: var(--sp-4);
  border-top: 1px solid var(--c-border); font-size: var(--fs-xs); font-weight: 700;
  letter-spacing: 0.04em; text-transform: uppercase; color: var(--c-text-faint);
}
.brief__status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--c-text-faint); }
.brief__status.is-ready { color: var(--c-success); }
.brief__status.is-ready .brief__status-dot { background: var(--c-success); }

/* ---------- Waiting-for-identity screen ---------- */
.waiting-screen { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--sp-5); min-height: 60vh; text-align: center; }
.waiting-ring { width: 84px; height: 84px; border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; }
.waiting-ring::before, .waiting-ring::after {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  border: 2px solid rgba(56, 189, 248, 0.35);
  animation: ssc-pulse 2.2s var(--ease) infinite;
}
.waiting-ring::after { animation-delay: 1.1s; }
.waiting-ring__core { width: 52px; height: 52px; border-radius: 50%; background: var(--c-accent-grad); display: flex; align-items: center; justify-content: center; box-shadow: 0 16px 40px -14px rgba(37, 99, 235, 0.7); }
@keyframes ssc-pulse { 0% { transform: scale(0.9); opacity: 0.9; } 100% { transform: scale(1.6); opacity: 0; } }
.waiting-screen__title { font-size: var(--fs-lg); font-weight: 700; }
.waiting-screen__body { color: var(--c-text-muted); max-width: 44ch; font-size: var(--fs-sm); }
.waiting-steps { display: flex; flex-direction: column; gap: var(--sp-2); text-align: left; margin-top: var(--sp-3); }
.waiting-step { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-sm); color: var(--c-text-muted); }
.waiting-step__dot { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--c-border-strong); flex: none; display: flex; align-items: center; justify-content: center; }
.waiting-step.is-done .waiting-step__dot { border-color: var(--c-success); background: rgba(52, 211, 153, 0.16); color: var(--c-success); }
.waiting-step.is-done { color: var(--c-text); }
.waiting-step.is-active .waiting-step__dot { border-color: var(--c-accent-2); }
.waiting-screen__cancel { margin-top: var(--sp-2); }
.waiting-screen__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--sp-3); margin-top: var(--sp-2); }

/* ---------- Recap ---------- */
.recap-hero { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); margin-bottom: var(--sp-5); flex-wrap: wrap; }
.recap-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-4); }
@media (max-width: 900px) { .recap-grid { grid-template-columns: 1fr; } }
.recap-card__title { display: flex; align-items: center; gap: var(--sp-2); font-weight: 700; margin-bottom: var(--sp-3); font-size: var(--fs-base); }
.recap-list { display: flex; flex-direction: column; gap: var(--sp-2); }
.recap-list li { font-size: var(--fs-sm); color: var(--c-text-soft); padding-left: var(--sp-3); position: relative; }
.recap-list li::before { content: ""; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; border-radius: 50%; background: var(--c-accent-2); }

/* ---------- Settings ---------- */
.settings-sections { display: flex; flex-direction: column; gap: var(--sp-6); max-width: 560px; }
.settings-section__title { font-size: var(--fs-xs); font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--c-accent-2); margin-bottom: var(--sp-3); }
.settings-row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-4); padding: var(--sp-3) 0; border-bottom: 1px solid var(--c-border); }
.settings-section .settings-row:last-child { border-bottom: none; }
.settings-row__label { font-weight: 600; font-size: var(--fs-sm); flex: none; }
.settings-row__value { font-size: var(--fs-sm); color: var(--c-text-muted); text-align: right; max-width: 32ch; }
