/* Erp.Sihirbaz çalıştırıcı — kmp token'ları + Bootstrap değişkenleri (açık/koyu). Dock-fill: kapsayıcı yüksekliği doldurur,
   adım gövdesi ve kontrol paneli kendi içinde kaydırır; alt eylem çubuğu sabit. */
.shb { display: flex; flex-direction: column; flex: 1 1 auto; height: 100%; min-height: 0; gap: var(--kmp-space-3, 12px); }
.shb-ust { flex: 0 0 auto; }
.shb-ust .kmp-steps-body:empty { display: none; }
.shb-govde { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 300px; grid-template-rows: minmax(0, 1fr); gap: var(--kmp-space-4, 16px); }
.shb-adim, .shb-panel {
    min-height: 0; overflow: auto; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color);
    border-radius: var(--kmp-radius-lg, .875rem); box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15, 23, 42, .06));
}
.shb-adim { padding: var(--kmp-space-5, 24px); }
.shb-adim-bas { margin-bottom: var(--kmp-space-4, 16px); }
.shb-adim-baslik { font-size: 1.15rem; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.shb-adim-aciklama { color: var(--bs-secondary-color); margin: .25rem 0 0; font-size: .9rem; }
.shb-label { font-weight: 500; font-size: .875rem; display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.shb-zorunlu { color: var(--bs-danger); font-weight: 700; }
.shb-rozet {
    font-size: .7rem; font-weight: 500; padding: .05rem .45rem; border-radius: 999px; color: var(--bs-primary);
    background: color-mix(in srgb, var(--bs-primary) 10%, transparent); text-transform: lowercase;
}
.shb-salt { background: var(--bs-tertiary-bg); font-variant-numeric: tabular-nums; }
.shb-ipucu { font-size: .78rem; }
.shb-temizlik { font-size: .78rem; margin-top: .3rem; color: var(--bs-success-text-emphasis); }
.shb-alan--hata .form-control, .shb-alan--hata .form-select { border-color: var(--bs-danger); }
.shb-alan-mesaj { font-size: .8rem; margin-top: .3rem; }
.shb-alan-mesaj--hata { color: var(--bs-danger); }
.shb-alan-mesaj--uyari { color: var(--bs-warning-text-emphasis); }
.shb-alan-mesaj--bilgi { color: var(--bs-info-text-emphasis); }
.shb-switch { padding-top: 1.9rem; }

.shb-sablonlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--kmp-space-3, 12px); }
.shb-sablon {
    display: flex; flex-direction: column; align-items: flex-start; gap: .35rem; text-align: left; padding: 1rem 1.1rem;
    background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-md, .625rem);
    transition: border-color .2s cubic-bezier(.4,0,.2,1), box-shadow .2s cubic-bezier(.4,0,.2,1), transform .2s cubic-bezier(.4,0,.2,1);
}
.shb-sablon:hover { border-color: color-mix(in srgb, var(--bs-primary) 50%, var(--bs-border-color)); transform: translateY(-1px); box-shadow: var(--kmp-shadow-md, 0 4px 12px rgba(15, 23, 42, .08)); }
.shb-sablon:focus-visible { outline: none; box-shadow: var(--kmp-focus-ring, 0 0 0 .25rem rgba(79, 70, 229, .25)); }
.shb-sablon--secili { border-color: var(--bs-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bs-primary) 18%, transparent); }
.shb-sablon__ikon { font-size: 1.4rem; color: var(--bs-primary); }
.shb-sablon__ad { font-weight: 600; }
.shb-sablon__aciklama { font-size: .82rem; color: var(--bs-secondary-color); }

