﻿/* AÖS - Vanilla CSS Design System & Theme Stylesheet */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/inter-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/libre-baskerville-400.ttf') format('truetype');
}

@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/libre-baskerville-700.ttf') format('truetype');
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* AYBÜ Corporate Color Palette (lacivert / camgöbeği) */
  --primary-color: rgb(0, 45, 114);     /* Kurumsal lacivert - Pantone 288 C */
  --primary-light: rgba(0, 45, 114, 0.82);
  --secondary-color: rgb(0, 115, 150);  /* Pantone 633 C - bilgi ve ikincil vurgu */
  --accent-color: rgb(0, 193, 213);     /* Kurumsal camgöbeği - Pantone 3115 C */
  --accent-hover: rgb(0, 193, 213);
  --accent-surface: #f3f6fa;
  --accent-surface-strong: #e3ecf6;
  --accent-border: #cbd5e1;
  --accent-text: rgb(0, 45, 114);
  --accent-shadow: rgba(0, 45, 114, 0.12);
  --heading-color: var(--primary-color); /* Başlık/vurgu metinleri; karanlık modda okunabilir açık bir tona döner */

  --success-color: #00816d; /* Pantone 569 C */
  --warning-color: #f2a900; /* Pantone 130 C */
  --danger-color: #e4002b;  /* Pantone 185 C */

  --bg-color: #f8fafc;          /* Premium light blue-gray */
  --card-bg: rgba(255, 255, 255, 0.96);
  --surface-color: #ffffff;     /* Düz beyaz yüzeyler: input, modal, dropdown vb. */
  --text-main: #1f2937;
  --text-color: #1f2937;        /* --text-main ile eşanlamlı; kod tabanında ikisi de kullanılıyor */
  --text-muted: #6b7280;
  --border-color: #e5e7eb;

  /* Sizing and borders */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 8px 24px rgba(0, 45, 114, 0.12);
  --shadow-lg: 0 20px 50px rgba(0, 45, 114, 0.15);
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

  /* Kılavuzdaki Helvetica Neue arayüz ailesidir. Font dosyası lisanslı olarak
     sağlanana kadar işletim sistemi fontu, ardından güvenli yerel Inter kullanılır. */
  --corporate-body-font: 'Helvetica Neue', Helvetica, Arial, 'Inter', sans-serif;
  --corporate-signage-font: 'Helvetica Neue', Helvetica, Arial, 'Inter', sans-serif;
  --corporate-display-font: 'Helvetica Neue', Helvetica, Arial, 'Inter', sans-serif;
  /* Utility colors & gradients */
  --white: #ffffff;
  --text-on-accent: #ffffff;
  --corporate-primary: rgb(0, 193, 213); /* Pantone 3115 C */
  --corporate-secondary: rgb(0, 45, 114); /* Pantone 288 C */
  --corporate-secondary-dark: rgb(0, 35, 88);
  --bg-gradient: linear-gradient(135deg, var(--bg-color) 0%, #f3f4f9 50%, #f0f2f7 100%);
}

/* Login/register shell stays centered and scaled to the viewport on all devices (no page scroll) */
@media (max-width: 768px) {
  .login-shell {
    align-items: center !important;
    padding-top: clamp(0.5rem, 2vh, 1.25rem) !important;
    padding-bottom: clamp(0.5rem, 2vh, 1.25rem) !important;
    overflow: hidden !important;
  }
}
/* Additional semantic variables */
:root {
  --deep-navy-1: #002d72;
  --deep-navy-2: #002d72;
  --deep-navy-3: #002d72;
  --surface-light: #f1f5f9;
  --muted-surface: #e2e8f0;
  --danger-text: #c53030;
  --muted-border: #c0c0c0;
  --table-border: rgba(31, 41, 55, 0.10);
  --status-green: #00816d;
  --status-danger-deep: #a6192e;
  --status-warning-deep: #765300;
}
/* Excel / alert semantic colors */
:root {
  --excel-pink: #FFEBEB;
  --excel-pink-border: #FFC9C9;
  --excel-blue: #EAF8FC;
  --excel-blue-border: #83D8E7;
  --success-surface: rgba(16, 185, 129, 0.12);
}

/* Global resets & typography */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--corporate-body-font);
  background: var(--bg-gradient);
  color: var(--text-main);
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

img {
  max-width: 100%;
  height: auto;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--corporate-display-font);
  color: var(--heading-color);
  font-weight: 700;
  margin-bottom: 0.5rem;
}

/* Erişilebilirlik için başlık seviyesi (h2/h3) yükseltilen ama görsel boyutu
   eskisi gibi (tarayıcının varsayılan h3/h4 boyutu) kalması gereken başlıklar */
.heading-sm { font-size: 1.17em; }
.heading-xs { font-size: 1em; }

/* Bir satırdan uzun metinler iki yana yaslı (justify) gösterilir */
.view p,
.view li,
#guide-table-body td,
.alert,
.status-notice-card .snc-body,
.field-help,
.help-text {
  text-align: justify;
  text-justify: inter-word;
}

/* Kimlik doğrulama ekranlarında metinler daha okunaklı ve odaklı kalır */
.login-card a {
  text-decoration: none;
}

.login-card .login-header p,
.login-card .login-register-note,
.login-card .login-card-footer {
  text-align: center;
  text-justify: auto;
}

.login-card .form-group label,
.login-card .login-links {
  text-align: left;
  text-justify: auto;
}

/* Hizalama yardımcı sınıfları justify kuralını ezebilsin */
.view .text-center { text-align: center; }
.view .text-right { text-align: right; }

/* Profil/kişi kartı justify'dan etkilenmesin */
.profile-card,
.profile-card p {
  text-align: center;
}

/* "Henüz kayıt yok" gibi boş durum mesajları da justify'dan etkilenmesin —
   tek satırlık bir metinde text-align:justify görsel olarak sola yaslanmış gibi
   görünür (yalnızca son satırı olmayan çok satırlı metinlerde fark yaratır) */
.empty-state,
.empty-state p {
  text-align: center;
}

/* Odak halkası yalnızca klavye navigasyonunda (Tab) gösterilir, mouse tıklamasında gizlenir */
*:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

body.using-mouse *:focus {
  outline: none !important;
  box-shadow: none !important;
  border-color: rgba(148, 163, 184, 0.7) !important;
}

a {
  color: var(--primary-light);
  text-decoration: none;
  font-weight: 500;
  transition: var(--transition);
}

a:hover {
  color: var(--heading-color);
}

a:focus-visible {
  outline: 3px solid var(--accent-color);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Corporate font utilities */
.corporate-signage,
.sidebar-btn,
.tab-btn,
.form-group label,
.profile-card .faculty-label,
.profile-card .title-dept,
#detail-faculty,
#detail-dept,
#user-profile-faculty {
  font-family: var(--corporate-signage-font);
}

/* Skip link (WCAG 2.4.1) */
.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 2000;
  padding: 0.75rem 1.25rem;
  background: var(--primary-color);
  color: white;
  font-weight: 600;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
}

.skip-link:focus {
  top: 1rem;
}

/* Utilities */
.hidden { display: none !important; }
.sr-only,
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-danger { color: var(--danger-color) !important; }
.text-success { color: var(--success-color) !important; }
.mt-3 { margin-top: 1rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mt-1 { margin-top: 0.25rem; }
.font-italic { font-style: italic; }
.border-danger { border-color: var(--danger-color) !important; }

/* Header & Navigation */
header {
  background: linear-gradient(135deg, var(--corporate-secondary) 0%, rgba(0, 45, 114, 0.88) 100%);
  color: var(--text-on-accent);
  padding: 1rem 2rem;
  box-shadow: 0 4px 12px rgba(0, 45, 114, 0.18);
  position: sticky;
  top: 0;
  z-index: 100;
}

.header-container {
  max-width: 1680px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* Ensure header nav items (user badge and action buttons) are spaced */
header .header-container nav {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1rem;
  font-family: var(--corporate-display-font);
  font-weight: 600;
  letter-spacing: 0.1px;
  line-height: 1.3;
}

.logo .header-brand-title {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  color: var(--text-on-accent);
  font-family: inherit;
  font-size: 1.3rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.1px;
  white-space: nowrap;
}

.logo .header-brand-title > span {
  display: inline;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.header-logo-mark {
  width: auto;
  height: 58px;
  border-radius: 0;
  object-fit: contain;
  background: none;
  padding: 0;
  flex: 0 0 auto;
}

.user-badge {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-on-accent);
  white-space: nowrap;
}

.user-menu-wrapper {
  position: relative;
}

.user-badge-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50px;
  padding: 0.4rem 0.9rem;
  color: var(--text-on-accent);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  transition: background 0.15s;
  white-space: nowrap;
  outline: none;
}

.user-badge-btn:hover {
  background: rgba(255, 255, 255, 0.2);
}

body:not(.using-mouse) .user-badge-btn:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.8);
  outline-offset: 2px;
}

.user-menu-chevron {
  font-size: 0.65rem;
  transition: transform 0.2s;
  opacity: 0.8;
}

.user-menu-wrapper.open .user-menu-chevron {
  transform: rotate(180deg);
}

.user-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 190px;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  z-index: 200;
  overflow: hidden;
  animation: dropdown-in 0.15s ease;
}

@keyframes dropdown-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

.user-menu-wrapper.open .user-dropdown {
  display: block;
}

.user-dropdown-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  padding: 0.7rem 1rem;
  background: none;
  border: none;
  color: var(--text-main);
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  text-align: left;
  transition: background 0.12s;
  outline: none;
}

.user-dropdown-item:hover {
  background: #f3f4f6;
}

body:not(.using-mouse) .user-dropdown-item:focus-visible {
  background: var(--surface-color);
  outline: 2px solid var(--corporate-secondary);
  outline-offset: -2px;
}

.user-dropdown-item-danger {
  color: #dc2626;
}

.user-dropdown-item-danger:hover {
  background: #fef2f2;
}

.user-dropdown-divider {
  height: 1px;
  background: var(--border-color);
  margin: 0;
}

.admin-app-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: nowrap;
}

/* Main Content Area */
.main-content {
  flex: 1;
  max-width: 1720px;
  width: 100%;
  margin: 0 auto;
  padding: 2rem;
}

body.login-screen-active {
  background-color: #051845 !important;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%239fb8e6' stroke-width='1.15' opacity='0.35'%3E%3Cpolygon points='98.00,60.00 82.22,65.95 92.91,79.00 76.26,76.26 79.00,92.91 65.95,82.22 60.00,98.00 54.05,82.22 41.00,92.91 43.74,76.26 27.09,79.00 37.78,65.95 22.00,60.00 37.78,54.05 27.09,41.00 43.74,43.74 41.00,27.09 54.05,37.78 60.00,22.00 65.95,37.78 79.00,27.09 76.26,43.74 92.91,41.00 82.22,54.05'/%3E%3Cpolygon points='80.00,60.00 71.59,63.11 77.32,70.00 68.49,68.49 70.00,77.32 63.11,71.59 60.00,80.00 56.89,71.59 50.00,77.32 51.51,68.49 42.68,70.00 48.41,63.11 40.00,60.00 48.41,56.89 42.68,50.00 51.51,51.51 50.00,42.68 56.89,48.41 60.00,40.00 63.11,48.41 70.00,42.68 68.49,51.51 77.32,50.00 71.59,56.89'/%3E%3Cpolygon points='38.00,0.00 22.22,5.95 32.91,19.00 16.26,16.26 19.00,32.91 5.95,22.22 0.00,38.00 -5.95,22.22 -19.00,32.91 -16.26,16.26 -32.91,19.00 -22.22,5.95 -38.00,0.00 -22.22,-5.95 -32.91,-19.00 -16.26,-16.26 -19.00,-32.91 -5.95,-22.22 -0.00,-38.00 5.95,-22.22 19.00,-32.91 16.26,-16.26 32.91,-19.00 22.22,-5.95'/%3E%3Cpolygon points='20.00,0.00 11.59,3.11 17.32,10.00 8.49,8.49 10.00,17.32 3.11,11.59 0.00,20.00 -3.11,11.59 -10.00,17.32 -8.49,8.49 -17.32,10.00 -11.59,3.11 -20.00,0.00 -11.59,-3.11 -17.32,-10.00 -8.49,-8.49 -10.00,-17.32 -3.11,-11.59 -0.00,-20.00 3.11,-11.59 10.00,-17.32 8.49,-8.49 17.32,-10.00 11.59,-3.11'/%3E%3Cpolygon points='158.00,0.00 142.22,5.95 152.91,19.00 136.26,16.26 139.00,32.91 125.95,22.22 120.00,38.00 114.05,22.22 101.00,32.91 103.74,16.26 87.09,19.00 97.78,5.95 82.00,0.00 97.78,-5.95 87.09,-19.00 103.74,-16.26 101.00,-32.91 114.05,-22.22 120.00,-38.00 125.95,-22.22 139.00,-32.91 136.26,-16.26 152.91,-19.00 142.22,-5.95'/%3E%3Cpolygon points='140.00,0.00 131.59,3.11 137.32,10.00 128.49,8.49 130.00,17.32 123.11,11.59 120.00,20.00 116.89,11.59 110.00,17.32 111.51,8.49 102.68,10.00 108.41,3.11 100.00,0.00 108.41,-3.11 102.68,-10.00 111.51,-8.49 110.00,-17.32 116.89,-11.59 120.00,-20.00 123.11,-11.59 130.00,-17.32 128.49,-8.49 137.32,-10.00 131.59,-3.11'/%3E%3Cpolygon points='38.00,120.00 22.22,125.95 32.91,139.00 16.26,136.26 19.00,152.91 5.95,142.22 0.00,158.00 -5.95,142.22 -19.00,152.91 -16.26,136.26 -32.91,139.00 -22.22,125.95 -38.00,120.00 -22.22,114.05 -32.91,101.00 -16.26,103.74 -19.00,87.09 -5.95,97.78 -0.00,82.00 5.95,97.78 19.00,87.09 16.26,103.74 32.91,101.00 22.22,114.05'/%3E%3Cpolygon points='20.00,120.00 11.59,123.11 17.32,130.00 8.49,128.49 10.00,137.32 3.11,131.59 0.00,140.00 -3.11,131.59 -10.00,137.32 -8.49,128.49 -17.32,130.00 -11.59,123.11 -20.00,120.00 -11.59,116.89 -17.32,110.00 -8.49,111.51 -10.00,102.68 -3.11,108.41 -0.00,100.00 3.11,108.41 10.00,102.68 8.49,111.51 17.32,110.00 11.59,116.89'/%3E%3Cpolygon points='158.00,120.00 142.22,125.95 152.91,139.00 136.26,136.26 139.00,152.91 125.95,142.22 120.00,158.00 114.05,142.22 101.00,152.91 103.74,136.26 87.09,139.00 97.78,125.95 82.00,120.00 97.78,114.05 87.09,101.00 103.74,103.74 101.00,87.09 114.05,97.78 120.00,82.00 125.95,97.78 139.00,87.09 136.26,103.74 152.91,101.00 142.22,114.05'/%3E%3Cpolygon points='140.00,120.00 131.59,123.11 137.32,130.00 128.49,128.49 130.00,137.32 123.11,131.59 120.00,140.00 116.89,131.59 110.00,137.32 111.51,128.49 102.68,130.00 108.41,123.11 100.00,120.00 108.41,116.89 102.68,110.00 111.51,111.51 110.00,102.68 116.89,108.41 120.00,100.00 123.11,108.41 130.00,102.68 128.49,111.51 137.32,110.00 131.59,116.89'/%3E%3Cpolygon points='82.00,0.00 72.56,3.36 79.05,11.00 69.19,9.19 71.00,19.05 63.36,12.56 60.00,22.00 56.64,12.56 49.00,19.05 50.81,9.19 40.95,11.00 47.44,3.36 38.00,0.00 47.44,-3.36 40.95,-11.00 50.81,-9.19 49.00,-19.05 56.64,-12.56 60.00,-22.00 63.36,-12.56 71.00,-19.05 69.19,-9.19 79.05,-11.00 72.56,-3.36'/%3E%3Cpolygon points='22.00,60.00 12.56,63.36 19.05,71.00 9.19,69.19 11.00,79.05 3.36,72.56 0.00,82.00 -3.36,72.56 -11.00,79.05 -9.19,69.19 -19.05,71.00 -12.56,63.36 -22.00,60.00 -12.56,56.64 -19.05,49.00 -9.19,50.81 -11.00,40.95 -3.36,47.44 -0.00,38.00 3.36,47.44 11.00,40.95 9.19,50.81 19.05,49.00 12.56,56.64'/%3E%3Cpolygon points='142.00,60.00 132.56,63.36 139.05,71.00 129.19,69.19 131.00,79.05 123.36,72.56 120.00,82.00 116.64,72.56 109.00,79.05 110.81,69.19 100.95,71.00 107.44,63.36 98.00,60.00 107.44,56.64 100.95,49.00 110.81,50.81 109.00,40.95 116.64,47.44 120.00,38.00 123.36,47.44 131.00,40.95 129.19,50.81 139.05,49.00 132.56,56.64'/%3E%3Cpolygon points='82.00,120.00 72.56,123.36 79.05,131.00 69.19,129.19 71.00,139.05 63.36,132.56 60.00,142.00 56.64,132.56 49.00,139.05 50.81,129.19 40.95,131.00 47.44,123.36 38.00,120.00 47.44,116.64 40.95,109.00 50.81,110.81 49.00,100.95 56.64,107.44 60.00,98.00 63.36,107.44 71.00,100.95 69.19,110.81 79.05,109.00 72.56,116.64'/%3E%3Cpolygon points='89.00,60.00 85.11,74.50 74.50,85.11 60.00,89.00 45.50,85.11 34.89,74.50 31.00,60.00 34.89,45.50 45.50,34.89 60.00,31.00 74.50,34.89 85.11,45.50'/%3E%3C/g%3E%3C/svg%3E") !important;
  background-size: 78px 78px !important;
  background-repeat: repeat !important;
  min-height: 100vh;
  color: var(--text-on-accent);
}

body.login-screen-active .main-content {
  max-width: none;
  padding: 0;
}

body.login-screen-active .footer {
  display: none;
}

/* Card layout */
.card {
  background: var(--card-bg);
  border-radius: var(--radius-md);
  border: 1px solid rgba(0, 45, 114, 0.12);
  box-shadow: 0 8px 24px rgba(0, 45, 114, 0.12);
  padding: 2rem;
  margin-bottom: 2rem;
  transition: var(--transition);
  backdrop-filter: blur(10px);
}

.card:hover {
  box-shadow: 0 12px 32px rgba(0, 45, 114, 0.15);
  border-color: rgba(0, 45, 114, 0.2);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  min-height: 44px;
  min-width: 44px;
  font-size: 0.95rem;
  font-weight: 600;
  border-radius: var(--radius-sm);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-align: center;
  touch-action: manipulation;
  position: relative;
  overflow: hidden;
}

.btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%);
  transition: width 0.6s, height 0.6s;
}

.btn:active::before {
  width: 300px;
  height: 300px;
}

.btn-primary {
  background: rgb(0, 45, 114);
  color: white;
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.25);
  font-weight: 600;
}

.btn-primary:hover {
  background: rgb(0, 35, 88);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 45, 114, 0.35);
}

.btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.25);
}

.btn-secondary {
  background: var(--surface-color);
  border-color: var(--corporate-secondary);
  color: var(--heading-color);
  box-shadow: 0 2px 4px rgba(0, 45, 114, 0.1);
  font-weight: 600;
}

.btn-secondary:hover {
  background: var(--surface-color);
  border-color: var(--corporate-secondary);
  color: var(--heading-color);
  box-shadow: 0 4px 12px rgba(0, 45, 114, 0.2);
  transform: translateY(-2px);
}

.btn-secondary:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 45, 114, 0.1);
}

.btn-refresh-list {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  background: var(--surface-color);
  border: 2px solid var(--primary-color);
  color: var(--heading-color);
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.45rem 1rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, box-shadow 0.18s, transform 0.15s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}
.btn-refresh-list:hover {
  background: var(--primary-color);
  color: white;
  box-shadow: 0 4px 12px rgba(0,0,0,0.14);
  transform: translateY(-1px);
}
.btn-refresh-list:active { transform: translateY(0); }
.btn-refresh-list:disabled { opacity: 0.65; pointer-events: none; }

.table-filters .filter-group.filter-group-btn {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  padding-top: 0;
}

.section-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.btn-back-home {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--surface-color);
  border: 2px solid var(--corporate-secondary);
  color: var(--heading-color);
  font-weight: 700;
  font-size: 0.95rem;
  padding: 0.5rem 1.1rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.18s, color 0.18s, box-shadow 0.18s, transform 0.15s;
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.13);
  text-decoration: none;
}
.btn-back-home:hover {
  background: var(--corporate-secondary);
  color: white;
  box-shadow: 0 4px 14px rgba(0, 45, 114, 0.25);
  transform: translateY(-1px);
}
.btn-back-home:active {
  transform: translateY(0);
}

.btn-success {
  background: var(--success-color);
  color: white;
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.25);
  font-weight: 600;
}

.btn-success:hover {
  background: var(--status-green);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(34, 197, 94, 0.35);
}

.btn-success:active {
  transform: translateY(0);
}

/* Solid ".btn-danger"e göre daha az baskın ikincil bir yıkıcı-aksiyon stili —
   birincil bir eylemin (örn. "Devam Et") yanında aynı ağırlıkta durup dikkat
   dağıtmasın diye (bkz. yarım kalmış taslak bildirim çubuğundaki "Sil"). */
.btn-outline-danger {
  background: var(--surface-color);
  border: 2px solid var(--danger-color);
  color: var(--danger-color);
  font-weight: 600;
}

.btn-outline-danger:hover {
  background: var(--danger-color);
  color: white;
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.25);
  transform: translateY(-2px);
}

.btn-outline-danger:active {
  transform: translateY(0);
}

.btn-danger {
  background: var(--danger-color);
  color: white;
  box-shadow: 0 2px 8px rgba(239, 68, 68, 0.25);
  font-weight: 600;
}

.btn-danger:hover {
  background: var(--status-danger-deep);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(239, 68, 68, 0.35);
}

.btn-danger:active {
  transform: translateY(0);
}

.btn-warning {
  background: var(--warning-color);
  color: white;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.25);
  font-weight: 600;
}

.btn-warning:hover {
  background: var(--status-warning-deep);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(245, 158, 11, 0.35);
}

.btn-warning:active {
  transform: translateY(0);
}

.btn-outline-primary {
  background: transparent;
  border: 2px solid var(--corporate-secondary);
  color: var(--heading-color);
  font-weight: 600;
  position: relative;
  z-index: 1;
}

.btn-outline-primary::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--corporate-secondary);
  z-index: -1;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  transform: scaleX(0);
  transform-origin: left;
}

.btn-outline-primary:hover {
  color: white;
}

.btn-outline-primary:hover::after {
  transform: scaleX(1);
}

.btn-block {
  display: flex;
  width: 100%;
}

.btn-sm {
  padding: 0.4rem 0.8rem;
  font-size: 0.85rem;
}

.btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

/* Forms & inputs */
.form-group {
  margin-bottom: 1.25rem;
}

.form-group label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: 0.4rem;
}

.form-label-static {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: 0.4rem;
}

.field-help {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.45;
}

