/* LocalRank SaaS - Premium SaaS UI (Bölüm 67): modern, sade, hızlı */
:root {
  --lr-primary: #2563eb;
  --lr-sidebar-w: 240px;
  --lr-body-bg: #f6f8fb;
}
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: var(--lr-body-bg); }
a { text-decoration: none; }

/* ---------- Public ---------- */
.hero-section { background: linear-gradient(180deg, #fff 0%, #eef4ff 100%); }
.stat-mini { background: #fff; border: 1px solid #eef0f4; border-radius: 14px; padding: 14px; text-align: center; }
.stat-mini .stat-num { display: block; font-size: 1.7rem; font-weight: 800; color: var(--lr-primary); }
.stat-mini .stat-label { font-size: .78rem; color: #64748b; text-transform: uppercase; letter-spacing: .04em; }
.feature-card { transition: transform .15s ease, box-shadow .15s ease; }
.feature-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(15, 23, 42, .08) !important; }

/* ---------- Auth ---------- */
.auth-body { background: linear-gradient(135deg, #eef4ff 0%, #f6f8fb 100%); min-height: 100vh; }

/* ---------- App layout ---------- */
.app-sidebar { width: var(--lr-sidebar-w); min-height: 100vh; flex-shrink: 0; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.app-sidebar .nav-link { color: rgba(255,255,255,.65); border-radius: 10px; padding: .5rem .75rem; font-size: .9rem; }
.app-sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.06); }
.app-sidebar .nav-link.active { color: #fff; background: var(--lr-primary); }
.nav-small { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.app-main { min-width: 0; }
.app-topbar { height: 60px; z-index: 1020; }
.app-content { max-width: 1400px; }
.avatar-circle { width: 28px; height: 28px; border-radius: 50%; font-size: .72rem; font-weight: 700; }
@media (max-width: 991.98px) {
  .app-sidebar { position: fixed; z-index: 1040; left: -260px; transition: left .2s ease; height: 100vh; }
  .app-sidebar.show { left: 0; box-shadow: 0 0 40px rgba(0,0,0,.3); }
}

/* ---------- KPI ---------- */
.kpi-card { border-radius: 14px; }
.kpi-value { font-size: 1.6rem; font-weight: 800; line-height: 1.1; }
.kpi-label { font-size: .76rem; color: #64748b; text-transform: uppercase; letter-spacing: .05em; }
.kpi-icon { font-size: 1.4rem; color: var(--lr-primary); opacity: .18; }

/* ---------- Rank renk kategorileri (Bölüm 11) ---------- */
.badge.rank-1-3 { background: #16a34a; color: #fff; }
.badge.rank-4-10 { background: #eab308; color: #422006; }
.badge.rank-11-20 { background: #f97316; color: #fff; }
.badge.rank-21-plus { background: #dc2626; color: #fff; }
.badge.rank-none { background: #94a3b8; color: #fff; }

/* ---------- Grid heatmap (fallback, harita dışı) ---------- */
.grid-heatmap { display: grid; gap: 4px; }
.grid-cell { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: 8px; font-weight: 700; font-size: .85rem; color: #fff; }
.grid-cell.rank-1-3 { background: #16a34a; }
.grid-cell.rank-4-10 { background: #eab308; color: #422006; }
.grid-cell.rank-11-20 { background: #f97316; }
.grid-cell.rank-21-plus { background: #dc2626; }
.grid-cell.rank-none { background: #cbd5e1; color: #475569; }

/* Leaflet grid etiketleri */
.grid-label { background: transparent !important; border: none !important; box-shadow: none !important; color: #fff !important; font-weight: 700; font-size: .68rem; text-shadow: 0 1px 2px rgba(0,0,0,.5); }

/* ---------- Skor ringi ---------- */
.score-ring-circle { --p: 0; --c: #2563eb; width: 120px; height: 120px; border-radius: 50%;
  background: conic-gradient(var(--c) calc(var(--p) * 1%), #e9edf3 0);
  display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; }
.score-ring-circle::before { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: #fff; }
.score-value { font-size: 1.9rem; font-weight: 800; position: relative; }
.score-unit { font-size: .72rem; color: #64748b; position: relative; }

/* ---------- Modül navigasyonu ---------- */
.module-nav { gap: .25rem; }
.module-nav .nav-link { color: #475569; border-radius: 10px; padding: .4rem .8rem; font-size: .86rem; white-space: nowrap; }
.module-nav .nav-link.active { background: var(--lr-primary); }
.module-nav .nav-link:hover:not(.active) { background: #eef2f7; }

/* ---------- Empty state ---------- */
.empty-state .empty-icon { width: 76px; height: 76px; border-radius: 50%; background: #eef2f7; display: inline-flex; align-items: center; justify-content: center; }

/* ---------- Onboarding ---------- */
.onboarding-card { border-left: 4px solid var(--lr-primary); }

/* ---------- Fırsat kartları ---------- */
.opportunity-card { border-left: 4px solid #cbd5e1; }
.opportunity-card.severity-high { border-left-color: #dc2626; }
.opportunity-card.severity-medium { border-left-color: #f59e0b; }
.opportunity-card.severity-low { border-left-color: #16a34a; }

/* ---------- Projeler ---------- */
.project-card { border-radius: 14px; transition: transform .15s ease; }
.project-card:hover { transform: translateY(-2px); }

/* ---------- Kurulum adımları ---------- */
.install-steps .badge { font-weight: 500; }

/* ---------- Tablolar ---------- */
.table thead th { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; font-weight: 600; }
.table td { vertical-align: middle; }

/* ---------- Cards ---------- */
.card { border-radius: 14px; }
.card-header { border-bottom: 1px solid #eef0f4; font-size: .9rem; }
.card-header.bg-white { background: #fff !important; }

/* ---------- Sistem: tracking-wider utility ---------- */
.tracking-wider { letter-spacing: .3em; }

/* ---------- Cookie consent (KVKK) ---------- */
#cookieConsent { position: fixed; bottom: 0; left: 0; right: 0; z-index: 1080; background: #0f172a; color: #e2e8f0; padding: 12px 0; box-shadow: 0 -6px 24px rgba(0,0,0,.15); }
#cookieConsent .small { color: #94a3b8; }

/* Print */
@media print {
  .app-sidebar, .app-topbar, .btn, .module-nav { display: none !important; }
  .app-content { max-width: 100%; }
}
