/* ============================================================
   SX — Legal Pages (Privacy Policy · Terms of Service)
   sx.teamstogether.org · css/sx-legal.css
   Replaces Tailwind CDN dependency.
   Conforms to SX design system (settings.css canonical vars)
   No backdrop-filter. Flat iOS-style cards. Dual-mode via
   [data-theme="dark"] on <html>.
   ============================================================ */

/* ── 1. Canonical tokens — light ── */
:root {
  --bg-color:       #f2f2f7;
  --card-bg:        #ffffff;
  --card-border:    rgba(0,0,0,.06);
  --text-primary:   #000000;
  --text-secondary: #8e8e93;
  --accent:         #d80201;
  --divider:        rgba(60,60,67,.12);
  --shadow-sm:      0 1px 3px rgba(0,0,0,.08);

  --font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text",
               "Segoe UI", Roboto, sans-serif;
  --font-mono: "SF Mono", "DM Mono", "Fira Code", Consolas, monospace;

  --radius:    16px;
  --radius-sm: 12px;
  --transition: .2s ease;
}

/* ── 2. Dark-mode overrides ── */
[data-theme="dark"] {
  --bg-color:       #000000;
  --card-bg:        #1c1c1e;
  --card-border:    rgba(255,255,255,.06);
  --text-primary:   #ffffff;
  --text-secondary: #8e8e93;
  --accent:         #bb0000;
  --divider:        rgba(84,84,88,.35);
  --shadow-sm:      0 2px 8px rgba(0,0,0,.45);
}

/* ── 3. Reset ── */
*, *::before, *::after {
  box-sizing: border-box;
  margin:     0;
  padding:    0;
}

html { scroll-behavior: smooth; }

body {
  font-family:            var(--font-sans);
  background-color:       var(--bg-color);
  color:                  var(--text-primary);
  min-height:             100vh;
  line-height:            1.6;
  -webkit-font-smoothing: antialiased;
}

/* ── 4. Header ── */
.legal-header {
  background-color: var(--card-bg);
  border-bottom:    1px solid var(--divider);
  box-shadow:       var(--shadow-sm);
  padding:          20px 20px;
}

.legal-header-inner {
  max-width: 720px;
  margin:    0 auto;
  display:   flex;
  align-items: center;
  gap:       12px;
}

/* Back chevron — matches nav-back pattern from other pages */
.legal-back {
  width:            36px;
  height:           36px;
  border-radius:    var(--radius-sm);
  border:           1px solid var(--divider);
  background-color: var(--bg-color);
  display:          flex;
  align-items:      center;
  justify-content:  center;
  color:            var(--text-secondary);
  font-size:        15px;
  cursor:           pointer;
  text-decoration:  none;
  flex-shrink:      0;
  transition:       background-color var(--transition), color var(--transition);
}

.legal-back:hover {
  background-color: var(--divider);
  color:            var(--text-primary);
}

.legal-header h1 {
  font-size:      20px;
  font-weight:    700;
  letter-spacing: -.02em;
  color:          var(--text-primary);
}

/* ── 5. Main container ── */
.legal-main {
  max-width: 720px;
  margin:    0 auto;
  padding:   28px 16px 60px;
}

/* ── 6. Document card ── */
.legal-card {
  background-color: var(--card-bg);
  border:           1px solid var(--card-border);
  border-radius:    var(--radius);
  box-shadow:       var(--shadow-sm);
  padding:          28px 24px;
}

/* ── 7. Document heading block ── */
.legal-doc-title {
  font-size:      24px;
  font-weight:    700;
  letter-spacing: -.03em;
  color:          var(--text-primary);
  margin-bottom:  6px;
}

.legal-date {
  font-size:   13px;
  color:       var(--text-secondary);
  font-family: var(--font-mono);
  margin-bottom: 20px;
}

.legal-date strong { color: var(--text-primary); font-weight: 600; }

.legal-intro {
  font-size:     15px;
  color:         var(--text-secondary);
  line-height:   1.65;
  padding-bottom:20px;
  border-bottom: 1px solid var(--divider);
}

