
:root {
  --bg:          #0f1117;
  --surface:     #1a1d27;
  --surface2:    #22263a;
  --border:      #2e3250;
  --primary:     #6c8eff;
  --primary-glow:rgba(108,142,255,0.18);
  --green:       #34d399;
  --green-dim:   rgba(52,211,153,0.15);
  --green-border:rgba(52,211,153,0.4);
  --red:         #f87171;
  --red-dim:     rgba(248,113,113,0.15);
  --red-border:  rgba(248,113,113,0.3);
  --yellow:      #fbbf24;
  --yellow-dim:  rgba(251,191,36,0.15);
  --yellow-border:rgba(251,191,36,0.3);
  --orange:      #fb923c;
  --orange-dim:  rgba(251,146,60,0.15);
  --text:        #e8eaf6;
  --muted:       #6b7280;
  --radius:      14px;
  --font:        'Plus Jakarta Sans', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;}
::-webkit-scrollbar{width:6px;}
::-webkit-scrollbar-track{background:var(--surface);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}

.app{display:flex;flex-direction:column;min-height:100vh;}

.app-body{display:flex;flex:1;min-height:0;}

/* HEADER */
header{
  background:var(--surface);border-bottom:1px solid var(--border);
  padding:0 24px;height:60px;
  display:flex;align-items:center;justify-content:space-between;
  position:sticky;top:0;z-index:100;
}
.header-left{display:flex;align-items:center;gap:12px;}
.logo{font-size:1.1rem;font-weight:800;color:var(--primary);}
.back-btn{
  display:flex;align-items:center;gap:6px;
  color:var(--muted);font-size:0.82rem;text-decoration:none;
  background:var(--surface2);border:1px solid var(--border);
  padding:5px 12px;border-radius:8px;transition:color .15s;
}
.back-btn:hover{color:var(--text);}

/* SIDEBAR */
.sidebar{
  width:220px;min-width:220px;background:var(--surface);border-right:1px solid var(--border);
  display:flex;flex-direction:column;gap:4px;padding:16px 10px;
  overflow-y:auto;height:calc(100vh - 60px);position:sticky;top:60px;
  transition:width .25s ease, min-width .25s ease, padding .25s ease;
}
.sidebar.collapsed{
  width:0;min-width:0;padding:16px 0;overflow:hidden;
}
.sidebar::-webkit-scrollbar{width:4px;}
.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px;}

/* Toggle button in header */
.sidebar-toggle{
  display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:9px;border:1px solid var(--border);
  background:var(--surface2);color:var(--text);cursor:pointer;
  font-size:1rem;transition:background .15s,border-color .15s;flex-shrink:0;
}
.sidebar-toggle:hover{background:var(--primary-glow);border-color:var(--primary);color:var(--primary);}
.tab{
  display:flex;align-items:center;gap:9px;
  padding:10px 12px;font-size:0.86rem;font-weight:600;
  color:var(--muted);cursor:pointer;border-radius:10px;
  border:1px solid transparent;
  transition:color .15s,background .15s,border-color .15s;white-space:nowrap;
}
.tab.active{color:var(--primary);background:var(--primary-glow);border-color:rgba(108,142,255,0.3);}
.tab:hover:not(.active){color:var(--text);background:var(--surface2);}
.tab-badge{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--orange-dim);color:var(--orange);
  border-radius:20px;padding:1px 7px;font-size:0.68rem;font-weight:800;margin-left:auto;
}
.tab-sep{height:1px;background:var(--border);margin:6px 4px;flex-shrink:0;}
/* GÜNÜN GÖREVLİSİ */
.sg-kutu{margin:6px 0 0;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:11px;flex-shrink:0;}
.sg-baslik{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:5px;}
.sg-tarih{font-size:.68rem;font-weight:700;color:var(--yellow);margin-bottom:6px;}
.sg-select{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:5px 8px;color:var(--text);font-family:var(--font);font-size:.73rem;font-weight:600;cursor:pointer;margin-bottom:8px;}
.sg-select:focus{outline:none;border-color:var(--primary);}
.sg-bos{font-size:.71rem;color:var(--muted);font-style:italic;text-align:center;padding:2px 0;}
.sg-row{display:flex;align-items:center;gap:8px;}
.sg-ava{width:34px;height:34px;border-radius:50%;border:2px solid var(--green-border);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;color:var(--yellow);overflow:hidden;flex-shrink:0;box-shadow:0 0 8px rgba(52,211,153,0.2);}
.sg-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.sg-ad{font-size:.76rem;font-weight:700;line-height:1.3;}
.sg-detay{font-size:.61rem;color:var(--muted);margin-top:1px;}


/* CONTENT AREA */
.content-area{
  display:flex;flex:1;min-height:0;
}

/* MAIN */
main{flex:1;padding:28px 24px;max-width:1100px;margin:0 auto;width:100%;overflow-y:auto;}
.panel{display:none;}
.panel.active{display:block;animation:fadeUp .25s ease;}

