/* ============================================
   ÖĞRETMENLER İÇİN YAPAY ZEKÂ
   Tasarım Sistemi
   ============================================ */

:root {
  /* Renk Paleti - Canlı & Neşeli */
  --bg: #FBF7EE;
  --bg-elevated: #FFFFFF;
  --bg-soft: #F3EDDF;
  --ink: #1F1B16;
  --ink-2: #4A4238;
  --ink-3: #7A7065;
  --line: rgba(31, 27, 22, 0.10);
  --line-strong: rgba(31, 27, 22, 0.22);

  /* Aksanlar */
  --moss: #4F9D52;        /* Ana yeşil */
  --moss-deep: #2E6F31;
  --moss-soft: #D9EDCF;
  --sun: #F2A63B;         /* Güneş turuncu */
  --sun-soft: #FCE4BD;
  --coral: #E86A4F;       /* Mercan */
  --coral-soft: #F9D4C6;
  --lavender: #8A7AD1;    /* Lavanta */
  --lavender-soft: #DED7F3;
  --sky: #5CA5C7;         /* Gök */
  --sky-soft: #CDE4EE;
  --rose: #D6739A;        /* Gül */
  --rose-soft: #F3D5E1;

  /* Tipografi */
  --font-display: 'Bricolage Grotesque', ui-sans-serif, system-ui, sans-serif;
  --font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* Radius */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-pill: 999px;

  /* Shadow */
  --shadow-sm: 0 1px 2px rgba(31, 27, 22, 0.06), 0 2px 6px rgba(31, 27, 22, 0.04);
  --shadow-md: 0 4px 12px rgba(31, 27, 22, 0.08), 0 2px 4px rgba(31, 27, 22, 0.04);
  --shadow-lg: 0 12px 32px rgba(31, 27, 22, 0.10), 0 4px 8px rgba(31, 27, 22, 0.05);
  --shadow-pop: 0 8px 0 0 rgba(31, 27, 22, 0.08);
}

/* Dark mode */
[data-theme="dark"] {
  --bg: #1A1814;
  --bg-elevated: #26221D;
  --bg-soft: #2E2922;
  --ink: #FBF7EE;
  --ink-2: #D8D1C4;
  --ink-3: #9A9184;
  --line: rgba(251, 247, 238, 0.10);
  --line-strong: rgba(251, 247, 238, 0.22);
  --moss-soft: #2C4530;
  --sun-soft: #4D3A1E;
  --coral-soft: #4A2A22;
  --lavender-soft: #3A3252;
  --sky-soft: #1E3D4B;
  --rose-soft: #4A2E3B;
}

/* Density */
[data-density="compact"] {
  --space-5: 16px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 48px;
}

/* Card layout variants */
[data-cards="sticker"] .mod-card {
  transform: none;
}
[data-cards="grid"] .mod-grid {
  grid-template-columns: repeat(4, 1fr) !important;
}
[data-cards="list"] .mod-grid {
  grid-template-columns: 1fr !important;
}
[data-cards="list"] .mod-card {
  display: grid !important;
  grid-template-columns: 80px 1fr auto !important;
  align-items: center;
  padding: var(--space-4) var(--space-5) !important;
  min-height: 0 !important;
}
[data-cards="list"] .mod-card .mod-cover {
  width: 64px; height: 64px; min-height: 0 !important;
}
[data-cards="list"] .mod-card .mod-body {
  padding: 0 !important;
}

* { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Subtle noise */
body::before {
  content: '';
  position: fixed; inset: 0;
  pointer-events: none;
  opacity: 0.35;
  z-index: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.12  0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0.04 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0;
  color: var(--ink);
}

p { margin: 0; }

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

/* ============================================
   KOMPONENTLER
   ============================================ */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 14px;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn-primary {
  background: var(--ink);
  color: var(--bg);
}
.btn-primary:hover { background: var(--moss-deep); }
.btn-accent {
  background: var(--moss);
  color: #fff;
  box-shadow: var(--shadow-pop);
}
.btn-accent:hover { transform: translateY(-1px); box-shadow: 0 10px 0 0 rgba(31,27,22,0.1); }
.btn-ghost {
  background: transparent;
  color: var(--ink);
  border: 1.5px solid var(--line-strong);
}
.btn-ghost:hover { background: var(--bg-soft); }
.btn-sm { padding: 7px 14px; font-size: 13px; }

.chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--r-pill);
  background: var(--bg-soft);
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-2);
  border: 1px solid var(--line);
}
.chip-moss { background: var(--moss-soft); color: var(--moss-deep); }
.chip-sun { background: var(--sun-soft); color: #8A5A1A; }
.chip-coral { background: var(--coral-soft); color: #9B3520; }
.chip-lavender { background: var(--lavender-soft); color: #3D2F6E; }
.chip-sky { background: var(--sky-soft); color: #1E5A75; }
.chip-rose { background: var(--rose-soft); color: #7B2A4E; }

[data-theme="dark"] .chip-moss { color: #A9DDA0; }
[data-theme="dark"] .chip-sun { color: #F2C383; }
[data-theme="dark"] .chip-coral { color: #F0A78E; }
[data-theme="dark"] .chip-lavender { color: #B9AEE3; }
[data-theme="dark"] .chip-sky { color: #9FC8D8; }
[data-theme="dark"] .chip-rose { color: #EAA7BF; }

.card {
  background: var(--bg-elevated);
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
}

/* TOPBAR */
.topbar {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in oklab, var(--bg) 88%, transparent);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
}
.topbar-inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 14px 28px;
  display: flex;
  align-items: center;
  gap: 24px;
}
.brand {
  display: flex; align-items: center; gap: 10px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
}
.brand-mark {
  width: 34px; height: 34px;
  border-radius: 10px;
  background:
    radial-gradient(circle at 30% 30%, var(--sun) 0, var(--sun) 35%, transparent 36%),
    radial-gradient(circle at 75% 70%, var(--coral) 0, var(--coral) 28%, transparent 29%),
    linear-gradient(135deg, var(--moss) 0%, var(--lavender) 100%);
  position: relative;
  transform: rotate(-6deg);
  box-shadow: var(--shadow-sm);
}
.brand-mark::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 7px;
  border: 1.5px solid rgba(255,255,255,0.5);
}

.nav {
  display: flex; gap: 4px;
  margin-left: 24px;
}
.nav-btn {
  padding: 8px 14px;
  border-radius: var(--r-pill);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-2);
  transition: all 0.15s;
}
.nav-btn:hover { background: var(--bg-soft); color: var(--ink); }
.nav-btn.active {
  background: var(--ink);
  color: var(--bg);
}

.topbar-right {
  margin-left: auto;
  display: flex; align-items: center; gap: 12px;
}

.progress-pill {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 6px 6px 14px;
  border-radius: var(--r-pill);
  background: var(--bg-soft);
  border: 1px solid var(--line);
  font-size: 13px;
  font-weight: 600;
}
.progress-pill-bar {
  width: 80px; height: 6px;
  border-radius: 3px;
  background: var(--line);
  overflow: hidden;
}
.progress-pill-bar > div {
  height: 100%;
  background: var(--moss);
  border-radius: 3px;
  transition: width 0.4s ease;
}
.progress-pill-badge {
  padding: 4px 10px;
  border-radius: var(--r-pill);
  background: var(--moss);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--lavender), var(--rose));
  display: grid; place-items: center;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  border: 2px solid var(--bg);
}

/* PAGE CONTAINER */
.page {
  max-width: 1320px;
  margin: 0 auto;
  padding: 32px 28px 80px;
  position: relative;
  z-index: 1;
}

[data-density="compact"] .page { padding: 20px 24px 60px; }

/* Utility */
.flex { display: flex; }
.row { display: flex; gap: 12px; align-items: center; }
.col { display: flex; flex-direction: column; gap: 12px; }
.spacer { flex: 1; }

.kicker {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.section-title {
  font-size: 28px;
  letter-spacing: -0.02em;
  margin-bottom: 4px;
}

/* MODULE COVER (placeholder art) */
.mod-cover {
  aspect-ratio: 16/10;
  border-radius: var(--r-md);
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
}
.mod-cover .emoji {
  font-size: 56px;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.15));
  transform: rotate(-4deg);
}
.mod-cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,0.35) 0%, transparent 30%),
    radial-gradient(circle at 80% 80%, rgba(0,0,0,0.08) 0%, transparent 40%);
}

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--ink-3); }

/* TWEAKS PANEL */
.tweaks-panel {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 320px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  background: var(--bg-elevated);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  z-index: 200;
  display: none;
  padding: 20px;
  font-size: 13px;
}
.tweaks-panel.open { display: block; }
.tweaks-panel h4 {
  font-size: 12px;
  font-family: var(--font-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin: 18px 0 8px;
}
.tweaks-panel h4:first-of-type { margin-top: 0; }
.tweaks-header {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.tweaks-header h3 {
  font-size: 15px;
  letter-spacing: 0;
}
.tweaks-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(60px, 1fr));
  gap: 6px;
}
.tweak-opt {
  padding: 8px 10px;
  border-radius: var(--r-sm);
  border: 1.5px solid var(--line);
  background: var(--bg);
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
  color: var(--ink-2);
  transition: all 0.15s;
}
.tweak-opt:hover { border-color: var(--line-strong); }
.tweak-opt.active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--bg);
}