.field-error-msg {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.82rem;
  color: var(--danger-color, #dc2626);
  font-weight: 600;
  line-height: 1.45;
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"] {
  border-color: var(--danger-color, #dc2626) !important;
}

.form-group label i {
  margin-right: 0.25rem;
  color: var(--heading-color);
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
select,
textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  background-color: var(--surface-color);
  color: var(--text-main);
  transition: var(--transition);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none;
  border-color: var(--accent-color);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible,
button:focus-visible,
a:focus-visible,
.btn-close:focus-visible {
  outline: 3px solid var(--accent-color);
  outline-offset: 2px;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(24, 183, 216, 0.24);
}

select:disabled {
  background-color: var(--surface-light);
  cursor: not-allowed;
  color: var(--text-muted);
}

.form-row {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 0.5rem;
}

.form-row .form-group {
  flex: 1;
}

@media (max-width: 768px) {
  .form-row {
    flex-direction: column;
    gap: 0;
  }
}

@media (max-width: 768px) {
  .login-shell {
    align-items: center;
    overflow: hidden;
  }
}

/* Login experience */
#login-view,
#register-view,
#verify-view,
#forgot-password-view,
#reset-password-view {
  min-height: 100vh;
  display: flex;
  align-items: stretch;
}

.login-shell {
  width: 100%;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background-color: #020c29;
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%239fb8e6' stroke-width='1.15' opacity='0.35'%3E%3Cpolygon points='98.00,60.00 82.22,65.95 92.91,79.00 76.26,76.26 79.00,92.91 65.95,82.22 60.00,98.00 54.05,82.22 41.00,92.91 43.74,76.26 27.09,79.00 37.78,65.95 22.00,60.00 37.78,54.05 27.09,41.00 43.74,43.74 41.00,27.09 54.05,37.78 60.00,22.00 65.95,37.78 79.00,27.09 76.26,43.74 92.91,41.00 82.22,54.05'/%3E%3Cpolygon points='80.00,60.00 71.59,63.11 77.32,70.00 68.49,68.49 70.00,77.32 63.11,71.59 60.00,80.00 56.89,71.59 50.00,77.32 51.51,68.49 42.68,70.00 48.41,63.11 40.00,60.00 48.41,56.89 42.68,50.00 51.51,51.51 50.00,42.68 56.89,48.41 60.00,40.00 63.11,48.41 70.00,42.68 68.49,51.51 77.32,50.00 71.59,56.89'/%3E%3Cpolygon points='38.00,0.00 22.22,5.95 32.91,19.00 16.26,16.26 19.00,32.91 5.95,22.22 0.00,38.00 -5.95,22.22 -19.00,32.91 -16.26,16.26 -32.91,19.00 -22.22,5.95 -38.00,0.00 -22.22,-5.95 -32.91,-19.00 -16.26,-16.26 -19.00,-32.91 -5.95,-22.22 -0.00,-38.00 5.95,-22.22 19.00,-32.91 16.26,-16.26 32.91,-19.00 22.22,-5.95'/%3E%3Cpolygon points='20.00,0.00 11.59,3.11 17.32,10.00 8.49,8.49 10.00,17.32 3.11,11.59 0.00,20.00 -3.11,11.59 -10.00,17.32 -8.49,8.49 -17.32,10.00 -11.59,3.11 -20.00,0.00 -11.59,-3.11 -17.32,-10.00 -8.49,-8.49 -10.00,-17.32 -3.11,-11.59 -0.00,-20.00 3.11,-11.59 10.00,-17.32 8.49,-8.49 17.32,-10.00 11.59,-3.11'/%3E%3Cpolygon points='158.00,0.00 142.22,5.95 152.91,19.00 136.26,16.26 139.00,32.91 125.95,22.22 120.00,38.00 114.05,22.22 101.00,32.91 103.74,16.26 87.09,19.00 97.78,5.95 82.00,0.00 97.78,-5.95 87.09,-19.00 103.74,-16.26 101.00,-32.91 114.05,-22.22 120.00,-38.00 125.95,-22.22 139.00,-32.91 136.26,-16.26 152.91,-19.00 142.22,-5.95'/%3E%3Cpolygon points='140.00,0.00 131.59,3.11 137.32,10.00 128.49,8.49 130.00,17.32 123.11,11.59 120.00,20.00 116.89,11.59 110.00,17.32 111.51,8.49 102.68,10.00 108.41,3.11 100.00,0.00 108.41,-3.11 102.68,-10.00 111.51,-8.49 110.00,-17.32 116.89,-11.59 120.00,-20.00 123.11,-11.59 130.00,-17.32 128.49,-8.49 137.32,-10.00 131.59,-3.11'/%3E%3Cpolygon points='38.00,120.00 22.22,125.95 32.91,139.00 16.26,136.26 19.00,152.91 5.95,142.22 0.00,158.00 -5.95,142.22 -19.00,152.91 -16.26,136.26 -32.91,139.00 -22.22,125.95 -38.00,120.00 -22.22,114.05 -32.91,101.00 -16.26,103.74 -19.00,87.09 -5.95,97.78 -0.00,82.00 5.95,97.78 19.00,87.09 16.26,103.74 32.91,101.00 22.22,114.05'/%3E%3Cpolygon points='20.00,120.00 11.59,123.11 17.32,130.00 8.49,128.49 10.00,137.32 3.11,131.59 0.00,140.00 -3.11,131.59 -10.00,137.32 -8.49,128.49 -17.32,130.00 -11.59,123.11 -20.00,120.00 -11.59,116.89 -17.32,110.00 -8.49,111.51 -10.00,102.68 -3.11,108.41 -0.00,100.00 3.11,108.41 10.00,102.68 8.49,111.51 17.32,110.00 11.59,116.89'/%3E%3Cpolygon points='158.00,120.00 142.22,125.95 152.91,139.00 136.26,136.26 139.00,152.91 125.95,142.22 120.00,158.00 114.05,142.22 101.00,152.91 103.74,136.26 87.09,139.00 97.78,125.95 82.00,120.00 97.78,114.05 87.09,101.00 103.74,103.74 101.00,87.09 114.05,97.78 120.00,82.00 125.95,97.78 139.00,87.09 136.26,103.74 152.91,101.00 142.22,114.05'/%3E%3Cpolygon points='140.00,120.00 131.59,123.11 137.32,130.00 128.49,128.49 130.00,137.32 123.11,131.59 120.00,140.00 116.89,131.59 110.00,137.32 111.51,128.49 102.68,130.00 108.41,123.11 100.00,120.00 108.41,116.89 102.68,110.00 111.51,111.51 110.00,102.68 116.89,108.41 120.00,100.00 123.11,108.41 130.00,102.68 128.49,111.51 137.32,110.00 131.59,116.89'/%3E%3Cpolygon points='82.00,0.00 72.56,3.36 79.05,11.00 69.19,9.19 71.00,19.05 63.36,12.56 60.00,22.00 56.64,12.56 49.00,19.05 50.81,9.19 40.95,11.00 47.44,3.36 38.00,0.00 47.44,-3.36 40.95,-11.00 50.81,-9.19 49.00,-19.05 56.64,-12.56 60.00,-22.00 63.36,-12.56 71.00,-19.05 69.19,-9.19 79.05,-11.00 72.56,-3.36'/%3E%3Cpolygon points='22.00,60.00 12.56,63.36 19.05,71.00 9.19,69.19 11.00,79.05 3.36,72.56 0.00,82.00 -3.36,72.56 -11.00,79.05 -9.19,69.19 -19.05,71.00 -12.56,63.36 -22.00,60.00 -12.56,56.64 -19.05,49.00 -9.19,50.81 -11.00,40.95 -3.36,47.44 -0.00,38.00 3.36,47.44 11.00,40.95 9.19,50.81 19.05,49.00 12.56,56.64'/%3E%3Cpolygon points='142.00,60.00 132.56,63.36 139.05,71.00 129.19,69.19 131.00,79.05 123.36,72.56 120.00,82.00 116.64,72.56 109.00,79.05 110.81,69.19 100.95,71.00 107.44,63.36 98.00,60.00 107.44,56.64 100.95,49.00 110.81,50.81 109.00,40.95 116.64,47.44 120.00,38.00 123.36,47.44 131.00,40.95 129.19,50.81 139.05,49.00 132.56,56.64'/%3E%3Cpolygon points='82.00,120.00 72.56,123.36 79.05,131.00 69.19,129.19 71.00,139.05 63.36,132.56 60.00,142.00 56.64,132.56 49.00,139.05 50.81,129.19 40.95,131.00 47.44,123.36 38.00,120.00 47.44,116.64 40.95,109.00 50.81,110.81 49.00,100.95 56.64,107.44 60.00,98.00 63.36,107.44 71.00,100.95 69.19,110.81 79.05,109.00 72.56,116.64'/%3E%3Cpolygon points='89.00,60.00 85.11,74.50 74.50,85.11 60.00,89.00 45.50,85.11 34.89,74.50 31.00,60.00 34.89,45.50 45.50,34.89 60.00,31.00 74.50,34.89 85.11,45.50'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 78px 78px;
  background-repeat: repeat;
  position: relative;
  overflow: hidden;
}

.login-shell::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(2, 12, 41, 0.42);
  pointer-events: none;
}

.login-panel {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: min(100%, 560px);
  max-height: 96vh;
  overflow-y: auto;
  padding: clamp(1.1rem, 4vh, 2.5rem) clamp(1.2rem, 3vw, 2.2rem);
  border-radius: var(--radius-lg);
  background: var(--surface-color);
  border: 1.5px solid var(--border-color);
  box-shadow:
    0 40px 100px rgba(0, 0, 0, 0.15),
    0 0 2px rgba(255, 255, 255, 0.8) inset;
  backdrop-filter: blur(30px) saturate(200%);
  overflow: hidden;
  opacity: 1;
  transform: none;
}


.login-panel::before {
  display: none;
}

.login-panel::after {
  content: '';
  position: absolute;
  top: 0;
  left: -60%;
  width: 35%;
  height: 100%;
  background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.65) 50%, transparent 100%);
  transform: skewX(-18deg);
  pointer-events: none;
  z-index: 5;
  opacity: 0;
}

.login-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.login-identity-mark,
.login-header-centered,
.login-form-panel .form-group,
.login-submit,
.login-register-link-large,
.login-register-note,
.login-links,
.login-card-footer {
  opacity: 0;
  transform: translateY(14px);
}

.login-header-centered h1 {
  outline: none;
}

.login-header-centered h1:focus,
.login-header-centered h1:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

.login-header {
  margin-bottom: clamp(0.8rem, 3vh, 2rem);
}

.login-header-centered {
  text-align: center;
  margin-bottom: clamp(0.9rem, 3vh, 2.2rem);
}

.login-header h1 {
  font-size: 1.16rem;
  line-height: 1.35;
  margin-bottom: 0.5rem;
  color: var(--text-main);
  font-family: var(--corporate-display-font);
  font-weight: 800;
}

.login-header p {
  color: var(--text-color);
  font-size: 0.95rem;
  text-align: center;
}

.login-identity-mark {
  position: relative;
  width: auto;
  height: clamp(70px, 16vh, 150px);
  margin: 0 auto clamp(0.8rem, 2.5vh, 1.6rem);
  opacity: 1 !important;
  transform: none !important;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  box-shadow: none;
  padding: 0;
  border: none;
}

.login-identity-mark::after {
  display: none;
}

.login-identity-mark img {
  width: auto;
  height: 100%;
  object-fit: contain;
  display: block;
}

.logo-spin-img {
  opacity: 0;
}

.login-form-panel {
  gap: 0;
}

.login-form-panel .form-group {
  margin-bottom: clamp(0.9rem, 3vh, 1.8rem);
}

.login-form-panel .form-group label {
  color: var(--heading-color);
  margin-bottom: 0.7rem;
  font-size: 0.95rem;
}

.login-form-panel .form-group label i {
  color: var(--heading-color);
  margin-right: 0.45rem;
}

.login-input {
  position: relative;
}

.login-input-plain input,
.login-input-plain select,
.login-input-password input {
  min-height: 54px;
  padding: 0.95rem 1rem;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(148, 163, 184, 0.32);
  background: var(--white);
  color: var(--text-main);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

.login-input-plain input::placeholder,
.login-input-password input::placeholder {
  color: var(--text-muted);
}

.login-input-plain input:focus,
.login-input-plain select:focus,
.login-input-password input:focus {
  border-color: rgba(96, 125, 181, 0.72);
  background: var(--white);
}

.login-input-plain input:focus-visible,
.login-input-plain select:focus-visible,
.login-input-password input:focus-visible {
  outline: 2px solid var(--secondary-color);
  outline-offset: 2px;
  border-color: var(--secondary-color);
  box-shadow: 0 0 0 3px rgba(96, 125, 181, 0.12), inset 0 1px 2px rgba(15, 23, 42, 0.02);
}

.login-input-password input {
  padding-right: 3rem;
}

.login-password-toggle {
  position: absolute;
  top: 50%;
  right: 0.8rem;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border: none;
  background: transparent;
  color: var(--text-muted);
  border-radius: 50%;
  cursor: pointer;
}

.login-password-toggle:hover {
  color: var(--text-main);
  background: rgba(148, 163, 184, 0.12);
}

.login-submit {
  position: relative;
  overflow: hidden;
  margin-top: 0.3rem;
  min-height: 52px;
  border: 2px solid rgb(0, 45, 114);
  border-radius: var(--radius-sm);
  background: rgb(0, 45, 114);
  color: white;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.25);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.login-submit:hover {
  background: rgb(0, 35, 88);
  border-color: rgb(0, 35, 88);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 45, 114, 0.35);
}

.login-submit:focus-visible {
  outline: 2px solid var(--text-on-accent);
  outline-offset: 2px;
  box-shadow: 
    0 14px 32px rgba(0, 45, 114, 0.22),
    inset 0 1px 2px rgba(255, 255, 255, 0.15);
}

.login-register-link-large {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100%;
  margin-top: 1rem;
  min-height: 52px;
  border-radius: var(--radius-sm);
  background: rgb(0, 45, 114);
  color: white;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  border: 2px solid rgb(0, 45, 114);
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.25);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.login-register-link-large:hover {
  background: rgb(0, 35, 88);
  color: white;
  border-color: rgb(0, 35, 88);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 45, 114, 0.35);
}

.login-register-link-large:focus-visible {
  outline: 2px solid rgb(0, 45, 114);
  outline-offset: 2px;
  border-color: var(--secondary-color);
}

.login-register-note {
  display: block;
  width: 100%;
  margin-top: 0.65rem;
  text-align: center !important;
  font-size: 0.92rem;
  color: var(--text-color);
}

.login-links {
  margin-top: 1.2rem;
  font-size: 0.92rem;
}

.login-links-stacked {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.login-inline-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-muted);
  font-weight: 500;
}

.login-inline-link-accent {
  color: var(--heading-color);
}

.login-inline-link:hover,
.login-inline-link:focus-visible,
.login-inline-link-accent:hover,
.login-inline-link-accent:focus-visible {
  color: var(--heading-color);
}

#link-go-forgot-password,
#link-go-login,
#link-back-to-login-from-forgot,
#link-back-to-login-from-reset {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), text-shadow 0.3s ease;
}

#link-go-forgot-password:hover,
#link-go-forgot-password:focus-visible,
#link-go-login:hover,
#link-go-login:focus-visible,
#link-back-to-login-from-forgot:hover,
#link-back-to-login-from-forgot:focus-visible,
#link-back-to-login-from-reset:hover,
#link-back-to-login-from-reset:focus-visible {
  transform: translateY(-1px);
  text-shadow: 0 5px 12px rgba(0, 45, 114, 0.22);
}

.login-card-footer {
  display: block;
  width: 100%;
  margin-top: 1rem;
  text-align: center !important;
  color: var(--text-color);
  font-size: 0.76rem;
}

body.login-screen-active #login-view.active .login-panel {
  animation: loginPanelIntro 1.15s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}
body.login-screen-active #login-view.active .login-panel::after,
body.login-screen-active #register-view.active .login-panel::after,
body.login-screen-active #verify-view.active .login-panel::after {
  animation: loginShimmer 1.3s cubic-bezier(0.4, 0, 0.2, 1) 0.9s forwards;
}

body.login-screen-active #login-view.active .logo-spin-img { animation: logoSpinIn 0.9s ease-out 0.25s forwards; }

body.login-screen-active #login-view.active .login-header-centered {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.47s forwards;
}

/* Form bileşenleri birlikte görünür; kademeli giriş gereksiz bekleme hissi verir. */
body.login-screen-active .login-form-panel .form-group,
body.login-screen-active .login-submit,
body.login-screen-active .login-register-link-large,
body.login-screen-active .login-register-note,
body.login-screen-active .login-links,
body.login-screen-active .login-card-footer {
  animation: none !important;
  opacity: 1;
  transform: none;
}

body.login-screen-active #login-view.active .login-form-panel .form-group:nth-of-type(1) {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.6s forwards;
}

body.login-screen-active #login-view.active .login-form-panel .form-group:nth-of-type(2) {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.69s forwards;
}

body.login-screen-active #login-view.active .login-submit {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.82s forwards;
}

body.login-screen-active #login-view.active .login-register-link-large {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.92s forwards;
}

body.login-screen-active #login-view.active .login-register-note {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 1.01s forwards;
}

body.login-screen-active #login-view.active .login-links {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 1.11s forwards;
}

body.login-screen-active #login-view.active .login-card-footer {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 1.21s forwards;
}

body.login-screen-active #login-view.active .login-feature-list li:nth-child(1) {
  animation: loginContentFade 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.76s forwards;
}

body.login-screen-active #login-view.active .login-feature-list li:nth-child(2) {
  animation: loginContentFade 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.87s forwards;
}

body.login-screen-active #login-view.active .login-feature-list li:nth-child(3) {
  animation: loginContentFade 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0.98s forwards;
}

body.login-screen-active #login-view.active .login-feature-list li:nth-child(4) {
  animation: loginContentFade 0.5s cubic-bezier(0.19, 1, 0.22, 1) 1.09s forwards;
}

body.login-screen-active #login-view.active .login-stats .login-stat:nth-child(1) {
  animation: loginContentFade 0.52s cubic-bezier(0.19, 1, 0.22, 1) 0.95s forwards;
}

body.login-screen-active #login-view.active .login-stats .login-stat:nth-child(2) {
  animation: loginContentFade 0.52s cubic-bezier(0.19, 1, 0.22, 1) 1.05s forwards;
}

body.login-screen-active #login-view.active .login-stats .login-stat:nth-child(3) {
  animation: loginContentFade 0.52s cubic-bezier(0.19, 1, 0.22, 1) 1.14s forwards;
}

.register-panel {
  width: min(96%, 880px);
  padding: 1.8rem 2.2rem;
}

.register-panel .login-identity-mark {
  height: 92px;
  margin-bottom: 0.8rem;
}

.register-panel .login-header-centered {
  margin-bottom: 1rem;
}

.register-login-card {
  max-width: 800px;
}

.register-form-panel .form-row {
  gap: 1rem;
  margin-bottom: 0;
}

.register-form-panel .form-row-3 {
  display: flex;
  gap: 1rem;
}

.register-form-panel .form-row-3 .form-group {
  flex: 1;
  min-width: 0;
}

.register-form-panel .form-group {
  margin-bottom: 1rem;
}

@media (max-width: 768px) {
  .register-form-panel .form-row-3 {
    flex-direction: column;
    gap: 0;
  }
}

.register-login-links {
  margin-top: 1rem;
}

body.login-screen-active #register-view.active .login-panel {
  animation: loginPanelIntro 1.15s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

body.login-screen-active #register-view.active .logo-spin-img { animation: logoSpinIn 0.9s ease-out 0.25s forwards; }

body.login-screen-active #register-view.active .login-header-centered {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.47s forwards;
}

body.login-screen-active #register-view.active .login-form-panel .form-row:nth-of-type(1) .form-group {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.6s forwards;
}

body.login-screen-active #register-view.active .login-form-panel .form-row:nth-of-type(2) .form-group {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.71s forwards;
}

body.login-screen-active #register-view.active .login-form-panel .form-row:nth-of-type(3) .form-group {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.82s forwards;
}

body.login-screen-active #register-view.active .login-form-panel .form-row:nth-of-type(4) .form-group {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.93s forwards;
}

body.login-screen-active #register-view.active .login-submit {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.95s forwards;
}

body.login-screen-active #register-view.active .login-links {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 1.06s forwards;
}

body.login-screen-active #register-view.active .login-card-footer {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 1.17s forwards;
}

body.login-screen-active #verify-view.active .login-panel {
  animation: loginPanelIntro 1.15s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

body.login-screen-active #verify-view.active .logo-spin-img { animation: logoSpinIn 0.9s ease-out 0.25s forwards; }

body.login-screen-active #verify-view.active .login-header-centered {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.47s forwards;
}

body.login-screen-active #verify-view.active .login-form-panel .form-group {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.6s forwards;
}

body.login-screen-active #verify-view.active .login-submit {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.73s forwards;
}

body.login-screen-active #verify-view.active .login-links {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.85s forwards;
}

body.login-screen-active #verify-view.active .login-card-footer {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.98s forwards;
}

body.login-screen-active #forgot-password-view.active .login-panel,
body.login-screen-active #reset-password-view.active .login-panel {
  animation: loginPanelIntro 1.15s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

body.login-screen-active #forgot-password-view.active .logo-spin-img,
body.login-screen-active #reset-password-view.active .logo-spin-img { animation: logoSpinIn 0.9s ease-out 0.25s forwards; }

body.login-screen-active #forgot-password-view.active .login-header-centered,
body.login-screen-active #reset-password-view.active .login-header-centered {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.47s forwards;
}

body.login-screen-active #forgot-password-view.active .login-form-panel .form-group,
body.login-screen-active #reset-password-view.active .login-form-panel .form-group {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.6s forwards;
}

body.login-screen-active #forgot-password-view.active .login-submit,
body.login-screen-active #reset-password-view.active .login-submit {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.73s forwards;
}

body.login-screen-active #forgot-password-view.active .login-links,
body.login-screen-active #reset-password-view.active .login-links {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.85s forwards;
}

body.login-screen-active #forgot-password-view.active .login-card-footer,
body.login-screen-active #reset-password-view.active .login-card-footer {
  animation: loginContentFade 0.48s cubic-bezier(0.19, 1, 0.22, 1) 0.98s forwards;
}

/* Dashboard layouts */
.dashboard-container {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 2rem;
  margin-top: 1rem;
}

@media (max-width: 992px) {
  .dashboard-container {
    grid-template-columns: 1fr;
  }
  .dashboard-sidebar {
    display: none;
  }
  .mobile-dashboard-nav {
    display: flex !important;
  }
  .dashboard-main {
    padding-bottom: 5rem;
  }
}

/* Mobile bottom action bar (academic dashboard) */
/* Language toggle */
.header-lang-switch {
  display: flex;
  align-items: center;
  gap: 0;
  background: rgba(255,255,255,0.12);
  border: 1.5px solid rgba(255,255,255,0.25);
  border-radius: 999px;
  padding: 3px;
}

.header-lang-switch .lang-switch-btn {
  color: rgba(255,255,255,0.75);
  padding: 4px 12px;
}

.header-lang-switch .lang-switch-btn:hover {
  background: rgba(255,255,255,0.18);
  color: #fff;
}

.header-lang-switch .lang-switch-btn.lang-active {
  background: var(--surface-color);
  color: var(--heading-color);
  box-shadow: 0 1px 4px rgba(0,0,0,0.18);
}

.header-lang-switch .lang-switch-divider {
  background: rgba(255,255,255,0.3);
}

.login-lang-switch {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--surface-color);
  border: 1.5px solid var(--border-color);
  border-radius: 999px;
  padding: 3px;
  z-index: 5;
}

.lang-switch-btn {
  display: flex;
  align-items: center;
  background: transparent;
  border: none;
  border-radius: 999px;
  padding: 5px 14px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: var(--text-muted);
  cursor: pointer;
  transition: background 0.18s, color 0.18s;
  outline: none;
}

.lang-switch-btn:focus-visible {
  outline: 2px solid var(--corporate-secondary);
  outline-offset: 2px;
}

.lang-switch-btn:hover {
  color: var(--heading-color);
}

.lang-switch-btn.lang-active {
  background: var(--corporate-secondary);
  color: #fff;
  box-shadow: 0 1px 4px rgba(0,45,114,0.18);
}

.lang-switch-divider {
  width: 1px;
  height: 18px;
  background: var(--border-color);
  flex-shrink: 0;
}

.mobile-dashboard-nav {
  display: none;
  flex-wrap: nowrap;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: var(--surface-color);
  border-top: 2px solid var(--corporate-secondary);
  box-shadow: 0 -4px 16px rgba(0,45,114,0.12);
  padding: 0.5rem 0.5rem;
  gap: 0.4rem;
}

.mobile-dashboard-nav .sidebar-btn.btn-accent {
  flex: 1;
  min-width: 0;
  justify-content: center;
  padding: 0.7rem 0.3rem;
  font-size: 0.78rem;
  gap: 0.35rem;
}

.mobile-dashboard-nav .sidebar-btn.btn-accent span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Grid item'ın varsayılan min-width:auto değeri geniş tabloları viewport dışına taşırır;
   min-width:0 ile sütun daralabilir ve tablo içeriği hücre içinde sarılır. */
.dashboard-main {
  min-width: 0;
}

.dashboard-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.profile-card {
  background: linear-gradient(135deg, var(--corporate-secondary) 0%, var(--corporate-secondary-dark) 100%);
  color: var(--text-on-accent);
  border-radius: var(--radius-md);
  padding: 2rem 1.5rem;
  text-align: center;
  box-shadow: 0 12px 30px rgba(0, 45, 114, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.profile-card .avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  color: var(--text-on-accent);
  font-size: 2.2rem;
  border: 2px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.profile-card .profile-title {
  font-size: 0.75rem;
  color: #ffffff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-top: 0.9rem;
  margin-bottom: 0.15rem;
}

.profile-card h2,
.profile-card h3 {
  color: #ffffff !important;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.35;
  margin-top: 0;
  margin-bottom: 0.2rem;
}

.profile-card .faculty-label {
  font-size: 0.8rem;
  color: #ffffff;
  margin-top: 0.5rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.profile-card .title-dept {
  font-size: 0.85rem;
  color: #ffffff;
  font-weight: 500;
  margin-top: 0.35rem;
}

.sidebar-btn {
  background: var(--white);
  border: 1.5px solid var(--corporate-secondary);
  padding: 0.9rem 1.2rem;
  border-radius: var(--radius-sm);
  text-align: center;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--heading-color);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  transition: var(--transition);
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.08);
}

.sidebar-btn > i {
  width: 1.1em;
  flex-shrink: 0;
  text-align: center;
}

.sidebar-btn:hover {
  background: var(--accent-surface);
  border-color: var(--border-color);
  padding: 1rem 1.5rem;
  border-radius: var(--radius-md);
}

.sidebar-btn.active {
  background: rgb(0, 45, 114);
  color: white;
  border-color: rgb(0, 45, 114);
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.25);
}

.sidebar-btn.btn-accent {
  background: rgb(0, 45, 114);
  color: white;
  border-color: rgb(0, 45, 114);
  box-shadow: 0 2px 8px rgba(0, 45, 114, 0.25);
  padding: 1rem 1.5rem;
  border-radius: var(--radius-md);
  font-weight: 700;
  letter-spacing: 0.5px;
}

.sidebar-btn.btn-accent:hover {
  background: rgb(0, 35, 88);
  border-color: rgb(0, 35, 88);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 45, 114, 0.35);
}

.section-header {
  margin-bottom: 1.5rem;
}

.section-header h2 {
  font-size: 1.6rem;
  margin-bottom: 0.2rem;
}

.section-header p {
  color: var(--text-muted);
  font-size: 0.95rem;
}

.score-formula-note {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--text-muted);
  white-space: nowrap;
  margin-top: 0.15rem;
}

/* İstatistikler / Analiz Paneli */
.stats-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1rem;
  margin: 1.25rem 0 1.75rem;
}