/* ── ANA SAYFA (DASHBOARD) ── */
.dashboard-hero{
  background: linear-gradient(135deg, var(--surface) 0%, #1e2240 60%, #1a1d27 100%);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 36px 32px;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
}
.dashboard-hero::before{
  content:'';position:absolute;inset:0;
  background: radial-gradient(ellipse 60% 80% at 80% 50%, rgba(108,142,255,0.07) 0%, transparent 70%);
  pointer-events:none;
}
.hero-text{}
.hero-title{font-size:1.6rem;font-weight:800;margin-bottom:6px;letter-spacing:-.02em;}
.hero-title span{color:var(--primary);}
.hero-sub{font-size:.9rem;color:var(--muted);line-height:1.6;}
.hero-stats{display:flex;gap:16px;flex-wrap:wrap;}
.hero-stat{
  background:rgba(255,255,255,0.05);
  border:1px solid var(--border);
  border-radius:12px;padding:12px 20px;text-align:center;min-width:90px;
}
.hero-stat-val{font-size:1.6rem;font-weight:800;line-height:1;}
.hero-stat-lbl{font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:4px;}

/* GRUP BAŞLIĞI */
.group-label{
  font-size:.72rem;font-weight:800;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
  margin-bottom:12px;margin-top:4px;
  display:flex;align-items:center;gap:10px;
}
.group-label::after{content:'';flex:1;height:1px;background:var(--border);}

/* KART GRID */
.dashboard-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:14px;
  margin-bottom:28px;
}
.dash-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:20px 18px 16px;
  cursor:pointer;
  transition: border-color .18s, transform .15s, box-shadow .18s;
  display:flex;flex-direction:column;gap:8px;
  position:relative;overflow:hidden;
  animation: fadeUp .3s ease both;
}
.dash-card::before{
  content:'';position:absolute;inset:0;border-radius:16px;
  opacity:0;transition:opacity .18s;
}
.dash-card:hover{ transform:translateY(-3px); box-shadow:0 12px 40px rgba(0,0,0,0.3); }
.dash-card:hover::before{ opacity:1; }
.dash-card:active{ transform:scale(.97); }

/* Renk varyantları */
.dash-card.c-blue{ border-color:rgba(108,142,255,0.3); }
.dash-card.c-blue::before{ background:var(--primary-glow); }
.dash-card.c-blue:hover{ border-color:var(--primary); }
.dash-card.c-blue .card-icon{ background:rgba(108,142,255,0.15);color:var(--primary); }

.dash-card.c-green{ border-color:rgba(52,211,153,0.25); }
.dash-card.c-green::before{ background:var(--green-dim); }
.dash-card.c-green:hover{ border-color:var(--green); }
.dash-card.c-green .card-icon{ background:rgba(52,211,153,0.15);color:var(--green); }

.dash-card.c-orange{ border-color:rgba(251,146,60,0.25); }
.dash-card.c-orange::before{ background:var(--orange-dim); }
.dash-card.c-orange:hover{ border-color:var(--orange); }
.dash-card.c-orange .card-icon{ background:rgba(251,146,60,0.15);color:var(--orange); }

.dash-card.c-red{ border-color:rgba(248,113,113,0.25); }
.dash-card.c-red::before{ background:var(--red-dim); }
.dash-card.c-red:hover{ border-color:var(--red); }
.dash-card.c-red .card-icon{ background:rgba(248,113,113,0.15);color:var(--red); }

.dash-card.c-yellow{ border-color:rgba(251,191,36,0.25); }
.dash-card.c-yellow::before{ background:var(--yellow-dim); }
.dash-card.c-yellow:hover{ border-color:var(--yellow); }
.dash-card.c-yellow .card-icon{ background:rgba(251,191,36,0.15);color:var(--yellow); }