.shb-panel { padding: var(--kmp-space-4, 16px); background: var(--bs-tertiary-bg); }
.shb-panel__baslik { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); font-weight: 600; margin-bottom: .75rem; }
.shb-panel__bos { font-size: .875rem; color: var(--bs-secondary-color); }
.shb-panel__bilgi { margin-top: .75rem; font-size: .85rem; color: var(--bs-success-text-emphasis); }
.shb-ihlaller { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.shb-ihlal { display: flex; gap: .55rem; padding: .6rem .7rem; border-radius: var(--kmp-radius-md, .625rem); background: var(--bs-body-bg); border-left: 3px solid; font-size: .85rem; }
.shb-ihlal--hata { border-color: var(--bs-danger); } .shb-ihlal--hata > i { color: var(--bs-danger); }
.shb-ihlal--uyari { border-color: var(--bs-warning); } .shb-ihlal--uyari > i { color: var(--bs-warning); }
.shb-ihlal--bilgi { border-color: var(--bs-info); } .shb-ihlal--bilgi > i { color: var(--bs-info); }
.shb-ihlal__mesaj { text-align: left; color: var(--bs-body-color); font-size: .85rem; text-decoration: none; }
.shb-ihlal__oneri { display: block; color: var(--bs-secondary-color); font-size: .8rem; margin-top: .15rem; }
.shb-ihlal__kod { display: block; font-family: var(--bs-font-monospace); font-size: .68rem; color: var(--bs-secondary-color); margin-top: .15rem; }

.shb-adim--dolu { display: flex; flex-direction: column; }
.shb-grid { flex: 1 1 auto; min-height: 280px; display: flex; flex-direction: column; }
.shb-grid > .kmp-grid--fill { flex: 1 1 auto; height: auto; min-height: 0; }
.shb-bekle, .shb-bos { display: flex; align-items: center; gap: .5rem; padding: 2rem 1rem; color: var(--bs-secondary-color); justify-content: center; }
.shb-bos i { font-size: 1.5rem; color: var(--bs-success); }
.shb-sonuc { display: flex; gap: 1rem; padding: 1.5rem; border-radius: var(--kmp-radius-lg, .875rem); background: color-mix(in srgb, var(--bs-success) 8%, var(--bs-body-bg)); border: 1px solid color-mix(in srgb, var(--bs-success) 30%, transparent); }
.shb-sonuc--onay { background: color-mix(in srgb, var(--bs-info) 8%, var(--bs-body-bg)); border-color: color-mix(in srgb, var(--bs-info) 30%, transparent); }
.shb-sonuc__ikon { font-size: 2rem; color: var(--bs-success); }
.shb-sonuc--onay .shb-sonuc__ikon { color: var(--bs-info); }

.shb-alt { flex: 0 0 auto; display: flex; gap: .5rem; align-items: center; padding: .75rem 1rem; background: var(--bs-body-bg);
           border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-lg, .875rem); box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15,23,42,.06)); }
.shb-alt .btn { transition: transform .15s cubic-bezier(.4,0,.2,1); }
.shb-alt .btn:not(:disabled):hover { transform: translateY(-1px); }

@media (max-width: 991.98px) {
    .shb-govde { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
    .shb-panel { max-height: 30vh; }
    .shb-adim { padding: var(--kmp-space-4, 16px); }
}
@media (prefers-reduced-motion: reduce) {
    .shb-sablon, .shb-alt .btn { transition: none; }
    .shb-sablon:hover, .shb-alt .btn:not(:disabled):hover { transform: none; }
}
.shb-switch .form-check-input:disabled ~ .form-check-label { opacity: 1; }
.shb-rozet--tetik { color: var(--bs-warning-text-emphasis); background: color-mix(in srgb, var(--bs-warning) 16%, transparent); text-transform: none; }
.shb-rozet--tetik-kaynak { color: var(--bs-secondary-color); background: var(--bs-tertiary-bg); }
/* Kompakt (tasarımcı önizlemesi): kontrol paneli adımın altına iner. */
.shb--kompakt .shb-govde { grid-template-columns: minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto; }
.shb--kompakt .shb-panel { max-height: 8rem; padding: .6rem .8rem; }
.shb--kompakt .shb-ust .kmp-steps { margin-bottom: 0; }
.shb--kompakt .shb-adim { padding: var(--kmp-space-4, 16px); }
.shb--kompakt .shb-panel--bos { display: none; }
.shb--kompakt .shb-alt { padding: .45rem .6rem; }
.shb--kompakt .shb-alt .btn { padding: .3rem .8rem; font-size: .875rem; }
.shb--kompakt { gap: var(--kmp-space-2, 8px); }

/* ══════════════ Sihirbaz tasarımcısı (1.1.0) — üç bölmeli dock-fill ══════════════ */
.tsr { --tsr-sol: 290px; --tsr-sag: 360px; --tsr-gecis: .18s cubic-bezier(.4,0,.2,1);
       display: flex; flex-direction: column; flex: 1 1 auto; height: 100%; min-height: 0; gap: var(--kmp-space-2, 8px); }
.tsr-arac { flex: 0 0 auto; display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .5rem .75rem;
            background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-lg, .875rem);
            box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15,23,42,.06)); }