.stats-kpi-card {
  background: var(--bg-color);
  border-radius: var(--radius-sm);
  border-left: 4px solid var(--primary-color);
  padding: 1rem 1.1rem;
  text-align: left;
}

.stats-kpi-card.stats-kpi-success { border-left-color: #2E7D32; }
.stats-kpi-card.stats-kpi-danger { border-left-color: #C0392B; }
.stats-kpi-card.stats-kpi-warning { border-left-color: #E67E22; }
.stats-kpi-card.stats-kpi-gold { border-left-color: #B7950B; }

.stats-kpi-value {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--text-color);
  line-height: 1.2;
}

.stats-kpi-label {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 0.2rem;
}

.stats-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.stats-chart-card {
  background: var(--bg-color);
  border-radius: var(--radius-sm);
  padding: 1.1rem;
}

.stats-chart-card h3 {
  margin: 0 0 0.85rem;
  font-size: 0.95rem;
  color: var(--text-color);
}

.stats-chart-card-wide {
  grid-column: 1 / -1;
}

.stats-chart-canvas-wrap {
  position: relative;
  height: 320px;
}

@media (max-width: 900px) {
  .stats-chart-grid {
    grid-template-columns: 1fr;
  }
  .stats-chart-canvas-wrap {
    height: 260px;
  }
}

.faculty-comparison-inactive {
  background: #fff5f5;
}

.faculty-comparison-inactive th {
  color: #a33;
}

.pagination-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-top: 1rem;
}

.pagination-bar .pagination-info {
  font-size: 0.9rem;
  color: var(--text-muted);
  white-space: nowrap;
}

/* Tables style */
.table-responsive {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.9rem;
}

.table th {
  background-color: var(--bg-color);
  color: var(--heading-color);
  font-weight: 600;
  padding: 0.9rem 1.2rem;
  border-bottom: 2px solid var(--border-color);
}

.table td {
  padding: 0.9rem 1.2rem;
  border-bottom: 1px solid var(--border-color);
  vertical-align: middle;
}

.table td.action-cell {
  min-width: 100px;
}

/* Sidebar'lı akademisyen panelinde tablo, dar/orta genişlikteki masaüstü
   ekranlarda kart genişliğini aşıp son sütundaki (İşlemler) butonların
   yarıda kesilmesine yol açıyordu; hücre boşluğunu daraltarak tabloya
   birkaç sütun için yeterli genişlik kazandırılıyor. */
#my-applications-table th,
#my-applications-table td {
  padding: 0.85rem 0.55rem;
}

#my-applications-table {
  width: 100%;
  font-size: 0.88rem;
}

#my-applications-table td.action-cell {
  min-width: 190px;
}

#my-applications-table .action-buttons-row {
  flex-wrap: nowrap;
  gap: 0.35rem;
}

#my-applications-table .action-buttons-row .btn {
  padding: 0.55rem 0.7rem;
  min-height: 38px;
  font-size: 0.82rem;
}

#my-applications-table .status-badge {
  width: 100%;
  min-width: 108px;
}

.table th.th-sortable {
  cursor: pointer;
  user-select: none;
  position: relative;
  padding-right: 1.8rem;
}

.table th.th-sortable:hover {
  color: var(--heading-color);
}

.table th.th-sortable::after {
  content: '\f0dc';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  right: 0.6rem;
  opacity: 0.6;
  font-size: 0.75rem;
}

.table th.th-sortable.th-sorted-asc::after {
  content: '\f0de';
  opacity: 1;
  color: #00c1d5;
}

.table th.th-sortable.th-sorted-desc::after {
  content: '\f0dd';
  opacity: 1;
  color: #00c1d5;
}

#dashboard-info-guide {
  padding: 0.5rem 0.75rem !important;
}

#dashboard-info-guide h2 {
  margin-bottom: 0.4rem;
  font-size: 1rem;
}

/* Genel Bakış ana sayfa akışının parçasıdır; ikinci bir kaydırma alanı oluşturmaz. */
#dashboard-info-guide-body {
  max-height: none;
  overflow-y: visible;
  overflow-x: visible;
  border-radius: var(--radius-sm);
}

#dashboard-info-guide-body:focus-visible {
  outline: 3px solid var(--accent-color);
  outline-offset: 2px;
}

#dashboard-info-guide .mt-3 {
  margin-top: 0.4rem !important;
}

#dashboard-info-guide .table {
  table-layout: fixed;
  font-size: 0.9rem;
  margin-bottom: 0;
}

#dashboard-info-guide .table th,
#dashboard-info-guide .table td {
  padding: 0.28rem 0.5rem;
  vertical-align: top;
  line-height: 1.35;
  overflow-wrap: break-word;
  word-break: break-word;
}

#dashboard-info-guide .table td p {
  margin-bottom: 0.2rem;
}

#dashboard-info-guide .table td p:last-child {
  margin-bottom: 0;
}

#dashboard-info-guide .table td ul {
  margin: 0.1rem 0 0.1rem 1rem;
  padding: 0;
}

#dashboard-info-guide .table td ul li {
  margin-bottom: 0.1rem;
}

#dashboard-info-guide .table td strong {
  color: var(--heading-color);
}

/* Genel Bakış düzenleyicisinde seçilen özel renk, kalın metinlerin kurumsal
   varsayılan başlık rengi tarafından ezilmemelidir. Eski kayıtlardaki font[color]
   biçimi de desteklenir. */
#dashboard-info-guide #dashboard-info-guide-custom [style*="color"] strong,
#dashboard-info-guide #dashboard-info-guide-custom font[color] strong,
.overview-editable [style*="color"] strong,
.overview-editable font[color] strong {
  color: inherit;
}

.action-buttons-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.action-buttons-row .btn {
  white-space: nowrap;
}

.table tbody tr:hover {
  background-color: rgba(0, 45, 114, 0.04);
}

/* Faculty admin: top 10 highlight */
.admin-container .table tbody tr.top-ranked td {
  background: linear-gradient(180deg, rgba(0, 45, 114, 0.06) 0%, rgba(0, 45, 114, 0.03) 100%);
  border-top: 2px solid rgba(85, 104, 211, 0.2);
  border-bottom: 2px solid rgba(85, 104, 211, 0.2);
}

.admin-container .table tbody tr.top-ranked td:first-child {
  border-left: 2px solid rgba(85, 104, 211, 0.2);
}

.admin-container .table tbody tr.top-ranked td:last-child {
  border-right: 2px solid rgba(85, 104, 211, 0.2);
}

.admin-container .table tbody tr.top-ranked .badge-rank {
  box-shadow: 0 6px 16px rgba(0, 45, 114, 0.15);
}

/* Kadro grubu renklendirmesi: komisyon başvuru listesinde her grup farklı renkte,
   karışmasın diye sol kenarda renkli bir şerit ve hafif zemin tonu ile ayrılır. */
