h1:focus {
    outline: none;
}

/* ---------------------------------------------------------------------------
   Yoğun panel görünümü (global)

   Panelin ana hedefi ekran başına mümkün olduğunca çok kayıt göstermektir.
   MudBlazor'un varsayılan tipografisi ve satır dolguları masaüstü yönetim
   ekranları için fazla geniştir. Aşağıdaki değişkenler tek noktadan
   ölçeklenir; tek tek bileşenlere sınıf eklenmez.

   Dokunmatik hedefler korunur: mobil (<= 960px) genişlikte dolgular
   varsayılana yakın bırakılır, çünkü panelin mobil kullanımı da önceliklidir.
   --------------------------------------------------------------------------- */
:root {
    --a2b-density-font: 0.8125rem;      /* 13px — taban gövde metni */
    --a2b-density-font-sm: 0.75rem;     /* 12px — ikincil metin */
    --a2b-density-row-y: 4px;           /* tablo satırı dikey dolgusu */
    --a2b-density-row-x: 10px;          /* tablo hücresi yatay dolgusu */
    --a2b-density-row-h: 34px;          /* satır asgari yüksekliği */
}

/* Taban tipografi — MudBlazor gövde metinleri. */
.mud-typography-body1,
.mud-typography-body2,
.mud-table-cell,
.mud-input,
.mud-input-label,
.mud-select-input {
    font-size: var(--a2b-density-font);
}

/* Başlıklar da orantılı küçülür; hiyerarşi korunur. */
.mud-typography-h5 {
    font-size: 1.125rem;
    font-weight: 600;
}

.mud-typography-h6 {
    font-size: 1rem;
    font-weight: 600;
}

.mud-typography-caption {
    font-size: var(--a2b-density-font-sm);
}

/* Tablolar — asıl kazanç burada. */
.mud-table-dense .mud-table-cell,
.mud-table-cell {
    padding: var(--a2b-density-row-y) var(--a2b-density-row-x);
}

.mud-table-row {
    height: var(--a2b-density-row-h);
}

.mud-table-head .mud-table-cell {
    font-size: var(--a2b-density-font-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
    background-color: var(--mud-palette-surface);
}

/* Satır içi rozet ve ikonlar satır yüksekliğini büyütmemeli. */
.mud-table-cell .mud-chip.mud-chip-size-small {
    height: 20px;
    font-size: var(--a2b-density-font-sm);
    margin: 0;
}

.mud-table-cell .mud-icon-root.mud-icon-size-small {
    font-size: 1rem;
    vertical-align: middle;
}

/* Sayfalayıcı da aynı ölçekte. */
.mud-table-pagination {
    min-height: 40px;
    font-size: var(--a2b-density-font-sm);
}

/* Filtre alanları — yoğun varyantın yüksekliği düşürülür. */
.mud-input-control-margin-dense .mud-input-root {
    font-size: var(--a2b-density-font);
}

/* Kart ve panel dolguları. */
.mud-paper.pa-4 {
    padding: 12px !important;
}

/* Mobilde okunabilirlik ve dokunma hedefi önceliklidir (§8):
   yoğunluk yalnızca masaüstünde uygulanır. */
@media (max-width: 960px) {
    :root {
        --a2b-density-font: 0.875rem;
        --a2b-density-font-sm: 0.8125rem;
        --a2b-density-row-y: 10px;
        --a2b-density-row-x: 12px;
        --a2b-density-row-h: auto;
    }

    .mud-table-cell .mud-chip.mud-chip-size-small {
        height: 24px;
    }
}

/* Statik render edilen formlarda (/login, /setup) MudTextField kullanılamaz;
   native input'lar MudBlazor görünümüne yaklaştırılır.
   16px taban: iOS odaklanınca otomatik yakınlaştırma yapmaz. */
.a2b-label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.875rem;
    color: var(--mud-palette-text-secondary);
}

.a2b-field {
    width: 100%;
    box-sizing: border-box;
    font: inherit;
    font-size: 16px;
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--mud-palette-lines-inputs);
    border-radius: var(--mud-default-borderradius);
    background: transparent;
    color: var(--mud-palette-text-primary);
}

.a2b-field:focus {
    outline: 2px solid var(--mud-palette-primary);
    outline-offset: -2px;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "Bir hata oluştu."
    }