.tsr-arac-ayrac { width: 1px; align-self: stretch; background: var(--bs-border-color); margin: 0 .25rem; }
.tsr-arac-etiket { font-size: .78rem; color: var(--bs-secondary-color); margin: 0; }
.tsr-arac-sablon { width: auto; min-width: 12rem; }
.tsr-denetim-rozet { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid transparent; border-radius: 999px; padding: .25rem .75rem;
                     font-size: .8rem; font-weight: 600; transition: transform var(--tsr-gecis), box-shadow var(--tsr-gecis); }
.tsr-denetim-rozet:hover { transform: translateY(-1px); box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15,23,42,.06)); }
.tsr-denetim-rozet:focus-visible { outline: none; box-shadow: var(--kmp-focus-ring, 0 0 0 .25rem rgba(79,70,229,.25)); }
.tsr-denetim-rozet--hata { color: var(--bs-danger-text-emphasis); background: var(--bs-danger-bg-subtle); border-color: var(--bs-danger-border-subtle); }
.tsr-denetim-rozet--uyari { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); border-color: var(--bs-warning-border-subtle); }
.tsr-denetim-rozet--ok { color: var(--bs-success-text-emphasis); background: var(--bs-success-bg-subtle); border-color: var(--bs-success-border-subtle); }

.tsr-govde { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: var(--tsr-sol) 8px minmax(0, 1fr) 8px var(--tsr-sag); grid-template-rows: minmax(0, 1fr); }
.tsr-bolme { min-height: 0; min-width: 0; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-lg, .875rem);
             box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15,23,42,.06)); overflow: hidden; display: flex; flex-direction: column; }
.tsr-bolucu { cursor: col-resize; position: relative; touch-action: none; }
.tsr-bolucu::after { content: ""; position: absolute; top: 50%; left: 50%; width: 4px; height: 36px; transform: translate(-50%, -50%); border-radius: 4px;
                     background: var(--bs-border-color); transition: background var(--tsr-gecis), height var(--tsr-gecis); }
.tsr-bolucu:hover::after, .tsr-bolucu:focus-visible::after, .tsr--boyutlaniyor .tsr-bolucu::after { background: var(--bs-primary); height: 64px; }
.tsr-bolucu:focus-visible { outline: none; }
.tsr--boyutlaniyor { user-select: none; cursor: col-resize; }

/* ── Sol: yapı ağacı ── */
.tsr-sol { background: var(--bs-tertiary-bg); }
.tsr-agac { flex: 1 1 auto; min-height: 0; overflow: auto; padding: .5rem; }
.tsr-bolum { margin-top: .5rem; }
.tsr-bolum-bas { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .35rem .5rem; font-size: .72rem; font-weight: 600;
                 text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); cursor: default; list-style: none; }
.tsr-bolum-bas::-webkit-details-marker { display: none; }
details.tsr-bolum > summary { cursor: pointer; }
.tsr-sayi { display: inline-block; min-width: 1.4rem; padding: 0 .35rem; border-radius: 999px; background: var(--bs-secondary-bg); color: var(--bs-secondary-color);
            font-size: .68rem; font-weight: 600; text-align: center; font-variant-numeric: tabular-nums; }
.tsr-dugum { display: flex; align-items: center; gap: .4rem; padding: .32rem .5rem; margin: 1px 0; border-radius: var(--kmp-radius-sm, .375rem); cursor: pointer;
             font-size: .85rem; color: var(--bs-body-color); border: 1px solid transparent; position: relative;
             transition: background var(--tsr-gecis), border-color var(--tsr-gecis), box-shadow var(--tsr-gecis); }
