/* ============================================================
   DuctusMed — Marka Teması (UI Pass Phase 1)
   ------------------------------------------------------------
   Bu dosya app.css'i DEĞİŞTİRMEZ; yalnızca CSS değişkenlerini ve
   birkaç bileşeni override eder (cascade). app.css linkinden SONRA
   yüklenir. Geri almak için base.html'deki link satırını kaldırmak
   yeterlidir.

   Renk yönü: kırmızı (#e63946) -> indigo/mor (var(--color-primary)).
   Navbar: koyu -> beyaz (ince alt çizgi, koyu metin, indigo CTA).
   NOT: Font (Plus Jakarta Sans) bu PR'da YOK — CSP style-src/font-src
   yalnızca 'self' izniyle Google Fonts'u bloklar. Font ayrı bir PR'da
   self-host (.woff2) olarak eklenecek. Şimdilik sistem fontu korunur.
   ============================================================ */

/* Legacy aliases + base typography: single source, moved from base.html inline (convergence). */
/* --indigo-soft collapsed onto --color-primary-light (both var(--color-primary-soft)). */
:root{--indigo:var(--color-primary);--indigo-l:var(--color-primary-d);--indigo-soft:var(--color-primary-light);--slate:var(--color-text);--slate-m:var(--color-text);--muted:var(--color-text-muted);--border:var(--color-border);--surf:var(--color-surface)}
/* instructor-base.html's token names (--line/--ink/--brand), aliased so pages that
   reuse its .ip-btn component but extend the plain "base" layout (account-addresses,
   account-address-form, book-detail) don't silently lose their borders/buttons to an
   undefined custom property. */
:root{--line:var(--color-border);--ink:var(--color-text);--brand:var(--color-primary)}
body{font-family:var(--font-sans)}

/* Yumuşak indigo "ışık" arka plan — çok hafif, dikkat dağıtmaz. */
body {
  background:
    radial-gradient(circle at top left, rgba(99, 102, 241, 0.06), transparent 30rem),
    var(--color-bg);
}

/* ---- Navbar: koyu -> beyaz ---- */
.site-nav {
  background: var(--color-surface-card);
  border-bottom: 1px solid var(--color-border);
  box-shadow: 0 1px 2px rgba(30, 27, 46, 0.04);
}

/* Nav linkleri artık beyaz zeminde: koyu metin. :not(.btn):not(.n-logo)
   şart: nav CTA'ları ("Giriş Yap"/"Ücretsiz Dene") .btn/.btn-outline
   sınıflarını kullanan <a> etiketleri, marka linki de .n-logo — bu kural
   onları da eşleştirip (element+class, .btn/.n-logo'nun tek class'ından
   daha spesifik) doğru renklerini eziyordu: CTA'lar marka indigo yerine
   düz metin rengine, marka linki ise .n-logo'nun kendi (koyu "Ductus" +
   indigo "Med" iki tonlu) rengi yerine tamamen indigoya boyanıyordu.
   :not(.n-links a) de aynı sebeple gerekli — bir önceki yorum "n-links a
   zaten bu kuralı geçersiz kılıyor" diyordu ama specificity'yi ölçmeden:
   :not(.btn):not(.n-logo) tek başına (0,3,1), .n-links a[aria-current]'ın
   (0,2,1) ve düz .n-links a'nın (0,1,1) specificity'sini eziyor — yani her
   merkez nav linki (aktif olsun olmasın) kendi rengini/kalınlığını bu
   kurala kaptırıyordu. */
.site-nav a:not(.btn):not(.n-logo):not(.n-links a) {
  color: var(--color-text);
}

.site-nav a:hover:not(.btn):not(.n-logo):not(.n-links a) {
  color: var(--color-primary);
}

/* ============================================================
   Design system foundation (#16 reskin) - additive tokens +
   reusable component classes. No existing rule is modified;
   pages adopt these incrementally in later reskin PRs.
   ============================================================ */
/* Headings lead with Instrument Serif (self-hosted in a later PR); h1/h2 are a
   no-op today since app.css already sets --font-display to Georgia. Body font
   stays owned by base.html, which wins the cascade. */
h1, h2 {
  font-family: "Instrument Serif", var(--font-display);
}
/* Card */
.n-card {
  background: var(--color-surface);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-5) var(--space-6);
  transition: box-shadow .2s ease, transform .2s ease;
}
.n-card:hover { box-shadow: var(--shadow-md); }
/* Soft panel */
.n-soft-panel {
  background: var(--color-bg);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4) var(--space-5);
}
/* Section label (uppercase eyebrow) */
.n-section-label {
  font-size: .72rem;
  font-weight: var(--fw-bold);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
/* Stat / KPI card: removed. This was the last of the five independent copies
   of the number+caption tile shape; admin-content-health.html, its only
   consumer, is on app.css's shared .stat-tile (component-card) as of issue
   #211. Use {{template "component-card" ...}} — see internal/uicatalog/card.go. */
/* Consistent digit alignment for id/count/amount table columns; harmless no-op on non-numeric text. */
table td { font-variant-numeric: tabular-nums; }
/* Badge */
.n-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .72rem;
  font-weight: var(--fw-bold);
  padding: .2rem .6rem;
  border-radius: var(--radius-full);
  background: var(--color-primary-light);
  color: var(--color-primary-d);
  border: 1.5px solid transparent;
}
.n-badge-success { background: var(--color-success-soft); color: var(--color-success); border-color: var(--color-success-border); }
.n-badge-warning { background: var(--color-warning-soft); color: var(--color-warning); border-color: var(--color-warning-border); }
.n-badge-danger  { background: var(--color-danger-soft);  color: var(--color-danger);  border-color: var(--color-danger-border); }


/* --- Auth screens (reskin pilot #16): centered card layout --- */
.n-auth { max-width: 420px; margin: var(--space-10) auto; }
.n-auth h1 { margin: 0 0 .35rem; font-size: 1.5rem; }
.n-auth-sub { color: var(--color-text-muted); font-size: .95rem; margin: 0 0 var(--space-6); }
.n-auth .form-group { margin-bottom: var(--space-4); }
.n-auth .btn { width: 100%; }
.n-auth-alt { margin-top: var(--space-5); text-align: center; font-size: .9rem; color: var(--color-text-muted); }