.admin-container .table tbody tr.title-group-1 td { background: rgba(124, 58, 237, 0.07); }
.admin-container .table tbody tr.title-group-1 td:first-child { border-left: 4px solid #7c3aed; }
.admin-container .table tbody tr.title-group-2 td { background: rgba(13, 148, 136, 0.07); }
.admin-container .table tbody tr.title-group-2 td:first-child { border-left: 4px solid #0d9488; }
.admin-container .table tbody tr.title-group-3 td { background: rgba(217, 119, 6, 0.08); }
.admin-container .table tbody tr.title-group-3 td:first-child { border-left: 4px solid #d97706; }
.admin-container .table tbody tr.title-group-4 td { background: rgba(37, 99, 235, 0.07); }
.admin-container .table tbody tr.title-group-4 td:first-child { border-left: 4px solid #2563eb; }

.title-group-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin: 0.5rem 0 1rem;
  font-size: 0.78rem;
  color: var(--text-muted);
}
.title-group-legend span { display: inline-flex; align-items: center; gap: 0.4rem; }
.title-group-legend .dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.title-group-legend .dot--1 { background: #7c3aed; }
.title-group-legend .dot--2 { background: #0d9488; }
.title-group-legend .dot--3 { background: #d97706; }
.title-group-legend .dot--4 { background: #2563eb; }

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Başvuru durumları aynı renge düşmesin; uzun durum adları hücre sınırları
   içinde satıra bölünebilsin. */
.status-badge {
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
  text-align: center;
  text-transform: none;
  letter-spacing: 0.2px;
  vertical-align: middle;
}

.badge-submitted { background: rgba(2, 132, 199, 0.14); color: #075985; border: 1px solid rgba(2, 132, 199, 0.22); }
.badge-in-review { background: rgba(79, 70, 229, 0.14); color: #3730a3; border: 1px solid rgba(79, 70, 229, 0.22); }
.badge-jury-reviewed { background: rgba(124, 58, 237, 0.15); color: #6b21a8; border: 1px solid rgba(124, 58, 237, 0.24); }
.badge-revision { background: rgba(245, 158, 11, 0.16); color: #92400e; border: 1px solid rgba(245, 158, 11, 0.26); }
.badge-approved { background: rgba(16, 185, 129, 0.15); color: #166534; border: 1px solid rgba(16, 185, 129, 0.24); }
.badge-rejected { background: rgba(239, 68, 68, 0.14); color: #991b1b; border: 1px solid rgba(239, 68, 68, 0.24); }
.badge-excluded { background: rgba(75, 85, 99, 0.15); color: #374151; border: 1px solid rgba(75, 85, 99, 0.24); }

[data-theme="dark"] .badge-submitted { color: #7dd3fc; }
[data-theme="dark"] .badge-in-review { color: #a5b4fc; }
[data-theme="dark"] .badge-jury-reviewed { color: #d8b4fe; }
[data-theme="dark"] .badge-revision { color: #fcd34d; }
[data-theme="dark"] .badge-approved { color: #86efac; }
[data-theme="dark"] .badge-rejected { color: #fca5a5; }
[data-theme="dark"] .badge-excluded { color: #d1d5db; }

.badge-info { background: rgba(0, 45, 114, 0.12); color: var(--heading-color); }
.badge-warning { background: rgba(245, 158, 11, 0.12); color: var(--warning-color); }
.badge-success { background: rgba(16, 185, 129, 0.12); color: var(--success-color); }
.badge-danger { background: rgba(239, 68, 68, 0.12); color: var(--danger-color); }
.badge-draft { background: rgba(107, 114, 128, 0.12); color: var(--text-muted); }
.badge-rank {
  background: linear-gradient(135deg, rgba(0, 45, 114, 0.15) 0%, rgba(0, 45, 114, 0.08) 100%);
  color: var(--secondary-color);
  margin-left: 0.4rem;
  border: 1px solid rgba(85, 104, 211, 0.2);
}

/* Empty state */
.empty-state {
  text-align: center;
  padding: 4rem 2rem;
  color: var(--text-muted);
}

.empty-state i {
  font-size: 3rem;
  color: var(--border-color);
  margin-bottom: 1rem;
}

/* Application Form - Calculator style */
.app-form-container {
  max-width: 1200px;
  margin: 0 auto;
}

#admin-detail-view .app-form-container {
  width: 100%;
  max-width: 1600px;
}

.app-form-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 1rem;
}

.app-form-header h2 {
  flex: 1;
  min-width: 0;
  margin-bottom: 0;
}

#admin-detail-view .app-form-header > .btn,
#admin-detail-view .app-form-header > .status-badge {
  flex: 0 0 auto;
}

/* Progress Steps */
.progress-steps {
  display: flex;
  justify-content: space-between;
  position: relative;
  margin-bottom: 3rem;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

.progress-steps::after {
  content: '';
  position: absolute;
  top: 20px;
  left: 0;
  width: 100%;
  height: 3px;
  background: var(--border-color);
  z-index: 1;
}

.progress-steps .step {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}

.progress-steps .step-num {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--surface-color);
  border: 3px solid var(--border-color);
  color: var(--text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  transition: var(--transition);
}

.progress-steps .step-text {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  margin-top: 0.5rem;
}

.progress-steps .step.active .step-num {
  border-color: var(--primary-color);
  background: var(--primary-color);
  color: white;
  box-shadow: 0 0 0 4px rgba(0, 45, 114, 0.1);
}

.progress-steps .step.active .step-text {
  color: var(--heading-color);
}

.progress-steps .step.completed .step-num {
  border-color: var(--success-color);
  background: var(--success-color);
  color: white;
}

.progress-steps .step.completed .step-text {
  color: var(--success-color);
}

/* Excel Style Calculator */
.calc-header-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 1rem;
}

.score-badge-large {
  background: var(--primary-color);
  color: white;
  padding: 0.75rem 1.75rem;
  border-radius: var(--radius-sm);
  text-align: right;
  display: flex;
  flex-direction: column;
  border-right: 6px solid var(--accent-border);
}

.score-badge-large .label {
  font-size: 0.7rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.60);
  letter-spacing: 1px;
}

.score-badge-large span:not(.label) {
  font-size: 2.2rem;
  font-weight: 800;
  font-family: var(--corporate-display-font);
  line-height: 1;
}

/* Excel Grid specific styling */
.calc-table {
  border: 1px solid var(--muted-border);
  border-collapse: collapse;
}

.calc-table th {
  background: var(--muted-surface);
  border: 1px solid var(--table-border);
  font-weight: 700;
  color: var(--text-main);
}

.calc-table td {
  border: 1px solid var(--table-border);
  padding: 0.5rem 0.75rem;
}

/* Make vertical separators more visible on larger screens */
@media (min-width: 768px) {
  .calc-table th,
  .calc-table td {
    border-width: 1px 1px 1px 1px;
  }
}

/* Pink input background color */
.td-input {
  background-color: var(--excel-pink) !important;
  border: 1px solid var(--excel-pink-border) !important;
  transition: var(--transition);
}

.td-input input {
  background: var(--surface-color);
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-sm);
  font-weight: 600;
  text-align: center;
  padding: 0.25rem 0.5rem;
}

.td-input input:focus {
  outline: none;
  background: var(--surface-color);
}

.td-input input:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 1px;
  box-shadow: none;
}

.multimonth-entry .input-month:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: 1px;
}

/* Blue calculated cells */
.td-calculated {
  background-color: var(--excel-blue) !important;
  border: 1px solid var(--excel-blue-border) !important;
  font-weight: 700;
  color: var(--heading-color);
  text-align: right;
}

/* Yellow totals row */
.tr-total {
  background: linear-gradient(180deg, var(--white) 0%, var(--accent-surface) 100%) !important;
  font-weight: 700;
}

.tr-total td {
  border-top: 2px solid var(--accent-border);
  border-bottom: 2px solid var(--accent-border);
  color: var(--accent-text);
}

.form-actions {
  display: flex;
  justify-content: space-between;
  margin-top: 2rem;
  border-top: 1px solid var(--border-color);
  padding-top: 1.5rem;
}

.action-buttons-right {
  display: flex;
  gap: 1rem;
}

/* Alerts */
.alert {
  padding: 1rem;
  border-radius: var(--radius-sm);
  margin-bottom: 1.5rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.9rem;
  border: 1px solid transparent;
}

.alert-warning {
  background: linear-gradient(180deg, var(--white) 0%, var(--accent-surface) 100%);
  border-color: rgba(175, 195, 219, 0.8);
  color: var(--accent-text);
}

.alert-warning i {
  color: var(--warning-color);
  font-size: 1.1rem;
  margin-top: 2px;
}

.alert-danger {
  background-color: var(--excel-pink);
  border-color: var(--excel-pink-border);
  color: var(--danger-color);
}

/* Komisyon değerlendirmesi: revizyon bekleme süresi */
.revision-waiting-notice {
  display: block;
  width: 100%;
  padding: 1rem;
  border-left: 5px solid #d99b00;
}

.revision-waiting-message {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  line-height: 1.55;
  font-weight: 600;
}

.revision-waiting-icon {
  display: inline-flex;
  flex: 0 0 2rem;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #f59e0b;
  color: #fff;
  box-shadow: 0 4px 10px rgba(217, 155, 0, 0.24);
}

.revision-waiting-notice .revision-waiting-icon i {
  margin: 0;
  color: inherit;
  font-size: 0.95rem;
}

.revision-deadline-panel {
  display: block;
  margin-top: 0.85rem;
  margin-left: 2.75rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid rgba(183, 131, 0, 0.32);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.72);
  color: #7c5800;
  line-height: 1.4;
}

.revision-waiting-notice #revision-expired-action {
  margin-top: 1rem;
  margin-left: 2.75rem;
}

/* Status notice card — larger, card-like */
.status-notice-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-radius: var(--radius-md);
  border-left-width: 4px;
  border-left-style: solid;
  border-top: 1px solid transparent;
  border-right: 1px solid transparent;
  border-bottom: 1px solid transparent;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
}

.status-notice-card .snc-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
  line-height: 1;
}

.status-notice-card .snc-body strong {
  display: block;
  font-size: 0.95rem;
  margin-bottom: 0.2rem;
}

.snc-revision-note {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.snc-revision-note strong {
  display: block;
  font-size: 0.85rem;
  margin-bottom: 0.25rem;
}
.snc-revision-note p {
  margin: 0;
  font-size: 0.88rem;
  white-space: pre-wrap;
}

.status-notice-card.snc-info {
  background: linear-gradient(135deg, #eff6ff 0%, #e0f2fe 100%);
  border-left-color: #3b82f6;
  border-color: #bfdbfe;
  border-left-color: #3b82f6;
  color: #1e3a5f;
}
.status-notice-card.snc-info .snc-icon { color: #3b82f6; }

.status-notice-card.snc-jury {
  background: linear-gradient(135deg, #faf5ff 0%, #ede9fe 100%);
  border-color: #ddd6fe;
  border-left-color: #7c3aed;
  color: #581c87;
}
.status-notice-card.snc-jury .snc-icon { color: #7c3aed; }

.status-notice-card.snc-warning {
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
  border-left-color: #f59e0b;
  border-color: #fde68a;
  border-left-color: #f59e0b;
  color: #78350f;
}
.status-notice-card.snc-warning .snc-icon { color: #f59e0b; }

.status-notice-card.snc-success {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border-left-color: #22c55e;
  border-color: #bbf7d0;
  border-left-color: #22c55e;
  color: #14532d;
}
.status-notice-card.snc-success .snc-icon { color: #22c55e; }

.status-notice-card.snc-danger {
  background: linear-gradient(135deg, #fff1f2 0%, #ffe4e6 100%);
  border-left-color: #ef4444;
  border-color: #fecdd3;
  border-left-color: #ef4444;
  color: #7f1d1d;
}
.status-notice-card.snc-danger .snc-icon { color: #ef4444; }

/* File Uploaders styling */
.form-group-file-upload {
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  background: var(--bg-color);
}

.form-group-file-upload h3 {
  font-size: 1rem;
  margin-bottom: 0.2rem;
}

.form-group-file-upload h3 .required {
  color: var(--danger-color);
}

.form-group-file-upload .help-text {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-bottom: 1rem;
}

.uploaded-file-info {
  background: var(--surface-color);
  border: 1px solid var(--success-color);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--success-color);
  font-weight: 600;
}

.uploaded-file-info .filename {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.uploaded-file-info .filename::before {
  content: '\f15c';
  font-family: 'Font Awesome 6 Free';
  font-weight: 400;
}

.btn-remove-file {
  background: none;
  border: none;
  color: var(--danger-color);
  cursor: pointer;
  font-size: 1.1rem;
  min-width: 44px;
  min-height: 44px;
  border-radius: var(--radius-sm);
}

.evidence-activity-block {
  margin-bottom: 1.25rem;
}

/* ── Bildirim zili ── */
.notif-bell-btn {
  position: relative;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--text-on-accent);
  cursor: pointer;
  font-size: 1.1rem;
  padding: 0.4rem 0.55rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
  margin-right: 0.35rem;
}
.notif-bell-btn:hover { background: rgba(255, 255, 255, 0.15); }
.notif-badge {
  position: absolute;
  top: -4px;
  right: -6px;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 10px;
  background: #e53935;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 19px;
  text-align: center;
  border: 2px solid var(--white, #fff);
  box-shadow: 0 2px 6px rgba(229, 57, 53, 0.55);
  animation: notifBadgePulse 1.8s ease-in-out infinite;
}
@keyframes notifBadgePulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.12); }
}

.notif-bell-wrapper {
  position: relative;
  display: inline-flex;
}

.notif-toast {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 280px;
  max-width: 80vw;
  background: var(--white, #fff);
  color: var(--text-main);
  border-radius: var(--radius-md, 12px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  padding: 0.85rem 1rem;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  cursor: pointer;
  z-index: 200;
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.22s ease, transform 0.22s ease;
}
.notif-toast.hidden { display: none; }
.notif-toast--show {
  opacity: 1;
  transform: translateY(0);
}
.notif-toast i {
  color: var(--heading-color);
  font-size: 1.1rem;
  margin-top: 2px;
  flex-shrink: 0;
}
.notif-toast-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.notif-toast-text strong {
  font-size: 0.88rem;
  color: var(--text-main);
}
.notif-toast-text span {
  font-size: 0.8rem;
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Bildirim listesi (popup içinde) ── */
.notif-item {
  position: relative;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  margin-bottom: 0.6rem;
  cursor: pointer;
  transition: background 0.15s ease;
}
.notif-item:hover { background: var(--bg-color); }
.notif-item--unread {
  border-left: 4px solid var(--primary-color);
}
.notif-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.notif-item-title { font-weight: 600; font-size: 0.92rem; color: var(--text-main); }
.notif-item-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--primary-color);
  flex-shrink: 0;
}
.notif-item-body {
  margin: 0.3rem 0 0.35rem;
  font-size: 0.86rem;
  color: var(--text-main);
  white-space: pre-wrap;
  line-height: 1.45;
}
.notif-item-meta { font-size: 0.76rem; color: var(--text-muted); }
.notif-item-status {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}
.btn-delete-my-notification {
  width: 32px;
  height: 32px;
  min-width: 32px;
  min-height: 32px;
  padding: 0;
  border: 1px solid rgba(220, 38, 38, 0.25);
  border-radius: 7px;
  background: rgba(220, 38, 38, 0.08);
  color: var(--danger-color);
  cursor: pointer;
}
.btn-delete-my-notification:hover,
.btn-delete-my-notification:focus-visible {
  background: var(--danger-color);
  color: #fff;
}
.notif-list-header-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
@media (max-width: 480px) {
  .notif-list-header-actions .btn { padding: 0.45rem 0.65rem; }
}

/* ── Bildirim gönderme formu (admin) ── */
.notif-tab-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
.notif-send-column h2,
.notif-sent-column h2 {
  margin: 0 0 0.3rem;
  font-size: 1.15rem;
}
.notif-send-column h2 i,
.notif-sent-column h2 i {
  color: var(--primary-color, #002d72);
  margin-right: 0.4rem;
}
.notif-send-column p,
.notif-sent-column p {
  color: var(--text-muted);
  font-size: 0.9rem;
  margin-bottom: 1.25rem;
}
.notif-send-form { max-width: 640px; }
.notif-send-column { min-width: 0; }
.notif-sent-column {
  border-left: 1px solid var(--border-color);
  padding-left: 2rem;
  min-width: 0;
}
.notif-sent-subheading {
  margin: 1.75rem 0 0.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--border-color);
  font-size: 1rem;
}
.notif-sent-wrap {
  max-height: 380px;
  min-height: 180px;
  overflow-y: auto;
  padding-right: 0.5rem;
  display: flex;
  flex-direction: column;
}
.notif-sent-wrap .empty-state {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 2rem 1rem;
}

@media (max-width: 900px) {
  .notif-tab-columns {
    grid-template-columns: 1fr;
  }
  .notif-sent-column {
    border-left: none;
    padding-left: 0;
    border-top: 1px solid var(--border-color);
    padding-top: 1.5rem;
    margin-top: 0.5rem;
  }
}

/* ── Yardım ve Destek (mesajlaşma) ── */
.support-messages {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  max-height: 440px;
  min-height: 200px;
  overflow-y: auto;
  padding: 0.5rem 0.25rem;
}
.support-msg {
  display: flex;
  flex-direction: column;
  max-width: 78%;
}
.support-msg--own { align-self: flex-end; align-items: flex-end; }
.support-msg--other { align-self: flex-start; align-items: flex-start; }
.support-msg-bubble {
  padding: 0.6rem 0.9rem;
  border-radius: 14px;
  font-size: 0.9rem;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}
.support-msg--own .support-msg-bubble {
  background: rgb(0, 45, 114);
  color: #fff;
  border-bottom-right-radius: 4px;
}
.support-msg--other .support-msg-bubble {
  background: var(--bg-color, #f1f5f9);
  color: var(--text-main);
  border: 1px solid var(--border-color);
  border-bottom-left-radius: 4px;
}
.support-msg-meta {
  font-size: 0.72rem;
  color: var(--text-muted);
  margin-top: 0.25rem;
}
.support-form {
  display: flex;
  gap: 0.65rem;
  align-items: flex-end;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-color);
}
.support-form textarea { flex: 1; resize: vertical; min-height: 44px; }

.btn-icon-plain {
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.1rem;
  cursor: pointer;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.15s ease, color 0.15s ease;
  flex-shrink: 0;
}
.btn-icon-plain:hover {
  background: var(--bg-color);
  color: var(--heading-color);
}

.support-attachment-chip {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--bg-color);
  border-radius: var(--radius-sm);
  padding: 0.4rem 0.7rem;
  font-size: 0.82rem;
  margin-top: 0.5rem;
  color: var(--text-color);
}
.support-attachment-chip span {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.support-attachment-chip button {
  background: none;
  border: none;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  color: var(--text-muted);
}
.support-attachment-chip button:hover { color: #c0392b; }

.support-msg-attachment {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.4rem;
  font-size: 0.85rem;
  color: inherit;
  text-decoration: none;
}

/* ── Yardım ve Destek: yüzen mesajlaşma balonu ── */
.support-fab {
  position: fixed;
  right: 24px;
  bottom: 36px;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  height: 52px;
  padding: 0 1.15rem 0 1rem;
  border-radius: 999px;
  border: none;
  background: rgb(0, 45, 114);
  color: #fff;
  font-size: 1.25rem;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 45, 114, 0.4);
  z-index: 300;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.support-fab:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0, 45, 114, 0.5); }

.support-fab-label {
  font-size: 0.88rem;
  font-weight: 600;
  white-space: nowrap;
}
.support-fab-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 22px;
  height: 22px;
  padding: 0 5px;
  border-radius: 11px;
  background: #e53935;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  line-height: 21px;
  text-align: center;
  border: 2px solid #fff;
  box-shadow: 0 2px 6px rgba(229, 57, 53, 0.55);
  animation: notifBadgePulse 1.8s ease-in-out infinite;
}
.support-fab-badge.hidden { display: none; }

.support-window {
  position: fixed;
  right: 24px;
  bottom: 100px;
  width: 370px;
  max-width: calc(100vw - 32px);
  height: 500px;
  max-height: calc(100vh - 180px);
  background: var(--white, #fff);
  border: 1px solid var(--border-color);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0, 20, 60, 0.28);
  z-index: 300;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: supportWindowIn 0.18s ease;
}
.support-window.hidden { display: none; }
@keyframes supportWindowIn {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 992px) {
  .support-fab { bottom: 48px; }
  .support-window { bottom: 112px; }
}
@media (max-width: 480px) {
  .support-fab-label { display: none; }
  .support-fab { padding: 0; width: 52px; justify-content: center; }
}
.support-window-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.95rem 1.1rem;
  background: linear-gradient(135deg, var(--corporate-secondary) 0%, var(--corporate-secondary-dark) 100%);
  color: #fff;
  position: relative;
  overflow: hidden;
}
.support-window-header::after {
  content: '';
  position: absolute;
  top: -40%;
  right: -10%;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  pointer-events: none;
}
.support-window-header-text { flex: 1; display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.support-window-header .support-window-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  flex-shrink: 0;
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.support-window-header h4 { margin: 0; font-size: 0.98rem; font-weight: 700; color: #fff; }
.support-window-header .support-window-subtitle {
  font-size: 0.72rem;
  color: rgba(255, 255, 255, 0.75);
  display: flex;
  align-items: center;
  gap: 0.35rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.support-window-header-actions { display: flex; align-items: center; gap: 0.35rem; position: relative; z-index: 1; }
.support-window-header .btn-close {
  color: #fff;
  font-size: 1.05rem;
  background: rgba(255, 255, 255, 0.12);
  border: none;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease;
}
.support-window-header .btn-close:hover { background: rgba(255, 255, 255, 0.22); }
.support-window .support-messages {
  flex: 1;
  max-height: none;
  min-height: 0;
  padding: 1rem 0.9rem;
  background: var(--white, #fff);
}
.support-window .support-msg-bubble {
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}
.support-window .support-msg--own .support-msg-bubble {
  background: linear-gradient(135deg, var(--corporate-secondary) 0%, var(--primary-light) 100%);
}
.support-window #support-empty {
  padding: 2.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  text-align: center;
}
.support-window #support-empty i {
  font-size: 2.2rem;
  color: var(--primary-light);
  opacity: 0.45;
}
.support-window #support-empty p { color: var(--text-muted); font-size: 0.85rem; max-width: 220px; }
.support-window .support-form {
  margin-top: 0;
  padding: 0.65rem 0.7rem;
  background: var(--surface-color);
  align-items: flex-end;
}
.support-window .support-form textarea {
  font-size: 0.92rem;
  border-radius: 18px;
  padding: 0.6rem 1rem;
  min-height: 40px;
  resize: none;
  max-height: 120px;
  overflow-y: auto;
  transition: height 0.1s ease;
  background: var(--accent-surface, #f3f6fa);
  border-color: transparent;
}
.support-window .support-form button[type="submit"],
.support-window .support-form .btn-icon-plain {
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.support-window .support-form .btn-icon-plain {
  background: var(--accent-surface, #f3f6fa);
  font-size: 1rem;
}
.support-window .support-form .btn-icon-plain:hover {
  background: #e6ecf5;
  color: var(--heading-color);
}

/* Admin: talep listesi + konuşma iki sütun */
.support-admin-layout {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
  margin-top: 1rem;
}
.support-thread-list-col {
  max-height: 560px;
  overflow-y: auto;
  border-right: 1px solid var(--border-color);
  padding-right: 1rem;
}
.support-thread-item {
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  margin-bottom: 0.6rem;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.support-thread-item:hover { background: var(--accent-surface, #eef4ff); }
.support-thread-item--active {
  border-color: rgb(0, 45, 114);
  background: var(--accent-surface, #eef4ff);
}
.support-thread-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.support-thread-badge {
  position: static;
  flex-shrink: 0;
}
.tab-badge {
  position: static;
  margin-left: 0.35rem;
  vertical-align: middle;
}
.support-thread-faculty {
  display: block;
  font-size: 0.75rem;
  color: var(--text-muted);
}
.support-thread-preview {
  margin: 0.3rem 0 0.15rem;
  font-size: 0.82rem;
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.support-thread-date { font-size: 0.72rem; color: var(--text-muted); }
.support-conv-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid var(--border-color);
}
.support-conv-header span { font-size: 0.85rem; }

@media (max-width: 900px) {
  .support-admin-layout { grid-template-columns: 1fr; }
  .support-thread-list-col {
    border-right: none;
    padding-right: 0;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 1rem;
    max-height: 300px;
  }
}

/* ── Dokümanlar bilgilendirme banneri ── */
.docs-info-banner {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  background: linear-gradient(180deg, var(--white) 0%, #eaf6fd 100%);
  border: 1px solid #a8d8ef;
  border-radius: var(--radius);
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.88rem;
  color: #0c4a6e;
  line-height: 1.5;
}
.docs-info-banner .fa-circle-info,
.docs-info-banner .fa-file-lines {
  color: var(--heading-color);
  font-size: 1rem;
  flex-shrink: 0;
  margin-top: 2px;
}
/* ── Dokümanlar paneli (akademisyen) ── */
.doc-list-item {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--border-color);
}
.doc-list-item:last-child { border-bottom: none; }
.doc-icon { font-size: 1.5rem; color: var(--heading-color); flex-shrink: 0; padding-top: 2px; }
.doc-info { display: flex; flex-direction: column; gap: 0.15rem; }
.doc-title { font-weight: 600; color: var(--heading-color); text-decoration: none; }
.doc-title:hover { text-decoration: none; }
.doc-description { font-size: 0.85rem; color: var(--text-muted); margin: 0; }
.doc-date { font-size: 0.78rem; color: var(--text-muted); }

/* ── Dokümanlar (admin yönetimi) ── */
.docs-admin-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border-color, var(--border));
}
.docs-admin-header h2 { margin: 0 0 0.3rem; font-size: 1.15rem; }
.docs-admin-header p { margin: 0; font-size: 0.88rem; color: var(--text-muted); }

.docs-admin-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.doc-admin-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--border-color, var(--border));
  border-radius: var(--radius-md, 12px);
  background: var(--white, #fff);
  transition: box-shadow 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

/* Bilgi kutularındaki/madde açıklamalarındaki "(bkz. ...)" bağlantıları — admin'in
   Dokümanlar > Temel Yönergeler kısmına yüklediği sabit belgeyi doğrudan önizler. */
.doc-link-inline {
  color: var(--primary-color);
  text-decoration: none;
  cursor: pointer;
  font-weight: 500;
}
.doc-link-inline:hover,
.doc-link-inline:focus-visible {
  color: var(--accent-color);
  outline: none;
}

.doc-admin-item:hover {
  box-shadow: 0 6px 18px rgba(0, 45, 114, 0.08);
  border-color: rgba(0, 45, 114, 0.18);
  transform: translateY(-1px);
}
.doc-admin-info { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
.doc-admin-info .doc-title {
  font-weight: 600;
  font-size: 0.98rem;
  display: flex;
  align-items: center;
}
.doc-admin-info .doc-title i {
  margin-right: 8px;
  color: var(--heading-color);
  font-size: 1.05rem;
}
.doc-admin-info .doc-description { font-size: 0.85rem; color: var(--text-muted); }
.doc-admin-info .doc-date {
  font-size: 0.78rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
}
.doc-admin-info .doc-date a {
  color: var(--heading-color);
  font-weight: 500;
  text-decoration: none;
}
.doc-admin-info .doc-date a:hover { text-decoration: none; }

.doc-admin-actions {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.doc-admin-actions .btn-sm {
  min-width: 110px;
  height: auto;
  padding: 0.5rem 0.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  white-space: nowrap;
}

.evidence-proof-hint {
  font-size: 0.8rem;
  color: var(--text-muted);
  background: var(--bg-color);
  border-left: 3px solid var(--primary-color);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  padding: 0.35rem 0.6rem;
  margin-bottom: 0.5rem;
  line-height: 1.4;
}

.evidence-proof-hint .fa-circle-info {
  color: var(--heading-color);
  margin-right: 4px;
}

.evidence-activity-block > .activity-label {
  font-size: 0.88rem;
  font-weight: 600;
  margin-bottom: 0.4rem;
  padding: 0 0.25rem;
}

.evidence-count-badge {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 0.83rem;
}

.evidence-row-uploader {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 1rem;
  background: var(--surface-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  margin-bottom: 0.4rem;
}

.evidence-slot-label {
  font-size: 0.82rem;
  color: var(--text-muted);
  min-width: 120px;
}

.evidence-row-uploader .activity-label {
  font-size: 0.88rem;
  font-weight: 600;
  max-width: 65%;
}

.evidence-row-uploader .upload-status-text {
  font-size: 0.78rem;
}

.evidence-row-uploader .upload-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

/* Toast System */
.toast-container {
  position: fixed;
  top: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  width: min(92vw, 520px);
}

.toast {
  background: #fdf2f2;
  border-radius: 10px;
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18);
  border: 1.5px solid rgba(0, 0, 0, 0.06);
  display: flex;
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  animation: toastDropIn 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  width: 100%;
}

.toast-icon {
  flex: 0 0 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #ffffff;
}

.toast-message {
  flex: 1;
  min-width: 0;
  padding: 1rem 1.1rem;
  color: var(--text-main);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.toast-message a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.toast-close {
  background: none;
  border: none;
  cursor: pointer;
  align-self: center;
  margin-right: 0.9rem;
  color: var(--text-muted);
  font-size: 1.1rem;
}

.toast-close:hover { color: var(--text-main); }

.toast-success { background: #f1faf6; border-color: rgba(16, 185, 129, 0.25); }
.toast-error { background: #fdf2f2; border-color: rgba(239, 68, 68, 0.25); }
.toast-warning { background: #fef9ec; border-color: rgba(245, 158, 11, 0.25); }

.toast-success .toast-icon { background: var(--success-color); }
.toast-error .toast-icon { background: var(--danger-color); }
.toast-warning .toast-icon { background: var(--warning-color); }

/* Yönetim, komisyon ve jüri panellerinin ortak sol menüsü */
#admin-view {
  position: relative;
  left: 50%;
  width: min(calc(100vw - clamp(2.5rem, 4vw, 5rem)), 1680px);
  transform: translateX(-50%);
}

.admin-workspace {
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  align-items: start;
  gap: 1rem;
}

.admin-sidebar {
  position: sticky;
  top: 1rem;
  max-height: calc(100dvh - 2rem);
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid rgba(0, 45, 114, 0.16);
  border-radius: 14px;
  background: var(--card-bg);
  box-shadow: 0 8px 24px rgba(0, 45, 114, 0.08);
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 45, 114, 0.28) transparent;
}

.admin-sidebar-header {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-height: 58px;
  padding: 0.9rem 1.05rem;
  border-bottom: 0;
  color: #fff;
  background: var(--primary-color);
}

.admin-sidebar-header > i {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 0.88rem;
}

.admin-menu-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.admin-sidebar-header strong {
  color: #fff;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}

.admin-tabs {
  display: flex;
  flex-direction: column;
  gap: 1.05rem;
  padding: 1rem 0.85rem 1.1rem;
}

.admin-menu-group {
  display: grid;
  gap: 0.38rem;
}

.admin-menu-group.hidden {
  display: none;
}

.admin-menu-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0 0.55rem 0.22rem;
  color: var(--text-muted);
}

.admin-menu-label::after {
  content: "";
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, var(--border-color), transparent);
}

.tab-btn {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-height: 49px;
  padding: 0.48rem 0.62rem;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: var(--heading-color);
  font-size: 0.92rem;
  font-weight: 650;
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
  will-change: transform;
  transition: transform 180ms cubic-bezier(0.2, 0.7, 0.3, 1),
              color 180ms ease,
              background-color 180ms ease,
              border-color 180ms ease,
              box-shadow 180ms ease;
}

.tab-btn::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -1px;
  width: 4px;
  height: 62%;
  border-radius: 0 999px 999px 0;
  background: var(--accent-color);
  box-shadow: 0 0 9px rgba(0, 193, 213, 0.42);
  opacity: 0;
  transform: translateY(-50%) scaleY(0.35);
  transition: opacity 170ms ease,
              transform 210ms cubic-bezier(0.2, 0.75, 0.3, 1);
}

.tab-btn > i {
  display: grid;
  flex: 0 0 2.05rem;
  width: 2.05rem;
  height: 2.05rem;
  place-items: center;
  border: 1px solid rgba(0, 45, 114, 0.08);
  border-radius: 8px;
  color: var(--primary-color);
  background: rgba(0, 45, 114, 0.07);
  text-align: center;
  transition: transform 180ms cubic-bezier(0.2, 0.7, 0.3, 1),
              color 180ms ease,
              background-color 180ms ease,
              border-color 180ms ease;
}

.tab-btn:hover {
  border-color: rgba(0, 45, 114, 0.12);
  background: var(--accent-surface);
  color: var(--primary-color);
  transform: translateX(3px);
}

.tab-btn:hover > i {
  transform: translateY(-1px) scale(1.05);
}

.tab-btn:active {
  transform: translateX(2px) scale(0.985);
  transition-duration: 80ms;
}

.tab-btn.active {
  border-color: rgba(0, 45, 114, 0.16);
  background: var(--accent-surface-strong);
  color: var(--primary-color);
  box-shadow: 0 3px 10px rgba(0, 45, 114, 0.06);
}

.tab-btn.active::before {
  opacity: 1;
  transform: translateY(-50%) scaleY(1);
}

.tab-btn:hover > i,
.tab-btn.active > i {
  border-color: var(--primary-color);
  color: #fff;
  background: var(--primary-color);
}

.tab-btn:focus-visible {
  outline: 3px solid rgba(0, 193, 213, 0.35);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .tab-btn,
  .tab-btn > i,
  .tab-btn::before {
    transition: none;
  }

  .tab-btn:hover,
  .tab-btn:hover > i,
  .tab-btn:active {
    transform: none;
  }
}

/* Hızlı giriş: içerik anında görünür; yalnız logo ve kısa ışık geçişi hareketlidir. */
body.login-screen-active #login-view.active .login-panel,
body.login-screen-active #login-view.active .odul-login-visual::before,
body.login-screen-active #login-view.active .odul-login-visual .theme-toggle-btn-login,
body.login-screen-active #login-view.active .login-lang-switch,
body.login-screen-active #login-view.active .login-header-centered,
body.login-screen-active #login-view.active .login-form-panel .form-group,
body.login-screen-active #login-view.active .login-submit,
body.login-screen-active #login-view.active .login-register-link-large,
body.login-screen-active #login-view.active .login-register-note,
body.login-screen-active #login-view.active .login-links,
body.login-screen-active #login-view.active .login-card-footer {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

#login-view .login-panel {
  border: 1.5px solid rgba(255,255,255,.98) !important;
  outline: 1px solid rgba(255,255,255,.18);
  outline-offset: -1px;
}

#login-view .login-panel::after {
  display: block !important;
  position: absolute;
  top: -30%;
  bottom: -30%;
  left: -24%;
  z-index: 20;
  width: 12%;
  height: auto;
  border-radius: 0;
  content: '';
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.46), transparent);
  filter: blur(1px);
  transform: skewX(-18deg);
  animation: odulLightSweep .9s cubic-bezier(.22,.61,.36,1) .08s both;
}

#login-view .login-identity-mark img {
  width: 102px;
  height: 102px;
}

body.login-screen-active #login-view.active .logo-spin-img {
  animation: odulLogoFocus .72s cubic-bezier(.19,1,.22,1) .04s both !important;
}

@keyframes odulLogoFocus {
  from { opacity: 0; filter: blur(14px); transform: scale(1.12); }
  to { opacity: 1; filter: blur(0); transform: scale(1); }
}

@keyframes odulLightSweep {
  from { left: -24%; opacity: 0; }
  18% { opacity: 1; }
  to { left: 116%; opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #login-view .login-panel::after,
  body.login-screen-active #login-view.active .logo-spin-img {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
}

/* Belirgin logo netleşmesi ve parlak ışık geçişi — son katman. */
#login-view.active .login-panel::after {
  left: -34%;
  width: 20%;
  background: linear-gradient(90deg,transparent,rgba(122,238,250,.42),rgba(255,255,255,.94),rgba(122,238,250,.42),transparent);
  filter: blur(2px);
  box-shadow: 0 0 28px rgba(180,247,255,.55);
  animation: odulLightSweepVisible 1.55s cubic-bezier(.22,.61,.36,1) .08s both !important;
}

body.login-screen-active #login-view.active .logo-spin-img {
  animation: odulLogoFocusVisible 1.4s cubic-bezier(.19,1,.22,1) .05s both !important;
}

@media (prefers-reduced-motion: reduce) {
  #login-view.active .login-panel::after,
  body.login-screen-active #login-view.active .logo-spin-img {
    animation-duration: .01ms !important;
    animation-delay: 0s !important;
  }
}

/* Görünür fakat hızlı vitrin efekti: form beklemez, efektler net algılanır. */
@keyframes odulLogoFocusVisible {
  0% {
    opacity: 0;
    filter: blur(26px) brightness(1.45);
    transform: scale(.78) rotate(-5deg);
  }
  45% {
    opacity: .72;
    filter: blur(8px) brightness(1.2);
    transform: scale(1.07) rotate(1deg);
  }
  100% {
    opacity: 1;
    filter: blur(0) brightness(1);
    transform: scale(1) rotate(0);
  }
}

@keyframes odulLightSweepVisible {
  0% { left: -34%; opacity: 0; }
  12% { opacity: 1; }
  76% { opacity: 1; }
  100% { left: 122%; opacity: 0; }
}

#login-view.active .login-panel::after {
  left: -34%;
  width: 20%;
  background: linear-gradient(90deg,transparent,rgba(122,238,250,.42),rgba(255,255,255,.94),rgba(122,238,250,.42),transparent);
  filter: blur(2px);
  box-shadow: 0 0 28px rgba(180,247,255,.55);
  animation: odulLightSweepVisible 1.55s cubic-bezier(.22,.61,.36,1) .08s both !important;
}

body.login-screen-active #login-view.active .logo-spin-img {
  animation: odulLogoFocusVisible 1.4s cubic-bezier(.19,1,.22,1) .05s both !important;
}

@media (prefers-reduced-motion: reduce) {
  #login-view.active .login-panel::after,
  body.login-screen-active #login-view.active .logo-spin-img {
    animation-duration: .01ms !important;
    animation-delay: 0s !important;
  }
}

.admin-panels {
  min-width: 0;
}

.admin-panels > .tab-content {
  margin: 0;
}

/* Başvuru listesi geniş ekranda tek görünüm içine sığar; hücreler gerektiğinde
   satır kırar ve kapsayıcı yatay kaydırma üretmez. */
.admin-applications-table-wrap {
  overflow-x: visible;
}

.admin-applications-table {
  table-layout: fixed;
  font-size: clamp(0.76rem, 0.76vw, 0.86rem);
}

.admin-applications-table th,
.admin-applications-table td {
  padding: 0.62rem 0.36rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  word-break: normal;
}

.admin-applications-table th.th-sortable {
  padding-right: 1.15rem;
}

.admin-applications-table th.th-sortable::after {
  right: 0.25rem;
}

.admin-applications-table th:nth-child(1) { width: 15%; }
.admin-applications-table th:nth-child(2) { width: 21%; }
.admin-applications-table th:nth-child(3),
.admin-applications-table th:nth-child(4) { width: 7%; }
.admin-applications-table th:nth-child(5) { width: 11%; }
.admin-applications-table th:nth-child(6),
.admin-applications-table th:nth-child(7) { width: 9%; }
.admin-applications-table th:nth-child(8) { width: 9%; }
.admin-applications-table th:nth-child(9) { width: 12%; }

.admin-applications-table .admin-app-actions {
  flex-wrap: wrap;
  gap: 0.3rem;
}

.admin-applications-table .admin-app-actions .btn {
  min-width: 0;
  padding: 0.38rem 0.48rem;
  font-size: 0.74rem;
  white-space: normal;
}

@media (max-width: 1100px) {
  #admin-view {
    position: static;
    left: auto;
    width: 100%;
    margin-left: 0;
    transform: none;
  }

  .admin-workspace {
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 0.75rem;
  }

  .admin-sidebar {
    position: sticky;
    top: 0.75rem;
    max-height: calc(100dvh - 1.5rem);
    overflow-x: hidden;
    overflow-y: auto;
    border-radius: 15px;
  }

  .admin-sidebar-header {
    padding: 0.9rem 0.7rem;
  }

  .admin-tabs {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding: 0.65rem 0.45rem 0.8rem;
  }

  .admin-menu-group {
    gap: 0.3rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid var(--border-color);
  }

  .admin-menu-group:last-child {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .tab-btn {
    min-height: 43px;
    padding: 0.35rem 0.42rem;
  }

  .tab-btn.active {
    box-shadow: 0 3px 10px rgba(0, 45, 114, 0.06);
  }

  .tab-btn .tab-support-badge {
    margin-left: auto;
  }
}

@media (max-width: 520px) {
  .admin-workspace {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 0.5rem;
  }

  .admin-sidebar-header {
    display: none;
  }

  .admin-menu-label,
  .tab-btn > span:not(.tab-support-badge) {
    display: none;
  }

  .admin-tabs {
    padding-inline: 0.35rem;
  }

  .tab-btn {
    justify-content: center;
    padding-inline: 0.25rem;
  }

  .tab-btn .tab-support-badge {
    position: absolute;
    top: 0.1rem;
    right: 0;
    margin: 0;
  }
}

@media (max-width: 768px) {
  .admin-applications-table-wrap {
    overflow-x: hidden;
  }

  .admin-applications-table {
    table-layout: auto;
    font-size: 0.86rem;
  }

  .admin-applications-table th,
  .admin-applications-table td {
    padding: 0.65rem 0;
  }
}

.users-panel-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.settings-section {
  margin-top: 1.5rem;
  padding: 1.5rem;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  background: var(--bg-color);
}

.settings-section h3 {
  margin-bottom: 0.4rem;
  font-size: 1.05rem;
}

.settings-section p {
  color: var(--text-muted);
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

.app-window-toggle-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.app-window-toggle-row .badge {
  font-size: 0.85rem;
  padding: 0.4rem 0.8rem;
}

.app-years-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-bottom: 1rem;
}
.app-year-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.5rem 0.4rem 0.9rem;
  background: var(--white, #fff);
  border: 1px solid var(--border-color);
  border-radius: 999px;
  font-weight: 600;
  font-size: 0.9rem;
}
.app-year-chip .btn-remove-app-year {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: none;
  background: rgba(220, 38, 38, 0.1);
  color: #dc2626;
  cursor: pointer;
  font-size: 0.75rem;
}
.app-year-chip .btn-remove-app-year:hover { background: rgba(220, 38, 38, 0.2); }
.app-years-add-form {
  display: flex;
  align-items: flex-end;
  gap: 0.75rem;
}

.overview-toolbar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem;
  padding: 0.6rem;
  border: 1px solid var(--border-color);
  border-bottom: none;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  background: var(--bg-color, #f8fafc);
}
.overview-toolbar + .form-group .overview-editable {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.ov-tb-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--white, #fff);
  color: var(--text-main);
  cursor: pointer;
  font-size: 0.85rem;
}
.ov-tb-btn:hover { background: var(--accent-surface, #eef4ff); }
.ov-tb-btn-wide { width: auto; padding: 0 0.7rem; font-size: 0.8rem; font-weight: 600; }
.ov-tb-sep {
  width: 1px;
  height: 22px;
  background: var(--border-color);
  margin: 0 0.2rem;
}
.ov-tb-color {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--white, #fff);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  font-size: 0.8rem;
  justify-content: center;
}
.ov-tb-color input[type="color"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
.ov-tb-select {
  height: 32px;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 0.8rem;
  padding: 0 0.4rem;
  background: var(--white, #fff);
}

.overview-editable {
  min-height: 220px;
  max-height: 480px;
  overflow-y: auto;
  height: auto;
  padding: 1rem 1.25rem;
  line-height: 1.55;
  cursor: text;
}
.overview-editable:focus {
  outline: 2px solid var(--primary-color, #002d72);
  outline-offset: 2px;
}

.deadline-form {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.deadline-form .form-group {
  margin-bottom: 0;
}

.users-panel-header h2 {
  margin-bottom: 0.35rem;
}

.users-stats-row {
  margin-bottom: 1.5rem;
}

.user-actions {
  min-width: max-content;
}

.badge-role {
  font-size: 0.75rem;
  white-space: nowrap;
}

/* Tüm hesap türü rozetleri (akademisyen, fakülte komisyonu, tüm fakülteler komisyonu,
   sistem yöneticisi) aynı düz stilde — sadece metin farklı, tasarım tutarlı görünsün. */
.badge-role-academic,
.badge-role-faculty_admin,
.badge-role-faculty_jury,
.badge-role-all_faculties_admin,
.badge-role-system_admin {
  background-color: var(--accent-surface);
  color: var(--heading-color);
  border: none;
}

.modal-content-wide {
  max-width: 720px;
}

.modal-content-sm {
  max-width: 440px;
}

.modal-body {
  padding: 0.25rem 0 1rem;
}

.modal-body p {
  margin-bottom: 0.6rem;
  line-height: 1.55;
}

#idle-timeout-modal .modal-header {
  border-bottom: 2px solid var(--warning-color, #f59e0b);
}

#idle-timeout-modal .modal-header h3 {
  color: var(--warning-color, #d97706);
}

.katki-tbody tr:hover td {
  background-color: #eaf8fc !important;
  transition: background-color 0.15s;
}

/* Appeal file attachment area */
.appeal-file-area {
  border: 2px dashed var(--accent-border);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.appeal-file-area:hover {
  border-color: var(--secondary-color);
  background: #f3fbfc;
}
.appeal-file-placeholder {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--text-muted);
  font-size: 0.88rem;
}
.appeal-file-placeholder i {
  font-size: 1.1rem;
  color: var(--heading-color);
}
.appeal-file-placeholder .field-help {
  margin-left: auto;
}

.activity-unit-hint {
  font-weight: 400;
  font-size: 0.82rem;
  color: var(--text-muted);
  font-style: italic;
}

/* Inline help button inside calculator row header */
.btn-row-help,
.btn-item-info {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--heading-color);
  font-size: 0.95rem;
  padding: 0 0 0 5px;
  vertical-align: middle;
  line-height: 1;
}
.btn-row-help:hover,
.btn-item-info:hover,
.btn-row-help:focus-visible,
.btn-item-info:focus-visible {
  color: #00c1d5 !important;
}

/* Multi-month research entry */
.td-multimonth {
  padding: 6px 8px !important;
}
.multimonth-col-caption {
  font-size: 0.7rem;
  color: var(--text-muted);
  font-weight: 500;
  margin-bottom: 3px;
  white-space: nowrap;
}
.multimonth-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.multimonth-entry {
  display: flex;
  align-items: center;
  gap: 4px;
}
.td-multimonth .btn-add-entry {
  display: flex;
  margin-left: auto;
  margin-right: auto;
}
/* Değer ve Katkı Oranı sütunları satır satır aynı hizada başlasın */
.calc-table td.td-multimonth {
  vertical-align: top;
}
.multimonth-entry .input-month {
  width: 70px;
  text-align: center;
  padding: 4px 6px;
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
}
.multimonth-entry .input-entry-ratio {
  width: 80px;
  text-align: center;
  padding: 4px 6px;
  border: 1px solid var(--accent-border);
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
}
/* Ay ve Katkı Oranı sütunlarındaki satırlar aynı yükseklikte hizalansın */
.td-multimonth .multimonth-entry {
  min-height: 34px;
}
.btn-add-month,
.btn-add-survey-entry {
  background: var(--primary-color);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.btn-add-month:hover,
.btn-add-survey-entry:hover {
  background: var(--secondary-color);
}
.btn-remove-month,
.btn-remove-survey-entry {
  background: #ef4444;
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.btn-remove-month:hover,
.btn-remove-survey-entry:hover {
  background: #dc2626;
}
.btn-add-entry {
  margin-top: 0.4rem;
  background: var(--primary-color);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 24px;
  height: 24px;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.btn-add-entry:hover {
  background: var(--secondary-color);
}

/* Adet bazlı katkı-oranı girişleri: chip tasarımı (Kategori 1 araştırma-dışı, Kat3, Kat4) */
.td-chip-cell {
  vertical-align: middle;
}
/* Değer + Katkı Oranı sütunları birleşik (colspan=2) hücrede, chip'ler bu birleşik
   genişliği doldursun diye ortada büyük/geniş görünür — sütun başlıklarının kapladığı
   alanla görsel olarak örtüşür. */
.entry-chip-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
/* Grid: sol denge boşluğu (chip-spacer) sağdaki "×" kaldır butonuyla aynı genişlikte —
   böylece ortadaki değer/oran çifti (chip-core) chip'in tam geometrik ortasında durur
   ve aralarındaki "×" işareti sütun sınırıyla (Değer | Katkı Oranı) hizalanır. */
.entry-chip {
  display: grid;
  grid-template-columns: 24px 1fr 24px;
  align-items: center;
  column-gap: 8px;
  background: var(--accent-surface);
  border: 1px solid var(--accent-border);
  border-radius: 999px;
  padding: 6px 10px;
  min-height: 38px;
}
/* Katkı oranı gerekmeyen kalemler (ör. Ders Yükü, Eğitim Alan Rolü): yalnızca TEK
   bir değer girilebilir. Değer henüz girilmediyse yalnızca "Ekle" butonu görünür;
   eklendiğinde diğer chip'lerle tutarlı bir pill içinde gösterilir ve buton devre
   dışı kalır (ikinci bir giriş eklenemez), "×" ile kaldırılırsa buton tekrar açılır. */
.entry-chip--single {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 8px 6px 18px;
  min-height: 38px;
}
.entry-chip--single .input-count {
  border: none;
  background: transparent;
  text-align: center;
  font-weight: 600;
  color: var(--accent-text);
  font-size: 1rem;
  padding: 2px 0;
  width: 70px;
}
.entry-chip--single .input-count:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 1px;
  border-radius: var(--radius-sm);
}
.entry-chip .chip-spacer {
  width: 24px;
  height: 1px;
}
.entry-chip .chip-core {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}
.entry-chip .btn-remove-chip {
  justify-self: end;
}
.entry-chip .input-month,
.entry-chip .input-entry-ratio,
.entry-chip .input-contributor-count {
  border: none;
  background: transparent;
  text-align: center;
  font-weight: 600;
  color: var(--accent-text);
  font-size: 1rem;
  padding: 2px 0;
  width: 52px;
}
.entry-chip .input-contributor-count {
  width: 126px;
  min-width: 0;
}
.entry-chip .input-inventor-count {
  width: 150px;
  min-width: 0;
}
.entry-chip .chip-or {
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 700;
}
.entry-chip .input-survey-score,
.entry-chip .input-survey-count {
  width: 56px;
}
@media (max-width: 640px) {
  .entry-chip .input-inventor-count {
    width: 132px;
  }
  .entry-chip .input-contributor-count:not(.input-inventor-count) {
    width: 112px;
  }
}
.entry-chip input[type="number"] {
  -moz-appearance: textfield;
}
.entry-chip input[type="number"]::-webkit-outer-spin-button,
.entry-chip input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.entry-chip .input-month:focus-visible,
.entry-chip .input-entry-ratio:focus-visible,
.entry-chip .input-contributor-count:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 1px;
  border-radius: var(--radius-sm);
}
.entry-chip .chip-x {
  font-size: 0.85rem;
  color: var(--text-muted);
}
.btn-remove-chip {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  border: none;
  background: var(--accent-surface-strong);
  color: var(--accent-text);
  font-size: 0.8rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.btn-remove-chip:hover {
  background: var(--danger-color);
  color: #fff;
}
/* Chip'lerden sonra her zaman yeni satıra geçsin diye görünmez bir "satır kes"
   öğesi (chip-linebreak) kullanılır — flex-basis:100% doğrudan butonda olursa
   buton da tam genişliğe gerer, bu yüzden ayrı bir öğeye taşındı. */
.chip-linebreak {
  flex-basis: 100%;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
}
.btn-add-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: none;
  background: var(--primary-color);
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  flex-shrink: 0;
  flex-grow: 0;
  width: fit-content;
  max-width: fit-content;
  margin: 0 auto;
}
.btn-add-chip:hover {
  background: var(--primary-light);
}
.btn-add-chip:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}
.btn-add-chip:disabled {
  background: var(--accent-surface-strong);
  color: var(--text-muted);
  cursor: not-allowed;
}
.btn-add-chip:disabled:hover {
  background: var(--accent-surface-strong);
}

#idle-countdown {
  font-size: 1.2em;
  font-weight: 700;
  color: var(--danger-color, #dc2626);
}

.table td code {
  font-size: 0.85rem;
  background: var(--surface-light);
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
}

/* Stats Row */
.stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.stats-card {
  background: var(--surface-color);
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
  padding: 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  box-shadow: var(--shadow-sm);
}

.stats-card-clickable {
  width: 100%;
  text-align: left;
  font-family: inherit;
  cursor: pointer;
  transition: var(--transition);
}
.stats-card-clickable:hover,
.stats-card-clickable:focus-visible {
  border-color: var(--accent-color);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.stats-card-clickable:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

.stats-card .icon {
  width: 50px;
  height: 50px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: white;
}

.stats-card .icon.bg-primary { background-color: var(--primary-color); }
.stats-card .icon.bg-warning { background-color: var(--warning-color); }
.stats-card .icon.bg-success { background-color: var(--success-color); }
.stats-card .icon.bg-danger { background-color: var(--danger-color); }

.stats-info {
  display: flex;
  flex-direction: column;
}

.stats-info .num {
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--heading-color);
  font-family: var(--corporate-display-font);
  line-height: 1.1;
}

.stats-info .label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
}

/* Filters */
.table-filters {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.table-filters .filter-group {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.table-filters select, .table-filters input {
  padding: 0.6rem 0.9rem;
  font-size: 0.88rem;
}

@media (max-width: 768px) {
  .table-filters {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* System configuration fields */
.config-selector {
  margin-bottom: 1.5rem;
  max-width: 100%;
}

.config-selector label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--heading-color);
  margin-bottom: 0.4rem;
}

.score-input-inline {
  max-width: 100%;
}

.select-large {
  padding: 0.9rem;
  font-size: 1.05rem;
  font-weight: 600;
  border-color: var(--primary-color);
}

/* Admin Detail application review */
.detail-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 420px);
  gap: 1.5rem;
}

.detail-main {
  display: flex;
  flex-direction: column;
}

.detail-sidebar {
  display: flex;
  flex-direction: column;
}

.stick-card {
  position: sticky;
  top: 100px;
  z-index: 0;
}

/* Düşük çözünürlüklü ve ekran ölçeklendirmesi açık dizüstülerde yan sütun,
   uzun başvuru içeriğinin altına düşüp görünmez sanılmasın. Tek sütuna
   geçildiğinde karar kartı başvuru ayrıntılarından önce gösterilir. */
@media (max-width: 1200px) {
  .detail-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }

  .detail-sidebar {
    order: -1;
    min-width: 0;
  }

  .stick-card {
    position: static;
    top: auto;
  }
}

@media (max-width: 760px) {
  #admin-detail-view .app-form-header {
    align-items: stretch;
  }

  #admin-detail-view .app-form-header h2 {
    flex-basis: 100%;
    order: -1;
  }

  #admin-detail-view .app-form-header > .status-badge {
    width: auto;
    max-width: 100%;
  }
}

/* Son kompakt ölçü: masaüstünde dar, kaydırmasız giriş kartı. */
#login-view .login-panel {
  grid-template-columns: minmax(0, 44fr) minmax(360px, 56fr);
  width: min(790px, calc(100vw - 120px)) !important;
  height: min(590px, calc(100dvh - 80px));
  max-width: 790px !important;
  max-height: 590px !important;
}

.odul-login-form-pane {
  padding: 20px 34px 16px;
  overflow: hidden;
}

#login-view .login-card {
  max-width: 330px !important;
}

#login-view .login-identity-mark img {
  width: 62px;
  height: 62px;
}

#login-view .login-header {
  margin-bottom: 0.5rem;
}

#login-view .login-header h1 {
  font-size: 1.3rem;
}

#login-view .login-form-panel input,
#login-view .login-submit,
#login-view .login-register-link-large {
  min-height: 42px;
}

#login-view .login-form-panel input {
  padding-top: 0.6rem;
  padding-bottom: 0.6rem;
}

@media (max-width: 820px) {
  #login-view .login-panel {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(90px, 23%) minmax(0, 77%);
    width: min(500px, calc(100vw - 32px)) !important;
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px) !important;
  }

  .odul-login-form-pane {
    padding: 14px 28px 12px;
  }
}

.applicant-detail-card h3 {
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 0.5rem;
  margin-bottom: 1rem;
}

.info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  font-size: 0.92rem;
}

@media (max-width: 576px) {
  .info-grid {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}

/* --- History Timeline --- */
.history-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0.25rem 0;
}
.history-entry {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  position: relative;
  padding-bottom: 1.25rem;
}
.history-entry:last-child {
  padding-bottom: 0;
}
.history-entry:last-child .history-line {
  display: none;
}
.history-dot-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 28px;
}
.history-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: white;
  flex-shrink: 0;
}
.history-dot.dot-submitted   { background: var(--primary-color); }
.history-dot.dot-resubmitted { background: #7c3aed; }
.history-dot.dot-revision_requested { background: #d97706; }
.history-dot.dot-approved    { background: #16a34a; }
.history-dot.dot-rejected    { background: #dc2626; }
.history-dot.dot-appealed    { background: #ea580c; }
.history-line {
  width: 2px;
  flex: 1;
  min-height: 20px;
  background: #e5e7eb;
  margin-top: 4px;
}
.history-body {
  flex: 1;
  padding-top: 2px;
}
.history-action {
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 2px;
}
.history-meta {
  font-size: 0.8rem;
  color: #6b7280;
  margin-bottom: 4px;
}
.history-note {
  font-size: 0.85rem;
  color: #374151;
  background: #f9fafb;
  border-left: 3px solid #e5e7eb;
  padding: 0.4rem 0.7rem;
  border-radius: 0 6px 6px 0;
  margin-top: 4px;
  white-space: pre-wrap;
}

.documents-list-view {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.doc-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.9rem 1.2rem;
  background: var(--bg-color);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
}

.doc-icon {
  font-size: 1.8rem;
  color: var(--danger-color);
}

.doc-details {
  flex: 1;
}

.doc-details strong {
  display: block;
  font-size: 0.9rem;
}

.doc-details p {
  font-size: 0.78rem;
  color: var(--success-color);
  font-weight: 600;
}

.score-summary-box {
  background: var(--bg-color);
  border-radius: var(--radius-sm);
  padding: 1.25rem;
  margin-bottom: 1.5rem;
}

.summary-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  margin-bottom: 0.5rem;
}

.action-buttons-vertical {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1rem;
}

.ranking-context-box {
  background: #fff8e6;
  border: 1px solid #f0d894;
  border-radius: var(--radius-sm);
  padding: 1rem;
  margin-bottom: 1.5rem;
}

.ranking-context-box.is-winner {
  background: #eafaf0;
  border-color: #a9e6c0;
}

.ranking-context-title {
  font-weight: 700;
  font-size: 0.85rem;
  margin: 0 0 0.4rem;
  color: #7a5b00;
}

.ranking-context-box.is-winner .ranking-context-title {
  color: #1f7a45;
}

.ranking-context-text {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 0 0.35rem;
}

.ranking-context-note {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin: 0;
}

/* Modal / Appeal dialog */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 45, 114, 0.4);
  backdrop-filter: blur(4px);
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow-y: auto;
}

.modal-content {
  background: var(--surface-color);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  max-width: 600px;
  width: 90%;
  padding: 2rem;
  position: relative;
  animation: slideUp 0.3s ease-out;
  margin: auto 0;
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border-color);
  padding-bottom: 0.75rem;
  margin-bottom: 1.5rem;
}

.modal-header h3 {
  margin-bottom: 0;
}

.btn-close {
  background: none;
  border: none;
  font-size: 1.7rem;
  cursor: pointer;
  color: var(--text-muted);
  min-width: 44px;
  min-height: 44px;
  border-radius: var(--radius-sm);
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  margin-top: 1.5rem;
  border-top: 1px solid var(--border-color);
  padding-top: 1rem;
}

/* Footer */
.footer {
  text-align: center;
  padding: 0.55rem 1rem;
  background: var(--deep-navy-2);
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.72rem;
  margin-top: auto;
  border-top: 1px solid var(--accent-border);
}

/* Animations */
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateX(40px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes toastDropIn {
  from {
    opacity: 0;
    transform: translateY(-24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes floatSoft {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes loginPanelIntro {
  0% {
    opacity: 0;
    clip-path: inset(0% 0% 100% 0% round 24px);
  }
  30% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    clip-path: inset(0% 0% 0% 0% round 24px);
  }
}

@keyframes loginShimmer {
  0% {
    left: -60%;
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  100% {
    left: 130%;
    opacity: 0;
  }
}

@keyframes logoSpinIn {
  0% {
    opacity: 0;
    filter: blur(18px);
    transform: scale(1.06);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
  }
}

@keyframes loginShowcaseIntro {
  0% {
    opacity: 0;
    transform: translateX(52px) scale(0.985);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

@keyframes loginContentFade {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsive layout enhancements */
.tab-btn.hidden {
  display: none !important;
}

@media (max-width: 992px) {
  .login-shell {
    grid-template-columns: 1fr;
  }

  .login-panel {
    padding: 2rem 1rem;
  }

  .login-card {
    max-width: 560px;
    padding: 0;
  }

  nav {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .main-content {
    padding: 1.25rem;
  }

  header {
    padding: 0.8rem 1rem;
  }

  .header-container {
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: flex-start;
  }

  header .header-container nav {
    width: 100%;
    justify-content: flex-start;
  }

  .logo {
    font-size: 1.15rem;
  }

  .app-form-header {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .app-form-header h2 {
    font-size: 1.25rem;
  }

  .calc-header-summary {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }

  .score-badge-large {
    width: 100%;
    text-align: center;
  }

  .form-actions {
    flex-direction: column;
    gap: 0.75rem;
  }

  .action-buttons-right {
    flex-direction: column;
    width: 100%;
  }

  .action-buttons-right .btn {
    width: 100%;
  }

  .stick-card {
    position: static;
  }

  .docs-admin-header {
    flex-direction: column;
    align-items: stretch;
  }

  .doc-admin-item {
    flex-direction: column;
    align-items: stretch;
  }

  .doc-admin-actions {
    justify-content: flex-end;
  }
}

@media (max-width: 768px) {
  #login-view,
  #register-view {
    min-height: auto;
  }

  /* Kayıt formu küçük ekranlarda görünür alandan daha uzundur. Paneli sabit
     yükseklikte kırpmak yerine sayfanın doğal olarak kaymasına izin ver. */
  #register-view .login-shell {
    align-items: flex-start;
    overflow: visible !important;
  }

  #register-view .login-panel {
    max-height: none;
    overflow: visible;
  }

  .login-panel {
    padding: 2rem 1rem;
    opacity: 1;
    transform: none;
  }

  .login-header h1 {
    font-size: 1.05rem;
  }

  .login-identity-mark,
  .login-header-centered,
  .login-form-panel .form-group,
  .login-submit,
  .login-register-link-large,
  .login-register-note,
  .login-links,
  .login-card-footer {
    opacity: 1;
    transform: none;
  }

  .login-stats {
    grid-template-columns: 1fr;
  }

  .progress-steps {
    flex-direction: column;
    gap: 1rem;
    max-width: 100%;
    margin-bottom: 2rem;
  }

  .progress-steps::after {
    display: none;
  }

  .progress-steps .step {
    flex-direction: row;
    justify-content: flex-start;
    gap: 0.75rem;
    width: 100%;
  }

  .progress-steps .step-text {
    margin-top: 0;
    text-align: left;
  }

  .admin-tabs {
    flex-direction: column;
  }

  .tab-btn {
    width: 100%;
    text-align: left;
  }

  .card {
    padding: 1.25rem;
  }

  .table-mobile-stack {
    min-width: 100%;
    border-collapse: separate;
    border-spacing: 0;
  }

  .table-mobile-stack thead,
  .table-mobile-stack caption.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .table-mobile-stack tbody,
  .table-mobile-stack tr,
  .table-mobile-stack td,
  .table-mobile-stack th[scope="row"] {
    display: block;
    width: 100%;
  }

  .table-mobile-stack tbody tr {
    display: block;
    margin-bottom: 1rem;
    border: 1.5px solid var(--border-color);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--white);
    padding: 0.9rem 1.2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
    width: 100%;
    box-sizing: border-box;
  }

  .table-mobile-stack tbody td:last-child,
  .table-mobile-stack tbody th[scope="row"]:last-child {
    border-bottom: none;
  }

  .table-mobile-stack tbody td::before,
  .table-mobile-stack tbody th[scope="row"]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.3rem;
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
  }

  .table-mobile-stack .action-buttons-row,
  .table-mobile-stack .admin-app-actions {
    flex-wrap: wrap;
  }

  .table-mobile-stack .action-buttons-row .btn,
  .table-mobile-stack .admin-app-actions .btn {
    flex: 1 1 100%;
    width: 100%;
  }

  .toast-container {
    top: 1rem;
    left: 50%;
    width: calc(100vw - 2rem);
  }

  .evidence-row-uploader {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }

  .evidence-row-uploader .activity-label {
    max-width: 100%;
  }

  .doc-item {
    flex-wrap: wrap;
  }

  .excel-color-guide {
    flex-direction: column;
    gap: 0.5rem;
  }
}

@media (max-width: 576px) {
  .main-content {
    padding: 1rem 0.75rem;
  }

  .footer {
    padding: 0.8rem 0.75rem;
    font-size: 0.7rem;
  }

  .table th,
  .table td {
    padding: 0.65rem 0.75rem;
    font-size: 0.82rem;
  }

  .modal-content {
    width: 95%;
    padding: 1.25rem;
    max-height: 90vh;
    overflow-y: auto;
  }

  .modal {
    align-items: flex-start;
    padding: 0.75rem;
  }

  .stats-row {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}




/* ══════════════════════════════════════════════════════════════════════════
   KARANLIK MOD (Dark Mode)
   <html data-theme="dark"> ile etkinleştirilir (bkz. app.js initTheme/setTheme).
   Yalnızca giriş sonrası uygulama arayüzünü kapsar; giriş/kayıt ekranları
   marka kimliği gereği her zaman aynı (aydınlık, kurumsal) görünümde kalır —
   zaten tema butonu yalnızca oturum açıkken görünen üst menüde yer alır.
   ══════════════════════════════════════════════════════════════════════════ */
[data-theme="dark"] {
  --white: var(--surface-color); /* Beyaz zemin varsayan onlarca gradyan/arkaplan kuralı otomatik uyum sağlasın diye */
  --primary-light: rgb(96, 150, 220);
  --accent-color: rgb(56, 214, 232);
  --accent-hover: rgb(84, 224, 240);
  --accent-surface: #1b2436;
  --accent-surface-strong: #232f47;
  --accent-border: #3a4863;
  --accent-text: rgb(120, 170, 230);
  --accent-shadow: rgba(0, 0, 0, 0.35);
  --heading-color: rgb(130, 178, 235);

  --success-color: #34d399;
  --warning-color: #fbbf24;
  --danger-color: #f87171;
  --success-surface: rgba(52, 211, 153, 0.15);

  --bg-color: #10151f;
  --card-bg: rgba(24, 30, 42, 0.96);
  --surface-color: #1a212f;
  --surface-light: #202838;
  --muted-surface: #232b3b;
  --text-main: #e2e8f0;
  --text-color: #e2e8f0;
  --text-muted: #94a3b8;
  --border-color: #2c3547;
  --table-border: rgba(226, 232, 240, 0.1);

  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.45);
  --shadow-lg: 0 20px 50px rgba(0, 0, 0, 0.55);
  --bg-gradient: linear-gradient(135deg, #10151f 0%, #131a26 50%, #0d121a 100%);

  --excel-pink: rgba(239, 68, 68, 0.14);
  --excel-pink-border: rgba(239, 68, 68, 0.38);
  --excel-blue: rgba(56, 214, 232, 0.12);
  --excel-blue-border: rgba(56, 214, 232, 0.4);
}

[data-theme="dark"] body {
  color: var(--text-main);
}

[data-theme="dark"] .card {
  border-color: rgba(255, 255, 255, 0.06);
}

/* Form alanları: girişte kullanılan genel input/select/textarea kuralı zaten
   var(--border-color) kullanıyor ama arkaplanı beyazdı; karanlıkta yüzey rengine döner. */
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] select,
[data-theme="dark"] textarea {
  background-color: var(--surface-color);
  color: var(--text-main);
  border-color: var(--border-color);
}

[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
  color: var(--text-muted);
  opacity: 0.8;
}

/* Durum bildirim kartları (status-notice-card): pastel açık zeminler yerine
   aynı renk tonunun düşük opaklıklı koyu karşılığı kullanılır. */
[data-theme="dark"] .status-notice-card.snc-info {
  background: rgba(59, 130, 246, 0.14);
  border-color: rgba(59, 130, 246, 0.35);
  color: #bfdbfe;
}
[data-theme="dark"] .status-notice-card.snc-jury {
  background: rgba(124, 58, 237, 0.16);
  border-color: rgba(167, 139, 250, 0.38);
  color: #ddd6fe;
}
[data-theme="dark"] .status-notice-card.snc-warning {
  background: rgba(245, 158, 11, 0.14);
  border-color: rgba(245, 158, 11, 0.35);
  color: #fde68a;
}
[data-theme="dark"] .status-notice-card.snc-success {
  background: rgba(34, 197, 94, 0.14);
  border-color: rgba(34, 197, 94, 0.35);
  color: #bbf7d0;
}
[data-theme="dark"] .status-notice-card.snc-danger {
  background: rgba(239, 68, 68, 0.14);
  border-color: rgba(239, 68, 68, 0.35);
  color: #fecdd3;
}

[data-theme="dark"] .revision-waiting-notice {
  background: rgba(245, 158, 11, 0.13);
  border-color: rgba(245, 158, 11, 0.48);
  border-left-color: #fbbf24;
  color: #fde68a;
}

[data-theme="dark"] .revision-deadline-panel {
  background: rgba(69, 44, 4, 0.5);
  border-color: rgba(251, 191, 36, 0.38);
  color: #fef3c7;
}

@media (max-width: 640px) {
  .revision-deadline-panel,
  .revision-waiting-notice #revision-expired-action {
    margin-left: 0;
  }
}

/* Değerlendirme ekranındaki "olası sıralama" bağlam kutusu */
[data-theme="dark"] .ranking-context-box {
  background: rgba(183, 149, 11, 0.14);
  border-color: rgba(183, 149, 11, 0.4);
}
[data-theme="dark"] .ranking-context-box .ranking-context-title {
  color: #f0d894;
}
[data-theme="dark"] .ranking-context-box.is-winner {
  background: rgba(52, 211, 153, 0.14);
  border-color: rgba(52, 211, 153, 0.4);
}
[data-theme="dark"] .ranking-context-box.is-winner .ranking-context-title {
  color: #86efac;
}

/* Fakülte karşılaştırma tablosunda "hiç başvuru yok" satırı */
[data-theme="dark"] .faculty-comparison-inactive {
  background: rgba(239, 68, 68, 0.1);
}
[data-theme="dark"] .faculty-comparison-inactive th {
  color: #f28b82;
}

/* İstatistik KPI kartları ve grafik kartları zaten var(--bg-color)/var(--card-bg)
   kullanıyor; yalnızca kenar rengi hafifçe belirginleştirilir. */
[data-theme="dark"] .stats-kpi-card,
[data-theme="dark"] .stats-chart-card {
  border: 1px solid var(--border-color);
}

/* Destek sohbeti: karşı tarafın baloncuğu artık koyu yüzey üzerinde okunur olsun */
[data-theme="dark"] .support-msg--other .support-msg-bubble {
  background: var(--surface-light);
  border-color: var(--border-color);
}

/* Tablo satır vurgusu (hover) karanlıkta da fark edilir olsun */
[data-theme="dark"] .table tbody tr:hover {
  background-color: rgba(255, 255, 255, 0.04);
}

/* Kaydırma çubuğu (yalnızca WebKit/Blink) — küçük ama profesyonel bir detay */
[data-theme="dark"] ::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
[data-theme="dark"] ::-webkit-scrollbar-track {
  background: var(--bg-color);
}
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: #384258;
  border-radius: 8px;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
  background: #47536e;
}

/* Tema geçiş animasyonu göz yormasın diye yumuşatılır */
body, .card, .modal-content, input, textarea, select, .table, .status-notice-card {
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

/* Üst menüdeki tema değiştirme butonu */
.theme-toggle-btn {
  background: none;
  border: none;
  color: var(--text-on-accent);
  font-size: 1.15rem;
  cursor: pointer;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease;
}
.theme-toggle-btn:hover {
  background: rgba(255, 255, 255, 0.12);
}

/* Giriş ekranındaki tema butonu: koyu lacivert üst menü yerine açık renkli
   giriş kartı üzerinde oturduğundan zıt renk şeması kullanır. */
.theme-toggle-btn-login {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 5;
  color: var(--text-muted);
  background: var(--surface-color);
  border: 1.5px solid var(--border-color);
  width: 38px;
  height: 38px;
  font-size: 1rem;
}
.theme-toggle-btn-login:hover {
  color: var(--heading-color);
  background: var(--surface-color);
}

/* Giriş/kayıt ekranı: dış kabuk (login-shell) zaten kurumsal koyu lacivert
   olduğundan değişmiyor; yalnızca üstteki parlak cam panel ve form alanları
   karanlık moda uyarlanıyor. */
[data-theme="dark"] .login-panel {
  background: rgba(20, 26, 38, 0.94);
  border-color: rgba(255, 255, 255, 0.1);
}
[data-theme="dark"] .login-input-plain input,
[data-theme="dark"] .login-input-plain select,
[data-theme="dark"] .login-input-password input {
  background: var(--surface-color);
  color: var(--text-main);
  border-color: var(--border-color);
}
[data-theme="dark"] .login-input-plain input:focus,
[data-theme="dark"] .login-input-plain select:focus,
[data-theme="dark"] .login-input-password input:focus {
  background: var(--surface-color);
}
[data-theme="dark"] .login-lang-switch {
  background: var(--surface-color);
  border-color: var(--border-color);
}

/* Kalan "soluk" (washed-out) pastel yüzeyler: bildirim (toast) kutuları, kullanıcı
   menüsü hover'ları, hesap makinesi tablosu satır vurgusu, itiraz dosya alanı,
   işlem geçmişi notu, dokümanlar bilgilendirme banneri. */
/* Toast'lar sayfanın herhangi bir yerinde (giriş ekranı dahil) yarı saydam bir
   zemin üzerinde belirebildiğinden, düşük opaklıklı rgba tonlar burada "hayalet
   kutu" gibi neredeyse görünmez kalıyordu. Işık modundaki gibi TAM OPAK, düz
   renkli kartlar kullanılıyor ki bildirim her arka planda net okunsun. */
[data-theme="dark"] .toast {
  border-color: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .toast-success { background: #16302a; }
[data-theme="dark"] .toast-error   { background: #351d1d; }
[data-theme="dark"] .toast-warning { background: #372c14; }

[data-theme="dark"] .user-dropdown-item:hover {
  background: var(--muted-surface);
}
[data-theme="dark"] .user-dropdown-item-danger:hover {
  background: rgba(239, 68, 68, 0.14);
}

[data-theme="dark"] .katki-tbody tr:hover td {
  background-color: rgba(56, 214, 232, 0.1) !important;
}
[data-theme="dark"] .appeal-file-area:hover {
  background: var(--accent-surface);
}

[data-theme="dark"] .history-note {
  color: var(--text-main);
  background: var(--muted-surface);
  border-left-color: var(--border-color);
}
[data-theme="dark"] .history-line {
  background: var(--border-color);
}

[data-theme="dark"] .docs-info-banner {
  background: linear-gradient(180deg, var(--surface-color) 0%, var(--accent-surface) 100%);
  border-color: var(--accent-border);
  color: var(--accent-text);
}

[data-theme="dark"] .support-window .support-form .btn-icon-plain:hover {
  background: var(--accent-surface-strong);
}

[data-theme="dark"] .alert-warning {
  border-color: var(--accent-border);
}

/* "Önemli Not" vurgulu satırı ve AVESİS beyan uyarısı: önceden satır içi
   (inline) style ile sabitlenmiş kırmızı-üzerine-beyazdı; artık sınıf
   üzerinden tanımlanıp karanlık modda okunabilir bir karşılığı var. */
.guide-alert-row {
  background-color: #fff5f5;
}
.guide-alert-cell {
  color: #c0392b;
}
[data-theme="dark"] .guide-alert-row {
  background-color: rgba(239, 68, 68, 0.14);
}
[data-theme="dark"] .guide-alert-cell {
  color: #fca5a5;
}

/* .form-group label (0,1,1 özgüllük) rengi ezmesin diye .form-group label.avesis-ack-label
   (0,2,1) olarak yazıldı — yalnızca .avesis-ack-label (0,1,0) yeterli özgüllüğe sahip değildi */
.form-group label.avesis-ack-label {
  color: #c0392b;
}
[data-theme="dark"] .form-group label.avesis-ack-label {
  color: #fca5a5;
}

/* Onaylanmış başvuru bildirimi: kazanan/sıralama bilgisi içermez (sonuç
   ilanı ayrıca komisyonlar tarafından yapılır), yalnızca daha sıcak/
   kutlama havası taşıyan nötr bir "onaylandı" görsel dili sunar. */
.status-notice-card.snc-celebration {
  position: relative;
  align-items: flex-start;
  padding: 1.35rem 1.5rem;
  border-left-width: 5px;
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.10) 0%, rgba(16, 185, 129, 0.03) 100%);
  overflow: hidden;
}
.status-notice-card.snc-celebration::after {
  content: '';
  position: absolute;
  top: -30%;
  right: -8%;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.16) 0%, transparent 70%);
  pointer-events: none;
}
.status-notice-card.snc-celebration .snc-icon {
  font-size: 2.1rem;
  color: var(--success-color);
  background: rgba(16, 185, 129, 0.14);
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.status-notice-card.snc-celebration .snc-body strong {
  font-size: 1.15rem;
  display: block;
  margin-bottom: 0.25rem;
}

/* Admin: "KAZANAN" rozeti — geneldeki yeşil onay rozetinden ayırt edilsin
   diye altın tonlu, hafif parıltılı ayrı bir görsel dil kullanır. */
.badge-winner {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: linear-gradient(135deg, #f5c451 0%, #d89b1f 100%);
  color: #4a3200;
  font-weight: 700;
  box-shadow: 0 1px 4px rgba(184, 134, 11, 0.4);
}
[data-theme="dark"] .badge-winner {
  background: linear-gradient(135deg, #e0ac2f 0%, #b8860b 100%);
  color: #2a1c00;
}

[data-theme="dark"] .status-notice-card.snc-celebration {
  background: linear-gradient(135deg, rgba(52, 211, 153, 0.16) 0%, rgba(52, 211, 153, 0.04) 100%);
  border-color: rgba(52, 211, 153, 0.4);
}
[data-theme="dark"] .status-notice-card.snc-celebration::after {
  background: radial-gradient(circle, rgba(52, 211, 153, 0.2) 0%, transparent 70%);
}
[data-theme="dark"] .status-notice-card.snc-celebration .snc-icon {
  background: rgba(52, 211, 153, 0.18);
}

/* ── Doküman Önizleme Modali ── */
.doc-preview-modal-content {
  max-width: 900px;
  width: 92vw;
  display: flex;
  flex-direction: column;
  max-height: 90vh;
}
.doc-preview-body {
  flex: 1;
  overflow: hidden;
  padding: 0;
}
.doc-preview-frame-wrap {
  width: 100%;
  height: min(70vh, 780px);
  background: var(--bg-color);
  border-radius: var(--radius-sm);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.doc-preview-iframe {
  width: 100%;
  height: 100%;
  border: none;
  background: white;
}
.doc-preview-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
@media (max-width: 768px) {
  .doc-preview-frame-wrap {
    height: min(60vh, 520px);
  }
}

/* Metin bağlantıları uygulama genelinde aynı geri bildirimle çalışır.
   .btn sınıfı taşıyan bağlantılar, buton tasarımını korur. */
a:not(.btn):not([role="button"]):not(.login-register-link-large) {
  transition: color 0.18s ease;
}

a:not(.btn):not([role="button"]):not(.login-register-link-large):hover,
a:not(.btn):not([role="button"]):not(.login-register-link-large):focus-visible {
  color: var(--accent-color) !important;
}

/* ── Dışa Aktarım Merkezi ─────────────────────────────────────────────── */
.export-center-heading,
.export-result-bar,
.export-format-card {
  display: flex;
  align-items: center;
}
.export-center-heading { justify-content: space-between; gap: 1.5rem; margin-bottom: 1.4rem; }
.export-center-heading p { margin: .35rem 0 0; color: var(--text-muted); max-width: 760px; }
.export-center-icon {
  flex: 0 0 54px; width: 54px; height: 54px; display: grid; place-items: center;
  border-radius: 16px; color: #fff; font-size: 1.35rem;
  background: linear-gradient(135deg, #1b3a6b, #2d5b9b);
}
.export-filter-grid {
  display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 1rem;
  padding: 1.2rem; border: 1px solid var(--border-color); border-radius: var(--radius-md);
  background: var(--bg-color);
}
.export-filter-wide { grid-column: span 2; }
.export-filter-grid .filter-group { margin: 0; }
.export-result-bar { justify-content: space-between; gap: 1rem; margin: 1rem 0; padding: .8rem 1rem; border-radius: var(--radius-sm); background: rgba(27, 58, 107, .08); color: var(--primary-color); font-weight: 700; }
.export-format-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.export-format-card { align-items: flex-start; gap: 1rem; padding: 1.2rem; border: 1px solid var(--border-color); border-radius: var(--radius-md); background: var(--card-bg); }
.export-format-card > div:nth-child(2) { flex: 1; }
.export-format-card h3 { margin: 0 0 .35rem; font-size: 1.05rem; }
.export-format-card p { margin: 0; color: var(--text-muted); line-height: 1.5; }
.export-format-icon { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 12px; font-size: 1.35rem; }
.export-format-pdf .export-format-icon { color: #b42318; background: #fee4e2; }
.export-format-excel .export-format-icon { color: #067647; background: #d1fadf; }
.export-format-card .btn { align-self: center; white-space: nowrap; }
@media (max-width: 900px) {
  .export-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .export-format-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .export-filter-grid { grid-template-columns: 1fr; }
  .export-filter-wide { grid-column: auto; }
  .export-result-bar, .export-format-card { align-items: stretch; flex-direction: column; }
  .export-format-card .btn { align-self: stretch; }
}

/* ══════════════════════════════════════════════════════════════════════════
   AYBÜ EXECUTIVE — senato sunumu için kurumsal arayüz iyileştirmesi
   İş akışını değiştirmez; yüzey, hiyerarşi ve responsive davranışı güçlendirir.
   ══════════════════════════════════════════════════════════════════════════ */
:root {
  --executive-navy: #061a33;
  --executive-navy-2: #0a2b55;
  --executive-cyan: #00b9ce;
  --executive-gold: #c8a45d;
  --executive-page: #f3f6fa;
  --executive-line: rgba(6, 42, 83, 0.12);
  --executive-shadow: 0 18px 48px rgba(6, 26, 51, 0.10);
  --executive-shadow-hover: 0 24px 60px rgba(6, 26, 51, 0.15);
}

body:not(.login-screen-active) {
  background:
    radial-gradient(circle at 92% 2%, rgba(0, 185, 206, 0.09), transparent 28rem),
    radial-gradient(circle at 4% 28%, rgba(6, 42, 83, 0.055), transparent 24rem),
    var(--executive-page);
}

#main-header {
  position: sticky;
  top: 0;
  z-index: 500;
  background: linear-gradient(112deg, var(--executive-navy) 0%, #082448 58%, #0b315b 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.13);
  box-shadow: 0 10px 30px rgba(3, 17, 34, 0.18);
}

#main-header::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: linear-gradient(90deg, transparent 0%, var(--executive-cyan) 34%, #6ce6ef 50%, var(--executive-gold) 72%, transparent 100%);
  opacity: 0.78;
}

#main-header .header-logo-mark {
  filter: drop-shadow(0 5px 10px rgba(0, 0, 0, 0.24));
}

.main-content {
  max-width: 1760px;
  padding: clamp(1rem, 2.2vw, 2.35rem);
}

.card {
  border: 1px solid var(--executive-line);
  border-radius: 18px;
  box-shadow: var(--executive-shadow);
  backdrop-filter: none;
}

.card:hover {
  border-color: rgba(0, 111, 140, 0.22);
  box-shadow: var(--executive-shadow-hover);
}

.section-header h2,
.app-form-header h2,
.admin-sidebar-header strong {
  letter-spacing: -0.025em;
}

.section-header h2::after,
.app-form-header h2::after {
  content: '';
  display: block;
  width: 52px;
  height: 3px;
  margin-top: 0.55rem;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--executive-cyan), var(--executive-gold));
}

.profile-card {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 45%),
    linear-gradient(145deg, var(--executive-navy-2), var(--executive-navy));
  border-radius: 20px;
  box-shadow: 0 22px 50px rgba(6, 26, 51, 0.23);
}

.profile-card::after {
  content: '';
  position: absolute;
  width: 150px;
  height: 150px;
  right: -70px;
  bottom: -85px;
  border: 1px solid rgba(108, 230, 239, 0.26);
  border-radius: 50%;
  box-shadow: 0 0 0 22px rgba(108, 230, 239, 0.045), 0 0 0 46px rgba(200, 164, 93, 0.035);
  pointer-events: none;
}

.sidebar-nav {
  gap: 0.55rem;
}

.sidebar-btn {
  justify-content: flex-start;
  text-align: left;
  min-height: 50px;
  border: 1px solid rgba(6, 42, 83, 0.14);
  border-radius: 13px;
  box-shadow: 0 5px 16px rgba(6, 26, 51, 0.055);
}

.sidebar-btn:hover {
  padding: 0.9rem 1.2rem;
  border-color: rgba(0, 185, 206, 0.5);
  transform: translateX(3px);
}

.sidebar-btn.active,
.sidebar-btn.btn-accent {
  background: linear-gradient(135deg, var(--executive-navy-2), var(--executive-navy));
  border-color: transparent;
}

.stats-card,
.stats-kpi-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--executive-line);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 30px rgba(6, 26, 51, 0.075);
}

.stats-card::after,
.stats-kpi-card::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 3px;
  background: linear-gradient(90deg, var(--executive-cyan), rgba(0, 185, 206, 0));
  opacity: 0.75;
}

.stats-card .icon {
  background: linear-gradient(145deg, var(--executive-navy-2), var(--executive-navy)) !important;
  box-shadow: 0 8px 18px rgba(6, 26, 51, 0.19);
}

.app-form-container {
  width: min(100%, 1480px);
  max-width: 1480px;
}

.app-form-header {
  position: relative;
  padding: 1.25rem 1.4rem;
  margin-bottom: 1.4rem;
  border: 1px solid rgba(6, 42, 83, 0.12);
  border-radius: 18px;
  background:
    linear-gradient(100deg, rgba(255, 255, 255, 0.98), rgba(244, 249, 252, 0.96)),
    var(--surface-color);
  box-shadow: 0 12px 34px rgba(6, 26, 51, 0.08);
}

.app-form-header::before {
  content: '';
  width: 5px;
  align-self: stretch;
  flex: 0 0 5px;
  border-radius: 999px;
  background: linear-gradient(180deg, var(--executive-cyan), var(--executive-gold));
}

.progress-steps {
  max-width: 880px;
  margin-bottom: 2rem;
  padding: 0.85rem 1.15rem;
  border: 1px solid rgba(6, 42, 83, 0.1);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
  box-shadow: 0 10px 30px rgba(6, 26, 51, 0.065);
}

.progress-steps::after {
  top: 35px;
  left: 8%;
  width: 84%;
  height: 2px;
  background: linear-gradient(90deg, rgba(0, 185, 206, 0.32), rgba(6, 42, 83, 0.12));
}

.progress-steps .step-num {
  width: 42px;
  height: 42px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(6, 26, 51, 0.08);
}

.progress-steps .step.active .step-num {
  border-color: var(--executive-cyan);
  background: var(--executive-navy-2);
  box-shadow: 0 0 0 5px rgba(0, 185, 206, 0.13), 0 8px 18px rgba(6, 26, 51, 0.2);
}

.progress-steps .step.completed .step-num {
  border-color: #07835e;
  background: #07835e;
}

#application-form-view .step-content > .card {
  border-top: 4px solid var(--executive-navy-2);
}

.calc-header-summary {
  gap: 1.25rem;
  padding-bottom: 1.2rem;
}

.score-badge-large {
  min-width: 210px;
  padding: 0.9rem 1.35rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-right: 0;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--executive-navy-2), var(--executive-navy));
  box-shadow: 0 14px 30px rgba(6, 26, 51, 0.22);
}

.score-badge-large::after {
  content: '';
  position: absolute;
}

.calc-table {
  border: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 0 0 1px var(--executive-line);
}

.calc-table thead th {
  color: #fff;
  background: linear-gradient(135deg, var(--executive-navy-2), var(--executive-navy));
  border-color: rgba(255, 255, 255, 0.12);
  font-size: 0.86rem;
  letter-spacing: 0.01em;
}

.calc-table tbody tr:not(.tr-total):hover > * {
  background-color: rgba(0, 185, 206, 0.075) !important;
}

.td-input {
  background: #fff7f5 !important;
  border-color: #f1d9d2 !important;
}

.td-calculated {
  background: #eef8fb !important;
  border-color: #c5e6eb !important;
  color: var(--executive-navy-2);
}

.form-actions {
  position: sticky;
  z-index: 40;
  bottom: 0.75rem;
  align-items: center;
  margin: 2rem -0.4rem -0.4rem;
  padding: 0.9rem;
  border: 1px solid rgba(6, 42, 83, 0.12);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 14px 38px rgba(6, 26, 51, 0.13);
  backdrop-filter: blur(14px);
}

.btn {
  border-radius: 11px;
  letter-spacing: -0.005em;
}

.btn-primary,
.btn-success {
  box-shadow: 0 8px 20px rgba(6, 26, 51, 0.16);
}

.btn-primary {
  background: linear-gradient(135deg, var(--executive-navy-2), var(--executive-navy));
}

/* Küçük dizüstü ve yüksek ekran ölçeklendirmesi: faaliyet tablosu kartlara
   dönüşür. Böylece taşan içerik body overflow-x tarafından kırpılmaz. */
@media (max-width: 1100px) {
  #application-form-view .table-responsive {
    overflow: visible;
  }

  #calculator-table,
  #calculator-table tbody {
    display: block;
    width: 100%;
    min-width: 0;
  }

  #calculator-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  #calculator-table tbody tr:not(.tr-total) {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr) minmax(105px, 0.34fr);
    align-items: stretch;
    width: 100%;
    margin-bottom: 0.8rem;
    border: 1px solid rgba(6, 42, 83, 0.13);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 7px 20px rgba(6, 26, 51, 0.07);
  }

  #calculator-table tbody tr:not(.tr-total) > th,
  #calculator-table tbody tr:not(.tr-total) > td {
    display: flex;
    min-width: 0;
    width: auto;
    border: 0 !important;
    border-right: 1px solid rgba(6, 42, 83, 0.1) !important;
    padding: 0.9rem;
  }

  #calculator-table tbody tr:not(.tr-total) > th {
    align-items: center;
    background: linear-gradient(105deg, #f8fbfd, #f1f6f9);
    color: var(--executive-navy-2);
    line-height: 1.45;
  }

  #calculator-table tbody tr:not(.tr-total) > td {
    flex-direction: column;
    justify-content: center;
  }

  #calculator-table tbody tr:not(.tr-total) > td:last-child {
    align-items: center;
    text-align: center;
    border-right: 0 !important;
    font-size: 1.05rem;
  }

  #calculator-table .entry-chip-container,
  #calculator-table .entry-chip,
  #calculator-table .chip-core {
    max-width: 100%;
  }

  #calculator-table .tr-total {
    display: grid;
    grid-template-columns: 1fr minmax(120px, 0.25fr);
    border-radius: 13px;
    overflow: hidden;
  }

  #calculator-table .tr-total > td {
    display: block;
    width: auto;
  }
}

