/* ═══════════════════════════════════════════════════════════════════════════
   Rektör Oldum: Görsel Sürüm teması (v0.5.0)
   Oyun kabuğu (üst çubuk, yan menü, alt çubuk), düğmeler, kartlar,
   Genel Bakış ve hoca kartları. style.css ve components.css'ten sonra
   yüklenir, onların üstüne yazar. İkonlar ve portreler Codex ile çizildi.
═══════════════════════════════════════════════════════════════════════════ */

:root {
  --font-display: 'Baloo 2', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --gold:        #f0c040;
  --gold-soft:   #ffd866;
  --gold-deep:   #a8781a;
  --coral:       #e94560;
  --coral-hi:    #ff7088;
  --coral-lo:    #b92c48;
  --teal:        #4ecca3;
  --teal-lo:     #2a9a78;
  --ink:         #0b1226;
  --panel:       linear-gradient(180deg, rgba(33, 46, 90, 0.96) 0%, rgba(22, 32, 66, 0.97) 100%);
  --panel-line:  rgba(150, 175, 255, 0.14);
  --panel-hi:    inset 0 1px 0 rgba(255, 255, 255, 0.07);
  --panel-drop:  0 10px 26px rgba(0, 0, 0, 0.32);
}

/* ── İkon atlası: 6x4, 128 piksellik hücreler ──────────────────────────── */
.ikon {
  display: inline-block;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  background-image: url('../assets/ui/ikonlar.webp?v=0.5.0');
  background-size: 600% 400%;
  background-repeat: no-repeat;
  vertical-align: middle;
  pointer-events: none;
}
.ikon--genel        { background-position:   0%   0%; }
.ikon--kadro        { background-position:  20%   0%; }
.ikon--ogrenci      { background-position:  40%   0%; }
.ikon--yerleske     { background-position:  60%   0%; }
.ikon--arastirma    { background-position:  80%   0%; }
.ikon--butce        { background-position: 100%   0%; }
.ikon--bolumler     { background-position:   0% 33.3333%; }
.ikon--fakulteler   { background-position:  20% 33.3333%; }
.ikon--idari        { background-position:  40% 33.3333%; }
.ikon--mezunlar     { background-position:  60% 33.3333%; }
.ikon--spor         { background-position:  80% 33.3333%; }
.ikon--topluluk     { background-position: 100% 33.3333%; }
.ikon--akreditasyon { background-position:   0% 66.6667%; }
.ikon--kazanim      { background-position:  20% 66.6667%; }
.ikon--eniyiler     { background-position:  40% 66.6667%; }
.ikon--dunya        { background-position:  60% 66.6667%; }
.ikon--kasa         { background-position:  80% 66.6667%; }
.ikon--sayginlik    { background-position: 100% 66.6667%; }
.ikon--ses          { background-position:   0% 100%; }
.ikon--ayarlar      { background-position:  20% 100%; }
.ikon--kaydet       { background-position:  40% 100%; }
.ikon--menu         { background-position:  60% 100%; }
.ikon--donem        { background-position:  80% 100%; }
.ikon--bildirim     { background-position: 100% 100%; }

/* ── Oyun zemini ───────────────────────────────────────────────────────── */
#screen-game .main-content {
  background:
    radial-gradient(1200px 520px at 78% -8%, rgba(240, 192, 64, 0.07), transparent 60%),
    radial-gradient(900px 600px at 0% 100%, rgba(78, 204, 163, 0.06), transparent 60%),
    linear-gradient(180deg, #151d3b 0%, #111833 100%);
}

/* ── Üst çubuk ─────────────────────────────────────────────────────────── */
#screen-game .top-bar {
  min-height: 64px;
  gap: 18px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0) 55%),
    linear-gradient(90deg, #131b38 0%, #1b2656 50%, #131b38 100%);
  border-bottom: 1px solid rgba(240, 192, 64, 0.28);
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.45);
}

#screen-game .top-bar-left {
  flex-direction: row;
  align-items: center;
  gap: 10px;
  min-width: 220px;
}

.uni-crest {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: radial-gradient(circle at 50% 30%, #2f4488 0%, #1a2552 70%);
  border: 1px solid rgba(240, 192, 64, 0.55);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 3px 10px rgba(0, 0, 0, 0.4);
}
.uni-crest .ikon { width: 34px; height: 34px; }

.uni-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 2px;
}

#screen-game .uni-name-display {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.05;
  color: #fff4dc;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
}

#screen-game .term-display {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11.5px;
  color: #b8c4e6;
}
#screen-game .term-display::before {
  content: '';
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  background: url('../assets/ui/ikonlar.webp?v=0.5.0') 80% 100% / 600% 400% no-repeat;
}

#screen-game .top-bar-stats {
  gap: 8px;
}

#screen-game .top-stat,
#screen-game .top-stat:first-child {
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 4px 16px 4px 5px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(6, 10, 26, 0.62) 0%, rgba(6, 10, 26, 0.38) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 2px 6px rgba(0, 0, 0, 0.3);
  cursor: default;
}
#screen-game .top-stat:hover {
  background: linear-gradient(180deg, rgba(20, 30, 70, 0.8) 0%, rgba(12, 18, 44, 0.6) 100%);
  border-color: rgba(240, 192, 64, 0.35);
}

.top-stat-icon {
  width: 34px !important;
  height: 34px !important;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.45));
}

.top-stat-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.05;
}

#screen-game .top-stat-label {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  color: #8e9cc4;
}

#screen-game .top-stat-value {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.05;
  color: #fff;
}
#screen-game #stat-prestige .top-stat-value { color: var(--gold-soft); }
#screen-game #stat-ranking .top-stat-value  { color: #8fd0ff; }

/* Sağdaki yuvarlak araç düğmeleri */
.hud-btn.btn {
  position: relative;
  width: 42px;
  height: 42px;
  padding: 0;
  justify-content: center;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: linear-gradient(180deg, rgba(40, 56, 110, 0.9) 0%, rgba(22, 32, 68, 0.95) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 3px 0 rgba(4, 8, 20, 0.65);
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease;
}
.hud-btn.btn .ikon { width: 28px; height: 28px; }
.hud-btn.btn:hover:not(:disabled) {
  transform: translateY(-1px);
  border-color: rgba(240, 192, 64, 0.55);
  background: linear-gradient(180deg, rgba(52, 72, 140, 0.95) 0%, rgba(28, 40, 84, 0.95) 100%);
}
.hud-btn.btn:active:not(:disabled) {
  transform: translateY(2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 0 rgba(4, 8, 20, 0.65);
}
.hud-btn.is-muted .ikon { filter: grayscale(1) brightness(0.65); }
.hud-btn.is-muted::after {
  content: '';
  position: absolute;
  left: 9px;
  right: 9px;
  top: 50%;
  height: 3px;
  border-radius: 2px;
  background: var(--coral);
  transform: rotate(-38deg);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
}

/* Serbest mod rozeti üst çubuğu taşırmasın */
#screen-game #freemode-badge {
  align-self: flex-start;
  margin: 1px 0 !important;
  padding: 0 8px !important;
  font-size: 10px !important;
  line-height: 16px;
  border-radius: 999px !important;
}

/* ── Yan menü ─────────────────────────────────────────────────────────── */
:root { --sidebar-width: 196px; }

#screen-game .sidebar {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0) 30%),
    linear-gradient(180deg, #17204a 0%, #121a3a 100%);
  border-right: 1px solid rgba(150, 175, 255, 0.10);
  box-shadow: 4px 0 18px rgba(0, 0, 0, 0.25);
}

#screen-game .sidebar-inner {
  padding: 10px 8px;
  gap: 3px;
}

#screen-game .sidebar-tab {
  position: relative;
  gap: 10px;
  padding: 6px 10px 6px 7px;
  border: 1px solid transparent;
  border-left: 1px solid transparent;
  border-radius: 12px;
  color: #aeb9dc;
  font-size: 13.5px;
  font-weight: 600;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

#screen-game .sidebar-tab .tab-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(8, 12, 30, 0.45);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  transition: transform 0.18s ease, background 0.18s ease;
}
#screen-game .sidebar-tab .tab-icon .ikon { width: 28px; height: 28px; }

#screen-game .sidebar-tab:hover {
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
}
#screen-game .sidebar-tab:hover .tab-icon { transform: translateY(-1px) scale(1.06); }

#screen-game .sidebar-tab.active {
  color: #fff4dc;
  font-weight: 700;
  background: linear-gradient(90deg, rgba(240, 192, 64, 0.20) 0%, rgba(240, 192, 64, 0.04) 100%);
  border-color: rgba(240, 192, 64, 0.40);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07), 0 4px 14px rgba(0, 0, 0, 0.25);
}
#screen-game .sidebar-tab.active::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 8px;
  bottom: 8px;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--gold);
  box-shadow: 0 0 10px rgba(240, 192, 64, 0.8);
}
#screen-game .sidebar-tab.active .tab-icon {
  background: radial-gradient(circle at 50% 40%, rgba(240, 192, 64, 0.35), rgba(240, 192, 64, 0.08) 70%);
}

/* ── Alt çubuk ve Sonraki Dönem ───────────────────────────────────────── */
:root { --bottom-bar-height: 62px; }

#screen-game .bottom-bar {
  background:
    linear-gradient(0deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0) 60%),
    linear-gradient(90deg, #131b38 0%, #19244f 50%, #131b38 100%);
  border-top: 1px solid rgba(240, 192, 64, 0.22);
  box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.35);
}

#screen-game .turn-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  color: #b8c4e6;
}

#screen-game .btn-next-turn.btn {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: 0.2px;
  padding: 7px 22px 5px 16px;
  gap: 8px;
  border-radius: 14px;
}
#screen-game .btn-next-turn.btn::before {
  content: '';
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  background: url('../assets/ui/ikonlar.webp?v=0.5.0') 80% 100% / 600% 400% no-repeat;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.4));
}

/* ── Düğmeler: kabartmalı oyun düğmesi ────────────────────────────────── */
.btn {
  border-radius: 10px;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.15s ease,
              border-color 0.15s ease, filter 0.15s ease;
}

