/* NaeronUI Blocks: hazır sayfa iskeletleri için yeniden kullanılabilir yerleşim sınıfları.

   Sözleşme
   - Renk yalnız var(--nui-…) tokenlarıdır (color-mix dahil); sabit hex/rgb yoktur. Açık/koyu tema body sınıfından gelir.
   - nui.css'te karşılığı olan desen burada tekrar tanımlanmaz, doğrudan o sınıf kullanılır:
       sayfa başlığı    .nui-page-header (+ .nui-eyebrow, .nui-page-description)
       giriş kabuğu     .nui-auth-layout, .nui-auth-card, .nui-auth-brand, .nui-auth-title, .nui-auth-form, .nui-auth-error
       bölüm kartları   .nui-grid-auto + .nui-kpi
       tablo / filtre   .nui-table-shell|-toolbar|-scroll|-pagination, .nui-filter-toolbar, .nui-table-sort
       boş durum        .nui-empty, liste satırı .nui-item, durum .nui-status / .nui-badge
       kenar menü       .nui-shell > .nui-shell-body > .nui-sidebar > .nui-nav-list > .nui-nav-item
   - Bu dosya yalnız çekirdekte olmayan blok desenlerini ekler. Genel işe yarayan desenler "Aday çekirdek" ile
     işaretlidir; ileride nui.css'e taşınabilir. Önek nui-…, durum sınıfları is-… biçimindedir.
   - Kabuk (.nui-shell) kuralları 640px altında kenar menüyü çekmeceye çevirir; blokların kendi çok sütunlu
     yerleşimleri 900px/720px eşiklerinde tek sütuna iner. */

/* ===== 1. Bağımsız sayfa kökü (Aday çekirdek) ===== */
/* Kabuk (.nui-shell) dışında kalan sayfalar için tipografi, kutu modeli ve ikon ölçüsü; kabuk içi sayfalarda zararsızdır. */
.nui-block-page { min-height: 100dvh; background: var(--nui-content-surface); color: var(--nui-text); font-family: var(--nui-font-sans); font-size: var(--nui-font-size-base); line-height: 1.4; }
.nui-block-page, .nui-block-page *, .nui-block-page *::before, .nui-block-page *::after { box-sizing: border-box; }
/* Aşağıdaki varsayılanlar :where ile sıfır özgüllüktedir; bileşen sınıfları (.nui-button, .nui-link…) her zaman üstün gelir. */
:where(.nui-block-page) :is(button, input, select, textarea) { font: inherit; }
:where(.nui-block-page) svg.lucide { width: 1em; height: 1em; stroke-width: 1.8; vertical-align: -.13em; }
:where(.nui-block-page) :is(button, a[href], input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--nui-ring); outline-offset: 2px; }
:where(.nui-block-page a) { color: inherit; }
:where(.nui-block-page) :is(h1, h2, h3, h4, p) { margin-block: 0; }

/* Klavye kullanıcısı için ilk Tab'ta görünen "içeriğe geç" bağlantısı (Aday çekirdek). */
.nui-skip-link { position: absolute; z-index: 20000; inset-block-start: 8px; inset-inline-start: 8px; padding: 6px 12px; border-radius: var(--nui-radius-sm); background: var(--nui-primary); color: var(--nui-primary-foreground); font-size: var(--nui-font-size-sm); font-weight: 600; text-decoration: none; transform: translateY(-250%); }
.nui-skip-link:focus { transform: none; }

/* ===== 2. Form yardımcıları ===== */
/* Etiket ile yan bağlantı ("Şifremi unuttum") aynı satırda. */
.nui-field-row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--nui-gap-2); }
/* Hata alanı canlı bölge olarak hep DOM'dadır; boşken flex boşluğu yaratmaz. */
.nui-field-error:empty { margin-top: calc(var(--nui-gap-1) * -1); }
.nui-field-hint { line-height: 1.4; }
/* Çerçevesiz fieldset: radyo/onay grupları için anlamsal gruplama, görsel kutu yok. */
.nui-fieldset-plain { min-width: 0; margin: 0; padding: 0; border: 0; }
/* .nui-form-grid içinde iki sütunu kaplayan alan (ör. çok satırlı metin). */
.nui-col-span-full { grid-column: 1 / -1; }