.tsr-dugum:hover { background: color-mix(in srgb, var(--bs-primary) 6%, transparent); }
.tsr-dugum:focus-visible { outline: none; box-shadow: var(--kmp-focus-ring, 0 0 0 .2rem rgba(79,70,229,.25)); }
.tsr-dugum--secili { background: color-mix(in srgb, var(--bs-primary) 12%, var(--bs-body-bg)); border-color: color-mix(in srgb, var(--bs-primary) 35%, transparent); }
.tsr-dugum--secili::before { content: ""; position: absolute; left: -1px; top: 20%; bottom: 20%; width: 3px; border-radius: 3px; background: var(--bs-primary); }
.tsr-dugum--hedef { border-color: var(--bs-primary); border-style: dashed; background: color-mix(in srgb, var(--bs-primary) 10%, transparent); }
.tsr-dugum--gizli .tsr-dugum-ad { opacity: .55; text-decoration: line-through; }
.tsr-dugum--adim { font-weight: 600; }
.tsr-dugum--tanim { font-weight: 600; background: var(--bs-body-bg); border-color: var(--bs-border-color); }
.tsr-dugum-ikon { color: var(--bs-primary); flex: 0 0 auto; }
.tsr-dugum-ad { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tsr-dugum-ad small { display: block; font-size: .68rem; font-weight: 400; color: var(--bs-secondary-color); font-family: var(--bs-font-monospace); overflow: hidden; text-overflow: ellipsis; }
.tsr-ac-kapa { border: 0; background: transparent; padding: 0 .1rem; color: var(--bs-secondary-color); line-height: 1; }
.tsr-alanlar { margin-left: 1.1rem; padding-left: .4rem; border-left: 1px dashed var(--bs-border-color); }
.tsr-tutamac { color: var(--bs-secondary-color); opacity: .35; cursor: grab; transition: opacity var(--tsr-gecis); }
.tsr-dugum:hover .tsr-tutamac, .tsr-dugum--secili .tsr-tutamac { opacity: .9; }
.tsr-adim--atlandi > .tsr-dugum--adim { opacity: .7; }
.tsr-hap { font-size: .64rem; font-weight: 600; padding: .05rem .4rem; border-radius: 999px; flex: 0 0 auto; }
.tsr-hap--atla { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); }
.tsr-hap--aktif { color: var(--bs-primary); background: transparent; padding: 0; }
.tsr-isaretler { display: inline-flex; align-items: center; gap: .25rem; flex: 0 0 auto; }
.tsr-isaret { font-size: .72rem; color: var(--bs-secondary-color); }
.tsr-isaret--zorunlu { color: var(--bs-danger); font-weight: 700; font-size: .9rem; }
.tsr-isaret--fx { font-style: italic; font-weight: 700; color: var(--bs-primary); }
.tsr-isaret--tetik { color: var(--bs-warning); }
.tsr-isaret--hata { color: var(--bs-danger); font-size: .45rem; }
.tsr-birak { margin: 2px 0 6px; padding: .3rem .5rem; border: 1px dashed transparent; border-radius: var(--kmp-radius-sm, .375rem); font-size: .74rem;
             color: var(--bs-secondary-color); opacity: .0; transition: opacity var(--tsr-gecis), border-color var(--tsr-gecis), background var(--tsr-gecis); }
.tsr--surukleniyor .tsr-birak, .tsr-birak--hedef { opacity: 1; border-color: var(--bs-border-color); }
.tsr-birak--hedef { border-color: var(--bs-primary) !important; background: color-mix(in srgb, var(--bs-primary) 8%, transparent); color: var(--bs-primary); }
.tsr-birak--adim { margin-top: .25rem; }
.tsr--surukleniyor .tsr-dugum * { pointer-events: none; }

.tsr-palet { flex: 0 0 auto; border-top: 1px solid var(--bs-border-color); background: var(--bs-body-bg); padding: .35rem .5rem .6rem; max-height: 30%; overflow: auto; }
.tsr-dugum--alan { padding-top: .22rem; padding-bottom: .22rem; }
.tsr-dugum--alan .tsr-dugum-ad small { display: inline; margin-left: .4rem; }
.tsr-bolum-bas small { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .7rem; }
.tsr-palet-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: .3rem; }
.tsr-palet-oge { display: flex; align-items: center; gap: .35rem; padding: .3rem .45rem; font-size: .74rem; text-align: left; cursor: grab;
                 background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-sm, .375rem); color: var(--bs-body-color);
                 transition: transform var(--tsr-gecis), border-color var(--tsr-gecis), box-shadow var(--tsr-gecis); }
.tsr-palet-oge i { color: var(--bs-primary); }
.tsr-palet-oge span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tsr-palet-oge:hover { transform: translateY(-1px); border-color: color-mix(in srgb, var(--bs-primary) 45%, var(--bs-border-color)); box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15,23,42,.06)); }
.tsr-palet-oge:focus-visible { outline: none; box-shadow: var(--kmp-focus-ring, 0 0 0 .2rem rgba(79,70,229,.25)); }