.btn-primary {
  color: #fff;
  background: linear-gradient(180deg, var(--coral-hi) 0%, var(--coral) 48%, #d23a56 100%);
  border: 1px solid #ff8fa2;
  border-bottom-color: var(--coral-lo);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.35), 0 3px 0 #8e2138, 0 6px 14px rgba(233, 69, 96, 0.28);
  text-shadow: 0 1px 1px rgba(80, 10, 25, 0.55);
}
.btn-primary:hover:not(:disabled) {
  background: linear-gradient(180deg, #ff8196 0%, #f0506b 48%, #da4460 100%);
  border-color: #ffa3b3;
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 4px 0 #8e2138, 0 10px 20px rgba(233, 69, 96, 0.35);
}
.btn-primary:active:not(:disabled) {
  transform: translateY(2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 0 #8e2138, 0 3px 8px rgba(233, 69, 96, 0.25);
}

.btn-success {
  color: #062a1f;
  background: linear-gradient(180deg, #7ee8c4 0%, var(--teal) 50%, #3db58f 100%);
  border: 1px solid #9ff2d6;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 0 3px 0 #1d7a5c, 0 6px 14px rgba(78, 204, 163, 0.22);
}
.btn-success:hover:not(:disabled) {
  background: linear-gradient(180deg, #92f0d0 0%, #5ad6ad 50%, #45bf98 100%);
  transform: translateY(-1px);
}
.btn-success:active:not(:disabled) {
  transform: translateY(2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 0 #1d7a5c;
}

.btn-secondary {
  color: #e8eeff;
  background: linear-gradient(180deg, #34487f 0%, #26386a 100%);
  border: 1px solid rgba(150, 180, 255, 0.28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 3px 0 #0e1733, 0 5px 12px rgba(0, 0, 0, 0.25);
}
.btn-secondary:hover:not(:disabled) {
  background: linear-gradient(180deg, #3d5594 0%, #2c4079 100%);
  border-color: rgba(240, 192, 64, 0.55);
  transform: translateY(-1px);
}
.btn-secondary:active:not(:disabled) {
  transform: translateY(2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 0 #0e1733;
}

.btn-danger {
  color: #ffb3c0;
  background: rgba(233, 69, 96, 0.08);
  border: 1px solid rgba(233, 69, 96, 0.6);
  box-shadow: 0 2px 0 rgba(80, 10, 25, 0.5);
}
.btn-danger:hover:not(:disabled) {
  color: #fff;
  background: rgba(233, 69, 96, 0.22);
  transform: translateY(-1px);
}

.btn-ghost {
  color: #b9c4e4;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(150, 175, 255, 0.18);
}
.btn-ghost:hover:not(:disabled) {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(240, 192, 64, 0.45);
}

.btn:focus-visible {
  outline: 2px solid var(--gold-soft);
  outline-offset: 2px;
}

/* ── Paneller ve kartlar ──────────────────────────────────────────────── */
#screen-game .card,
#screen-game .stat-card {
  background: var(--panel);
  border: 1px solid var(--panel-line);
  border-radius: 14px;
  box-shadow: var(--panel-hi), var(--panel-drop);
}
#screen-game .card:hover { border-color: rgba(150, 175, 255, 0.24); }

#screen-game .panel-title {
  font-family: var(--font-display);
  font-size: 27px;
  font-weight: 800;
  line-height: 1.1;
  color: #fff4dc;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
}

/* v0.6.1: pencerelerde (.modal-body) de aynı başlık */
#screen-game .section-title,
.modal-body .section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.6px;
  color: var(--gold-soft);
}
#screen-game .section-title .ikon, .modal-body .section-title .ikon { width: 24px; height: 24px; }
#screen-game .section-title::after,
.modal-body .section-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(240, 192, 64, 0.35), transparent);
}

/* ═══════════════════════════════════════════════════════════════════════
   GENEL BAKIŞ (gb-)
═══════════════════════════════════════════════════════════════════════ */
.gb-hero {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) 1.4fr;
  gap: 18px;
  margin-bottom: 18px;
}

.gb-welcome {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px 22px 18px;
  border-radius: 18px;
  border: 1px solid rgba(240, 192, 64, 0.30);
  background:
    radial-gradient(420px 220px at 100% 0%, rgba(240, 192, 64, 0.16), transparent 70%),
    linear-gradient(160deg, #283a78 0%, #1a2656 55%, #151f47 100%);
  box-shadow: var(--panel-hi), var(--panel-drop);
}

.gb-welcome-top {
  display: flex;
  align-items: center;
  gap: 14px;
}

.gb-crest {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 30%, #3a52a0 0%, #1d2a5c 75%);
  border: 1px solid rgba(240, 192, 64, 0.6);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 6px 16px rgba(0, 0, 0, 0.35);
}
.gb-crest .ikon { width: 50px; height: 50px; }

.gb-uni {
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 800;
  line-height: 1.02;
  color: #fff4dc;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
}

.gb-term {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 6px;
  padding: 3px 10px 3px 5px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  color: #dfe6ff;
  background: rgba(6, 10, 26, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.gb-term .ikon { width: 18px; height: 18px; }

.gb-prestige {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(6, 10, 26, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.gb-prestige-text { display: flex; flex-direction: column; gap: 3px; }
.gb-prestige-label { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: #93a3c8; text-transform: uppercase; }
.gb-prestige-value { font-family: var(--font-display); font-size: 22px; font-weight: 800; color: var(--gold-soft); line-height: 1; }
.gb-prestige-sub { font-size: 12px; color: #b8c4e6; }
.gb-prestige-kalite { color: rgba(255, 236, 190, 0.75); cursor: help; }

.gb-forecast {
  padding: 10px 14px 8px;
  border-radius: 14px;
  background: rgba(6, 10, 26, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.07);
}
.gb-forecast-title {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #93a3c8;
}
.gb-forecast-title .ikon { width: 20px; height: 20px; }
.gb-forecast-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 3px 0;
  font-size: 13px;
  color: #cdd6f2;
}
.gb-forecast-row b { font-variant-numeric: tabular-nums; font-weight: 700; }
.gb-forecast-row b.positive { color: var(--teal); }
.gb-forecast-row b.negative { color: #ff8a9d; }
.gb-forecast-net {
  margin-top: 4px;
  padding-top: 7px;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
  font-weight: 800;
  color: #fff;
}
.gb-forecast-net b { font-family: var(--font-display); font-size: 19px; font-weight: 800; }

.gb-columns > div > .section-title:first-child { margin-top: 0; }

.gb-warnings { display: flex; flex-direction: column; gap: 6px; }
.gb-warnings .notification { margin: 0; }

.gb-campus {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #1b2811;
  box-shadow: var(--panel-drop);
  cursor: pointer;
  align-self: start;
}
.gb-campus canvas {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 10;
  transition: transform 0.6s ease;
}
.gb-campus:hover canvas { transform: scale(1.025); }
.gb-campus-cta {
  position: absolute;
  right: 14px;
  bottom: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  pointer-events: none;
}

.gb-cards {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
@media (max-width: 1400px) {
  .gb-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .gb-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.gb-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 12px 12px 11px;
  border-radius: 16px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi), var(--panel-drop);
  overflow: hidden;
  transition: transform 0.15s ease, border-color 0.15s ease;
}
.gb-card:hover { transform: translateY(-2px); border-color: rgba(240, 192, 64, 0.4); }
.gb-card::after {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: var(--gb-accent, var(--gold));
  opacity: 0.85;
}
.gb-card-icon {
  width: 50px;
  height: 50px;
  border-radius: 14px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.12), rgba(6, 10, 26, 0.35) 72%);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.gb-card-icon .ikon { width: 40px; height: 40px; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.35)); }
.gb-card-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gb-card-label { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #93a3c8; }
.gb-card-value {
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.gb-card-sub { font-size: 12px; color: #b8c4e6; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb-card-sub.positive { color: var(--teal); }
.gb-card-sub.negative { color: #ff8a9d; }

.gb-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.gb-dept-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) 76px 110px 12px;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-top: 1px solid rgba(150, 175, 255, 0.08);
  font-size: 13.5px;
}
/* v0.6: satır Bölüm Sayfası'nı açar */
.gb-dept-row--git { cursor: pointer; transition: background 0.15s ease; }
.gb-dept-row--git:hover { background: rgba(240, 192, 64, 0.07); }
.gb-dept-row--git:hover .gb-dept-name { color: var(--gold-soft); }
.gb-dept-row--git:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: -2px; }
.gb-dept-git { font-size: 20px; line-height: 1; color: #7f8bb0; text-align: right; }
.gb-dept-row--git:hover .gb-dept-git { color: var(--gold-soft); }
.gb-dept-row:first-child { border-top: none; }
.gb-dept-row.gb-dept-head {
  padding-top: 12px;
  padding-bottom: 8px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #93a3c8;
}
.gb-dept-icon {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  font-size: 16px;
  background: rgba(6, 10, 26, 0.4);
}
.gb-dept-name { font-weight: 700; color: #eef2ff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gb-dept-num { text-align: right; font-variant-numeric: tabular-nums; color: #dfe6ff; font-weight: 600; }
.gb-quality { display: flex; align-items: center; gap: 8px; }
.gb-quality-track { flex: 1; height: 7px; border-radius: 4px; background: rgba(6, 10, 26, 0.55); overflow: hidden; }
.gb-quality-fill { height: 100%; border-radius: 4px; }
.gb-quality-num { width: 26px; text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; }

.gb-event {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 9px 14px;
  border-top: 1px solid rgba(150, 175, 255, 0.08);
  font-size: 13px;
  color: #cdd6f2;
}
.gb-event:first-child { border-top: none; }
.gb-event .ikon { width: 20px; height: 20px; margin-top: 1px; }

/* ═══════════════════════════════════════════════════════════════════════
   HOCA PORTRELERİ ve KARTLARI (fc2-)
═══════════════════════════════════════════════════════════════════════ */
.portre {
  display: inline-block;
  flex-shrink: 0;
  vertical-align: middle;
  border-radius: 16px;
  background-image:
    url('../assets/ui/portreler.webp?v=0.5.0'),
    radial-gradient(circle at 50% 30%, #4a6ab0 0%, #243669 75%);
  background-size: 600% 800%, 100% 100%;
  background-repeat: no-repeat;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.portre--profesor     { background-image: url('../assets/ui/portreler.webp?v=0.5.0'), radial-gradient(circle at 50% 30%, #b8913a 0%, #5a4318 80%); }
.portre--docent       { background-image: url('../assets/ui/portreler.webp?v=0.5.0'), radial-gradient(circle at 50% 30%, #3fae8c 0%, #1b5646 80%); }
.portre--dr_ogr_uyesi { background-image: url('../assets/ui/portreler.webp?v=0.5.0'), radial-gradient(circle at 50% 30%, #4d78c8 0%, #22396e 80%); }
.portre--argö         { background-image: url('../assets/ui/portreler.webp?v=0.5.0'), radial-gradient(circle at 50% 30%, #8a64c8 0%, #3f2a66 80%); }
.portre--yuvarlak { border-radius: 50%; }

.faculty-card.fc2 {
  display: flex;
  flex-direction: column;
  border-radius: 16px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi), var(--panel-drop);
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
.faculty-card.fc2:hover {
  transform: translateY(-2px);
  border-color: rgba(240, 192, 64, 0.45);
  box-shadow: var(--panel-hi), 0 14px 30px rgba(0, 0, 0, 0.4);
}

.fc2-top {
  display: flex;
  gap: 14px;
  padding: 14px 14px 12px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
}

.fc2-photo { position: relative; flex-shrink: 0; }
.fc2-photo .portre { width: 96px; height: 96px; }

.fc2-rating {
  position: absolute;
  right: -8px;
  bottom: -8px;
  min-width: 40px;
  height: 40px;
  padding: 0 4px;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  background: linear-gradient(180deg, #1f2c5c 0%, #121a3a 100%);
  border: 2px solid var(--rc, var(--gold));
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.45);
}
.fc2-rating b { font-family: var(--font-display); font-size: 19px; font-weight: 800; color: var(--rc, var(--gold)); }
.fc2-rating i { font-style: normal; font-size: 10px; font-weight: 800; }

.fc2-id { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 1; }
.fc2-name {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 800;
  line-height: 1.1;
  color: #fff;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fc2-line { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; color: #cdd6f2; }
.fc2-line .badge { font-size: 11px; }
.fc2-sub { font-size: 12px; color: #a9b5da; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fc2-chip {
  align-self: flex-start;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 9px;
  border-radius: 999px;
  color: #ffe9a8;
  background: rgba(240, 192, 64, 0.13);
  border: 1px solid rgba(240, 192, 64, 0.35);
}

.fc2-boxes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  padding: 0 12px 10px;
}
.fc2-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 7px 4px 6px;
  border-radius: 11px;
  background: rgba(6, 10, 26, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.07);
  min-width: 0;
}
.fc2-box-v {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.05;
  color: #fff;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.fc2-box-l { font-size: 11px; font-weight: 700; color: #9fb0d8; white-space: nowrap; }
.fc2-box--high .fc2-box-v { color: var(--teal); }
.fc2-box--mid  .fc2-box-v { color: var(--gold-soft); }
.fc2-box--low  .fc2-box-v { color: #ff8a9d; }

/* v0.6.1: Kadro'daki başvuru kartları (.aday-kart) aynı çubukları kullanır */
.faculty-card.fc2 .faculty-card-stats, .aday-kart .faculty-card-stats {
  gap: 7px;
  padding: 10px 14px 12px;
  border-top: 1px solid rgba(150, 175, 255, 0.08);
}
.aday-kart .faculty-card-stats { display: flex; flex-direction: column; }
/* v0.6.1 2. aşama: çubuk renk kademeleri sınıfla (ui.js createStatBar; eskiden satır içi renk).
   Eşikler: 85 altın, 70 iyi, 40 orta, altı düşük; belirsiz aralık soluk. */
.stat-bar-fill--altin { background: #d4af37; }
.stat-bar-fill--iyi   { background: var(--stat-high); }
.stat-bar-fill--orta  { background: var(--stat-mid); }
.stat-bar-fill--dusuk { background: var(--stat-low); }
.stat-bar-value--altin    { color: #d4af37; }
.stat-bar-value--iyi      { color: var(--accent-green); }
.stat-bar-value--orta     { color: var(--accent-yellow); }
.stat-bar-value--dusuk    { color: var(--accent); }
.stat-bar-value--belirsiz { color: var(--text-muted); }
/* v0.6.1 2. aşama: pencerelerdeki çubuklar (.pencere-cubuklar) da aynı görünümde */
.pencere-cubuklar { display: flex; flex-direction: column; gap: 7px; }
.faculty-card.fc2 .stat-bar, .aday-kart .stat-bar, .pencere-cubuklar .stat-bar { grid-template-columns: 92px 1fr 44px; }
.faculty-card.fc2 .stat-bar-label, .aday-kart .stat-bar-label, .pencere-cubuklar .stat-bar-label { font-size: 12.5px; color: #cfd8f2; }
.faculty-card.fc2 .stat-bar-track, .aday-kart .stat-bar-track, .pencere-cubuklar .stat-bar-track { height: 8px; border-radius: 5px; background: rgba(6, 10, 26, 0.6); }
.faculty-card.fc2 .stat-bar-fill, .aday-kart .stat-bar-fill, .pencere-cubuklar .stat-bar-fill { border-radius: 5px; }
.faculty-card.fc2 .stat-bar-value, .aday-kart .stat-bar-value, .pencere-cubuklar .stat-bar-value { font-size: 12.5px; font-weight: 800; text-align: right; }

.fc2-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 8px 14px;
  border-top: 1px solid rgba(150, 175, 255, 0.08);
}
.fc2-tag {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 999px;
  color: #cdd6f2;
  background: rgba(6, 10, 26, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.fc2-courses { padding: 8px 14px 10px; border-top: 1px solid rgba(150, 175, 255, 0.08); }
.fc2-courses-title { font-size: 10.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #93a3c8; margin-bottom: 5px; }
.fc2-course { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: #e3e9ff; margin-bottom: 3px; }
.fc2-course-none { font-size: 12px; color: #7f8bb0; }

.fc2-flags { display: flex; flex-wrap: wrap; gap: 5px; padding: 6px 14px 10px; }

/* ── Rehber düğmesi ───────────────────────────────────────────────────── */
.tutorial-replay-btn {
  background: linear-gradient(180deg, rgba(40, 56, 110, 0.95) 0%, rgba(22, 32, 68, 0.97) 100%);
  border: 1px solid rgba(240, 192, 64, 0.45);
  color: #ffe9a8;
  font-weight: 700;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 4px 12px rgba(0, 0, 0, 0.4);
}
.tutorial-replay-btn:hover {
  border-color: var(--gold-soft);
  color: #fff4dc;
  background: linear-gradient(180deg, rgba(52, 72, 140, 0.97) 0%, rgba(28, 40, 84, 0.97) 100%);
}
#screen-game .tutorial-replay-btn { bottom: max(76px, calc(env(safe-area-inset-bottom) + 76px)); }
/* Bildirimler alt çubuğun ve Rehber düğmesinin üstünde dursun */
.toast-container { bottom: max(122px, calc(env(safe-area-inset-bottom) + 122px)); }

/* ── Yerleşke bina kartları: düzey görseli ────────────────────────────── */
.bina-gorsel {
  width: 64px;
  height: 64px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 5px 6px rgba(0, 0, 0, 0.45));
}
#screen-game .building-card {
  border-radius: 14px;
  background: var(--panel);
  border-color: var(--panel-line);
  box-shadow: var(--panel-hi), var(--panel-drop);
}
#screen-game .building-card.available { opacity: 0.85; }
#screen-game .building-card.available:hover {
  opacity: 1;
  transform: translateY(-2px);
  border-color: rgba(78, 204, 163, 0.6);
}
#screen-game .building-card.under-construction { border-color: rgba(240, 192, 64, 0.55); }

/* ── v0.5.2: senaryo hedefi göstergesi (üst çubuk) ────────────────────── */
#screen-game .hedef-cubugu {
  display: flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  font-size: 11.5px;
  line-height: 1.3;
  color: #ffe39a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: help;
}
#screen-game .hedef-cubugu b { color: #fff4dc; font-weight: 800; }
#screen-game .hedef-cubugu-metin { overflow: hidden; text-overflow: ellipsis; }
#screen-game .hedef-cubugu.kritik { color: #ffb19c; }
#screen-game .hedef-cubugu.tuttu { color: var(--teal); }
#screen-game .hedef-cubugu.tuttu b { color: #b9f5e0; }
#screen-game .hedef-cubugu--tel { display: none; }
#screen-game .hedef-cubugu[hidden] { display: none !important; }
/* Dar masaüstünde hedef satırı sol bloğu genişletmesin (kaynak hapları sıkışıp kırılıyordu):
   üniversite adının genişliğini alır, taşarsa üç noktayla kısalır, tamamı ipucunda */
@media (max-width: 1180px) and (min-width: 901px) {
  #screen-game .hedef-cubugu--masa { width: 0; min-width: 100%; }
}

/* ── v0.5.2: dönem özeti alt çubuğu (Devam düğmesi hep görünür) ─────── */
.summary-modal-footer {
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  padding: 12px 20px max(12px, env(safe-area-inset-bottom));
  border-top: 1px solid var(--border, rgba(255, 255, 255, 0.08));
  background: linear-gradient(180deg, rgba(22, 32, 66, 0.92) 0%, rgba(14, 20, 44, 0.98) 100%);
  box-shadow: 0 -8px 18px rgba(0, 0, 0, 0.28);
}
.summary-modal-footer .btn { min-width: 200px; justify-content: center; font-size: 15px; padding: 10px 40px; }
/* v0.6.1: özet kartları ve telefonda tek sütun düzeni aşağıda "Dönem özeti penceresi" (ozet-) bölümünde */

/* ── v0.5.2: onay penceresi (inşaat, yükseltme) ve seçim listeleri ──── */
.onay-bina { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.onay-bina-ad { font-size: 16px; font-weight: 800; color: #fff4dc; }
.onay-bina-aciklama { font-size: 12.5px; color: #b8c4e6; line-height: 1.45; margin-top: 2px; }
.onay-liste {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 12px;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(6, 10, 26, 0.45);
  border: 1px solid rgba(150, 175, 255, 0.12);
}
.onay-satir { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; padding: 3px 0; }
.onay-satir span { color: #a9b5da; }
.onay-satir b { color: #eef2ff; font-weight: 700; text-align: right; }
.onay-kazanc { margin-bottom: 4px; font-size: 13px; }
.onay-kazanc-baslik {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 4px;
}
.onay-kazanc ul { margin: 0; padding-left: 18px; line-height: 1.6; color: #dfe6ff; }
.onay-dugmeler {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}
.onay-dugmeler .btn { min-width: 120px; justify-content: center; }
.bolum-sec-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.bolum-sec-liste .btn { justify-content: center; }
.yonetici-liste { display: flex; flex-direction: column; gap: 8px; }
.yonetici-satir {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(6, 10, 26, 0.4);
  border: 1px solid rgba(150, 175, 255, 0.12);
}
.yonetici-satir.secili { border-color: rgba(78, 204, 163, 0.5); }
.yonetici-bilgi { flex: 1; min-width: 0; }
.yonetici-ad { font-weight: 700; color: #eef2ff; }
.yonetici-alt { font-size: 12px; color: #a9b5da; margin-top: 2px; }

/* ═══════════════════════════════════════════════════════════════════════
   GİRİŞ EKRANI: yerleşke tablosu, klasik başlık, cam panel
═══════════════════════════════════════════════════════════════════════ */
#screen-menu .menu-bg { background: #0b0d1c; }

.menu-art {
  position: absolute;
  inset: -26px;
  z-index: 0;
  display: block;
  transition: transform 0.25s ease-out;
  will-change: transform;
}
.menu-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  display: block;
  transform-origin: 50% 55%;
  animation: menu-kenburns 42s ease-in-out infinite alternate;
}
@keyframes menu-kenburns {
  from { transform: scale(1.02); }
  to   { transform: scale(1.09) translate(-0.8%, -0.6%); }
}

/* Süzülen sıcak ışık zerrecikleri */
.menu-motes { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }
.menu-motes i {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 236, 170, 0.95) 0%, rgba(255, 196, 90, 0.55) 45%, rgba(255, 196, 90, 0) 72%);
  box-shadow: 0 0 8px rgba(255, 200, 100, 0.55);
  opacity: 0;
  animation: menu-mote 16s linear infinite;
}
@keyframes menu-mote {
  0%   { transform: translate(0, 0); opacity: 0; }
  12%  { opacity: 0.9; }
  70%  { opacity: 0.6; }
  100% { transform: translate(24px, -34vh); opacity: 0; }
}

#screen-menu .menu-overlay {
  z-index: 3;
  background:
    radial-gradient(ellipse 34% 46% at 50% 50%, rgba(8, 10, 24, 0.62) 0%, rgba(8, 10, 24, 0.28) 55%, transparent 80%),
    linear-gradient(180deg, rgba(8, 10, 24, 0.62) 0%, rgba(8, 10, 24, 0.10) 30%, rgba(8, 10, 24, 0.05) 60%, rgba(8, 10, 24, 0.70) 100%),
    radial-gradient(ellipse 120% 100% at 50% 50%, transparent 55%, rgba(4, 5, 14, 0.55) 100%);
}

#screen-menu .menu-center { z-index: 4; gap: 18px; }

#screen-menu .menu-logo { gap: 6px; }

.menu-ornament {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 2px;
}
.menu-ornament span {
  width: 74px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(244, 204, 110, 0.9));
}
.menu-ornament span:last-child { background: linear-gradient(90deg, rgba(244, 204, 110, 0.9), transparent); }
.menu-ornament i {
  width: 8px;
  height: 8px;
  transform: rotate(45deg);
  background: linear-gradient(135deg, #fff1c4, #e7b449);
  box-shadow: 0 0 10px rgba(240, 192, 64, 0.8);
}

#screen-menu .menu-title {
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: clamp(40px, 5.6vw, 76px);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: linear-gradient(180deg, #fffaf0 0%, #fbe3a2 38%, #e9b44c 68%, #b98129 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  filter: drop-shadow(0 2px 0 rgba(70, 40, 5, 0.75)) drop-shadow(0 10px 26px rgba(0, 0, 0, 0.65));
  animation: none;
}

#screen-menu .menu-subtitle {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 244, 220, 0.86);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.7);
}

#screen-menu .menu-lastsave {
  background: rgba(10, 12, 28, 0.55);
  border: 1px solid rgba(240, 192, 64, 0.35);
  color: rgba(255, 244, 220, 0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
#screen-menu .menu-lastsave b { color: var(--gold-soft); }

#screen-menu .menu-buttons {
  width: 340px;
  gap: 10px;
  padding: 18px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(16, 20, 44, 0.62) 0%, rgba(10, 12, 28, 0.72) 100%);
  border: 1px solid rgba(240, 192, 64, 0.30);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px) saturate(1.1);
  -webkit-backdrop-filter: blur(10px) saturate(1.1);
}

#screen-menu .menu-main-btn {
  justify-content: center;
  width: 100%;
  min-height: 52px;
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  border-radius: 12px;
}

#screen-menu .btn-primary.menu-main-btn {
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6 0%, #f4c85a 46%, #dc9d2e 100%);
  border: 1px solid #fff0c2;
  border-bottom-color: #a8701a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 3px 0 #7c5010, 0 12px 26px rgba(240, 192, 64, 0.28);
  text-shadow: 0 1px 0 rgba(255, 245, 210, 0.6);
}
#screen-menu .btn-primary.menu-main-btn:hover:not(:disabled) {
  background: linear-gradient(180deg, #fff0c4 0%, #f8d472 46%, #e6aa3b 100%);
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 4px 0 #7c5010, 0 16px 32px rgba(240, 192, 64, 0.36);
}
#screen-menu .btn-primary.menu-main-btn:active:not(:disabled) {
  transform: translateY(2px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 1px 0 #7c5010;
}

#screen-menu .btn-secondary.menu-main-btn {
  color: #fff1cf;
  background: linear-gradient(180deg, rgba(46, 58, 110, 0.85) 0%, rgba(26, 34, 70, 0.9) 100%);
  border: 1px solid rgba(240, 192, 64, 0.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 3px 0 rgba(4, 8, 20, 0.7);
}
#screen-menu .btn-secondary.menu-main-btn:hover:not(:disabled) {
  border-color: var(--gold-soft);
  transform: translateY(-1px);
}

#screen-menu .menu-btn-row { gap: 8px; }
#screen-menu .menu-btn-row .btn {
  gap: 5px;
  padding: 9px 4px 8px;
  font-size: 12.5px;
  font-weight: 600;
  color: rgba(255, 244, 220, 0.8);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: 10px;
}
#screen-menu .menu-btn-row .btn:hover:not(:disabled) {
  color: #fff4dc;
  background: rgba(240, 192, 64, 0.10);
  border-color: rgba(240, 192, 64, 0.45);
}
.menu-svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

#screen-menu .menu-features { gap: 0; max-width: 720px; }
#screen-menu .menu-feature-chip {
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 244, 220, 0.78);
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
}
#screen-menu .menu-feature-chip:hover { background: none; color: #fff4dc; }
/* Özellikler 2x2: her maddenin başında elmas (satır başında boş ayraç kalmasın) */
#screen-menu .menu-features {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: center;
  gap: 7px 26px;
}
#screen-menu .menu-feature-chip { text-align: left; }
#screen-menu .menu-feature-chip::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  margin: 0 9px 2px 0;
  transform: rotate(45deg);
  background: var(--gold);
  vertical-align: middle;
}

#screen-menu .menu-version { color: rgba(255, 244, 220, 0.45); letter-spacing: 0.2em; }

/* ═══════════════════════════════════════════════════════════════════════
   YENİ OYUN KUR: tablo arka planı, klasik başlıklar, cam paneller,
   resimli senaryo karoları, yapışkan alt düğme çubuğu
═══════════════════════════════════════════════════════════════════════ */
#screen-setup {
  background:
    linear-gradient(180deg, rgba(10, 12, 28, 0.78) 0%, rgba(10, 12, 28, 0.92) 55%),
    url('../assets/ui/anasayfa_genis.webp?v=0.5.0') center 40% / cover no-repeat fixed;
  background-color: #0b0d1c;
}
#screen-setup .setup-container {
  width: 100%;
  max-width: 1040px;
  padding: 28px 24px 0;
  gap: 22px;
}
#screen-setup .setup-header {
  flex-wrap: wrap;
  gap: 14px 18px;
  border-bottom: 1px solid rgba(240, 192, 64, 0.22);
}
#screen-setup .setup-header h2 {
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fbe3a2;
  text-shadow: 0 2px 0 rgba(70, 40, 5, 0.6);
}

/* Adım göstergesi: numaralı adımlar, tamamlananlar işaretli */
#screen-setup .setup-step-indicator { gap: 6px; font-size: 13px; }
#screen-setup .setup-step-indicator .step {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 4px 12px 4px 4px;
  border-radius: 999px;
  color: rgba(255, 244, 220, 0.55);
  background: rgba(8, 10, 24, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-weight: 600;
}
#screen-setup .setup-step-indicator .step b {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 11.5px;
  color: rgba(255, 244, 220, 0.7);
  background: rgba(255, 255, 255, 0.08);
}
#screen-setup .setup-step-indicator .step.active {
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6 0%, #f4c85a 50%, #dc9d2e 100%);
  border-color: #fff0c2;
  box-shadow: 0 4px 14px rgba(240, 192, 64, 0.3);
}
#screen-setup .setup-step-indicator .step.active b { background: rgba(59, 35, 5, 0.18); color: #3b2305; }
#screen-setup .setup-step-indicator .step.done { color: rgba(255, 244, 220, 0.85); border-color: rgba(78, 204, 163, 0.45); }
#screen-setup .setup-step-indicator .step.done b { background: var(--teal); color: #062a1f; font-size: 0; }
#screen-setup .setup-step-indicator .step.done b::before { content: '✓'; font-size: 12px; font-weight: 900; }
#screen-setup .setup-step-indicator .step-sep {
  width: 14px;
  height: 1px;
  background: rgba(240, 192, 64, 0.4);
}

/* Bölüm kutuları: cam panel, klasik başlık */
#screen-setup .setup-step { gap: 20px; }
#screen-setup .setup-section {
  padding: 22px 24px;
  gap: 16px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(24, 32, 66, 0.86) 0%, rgba(14, 20, 44, 0.9) 100%);
  border: 1px solid rgba(240, 192, 64, 0.22);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
#screen-setup .setup-section h3 {
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fbe3a2;
  border-bottom: 1px solid rgba(240, 192, 64, 0.2);
  padding-bottom: 10px;
}
#screen-setup .setup-hint { font-size: 14px; color: rgba(225, 232, 250, 0.78); }

/* Bölüm başlığı ikonları (atlaslardan) */
#screen-setup .setup-section h3 { display: flex; align-items: center; gap: 10px; }
#screen-setup .setup-section h3::before {
  content: '';
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  background: url('../assets/ui/ikonlar.webp?v=0.5.0') no-repeat;
  background-size: 600% 400%;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.45));
}
#setup-step-scenario .setup-section h3::before { background-position: 20% 66.6667%; }
#setup-step-2 .setup-section:nth-child(1) h3::before { background-position: 60% 0%; }
#setup-step-3 .setup-section h3::before { background-position: 0% 33.3333%; }
#setup-step-1 .setup-section h3::before,
#setup-step-2 .setup-section:nth-child(2) h3::before {
  background-image: url('../assets/ui/bolumler.webp?v=0.5.0');
  background-size: 600% 500%;
  background-position: 60% 100%;
}
#setup-step-2 .setup-section:nth-child(2) h3::before { background-position: 80% 100%; }

/* Yapışkan alt düğme çubuğu: pencere küçük olsa da düğmeler hep görünür */
#screen-setup .setup-nav {
  position: sticky;
  bottom: 0;
  z-index: 5;
  margin: 0 -24px;
  padding: 14px 24px max(14px, env(safe-area-inset-bottom));
  background: linear-gradient(180deg, rgba(11, 13, 28, 0) 0%, rgba(11, 13, 28, 0.88) 32%, rgba(11, 13, 28, 0.97) 100%);
  align-items: center;
}
#screen-setup .setup-nav .btn { min-height: 46px; padding: 0 20px; font-size: 15px; }
#screen-setup .setup-go {
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6 0%, #f4c85a 46%, #dc9d2e 100%);
  border: 1px solid #fff0c2;
  border-bottom-color: #a8701a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65), 0 3px 0 #7c5010, 0 10px 22px rgba(240, 192, 64, 0.25);
  text-shadow: 0 1px 0 rgba(255, 245, 210, 0.6);
  min-width: 220px;
  justify-content: center;
}
#screen-setup .setup-go:hover:not(:disabled) {
  background: linear-gradient(180deg, #fff0c4 0%, #f8d472 46%, #e6aa3b 100%);
  transform: translateY(-1px);
}
#screen-setup .setup-go:disabled { filter: grayscale(0.7) brightness(0.7); opacity: 0.75; }

/* Senaryo karoları: üstte kapak resmi */
#screen-setup .scenario-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
#screen-setup .scenario-card {
  position: relative;
  padding: 0;
  gap: 0;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(10, 14, 32, 0.72);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
#screen-setup .scenario-card:hover {
  transform: translateY(-3px);
  border-color: rgba(240, 192, 64, 0.5);
  background: rgba(10, 14, 32, 0.8);
}
#screen-setup .scenario-card.selected {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(240, 192, 64, 0.55), 0 14px 34px rgba(240, 192, 64, 0.18);
  background: rgba(14, 18, 40, 0.85);
}
.sc2-art {
  position: relative;
  aspect-ratio: 16 / 7;
  background-size: cover;
  background-position: center;
  background-color: #1a2140;
}
.sc2-art::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 14, 32, 0) 45%, rgba(10, 14, 32, 0.92) 100%);
}
.sc2-check {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: none;
  place-items: center;
  font-weight: 900;
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6, #e3a93a);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.45);
}
#screen-setup .scenario-card.selected .sc2-check { display: grid; }
.sc2-body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 18px 16px;
  margin-top: -34px;
  z-index: 1;
}
#screen-setup .scenario-card-header { align-items: flex-end; }
#screen-setup .scenario-card-name {
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #fff4dc;
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.8);
}
#screen-setup .scenario-card-subtitle { font-size: 13px; color: rgba(255, 244, 220, 0.75); }
#screen-setup .scenario-card-desc { font-size: 13.5px; line-height: 1.55; color: rgba(225, 232, 250, 0.86); }
#screen-setup .scenario-card-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 12px;
  padding-top: 9px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