/* Şifre gücü göstergesi: data-level 0..4 (Aday çekirdek). Anlam renkle değil etiket metniyle de verilir. */
.nui-strength { display: grid; gap: 6px; }
.nui-strength-bar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.nui-strength-bar > span { height: 4px; border-radius: 999px; background: var(--nui-border); transition: background-color .15s ease; }
.nui-strength[data-level="1"] .nui-strength-bar > span:nth-child(-n + 1) { background: var(--nui-danger); }
.nui-strength[data-level="2"] .nui-strength-bar > span:nth-child(-n + 2) { background: var(--nui-warning); }
.nui-strength[data-level="3"] .nui-strength-bar > span:nth-child(-n + 3), .nui-strength[data-level="4"] .nui-strength-bar > span { background: var(--nui-success); }
.nui-strength-label { color: var(--nui-text-muted); font-size: var(--nui-font-size-xs); }
.nui-strength[data-level="1"] .nui-strength-label { color: var(--nui-danger-fg); }
.nui-strength[data-level="2"] .nui-strength-label { color: var(--nui-warning-fg); }
.nui-strength[data-level="3"] .nui-strength-label, .nui-strength[data-level="4"] .nui-strength-label { color: var(--nui-success-fg); }
.nui-strength-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--nui-gap-3); margin: 0; padding: 0; list-style: none; color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }
.nui-strength-rules li { display: flex; align-items: center; gap: 6px; }
.nui-strength-rules li::before { content: ''; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: .45; }
.nui-strength-rules li.is-met { color: var(--nui-success-fg); }
.nui-strength-rules li.is-met::before { background: var(--nui-success); opacity: 1; }

/* Ayar satırı: sol metin, sağ denetim (switch, select). Kart gövdesinde kenarsız kullanılır. */
.nui-form-section-flush { gap: 0; padding: 0; }
.nui-setting-row { display: flex; align-items: center; justify-content: space-between; gap: var(--nui-gap-4); padding: 12px var(--nui-gap-3); border-bottom: 1px solid var(--nui-border); }
.nui-setting-row:last-child { border-bottom: 0; }
.nui-setting-row-text { display: grid; min-width: 0; gap: 2px; }
/* Açıklama satıra sarılır; sağdaki düğme/anahtar daralıp kısalmaz. */
.nui-setting-row > :not(.nui-setting-row-text) { flex-shrink: 0; }
.nui-setting-row-title { color: var(--nui-text); font-size: var(--nui-font-size-sm); font-weight: 600; }
.nui-setting-row-description { color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); line-height: 1.4; }

/* ===== 3. Marka ve giriş/kayıt yerleşimleri ===== */
/* Logo görseli yerine harf/ikon işareti; dış görsel bağımlılığı yoktur. */
.nui-brand-mark { display: inline-grid; flex: 0 0 auto; place-items: center; width: 36px; height: 36px; border-radius: var(--nui-radius-sm); background: var(--nui-primary); color: var(--nui-primary-foreground); font-size: 18px; }
.nui-brand-lockup { display: inline-flex; align-items: center; gap: 8px; color: var(--nui-text); font-weight: 750; letter-spacing: .06em; text-decoration: none; }
.nui-brand-lockup .nui-brand-mark { width: 28px; height: 28px; font-size: 15px; }

/* login-01: düz zemin, kenarlıklı kart. Kart nui.css'teki .nui-auth-card'dır, yalnız gölge kaldırılır. */
.nui-auth-plain { background: var(--nui-raised); }
.nui-auth-plain .nui-auth-card { background: var(--nui-raised); box-shadow: none; }
.nui-auth-subtitle { margin: 0; color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); line-height: 1.45; text-align: center; text-wrap: balance; }
.nui-auth-footnote { margin: 0; color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); line-height: 1.5; text-align: center; text-wrap: balance; }
.nui-auth-card > .nui-auth-footnote { margin-top: var(--nui-gap-4); }
/* login-03 ve login-05: kartın üstünde marka, altında dipnot. */
.nui-auth-stack { display: grid; justify-items: center; gap: var(--nui-gap-4); width: min(100%, 420px); }
.nui-auth-stack > .nui-auth-card { width: 100%; }
/* OTP kutuları kart ortasında; core attachOtpInput kutuları .nui-otp-group içine üretir. */
.nui-auth-otp { display: grid; justify-items: center; gap: var(--nui-gap-2); }
.nui-auth-actions { display: grid; gap: var(--nui-gap-2); }