@media (max-width: 720px) {
  .main-content {
    padding: 0.85rem;
  }

  .app-form-header {
    padding: 1rem;
  }

  .app-form-header::before {
    width: 4px;
    flex-basis: 4px;
  }

  .progress-steps {
    gap: 0.55rem;
    padding: 0.75rem;
  }

  .progress-steps .step {
    min-height: 46px;
    padding: 0.35rem 0.45rem;
    border-radius: 11px;
    background: rgba(6, 42, 83, 0.035);
  }

  .progress-steps .step.active {
    background: rgba(0, 185, 206, 0.1);
  }

  #application-form-view .step-content > .card {
    padding: 1rem;
    border-radius: 15px;
  }

  #calculator-table tbody tr:not(.tr-total) {
    display: block;
  }

  #calculator-table tbody tr:not(.tr-total) > th,
  #calculator-table tbody tr:not(.tr-total) > td {
    width: 100%;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(6, 42, 83, 0.09) !important;
  }

  #calculator-table tbody tr:not(.tr-total) > td::before {
    display: block;
    margin-bottom: 0.45rem;
    color: var(--text-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    text-transform: uppercase;
  }

  #calculator-table tbody tr:not(.tr-total) > td:last-child {
    align-items: flex-start;
    text-align: left;
    border-bottom: 0 !important;
  }

  .calc-header-summary {
    align-items: stretch;
  }

  .score-badge-large {
    min-width: 0;
  }

  .form-actions {
    bottom: 0.4rem;
    margin-left: 0;
    margin-right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar-btn:hover,
  .stats-card-clickable:hover,
  .btn:hover {
    transform: none;
  }
}