/* ANIMATIONS */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
.fade-up { animation: fadeUp 0.4s ease backwards; }

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Screen-specific classes reused */
.page-header {
  margin-bottom: 32px;
}
.page-title {
  font-size: 42px;
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 8px;
}
.page-sub {
  color: var(--ink-2);
  font-size: 17px;
  max-width: 640px;
  line-height: 1.45;
}

/* ============================================
   MOBİL UYUMLULUK
   ============================================ */

/* Yatay taşmayı engelle — global */
html, body { overflow-x: hidden; max-width: 100vw; }
img, video, svg, pre { max-width: 100%; }
pre { overflow-x: auto; }

/* Tablet — orta boy ekran */
@media (max-width: 920px) {
  .topbar-inner { padding: 12px 18px !important; gap: 14px !important; }
  .nav { gap: 2px !important; margin-left: 8px !important; }
  .nav-btn { padding: 7px 11px !important; font-size: 13px !important; }
  .progress-pill-bar { width: 60px !important; }
  .page { padding: 24px 20px 60px !important; }
  .page-title { font-size: 36px !important; }

  /* Geniş grid'leri 2 kolon yap */
  [style*="grid-template-columns: repeat(4, 1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  [style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .mod-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* Mobil — telefon */
@media (max-width: 760px) {
  /* TOPBAR: marka + sağ taraf üstte, nav alt satırda yatay scroll */
  .topbar-inner {
    flex-wrap: wrap !important;
    padding: 10px 14px !important;
    gap: 10px !important;
  }
  .brand {
    font-size: 14px !important;
    gap: 8px !important;
    min-width: 0;
    flex: 1 1 auto;
  }
  .brand-mark { width: 28px !important; height: 28px !important; flex-shrink: 0; }
  .brand > div > div:last-child {
    font-size: 9px !important;
    letter-spacing: 0.08em !important;
  }

  .nav {
    order: 99;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    margin-left: 0 !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
    flex-wrap: nowrap !important;
  }
  .nav::-webkit-scrollbar { display: none; }
  .nav-btn {
    flex-shrink: 0;
    white-space: nowrap;
    padding: 7px 12px !important;
    font-size: 13px !important;
  }

  .topbar-right {
    margin-left: auto !important;
    gap: 8px !important;
    flex-shrink: 0;
  }
  .progress-pill {
    padding: 5px 10px !important;
    gap: 6px !important;
    font-size: 12px !important;
  }
  .progress-pill-bar { display: none !important; }
  .progress-pill-badge {
    padding: 3px 7px !important;
    font-size: 11px !important;
  }
  .avatar { width: 32px !important; height: 32px !important; font-size: 12px !important; }

  /* PAGE */
  .page { padding: 18px 14px 60px !important; max-width: 100% !important; }
  .page-header { margin-bottom: 20px !important; }
  .page-title { font-size: 26px !important; line-height: 1.1 !important; }
  .page-sub { font-size: 14.5px !important; }
  .section-title { font-size: 19px !important; }
  .kicker { font-size: 10px !important; }

  /* GRİDLER — tüm çoklu kolonlar tek kolona */
  .mod-grid { grid-template-columns: 1fr !important; gap: 14px !important; }

  [style*="grid-template-columns: 1.2fr 1fr"],
  [style*="grid-template-columns:1.2fr 1fr"] { grid-template-columns: 1fr !important; }

  [style*="grid-template-columns: 1fr 220px"],
  [style*="grid-template-columns:1fr 220px"] { grid-template-columns: 1fr !important; }

  [style*="grid-template-columns: 1.5fr 1fr"],
  [style*="grid-template-columns:1.5fr 1fr"] { grid-template-columns: 1fr !important; }

  [style*="grid-template-columns: 1fr 1.2fr"],
  [style*="grid-template-columns:1fr 1.2fr"] { grid-template-columns: 1fr !important; }

  [style*="grid-template-columns: 200px 1fr"],
  [style*="grid-template-columns:200px 1fr"] { grid-template-columns: 1fr !important; }

  [style*="grid-template-columns: 1fr auto"][style*="gap: 32px"] {
    grid-template-columns: 1fr !important;
  }

  [style*="grid-template-columns: repeat(3, 1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: 1fr !important; }

  [style*="grid-template-columns: repeat(4, 1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2, 1fr) !important; }

  /* Activity timeline: 160 + 32 + 1fr -> ikon + metin (tarih ikonun altına düşmesin diye yan yana) */
  [style*="grid-template-columns: 160px 32px 1fr"],
  [style*="grid-template-columns:160px 32px 1fr"] {
    grid-template-columns: 28px 1fr !important;
    gap: 10px !important;
  }
  [style*="grid-template-columns: 160px 32px 1fr"] > :first-child,
  [style*="grid-template-columns:160px 32px 1fr"] > :first-child {
    grid-column: 2;
    font-size: 11px !important;
    margin-bottom: 2px;
  }

  /* Quiz seçenek satırları: 28px 1fr auto kalsın */
  /* Module hero h1 boyutları */
  h1[style*="font-size: 52"] { font-size: 32px !important; }
  h1[style*="font-size: 44"] { font-size: 28px !important; }
  h1[style*="font-size: 42"] { font-size: 26px !important; }
  h1[style*="font-size: 40"] { font-size: 26px !important; }
  h1[style*="font-size: 36"] { font-size: 24px !important; }
  h1[style*="font-size: 32"] { font-size: 22px !important; }

  /* Hero/banner padding'leri küçült */
  [style*="padding: 42px 44px"] { padding: 24px 20px !important; }
  [style*="padding: 36px 40px"] { padding: 22px 18px !important; }
  [style*="padding: 32px"] { padding: 20px !important; }
  [style*="padding: 24px"] { padding: 18px !important; }

  /* Pull-quote'lar küçülsün */
  [style*="font-size: 22"][style*="line-height: 1.3"] { font-size: 17px !important; }

  /* Mermaid container yatay scroll */
  .page > div [style*="overflow-x: auto"] { overflow-x: auto !important; }

  /* Pre/code blokları kırılsın */
  pre { font-size: 12px !important; }

  /* Tweaks panel mobilde tam genişlik */
  .tweaks-panel {
    width: calc(100vw - 20px) !important;
    right: 10px !important;
    bottom: 10px !important;
    max-height: 75vh !important;
    padding: 16px !important;
  }

  /* Auth kart (login/register/kvkk) padding ayarı */
  .auth-card { padding: 28px 22px !important; max-width: 100% !important; }
  .auth-card h1 { font-size: 26px !important; }

  /* KVKK sayfası */
  .wrap { padding: 24px 18px !important; margin: 12px auto 32px !important; }
  .wrap h1 { font-size: 28px !important; }
  .wrap h2 { font-size: 17px !important; }
  .wrap p, .wrap li { font-size: 14px !important; }

  /* Quick tools 4-col (HomePage'deki kartlar) — mobilde 2x2 */
  .page > div > div[style*="grid-template-columns: repeat(4, 1fr)"][style*="gap: 16"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Tip card: 1fr auto -> stack */
  [style*="grid-template-columns: 1fr auto"][style*="alignItems: 'center'"],
  [style*="grid-template-columns: 1fr auto"][style*="align-items: center"] {
    grid-template-columns: 1fr !important;
    text-align: left;
  }

  /* Sticky topbar height değişti — sayfa içeriği üstte gizlenmesin */
  body { padding-top: 0; }
}

/* Çok küçük mobil (320-480 arası) */
@media (max-width: 480px) {
  .topbar-inner { padding: 8px 12px !important; gap: 8px !important; }
  .brand > div > div:first-child { font-size: 13px !important; }
  .brand > div > div:last-child { display: none; }

  .page-title { font-size: 22px !important; }
  .section-title { font-size: 17px !important; }

  /* 4-col stat grid — mobilde tek kolon */
  [style*="grid-template-columns: repeat(4, 1fr)"][style*="gap: 16"][style*="margin-bottom: 40"] {
    grid-template-columns: 1fr !important;
  }

  /* Hero h1 daha da küçük */
  h1[style*="font-size: 52"] { font-size: 26px !important; }
  h1[style*="font-size: 44"] { font-size: 24px !important; }

  /* Quick tools: tek kolon */
  .page > div > div[style*="grid-template-columns: repeat(4, 1fr)"][style*="gap: 16"] {
    grid-template-columns: 1fr !important;
  }

  /* Tools page kartları */
  [style*="grid-template-columns: 1fr 1fr"][style*="gap: 10"] {
    grid-template-columns: 1fr !important;
  }

  .auth-card { padding: 22px 18px !important; }
}