/* login-02: iki sütun; solda form, sağda token renkli desen alanı. Dar ekranda yalnız form kalır. */
.nui-auth-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100dvh; background: var(--nui-content-surface); }
.nui-auth-split-form { display: flex; flex-direction: column; gap: var(--nui-gap-4); padding: 24px; background: var(--nui-raised); }
.nui-auth-split-main { display: grid; flex: 1 1 auto; place-items: center; }
.nui-auth-panel { display: grid; gap: var(--nui-gap-4); width: min(100%, 360px); }
/* Görsel alanı: iki ton + radar halkaları + ızgara. Yalnız token karışımı kullanır. */
.nui-auth-visual { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 320px; padding: 32px; overflow: hidden; isolation: isolate; color: var(--nui-text);
	background:
		radial-gradient(60% 55% at 80% 8%, color-mix(in srgb, var(--nui-chart-1) 34%, transparent), transparent 72%),
		radial-gradient(55% 50% at 6% 94%, color-mix(in srgb, var(--nui-chart-4) 26%, transparent), transparent 72%),
		var(--nui-panel); }
.nui-auth-visual::before { content: ''; position: absolute; inset: 0; z-index: -1;
	background: repeating-radial-gradient(circle at 74% 26%, transparent 0 52px, color-mix(in srgb, var(--nui-text) 11%, transparent) 52px 53px);
	-webkit-mask-image: radial-gradient(circle at 74% 26%, var(--nui-text), transparent 78%); mask-image: radial-gradient(circle at 74% 26%, var(--nui-text), transparent 78%); }
.nui-auth-visual::after { content: ''; position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(color-mix(in srgb, var(--nui-text) 5%, transparent) 1px, transparent 1px) 0 0 / 32px 32px,
		linear-gradient(90deg, color-mix(in srgb, var(--nui-text) 5%, transparent) 1px, transparent 1px) 0 0 / 32px 32px; }
.nui-auth-visual-quote { display: grid; gap: var(--nui-gap-2); max-width: 420px; margin: 0; }
.nui-auth-visual-quote p { margin: 0; font-size: var(--nui-font-size-lg); font-weight: 600; line-height: 1.45; text-wrap: balance; }
.nui-auth-visual-quote footer { color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); }
/* login-04: kartın içinde form + görsel. */
.nui-auth-card.nui-auth-card-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: min(100%, 880px); padding: 0; overflow: hidden; }
.nui-auth-card-form { display: grid; align-content: center; gap: var(--nui-gap-4); padding: 32px; }
.nui-auth-card-split > .nui-auth-visual { min-height: 100%; border-inline-start: 1px solid var(--nui-border); }
@media (max-width: 860px) {
	.nui-auth-split { grid-template-columns: minmax(0, 1fr); }
	.nui-auth-split > .nui-auth-visual { display: none; }
}
@media (max-width: 720px) {
	.nui-auth-card.nui-auth-card-split { grid-template-columns: minmax(0, 1fr); }
	.nui-auth-card-split > .nui-auth-visual { display: none; }
	.nui-auth-card-form { padding: 24px; }
}