/* AYBÜ VİTRİN — Hafıza ile ortak görsel dil */
#login-view .login-shell {
  min-height: calc(100dvh - var(--header-height, 0px));
  padding: clamp(18px, 3vw, 38px) !important;
  overflow: auto !important;
}
#login-view .login-panel {
  display: grid !important;
  grid-template-columns: minmax(0,47fr) minmax(470px,53fr);
  width: min(1180px,calc(100vw - 48px)) !important;
  max-width: 1180px !important;
  min-height: min(750px,calc(100dvh - 76px));
  max-height: none !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid rgba(6,42,83,.13) !important;
  border-radius: 24px !important;
  background: #fff !important;
  box-shadow: 0 34px 90px rgba(6,26,51,.18) !important;
}
#login-view .login-panel::before,#login-view .login-panel::after { display:none !important; }
.odul-login-visual {
  position:relative; min-width:0; min-height:690px; overflow:hidden; isolation:isolate;
  border-right:1px solid rgba(6,42,83,.12); background:#062a53;
}
.odul-login-visual::before {
  position:absolute; inset:0; z-index:-2; content:'';
  background:url('/img/login-campus-building-framed-20260930.png') center 48%/cover no-repeat;
  filter:none; transform:scale(1.015);
}
.odul-login-visual::after {
  position:absolute; inset:0; z-index:-1; content:'';
  background:linear-gradient(180deg,rgba(2,22,48,.08) 28%,rgba(2,24,52,.93) 100%),linear-gradient(115deg,rgba(0,45,114,.24),rgba(0,193,213,.06));
}
.odul-login-visual-copy {
  position:absolute; right:clamp(28px,4vw,52px); bottom:clamp(32px,5vw,58px); left:clamp(28px,4vw,52px);
  color:#fff; text-shadow:0 2px 18px rgba(0,0,0,.36);
}
.odul-login-visual-copy>span {
  display:inline-flex; margin-bottom:14px; padding:6px 10px; border:1px solid rgba(255,255,255,.26); border-radius:999px;
  background:rgba(0,193,213,.18); font-size:.69rem; font-weight:800; letter-spacing:.13em; backdrop-filter:blur(8px);
}
.odul-login-visual-copy h2 {
  max-width:510px; margin:0 0 14px; color:#fff; font-family:'Libre Baskerville',Baskerville,Georgia,serif;
  font-size:clamp(2rem,3vw,2.75rem); font-weight:700; line-height:1.1; letter-spacing:-.03em;
}
.odul-login-visual-copy p { max-width:480px; margin:0; color:rgba(255,255,255,.84); font-size:.92rem; line-height:1.65; text-align:left; }
.odul-login-form-pane {
  position:relative; display:flex; align-items:center; justify-content:center; min-width:0;
  padding:56px clamp(44px,5vw,72px) 42px; background:linear-gradient(145deg,#fff,#fbfdff);
}
#login-view .login-card {
  width:min(100%,440px) !important; max-width:440px !important; max-height:none !important; padding:0 !important;
  overflow:visible !important; border:0 !important; border-radius:0 !important; background:transparent !important; box-shadow:none !important;
}
#login-view .login-identity-mark img { width:112px; height:112px; }
#login-view .login-header h1 { font-family:'Libre Baskerville',Baskerville,Georgia,serif; font-size:clamp(1.65rem,2.2vw,2rem); line-height:1.2; letter-spacing:0; }
#login-view .login-header p { color:#64748b; font-size:.95rem; font-weight:600; letter-spacing:.02em; text-align:center; }
#login-view .login-form-panel input { min-height:54px; border-radius:11px; background:#fff; font-size:.92rem; }
#login-view .login-submit { min-height:54px; border:0; border-radius:11px; background:linear-gradient(135deg,#062a53,#003b79); box-shadow:0 12px 28px rgba(0,45,114,.23); }
#login-view .login-submit:hover { background:linear-gradient(135deg,#041f3e,#002d72); box-shadow:0 15px 34px rgba(0,45,114,.3); }

