/*
   site.css — giriş yapıldıktan sonraki sayfaların kabuğu ve ana sayfa.

   Renkler mobil uygulamanın paletinden (app/lib/core/theme/
   app_theme_colors.dart ve app_theme.dart): aynı lacivert, aynı mavi, aynı
   yeşil/kehribar aşama renkleri. Ölçüler birebir kopyalanmadı — dokunmatik
   için seçilmiş yükseklikler farede fazla iri, geniş ekranda tek sütun
   fazla dar kalıyor.

   KOYU TEMA VAR: uygulamada da var ve aynı değerleri kullanıyor.

   ÜÇ DURUM: Ayarlar'daki tema seçimi <html data-tema="acik|koyu"> yazıyor;
   "sistem" seçiliyken öznitelik HİÇ olmuyor ve karar
   `prefers-color-scheme`e kalıyor. Bu yüzden koyu değerler İKİ yerde
   tanımlı — biri sistem tercihi için (açık temayı SEÇMİŞ kullanıcıyı
   dışarıda bırakarak), biri açık seçim için. Renkler yalnızca medya
   sorgusunun içinde tanımlansaydı, koyu temayı elle seçen kullanıcı açık
   temada kalırdı.

   Mobilde de tema ayarlanabilir bir şey (`AppSettings.themeMode`); web'in
   yalnızca işletim sistemine uyması eksikti.
*/

:root {
    --lacivert: #22315F;
    --mavi: #4058D2;

    --zemin: #F3F5FB;
    --yuzey: #FFFFFF;
    --yuzey-soluk: #F0F2F8;
    --kenar: #D8DDE9;
    --yazi: #1A2138;
    --soluk: #60697A;
    --silik: #747C90;
    --golge: rgba(34, 49, 95, .10);

    /* Aşama renkleri — TEK İŞ İÇİN. Kehribar başka hiçbir yerde
       kullanılmıyor ki gördüğü yerde "burası bekliyor" demek olsun. */
    --tamam: #0F8F55;
    --bekleyen: #C27803;
    --bekleyen-halka: #FDF1D8;
    --bos: #A9B0C4;
}

/* Sistem tercihi — açık temayı AÇIKÇA seçmiş kullanıcıya uygulanmaz. */
@media (prefers-color-scheme: dark) {
    :root:not([data-tema="acik"]) {
        --lacivert: #121A31;
        --mavi: #7A8CE8;

        --zemin: #0B1020;
        --yuzey: #151E35;
        --yuzey-soluk: #202D49;
        --kenar: #35415F;
        --yazi: #E7EBF4;
        --soluk: #B4BED2;
        --silik: #8F9AB1;
        --golge: rgba(0, 0, 0, .40);

        --tamam: #5FD79C;
        --bekleyen: #EFB247;
        --bekleyen-halka: #33260E;
        --bos: #5A657F;
    }
}

/* Elle seçilen koyu tema — sistem ne derse desin. */
:root[data-tema="koyu"] {
    --lacivert: #121A31;
    --mavi: #7A8CE8;

    --zemin: #0B1020;
    --yuzey: #151E35;
    --yuzey-soluk: #202D49;
    --kenar: #35415F;
    --yazi: #E7EBF4;
    --soluk: #B4BED2;
    --silik: #8F9AB1;
    --golge: rgba(0, 0, 0, .40);

    --tamam: #5FD79C;
    --bekleyen: #EFB247;
    --bekleyen-halka: #33260E;
    --bos: #5A657F;
}

*, *::before, *::after { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--zemin);
    color: var(--yazi);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                 "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

a { color: inherit; }

.simge-deposu { position: absolute; }

