/* ================================================================
   ACIK TEMA - Lumeship arac standardi (LoadPoint / BeamCore / SectionPro)
   ----------------------------------------------------------------
   En son yuklenir; kurallarin hepsi body.light-mode altinda, koyu tema
   etkilenmez. Paleti LoadPoint app.css ile ayni:
     zemin #f6f8fb, kart #ffffff, cizgi #e2e8f0, metin #0f172a / #475569 /
     #64748b, vurgu #3b82f6 / #2563eb.
   Ilke: dolu renk yalnizca birincil eylemde (Solve, Import); acik/kapali
   gecisler ve sekmeler acik mavi zemin + mavi yazi. Bolum basliklari
   kucuk, mono, buyuk harf (LoadPoint "INPUT / RESULTS").
   ================================================================ */

body.light-mode {
    --bg-main: #f6f8fb;
    --bg-panel: #ffffff;
    --bg-elev: #ffffff;
    --bg-hover: #f1f5f9;
    --bg-input: #ffffff;
    --text: #0f172a;
    --text-2: #475569;
    --text-3: #5b6675;   /* #64748b acik zeminde 4.47 kaliyordu (4.5 gerekli) */
    --border: #e2e8f0;
    --primary: #3b82f6;
    --primary-hover: #2563eb;
    --primary-text: #1d4ed8;
    --ls-vurgu-zemin: #eff6ff;
    --ls-vurgu-cizgi: #bfdbfe;
    --ls-kart-golge: 0 1px 2px rgba(15, 23, 42, 0.04);
    background: #f6f8fb;
    color: #0f172a;
}