.dash-card.c-purple{ border-color:rgba(167,139,250,0.25); }
.dash-card.c-purple::before{ background:rgba(167,139,250,0.08); }
.dash-card.c-purple:hover{ border-color:#a78bfa; }
.dash-card.c-purple .card-icon{ background:rgba(167,139,250,0.15);color:#a78bfa; }

.card-icon{
  width:44px;height:44px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;margin-bottom:2px;
  flex-shrink:0;
}
.card-title{font-size:.95rem;font-weight:700;line-height:1.3;}
.card-desc{font-size:.76rem;color:var(--muted);line-height:1.5;}
.card-badge{
  position:absolute;top:12px;right:12px;
  background:var(--orange-dim);color:var(--orange);
  border-radius:20px;padding:2px 9px;font-size:.65rem;font-weight:800;
  border:1px solid rgba(251,146,60,0.3);
}
.card-meta{
  margin-top:4px;font-size:.72rem;font-weight:700;
  color:var(--muted);
}
.card-meta span{
  display:inline-flex;align-items:center;gap:4px;
  background:var(--surface2);border-radius:6px;padding:2px 8px;
  border:1px solid var(--border);
}

/* HIZLI EYLEMLER (alt satır) */
.quick-actions{
  display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;
}
.qbtn{
  display:inline-flex;align-items:center;gap:7px;
  padding:8px 16px;border-radius:10px;border:1px solid var(--border);
  background:var(--surface2);color:var(--text);
  font-family:var(--font);font-size:.82rem;font-weight:600;
  cursor:pointer;transition: border-color .15s, color .15s, background .15s;
}
.qbtn:hover{border-color:var(--primary);color:var(--primary);}
.qbtn-dot{width:8px;height:8px;border-radius:50%;}

/* SON AKTİVİTE */
.activity-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:16px;padding:0;overflow:hidden;
}
.activity-header{
  padding:16px 20px 12px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid var(--border);
}
.activity-title{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.activity-row{
  display:flex;align-items:center;gap:12px;
  padding:11px 20px;border-bottom:1px solid rgba(255,255,255,0.04);
  transition:background .12s;cursor:default;font-size:.84rem;
}
.activity-row:last-child{border-bottom:none;}
.activity-row:hover{background:var(--surface2);}
.act-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.act-name{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.act-badges{display:flex;gap:4px;flex-wrap:wrap;flex:2;}
.act-date{font-size:.72rem;color:var(--muted);white-space:nowrap;flex-shrink:0;}
.act-empty{padding:32px 20px;text-align:center;color:var(--muted);font-size:.85rem;}
.act-empty-icon{font-size:1.8rem;margin-bottom:8px;}

/* SECTION HEADER */
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.section-title{font-size:1.05rem;font-weight:700;}

/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 18px;border-radius:10px;border:none;
  font-family:var(--font);font-size:0.84rem;font-weight:600;
  cursor:pointer;transition:opacity .15s,transform .1s;
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--primary);color:#fff;}
.btn-primary:hover{opacity:.88;}
.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border);}
.btn-danger:hover{background:rgba(248,113,113,0.25);}
.btn-ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border);}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary);}
.btn-green{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border);}
.btn-green:hover{background:rgba(52,211,153,0.25);}
.btn-green-solid{background:var(--green);color:#0f1117;}
.btn-green-solid:hover{opacity:.88;}
.btn-sm{padding:5px 12px;font-size:0.78rem;border-radius:8px;}

/* INPUTS */
.input{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:10px;padding:9px 14px;
  color:var(--text);font-family:var(--font);font-size:0.88rem;
  flex:1;min-width:160px;transition:border-color .15s;
}
.input:focus{outline:none;border-color:var(--primary);}
.input::placeholder{color:var(--muted);}
select.input{cursor:pointer;}
.form-row{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.filter-row{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap;}

/* BADGE */
.badge{
  display:inline-flex;align-items:center;
  padding:3px 9px;border-radius:20px;font-size:0.72rem;font-weight:700;margin:2px;
}
.badge-pos{background:var(--green-dim);color:var(--green);}
.badge-neg{background:var(--red-dim);color:var(--red);}
.badge-neu{background:var(--yellow-dim);color:var(--yellow);}

/* CARD GRID */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.item-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px 16px;
  display:flex;flex-direction:column;gap:10px;
  transition:border-color .15s;animation:fadeUp .3s ease both;
}
.item-card:hover{border-color:var(--primary);}
.item-card-title{font-weight:700;font-size:0.95rem;}
.item-card-sub{font-size:0.78rem;color:var(--muted);}
.item-card-actions{display:flex;gap:6px;margin-top:4px;}

/* RECORD CARD */
.record-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;}
.record-card h3{font-size:0.82rem;font-weight:700;margin-bottom:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}