/* Klavyeyle gezene menüyü atlama kapısı; fareye görünmüyor. */
.atla {
    position: absolute;
    left: -9999px;
    z-index: 20;
    padding: 10px 16px;
    border-radius: 0 0 12px 0;
    background: var(--mavi);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.atla:focus { left: 0; top: 0; }

/* ── Üst çubuk ───────────────────────────────────────────────────── */
.ust-cubuk {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 22px;
    background: var(--lacivert);
    color: #fff;
}

.ust-cubuk .marka {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    font-size: 17px;
    letter-spacing: -.2px;
    text-decoration: none;
}

.hesap {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    font-size: 14px;
}

.hesap form { margin: 0; }

.avatar {
    flex: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
}

.avatar-harf {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 14px;
    font-weight: 800;
}

.hesap-yazi {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.hesap-yazi .ad {
    overflow: hidden;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hesap-yazi .eposta {
    overflow: hidden;
    color: rgba(255, 255, 255, .55);
    font-size: 11.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cikis {
    padding: 7px 15px;
    border: 1px solid rgba(255, 255, 255, .35);
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.cikis:hover { background: rgba(255, 255, 255, .12); }

/* ── Kabuk: yan menü + içerik ────────────────────────────────────── */
.kabuk {
    display: flex;
    align-items: flex-start;
    gap: 28px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 22px 64px;
}

.icerik {
    flex: 1;
    /* min-width:0 OLMAZSA uzun sınav adı esnek kutuyu şişirip yan menüyü
       ekran dışına itiyor. */
    min-width: 0;
}

/* ── Menü ────────────────────────────────────────────────────────── */
.menu ul {
    display: flex;
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu a {
    display: flex;
    align-items: center;
    gap: 12px;
    border-radius: 13px;
    color: var(--soluk);
    font-weight: 600;
    text-decoration: none;
    transition: background-color .12s ease, color .12s ease;
}

.menu svg {
    width: 21px;
    height: 21px;
    fill: currentColor;
}

.menu a:hover { background: var(--yuzey-soluk); color: var(--yazi); }

.menu a.acik { color: var(--mavi); font-weight: 800; }

/* Yan menü — geniş ekran. */
.yan-menu {
    position: sticky;
    top: 76px;
    flex: none;
    width: 214px;
    padding: 8px;
    border-radius: 18px;
    background: var(--yuzey);
    box-shadow: 0 8px 24px var(--golge);
}

.yan-menu ul { flex-direction: column; gap: 2px; }

.yan-menu a { padding: 11px 13px; font-size: 14.5px; }

.yan-menu a.acik { background: color-mix(in srgb, var(--mavi) 12%, transparent); }

/* Alt çubuk — dar ekran. Uygulamadaki YÜZEN çubuğun aynısı: kartlarla
   aynı dili konuşuyor, ekranın kenarına yapışmıyor. */
.alt-menu {
    display: none;
    position: fixed;
    right: 12px;
    bottom: 12px;
    left: 12px;
    z-index: 10;
    padding: 8px 6px;
    border-radius: 26px;
    background: var(--yuzey);
    box-shadow: 0 8px 24px var(--golge);
}

.alt-menu ul { justify-content: space-between; }

.alt-menu li { flex: 1; }

.alt-menu a {
    flex-direction: column;
    gap: 4px;
    padding: 4px 2px;
    font-size: 11px;
    text-align: center;
}

.alt-menu a:hover { background: transparent; }

/* Seçili sekme ikonun ARKASINDAKİ hapla belli oluyor, çubuğun tamamını
   boyamadan. */
.alt-menu .menu-simge {
    display: inline-flex;
    padding: 5px 17px;
    border-radius: 15px;
}

.alt-menu a.acik .menu-simge {
    background: color-mix(in srgb, var(--mavi) 14%, transparent);
}

@media (max-width: 900px) {
    .yan-menu { display: none; }
    .alt-menu { display: block; }
    .kabuk { padding: 18px 16px 104px; }
    .ust-cubuk { padding: 10px 16px; }
    /* Telefonda e-posta satırı adın altında yer kaplıyor; kim olduğunu
       ad zaten söylüyor. */
    .hesap-yazi .eposta { display: none; }
}

@media (max-width: 560px) {
    .hesap-yazi { display: none; }
}

/* ── Ana sayfa: selamlama ────────────────────────────────────────── */
.karsilama {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 26px 54px;
    border-radius: 20px;
    background: var(--lacivert);
    color: #fff;
}

.karsilama-marka { flex: none; }

.karsilama h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -.3px;
}

.karsilama .marka-etiket {
    margin: 3px 0 0;
    color: rgba(255, 255, 255, .5);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.2px;
}

/* ── Ana sayfa: iki durak ────────────────────────────────────────── */
/* Kartlar lacivertin alt kenarına BİNİYOR — uygulamadaki yerleşimin
   aynısı; iki bölüm arasında sınır değil, geçiş var. */
.duraklar {
    display: grid;
    position: relative;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 12px;
    margin: -34px 16px 0;
}

.durak {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 14px 14px 12px;
    border-radius: 16px;
    background: var(--yuzey);
    box-shadow: 0 8px 24px var(--golge);
    text-decoration: none;
    transition: transform .12s ease, box-shadow .12s ease;
}

.durak:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px var(--golge);
}

.durak-no {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: color-mix(in srgb, var(--mavi) 12%, transparent);
    color: var(--mavi);
    font-size: 13px;
    font-weight: 900;
}

.durak-yazi {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.durak-yazi strong {
    font-size: 15.5px;
    font-weight: 800;
    letter-spacing: -.2px;
}

.durak-yazi small {
    margin-top: 1px;
    overflow: hidden;
    color: var(--soluk);
    font-size: 12.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.durak-ok {
    flex: none;
    width: 20px;
    height: 20px;
    fill: var(--kenar);
}

/* ── Ana sayfa: bölüm başlığı ────────────────────────────────────── */
.bolum-basligi {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 30px 4px 12px;
}

.bolum-basligi h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.yeni-sinav {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 8px 14px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--mavi) 12%, transparent);
    color: var(--mavi);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.yeni-sinav:hover { background: color-mix(in srgb, var(--mavi) 20%, transparent); }

.yeni-sinav svg { width: 17px; height: 17px; fill: currentColor; }

/* ── Ana sayfa: sınav kartları ───────────────────────────────────── */
.sinavlar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(288px, 1fr));
    gap: 12px;
}

.sinav-karti {
    display: flex;
    flex-direction: column;
    padding: 14px 15px 13px;
    border: 1px solid var(--kenar);
    border-radius: 16px;
    background: var(--yuzey);
}

/* Okumaya hazır sınav çerçevesinden belli oluyor: sayfadaki tek dolu
   düğme de onun içinde. */
.sinav-karti.one-cikan {
    border-color: color-mix(in srgb, var(--mavi) 45%, transparent);
}

.sinav-karti header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.sinav-karti h3 {
    margin: 0;
    overflow: hidden;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: -.2px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sinav-karti time {
    flex: none;
    color: var(--soluk);
    font-size: 11.5px;
}

.alt-bilgi {
    margin: 4px 0 0;
    overflow: hidden;
    color: var(--soluk);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Aşama şeridi: Optik → Anahtar → Okuma ───────────────────────── */
.asama-seridi {
    display: flex;
    align-items: center;
    margin: 13px 0;
}

.asama {
    display: inline-flex;
    flex: none;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 700;
}

.asama-nokta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
}

.asama-nokta svg { width: 9px; height: 9px; fill: #fff; }

.asama.tamam { color: var(--tamam); }
.asama.tamam .asama-nokta { background: var(--tamam); }

.asama.sirada { color: var(--bekleyen); }

/* Sıradaki adımın halkası: gözün ilk gittiği yer olsun diye. */
.asama.sirada .asama-nokta { box-shadow: 0 0 0 3px var(--bekleyen-halka); }

.asama.bekleyen { color: var(--bos); }

.asama-cizgi {
    flex: 1;
    height: 1.5px;
    margin: 0 8px;
    border-radius: 1px;
    background: var(--kenar);
}

.asama-cizgi.tamam { background: color-mix(in srgb, var(--tamam) 55%, transparent); }

/* ── Düğmeler ────────────────────────────────────────────────────── */
.dugme-dolu,
.dugme-soluk {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: auto;
    padding: 11px 16px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.dugme-dolu svg,
.dugme-soluk svg { width: 16px; height: 16px; fill: currentColor; }

.dugme-dolu { background: var(--mavi); color: #fff; }
.dugme-dolu:hover { filter: brightness(.94); }

.dugme-soluk {
    background: color-mix(in srgb, var(--mavi) 10%, transparent);
    color: var(--mavi);
}

.dugme-soluk:hover { background: color-mix(in srgb, var(--mavi) 18%, transparent); }

.dugme-cizgili {
    display: inline-flex;
    align-items: center;
    padding: 9px 18px;
    border: 1px solid color-mix(in srgb, var(--mavi) 45%, transparent);
    border-radius: 999px;
    color: var(--mavi);
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
}

.dugme-cizgili:hover { background: color-mix(in srgb, var(--mavi) 10%, transparent); }

/* ── Boş liste ve uyarı ──────────────────────────────────────────── */
.bos-liste {
    padding: 30px 22px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey);
    text-align: center;
}

.bos-liste svg { width: 30px; height: 30px; fill: var(--mavi); }

.bos-liste p { margin: 8px 0 14px; font-weight: 800; }

.uyari {
    margin: 0;
    padding: 13px 15px;
    border: 1px solid color-mix(in srgb, var(--bekleyen) 45%, transparent);
    border-radius: 14px;
    background: var(--bekleyen-halka);
    color: var(--yazi);
    font-size: 13.5px;
}

/* ── Hazırlanacak bölüm sayfası ──────────────────────────────────── */
.hazirlanacak {
    max-width: 560px;
    margin: 40px auto;
    padding: 34px 30px;
    border: 1px solid var(--kenar);
    border-radius: 20px;
    background: var(--yuzey);
    text-align: center;
}

.hazirlanacak h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 900;
    letter-spacing: -.3px;
}

.hazirlanacak .aciklama {
    margin: 10px 0 20px;
    color: var(--soluk);
    line-height: 1.6;
}

.hazirlanacak .rozet {
    display: inline-block;
    margin: 0;
    padding: 7px 15px;
    border-radius: 999px;
    background: var(--bekleyen-halka);
    color: var(--bekleyen);
    font-size: 12.5px;
    font-weight: 800;
}

.hazirlanacak .yonlendirme {
    margin: 20px 0 0;
    color: var(--silik);
    font-size: 13.5px;
}

.hazirlanacak .yonlendirme a { color: var(--mavi); font-weight: 700; }

/* ── Şablon başlangıç yolları ─────────────────────────────────────── */
.hazir-katalog { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); }
.hazir-kart { display: grid; grid-template-columns: 92px 1fr; gap: 18px; align-items: center; padding: 20px; background: var(--yuzey); border: 1px solid var(--kenar); border-radius: 18px; box-shadow: 0 8px 24px var(--golge); }
.hazir-kart .dugme-dolu { grid-column: 1 / -1; justify-content: center; text-decoration: none; }
.hazir-bilgi h2 { margin: 0 0 5px; font-size: 18px; }
.hazir-bilgi p { margin: 0; color: var(--silik); font-size: 13px; }
.hazir-bilgi ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.hazir-bilgi li { padding: 4px 8px; border-radius: 999px; background: var(--yuzey-soluk); color: var(--silik); font-size: 11px; font-weight: 700; }
.hazir-onizleme { width: 76px; height: 108px; padding: 10px 8px; background: white; border: 1px solid #ccd2df; border-radius: 6px; box-shadow: 0 5px 16px rgba(20, 35, 75, .12); }
.hazir-onizleme span { display: block; height: 9px; margin-bottom: 7px; background: radial-gradient(circle, #22315f 1.2px, transparent 1.5px) 0 0 / 8px 8px; }

.sihirbaz-formu { display: grid; gap: 14px; }
.sihirbaz-adim { display: grid; grid-template-columns: 42px minmax(190px, 1fr) repeat(2, minmax(110px, 180px)); gap: 16px; align-items: center; padding: 18px; border: 1px solid var(--kenar); border-radius: 16px; background: var(--yuzey); }
.sihirbaz-adim h2 { margin: 0 0 3px; font-size: 16px; }
.sihirbaz-adim p { margin: 0; color: var(--silik); font-size: 12px; }
.sihirbaz-adim label, .kodla-al label { display: grid; gap: 5px; color: var(--silik); font-size: 12px; font-weight: 700; }
.sihirbaz-adim input[type="number"], .sihirbaz-adim select, .kodla-al input { min-height: 42px; padding: 8px 10px; color: var(--yazi); background: var(--zemin); border: 1px solid var(--kenar); border-radius: 10px; }
.adim-no { display: grid; place-items: center; width: 36px; height: 36px; color: white; background: var(--mavi); border-radius: 12px; font-weight: 900; }
.sihirbaz-sec { display: flex !important; align-items: center; gap: 8px !important; color: var(--yazi) !important; }
.sihirbaz-adim.son { grid-template-columns: 42px 1fr auto; }

.kodla-al { max-width: 560px; margin: 32px auto; padding: 30px; text-align: center; background: var(--yuzey); border: 1px solid var(--kenar); border-radius: 20px; box-shadow: 0 8px 24px var(--golge); }
.kodla-al > p { color: var(--silik); line-height: 1.55; }
.kodla-al form { display: grid; gap: 14px; margin-top: 24px; text-align: left; }
.kodla-al input { text-align: center; text-transform: uppercase; letter-spacing: .18em; font-size: 19px; font-weight: 900; }
.kod-simge { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 14px; color: var(--mavi); background: color-mix(in srgb, var(--mavi) 12%, transparent); border-radius: 16px; font-size: 26px; font-weight: 900; }

@media (max-width: 760px) {
  .sihirbaz-adim, .sihirbaz-adim.son { grid-template-columns: 42px 1fr; }
  .sihirbaz-adim > label, .sihirbaz-adim > button { grid-column: 2; }
}

/* ── Yardım ve Destek ─────────────────────────────────────────────── */
.destek-sayfa{display:grid;gap:18px;max-width:920px;margin:0 auto}.destek-obek,.destek-detay-baslik,.destek-form{padding:22px;background:var(--yuzey);border:1px solid var(--kenar);border-radius:18px;box-shadow:0 8px 24px var(--golge)}
.destek-obek h2,.destek-detay-baslik h2{margin:0 0 10px}.destek-arama input,.destek-form input,.destek-form select,.destek-form textarea,.destek-dialog textarea{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid var(--kenar);border-radius:11px;background:var(--zemin);color:var(--metin);font:inherit}.faq-liste{display:grid;gap:8px;margin-top:14px}.faq{border:1px solid var(--kenar);border-radius:12px;padding:0 14px;background:var(--zemin)}.faq summary{padding:14px 0;font-weight:750;cursor:pointer}.faq p{white-space:pre-line;line-height:1.55;color:var(--soluk)}.faq a{display:inline-block;margin:0 0 14px;color:var(--mavi);font-weight:700}
.destek-talep-baslik{display:flex;align-items:center;justify-content:space-between;gap:16px}.dugme-dolu.pasif{opacity:.5;pointer-events:none}.destek-talep-listesi{display:grid;gap:10px}.destek-talep-karti{display:flex;justify-content:space-between;gap:18px;padding:17px;background:var(--yuzey);border:1px solid var(--kenar);border-radius:15px;color:var(--metin);text-decoration:none}.destek-talep-karti:hover{border-color:var(--mavi)}.destek-talep-karti h3{margin:9px 0 5px}.destek-talep-karti p,.destek-talep-karti time{margin:0;color:var(--soluk);font-size:.82rem}.destek-rozet,.destek-yeni{display:inline-block;padding:4px 8px;border-radius:99px;font-size:.72rem;font-weight:800}.destek-rozet{background:color-mix(in srgb,var(--mavi) 14%,transparent);color:var(--mavi)}.durum-answered{background:#e7f7ef;color:#148254}.durum-resolved,.durum-closed{background:var(--zemin);color:var(--soluk)}.destek-yeni{background:#fff0d6;color:#9b5b00}
.destek-form{display:grid;gap:18px}.destek-form label{display:grid;gap:7px;font-weight:750}.destek-form small{color:var(--soluk);font-weight:400}.destek-baglam,.destek-bilgi{padding:13px;border-radius:12px;background:var(--zemin);color:var(--soluk)}.destek-baglam p{margin:5px 0 0}.destek-onizlemeler{display:flex;gap:8px;flex-wrap:wrap}.destek-onizlemeler img{width:96px;height:72px;object-fit:cover;border-radius:9px;border:1px solid var(--kenar)}
.geri{color:var(--mavi);font-weight:750;text-decoration:none}.destek-kategori{margin-left:8px;color:var(--soluk);font-size:.8rem;font-weight:700}.destek-detay-baslik>div>p{color:var(--soluk)}.destek-detay-baslik details{margin-top:14px}.destek-detay-baslik dl div{display:grid;grid-template-columns:140px 1fr;gap:10px}.destek-detay-baslik dt{color:var(--soluk)}.destek-detay-baslik dd{margin:0;overflow-wrap:anywhere}.destek-yazisma{display:grid;gap:12px}.destek-mesaj{padding:16px;background:var(--yuzey);border:1px solid var(--kenar);border-radius:16px}.destek-mesaj.yonetici{background:color-mix(in srgb,var(--mavi) 8%,var(--yuzey));border-color:color-mix(in srgb,var(--mavi) 35%,var(--kenar))}.destek-mesaj header{display:flex;justify-content:space-between;gap:12px;color:var(--soluk);font-size:.8rem}.destek-mesaj p{white-space:pre-wrap;line-height:1.55}.destek-ekler{display:flex;gap:8px;flex-wrap:wrap}.destek-ekler img{width:150px;height:110px;object-fit:cover;border-radius:10px}.destek-yenile{text-align:center;color:var(--soluk);font-size:.8rem}.destek-eylemler{display:flex;justify-content:flex-end;gap:10px}.destek-eylemler form{margin:0}.destek-cozuldu{background:#148254}.destek-dialog{width:min(560px,calc(100% - 30px));border:1px solid var(--kenar);border-radius:18px;background:var(--yuzey);color:var(--metin)}.destek-dialog::backdrop{background:#101426aa}.destek-dialog form{display:grid;gap:13px}.dialog-kapat{justify-self:end;border:0;background:transparent;color:var(--metin);font-size:1.6rem;cursor:pointer}
@media(max-width:640px){.destek-obek,.destek-detay-baslik,.destek-form{padding:16px}.destek-talep-baslik,.destek-talep-karti{align-items:flex-start}.destek-talep-baslik{flex-direction:column}.destek-talep-karti time{white-space:nowrap}.destek-eylemler{display:grid;grid-template-columns:1fr 1fr}.destek-eylemler button{width:100%}.destek-detay-baslik dl div{grid-template-columns:1fr;gap:2px}}

.tuval .pdf-arka-plan { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: fill; pointer-events: none; opacity: .88; }
.tuval > .blok, .tuval > .kayit-katmani { position: absolute; z-index: 2; }

/* Hareketi rahatsız edici bulan kullanıcı için animasyon yok. */
@media (prefers-reduced-motion: reduce) {
    .durak, .dugme-dolu { transition: none; }
    .durak:hover { transform: none; }
}

/* ════════════════════════════════════════════════════════════════════
   ŞABLONLAR

   Renkli tonlar mobil uygulamadan birebir (`forms_list_screen.dart`
   başlangıç yolu paletleri ve `eylem_sayfasi.dart` eylem renkleri). Her
   birinin açık ve koyu tema için ayrı değeri var: açık temada okunan bir
   ton koyu zeminde kararıyor.

   DURUM PALETİNDEN AYRI tutuldular. Uygulamada yeşil "tamamlandı",
   kehribar "bekliyor" demek; bir gezinme satırının o tonları taşıması
   olmayan bir durum bildirirdi.
   ════════════════════════════════════════════════════════════════════ */

:root {
    --mor: #6C4BD6;        /* sihirbaz — "kendiliğinden oluyor" hissi */
    --gok: #2F6FE0;        /* hazır şablonlar — uygulamanın kendi içeriği */
    --turkuaz: #0E8F86;    /* sıfırdan tasarla; "tamamlandı" yeşilinden uzak */
    --kiremit: #C2503A;    /* PDF için alışılmış renk */
    --erguvan: #A33F86;    /* paylaşım kodu — diğerlerinin arasında boş hue */
    --lacivert-yumusak: #3B4A7A;
    --kirmizi: #C24141;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-tema="acik"]) {
        --mor: #A88CF5;
        --gok: #7FA9F2;
        --turkuaz: #4FC9BE;
        --kiremit: #EE8E77;
        --erguvan: #E99BD4;
        --lacivert-yumusak: #97A6D8;
        --kirmizi: #F08E8E;
    }
}

:root[data-tema="koyu"] {
    --mor: #A88CF5;
    --gok: #7FA9F2;
    --turkuaz: #4FC9BE;
    --kiremit: #EE8E77;
    --erguvan: #E99BD4;
    --lacivert-yumusak: #97A6D8;
    --kirmizi: #F08E8E;
}

/* ── Başlık ve arama ─────────────────────────────────────────────── */
.karsilama-sablon { justify-content: space-between; flex-wrap: wrap; gap: 14px 20px; }

.karsilama-sablon h1 { font-size: 22px; }

.ara {
    display: flex;
    position: relative;
    align-items: center;
    flex: 1;
    min-width: 220px;
    max-width: 340px;
}

.ara-simge {
    position: absolute;
    left: 12px;
    width: 18px;
    height: 18px;
    fill: rgba(255, 255, 255, .6);
    pointer-events: none;
}

.ara input {
    width: 100%;
    padding: 10px 38px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 13px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    font: inherit;
    font-size: 14px;
}

.ara input::placeholder { color: rgba(255, 255, 255, .55); }

.ara input:focus {
    outline: none;
    border-color: rgba(255, 255, 255, .5);
    background: rgba(255, 255, 255, .16);
}

/* Tarayıcının kendi temizleme düğmesi bizimkiyle üst üste binerdi. */
.ara input::-webkit-search-cancel-button { display: none; }

.ara-temizle {
    display: inline-flex;
    position: absolute;
    right: 10px;
    padding: 4px;
    border-radius: 50%;
}

.ara-temizle svg { width: 16px; height: 16px; fill: rgba(255, 255, 255, .75); }

.ara-temizle:hover { background: rgba(255, 255, 255, .16); }

/* ── Başlangıç yolları ───────────────────────────────────────────── */
/* Ana sayfadaki duraklar gibi lacivertin alt kenarına biniyor. */
.yollar {
    position: relative;
    margin: -34px 16px 0;
    padding: 6px;
    border-radius: 18px;
    background: var(--yuzey);
    box-shadow: 0 8px 24px var(--golge);
}

/* İkisi geniş ekranda yan yana, dar ekranda alt alta. Gruplama korunuyor:
   üstteki öbek hızlı yollar, alttaki tasarım işi. */
.yol-ikili {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(268px, 1fr));
}

.yol-ayirac {
    height: 1px;
    margin: 4px 10px;
    border: 0;
    background: var(--kenar);
}

.yol {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 10px;
    border-radius: 13px;
    text-decoration: none;
}

.yol:hover { background: var(--yuzey-soluk); }

.yol-birincil {
    padding: 14px 12px;
    background: var(--mavi);
    color: #fff;
}

.yol-birincil:hover { background: var(--mavi); filter: brightness(.94); }

.yol-simge {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    /* Renk satırın kendi paletinden; varsayılan mor. */
    background: color-mix(in srgb, var(--yol-renk, var(--mor)) 16%, transparent);
    color: var(--yol-renk, var(--mor));
}

.yol-simge svg { width: 19px; height: 19px; fill: currentColor; }

/* Birincil satırda zemin zaten mavi; üstüne ikinci bir renk alacalı yapardı. */
.yol-birincil .yol-simge { background: rgba(255, 255, 255, .18); color: #fff; }

.yol-hazir { --yol-renk: var(--gok); }
.yol-kod { --yol-renk: var(--erguvan); }
.yol-sifirdan { --yol-renk: var(--turkuaz); }
.yol-pdf { --yol-renk: var(--kiremit); }

.yol-yazi {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

.yol-yazi strong { font-size: 15px; font-weight: 700; letter-spacing: -.2px; }

.yol-yazi small {
    margin-top: 1px;
    overflow: hidden;
    color: var(--soluk);
    font-size: 11.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.yol-birincil .yol-yazi small { color: rgba(255, 255, 255, .72); }

.yol-ok { flex: none; width: 20px; height: 20px; fill: var(--kenar); }

.yol-birincil .yol-ok { fill: rgba(255, 255, 255, .8); }

/* ── Liste başlığındaki sayı ─────────────────────────────────────── */
.bolum-basligi .adet { color: var(--soluk); font-size: 12.5px; }

/* ── Şablon kartı ────────────────────────────────────────────────── */
.sablonlar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
    gap: 12px;
}

.sablon-karti {
    display: flex;
    flex-direction: column;
    padding: 14px 15px 12px;
    border: 1px solid var(--kenar);
    border-radius: 17px;
    background: var(--yuzey);
}

.sablon-ust { display: flex; gap: 13px; }

.sablon-yazi { flex: 1; min-width: 0; }

.sablon-yazi h3 {
    margin: 0 0 4px;
    overflow: hidden;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: -.2px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sablon-yazi h3 a { text-decoration: none; }
.sablon-yazi h3 a:hover { text-decoration: underline; }

/* ── Künye ───────────────────────────────────────────────────────── */
.kunye { margin: 0; }

.kunye > div { display: flex; align-items: baseline; gap: 6px; padding-top: 2px; }

.kunye dt {
    flex: none;
    /* Sabit genişlik: değerler hizalansın, göz tek dikey çizgide tarasın.
       En uzun etiket (Sorular) sığıyor. */
    width: 52px;
    color: var(--silik);
    font-size: 10px;
    font-weight: 700;
}

.kunye dd {
    margin: 0;
    overflow: hidden;
    color: var(--soluk);
    font-size: 11.5px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Şema ────────────────────────────────────────────────────────── */
/* Çerçeve SABİT: bazı kartlarda geometri gelmediğinde liste zıplamasın. */
.sema-kutusu {
    display: flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 100px;
    border-radius: 9px;
    text-decoration: none;
}

.sema {
    max-width: 100%;
    max-height: 100%;
    height: 100%;
    width: auto;
}

.sema-kagit { fill: var(--yuzey); stroke: var(--kenar); stroke-width: 1; }

/* Cevap blokları formun kendi rengini alıyor (yoksa marka mavisi); kimlik
   blokları soluk kalıyor ki göz önce nerede cevap verileceğini bulsun. */
.blok-cevap { fill: var(--form-rengi, var(--mavi)); fill-opacity: .65; }
.blok-logo { fill: var(--form-rengi, var(--lacivert)); fill-opacity: .35; }
.blok-kimlik { fill: var(--form-rengi, var(--kenar)); fill-opacity: .55; }
.blok-bilgi { fill: var(--form-rengi, var(--kenar)); fill-opacity: .4; }

/* Sütun bölmeleri: bloğun içini kağıt renginde kesiyor. */
.sema-bosluk { fill: var(--yuzey); }

.sema-yok {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 100px;
    border: 1px solid var(--kenar);
    border-radius: 6px;
    background: var(--yuzey-soluk);
}

.sema-yok svg { width: 26px; height: 26px; fill: var(--bos); }

/* ── Kart düğmeleri ──────────────────────────────────────────────── */
.sablon-eylemler {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--kenar);
}

.kart-eylem {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 6px;
    border: 1px solid transparent;
    border-radius: 11px;
    background: var(--yuzey-soluk);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

.kart-eylem svg { width: 15px; height: 15px; flex: none; fill: currentColor; }

.kart-eylem:hover { border-color: var(--kenar); }

.kart-eylem.vurgulu {
    background: color-mix(in srgb, var(--mavi) 10%, transparent);
    color: var(--mavi);
}

.kart-eylem.vurgulu:hover {
    border-color: transparent;
    background: color-mix(in srgb, var(--mavi) 18%, transparent);
}

/* ── Şablon sayfası ──────────────────────────────────────────────── */
.geri { margin: 0 0 14px; font-size: 13.5px; font-weight: 700; }
.geri a { color: var(--mavi); text-decoration: none; }
.geri a:hover { text-decoration: underline; }

.sablon-sayfasi {
    padding: 22px 24px 24px;
    border: 1px solid var(--kenar);
    border-radius: 20px;
    background: var(--yuzey);
}

.sablon-sayfasi h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.3px;
}

.sablon-sayfasi .guncelleme { margin: 4px 0 18px; color: var(--soluk); font-size: 12.5px; }

.sablon-sayfasi-govde {
    display: grid;
    grid-template-columns: minmax(200px, 260px) 1fr;
    gap: 26px;
    align-items: start;
}

@media (max-width: 720px) {
    .sablon-sayfasi-govde { grid-template-columns: 1fr; }
}

.sema-buyuk { text-align: center; }

.sema-buyuk .sema {
    width: 100%;
    height: auto;
    max-height: 420px;
}

.sema-buyuk .sema-yok { width: 100%; height: 200px; }

.sema-not { margin: 10px 0 0; color: var(--silik); font-size: 12px; line-height: 1.5; }

.sablon-sayfasi-yazi .kunye { margin-bottom: 22px; }
.sablon-sayfasi-yazi .kunye dt { width: 62px; font-size: 11px; }
.sablon-sayfasi-yazi .kunye dd { font-size: 13px; white-space: normal; }

.sablon-sayfasi-yazi h2 {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.islemler { margin: 0; padding: 0; list-style: none; }

/* Satırın kendisi TIKLANABİLİR ögenin ta kendisi: eylem bir <button> ya da
   <a>, çevresinde ayrıca tıklanmayan bir kabuk yok. Erişilebilirlik
   gereği — klavyeyle gezen kullanıcı satırın tamamını odaklıyor. */
.islem-dugme {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 10px 8px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.islem-dugme:hover { background: var(--yuzey-soluk); }

.islem-dugme:focus-visible { outline: 2px solid var(--mavi); outline-offset: 1px; }

.islemler li.oncesinde-ayirac {
    margin-top: 6px;
    padding-top: 14px;
    border-top: 1px solid var(--kenar);
}

/* Geometri sınamasından geçemeyen şablonda kağıda dokunan eylemler.
   GİZLENMİYOR, SÖNDÜRÜLÜYOR: kaybolan bir düğme "böyle bir şey yok" der,
   oysa var — yalnızca bu şablonda güvenli değil.

   TIKLANABİLİR KALIYOR (`pointer-events` kapatılmıyor, `disabled` da
   verilmiyor): basınca sebebi durum şeridinde tekrar yazılsın. Devre dışı
   bir düğme hiçbir olay üretmez ve kullanıcı neden çalışmadığını bir daha
   öğrenemez. */
.islem-kapali {
    opacity: .45;
    cursor: not-allowed;
}

.islem-simge {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--islem-renk) 16%, transparent);
    color: var(--islem-renk);
}

.islem-simge svg { width: 18px; height: 18px; fill: currentColor; }

.islem-kiremit { --islem-renk: var(--kiremit); }
.islem-erguvan { --islem-renk: var(--erguvan); }
.islem-mor { --islem-renk: var(--mor); }
.islem-turkuaz { --islem-renk: var(--turkuaz); }
.islem-lacivert { --islem-renk: var(--lacivert-yumusak); }
.islem-kirmizi { --islem-renk: var(--kirmizi); }

.islem-yazi { display: flex; flex: 1; flex-direction: column; min-width: 0; }

.islem-yazi strong { font-size: 14px; font-weight: 700; }

.islem-yazi small { margin-top: 1px; color: var(--soluk); font-size: 11.5px; }

.islemler .rozet {
    flex: none;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--bekleyen-halka);
    color: var(--bekleyen);
    font-size: 11px;
    font-weight: 800;
}

.sablon-sayfasi-yazi .yonlendirme {
    margin: 18px 0 0;
    color: var(--silik);
    font-size: 13px;
}

/* ════════════════════════════════════════════════════════════════════
   SIFIRDAN TASARLA — tuval

   Blok Ekle penceresindeki öbek renkleri mobildeki `add_block_screen.dart`
   → `_BlockGroup.accent` değerleri. Koyu tema karşılıkları burada
   türetildi: mobilde bu ekran koyu temada da açık zeminli çalışıyor,
   web'de sayfanın geri kalanıyla uyumlu olmalı.
   ════════════════════════════════════════════════════════════════════ */

:root {
    --obek-cevap: #4058D2;
    --obek-ogrenci: #0F7A72;
    --obek-sinav: #7253C7;
    --obek-icerik: #B66808;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-tema="acik"]) {
        --obek-cevap: #7A8CE8;
        --obek-ogrenci: #4FC9BE;
        --obek-sinav: #A88CF5;
        --obek-icerik: #E9A94A;
    }
}

:root[data-tema="koyu"] {
    --obek-cevap: #7A8CE8;
    --obek-ogrenci: #4FC9BE;
    --obek-sinav: #A88CF5;
    --obek-icerik: #E9A94A;
}

/* ── Üst çubuk ───────────────────────────────────────────────────── */
.tasarim-cubuk {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 14px;
}

.tasarim-cubuk h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: -.3px;
}

.tasarim-cubuk p { margin: 4px 0 0; color: var(--soluk); font-size: 13.5px; }

.tasarim-eylemler { display: flex; gap: 8px; flex-wrap: wrap; }

.tasarim-eylemler .dugme-dolu,
.tasarim-eylemler .kart-eylem {
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

.tasarim-eylemler .kart-eylem { border-color: var(--kenar); }

.tasarim .uyari { margin-bottom: 18px; }

/* ── Gövde: tuval + özellikler ───────────────────────────────────── */
.tasarim-govde {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 22px;
    align-items: start;
}

@media (max-width: 860px) {
    .tasarim-govde { grid-template-columns: 1fr; }
}

.tuval-sarmal {
    padding: 16px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey-soluk);
}

/* Kağıt A4 oranında; bloklar yüzdeyle konumlandığı için pencere boyutu
   değişince JS'in yeniden hesap yapmasına gerek yok. */
.tuval {
    position: relative;
    width: 100%;
    max-width: 520px;
    margin: 0 auto;
    aspect-ratio: 210 / 297;
    border: 1px solid var(--kenar);
    border-radius: 4px;
    background: #fff;
    /* Hücre ızgarası: blokların neye yapıştığı görünsün. */
    background-image:
        linear-gradient(to right, rgba(34, 49, 95, .07) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(34, 49, 95, .07) 1px, transparent 1px);
    background-size: calc(100% / 49.645) calc(100% / 70.213);
    box-shadow: 0 6px 20px var(--golge);
    touch-action: none;
    overflow: hidden;
}

.tuval-not {
    margin: 12px 0 0;
    color: var(--silik);
    font-size: 12px;
    line-height: 1.6;
    text-align: center;
}

kbd {
    padding: 1px 6px;
    border: 1px solid var(--kenar);
    border-radius: 5px;
    background: var(--yuzey);
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
}

/* ── Tuvaldeki blok ──────────────────────────────────────────────── */
.blok {
    display: flex;
    position: absolute;
    flex-direction: column;
    justify-content: space-between;
    padding: 2px 3px;
    border: 1px solid;
    border-radius: 2px;
    overflow: hidden;
    cursor: grab;
    user-select: none;
}

.blok:focus-visible { outline: 2px solid var(--mavi); outline-offset: 1px; }

.blok.suruklenen { cursor: grabbing; opacity: .85; }

.blok.secili {
    box-shadow: 0 0 0 2px var(--mavi);
    z-index: 2;
}

/* ── Özellikler paneli ───────────────────────────────────────────── */
.ozellikler {
    position: sticky;
    top: 76px;
    padding: 16px 16px 18px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey);
}

@media (max-width: 860px) {
    .ozellikler { position: static; }
}

.ozellikler h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.ozellik-olcu { margin: 3px 0 14px; color: var(--soluk); font-size: 12px; }

.ozellikler .kunye { margin-top: 10px; }

.ozellik-alanlar { display: flex; flex-direction: column; gap: 10px; }

.ozellik-alan { display: flex; flex-direction: column; gap: 4px; }

.ozellik-alan > span {
    color: var(--silik);
    font-size: 11px;
    font-weight: 700;
}

.ozellik-alan input,
.ozellik-alan select {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--kenar);
    border-radius: 10px;
    background: var(--yuzey);
    color: var(--yazi);
    font: inherit;
    font-size: 13.5px;
}

.ozellik-alan input:focus,
.ozellik-alan select:focus {
    outline: none;
    border-color: var(--mavi);
}

.ozellik-ipucu {
    margin: 14px 0 0;
    color: var(--silik);
    font-size: 12px;
    line-height: 1.55;
}

.dugme-yikici {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    margin-top: 16px;
    padding: 10px 14px;
    border: 1px solid color-mix(in srgb, var(--kirmizi) 45%, transparent);
    border-radius: 11px;
    background: transparent;
    color: var(--kirmizi);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.dugme-yikici svg { width: 16px; height: 16px; fill: currentColor; }

.dugme-yikici:hover { background: color-mix(in srgb, var(--kirmizi) 10%, transparent); }

/* ── Blok Ekle penceresi ─────────────────────────────────────────── */
.blok-penceresi {
    width: min(560px, calc(100vw - 32px));
    max-height: min(660px, calc(100vh - 48px));
    padding: 0;
    border: 1px solid var(--kenar);
    border-radius: 20px;
    background: var(--yuzey);
    color: var(--yazi);
    overflow: hidden;
}

.blok-penceresi::backdrop { background: rgba(10, 16, 32, .55); }

.blok-penceresi-ust {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 16px 18px;
    border-bottom: 1px solid var(--kenar);
    background: var(--lacivert);
    color: #fff;
}

.blok-penceresi-ust h2 { margin: 0; font-size: 17px; font-weight: 800; }

.pencere-kapat {
    display: inline-flex;
    padding: 7px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .16);
    cursor: pointer;
}

.pencere-kapat svg { width: 18px; height: 18px; fill: #fff; }

.pencere-kapat:hover { background: rgba(255, 255, 255, .28); }

.blok-ara {
    display: flex;
    position: relative;
    align-items: center;
    padding: 14px 18px 8px;
}

.blok-ara .ara-simge {
    position: absolute;
    left: 30px;
    width: 17px;
    height: 17px;
    fill: var(--silik);
    pointer-events: none;
}

.blok-ara input {
    width: 100%;
    padding: 9px 12px 9px 36px;
    border: 1px solid var(--kenar);
    border-radius: 11px;
    background: var(--yuzey-soluk);
    color: var(--yazi);
    font: inherit;
    font-size: 14px;
}

.blok-ara input:focus { outline: none; border-color: var(--mavi); }

.blok-listesi {
    padding: 6px 18px 18px;
    overflow-y: auto;
    max-height: calc(min(660px, 100vh - 48px) - 132px);
}

.blok-obek + .blok-obek { margin-top: 16px; }

.blok-obek h3 {
    margin: 0 0 6px;
    color: var(--silik);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
}

.blok-secenekler { display: flex; flex-direction: column; gap: 4px; }

.blok-secenek {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.blok-secenek:hover { border-color: var(--kenar); background: var(--yuzey-soluk); }

.blok-secenek:focus-visible { outline: 2px solid var(--mavi); outline-offset: 1px; }

.blok-secenek-simge {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--obek-renk) 16%, transparent);
    color: var(--obek-renk);
}

.blok-secenek-simge svg { width: 18px; height: 18px; fill: currentColor; }

.obek-Cevap { --obek-renk: var(--obek-cevap); }
.obek-Ogrenci { --obek-renk: var(--obek-ogrenci); }
.obek-Sinav { --obek-renk: var(--obek-sinav); }
.obek-Icerik { --obek-renk: var(--obek-icerik); }

.blok-secenek-yazi { display: flex; flex-direction: column; min-width: 0; }

.blok-secenek-yazi strong { font-size: 14.5px; font-weight: 700; letter-spacing: -.2px; }

.blok-secenek-yazi small { margin-top: 1px; color: var(--soluk); font-size: 11.5px; }

.blok-bos { margin: 18px 0; color: var(--silik); font-size: 13.5px; text-align: center; }

/* ── Kimlik çubuğu ve kayıt durumu ───────────────────────────────── */
.kimlik-cubugu {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
    padding: 14px 16px;
    border: 1px solid var(--kenar);
    border-radius: 16px;
    background: var(--yuzey);
}

.kimlik-cubugu .ozellik-alan { flex: 1; min-width: 200px; }

.kimlik-cubugu .kod-alani { flex: 0 0 150px; min-width: 130px; }

.kimlik-cubugu .kod-alani input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

.kimlik-cubugu .dugme-dolu {
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

.kimlik-cubugu .dugme-dolu:disabled { opacity: .6; cursor: progress; }

.kayit-durumu {
    margin: 0 0 12px;
    padding: 10px 14px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 700;
}

.kayit-durumu.tamam {
    border-color: color-mix(in srgb, var(--tamam) 45%, transparent);
    background: color-mix(in srgb, var(--tamam) 12%, transparent);
    color: var(--tamam);
}

.kayit-durumu.bekliyor {
    border-color: color-mix(in srgb, var(--bekleyen) 45%, transparent);
    background: var(--bekleyen-halka);
    color: var(--bekleyen);
}

.kayit-durumu.hata {
    border-color: color-mix(in srgb, var(--kirmizi) 45%, transparent);
    background: color-mix(in srgb, var(--kirmizi) 12%, transparent);
    color: var(--kirmizi);
}

/* ── Blok içi çizim ──────────────────────────────────────────────── */
/* Blok artık dolu bir kutu değil, kağıda basılacak hâlin şeması: başlık
   bandı, satır numaraları, yazma kutusu ve balonlar. Zemin BEYAZ kalıyor
   — kağıt beyaz. */
.blok {
    padding: 0;
    background: #fff;
    overflow: hidden;
}

.blok-cizim { display: block; width: 100%; height: 100%; }

.ci-baslik { fill: color-mix(in srgb, var(--blok-renk) 16%, #fff); }

.ci-baslik-yazi {
    fill: color-mix(in srgb, var(--blok-renk) 75%, #000);
    font-weight: 700;
    text-anchor: middle;
}

.ci-balon {
    fill: none;
    stroke: var(--blok-renk);
    stroke-width: .2;
}

.ci-balon-yazi {
    fill: color-mix(in srgb, var(--blok-renk) 80%, #000);
    text-anchor: middle;
}

.ci-etiket { fill: #6b7280; text-anchor: end; }

.ci-kutu { fill: none; stroke: var(--blok-renk); stroke-width: .25; }

.ci-cizgi { stroke: var(--blok-renk); stroke-width: .18; }

/* Aile renkleri: şemadakiyle aynı ayrım — cevap alanları marka mavisi,
   kimlik blokları lacivert, logo kehribar, bilgi alanı turkuaz. */
.blok.cevap { --blok-renk: #4058D2; border-color: color-mix(in srgb, #4058D2 55%, transparent); }
.blok.kimlik { --blok-renk: #22315F; border-color: color-mix(in srgb, #22315F 40%, transparent); }
.blok.logo { --blok-renk: #B66808; border-color: color-mix(in srgb, #B66808 50%, transparent); }
.blok.bilgi { --blok-renk: #0F7A72; border-color: color-mix(in srgb, #0F7A72 45%, transparent); }

/* Logo ve metin bloğunun çizecek içi yok; adı ortada dursun. */
.blok.logo .ci-baslik,
.blok.bilgi .ci-baslik { fill: color-mix(in srgb, var(--blok-renk) 10%, #fff); }

/* Çakışma deseni içeriğin ÜSTÜNE biniyor; blok beyaz olduğu için
   arkaplan yerine ayrı bir katman gerekiyordu. */
.blok.cakisma { border-color: var(--kirmizi); }

.blok.cakisma::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(45deg,
        transparent 0 4px,
        color-mix(in srgb, var(--kirmizi) 26%, transparent) 4px 8px);
}

/* ── Yalnızca mobilde eklenebilen bloklar ────────────────────────── */
.blok-secenek:disabled { opacity: .45; cursor: not-allowed; }

.blok-secenek:disabled:hover { border-color: transparent; background: transparent; }

.blok-secenek-yazi em { font-style: normal; font-weight: 700; }

/* Tuval biraz daha geniş: balonların ve satır numaralarının okunabilmesi
   için 520 px'te kağıt fazla küçük kalıyordu. */
.tuval { max-width: 620px; }

/* ── Kayıt katmanı: siyah çerçeve, köşe kareleri, hizalama şeridi ──
   Tuvalin ÜSTÜNDE duruyor ve dokunulamıyor — mobildeki `IgnorePointer`
   katmanın karşılığı. Ölçü birimi doğrudan milimetre (viewBox kağıdın
   kendisi), bu yüzden kalınlıklar da mm cinsinden; kağıt küçüldükçe
   çizgiler de kağıtla birlikte inceliyor.

   RENK KOŞULSUZ SİYAH: bunlar dekoratif çizgi değil, taramanın kağıdı
   bulduğu çapa. Tema rengine bağlanırsa koyu temada başka bir şey
   gösterirdik. */
.kayit-katmani {
    position: absolute;
    inset: 0;
    z-index: 3; /* seçili blok 2'de; çerçeve onun da üstünde kalmalı */
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.ky-cerceve { fill: none; stroke: #000; }

.ky-kose,
.ky-serit { fill: #000; }

/* ── Ön izleme penceresi ─────────────────────────────────────────── */
.onizleme-penceresi {
    width: min(720px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    padding: 0;
    border: 1px solid var(--kenar);
    border-radius: 20px;
    background: var(--yuzey);
    color: var(--yazi);
    overflow: hidden;
}

.onizleme-penceresi::backdrop { background: rgba(10, 16, 32, .55); }

.onizleme-govde {
    max-height: calc(100vh - 140px);
    padding: 18px;
    overflow: auto;
}

.onizleme-not {
    margin: 14px auto 0;
    max-width: 460px;
    color: var(--soluk);
    font-size: 12.5px;
    line-height: 1.65;
    text-align: center;
}

.onizleme-not strong { color: var(--yazi); font-weight: 800; }

/* Kağıt: ızgara zemini ve yuvarlatma yok — basılan sayfa düz beyaz.
   Bloklar da kağıttaki gibi TEK RENK: aile renkleri düzenleyicinin
   kolaylığı, mürekkep siyah (formColorValue = 0xFF000000). */
/* Kağıdın TAMAMI bir ekranda görünmeli — ön izlemenin bütün derdi bu.
   Yükseklik pencereye göre veriliyor, genişliği `aspect-ratio` türetiyor. */
.onizleme-kagit {
    width: auto;
    max-width: 100%;
    height: min(760px, calc(100vh - 190px));
    border-radius: 0;
    background-image: none;
    /* Tuvalde sürükleme için kapalı; burada sürüklenecek bir şey yok ve
       kapalı kalırsa uzun kağıt parmakla kaydırılamıyor. */
    touch-action: auto;
}

.onizleme-kagit .blok {
    --blok-renk: #000;
    border-color: rgba(0, 0, 0, .55);
    cursor: default;
}

.onizleme-kagit .ci-etiket { fill: #333; }

/* ── Tuvalde ArUco işareti ───────────────────────────────────────────
   Aile renklerine BAĞLANMIYOR: desen kağıtta siyah-beyaz basılıyor ve
   tespit tam bu karşıtlığa dayanıyor. Beyaz zemin de deseni saran sessiz
   bölge — başlık bandının gri dolgusu oraya taşarsa işaret okunmaz. */
.ci-aruco-zemin { fill: #fff; }

.ci-aruco { fill: #000; }

/* ── Ön izleme penceresinin indirme çubuğu ───────────────────────── */
.onizleme-eylemler {
    display: flex;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.onizleme-eylemler .dugme-dolu,
.onizleme-eylemler .kart-eylem {
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

.onizleme-eylemler .kart-eylem { border-color: var(--kenar); }

.onizleme-govde .kayit-durumu { margin: 12px auto 0; max-width: 460px; }

/* ── Paylaşım kodları ────────────────────────────────────────────────
   Kod listesi düğmenin ALTINDA: kod üretmek tek seferlik bir iş değil,
   öğretmen hangi kodların hâlâ geçerli olduğunu görebilmeli. */
.kod-listesi {
    margin: 2px 0 0 53px;   /* simge kutusu (34) + boşluk (11) + iç pay */
    padding: 0;
    list-style: none;
}

.kod-satiri {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 0;
}

.kod-satiri code {
    padding: 3px 9px;
    border: 1px solid var(--kenar);
    border-radius: 7px;
    background: var(--yuzey-soluk);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .08em;
}

.kod-kopyala,
.kod-iptal {
    padding: 3px 9px;
    border: 1px solid var(--kenar);
    border-radius: 7px;
    background: transparent;
    color: var(--soluk);
    font: inherit;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
}

.kod-kopyala:hover { border-color: var(--mavi); color: var(--mavi); }

.kod-iptal:hover { border-color: var(--kirmizi); color: var(--kirmizi); }

.kod-bos { padding: 5px 0; color: var(--silik); font-size: 12px; }

/* ── Adını değiştir penceresi ────────────────────────────────────── */
.ad-penceresi {
    width: min(420px, calc(100vw - 32px));
    padding: 0;
    border: 1px solid var(--kenar);
    border-radius: 20px;
    background: var(--yuzey);
    color: var(--yazi);
    overflow: hidden;
}

.ad-penceresi::backdrop { background: rgba(10, 16, 32, .55); }

.ad-penceresi-govde {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    padding: 18px;
}

.ad-penceresi-govde .ozellik-alan { flex: 1; }

.ad-penceresi-govde .dugme-dolu {
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

/* ── Kartın durum şeridi ─────────────────────────────────────────── */
.kart-durumu { margin: 10px 0 0; font-size: 12.5px; }

/* ── Çıktı seçim penceresi ───────────────────────────────────────────
   "A4 mi, sadece çerçeve mi". İki seçenek yan yana ve her biri kendi ön
   izlemesini taşıyor — fark cümleyle değil resimle anlatılıyor. */
.cikti-penceresi {
    width: min(560px, calc(100vw - 32px));
    padding: 0;
    border: 1px solid var(--kenar);
    border-radius: 20px;
    background: var(--yuzey);
    color: var(--yazi);
    overflow: hidden;
}

.cikti-penceresi::backdrop { background: rgba(10, 16, 32, .55); }

.cikti-secenekler {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 18px;
}

@media (max-width: 520px) {
    .cikti-secenekler { grid-template-columns: 1fr; }
}

.cikti-secenek {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 14px 12px 12px;
    border: 1px solid var(--kenar);
    border-radius: 16px;
    background: var(--yuzey-soluk);
    color: inherit;
    font: inherit;
    text-align: center;
    cursor: pointer;
}

.cikti-secenek:hover { border-color: var(--mavi); }

.cikti-secenek:focus-visible { outline: 2px solid var(--mavi); outline-offset: 2px; }

/* Ön izlemeler AYNI YÜKSEKLİKTE duruyor, genişlik oranından geliyor:
   A4 seçeneği ince ve uzun, kırpılmış olan daha dolu görünüyor. Fark
   böyle okunuyor. */
.cikti-onizleme {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 132px;
    margin-bottom: 8px;
}

.cikti-onizleme svg {
    display: block;
    border: 1px solid var(--kenar);
    box-shadow: 0 3px 10px var(--golge);
}

.cikti-secenek strong { font-size: 14px; font-weight: 800; }

.cikti-secenek small {
    color: var(--soluk);
    font-size: 11.5px;
    line-height: 1.5;
}

.cikti-olcu {
    margin-top: 4px;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--yuzey);
    color: var(--silik);
    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* ════════════════════════════════════════════════════════════════════
   AYARLAR

   Öbekler kart değil, ayrılmış bölümler: sayfada yedi ayrı kutu yan yana
   durunca hangisinin neyle ilgili olduğu kayboluyordu.
   ════════════════════════════════════════════════════════════════════ */
.ayarlar {
    display: flex;
    flex-direction: column;
    gap: 18px;
    max-width: 720px;
}

.ayar-obek {
    padding: 18px 20px 20px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey);
}

.ayar-obek h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.ayar-aciklama {
    margin: 5px 0 16px;
    color: var(--soluk);
    font-size: 13px;
    line-height: 1.6;
}

.ayar-ipucu {
    margin: 12px 0 0;
    color: var(--silik);
    font-size: 12.5px;
    line-height: 1.6;
}

.ayar-ipucu strong { color: var(--soluk); }

/* İki sütun geniş ekranda; kurum bilgilerinin çoğu kısa alan. */
.ayar-alanlar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
}

@media (max-width: 620px) {
    .ayar-alanlar { grid-template-columns: 1fr; }
}

.ayar-alanlar input[readonly] {
    background: var(--yuzey-soluk);
    color: var(--soluk);
    cursor: default;
}

.ayar-eylemler { display: flex; margin-top: 16px; }

.ayar-eylemler .dugme-dolu {
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

.ayar-obek .kayit-durumu { margin: 12px 0 0; }

/* ── Radyo listeleri ─────────────────────────────────────────────── */
/* AYARLAR VE SINAV MODÜLÜ ORTAK kullanıyor: puanlama kipi, iptal kipi ve
   tema seçimi aynı görünen üçlü. Ayrı yazılsalardı biri değişip diğeri
   kalırdı; sınıf adları o yüzden yan yana duruyor. */
.ayar-secim,
.radyo-listesi {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
}

.ayar-secim legend,
.radyo-listesi legend {
    padding: 0 0 8px;
    color: var(--soluk);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ayar-radyo,
.radyo {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 11px 13px;
    border: 1px solid var(--kenar);
    border-radius: 13px;
    cursor: pointer;
}

.ayar-radyo:hover,
.radyo:hover { border-color: var(--mavi); }

.ayar-radyo:has(input:checked),
.radyo:has(input:checked) {
    border-color: var(--mavi);
    background: color-mix(in srgb, var(--mavi) 8%, transparent);
}

.ayar-radyo:has(input:focus-visible),
.radyo:has(input:focus-visible) {
    outline: 2px solid var(--mavi);
    outline-offset: 1px;
}

.ayar-radyo input,
.radyo input { margin: 2px 0 0; accent-color: var(--mavi); }

.ayar-radyo span,
.radyo span { display: flex; flex-direction: column; gap: 2px; }

.ayar-radyo strong,
.radyo strong { font-size: 14px; font-weight: 700; }

.ayar-radyo small,
.radyo small { color: var(--soluk); font-size: 12px; line-height: 1.5; }

/* ── Mobilde kalanlar ────────────────────────────────────────────── */
.ayar-mobil { background: var(--yuzey-soluk); }

.ayar-liste { margin: 0; padding: 0; list-style: none; }

.ayar-liste li {
    padding: 11px 0;
    border-top: 1px solid var(--kenar);
}

.ayar-liste li:first-child { border-top: 0; padding-top: 0; }

.ayar-liste strong { display: block; font-size: 13.5px; font-weight: 700; }

.ayar-liste small {
    display: block;
    margin-top: 3px;
    color: var(--soluk);
    font-size: 12px;
    line-height: 1.6;
}

/* ════════════════════════════════════════════════════════════════════
   SINAVLAR

   Kart, mobildeki `exam_card.dart` ile aynı iskelet: ad, alt alta künye,
   sağ üstte tarih, altta eylemler. Ölçüler farklı — dokunmatik için
   seçilmiş yükseklikler farede fazla iri.

   ARŞİV AYNI SINIFLARI KULLANIYOR. İki liste tek kısmi görünümden
   çiziliyor; ayrı stiller yazılsaydı zamanla ayrışırlardı.
   ════════════════════════════════════════════════════════════════════ */

/* `hidden` ÖZNİTELİĞİ SINIF KURALINA YENİLİYOR. Tarayıcının kendi
   `[hidden] { display: none }` kuralı bir sınıf seçicisinden daha zayıf;
   `.iptal-karti { display: flex }` gibi bir kural onu sessizce eziyor ve
   gizlenmesi gereken kutu ekranda kalıyor (denemede yakalandı). Bu modülde
   gizlenen ögelerin çoğu `display` taşıyan bir sınıfa da sahip, o yüzden
   kural bir kez ve açıkça yazılıyor. */
[hidden] { display: none !important; }

/* ── Süzgeç çipleri ──────────────────────────────────────────────── */
.suzgecler {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 4px 14px;
}

.suzgec {
    padding: 8px 15px;
    border: 1px solid var(--kenar);
    border-radius: 11px;
    background: var(--yuzey);
    color: var(--soluk);
    font-size: 12.5px;
    font-weight: 800;
    text-decoration: none;
}

.suzgec:hover { border-color: var(--mavi); }

.suzgec.acik {
    border-color: var(--mavi);
    background: var(--mavi);
    color: #fff;
}

/* ── Sınav kartı ─────────────────────────────────────────────────── */
.sinav-listesi { display: flex; flex-direction: column; gap: 12px; }

.sinav-satiri {
    padding: 15px 16px 13px;
    border: 1px solid var(--kenar);
    border-radius: 17px;
    background: var(--yuzey);
}

.sinav-satiri-ust { display: flex; align-items: flex-start; gap: 12px; }

.sinav-satiri-yazi { flex: 1; min-width: 0; }

.sinav-satiri h3 {
    margin: 0 0 8px;
    font-size: 15.5px;
    font-weight: 900;
    letter-spacing: -.2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Künye ALT ALTA ve etiketler sabit genişlikte: değerler tek hizada
   başlıyor, göz tek sütunda aşağı iniyor. Yan yana yazılınca ayrı
   bilgiler tek cümleye benziyordu. */
.sinav-kunye { margin: 0; }

.sinav-kunye > div { display: flex; gap: 8px; padding-bottom: 3px; }

.sinav-kunye dt {
    flex: 0 0 92px;
    color: var(--silik);
    font-size: 11.5px;
    font-weight: 600;
}

.sinav-kunye dd {
    margin: 0;
    min-width: 0;
    font-size: 11.5px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sinav-kunye .deger-tamam { color: var(--tamam); }
.sinav-kunye .deger-mavi { color: var(--mavi); }

.sinav-tarih {
    flex: none;
    padding-top: 2px;
    color: var(--silik);
    font-size: 11px;
    font-weight: 600;
}

.sinav-satiri-eylemler {
    display: flex;
    align-items: stretch;
    gap: 8px;
    margin-top: 12px;
}

/* Ana düğme satırı doldurup üç noktayı sağa itiyor; arşivde düğme
   olmadığı için üç nokta tek başına sağda kalıyor. */
.sinav-satiri-eylemler .kart-eylem { flex: 1; }

.sinav-satiri-eylemler .kart-eylem.bekleyen {
    background: var(--bekleyen-halka);
    border-color: color-mix(in srgb, var(--bekleyen) 40%, transparent);
    color: var(--bekleyen);
}

.sinav-not {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 11px 0 0;
    color: var(--silik);
    font-size: 12px;
    line-height: 1.5;
}

.sinav-not svg { width: 15px; height: 15px; flex: none; fill: var(--silik); }

/* ── Kart menüsü (details) ───────────────────────────────────────── */
/* Açılıp kapanması için JavaScript gerekmiyor ve klavyeyle açılıyor. */
.kart-menu { position: relative; margin-left: auto; }

.kart-menu summary {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 100%;
    min-height: 38px;
    border: 1px solid var(--kenar);
    border-radius: 11px;
    cursor: pointer;
    list-style: none;
}

.kart-menu summary::-webkit-details-marker { display: none; }

.kart-menu summary:hover { border-color: var(--mavi); }

.kart-menu summary svg { width: 18px; height: 18px; fill: var(--soluk); }

.kart-menu-liste {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 5;
    width: 268px;
    padding: 6px;
    border: 1px solid var(--kenar);
    border-radius: 15px;
    background: var(--yuzey);
    box-shadow: 0 14px 34px var(--golge);
}

.kart-menu-liste > * {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 11px;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.kart-menu-liste > *:hover { background: var(--yuzey-soluk); }

.kart-menu-liste svg { width: 17px; height: 17px; flex: none; margin-top: 2px; fill: var(--mavi); }

.kart-menu-liste span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.kart-menu-liste strong { font-size: 13px; font-weight: 700; }

.kart-menu-liste small { color: var(--soluk); font-size: 11.5px; line-height: 1.4; }

/* Yıkıcı eylem kırmızı: kullanıcı listeyi okurken hangisinin geri
   alınamayacağını renkten de görüyor. */
.kart-menu-liste .yikici svg { fill: var(--kirmizi); }
.kart-menu-liste .yikici strong { color: var(--kirmizi); }

/* ── Geri alma şeridi ────────────────────────────────────────────── */
/* Arşive gönderme onay SORMUYOR; bunun yerine bir teklif duruyor.
   Kendi kendine kapanıyor: bir teklif, cevaplanmadan da geçip gitmeli. */
.geri-al-seridi {
    position: fixed;
    left: 50%;
    bottom: 24px;
    z-index: 40;
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: calc(100vw - 32px);
    padding: 12px 14px 12px 18px;
    border-radius: 14px;
    background: var(--lacivert);
    color: #fff;
    font-size: 13.5px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .28);
    transform: translateX(-50%);
}

.geri-al-seridi button {
    padding: 7px 13px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 10px;
    background: none;
    color: #fff;
    font: inherit;
    font-weight: 800;
    cursor: pointer;
}

.geri-al-seridi button:hover { background: rgba(255, 255, 255, .14); }

@media (max-width: 900px) {
    /* Alt menü çubuğu orada duruyor; şerit onun üstüne çıkıyor. */
    .geri-al-seridi { bottom: 92px; }
}

.bos-aciklama {
    max-width: 480px;
    margin: 0 auto 16px;
    color: var(--soluk);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.6;
}

/* ════════════════════════════════════════════════════════════════════
   SINAV FORMU

   Zorunlu iki alan (ad + şablon) açıkta; puanlama ve isteğe bağlı
   bilgiler katlanır bölümlerde KAPALI başlıyor. Hepsinin çalışan bir
   varsayılanı var ve hiçbiri kaydetmeyi engellemiyor — açıkken form
   kalabalık görünüyor ve asıl iş ikinci plana düşüyordu.
   ════════════════════════════════════════════════════════════════════ */
.sinav-formu {
    display: flex;
    flex-direction: column;
    gap: 16px;
    max-width: 720px;
}

.form-obek {
    padding: 18px 20px 20px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey);
}

.form-obek h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.form-obek .ozellik-alan { margin-top: 14px; }

.ozellik-alan textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--kenar);
    border-radius: 10px;
    background: var(--yuzey);
    color: var(--yazi);
    font: inherit;
    font-size: 13.5px;
    resize: vertical;
}

.ozellik-alan textarea:focus { outline: none; border-color: var(--mavi); }
.ozellik-alan small { color: var(--silik); font-weight: 400; }

.sablon-ozeti {
    margin: 8px 0 0;
    color: var(--mavi);
    font-size: 12.5px;
    font-weight: 700;
}

.alan-notu {
    margin: 8px 0 0;
    color: var(--silik);
    font-size: 12px;
    line-height: 1.55;
}

.ipucu-simge { width: 15px; height: 15px; vertical-align: -2px; fill: currentColor; }

/* ── Katlanır bölüm ──────────────────────────────────────────────── */
/* Başlıktaki özet KAPALIYKEN de görünüyor: bölümü açmadan içindeki
   ayarların ne olduğu okunabilsin diye. */
.katlanir { padding: 0; }

.katlanir > summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    cursor: pointer;
    list-style: none;
}

.katlanir > summary::-webkit-details-marker { display: none; }

.katlanir > summary::after {
    content: "";
    width: 9px;
    height: 9px;
    margin-left: auto;
    border-right: 2px solid var(--soluk);
    border-bottom: 2px solid var(--soluk);
    transform: rotate(45deg) translate(-2px, -2px);
}

.katlanir[open] > summary::after { transform: rotate(-135deg) translate(-2px, -2px); }

.katlanir-baslik { display: flex; align-items: center; gap: 12px; min-width: 0; }

.katlanir-baslik > svg { width: 20px; height: 20px; flex: none; fill: var(--mavi); }

.katlanir-baslik > span { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.katlanir-baslik strong { font-size: 14.5px; font-weight: 800; }

.katlanir-baslik small { color: var(--soluk); font-size: 12px; line-height: 1.45; }

.katlanir-icerik {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 4px 20px 20px;
}

.katlanir-icerik .ozellik-alan { margin: 0; }

.puan-alanlari.ikili { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

@media (max-width: 560px) {
    .puan-alanlari.ikili { grid-template-columns: 1fr; }
}

/* ── Anahtar (switch) satırı ─────────────────────────────────────── */
.anahtar-satiri {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    border: 1px solid var(--kenar);
    border-radius: 14px;
    cursor: pointer;
}

.anahtar-satiri > span { display: flex; flex-direction: column; gap: 2px; flex: 1; }

.anahtar-satiri strong { font-size: 13.5px; font-weight: 700; }

.anahtar-satiri small { color: var(--soluk); font-size: 12px; line-height: 1.45; }

.anahtar-kutu { width: 20px; height: 20px; accent-color: var(--mavi); }

.ceza-ayrinti { display: flex; flex-direction: column; gap: 10px; }

/* ── İptal özeti (formda yalnızca okunuyor) ──────────────────────── */
.iptal-ozeti {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 14px;
    border: 1px solid var(--kenar);
    border-radius: 14px;
    background: var(--yuzey-soluk);
}

.iptal-ozeti strong { display: block; font-size: 13.5px; font-weight: 700; }

.iptal-ozeti small { display: block; margin-top: 3px; color: var(--soluk); font-size: 12px; }

.iptal-kitapciklar { margin: 8px 0 0; padding: 0; list-style: none; }

.iptal-kitapciklar li { display: flex; gap: 8px; font-size: 12px; }

.iptal-kitapciklar span { color: var(--silik); }

.iptal-kitapciklar code { color: var(--kirmizi); font-weight: 700; }

.form-kaydet { display: flex; align-items: center; gap: 12px; }

.form-kaydet .dugme-dolu {
    margin: 0;
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

/* ════════════════════════════════════════════════════════════════════
   CEVAP ANAHTARI

   Soru ızgarası BİR KEZ çiziliyor; kitapçık sekmeleri yalnızca seçili
   şıkları ve sayaçları değiştiriyor (bkz. anahtar.js).
   ════════════════════════════════════════════════════════════════════ */
.anahtar { max-width: 760px; }

.kitapcik-sekmeleri {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.kitapcik-sekme {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 15px;
    border: 1px solid var(--kenar);
    border-radius: 12px;
    background: var(--yuzey);
    color: var(--soluk);
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.kitapcik-sekme:hover { border-color: var(--mavi); }

.kitapcik-sekme.acik {
    border-color: var(--mavi);
    background: var(--mavi);
    color: #fff;
}

.kitapcik-sayac { font-size: 11px; font-weight: 600; opacity: .85; }

.bilgi-seridi {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 14px;
    padding: 13px 15px;
    border: 1px solid color-mix(in srgb, var(--mavi) 30%, transparent);
    border-radius: 14px;
    background: color-mix(in srgb, var(--mavi) 8%, transparent);
    font-size: 13px;
    line-height: 1.55;
}

.bilgi-seridi svg { width: 18px; height: 18px; flex: none; margin-top: 1px; fill: var(--mavi); }

/* ── İlerleme kartı ──────────────────────────────────────────────── */
.anahtar-ilerleme {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px 14px;
    padding: 15px 17px;
    border: 1px solid var(--kenar);
    border-radius: 17px;
    background: var(--yuzey);
}

.ilerleme-yazi { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.ilerleme-yazi strong { font-size: 15px; font-weight: 800; }

.ilerleme-yazi small { color: var(--soluk); font-size: 12.5px; }

.ilerleme-sayi { color: var(--mavi); font-size: 15px; font-weight: 800; }

.anahtar-ilerleme.tamam .ilerleme-sayi { color: var(--tamam); }

.ilerleme-cubuk {
    grid-column: 1 / -1;
    height: 7px;
    border-radius: 999px;
    background: var(--yuzey-soluk);
    overflow: hidden;
}

.ilerleme-cubuk span {
    display: block;
    width: 0;
    height: 100%;
    background: var(--mavi);
}

.anahtar-ilerleme.tamam .ilerleme-cubuk span { background: var(--tamam); }

/* ── İptal kartı ─────────────────────────────────────────────────── */
.iptal-karti {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 12px;
    padding: 15px 17px;
    border: 1px solid color-mix(in srgb, var(--kirmizi) 35%, transparent);
    border-radius: 17px;
    background: color-mix(in srgb, var(--kirmizi) 7%, transparent);
}

.iptal-basligi strong { display: block; font-size: 14px; font-weight: 800; }

.iptal-basligi small { display: block; margin-top: 3px; color: var(--soluk); font-size: 12.5px; }

/* ── Soru kartları ───────────────────────────────────────────────── */
.sorular { margin-top: 18px; }

.blok-basligi {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 22px 0 10px;
    padding: 12px 14px;
    border: 1px solid var(--kenar);
    border-radius: 14px;
    background: var(--yuzey-soluk);
}

.blok-tur {
    color: var(--mavi);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.blok-basligi strong {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.blok-adet {
    flex: none;
    padding: 4px 9px;
    border: 1px solid var(--kenar);
    border-radius: 999px;
    background: var(--yuzey);
    font-size: 10.5px;
    font-weight: 700;
}

.soru-karti {
    margin-bottom: 10px;
    padding: 13px 14px;
    border: 1px solid color-mix(in srgb, var(--mavi) 28%, transparent);
    border-radius: 16px;
    background: var(--yuzey);
}

/* Cevabı girilmemiş soru kehribar: sayfada gözle taranınca eksikler
   kendiliğinden öne çıkıyor. Uygulamanın "bekliyor" rengiyle aynı. */
.soru-karti.eksik { border-color: color-mix(in srgb, var(--bekleyen) 45%, transparent); }

.soru-karti.iptal {
    border-color: color-mix(in srgb, var(--kirmizi) 35%, transparent);
    background: color-mix(in srgb, var(--kirmizi) 6%, transparent);
}

.soru-karti header { display: flex; align-items: center; gap: 10px; }

.soru-no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: 11px;
    background: color-mix(in srgb, var(--mavi) 12%, transparent);
    color: var(--mavi);
    font-size: 13px;
    font-weight: 800;
}

.soru-karti.eksik .soru-no {
    background: var(--bekleyen-halka);
    color: var(--bekleyen);
}

.soru-baslik { flex: 1; font-size: 13.5px; font-weight: 800; }

.soru-secim {
    padding: 4px 10px;
    border: 1px solid color-mix(in srgb, var(--mavi) 30%, transparent);
    border-radius: 999px;
    color: var(--mavi);
    font-size: 10.5px;
    font-weight: 800;
}

.soru-karti.eksik .soru-secim {
    border-color: color-mix(in srgb, var(--bekleyen) 40%, transparent);
    background: var(--bekleyen-halka);
    color: var(--bekleyen);
}

.soru-iptal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: none;
    border: 1px solid var(--kenar);
    border-radius: 9px;
    background: none;
    cursor: pointer;
}

.soru-iptal svg { width: 15px; height: 15px; fill: var(--silik); }

.soru-iptal:hover { border-color: var(--kirmizi); }
.soru-iptal:hover svg { fill: var(--kirmizi); }

.soru-iptal[aria-pressed="true"] {
    border-color: var(--kirmizi);
    background: color-mix(in srgb, var(--kirmizi) 14%, transparent);
}

.soru-iptal[aria-pressed="true"] svg { fill: var(--kirmizi); }

/* Alternatif kipi: bir soruda birden çok şık tek başına doğru
   sayılabiliyor. Kapalıyken satır sessiz duruyor. */
.alternatif-satiri {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 11px;
    padding: 9px 11px;
    border: 1px solid var(--kenar);
    border-radius: 12px;
    cursor: pointer;
}

.alternatif-satiri input { margin-top: 2px; accent-color: var(--mavi); }

.alternatif-satiri span { display: flex; flex-direction: column; gap: 2px; }

.alternatif-satiri strong { font-size: 12.5px; font-weight: 700; }

.alternatif-satiri small { color: var(--soluk); font-size: 11.5px; line-height: 1.4; }

.alternatif-satiri:has(input:checked) {
    border-color: var(--mavi);
    background: color-mix(in srgb, var(--mavi) 7%, transparent);
}

.siklar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }

.sik {
    min-width: 46px;
    padding: 10px 12px;
    border: 1px solid var(--kenar);
    border-radius: 11px;
    background: var(--yuzey);
    color: var(--yazi);
    font: inherit;
    font-size: 13.5px;
    font-weight: 800;
    cursor: pointer;
}

.sik:hover { border-color: var(--mavi); }

.sik[aria-pressed="true"] {
    border-color: var(--mavi);
    background: var(--mavi);
    color: #fff;
}

.sik:disabled { opacity: .45; cursor: default; }

/* İptal edilen soruda şıklar sönüyor ve yerini ne olacağını söyleyen
   satır alıyor: "iptal" tek başına puanın ne olduğunu söylemiyor. */
.iptal-notu { display: none; margin: 11px 0 0; color: var(--kirmizi); font-size: 12.5px; }

.soru-karti.iptal .alternatif-satiri,
.soru-karti.iptal .siklar { display: none; }

.soru-karti.iptal .iptal-notu { display: block; }

.anahtar-kaydet {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 18px;
    padding: 14px 0;
    background: linear-gradient(to top, var(--zemin) 70%, transparent);
}

.anahtar-kaydet .kayit-durumu { flex: 1; margin: 0; }

.anahtar-kaydet .dugme-dolu {
    margin: 0;
    border: 1px solid transparent;
    font-family: inherit;
    cursor: pointer;
}

/* ════════════════════════════════════════════════════════════════════
   SONUÇLAR
   ════════════════════════════════════════════════════════════════════ */
.sonuc-ozeti {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    padding: 15px 10px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey);
}

.sonuc-ozeti > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    border-left: 1px solid var(--kenar);
}

.sonuc-ozeti > div:first-child { border-left: 0; }

.sonuc-ozeti strong { font-size: 20px; font-weight: 900; }

.sonuc-ozeti .vurgulu { color: var(--mavi); }

.sonuc-ozeti span { color: var(--silik); font-size: 10.5px; font-weight: 700; }

.puanlama-bilgisi { margin-top: 16px; max-width: 720px; }

.puan-satirlari { margin: 0; }

.puan-satirlari > div { padding: 10px 0; border-top: 1px solid var(--kenar); }

.puan-satirlari > div:first-child { border-top: 0; padding-top: 0; }

.puan-satirlari dt { color: var(--silik); font-size: 11.5px; font-weight: 700; }

.puan-satirlari dd { margin: 3px 0 0; font-size: 13.5px; line-height: 1.5; }

.iptal-satiri { display: block; }

.sonuc-arac-cubugu {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
}

/* Arama kutusu lacivert şeridin DIŞINDA duruyor; oradaki beyaz üzerine
   yazılmış biçim burada okunmaz. */
.sonuc-arac-cubugu .ara input {
    border-color: var(--kenar);
    background: var(--yuzey);
    color: var(--yazi);
}

.sonuc-arac-cubugu .ara input::placeholder { color: var(--silik); }

.sonuc-arac-cubugu .ara-simge { fill: var(--silik); }

.sirala-form { display: flex; align-items: center; gap: 8px; }

.sirala-form label { display: inline-flex; align-items: center; gap: 7px; }

.sirala-form svg { width: 16px; height: 16px; fill: var(--silik); }

.sirala-form select {
    padding: 9px 10px;
    border: 1px solid var(--kenar);
    border-radius: 11px;
    background: var(--yuzey);
    color: var(--yazi);
    font: inherit;
    font-size: 13px;
}

.gizli-etiket {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.bolum-basligi button.dugme-cizgili {
    gap: 6px;
    background: none;
    font-family: inherit;
    cursor: pointer;
}

.bolum-basligi button.dugme-cizgili svg { width: 15px; height: 15px; fill: currentColor; }

/* ── Öğrenci satırı ──────────────────────────────────────────────── */
.sonuc-listesi { display: flex; flex-direction: column; gap: 8px; }

.ogrenci-satiri {
    display: grid;
    grid-template-columns: auto 1fr auto auto auto;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid var(--kenar);
    border-radius: 15px;
    background: var(--yuzey);
}

.ogrenci-satiri.secili {
    border-color: var(--mavi);
    background: color-mix(in srgb, var(--mavi) 7%, transparent);
}

.ogrenci-sec input { width: 18px; height: 18px; accent-color: var(--mavi); }

.ogrenci-yazi {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.ogrenci-yazi strong {
    font-size: 14.5px;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ogrenci-yazi small { color: var(--soluk); font-size: 11.5px; font-weight: 600; }

.ogrenci-yazi:hover strong { color: var(--mavi); }

.ogrenci-sayaclar { display: flex; flex-wrap: wrap; gap: 6px; }

.rozet {
    padding: 4px 9px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 800;
}

.rozet.dogru { background: color-mix(in srgb, var(--tamam) 14%, transparent); color: var(--tamam); }
.rozet.yanlis { background: color-mix(in srgb, var(--kirmizi) 14%, transparent); color: var(--kirmizi); }
.rozet.bos { background: var(--yuzey-soluk); color: var(--silik); }
.rozet.coklu { background: color-mix(in srgb, var(--bekleyen) 16%, transparent); color: var(--bekleyen); }
.rozet.iptal { background: color-mix(in srgb, var(--kirmizi) 10%, transparent); color: var(--kirmizi); }

.ogrenci-puan { display: flex; flex-direction: column; align-items: flex-end; }

.ogrenci-puan strong { font-size: 18px; font-weight: 900; }

.ogrenci-puan small { color: var(--silik); font-size: 10.5px; font-weight: 600; }

.satir-sil {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: color-mix(in srgb, var(--kirmizi) 10%, transparent);
    cursor: pointer;
}

.satir-sil svg { width: 15px; height: 15px; fill: var(--kirmizi); }

.satir-sil:hover { border-color: color-mix(in srgb, var(--kirmizi) 45%, transparent); }

@media (max-width: 700px) {
    /* Dar ekranda sayaçlar alt satıra iniyor; puan ve silme sağda kalıyor. */
    .ogrenci-satiri { grid-template-columns: auto 1fr auto auto; }
    .ogrenci-sayaclar { grid-column: 2 / -1; }
}

/* ── Seçim çubuğu ────────────────────────────────────────────────── */
.secim-cubugu {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    padding: 12px 16px;
    border: 1px solid var(--kenar);
    border-radius: 15px;
    background: var(--yuzey);
    box-shadow: 0 -6px 24px var(--golge);
}

.secim-cubugu span { flex: 1; font-size: 13.5px; font-weight: 800; }

.secim-cubugu .dugme-cizgili {
    background: none;
    font-family: inherit;
    cursor: pointer;
}

.secim-cubugu .dugme-yikici { width: auto; margin: 0; }

/* ════════════════════════════════════════════════════════════════════
   ÖĞRENCİ SONUCU
   ════════════════════════════════════════════════════════════════════ */
.ogrenci-ozeti {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 8px;
    margin-bottom: 16px;
    padding: 16px 12px;
    border: 1px solid var(--kenar);
    border-radius: 18px;
    background: var(--yuzey);
}

@media (max-width: 700px) {
    .ogrenci-ozeti { grid-template-columns: repeat(3, 1fr); gap: 14px 8px; }
}

.ogrenci-ozeti > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}

.ogrenci-ozeti strong { font-size: 19px; font-weight: 900; }

.ogrenci-ozeti span { color: var(--silik); font-size: 10.5px; font-weight: 700; }

.ogrenci-puan-kutusu strong { color: var(--mavi); }

.olcum.dogru strong { color: var(--tamam); }
.olcum.yanlis strong { color: var(--kirmizi); }
.olcum.coklu strong { color: var(--bekleyen); }

.uyari-karti {
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid color-mix(in srgb, var(--bekleyen) 40%, transparent);
    border-radius: 16px;
    background: var(--bekleyen-halka);
}

.uyari-karti h2 { margin: 0 0 8px; font-size: 14px; font-weight: 800; }

.uyari-karti ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; }

/* ── Okuma görüntüleri ───────────────────────────────────────────── */
/* Halkalar SVG katmanında: konumlar sunucudan hazır geliyor ve çizim
   ölçekle birlikte kendiliğinden büyüyüp küçülüyor. */
.okuma-gorseli { margin: 0 0 18px; }

.okuma-gorseli figcaption {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 800;
}

.gorsel-kutusu {
    position: relative;
    width: 100%;
    border: 1px solid var(--kenar);
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
}

.gorsel-kutusu img { display: block; width: 100%; height: 100%; }

.balon-katmani {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.balon-katmani circle {
    fill: none;
    stroke: #22DD88;
    stroke-width: 2.4;
    vector-effect: non-scaling-stroke;
}

/* ── Soru soru sonuç ─────────────────────────────────────────────── */
.cevap-aciklamasi { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }

.cevaplar { display: flex; flex-direction: column; gap: 8px; }

.cevap-karti {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border: 1px solid var(--kenar);
    border-left-width: 4px;
    border-radius: 14px;
    background: var(--yuzey);
}

.cevap-karti.dogru { border-left-color: var(--tamam); }
.cevap-karti.yanlis { border-left-color: var(--kirmizi); }
.cevap-karti.coklu { border-left-color: var(--bekleyen); }
.cevap-karti.bos { border-left-color: var(--bos); }
.cevap-karti.iptal { border-left-color: var(--kirmizi); opacity: .72; }

.cevap-yazi { display: flex; flex-wrap: wrap; gap: 4px 18px; min-width: 0; }

.cevap-satiri { display: inline-flex; align-items: baseline; gap: 6px; }

.cevap-etiket { color: var(--silik); font-size: 11px; font-weight: 700; }

.cevap-satiri strong { font-size: 13.5px; font-weight: 800; }

.sik-cipleri { display: flex; gap: 4px; }

.sik-cip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid var(--kenar);
    border-radius: 7px;
    color: var(--silik);
    font-size: 11px;
    font-weight: 700;
}

/* Anahtar ince çerçeveyle, öğrencinin işareti dolu zeminle: ikisi aynı
   şıkta buluşuyorsa doğru cevabın nasıl verildiği tek bakışta okunuyor. */
.sik-cip.anahtar { border-color: var(--tamam); color: var(--tamam); }

.sik-cip.isaretli {
    border-color: var(--mavi);
    background: var(--mavi);
    color: #fff;
}

.cevap-durumu { font-size: 11.5px; font-weight: 800; }

.cevap-karti.dogru .cevap-durumu { color: var(--tamam); }
.cevap-karti.yanlis .cevap-durumu,
.cevap-karti.iptal .cevap-durumu { color: var(--kirmizi); }
.cevap-karti.coklu .cevap-durumu { color: var(--bekleyen); }
.cevap-karti.bos .cevap-durumu { color: var(--silik); }

.cevap-uyarisi {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--bekleyen);
    font-size: 11.5px;
}

@media (max-width: 640px) {
    .cevap-karti { grid-template-columns: auto 1fr auto; }
    .sik-cipleri { grid-column: 2 / -1; }
}
.sonuc-eylemleri {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.tehlike-obegi {
    border-color: color-mix(in srgb, #B42318 42%, var(--kenar));
}

.dugme-tehlike {
    min-height: 42px;
    border: 1px solid #B42318;
    border-radius: 10px;
    padding: 0 18px;
    color: #fff;
    background: #B42318;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.dugme-tehlike:hover { background: #912018; }
.dugme-tehlike:disabled { opacity: .55; cursor: wait; }

.tutorial-yardim {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 90;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: var(--lacivert, #22315F);
    box-shadow: 0 8px 24px rgb(0 0 0 / 24%);
    font: 800 22px/1 system-ui, sans-serif;
    cursor: pointer;
}

.tutorial-pencere {
    width: min(480px, calc(100vw - 32px));
    border: 1px solid var(--kenar);
    border-radius: 18px;
    padding: 24px;
    color: var(--yazi);
    background: var(--yuzey);
    box-shadow: 0 28px 70px rgb(0 0 0 / 30%);
}

.tutorial-pencere::backdrop { background: rgb(12 18 38 / 58%); }
.tutorial-baslik, .tutorial-alt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.tutorial-baslik button {
    border: 0;
    color: var(--soluk);
    background: transparent;
    font: 28px/1 sans-serif;
    cursor: pointer;
}
.tutorial-rozet { color: var(--mavi); font-size: 11px; font-weight: 800; letter-spacing: .09em; }
.tutorial-pencere h2 { margin: 20px 0 8px; }
.tutorial-pencere p { min-height: 54px; margin: 0 0 24px; color: var(--soluk); line-height: 1.55; }
.tutorial-alt > div { display: flex; gap: 8px; }
.tutorial-sayac { color: var(--soluk); font-size: 13px; }
.tutorial-vurgu { outline: 3px solid var(--mavi) !important; outline-offset: 5px; }

@media (max-width: 720px) {
    .sonuc-eylemleri { justify-content: stretch; }
    .sonuc-eylemleri > * { flex: 1 1 auto; justify-content: center; }
    .tutorial-yardim { right: 14px; bottom: 82px; }
}

/* ── Yasal metinler ve alt bilgi ──────────────────────────────────── */

/* Uzun metin. Satır uzunluğu 68 karakter civarında tutuluyor: tam genişlik
   bırakılsaydı göz satır sonundan bir sonraki satırın başına dönerken
   yerini kaybederdi. */
.yasal {
    max-width: 46rem;
    margin: 32px auto 56px;
    padding: 0 4px;
    line-height: 1.75;
    color: var(--yazi);
}

.yasal h1 {
    margin: 0 0 4px;
    font-size: 27px;
    font-weight: 900;
    letter-spacing: -.4px;
}

.yasal h2 {
    margin: 34px 0 10px;
    font-size: 18px;
    font-weight: 900;
    letter-spacing: -.2px;
}

.yasal h3 {
    margin: 22px 0 8px;
    font-size: 15px;
    font-weight: 800;
    color: var(--soluk);
}

.yasal p { margin: 0 0 13px; }
.yasal ul { margin: 0 0 15px; padding-left: 22px; }
.yasal li { margin-bottom: 7px; }
.yasal a { color: var(--mavi); }

.yasal-tarih {
    margin: 0 0 24px !important;
    color: var(--silik);
    font-size: 13px;
}

/* Kurumsal bilgiler doldurulmadan yayına çıkmasın diye. Göz ardı
   edilemeyecek kadar belirgin olmali — yayina cikmis bir placeholder
   metnin bedeli, metnin hic olmamasindan yuksek. */
.yasal-uyari {
    margin: 0 0 24px !important;
    padding: 14px 16px;
    border: 2px solid #B42318;
    border-radius: 12px;
    background: rgba(180, 35, 24, .08);
    line-height: 1.6;
}

.yasal-uyari code {
    padding: 1px 5px;
    border-radius: 5px;
    background: var(--yuzey-soluk);
    font-size: .92em;
}

.alt-bilgi {
    padding: 22px 20px 30px;
    border-top: 1px solid var(--kenar);
    color: var(--silik);
    font-size: 13px;
    text-align: center;
}

.alt-bilgi a { color: var(--soluk); }
.alt-bilgi span { margin: 0 8px; }
