/* ============================================================
   ÖĞRENCİ TARAFI — Giriş, Sonuç, Belge
   Sistem fontları (dış bağlantı yok). Tema renkleri :root'tan.
   ============================================================ */

:root{
    --primary:#16305b;
    --accent:#2f6fed;
    --ink:#1f2733;
    --muted:#6b7480;
    --line:#e6e9ef;
    --bg:#f4f6fa;
    --card:#ffffff;
    --pass:#1a8f4c; --pass-bg:#e7f6ec;
    --fail:#d1354a; --fail-bg:#fdeef1;
    --high:#a9741a; --high-bg:#faf1dc;
    --warn:#c0392b;
    --radius:16px;
    --shadow:0 10px 30px rgba(20,35,70,.08);
    --shadow-sm:0 4px 14px rgba(20,35,70,.06);
    --font:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
svg{width:1em;height:1em}

/* ---------- Butonlar ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;
    border-radius:12px;padding:.72rem 1.15rem;font-size:.95rem;font-weight:600;font-family:inherit;
    cursor:pointer;transition:.16s ease;white-space:nowrap;text-decoration:none}
.btn svg{width:1.15em;height:1.15em;flex:0 0 auto}
.btn--primary{background:var(--accent);color:#fff}
.btn--primary:hover{filter:brightness(.94);text-decoration:none}
.btn--dark{background:var(--primary);color:#fff}
.btn--dark:hover{filter:brightness(1.12);text-decoration:none}
.btn--ghost{background:#fff;color:var(--primary);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.btn--muted{background:#eef1f6;color:#41505f}
.btn--muted:hover{background:#e3e8f0;text-decoration:none}
.btn--block{width:100%}
.btn--sm{padding:.5rem .8rem;font-size:.85rem;border-radius:10px}

/* ---------- Alanlar ---------- */
.field{display:flex;flex-direction:column;gap:.4rem}
.field__label{font-size:.83rem;font-weight:600;color:#3a4656}
.field__control{position:relative;display:flex;align-items:center}
.field__icon{position:absolute;left:.85rem;width:1.15rem;height:1.15rem;color:#9aa4b2;pointer-events:none}
.field input,.field select{width:100%;padding:.8rem .9rem;border:1px solid var(--line);border-radius:12px;
    font-size:.98rem;font-family:inherit;color:var(--ink);background:#fff;transition:.15s}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(47,111,237,.12)}
/* İkonlu alanlarda sol boşluk (kısa yol padding'den SONRA gelmeli ki ezilmesin) */
.field__control input{padding-left:2.6rem}

/* ---------- Uyarılar ---------- */
.alert{border-radius:12px;padding:.8rem 1rem;font-size:.9rem;margin-bottom:1rem;border:1px solid}
.alert--error{background:var(--fail-bg);color:#9c2436;border-color:#f3c6cf}
.alert--success{background:var(--pass-bg);color:#136a39;border-color:#bfe6cd}
.alert--info{background:#eaf1ff;color:#274b93;border-color:#cfe0ff}

/* ---------- Rozetler ---------- */
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.32rem .7rem;border-radius:999px;
    font-size:.8rem;font-weight:700;letter-spacing:.2px}
.badge--pass{background:var(--pass-bg);color:var(--pass)}
.badge--fail{background:var(--fail-bg);color:var(--fail)}
.badge--xl{font-size:1rem;padding:.55rem 1.2rem}

.ta-r{text-align:right}.ta-c{text-align:center}

/* ============================================================
   GİRİŞ EKRANI
   ============================================================ */
.login-body{min-height:100vh;display:flex;
    background:
        radial-gradient(circle at 50% -8%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 55%),
        radial-gradient(rgba(20,35,70,.045) 1px,transparent 1.3px) 0 0/22px 22px,
        var(--bg)}
.login-shell{display:grid;grid-template-columns:1.05fr .95fr;width:100%;min-height:100vh}

.login-brand{position:relative;overflow:hidden;color:#fff;padding:3.2rem 3rem;
    background:
        radial-gradient(circle,rgba(255,255,255,.05) 1.2px,transparent 1.4px) 0 0/26px 26px,
        linear-gradient(150deg,var(--primary) 0%,color-mix(in srgb,var(--primary) 78%,#000) 100%);
    display:flex;align-items:center}

/* Uluslararası eğitim sahnesi (giriş sol paneli) */
.edu-scene{position:absolute;inset:0;z-index:0;color:#fff;pointer-events:none;overflow:hidden}
.edu-scene svg{width:100%;height:100%;display:block}
.edu-scene .es-globe{opacity:.20}
.edu-scene .es-arc{opacity:.42}
.edu-scene .es-dot{opacity:.85}
.edu-scene .es-orbit{opacity:.42;transform-box:view-box;transform-origin:300px 360px;
    animation:es-spin 70s linear infinite}
.edu-scene .es-cap{opacity:.9;transform-box:view-box;transform-origin:185px 120px;
    animation:es-float 7s ease-in-out infinite}
.edu-scene .es-city{opacity:.26}
.edu-scene .es-star{opacity:.5}
@keyframes es-spin{to{transform:rotate(360deg)}}
@keyframes es-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media (prefers-reduced-motion:reduce){
    .edu-scene .es-orbit,.edu-scene .es-cap{animation:none}
}
.login-brand__glow{position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(700px 340px at 80% 12%,rgba(255,255,255,.14),transparent 60%),
               radial-gradient(520px 300px at 12% 100%,color-mix(in srgb,var(--accent) 60%,transparent),transparent 60%)}
.login-brand__inner{position:relative;z-index:1;max-width:460px}
.brand-lockup{display:flex;align-items:center;gap:1rem;margin-bottom:2.4rem}
.brand-emblem{display:inline-flex;color:#fff}
.brand-logo--lg{width:64px;height:64px}
.brand-logo--lg svg,.brand-logo--lg img{width:64px;height:64px}
.brand-name{font-size:1.5rem;font-weight:800;margin:0;letter-spacing:.2px;line-height:1.15}
.brand-headline{font-size:1.9rem;font-weight:800;margin:.2rem 0 1rem;line-height:1.2}
.brand-lead{font-size:1.02rem;color:rgba(255,255,255,.82);margin:0 0 2rem}
.brand-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}
.brand-features li{display:flex;align-items:center;gap:.75rem;font-weight:600;color:rgba(255,255,255,.95)}
.brand-features .dot{width:.85rem;height:.85rem;border-radius:50%;flex:0 0 auto;
    background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 30%,transparent)}

.login-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:2.5rem 1.5rem;position:relative}
.login-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);
    border-radius:20px;box-shadow:var(--shadow);padding:2.2rem}
.login-card__icon{width:104px;height:104px;margin:0 auto 1.1rem;color:var(--primary);
    background:color-mix(in srgb,var(--accent) 12%,#fff);border-radius:50%;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    border:3px solid color-mix(in srgb,var(--accent) 42%,#fff);
    box-shadow:0 10px 28px rgba(22,48,91,.18)}
.login-card__icon .brand-logo{width:60px;height:60px}
.login-card__icon svg{width:60px;height:60px}
.login-card__icon img{width:100%;height:100%;object-fit:cover}
.login-card__title{text-align:center;font-size:1.35rem;font-weight:800;margin:0 0 .3rem}
.login-card__sub{text-align:center;color:var(--muted);font-size:.92rem;margin:0 0 1.6rem}
.login-form{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:1.2rem}
.login-form .btn{margin-top:.3rem}
.login-help{text-align:center;font-size:.86rem;color:var(--muted);border-top:1px solid var(--line);padding-top:1.1rem}
.login-help__links{display:flex;gap:.6rem;justify-content:center;margin-top:.3rem;font-weight:600}
.login-foot{margin-top:1.6rem;font-size:.78rem;color:var(--muted);text-align:center}

/* Yuvarlak logo (yalnızca giriş ekranı) */
.login-body .login-card__icon{border-radius:50%}
.login-body img.brand-logo{border-radius:50%;object-fit:cover;cursor:zoom-in}
.login-body .login-card__icon img{cursor:zoom-in}

/* Fotoğraf profili — sol panelde büyük yuvarlak, altında başlık + açıklama */
.brand-photo{margin-bottom:1.4rem}
.brand-logo--xl{width:140px;height:140px;display:inline-flex;align-items:center;justify-content:center;
    color:#fff;border-radius:50%;overflow:hidden;background:rgba(255,255,255,.08);
    border:4px solid rgba(255,255,255,.85);box-shadow:0 14px 36px rgba(0,0,0,.32)}
.brand-logo--xl svg{width:84px;height:84px}
.brand-logo--xl img{width:100%;height:100%;object-fit:cover}
.login-body .brand-logo--xl.brand-emblem{border-radius:50%}

/* Fotoğraf büyütme (lightbox) */
.photo-lightbox{position:fixed;inset:0;z-index:100;background:rgba(9,14,28,.84);
    display:flex;align-items:center;justify-content:center;padding:6vw;cursor:zoom-out;
    -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.photo-lightbox[hidden]{display:none}
.photo-lightbox img{max-width:min(560px,92vw);max-height:86vh;border-radius:18px;background:#fff;
    object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55);cursor:default}
.photo-lightbox__close{position:absolute;top:16px;right:20px;width:46px;height:46px;border:none;
    border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:1.7rem;line-height:1;
    cursor:pointer;transition:.15s}
.photo-lightbox__close:hover{background:rgba(255,255,255,.28)}

/* ============================================================
   ÜST ÇUBUK (sonuç sayfası)
   ============================================================ */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
    background:#fff;border-bottom:1px solid var(--line);padding:.9rem 1.5rem;position:sticky;top:0;z-index:20}
.topbar__brand{display:flex;align-items:center;gap:.75rem}
.brand-logo--sm{width:40px;height:40px;color:var(--primary);display:inline-flex}
.brand-logo--sm svg,.brand-logo--sm img{width:40px;height:40px}
.topbar__brand strong{display:block;font-size:.98rem;color:var(--primary)}
.topbar__brand small{display:block;font-size:.78rem;color:var(--muted)}
.topbar__actions{display:flex;gap:.9rem;flex-wrap:wrap;align-items:center}
.topbar__student{display:flex;align-items:center;gap:.6rem}
.topbar__student-name{font-size:.9rem;font-weight:700;color:var(--primary)}

/* ---- Öğrenci fotoğrafı (avatar) ---- */
.stu-photo{border-radius:50%;flex:none;overflow:hidden;box-shadow:var(--shadow-sm)}
img.stu-photo{object-fit:cover;display:block}
.stu-photo--empty{display:inline-flex;align-items:center;justify-content:center;
    background:#eef2f9;color:var(--muted)}
.stu-photo--empty>svg{width:58%;height:58%}
.stu-photo--bar{width:44px;height:44px;border:2px solid var(--line)}
.stu-photo--lg{width:104px;height:104px;border:3px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.18)}

/* ============================================================
   SONUÇ İÇERİĞİ
   ============================================================ */
.result-wrap{max-width:1040px;margin:0 auto;padding:1.8rem 1.5rem 3rem}
.doc-head{margin-bottom:1.4rem}
.doc-title{display:flex;align-items:center;gap:.6rem;font-size:1.45rem;font-weight:800;color:var(--primary);margin:0}
.doc-title svg{width:1.4rem;height:1.4rem}

.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
    box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:1.4rem}
.panel__title{font-size:1.05rem;font-weight:800;color:var(--primary);margin:0 0 1.1rem;
    padding-bottom:.7rem;border-bottom:2px solid var(--line);position:relative;display:flex;align-items:center;gap:.5rem}
.panel__title::after{content:"";position:absolute;left:0;bottom:-2px;width:60px;height:2px;background:var(--accent)}
.panel--info{background:#f8faff;border-color:#e2ebfb}
.panel__title--info::after{display:none}
.panel__title--info svg{width:1.2rem;height:1.2rem;color:var(--accent)}

.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 2.2rem}
.info-col{margin:0}
.info-row{display:grid;grid-template-columns:.9fr 1.1fr;gap:1rem;padding:.6rem 0;border-bottom:1px dashed var(--line)}
.info-row:last-child{border-bottom:none}
.info-row dt{color:var(--muted);font-size:.88rem;margin:0}
.info-row dd{margin:0;font-weight:600;font-size:.92rem}

.empty-note{color:var(--muted);text-align:center;padding:1.5rem}

/* Modül kartları */
.module-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.mcard{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;
    display:flex;flex-direction:column}
.mcard__head{display:flex;gap:1rem;flex-wrap:wrap;padding:.8rem 1rem;background:#f7f9fc;
    border-bottom:1px solid var(--line);font-size:.85rem;color:#41505f}
.mcard__head strong{color:var(--primary)}
.mtable{width:100%;border-collapse:collapse}
.mtable th{text-align:left;font-size:.72rem;letter-spacing:.6px;color:var(--accent);
    padding:.6rem 1rem;border-bottom:1px solid var(--line);text-transform:uppercase}
.mtable td{padding:.55rem 1rem;font-size:.9rem;border-bottom:1px solid #f1f3f8}
.mtable tr:last-child td{border-bottom:none}
.mtable .is-attend td{color:var(--pass);font-weight:600}
.mtable .is-avg{background:#f5f8ff}
.mtable .is-avg td{font-weight:800;color:var(--primary)}
.mcard__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
    padding:.8rem 1rem;border-top:1px solid var(--line);font-size:.88rem;font-weight:600}

/* Not aralığı tablosu */
.band-table{display:flex;flex-direction:column;gap:.2rem}
.band-row{display:grid;grid-template-columns:210px 1fr;gap:1rem;padding:.7rem .2rem;border-bottom:1px solid #e6ecf6}
.band-row:last-child{border-bottom:none}
.band-key{font-weight:700;font-size:.9rem}
.band-key--fail{color:var(--fail)}
.band-key--pass{color:var(--pass)}
.band-key--high{color:var(--high)}
.band-desc{color:#4a5666;font-size:.9rem}

/* Genel sonuç */
.overall{display:flex;align-items:center;justify-content:space-between;gap:1rem;
    border-radius:var(--radius);padding:1.4rem 1.8rem;color:#fff;box-shadow:var(--shadow)}
.overall small{display:block;font-size:.8rem;letter-spacing:2px;opacity:.85}
.overall strong{font-size:1.7rem;font-weight:800}
.overall--pass{background:linear-gradient(135deg,#1a8f4c,#0f7a3f)}
.overall--fail{background:linear-gradient(135deg,#d1354a,#b02539)}
.overall .badge{background:rgba(255,255,255,.9)}
.overall--pass .badge{color:var(--pass)}
.overall--fail .badge{color:var(--fail)}

.print-foot{display:none;text-align:center;color:var(--muted);font-size:.8rem;margin-top:1.5rem}

/* ============================================================
   BELGE (yazdırılabilir sayfa)
   ============================================================ */
.doc-body{background:#5a6577;padding:0;margin:0}
.doc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
    background:#22314c;color:#fff;padding:.8rem 1.5rem;position:sticky;top:0;z-index:10}
.doc-toolbar span{font-size:.88rem;color:#d7deea}
.doc-toolbar div{display:flex;gap:.6rem}
.sheet{max-width:820px;background:#fff;margin:1.8rem auto;padding:2.6rem 2.8rem;
    box-shadow:0 20px 60px rgba(0,0,0,.3);border-radius:4px}
.sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
    border-bottom:3px solid var(--primary);padding-bottom:1.1rem}
.sheet__brand{display:flex;align-items:center;gap:.9rem}
.brand-logo--doc{width:52px;height:52px;color:var(--primary);display:inline-flex}
.brand-logo--doc svg,.brand-logo--doc img{width:52px;height:52px}
.sheet__brand strong{display:block;font-size:1.15rem;color:var(--primary)}
.sheet__brand small{display:block;color:var(--muted);font-size:.82rem}
.sheet__meta{text-align:right;font-size:.8rem}
.sheet__meta div{margin-bottom:.25rem}
.sheet__meta span{color:var(--muted);margin-right:.4rem}
.sheet__title{text-align:center;font-size:1.35rem;letter-spacing:1px;color:var(--primary);margin:1.6rem 0}
.sheet__info{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 2rem;margin-bottom:1.6rem}
.sheet__info-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:.5rem;padding:.45rem 0;border-bottom:1px dashed var(--line);font-size:.88rem}
.sheet__info-row span{color:var(--muted)}
.sheet__table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.82rem}
.sheet__table th{background:var(--primary);color:#fff;padding:.5rem .4rem;font-weight:600;font-size:.76rem}
.sheet__table td{padding:.5rem .4rem;border-bottom:1px solid var(--line)}
.sheet__table tbody tr:nth-child(even){background:#f7f9fc}
.sheet__overall{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem;
    border-radius:10px;margin-bottom:1.8rem}
.sheet__overall span{letter-spacing:2px;font-size:.85rem;color:var(--muted)}
.sheet__overall b{font-size:1.3rem}
.sheet__overall.is-pass{background:var(--pass-bg)}.sheet__overall.is-pass b{color:var(--pass)}
.sheet__overall.is-fail{background:var(--fail-bg)}.sheet__overall.is-fail b{color:var(--fail)}
.sheet__foot{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;
    border-top:1px solid var(--line);padding-top:1.2rem;margin-top:1rem}
.sheet__sign{text-align:center;font-size:.82rem;color:#4a5666}
.sheet__sign-line{display:block;width:180px;border-top:1px solid #9aa4b2;margin-bottom:.4rem}
.sheet__foot p{font-size:.72rem;color:var(--muted);max-width:360px;margin:0}

/* ============================================================
   DUYARLI (responsive)
   ============================================================ */
@media (max-width:900px){
    .login-shell{grid-template-columns:1fr}
    .login-brand{padding:2.4rem 1.5rem 2.2rem}
    .login-brand__inner{max-width:100%;text-align:center;margin:0 auto}
    .brand-features{align-items:center}
    .brand-features li{justify-content:flex-start;text-align:left}
    .info-grid{grid-template-columns:1fr;gap:0}
    .module-grid{grid-template-columns:1fr}
    .band-row{grid-template-columns:1fr;gap:.2rem}
}
@media (max-width:560px){
    .login-brand{padding:2rem 1.2rem 1.8rem}
    .brand-photo{margin-bottom:1rem}
    .brand-logo--xl{width:112px;height:112px}
    .brand-logo--xl svg{width:66px;height:66px}
    .brand-name{font-size:1.3rem}
    .brand-headline{font-size:1.45rem;margin:.15rem 0 .7rem}
    .brand-lead{font-size:.95rem;margin-bottom:1.3rem}
    .brand-features{gap:.7rem;font-size:.92rem}
    .login-panel{padding:1.6rem 1.1rem 2rem}
    .result-wrap{padding:1.2rem 1rem 2.5rem}
    .panel{padding:1.1rem}
    .overall{flex-direction:column;text-align:center}
    .sheet{padding:1.6rem 1.3rem;margin:1rem}
    .sheet__info{grid-template-columns:1fr}
    .sheet__table{font-size:.72rem}
    .doc-title{font-size:1.2rem}
}

/* ============================================================
   YAZDIRMA
   ============================================================ */
@media print{
    .no-print{display:none!important}
    body{background:#fff}
    .result-wrap{max-width:100%;padding:0}
    .panel,.overall{box-shadow:none;break-inside:avoid}
    .module-grid{grid-template-columns:1fr 1fr}
    .doc-body{background:#fff}
    .doc-toolbar{display:none}
    .sheet{box-shadow:none;margin:0;max-width:100%;padding:0}
    .print-foot{display:block}
    @page{margin:14mm}
}