/* ── Orta ── */
.tsr-orta-sekmeler { flex: 0 0 auto; padding: .4rem .5rem 0; background: var(--bs-tertiary-bg); flex-wrap: nowrap; overflow-x: auto; }
.tsr-orta-sekmeler .nav-link { font-size: .82rem; padding: .4rem .8rem; white-space: nowrap; }
.tsr-orta-govde { flex: 1 1 auto; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 1fr); }
.tsr-orta-pane { grid-area: 1 / 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; }
.tsr-pane-kapali { visibility: hidden; pointer-events: none; }
.tsr-orta-pane > .shb { padding: .75rem; }
.tsr-onizleme-serit { flex: 0 0 auto; margin: .6rem .75rem 0; padding: .35rem .7rem; font-size: .76rem; border-radius: var(--kmp-radius-md, .625rem);
                      color: var(--bs-info-text-emphasis); background: var(--bs-info-bg-subtle); border: 1px solid var(--bs-info-border-subtle); }
.tsr-yuk { margin-top: .75rem; }
.tsr-yuk summary { font-size: .82rem; font-weight: 600; cursor: pointer; }
.tsr-yuk-json { margin: .4rem 0 0; padding: .6rem .75rem; max-height: 220px; overflow: auto; font-size: .74rem; background: var(--bs-tertiary-bg);
                border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-md, .625rem); }
.tsr-bos { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: 2.5rem 1rem; color: var(--bs-secondary-color); text-align: center; }
.tsr-bos i { font-size: 1.8rem; color: var(--bs-primary); opacity: .7; }

.tsr-matris-kap, .tsr-hedef, .tsr-fark { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; padding: .75rem; gap: .5rem; }
.tsr-matris-arac { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.tsr-matris-kaydir { flex: 1 1 auto; min-height: 0; overflow: auto; border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-md, .625rem); }
.tsr-matris { border-collapse: separate; border-spacing: 0; font-size: .8rem; min-width: 100%; }
.tsr-matris th, .tsr-matris td { border-bottom: 1px solid var(--bs-border-color); border-right: 1px solid var(--bs-border-color-translucent); padding: .3rem .4rem; vertical-align: middle; background: var(--bs-body-bg); }
.tsr-matris thead th { position: sticky; top: 0; z-index: 2; background: var(--bs-tertiary-bg); min-width: 250px; }
.tsr-matris .tsr-matris-alan { position: sticky; left: 0; z-index: 1; min-width: 170px; max-width: 220px; background: var(--bs-tertiary-bg); }
.tsr-matris thead .tsr-matris-alan { z-index: 3; text-transform: uppercase; font-size: .7rem; letter-spacing: .05em; color: var(--bs-secondary-color); }
.tsr-matris-alan span { display: block; font-weight: 500; }
.tsr-matris-alan small { font-family: var(--bs-font-monospace); font-size: .68rem; color: var(--bs-secondary-color); }
.tsr-matris-adim th, .tsr-matris-adim td { background: color-mix(in srgb, var(--bs-primary) 5%, var(--bs-body-bg)); font-weight: 600; }
.tsr-matris-sbas { display: flex; align-items: center; gap: .25rem; }
.tsr-matris-sbas i { color: var(--bs-primary); }
.tsr-matris-sbas input { font-weight: 600; }
.tsr-matris-kod { font-size: .66rem; color: var(--bs-secondary-color); }
.tsr-matris tbody tr:hover td { background: color-mix(in srgb, var(--bs-primary) 4%, var(--bs-body-bg)); }
.tsr-hucre { display: flex; align-items: center; gap: .2rem; }
.tsr-hucre--gizli { opacity: .65; }
.tsr-hucre-deger { min-width: 5.5rem; flex: 1 1 auto; font-size: .76rem; padding: .1rem .35rem; }
.tsr-hucre-maske { width: 6.5rem; font-size: .74rem; padding: .1rem 1.4rem .1rem .3rem; }
.tsr-hb { flex: 0 0 auto; min-width: 1.7rem; height: 1.7rem; padding: 0 .3rem; border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-sm, .375rem);
          background: var(--bs-body-bg); color: var(--bs-secondary-color); font-size: .8rem; font-weight: 700; line-height: 1;
          transition: background var(--tsr-gecis), color var(--tsr-gecis), border-color var(--tsr-gecis); }
