/* ── Reset / base ──────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
    height: 100%;
    font-family: var(--font-family);
    background: #f4f6f8;
    color: #1a1a1a;
    -webkit-font-smoothing: antialiased;
}

/* ── KESO renk değişkenleri ────────────────────────────────────────────────── */
:root {
    --keso:        #0d9488;
    --keso-dark:   #0f6e56;
    --keso-light:  #e1f5ee;
    --keso-mid:    #5dcaa5;
    --keso-text:   #085041;
    --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --radius-sm:   8px;
    --radius-md:   12px;
    --radius-lg:   16px;
    --shadow-card: 0 1px 4px rgba(0,0,0,.07);
    --shadow-card-hover: 0 4px 14px rgba(0,0,0,.10);
    --bnav-h:      64px;
    --safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* ── Shell ─────────────────────────────────────────────────────────────────── */
.keso-shell { min-height: 100dvh; }
.keso-shell.with-nav { padding-bottom: calc(var(--bnav-h) + var(--safe-bottom)); }

/* ── Bottom nav ────────────────────────────────────────────────────────────── */
.keso-bnav {
    position: fixed; bottom: 0; left: 0; right: 0;
    height: calc(var(--bnav-h) + var(--safe-bottom));
    padding-bottom: var(--safe-bottom);
    background: #fff;
    border-top: 1px solid #e8ecef;
    display: flex;
    align-items: stretch;
    z-index: 100;
}

.keso-bnav-item {
    flex: 1;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 3px;
    text-decoration: none;
    color: #9aa0a6;
    font-size: 10px;
    cursor: pointer;
    touch-action: manipulation;
    position: relative;
    transition: color .15s;
}
.keso-bnav-item.active { color: var(--keso); }

/* Active top-line indicator */
.keso-bnav-item.active::before {
    content: '';
    position: absolute;
    top: 0; left: 50%; transform: translateX(-50%);
    width: 24px; height: 3px;
    background: var(--keso);
    border-radius: 0 0 3px 3px;
}

/* SVG icon — inherits currentColor */
.keso-bnav-icon {
    display: flex; align-items: center; justify-content: center;
    width: 24px; height: 24px;
}
.keso-bnav-icon svg {
    transition: opacity .15s;
    opacity: .45;
}
.keso-bnav-item.active .keso-bnav-icon svg { opacity: 1; }
.keso-bnav-label { font-size: 11px; font-weight: 500; }

.keso-bnav-qr-circle {
    width: 44px; height: 44px;
    background: var(--keso);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin-top: -18px;
    border: 3px solid #f4f6f8;
    box-shadow: 0 2px 10px rgba(13,148,136,.40);
    color: #fff; /* SVG stroke becomes white */
    transition: box-shadow .15s;
}
.keso-bnav-qr:active .keso-bnav-qr-circle {
    box-shadow: 0 1px 5px rgba(13,148,136,.30);
}
.keso-bnav-qr .keso-bnav-label { margin-top: 4px; }

/* QR circle içindeki SVG her zaman tam opak ve beyaz */
.keso-bnav-qr-circle svg { opacity: 1 !important; }

/* ── Hero Slider ─────────────────────────────────────────────────────────────── */
.keso-hero-slider {
    position: relative;
    overflow: hidden;
    height: 206px;
}
.keso-hero-track {
    display: flex;
    height: 100%;
    will-change: transform;
}
.keso-hero-slide {
    flex: 0 0 100%;
    position: relative;
    overflow: hidden;
}
.keso-hero-bg {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, var(--keso-dark) 0%, var(--keso) 100%);
    z-index: 0;
}
.keso-hero-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover; display: block;
    z-index: 1;
}
.keso-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.55) 0%, transparent 50%);
    z-index: 2;
}
.keso-hero-content {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 12px 16px 16px;
    color: #fff;
    z-index: 3;
}
.keso-hero-badge {
    display: inline-block;
    background: rgba(255,255,255,.2);
    border: 1px solid rgba(255,255,255,.35);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 20px;
    margin-bottom: 5px;
    letter-spacing: .3px;
    backdrop-filter: blur(4px);
}
.keso-hero-title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
}
.keso-hero-sub {
    font-size: 12px;
    opacity: .75;
    margin-top: 2px;
}
.keso-hero-dots {
    position: absolute;
    bottom: 10px; right: 12px;
    display: flex; gap: 2px;
    align-items: center;
}

/* Dot: 20×20px tap area, visual indicator via ::before */
.keso-hero-dot {
    width: 20px; height: 20px;
    border-radius: 50%;
    border: none; background: transparent;
    padding: 0; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    touch-action: manipulation;
}
.keso-hero-dot::before {
    content: '';
    width: 5px; height: 5px;
    border-radius: 50%;
    background: rgba(255,255,255,.4);
    transition: background .2s, width .2s, border-radius .2s;
    display: block;
}
.keso-hero-dot.active::before {
    background: #fff;
    width: 14px;
    border-radius: 3px;
}

/* ── Hızlı Erişim ─────────────────────────────────────────────────────────────── */
.as-hizli {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding: 16px 12px 8px;
    gap: 4px;
}
.as-hizli-item {
    display: flex; flex-direction: column;
    align-items: center; gap: 7px;
    text-decoration: none;
    color: #374151;
    font-size: 11px;
    font-weight: 500;
    padding: 8px 4px;
    border-radius: var(--radius-sm);
    touch-action: manipulation;
    transition: transform .1s, background .15s;
}
.as-hizli-item:active {
    background: transparent;
    transform: scale(0.93);
}
.as-hizli-icon {
    width: 50px; height: 50px;
    border-radius: 15px;
    background: var(--keso-light);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 1px 3px rgba(13,148,136,.12);
    transition: box-shadow .15s;
}
.as-hizli-item:active .as-hizli-icon {
    box-shadow: none;
}
.as-hizli-icon svg {
    width: 22px; height: 22px;
    stroke: var(--keso);
}