/* TEKLİ KAYIT */
.kayit-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;}
@media(max-width:720px){.kayit-layout{grid-template-columns:1fr;}}
.sidebar-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;height:fit-content;}
.sidebar-card h3{font-size:0.82rem;font-weight:700;margin-bottom:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.student-list{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow-y:auto;}
.student-item{
  padding:10px 12px;border-radius:10px;cursor:pointer;
  font-size:0.88rem;font-weight:600;border:1px solid transparent;
  transition:background .12s,border-color .12s;
  display:flex;align-items:center;justify-content:space-between;
}
.student-item:hover{background:var(--surface2);}
.student-item.selected{background:var(--primary-glow);border-color:var(--primary);color:var(--primary);}
.student-count{font-size:0.72rem;background:var(--surface2);padding:2px 7px;border-radius:10px;color:var(--muted);}
.ava-img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.ava-wrap{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;border-radius:50%;overflow:hidden;
  border:2px solid var(--border);
  box-shadow:0 1px 4px rgba(0,0,0,.12);
  background:var(--surface2);
}
.ava-wrap .ava-edit-btn{
  position:absolute;bottom:-2px;right:-2px;width:18px;height:18px;border-radius:50%;
  background:var(--primary);color:#fff;border:none;cursor:pointer;
  font-size:.6rem;display:none;align-items:center;justify-content:center;z-index:2;
}
.ava-wrap:hover .ava-edit-btn{display:flex;}
.ava-wrap:hover{border-color:var(--primary);transition:border-color .15s;}
/* Fotoğraf gizleme — render tabanlı, CSS gerekmez */
body.hide-photos .yk-slayt-photo{display:none!important;}
body.hide-photos .yk-slayt-initials{display:flex!important;}
.ava-initials{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;font-weight:800;background:var(--surface2);color:var(--primary);}
.record-area{display:flex;flex-direction:column;gap:16px;}
.davranis-chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip-wrap{display:inline-flex;align-items:center;position:relative;}
.chip{
  padding:7px 14px;border-radius:20px;font-size:0.82rem;font-weight:600;
  cursor:pointer;border:1.5px solid var(--border);
  background:var(--surface2);color:var(--text);transition:all .12s;
  display:inline-flex;align-items:center;gap:7px;user-select:none;
}
.chip:hover{border-color:var(--primary);color:var(--primary);}
.chip.selected-pos{background:var(--green-dim);border-color:var(--green);color:var(--green);}
.chip.selected-neg{background:var(--red-dim);border-color:var(--red);color:var(--red);}
.chip.selected-neu{background:var(--yellow-dim);border-color:var(--yellow);color:var(--yellow);}
.chip-count{
  display:none;min-width:20px;height:20px;border-radius:50%;
  background:rgba(255,255,255,0.22);
  font-size:0.72rem;font-weight:800;
  align-items:center;justify-content:center;padding:0 4px;
  transition:all .12s;
}
.chip.selected-pos .chip-count,.chip.selected-neg .chip-count,.chip.selected-neu .chip-count{display:inline-flex;}
.chip-minus,.chip-plus{
  width:22px;height:22px;border:none;border-radius:50%;
  font-size:0.95rem;font-weight:800;cursor:pointer;
  display:none;align-items:center;justify-content:center;
  transition:opacity .12s,transform .1s;line-height:1;padding:0;
  margin-left:3px;flex-shrink:0;
}
.chip-minus:active,.chip-plus:active{transform:scale(.88);}
.chip-minus{background:rgba(248,113,113,0.25);color:var(--red);}
.chip-plus{background:rgba(108,142,255,0.22);color:var(--primary);}
.chip-wrap.active .chip-minus,.chip-wrap.active .chip-plus{display:inline-flex;}
.modal-wide{max-width:620px;}
.edit-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}