#screen-setup .scenario-flavor { font-size: 12.5px; color: rgba(255, 236, 190, 0.72); }
.sc2-sure {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  font-weight: 700;
  color: rgba(255, 244, 220, 0.85);
}
.sc2-sure .menu-svg { width: 15px; height: 15px; }
#screen-setup .scenario-diff-badge { border-radius: 999px; padding: 3px 11px; font-size: 11.5px; letter-spacing: 0.04em; }

/* Profil: geniş, altın odaklı giriş kutuları */
#screen-setup .form-group label { color: rgba(255, 236, 190, 0.8); letter-spacing: 0.1em; font-size: 12px; }
#screen-setup .form-input {
  font-size: 16px;
  padding: 13px 16px;
  border-radius: 12px;
  background: rgba(6, 9, 22, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
#screen-setup .form-input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(240, 192, 64, 0.18);
}

/* Üniversite tipi: bina görselli kartlar */
#screen-setup .type-card {
  position: relative;
  align-items: center;
  text-align: center;
  padding: 16px 16px 18px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(10, 14, 32, 0.6);
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
#screen-setup .type-card:hover { transform: translateY(-3px); border-color: rgba(240, 192, 64, 0.5); background: rgba(10, 14, 32, 0.75); }
#screen-setup .type-card.selected {
  border-color: var(--gold);
  background: rgba(240, 192, 64, 0.07);
  box-shadow: 0 0 0 2px rgba(240, 192, 64, 0.5), 0 14px 30px rgba(240, 192, 64, 0.14);
}
#screen-setup .type-card-icon img {
  width: 112px;
  height: 112px;
  object-fit: contain;
  filter: drop-shadow(0 8px 10px rgba(0, 0, 0, 0.5));
}
#screen-setup .type-card-name {
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #fff4dc;
}
#screen-setup .type-card-desc { font-size: 13px; color: rgba(225, 232, 250, 0.78); }
#screen-setup .type-card-stats {
  align-self: stretch;
  text-align: left;
  gap: 4px;
  font-size: 12.5px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
#screen-setup .type-stat.good { color: #6fe0bb; }
#screen-setup .type-stat.bad  { color: #ff97a8; }

/* Zorluk: renk kodlu kartlar ve zorluk çubukları */
#screen-setup .difficulty-card {
  --dz: var(--teal);
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(10, 14, 32, 0.6);
  padding: 14px 16px;
  transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
#screen-setup .difficulty-card[data-difficulty="normal"] { --dz: var(--gold); }
#screen-setup .difficulty-card[data-difficulty="zor"]    { --dz: var(--coral); }
#screen-setup .difficulty-card:hover { transform: translateY(-2px); border-color: var(--dz); }
#screen-setup .difficulty-card.selected {
  border-color: var(--dz);
  background: color-mix(in srgb, var(--dz) 10%, rgba(10, 14, 32, 0.7));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--dz) 55%, transparent);
}
#screen-setup .diff-name {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fff4dc;
}
.diff-pips { display: inline-flex; align-items: flex-end; gap: 3px; }
.diff-pips i { width: 6px; border-radius: 2px; background: rgba(255, 255, 255, 0.16); }
.diff-pips i:nth-child(1) { height: 8px; }
.diff-pips i:nth-child(2) { height: 12px; }
.diff-pips i:nth-child(3) { height: 16px; }
.diff-pips i.on { background: var(--dz); box-shadow: 0 0 6px color-mix(in srgb, var(--dz) 60%, transparent); }
#screen-setup .diff-desc { font-size: 13px; color: rgba(225, 232, 250, 0.78); }

/* Bölüm seçimi: ikonlu kartlar */
#screen-setup .dept-filter-btn {
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 244, 220, 0.75);
  background: rgba(8, 10, 24, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
#screen-setup .dept-filter-btn:hover { border-color: rgba(240, 192, 64, 0.5); color: #fff4dc; }
#screen-setup .dept-filter-btn.active {
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6, #e9b447);
  border-color: #fff0c2;
}
#screen-setup .dept-selection-grid {
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 10px;
  max-height: none;
  overflow: visible;
  padding-right: 0;
}
#screen-setup .dept-option {
  position: relative;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(10, 14, 32, 0.6);
  transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
#screen-setup .dept-option:hover { transform: translateY(-2px); border-color: rgba(240, 192, 64, 0.5); background: rgba(10, 14, 32, 0.78); }
#screen-setup .dept-option.selected {
  border-color: var(--gold);
  background: rgba(240, 192, 64, 0.08);
  box-shadow: 0 0 0 1px rgba(240, 192, 64, 0.5);
}
#screen-setup .dept-option.selected::after {
  content: '✓';
  position: absolute;
  top: 8px;
  right: 10px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 900;
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6, #e3a93a);
}
#screen-setup .dept-option-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  font-size: 24px;
  background: radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.12), rgba(6, 10, 26, 0.4) 72%);
  border: 1px solid rgba(255, 255, 255, 0.08);
}
#screen-setup .dept-option-name { font-size: 14px; font-weight: 700; color: #f1f4ff; white-space: normal; line-height: 1.25; padding-right: 18px; }
#screen-setup .dept-option-cat { font-size: 12px; color: rgba(255, 236, 190, 0.65); }
#screen-setup .setup-note {
  font-size: 13.5px;
  line-height: 1.5;
  padding: 10px 14px;
  border-radius: 12px;
  color: #ffe9a8;
  background: rgba(240, 192, 64, 0.08);
  border: 1px solid rgba(240, 192, 64, 0.3);
}
#screen-setup .dept-selection-info { font-size: 14px; color: rgba(255, 244, 220, 0.8); }
#screen-setup .dept-selection-names { color: var(--gold-soft); font-size: 13px; }

/* Bölüm ikon atlası: 6x5, 128 piksellik hücreler */
.bikon {
  display: inline-block;
  width: 34px;
  height: 34px;
  background-image: url('../assets/ui/bolumler.webp?v=0.5.0');
  background-size: 600% 500%;
  background-repeat: no-repeat;
  vertical-align: middle;
  pointer-events: none;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.4));
}

/* Telefon ve tablet: sayfanın kendisi kaydığı için alt çubuk ekrana sabitlenir */
@media (max-width: 900px) {
  #screen-setup .setup-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0;
    padding: 12px max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    background: rgba(11, 13, 28, 0.97);
    border-top: 1px solid rgba(240, 192, 64, 0.25);
    box-shadow: 0 -12px 26px rgba(0, 0, 0, 0.45);
  }
  #screen-setup .setup-nav .btn-ghost { background: rgba(28, 36, 72, 0.95); }
  #screen-setup .setup-container { padding-bottom: 96px; }
  #screen-setup .setup-step-indicator .step:not(.active) { font-size: 0; gap: 0; padding: 3px; }
}

@media (max-width: 760px) {
  #screen-setup .setup-container { padding: 16px 12px 96px; }
  #screen-setup .setup-header h2 { font-size: 20px; }
  #screen-setup .setup-step-indicator .step { padding: 3px 9px 3px 3px; font-size: 11.5px; }
  #screen-setup .scenario-cards { grid-template-columns: 1fr; }
  #screen-setup .setup-section { padding: 16px 14px; }
  #screen-setup .setup-nav { margin: 0 -12px; padding-left: 12px; padding-right: 12px; }
  #screen-setup .setup-go { min-width: 0; flex: 1; }
  #screen-setup .difficulty-cards { flex-direction: column; }
}

/* Haritada bina bilgi kutusu */
#screen-game .campus-hero canvas { cursor: default; }
.campus-tooltip {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 180px;
  max-width: 260px;
  padding: 10px 14px;
  border-radius: 12px;
  line-height: 1.35;
  font-size: 12.5px;
  color: rgba(225, 232, 250, 0.9);
  background: linear-gradient(180deg, rgba(24, 32, 66, 0.96) 0%, rgba(12, 18, 40, 0.97) 100%);
  border: 1px solid rgba(240, 192, 64, 0.45);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55);
}
.campus-tooltip strong {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  color: #fff4dc;
}
.campus-tooltip .ct-tur { color: rgba(255, 236, 190, 0.75); font-weight: 600; }
.campus-tooltip .ct-duzey { color: rgba(225, 232, 250, 0.8); }
.campus-tooltip .ct-durum { margin-top: 3px; font-weight: 700; }
.campus-tooltip .ct-aktif { color: var(--teal); }
.campus-tooltip .ct-insaat { color: var(--gold-soft); }
.campus-tooltip .ct-yukselt { color: #8fd0ff; }

/* Geniş ekran: menü sağ sütunda, tablonun ortası (saat kulesi, meydan) açık kalır */
@media (min-width: 900px) and (min-aspect-ratio: 4/5) {
  #screen-menu .menu-bg { justify-content: flex-end; }
  #screen-menu .menu-center {
    width: min(460px, 38vw);
    margin-right: clamp(24px, 5.5vw, 110px);
  }
  #screen-menu .menu-title { font-size: clamp(44px, 4.6vw, 70px); }
  #screen-menu .menu-overlay {
    background:
      linear-gradient(270deg, rgba(8, 10, 24, 0.86) 0%, rgba(8, 10, 24, 0.62) 26%, rgba(8, 10, 24, 0.18) 46%, rgba(8, 10, 24, 0) 58%),
      linear-gradient(180deg, rgba(8, 10, 24, 0.40) 0%, rgba(8, 10, 24, 0) 24%, rgba(8, 10, 24, 0) 72%, rgba(8, 10, 24, 0.62) 100%);
  }
}

/* Dikey ekran (telefon): başlık gökyüzünde, panel altta; kule ve ana bina ortada açık */
@media (max-aspect-ratio: 4/5) {
  #screen-menu .menu-center {
    width: 100%;
    min-height: 100svh;
    justify-content: flex-start;
    padding: max(8vh, calc(env(safe-area-inset-top) + 24px)) 16px max(3vh, calc(env(safe-area-inset-bottom) + 12px));
  }
  #screen-menu .menu-logo { margin-bottom: auto; }
  #screen-menu .menu-title { font-size: clamp(38px, 11vw, 60px); }
  .menu-art img { object-position: 50% 40%; }
  #screen-menu .menu-overlay {
    background:
      linear-gradient(180deg, rgba(8, 10, 24, 0.55) 0%, rgba(8, 10, 24, 0) 26%, rgba(8, 10, 24, 0) 50%,
                      rgba(8, 10, 24, 0.72) 72%, rgba(8, 10, 24, 0.9) 100%);
  }
}