/* ---------- yuzeyler ---------- */
body.light-mode .duzen-kart,
body.light-mode .entity-section {
    background: #ffffff;
    border: 1px solid var(--border);
    box-shadow: var(--ls-kart-golge);
}
body.light-mode .main-tab-bar,
body.light-mode .canvas-toolbar,
body.light-mode .results-bottom-header,
body.light-mode .command-bar {
    background: #ffffff;
    border-color: var(--border);
}
body.light-mode .results-bottom-panel { background: #ffffff; border-top: 1px solid var(--border); }

/* ---------- bolum basliklari: mono, kucuk, buyuk harf ---------- */
body.light-mode .entity-section-title,
body.light-mode .collapsible-header .title,
body.light-mode .panel-title {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: var(--fs-xs);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #475569;
}

/* ---------- acik/kapali dugmeler ve gorunum secici ---------- */
body.light-mode .toolbar-btn,
body.light-mode .view-mode-btn {
    background: transparent;
    color: #475569;
    border: 1px solid transparent;
}
body.light-mode .toolbar-btn:hover,
body.light-mode .view-mode-btn:hover {
    background: #f1f5f9;
    color: #0f172a;
    border-color: var(--border);
}
body.light-mode .toolbar-btn.active,
body.light-mode .view-mode-btn.active {
    background: var(--ls-vurgu-zemin);
    color: var(--primary-text);
    border-color: var(--ls-vurgu-cizgi);
    box-shadow: none;
}
/* gorunum secici bir segment grubu gibi dursun */
body.light-mode .view-mode-btn {
    background: #ffffff;
    border-color: var(--border);
}

/* ---------- alt sekmeler: alt cizgili ---------- */
body.light-mode .results-bottom-tab {
    background: transparent;
    color: #64748b;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
}
body.light-mode .results-bottom-tab:hover { color: #0f172a; background: transparent; }
body.light-mode .results-bottom-tab.active {
    background: transparent;
    color: var(--primary-text);
    border-bottom-color: var(--primary);
    font-weight: 600;
}

/* ---------- tablolar: sayi hizasi, sakin baslik ---------- */
body.light-mode .results-data-table th,
body.light-mode .data-table th {
    background: #f8fafc;
    color: #475569;
    font-weight: 600;
    border-bottom: 1px solid var(--border);
}
body.light-mode .results-data-table td,
body.light-mode .data-table td {
    border-bottom: 1px solid #f1f5f9;
    font-variant-numeric: tabular-nums;
}
/* Tablo secimi: secili satir kalici mavi (her hucre); secili olmayan satir fare ustunde
   notr (mavi degil); secili satir fare ustunde biraz koyulasir. Model tablolari da ayni. */
body.light-mode .results-data-table tbody tr:hover td,
body.light-mode .data-table tbody tr:hover td { background: #f1f5f9; }
body.light-mode .results-data-table tr.selected td,
body.light-mode #modelNodesTable tr.secili-satir td,
body.light-mode #modelBeamsTable tr.secili-satir td { background: #dbeafe; }
body.light-mode .results-data-table tr.selected:hover td,
body.light-mode #modelNodesTable tr.secili-satir:hover td,
body.light-mode #modelBeamsTable tr.secili-satir:hover td { background: #bfdbfe; }
body.light-mode #modelNodesTable tr.secili-satir .kimlik-hucresi,
body.light-mode #modelBeamsTable tr.secili-satir .kimlik-hucresi { color: #1d4ed8; }

/* ---------- girisler ---------- */
body.light-mode input[type="text"],
body.light-mode input[type="number"],
body.light-mode select,
body.light-mode textarea {
    background: #ffffff;
    border: 1px solid #d8dee8;
    color: #0f172a;
}
body.light-mode input:focus,
body.light-mode select:focus,
body.light-mode textarea:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.12);
}

/* ---------- ikincil dugmeler ---------- */
body.light-mode .btn-secondary {
    background: #ffffff;
    color: #334155;
    border: 1px solid var(--border);
}
body.light-mode .btn-secondary:hover { background: #f8fafc; border-color: #cbd5e1; color: #0f172a; }

/* ---------- kanvas ustu bilgi seritleri ---------- */
body.light-mode #viewInfoOverlay {
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid var(--border);
    box-shadow: var(--ls-kart-golge);
}

/* Satir ici "vurgu kart" zemini (panels.js, import.js, measurement.js,
   index.html): koyu temada lacivert, acik temada cok acik gri. */
:root { --vurgu-kart: #1e3a5f; }
body.light-mode { --vurgu-kart: #f8fafc; }

/* Sayisal hucreler: saga yasli, esit genislikli rakam */
td.sayi { text-align: right; font-variant-numeric: tabular-nums; color: var(--text); }

/* :root'taki takma adlar (--accent-success: var(--success) ...) :root'ta
   cozulur; govdedeki acik tema degerleri onlara ULASMAZ. Burada yeniden
   baglanir - yoksa yardim penceresindeki yesil 2.12 kontrastta kaliyordu. */
body.light-mode {
    --accent-primary: var(--primary);
    --accent-success: var(--success);
    --accent-warning: var(--warning);
    --accent-danger: var(--danger);
    --text-primary: var(--text);
    --text-secondary: var(--text-2);
    --text-muted: var(--text-3);
    --bg-tertiary: #eef2f7;
}
body.light-mode .command-bar-ortho.inactive { background: #eef2f7; color: #475569; }


/* ---------- sinir kosulu editoru (dugum paneli) ----------
   Iki temada da gecerli: renkler tokenlardan. */
.bc-ozet { display: flex; align-items: center; gap: 10px; margin: 2px 0 8px; }
.bc-sembol { width: 44px; height: 34px; flex: none; color: var(--text-2);
    fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linejoin: round; }
.bc-sembol .dolgu { fill: var(--bg-hover); }
.bc-sembol .dugum { fill: var(--text); stroke: none; }
.bc-sembol .ince { stroke-width: 0.9; opacity: 0.7; }
.bc-sembol .kesik { stroke-dasharray: 2 2; }
.bc-ad { font-size: var(--fs-md); font-weight: 600; color: var(--text); line-height: 1.2; }
.bc-kod { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); color: var(--text-3); margin-top: 2px; }
.bc-grup { display: grid; grid-template-columns: 68px 1fr; align-items: center; gap: 6px; margin-top: 4px; }
.bc-grup-ad { font-size: var(--fs-xs); color: var(--text-3); }
.bc-cipler { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.bc-cip { position: relative; cursor: pointer; }
.bc-cip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.bc-cip span { display: block; text-align: center; padding: 3px 0; border: 1px solid var(--border);
    border-radius: var(--r-ctl); font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: var(--fs-xs); color: var(--text-2); background: var(--bg-panel); transition: all 0.12s; }
.bc-cip:hover span { border-color: var(--text-3); color: var(--text); }
.bc-cip input:checked + span { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; font-weight: 600; }
body:not(.light-mode) .bc-cip input:checked + span { background: rgba(59,130,246,0.18); border-color: #3b82f6; color: #93c5fd; }
.bc-cip input:focus-visible + span { box-shadow: 0 0 0 2px rgba(59,130,246,0.35); }
.bc-hazir { margin-top: 8px; }

/* ---------- komut cubugu: sol bolum kendi icerigi kadar ----------
   Genislik sol panelin kenarina esitleniyordu (--cmd-sol, layout.js). Tek
   panel duzeninde sol panel yok -> 0 px + dolgu = 24 px: "READY" durumu
   "RE" diye kesiliyor, komut istemi mesaji hic gorunmuyordu. Artik en az
   icerigi kadar; sol panel varsa onun kenarina hizali kalir. */
.command-bar-left {
    width: auto !important;
    min-width: var(--cmd-sol, 0px);
    max-width: 45%;
    flex: 0 0 auto;
}
.command-bar-left .command-bar-message { overflow: hidden; text-overflow: ellipsis; }

/* Alt panel icerigi komut cubuguna yapismasin */
.results-bottom-content { padding-bottom: 10px; }
.results-bottom-panel { border-bottom: 1px solid var(--border); }


/* ---------- uygulama cubugu (Solve / Undo / DXF / Export / Import ...) ----------
   23 px'lik satira sikismis 22 px dugmeler ust cubuk ile arac cubugu arasinda
   "sikisik" duruyordu ve sol yari bostu. 40 px, alt cizgi, solda proje adi,
   dugmeler 28 px. */
.main-tab-bar {
    height: 40px;
    align-items: center !important;
    padding: 0 16px !important;
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border);
}
.uygulama-baslik { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
#modelName {
    font-size: var(--fs-md); font-weight: 600; color: var(--text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 38vw;
}
.uygulama-ozet { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; }
.main-tab-bar .header-actions { gap: 6px !important; }
.main-tab-bar .header-actions .btn-small,
.main-tab-bar .header-actions .btn-primary,
.main-tab-bar .header-actions .btn-secondary,
.main-tab-bar .header-actions .solve-btn,
#solveBtn {
    height: 28px;
    padding: 0 10px !important;
    border-radius: 6px;
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--fs-sm);
}
.main-tab-bar .header-actions .btn-icon,
.main-tab-bar .header-actions #preferencesBtn { width: 28px; padding: 0 !important; justify-content: center; }
#solveBtn { margin-right: 10px !important; padding: 0 14px !important; font-weight: 600; }
/* gruplar arasi ince ayrac: geri al/ileri al grubu zaten sagda cizgi tasiyor */
.main-tab-bar .header-actions .toolbar-dropdown { margin-right: 6px; padding-right: 12px; border-right: 1px solid var(--border); }

/* WebGL acilamadiginda model alanindaki aciklama (canvas2d.js webglYokMesaji) */
.webgl-yok { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center;
    justify-content: center; gap: 6px; padding: 24px; text-align: center; color: var(--text-2);
    font-size: var(--fs-sm); background: var(--bg-main); }
.webgl-yok strong { color: var(--text); font-size: var(--fs-md); }
.webgl-yok span { max-width: 460px; line-height: 1.5; }

/* ---------- koyu kalan iki parca (28 Eyl, kullanici bildirimi) ----------
   Imlec koordinat kutusu (cizim sirasinda): zemin sabit rgba(15,23,42),
   yazi var(--text-primary) -> acik temada koyu ustune koyu, okunmuyordu.
   Gorunum boyutu kaydiricisi: iz var(--text-2) = koyu gri bant. */
body.light-mode .cmd-tooltip {
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid var(--border);
    color: var(--text);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
    font-family: 'JetBrains Mono', ui-monospace, monospace;
}
body.light-mode .cmd-tooltip .distance { color: var(--primary-text); }
body.light-mode .display-size-control {
    background: rgba(255, 255, 255, 0.95);
    border-color: var(--border);
}
body.light-mode .display-size-control input[type="range"] { background: #e2e8f0; }
body.light-mode input[type="range"] { accent-color: var(--primary); }
/* cizim sirasinda imlecin yanindaki dinamik giris ve calisma duzlemi seritleri */
body.light-mode #dynamicInput,
body.light-mode .dynamic-input-box {
    background: rgba(255, 255, 255, 0.96) !important;
    color: var(--text);
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}
body.light-mode .plane-chip {
    background: rgba(255, 255, 255, 0.95);
    border-color: var(--border);
    color: var(--text-2);
}

/* Deformed / Animate acikken "success" sinifi aliyor (themes.js, deforme.js,
   tabs.js); acik temada bu sinifin stili yoktu, dugme acik mi kapali mi
   anlasilmiyordu. Yanindaki Grid/Nodes/Loads ile ayni aktif gorunum. */
body.light-mode .toolbar-btn.success,
body.light-mode .view-toggle.active,
body.light-mode .view-toggle.success {
    background: var(--ls-vurgu-zemin);
    color: var(--primary-text);
    border-color: var(--ls-vurgu-cizgi);
    box-shadow: none;
}


/* Solve dugmesi: sonuc guncelken sonuk "Solved" (solver-ui.js solveDugmesiniTazele) */
#solveBtn.cozuldu {
    background: #ffffff !important;
    color: var(--success) !important;
    border: 1px solid #bbf7d0 !important;
    box-shadow: none !important;
}
#solveBtn.cozuldu:hover { background: #f0fdf4 !important; }
#solveBtn.cozuldu::before { display: none; }


/* ---------- sag panel sekmeleri (js/ui/sag-sekmeler.js) ----------
   Kartlar yerinde; secili sekmeninki gorunur. Secim kartlari (dugum /
   kiris / coklu) yalniz "secim" sekmesinde. */
.sag-sekmeler {
    position: sticky; top: 0; z-index: 5;
    display: flex; gap: 2px; align-items: stretch;
    padding: 0 10px; margin: 0 0 10px;
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border);
}
.sag-sekme {
    flex: 1 1 auto; min-width: 0;
    padding: 9px 6px 8px; background: transparent; border: none;
    border-bottom: 2px solid transparent; margin-bottom: -1px;
    font-family: var(--font, 'Inter', sans-serif); font-size: var(--fs-sm); font-weight: 500;
    color: var(--text-3); cursor: pointer; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis;
}
.sag-sekme:hover { color: var(--text); }
.sag-sekme.aktif { color: var(--primary-text); border-bottom-color: var(--primary); font-weight: 600; }

/* kart basliklari sekme adini tekrar ediyordu; icerik her zaman acik */
body.sag-sekmeli .duzen-kart > .entity-section-title { display: none; }
body.sag-sekmeli .duzen-kart > .katlama-icerik { display: block !important; }
body.sag-sekmeli .duzen-kart { border: none; box-shadow: none; padding-top: 0; }
body.sag-sekmeli #entityInfoEmpty { display: none !important; }

body.sag-sekmeli[data-sag-sekme="model"]   .entity-section[data-sekme]:not([data-sekme="model"]),
body.sag-sekmeli[data-sag-sekme="loads"]   .entity-section[data-sekme]:not([data-sekme="loads"]),
body.sag-sekmeli[data-sag-sekme="checks"]  .entity-section[data-sekme]:not([data-sekme="checks"]),
body.sag-sekmeli[data-sag-sekme="results"] .entity-section[data-sekme]:not([data-sekme="results"]) {
    display: none !important;
}

/* Panel uc parca: sabit sekme cubugu / kendi kayan icerik / alttaki secim
   bolumu. Eskiden paneli kendisi kaydiriyordu (cubuk yapiskandi). */
body.sag-sekmeli #rightPanel { overflow: hidden !important; }
body.sag-sekmeli .sag-sekmeler { position: static; flex: 0 0 auto; }
body.sag-sekmeli #rightPanel .entity-info-body {
    flex: 1 1 auto; min-height: 0; overflow-y: auto !important; padding-bottom: 12px;
}

/* ---------- SELECTION bolumu (secim varken, panelin altinda) ---------- */
.secim-bolumu {
    flex: 0 1 auto; max-height: 58%; min-height: 0;
    display: flex; flex-direction: column;
    border-top: 1px solid var(--border);
    background: var(--bg-main);
    box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.05);
}
.secim-bolumu[hidden] { display: none; }
.secim-baslik {
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
    padding: 8px 12px 8px 16px; border-bottom: 1px solid var(--border);
    background: var(--bg-panel);
}
.secim-etiket {
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3);
}
.secim-ad { flex: 1 1 auto; min-width: 0; font-size: var(--fs-md); font-weight: 600; color: var(--text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.secim-kapat {
    flex: none; width: 24px; height: 24px; border-radius: 6px; border: 1px solid transparent;
    background: transparent; color: var(--text-3); font-size: var(--fs-lg); line-height: 1; cursor: pointer;
}
.secim-kapat:hover { background: var(--bg-hover); color: var(--text); border-color: var(--border); }
.secim-icerik { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 12px 16px; }
.secim-icerik .entity-section { margin-bottom: 12px; }
.secim-icerik .entity-section:last-child { margin-bottom: 0; }

/* Sekmeli kipte panelin ust dolgusu cubuga gecer: yapiskan cubuk dolgunun
   altina yapisip ustunde 16 px'lik bir aralik birakiyordu; icerik oradan
   kayarak gorunuyordu. */
body.sag-sekmeli .entity-info-panel { padding-top: 0 !important; }
body.sag-sekmeli .sag-sekmeler { padding-top: 6px; }

/* Sag paneldeki kesit listesi: Name, A, Iy, Wy. Iz / Wz 340 px'lik panelden
   tasiyor, tablo sagda kesik duruyordu; butun sutunlar alt panelin
   Profiles sekmesinde. */
#kartModel table:has(#sectionTable) th:nth-child(n+5),
#kartModel #sectionTable td:nth-child(n+5) { display: none; }
#kartModel #sectionTable td:first-child { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* bosluk olcegine (4/8/12) otur: ui-audit ritim bulgulari */
body.sag-sekmeli .sag-sekmeler { margin-bottom: 12px; }
.bc-kod { margin-top: 4px; }
.bc-grup + .bc-grup { margin-top: 8px; }


/* ================================================================
   SAG PANEL: MODEL VE LOADS (js/ui/sag-model.js)
   ================================================================ */
.sag-gizli { display: none !important; }
.sag-bolum { margin-top: 16px; }
.sag-bolum-baslik {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    margin-bottom: 8px;
    font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3);
}
.sag-sayac { font-weight: 500; letter-spacing: 0.02em; text-transform: none; color: var(--text-3); }
.sag-bag { background: none; border: none; padding: 0; cursor: pointer; font-family: var(--font, 'Inter', sans-serif);
    font-size: var(--fs-xs); letter-spacing: 0; text-transform: none; font-weight: 500; color: var(--primary-text); }
.sag-bag:hover { text-decoration: underline; }
.sag-bos { font-size: var(--fs-sm); color: var(--text-3); padding: 6px 0; }
.sag-ince-dugme { width: 100%; }

/* durum seridi */
.durum-seridi {
    width: 100%; display: flex; align-items: center; gap: 10px; text-align: left;
    padding: 10px 12px; margin: 0 0 12px; border-radius: 8px; cursor: pointer;
    border: 1px solid var(--border); background: var(--bg-panel); font-family: inherit;
}
.durum-seridi:hover { filter: brightness(0.96); }
.durum-ikon { flex: none; width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center;
    justify-content: center; font-size: var(--fs-md); font-weight: 700; color: #fff; }
.durum-metin { display: flex; flex-direction: column; min-width: 0; }
.durum-metin strong { font-size: var(--fs-sm); color: var(--text); font-weight: 600; }
.durum-metin small { font-size: var(--fs-xs); color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.durum-tamam { background: #f0fdf4; border-color: #bbf7d0; } .durum-tamam .durum-ikon { background: #16a34a; }
.durum-uyari { background: #fffbeb; border-color: #fde68a; } .durum-uyari .durum-ikon { background: #d97706; }
.durum-hata  { background: #fef2f2; border-color: #fecaca; } .durum-hata .durum-ikon  { background: #dc2626; }
.durum-bos   { background: var(--bg-main); } .durum-bos .durum-ikon { background: #94a3b8; }
.durum-metin small.durum-satirli { white-space: normal; overflow: visible; }
.durum-eylemler { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 2px; }
.durum-eylem { font: inherit; font-size: var(--fs-xs); line-height: 1.3; padding: 3px 8px; border-radius: 6px; cursor: pointer;
    border: 1px solid var(--border); background: var(--bg-elev); color: var(--primary-text); }
.durum-eylem:hover { background: var(--bg-hover); }
.durum-eylem:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }

/* 4 ana deger */
.stat-izgara { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.stat-kutu { border: 1px solid var(--border); border-radius: 8px; padding: 8px 6px 6px; text-align: center; background: var(--bg-panel); }
.stat-deger { font-size: var(--fs-lg); font-weight: 600; color: var(--text); font-variant-numeric: tabular-nums; line-height: 1.1; }
.stat-birim { font-size: var(--fs-xs); font-weight: 500; color: var(--text-3); margin-left: 2px; }
.stat-etiket { font-size: var(--fs-xs); color: var(--text-3); margin-top: 2px; }
.stat-alt { font-size: var(--fs-xs); color: var(--text-3); margin: 6px 0 4px; text-align: center; font-variant-numeric: tabular-nums; }

/* kesit listesi */
.kesit-listesi { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.kesit-satir {
    display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; gap: 1px 8px;
    text-align: left; padding: 7px 10px; background: var(--bg-panel); border: none; border-top: 1px solid var(--border);
    cursor: pointer; font-family: inherit;
}
.kesit-satir:first-child { border-top: none; }
.kesit-satir:hover { background: #f8fafc; }
.kesit-ad { font-size: var(--fs-sm); font-weight: 600; color: var(--primary-text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kesit-sayi { font-size: var(--fs-xs); color: var(--text-2); align-self: center; grid-row: span 2; white-space: nowrap; }
.kesit-deger { font-size: var(--fs-xs); color: var(--text-3); font-variant-numeric: tabular-nums; }
.kesit-satir.kullanilmiyor .kesit-ad { color: var(--text-2); font-weight: 500; }
.kesit-satir.kullanilmiyor { cursor: default; }

/* proje */
.proje-detay { margin-top: 16px; border: 1px solid var(--border); border-radius: 8px; padding: 0 10px; }
.proje-detay > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 8px; padding: 9px 0; }
.proje-detay > summary::-webkit-details-marker { display: none; }
.proje-detay > summary::after { content: '▸'; margin-left: auto; color: var(--text-3); font-size: var(--fs-xs); }
.proje-detay[open] > summary::after { content: '▾'; }
.sag-bolum-etiket { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
.proje-ozet { font-size: var(--fs-sm); color: var(--text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.proje-ozet.bos { color: var(--text-3); font-size: var(--fs-xs); }
.proje-detay[open] { padding-bottom: 10px; }

/* yuk durumu cipleri */
.yuk-cipler { display: flex; flex-wrap: wrap; gap: 6px; }
.yuk-cip {
    padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-panel);
    font-family: inherit; font-size: var(--fs-xs); color: var(--text-2); cursor: pointer; max-width: 100%;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.yuk-cip b { font-family: 'JetBrains Mono', ui-monospace, monospace; color: var(--text); margin-right: 2px; }
.yuk-cip:hover { border-color: #cbd5e1; color: var(--text); }
.yuk-cip.aktif { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.yuk-cip.aktif b { color: #1d4ed8; }

/* yuk ozeti */
.yuk-ozet-tablo { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.yuk-ozet-tablo th { font-size: var(--fs-xs); font-weight: 500; color: var(--text-3); text-align: left; padding: 0 4px 4px; border-bottom: 1px solid var(--border); }
.yuk-ozet-tablo td { padding: 6px 4px; border-bottom: 1px solid #f1f5f9; vertical-align: top; color: var(--text); }
.yuk-ozet-tablo td small { display: block; font-size: var(--fs-xs); color: var(--text-3); }
.yuk-ozet-tablo .sayi { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.yuk-ozet-tablo .carpan { color: var(--text-3); }
.yuk-ozet-tablo tr.soluk td { color: var(--text-3); }
.yuk-ozet-tablo tr.tanimsiz td { color: var(--danger-text); }
.yuk-ozet-tablo tfoot td { font-weight: 600; border-bottom: none; padding-top: 8px; }


/* ---------- Results sekmesi (sag-model.js sagSonucKur) ---------- */
.kullanim-kart {
    width: 100%; text-align: left; font-family: inherit; cursor: pointer;
    border: 1px solid var(--border); border-radius: 4px; padding: 12px 14px; margin-bottom: 10px;
    background: var(--bg-panel); box-shadow: none;
}
.kullanim-kart:hover { border-color: #cbd5e1; }
.kullanim-ust { display: flex; align-items: center; justify-content: space-between; }
.kullanim-etiket { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-3); }
.kullanim-rozet { font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.04em; padding: 2px 8px; border-radius: 3px; background: transparent; border: 1px solid currentColor; color: #fbbf24; }
.kullanim-deger { font-size: 26px; font-weight: 600; line-height: 1.1; margin: 4px 0 8px; color: var(--text); font-variant-numeric: tabular-nums; }
.kullanim-deger span { font-size: var(--fs-md); font-weight: 500; color: var(--text-3); margin-left: 2px; }
.kullanim-cubuk { height: 4px; border-radius: 2px; background: #eef2f7; overflow: hidden; }
.kullanim-cubuk i { display: block; height: 100%; border-radius: 2px; }
.kullanim-alt { font-size: var(--fs-xs); color: var(--text-2); margin-top: 6px; }
.kullanim-tamam .kullanim-cubuk i { background: #16a34a; }
/* Rozet: seffaf zemin, 1 px durum renkli kenar ve yazi. Koyu tema tonlari (acik ton, koyu zeminde okunur);
   acik tema tonlari body.light-mode altinda (asagida). */
.kullanim-tamam .kullanim-rozet { color: #4ade80; }
.kullanim-uyari .kullanim-cubuk i { background: #d97706; }
.kullanim-uyari .kullanim-rozet { color: #fbbf24; }
.kullanim-hata .kullanim-cubuk i { background: #dc2626; }
.kullanim-hata .kullanim-rozet { color: #f87171; }
body.light-mode .kullanim-tamam .kullanim-rozet { color: #15803d; }
body.light-mode .kullanim-uyari .kullanim-rozet { color: #b45309; }
body.light-mode .kullanim-hata .kullanim-rozet { color: #b91c1c; }
.kullanim-hata .kullanim-deger { color: #b91c1c; }
.kullanim-kart.eski { opacity: 0.6; }
.stat-izgara.stat-iki { grid-template-columns: repeat(2, 1fr); }
/* stat-iki yalniz sonuc kutulari (#sonucStat); model paneli stat-kutu'su bu kurala girmez */
.stat-iki .stat-kutu { text-align: left; padding: 8px 10px; border-radius: 4px; box-shadow: none; }

.kontrol-liste { border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.kontrol { border-top: 1px solid var(--border); background: var(--bg-panel); }
.kontrol:first-child { border-top: none; }
.kontrol > summary { list-style: none; display: flex; align-items: center; gap: 8px; padding: 8px 10px; cursor: pointer; }
.kontrol > summary::-webkit-details-marker { display: none; }
.kontrol-nokta { flex: none; width: 8px; height: 8px; border-radius: 50%; }
.kontrol-ad { flex: 1 1 auto; font-size: var(--fs-sm); color: var(--text); }
.kontrol-durum { font-size: var(--fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-variant-numeric: tabular-nums;
    white-space: normal; text-align: right; line-height: 1.25; max-width: 62%; }   /* uzun durum metni (INCOMPLETE - TRIPPING NOT CHECKED) dar panelde sarar */
.kontrol-ayrinti { font-size: var(--fs-xs); color: var(--text-2); line-height: 1.5; padding: 0 10px 10px 26px; }
.kontrol-tamam .kontrol-nokta { background: #16a34a; } .kontrol-tamam .kontrol-durum { color: #94a3b8; }
body.light-mode .kontrol-tamam .kontrol-durum { color: #475569; }
.kontrol-uyari .kontrol-nokta { background: #d97706; } .kontrol-uyari .kontrol-durum { color: #b45309; }
.kontrol-hata  .kontrol-nokta { background: #dc2626; } .kontrol-hata  .kontrol-durum { color: #b91c1c; }
.kontrol-notr  .kontrol-nokta { background: #cbd5e1; } .kontrol-notr  .kontrol-durum { color: var(--text-3); }
.sonuc-detay { margin-top: 10px; }
.sonuc-detay[open] > div { margin-top: 2px; }
#modeldeGoster .view-toggles { margin-bottom: 8px; }

/* Checks sekmesi grup basliklari */
.checks-baslik { margin-top: 16px; }
#kartChecks .checks-baslik:first-child { margin-top: 0; }

/* Loads: "Add pressure patch" katlama basligi dugme gibi */
#kartLoads .subpanel-title[data-katlama="Add pressure patch"] {
    display: flex; align-items: center; justify-content: center; gap: 4px;
    margin-top: 8px; padding: 6px 10px; border: 1px dashed #cbd5e1; border-radius: 6px;
    font-size: var(--fs-sm); font-weight: 500; color: var(--primary-text); background: var(--bg-panel);
}
#kartLoads .subpanel-title[data-katlama="Add pressure patch"]:hover { border-color: var(--primary); background: #f8fbff; }

/* kullanim karti bir <button>: paneldeki genel dugme kurali onu yatay flex
   yapiyordu (etiket, sayi, cubuk yan yana dizildi). */
#rightPanel .kullanim-kart { display: block !important; height: auto !important; }
#rightPanel .kullanim-kart > div { display: block; }
#rightPanel .kullanim-kart > .kullanim-ust { display: flex; }
.sonuc-detay .sag-bolum-etiket, .proje-detay .sag-bolum-etiket { white-space: nowrap; flex: none; }

/* ---------- Mesnet tepkileri ve yer degistirmeler (katli bolumler) ---------- */
/* Ozet satiri kesilmez: uzun metin ikinci satira sarar (metin ayni) */
.sonuc-detay > summary .proje-ozet { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.35; }
/* Tablo kutusu: satirlar kendi yuksekliginde gorunur; 320 px ustu kaydirilir, baslik sabit kalir */
.sonuc-tablo-kutu { max-height: 320px; overflow-y: auto; }
.sonuc-tablo-kutu thead th { position: sticky; top: 0; z-index: 1; background: var(--bg-panel); }
.sonuc-detay .sonuc-tablo-kutu .data-table th,
.sonuc-detay .sonuc-tablo-kutu .data-table td { padding: 4px 8px; line-height: 1.3; border-bottom: 1px solid var(--border); }
.sonuc-detay .sonuc-tablo-kutu .data-table th { text-align: right; vertical-align: bottom; color: var(--text-2); font-weight: 600; }
.sonuc-detay .sonuc-tablo-kutu .data-table td { text-align: right; font-variant-numeric: tabular-nums; color: var(--text); }
.sonuc-detay .sonuc-tablo-kutu .data-table th:first-child,
.sonuc-detay .sonuc-tablo-kutu .data-table td:first-child { text-align: left; }
.sonuc-detay .sonuc-tablo-kutu .data-table tr:last-child td { border-bottom: 0; }
/* Birim: basligin altinda ince ve soluk ikinci satir */
.th-birim { display: block; font-weight: 400; color: var(--text-3); text-transform: none; letter-spacing: 0; }
#kartLoads .subpanel-title[data-katlama="Add pressure patch"]::before { content: '+'; font-weight: 600; }
#kartLoads .subpanel-title[data-katlama="Add pressure patch"][aria-expanded="false"] .katlama-ok { display: none; }


/* ---------- Yuk durumlari (Loads sekmesi) ---------- */
.yd-baslik-satir, .yd-ust { display: grid; grid-template-columns: 14px auto 1fr 34px 62px 12px; align-items: center; gap: 6px; }
.yd-baslik-satir { font-size: var(--fs-xs); color: var(--text-3); padding: 0 10px 4px; }
.yd-baslik-satir span:nth-child(2) { grid-column: 2 / 4; }
.yd-baslik-satir .sayi { text-align: right; }
.yd-liste { display: flex; flex-direction: column; gap: 6px; }
.yd-kart { border: 1px solid var(--border); border-radius: 8px; background: var(--bg-panel); overflow: hidden; }
.yd-kart.etkin { border-color: #93c5fd; box-shadow: inset 3px 0 0 #3b82f6; }
.yd-ust { padding: 8px 10px; cursor: pointer; }
.yd-ust:hover { background: #f8fafc; }
.yd-radyo { width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid #cbd5e1; }
.yd-kart.etkin .yd-radyo { border-color: #3b82f6; background: radial-gradient(#3b82f6 45%, transparent 50%); }
.yd-kimlik { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); font-weight: 700; color: var(--text);
    background: #f1f5f9; border-radius: 4px; padding: 1px 6px; }
.yd-kart.etkin .yd-kimlik { background: #dbeafe; color: #1d4ed8; }
.yd-ad { min-width: 0; border: 1px solid transparent !important; background: transparent !important; padding: 2px 4px !important;
    font-size: var(--fs-sm) !important; color: var(--text); border-radius: 4px; }
.yd-ad:hover { border-color: var(--border) !important; }
.yd-ad:focus { border-color: var(--primary) !important; background: #fff !important; }
.yd-sayi, .yd-kn { text-align: right; font-size: var(--fs-sm); color: var(--text-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.yd-ok { font-size: var(--fs-xs); color: var(--text-3); text-align: right; }
.yd-govde { border-top: 1px solid var(--border); padding: 8px 10px 10px; background: #fbfcfe; }
.yd-yukler { display: flex; flex-direction: column; max-height: 260px; overflow-y: auto; }
.yd-yuk { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 6px; padding: 4px 0; border-bottom: 1px solid #f1f5f9; font-size: var(--fs-xs); }
.yd-yuk-hedef { color: var(--text-2); white-space: nowrap; }
.yd-yuk-metin { color: var(--text); font-variant-numeric: tabular-nums; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yd-tasi { font-size: var(--fs-xs) !important; padding: 1px 2px !important; width: auto; }
.yd-sil { border: none; background: none; color: var(--text-3); cursor: pointer; font-size: var(--fs-lg); line-height: 1; padding: 0 2px; }
.yd-sil:hover { color: #dc2626; }
.yd-bos, .yd-fazla { font-size: var(--fs-xs); color: var(--text-3); line-height: 1.5; padding: 2px 0 6px; }
.yd-eylem { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.yd-durum-sil:not(:disabled) { color: #b91c1c; }
.yd-not { font-size: var(--fs-xs); color: var(--text-3); line-height: 1.5; margin-top: 8px; }
.yd-filtre-baslik { margin-top: 12px; }
.yd-yeni { display: grid; grid-template-columns: 1fr 58px auto auto; gap: 6px; margin-bottom: 8px; }
.yd-yeni[hidden] { display: none; }
.komb-toplam { font-size: var(--fs-xs); color: var(--text-2); margin-top: 6px; font-variant-numeric: tabular-nums; }

/* "hesaplanmadi" durumu: gri-amber; kullanim karti INCOMPLETE */
.kontrol-hesaplanmadi .kontrol-nokta { background: #d97706; box-shadow: 0 0 0 2px #fde68a; }
.kontrol-hesaplanmadi .kontrol-durum { color: #b45309; }
.kullanim-eksik .kullanim-rozet { color: #fbbf24; }
body.light-mode .kullanim-eksik .kullanim-rozet { color: #b45309; }
.kullanim-eksik .kullanim-cubuk i { background: #b45309; }

/* Import > Recover... yedek listesi */
.kurtarma-liste { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.kurtarma-satir { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border-top: 1px solid var(--border); font-size: var(--fs-sm); }
.kurtarma-satir:first-child { border-top: none; }
.kurtarma-satir span { color: var(--text-3); font-size: var(--fs-xs); margin-left: 6px; }
.kurtarma-satir small { color: var(--text-3); font-size: var(--fs-xs); }

/* Kiris sonucunun izi (yuk durumu, istasyon, isaret, zarf) */
.sonuc-iz { grid-column: 1 / -1; margin-top: 6px; padding: 6px 8px; border-radius: 6px; background: var(--surface-2, #f5f7fa); color: var(--text-2); font-size: var(--fs-xs); line-height: 1.45; }

/* Uzun islem: ilerleme cubugu ve iptal (zarf cozumu) */
.loading-ilerleme { width: 220px; height: 4px; margin-top: 10px; border-radius: 2px; background: rgba(15, 23, 42, 0.12); overflow: hidden; }
.loading-ilerleme i { display: block; height: 100%; width: 0; background: var(--primary); transition: width .15s ease; }
.loading-iptal { margin-top: 12px; }

/* Import > Loads from LoadPoint */
.lp-al-kaynak, .lp-al-not { font-size: var(--fs-xs); color: var(--text-3); margin: 0 0 10px; }
.lp-al-not { margin: 10px 0 0; }
.lp-al-liste { max-height: 340px; overflow: auto; border: 1px solid var(--border); border-radius: 8px; }
.lp-al-nokta { padding: 8px 12px; border-top: 1px solid var(--border); font-size: var(--fs-sm); }
.lp-al-nokta:first-child { border-top: none; }
.lp-al-nokta > span { color: var(--text-3); font-size: var(--fs-xs); margin-left: 6px; }
.lp-al-satir { display: flex; align-items: center; gap: 8px; padding: 3px 0 3px 4px; cursor: pointer; font-size: var(--fs-sm); }
.lp-al-satir span { flex: 1; min-width: 0; color: var(--text-2); }
.lp-al-satir b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.lp-al-hata { color: var(--danger-text); font-size: var(--fs-xs); }
.lp-al-ayar { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; font-size: var(--fs-xs); color: var(--text-2); }
.lp-al-ayar label { display: flex; flex-direction: column; gap: 3px; }
.lp-al-ayar select { padding: 4px 6px; font-size: var(--fs-sm); }

/* Profil onerisi penceresi */
.po-dugme { grid-column: 1 / -1; margin-top: 6px; justify-self: start; }
.po-hedef, .po-not, .po-yok { font-size: var(--fs-xs); color: var(--text-2); margin: 0 0 10px; line-height: 1.5; }
.po-not { color: var(--text-3); margin: 10px 0 0; }
.po-tablo { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }
.po-tablo th, .po-tablo td { padding: 5px 8px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }
.po-tablo th:first-child, .po-tablo td:first-child { text-align: left; }
.po-tablo th { font-size: var(--fs-xs); color: var(--text-3); font-weight: 600; }
.po-mevcut td { color: var(--text-3); }
.po-mevcut span { font-size: var(--fs-xs); margin-left: 4px; }

/* Proje > revizyonlar */
.rev-baslik { display: flex; align-items: center; justify-content: space-between; margin: 2px 0 6px; font-size: var(--fs-xs); color: var(--text-3); text-transform: uppercase; letter-spacing: .04em; }
.rev-liste { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.rev-satir { display: grid; grid-template-columns: 44px 92px 1fr 22px; gap: 4px; }
.rev-satir input { padding: 3px 5px; font-size: var(--fs-xs); min-width: 0; }
.rev-sil { border: none; background: none; color: var(--text-3); cursor: pointer; font-size: var(--fs-lg); }
.rev-bos { font-size: var(--fs-xs); color: var(--text-3); }

/* New from template */
.sb-not { font-size: var(--fs-xs); color: var(--text-3); margin: 0 0 10px; line-height: 1.5; }
.sb-kart { display: block; width: 100%; text-align: left; padding: 10px 12px; margin-bottom: 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface, #fff); cursor: pointer; }
.sb-kart:hover { border-color: var(--primary); }
.sb-kart b { display: block; font-size: var(--fs-sm); margin-bottom: 2px; }
.sb-kart span { font-size: var(--fs-xs); color: var(--text-2); line-height: 1.45; }

/* Arac cubugu tasmasi (js/ui/arac-tasma.js): sigmayan gruplar "..." menusunde */
.arac-tasma { flex: none; display: flex; align-items: center; }
.arac-tasma-menu { display: none; position: fixed; z-index: 1200; flex-direction: column; align-items: stretch; gap: 6px;
  padding: 8px; background: var(--bg-elev, #fff); border: 1px solid var(--border); border-radius: 6px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14); max-width: calc(100vw - 16px); }
.arac-tasma-menu.acik { display: flex; }
.arac-tasma-menu .toolbar-group { flex-wrap: wrap; background: transparent; }
.secim-kip-etiket { font-size: var(--fs-xs); color: var(--text-3); margin-right: 4px; align-self: center; }

/* Komut onerileri alt tablo panelinin (z 100) ARKASINDA aciliyordu: yalniz golgesi
   goruluyor, "LINE" satiri panelin altinda kaliyordu (30 Eyl). Panelin ustunde,
   acilir menulerin (1000) ve pencerelerin altinda. Golge acik tema. */
.cmd-autocomplete { z-index: 950; box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14); }

/* Secim bolumu: ACIK = sekmelerin altindaki alanin tamami, DARALMIS = alttaki tek satir
   (js/ui/sag-sekmeler.js secimSayfasi). Panel artik ikiye bolunmuyor; ustteki form bir
   alanin ortasindan kesilmez. */
body.sag-sekmeli.secim-acik #rightPanel .entity-info-body { display: none !important; }
body.secim-acik .secim-bolumu { flex: 1 1 auto; max-height: none; border-top: 0; box-shadow: none;
    animation: secimAc 0.16s ease-out; }
.secim-bolumu.daralmis { flex: 0 0 auto; max-height: none; }
.secim-bolumu.daralmis .secim-icerik { display: none; }
.secim-baslik { cursor: pointer; user-select: none; }
.secim-baslik:hover { background: var(--bg-hover); }
.secim-ok { flex: none; display: inline-flex; color: var(--text-3); transition: transform 0.15s ease; }
body.secim-acik .secim-ok { transform: rotate(180deg); }
@keyframes secimAc { from { transform: translateY(12px); opacity: 0.6; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { body.secim-acik .secim-bolumu { animation: none; } }
/* ...ama komut cubugu kendisi z 60'ta bir katman baglami kuruyordu; icindeki oneri
   kutusu alt paneli (100) hicbir z-index'le gecemiyordu. Cubuk panelin ustune. */
.command-bar { z-index: 110; }
/* Alt sekme seridi tekerlekle kayar (arac-tasma.js); Windows'un kalin cubugu gerekmez. */
.results-bottom-tabs { scrollbar-width: none; }
.results-bottom-tabs::-webkit-scrollbar { display: none; }

/* ---------- Kiris karti (30 Eyl, kullanici): dugum karti kadar kisa ----------
   Sira: kiris bilgisi -> profil -> yayili yuk -> tekil yuk -> sonuc -> oryantasyon /
   mafsal / burkulma en altta. Kalkanlar: dugum koordinatlari (dugumu secip
   duzenlenir), kesit onizlemesi ve ozellik blogu (Section details... penceresinde),
   Actions (arac cubugu ve sag tik menusunde var). Alanlar DOM'da kalir, JS yazar;
   Faz 2'de HTML'den silinecek. */
/* kart inline style ile acilip kapaniyor (none / block): yalniz gorunurken flex */
#entityInfoBeam:not([style*="none"]) { display: flex !important; flex-direction: column; }
#entityInfoBeam > * { order: 50; }
#entityInfoBeam > .entity-section:has(#infoBeamId)       { order: 1; }
#entityInfoBeam > .entity-section:has(#infoBeamSection)  { order: 2; margin-bottom: 4px; }
#entityInfoBeam > #beamEditSectionSection                { order: 3; }
#entityInfoBeam > #beamLineLoadSection                   { order: 4; }
#entityInfoBeam > #beamPointLoadSection                  { order: 5; }
#entityInfoBeam > #infoBeamResults                       { order: 6; }
#entityInfoBeam > #beamDiagramsSection                   { order: 7; }
#entityInfoBeam > #beamOrientationSection                { order: 20; }
#entityInfoBeam > #beamHingeSection                      { order: 21; }
#entityInfoBeam > #beamBucklingSection                   { order: 22; }
#entityInfoBeam > #beamNodeCoordsSection,
#entityInfoBeam > #sectionDiagram,
#entityInfoBeam > .entity-section:has(#infoSectionA),
#entityInfoBeam > #beamActionsSection { display: none !important; }
/* profil secici, ustundeki Profile / Grade satirlariyla tek blok gibi */
#beamEditSectionSection { margin-top: -8px; padding-top: 0; border-top: 0; }
#beamEditSectionSection > .entity-section-title { display: none; }
.bolum-baglanti { display: inline-block; margin-top: 4px; padding: 0; border: 0; background: none;
  font-size: var(--fs-xs); color: var(--primary-text, #2563eb); cursor: pointer; }
.bolum-baglanti:hover { text-decoration: underline; }

/* Checks: "Member location (tripping bracket spacing)" kullanici istegiyle gizli (30 Eyl).
   Deger modelde / sablonda kalir (varsayilan deck); secici DOM'da, the calculation engine okur-yazar. */
.limit-input:has(#trippingKonum) { display: none !important; }

/* ---------- Loads: sade durum listesi (30 Eyl) ---------- */
.yd-liste .yd-ust { grid-template-columns: 14px auto 1fr auto 22px; gap: 8px; }
.yd-liste .yd-ad { border: 0 !important; padding: 0 !important; font-size: var(--fs-sm); color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.yd-liste .yd-sayi { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); color: var(--text-3); }
.yd-ayrinti { width: 22px; height: 22px; border: 1px solid transparent; border-radius: 4px; background: transparent;
  color: var(--text-3); font-size: var(--fs-md); line-height: 1; letter-spacing: -1px; cursor: pointer; }
.yd-ayrinti:hover { border-color: var(--border); background: #fff; color: var(--text); }
/* oz agirlik: tek satir, aciklama yok */
.oz-agirlik-satir { margin-top: 10px; }
.oz-agirlik-satir #ozAgirlikNotu, .oz-agirlik-satir small, .oz-agirlik-satir > div:not(:first-child) { display: none !important; }
.oz-agirlik-satir label { font-size: var(--fs-sm); color: var(--text-2); }
/* Results: kombinasyon secicisi tek satir */
.sonuc-komb { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.sonuc-komb-etiket { font-size: var(--fs-xs); color: var(--text-3); white-space: nowrap; }
.sonuc-komb select { flex: 1 1 auto; min-width: 0; padding: 4px 6px !important; font-size: var(--fs-sm) !important; }
/* Model sekmesi: Generator / Purge arac cubugunun "Model" grubunda (30 Eyl) */
#modelDugmeSatiri { display: none !important; }
/* Model: Profiles - bos durum kutusuz, malzeme adin yaninda */
.sag-bos-duz { font-size: var(--fs-sm); color: var(--text-3); padding: 2px 0 4px; }
.kesit-sinif { margin-left: 6px; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: var(--fs-xs); color: var(--text-3); font-weight: 400; }
/* bos profil listesi: kabin cercevesi de kalksin */
.kesit-listesi:has(.sag-bos-duz) { border: 0 !important; padding: 0 !important; background: none !important; }
.profil-malzeme { margin-top: 14px; }
.profil-malzeme label { display: block; margin-bottom: 4px; }
/* kiris kartindaki yuk silme: sade x, uzerine gelince kirmizi */
.yuk-sil { width: 20px; height: 20px; border: 1px solid transparent; border-radius: 4px; background: transparent;
  color: var(--text-3); font-size: var(--fs-sm); line-height: 1; cursor: pointer; }
.yuk-sil:hover { color: #dc2626; border-color: #fecaca; background: #fef2f2; }

/* Yuk her zaman Loads'ta secili (etkin) duruma gider (30 Eyl): kartlardaki "Case"
   secicileri gereksiz. Secici DOM'da kalir, gosterilmez. */
#entityInfoBeam div:has(> #infoLineLoadCase),
#entityInfoBeam div:has(> #infoPointLoadCase) { display: none !important; }
#infoLoadCase { display: none !important; }

/* ---------- Sonuc bolumu durumlari (30 Eyl) ----------
   guncel: yesil ton - bu sayilar su anki modelin sonucu
   eski  : amber - model cozumden sonra degisti, sayi gosterilmez */
.entity-section.sonuc-guncel { background: #f0fdf4; border-color: #bbf7d0 !important; }
.entity-section.sonuc-guncel > .entity-section-title { color: #15803d; }
.entity-section.sonuc-eski { background: #fffbeb; border-color: #fde68a !important; }
.entity-section.sonuc-eski > .entity-section-title { color: #b45309; }
.entity-section.sonuc-eski > *:not(.entity-section-title):not(.sonuc-eski-not) { display: none !important; }
.sonuc-eski-not { display: none; font-size: var(--fs-sm); color: #92400e; line-height: 1.45; }
.entity-section.sonuc-eski .sonuc-eski-not { display: block; }
.sonuc-eski-kart { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; margin-bottom: 12px;
  background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px; font-size: var(--fs-sm); color: #92400e; }
.sonuc-eski-kart b { font-weight: 600; color: #b45309; }

/* ---- Results sekmesinde secim karti: yalniz bilgi (30 Eyl) ----
   Duzenleme bolumleri gizli, kalanlar salt okunur; sonuc basta. sag-sekmeler.js */
.secim-duzenle { display: none; margin-left: auto; padding: 2px 9px; font-size: var(--fs-xs); font-weight: 600;
  color: var(--primary-text, #2563eb); background: transparent; border: 1px solid var(--border); border-radius: var(--r-ctl); cursor: pointer; }
.secim-duzenle:hover { background: var(--bg-hover, #f1f5f9); }
body.secim-inceleme .secim-duzenle { display: inline-block; }
body.secim-inceleme .secim-duzenle + .secim-kapat { margin-left: 6px; }
body.secim-inceleme #secimIcerik #beamEditSectionSection,
body.secim-inceleme #secimIcerik #beamOrientationSection,
body.secim-inceleme #secimIcerik #beamHingeSection,
body.secim-inceleme #secimIcerik #beamBucklingSection,
body.secim-inceleme #secimIcerik #beamLineLoadSection > :not(.entity-section-title):not(.katlama-icerik):not(#infoBeamLineLoads),
body.secim-inceleme #secimIcerik #beamLineLoadSection > .katlama-icerik > :not(#infoBeamLineLoads),
body.secim-inceleme #secimIcerik #beamPointLoadSection > :not(.entity-section-title):not(.katlama-icerik):not(#infoBeamPointLoads),
body.secim-inceleme #secimIcerik #beamPointLoadSection > .katlama-icerik > :not(#infoBeamPointLoads),
body.secim-inceleme #secimIcerik #nodeBCSection > :not(.entity-section-title):not(.katlama-icerik):not(.bc-ozet),
body.secim-inceleme #secimIcerik #nodeBCSection > .katlama-icerik > :not(.bc-ozet),
body.secim-inceleme #secimIcerik #nodeLoadSection > :not(.entity-section-title):not(.katlama-icerik):not(#infoNodeLoadsContainer),
body.secim-inceleme #secimIcerik #nodeLoadSection > .katlama-icerik > :not(#infoNodeLoadsContainer),
body.secim-inceleme #secimIcerik .yuk-sil,
body.secim-inceleme #secimIcerik .entity-section:has(#infoBeamSection) select,
body.secim-inceleme #secimIcerik .po-dugme { display: none !important; }
body.secim-inceleme #secimIcerik #infoBeamLineLoads,
body.secim-inceleme #secimIcerik #infoBeamPointLoads { margin-top: 0 !important; }
/* salt okunur kutular duz metin gibi */
body.secim-inceleme #secimIcerik input[readonly] { border-color: transparent !important; background: transparent !important;
  box-shadow: none !important; pointer-events: none; color: var(--text-1); -moz-appearance: textfield; text-align: right; }
body.secim-inceleme #secimIcerik input[readonly]::placeholder { color: transparent; }
body.secim-inceleme #secimIcerik input[readonly]::-webkit-inner-spin-button,
body.secim-inceleme #secimIcerik input[readonly]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* sonuc basta: kiris (flex order) ve dugum */
body.secim-inceleme #entityInfoBeam > #infoBeamResults     { order: 2; }
body.secim-inceleme #entityInfoBeam > #beamDiagramsSection { order: 3; }
body.secim-inceleme #entityInfoBeam > .entity-section:has(#infoBeamSection) { order: 4; }
body.secim-inceleme #entityInfoNode:not([style*="none"]) { display: flex !important; flex-direction: column; }
body.secim-inceleme #entityInfoNode > * { order: 10; }
body.secim-inceleme #entityInfoNode > .entity-section:has(#infoNodeId) { order: 1; }
body.secim-inceleme #entityInfoNode > #infoNodeResults { order: 2; }

/* ---- Komut artisi (CAD imleci) ve sari iz cizgisi (30 Eyl) ---- */
body.komut-imlec .canvas-container, body.komut-imlec .canvas-container * { cursor: none !important; }
.komut-arti { position: fixed; left: 0; top: 0; width: 0; height: 0; pointer-events: none; z-index: 9997; display: none; }
.komut-arti i { position: absolute; background: #334155; }
.komut-arti .ka-y { left: -28px; top: 0; width: 56px; height: 1px; }
.komut-arti .ka-d { left: 0; top: -28px; width: 1px; height: 56px; }
.komut-arti .ka-kutu { position: absolute; left: -4px; top: -4px; width: 9px; height: 9px; border: 1px solid #334155; background: transparent; }
.direction-line { height: 0 !important; background: none !important; border-top: 1.5px dashed #e0a526; }

/* Dugum koordinatlari tek satir (30 Eyl) */
.dugum-koord { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 6px; align-items: center; margin-top: 4px; }
.dugum-koord label { display: flex; align-items: center; gap: 4px; min-width: 0; margin: 0; }
.dugum-koord label span { font-size: var(--fs-xs); color: var(--text-3); font-weight: 600; }
.dugum-koord input { width: 100%; min-width: 0; padding: 3px 5px; font-size: var(--fs-sm); text-align: right; }
.dugum-koord em { font-style: normal; font-size: var(--fs-xs); color: var(--text-3); }

/* Kesit penceresi: cizim + ozellikler (30 Eyl) */
.kesit-modal-govde { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; padding: 16px 20px !important; align-items: start; }
.kesit-modal-cizim { display: flex; align-items: center; justify-content: center; min-height: 260px; background: var(--bg-main, #f8fafc);
  border: 1px solid var(--border); border-radius: var(--r-ctl); padding: 10px; }
.kesit-modal-cizim svg { width: 100%; height: auto; max-height: 420px; }
.kesit-ozellik { display: flex; flex-direction: column; gap: 10px; font-size: var(--fs-sm); }
.ko-grup { border: 1px solid var(--border); border-radius: var(--r-ctl); padding: 6px 10px; }
.ko-bas { font-size: var(--fs-xs); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-3); margin-bottom: 4px; }
.ko-satir { display: grid; grid-template-columns: minmax(0, 1fr) auto 30px; gap: 6px; padding: 2px 0; align-items: baseline; }
.ko-satir span { min-width: 0; overflow-wrap: anywhere; }
.ko-satir span small { color: var(--text-3); font-size: var(--fs-xs); }
.ko-satir i { overflow: hidden; text-overflow: ellipsis; }
.kesit-ozellik { min-width: 0; overflow: hidden; }
.ko-satir span { color: var(--text-2); }
.ko-satir b { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text-1); text-align: right; }
.ko-satir i { font-style: normal; color: var(--text-3); font-size: var(--fs-xs); white-space: nowrap; }
.ko-not, .ko-bos { color: var(--text-3); font-size: var(--fs-xs); line-height: 1.45; }
@media (max-width: 760px) { .kesit-modal-govde { grid-template-columns: 1fr; } }
/* Kiris karti: kesit ve diyagram dugmeleri; uzun sonuc aciklamasi yerine dugme */
.kesit-detay-dugme { margin-top: 6px; }
#infoBeamIz { display: none !important; }
.sonuc-diyagram-dugme { margin-top: 8px; }
#entityInfoBeam > #beamDiagramsSection { display: none !important; }

/* ---- Faz 2: tek satir ust cubuk (duzen.js tasir) ---- */
body.tek-satir-ust .lumoship-nav .main-tab-bar {
    flex: 1 1 auto; min-width: 0; height: 100%; display: flex; align-items: center; justify-content: space-between;
    background: transparent !important; border: 0 !important; padding: 0 12px 0 14px !important; margin-left: 14px;
    border-left: 1px solid var(--border) !important; box-shadow: none !important;
}
body.tek-satir-ust .lumoship-nav .main-tab-bar .header-actions { margin: 0 !important; flex: none; }
body.tek-satir-ust .lumoship-nav .nav-right { flex: none; padding-left: 12px; border-left: 1px solid var(--border); }
body.tek-satir-ust .lumoship-nav #modelName { max-width: 22vw; flex: 0 1 auto; min-width: 0; }   /* dar ekranda kisalir ve ... ile biter (eskiden flex:none: kirpiliyordu) */
body.tek-satir-ust .lumoship-nav .uygulama-baslik { flex: 0 1 auto; overflow: hidden; }
body.tek-satir-ust .lumoship-nav .toolbar-dropdown-menu { right: 0; left: auto; }
@media (max-width: 1440px) { body.tek-satir-ust .lumoship-nav .uygulama-ozet { display: none; } }

/* File menusu kompakt (30 Eyl): beyaz, dar, sik satirlar; son dosya yoksa "Recent" bolumu yok */
.toolbar-dropdown-menu.dosya-menu { background: #fff !important; min-width: 0 !important; width: 228px; padding: 4px 0 !important;
  box-shadow: 0 6px 20px rgba(15, 23, 42, .14) !important; border-color: var(--border) !important; }
.dosya-menu .dropdown-item { padding: 5px 12px !important; font-size: var(--fs-sm) !important; gap: 8px; line-height: 1.3; white-space: nowrap; }
.dosya-menu .dropdown-item .icon svg { width: 14px; height: 14px; }
.dosya-menu .dropdown-item small { font-size: var(--fs-xs); }
.dosya-menu > div[style*="border-top"] { margin: 3px 0 !important; }
.dosya-menu > div[style*="text-transform:uppercase"] { padding: 5px 12px 1px !important; }
.dosya-menu > div:has(+ #recentFilesList .recent-bos),
.dosya-menu #recentFilesList:has(.recent-bos),
.dosya-menu #recentFilesList:has(.recent-bos) + div { display: none !important; }

/* ===== Arayuz cilasi (18 Eki 2026): yalniz gorunum / etkilesim ===== */
/* Karar rozeti rengi KARARDAN: %80 uzeri PASS turuncu rozet gostermesin (cubuk ve sayi kullanima gore kalir) */
.kullanim-karar-pass .kullanim-rozet { color: #4ade80; }
body.light-mode .kullanim-karar-pass .kullanim-rozet { color: #15803d; }
/* Kontrol listesinde durum sozcukleri tek bicim (Complete / Pass / FAIL / No limit ...) */
/* Birimli basliklar buyuk harfe cevrilmez (GPa -> GPA, sigma -> SIGMA) */
html body.light-mode .modal th, html body .modal .data-table th, html body .modal-body th { text-transform: none; }
/* Sayilar: haneler alt alta hizali */
#resultsBottomContent td, #resultsBottomContent th, .sag-sayi { font-variant-numeric: tabular-nums; }
/* Alt panel: sekme seridi sayfa genisliginden uzunsa eylem dugmelerinin altina binmez, kayar */
.results-bottom-header { gap: 12px; }
.results-bottom-tabs { flex: 1 1 auto; min-width: 0; overflow-x: auto; }
.results-bottom-tab { flex: none; white-space: nowrap; }
.results-bottom-header > :not(.results-bottom-tabs) { flex: none; }
/* Ince, sakin kaydirma cubuklari (oklar ve kalin Windows cubugu yok) */
/* (alt panel ve pencere govdesi standart scrollbar-width KULLANMAZ: Chrome onu verince ::-webkit-scrollbar kurallari - ok dugmelerini gizleyen - yok sayilir) */
#rightPanel, .sag-icerik { scrollbar-width: thin; scrollbar-color: #cbd5e1 transparent; }
#resultsBottomContent::-webkit-scrollbar, .modal-body::-webkit-scrollbar { width: 8px; height: 8px; }
#resultsBottomContent::-webkit-scrollbar-track, .modal-body::-webkit-scrollbar-track { background: transparent; }
#resultsBottomContent::-webkit-scrollbar-corner, .modal-body::-webkit-scrollbar-corner { background: transparent; }
#resultsBottomContent::-webkit-scrollbar-button, .modal-body::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
#resultsBottomContent::-webkit-scrollbar-thumb, .modal-body::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; border: 2px solid transparent; background-clip: content-box; }
#resultsBottomContent::-webkit-scrollbar-thumb:hover, .modal-body::-webkit-scrollbar-thumb:hover { background: #94a3b8; background-clip: content-box; }
/* Klavye odagi: tum etkilesimli ogelerde ayni gorunur halka (fare tiklamasinda cikmaz) */
button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible, a:focus-visible, [role="tab"]:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid var(--primary, #2563eb); outline-offset: 1px; }
canvas:focus-visible { outline: none; }
/* Devre disi dugmeler: soluk ve imlec engelli (tutarli) */
button:disabled, .btn-secondary:disabled, .btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
/* Alt panel sekme seridi: tasan taraf soluk (kaydirilabilir oldugu gorunur); durum tables.js altTabloSeritKaydirma */
.results-bottom-tabs.kayar-sag { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); }
.results-bottom-tabs.kayar-sol { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 32px), transparent); }
.results-bottom-tabs.kayar-sol.kayar-sag { -webkit-mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent); }
/* Dar ekran: durum mesaji kisalir (...), komut ipuclari girdinin ustune binmez */
.status-bar .status-message { display: block; flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.status-bar .status-message .icon { margin-right: 6px; vertical-align: -2px; }
@media (max-width: 1240px) { .command-bar-hints { display: none; } }

/* ===== Dogrulama penceresi (Faz 1, 18 Eki 2026) ===== */
/* Baslik: beyaz yazi + ikon (koyu kirmizi / amber zeminde >= 5:1); eskiden koyu lacivert yazi kirmizi zeminde okunmuyordu */
#validationModal .dogrulama-ust { padding: 14px 20px; border-bottom: 0; }
#validationModal .dogrulama-ust-hata  { background: linear-gradient(135deg, #7f1d1d, #991b1b); }
#validationModal .dogrulama-ust-uyari { background: linear-gradient(135deg, #78350f, #a85306); }
html body #validationModal .dogrulama-ust h2, html body #validationModal .dogrulama-ust .modal-close { color: #ffffff; }
#validationModal .dogrulama-ust h2 { display: flex; align-items: center; gap: 8px; font-size: var(--fs-md); font-weight: 600; margin: 0; }
#validationModal .dogrulama-ust .icon svg { stroke: #ffffff; }
#validationModal .dogrulama-ust .modal-close { opacity: 0.85; border-radius: 4px; }
#validationModal .dogrulama-ust .modal-close:hover { opacity: 1; background: rgba(255, 255, 255, 0.16); }
#validationModal .dogrulama-ust .modal-close:focus-visible { outline: 2px solid #ffffff; outline-offset: 1px; }
#validationModal .dogrulama-govde { padding: 16px 20px 8px; max-height: 60vh; overflow-y: auto; }
/* Bolum basliklari: hata / uyari rengi + sayi; ikon ve sozcukle de ayrilir (yalniz renk degil) */
#validationModal .dogrulama-bolum { margin-bottom: 14px; }
#validationModal .dogrulama-bolum-baslik { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
#validationModal .dogrulama-bolum-baslik span:not(.icon) { font-weight: 500; letter-spacing: 0; text-transform: none; color: #475569; }
#validationModal .dogrulama-bolum-hata  { color: #991b1b; }
#validationModal .dogrulama-bolum-uyari { color: #92400e; }
#validationModal .dogrulama-bolum-bilgi { color: #334155; }
#validationModal .dogrulama-bolum-baslik .icon svg { stroke: currentColor; }
/* Kart: baslik > mesaj > ayrinti > duzeltme > eylemler */
#validationModal .dogrulama-kart { padding: 10px 12px 10px 14px; margin-bottom: 8px; border-left: 4px solid; border-radius: 0 6px 6px 0; }
#validationModal .dogrulama-hata  { background: #fef2f2; border-left-color: #b91c1c; }
#validationModal .dogrulama-uyari { background: #fffbeb; border-left-color: #d97706; }
#validationModal .dogrulama-baslik { display: flex; align-items: center; gap: 6px; font-size: var(--fs-md); font-weight: 700; margin-bottom: 4px; }
#validationModal .dogrulama-hata  .dogrulama-baslik { color: #991b1b; }
#validationModal .dogrulama-uyari .dogrulama-baslik { color: #92400e; }
#validationModal .dogrulama-baslik .icon svg { stroke: currentColor; }
#validationModal .dogrulama-mesaj { font-size: var(--fs-md); line-height: 1.45; color: var(--text); }
#validationModal .dogrulama-ayrinti { margin-top: 4px; font-size: var(--fs-sm); line-height: 1.45; color: #334155; }
#validationModal .dogrulama-duzelt { margin-top: 6px; font-size: var(--fs-sm); line-height: 1.45; color: #1e293b; }
#validationModal .dogrulama-duzelt b { margin-right: 6px; font-size: var(--fs-xs); letter-spacing: 0.06em; text-transform: uppercase; color: #334155; }
#validationModal .dogrulama-eylemler { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
#validationModal .dogrulama-not { padding: 6px 10px; margin-bottom: 6px; border-left: 3px solid #94a3b8; font-size: var(--fs-sm); color: #334155; }
/* Alt dugmeler: ana eylem dolu, Cancel ikincil; ana eylem sagda */
#validationModal .dogrulama-alt { display: flex; justify-content: flex-end; align-items: center; gap: 8px; padding: 12px 20px; }
#validationModal .dogrulama-ana { min-width: 150px; font-weight: 600; }
#validationModal .dogrulama-iptal { color: #475569; }

/* ===== Sonuc tablolari, dar ekran (Faz 1) ===== */
/* Yatay kaydirmada satir kimligi sabit: Beam / Node (ve varsa x/L) solda kalir; opak zemin, ayirici cizgi, secili satir seridi */
.results-data-table th.sabit, .results-data-table td.sabit { position: sticky; left: 0; z-index: 1; box-shadow: 1px 0 0 #e2e8f0; }
.results-data-table th.sabit { z-index: 3; }
.results-data-table th.sabit2, .results-data-table td.sabit2 { left: var(--sabit1, 48px); }
/* Sabit hucrenin zemini temaya gore: acik tema burada, koyu tema main.css'te */
body.light-mode .results-data-table th.sabit, body.light-mode .results-data-table td.sabit { background: #ffffff; }
body.light-mode .results-data-table th.sabit { background: #f8fafc; }
body.light-mode .results-data-table tbody tr:hover td.sabit { background: #f1f5f9; }
body.light-mode .results-data-table tbody tr.selected td.sabit { background: #dbeafe; box-shadow: inset 3px 0 0 var(--primary), 1px 0 0 #e2e8f0; }
body.light-mode .results-data-table tr.selected:hover td.sabit { background: #bfdbfe; }
.results-data-table th { z-index: 2; }
/* Kontrol listesi: uzun durum metni ("INCOMPLETE - TRIPPING NOT CHECKED") kesilmez, satira sarar */
.kontrol-ad { min-width: 0; }

/* ===== Tipografi olcegi (tipografi fazi, 18 Eki 2026) =====
   Boyutlar (hepsi --fs-taban x --ui-olcek: ekran + kullanici tercihi ile birlikte buyur; 1600 px'te yaklasik px):
     --fs-kpi  ~31  tek one cikan sayi (Max utilisation)           agirlik 600
     --fs-lg   ~14  ana sayi (stat kartlari), kapat / ikon glifi    600
     --fs-md   ~12  baslik: pencere, kart, bolum; birincil deger    600
     --fs-sm   ~11  govde: tablo hucresi, girdi, dugme, etiket      400 / 500
     --fs-xs   ~10  mikro: tablo ust bilgisi, birim, ipucu, durum   500 / 600
   Agirliklar 400 / 500 / 600 (700 yalniz dolu rozet). Satir yuksekligi 1.3 govde, 1.1 buyuk sayi.
   Boyutlar bu bes basamak disinda elle yazilmaz. */
:root, body { --fs-kpi: calc(var(--fs-taban) * var(--ui-olcek) * 2.9); }
/* Okunabilirlik tabani: mikro metin 9.5 px altina inmez (dar ekranda taban 10.5 px) */
:root, body { --fs-xs: max(9.5px, calc(var(--fs-taban) * var(--ui-olcek) * 0.9091)); }
/* Pencere / form alan etiketleri birim tasir (b (mm), t (mm)): mikro degil govde boyu, ikincil renk okunur kontrastta */
html body .modal label, html body .modal .field-label, html body .modal .limit-input label,
html body .modal .form-group label { font-size: var(--fs-sm); color: var(--text-2); }
html body .modal small, html body .modal .form-group small { font-size: var(--fs-xs); color: var(--text-2); }
/* Sayilar ve birimler: sabit genislikli haneler, ondaliklar alt alta oturur */
#rightPanel, .modal, .status-bar, .results-bottom-panel, input, select { font-variant-numeric: tabular-nums; }
/* Pencere tablolari: hucre govde boyu (sonuc tablolariyla ayni), yalniz ust bilgi mikro; bos durum satiri da govde */
html body .modal .data-table td { font-size: var(--fs-sm); }
html body .modal .data-table th { font-size: var(--fs-xs); }
html body .modal .checkbox-label span, html body .modal .radio-pill span, html body .modal .result-box span { font-size: var(--fs-sm); }
html body .modal .field-label.accent { color: var(--primary-text); font-weight: 600; }
html body .modal .result-label { font-size: var(--fs-sm); }
/* Bos durum (Loads): tek satir, ikincil renk, govde boyu */
.yd-bos-satir { margin: 10px 2px 2px; font-size: var(--fs-sm); color: var(--text-2); line-height: 1.4; }
.yd-bos-satir b { color: var(--text); font-weight: 600; margin-right: 2px; }
.yd-bos-satir kbd { font-family: var(--font-mono); font-size: var(--fs-xs); padding: 0 4px; border: 1px solid var(--border); border-radius: 3px; background: #f8fafc; }
/* Alt tablo basligindaki dugmeler tek yukseklik: ikonsuz "Panels -> NR615" 19 px, ikonlular 22 px idi */
.results-bottom-header .btn-small { display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 24px; box-sizing: border-box; line-height: 1; }

/* ===== Hiza denetimi (18 Eki): ayni satirdaki kontroller tek yukseklik, merkezler ayni cizgide =====
   Bulgular tests/ui-akis.js 11p "hiza" denetimiyle olculur. Ikonlu / ikonsuz ve glifli (▶, σ) dugmeler 19-23 px arasinda degisiyordu. */
.canvas-toolbar .toolbar-btn { height: 24px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.secim-baslik > button { height: 24px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
#btnDiagMoment, #btnDiagShear, #btnDiagStress { height: 24px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
#sonucKomb > select, #sonucKomb > button { height: 26px; box-sizing: border-box; }
#sonucKomb > button { display: inline-flex; align-items: center; justify-content: center; }
#validationModal .dogrulama-alt button { height: 30px; box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
/* Yuk durumu ekleme satiri: "+ Add case" iki satira kiriliyordu (49 px), kutular 21 px */
div:has(> #yeniDurumId) > input, div:has(> #yeniDurumId) > button { height: 28px; box-sizing: border-box; }
div:has(> #yeniDurumId) > button { flex: none; white-space: nowrap; display: inline-flex; align-items: center; }
/* Kart ozellik satirlari: deger metni sag kenarda (ID "5" 24 px kutuda ortaliydi). Cerceveli girdi (Name) kutu kenariyla hizali kalir, ic boslugu korunur. */
.entity-property .value { text-align: right; }
/* Copy penceresi: X / Y / Z kutularinin ekseni yazili (uc kutu etiketsizdi) */
html body .modal .form-group label.eksen-girdi { display: flex; align-items: center; gap: 6px; min-width: 0; margin: 0; font-size: var(--fs-xs); }
html body .modal label.eksen-girdi > span { flex: none; width: 10px; font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 600; color: var(--text-3); }
html body .modal label.eksen-girdi > :last-child { flex: 1 1 auto; min-width: 0; }   /* girdi ya da uygulamanin sayi kutusu sarmalayicisi */
html body .modal label.eksen-girdi input { width: 100%; min-width: 0; box-sizing: border-box; font-size: var(--fs-sm); }
/* Yardim penceresi: tus kutusu ile aciklama ayni merkez cizgisinde (kutu 3-4 px asagidaydi); bolum basliklari tek renk (5 farkli renk vardi) */
#helpModal div[style*="justify-content:space-between"] { align-items: center; }
#helpModal h3 { color: var(--text) !important; }

/* ===== Kose yaricapi olcegi (18 Eki): 3 px kontrol (dugme, girdi, sekme) / 6 px kart icindeki kucuk oge ve buyuk ust cubuk dugmesi / 8 px kart, pencere, yuzen katman =====
   Pencere ve lejant 5 px, kullanim karti 10 px idi (ayni panelde 8 px kartlarla yan yana). */
:root, body { --r-ovl: 8px; }

/* ===== Hover tutarliligi (18 Eki): tiklanabilir her oge uzerine gelince gorunur tepki verir =====
   Olcum: Temp\ui\hover.js (cursor:pointer olup hover'da rengi / zemini / kenari degismeyen ogeler). Secili (active) ogeler bilerek sabit. */
body.light-mode .btn-primary:hover:not(:disabled) { background: #1d4ed8; border-color: #1d4ed8; transform: none; }
html body .results-data-table th:hover { background: #eef2f7; color: var(--text); }
.kontrol > summary:hover { background: #f8fafc; }
.command-bar-ortho:hover { filter: brightness(0.94); }
.entity-section-title { border-radius: 3px; }
.entity-section-title:hover { color: var(--text); background: #f1f5f9; }
#btnDiagMoment:hover, #btnDiagShear:hover, #btnDiagStress:hover { border-color: #94a3b8 !important; color: var(--text) !important; }
.proje-detay > summary:hover, .sonuc-detay > summary:hover { background: #f8fafc; }

/* ===== Kiris teorisi (L/h) satiri (18 Eki): grup + sayi + Select tek satir, sayilar sutunda ===== */
.kt-satir { display: flex; align-items: center; gap: 8px; height: 22px; }
.kt-satir > span:first-child { flex: 1; }
.kt-sayi { font-variant-numeric: tabular-nums; min-width: 3ch; text-align: right; color: var(--text); }
.kt-satir .kt-sec { height: 20px; }

/* ===== Kesit referansi (18 Eki): kart satirinda secim sag kenarda, coklu kartta secim + Apply tek satir ===== */
#infoBeamRefSatir select { width: auto; min-width: 0; max-width: 62%; height: 24px; padding: 0 4px; font-size: var(--fs-sm); }
.multi-ref-satir { display: flex; gap: 8px; align-items: center; }
.multi-ref-satir select { flex: 1; height: 26px; padding: 0 4px; font-size: var(--fs-sm); }
.multi-ref-satir .btn-small { height: 26px; }
.burkulma-varsayim { margin: 2px 0 6px; font-size: var(--fs-xs); color: var(--text-2); }
.model-ref-satir { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: var(--fs-xs); color: var(--text-2); }
.model-ref-satir > span { flex: 1; }
.model-ref-satir select { height: 24px; padding: 0 4px; font-size: var(--fs-sm); width: auto; }
/* sayi kutusu uygulamanin kendi sarmalayicisinda: genislik sarmalayiciya (ilk cocuk), secim kalan yeri alir */
#multiBeamPressureSection .multi-ref-satir > :first-child { flex: 0 0 76px; width: 76px; min-width: 0; }
#multiBeamPressureSection .multi-ref-satir input { width: 100%; height: 26px; padding: 0 6px; text-align: right; font-size: var(--fs-sm); }
#multiBeamPressureSection .multi-ref-satir select { flex: 1 1 auto; min-width: 0; width: auto; }
/* inceleme kipinde (cozulmus, secim karti salt okunur) duzenleme satiri butun olarak gizli: etiket tek basina kalmasin */
body.secim-inceleme #secimIcerik #infoBeamRefSatir { display: none !important; }

/* ===== Basinc yamasi formu (19 Eki): Loads'ta katli satir; ic katlama (katlama.js "Add pressure patch") cift katlama olmasin ===== */
.basinc-kart > .katlama-icerik { display: block !important; }
.basinc-detay .basinc-kart { border: 0; box-shadow: none; padding: 6px 0 0; margin: 0; background: transparent; }
.basinc-detay .basinc-kart input, .basinc-detay .basinc-kart select { height: 24px !important; box-sizing: border-box; }
.basinc-detay .basinc-secimden { height: 24px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-top: 0 !important; padding-bottom: 0 !important; }