/* TOPLU KAYIT */
.toplu-wrap{max-width:900px;}
.stepbar{
  display:flex;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);padding:0 20px;margin-bottom:24px;overflow-x:auto;
}
.stepbar::-webkit-scrollbar{height:0;}
.step{
  display:flex;align-items:center;gap:8px;
  padding:14px 20px 14px 0;
  font-size:0.8rem;font-weight:600;color:var(--muted);
  position:relative;white-space:nowrap;
}
.step:not(:last-child)::after{content:'›';position:absolute;right:6px;color:var(--border);font-size:1rem;}
.step-num{
  width:22px;height:22px;border-radius:50%;
  background:var(--surface2);color:var(--muted);
  display:flex;align-items:center;justify-content:center;
  font-size:0.7rem;font-weight:800;flex-shrink:0;transition:background .2s,color .2s;
}
.step.done .step-num{background:var(--green);color:var(--bg);}
.step.active .step-num{background:var(--primary);color:#fff;}
.step.active{color:var(--text);}
.tpage{display:none;}
.tpage.active{display:block;animation:fadeUp .25s ease;}
.tpage-title{font-size:1.1rem;font-weight:700;margin-bottom:4px;}
.tpage-sub{font-size:0.83rem;color:var(--muted);margin-bottom:22px;}
.s-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px;max-height:400px;overflow-y:auto;padding:2px;
}
.s-card{
  background:var(--surface);border:2px solid var(--border);
  border-radius:var(--radius);padding:14px 10px;
  cursor:pointer;transition:all .15s;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  text-align:center;position:relative;user-select:none;
}
.s-card:hover{border-color:var(--primary);transform:translateY(-2px);}
.s-card.sel{background:var(--primary-glow);border-color:var(--primary);}
.s-card.sel .s-avatar{background:var(--primary);color:#fff;}
.s-avatar{
  width:42px;height:42px;border-radius:50%;
  background:var(--surface2);color:var(--muted);
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;font-weight:800;transition:background .15s,color .15s;
  overflow:hidden;flex-shrink:0;
}
.s-name{font-size:0.8rem;font-weight:700;line-height:1.3;color:var(--text);}
.s-check{
  position:absolute;top:7px;right:7px;
  width:17px;height:17px;border-radius:50%;
  background:var(--primary);color:#fff;
  font-size:0.62rem;display:none;align-items:center;justify-content:center;font-weight:800;
}
.s-card.sel .s-check{display:flex;}
.sel-pill{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--primary-glow);color:var(--primary);
  border:1px solid var(--primary);
  border-radius:20px;padding:4px 14px;font-size:0.8rem;font-weight:700;
}
.dav-section{margin-bottom:20px;}
.dav-section-title{
  font-size:0.7rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin-bottom:10px;
  display:flex;align-items:center;gap:8px;
}
.dav-section-title::after{content:'';flex:1;height:1px;background:var(--border);}
.dav-chips{display:flex;flex-wrap:wrap;gap:8px;}
.tchip{
  padding:8px 15px;border-radius:20px;font-size:0.82rem;font-weight:600;
  cursor:pointer;border:1.5px solid var(--border);
  background:var(--surface2);color:var(--text);transition:all .12s;user-select:none;
  display:inline-flex;align-items:center;gap:7px;
}
.tchip:hover{border-color:var(--primary);color:var(--primary);}
.tchip.sel-pos{background:var(--green-dim);border-color:var(--green);color:var(--green);}
.tchip.sel-neg{background:var(--red-dim);border-color:var(--red);color:var(--red);}
.tchip.sel-neu{background:var(--yellow-dim);border-color:var(--yellow);color:var(--yellow);}
.tchip-count{
  display:none;min-width:20px;height:20px;border-radius:50%;
  background:rgba(255,255,255,0.18);
  font-size:0.72rem;font-weight:800;
  align-items:center;justify-content:center;padding:0 4px;
}
.tchip.sel-pos .tchip-count,.tchip.sel-neg .tchip-count,.tchip.sel-neu .tchip-count{display:inline-flex;}
.sum-box{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;
  display:flex;gap:20px;flex-wrap:wrap;margin-bottom:22px;
}
.sum-item{display:flex;flex-direction:column;gap:3px;}
.sum-label{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.sum-val{font-size:1.4rem;font-weight:800;}
.nav-bottom{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:28px;padding-top:18px;border-top:1px solid var(--border);
}
.success-screen{text-align:center;padding:60px 20px;animation:fadeUp .4s ease;}
.success-icon{font-size:3.5rem;margin-bottom:14px;}
.success-title{font-size:1.5rem;font-weight:800;margin-bottom:6px;}
.success-sub{color:var(--muted);font-size:0.88rem;margin-bottom:26px;}

/* TABLE */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:0.84rem;}
th{text-align:left;padding:10px 14px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);font-size:0.76rem;text-transform:uppercase;letter-spacing:.05em;}
td{padding:11px 14px;border-bottom:1px solid rgba(255,255,255,0.04);vertical-align:top;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--surface2);}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:24px;}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;}
.stat-label{font-size:0.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}
.stat-val{font-size:1.8rem;font-weight:800;}

/* TAG */
.tag{display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:0.75rem;font-weight:600;background:var(--surface2);border:1px solid var(--border);color:var(--muted);}
.tag-del{cursor:pointer;opacity:.5;}.tag-del:hover{opacity:1;}
.tag-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}

/* EMPTY */
.empty{text-align:center;padding:50px 20px;color:var(--muted);font-size:0.88rem;}
.empty-icon{font-size:2.2rem;margin-bottom:10px;}

/* MODAL */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.65);
  display:flex;align-items:center;justify-content:center;
  z-index:200;padding:20px;animation:fadeIn .15s ease;
}
.modal{
  background:var(--surface);border:1px solid var(--border);
  border-radius:18px;padding:28px;width:100%;max-width:440px;
  animation:slideUp .2s ease;transition:max-width .2s;
}
.modal.modal-wide{max-width:620px;}
.modal h2{font-size:1rem;font-weight:700;margin-bottom:18px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;}

/* ── NOTIFICATION SİSTEMİ ── */
#notif-container{
  position:fixed;top:20px;right:20px;
  display:flex;flex-direction:column;gap:10px;
  z-index:9999;pointer-events:none;
  max-width:340px;width:calc(100vw - 40px);
}
.notif{
  pointer-events:all;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px 16px 14px 14px;
  box-shadow:0 8px 32px rgba(0,0,0,0.45);
  display:flex;align-items:flex-start;gap:12px;
  animation:notifIn .28s cubic-bezier(.34,1.3,.64,1) both;
  position:relative;overflow:hidden;
}
.notif.notif-out{
  animation:notifOut .25s ease forwards;
}
.notif-bar{
  position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:14px 0 0 14px;
}
.notif-icon{
  font-size:1.5rem;line-height:1;flex-shrink:0;margin-top:1px;
}
.notif-body{flex:1;min-width:0;}
.notif-title{
  font-size:.8rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;
  margin-bottom:3px;
}
.notif-student{
  font-size:.95rem;font-weight:700;
  color:var(--text);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
  margin-bottom:4px;
}
.notif-detail{
  font-size:.75rem;color:var(--muted);
  line-height:1.5;
}
.notif-chips{
  display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;
}
.notif-chip{
  font-size:.7rem;font-weight:700;
  border-radius:20px;padding:2px 8px;
  display:flex;align-items:center;gap:3px;
  white-space:nowrap;
}
.notif-close{
  position:absolute;top:8px;right:10px;
  background:none;border:none;color:var(--muted);
  font-size:.85rem;cursor:pointer;padding:2px 4px;
  line-height:1;border-radius:5px;
  transition:color .15s,background .15s;
}
.notif-close:hover{color:var(--text);background:var(--surface);}
.notif-progress{
  position:absolute;bottom:0;left:0;height:3px;
  border-radius:0 0 0 14px;
  animation:notifProgress linear forwards;
}

