/* Menü — cam görünüm, üst / sol seçimi (01.10.2026, kullanıcı onayı).
   İKİ PANELDE ORTAK: public/admin/navGlass.css ve license-panel/public/navGlass.css
   BİREBİR aynı (test/navGlass.test.js denetler). style.css'ten SONRA yüklenir ve
   eski yeşil üst şeridi ezer. .nav-sec-flat: sol menüde başlığı olan ama üst
   seviye öğelerle aynı listede duran ilk bölüm (klinik: Asistan, CruzSoft: Talepler).
   html[data-menu="top"|"side"] Profilim > Menü'den seçilir (cihaza kaydedilir),
   html.menu-mini sol menünün daraltılmış hâli. 860px altında iki düzen de ☰
   menüsüne döner (bölümler orada da açılır-kapanır liste).
   Logo: HER İKİ temada orijinal renkli, giriş ekranındakinin aynısı (02.10.2026
   kullanıcı kararı; koyu temada beyaz kullanılıyordu). */

:root {
  --nv-bg: rgba(255,255,255,.78);
  --nv-border: rgba(15,76,66,.12);
  --nv-shadow: 0 10px 30px rgba(15,40,34,.10);
  --nv-text: #26333a;
  --nv-muted: #6b7883;
  --nv-icon: #1f9e74;
  --nv-hover: rgba(15,76,66,.07);
  --nv-pop: #ffffff;
  --nv-sec-active: rgba(45,189,139,.14);
  --nv-input: rgba(15,40,34,.05);
}
:root[data-theme="dark"] {
  --nv-bg: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.03));
  --nv-border: rgba(255,255,255,.10);
  --nv-shadow: 0 20px 50px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
  --nv-text: #d3dce2;
  --nv-muted: #8996a8;
  --nv-icon: #2DBD8B;
  --nv-hover: rgba(255,255,255,.07);
  --nv-pop: #1d252a;
  --nv-sec-active: rgba(45,189,139,.16);
  --nv-input: rgba(0,0,0,.25);
}