@media (max-width: 640px) {
  #screen-menu .menu-center { gap: 14px; }
  #screen-menu .menu-buttons { width: min(88vw, 340px); padding: 14px; }
  #screen-menu .menu-subtitle { font-size: 11.5px; letter-spacing: 0.16em; }
  #screen-menu .menu-feature-chip { font-size: 10px; letter-spacing: 0.1em; }
  #screen-menu .menu-features { gap: 6px 16px; }
  .menu-ornament span { width: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .menu-art img, .menu-motes i { animation: none; }
  .menu-motes { display: none; }
}

/* ── Dar ekranlar ─────────────────────────────────────────────────────── */
@media (max-width: 1200px) {
  :root { --sidebar-width: 64px; }
  #screen-game .sidebar-inner { padding: 8px 6px; }
  #screen-game .sidebar-tab { padding: 6px; justify-content: center; }
  #screen-game .sidebar-tab.active::before { left: -6px; }
  .gb-hero { grid-template-columns: 1fr; }
}

@media (max-width: 1100px) {
  #screen-game .top-stat-label { display: none; }
  #screen-game .top-stat, #screen-game .top-stat:first-child { padding-right: 12px; }
  .top-stat-icon { width: 28px !important; height: 28px !important; }
  .gb-columns { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  :root { --bottom-bar-height: auto; }
  #screen-game .top-bar { min-height: 0; }
  /* Oyun ekranı telefonda içerikle uzar; eskiden 100dvh'de sabit kalıyor, uzun
     sekmelerde Sonraki Dönem çubuğu içeriğin arkasında kalıyordu. */
  #screen-game.active { height: auto; min-height: 100svh; }
  #screen-game .bottom-bar,
  #screen-game.active .bottom-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(56px + env(safe-area-inset-bottom));
    z-index: 49;
    margin: 0;
    padding: 8px max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));
    flex-wrap: nowrap;
  }
  #screen-game .notification-area { min-width: 0; }
  #screen-game .bottom-bar-actions { flex: 1; justify-content: flex-end; }
  #screen-game .turn-info { display: none; }
  #screen-game .main-content { padding-bottom: calc(72px + 56px + env(safe-area-inset-bottom)); }
  #screen-game .tutorial-replay-btn { bottom: calc(56px + 74px + env(safe-area-inset-bottom)); }
  .toast-container { bottom: calc(56px + 122px + env(safe-area-inset-bottom)); }

  #screen-game .top-bar { gap: 8px; }
  #screen-game .top-bar-left { min-width: 0; flex: 1 1 0; }
  #screen-game .term-display { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: block; }
  #screen-game .term-display::before { display: none; }
  /* Kaynak hapları kendi satırında (flex:1 esas-boyutu 0 olduğundan eskiden ilk satıra sıkışıyordu) */
  #screen-game .top-bar-stats { flex: 0 0 100%; order: 3; gap: 6px; padding-bottom: 2px; }
  #screen-game .top-stat, #screen-game .top-stat:first-child { flex-shrink: 0; padding: 3px 12px 3px 4px; }
  #screen-game .top-bar-right { gap: 6px; }
  .hud-btn.btn { width: 38px !important; height: 38px !important; min-height: 0 !important; }
  .hud-btn.btn .ikon { width: 25px; height: 25px; }
  .top-stat-icon { width: 26px !important; height: 26px !important; }
  /* Alt gezinme: sekme genişliği içeriğe göre. Eski kuraldaki width:100%, kabın
     max-content genişliğine (16 x 70 piksel) çözülüyor, her sekme 1120 piksel oluyordu. */
  #screen-game .sidebar-tab { width: auto; }
  .uni-crest { width: 36px; height: 36px; border-radius: 10px; }
  .uni-crest .ikon { width: 28px; height: 28px; }
  #screen-game .uni-name-display { font-size: 16px; }
  #screen-game .top-stat-value { font-size: 16px; }
  .hud-btn.btn { width: 40px; height: 40px; }
  #screen-game .sidebar {
    background: linear-gradient(180deg, #1a2452 0%, #121a3a 100%);
    border-top: 1px solid rgba(240, 192, 64, 0.25);
  }
  #screen-game .sidebar-inner { padding: 0 4px; gap: 0; }
  #screen-game .sidebar-tab {
    border-radius: 0;
    border: none;
    padding: 4px 6px;
    font-size: 10px;
  }
  #screen-game .sidebar-tab .tab-icon { width: 28px; height: 28px; background: none; box-shadow: none; }
  #screen-game .sidebar-tab .tab-icon .ikon { width: 26px; height: 26px; }
  #screen-game .sidebar-tab.active {
    background: linear-gradient(180deg, rgba(240, 192, 64, 0.20), rgba(240, 192, 64, 0.02));
    box-shadow: none;
  }
  #screen-game .sidebar-tab.active::before {
    left: 10px;
    right: 10px;
    top: 0;
    bottom: auto;
    width: auto;
    height: 3px;
    border-radius: 0 0 3px 3px;
  }
  #screen-game .panel-title { font-size: 22px; }
  .gb-uni { font-size: 24px; }
  .gb-card-value { font-size: 23px; }
  .fc2-photo .portre { width: 80px; height: 80px; }
  /* v0.5.2: senaryo hedefi telefonda kaynak haplarının altında kendi satırında */
  #screen-game .hedef-cubugu--masa { display: none !important; }
  #screen-game .hedef-cubugu--tel {
    display: flex;
    order: 4;
    flex: 0 0 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(6, 10, 26, 0.5);
    border: 1px solid rgba(240, 192, 64, 0.28);
    font-size: 12px;
  }
  .summary-modal-footer .btn { width: 100%; min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .btn, .hud-btn.btn, .gb-card, .faculty-card.fc2, .gb-campus canvas, #screen-game .sidebar-tab .tab-icon {
    transition: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   v0.6.1: ORTAK BİLEŞENLER (ob-)
   Sekmelerin içindeki kart, tablo, rozet, puan, not, başlık, boş durum ve
   gösterge kutuları buradan gelir. Kurallar Bölüm Sayfası'nın (bs-) tablo
   ve kart stillerinden genelleştirildi: bs- adları aynı kuralları paylaşır
   (Bölüm Sayfası şablonu ve sınamaları bu adlara bağlı), ikinci bir kopya
   yazılmadı. Renkler dosyanın başındaki tokenlardan (--gold, --teal,
   --panel ...); Genel Bakış ve Bölüm Sayfası'nda sabit yazılmış ara tonlar
   aşağıda adlandırıldı. İşaretlemeyi ui.js'teki _obKutu, _obPuan,
   _dersTuruRozeti, _eslesmeRozeti yardımcıları üretir.

    1. Ara tonlar           --ob-*
    2. Yerleşim             .ob-yigin .ob-ana-yan .ob-iki .ob-kartlar .ob-dizi
    3. Bölüm başlığı        .section-title (tema, yukarıda) + .ob-sayi
    4. Kart                 .ob-kart (--govde --uyari --tiklanir) .ob-kart-baslik .ob-kart-alt
    5. Gösterge kutusu      .ob-kutular .ob-kutu (-e etiket, -s değer, -a alt satır)
    6. Veri tablosu         .ob-tablo-kap .ob-tablo (.n sayı sağa, .ob-toplam, .ob-grup, .ob-git)
    7. Rozet                .ob-rozet (--iyi --uyari --kritik --bilgi --vurgu --zorunlu --secmeli)
    8. Puan göstergesi      .ob-puan (1-5 gibi değerler; yıldız karakteri yerine)
    9. Bilgi notu           .ob-not (--uyari --kritik --iyi) .ob-aciklama
   10. Boş durum            .ob-bos
   11. Satır ve çubuk       .ob-satir .ob-cubuk
   12. Alt sekmeler         .ob-sekmeler .ob-sekme
   13. Başvuru satırı       .ob-basvuru
   14. Ayar ve form         .ob-ayar .ob-kaydirici .ob-secim .ob-arama .ob-anahtar
   15. Eksik düğme türleri  .btn-warning .btn-xs .btn--pasif
   16. Kimlik satırı        .ob-kimlik (-ikon, -govde, -ad, -alt, -sag)             (2. aşama)
   17. Madde listesi        .ob-madde (--iyi --soluk)                               (2. aşama)
   18. Düğme satırı         .ob-dugmeler (--alt) .ob-kart--sutun                    (2. aşama)
   19. Pencere gövdesi      .pencere-yigin .pencere-kimlik; .section-title pencerede (2. aşama)
   20. Durum renkleri       .ob-iyi .ob-uyari .ob-kritik .ob-soluk (en sonda: tek sınıflı kuralları ezer)
═══════════════════════════════════════════════════════════════════════ */

/* 1. Ara tonlar */
:root {
  --ob-metin:        #e3e9ff;                    /* tablo ve kart gövde metni */
  --ob-metin-guclu:  #eef2ff;                    /* ad, öne çıkan değer */
  --ob-metin-soluk:  #a9b5da;                    /* alt satır, açıklama */
  --ob-etiket:       #93a3c8;                    /* büyük harfli küçük etiket, tablo başlığı */
  --ob-iyi:          var(--teal);
  --ob-uyari:        var(--gold-soft);
  --ob-kritik:       #ff8a9d;
  --ob-bilgi:        #8fd0ff;
  --ob-cizgi:        rgba(150, 175, 255, 0.08);  /* satır ayırıcı */
  --ob-cizgi-orta:   rgba(150, 175, 255, 0.14);  /* iç kutu kenarı */
  --ob-cizgi-guclu:  rgba(150, 175, 255, 0.18);  /* başlık altı */
  --ob-cukur:        rgba(6, 10, 26, 0.35);      /* kartın içindeki çukur zemin */
}

/* 2. Yerleşim: sekme içeriği bölümlerden oluşur (.ob-bolum = başlık + içerik) */
.ob-yigin { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ob-yigin--sik { gap: 12px; }
.ob-bolum { min-width: 0; }
.ob-ana-yan { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 18px; align-items: start; }
.ob-iki { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.ob-kartlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 12px; }
.ob-dizi { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; min-width: 0; }
.ob-gizli, .bs-gizli { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* 3. Bölüm başlığı: .section-title (altın Baloo 2, sağa uzanan çizgi, önünde atlas ikonu); içindeki sayı rozeti: */
.ob-sayi {
  display: inline-flex;
  align-items: center;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 20px;
  letter-spacing: 0;
  color: #ffe39a;
  background: rgba(240, 192, 64, 0.12);
  border: 1px solid rgba(240, 192, 64, 0.3);
  font-variant-numeric: tabular-nums;
}

/* 4. Kart */
.ob-kart, .bs-kart {
  min-width: 0;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi), var(--panel-drop);
}
.ob-kart--govde, .bs-kart--govde { padding: 0; overflow: hidden; }
.ob-kart--uyari, .bs-kart--uyari { border-color: rgba(255, 138, 157, 0.4); }
.ob-kart--tiklanir { cursor: pointer; transition: border-color 0.15s ease, transform 0.15s ease; }
.ob-kart--tiklanir:hover { border-color: rgba(240, 192, 64, 0.45); transform: translateY(-1px); }
.ob-kart--tiklanir.secili { border-color: var(--gold); box-shadow: var(--panel-hi), 0 0 0 1px rgba(240, 192, 64, 0.55), var(--panel-drop); }
.ob-kart-baslik, .bs-kart-baslik {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ob-etiket);
}
.ob-kart-baslik .bs-link, .bs-kart-baslik .bs-link,
.ob-kart-baslik .ob-rozet, .bs-kart-baslik .bs-rozet { letter-spacing: 0; text-transform: none; }
.ob-kart-alt, .bs-kart-alt { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(150, 175, 255, 0.1); }

/* 5. Gösterge kutusu */
.ob-kutular, .bs-gosterge { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 10px; }
.ob-kutu, .bs-kutu {
  min-width: 0;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi);
}
.ob-kutu--cukur { background: var(--ob-cukur); border-color: var(--ob-cizgi-orta); box-shadow: none; }
.ob-kutu-e, .bs-kutu-e { font-size: 10.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ob-etiket); }
.ob-kutu-s, .bs-kutu-s {
  margin-top: 2px;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.1;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.ob-kutu-s small { margin-left: 2px; font-size: 13px; font-weight: 700; color: var(--ob-metin-soluk); }
.ob-kutu-s.ob-kutu-s--metin { font-family: var(--font-main); font-size: 15px; line-height: 1.3; overflow-wrap: anywhere; }
.ob-kutu-a, .bs-kutu-a { margin-top: 2px; font-size: 12px; line-height: 1.35; color: var(--ob-metin-soluk); overflow-wrap: anywhere; }
.ob-kutu-a .ob-puan { margin-right: 4px; }
.ob-kutu .ob-cubuk { margin: 6px 0 0; }

/* 6. Veri tablosu: kendi kutusunda yatay kayar (telefonda sayfa taşmaz) */
.ob-tablo-kap, .bs-tablo-kap {
  position: relative;
  overflow-x: auto;
  border-radius: 12px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi);
  -webkit-overflow-scrolling: touch;
}
/* Kartın içinde çerçevesiz (ör. bölüm kartındaki müfredat tablosu) */
.ob-tablo-kap--ic { border: none; border-top: 1px solid var(--ob-cizgi-orta); border-radius: 0; background: none; box-shadow: none; }
/* style.css telefonda .tab-panel table'ı display:block yapar; kutudaki tablo tablo kalır */
.ob-tablo-kap > .ob-tablo, .bs-sayfa .bs-tablo {
  display: table;
  width: 100%;
  max-width: none;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 12.5px;
}
.ob-tablo-kap > .ob-tablo--dar { min-width: 0; }
.ob-tablo-kap > .ob-tablo--genis { min-width: 760px; }
.ob-tablo th, .bs-tablo th {
  padding: 9px 12px;
  text-align: left;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--ob-etiket);
  white-space: nowrap;
  border-bottom: 1px solid var(--ob-cizgi-guclu);
  background: rgba(6, 10, 26, 0.25);
}
.ob-tablo td, .bs-tablo td {
  padding: 8px 12px;
  color: var(--ob-metin);
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--ob-cizgi);
}
.ob-tablo tbody tr:last-child td, .bs-tablo tbody tr:last-child td { border-bottom: none; }
.ob-tablo tbody tr:hover td { background: rgba(150, 175, 255, 0.045); }
.ob-tablo .n, .bs-tablo .n { text-align: right; }
.ob-tablo .o { text-align: center; }
.ob-tablo .ob-ad { font-weight: 700; color: var(--ob-metin-guclu); }
.ob-tek, .bs-nowrap { white-space: nowrap; }
.ob-tablo tr.ob-toplam td, .bs-tablo tr.bs-toplam td { font-weight: 800; border-top: 1px solid var(--ob-cizgi-guclu); background: rgba(6, 10, 26, 0.2); }
.ob-tablo tr.ob-grup td {
  padding-top: 13px;
  padding-bottom: 5px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ob-etiket);
  border-bottom-color: var(--ob-cizgi-orta);
  background: none;
}
.ob-tablo tbody tr.ob-grup:hover td { background: none; }
.ob-tablo tr.ob-git { cursor: pointer; }
.ob-tablo tr.ob-git:hover td { background: rgba(240, 192, 64, 0.06); }
.ob-tablo tr.ob-git:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: -2px; }
.ob-tablo th.ob-sirala { cursor: pointer; }
.ob-tablo th.ob-sirala:hover { color: #fff4dc; }
.ob-tablo th.sirali, .bs-tablo th.sirali { color: var(--gold-soft); }
.ob-th-dugme, .bs-th-dugme {
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  white-space: nowrap;
  cursor: pointer;
}
.ob-th-dugme:hover, .bs-th-dugme:hover { color: #fff4dc; }
.ob-th-dugme:focus-visible, .bs-th-dugme:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; border-radius: 3px; }
.ob-tablo-dip, .bs-tablo-dip { font-size: 12px; line-height: 1.5; color: var(--ob-etiket); }
.ob-tablo-dip { margin-top: 8px; }

/* 7. Rozet: durum (iyi / uyarı / kritik), bilgi, vurgu ve tür (Zorunlu / Seçmeli: tam yazıyla) */
.ob-rozet, .bs-rozet {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: 999px;
  border: 1px solid rgba(150, 175, 255, 0.25);
  background: var(--ob-cukur);
  color: #b8c4e6;
  font-size: 11.5px;
  font-weight: 700;
  white-space: nowrap;
  vertical-align: middle;
}
.ob-rozet--iyi, .bs-rozet--iyi { border-color: rgba(78, 204, 163, 0.5); color: var(--ob-iyi); }
.ob-rozet--uyari, .bs-rozet--bekle { border-color: rgba(240, 192, 64, 0.5); color: var(--ob-uyari); }
.ob-rozet--kritik, .bs-rozet--kotu { border-color: rgba(255, 138, 157, 0.55); color: var(--ob-kritik); }
.ob-rozet--bilgi { border-color: rgba(143, 208, 255, 0.45); color: var(--ob-bilgi); }
.ob-rozet--vurgu { border-color: transparent; background: linear-gradient(180deg, #ffe7a6, #e3a93a); color: #3b2305; }
.ob-rozet--zorunlu { border-color: rgba(255, 244, 220, 0.35); background: rgba(255, 244, 220, 0.1); color: #fff4dc; }
.ob-rozet--secmeli { border-style: dashed; border-color: rgba(150, 175, 255, 0.45); background: transparent; color: var(--ob-metin-soluk); }
.ob-rozet--kucuk { padding: 1px 7px; font-size: 10.5px; }
.ob-rozet[title] { cursor: help; }

/* 8. Puan göstergesi: dolu ve boş elmaslar (ui.js _obPuan; metin karşılığı aria-label ve title'da) */
.ob-puan { display: inline-flex; align-items: center; gap: 6px; padding: 0 2px; line-height: 1; vertical-align: middle; }
.ob-puan i {
  width: 7px;
  height: 7px;
  flex-shrink: 0;
  border-radius: 1.5px;
  transform: rotate(45deg);
  border: 1px solid rgba(150, 175, 255, 0.4);
}
.ob-puan i.on {
  border-color: transparent;
  background: var(--ob-puan-renk, var(--gold));
  box-shadow: 0 0 6px color-mix(in srgb, var(--ob-puan-renk, var(--gold)) 45%, transparent);
}
.ob-puan--iyi    { --ob-puan-renk: var(--ob-iyi); }
.ob-puan--uyari  { --ob-puan-renk: var(--ob-uyari); }
.ob-puan--kritik { --ob-puan-renk: var(--ob-kritik); }

/* 9. Bilgi notu (açıklama kutusu) ve sade açıklama satırı */
.ob-not, .bs-dikkat {
  padding: 10px 14px 12px;
  border-radius: 12px;
  border: 1px solid rgba(143, 208, 255, 0.3);
  background: rgba(79, 163, 224, 0.08);
  font-size: 12.5px;
  line-height: 1.55;
  color: #cdd6f2;
}
.ob-not b, .ob-not strong { color: var(--ob-metin-guclu); }
.ob-not p { margin: 0; }
.ob-not p + p { margin-top: 4px; }
.ob-not-baslik, .bs-dikkat-baslik { font-size: 11.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ob-bilgi); }
.ob-not-baslik { margin-bottom: 4px; }
.ob-not ul, .bs-dikkat ul { margin: 6px 0 0; padding-left: 18px; }
.ob-not li, .bs-dikkat li { margin: 4px 0; font-size: 13px; line-height: 1.45; color: var(--ob-metin); }
.ob-not--uyari { border-color: rgba(240, 192, 64, 0.35); background: rgba(240, 192, 64, 0.08); }
.ob-not--uyari .ob-not-baslik { color: var(--ob-uyari); }
.ob-not--kritik, .bs-dikkat { border-color: rgba(255, 138, 157, 0.4); background: rgba(233, 69, 96, 0.08); }
.ob-not--kritik .ob-not-baslik, .bs-dikkat-baslik { color: var(--ob-kritik); }
.ob-not--iyi { border-color: rgba(78, 204, 163, 0.35); background: rgba(78, 204, 163, 0.07); }
.ob-not--iyi .ob-not-baslik { color: var(--ob-iyi); }
.ob-aciklama, .bs-not { margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: var(--ob-metin-soluk); }
.ob-kart > .ob-aciklama:first-child, .bs-kart > .bs-not:first-child { margin-top: 0; }
.ob-aciklama--kritik { color: #ffb3bf; }

/* 10. Boş durum */
.ob-bos {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 20px 18px;
  border-radius: 14px;
  border: 1px dashed var(--ob-cizgi-guclu);
  background: rgba(6, 10, 26, 0.22);
  text-align: center;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ob-metin-soluk);
}
.ob-bos .ikon { width: 36px; height: 36px; opacity: 0.9; }
.ob-bos-baslik { font-size: 14px; font-weight: 800; color: var(--ob-metin); }
.ob-bos .btn { margin-top: 4px; }
.ob-bos--kucuk { padding: 12px 14px; }

/* 11. Satır (etiket solda, değer sağda) ve ilerleme çubuğu */
.ob-satir, .bs-satir { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 4px 0; font-size: 13px; }
.ob-satir > span:first-child, .bs-satir > span:first-child { color: var(--ob-metin-soluk); }
.ob-satir b, .bs-satir b { color: var(--ob-metin-guclu); font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; }
.ob-satir b .ob-soluk, .ob-satir b small { font-weight: 500; }
.ob-satir--toplam, .bs-satir--toplam { margin-top: 4px; padding-top: 7px; border-top: 1px solid rgba(255, 255, 255, 0.09); }
.ob-satir--toplam b, .bs-satir--toplam b { font-family: var(--font-display); font-size: 17px; font-weight: 800; }
.ob-cubuk, .bs-cubuk { height: 7px; margin: 4px 0 6px; border-radius: 4px; background: rgba(6, 10, 26, 0.55); overflow: hidden; }
.ob-cubuk > span, .bs-cubuk span { display: block; height: 100%; border-radius: 4px; background: var(--gold); }
.ob-cubuk--iyi > span, .bs-cubuk.iyi span { background: var(--ob-iyi); }
.ob-cubuk--uyari > span, .bs-cubuk.orta span { background: var(--ob-uyari); }
.ob-cubuk--kritik > span, .bs-cubuk.kotu span { background: var(--ob-kritik); }

/* 12. Alt sekmeler: dar ekranda yatay kayar */
.ob-sekmeler, .bs-sekmeler {
  display: flex;
  gap: 2px;
  overflow-x: auto;
  border-bottom: 1px solid rgba(150, 175, 255, 0.18);
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
.ob-sekmeler { margin-bottom: 16px; }
.ob-sekme, .bs-sekme {
  flex-shrink: 0;
  min-height: 44px;
  padding: 8px 14px;
  border: none;
  border-bottom: 3px solid transparent;
  background: none;
  color: #aeb9dc;
  font-size: 13.5px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.ob-sekme:hover, .bs-sekme:hover { color: #fff; }
.ob-sekme.secili, .bs-sekme.secili { color: var(--gold-soft); border-bottom-color: var(--gold); }
.ob-sekme:focus-visible, .bs-sekme:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: -2px; }
.ob-sekme small, .bs-sekme small {
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 11px;
  background: rgba(6, 10, 26, 0.5);
  color: #cdd6f2;
}
.ob-sekme small.acil { background: var(--coral); color: #fff; }

/* 13. Başvuru satırı: bilgi solda, Kabul / Reddet sağda */
.ob-basvuru-liste, .bs-basvuru-liste { display: flex; flex-direction: column; gap: 8px; }
.ob-basvuru, .bs-basvuru {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 10px;
  background: var(--ob-cukur);
  border: 1px solid rgba(150, 175, 255, 0.12);
}
.ob-basvuru-bilgi, .bs-basvuru-bilgi { flex: 1 1 220px; min-width: 0; }
.ob-basvuru-ad, .bs-basvuru-ad { font-size: 13.5px; font-weight: 700; color: var(--ob-metin-guclu); }
.ob-basvuru-ad .ob-rozet, .bs-basvuru-ad .bs-rozet { margin-left: 4px; }
.ob-basvuru-alt, .bs-basvuru-alt { margin-top: 2px; font-size: 12px; line-height: 1.45; color: var(--ob-metin-soluk); }
.ob-basvuru-dugmeler, .bs-basvuru-dugmeler { display: flex; gap: 6px; }

/* 14. Ayar (etiket, kaydırıcı, değer) ve form denetimleri */
.ob-ayar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; }
.ob-ayar + .ob-ayar { margin-top: 12px; }
.ob-ayar-e { grid-column: 1 / -1; font-size: 11px; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: var(--ob-etiket); }
.ob-ayar-d { min-width: 64px; text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--gold-soft); }
.ob-ayar--satir { grid-template-columns: minmax(90px, 150px) minmax(0, 1fr) 52px; }
.ob-ayar--satir + .ob-ayar--satir { margin-top: 8px; }
.ob-ayar--satir .ob-ayar-e { grid-column: auto; font-size: 12.5px; font-weight: 600; letter-spacing: 0; text-transform: none; color: #cdd6f2; }
.ob-kaydirici { width: 100%; margin: 8px 0; }
input[type="range"].ob-kaydirici {
  -webkit-appearance: none;
  appearance: none;
  height: 6px;
  border-radius: 3px;
  background: rgba(6, 10, 26, 0.65);
  box-shadow: inset 0 0 0 1px rgba(150, 175, 255, 0.16);
  cursor: pointer;
  outline: none;
}
input[type="range"].ob-kaydirici::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--ob-kaydirici-renk, var(--gold));
  border: 2px solid #1a2552;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.28), 0 2px 6px rgba(0, 0, 0, 0.45);
  cursor: pointer;
}
input[type="range"].ob-kaydirici::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--ob-kaydirici-renk, var(--gold));
  border: 2px solid #1a2552;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.28), 0 2px 6px rgba(0, 0, 0, 0.45);
  cursor: pointer;
}
input[type="range"].ob-kaydirici:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 4px; }
.ob-kaydirici--iyi    { --ob-kaydirici-renk: var(--ob-iyi); }
.ob-kaydirici--uyari  { --ob-kaydirici-renk: var(--ob-uyari); }
.ob-kaydirici--kritik { --ob-kaydirici-renk: var(--ob-kritik); }
.ob-secim, .ob-arama {
  min-height: 36px;
  max-width: 100%;
  padding: 6px 12px;
  border-radius: 10px;
  border: 1px solid rgba(150, 175, 255, 0.22);
  background: rgba(6, 10, 26, 0.55);
  color: var(--ob-metin-guclu);
  font-family: var(--font-main);
  font-size: 13px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.ob-secim:focus, .ob-arama:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(240, 192, 64, 0.18); }