/* ── 8. Sections ── */
.legal-section {
  margin-top:    28px;
  padding-top:   0;
}

.legal-section + .legal-section {
  border-top: 1px solid var(--divider);
  padding-top: 28px;
}

.legal-section h3 {
  font-size:      17px;
  font-weight:    700;
  letter-spacing: -.02em;
  color:          var(--text-primary);
  margin-bottom:  12px;
}

.legal-section p {
  font-size:   14px;
  color:       var(--text-secondary);
  line-height: 1.65;
}

.legal-section p + p { margin-top: 10px; }

/* ── 9. Inset definition / info boxes ── */
.legal-box {
  background-color: var(--bg-color);
  border:           1px solid var(--divider);
  border-radius:    var(--radius-sm);
  padding:          16px 18px;
  margin-top:       14px;
}

.legal-box h4 {
  font-size:     13px;
  font-weight:   700;
  color:         var(--text-primary);
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.legal-box p {
  font-size:   13px;
  color:       var(--text-secondary);
  line-height: 1.6;
}

/* ── 10. Lists ── */
.legal-list {
  list-style:    none;
  margin-top:    12px;
  display:       flex;
  flex-direction:column;
  gap:           8px;
}

.legal-list li {
  display:     flex;
  align-items: flex-start;
  gap:         10px;
  font-size:   14px;
  color:       var(--text-secondary);
  line-height: 1.55;
}

/* Bullet dot */
.legal-list li::before {
  content:          '';
  width:            6px;
  height:           6px;
  border-radius:    50%;
  background-color: var(--accent);
  flex-shrink:      0;
  margin-top:       6px;
}

.legal-list li strong {
  color:       var(--text-primary);
  font-weight: 600;
}

/* ── 11. Links ── */
a {
  color:           var(--accent);
  text-decoration: none;
  transition:      opacity var(--transition);
}

a:hover { opacity: .72; }

/* ── 12. Section pill labels (numbered sections in ToS) ── */
.legal-section-num {
  display:          inline-block;
  font-size:        10px;
  font-weight:      700;
  text-transform:   uppercase;
  letter-spacing:   .12em;
  color:            var(--accent);
  background-color: rgba(0,122,255,.08);
  border:           1px solid rgba(0,122,255,.18);
  border-radius:    20px;
  padding:          3px 10px;
  margin-bottom:    10px;
  font-family:      var(--font-mono);
}

[data-theme="dark"] .legal-section-num {
  background-color: rgba(10,132,255,.12);
  border-color:     rgba(10,132,255,.28);
}

/* ── 13. Contact block ── */
.legal-contact {
  background-color: var(--bg-color);
  border:           1px solid var(--divider);
  border-radius:    var(--radius-sm);
  padding:          16px 18px;
  margin-top:       14px;
}

.legal-contact-row {
  display:       flex;
  align-items:   center;
  gap:           10px;
  padding:       9px 0;
  border-bottom: 1px solid var(--divider);
  font-size:     14px;
}

.legal-contact-row:last-child { border-bottom: none; }

.legal-contact-label {
  color:       var(--text-secondary);
  font-size:   12px;
  font-weight: 600;
  min-width:   56px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* ── 14. Footer ── */
.legal-footer {
  text-align:  center;
  padding:     20px 16px 40px;
  font-size:   12px;
  color:       var(--text-secondary);
}

/* ══════════════════════════════════════════════════════════════
   DESKTOP WIDENING  @media (min-width:900px)
   Legal pages are linear prose — no two-column layout.
   Desktop just widens the container and increases type comfort.
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 900px) {

  .legal-header { padding: 22px 32px; }

  .legal-header-inner,
  .legal-main {
    max-width: 840px;
  }

  .legal-main { padding: 36px 24px 80px; }

  .legal-card { padding: 36px 36px; }

  .legal-doc-title { font-size: 28px; }

  .legal-section h3 { font-size: 18px; }

  .legal-section p,
  .legal-list li   { font-size: 15px; }

  .legal-intro { font-size: 16px; }
}