/* Uygulamaya özgü yerleşim — YALNIZ belirteç (var(--…)) kullanır; ham renk/hex yasak (§30).
   Bileşenler components.css'te (üretilir, tasarim/kaynak/cbam.css'ten). */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
body.focus { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.focus-page { margin: 0 auto; max-width: 1080px; flex: 1; }
.grow, .top .grow, .actions .grow { flex: 1; }
.top-title { font-weight: var(--fw-semi); }
/* Tema düğmesi (K-4): görünen ikon geçerli tercihi söyler */
.theme-cycle { flex: none; padding: 0 var(--sp-2); }
.theme-cycle > span { display: none; }
html:not([data-theme]) .theme-cycle .t-system, html[data-theme="light"] .theme-cycle .t-light,
html[data-theme="dark"] .theme-cycle .t-dark { display: inline-flex; }
/* Panel hazırlık puanı (D-018) */
.score { gap: var(--sp-3); padding-bottom: var(--sp-3); border-bottom: 1px solid var(--card-bd); }
.score-num { font-size: 32px; font-weight: var(--fw-semi); line-height: 1; }
.narrow { max-width: 520px; width: 100%; margin: 0 auto; }
.stack { display: grid; gap: var(--sp-4); grid-template-columns: minmax(0, 1fr); }
.stack-sm { display: grid; gap: var(--sp-2); grid-template-columns: minmax(0, 1fr); }
.row.nowrap { flex-wrap: nowrap; }
.check-row { gap: var(--sp-2); font-weight: var(--fw-semi); min-height: var(--tap); }
.check-row input { width: 22px; height: 22px; }
.block { display: block; }
.r { text-align: right; }
.stat-sm { font-size: var(--fs-lg) !important; }
.dropzone { min-height: 240px; background: var(--surface-2); cursor: pointer; position: relative; }
.dropzone.bad { border-color: var(--err); }
.dropzone input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.dropzone:focus-within { outline: 3px solid var(--primary-soft); border-color: var(--primary); }
.issues { margin: var(--sp-2) 0 0; padding-left: var(--sp-5); }
.tbl.wide { min-width: 680px; }
.result-head { display: flex; flex-wrap: wrap; gap: var(--sp-7); align-items: flex-end; }
.grow-wide { flex: 1 1 min(360px, 100%); min-width: 0; }
.saving { color: var(--ok); }
.compare { display: grid; grid-template-columns: minmax(160px, 240px) 1fr minmax(80px, 120px); gap: 10px 14px; align-items: center; }
.bar { height: 14px; border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; }
.bar > span { display: block; height: 100%; border-radius: var(--r-pill); }
.bar-actual { background: var(--ok); }
.bar-default { background: var(--warn); }
.badges { gap: var(--sp-2); }
.badges .badge { white-space: normal; }
/* ---- Form seçenekleri: kart/çip içinde gerçek onay kutusu ve radyo (JS'siz; seçili görünüm :has ile) ---- */
.field { align-content: start; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.self-start { justify-self: start; }
.plain { border: 0; margin: 0; padding: 0; min-width: 0; }
.chips { gap: var(--sp-2); }
.opt.chip { width: auto; min-height: var(--tap); align-items: center; padding: var(--sp-2) var(--sp-4); }
.opt input[type=checkbox], .opt input[type=radio] { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--primary); }
.opt:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); box-shadow: 0 0 0 1px var(--primary); }
.opt:has(input:not(:checked)).on { border-color: var(--field-bd); background: var(--surface); box-shadow: none; }
.opt:has(input:focus-visible) { outline: 3px solid var(--primary-soft); outline-offset: 2px; }
.admin-email { overflow-wrap: anywhere; }
.sector-layout { display: flex; flex-wrap: wrap; gap: var(--sp-5); align-items: flex-start; }
.sector-cards { flex: 999 1 560px; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: var(--sp-3); }
.sector-card { min-height: 104px; flex-direction: column; justify-content: space-between; position: relative; }
.sector-card b { font-size: var(--fs-lg); padding-right: var(--sp-6); }
.sector-card input[type=radio] { position: absolute; top: var(--sp-3); right: var(--sp-3); }
.sector-panels { flex: 1 1 320px; max-width: 420px; }
.sector-panel.chosen { border: 2px solid var(--primary); }
.grid2.tight { gap: var(--sp-2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.info-ink { color: var(--info-ink); }
.facts { display: grid; gap: var(--sp-2); }
.fact { align-items: center; }
.fact .grow { flex: 1; }
.top-align { align-items: start; }
.panel-layout { display: flex; flex-wrap: wrap; gap: var(--sp-5); align-items: flex-start; }
.panel-facts { flex: 1 1 360px; }
.panel-facility { flex: 1 1 360px; }
a.opt { text-decoration: none; }
/* Gösterge kartları (D-068): panelde göstergeye bağlı hedefler */
.indicator-cards { display: grid; gap: var(--sp-4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
a.indicator-card { color: var(--ink); text-decoration: none; }
.indicator-value { font-size: var(--fs-h1); font-weight: 600; }

/* ---- Uygulama kabuğu (§15 navShell; tahta: Panel, TesisProfil, Tel_Cekmece, Tel_SolEl) ---- */
.skip { position: absolute; left: var(--sp-2); top: -60px; z-index: 50; }
.skip:focus { top: var(--sp-2); }
body.app .shell { flex-wrap: nowrap; min-height: 100vh; min-height: 100dvh; }
body.app .side { flex: 0 0 248px; max-width: none; position: sticky; top: 0; height: 100vh; height: 100dvh; overflow-y: auto; }
body.app .main { flex: 1 1 auto; }
body.app .page { margin: 0 auto; }
.side .grow, .rail .grow { flex: 1; }
.side .i { width: 20px; height: 20px; }
.side-close, .rail, .scrim { display: none; }
body.app .side-head { flex-wrap: wrap; padding-right: 0; row-gap: 2px; }
/* Ürün adı (D-021) marka işaretinin yanında ("SenSight Eco"); tasarımdaki kesik çerçeve "ad belli değil" demekti,
   gerçek adda kalkar. Ad uzarsa side-head sarar, daraltma düğmesi dışarı itilmez. */
.wm + .prod { border: 0; padding: 0; color: var(--ink); font-size: 19px; font-weight: 600; letter-spacing: -.02em; white-space: nowrap;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.side-collapse { padding: 0 var(--sp-2); }
.side-user { display: flex; align-items: center; gap: var(--sp-2); min-height: var(--tap); font-size: var(--fs-sm); font-weight: var(--fw-semi); color: var(--ink-2); }
.side-logout { justify-content: flex-start; padding-left: 0; }
.navback.off { opacity: .45; cursor: default; }
.page:focus { outline: none; }
/* Daraltılmış masaüstü menüsü: yalnız ikonlar; adlar erişilebilir ad olarak kalır (clip, display:none değil) */
html[data-menu="dar"] body.app .side { flex-basis: 76px; padding-left: var(--sp-2); padding-right: var(--sp-2); }
html[data-menu="dar"] .side .lbl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html[data-menu="dar"] .side-head { justify-content: center; padding-left: 0; padding-right: 0; }
html[data-menu="dar"] .side-head .wm, html[data-menu="dar"] .side-head .prod, html[data-menu="dar"] .side-head .grow,
html[data-menu="dar"] .side-grp > a, html[data-menu="dar"] .side-grp > summary .i-sm, html[data-menu="dar"] .side-foot { display: none; }
html[data-menu="dar"] .side a, html[data-menu="dar"] .side-grp > summary { justify-content: center; padding: 0; }
html[data-menu="dar"] .side-grp:has(a.on) > summary { background: var(--primary-soft); color: var(--primary-soft-ink); }
@media (max-width: 599px) {
  /* Telefon: kenarda ikon şeridi (varsayılan sağ), tam menü çekmecede; şerit içeriği örtmez */
  body.app .shell { display: block; padding-right: var(--rail-w); }
  html[data-el="sol"] body.app .shell { padding-right: 0; padding-left: var(--rail-w); }
  .rail.prail { display: flex; position: fixed; z-index: 10; overflow-y: auto; touch-action: pan-y; -webkit-touch-callout: none; user-select: none;
    padding-top: calc(var(--sp-3) + env(safe-area-inset-top)); padding-bottom: calc(var(--sp-3) + env(safe-area-inset-bottom)); }
  html[data-el="sol"] .rail.prail { right: auto; left: 0; border-left: 0; border-right: 1px solid var(--card-bd); }
  .rail.armed { outline: 3px solid var(--primary); outline-offset: -3px; }
  .rail .navback { position: sticky; bottom: 0; flex: none; }
  body.app .side { position: fixed; top: 0; bottom: 0; right: 0; width: min(82vw, 318px); height: auto; z-index: 30; border-right: 0;
    border-left: 1px solid var(--card-bd); transform: translateX(100%); visibility: hidden; transition: transform .18s, visibility .18s;
    padding-top: calc(var(--sp-4) + env(safe-area-inset-top)); padding-bottom: calc(var(--sp-3) + env(safe-area-inset-bottom)); }
  html[data-el="sol"] body.app .side { right: auto; left: 0; border-left: 0; border-right: 1px solid var(--card-bd); transform: translateX(-100%); }
  html.drawer-open body.app .side { transform: none; visibility: visible; }
  html.drawer-open .scrim { display: block; position: fixed; z-index: 20; }
  /* Kapatma düğmesinin ikonu şeridin kenarına bakar; sağ şeritte aynalanır (kart: Geri ile karışmasın) */
  html:not([data-el="sol"]) .side-close .i { transform: scaleX(-1); }
  .side-collapse, .top .navback { display: none; }
  .side-close { display: inline-flex; }
  body.app .side-head { flex-wrap: wrap; padding-right: var(--sp-1); }
  body.app .side-head .side-close { order: 4; margin-top: var(--sp-2); }
  html[data-menu="dar"] body.app .side .lbl { position: static; width: auto; height: auto; clip: auto; }
  html[data-menu="dar"] .side-head .wm, html[data-menu="dar"] .side-head .prod, html[data-menu="dar"] .side-head .grow,
  html[data-menu="dar"] .side-grp > a, html[data-menu="dar"] .side-grp > summary .i-sm { display: revert; }
  html[data-menu="dar"] .side-foot { display: grid; }
  html[data-menu="dar"] .side a, html[data-menu="dar"] .side-grp > summary { justify-content: flex-start; padding: 0 var(--sp-3); }
  html[data-menu="dar"] .side-grp a { padding-left: 42px !important; }
  html[data-menu="dar"] .side-head { justify-content: flex-start; }
}
@media (min-width: 600px) {
  .side-tip { display: none; }
}
@media (max-width: 600px) {
  .top, .page, .legal { padding-left: var(--sp-4); padding-right: var(--sp-4); }
  /* Tema düğmesi başlığın yanında kalır; rozetler alt satıra iner (tek başına satır kaplamasın) */
  .top .badges { order: 2; flex-basis: 100%; }
  /* Adım göstergesi tek satırda: etkin adımın adı görünür, diğerleri yalnız numara */
  .steps { flex-wrap: nowrap; }
  .steps li { flex: 0 0 auto; }
  .steps li.now { flex: 1 1 auto; }
  .steps li:not(.now) { font-size: 0; gap: 0; }
  .steps li:not(.now) .n { font-size: var(--fs-xs); }
  .dropzone { min-height: 160px; }
  .compare { grid-template-columns: 1fr auto; }
  .compare .bar { grid-column: 1 / -1; }
  .big { font-size: 40px; }
}
@media (max-width: 600px) { .focus-exit span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } .focus-exit { padding: 0 var(--sp-2); } }
/* CBAM kurulumu · veri kaynakları (tahta Kurulum4): satır = ad · nasıl ölçülüyor · hesap değerleri · kaldır */
.source-row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: var(--sp-3);
  align-items: start; padding: var(--sp-3) var(--sp-4); border: 1.5px solid var(--field-bd); border-radius: var(--r); background: var(--surface); }
.source-row.wait { border-color: var(--warn); background: var(--warn-soft); }
ul.plain { list-style: none; display: grid; gap: var(--sp-1); }
@media (max-width: 900px) {
  .source-row { grid-template-columns: minmax(0, 1fr) auto; }
  .source-row > .btn { grid-row: 1; grid-column: 2; }
  .source-row > .grow { grid-column: 1; grid-row: 1; }
  .source-row > .field, .source-row > .hint { grid-column: 1 / -1; }
}
/* CBAM kurulumu · cihaz eşleme (tahta Kurulum5, tablet): solda noktalar, sağda seçili nokta; dokunma hedefi 56 px */
.device-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: var(--sp-4); align-items: start; }
.point-row { min-height: 56px; align-items: center; }
.device-layout .btn.lg { min-height: 56px; }
.advanced > summary { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 44px; cursor: pointer; font-weight: var(--fw-semi); }
.advanced[open] > summary .i { transform: rotate(180deg); }
@media (max-width: 900px) { .device-layout { grid-template-columns: minmax(0, 1fr); } }
/* CBAM veri merkezi (tahta VeriMerkezi): ay tablosu yatay kayar, ilk sütun sabit; hücre dokunma hedefi 44 px */
.data-grid { min-width: 720px; }
.data-grid th[scope="row"] { position: sticky; left: 0; z-index: 1; background: var(--surface); text-align: left;
  font-weight: inherit; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--ink); white-space: normal; min-width: 200px; }
.data-grid td { white-space: nowrap; }
.data-grid td.r { padding: 4px; }
.cell-link { display: flex; align-items: center; justify-content: flex-end; gap: 4px; min-height: 44px; padding: 0 8px;
  border-radius: var(--r-sm); color: inherit; text-decoration: none; }
.cell-link:hover { background: var(--surface-2); }
.cell-link:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.entry-form { max-width: 760px; }
.unit-inline { display: none; }
@media (max-width: 600px) {
  /* Telefonda aylar görünsün: ilk sütun dar, birim satır başlığına iner */
  .data-grid { min-width: 0; }
  .data-grid th[scope="row"] { min-width: 128px; max-width: 150px; font-size: 13px; }
  .data-grid .unit-col { display: none; }
  .unit-inline { display: inline; }
}
/* Yalnız ekran okuyucuya (tablo başlığı gibi görünmesi gerekmeyen ad) */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* Seçenek grubu (radyo): fieldset tarayıcı çerçevesi olmadan, legend alan etiketi gibi */
fieldset.field { border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset.field > legend { padding: 0; margin-bottom: 6px; font-size: 13.5px; font-weight: 700; color: var(--label); }
/* Kaydırma kutusu kendi içindeki mutlak konumlu öğenin (.sr-only) kapsayıcısıdır; yoksa öğe sayfayı genişletir */
.scroll { position: relative; }
/* CBAM hesap: süreç kartında kırılım listesi ve motorun hesap ağacı (iç içe details) */
.facts-list { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-1) var(--sp-3); margin: 0; }
.facts-list dt { color: var(--ink-3); }
.facts-list dd { margin: 0; text-align: right; }
ul.trace { list-style: none; margin: 0; padding-left: var(--sp-4); border-left: 1px solid var(--line); display: grid; gap: 2px; }
ul.trace.root { padding-left: 0; border-left: 0; }
.trace summary { cursor: pointer; list-style-position: outside; }
.trace-row { display: inline-flex; gap: var(--sp-3); width: calc(100% - 24px); align-items: baseline; padding: 6px 0; flex-wrap: wrap; }
.trace li > .trace-row { width: 100%; }
.trace summary { list-style: none; }
.trace summary::-webkit-details-marker { display: none; }
.trace summary::before { content: "▸"; display: inline-block; width: 16px; color: var(--ink-3); }
.trace details[open] > summary::before { content: "▾"; }
.trace li:not(:has(details)) > .trace-row { padding-left: 16px; }
/* Diğer emisyon kaynağı ekle (tahta EmisyonEkle1): yöntem kartları, dokunma hedefi büyük */
.method-card { align-items: flex-start; min-height: 88px; }
.method-card .check .i { width: 22px; height: 22px; }
.method-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
/* Sayı hücresi (fatura no, CN, tarih) bölünmez; tablo kendi kutusunda yatay kayar */
.tbl td.num { white-space: nowrap; }
/* Hesap kartı (tahta Hesap): büyük SEE, doğrudan/öncül çubuğu ve noktalar; ağaçta süreç başlığı */
.stat b.big { font-size: 56px; line-height: 1.05; }
.split-bar { display: flex; height: 10px; border-radius: 999px; overflow: hidden; background: var(--surface-2); }
.split-bar .seg.direct { background: var(--primary); }
.split-bar .seg.precursor { flex: 1; background: var(--info); }
.dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.dot.direct { background: var(--primary); }
.dot.precursor { background: var(--info); }
.trace-head { display: flex; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; font-size: 15px; margin: var(--sp-3) 0 var(--sp-1); }
.gap-list > summary { cursor: pointer; }
.tbl tr.late td { background: var(--err-soft); }  /* Uyum: geciken yükümlülük (tahta Uyum) */
ul.plain.flush { padding: 0; margin: 0; }  /* Uyum: kanıt listesi kart kenarına hizalı */
/* Hızlı giriş (tahta Tel_HizliGiris): eldiven ve ocak başı için büyük alan ve düğme */
.quick { max-width: 640px; }
.input.big { font-size: 28px; min-height: 68px; }
.btn.block { width: 100%; min-height: 68px; font-size: 18px; justify-content: center; }
.hint.center { text-align: center; }
.quick-list { display: grid; gap: var(--sp-2); }
.quick-list .opt { align-items: center; text-decoration: none; }
.quick > .badge { justify-self: start; }
.input.tall { min-height: 56px; font-size: 18px; }
/* Karbon (tahta Karbon): aylık iki kapsamlı sütun grafiği */
.carbon-chart { width: 100%; height: auto; max-height: 240px; }
.carbon-chart .scope1 { fill: var(--warn); }
.carbon-chart .scope2 { fill: var(--info); }
.carbon-chart text { font-size: 9px; fill: var(--ink-3); }
.dot.scope1 { background: var(--warn); }
.dot.scope2 { background: var(--info); }
/* Atık depolama (tahta Atik_Depolama): süzgeç, konteyner kartları; yaklaşan sarı, dolmuş kırmızı çerçeve */
.pill-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.pill-tabs a { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); color: inherit; text-decoration: none; font-size: 14px; }
.pill-tabs a.on { background: var(--primary-soft); border-color: var(--primary); font-weight: 600; }
.year-switch { display: inline-flex; gap: 4px; align-items: center; }
.year-switch button { padding: 3px 9px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); color: var(--ink-2); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.year-switch button.on { background: var(--info-soft); border-color: var(--info); color: var(--info-ink); }
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: var(--sp-3); }
.container-card { color: inherit; text-decoration: none; border: 2px solid var(--card-bd); }
.container-card.soon { border-color: var(--warn); }
.container-card.overdue { border-color: var(--err); }
.container-card.on { box-shadow: var(--focus-ring); }
/* Atık etiketi (D-066): yazdırılınca yalnız etiketler, kenar boşluğu dar; etiket bölünmez */
.labels { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--sp-3); }
.waste-label { display: flex; gap: var(--sp-3); justify-content: space-between; border: 2px solid var(--ink); border-radius: var(--r-sm); padding: var(--sp-3); background: var(--surface); color: var(--ink); break-inside: avoid; }
.label-text { display: grid; gap: 4px; align-content: start; }
.label-code { font-size: 28px; }
.label-hazard { font-size: 15px; letter-spacing: .04em; border: 2px solid var(--ink); padding: 2px 6px; justify-self: start; }
.label-qr { display: grid; justify-items: center; gap: 4px; text-align: center; max-width: 140px; }
@media print { .no-print, header.top, footer.legal { display: none !important; } .page, body { background: var(--surface) !important; } .labels { grid-template-columns: repeat(2, 1fr); } }

/* Firma logosu önizlemesi (tesis profili, denetim O2) — belge üst bilgisindeki yuvanın oranı */
.logo-preview { max-width: 160px; max-height: 70px; object-fit: contain; background: var(--surface-2); border-radius: 8px; padding: 6px; }
.page.read-only form[method="post"] { display: none; }