.tsr-hb:hover { border-color: var(--bs-primary); color: var(--bs-primary); }
.tsr-hb:focus-visible { outline: none; box-shadow: var(--kmp-focus-ring, 0 0 0 .2rem rgba(79,70,229,.25)); }
.tsr-hb.on { background: color-mix(in srgb, var(--bs-primary) 14%, var(--bs-body-bg)); color: var(--bs-primary); border-color: color-mix(in srgb, var(--bs-primary) 50%, transparent); }
.tsr-hb--z.on { background: var(--bs-danger-bg-subtle); color: var(--bs-danger-text-emphasis); border-color: var(--bs-danger-border-subtle); }
.tsr-hb--o.on { background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
.tsr-hb--atla { font-weight: 500; font-size: .72rem; }
.tsr-hb--atla.on { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); border-color: var(--bs-warning-border-subtle); }
.tsr-esle-liste { display: flex; flex-direction: column; border: 1px solid var(--bs-border-color); border-radius: var(--kmp-radius-md, .625rem); overflow: hidden; }
.tsr-esle { display: grid; grid-template-columns: minmax(0, 1fr) 1.5rem minmax(0, 1.3fr); gap: .5rem; align-items: center; padding: .45rem .65rem;
            border-bottom: 1px solid var(--bs-border-color-translucent); font-size: .82rem; }