/* TOAST (eski compat — kısa mesajlar) */
.toast{
  position:fixed;bottom:24px;right:24px;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:12px;padding:10px 16px;
  font-size:0.83rem;font-weight:600;
  z-index:9998;animation:slideUp .2s ease;
  box-shadow:0 8px 32px rgba(0,0,0,0.4);
}

@keyframes notifIn{
  from{opacity:0;transform:translateX(120%) scale(.9);}
  to  {opacity:1;transform:translateX(0)   scale(1);}
}
@keyframes notifOut{
  from{opacity:1;transform:translateX(0);max-height:200px;margin-bottom:0;}
  to  {opacity:0;transform:translateX(80%);max-height:0;  margin-bottom:-10px;padding:0;}
}
@keyframes notifProgress{
  from{width:100%;}
  to  {width:0%;}
}

.divider{border:none;border-top:1px solid var(--border);margin:22px 0;}

/* ── PDF RAPOR ── */
.pdf-label{
  display:block;font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;
  color:var(--muted);margin-bottom:7px;
}
.pdf-page{
  background:#fff;color:#1a1a2e;
  width:100%;max-width:780px;margin:0 auto;
  padding:40px 48px;
  box-shadow:0 4px 32px rgba(0,0,0,0.18);
  border-radius:4px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;line-height:1.5;
}
.pdf-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:3px solid #3b4bdb;padding-bottom:14px;margin-bottom:22px;}
.pdf-header-left .pdf-title{font-size:20px;font-weight:800;color:#1a1a2e;line-height:1.2;margin-bottom:4px;}
.pdf-header-left .pdf-subtitle{font-size:12px;color:#555;font-weight:500;}
.pdf-header-right{text-align:right;font-size:10px;color:#777;line-height:1.8;}
.pdf-header-right .pdf-logo{font-size:22px;margin-bottom:4px;}
.pdf-meta-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:22px;}
.pdf-meta-item{background:#f0f3ff;border:1px solid #d0d7f5;border-radius:8px;padding:10px 14px;}
.pdf-meta-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#6b7280;margin-bottom:3px;}
.pdf-meta-val{font-size:16px;font-weight:800;color:#1a1a2e;}
.pdf-meta-val.pos{color:#059669;}
.pdf-meta-val.neg{color:#dc2626;}
.pdf-meta-val.blue{color:#3b4bdb;}
.pdf-section-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#3b4bdb;margin:20px 0 10px;display:flex;align-items:center;gap:8px;}
.pdf-section-title::after{content:'';flex:1;height:1.5px;background:#e0e4f5;}
.pdf-table{width:100%;border-collapse:collapse;font-size:10px;margin-bottom:16px;}
.pdf-table th{background:#3b4bdb;color:#fff;padding:7px 10px;text-align:left;font-weight:700;font-size:9px;text-transform:uppercase;letter-spacing:.05em;}
.pdf-table td{padding:7px 10px;border-bottom:1px solid #eef0f8;vertical-align:top;}
.pdf-table tr:nth-child(even) td{background:#f8f9ff;}
.pdf-table tr:last-child td{border-bottom:none;}
.pdf-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:20px;font-size:9px;font-weight:700;margin:1px;}
.pdf-badge.pos{background:#d1fae5;color:#065f46;border:1px solid #6ee7b7;}
.pdf-badge.neg{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;}
.pdf-badge.neu{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;}
.pdf-bar-wrap{margin-bottom:8px;}
.pdf-bar-label{display:flex;justify-content:space-between;font-size:10px;margin-bottom:3px;font-weight:600;color:#374151;}
.pdf-bar-track{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;}
.pdf-bar-fill{height:100%;border-radius:4px;transition:width .3s;}
.pdf-footer{margin-top:28px;padding-top:12px;border-top:1px solid #e0e4f5;display:flex;justify-content:space-between;font-size:9px;color:#9ca3af;}

@media print{
  body > *:not(#print-area){ display:none !important; }
  #print-area{ display:block !important; }
  .pdf-page{box-shadow:none;padding:20px;max-width:100%;}
}

/* ── YEDEKLEME ── */
.backup-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px;}
.backup-card-title{font-size:0.88rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.backup-card-desc{font-size:0.83rem;color:var(--muted);line-height:1.6;margin-bottom:18px;}
.backup-stats{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;}
.backup-stat{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:10px 16px;display:flex;flex-direction:column;gap:3px;min-width:110px;}
.backup-stat-label{font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);}
.backup-stat-val{font-size:1.3rem;font-weight:800;}
.backup-actions{display:flex;flex-wrap:wrap;gap:10px;}
.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--surface2);}
.drop-zone:hover,.drop-zone.dragover{border-color:var(--primary);background:var(--primary-glow);}
.drop-zone-icon{font-size:2rem;margin-bottom:8px;}
.drop-zone-text{font-size:0.88rem;font-weight:600;color:var(--muted);}
.drop-zone-sub{font-size:0.75rem;color:var(--muted);margin-top:4px;opacity:.7;}
.restore-preview{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-top:16px;}
.restore-preview-title{font-size:0.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:12px;}
.restore-preview-grid{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.restore-preview-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 16px;display:flex;flex-direction:column;gap:3px;}
.restore-mode-box{background:var(--surface);border:1px solid var(--yellow-border);border-radius:10px;padding:14px 16px;margin-bottom:14px;font-size:.83rem;line-height:1.6;}
.restore-mode-box b{color:var(--yellow);}
.restore-actions{display:flex;flex-wrap:wrap;gap:10px;}

@keyframes ykShake {
  0%,100%{transform:translateX(0);}
  15%{transform:translateX(-8px);}
  30%{transform:translateX(8px);}
  45%{transform:translateX(-6px);}
  60%{transform:translateX(6px);}
  75%{transform:translateX(-3px);}
  90%{transform:translateX(3px);}
}
.yk-eksik {
  border-color: var(--orange) !important;
  background: var(--orange-dim) !important;
  animation: ykShake .5s ease;
}

@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}

@media(max-width:600px){
  main{padding:20px 16px;}
  header{padding:0 16px;}
  .sidebar{display:none;}
  #yk-hizli-liste-grid{grid-template-columns:1fr!important;}
}

/* ── GİRİŞ EKRANI ── */
.login-overlay{
  position:fixed;inset:0;z-index:1000;
  background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  padding:20px;
  animation:fadeIn .2s ease;
}
.login-overlay.hidden{display:none;}

/* Arka plan deseni */
.login-overlay::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 20% 20%, rgba(108,142,255,0.08) 0%, transparent 60%),
    radial-gradient(ellipse 50% 50% at 80% 80%, rgba(52,211,153,0.05) 0%, transparent 60%);
  pointer-events:none;
}
.login-overlay::after{
  content:'';position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(108,142,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(108,142,255,0.04) 1px, transparent 1px);
  background-size:48px 48px;
  pointer-events:none;
}

.login-box{
  position:relative;z-index:1;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:24px;
  padding:40px 36px;
  width:100%;max-width:420px;
  box-shadow:0 24px 80px rgba(0,0,0,0.5);
  animation:slideUp .3s ease;
}
.login-logo{
  text-align:center;margin-bottom:28px;
}
.login-logo-icon{
  font-size:2.6rem;display:block;margin-bottom:8px;
  filter:drop-shadow(0 0 16px rgba(108,142,255,0.5));
}
.login-logo-title{font-size:1.3rem;font-weight:800;color:var(--text);}
.login-logo-sub{font-size:.8rem;color:var(--muted);margin-top:4px;}

/* Rol seçici */
.role-tabs{
  display:flex;background:var(--surface2);border-radius:12px;padding:4px;gap:4px;
  margin-bottom:24px;border:1px solid var(--border);
}
.role-tab{
  flex:1;text-align:center;padding:8px 12px;border-radius:9px;
  font-size:.84rem;font-weight:700;cursor:pointer;
  color:var(--muted);transition:all .18s;
  display:flex;align-items:center;justify-content:center;gap:6px;
}
.role-tab.active{
  background:var(--primary);color:#fff;
  box-shadow:0 4px 16px rgba(108,142,255,0.35);
}
.role-tab:not(.active):hover{color:var(--text);}

.login-field{margin-bottom:16px;}
.login-label{
  display:block;font-size:.72rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.07em;
  color:var(--muted);margin-bottom:7px;
}
.login-input{
  width:100%;background:var(--surface2);border:1.5px solid var(--border);
  border-radius:11px;padding:11px 14px;
  color:var(--text);font-family:var(--font);font-size:.9rem;
  transition:border-color .15s,box-shadow .15s;
}
.login-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(108,142,255,0.15);}
.login-input::placeholder{color:var(--muted);}

.login-btn{
  width:100%;padding:12px;border-radius:12px;border:none;
  background:var(--primary);color:#fff;
  font-family:var(--font);font-size:.95rem;font-weight:700;
  cursor:pointer;margin-top:8px;
  transition:opacity .15s,transform .1s,box-shadow .15s;
  box-shadow:0 4px 20px rgba(108,142,255,0.35);
}
.login-btn:hover{opacity:.88;box-shadow:0 6px 28px rgba(108,142,255,0.45);}
.login-btn:active{transform:scale(.97);}

.login-error{
  background:var(--red-dim);border:1px solid var(--red-border);
  color:var(--red);border-radius:10px;padding:10px 14px;
  font-size:.82rem;font-weight:600;margin-top:12px;
  display:none;text-align:center;
}
.login-error.show{display:block;animation:fadeUp .2s ease;}

.login-hint{
  margin-top:20px;padding-top:16px;border-top:1px solid var(--border);
  font-size:.74rem;color:var(--muted);text-align:center;line-height:1.7;
}
.login-hint b{color:var(--text);}

/* Header kullanıcı bilgisi */
.user-badge{
  display:flex;align-items:center;gap:8px;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:10px;padding:5px 12px;font-size:.8rem;cursor:pointer;
  transition:border-color .15s;position:relative;
}
.user-badge:hover{border-color:var(--primary);}
.user-badge-dot{width:8px;height:8px;border-radius:50%;}
.user-badge-name{font-weight:700;}
.user-badge-role{color:var(--muted);font-size:.72rem;}

/* Kullanıcı menüsü */
.user-menu{
  position:absolute;top:calc(100% + 8px);right:0;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:12px;padding:8px;min-width:180px;
  box-shadow:0 8px 32px rgba(0,0,0,0.4);
  z-index:200;animation:slideUp .15s ease;
}
.user-menu-item{
  display:flex;align-items:center;gap:8px;
  width:100%;background:none;border:none;
  color:var(--text);font-size:.84rem;font-weight:600;
  padding:8px 10px;border-radius:8px;cursor:pointer;
  font-family:var(--font);text-align:left;transition:background .12s;
}
.user-menu-item:hover{background:var(--surface);}
.user-menu-item.danger{color:var(--red);}
.user-menu-divider{height:1px;background:var(--border);margin:4px 0;}

/* ── ÇARK ZOOM OVERLAY ── */
#cark-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  background: rgba(0,0,0,0);
  transition: background 0.4s ease;
}
#cark-overlay.active {
  pointer-events: all;
  background: rgba(0,0,0,0.85);
}
#cark-overlay-inner {
  position: relative;
  width: min(88vw, 88vh);
  height: min(88vw, 88vh);
  transform: scale(0);
  opacity: 0;
  transition: transform 0.55s cubic-bezier(.34,1.15,.64,1), opacity 0.35s ease;
}
#cark-overlay.active #cark-overlay-inner {
  transform: scale(1);
  opacity: 1;
}
#cark-overlay.closing #cark-overlay-inner {
  transform: scale(0);
  opacity: 0;
  transition: transform 1.1s cubic-bezier(.4,0,.2,1), opacity 0.8s ease 0.2s;
}
#cark-overlay.closing {
  background: rgba(0,0,0,0);
  transition: background 1.1s ease;
}
#cark-overlay-canvas {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: block;
  filter: drop-shadow(0 0 60px rgba(108,142,255,0.35));
}
#cark-overlay-ok {
  position: absolute;
  top: -4%;
  left: 50%;
  transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 18px solid transparent;
  border-right: 18px solid transparent;
  border-top: 32px solid var(--primary);
  filter: drop-shadow(0 2px 10px rgba(108,142,255,0.8));
}


