/* ============================================================
   Team Summit Calendar — demo stylesheet
   Brand palette per PRD §7.1 (extracted from official logo SVGs)
   ============================================================ */

:root {
  /* Brand */
  --brand-cyan: #00A6E7;
  --brand-cyan-dark: #008BC4;
  --brand-ink: #231F20;
  --brand-red: #BA3E3E;
  --brand-olive: #69673B;

  /* Surfaces */
  --bg: #ffffff;
  --bg-soft: #F5F8FA;
  --bg-cyan-tint: #E5F4FB;
  --border: #E4E9EC;
  --border-strong: #C8D0D5;

  /* Text */
  --text: #231F20;
  --text-muted: #5A5F62;
  --text-on-cyan: #ffffff;

  /* Status */
  --status-yes: #2E7D32;
  --status-no: #BA3E3E;
  --status-maybe: #B58900;

  /* Spacing */
  --pad-xs: 4px;
  --pad-sm: 8px;
  --pad-md: 12px;
  --pad-lg: 16px;
  --pad-xl: 24px;

  /* Shape */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 9999px;

  /* Motion */
  --duration-quick: 150ms;
  --duration-default: 250ms;
}

/* ============================================================
   Reset + base
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: 'Work Sans', system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.4;
  color: var(--text);
  background: var(--bg-soft);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
  font-family: 'ADLaM Display', Georgia, serif;
  font-weight: 400;
  margin: 0;
}

button {
  font-family: inherit;
  font-size: inherit;
  cursor: pointer;
  border: none;
  background: none;
  color: inherit;
  padding: 0;
}

a { color: var(--brand-cyan-dark); }

/* iOS input zoom prevention */
input, select, textarea { font-size: 16px; }

/* ============================================================
   Layout primitives
   ============================================================ */

.app {
  max-width: 600px;
  margin: 0 auto;
  background: var(--bg);
  min-height: 100vh;
}

.app-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  padding: var(--pad-md) var(--pad-lg);
  display: flex;
  align-items: center;
  gap: var(--pad-md);
  min-height: 56px;
}

.app-header .logo {
  height: 32px;
  width: auto;
  flex-shrink: 0;
}

.app-header .title {
  flex: 1;
  font-family: 'ADLaM Display', Georgia, serif;
  font-size: 20px;
  text-align: center;
}

.app-header .pill {
  display: inline-flex;
  align-items: center;
  gap: var(--pad-xs);
  padding: 6px 12px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
  flex-shrink: 0;
}

.app-subheader {
  padding: var(--pad-sm) var(--pad-lg);
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
}

.app-subheader .changes-link {
  color: var(--brand-cyan-dark);
  font-weight: 500;
  text-decoration: none;
}

.app-content {
  padding: var(--pad-lg);
}

/* ============================================================
   Cards (event card pattern)
   ============================================================ */

.card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--pad-lg);
  margin-bottom: var(--pad-md);
}

.card-time {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.card-title {
  font-size: 18px;
  font-weight: 600;
  margin: var(--pad-xs) 0 var(--pad-sm);
}

.card-location {
  font-size: 14px;
  color: var(--text-muted);
  margin-bottom: var(--pad-md);
}

.coach-note {
  border-left: 3px solid var(--brand-cyan);
  background: var(--bg-cyan-tint);
  padding: var(--pad-sm) var(--pad-md);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  margin-bottom: var(--pad-md);
  font-size: 14px;
}

.coach-note .label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  color: var(--brand-cyan-dark);
  text-transform: uppercase;
  display: block;
  margin-bottom: var(--pad-xs);
}

/* ============================================================
   RSVP buttons
   ============================================================ */

.rsvp-row {
  display: flex;
  align-items: center;
  gap: var(--pad-md);
  margin: var(--pad-sm) 0;
}

.rsvp-row .athlete {
  flex: 1;
  font-weight: 500;
}

.rsvp-buttons {
  display: flex;
  gap: var(--pad-sm);
}

.rsvp-btn {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md);
  border: 2px solid var(--border-strong);
  background: var(--bg);
  font-size: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all var(--duration-quick);
}

.rsvp-btn:active { transform: scale(0.95); }

.rsvp-btn.selected.yes {
  background: var(--status-yes);
  border-color: var(--status-yes);
  color: white;
}
.rsvp-btn.selected.no {
  background: var(--status-no);
  border-color: var(--status-no);
  color: white;
}
.rsvp-btn.selected.maybe {
  background: var(--status-maybe);
  border-color: var(--status-maybe);
  color: white;
}