/* ===== 4. Sayfa iskeleti ===== */
/* Kabuk içi sayfa kabı için biraz daha ferah dolgu (.nui-page-container ile birlikte). */
.nui-page-comfortable { gap: var(--nui-gap-4); padding: 16px 20px 20px; }
/* Kenardan kenara öğe (yapışkan çubuk) gereken sayfalarda kap dolgusuz, içerik .nui-page-inner'dadır. */
.nui-page-flush { gap: 0; padding: 0; }
@media (prefers-reduced-motion: no-preference) { .nui-page-flush { scroll-behavior: smooth; } }
.nui-page-inner { display: grid; flex: 0 0 auto; align-content: start; gap: var(--nui-gap-4); padding: 16px 20px 20px; }
/* Başlık + durum rozeti aynı satırda. */
.nui-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nui-gap-2); }
.nui-title-row > h1 { margin: 0; }
/* Sayfa başlığındaki h1 kuralı yalnız doğrudan çocuğu kapsar; başlık satırında da aynı ölçü korunur. */
.nui-page-header .nui-title-row > h1 { margin: 1px 0 3px; color: var(--nui-text); font-size: 19px; line-height: 25px; }
/* Blok iskeletlerinde içeriğin yerini tutan kesikli kutu. */
.nui-placeholder { display: grid; place-items: center; min-height: 96px; border: 1px dashed var(--nui-border-strong); border-radius: var(--nui-radius-lg); background: color-mix(in srgb, var(--nui-raised) 50%, transparent); color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }
.nui-placeholder-tall { min-height: 240px; }
/* Sayfa düzeyi boş durum: kesikli çerçeveli .nui-empty daha ferah ve ortalanmış olur. */
.nui-empty.nui-empty-page { min-height: 320px; padding: 48px 20px; }
.nui-empty-page .nui-empty-description { max-width: 440px; }
.nui-empty-page .nui-empty-actions { flex-wrap: wrap; justify-content: center; }
.nui-empty-tips { margin-top: var(--nui-gap-2); }
/* error-404 */
.nui-error-page { display: grid; justify-items: center; gap: var(--nui-gap-3); width: min(100%, 460px); text-align: center; }
.nui-error-code { margin: 0; font-size: clamp(72px, 20vw, 128px); font-weight: 800; letter-spacing: -.05em; line-height: 1; background: linear-gradient(180deg, var(--nui-text) 30%, transparent 105%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nui-error-title { margin: 0; color: var(--nui-text); font-size: 20px; font-weight: 750; }
.nui-error-description { margin: 0; color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); line-height: 1.5; text-wrap: balance; }
.nui-error-search { width: 100%; }
.nui-error-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--nui-gap-2); }

/* ===== 5. Kenar menü varyantları (kabuk üzerinde) ===== */
/* Menü içinde arama alanı; daralınca gizlenir. */
.nui-shell .nui-sidebar-search { position: relative; margin: 0 0 6px; }
.nui-shell .nui-sidebar-search > svg { position: absolute; inset-block-start: 50%; inset-inline-start: 9px; color: var(--nui-text-faint); transform: translateY(-50%); pointer-events: none; }
.nui-shell .nui-sidebar-search .nui-input { width: 100%; max-width: none; padding-inline-start: 28px; }
.nui-shell.is-sidebar-collapsed .nui-sidebar-search, .nui-shell.is-sidebar-collapsed .nui-nav-empty { display: none; }
.nui-shell .nui-nav-empty { margin: 4px 0; padding: 0 9px; color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }

/* Çekirdekteki "i:last-child gizle" kuralı lucide svg'ye dönüşünce eşleşmez; sondaki öğeler bu sınıfla gizlenir. */
.nui-shell .nui-nav-item > .nui-nav-trailing { margin-inline-start: auto; flex: 0 0 auto; }
.nui-shell.is-sidebar-collapsed .nui-nav-item > .nui-nav-trailing { display: none; }
.nui-shell .nui-nav-item > .nui-nav-trailing.nui-badge { padding: 0 6px; }
.nui-shell button.nui-nav-item { width: 100%; background: transparent; font: inherit; font-size: var(--nui-font-size-base); text-align: start; }

/* Katlanır bölüm başlığı (sidebar-02): .nui-collapsible ile çalışır; çekirdek attachCollapsible kullanılır. */
.nui-shell :is(.nui-nav-group, .nui-nav-item-group) { display: block; }
.nui-shell .nui-nav-group-trigger { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; margin: 12px 0 2px; padding: 4px 8px; border: 0; border-radius: var(--nui-radius-sm); background: transparent; color: var(--nui-text-faint); cursor: pointer; font: inherit; font-size: var(--nui-font-size-xs); font-weight: 700; letter-spacing: .09em; text-align: start; }
.nui-shell .nui-nav-group-trigger:hover { background: var(--nui-nav-hover-bg); color: var(--nui-text); }
.nui-shell .nui-nav-group-trigger > svg { flex: 0 0 auto; transition: transform .15s ease; }
.nui-shell .nui-nav-group-trigger[aria-expanded="true"] > svg[data-lucide="chevron-right"] { transform: rotate(90deg); }
.nui-shell .nui-nav-group-content { margin: 0; padding: 0; list-style: none; }
/* Üst öğe düğmesinin chevron'u (sidebar-03, sidebar-07) aynı biçimde döner. */
.nui-shell .nui-nav-item[aria-expanded] > svg.nui-nav-trailing { transition: transform .15s ease; }
.nui-shell .nui-nav-item[aria-expanded="true"] > svg.nui-nav-trailing[data-lucide="chevron-right"] { transform: rotate(90deg); }