.tsr-esle:last-child { border-bottom: 0; }
.tsr-esle--bas { background: var(--bs-tertiary-bg); font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--bs-secondary-color); font-weight: 600; }
.tsr-esle-hedef small { display: block; color: var(--bs-secondary-color); font-size: .72rem; }
.tsr-esle-onizleme { display: block; margin-top: .15rem; font-size: .7rem; color: var(--bs-secondary-color); font-family: var(--bs-font-monospace); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tsr-odak-dugme { padding: .1rem .35rem; margin-bottom: .3rem; }
.tsr-orta { grid-column: 3; }
.tsr-sol { grid-column: 1; }
.tsr-sag { grid-column: 5; }
.tsr-bolucu[data-bolme="sol"] { grid-column: 2; }
.tsr-bolucu[data-bolme="sag"] { grid-column: 4; }
.tsr--odak .tsr-govde { grid-template-columns: 0 0 minmax(0, 1fr) 0 0; }
.tsr--odak .tsr-sol, .tsr--odak .tsr-sag, .tsr--odak .tsr-bolucu { display: none; }
.tsr-hedef--eksik td { background: var(--bs-danger-bg-subtle) !important; }
.tsr-fark--eklendi td { background: var(--bs-success-bg-subtle) !important; }
.tsr-fark--silindi td { background: var(--bs-danger-bg-subtle) !important; }

/* ── Sağ: özellikler ── */
.tsr-sag { overflow: auto; padding: .9rem 1rem 1rem; display: block; }
.tsr-ozellikler { display: flex; flex-direction: column; gap: .5rem; }
.tsr-oz-bas { display: flex; gap: .65rem; align-items: center; padding-bottom: .5rem; border-bottom: 1px solid var(--bs-border-color); margin-bottom: .25rem; }
.tsr-oz-bas > i { font-size: 1.25rem; color: var(--bs-primary); width: 2.2rem; height: 2.2rem; display: grid; place-items: center; border-radius: var(--kmp-radius-md, .625rem);
                  background: color-mix(in srgb, var(--bs-primary) 10%, transparent); flex: 0 0 auto; }
.tsr-oz-bas h3 { font-size: 1rem; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.tsr-oz-bas small { color: var(--bs-secondary-color); font-size: .74rem; font-family: var(--bs-font-monospace); }
.tsr-oz-izgara { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .75rem; }
.tsr-oz-izgara .tsr-tam { grid-column: 1 / -1; }
.tsr-ozellik .form-label { font-size: .74rem; font-weight: 500; color: var(--bs-secondary-color); margin-bottom: .15rem; }
.tsr-oz-bolum { border-top: 1px solid var(--bs-border-color-translucent); padding-top: .6rem; margin-top: .25rem; }
.tsr-oz-bolum > summary { font-size: .8rem; font-weight: 600; cursor: pointer; margin-bottom: .45rem; }
.tsr-oz-bolum h4 { font-size: .8rem; font-weight: 600; margin: 0 0 .4rem; }
.tsr-oz-bolum .form-label { font-size: .74rem; color: var(--bs-secondary-color); margin-bottom: .15rem; }
.tsr-oz-alt { display: flex; gap: .5rem; justify-content: flex-end; border-top: 1px solid var(--bs-border-color-translucent); padding-top: .6rem; margin-top: .25rem; }
.tsr-anahtar .form-check-label { font-size: .82rem; }
.tsr-canli { font-size: .76rem; padding: .35rem .6rem; border-radius: var(--kmp-radius-md, .625rem); display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.tsr-canli--ok { background: color-mix(in srgb, var(--bs-primary) 7%, transparent); color: var(--bs-body-color); }
.tsr-canli--ok > i { color: var(--bs-primary); }
.tsr-canli--uyari { background: var(--bs-warning-bg-subtle); color: var(--bs-warning-text-emphasis); }
.tsr-satirlar { display: flex; flex-direction: column; gap: .3rem; }
.tsr-satir { display: flex; align-items: center; gap: .3rem; }
.tsr-baglanti { display: flex; align-items: center; width: 100%; text-align: left; border: 1px solid var(--bs-border-color); background: var(--bs-tertiary-bg);
                border-radius: var(--kmp-radius-sm, .375rem); padding: .3rem .5rem; font-size: .8rem; margin-bottom: .3rem; color: var(--bs-body-color); }
.tsr-baglanti small { margin-left: .4rem; color: var(--bs-secondary-color); }
.tsr-baglanti:hover { border-color: var(--bs-primary); }
.tsr-kodlar { list-style: none; padding: 0; margin: 0 0 .4rem; display: grid; gap: .25rem; }
.tsr-kodlar code { font-size: .9rem; padding: .15rem .45rem; border-radius: var(--kmp-radius-sm, .375rem); background: var(--bs-tertiary-bg); }
.tsr-kod--cakisma code { text-decoration: line-through; opacity: .7; }
.tsr-test-grid { height: 260px; display: flex; flex-direction: column; margin-top: .4rem; }
.tsr-test-grid > .kmp-grid--fill { flex: 1 1 auto; height: auto; min-height: 0; }
.tsr-test-tablo th { width: 40%; font-size: .74rem; }
.tsr-test-tablo td { font-size: .8rem; }

/* ── İfade / koşul ── */
.tsr-ifade { display: flex; flex-direction: column; gap: .25rem; }
.tsr-ifade-alt { display: flex; align-items: center; gap: .3rem; }
.tsr-ifade-metin { flex: 1 1 auto; min-width: 0; font-size: .72rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--bs-secondary-color); }
.tsr-fx i { font-style: italic; font-weight: 700; font-family: Georgia, serif; }
.tsr-ifade-sonuc { font-size: .72rem; display: flex; gap: .3rem; align-items: center; }
.tsr-ifade-sonuc--hata { color: var(--bs-danger); }
.tsr-ifade-sonuc--dogru { color: var(--bs-success-text-emphasis); }
.tsr-ifade-sonuc--yanlis, .tsr-ifade-sonuc--ok, .tsr-ifade-sonuc--sabit { color: var(--bs-secondary-color); }
.tsr-kosul { display: flex; flex-direction: column; gap: .3rem; }
.tsr-kosul-grup { display: flex; flex-direction: column; gap: .3rem; }
.tsr-kosul-grup--alt { padding: .4rem .5rem; border-left: 3px solid color-mix(in srgb, var(--bs-primary) 40%, transparent); border-radius: var(--kmp-radius-sm, .375rem);
                       background: color-mix(in srgb, var(--bs-primary) 4%, transparent); }
.tsr-kosul-satir { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.2fr) auto; gap: .25rem; align-items: center; }
.tsr-kosul-cipler { display: flex; flex-wrap: wrap; gap: .25rem; }
.tsr-cip { border: 1px solid var(--bs-border-color); background: var(--bs-body-bg); border-radius: 999px; padding: .1rem .55rem; font-size: .74rem; color: var(--bs-body-color);
           transition: background var(--tsr-gecis), border-color var(--tsr-gecis); }
.tsr-cip:hover { border-color: var(--bs-primary); }
.tsr-cip--secili { background: color-mix(in srgb, var(--bs-primary) 14%, var(--bs-body-bg)); border-color: var(--bs-primary); color: var(--bs-primary); font-weight: 600; }
.tsr-baglac { align-self: flex-start; border: 0; border-radius: 999px; font-size: .64rem; font-weight: 700; letter-spacing: .06em; padding: .08rem .55rem;
              color: var(--bs-primary); background: color-mix(in srgb, var(--bs-primary) 12%, transparent); }
.tsr-baglac--veya { color: var(--bs-warning-text-emphasis); background: var(--bs-warning-bg-subtle); }
.tsr-kosul-eylem { display: flex; gap: .75rem; }
.tsr-kosul-eylem .btn-link { font-size: .76rem; text-decoration: none; }

/* ── Denetim ── */
.tsr-denetim { flex: 0 0 auto; display: none; flex-direction: column; max-height: 190px; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color);
               border-radius: var(--kmp-radius-lg, .875rem); box-shadow: var(--kmp-shadow-sm, 0 1px 2px rgba(15,23,42,.06)); overflow: hidden; }