.academic-hero-banner,.admin-hero-banner {
  position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:218px;
  margin-bottom:1.25rem; padding:clamp(30px,4vw,48px); overflow:hidden; isolation:isolate;
  border:1px solid rgba(255,255,255,.16); border-radius:24px; color:#fff;
  background-image:linear-gradient(92deg,rgba(3,25,54,.99),rgba(0,45,114,.94) 54%,rgba(0,104,132,.75)),url('/img/odul-campus-banner.png');
  background-position:center; background-size:cover; box-shadow:0 22px 52px rgba(6,26,51,.2);
}
.academic-hero-banner::after,.admin-hero-banner::after {
  position:absolute; top:-110px; right:-70px; z-index:-1; width:330px; height:330px; content:'';
  border:1px solid rgba(255,255,255,.11); border-radius:50%; box-shadow:0 0 0 48px rgba(255,255,255,.035),0 0 0 96px rgba(255,255,255,.025);
}
.academic-hero-copy,.admin-hero-banner>div { position:relative; z-index:1; max-width:760px; }
.academic-hero-copy>span,.admin-hero-banner>div>span {
  display:inline-flex; margin-bottom:13px; padding:6px 11px; border:1px solid rgba(255,255,255,.22); border-radius:999px;
  background:rgba(0,193,213,.16); color:#d9fbff; font-size:.7rem; font-weight:800; letter-spacing:.12em;
}
.academic-hero-banner h2,.admin-hero-banner h2 { margin:0 0 10px; color:#fff; font-size:clamp(1.8rem,3vw,2.7rem); font-weight:750; line-height:1.08; letter-spacing:-.035em; }
.academic-hero-banner p,.admin-hero-banner p { max-width:650px; margin:0; color:rgba(255,255,255,.8); font-size:clamp(.88rem,1.2vw,1rem); line-height:1.6; text-align:left; }
.academic-hero-mark,.admin-hero-banner>img {
  position:relative; z-index:1; flex:0 0 auto; width:clamp(82px,9vw,116px); height:clamp(82px,9vw,116px); padding:11px;
  border:1px solid rgba(255,255,255,.22); border-radius:22px; background:rgba(255,255,255,.93); box-shadow:0 15px 35px rgba(0,0,0,.18); object-fit:contain;
}
@media (max-width:900px) {
  #login-view .login-panel { grid-template-columns:1fr; width:min(680px,calc(100vw - 28px)) !important; }
  .odul-login-visual { min-height:240px; border-right:0; border-bottom:1px solid rgba(6,42,83,.12); }
  .odul-login-visual::before { background-position:center 42%; }
  .odul-login-visual-copy { right:26px; bottom:24px; left:26px; }
  .odul-login-visual-copy h2 { max-width:540px; margin-bottom:7px; font-size:clamp(1.55rem,5vw,2.1rem); }
  .odul-login-visual-copy p { display:none; }
  .odul-login-form-pane { padding:44px clamp(28px,8vw,62px) 36px; }
}
@media (max-width:620px) {
  #login-view .login-shell { align-items:flex-start !important; padding:12px !important; }
  #login-view .login-panel { width:100% !important; border-radius:18px !important; }
  .odul-login-visual { min-height:195px; }
  .odul-login-visual-copy>span { margin-bottom:9px; font-size:.58rem; }
  .odul-login-visual-copy h2 { font-size:1.45rem; }
  .odul-login-form-pane { padding:38px 22px 28px; }
  .academic-hero-banner,.admin-hero-banner { min-height:210px; align-items:flex-end; padding:25px 22px; border-radius:18px; }
  .academic-hero-banner h2,.admin-hero-banner h2 { font-size:1.6rem; }
  .academic-hero-mark,.admin-hero-banner>img { position:absolute; top:20px; right:20px; width:64px; height:64px; padding:7px; border-radius:15px; opacity:.94; }
  .academic-hero-copy,.admin-hero-banner>div { padding-top:58px; }
}
[data-theme='dark'] .odul-login-form-pane { background:linear-gradient(145deg,#0c1c30,#091625); }
[data-theme='dark'] #login-view .login-panel { border-color:rgba(91,211,228,.18) !important; background:#091625 !important; }

/* Giriş ekranı tek görünüm yüksekliğine oturur; sayfa kaydırması oluşturmaz. */
#login-view .login-shell {
  height: 100dvh;
  min-height: 0;
  padding: 12px !important;
  overflow: hidden !important;
}

#login-view .login-panel {
  height: calc(100dvh - 24px);
  min-height: 0;
  max-height: calc(100dvh - 24px) !important;
}

.odul-login-visual {
  min-height: 0;
}

.odul-login-form-pane {
  padding: 30px clamp(38px, 5vw, 66px) 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

#login-view .login-identity-mark {
  margin-bottom: 0.55rem;
}

#login-view .login-identity-mark img {
  width: 88px;
  height: 88px;
}

#login-view .login-header {
  margin-bottom: 1rem;
}

#login-view .login-header h1 {
  font-size: clamp(1.45rem, 2vw, 1.8rem);
}

#login-view .login-form-panel {
  gap: 0.75rem;
}

#login-view .login-form-panel input,
#login-view .login-submit {
  min-height: 49px;
}

@media (max-width: 900px) {
  #login-view .login-panel {
    grid-template-rows: minmax(150px, 31%) minmax(0, 69%);
  }

  .odul-login-visual {
    min-height: 0;
  }

  .odul-login-form-pane {
    padding-top: 24px;
    padding-bottom: 20px;
  }
}

@media (max-width: 620px) {
  #login-view .login-shell {
    padding: 8px !important;
  }

  #login-view .login-panel {
    height: calc(100dvh - 16px);
    max-height: calc(100dvh - 16px) !important;
    grid-template-rows: minmax(115px, 25%) minmax(0, 75%);
  }

  .odul-login-form-pane {
    padding: 20px 22px 16px;
  }

  #login-view .login-identity-mark img {
    width: 72px;
    height: 72px;
  }
}

/* Kompakt giriş vitrini: kart ekranı doldurmak yerine zeminin içinde yüzer. */
#login-view .login-panel {
  grid-template-columns: minmax(0, 45fr) minmax(410px, 55fr);
  width: min(1040px, calc(100vw - 72px)) !important;
  height: min(640px, calc(100dvh - 70px));
  max-width: 1040px !important;
  max-height: 640px !important;
}

.odul-login-form-pane {
  padding: 24px clamp(34px, 4vw, 54px) 20px;
}

#login-view .login-card {
  max-width: 380px !important;
}

#login-view .login-identity-mark {
  margin-bottom: 0.25rem;
}

#login-view .login-identity-mark img {
  width: 70px;
  height: 70px;
}

#login-view .login-header {
  margin-bottom: 0.7rem;
}

#login-view .login-header h1 {
  font-size: clamp(1.25rem, 1.7vw, 1.55rem);
}

#login-view .login-header p {
  font-size: 0.85rem;
}

#login-view .login-form-panel {
  gap: 0.55rem;
}

#login-view .login-form-panel .form-group {
  margin-bottom: 0.25rem;
}

#login-view .login-form-panel input,
#login-view .login-submit {
  min-height: 44px;
}

#login-view .login-register-link-large {
  min-height: 44px;
}

#login-view .login-register-note,
#login-view .login-links,
#login-view .login-card-footer {
  margin-top: 0.45rem;
}

@media (max-width: 760px) {
  #login-view .login-panel {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(105px, 25%) minmax(0, 75%);
    width: min(540px, calc(100vw - 24px)) !important;
    height: calc(100dvh - 24px);
    max-height: calc(100dvh - 24px) !important;
  }

  .odul-login-form-pane {
    padding: 18px 24px 14px;
  }
}

/* Nihai giriş ölçüleri — bu blok vitrin kurallarının en sonunda kalmalıdır. */
#login-view .login-panel {
  grid-template-columns: minmax(0, 44fr) minmax(360px, 56fr);
  width: min(790px, calc(100vw - 120px)) !important;
  height: min(590px, calc(100dvh - 80px));
  max-width: 790px !important;
  max-height: 590px !important;
}

.odul-login-form-pane {
  padding: 20px 34px 16px;
  overflow: hidden;
}

#login-view .login-card { max-width: 330px !important; }
#login-view .login-identity-mark { margin-bottom: .25rem; }
#login-view .login-identity-mark img { width: 62px; height: 62px; }
#login-view .login-header { margin-bottom: .5rem; }
#login-view .login-header h1 { font-size: 1.3rem; }
#login-view .login-form-panel { gap: .55rem; }
#login-view .login-form-panel input,
#login-view .login-submit,
#login-view .login-register-link-large { min-height: 42px; }

@media (max-width: 820px) {
  #login-view .login-panel {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(90px, 23%) minmax(0, 77%);
    width: min(500px, calc(100vw - 32px)) !important;
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px) !important;
  }
  .odul-login-form-pane { padding: 14px 28px 12px; }
}

/* Kayıt kartıyla dengeli ölçü ve ferah giriş aralıkları. */
#login-view .login-panel {
  grid-template-columns: minmax(0, 44fr) minmax(390px, 56fr);
  width: min(880px, calc(100vw - 72px)) !important;
  height: min(620px, calc(100dvh - 70px));
  max-width: 880px !important;
  max-height: 620px !important;
}

.odul-login-form-pane {
  padding: 24px 42px 20px;
  overflow: hidden;
}

#login-view .login-card { max-width: 370px !important; }
#login-view .login-identity-mark img { width: 68px; height: 68px; }
#login-view .login-header { margin-bottom: .8rem; }
#login-view .login-form-panel { gap: .7rem; }
#login-view .login-form-panel .form-group { margin-bottom: .35rem; }
#login-view .login-submit {
  min-height: 46px;
  margin-top: .65rem;
}
#login-view .login-register-link-large { min-height: 46px; }

@media (max-width: 820px) {
  #login-view .login-panel {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(95px, 24%) minmax(0, 76%);
    width: min(520px, calc(100vw - 28px)) !important;
    height: calc(100dvh - 28px);
    max-height: calc(100dvh - 28px) !important;
  }
  .odul-login-form-pane { padding: 16px 30px 14px; }
  #login-view .login-submit { margin-top: .4rem; }
}

/* Yeni giriş vitrini için eski sürümdeki yumuşak, kademeli açılış. */
#login-view .login-identity-mark img {
  width: 84px;
  height: 84px;
}

#login-view .odul-login-visual .theme-toggle-btn-login {
  top: 18px;
  left: 18px;
  color: #fff;
  border-color: rgba(255,255,255,.35);
  background: rgba(2,24,52,.42);
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  backdrop-filter: blur(9px);
}

#login-view .odul-login-visual .theme-toggle-btn-login:hover {
  color: #fff;
  border-color: rgba(255,255,255,.58);
  background: rgba(0,45,114,.72);
}

@keyframes odulCampusReveal {
  from { opacity: 0; transform: scale(1.08); filter: grayscale(1) contrast(1.05) blur(5px); }
  to { opacity: 1; transform: scale(1.015); filter: grayscale(1) contrast(1.05) blur(0); }
}

@keyframes odulControlReveal {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

body.login-screen-active #login-view.active .odul-login-visual::before {
  animation: odulCampusReveal 1.25s cubic-bezier(.19,1,.22,1) both;
}

body.login-screen-active #login-view.active .odul-login-visual .theme-toggle-btn-login {
  animation: odulControlReveal .55s cubic-bezier(.19,1,.22,1) .55s both;
}

body.login-screen-active #login-view.active .login-lang-switch {
  animation: odulControlReveal .55s cubic-bezier(.19,1,.22,1) .62s both;
}

body.login-screen-active #login-view.active .logo-spin-img {
  animation: logoSpinIn .9s cubic-bezier(.19,1,.22,1) .28s both;
}

@media (prefers-reduced-motion: reduce) {
  body.login-screen-active #login-view.active .odul-login-visual::before,
  body.login-screen-active #login-view.active .odul-login-visual .theme-toggle-btn-login,
  body.login-screen-active #login-view.active .login-lang-switch,
  body.login-screen-active #login-view.active .logo-spin-img {
    animation-duration: .01ms;
    animation-delay: 0s;
  }
}

/* Nihai hızlı animasyon katmanı. */
body.login-screen-active #login-view.active .login-panel,
body.login-screen-active #login-view.active .odul-login-visual::before,
body.login-screen-active #login-view.active .odul-login-visual .theme-toggle-btn-login,
body.login-screen-active #login-view.active .login-lang-switch,
body.login-screen-active #login-view.active .login-header-centered,
body.login-screen-active #login-view.active .login-form-panel .form-group,
body.login-screen-active #login-view.active .login-submit,
body.login-screen-active #login-view.active .login-register-link-large,
body.login-screen-active #login-view.active .login-register-note,
body.login-screen-active #login-view.active .login-links,
body.login-screen-active #login-view.active .login-card-footer {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

#login-view .login-panel {
  border: 1.5px solid #fff !important;
  outline: 1px solid rgba(255,255,255,.2);
  outline-offset: -1px;
}

#login-view .login-panel::after {
  display: block !important;
  position: absolute;
  top: -30%;
  bottom: -30%;
  left: -34%;
  z-index: 20;
  width: 20%;
  height: auto;
  border-radius: 0;
  content: '';
  pointer-events: none;
  background: linear-gradient(90deg,transparent,rgba(122,238,250,.42),rgba(255,255,255,.94),rgba(122,238,250,.42),transparent);
  filter: blur(2px);
  box-shadow: 0 0 28px rgba(180,247,255,.55);
  transform: skewX(-18deg);
  animation: odulLightSweepVisible 2.1s cubic-bezier(.22,.61,.36,1) .38s both !important;
}

#login-view .login-identity-mark img {
  width: 102px;
  height: 102px;
}

body.login-screen-active #login-view.active .logo-spin-img {
  animation: odulLogoFocusVisible 1.75s cubic-bezier(.19,1,.22,1) .22s both !important;
}

@media (prefers-reduced-motion: reduce) {
  #login-view .login-panel::after,
  body.login-screen-active #login-view.active .logo-spin-img {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
}

/* Revizyon öncesindeki özgün AÖS giriş animasyonu. */
body.login-screen-active #login-view.active .login-panel {
  opacity: 1 !important;
  transform: none !important;
  animation: loginPanelIntro 1.15s cubic-bezier(.65,0,.35,1) forwards !important;
}

body.login-screen-active #login-view.active .odul-login-visual::before,
body.login-screen-active #login-view.active .odul-login-visual .theme-toggle-btn-login,
body.login-screen-active #login-view.active .login-lang-switch {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

#login-view .login-panel::after {
  display: block !important;
  top: 0;
  bottom: auto;
  left: -60%;
  z-index: 5;
  width: 35%;
  height: 100%;
  border-radius: 0;
  background: linear-gradient(120deg,transparent 0%,rgba(255,255,255,.65) 50%,transparent 100%);
  box-shadow: none;
  filter: none;
  opacity: 0;
  transform: skewX(-18deg);
  animation: loginShimmer 1.3s cubic-bezier(.4,0,.2,1) .9s forwards !important;
}

#login-view .login-identity-mark img {
  width: 102px;
  height: 102px;
}

body.login-screen-active #login-view.active .logo-spin-img {
  animation: logoSpinIn .9s ease-out .25s forwards !important;
}

body.login-screen-active #login-view.active .login-header-centered {
  animation: loginContentFade .48s cubic-bezier(.19,1,.22,1) .47s forwards !important;
}

body.login-screen-active #login-view.active .login-form-panel .form-group,
body.login-screen-active #login-view.active .login-submit,
body.login-screen-active #login-view.active .login-register-link-large,
body.login-screen-active #login-view.active .login-register-note,
body.login-screen-active #login-view.active .login-links,
body.login-screen-active #login-view.active .login-card-footer {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.login-screen-active #login-view.active .login-panel,
  #login-view .login-panel::after,
  body.login-screen-active #login-view.active .logo-spin-img,
  body.login-screen-active #login-view.active .login-header-centered {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    animation: none !important;
  }
}

/* Işık yalnız kampüs silüetinden geçer; renk nötr beyazdır. */
#login-view .login-panel::after {
  display: none !important;
  animation: none !important;
}

.odul-silhouette-shimmer {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -60%;
  z-index: 3;
  display: block;
  width: 34%;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(120deg,transparent 0%,rgba(255,255,255,.12) 28%,rgba(255,255,255,.78) 50%,rgba(255,255,255,.12) 72%,transparent 100%);
  filter: blur(1px);
  transform: skewX(-18deg);
}

body.login-screen-active #login-view.active .odul-silhouette-shimmer {
  animation: loginShimmer 1.35s cubic-bezier(.4,0,.2,1) .65s forwards;
}

@media (prefers-reduced-motion: reduce) {
  body.login-screen-active #login-view.active .odul-silhouette-shimmer {
    display: none;
    animation: none !important;
  }
}

/* Kullanıcının istediği tek seferlik vitrin ışığı doğrudan görünür alanda çalışır. */
body.login-screen-active #login-view.active .odul-silhouette-shimmer,
#login-view.active .odul-silhouette-shimmer {
  display: block !important;
  animation: loginShimmer 1.6s cubic-bezier(.4,0,.2,1) .35s forwards !important;
}

/* Giriş ve kayıt formlarında aynı düz yüzey rengi kullanılır. */
#login-view .odul-login-form-pane {
  background: var(--surface-color) !important;
}

/* Akademisyen bannerı: kısa, sade ve lacivert kampüs vitrini. */
.academic-hero-banner,
.admin-hero-banner {
  min-height: 158px;
  padding: 26px 34px;
  background-color: #001f4d;
  background-image:
    linear-gradient(90deg, rgba(0,12,30,.88) 0%, rgba(0,31,77,.66) 52%, rgba(0,31,77,.38) 100%),
    url('/img/odul-campus-banner.png');
  background-position: center;
  background-size: cover;
  background-blend-mode: normal, luminosity;
}

.academic-hero-banner::after,
.admin-hero-banner::after {
  display: none;
}

.academic-hero-banner h2,
.admin-hero-banner h2 {
  font-size: clamp(1.65rem, 2.5vw, 2.25rem);
}

.academic-hero-banner p,
.admin-hero-banner p {
  max-width: 720px;
}

@media (max-width: 620px) {
  .academic-hero-banner,
  .admin-hero-banner {
    min-height: 150px;
    padding: 22px;
  }
  .academic-hero-copy,
  .admin-hero-banner > div {
    padding-top: 0;
  }
}

/* ============================================================
   GENEL BAKIŞ REHBERİ — hızlı kartlar + konu bazlı akordeon
   ============================================================ */
#dashboard-info-guide {
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(6,42,83,.12);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(6,26,51,.09);
}

#dashboard-info-guide > h2 {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-height: 62px;
  margin: 0;
  padding: 0 1.35rem;
  border-bottom: 1px solid rgba(6,42,83,.1);
  color: #062a53;
  background: linear-gradient(90deg,#f8fbfd,#fff);
  font-size: 1.08rem;
}

#dashboard-info-guide > h2 i { color: #0096aa; }

#dashboard-info-guide-body {
  max-height: none;
  overflow-y: visible;
  padding: 1.2rem 1.25rem 1.35rem;
  background: #f4f7fb;
}

#dashboard-info-guide .guide-modern-table,
#dashboard-info-guide .guide-modern-table tbody,
#dashboard-info-guide .guide-modern-host,
#dashboard-info-guide .guide-modern-host > td {
  display: block;
  width: 100%;
}

#dashboard-info-guide .guide-modern-table {
  margin: 0;
  border: 0;
  background: transparent;
}

#dashboard-info-guide .guide-modern-table > thead,
#dashboard-info-guide .guide-modern-table > caption { display: none; }

#dashboard-info-guide .guide-modern-host,
#dashboard-info-guide .guide-modern-host > td {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.guide-experience { color: #25364d; }

.guide-experience-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.guide-experience-header > span {
  color: #006f82;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .13em;
}

.guide-experience-header p {
  margin: 0;
  color: #66758a;
  font-size: .86rem;
  text-align: right;
}

.guide-priority-note {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr);
  gap: .85rem;
  align-items: start;
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid #efcf82;
  border-left: 4px solid #d99a05;
  border-radius: 14px;
  background: linear-gradient(100deg,#fff8e6,#fffdf7);
  box-shadow: 0 8px 22px rgba(117,78,0,.07);
}

.guide-priority-icon,
.guide-quick-card > span,
.guide-accordion-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.guide-priority-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: #895d00;
  background: #ffe8ad;
}

.guide-priority-note h3 {
  margin: 0 0 .22rem;
  color: #684800;
  font-size: .94rem;
}

.guide-priority-note h3 strong { color: inherit !important; }
.guide-priority-note > div > div { color: #66583a; font-size: .9rem; line-height: 1.55; }

.guide-quick-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: .75rem;
  margin-bottom: 1rem;
}

.guide-quick-card {
  display: flex;
  align-items: center;
  gap: .72rem;
  min-width: 0;
  padding: .85rem;
  border: 1px solid rgba(6,42,83,.1);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 18px rgba(6,26,51,.055);
}