/* Alt menü: sol çizgiyle girintili liste. Daralmış menüde gizlenir. */
.nui-shell .nui-nav-sub { margin: 2px 0 4px 15px; padding: 0 0 0 8px; border-inline-start: 1px solid var(--nui-border); list-style: none; }
.nui-shell .nui-nav-sub .nui-nav-item { min-height: calc(var(--nui-nav-item-height) - 4px); }
.nui-shell.is-sidebar-collapsed .nui-nav-sub, .nui-shell.is-sidebar-collapsed .nui-collapsible.is-open > .nui-nav-sub { display: none; }

/* İkincil gezinme (sidebar-08): menünün altında, kullanıcı kartının üstünde. */
.nui-shell .nui-nav-secondary { display: flex; flex: 0 0 auto; flex-direction: column; margin: 0; padding: 8px 0; list-style: none; }

/* Kimlik kartı: ekip seçici ve kullanıcı kartı için tek bileşen (Aday çekirdek). */
.nui-identity { display: flex; align-items: center; gap: 10px; width: 100%; min-width: 0; padding: 6px; border: 1px solid transparent; border-radius: var(--nui-radius-sm); background: transparent; color: var(--nui-text); cursor: pointer; font: inherit; text-align: start; }
.nui-identity:hover, .nui-identity[aria-expanded="true"] { background: var(--nui-nav-hover-bg); }
/* Düğme olmayan kimlik kartı yalnız bilgi verir: tıklanabilir görünmez. */
.nui-identity:not(button) { cursor: default; }
.nui-identity:not(button):hover { background: transparent; }
.nui-identity-mark { display: grid; flex: 0 0 auto; place-items: center; width: 28px; height: 28px; border-radius: var(--nui-radius-sm); background: var(--nui-primary); color: var(--nui-primary-foreground); font-size: 14px; }
.nui-identity-text { display: grid; flex: 1 1 auto; min-width: 0; gap: 1px; line-height: 1.25; }
.nui-identity-name, .nui-identity-meta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nui-identity-name { font-size: var(--nui-font-size-sm); font-weight: 650; }
.nui-identity-meta { color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }
.nui-identity > .nui-identity-chevron { flex: 0 0 auto; color: var(--nui-text-faint); }
.nui-identity .nui-avatar { flex: 0 0 auto; }
.nui-shell .nui-sidebar .nui-dropdown { display: block; width: 100%; }
.nui-shell.is-sidebar-collapsed .nui-identity { justify-content: center; padding: 6px 0; }
.nui-shell.is-sidebar-collapsed .nui-identity-text, .nui-shell.is-sidebar-collapsed .nui-identity > .nui-identity-chevron { display: none; }
/* Açılır kullanıcı menüsü body'ye taşınır (core attachDropdown), bu yüzden kabuk seçicisi kullanılmaz. */
.nui-user-menu { min-width: 232px; }
.nui-user-menu-header { display: flex; align-items: center; gap: 10px; padding: 8px; }
.nui-user-menu-header .nui-identity-text { flex: 1 1 auto; }
/* Seçili radyo öğesi sağda onay işaretiyle belirtilir (okul değiştirici). */
.nui-user-menu [role="menuitemradio"][aria-checked="true"]::after { content: "✓"; margin-inline-start: auto; color: var(--nui-accent); font-weight: 700; }

/* Daraltma düğmesi çubuğu (sidebar-07): marka satırında ikon düğmesi. */
.nui-shell .nui-sidebar-brand.nui-sidebar-head { gap: 6px; height: auto; margin-bottom: 8px; padding: 0; }
.nui-shell.is-sidebar-collapsed .nui-sidebar-brand.nui-sidebar-head { flex-direction: column; }