/* ── Duyuru / Haber ortak kart ───────────────────────────────────────────────── */
.as-duyuru-card {
    background: #fff;
    border-radius: var(--radius-md);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04);
}
.as-duyuru-img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}
.as-duyuru-body {
    padding: 12px 14px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.as-duyuru-kat {
    font-size: 10px;
    font-weight: 700;
    color: var(--keso);
    text-transform: uppercase;
    letter-spacing: .5px;
}
.as-duyuru-baslik {
    font-size: 14px;
    font-weight: 700;
    color: #111827;
    line-height: 1.35;
}
.as-duyuru-ozet {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-top: 1px;
}
.as-duyuru-tarih {
    font-size: 11px;
    color: #9ca3af;
    margin-top: 3px;
}

/* Haberler — dikey tam genişlik liste (hem ana sayfa hem /haberler) */
.as-duyuru-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 16px 8px;
}

/* Duyurular — yatay kaydırmalı liste (sadece ana sayfa duyurular bölümü) */
.as-duyuru-yatay {
    display: flex;
    flex-direction: row;
    gap: 10px;
    padding: 2px 16px 6px;
    margin: 0 0 8px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.as-duyuru-yatay::-webkit-scrollbar { display: none; }
.as-duyuru-yatay .as-duyuru-card {
    flex-shrink: 0;
    width: 210px;
    scroll-snap-align: start;
}
.as-empty-text {
    padding: 4px 16px 12px;
    color: #9aa0a6;
    font-size: 13px;
    margin: 0;
}

/* ── Header ────────────────────────────────────────────────────────────────── */
.keso-header {
    background: var(--keso);
    padding: 14px 16px 12px;
    color: #fff;
}
.keso-header-row {
    display: flex; align-items: center; justify-content: space-between;
}
.keso-header-logo { font-size: 20px; font-weight: 700; letter-spacing: .5px; }
.keso-header-sub  { font-size: 12px; opacity: .8; margin-top: 2px; }
.keso-header-icon-btn {
    width: 34px; height: 34px; border-radius: 50%;
    background: rgba(255,255,255,.2);
    border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 18px;
    text-decoration: none;
}

/* ── Yapışkan arama çubuğu ──────────────────────────────────────────────────── */
.keso-sticky-bar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: #f5f7fa;
    padding-top: 4px;
    padding-bottom: 2px;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

/* ── Arama kutusu ──────────────────────────────────────────────────────────── */
.keso-search {
    margin: 10px 16px;
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e8ecef;
    display: flex; align-items: center; gap: 8px;
    padding: 8px 14px;
    box-shadow: var(--shadow-card);
}
.keso-search input {
    border: none; outline: none; flex: 1;
    font-size: 14px; background: transparent; color: #1a1a1a;
}
.keso-search-icon { color: #9aa0a6; font-size: 16px; }

/* ── Kategori arama ─────────────────────────────────────────────────────────── */
.keso-cat-search {
    margin: 0 16px 6px;
    display: flex; align-items: center; gap: 8px;
    background: #f4f6f8;
    border-radius: 12px;
    padding: 7px 12px;
}
.keso-cat-search input {
    border: none; outline: none; background: transparent;
    flex: 1; font-size: 13px; color: #1a1a1a;
}
.keso-cat-search input::placeholder { color: #b0b8c1; }
.keso-cat-search-icon { color: #9aa0a6; font-size: 15px; flex-shrink: 0; }
.keso-cat-search-clear {
    background: none; border: none;
    color: #9aa0a6; cursor: pointer;
    font-size: 13px; padding: 8px; line-height: 1;
    flex-shrink: 0;
}

/* ── Kategori hap ──────────────────────────────────────────────────────────── */
.keso-cats {
    display: flex; gap: 8px; padding: 4px 16px 12px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.keso-cats::-webkit-scrollbar { display: none; }
.keso-cat {
    flex: 0 0 auto;
    background: #fff; border: 1.5px solid #e8ecef;
    border-radius: 20px; padding: 10px 14px;
    font-size: 12px; color: #555; cursor: pointer;
    white-space: nowrap;
    touch-action: manipulation;
    transition: all .15s;
}
.keso-cat:active { transform: scale(0.96); }
.keso-cat.active {
    background: var(--keso-light);
    border-color: var(--keso);
    color: var(--keso-text);
    font-weight: 600;
}

/* ── Bölüm başlığı ─────────────────────────────────────────────────────────── */
.keso-section {
    padding: 4px 16px 8px;
    display: flex; align-items: center; justify-content: space-between;
}
.keso-section-title { font-size: 15px; font-weight: 700; color: #1a1a1a; }
.keso-section-link  { font-size: 12px; color: var(--keso); text-decoration: none; }

/* ── Kampanya kartı (yatay kaydırma) ─────────────────────────────────────── */
.keso-camp-scroll {
    display: flex; gap: 10px; padding: 0 16px 16px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.keso-camp-scroll::-webkit-scrollbar { display: none; }

.keso-camp-card {
    flex: 0 0 180px;
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid #e8ecef;
    overflow: hidden;
    box-shadow: var(--shadow-card);
    text-decoration: none; color: inherit;
    touch-action: manipulation;
    transition: transform .15s, box-shadow .15s;
}
.keso-camp-card:active {
    transform: scale(0.96);
    box-shadow: none;
}
.keso-camp-img {
    height: 90px;
    background: var(--keso-light);
    display: flex; align-items: center; justify-content: center;
    position: relative; font-size: 36px;
}
.keso-camp-badge {
    position: absolute; top: 6px; left: 6px;
    background: var(--keso); color: #fff;
    font-size: 10px; font-weight: 600;
    padding: 2px 8px; border-radius: 10px;
}
.keso-camp-body   { padding: 8px 10px; }
.keso-camp-firm   { font-size: 10px; color: #9aa0a6; }
.keso-camp-title  { font-size: 13px; font-weight: 600; color: #1a1a1a; margin-top: 2px; line-height: 1.3; }
.keso-camp-date   { font-size: 10px; color: #9aa0a6; margin-top: 4px; }

/* ── Firma kartı (liste) ───────────────────────────────────────────────────── */
.keso-firma-list { display: flex; flex-direction: column; gap: 8px; padding: 0 16px 16px; }

.keso-firma-card {
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid #e8ecef;
    padding: 12px;
    display: flex; gap: 12px; align-items: center;
    box-shadow: var(--shadow-card);
    text-decoration: none; color: inherit;
    touch-action: manipulation;
    transition: transform .15s, box-shadow .15s;
}
.keso-firma-card:hover { box-shadow: var(--shadow-card-hover); }
.keso-firma-card:active {
    transform: scale(0.98);
    box-shadow: none;
}
.keso-firma-icon {
    width: 46px; height: 46px; border-radius: 10px;
    background: var(--keso-light);
    display: flex; align-items: center; justify-content: center;
    font-size: 22px; flex: 0 0 46px;
}
.keso-firma-info { flex: 1; min-width: 0; }
.keso-firma-name {
    font-size: 14px; font-weight: 600; color: #1a1a1a;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.keso-firma-cat  { font-size: 11px; color: #9aa0a6; margin-top: 2px; }
.keso-firma-addr { font-size: 11px; color: #9aa0a6; margin-top: 2px; }
.keso-firma-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.keso-firma-fav  { font-size: 11px; color: #e74c3c; }
.keso-kamp-badge {
    font-size: 10px; background: #fef3c7; color: #92400e;
    padding: 2px 7px; border-radius: 8px; font-weight: 500;
}

/* ── Giriş sayfası — Giris.razor bileşeni kendi <style> bloğunu taşıyor ── */

.keso-inp {
    width: 100%; padding: 12px 14px;
    border: 1.5px solid #e8ecef; border-radius: var(--radius-sm);
    font-size: 14px; margin-bottom: 12px;
    outline: none; transition: border-color .15s;
    background: #fff; color: #1a1a1a;
}
.keso-inp:focus { border-color: var(--keso); }

.keso-btn {
    width: 100%; padding: 13px;
    background: var(--keso); color: #fff;
    border: none; border-radius: var(--radius-sm);
    font-size: 15px; font-weight: 600; cursor: pointer;
    touch-action: manipulation;
    transition: background .15s, transform .1s;
}
.keso-btn:hover:not(:disabled)   { background: var(--keso-dark); }
.keso-btn:active:not(:disabled)  { transform: scale(0.98); }
.keso-btn:disabled { background: #9aa0a6; cursor: not-allowed; opacity: .7; }
.keso-btn-outline {
    width: 100%; padding: 12px;
    background: transparent; color: var(--keso);
    border: 1.5px solid var(--keso); border-radius: var(--radius-sm);
    font-size: 14px; font-weight: 600; cursor: pointer; margin-top: 10px;
}
.keso-error {
    color: #e74c3c; font-size: 13px; margin-bottom: 12px;
    background: #fef2f2; padding: 10px 12px; border-radius: var(--radius-sm);
}

/* ── Firma detay ───────────────────────────────────────────────────────────── */
.keso-detay-hero {
    height: 160px; background: var(--keso-light);
    display: flex; align-items: center; justify-content: center;
    font-size: 60px; position: relative;
}
.keso-detay-back {
    position: absolute; top: 14px; left: 14px;
    width: 34px; height: 34px; border-radius: 50%;
    background: rgba(255,255,255,.85);
    display: flex; align-items: center; justify-content: center;
    text-decoration: none; font-size: 18px;
}
.keso-detay-fav-btn {
    position: absolute; top: 14px; right: 14px;
    width: 34px; height: 34px; border-radius: 50%;
    background: rgba(255,255,255,.85);
    border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: 18px;
}
.keso-detay-body { padding: 16px; }
.keso-detay-unvan { font-size: 20px; font-weight: 700; color: #1a1a1a; }
.keso-detay-cat   { font-size: 13px; color: var(--keso); margin-top: 3px; font-weight: 500; }
.keso-detay-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.keso-chip {
    background: #f4f6f8; border-radius: 20px;
    padding: 5px 12px; font-size: 12px; color: #555;
}
.keso-detay-divider { height: 1px; background: #e8ecef; margin: 16px 0; }
.keso-detay-bilgi { font-size: 13px; color: #555; line-height: 1.6; }

.keso-kamp-item {
    background: var(--keso-light);
    border-radius: var(--radius-sm);
    padding: 12px 14px; margin-bottom: 8px;
    display: flex; justify-content: space-between; align-items: center;
}
.keso-kamp-item-title { font-size: 14px; font-weight: 600; color: var(--keso-text); }
.keso-kamp-item-date  { font-size: 11px; color: var(--keso); margin-top: 2px; }
.keso-kamp-tip-badge  {
    background: var(--keso); color: #fff;
    font-size: 11px; padding: 4px 10px; border-radius: 10px; font-weight: 600;
}

/* ── QR sayfası ────────────────────────────────────────────────────────────── */
.keso-qr-page {
    min-height: 100vh; background: var(--keso);
    display: flex; flex-direction: column; align-items: center;
    padding: 48px 24px 100px;
}
.keso-qr-title { color: #fff; font-size: 20px; font-weight: 700; }
.keso-qr-sub   { color: rgba(255,255,255,.75); font-size: 13px; margin-top: 4px; text-align: center; }
.keso-qr-box   {
    width: 220px; height: 220px;
    background: #fff; border-radius: 16px;
    margin: 28px auto; padding: 16px;
    display: flex; align-items: center; justify-content: center;
}
.keso-qr-box img { width: 100%; height: 100%; }
.keso-qr-payload {
    color: rgba(255,255,255,.85); font-size: 14px;
    font-family: monospace; letter-spacing: 2px; margin-top: 4px;
}
.keso-qr-btn {
    margin-top: 20px; padding: 12px 28px;
    background: #fff; color: var(--keso);
    border: none; border-radius: 24px;
    font-size: 14px; font-weight: 600; cursor: pointer;
}
.keso-qr-gecerli { color: rgba(255,255,255,.7); font-size: 12px; margin-top: 8px; }

/* ── Profil sayfası ────────────────────────────────────────────────────────── */
.keso-profil-hero {
    background: var(--keso); padding: 28px 20px 28px;
    text-align: center;
}
.keso-profil-avatar {
    width: 68px; height: 68px; border-radius: 50%;
    background: rgba(255,255,255,.22);
    border: 2.5px solid rgba(255,255,255,.45);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 12px;
    font-size: 26px; color: #fff; font-weight: 700;
}
.keso-profil-ad    { color: #fff; font-size: 18px; font-weight: 700; }
.keso-profil-email { color: rgba(255,255,255,.75); font-size: 13px; margin-top: 3px; }

.keso-menu {
    background: #fff; border-radius: var(--radius-md);
    border: 1px solid #e8ecef; overflow: hidden;
    margin: 16px;
}
.keso-menu-item {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f0;
    text-decoration: none; color: #1a1a1a;
    font-size: 14px; cursor: pointer;
    background: none; border-left: none; border-top: none; border-right: none;
    width: 100%; text-align: left;
    touch-action: manipulation;
    transition: background .12s;
}
.keso-menu-item:active { background: #f9fafb; }
.keso-menu-item:last-child { border-bottom: none; }
.keso-menu-item-icon { font-size: 20px; }
.keso-menu-item-arrow { margin-left: auto; color: #9aa0a6; }
.keso-menu-item.danger { color: #e74c3c; }

/* ── Daha fazla yükle ──────────────────────────────────────────────────────── */
.keso-loadmore {
    display: flex; justify-content: center;
    padding: 12px 16px 24px;
}
.keso-loadmore-btn {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 32px; min-width: 160px;
    border: 1.5px solid #e8ecef; border-radius: 24px;
    background: #fff; cursor: pointer;
    font-size: 13px; font-weight: 600; color: #374151;
    touch-action: manipulation;
    transition: all .15s;
}
.keso-loadmore-btn:not(:disabled):active {
    background: var(--keso-light);
    border-color: var(--keso);
    color: var(--keso-text);
    transform: scale(0.97);
}
.keso-loadmore-btn:disabled { opacity: .6; cursor: not-allowed; }

/* ── Genel yardımcı ─────────────────────────────────────────────────────────── */
.keso-loading {
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    padding: 48px 16px; gap: 12px; color: #9aa0a6;
}
.keso-spinner {
    width: 32px; height: 32px;
    border: 3px solid #e8ecef;
    border-top-color: var(--keso);
    border-radius: 50%;
    animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.keso-empty {
    text-align: center; padding: 48px 24px;
    color: #9aa0a6; font-size: 14px;
}
.keso-empty-icon { font-size: 40px; margin-bottom: 10px; }

/* ── Blazor error ───────────────────────────────────────────────────────────── */
#blazor-error-ui {
    background: #fff3cd; border-top: 1px solid #ffc107;
    bottom: 0; left: 0; right: 0;
    padding: 10px 16px;
    position: fixed; display: none; z-index: 200;
}
#blazor-error-ui .dismiss { cursor: pointer; float: right; }

h1:focus { outline: none; }

.valid.modified:not([type=checkbox]) { outline: 1px solid #26b050; }
.invalid { outline: 1px solid #e50000; }
.validation-message { color: #e50000; }

/* ── Toast bildirimi ────────────────────────────────────────────────────────── */
.keso-toast {
    position: fixed;
    bottom: calc(var(--bnav-h) + 12px);
    left: 16px; right: 16px;
    padding: 14px 18px;
    border-radius: var(--radius-md);
    font-size: 14px; font-weight: 500;
    z-index: 500;
    animation: toast-in .25s ease;
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
}
.keso-toast-basarili {
    background: #065f46;
    color: #d1fae5;
    border-left: 4px solid #34d399;
    font-weight: 600;
}
.keso-toast-hata {
    background: #dc2626;
    color: #fff;
}
@keyframes toast-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   ALT SAYFA ORTAK — Geri başlıklı header
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-subpage-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    background: #fff;
    border-bottom: 1px solid #e8ecef;
    position: sticky;
    top: 0;
    z-index: 50;
}
.keso-back-btn {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: none; background: #f4f6f8;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: #1a1a1a;
    flex-shrink: 0;
    touch-action: manipulation;
}
.keso-back-btn:active { background: #e8ecef; }
.keso-subpage-title {
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
}

/* menü öğesinde açıklama chip'i */
.keso-menu-item-desc {
    margin-left: auto;
    font-size: 12px;
    color: var(--keso);
    font-weight: 500;
    margin-right: 4px;
}

/* ── Tema satırı ─────────────────────────────────────────────────────────────── */
.keso-tema-row {
    flex-direction: row;
    align-items: center;
    cursor: default !important;
    gap: 12px;
}
.keso-tema-row:active { background: transparent !important; }
.keso-tema-row-inner {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
}
.keso-tema-row-label {
    font-size: 14px;
    color: #1a1a1a;
    white-space: nowrap;
}

/* ── Tema segmented control ──────────────────────────────────────────────────── */
.keso-tema-pills {
    display: flex;
    flex-shrink: 0;
    border: 1.5px solid #e8ecef;
    border-radius: 8px;
    overflow: hidden;
    background: #f4f6f8;
    gap: 0;
}
.keso-tema-pill {
    flex: 1;
    margin: 0;
    padding: 6px 10px;
    border-top: none;
    border-bottom: none;
    border-right: none;
    border-left: 1px solid #e8ecef;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    color: #6b7280;
    cursor: pointer;
    touch-action: manipulation;
    white-space: nowrap;
    transition: background .15s, color .15s;
    line-height: 1.4;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}
.keso-tema-pill:first-child { border-left: none; }
.keso-tema-pill:active { opacity: .75; }
.keso-tema-pill.aktif {
    background: var(--keso);
    color: #fff;
    font-weight: 600;
    border-left-color: var(--keso);
}
.keso-tema-pill.aktif + .keso-tema-pill {
    border-left-color: var(--keso);
}

/* ═══════════════════════════════════════════════════════════════════════════
   KİŞİSEL BİLGİLER
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-bilgi-card {
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid #e8ecef;
    overflow: hidden;
    margin-bottom: 16px;
}
.keso-bilgi-row {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f0;
    gap: 12px;
}
.keso-bilgi-row:last-child { border-bottom: none; }
.keso-bilgi-label {
    font-size: 13px;
    color: #9aa0a6;
    width: 80px;
    flex-shrink: 0;
}
.keso-bilgi-value {
    font-size: 14px;
    color: #1a1a1a;
    flex: 1;
    font-weight: 500;
}
.keso-bilgi-muted { color: #9aa0a6 !important; font-weight: 400 !important; }
.keso-bilgi-input {
    flex: 1;
    margin-bottom: 0 !important;
    padding: 8px 10px !important;
    font-size: 14px !important;
}
.keso-bilgi-mesaj {
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    margin-bottom: 14px;
}
.keso-bilgi-mesaj.basarili { background: #d1fae5; color: #065f46; }
.keso-bilgi-mesaj.hata     { background: #fef2f2; color: #991b1b; }

/* ═══════════════════════════════════════════════════════════════════════════
   TEMA
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-tema-aciklama {
    font-size: 13px;
    color: #9aa0a6;
    margin-bottom: 16px;
}
.keso-menu-item.keso-tema-aktif {
    background: var(--keso-light);
}
.keso-tema-check {
    width: 24px; height: 24px;
    border-radius: 50%;
    background: var(--keso);
    display: flex; align-items: center; justify-content: center;
    color: #fff;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   YARDIM MERKEZİ — SSS
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-sss-baslik {
    font-size: 13px;
    font-weight: 700;
    color: #9aa0a6;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 10px;
}
.keso-sss-kart {
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid #e8ecef;
    margin-bottom: 8px;
    overflow: hidden;
    cursor: pointer;
    touch-action: manipulation;
}
.keso-sss-soru {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    gap: 8px;
}
.keso-sss-ok {
    flex-shrink: 0;
    color: #9aa0a6;
    transition: transform .2s;
}
.keso-sss-kart.acik .keso-sss-ok {
    transform: rotate(180deg);
}
.keso-sss-cevap {
    padding: 0 16px 14px;
    font-size: 13px;
    color: #555;
    line-height: 1.65;
    border-top: 1px solid #f0f0f0;
    padding-top: 12px;
}
.keso-yardim-iletisim {
    margin-top: 24px;
    background: var(--keso-light);
    border-radius: var(--radius-md);
    padding: 20px 16px;
    text-align: center;
}
.keso-yardim-iletisim-baslik {
    font-size: 15px;
    font-weight: 700;
    color: var(--keso-text);
}
.keso-yardim-iletisim-alt {
    font-size: 13px;
    color: var(--keso);
    margin-top: 4px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   KULLANIM KOŞULLARI
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-kosul-body {
    padding: 16px 20px 80px;
    color: #1a1a1a;
}
.keso-kosul-tarih {
    font-size: 11px;
    color: #9aa0a6;
    margin-bottom: 20px;
}
.keso-kosul-baslik {
    font-size: 14px;
    font-weight: 700;
    color: var(--keso-text);
    margin: 20px 0 6px;
}
.keso-kosul-metin {
    font-size: 13px;
    color: #555;
    line-height: 1.7;
}

/* ═══════════════════════════════════════════════════════════════════════════
   KAMPANYA GEÇMİŞİ
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-gecmis-ozet {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    background: var(--keso);
    padding: 18px 20px;
    color: #fff;
}
.keso-gecmis-ozet-item {
    text-align: center;
}
.keso-gecmis-ozet-sayi {
    font-size: 22px;
    font-weight: 800;
}
.keso-gecmis-ozet-etiket {
    font-size: 11px;
    opacity: .75;
    margin-top: 2px;
}
.keso-gecmis-ozet-ayrac {
    width: 1px;
    height: 36px;
    background: rgba(255,255,255,.3);
}
.keso-gecmis-kart {
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid #e8ecef;
    padding: 14px 16px;
    margin-bottom: 10px;
    box-shadow: var(--shadow-card);
}
.keso-gecmis-kart-ust {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}
.keso-gecmis-kart-firma {
    font-size: 11px;
    font-weight: 600;
    color: var(--keso);
    text-transform: uppercase;
    letter-spacing: .4px;
}
.keso-gecmis-kart-tarih {
    font-size: 11px;
    color: #9aa0a6;
}
.keso-gecmis-kart-baslik {
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: 8px;
    line-height: 1.3;
}
.keso-gecmis-kart-alt {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.keso-gecmis-indirim-badge {
    background: #d1fae5;
    color: #065f46;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 10px;
}
.keso-gecmis-tutar {
    font-size: 12px;
    color: #9aa0a6;
}

/* ═══════════════════════════════════════════════════════════════════════════
   KARANLIK MOD  —  html[data-theme="dark"]
   ═══════════════════════════════════════════════════════════════════════════ */
html[data-theme="dark"],
html[data-theme="dark"] body {
    background: #0f172a;
    color: #e2e8f0;
}

/* Bottom nav */
html[data-theme="dark"] .keso-bnav {
    background: #1e293b;
    border-top-color: #334155;
}
html[data-theme="dark"] .keso-bnav-item { color: #64748b; }
html[data-theme="dark"] .keso-bnav-qr-circle { border-color: #0f172a; }

/* Subpage header */
html[data-theme="dark"] .keso-subpage-header {
    background: #1e293b;
    border-bottom-color: #334155;
}
html[data-theme="dark"] .keso-subpage-title { color: #e2e8f0; }
html[data-theme="dark"] .keso-back-btn { background: #334155; color: #e2e8f0; }
html[data-theme="dark"] .keso-back-btn:active { background: #475569; }

/* Menu / kart */
html[data-theme="dark"] .keso-menu { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-menu-item { color: #e2e8f0; border-bottom-color: #334155; }
html[data-theme="dark"] .keso-menu-item:active { background: #334155; }
html[data-theme="dark"] .keso-menu-item.keso-tema-aktif { background: rgba(13,148,136,.18); }

/* Tema sayfasi */
html[data-theme="dark"] .keso-tema-aciklama { color: #64748b; }
html[data-theme="dark"] .keso-tema-check { background: var(--keso); }

/* Profilim - tema satiri */
html[data-theme="dark"] .keso-tema-row-label { color: #e2e8f0; }

/* Profilim - segmented butonlar */
html[data-theme="dark"] .keso-tema-pills { background: #1e293b; border-color: #475569; }
html[data-theme="dark"] .keso-tema-pill { color: #94a3b8; border-left-color: #475569; }
html[data-theme="dark"] .keso-tema-pill.aktif { background: var(--keso); color: #fff; border-left-color: var(--keso); }
html[data-theme="dark"] .keso-tema-pill.aktif + .keso-tema-pill { border-left-color: var(--keso); }

/* Arama & sticky */
html[data-theme="dark"] .keso-sticky-bar { background: #0f172a; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
html[data-theme="dark"] .keso-search { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-search input { color: #e2e8f0; background: transparent; }
html[data-theme="dark"] .keso-cat-search { background: #1e293b; }
html[data-theme="dark"] .keso-cat-search input { color: #e2e8f0; }

/* Kategori haplar */
html[data-theme="dark"] .keso-cat { background: #1e293b; border-color: #334155; color: #94a3b8; }
html[data-theme="dark"] .keso-cat.active { background: rgba(13,148,136,.2); border-color: var(--keso); color: var(--keso-mid); }

/* Bolum basligi */
html[data-theme="dark"] .keso-section-title { color: #e2e8f0; }

/* Hizli erisim */
html[data-theme="dark"] .as-hizli-item { color: #e2e8f0; }
html[data-theme="dark"] .as-hizli-icon { background: rgba(13,148,136,.18); }

/* Duyurular */
html[data-theme="dark"] .as-duyuru-card { background: #1e293b; box-shadow: 0 1px 4px rgba(0,0,0,0.3), 0 0 0 1px rgba(255,255,255,0.05); }
html[data-theme="dark"] .as-duyuru-baslik { color: #e2e8f0; }
html[data-theme="dark"] .as-duyuru-ozet  { color: #94a3b8; }
html[data-theme="dark"] .as-duyuru-tarih  { color: #64748b; }

/* Haberler sayfası: dikey, tam genişlik liste */
.as-haber-list {
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.as-haber-list .as-duyuru-card {
    width: auto;
    scroll-snap-align: none;
}
.as-haber-list .as-duyuru-img {
    height: 168px;
}

/* Firma & kampanya kart */
html[data-theme="dark"] .keso-firma-card,
html[data-theme="dark"] .keso-camp-card { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-firma-name,
html[data-theme="dark"] .keso-camp-title { color: #e2e8f0; }

/* FirmaDetay */
html[data-theme="dark"] .keso-detay-unvan { color: #e2e8f0; }
html[data-theme="dark"] .keso-detay-bilgi { color: #94a3b8; }
html[data-theme="dark"] .keso-detay-divider { background: #334155; }
html[data-theme="dark"] .keso-chip { background: #334155; color: #94a3b8; }
html[data-theme="dark"] .keso-detay-back { background: rgba(30,41,59,.85); color: #e2e8f0; }
html[data-theme="dark"] .keso-detay-fav-btn { background: rgba(30,41,59,.85); }

/* FirmaDetay - kampanya listesi */
html[data-theme="dark"] .keso-kamp-item { background: rgba(13,148,136,.14); }
html[data-theme="dark"] .keso-kamp-item-title { color: #e2e8f0; }
html[data-theme="dark"] .keso-kamp-item-date  { color: var(--keso-mid); }

/* FirmaDetay - kampanya aciklama */
.keso-kamp-aciklama { font-size: 12px; color: #555; margin-top: 4px; }
html[data-theme="dark"] .keso-kamp-aciklama { color: #94a3b8; }

/* Kisisel bilgiler */
html[data-theme="dark"] .keso-bilgi-card { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-bilgi-row { border-bottom-color: #334155; }
html[data-theme="dark"] .keso-bilgi-value { color: #e2e8f0; }

/* SSS */
html[data-theme="dark"] .keso-sss-kart { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-sss-soru { color: #e2e8f0; }
html[data-theme="dark"] .keso-sss-cevap { color: #94a3b8; border-top-color: #334155; }
html[data-theme="dark"] .keso-sss-ok { color: #64748b; }

/* Yardim merkezi iletisim */
html[data-theme="dark"] .keso-yardim-iletisim { background: rgba(13,148,136,.12); }
html[data-theme="dark"] .keso-yardim-iletisim-baslik { color: #7dd3c8; }
html[data-theme="dark"] .keso-yardim-iletisim-alt    { color: var(--keso-mid); }

/* Gecmis */
html[data-theme="dark"] .keso-gecmis-kart { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-gecmis-kart-baslik { color: #e2e8f0; }
html[data-theme="dark"] .keso-gecmis-kart-tarih  { color: #64748b; }
html[data-theme="dark"] .keso-gecmis-indirim-badge { background: rgba(52,211,153,.15); color: #34d399; }
html[data-theme="dark"] .keso-gecmis-tutar { color: #64748b; }

/* Adres satırı */
html[data-theme="dark"] .keso-firma-addr { color: #64748b; }

/* Daha fazla yükle */
html[data-theme="dark"] .keso-loadmore-btn { background: #1e293b; border-color: #334155; color: #e2e8f0; }

/* Input alanlari */
html[data-theme="dark"] .keso-inp { background: #1e293b; border-color: #334155; color: #e2e8f0; }

/* Bos & yukleniyor */
html[data-theme="dark"] .keso-empty    { color: #64748b; }
html[data-theme="dark"] .as-empty-text { color: #64748b; }
html[data-theme="dark"] .keso-loading  { color: #64748b; }

/* Kosullar */
html[data-theme="dark"] .keso-kosul-body   { color: #e2e8f0; }
html[data-theme="dark"] .keso-kosul-metin  { color: #94a3b8; }
html[data-theme="dark"] .keso-kosul-baslik { color: #7dd3c8; }

/* Blazor hata cubugu */
html[data-theme="dark"] #blazor-error-ui {
    background: #1e293b;
    border-top-color: #334155;
    color: #e2e8f0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ÜRÜNLER & AÇIKLAMALAR  (FirmaDetay)
   ═══════════════════════════════════════════════════════════════════════════ */
.keso-urun-baslik {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 10px;
}
.keso-urun-baslik-ikon { font-size: 18px; }

.keso-urun-listesi {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.keso-urun-kart {
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid #e8ecef;
    box-shadow: var(--shadow-card);
    overflow: hidden;
    display: flex;
    align-items: stretch;
}

.keso-urun-gorsel {
    width: 88px;
    height: 88px;
    object-fit: cover;
    flex-shrink: 0;
}

.keso-urun-icerik {
    padding: 12px 14px;
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: center;
}

.keso-urun-ad {
    font-size: 14px;
    font-weight: 600;
    color: #1a1a1a;
    line-height: 1.3;
}

.keso-urun-aciklama {
    font-size: 12px;
    color: #6b7280;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.keso-urun-fiyat {
    font-size: 14px;
    font-weight: 700;
    color: var(--keso);
    margin-top: 2px;
}

/* Dark mode — Ürünler */
html[data-theme="dark"] .keso-urun-baslik  { color: #e2e8f0; }
html[data-theme="dark"] .keso-urun-kart    { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-urun-ad      { color: #e2e8f0; }
html[data-theme="dark"] .keso-urun-aciklama { color: #94a3b8; }

/* ── Değerlendirme (Rey) bileşenleri ──────────────────────────────────────── */

/* Özet satırı (ortalama ⭐) */
.keso-rey-ozet {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 6px 0 10px;
    padding: 10px 14px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: var(--radius-md);
    cursor: pointer;
}
.keso-rey-yildiz-buyuk { font-size: 20px; color: #f59e0b; letter-spacing: 2px; }
.keso-rey-sayi         { display: flex; flex-direction: column; line-height: 1.2; }
.keso-rey-ort          { font-size: 18px; font-weight: 700; color: #92400e; }
.keso-rey-adet         { font-size: 12px; color: #b45309; }

/* Değerlendirme formu */
.keso-rey-form {
    background: white;
    border-radius: var(--radius-md);
    padding: 14px 16px;
    margin-bottom: 14px;
    border: 1px solid #e5e7eb;
    box-shadow: var(--shadow-card);
}
.keso-rey-form-baslik {
    font-size: 14px;
    font-weight: 600;
    color: var(--keso-text);
    margin-bottom: 10px;
}

/* Yıldız seçimi */
.keso-yildiz-sec {
    display: flex;
    gap: 6px;
    margin-bottom: 10px;
}
.keso-yildiz-btn {
    font-size: 28px;
    background: none;
    border: none;
    cursor: pointer;
    color: #d1d5db;
    padding: 0;
    line-height: 1;
    transition: color .15s, transform .1s;
    touch-action: manipulation;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.keso-yildiz-btn.aktif  { color: #f59e0b; }
.keso-yildiz-btn:active { transform: scale(1.2); }

/* Yorum textarea */
.keso-rey-textarea {
    width: 100%;
    min-height: 80px;
    border: 1px solid #e5e7eb;
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    font-size: 14px;
    font-family: inherit;
    resize: none;
    outline: none;
    transition: border-color .15s;
    margin-bottom: 10px;
    color: #1a1a1a;
}
.keso-rey-textarea:focus { border-color: var(--keso); }

/* Gönder butonu */
.keso-rey-gonder-btn { width: 100%; }

/* Bilgi mesajı */
.keso-rey-bilgi {
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: var(--radius-sm);
    font-size: 13px;
}
.keso-rey-bilgi.basari { background: #e1f5ee; color: var(--keso-text); }
.keso-rey-bilgi.hata   { background: #fef2f2; color: #e74c3c; }

/* Giriş kutusu (misafir / işlem yok) */
.keso-rey-giris-kutu {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: var(--keso-light);
    border-radius: var(--radius-md);
    margin-bottom: 14px;
    font-size: 13px;
    color: var(--keso-text);
}
.keso-rey-giris-btn {
    font-size: 13px;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 20px;
    background: var(--keso);
    color: white;
    text-decoration: none;
    white-space: nowrap;
}
.keso-rey-yukl { font-size: 13px; color: #888; padding: 8px 0; }

/* Yorum kartları */
.keso-rey-kart {
    background: white;
    border-radius: var(--radius-md);
    padding: 12px 14px;
    margin-bottom: 10px;
    border: 1px solid #f0f0f0;
    box-shadow: var(--shadow-card);
}
.keso-rey-kart-ust {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}
.keso-rey-kart-ad     { font-size: 13px; font-weight: 600; color: #374151; }
.keso-rey-kart-puan   { font-size: 14px; color: #f59e0b; letter-spacing: 1px; }
.keso-rey-kart-yorum  { font-size: 13px; color: #4b5563; line-height: 1.5; margin-bottom: 4px; }
.keso-rey-kart-tarih  { font-size: 11px; color: #9ca3af; }

/* Dark mode — Rey */
html[data-theme="dark"] .keso-rey-ozet      { background: #1c1a0f; border-color: #4d3a00; }
html[data-theme="dark"] .keso-rey-ort       { color: #fcd34d; }
html[data-theme="dark"] .keso-rey-adet      { color: #d97706; }
html[data-theme="dark"] .keso-rey-form      { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-rey-form-baslik { color: #e2e8f0; }
html[data-theme="dark"] .keso-rey-textarea  { background: #0f172a; border-color: #334155; color: #e2e8f0; }
html[data-theme="dark"] .keso-rey-kart      { background: #1e293b; border-color: #334155; }
html[data-theme="dark"] .keso-rey-kart-ad   { color: #e2e8f0; }
html[data-theme="dark"] .keso-rey-kart-yorum { color: #94a3b8; }
html[data-theme="dark"] .keso-rey-giris-kutu { background: #0f2d2a; }

/* ── Başkanın Mesajı kartı (AnaSayfa) ─────────────────────────────────────── */
.as-baskan-kart {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 16px 12px;
    padding: 14px 16px;
    background: white;
    border-radius: 14px;
    box-shadow: 0 2px 10px rgba(0,0,0,.07);
    text-decoration: none;
    color: inherit;
    border-left: 4px solid var(--keso, #0d9488);
}
.as-baskan-avatar {
    width: 50px;
    height: 50px;
    min-width: 50px;
    border-radius: 50%;
    background: var(--keso, #0d9488);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.as-baskan-body  { flex: 1; min-width: 0; }
.as-baskan-ad    { font-size: .88rem; font-weight: 700; color: #1e293b; }
.as-baskan-unvan { font-size: .75rem; color: var(--keso, #0d9488); font-weight: 500; margin-bottom: 4px; }
.as-baskan-ozet  { font-size: .78rem; color: #64748b; line-height: 1.5;
                   overflow: hidden; display: -webkit-box;
                   -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.as-baskan-ok    { color: #94a3b8; }

/* Dark mode */
html[data-theme="dark"] .as-baskan-kart   { background: #1e293b; }
html[data-theme="dark"] .as-baskan-ad     { color: #e2e8f0; }
html[data-theme="dark"] .as-baskan-ozet   { color: #94a3b8; }

/* ── Son Kampanyalarım kartları (AnaSayfa) ─────────────────────────────────── */
.as-gecmis-kart {
    display: flex;
    align-items: center;
    gap: 12px;
    background: white;
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 8px;
    box-shadow: 0 1px 6px rgba(0,0,0,.06);
}
.as-gecmis-ikon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 10px;
    background: var(--keso-light, #f0fdf9);
    display: flex;
    align-items: center;
    justify-content: center;
}
.as-gecmis-body  { flex: 1; min-width: 0; }
.as-gecmis-baslik{ font-size: .85rem; font-weight: 600; color: #1e293b;
                   white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.as-gecmis-firma { font-size: .75rem; color: #64748b; margin-top: 2px; }
.as-gecmis-sag   { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.as-gecmis-badge { font-size: .72rem; font-weight: 700; color: white;
                   background: var(--keso, #0d9488);
                   padding: 2px 8px; border-radius: 20px; white-space: nowrap; }
.as-gecmis-tarih { font-size: .7rem; color: #94a3b8; }

/* Dark mode */
html[data-theme="dark"] .as-gecmis-kart   { background: #1e293b; }
html[data-theme="dark"] .as-gecmis-baslik { color: #e2e8f0; }
html[data-theme="dark"] .as-gecmis-ikon   { background: #0f2d2a; }

/* ── Misafir Hoş Geldin Bandı (AnaSayfa) ─────────────────────────────────── */
.as-misafir-band { display:flex; align-items:flex-start; gap:10px;
    background:#f0fdf9; border:1px solid #99f6e4; border-radius:12px;
    margin:12px 16px 4px; padding:12px 14px; }
.as-misafir-band-icon { flex-shrink:0; margin-top:1px; }
.as-misafir-band-metin { flex:1; font-size:13px; color:#1e293b; line-height:1.55; }
.as-misafir-band-link { color:var(--keso,#0d9488); font-weight:600;
    text-decoration:underline; text-underline-offset:2px; }
.as-misafir-band-kapat { flex-shrink:0; background:none; border:none;
    cursor:pointer; color:#94a3b8; padding:2px; display:flex;
    align-items:center; justify-content:center;
    min-width:28px; min-height:28px; border-radius:6px;
    touch-action:manipulation; -webkit-appearance:none;
    transition:background .15s, color .15s; }
.as-misafir-band-kapat:active { background:#d1fae5; color:var(--keso,#0d9488); }
html[data-theme="dark"] .as-misafir-band { background:#0f2a25; border-color:#1e5a4a; }
html[data-theme="dark"] .as-misafir-band-metin { color:#cbd5e1; }
html[data-theme="dark"] .as-misafir-band-kapat { color:#64748b; }

/* ── Sektörel Harita — Leaflet popup & cluster (global, Leaflet DOM'una inject edilir) ── */
.keso-harita-popup   { font-family: inherit; min-width: 160px; }
.khp-kat             { font-size: 11px; color: #6b7280; font-weight: 500; text-transform: uppercase; letter-spacing: .5px; margin-bottom: 2px; }
.khp-ad              { font-size: 15px; font-weight: 700; color: #1f2937; margin-bottom: 10px; line-height: 1.3; }
.khp-btn             { display: block; width: 100%; padding: 7px 0; background: #0d9488; color: #fff; border: none; border-radius: 7px; font-size: 13px; font-weight: 600; cursor: pointer; transition: background .15s; }
.khp-btn:active      { background: #0f766e; }
.keso-cluster-icon   { display: flex; align-items: center; justify-content: center; background: #0d9488; border-radius: 50%; box-shadow: 0 2px 8px rgba(13,148,136,.45); }
.keso-cluster-icon span { color: #fff; font-size: 14px; font-weight: 700; }