/* ============================================================
   Day section headers
   ============================================================ */

.day-header {
  font-family: 'ADLaM Display', Georgia, serif;
  font-size: 18px;
  color: var(--brand-cyan-dark);
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: var(--pad-lg) 0 var(--pad-sm);
  border-bottom: 2px solid var(--bg-cyan-tint);
  margin-bottom: var(--pad-md);
  display: flex;
  align-items: center;
  gap: var(--pad-sm);
}

.day-header.today::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--brand-cyan);
}

/* ============================================================
   Buttons (actions)
   ============================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pad-sm);
  padding: 12px 20px;
  min-height: 48px;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: 16px;
  transition: all var(--duration-quick);
  text-decoration: none;
}

.btn-primary {
  background: var(--brand-cyan);
  color: var(--text-on-cyan);
}
.btn-primary:active { background: var(--brand-cyan-dark); transform: scale(0.98); }

.btn-secondary {
  background: var(--bg-soft);
  color: var(--text);
  border: 1px solid var(--border-strong);
}

.btn-block {
  display: flex;
  width: 100%;
}

/* ============================================================
   Demo notice (the "what is this?" floating button)
   ============================================================ */

.demo-pill {
  position: fixed;
  bottom: 16px;
  right: 16px;
  z-index: 50;
  background: var(--brand-ink);
  color: white;
  padding: 10px 16px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  cursor: pointer;
}

.feedback-pill {
  position: fixed;
  bottom: 64px;
  right: 16px;
  z-index: 50;
  background: var(--brand-cyan);
  color: white;
  padding: 12px 18px;
  border-radius: var(--radius-pill);
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(0, 166, 231, 0.45);
  cursor: pointer;
  border: none;
}
.feedback-pill:active { background: var(--brand-cyan-dark); }

/* ============================================================
   Modal / sheet
   ============================================================ */

.sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 100;
  display: none;
  align-items: flex-end;
  justify-content: center;
}
.sheet-backdrop.open { display: flex; }

.sheet {
  background: var(--bg);
  width: 100%;
  max-width: 600px;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  padding: var(--pad-lg);
}

.sheet-handle {
  width: 40px;
  height: 4px;
  background: var(--border-strong);
  border-radius: var(--radius-pill);
  margin: 0 auto var(--pad-lg);
}

.sheet h2 {
  font-size: 22px;
  margin-bottom: var(--pad-sm);
}

.sheet p {
  color: var(--text-muted);
  margin: 0 0 var(--pad-lg);
}

/* ============================================================
   Landing page (persona picker)
   ============================================================ */

.landing {
  padding: var(--pad-xl);
  text-align: center;
}

.landing .hero-logo {
  margin: var(--pad-xl) auto var(--pad-lg);
  max-width: 200px;
}

.landing h1 {
  font-size: 28px;
  margin-bottom: var(--pad-sm);
}

.landing .lede {
  color: var(--text-muted);
  font-size: 16px;
  margin-bottom: var(--pad-xl);
  line-height: 1.5;
}

.persona-card {
  display: block;
  text-align: left;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: var(--pad-lg);
  margin-bottom: var(--pad-md);
  text-decoration: none;
  color: var(--text);
  transition: all var(--duration-quick);
}

.persona-card:active {
  background: var(--bg-cyan-tint);
  border-color: var(--brand-cyan);
}

.persona-card .icon {
  font-size: 32px;
  margin-bottom: var(--pad-sm);
}

.persona-card h3 {
  font-size: 18px;
  font-family: 'Work Sans', sans-serif;
  font-weight: 600;
  margin-bottom: var(--pad-xs);
}

.persona-card p {
  font-size: 14px;
  color: var(--text-muted);
  margin: 0;
}

.demo-notice {
  background: var(--bg-cyan-tint);
  border: 1px solid var(--brand-cyan);
  border-radius: var(--radius-md);
  padding: var(--pad-md);
  margin: var(--pad-xl) 0;
  font-size: 14px;
  color: var(--brand-ink);
  text-align: left;
}

.demo-notice strong { color: var(--brand-cyan-dark); }

footer {
  text-align: center;
  font-size: 12px;
  color: var(--text-muted);
  padding: var(--pad-xl) var(--pad-lg);
}