/* ---------- Ortak ---------- */
.sidebar {
  background: var(--nv-bg);
  color: var(--nv-text);
  border: 1px solid var(--nv-border);
  box-shadow: var(--nv-shadow);
  border-radius: 20px;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
:root[data-theme="dark"] .sidebar { background-color: #161d21; }
.sb-head { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.brand-wordmark { filter: none; height: 22px; }
:root[data-theme="dark"] .brand-wordmark { filter: none; }
.sb-mini-btn { display: none; }

.nav-item, .nav-dropdown-trigger { color: var(--nv-text); border-radius: 12px; }
.nav-item svg, .nav-dropdown-trigger svg { color: var(--nv-icon); flex-shrink: 0; }
.nav-item:hover, .nav-dropdown-trigger:hover, .nav-dropdown-trigger.open { background: var(--nv-hover); color: var(--nv-text); }
.nav-item.active,
.nav-dropdown-menu .nav-item.active {
  background: linear-gradient(90deg, #1c8f68, #2DBD8B);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 6px 18px rgba(45,189,139,.28);
}
.nav-item.active svg { color: #fff; }
.nav-dropdown-trigger.parent-active { background: var(--nv-sec-active); color: var(--nv-text); font-weight: 600; box-shadow: inset 0 0 0 1px rgba(45,189,139,.35); }
.nav-dropdown-menu {
  background: var(--nv-pop);
  border: 1px solid var(--nv-border);
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
  padding: 7px;
}
:root[data-theme="dark"] .nav-dropdown-menu { box-shadow: 0 22px 50px rgba(0,0,0,.55); }
.nav-dropdown-menu .nav-item { color: var(--nv-text); padding: 9px 12px; border-radius: 11px; }
.nav-dropdown-menu .nav-item:hover:not(.active) { background: var(--nv-hover); color: var(--nv-text); }
.nav > .nav-item > .nav-badge, .nav > .nav-item > .nav-count, .nav-dropdown-trigger > .nav-count { box-shadow: 0 0 0 2px var(--surface); }
.lbl-side { display: none; }

/* Genel arama kutusu + sonuçlar */
.gsearch { position: relative; display: flex; align-items: center; gap: 8px; padding: 0 12px; height: 38px; border-radius: 12px; background: var(--nv-input); border: 1px solid var(--nv-border); color: var(--nv-muted); flex-shrink: 0; }
.gsearch:focus-within { border-color: #2DBD8B; box-shadow: 0 0 0 3px rgba(45,189,139,.15); }
.gsearch svg { color: var(--nv-icon); flex-shrink: 0; }
.gsearch input[type="search"] { flex: 1; min-width: 0; border: none !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; height: 100%; color: var(--nv-text); font-size: 13.5px; outline: none; }
.gsearch input::-webkit-search-cancel-button { display: none; }
.gsearch-results { position: absolute; top: calc(100% + 8px); left: 0; width: 380px; max-width: calc(100vw - 32px); max-height: min(70vh, 520px); overflow-y: auto; z-index: 120; background: var(--nv-pop); border: 1px solid var(--nv-border); border-radius: 16px; box-shadow: 0 22px 50px rgba(0,0,0,.25); padding: 8px; }
.gsearch-results[hidden] { display: none; }
.gs-head { font-size: 10.5px; letter-spacing: 1.2px; font-weight: 700; color: var(--nv-muted); padding: 8px 10px 4px; text-transform: uppercase; }
.gs-row { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: none; background: none; border-radius: 10px; cursor: pointer; text-align: left; color: var(--nv-text); font: inherit; }
.gs-row:hover, .gs-row.on { background: var(--nv-sec-active); }
.gs-av { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 700; color: #fff; flex-shrink: 0; background: #1c8f68; }
.gs-av-event { background: #1a73e8; }
.gs-av-instagram { background: #c13584; }
.gs-av-whatsapp { background: #25a35a; }
.gs-av-messenger { background: #0a7cff; }
.gs-av-webchat { background: #6b7883; }
.gs-txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.gs-title { font-size: 13.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-sub { font-size: 11.5px; color: var(--nv-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-tag { font-size: 11px; color: var(--nv-muted); flex-shrink: 0; }
.gs-row mark { background: none; color: #1f9e74; font-weight: 700; }
:root[data-theme="dark"] .gs-row mark { color: #2DBD8B; }
.gs-empty { padding: 14px 10px; font-size: 13px; color: var(--nv-muted); text-align: center; }

/* Profil kutusu + menüsü */
.sidebar-footer { border-left: none; padding-left: 0; }
.me { display: flex; align-items: center; gap: 10px; background: none; border: none; cursor: pointer; padding: 4px; border-radius: 14px; color: var(--nv-text); font: inherit; text-align: left; }
.me-avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; background: linear-gradient(135deg, #105044, #2DBD8B); color: #fff; font-size: 12.5px; font-weight: 700; letter-spacing: .3px; }
.me-text { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.25; min-width: 0; }
.me-name { font-size: 13px; font-weight: 600; color: var(--nv-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.me-clinic { font-size: 11.5px; color: var(--nv-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.nav-profile { position: relative; }
.nav-profile .nav-dropdown-trigger.me > .nav-count { top: -2px; right: auto; left: 30px; }
.nav-profile-menu { min-width: 240px; }
.nav-profile-menu .nav-item { width: 100%; }
.nav-profile-menu .nav-item .nav-count { margin-left: auto; }
.nav-profile-sep { margin: 6px 4px; border-top: 1px solid var(--nv-border); }
.nav-profile-sep span { display: block; font-size: 10.5px; letter-spacing: 1.2px; font-weight: 700; color: var(--nv-muted); text-transform: uppercase; padding: 8px 8px 2px; }
.nav-profile-menu .nav-logout { color: #e5484d; }
.nav-profile-menu .nav-logout svg { color: #e5484d; }
:root[data-theme="dark"] .nav-profile-menu .nav-logout, :root[data-theme="dark"] .nav-profile-menu .nav-logout svg { color: #ff8a8f; }

/* ---------- ÜST MENÜ (varsayılan, 861px ve üstü) ---------- */
@media (min-width: 861px) {
  :root:not([data-menu="side"]) .sidebar { gap: 6px; padding: 8px 10px; border-radius: 20px; }
  :root:not([data-menu="side"]) .sb-head { order: 0; margin-right: 6px; }
  :root:not([data-menu="side"]) .nav { order: 1; gap: 2px; flex-wrap: nowrap; }
  :root:not([data-menu="side"]) .gsearch { order: 2; width: 230px; }
  :root:not([data-menu="side"]) .sidebar-footer { order: 3; }
  :root:not([data-menu="side"]) .nav-item, :root:not([data-menu="side"]) .nav-dropdown-trigger { padding: 9px 12px; }
  :root:not([data-menu="side"]) .me-text,
  :root:not([data-menu="side"]) .nav-profile .nav-caret { display: none; }
  :root:not([data-menu="side"]) .nav-profile-menu { left: auto; right: 0; }
}
@media (min-width: 861px) and (max-width: 1439px) {
  :root:not([data-menu="side"]) .gsearch { width: 170px; }
}
/* Öğe aralığı ekrana göre (02.10.2026, kullanıcı: "dip dibe"). Değerler o genişlikte
   kalan boş alandan ölçüldü (İngilizce etiketler dahil tek satırda kalacak şekilde);
   1100px altında yer yok, sıkı kalır. */
@media (min-width: 1100px) and (max-width: 1279px) { :root:not([data-menu="side"]) .nav { gap: 12px; } }
@media (min-width: 1280px) and (max-width: 1439px) { :root:not([data-menu="side"]) .nav { gap: 10px; } }
@media (min-width: 1440px) { :root:not([data-menu="side"]) .nav { gap: 18px; } }
@media (min-width: 861px) and (max-width: 1279px) {
  :root:not([data-menu="side"]) .gsearch { width: 40px; padding: 0 11px; cursor: pointer; }
  :root:not([data-menu="side"]) .gsearch:focus-within { width: 230px; position: absolute; right: 64px; z-index: 5; background: var(--nv-pop); }
  :root:not([data-menu="side"]) .nav-item, :root:not([data-menu="side"]) .nav-dropdown-trigger { padding: 9px 9px; }
}

/* ---------- SOL MENÜ (861px ve üstü) ---------- */
@media (min-width: 861px) {
  :root[data-menu="side"] .app { flex-direction: row; align-items: flex-start; }
  :root[data-menu="side"] .sidebar {
    flex-direction: column; align-items: stretch; gap: 0;
    width: 268px; height: calc(100dvh - 28px);
    margin: 14px 0 14px 14px; padding: 14px 10px 10px;
    position: sticky; top: 14px; border-radius: 22px; overflow: visible;
  }
  :root[data-menu="side"] .main { flex: 1; min-width: 0; }
  :root[data-menu="side"] .sb-head { justify-content: space-between; padding: 2px 6px 12px; }
  :root[data-menu="side"] .brand-wordmark { height: 24px; }
  :root[data-menu="side"] .sb-mini-btn {
    display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
    border: 1px solid var(--nv-border); background: var(--nv-pop); color: var(--nv-text); cursor: pointer;
    box-shadow: 0 4px 10px rgba(0,0,0,.12);
  }
  :root[data-menu="side"] .gsearch { margin: 0 2px 6px; }
  :root[data-menu="side"] .gsearch-results { left: calc(100% + 18px); top: 0; }
  :root[data-menu="side"] .nav {
    flex: 1 1 auto; flex-direction: column; flex-wrap: nowrap; align-items: stretch;
    gap: 1px; overflow-y: auto; overflow-x: hidden; min-height: 0; padding: 2px 2px 8px;
    scrollbar-width: thin;
  }
  :root[data-menu="side"] .sidebar-footer { margin-top: 8px; padding: 0; }
  :root[data-menu="side"] .nav-profile { width: 100%; }
  :root[data-menu="side"] .nav-profile .me {
    width: 100%; padding: 10px; border-radius: 16px;
    background: var(--nv-sec-active); border: 1px solid rgba(45,189,139,.35);
  }
  :root[data-menu="side"] .nav-profile .nav-caret { margin-left: auto; transform: rotate(180deg); }
  :root[data-menu="side"] .nav-profile-menu { left: calc(100% + 18px); bottom: 0; top: auto; width: 250px; }
}
/* Bölüm başlıkları ve açılır-kapanır listeler: sol menü + telefon ☰ menüsü. */
@media (min-width: 861px) {
  :root[data-menu="side"] .lbl-side { display: inline; }
  :root[data-menu="side"] .lbl-top { display: none; }
  :root[data-menu="side"] .nav > .nav-item { order: 1; }
  :root[data-menu="side"] .nav-sec.nav-sec-flat { display: contents; }
  :root[data-menu="side"] .nav-sec.nav-sec-flat > .nav-dropdown-trigger { order: 0; }
  :root[data-menu="side"] .nav-sec.nav-sec-flat > .nav-dropdown-menu { order: 2; }
  :root[data-menu="side"] .nav-sec:not(.nav-sec-flat) { order: 3; }
  :root[data-menu="side"] .nav-sec .nav-dropdown-trigger {
    width: 100%; gap: 9px; padding: 13px 12px 6px; background: none; box-shadow: none;
    font-size: 10.5px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: var(--nv-muted);
  }
  :root[data-menu="side"] .nav-sec .nav-dropdown-trigger:hover { color: var(--nv-text); background: none; }
  :root[data-menu="side"] .nav-sec .nav-dropdown-trigger .nav-caret { margin-left: auto; transition: transform .15s; }
  :root[data-menu="side"] .nav-sec .nav-dropdown-trigger:not(.open) .nav-caret { transform: rotate(-90deg); }
  :root[data-menu="side"] .nav-sec .nav-dropdown-trigger > .nav-count { position: static; box-shadow: none; margin: 0 0 0 4px; }
  :root[data-menu="side"] .nav-sec .nav-dropdown-menu {
    position: static; display: flex; flex-direction: column; gap: 1px;
    background: none; border: none; box-shadow: none; padding: 0; min-width: 0; border-radius: 0;
  }
  :root[data-menu="side"] .nav-sec .nav-dropdown-menu[hidden] { display: none; }
  :root[data-menu="side"] .nav-sec.nav-sec-flat > .nav-dropdown-trigger { cursor: default; pointer-events: none; }
  :root[data-menu="side"] .nav-sec.nav-sec-flat > .nav-dropdown-trigger .nav-caret { display: none; }
  :root[data-menu="side"] .nav-sec.nav-sec-flat > .nav-dropdown-trigger > .nav-count { display: none; }
  /* Arama kutusunun hemen altındaki ilk başlık: üst boşluk kısa (kullanıcı isteği, 02.10.2026). */
  :root[data-menu="side"] .nav-sec.nav-sec-flat > .nav-dropdown-trigger { padding-top: 4px; }
  :root[data-menu="side"] .gsearch { margin-bottom: 2px; }
  :root[data-menu="side"] .nav-item { width: 100%; padding: 8px 12px; gap: 11px; font-size: 13.5px; }
  :root[data-menu="side"] .nav > .nav-item > .nav-count,
  :root[data-menu="side"] .nav > .nav-item > .nav-badge { position: static; margin-left: auto; box-shadow: none; }
}

/* Daraltılmış sol menü: yalnız ikonlar, adı üzerine gelince (title).
   Fareyle üzerine gelince (dokunmatikte menüye dokununca) menü GEÇİCİ olarak açılır
   (html.menu-peek) ve sayfanın ÜSTÜNE biner, içerik kaymaz (02.10.2026, kullanıcı isteği:
   "menü gizliyken üzerine gelince açılsın, tuşlara tıklayabilelim"). Bu yüzden daraltılmış
   menü sabit konumlu, içerik ona yer bırakır (76 + 2x14). */
@media (min-width: 861px) {
  :root[data-menu="side"].menu-mini .sidebar { position: fixed; left: 0; top: 0; z-index: 60; transition: width .16s ease, box-shadow .16s ease; }
  :root[data-menu="side"].menu-mini .main { margin-left: 104px; }
  /* Tam ekran görünümler (Asistan, Hasta Kartı…) kendi kenar boşluğunu yazıyor ve daha belirgin
     seçiciyle 104px'i eziyordu: daraltılmış menü listenin üstüne biniyordu (02.10.2026, iPad). */
  :root[data-menu="side"].menu-mini .main.main--inbox-fullbleed,
  :root[data-menu="side"].menu-mini .main.main--patientcard-fullbleed,
  :root[data-menu="side"].menu-mini .main.main--appview-fullbleed { margin-left: 104px; }
  :root[data-menu="side"].menu-mini.menu-peek .sidebar { width: 268px; box-shadow: 0 18px 50px rgba(0,0,0,.35); }
  :root[data-menu="side"].menu-mini.menu-peek .sb-mini-btn svg { transform: rotate(180deg); }
}
@media (min-width: 861px) {
  :root[data-menu="side"].menu-mini:not(.menu-peek) .sidebar { width: 76px; padding: 12px 8px 10px; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .brand,
  :root[data-menu="side"].menu-mini:not(.menu-peek) .gsearch,
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-item > span:not(.nav-count):not(.nav-badge):not(.nav-live-dot),
  :root[data-menu="side"].menu-mini:not(.menu-peek) .lbl-side,
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-caret,
  :root[data-menu="side"].menu-mini:not(.menu-peek) .me-text { display: none; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .sb-head { justify-content: center; padding-bottom: 10px; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .sb-mini-btn svg { transform: rotate(180deg); }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-item { justify-content: center; padding: 10px; position: relative; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-item > .nav-count,
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-item > .nav-badge { position: absolute; top: 1px; right: 1px; padding: 0 5px; font-size: 9.5px; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-sec .nav-dropdown-trigger { justify-content: center; padding: 10px 0 4px; border-top: 1px solid var(--nv-border); border-radius: 0; margin-top: 4px; pointer-events: none; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-sec .nav-dropdown-trigger > .nav-count { display: none; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-sec .nav-dropdown-menu[hidden] { display: flex; }
  :root[data-menu="side"].menu-mini:not(.menu-peek) .nav-profile .me { justify-content: center; padding: 8px; }
}

/* ---------- TELEFON (860px altı): ☰ menüsü, sol menü gibi bölümlü ---------- */
@media (max-width: 860px) {
  /* Şerit ekranın üstünde SABİT (sticky burada tutmuyordu, sayfa kayınca şerit gidip
     ☰ tek başına kalıyordu); ☰ şeridin içinde, dikeyde ortalı. Şerit 56px:
     ☰ 40px → üst 10 + (56-40)/2 = 18, sağ 14 + 8 = 22. */
  .sidebar {
    border-radius: 22px; position: fixed; top: 10px; left: 0; right: 0;
    margin: 0 14px; min-height: 56px; max-height: calc(100dvh - 20px); overflow-y: auto;
    align-items: center;
  }
  .sidebar.open { align-items: flex-start; }
  body:not(.inbox-mobile-mode) .app { padding-top: 76px; }
  .mobile-menu-btn {
    background: linear-gradient(135deg, #1c8f68, #2DBD8B);
    top: 18px; right: 22px; width: 40px; height: 40px;
  }
  .gsearch { display: none; order: 1; width: 100%; margin-top: 10px; }
  .sidebar.open .gsearch { display: flex; }
  .sidebar .nav { order: 2; }
  .sidebar-footer { order: 3; }
  .gsearch-results { width: 100%; }
  .lbl-side { display: inline; }
  .lbl-top { display: none; }
  .sidebar.open .nav > .nav-item { order: 1; }
  .nav-sec.nav-sec-flat { display: contents; }
  .nav-sec.nav-sec-flat > .nav-dropdown-trigger { order: 0; pointer-events: none; }
  .nav-sec.nav-sec-flat > .nav-dropdown-trigger .nav-caret { display: none; }
  .nav-sec.nav-sec-flat > .nav-dropdown-trigger > .nav-count { display: none; }
  .sidebar.open { row-gap: 0; }
  .sidebar.open .nav { margin-top: 8px; }
  .nav-sec.nav-sec-flat > .nav-dropdown-trigger { padding-top: 6px; }
  .nav-sec.nav-sec-flat > .nav-dropdown-menu { order: 2; }
  .nav-sec:not(.nav-sec-flat) { order: 3; }
  .nav-sec .nav-dropdown-trigger {
    gap: 9px; padding: 14px 12px 6px; background: none; box-shadow: none;
    font-size: 10.5px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; color: var(--nv-muted);
  }
  .nav-sec .nav-dropdown-trigger.parent-active { background: none; box-shadow: none; }
  .nav-sec .nav-dropdown-trigger .nav-caret { margin-left: auto; }
  .nav-sec .nav-dropdown-trigger:not(.open) .nav-caret { transform: rotate(-90deg); }
  :root .sidebar .nav-sec .nav-dropdown-menu { background: none; border: none; box-shadow: none; margin: 0; padding: 0; border-radius: 0; }
  :root .sidebar .nav-item { padding: 9px 12px; gap: 10px; }
  .nav-dropdown-menu .nav-item { color: var(--nv-text); }
  .nav-dropdown-menu .nav-item:hover:not(.active) { background: var(--nv-hover); color: var(--nv-text); }
  .sidebar.open .sidebar-footer { border-top: 1px solid var(--nv-border); display: block; }
  .nav-profile .me { width: 100%; }
  .nav-profile .nav-caret { margin-left: auto; }
  .nav-profile-menu { position: static; margin-top: 6px; background: var(--nv-input); }
}

/* Tam ekran görünümler (Asistan, Hasta Kartı, liste+detay ekranları) yüksekliği
   üst şeride göre hesaplıyordu (100dvh - 92px). Sol menüde şerit yok. */
@media (min-width: 861px) {
  :root[data-menu="side"] .main.main--inbox-fullbleed,
  :root[data-menu="side"] .main.main--patientcard-fullbleed,
  :root[data-menu="side"] .main.main--appview-fullbleed { margin: 14px 14px 0 14px; }
  :root[data-menu="side"] .main.main--inbox-fullbleed #view-inbox,
  :root[data-menu="side"] .main.main--patientcard-fullbleed #view-patient-card,
  :root[data-menu="side"] .main.main--appview-fullbleed > .view:not([hidden]) { height: calc(100dvh - 28px); }
}