.guide-quick-card > span {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  color: #fff;
  background: linear-gradient(135deg,#062a53,#007f95);
}

.guide-quick-card strong,
.guide-quick-card small { display: block; }
.guide-quick-card strong { color: #062a53; font-size: .87rem; line-height: 1.25; }
.guide-quick-card small { margin-top: .18rem; color: #6c7b8e; font-size: .72rem; line-height: 1.35; }

.guide-accordion-list { display: grid; gap: .65rem; }

.guide-accordion {
  overflow: hidden;
  border: 1px solid rgba(6,42,83,.11);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(6,26,51,.045);
}

.guide-accordion > summary {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 64px;
  padding: .72rem 1rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.guide-accordion > summary::-webkit-details-marker { display: none; }
.guide-accordion > summary:hover { background: #f7fafc; }
.guide-accordion > summary:focus-visible { outline: 3px solid rgba(0,193,213,.42); outline-offset: -3px; }

.guide-accordion-icon {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  color: #006f82;
  background: #e6f7fa;
}

.guide-accordion-title { flex: 1; min-width: 0; }
.guide-accordion-title strong,.guide-accordion-title small { display: block; }
.guide-accordion-title strong { color: #0a315c; font-size: .92rem; }
.guide-accordion-title small { margin-top: .13rem; color: #758398; font-size: .75rem; }
.guide-accordion-chevron { color: #8290a1; transition: transform .22s ease; }
.guide-accordion[open] .guide-accordion-chevron { transform: rotate(180deg); }
.guide-accordion[open] > summary { border-bottom: 1px solid rgba(6,42,83,.09); background: #f9fbfd; }

.guide-accordion-content { padding: .2rem 1rem .45rem; }

.guide-policy-item {
  display: grid;
  grid-template-columns: 9px minmax(0,1fr);
  gap: .75rem;
  padding: .9rem .15rem;
  border-bottom: 1px solid rgba(6,42,83,.075);
}

.guide-policy-item:last-child { border-bottom: 0; }
.guide-policy-marker { width: 7px; height: 7px; margin-top: .42rem; border-radius: 50%; background: #00a8bd; box-shadow: 0 0 0 4px rgba(0,168,189,.1); }
.guide-policy-item h4 { margin: 0 0 .38rem; color: #123b65; font-size: .89rem; }
.guide-policy-item h4 strong { color: inherit !important; }
.guide-policy-copy { color: #536276; font-size: .86rem; line-height: 1.58; }
.guide-policy-copy p { margin: 0 0 .45rem; text-align: left; }
.guide-policy-copy p:last-child { margin-bottom: 0; }
.guide-policy-copy ul { margin: .35rem 0 .1rem 1.15rem; }
.guide-policy-copy li { margin-bottom: .3rem; }
.guide-policy-copy strong { color: #173f67 !important; }

@media (max-width: 1050px) {
  .guide-quick-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 620px) {
  #dashboard-info-guide > h2 { min-height: 56px; padding: 0 1rem; font-size: .98rem; }
  #dashboard-info-guide-body { max-height: none; padding: .85rem; }
  .guide-experience-header { display: block; }
  .guide-experience-header p { margin-top: .3rem; text-align: left; }
  .guide-quick-grid { grid-template-columns: 1fr; gap: .55rem; }
  .guide-quick-card { padding: .72rem; }
  .guide-priority-note { grid-template-columns: 36px minmax(0,1fr); padding: .85rem; }
  .guide-priority-icon { width: 36px; height: 36px; }
  .guide-accordion > summary { min-height: 58px; padding: .65rem .75rem; }
  .guide-accordion-content { padding-right: .75rem; padding-left: .75rem; }
}

[data-theme='dark'] #dashboard-info-guide { background: #0d1c2d; border-color: rgba(130,211,225,.15); }
[data-theme='dark'] #dashboard-info-guide > h2 { color: #d8f8fc; background: #10243a; border-color: rgba(255,255,255,.08); }
[data-theme='dark'] #dashboard-info-guide-body { background: #091625; }
[data-theme='dark'] .guide-quick-card,
[data-theme='dark'] .guide-accordion { background: #102237; border-color: rgba(255,255,255,.09); }
[data-theme='dark'] .guide-accordion > summary:hover,
[data-theme='dark'] .guide-accordion[open] > summary { background: #132a43; }
[data-theme='dark'] .guide-quick-card strong,
[data-theme='dark'] .guide-accordion-title strong,
[data-theme='dark'] .guide-policy-item h4 { color: #dff8fb; }
[data-theme='dark'] .guide-quick-card small,
[data-theme='dark'] .guide-accordion-title small,
[data-theme='dark'] .guide-policy-copy { color: #b4c3d4; }

/* ============================================================
   CANLI HAFIZA İLE ORTAK ARAYÜZ DİLİ
   Ölçü, boşluk, kart, buton ve responsive davranışları AÖS'nin
   lacivert/turkuaz kurumsal paletine uyarlanmıştır.
   ============================================================ */

/* Giriş vitrini: canlı Hafıza ölçüleri (1120 × 760, %47 / %53). */
#login-view .login-shell {
  min-height: 100dvh;
  height: auto;
  padding: 24px !important;
  overflow: auto !important;
}

#login-view .login-panel {
  grid-template-columns: minmax(0, 47fr) minmax(0, 53fr);
  width: min(1120px, calc(100vw - 48px)) !important;
  min-height: 0;
  height: min(760px, calc(100dvh - 48px));
  max-width: 1120px !important;
  max-height: none !important;
  border-radius: 24px !important;
}

.odul-login-visual { min-height: 0; }

.odul-login-form-pane {
  padding: 52px 66px 42px;
  overflow-y: auto;
}

#login-view .login-card {
  width: 100% !important;
  max-width: 440px !important;
}

#login-view .login-identity-mark { margin-bottom: 1rem; }
#login-view .login-identity-mark img { width: 112px; height: 112px; }
#login-view .login-header { margin-bottom: 1.15rem; }
#login-view .login-header h1 { font-size: clamp(1.65rem, 2.2vw, 2rem); }
#login-view .login-header p { font-size: .95rem; }
#login-view .login-form-panel { gap: .9rem; }
#login-view .login-form-panel .form-group { margin-bottom: .45rem; }
#login-view .login-form-panel input,
#login-view .login-submit,
#login-view .login-register-link-large { min-height: 52px; }

/* Akademisyen ekranı: açık sol menü + içerik çalışma alanı. */
body:not(.login-screen-active) .main-content {
  max-width: none;
  padding: clamp(14px, 1.45vw, 28px);
}

#academic-view .dashboard-container {
  grid-template-columns: 320px minmax(0, 1fr);
  align-items: stretch;
  gap: clamp(14px, 1.3vw, 24px);
  margin-top: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#academic-view .dashboard-sidebar {
  position: sticky;
  top: 1rem;
  align-self: start;
  display: flex;
  min-width: 0;
  height: calc(100dvh - 2rem);
  min-height: 620px;
  gap: 0;
  overflow: hidden auto;
  color: rgba(255, 255, 255, .82);
  border-radius: 20px;
  background: linear-gradient(180deg, #082b57 0%, #041b38 100%);
  box-shadow: 0 10px 30px rgba(6, 26, 51, .08);
  scrollbar-width: thin;
}

#academic-view .profile-card {
  flex: 0 0 auto;
  min-height: 224px;
  padding: 28px 20px 24px;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

#academic-view .profile-card::after { display: none; }
#academic-view .profile-card .avatar {
  width: 64px;
  height: 64px;
  border-radius: 16px;
  background: rgba(255, 255, 255, .1);
  font-size: 1.7rem;
}

#academic-view .sidebar-nav {
  flex: 1;
  gap: 5px;
  padding: 22px 14px 28px;
}

#academic-view .sidebar-nav::before {
  content: 'BAŞVURU ALANI';
  display: block;
  padding: 0 12px 9px;
  color: rgba(255, 255, 255, .48);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .14em;
}

#academic-view .sidebar-btn,
#academic-view .sidebar-btn.btn-accent {
  justify-content: flex-start;
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: rgba(255, 255, 255, .78);
  background: transparent;
  box-shadow: none;
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: 0;
  text-align: left;
}

#academic-view .sidebar-btn:hover,
#academic-view .sidebar-btn.btn-accent:hover {
  padding: 0 14px;
  color: #fff;
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .07);
  transform: none;
  box-shadow: none;
}

#academic-view .sidebar-btn.active,
#academic-view .sidebar-btn.btn-accent.active {
  color: #082b57;
  border-color: rgba(255, 255, 255, .72);
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .16);
}

#academic-view .sidebar-btn > i { color: #7fe4ee; }
#academic-view .sidebar-btn.active > i { color: #007f95; }

#academic-view .dashboard-main {
  min-width: 0;
  padding: 0 0 56px;
  border-radius: 0;
  background: transparent;
}

/* Yönetim, komisyon ve jüri ekranlarında menü bütün çalışma alanını kapsar. */
#admin-view .admin-container {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  grid-template-areas:
    'sidebar hero'
    'sidebar faculty'
    'sidebar stats'
    'sidebar panels';
  align-items: start;
  column-gap: 22px;
  row-gap: 18px;
}

#admin-view .admin-hero-banner { grid-area: hero; margin: 0; }
#admin-view #admin-faculty-banner { grid-area: faculty; margin: 0; }
#admin-view .stats-row { grid-area: stats; margin: 0; }
#admin-view .users-stats-row { margin-bottom: 1.5rem; }
#admin-view .admin-workspace { display: contents; }
#admin-view .admin-sidebar {
  grid-area: sidebar;
  top: 1rem;
  min-height: calc(100dvh - 2rem);
  max-height: calc(100dvh - 2rem);
  border: 0;
  border-radius: 20px;
  color: rgba(255, 255, 255, .82);
  background: linear-gradient(180deg, #082b57 0%, #041b38 100%);
  box-shadow: 0 10px 30px rgba(6, 26, 51, .08);
}

#admin-view .admin-sidebar-header {
  min-height: 88px;
  padding: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
  background: transparent;
}

#admin-view .admin-tabs { padding: 20px 14px 28px; }
#admin-view .admin-menu-label { color: rgba(255, 255, 255, .46); }
#admin-view .tab-btn {
  min-height: 46px;
  padding: 0 13px;
  color: rgba(255, 255, 255, .78);
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  box-shadow: none;
}

#admin-view .tab-btn:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .07);
}

#admin-view .tab-btn.active {
  color: #082b57;
  border-color: #fff;
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .16);
}

#admin-view .admin-panels {
  grid-area: panels;
  min-width: 0;
}

/* Hafıza kart ve eylem dili. */
body:not(.login-screen-active) .card,
body:not(.login-screen-active) .stats-card,
body:not(.login-screen-active) .stats-kpi-card {
  border: 1px solid rgba(6, 42, 83, .11);
  border-radius: 16px;
  background-color: #fff;
  box-shadow: 0 10px 30px rgba(6, 26, 51, .055);
}

body:not(.login-screen-active) .card:not(.stats-card-clickable):hover,
body:not(.login-screen-active) .stats-card:not(.stats-card-clickable):hover,
body:not(.login-screen-active) .stats-kpi-card:not(.stats-card-clickable):hover {
  border-color: rgba(6, 42, 83, .11);
  box-shadow: 0 10px 30px rgba(6, 26, 51, .055);
  transform: none;
}

body:not(.login-screen-active) .stats-card::after,
body:not(.login-screen-active) .stats-kpi-card::after { display: none; }

body:not(.login-screen-active) .stats-card .icon {
  border-radius: 11px;
  box-shadow: 0 6px 16px rgba(6, 26, 51, .13);
}

/* Sadece gerçekten tıklanabilen kartlar etkileşim geri bildirimi verir. */
body:not(.login-screen-active) .stats-card-clickable:hover,
body:not(.login-screen-active) .stats-card-clickable:focus-visible {
  border-color: rgba(0, 127, 149, .2);
  box-shadow: 0 12px 30px rgba(6, 26, 51, .08);
  transform: translateY(-2px);
}

/* Bilgilendirme alanı, Hafıza'daki sakin ve düz kart hiyerarşisini izler. */
#dashboard-info-guide {
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(6, 26, 51, .055);
}

#dashboard-info-guide > h2 {
  min-height: 58px;
  background: #fff;
}

#dashboard-info-guide-body { background: #f7f9fc; }

.guide-priority-note {
  border-radius: 12px;
  background: #fffaf0;
  box-shadow: none;
}

.guide-quick-card,
.guide-accordion {
  border-radius: 12px;
  box-shadow: none;
}

.guide-quick-card > span,
.guide-accordion-icon { border-radius: 10px; }

.guide-accordion > summary {
  min-height: 60px;
  transition: background-color .16s ease;
}

body:not(.login-screen-active) .btn {
  min-height: 40px;
  padding: .62rem .95rem;
  border-radius: 9px;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.2;
}

body:not(.login-screen-active) .btn-primary,
body:not(.login-screen-active) .btn-success {
  border-color: #082b57;
  background: #082b57;
  box-shadow: 0 6px 16px rgba(6, 42, 83, .16);
}

body:not(.login-screen-active) .btn-primary:hover,
body:not(.login-screen-active) .btn-success:hover {
  border-color: #041b38;
  background: #041b38;
  box-shadow: 0 9px 22px rgba(6, 42, 83, .22);
}

body:not(.login-screen-active) .btn-secondary,
body:not(.login-screen-active) .btn-refresh-list,
body:not(.login-screen-active) .btn-back-home {
  color: #163b67;
  border: 1px solid #d5e0eb;
  background: #f7fafd;
  box-shadow: none;
}

body:not(.login-screen-active) .btn-secondary:hover,
body:not(.login-screen-active) .btn-refresh-list:hover,
body:not(.login-screen-active) .btn-back-home:hover {
  color: #082b57;
  border-color: #b8c9da;
  background: #edf4fa;
}

body:not(.login-screen-active) input,
body:not(.login-screen-active) select,
body:not(.login-screen-active) textarea {
  border-radius: 9px;
}

body:not(.login-screen-active) .table thead th {
  color: #52657a;
  background: #f5f7fa;
  font-size: .74rem;
  letter-spacing: .035em;
}

/* Tablet: Hafıza'daki 84 px ikon rayı. */
@media (max-width: 992px) and (min-width: 621px) {
  #academic-view .dashboard-container { grid-template-columns: 84px minmax(0, 1fr); }
  #academic-view .dashboard-sidebar {
    display: flex;
    min-height: calc(100dvh - 2rem);
  }
  #academic-view .mobile-dashboard-nav { display: none !important; }
  #academic-view .profile-card { min-height: 96px; padding: 18px 10px; }
  #academic-view .profile-card .avatar { width: 48px; height: 48px; margin: 0; border-radius: 13px; font-size: 1.25rem; }
  #academic-view .profile-card .profile-title,
  #academic-view .profile-card h2,
  #academic-view .profile-card .faculty-label,
  #academic-view .profile-card .title-dept,
  #academic-view .sidebar-nav::before,
  #academic-view .sidebar-btn span { display: none; }
  #academic-view .sidebar-nav { padding: 18px 10px; }
  #academic-view .sidebar-btn,
  #academic-view .sidebar-btn.btn-accent,
  #academic-view .sidebar-btn:hover,
  #academic-view .sidebar-btn.btn-accent:hover {
    justify-content: center;
    min-height: 48px;
    padding: 0;
  }
  #academic-view .sidebar-btn > i { width: auto; font-size: 1.05rem; }
  #academic-view .dashboard-main { padding: 0 0 44px; }

  #admin-view .admin-container {
    grid-template-columns: 84px minmax(0, 1fr);
    column-gap: 14px;
  }
  #admin-view .admin-sidebar-header strong,
  #admin-view .admin-menu-label,
  #admin-view .tab-btn span { display: none; }
  #admin-view .admin-sidebar-header { justify-content: center; padding: 14px 8px; }
  #admin-view .admin-tabs { padding: 16px 9px; }
  #admin-view .tab-btn { justify-content: center; padding: 0; }
}

/* Telefon: tek sütun ve mevcut hızlı erişim çubuğu. */
@media (max-width: 620px) {
  #login-view .login-shell { align-items: flex-start; padding: 12px !important; }
  #login-view .login-panel {
    grid-template-columns: 1fr;
    width: 100% !important;
    min-height: calc(100dvh - 24px);
    border-radius: 18px !important;
  }
  #login-view .odul-login-visual { display: none; }
  #login-view .odul-login-form-pane { min-height: calc(100dvh - 24px); padding: 30px 28px; }
  #login-view .login-card { max-width: 360px !important; }
  #login-view .login-identity-mark img { width: 96px; height: 96px; }

  #academic-view .dashboard-container {
    display: block;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
  #academic-view .dashboard-sidebar { display: none; }
  #academic-view .mobile-dashboard-nav { display: flex !important; }
  #academic-view .dashboard-main { padding: 14px 9px 82px; border-radius: 0; }

  #admin-view .admin-container { display: block; }
  #admin-view .admin-workspace { display: block; }
  #admin-view .admin-sidebar {
    position: static;
    display: block;
    min-height: 0;
    max-height: none;
    margin-bottom: 14px;
    border-radius: 14px;
    overflow-x: auto;
  }
  #admin-view .admin-sidebar-header { display: none; }
  #admin-view .admin-tabs { flex-direction: row; gap: 6px; padding: 8px; overflow-x: auto; }
  #admin-view .admin-menu-group { display: flex; flex: 0 0 auto; gap: 5px; }
  #admin-view .admin-menu-label { display: none; }
  #admin-view .tab-btn { flex: 0 0 auto; width: auto; padding: 0 12px; white-space: nowrap; }
  #admin-view .admin-hero-banner,
  #admin-view #admin-faculty-banner,
  #admin-view .stats-row { margin-bottom: 14px; }
}

@media (max-height: 650px) and (min-width: 721px) {
  #login-view .login-shell { align-items: flex-start; padding: 12px !important; }
  #login-view .login-panel { min-height: calc(100dvh - 24px); }
  .odul-login-form-pane { padding-block: 24px 22px; }
  #login-view .login-identity-mark img { width: 94px; height: 94px; }
  #login-view .login-form-panel { gap: .55rem; }
}

/* AÖS'deki ilave kayıt bağlantısı nedeniyle orta yükseklikteki dizüstülerde
   canlı Hafıza oranı korunurken tüm kontroller tek ekrana sığdırılır. */
@media (max-height: 800px) and (min-width: 721px) {
  #login-view .login-panel { height: calc(100dvh - 48px); }
  #login-view .odul-login-form-pane { padding: 22px 66px 16px; overflow: hidden; }
  #login-view .login-card { max-width: 440px !important; }
  #login-view .login-identity-mark { margin-bottom: .35rem; }
  #login-view .login-identity-mark img { width: 82px; height: 82px; }
  #login-view .login-header { margin-bottom: .6rem; }
  #login-view .login-header h1 { font-size: 1.55rem; }
  #login-view .login-header p { font-size: .88rem; }
  #login-view .login-form-panel { gap: .5rem; }
  #login-view .login-form-panel .form-group { margin-bottom: .2rem; }
  #login-view .login-form-panel input,
  #login-view .login-submit,
  #login-view .login-register-link-large { min-height: 46px; }
  #login-view .login-submit { margin-top: .45rem; }
  #login-view .login-register-note,
  #login-view .login-links,
  #login-view .login-card-footer { margin-top: .35rem; }
}

/* ============================================================
   HAFIZA DÜZENİ — EKRANA SABİT SOL ÇALIŞMA MENÜSÜ
   Menü belgenin değil ekranın parçasıdır; yalnız sağ içerik kayar.
   ============================================================ */
@media (min-width: 993px) {
  #academic-view.active,
  #admin-view.active { transform: none !important; }
  body[data-active-view='academic-view'] #main-header,
  body[data-active-view='admin-view'] #main-header {
    width: calc(100% - 320px);
    margin-left: 320px;
  }

  body[data-active-view='academic-view'] .main-content,
  body[data-active-view='admin-view'] .main-content { padding: 0; }

  body[data-active-view='academic-view'] .footer,
  body[data-active-view='admin-view'] .footer {
    width: calc(100% - 320px);
    margin-left: 320px;
  }

  #academic-view .dashboard-container {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: clamp(14px, 1.3vw, 24px);
    width: auto;
    margin: 0 30px;
  }

  #academic-view .dashboard-sidebar {
    position: sticky;
    z-index: 20;
    top: 1rem;
    width: auto;
    height: calc(100dvh - 2rem);
    min-height: 620px;
    border-radius: 20px;
  }

  #academic-view .dashboard-main {
    width: auto;
    margin-left: 0;
    padding: 0 0 56px;
  }

  #academic-view > .academic-hero-banner { margin: 0 0 18px; border-radius: 0 0 20px 20px; }

  #admin-view .admin-container {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      'hero'
      'faculty'
      'stats'
      'panels';
    margin-left: 320px;
    padding: 26px 30px 56px;
  }

  #admin-view .admin-sidebar {
    position: fixed;
    z-index: 600;
    top: 0;
    bottom: 0;
    left: 0;
    width: 320px;
    min-height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
}

@media (max-width: 992px) and (min-width: 621px) {
  #academic-view.active,
  #admin-view.active { transform: none !important; }
  body[data-active-view='academic-view'] #main-header,
  body[data-active-view='admin-view'] #main-header {
    width: calc(100% - 84px);
    margin-left: 84px;
  }

  body[data-active-view='academic-view'] .main-content,
  body[data-active-view='admin-view'] .main-content { padding: 0; }

  body[data-active-view='academic-view'] .footer,
  body[data-active-view='admin-view'] .footer {
    width: calc(100% - 84px);
    margin-left: 84px;
  }

  #academic-view .dashboard-container {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 14px;
    margin: 0 14px;
  }

  #academic-view .dashboard-sidebar {
    position: sticky;
    z-index: 20;
    top: 1rem;
    width: 84px;
    height: calc(100dvh - 2rem);
    min-height: 0;
    border-radius: 16px;
  }

  #academic-view .dashboard-main {
    margin-left: 0;
    padding: 0 0 44px;
  }

  #academic-view > .academic-hero-banner { margin: 0 0 14px; border-radius: 0 0 16px 16px; }

  #admin-view .admin-container {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      'hero'
      'faculty'
      'stats'
      'panels';
    margin-left: 84px;
    padding: 18px 14px 44px;
  }

  #admin-view .admin-sidebar {
    position: fixed;
    z-index: 600;
    top: 0;
    bottom: 0;
    left: 0;
    width: 84px;
    min-height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
}

@media (max-width: 620px) {
  body[data-active-view='academic-view'] #main-header,
  body[data-active-view='admin-view'] #main-header,
  body[data-active-view='academic-view'] .footer,
  body[data-active-view='admin-view'] .footer {
    width: 100%;
    margin-left: 0;
  }

  body[data-active-view='academic-view'] .main-content,
  body[data-active-view='admin-view'] .main-content { padding: 0; }

  #academic-view .dashboard-main,
  #admin-view .admin-container { margin-left: 0; }
}

/* Son yerleşim denemesini geri alan uyumluluk katmanı. */
@media (min-width: 993px) {
  #academic-view .dashboard-container {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: clamp(14px, 1.3vw, 24px);
    width: auto;
    margin: 0;
  }
  #academic-view .dashboard-sidebar {
    position: sticky;
    top: 1rem;
    width: auto;
    height: calc(100dvh - 2rem);
    min-height: 620px;
    border-radius: 20px;
  }
  #academic-view .dashboard-main {
    width: auto;
    margin-left: 0;
    padding: 26px 30px 56px;
  }
  #academic-view > .academic-hero-banner { margin: initial; border-radius: initial; }
  #admin-view .admin-container {
    grid-template-columns: 320px minmax(0, 1fr);
    grid-template-areas: 'sidebar hero' 'sidebar faculty' 'sidebar stats' 'sidebar panels';
    margin-left: 0;
    padding: 0;
  }
  #admin-view .admin-sidebar {
    position: sticky;
    top: 1rem;
    width: auto;
    min-height: calc(100dvh - 2rem);
    max-height: calc(100dvh - 2rem);
    border-radius: 20px;
  }
}

@media (max-width: 992px) and (min-width: 621px) {
  #academic-view .dashboard-container { grid-template-columns: 84px minmax(0, 1fr); gap: 14px; margin: 0; }
  #academic-view .dashboard-sidebar { position: sticky; top: 1rem; width: auto; height: calc(100dvh - 2rem); border-radius: 16px; }
  #academic-view .dashboard-main { margin-left: 0; padding: 18px 14px 44px; }
  #academic-view > .academic-hero-banner { margin: initial; border-radius: initial; }
  #admin-view .admin-container { grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: 'sidebar hero' 'sidebar faculty' 'sidebar stats' 'sidebar panels'; margin-left: 0; padding: 0; }
  #admin-view .admin-sidebar { position: sticky; top: 1rem; width: auto; min-height: calc(100dvh - 2rem); max-height: calc(100dvh - 2rem); border-radius: 16px; }
}

/* Sabit sol menü: banner içeride kalır, çalışma alanı menünün sağında akar. */
@media (min-width: 993px) {
  body[data-active-view='academic-view'] #main-header,
  body[data-active-view='admin-view'] #main-header { width: calc(100% - 320px); margin-left: 320px; }
  body[data-active-view='academic-view'] .main-content,
  body[data-active-view='admin-view'] .main-content { padding: 0; }
  body[data-active-view='academic-view'] .footer,
  body[data-active-view='admin-view'] .footer { width: calc(100% - 320px); margin-left: 320px; }

  #academic-view .dashboard-container { display: block; width: 100%; }
  #academic-view .dashboard-sidebar { position: fixed; z-index: 600; top: 0; bottom: 0; left: 0; width: 320px; height: 100dvh; min-height: 0; border-radius: 0; }
  #academic-view .dashboard-main { width: auto; margin-left: 320px; padding: 26px 30px 56px; }

  #admin-view .admin-container { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'hero' 'faculty' 'stats' 'panels'; margin-left: 320px; padding: 26px 30px 56px; }
  #admin-view .admin-sidebar { position: fixed; z-index: 600; top: 0; bottom: 0; left: 0; width: 320px; min-height: 100dvh; max-height: 100dvh; border-radius: 0; }
}

@media (max-width: 992px) and (min-width: 621px) {
  body[data-active-view='academic-view'] #main-header,
  body[data-active-view='admin-view'] #main-header { width: calc(100% - 84px); margin-left: 84px; }
  body[data-active-view='academic-view'] .main-content,
  body[data-active-view='admin-view'] .main-content { padding: 0; }
  body[data-active-view='academic-view'] .footer,
  body[data-active-view='admin-view'] .footer { width: calc(100% - 84px); margin-left: 84px; }

  #academic-view .dashboard-container { display: block; }
  #academic-view .dashboard-sidebar { position: fixed; z-index: 600; top: 0; bottom: 0; left: 0; width: 84px; height: 100dvh; min-height: 0; border-radius: 0; }
  #academic-view .dashboard-main { margin-left: 84px; padding: 18px 14px 44px; }
  #admin-view .admin-container { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'hero' 'faculty' 'stats' 'panels'; margin-left: 84px; padding: 18px 14px 44px; }
  #admin-view .admin-sidebar { position: fixed; z-index: 600; top: 0; bottom: 0; left: 0; width: 84px; min-height: 100dvh; max-height: 100dvh; border-radius: 0; }
}

@media (max-width: 620px) {
  body[data-active-view='academic-view'] #main-header,
  body[data-active-view='admin-view'] #main-header,
  body[data-active-view='academic-view'] .footer,
  body[data-active-view='admin-view'] .footer { width: 100%; margin-left: 0; }
  body[data-active-view='academic-view'] .main-content,
  body[data-active-view='admin-view'] .main-content { padding: 0; }
  #academic-view .dashboard-main,
  #admin-view .admin-container { margin-left: 0; }
}