#cark-canvas{
  cursor:pointer;
  filter:drop-shadow(0 8px 32px rgba(0,0,0,0.4));
  transition:transform .1s;
}
#cark-canvas:hover{ filter:drop-shadow(0 12px 40px rgba(108,142,255,0.25)); }
.cark-kalan-item{
  display:flex;align-items:center;gap:8px;
  padding:6px 10px;border-radius:8px;
  font-size:.82rem;font-weight:600;
  background:var(--surface2);border:1px solid var(--border);
  color:var(--text);
}
.cark-kayit-item{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:8px;
  font-size:.82rem;font-weight:600;
  background:var(--green-dim);border:1px solid var(--green-border);
  color:var(--green);
}
.cark-btn-spin{
  animation:carkBtnPulse .4s ease;
}
@keyframes carkBtnPulse{
  0%{transform:scale(1);}50%{transform:scale(.95);}100%{transform:scale(1);}
}
@keyframes carkWin{
  0%,100%{transform:scale(1);}25%{transform:scale(1.04);}75%{transform:scale(.97);}
}
.cark-win{ animation:carkWin .5s ease; }

  display:inline-flex;align-items:center;gap:4px;
  background:rgba(251,191,36,0.15);color:var(--yellow);
  border:1px solid rgba(251,191,36,0.3);
  border-radius:6px;padding:2px 8px;font-size:.68rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.05em;
}
/* Kullanıcı kısıtlama bildirimi */
.perm-block{
  background:var(--orange-dim);border:1px solid rgba(251,146,60,0.3);
  color:var(--orange);border-radius:10px;padding:10px 14px;
  font-size:.82rem;font-weight:600;margin-bottom:14px;
  display:flex;align-items:center;gap:8px;
}