/* İç içe (inset) düzen: içerik kenar menüden ayrılan yüzen karttır (sidebar-08). */
.nui-shell.nui-shell-inset .nui-main-content { margin: 0 8px 8px 0; border: 1px solid var(--nui-content-border); border-radius: var(--nui-radius); box-shadow: 0 1px 3px var(--nui-shadow); }
/* Sol + sağ kenar menü (sidebar-15). Sağ menü masaüstünde sütun, dar ekranda sağdan açılan çekmecedir. */
.nui-shell.nui-shell-dual .nui-main-content { border-inline-end: 1px solid var(--nui-content-border); border-start-end-radius: 15px; }
.nui-shell .nui-sidebar-right { display: flex; flex: 0 0 auto; flex-direction: column; gap: var(--nui-gap-3); width: 280px; padding: 8px; overflow: hidden auto; background: var(--nui-sidebar-surface); color: var(--nui-text); }
.nui-shell.is-right-sidebar-collapsed .nui-sidebar-right { display: none; }
.nui-sidebar-right-title { margin: 0; padding: 0 4px; color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.nui-sidebar-right .nui-calendar { width: 100%; }
/* Yapışkan site başlığı (sidebar-16): kabuğun üst çubuğu breadcrumb + arama + eylemleri taşır. */
.nui-shell.nui-shell-site-header .nui-topbar { height: 52px; min-height: 52px; padding-inline: 12px 14px; border-bottom: 1px solid var(--nui-content-border); }
.nui-shell.nui-shell-site-header .nui-brand { gap: 10px; }
.nui-topbar-divider { align-self: center; width: 1px; height: 18px; background: var(--nui-border-strong); }
.nui-topbar-search { width: min(100%, 260px); }
.nui-topbar-search .nui-input { max-width: none; }
.nui-shell .nui-topbar .nui-breadcrumb { min-width: 0; }

/* ===== 6. Ayarlar yerleşimi ===== */
/* Sol bölüm menüsü + sağ içerik (Aday çekirdek). */
.nui-settings-layout { display: grid; grid-template-columns: minmax(170px, 220px) minmax(0, 1fr); align-items: start; gap: var(--nui-gap-4) 32px; }
.nui-settings-content { display: grid; gap: var(--nui-gap-4); min-width: 0; max-width: 760px; }
.nui-settings-content > section { scroll-margin-top: var(--nui-gap-3); }
/* Menü kabı (nav) grid alanı içinde yapışır; yapışan öğe listenin kendisi olsaydı kap kadar kısa olup kaymazdı. */
.nui-settings-nav { position: sticky; inset-block-start: 16px; }
/* Dikey bölüm menüsü; .nui-nav-item görünümünü kabuk kenar menüsüne bağlamadan yeniden üretir (Aday çekirdek). */
.nui-nav-vertical { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.nui-nav-vertical a { display: flex; align-items: center; gap: 8px; min-height: var(--nui-nav-item-height); padding: 0 10px; border: 1px solid transparent; border-radius: var(--nui-radius-sm); color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); text-decoration: none; }
.nui-nav-vertical a:hover { background: var(--nui-nav-hover-bg); color: var(--nui-text); }
.nui-nav-vertical a[aria-current="true"], .nui-nav-vertical a[aria-current="page"] { border-color: var(--nui-nav-active-border); background: var(--nui-nav-active-bg); color: var(--nui-nav-active-text); }
.nui-nav-vertical a:focus-visible { outline: 2px solid var(--nui-ring); outline-offset: 2px; }
/* Altta yapışan kaydet çubuğu: kaydırma kabı dolgusuz (.nui-page-flush), içerik .nui-page-inner içindedir; böylece
   çubuk, tarayıcıların sticky + kap dolgusu farkından etkilenmeden görünümün dibine oturur. İçerik kısaysa kabın dibindedir. */
.nui-save-bar { position: sticky; inset-block-end: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: var(--nui-gap-3); margin-top: auto; padding: 10px 20px; border-top: 1px solid var(--nui-border); background: var(--nui-raised); box-shadow: 0 -6px 14px -10px var(--nui-shadow); }
.nui-save-bar-message { display: inline-flex; align-items: center; gap: 6px; flex: 1 1 200px; min-width: 0; color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); }
.nui-save-bar[data-dirty="true"] .nui-save-bar-message { color: var(--nui-warning-fg); }
.nui-save-bar-actions { display: flex; gap: var(--nui-gap-2); margin-inline-start: auto; }
@media (max-width: 900px) {
	.nui-settings-layout { grid-template-columns: minmax(0, 1fr); }
	.nui-settings-nav { position: static; }
	.nui-nav-vertical { display: flex; overflow-x: auto; padding-bottom: 2px; scrollbar-width: thin; }
	.nui-nav-vertical a { flex: 0 0 auto; white-space: nowrap; }
}