.tsr--denetim-acik .tsr-denetim { display: flex; }
.tsr-denetim-bas { display: flex; align-items: center; gap: .75rem; padding: .35rem .75rem; font-size: .8rem; font-weight: 600; border-bottom: 1px solid var(--bs-border-color-translucent); background: var(--bs-tertiary-bg); }
.tsr-denetim-bas small { font-weight: 400; }
.tsr-denetim-bos { font-size: .8rem; font-weight: 400; color: var(--bs-secondary-color); }
.tsr-deneme-hap { align-self: center; margin-bottom: .3rem; font-size: .7rem; font-weight: 600; padding: .15rem .55rem; border-radius: 999px; white-space: nowrap;
                  color: var(--bs-info-text-emphasis); background: var(--bs-info-bg-subtle); border: 1px solid var(--bs-info-border-subtle); cursor: help; }
.tsr-bulgular { list-style: none; margin: 0; padding: .3rem; overflow: auto; display: grid; gap: .15rem; }
.tsr-bulgu-dugme { display: flex; align-items: center; gap: .5rem; width: 100%; text-align: left; border: 0; background: transparent; padding: .25rem .5rem;
                   border-radius: var(--kmp-radius-sm, .375rem); font-size: .8rem; color: var(--bs-body-color); }
.tsr-bulgu-dugme:hover { background: var(--bs-tertiary-bg); }
.tsr-bulgu-mesaj { flex: 1 1 auto; }
.tsr-bulgu-yer { font-size: .68rem; color: var(--bs-secondary-color); }
.tsr-bulgu--hata i { color: var(--bs-danger); } .tsr-bulgu--uyari i { color: var(--bs-warning); } .tsr-bulgu--bilgi i { color: var(--bs-info); }
.tsr-kurtar { border-radius: var(--kmp-radius-md, .625rem); }

/* ── Dar ekran: bölmeler sekmeye dönüşür ── */
.tsr-mobil-sekmeler { display: none; }
@media (max-width: 991.98px) {
    .tsr-mobil-sekmeler { display: grid; grid-template-columns: repeat(4, 1fr); gap: .25rem; flex: 0 0 auto; }
    .tsr-mobil-sekme { display: flex; flex-direction: column; align-items: center; gap: .1rem; padding: .35rem .25rem; font-size: .72rem; border: 1px solid var(--bs-border-color);
                       border-radius: var(--kmp-radius-md, .625rem); background: var(--bs-body-bg); color: var(--bs-secondary-color); }
    .tsr-mobil-sekme.active { color: var(--bs-primary); border-color: var(--bs-primary); background: color-mix(in srgb, var(--bs-primary) 8%, var(--bs-body-bg)); font-weight: 600; }
    .tsr-govde { grid-template-columns: minmax(0, 1fr); }
    .tsr-bolucu { display: none; }
    .tsr-govde > .tsr-bolme { display: none; grid-area: 1 / 1; }
    .tsr-odak-dugme { display: none; }
    .tsr--m-yapi .tsr-sol, .tsr--m-onizleme .tsr-orta { display: flex; }
    .tsr--m-ozellik .tsr-sag { display: block; }
    .tsr--m-denetim .tsr-govde { display: none; }
    .tsr--m-denetim .tsr-denetim { display: flex; flex: 1 1 auto; max-height: none; }
    .tsr:not(.tsr--m-denetim) .tsr-denetim { display: none; }
    .tsr-arac-metin, .tsr-arac-etiket { display: none; }
    .tsr-arac-sablon { min-width: 0; max-width: 9rem; }
    .tsr-oz-izgara { grid-template-columns: minmax(0, 1fr); }
    .tsr-kosul-satir { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
    .tsr-kosul-satir .tsr-kosul-deger { grid-column: 1 / 3; }
}
@media (prefers-reduced-motion: reduce) {
    .tsr, .tsr * { transition: none !important; }
    .tsr-palet-oge:hover, .tsr-denetim-rozet:hover { transform: none; }
}