.ob-secim option { background: #16213e; color: var(--ob-metin-guclu); }
.ob-secim--tam { width: 100%; }
.pencere-metin { margin: 0 0 12px; font-size: 13.5px; line-height: 1.5; }
.ob-arama::placeholder { color: var(--ob-etiket); }
.ob-anahtar {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  border-radius: 10px;
  border: 1px solid rgba(150, 175, 255, 0.18);
  background: rgba(6, 10, 26, 0.55);
}
.ob-anahtar > button {
  min-height: 30px;
  padding: 4px 14px;
  border: none;
  border-radius: 8px;
  background: none;
  color: var(--ob-metin-soluk);
  font-family: var(--font-main);
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
}
.ob-anahtar > button:hover { color: #fff; }
.ob-anahtar > button.secili { color: #3b2305; background: linear-gradient(180deg, #ffe7a6, #e9b447); }
.ob-anahtar > button:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 1px; }

/* 15. Eksik düğme türleri (şablonlarda kullanılıyordu, tanımı yoktu; tarayıcının varsayılan gri düğmesi görünüyordu) */
.btn-warning {
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6 0%, #f4c85a 46%, #dc9d2e 100%);
  border: 1px solid #fff0c2;
  border-bottom-color: #a8701a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55), 0 3px 0 #7c5010;
}
.btn-warning:hover:not(:disabled) { background: linear-gradient(180deg, #fff0c4 0%, #f8d472 46%, #e6aa3b 100%); transform: translateY(-1px); }
.btn-warning:active:not(:disabled) { transform: translateY(2px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 0 #7c5010; }
.btn-xs { padding: 3px 8px; border-radius: 8px; font-size: 11px; }
/* Tıklanınca nedenini bildiren, pasif görünen düğme (disabled olsaydı bildirim gösterilemezdi) */
.btn--pasif { opacity: 0.55; filter: grayscale(0.35); cursor: not-allowed; }

/* 16. Kimlik satırı (2. aşama): kartın başında ikon ya da görsel, ad ve alt satır, sağda rozet ya da puan.
   Bina, idari birim, takım, topluluk, mezun ve kazanım kartları bununla başlar. */
.ob-kimlik { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ob-kimlik-ikon {
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  font-size: 22px;
  line-height: 1;
  border-radius: 12px;
  background: radial-gradient(circle at 50% 30%, #3a52a0 0%, #1d2a5c 75%);
  border: 1px solid rgba(240, 192, 64, 0.4);
}
.ob-kimlik-ikon--gorsel { width: auto; height: auto; background: none; border: none; }
.ob-kimlik-ikon--soluk { filter: grayscale(0.8); opacity: 0.6; border-color: var(--ob-cizgi-orta); }
.ob-kimlik-govde { flex: 1; min-width: 0; }
.ob-kimlik-ad {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.2;
  color: #fff4dc;
  overflow-wrap: anywhere;
}
.ob-kimlik-alt { margin-top: 2px; font-size: 12px; line-height: 1.45; color: var(--ob-metin-soluk); }
.ob-kimlik-alt .ob-puan, .ob-kimlik-alt .ob-rozet { margin-right: 6px; }
.ob-kimlik > .ob-rozet { flex-shrink: 0; align-self: flex-start; }
.ob-kimlik-sag { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; margin-left: auto; }

/* 17. Madde listesi (2. aşama): elmas imli kısa satırlar (etki, kazanç, koşul) */
.ob-madde { display: flex; flex-direction: column; gap: 3px; margin: 0; padding: 0; list-style: none; font-size: 12.5px; line-height: 1.45; color: var(--ob-metin); }
.ob-madde li { position: relative; padding-left: 14px; }
.ob-madde li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 1px;
  background: currentColor;
  opacity: 0.75;
  transform: rotate(45deg);
}
.ob-madde--iyi { color: var(--ob-iyi); }
.ob-madde--soluk { color: var(--ob-metin-soluk); }

/* 18. Düğme satırı (2. aşama). --alt: kartın dibinde, üstü çizgili; sütun kartta (ob-kart--sutun) dibe yaslanır */
.ob-dugmeler { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ob-dugmeler--alt { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ob-cizgi); }
.ob-kart--sutun { display: flex; flex-direction: column; gap: 10px; }
.ob-kart--sutun > .ob-dugmeler--alt { margin-top: auto; }

/* 19. Pencere gövdesi (2. aşama): tema kuralları #screen-game altında, pencereler onun dışında kalıyordu.
   Bölüm başlığı yukarıda (.section-title) pencereye de uygulanır; pencere gövdesi ortak bileşenlerle kurulur. */
.pencere-yigin { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.pencere-kimlik { display: flex; align-items: center; gap: 14px; min-width: 0; }
.pencere-kimlik .ob-kimlik-ad { font-size: 20px; }
.modal-body .ob-kutular { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
.modal-body .ob-kutu-s { font-size: 21px; }
.modal-body .ob-kart > .ob-kart-baslik:first-child { margin-top: 0; }
.modal-body .onay-dugmeler { margin-top: 4px; }

/* 20. Durum renkleri: iyi / uyarı / kritik (tablo, satır ve kutu değerlerinde de geçerli) */
.ob-iyi, .ob-tablo .ob-iyi, .ob-satir .ob-iyi,
.bs-kutu-s.iyi, .bs-tablo td.iyi, .bs-satir b.arti, .bs-tablo td.arti { color: var(--ob-iyi); }
.ob-uyari, .ob-tablo .ob-uyari, .ob-satir .ob-uyari,
.bs-kutu-s.orta, .bs-tablo td.orta { color: var(--ob-uyari); }
.ob-kritik, .ob-tablo .ob-kritik, .ob-satir .ob-kritik,
.bs-kutu-s.kotu, .bs-tablo td.kotu, .bs-satir b.eksi, .bs-tablo td.eksi { color: var(--ob-kritik); }
.ob-soluk, .ob-tablo .ob-soluk, .ob-satir .ob-soluk { color: var(--ob-metin-soluk); }
.ob-kalin { font-weight: 800; }
.ob-egilim { font-size: 11px; font-weight: 800; }
.ob-egilim--up { color: var(--ob-iyi); }
.ob-egilim--down { color: var(--ob-kritik); }
.ob-egilim--stable { color: var(--ob-etiket); }

@media (max-width: 1100px) {
  .ob-ana-yan { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .ob-iki { grid-template-columns: minmax(0, 1fr); }
  .ob-yigin { gap: 18px; }
  .ob-kutu-s, .bs-kutu-s { font-size: 21px; }
  .ob-ayar--satir { grid-template-columns: minmax(84px, 120px) minmax(0, 1fr) 48px; gap: 4px 10px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   v0.6: BÖLÜM SAYFASI (bs-) ve ona giden bağlantılar
   (kart, tablo, rozet, gösterge, not, satır, çubuk, sekme ve başvuru
   kuralları yukarıdaki ortak bileşenlerle paylaşılır)
═══════════════════════════════════════════════════════════════════════ */

/* Giriş noktaları: bölüm adı bağlantısı ve "Bölüm Sayfası →" düğmesi */
.bs-link {
  display: inline;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-weight: 700;
  color: var(--gold-soft);
  text-align: left;
  cursor: pointer;
}
.bs-link:hover { color: #fff4dc; text-decoration: underline; text-underline-offset: 3px; }
.bs-link:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; border-radius: 4px; }
.bs-link--baslik { font-size: 15px; color: #eef2ff; }
.bs-link--baslik::after { content: ' ›'; color: var(--gold-soft); }
.bs-link--kucuk { font-size: 12px; white-space: nowrap; }
.bs-git-dugme { white-space: nowrap; }
.bs-git-dugme--ince {
  margin-left: auto;
  padding: 3px 10px;
  border-radius: 999px;
  border: 1px solid rgba(240, 192, 64, 0.4);
  background: rgba(240, 192, 64, 0.08);
  color: #ffe39a;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.bs-git-dugme--ince:hover { color: #fff4dc; background: rgba(240, 192, 64, 0.18); border-color: var(--gold-soft); }
.bs-satir-git { cursor: pointer; }
.bs-satir-git:hover { background: rgba(240, 192, 64, 0.06); }
.kontenjan-odak {
  border-color: var(--gold) !important;
  box-shadow: 0 0 0 2px rgba(240, 192, 64, 0.55), 0 8px 22px rgba(0, 0, 0, 0.3) !important;
}

/* Sayfa */
.bs-sayfa { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.bs-geri {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(240, 192, 64, 0.35);
  background: rgba(6, 10, 26, 0.45);
  color: #ffe39a;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.bs-geri:hover { color: #fff4dc; border-color: var(--gold-soft); background: rgba(240, 192, 64, 0.1); }
.bs-geri:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; }

.bs-ust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 16px;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(240, 192, 64, 0.30);
  background:
    radial-gradient(420px 220px at 100% 0%, rgba(240, 192, 64, 0.14), transparent 70%),
    linear-gradient(160deg, #283a78 0%, #1a2656 55%, #151f47 100%);
  box-shadow: var(--panel-hi), var(--panel-drop);
}
.bs-ikon {
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  font-size: 34px;
  border-radius: 16px;
  background: radial-gradient(circle at 50% 30%, #3a52a0 0%, #1d2a5c 75%);
  border: 1px solid rgba(240, 192, 64, 0.55);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 6px 16px rgba(0, 0, 0, 0.35);
}
.bs-kimlik { flex: 1 1 260px; min-width: 0; }
.bs-baslik {
  margin: 0;
  font-family: 'Cinzel', 'Times New Roman', serif;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fbe3a2;
  text-shadow: 0 2px 0 rgba(70, 40, 5, 0.6);
  overflow-wrap: anywhere;
}
.bs-alt { margin-top: 5px; font-size: 13px; line-height: 1.45; color: #b8c4e6; }
.bs-alt b { color: #eef2ff; font-weight: 700; }
.bs-rozetler { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.bs-kotu-metin { color: #ff8a9d; font-weight: 700; }
.bs-iyi-metin  { color: var(--teal) !important; }

/* Gövde: solda iç sekmenin içeriği, sağda yan kartlar */
.bs-govde { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 14px; align-items: start; }
.bs-ana, .bs-yan { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.bs-altbaslik { margin-bottom: -4px; font-size: 11.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: #93a3c8; }
.bs-dugmeler { display: flex; flex-wrap: wrap; gap: 6px; }
.bs-kart > .bs-dugmeler:not(:first-child) { margin-top: 8px; }
.bs-dugme {
  min-height: 36px;
  padding: 6px 11px;
  border-radius: 9px;
  border: 1px solid rgba(240, 192, 64, 0.35);
  background: rgba(240, 192, 64, 0.08);
  color: #ffe39a;
  font-size: 12.5px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}
.bs-dugme:hover:not(:disabled) { color: #fff4dc; background: rgba(240, 192, 64, 0.16); border-color: var(--gold-soft); }
.bs-dugme:disabled { opacity: 0.5; cursor: not-allowed; }
.bs-dugme:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; }
.bs-not--uyari { color: #ffb3bf; }
.bs-liste { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; color: #e3e9ff; }
.bs-bos { display: flex; flex-direction: column; gap: 10px; font-size: 13.5px; color: #cdd6f2; }

/* Tablolar: ortak tablo kuralları yukarıda; burada yalnız Bölüm Sayfası'na özgü olanlar */
.bs-sayfa .bs-tablo--kadro { min-width: 700px; }
.bs-sayfa .bs-tablo--butce { min-width: 0; }
.bs-tablo tbody tr[data-bs-hoca] { cursor: pointer; }
.bs-tablo tbody tr[data-bs-hoca]:hover { background: rgba(240, 192, 64, 0.06); }
.bs-tablo tbody tr[data-bs-hoca]:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: -2px; }
.bs-hoca-ad { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; white-space: nowrap; }
.bs-baskan-etiket {
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 800;
  color: #3b2305;
  background: linear-gradient(180deg, #ffe7a6, #e3a93a);
}
.bs-sifir { color: #ff8a9d !important; font-weight: 800; }
.bs-islem { text-align: right; }
.bs-tasi.btn { padding: 3px 10px; font-size: 11.5px; }
.bs-proje-ad { min-width: 220px; }
.bs-tablo-dip { margin-top: -4px; }
.bs-butce-ad { font-size: 13px; font-weight: 700; color: #eef2ff; }
.bs-butce-alt { margin-top: 2px; font-size: 11.5px; line-height: 1.4; color: #93a3c8; }
.bs-kart .bs-tumu { display: inline-block; margin-top: 8px; }

/* Binalar */
.bs-bina { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid rgba(150, 175, 255, 0.08); }
.bs-kart-baslik + .bs-bina { border-top: none; padding-top: 0; }
.bs-bina .bina-gorsel { width: 56px; height: 56px; }
.bs-bina-bilgi { min-width: 0; }
.bs-bina-ad { font-size: 13.5px; font-weight: 700; color: #eef2ff; overflow-wrap: anywhere; }
.bs-bina-alt { margin-top: 2px; font-size: 12px; line-height: 1.45; color: #a9b5da; }

/* Akreditasyon */
.bs-akr-ust { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.bs-akr-ad { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #fff4dc; }
.bs-akr-tam { font-size: 12px; color: #93a3c8; }
.bs-kosullar {
  list-style: none;
  margin: 8px 0 0;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(6, 10, 26, 0.35);
  border: 1px solid rgba(150, 175, 255, 0.12);
}
.bs-kosullar li { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: 12.5px; border-top: 1px solid rgba(150, 175, 255, 0.06); }
.bs-kosullar li:first-child { border-top: none; }
.bs-kosullar li.tamam span { color: var(--teal); }
.bs-kosullar li.eksik span, .bs-kosullar li.eksik b { color: #ff8a9d; }
.bs-kosullar b { color: #eef2ff; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bs-akr .bs-dugmeler, .bs-kontenjan { margin-top: 10px; }
.bs-yildizlar { display: flex; flex-direction: column; gap: 8px; }

@media (max-width: 1100px) {
  .bs-govde { grid-template-columns: minmax(0, 1fr) 260px; }
}

/* Telefon ve tablet: tek sütun. "Bu bölüm için" iç sekmelerin üstüne, özet kartları en alta iner. */
@media (max-width: 900px) {
  .bs-govde, .bs-yan { display: contents; }
  .bs-sayfa > .bs-geri      { order: 1; }
  .bs-sayfa > .bs-ust       { order: 2; }
  .bs-sayfa > .bs-gosterge  { order: 3; }
  .bs-sayfa > .bs-dikkat    { order: 4; }
  .bs-yan > .bs-eylem       { order: 5; }
  .bs-sayfa > .bs-sekmeler  { order: 6; }
  .bs-govde > .bs-ana       { order: 7; }
  .bs-yan > .bs-kart:not(.bs-eylem) { order: 8; }
  .bs-ust { padding: 14px; gap: 12px; align-items: flex-start; }
  .bs-ikon { width: 52px; height: 52px; border-radius: 14px; }
  .bs-ikon .bikon { width: 40px !important; height: 40px !important; }
  .bs-kimlik { flex-basis: 180px; }
  .bs-baslik { font-size: 19px; }
}

/* ═══════════════════════════════════════════════════════════════════════
   v0.6.1: SEKME İÇERİKLERİ (ortak bileşenlerin üstüne yalnız düzen)
   Bölümler (bolum-kart, mufredat), Fakülteler (fak-), Öğrenciler
   (yildiz-kart, memnuniyet-), Kadro (aday-kart, faculty-dept-group),
   Bütçe (butce-, bank-card), Araştırma (arastirma-, tto-)
═══════════════════════════════════════════════════════════════════════ */

/* Sekme başlığındaki düğmeler; telefonda başlığın altına iner */
#screen-game .panel-header .panel-dugmeler { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 640px) {
  #screen-game .panel-header { flex-wrap: wrap; }
  #screen-game .panel-header .panel-dugmeler { flex: 1 1 100%; }
}

/* Bölümler: bölüm kartı */
.bolum-kart-ust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  padding: 14px 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0));
  border-bottom: 1px solid var(--ob-cizgi-orta);
}
.bolum-kart-ikon {
  width: 50px;
  height: 50px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  font-size: 26px;
  border-radius: 14px;
  background: radial-gradient(circle at 50% 30%, #3a52a0 0%, #1d2a5c 75%);
  border: 1px solid rgba(240, 192, 64, 0.45);
}
.bolum-kart-kimlik { flex: 1 1 240px; min-width: 0; }
.bolum-kart-alt { margin-top: 2px; font-size: 12.5px; color: var(--ob-metin-soluk); }
.bolum-kart-kimlik > .ob-dizi { margin-top: 7px; }
.bolum-kart-kutular { padding: 12px 16px; }
@media (max-width: 640px) {
  .bolum-kart-ust { align-items: flex-start; padding: 12px; }
  .bolum-kart-ikon { width: 42px; height: 42px; border-radius: 12px; }
  .bolum-kart-ikon .bikon { width: 32px !important; height: 32px !important; }
  .bolum-kart-kimlik { flex-basis: 200px; }
  .bolum-kart-kutular { padding: 10px 12px; gap: 8px; }
}

/* Müfredat: Bölümler kartı ve Bölüm Sayfası'nın Dersler sekmesi ortak */
.mufredat-ust { display: flex; flex-direction: column; gap: 10px; padding: 12px 16px; }
.bolum-kart-kutular + .mufredat .mufredat-ust { padding-top: 0; }
.mufredat-tablo td { padding-top: 7px; padding-bottom: 7px; }
.mufredat-ayar { display: flex; align-items: center; gap: 8px; min-width: 124px; }
.mufredat-ayar .ob-kaydirici { width: 88px; margin: 0; }
.mufredat-ayar-sayi { min-width: 10px; font-weight: 800; font-variant-numeric: tabular-nums; }

/* Fakülteler: bölüm kartı */
.fak-bolum-ust { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-bottom: 12px; }
.fak-bolum-kimlik { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; flex: 1 1 260px; min-width: 0; }
.fak-bolum-kimlik > span:first-child { line-height: 0; }
.fak-bolum-sag { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.fak-ort-puan {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 64px;
  padding: 3px 10px 4px;
  border-radius: 10px;
  border: 1px solid var(--ob-cizgi-orta);
  background: var(--ob-cukur);
  line-height: 1.15;
}
.fak-ort-puan b { font-family: var(--font-display); font-size: 20px; font-weight: 800; }
.fak-ort-puan span { font-size: 10.5px; font-weight: 700; color: var(--ob-etiket); }
.fak-hocalar { margin-top: 12px; }
.fak-hocalar > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ob-metin-soluk);
  list-style: none;
  cursor: pointer;
}
.fak-hocalar > summary::-webkit-details-marker { display: none; }
.fak-hocalar > summary::before { content: '▸'; color: var(--gold-soft); transition: transform 0.15s ease; }
.fak-hocalar[open] > summary::before { transform: rotate(90deg); }
.fak-hocalar > summary:hover { color: #fff; }
.fak-ek { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ob-cizgi); }
.fak-ek .ob-kart-baslik { margin-bottom: 6px; }
.fak-akr-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 6px; }
.fak-akr-satir > .ob-aciklama { margin: 0; }
.fak-akr-dugmeler { margin-top: 10px; }
.fak-bas-ata { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ob-cizgi); }
.fak-bas-ata label { font-size: 12.5px; color: var(--ob-metin-soluk); }
.fak-bas-ata .ob-secim { flex: 0 1 340px; min-width: 0; }
.fak-lisansustu { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 4px 24px; }
@media (max-width: 640px) {
  .fak-bolum-sag { margin-left: 0; }
}

/* Öğrenciler */
.memnuniyet-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 10px 18px; }
.memnuniyet-oge { min-width: 0; }
.memnuniyet-oge-ust { display: flex; align-items: baseline; gap: 8px; font-size: 12.5px; }
.memnuniyet-oge-ust > span:first-child { flex: 1; min-width: 0; font-weight: 700; color: var(--ob-metin); }
.memnuniyet-oge-ust small { font-size: 11px; color: var(--ob-etiket); }
.memnuniyet-oge-ust b { font-weight: 800; font-variant-numeric: tabular-nums; }
.memnuniyet-oge .ob-cubuk { margin: 5px 0 0; height: 6px; }

/* Yıldız öğrenci kartı (Öğrenciler sekmesi ve Bölüm Sayfası) */
.yildiz-liste { display: flex; flex-direction: column; gap: 8px; }
.yildiz-kart {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi);
}
.bs-kart .yildiz-kart, .ob-kart .yildiz-kart { background: var(--ob-cukur); box-shadow: none; }
.yildiz-kart--altin { border-color: rgba(240, 192, 64, 0.55); box-shadow: var(--panel-hi), 0 0 0 1px rgba(240, 192, 64, 0.14), 0 6px 18px rgba(240, 192, 64, 0.08); }
.yildiz-kart--gumus { border-color: rgba(78, 204, 163, 0.4); }
.yildiz-harf {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 800;
  color: #0b1226;
  background: linear-gradient(135deg, var(--teal), #4fa3e0);
}
.yildiz-kart--altin .yildiz-harf { color: #3b2305; background: linear-gradient(135deg, #ffe7a6, #e3a93a); }
.yildiz-govde { flex: 1; min-width: 0; }
.yildiz-ust { display: flex; align-items: center; gap: 8px; }
.yildiz-ad { flex: 1; min-width: 0; font-size: 14px; font-weight: 800; color: var(--ob-metin-guclu); overflow-wrap: anywhere; }
.yildiz-alt { margin-top: 1px; font-size: 12px; color: var(--ob-metin-soluk); }
.yildiz-govde > .ob-dizi { margin-top: 6px; }
.yildiz-olaylar { margin: 6px 0 0; padding: 0; list-style: none; font-size: 12px; line-height: 1.45; color: #cdd6f2; }
.yildiz-olaylar li + li { margin-top: 2px; }
.yildiz-kariyer { margin-top: 6px; font-size: 12px; font-style: italic; color: var(--ob-metin-soluk); }

/* Bölüm başlığının hemen altındaki açıklama başlığa yakın durur */
.ob-bolum > .section-title + .ob-aciklama { margin: -6px 0 10px; }

/* Hoca kartı: tıklanınca ayrıntı açılır; ders satırında eşleşme işareti ve tür rozeti */
.faculty-card.fc2 { cursor: pointer; }
.fc2-course-es { width: 12px; flex-shrink: 0; font-weight: 800; text-align: center; cursor: help; }
.fc2-course .ob-rozet { margin-left: auto; }

/* Kadro: başvuru kartları hoca kartının (fc2-) parçalarıyla kurulur */
.aday-kart { display: flex; flex-direction: column; }
.aday-harf {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 16px;
  font-size: 22px;
  font-weight: 800;
  color: #0b1226;
  background: linear-gradient(135deg, var(--teal), #4fa3e0);
}
.aday-kalan { align-self: flex-start; }
.aday-etiketler { padding: 0; border-top: none; }
.aday-kart .fc2-photo .portre { width: 72px; height: 72px; }
.aday-kart .fc2-rating { min-width: 34px; height: 34px; right: -6px; bottom: -6px; border-radius: 10px; }
.aday-kart .fc2-rating b { font-size: 16px; }
.aday-maas { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 8px 14px; border-top: 1px solid var(--ob-cizgi); font-size: 12.5px; color: var(--ob-metin-soluk); }
.aday-maas b { color: var(--gold-soft); font-variant-numeric: tabular-nums; }
.aday-maas .ob-rozet { margin-left: auto; }
.aday-kart > .ob-not { margin: 4px 14px 0; }
.aday-kart > .ob-not ul { margin-top: 2px; padding-left: 0; list-style: none; }
.aday-kart > .ob-not li { margin: 2px 0; font-size: 12px; }
.aday-sec { display: flex; align-items: center; gap: 8px; padding: 10px 14px 0; font-size: 12.5px; color: var(--ob-metin-soluk); }
.aday-sec .ob-secim { flex: 1; min-width: 0; }
.aday-dugmeler { display: flex; gap: 8px; margin-top: auto; padding: 12px 14px 14px; }
.aday-dugmeler .btn { flex: 1; justify-content: center; }

/* Kadro: bölümlere göre gruplu hoca kartları (eskiden şablonun içindeki <style> bloğundaydı) */
.faculty-dept-group { margin-bottom: 12px; }
.faculty-dept-group-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi);
  font-size: 14px;
  font-weight: 700;
  color: var(--ob-metin-guclu);
  list-style: none;
  cursor: pointer;
  user-select: none;
}
.faculty-dept-group-header:hover { border-color: rgba(240, 192, 64, 0.4); }
.faculty-dept-group-header::-webkit-details-marker { display: none; }
.faculty-dept-group-header::before { content: '▸'; flex-shrink: 0; font-size: 13px; color: var(--gold-soft); transition: transform 0.2s ease; }
.faculty-dept-group[open] > .faculty-dept-group-header::before { transform: rotate(90deg); }
.faculty-dept-group-icon { line-height: 0; }
.faculty-dept-group-name { flex: 1; min-width: 0; }
.faculty-dept-group-count { font-size: 12px; font-weight: 700; color: var(--ob-etiket); }
.faculty-dept-grid { padding: 12px 2px 4px; }
.kadro-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.kadro-arac .ob-arama { flex: 1 1 200px; }
.kadro-arac-sayi { font-size: 12.5px; color: var(--ob-metin-soluk); }
.kadro-arac .ob-anahtar { margin-left: auto; }
.kadro-liste-hoca { display: inline-flex; align-items: center; gap: 8px; }

/* Bütçe */
.butce-dagilim .pie-chart-wrapper { margin-bottom: 14px; }
.butce-dagilim .pie-legend-label { color: var(--ob-metin-soluk); }
.butce-dagilim .pie-legend-value { color: var(--ob-metin-guclu); }
.butce-dagilim .btn-success { width: 100%; justify-content: center; margin-top: 12px; }
.butce-toplam { margin-top: 4px; text-align: right; font-size: 12px; font-weight: 700; }
.bank-kartlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 12px; margin: 12px 0 14px; }
.bank-ust { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.bank-ikon { font-size: 24px; line-height: 1; }
.bank-ad { font-size: 14px; font-weight: 800; color: var(--ob-metin-guclu); }
.kredi-ayar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; }
.kredi-ayar label { font-size: 12.5px; color: var(--ob-metin-soluk); }

/* Araştırma */
.arastirma-sonuc { margin: 0 0 10px; }
.arastirma-proje { min-width: 240px; }
.arastirma-ilerleme { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.arastirma-ilerleme .ob-cubuk { flex: 1; margin: 0; }
.arastirma-dugme { margin-top: 10px; }
.arastirma-ozet { margin-top: 8px; padding-top: 6px; border-top: 1px solid var(--ob-cizgi); }
.ob-kart-baslik + .arastirma-ozet { margin-top: 0; padding-top: 0; border-top: none; }
.arastirma-tam { width: 100%; justify-content: center; margin-top: 12px; }
.arastirma-onizleme { margin-top: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ob-cizgi-orta); background: var(--ob-cukur); }
.arastirma-onizleme:empty { display: none; }
.ob-iki > .ob-ayar + .ob-ayar { margin-top: 0; }
.bap-ayarlar { margin-top: 10px; }
.bolum-potansiyel .ob-satir { padding: 2px 0 0; }
.bolum-potansiyel .ob-cubuk { margin: 3px 0 8px; height: 6px; }
.tto-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.tto-ust .ob-dizi { margin-top: 4px; }
.tto-ad { font-family: var(--font-display); font-size: 18px; font-weight: 800; color: #fff4dc; }
.tto-sinir { margin: 0; }
.tto-kutular { margin: 12px 0; }
.tto-kur .ob-aciklama { margin: 0; }
.tto-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0 24px; }

/* ═══════════════════════════════════════════════════════════════════════
   v0.6.1 2. AŞAMA: SEKME VE PENCERE İÇERİKLERİ (ortak bileşenlerin üstüne yalnız düzen)
   Yerleşke (bina-), İdari (birim-, personel-), Dünya Sırası (dunya-),
   Akreditasyon (akr-), Mezunlar (mezun-), Spor (takim-), Topluluklar
   (topluluk-), Kazanımlar (kazanim-), En İyiler (lb-); pencereler:
   transfer (transfer-), kontenjan (kont-), kadro ilanı (ilan-), dönem
   özeti (ozet-), hoca ayrıntısı (hoca-), yeni bölüm (ndp-), olay (olay-),
   ayarlar (ayar-), bölüm atama (atama-)
═══════════════════════════════════════════════════════════════════════ */

/* Yerleşke: bina kartı */
.bina-kart { display: flex; flex-direction: column; gap: 10px; }
.bina-kart .bina-gorsel, .bina-secenek .bina-gorsel { width: 56px; height: 56px; }
.bina-kart-meta { font-size: 12px; color: var(--ob-metin-soluk); font-variant-numeric: tabular-nums; }
.bina-kart-govde { display: flex; flex-direction: column; gap: 12px; padding-top: 10px; border-top: 1px solid var(--ob-cizgi); }
.bina-bolum .ob-kart-baslik { margin-bottom: 2px; font-size: 10.5px; }
.bina-bolum .ob-satir { padding: 2px 0; font-size: 12.5px; }
.bina-bolum .ob-cubuk { height: 6px; margin: 2px 0 4px; }
.bina-bolum .ob-aciklama { margin-top: 2px; font-size: 12px; }
.bina-kart > .ob-dugmeler--alt { margin-top: auto; }
.bina-kart--yapim { border-color: rgba(240, 192, 64, 0.45); }
.btn-rename {
  padding: 0 2px;
  border: none;
  background: none;
  font-size: 12px;
  line-height: 1;
  vertical-align: 1px;
  opacity: 0.55;
  cursor: pointer;
}
.btn-rename:hover, .btn-rename:focus-visible { opacity: 1; }
.bina-ad-girdi { width: min(100%, 220px); min-height: 30px; padding: 3px 8px; font-weight: 700; }

/* Yerleşke: inşaat seçeneği (eski .building-card kurallarını ezer; sınıf dinleyici ve sınamalar için kalır) */
#screen-game .building-card.bina-secenek {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  padding: 12px 14px;
  border-style: solid;
  opacity: 1;
  cursor: pointer;
}
#screen-game .building-card.bina-secenek:hover { transform: translateY(-2px); border-color: rgba(240, 192, 64, 0.5); }
#screen-game .building-card.bina-secenek--pasif { opacity: 0.55; cursor: default; }
#screen-game .building-card.bina-secenek--pasif:hover { transform: none; border-color: var(--panel-line); }
.bina-secenek .ob-kimlik { align-items: flex-start; }
.bina-secenek-alt {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--ob-cizgi);
}
.bina-secenek-meta { font-size: 12px; color: var(--ob-metin-soluk); }

/* Yerleşke: bölüm atama penceresi */
.atama-liste { display: flex; flex-direction: column; gap: 6px; max-height: 420px; overflow-y: auto; padding-right: 4px; }
.atama-satir {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid rgba(150, 175, 255, 0.12);
  background: var(--ob-cukur);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.atama-satir:hover { border-color: rgba(240, 192, 64, 0.45); background: rgba(240, 192, 64, 0.06); }
.atama-satir[data-action="unassign"] { border-color: rgba(78, 204, 163, 0.4); }
.atama-satir[data-action="move"] { border-color: rgba(240, 192, 64, 0.3); }
.atama-ikon { flex-shrink: 0; line-height: 0; }
.atama-bilgi { flex: 1; min-width: 0; }
.atama-ad { font-size: 13.5px; font-weight: 700; color: var(--ob-metin-guclu); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.atama-alt { font-size: 12px; color: var(--ob-metin-soluk); }
.atama-eylem { flex-shrink: 0; min-width: 44px; text-align: right; font-size: 12px; font-weight: 800; }
.move-confirm-panel { margin-bottom: 10px; }
.move-confirm-panel .ob-dugmeler { margin-top: 8px; }

/* İdari: birim kartı */
.birim-kart .ob-kimlik { align-items: flex-start; }
.birim-duzey { font-size: 11.5px; font-weight: 700; color: var(--ob-etiket); white-space: nowrap; }
.birim-yonetici {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 6px 12px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid var(--ob-cizgi-orta);
  background: var(--ob-cukur);
  font-size: 12.5px;
  color: var(--ob-metin-soluk);
}
.birim-yonetici b { color: var(--ob-metin-guclu); }
.birim-yonetici--yok { border-color: rgba(255, 138, 157, 0.4); }
.birim-kutular { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.birim-personel { padding-top: 12px; border-top: 1px solid var(--ob-cizgi); }
.birim-personel-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.birim-personel-ust .ob-kart-baslik { margin: 0; }

/* İdari: personel kartı (hoca kartının parçaları) ve ayrıntı penceresi */
.personel-harf { width: 64px; height: 64px; border-radius: 16px; font-size: 20px; }
.pencere-kimlik .personel-harf { width: 72px; height: 72px; font-size: 22px; }
.personel-kart .fc2-rating, .pencere-kimlik .fc2-rating { min-width: 34px; height: 34px; right: -6px; bottom: -6px; border-radius: 10px; }
.personel-kart .fc2-rating b, .pencere-kimlik .fc2-rating b { font-size: 16px; }
.faculty-card.fc2.terfi-hazir { border-color: rgba(240, 192, 64, 0.6); box-shadow: var(--panel-hi), 0 0 0 1px rgba(240, 192, 64, 0.25), var(--panel-drop); }
.fc2-boxes--uc { grid-template-columns: repeat(3, 1fr); }
.personel-dugmeler { margin-top: auto; padding: 4px 14px 14px; }
.idari-terfi .ob-dugmeler { margin-top: 8px; }

/* İdari: personel alım penceresi */
.alim-not { margin-bottom: 12px; }
.alim-ayar { margin-bottom: 14px; }
.alim-ayar-satir { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.alim-ayar-satir .ob-secim { flex: 1 1 200px; }
.alim-adaylar { display: flex; flex-direction: column; gap: 10px; }
.alim-aday .ob-kimlik { align-items: flex-start; }
.alim-harf { width: 44px; height: 44px; border-radius: 12px; font-size: 15px; flex-shrink: 0; }
.alim-oneri { font-size: 13px; font-weight: 800; color: var(--gold-soft); text-align: right; }
.alim-secim { margin-top: 10px; }
.alim-secim .ob-secim { margin-top: 4px; }
.alim-uyari { min-height: 18px; margin-top: 4px; font-size: 12px; }
.alim-alt { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; padding-top: 10px; border-top: 1px solid var(--ob-cizgi); }
.alim-maas { font-size: 13px; font-weight: 800; color: var(--gold-soft); font-variant-numeric: tabular-nums; }

/* Mezunlar */
.mezun-kart .ob-kimlik { align-items: flex-start; }
.mezun-harf { width: 44px; height: 44px; border-radius: 12px; font-size: 15px; flex-shrink: 0; }
.mezun-un { font-size: 11.5px; font-weight: 700; color: var(--ob-etiket); white-space: nowrap; }
.mezun-basari { font-style: italic; }
.mezun-etkinlikler { display: flex; flex-direction: column; gap: 10px; }
.mezun-etkinlik { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.mezun-etkinlik + .mezun-etkinlik { padding-top: 10px; border-top: 1px solid var(--ob-cizgi); }
.mezun-etkinlik .ob-kimlik-ikon { width: 38px; height: 38px; font-size: 19px; border-radius: 10px; }
.mezun-etkinlik .ob-kimlik-govde { flex-basis: 180px; }
.mezun-etkinlik-ad { font-size: 13.5px; font-weight: 800; color: var(--ob-metin-guclu); }
.mezun-etkinlik .btn { margin-left: auto; }

/* Kazanımlar */
.kazanim-liste { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
.kazanim-kart .ob-kimlik { align-items: flex-start; }
.kazanim-kart--acik {
  border-color: rgba(240, 192, 64, 0.5);
  box-shadow: var(--panel-hi), 0 0 0 1px rgba(240, 192, 64, 0.12), 0 6px 18px rgba(240, 192, 64, 0.07);
}
.kazanim-kart--kilitli { opacity: 0.72; }
.kazanim-kart--kilitli .ob-kimlik-ad { color: var(--ob-metin); }
.kazanim-tarih { margin-top: 4px; font-size: 11.5px; font-weight: 700; color: var(--gold-soft); }

/* Topluluklar */
.topluluk-kart .ob-kimlik, .topluluk-secenek .ob-kimlik { align-items: flex-start; }
.topluluk-kategori-baslik { margin-bottom: 8px; font-size: 12px; }
.topluluk-secenek--kurulu { opacity: 0.7; }

/* Spor */
.takim-kart .ob-kimlik, .takim-secenek .ob-kimlik, .takim-sonuc .ob-kimlik { align-items: flex-start; }
.takim-secenek--pasif { opacity: 0.6; }
.takim-maclar { margin-top: 10px; }

/* Akreditasyon */
.akr-bolum { display: flex; align-items: center; gap: 10px; min-width: 210px; }
.akr-bolum-ikon { flex-shrink: 0; line-height: 0; }
.akr-bolum-alt { margin-top: 2px; font-size: 12px; color: var(--ob-metin-soluk); }
.akr-bolum-alt .ob-rozet { margin-left: 4px; }
.akr-hucre { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 130px; }
.akr-hucre-alt { font-size: 11.5px; color: var(--ob-metin-soluk); white-space: nowrap; }
.ob-not .akr-not-alt { margin-top: 6px; }
.akr-pencere-ust { margin: 0; }

/* En İyiler */
.lb-tablo .lb-sira { width: 48px; font-size: 15px; }
.lb-tablo tr.lb-ilk td { background: rgba(240, 192, 64, 0.05); }
.lb-tablo tr.lb-ilk--1 td { background: rgba(240, 192, 64, 0.1); }
.lb-tablo .lb-skor { color: var(--gold-soft); }
.lb-uyari { margin-bottom: 12px; }

/* Dünya Sırası */
.dunya-olcut + .dunya-olcut { margin-top: 6px; }
.dunya-olcut .ob-cubuk { margin: 3px 0 0; }
.ob-tablo-kap > .dunya-tablo { min-width: 380px; }
.dunya-tablo tr.dunya-sen td { background: rgba(240, 192, 64, 0.1); }
.dunya-tablo tbody tr.dunya-sen:hover td { background: rgba(240, 192, 64, 0.15); }
.dunya-tablo td.dunya-bir { color: var(--gold-soft); }
.dunya-tablo tr.dunya-arada td { padding: 2px 12px; text-align: center; color: var(--ob-etiket); }
.dunya-arac-e { font-size: 12.5px; color: var(--ob-metin-soluk); }
.dunya-tablo-baslik { margin-bottom: 8px; }

/* Transfer pazarı penceresi (eski .transfer-grid / .transfer-offer-form yerine) */
.transfer-izgara { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 18px; align-items: start; }
.transfer-liste { display: flex; flex-direction: column; gap: 8px; max-height: 600px; overflow-y: auto; padding: 2px 4px 2px 2px; }
.transfer-sag { max-height: 600px; overflow-y: auto; padding: 2px 4px 2px 2px; }
.transfer-kart {
  border-radius: 12px;
  border: 1px solid var(--panel-line);
  background: var(--panel);
  box-shadow: var(--panel-hi);
  cursor: pointer;
  transition: border-color 0.15s ease;
}
.transfer-kart:hover { border-color: rgba(240, 192, 64, 0.45); }
.transfer-kart.secili { border-color: var(--gold); box-shadow: var(--panel-hi), 0 0 0 1px rgba(240, 192, 64, 0.5); }
.transfer-kart:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; }
.transfer-kart-ust { display: flex; align-items: center; gap: 10px; padding: 9px 12px; }
.transfer-kart-foto { flex-shrink: 0; line-height: 0; }
.transfer-kart-foto .portre { border-radius: 12px; }
.transfer-harf { width: 46px; height: 46px; border-radius: 12px; font-size: 15px; }
.transfer-kart-kimlik { flex: 1; min-width: 0; }
.transfer-kart-ad { font-size: 14px; font-weight: 800; color: var(--ob-metin-guclu); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.transfer-kart-alt { font-size: 12px; color: var(--ob-metin-soluk); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.transfer-puan {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  min-width: 36px;
  height: 36px;
  padding: 0 4px;
  border-radius: 10px;
  border: 2px solid var(--rc, var(--gold));
  background: linear-gradient(180deg, #1f2c5c 0%, #121a3a 100%);
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 800;
  color: var(--rc, var(--gold));
}
.transfer-kart-dip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
  padding: 7px 12px 9px;
  border-top: 1px solid var(--ob-cizgi);
  font-size: 12px;
  color: var(--ob-metin-soluk);
}
.transfer-kart-dip b { font-weight: 800; font-variant-numeric: tabular-nums; }
.transfer-kart-maas { margin-left: auto; color: var(--gold-soft); }
.transfer-kutular { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.transfer-etiketler { padding: 0; border-top: none; }
.transfer-ders b { display: inline-flex; align-items: center; gap: 6px; }
.transfer-bos { min-height: 200px; justify-content: center; }
.teklif-satir { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, 180px); align-items: center; gap: 8px; margin-bottom: 8px; }
.teklif-satir label { font-size: 12.5px; color: var(--ob-metin-soluk); }
.teklif-satir .ob-arama { width: 100%; font-variant-numeric: tabular-nums; }
.teklif-onay { display: flex; align-items: center; gap: 8px; margin: 4px 0 8px; font-size: 13px; color: var(--ob-metin); cursor: pointer; }
.teklif-gonder { width: 100%; justify-content: center; margin-top: 10px; }
@media (max-width: 900px) {
  .transfer-izgara { grid-template-columns: minmax(0, 1fr); }
  .transfer-liste, .transfer-sag { max-height: none; overflow: visible; }
  .transfer-kutular { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .teklif-satir { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* Kadro ilanı penceresi */
.ilan-secimler { gap: 12px; }
.ilan-secimler .ob-ayar-e { display: block; margin-bottom: 4px; }
.ilan-alanlar { margin-top: 6px; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--ob-cizgi-orta); background: var(--ob-cukur); }
.ilan-hepsi { font-size: 13px; font-weight: 700; color: var(--ob-metin-guclu); }
.ilan-alan-listesi { display: flex; flex-wrap: wrap; gap: 2px 6px; margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--ob-cizgi); }
.ilan-alan-listesi--kapali { opacity: 0.4; pointer-events: none; }
.ilan-alan { font-size: 12.5px; color: var(--ob-metin); }
.ilan-alanlar input[type="checkbox"], .teklif-onay input[type="checkbox"] { width: 15px; height: 15px; accent-color: var(--gold); cursor: pointer; }
.ilan-barem { grid-column: 1 / -1; margin-top: -2px; }
.ilan-lab { margin: 12px 0 0; }

/* Kontenjan penceresi (.card ve data-dept, .quota-summary, .qs-* dinleyiciler ve sınamalar için kalır) */
.kont-giris { margin: 0; }
.kont-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap: 12px; }
.kont-kart { display: flex; flex-direction: column; gap: 8px; }
.kont-ikon { flex-shrink: 0; line-height: 0; }
.kont-ad { font-size: 14px; font-weight: 800; line-height: 1.25; color: var(--ob-metin-guclu); }
.kont-binalar { margin: 0; font-size: 11.5px; }
.kont-uyari { padding: 7px 10px; font-size: 12px; }
.kont-girdiler { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kont-girdiler--tek { grid-template-columns: minmax(0, 240px); }
.kont-girdi { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kont-girdi .ob-ayar-e { letter-spacing: 0.04em; }
.kont-girdi-not { font-size: 11px; line-height: 1.35; color: var(--ob-metin-soluk); }
.kont-girdi .ob-arama { width: 100%; margin-top: 4px; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.kont-ozet {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 14px;
  padding: 7px 10px;
  border-radius: 10px;
  background: var(--ob-cukur);
  font-size: 12.5px;
  color: var(--ob-metin-soluk);
}
.kont-ozet b { font-weight: 800; font-variant-numeric: tabular-nums; }
.kont-ozet .qs-total { color: var(--ob-metin-guclu); }

/* Yeni bölüm / program penceresi */
.ndp-sekmeler { margin-bottom: 12px; }
.ndp-aciklama { margin: 0 0 10px; }
.ndp-liste { display: flex; flex-direction: column; gap: 6px; max-height: 360px; overflow-y: auto; padding-right: 4px; }
.ndp-satir {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  padding: 8px 12px;
  border-radius: 12px;
  border: 1px solid rgba(150, 175, 255, 0.12);
  background: var(--ob-cukur);
}
.ndp-cant-afford { opacity: 0.6; }
.ndp-ikon { flex-shrink: 0; line-height: 0; }
.ndp-bilgi { flex: 1 1 200px; min-width: 0; }
.ndp-ad { font-size: 13.5px; font-weight: 800; color: var(--ob-metin-guclu); }
.ndp-alt, .ndp-kontenjan { font-size: 12px; color: var(--ob-metin-soluk); }
.ndp-kontenjan { display: inline-flex; align-items: center; gap: 6px; margin-top: 2px; }
.ndp-kontenjan .ob-arama { width: 64px; min-height: 28px; padding: 2px 6px; }
.ndp-bekleyen { color: var(--ob-metin-guclu); }

/* Hoca ayrıntısı penceresi (main.js _onFacultyDetail → ui.js hocaAyrintisiHtml) */
.pencere-kimlik .hoca-foto .fc2-rating { min-width: 40px; height: 40px; right: -8px; bottom: -8px; border-radius: 12px; }
.pencere-kimlik .hoca-foto .fc2-rating b { font-size: 19px; }
.hoca-baskan { margin-top: 6px; }
.hoca-etiketler { padding: 6px 0 0; border-top: none; }
.hoca-ders b { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 6px; }
.hoca-maas { grid-template-columns: minmax(0, 1fr) auto; margin-top: 8px; }
.hoca-maas .ob-kaydirici { margin: 0; }
.hoca-tam { width: 100%; justify-content: center; margin-top: 10px; }
.hoca-oduller { display: flex; flex-direction: column; gap: 6px; }
.hoca-odul { justify-content: space-between; gap: 12px; font-size: 12.5px; }
.hoca-odul-etki { font-size: 11.5px; font-weight: 600; opacity: 0.8; }

/* Ayarlar penceresi */
.ayar-ses-durumu { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--ob-cizgi); }
.ayar-ses-durumu .ob-ayar-e { font-size: 12.5px; font-weight: 600; letter-spacing: 0; text-transform: none; color: #cdd6f2; }

/* Dönem özeti penceresi (eski düz mavi .summary-card yerine; .summary-row sınamalar için işaret) */
.ozet-izgara { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.ozet-kart .ob-kart-baslik { margin-bottom: 6px; }
.ozet-baslik { display: inline-flex; align-items: center; gap: 6px; }
.ozet-ikon { font-size: 15px; letter-spacing: 0; }
.ozet-kart .ob-satir { padding: 3px 0; font-size: 13px; }
.ozet-dokum { margin: -2px 0 4px; font-size: 12px; }
.ozet-kart--altin { border-color: rgba(240, 192, 64, 0.5); }
.ozet-kart--altin .ob-kart-baslik { color: var(--gold-soft); }
.ozet-olaylar { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ozet-olay { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; line-height: 1.45; color: var(--ob-metin); }
.ozet-olay + .ozet-olay { padding-top: 6px; border-top: 1px solid var(--ob-cizgi); }
.ozet-olay-ikon { flex-shrink: 0; width: 18px; text-align: center; }
.ozet-olay-metin { flex: 1; min-width: 0; }
.ozet-olay .ob-rozet { flex-shrink: 0; }
.ozet-olay--yildiz .ozet-olay-metin { color: #ffe39a; font-weight: 700; }
.ozet-proje-sayilar { margin-bottom: 10px; }
.ozet-projeler:not(.ozet-projeler--acik) .ozet-fazla { display: none; }
.ozet-tumu { display: inline-block; margin-top: 8px; }
@media (max-width: 600px) {
  .ozet-izgara { grid-template-columns: minmax(0, 1fr); }
}

/* Olay penceresi */
.olay-ozet { padding: 12px 16px 14px; }
.olay-ad { margin: 2px 0 4px; font-family: var(--font-display); font-size: 19px; font-weight: 800; line-height: 1.2; color: #fff4dc; }
.olay-ozet p { font-size: 13.5px; }
.olay .section-title { margin-bottom: 2px; }
.olay-yonerge { margin-top: 0; }
.olay-secenekler { display: flex; flex-direction: column; gap: 8px; }
.olay-secenek {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  width: 100%;
  font: inherit;
  color: inherit;
  text-align: left;
}
.olay-secenek:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; }
.olay-secenek-ad { font-size: 14px; font-weight: 800; color: var(--ob-metin-guclu); }
.olay-secenek-aciklama { font-size: 12.5px; line-height: 1.45; color: var(--ob-metin-soluk); }

/* ═══════════════════════════════════════════════════════════════════════
   v0.7: BÖLÜM BAŞKANINA DEVRETME (devretme)
   Bölüm Sayfası başlığındaki yönetim seçimi (bs-yonetim), başkanın yetki
   kartı ve politika formu (bs-devir), karar listesi (baskan-karar; Bölüm
   Sayfası ve dönem özeti ortak), dönem özetindeki katlanır "Başkanların
   kararları" (ozet-baskan). Ortak bileşenlerin (ob-anahtar, ob-kart,
   ob-kimlik, ob-ayar, ob-kaydirici, ob-not, ob-rozet, ob-dugmeler) üstüne
   yalnız düzen.
═══════════════════════════════════════════════════════════════════════ */

/* Başlıktaki yönetim seçimi: masaüstünde sağda, telefonda başlığın altında tam genişlik */
.bs-yonetim { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; margin-left: auto; }
.bs-yonetim-e { font-size: 10.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ob-etiket); }
.bs-yonetim .ob-anahtar > button { min-height: 36px; white-space: nowrap; }

/* Başkanın yetki kartı */
.bs-devir { display: flex; flex-direction: column; gap: 12px; }
.bs-devir .ob-kart-baslik { margin-bottom: 0; }
.bs-devir--etkin { border-color: rgba(143, 208, 255, 0.45); }
.bs-devir .ob-aciklama { margin-top: 0; }
.bs-devir .ob-dugmeler--alt { margin-top: 0; }
.bs-devir-bas { flex-wrap: wrap; }
.bs-devir-bas-ad { font-size: 14.5px; font-weight: 800; line-height: 1.3; color: var(--ob-metin-guclu); }
.bs-devir-bas > .btn { margin-left: auto; }
.bs-devir-kararlar { display: flex; flex-direction: column; gap: 8px; }
.bs-devir-kararlar .bs-altbaslik { margin-bottom: 0; }
.bs-devir-onceki > summary { cursor: pointer; font-size: 12.5px; font-weight: 700; color: var(--gold-soft); }
.bs-devir-onceki[open] > summary { margin-bottom: 8px; }
.bs-devir-onceki .baskan-kararlar { margin-bottom: 8px; }

/* Politika formu */
.bs-devir-form { display: flex; flex-direction: column; gap: 14px; padding-top: 12px; border-top: 1px solid var(--ob-cizgi); }
.bs-devir-alan { min-width: 0; margin: 0; padding: 0; border: none; }
.bs-devir-alan > legend { padding: 0; margin-bottom: 6px; }
.bs-devir-secenekler { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bs-devir-secenek {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-height: 44px;
  padding: 9px 11px;
  border-radius: 10px;
  border: 1px solid var(--ob-cizgi-orta);
  background: var(--ob-cukur);
  cursor: pointer;
}
.bs-devir-secenek:hover { border-color: rgba(240, 192, 64, 0.4); }
.bs-devir-secenek:has(input:checked) { border-color: var(--gold); background: rgba(240, 192, 64, 0.08); }
.bs-devir-secenek:has(input:focus-visible) { outline: 2px solid var(--gold-soft); outline-offset: 2px; }
.bs-devir-secenek input { flex-shrink: 0; width: 16px; height: 16px; margin: 2px 0 0; accent-color: var(--gold); }
.bs-devir-secenek > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bs-devir-secenek b { font-size: 13.5px; color: var(--ob-metin-guclu); }
.bs-devir-secenek small { font-size: 12px; line-height: 1.4; color: var(--ob-metin-soluk); }
.bs-devir-form .ob-ayar + .ob-ayar { margin-top: 0; }
.bs-devir-form .ob-ayar .ob-aciklama { grid-column: 1 / -1; margin-top: 0; }
.bs-devir-form .ob-kaydirici { margin: 6px 0; }

/* Karar listesi: tür rozeti, ne yapıldı, neden */
.baskan-kararlar { display: flex; flex-direction: column; gap: 7px; margin: 0; padding: 0; list-style: none; }
.baskan-karar { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; line-height: 1.45; color: var(--ob-metin); }
.baskan-karar + .baskan-karar { padding-top: 7px; border-top: 1px solid var(--ob-cizgi); }
.baskan-karar > .ob-rozet { flex-shrink: 0; min-width: 76px; justify-content: center; margin-top: 1px; }
.baskan-karar-govde { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.baskan-karar-govde .ob-aciklama { margin-top: 2px; font-size: 12px; }
.baskan-karar--bilgi .baskan-karar-govde > div:first-child { color: var(--ob-metin-soluk); }

/* Dönem özeti: katlanır "Başkanların kararları" */
.ozet-baskan { padding: 0; }
.ozet-baskan-ozet {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  min-height: 44px;
  padding: 10px 38px 10px 14px;
  list-style: none;
  cursor: pointer;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ob-etiket);
}
.ozet-baskan-ozet::-webkit-details-marker { display: none; }
/* Aç/kapa oku sağ üstte sabit: rozetler alt satıra kaysa da ok başlıkla aynı satırda kalır */
.ozet-baskan-ozet::after { content: '▾'; position: absolute; top: 12px; right: 14px; font-size: 14px; line-height: 1; color: var(--gold-soft); transition: transform 0.15s ease; }
.ozet-baskan[open] > .ozet-baskan-ozet::after { transform: rotate(180deg); }
.ozet-baskan-ozet:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: -2px; border-radius: 14px; }
.ozet-baskan-ozet .ob-dizi { letter-spacing: 0; text-transform: none; }
.ozet-baskan-govde { display: flex; flex-direction: column; gap: 10px; padding: 0 14px 14px; }
.ozet-baskan-bolum { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ob-cizgi-orta); background: var(--ob-cukur); }
.ozet-baskan-ust { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 6px 12px; margin-bottom: 8px; }
.ozet-baskan-kimlik { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.ozet-baskan-kimlik b { font-size: 14px; color: var(--ob-metin-guclu); }
.ozet-baskan-kimlik .ob-aciklama { margin-top: 0; font-size: 12px; }

@media (max-width: 900px) {
  .bs-sayfa > .bs-devir { order: 2; }
  .bs-yonetim { flex: 1 1 100%; align-items: stretch; margin-left: 0; }
  .bs-yonetim .ob-anahtar { display: flex; }
  .bs-yonetim .ob-anahtar > button { flex: 1; min-height: 44px; }
}
@media (max-width: 600px) {
  .bs-devir-secenekler { grid-template-columns: minmax(0, 1fr); }
  .bs-devir-bas > .btn { margin-left: 0; }
  .bs-devir .ob-dugmeler > .btn { flex: 1 1 auto; min-height: 44px; }
  /* Dar ekranda tür rozeti metnin üstünde; metin bütün genişliği kullanır */
  .baskan-karar { flex-direction: column; gap: 4px; }
  .baskan-karar > .ob-rozet { min-width: 0; }
  .ozet-baskan-ust .ob-dugmeler > .btn { min-height: 36px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v0.7 ekonomi: Bütçe sekmesinin harcama kararları ve devlet kısıtları,
   kontenjan penceresinin alım yeri uyarıları, Genel Bakış Hazine satırı
   (ortak ob- bileşenleri üzerine yalnız yerleşim)
   ═══════════════════════════════════════════════════════════════════════════ */
.harcama-kart .ob-ayar .harcama-etki { grid-column: 1 / -1; margin-top: 2px; }
.harcama-kart .harcama-toplam { margin: 12px 0 10px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, 0.09); }
.harcama-kart > .btn { width: 100%; }
.devlet-kisit .ob-kart-baslik:not(:first-child) { margin-top: 16px; }
.devlet-kisit .kadro-talep { grid-template-columns: minmax(90px, 150px) 84px auto; margin-top: 8px; }
.devlet-kisit .kadro-talep-adet { width: 84px; }
.devlet-kisit .kadro-talep .btn { justify-self: start; }
.gb-forecast-hazine span { color: #ffb3bf; }
.kont-kart .dept-hoca-uyari, .kont-kart .dept-talep-uyari { margin-top: 6px; }

/* ═══════════════════════════════════════════════════════════════════════
   v0.7.1 toplu işlemler: Kadro sekmesindeki toplu kabul ve ret (toplu-kart,
   ölçütler, kurallar), unvan yükseltme notu (toplu-terfi), onay ve sonuç
   pencereleri (toplu-pencere, toplu-liste), İdari sekmesinde otomatik
   personel (idari-oto, birim-oto) ve dönem özetindeki "İdari birimler"
   (ozet-idari; ozet-baskan kurallarını paylaşır). Ortak bileşenlerin
   (ob-kart, ob-ayar, ob-kaydirici, ob-secim, ob-anahtar, ob-madde, ob-not,
   ob-rozet, ob-dugmeler) üstüne yalnız yerleşim.
═══════════════════════════════════════════════════════════════════════ */

/* Kadro: toplu kabul kartı */
.toplu-kart { display: flex; flex-direction: column; gap: 12px; }
.toplu-kart .ob-kart-baslik { margin-bottom: 0; }
.toplu-olcutler { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 12px 18px; align-items: start; }
.toplu-olcutler .ob-ayar + .ob-ayar { margin-top: 0; }
.toplu-olcutler .ob-kaydirici { margin: 6px 0; }
.toplu-olcutler .ob-secim { margin-top: 4px; }
.toplu-onay { display: flex; align-items: center; gap: 8px; min-height: 36px; align-self: end; font-size: 13px; color: var(--ob-metin); cursor: pointer; }
.toplu-onay input { flex-shrink: 0; width: 16px; height: 16px; margin: 0; accent-color: var(--gold); cursor: pointer; }
.toplu-kurallar { padding-top: 10px; border-top: 1px solid var(--ob-cizgi); }
.toplu-sayim { font-size: 13px; color: var(--ob-metin); }
.toplu-sayim b { font-variant-numeric: tabular-nums; }
.toplu-terfi .ob-dugmeler { margin-top: 8px; }
.aday-kart .fc2-id > .ob-dizi { gap: 4px 6px; }
.toplu-rozet[title] { cursor: help; }

/* Onay ve sonuç pencereleri: katlanır kişi listesi */
.toplu-pencere .pencere-metin { margin: 0; }
.toplu-liste { border-radius: 12px; border: 1px solid var(--ob-cizgi-orta); background: var(--ob-cukur); }
.toplu-liste > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 12px;
  list-style: none;
  cursor: pointer;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--ob-metin-guclu);
}
.toplu-liste > summary::-webkit-details-marker { display: none; }
.toplu-liste > summary::after { content: '▾'; margin-left: auto; color: var(--gold-soft); transition: transform 0.15s ease; }
.toplu-liste[open] > summary::after { transform: rotate(180deg); }
.toplu-liste > summary:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: -2px; border-radius: 12px; }
.toplu-kisiler { display: flex; flex-direction: column; max-height: 320px; margin: 0; padding: 0 12px 8px; overflow-y: auto; list-style: none; -webkit-overflow-scrolling: touch; }
.toplu-kisi { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding: 7px 0; font-size: 12.5px; line-height: 1.45; }
.toplu-kisi + .toplu-kisi { border-top: 1px solid var(--ob-cizgi); }
.toplu-kisi-govde { display: flex; flex-direction: column; gap: 1px; min-width: 0; overflow-wrap: anywhere; }
.toplu-kisi-govde b { color: var(--ob-metin-guclu); }
.toplu-kisi-govde span { color: var(--ob-metin-soluk); }
.toplu-kisi > .ob-rozet { flex-shrink: 0; margin-top: 1px; }

/* İdari: otomatik personel kartı ve birim kartındaki satır */
.idari-oto { display: flex; flex-direction: column; gap: 8px; }
.idari-oto-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.idari-oto-ust .ob-kart-baslik { justify-content: flex-start; margin: 0; }
.idari-oto .ob-aciklama { margin-top: 0; }
.idari-oto-not { padding: 8px 12px; }
.birim-oto {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 8px 12px;
  border-radius: 10px;
  border: 1px solid var(--ob-cizgi-orta);
  background: var(--ob-cukur);
  font-size: 12.5px;
  color: var(--ob-metin-soluk);
}
.birim-oto--acik { border-color: rgba(78, 204, 163, 0.45); }
.birim-oto-e { font-weight: 700; color: var(--ob-metin); }
.birim-oto-kademe { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
.birim-oto-kademe .ob-secim { min-height: 32px; padding: 4px 10px; }

/* Dönem özeti: "İdari birimler" (katlanır; ozet-baskan kurallarıyla) */
.ozet-idari .ozet-baskan-govde > .ob-dugmeler { justify-content: flex-end; }

@media (max-width: 600px) {
  .toplu-kart .ob-dugmeler > .btn, .toplu-terfi .ob-dugmeler > .btn, .idari-terfi .ob-dugmeler > .btn {
    flex: 1 1 100%;
    min-height: 44px;
    justify-content: center;
  }
  .toplu-onay, .toplu-olcutler .ob-secim { min-height: 44px; }
  .idari-oto-ust .ob-anahtar, .birim-oto .ob-anahtar { display: flex; flex: 1 1 100%; }
  .idari-oto-ust .ob-anahtar > button, .birim-oto .ob-anahtar > button { flex: 1; min-height: 44px; }
  .birim-oto-kademe { flex: 1 1 100%; margin-left: 0; }
  .birim-oto-kademe .ob-secim { flex: 1; min-height: 44px; }
  .toplu-liste > summary { min-height: 44px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   v0.7.1 sezon ve öneri formu: En İyiler sekmesinin sezon seçimi (lb-sezonlar),
   oyuncunun kendi satırı (lb-sen, lb-arada) ve öneri/şikâyet penceresi (geri-).
   Ortak bileşenlerin (ob-sekmeler, ob-tablo, ob-not, ob-anahtar, ob-arama,
   ob-satir, ob-kart) üstüne yalnız yerleşim.
   ═══════════════════════════════════════════════════════════════════════════ */

/* En İyiler: sezon sekmeleri ve görünümün açıklaması */
.lb-sezonlar { margin-bottom: 12px; }
.lb-sezonlar .ob-sekme { display: inline-flex; align-items: baseline; gap: 5px; }
.lb-sezon-alt { font-size: 12px; font-weight: 600; color: var(--ob-metin-soluk); }
.lb-sezonlar .ob-sekme.secili .lb-sezon-alt { color: #ffe39a; }
.lb-sezon-not { margin: 0 0 12px; }

/* Oyuncunun kendi satırı: yeşil zemin ve solda çizgi (ilk üçün altın zeminini ezer) */
.lb-tablo tr.lb-sen td { background: rgba(78, 204, 163, 0.12); }
.lb-tablo tbody tr.lb-sen:hover td { background: rgba(78, 204, 163, 0.18); }
.lb-tablo tr.lb-sen td:first-child { box-shadow: inset 3px 0 0 var(--teal); }
.lb-sen-rozet { margin-left: 6px; }
.lb-tablo tr.lb-arada td { padding: 2px 12px; text-align: center; letter-spacing: 0.2em; color: var(--ob-etiket); }
.lb-tablo tbody tr.lb-arada:hover td { background: none; }

/* Öneri ve şikâyet penceresi */
.geri .ob-ayar-e { display: block; margin-bottom: 6px; }
.geri-giris { margin: 0; }
.geri-turler { display: flex; }
.geri-turler > button { flex: 1 1 0; min-height: 40px; }
.geri .ob-arama { display: block; width: 100%; box-sizing: border-box; }
.geri-ileti { min-height: 120px; resize: vertical; line-height: 1.5; }
.geri .ob-arama[aria-invalid="true"] { border-color: rgba(255, 138, 157, 0.75); box-shadow: 0 0 0 3px rgba(233, 69, 96, 0.18); }
.geri-sayac { margin-top: 4px; text-align: right; font-variant-numeric: tabular-nums; }
.geri-sayac--eksik, .geri-sayac--sinirda { color: var(--ob-uyari); }
.geri-baglam { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.geri-baglam > .ob-kart-baslik { grid-column: 1 / -1; }
.geri-baglam .ob-satir { padding: 3px 0; font-size: 12.5px; }
.geri-baglam .ob-satir b { overflow-wrap: anywhere; }
.geri-durum:empty { display: none; }
.geri-yedek { margin: 0; text-align: right; font-size: 12.5px; }
.geri-github { color: var(--ob-bilgi); text-decoration: underline; text-underline-offset: 2px; }
.geri-github:hover { color: #fff; }
.geri-github:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 2px; border-radius: 3px; }
.geri-github--one { color: var(--gold-soft); font-weight: 800; }

@media (max-width: 600px) {
  /* Sezon sekmeleri yan yana, sürüm satırı adın altında */
  .lb-sezonlar .ob-sekme { flex: 1 1 0; flex-direction: column; align-items: center; justify-content: center; gap: 0; white-space: normal; text-align: center; line-height: 1.25; }
  .geri-baglam { grid-template-columns: minmax(0, 1fr); }
  .geri-dugmeler .btn { flex: 1 1 0; min-width: 0; min-height: 44px; }
  .geri-yedek { text-align: center; }
}

/* v0.7.2 yerleşke düzenleme */
/* Harita alanı: tuval, bilgi kutusu ve harita üstündeki düğmeler bu kutuya göre konumlanır */
.campus-hero .yd-harita,
.campus-map-fullscreen .yd-harita--tam { position: relative; }
.yd-kaydir { position: relative; }
.yd-kaydir > canvas { display: block; }

/* "Yerleşkeyi düzenle": Büyüt düğmesiyle aynı görünüş, haritanın sol üstünde */
.campus-hero .yd-duzenle-ac { left: 10px; right: auto; font-weight: 700; }
.campus-hero.yd-acik .yd-duzenle-ac,
.campus-map-fullscreen.yd-acik .yd-duzenle-ac { display: none; }
.yd-duzenle-ac .yd-kisa { display: none; }

/* Şerit: düzenleme kipinde yönerge ve son işlemin sonucu; kip kapalıyken yeni inşaat önerisi */
.yd-serit { display: none; align-items: center; flex-wrap: wrap; gap: 8px 14px; }
.yd-acik .yd-serit,
.yd-serit.yd-serit--oneri { display: flex; }
.campus-hero > .yd-serit { margin: 0; border-radius: 0; border-width: 0 0 1px; }
.yd-serit-metin { flex: 1 1 200px; min-width: 0; margin: 0; }
.yd-serit-dugmeler { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.yd-serit .yd-bitti,
.yd-serit .yd-yeni-sec,
.yd-serit .yd-yeni-kapat { display: none; justify-content: center; }
.yd-acik .yd-serit .yd-bitti { display: inline-flex; min-width: 84px; }
.yd-serit--oneri .yd-yeni-sec,
.yd-serit--oneri .yd-yeni-kapat { display: inline-flex; }

/* Düzenleme kipinde tuvalin imleci (bina ve hedef üstünde renderer değiştirir) */
#screen-game .campus-hero.yd-acik canvas,
.campus-map-fullscreen.yd-acik canvas { cursor: crosshair; }

/* Büyük harita: başlık, şerit ve harita aynı genişlikte; kısa ekranda yüksekliğe sığar */
.campus-map-fullscreen .campus-map-fullscreen-header,
.campus-map-fullscreen .yd-serit--tam,
.campus-map-fullscreen .yd-harita--tam {
  width: min(90%, 1200px, calc((100vh - 190px) * 1.6));
  width: min(90%, 1200px, calc((100dvh - 190px) * 1.6));
  max-width: 1200px;
}
.campus-map-fullscreen .campus-map-fullscreen-header { gap: 10px; }
.campus-map-fullscreen .yd-harita--tam canvas { width: 100%; max-width: none; }
.campus-map-fullscreen .yd-serit--tam { margin: 0 0 10px; background-color: #121c38; }
.campus-map-fullscreen .yd-serit--tam.ob-not--iyi { background-color: #10282f; }
.campus-map-fullscreen .yd-serit--tam.ob-not--kritik { background-color: #2a1630; }
.yd-baslik-dugmeler { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }

@media (max-width: 640px) {
  /* Telefonda düzenleme haritası iki kat büyük gösterilir ve yana kayar; dokunma hedefleri 44 piksel */
  .yd-acik .yd-kaydir { overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
  .yd-acik .yd-kaydir > canvas,
  .yd-acik .yd-kaydir > #campus-canvas,
  .campus-map-fullscreen.yd-acik .yd-harita--tam canvas { width: 200%; max-width: none; }
  .campus-hero .campus-hero-expand { min-height: 44px; padding: 8px 12px; font-size: 13px; }
  .yd-serit .btn,
  .yd-baslik-dugmeler .btn { min-height: 44px; padding: 8px 14px; font-size: 13px; }
  .campus-map-fullscreen .campus-map-close { width: 44px; height: 44px; }
  .campus-map-fullscreen .campus-map-fullscreen-header > span { font-size: 16px; }
  .yd-duzenle-ac .yd-uzun { display: none; }
  .yd-duzenle-ac .yd-kisa { display: inline; }
}

/* v0.7.2 bina sayfası */
/* Bina Sayfası (js/bina_sayfasi.js): geniş pencerede kimlik, işlemler, gösterge kutuları; altında iki
   sütun (kapasite, bölümler, etki | sonraki düzey, bakım). Telefonda tek sütun. Kart, satır, rozet ve
   çubuk ortak bileşenlerden (ob-). */
#general-modal.modal-wide:has(.bina-sayfa) { max-width: min(1120px, 92vw); width: min(1120px, 92vw); }
.bina-sayfa { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.bina-sayfa-ust { display: flex; align-items: center; gap: 16px; min-width: 0; }
.bina-sayfa-gorsel { flex-shrink: 0; display: grid; place-items: center; }
.bina-sayfa-gorsel .bina-gorsel { width: 96px; height: 96px; }
.bina-sayfa-kimlik { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.bina-sayfa-ad { font-size: 22px; }
.bina-sayfa-kimlik .ob-kimlik-alt { margin-top: 0; }
.bina-sayfa-kimlik .ob-kimlik-alt .ob-puan { margin: 0 4px 0 2px; }
.bina-sayfa-durum { display: flex; flex-wrap: wrap; gap: 6px; }
.bina-sayfa-islev { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: var(--ob-metin); }
.bina-sayfa-ilerleme { margin: -4px 0 0; }
.bina-sayfa-ad-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bina-sayfa-ad-girdi { flex: 1 1 200px; min-width: 0; min-height: 36px; font-size: 15px; font-weight: 700; }
.bina-sayfa-eylemler { gap: 8px; }
.bina-sayfa-govde { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 14px; align-items: start; }
.bina-sayfa-ana, .bina-sayfa-yan { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.bina-sayfa-kart .ob-satir b { overflow-wrap: anywhere; }
.bina-sayfa-kart .ob-kart-baslik .ob-sayi { letter-spacing: 0; }
.bina-bolum-not { margin: 0 0 8px; }
.bina-bolum-liste { display: flex; flex-direction: column; gap: 8px; }
.bina-bolum-satir {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--ob-cukur);
  border: 1px solid rgba(150, 175, 255, 0.12);
}
.bina-bolum-ikon { flex-shrink: 0; display: grid; place-items: center; width: 30px; height: 30px; font-size: 20px; }
.bina-bolum-govde { flex: 1; min-width: 0; }
.bina-bolum-ad { font-size: 13.5px; color: var(--ob-metin-guclu); overflow-wrap: anywhere; }
.bina-bolum-alt { margin-top: 2px; font-size: 12px; line-height: 1.45; color: var(--ob-metin-soluk); overflow-wrap: anywhere; }
.bina-bolum-satir > .ob-rozet { flex-shrink: 0; }
.bina-etki { gap: 6px; }
.bina-etki b { color: var(--ob-iyi); }
.bina-lab-tablo { margin-top: 12px; }
.bina-alt-baslik { margin-bottom: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ob-etiket); }
/* Yerleşke: bina kartına tıklamak Bina Sayfası'nı açar */
.bina-kart[data-building-id] { cursor: pointer; transition: border-color 0.15s ease; }
.bina-kart[data-building-id]:hover { border-color: rgba(240, 192, 64, 0.45); }

@media (max-width: 900px) {
  .bina-sayfa-govde { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .bina-sayfa-ust { align-items: flex-start; gap: 12px; }
  .bina-sayfa-gorsel .bina-gorsel { width: 72px; height: 72px; }
  .bina-sayfa-ad { font-size: 19px; }
  /* Dokunma hedefi en az 44 piksel */
  .bina-sayfa .btn, .bina-kart .ob-dugmeler--alt .btn { min-height: 44px; }
  .bina-sayfa-eylemler .btn, .bina-kart .ob-dugmeler--alt .btn { flex: 1 1 auto; justify-content: center; }
  .bina-sayfa .bs-link { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
  .bina-sayfa-ad-girdi { min-height: 44px; }
  #general-modal:has(.bina-sayfa) #btn-close-modal { min-width: 44px; min-height: 44px; }
  .bina-bolum-satir { flex-wrap: wrap; }
  .bina-sayfa .ob-tablo-kap > .ob-tablo th, .bina-sayfa .ob-tablo-kap > .ob-tablo td { padding: 7px 5px; }
  .bina-sayfa .ob-tablo-kap > .ob-tablo th { font-size: 10px; letter-spacing: 0.02em; white-space: normal; }
}

/* v0.7.2 doğruluk */
/* Bir pencere açıkken (genel pencere, dönem özeti, olay ekranı) Rehber düğmesi gizlenir. Düğme
   pencerenin üstünde duruyor (z-index 9000, pencere 200), telefonda pencerenin düğmelerini örtüyordu. */
body:has(.modal-screen.active:not(.hidden)) .tutorial-replay-btn { display: none; }

/* Bina Sayfası laboratuvar odası payları tablosu beş sütun (ihtiyaç, bu binadan, toplam, karşılama);
   telefonda kutusuna sığsın diye başlıklar hecelerinden bölünür, iç boşluk daralır */
@media (max-width: 600px) {
  .bina-sayfa .bina-lab-tablo .ob-tablo th,
  .bina-sayfa .bina-lab-tablo .ob-tablo td { padding: 6px 3px; }
  .bina-sayfa .bina-lab-tablo .ob-tablo th { letter-spacing: 0; hyphens: manual; }
  .bina-sayfa .bina-lab-tablo .ob-tablo td.ob-ad { overflow-wrap: anywhere; }
}