/* ===== 7. Liste yardımcıları ===== */
/* Seçim yapılınca tablonun üstünde beliren toplu işlem çubuğu (Aday çekirdek). */
.nui-bulk-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nui-gap-2); min-height: 48px; padding: 8px 12px; border-bottom: 1px solid var(--nui-accent-border); background: var(--nui-accent-fill); color: var(--nui-accent-fg); font-size: var(--nui-font-size-sm); }
.nui-bulk-bar-count { margin-inline-end: auto; font-weight: 650; }
/* Avatar + iki satırlı metin içeren tablo hücresi. */
.nui-cell-person { display: flex; align-items: center; gap: 10px; min-width: 0; }
.nui-cell-person-text { display: grid; min-width: 0; line-height: 1.25; }
.nui-cell-person-name { color: var(--nui-text); font-weight: 600; }
.nui-cell-person-meta { color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }
.nui-table-check { width: 36px; text-align: center; }
.nui-table-check input { margin: 0; vertical-align: middle; }
.nui-table tr.is-selected > td { background: color-mix(in srgb, var(--nui-accent-fill) 70%, transparent); }
.nui-table-actions-cell { width: 1%; white-space: nowrap; text-align: end; }

/* ===== 8. Ayrıntı yerleşimi ===== */
/* Ana içerik + sağ bilgi paneli (Aday çekirdek). */
.nui-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; align-items: start; gap: var(--nui-gap-4); }
.nui-detail-main { display: grid; gap: var(--nui-gap-3); min-width: 0; }
.nui-detail-aside { display: grid; gap: var(--nui-gap-3); min-width: 0; }
@media (max-width: 1000px) { .nui-detail-layout { grid-template-columns: minmax(0, 1fr); } }
/* Tanım listesi: etiket/değer çiftleri (Aday çekirdek). */
.nui-dl { display: grid; gap: 10px; margin: 0; container-type: inline-size; }
.nui-dl > div { display: grid; grid-template-columns: minmax(84px, 36%) minmax(0, 1fr); gap: var(--nui-gap-2); align-items: baseline; }
.nui-dl dt { color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }
.nui-dl dd { margin: 0; min-width: 0; color: var(--nui-text); font-size: var(--nui-font-size-sm); overflow-wrap: anywhere; }
/* Dar kapta (yan kart) terim üstte, değer tam genişlikte; değer harf harf kırılmaz. */
@container (max-width: 260px) { .nui-dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
/* Çerçevesiz sekmeler: yalnız alt çizgili liste. nui.css'teki .nui-tabs kutulu görünümünü geçersiz kılar. */
.nui-tabs.nui-tabs-plain { border: 0; border-radius: 0; background: transparent; }
.nui-tabs-plain > .nui-tabs-list { padding: 0; gap: 4px; border-bottom: 1px solid var(--nui-border); border-radius: 0; background: transparent; }
.nui-tabs-plain .nui-tabs-trigger { border-color: transparent; border-radius: var(--nui-radius-sm) var(--nui-radius-sm) 0 0; }
.nui-tabs-plain .nui-tabs-trigger[aria-selected="true"] { border-color: transparent; background: transparent; box-shadow: inset 0 -2px 0 var(--nui-accent); }
.nui-tabs-plain > .nui-tabs-panel { display: grid; gap: var(--nui-gap-3); padding: var(--nui-gap-3) 0 0; color: var(--nui-text); }
/* Zaman çizelgesi kartı: nui-components.css'teki .nui-timeline ile birlikte kullanılır. */
.nui-detail-aside .nui-timeline li:last-child { padding-bottom: 0; }

/* ===== 9. Bildirim merkezi ===== */
.nui-notification-list { display: grid; gap: var(--nui-gap-4); }
.nui-notification-day { display: grid; gap: var(--nui-gap-2); }
.nui-notification-day-title { margin: 0; color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.nui-notification-items { margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--nui-border); border-radius: var(--nui-radius-lg); background: var(--nui-raised); list-style: none; }
.nui-notification { position: relative; display: flex; align-items: flex-start; gap: var(--nui-gap-3); padding: 12px 12px 12px 24px; border-bottom: 1px solid var(--nui-border); }
.nui-notification:last-child { border-bottom: 0; }
.nui-notification-media { display: grid; flex: 0 0 auto; place-items: center; width: 32px; height: 32px; border-radius: var(--nui-radius-sm); background: var(--nui-raised-hover); color: var(--nui-text-muted); }
.nui-notification-media.is-info { background: var(--nui-info-fill); color: var(--nui-info-fg); }
.nui-notification-media.is-success { background: var(--nui-success-fill); color: var(--nui-success-fg); }
.nui-notification-media.is-warning { background: var(--nui-warning-fill); color: var(--nui-warning-fg); }
.nui-notification-media.is-danger { background: var(--nui-danger-fill); color: var(--nui-danger-fg); }
.nui-notification-body { display: grid; flex: 1 1 auto; min-width: 0; gap: 2px; }
.nui-notification-title { color: var(--nui-text-muted); font-size: var(--nui-font-size-sm); font-weight: 500; }
.nui-notification-text { color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); line-height: 1.45; }
.nui-notification-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--nui-text-faint); font-size: var(--nui-font-size-xs); }
.nui-notification-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 2px; }
/* Okunmamış: sol işaret + kalın başlık; anlam gizli metinle de verilir. */
.nui-notification.is-unread { background: color-mix(in srgb, var(--nui-accent-fill) 45%, var(--nui-raised)); }
.nui-notification.is-unread::before { content: ''; position: absolute; inset-block-start: 19px; inset-inline-start: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--nui-accent); }
.nui-notification.is-unread .nui-notification-title { color: var(--nui-text); font-weight: 700; }
.nui-notification.is-unread .nui-notification-text { color: var(--nui-text-muted); }

/* ===== 10. Duyarlılık ve hareket ===== */
@media (max-width: 640px) {
	/* Kabuk 640px altında kenar menüyü çekmeceye çevirir; üst çubuk yüksekliği 42px'e iner. */
	.nui-shell.nui-shell-inset .nui-main-content { margin: 0; border-width: 1px 0 0; border-radius: 0; box-shadow: none; }
	.nui-shell.nui-shell-dual .nui-main-content { border-inline-end-width: 0; border-start-end-radius: 0; }
	.nui-shell.nui-shell-site-header .nui-topbar { height: 52px; min-height: 52px; }
	.nui-shell.nui-shell-site-header .nui-sidebar { top: 52px; }
	.nui-shell.nui-shell-site-header.is-mobile-menu-open .nui-mobile-backdrop { inset-block-start: 52px; }
	.nui-shell.nui-shell-site-header .nui-topbar-search, .nui-shell .nui-topbar .nui-breadcrumb.is-collapsible { display: none; }
	.nui-page-comfortable { padding: 12px; }
	.nui-page-inner { padding: 12px; }
	.nui-save-bar { padding: 10px 12px; }
	.nui-dl > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.nui-notification-actions { align-self: center; }
	.nui-strength-rules { grid-template-columns: minmax(0, 1fr); }
}
/* Sağ kenar menü 1024px altında kenara kayan çekmeceye döner; sınıf is-right-sidebar-open ile açılır. */
@media (max-width: 1024px) {
	.nui-shell .nui-sidebar-right { position: fixed; inset-block: 44px 0; inset-inline-end: 0; z-index: 1200; width: min(300px, calc(100vw - 44px)); transform: translateX(105%); visibility: hidden; box-shadow: -12px 0 28px var(--nui-shadow); transition: transform .18s ease, visibility 0s linear .18s; }
	.nui-shell.is-right-sidebar-collapsed .nui-sidebar-right { display: flex; }
	.nui-shell.is-right-sidebar-open .nui-sidebar-right { transform: none; visibility: visible; transition: transform .18s ease; }
	.nui-shell.nui-shell-dual .nui-main-content { border-inline-end-width: 0; border-start-end-radius: 0; }
}
@media (max-width: 640px) { .nui-shell .nui-sidebar-right { inset-block-start: 42px; } }
@media (prefers-reduced-motion: reduce) {
	.nui-shell .nui-sidebar-right, .nui-strength-bar > span, .nui-shell .nui-nav-group-trigger > svg, .nui-shell .nui-nav-item[aria-expanded] > svg.nui-nav-trailing { transition: none; }
}
