/* TekneMerkezi Geliştirme Modülü v2.23 */
#tma-enh-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;margin:0 0 16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
#tma-enh-card .tma-enh-head{font-weight:700;margin-bottom:8px;color:#0F172A}
.tma-enh-alert{padding:8px 10px;border-radius:6px;border-left:4px solid;margin:6px 0;font-size:15px}
.tma-enh-alert.danger{background:#FEE2E2;border-color:#EF4444;color:#991B1B}
.tma-enh-alert.warning{background:#FEF3C7;border-color:#F59E0B;color:#92400E}
.tma-enh-alert.info{background:#E4F3F7;border-color:#0EA5E9;color:#075985}
.tma-enh-pred{padding:8px 10px;border-radius:6px;background:#EFF6FF;color:#3730A3;font-size:15px;margin:6px 0}

.tma-enh-ok{color:#166534;font-size:15px}
/* v2.24: hero altına yerleşim */
#tma-enh-card{margin:0 0 14px}
/* v2.26: başlık butonları */
#tma-enh-card .tma-enh-head{display:flex;align-items:center;gap:8px}
.tma-enh-btn{margin-left:auto;background:#EEF1F5;border:1px solid #DAE0E8;border-radius:14px;cursor:pointer;color:#334}
.tma-enh-btn+.tma-enh-btn{margin-left:0}
.tma-enh-btn:hover{background:#E2E8F0}
/* v2.28 — panel sayfasında tema başlık/altlık gizleme (v31'in tam-ekran hedefinin bu temayı kaçırdığı saha kanıtıyla görüldü) */
body.tma-enh-panel > header,
body.tma-enh-panel .site-header,
body.tma-enh-panel #masthead,
body.tma-enh-panel .elementor-location-header,
body.tma-enh-panel [data-elementor-type="header"],
body.tma-enh-panel > footer,
body.tma-enh-panel .site-footer,
body.tma-enh-panel #colophon,
body.tma-enh-panel .elementor-location-footer{display:none !important}
/* Taşma/bindirme emniyeti */
#tma-enh-card{box-sizing:border-box;max-width:100%;overflow-wrap:break-word;position:static;z-index:auto}
#tma-enh-card *{box-sizing:border-box}
@media (max-width:680px){#tma-enh-card{margin:0 0 12px;border-radius:12px;}}
/* Tıklanabilir satırlar */
.tma-enh-link{cursor:pointer;position:relative}
.tma-enh-link:hover{filter:brightness(.97)}
.tma-enh-git{float:right;color:#64748B;font-weight:700}
/* v2.29: mevsimsel bilgi satırı + satır içi buton */
.tma-enh-alert.info{background:#EFF6FF;border-left:3px solid #3B82F6;color:#2C4C7C}
.tma-enh-sezon{margin-left:8px;background:#DBEAFE;border-color:#93C5FD;color:#1E40AF}
.tma-enh-sezon:disabled{opacity:.7;cursor:default}
/* v2.30: seyir katılımcıları */
.tma-enh-chipler{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px}
.tma-enh-chip{background:#F1F5F9;border:1px solid #E2E8F0;border-radius:14px;padding:2px 8px;font-size:15px;cursor:pointer}
.tma-enh-chip:hover{background:#E2E8F0}
.tma-enh-chip-x{color:#64748B;margin-left:2px;cursor:pointer}
.tma-enh-chip-x:hover{color:#DC2626}
.tma-enh-sec{display:inline-block;margin:2px 8px 2px 0;font-size:15px;cursor:pointer}
.tma-enh-ikmal-satir{border-bottom:1px dashed #E2E8F0}
#tma-enh-kisi-panel,#tma-enh-ikmal-panel{margin-top:6px}
/* v2.32: ENH tester paneli */
#tma-enh-tester{background:#fff;border:1px solid #DAE0E8;border-radius:12px;padding:10px 12px;font-size:15px;margin-top:10px;max-height:340px;overflow:auto}
#tma-enh-tester .tp{color:#1D6B3C}
#tma-enh-tester .tf{color:#DC2626;font-weight:700}
#tma-enh-tester i{color:#64748B;font-weight:400}
/* v2.37: topluluk vitrini */
.tma-enh-akis-satir{display:block;padding:8px 2px;border-bottom:1px dashed #E7EDF6;font-size:15px;color:var(--ink,#22313F);text-decoration:none}
.tma-enh-akis-satir span{color:#64748B}
.tma-enh-akis-satir:hover{background:#F8FAFD}
.tma-enh-akis-cta{margin-top:10px}
/* v2.38: tester kapatma */
.tma-enh-t-kapat{position:absolute;top:8px;right:8px;background:#F1F5F9;border:1px solid #E2E8F0;border-radius:6px;width:26px;height:26px;cursor:pointer;color:#475569;font-size:15px;line-height:1;z-index:5}
.tma-enh-t-kapat:hover{background:#FEE2E2;color:#991B1B}
#tma-enh-tester{position:relative}
/* v2.39: taşınan topluluk kartları + rozet katmanları */
.tma-enh-topluluk{display:block!important;margin-bottom:16px}
#tbHeroRuzgarRozet{z-index:4}#tbSeriRozeti{position:relative;z-index:3}
/* ── v2.40 MOBİL ONARIM: hero sıkışması + rüzgar şeridi çökmesi (≤680px) ── */
@media(max-width:680px){/* Hero: sağlık kartı metin sütununu eziyordu → mutlak sağ-alta al, metin tam genişlik */
	/* v2.43: hero düzeni artık grid bloğunda */
	.tb-hero h1{font-size:20px!important;line-height:1.2;word-break:normal!important}
.tb-hero-eyebrow{white-space:nowrap;max-width:calc(100% - 130px);overflow:hidden;text-overflow:ellipsis}
.tb-hero p{max-width:calc(100% - 20px)}
/* Rüzgar şeridi: günler tek dar sütuna çöküyordu → 5'li yatay ızgara, gerekirse kaydır */
	#tb-ruzgar{display:block!important}
/* v811: rüzgâr ızgara kuralları kaldırıldı — tek düzen panel-bugun.php v811 satır düzeni */
}
/* ── v2.43 HERO GRID DÜZENİ (eski mutlak-konum kuralları kaldırıldı) ── */
.tb-hero.tma-hero-duzen{display:grid!important;grid-template-columns:minmax(0,1fr) auto;
	grid-template-areas:"eyebrow saglik" "baslik saglik" "alt saglik" "rozet saglik";
	align-items:end;gap:4px 16px;position:relative;padding:20px 24px!important;overflow:hidden}
.tma-hero-duzen #tbHeroEyebrow{grid-area:eyebrow;justify-self:start;align-self:start}
.tma-hero-duzen h1{grid-area:baslik;min-width:0;white-space:normal;word-break:normal!important}
.tma-hero-duzen #tbHeroAltMetin{grid-area:alt;justify-self:start}
#tmaHeroRozetSatiri{grid-area:rozet;position:static!important;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;min-width:0}
#tmaHeroRozetSatiri > *:not(details):not(details *){position:static!important;transform:none!important;margin:0!important;max-width:100%!important;
	background:rgba(13,27,42,.62)!important;color:#fff!important;border-radius:999px;padding:8px 14px;font-size:15px;line-height:1.3;backdrop-filter:blur(4px);box-shadow:0 2px 8px rgba(0,0,0,.18)}
/* v400: joker beyaz zorlamaya istisna. Rozet şeridi koyu zeminlidir ve
   metni beyaz olmalı; ama içine ileride beyaz zeminli bir kutu (açılır
   ayrıntı, bilgi kartı) konursa metin görünmez olur — Miço kartında tam bu
   oldu ve iki turumu aldı. İstisna şimdiden konuyor. */
#tmaHeroRozetSatiri > * *:not(details):not(details *){color:#fff!important}
.tma-hero-duzen #tbHeroSaglikGosterge{grid-area:saglik;position:static!important;transform:none!important;align-self:center;justify-self:end;margin:0!important}
@media(max-width:680px){
	.tb-hero.tma-hero-duzen{grid-template-columns:minmax(0,1fr);grid-template-areas:"eyebrow" "baslik" "alt" "saglik" "rozet";
		padding:16px!important;min-height:0!important;gap:8px;}

/* v175: ölü kural kaldırıldı — aynı kırılımda 24px kuralı zaten kazanıyordu */
	/* Rüzgar kartı: etiket üste, gün kartları alta tam genişlik + yatay kaydırma */
}
/* ── v2.41 HEADER EMNİYET KEMERİ (izole() JS'ine ek CSS katmanı) ── */
body.tma-enh-panel .site-header,body.tma-enh-panel #masthead,body.tma-enh-panel #site-header,
body.tma-enh-panel .main-header,body.tma-enh-panel .header-wrap,body.tma-enh-panel .tm-header,
body.tma-enh-panel header.wp-block-template-part,body.tma-enh-panel .wp-site-blocks>header,
body.tma-enh-panel #tm-site-header,body.tma-enh-panel .theme-header{display:none!important}
body.tma-enh-panel{margin-top:0!important;padding-top:0!important}
html body.tma-enh-panel #page,html body.tma-enh-panel .site,html body.tma-enh-panel #content{margin-top:0!important;padding-top:0!important}
/* ── v2.46 GÜNÜ KAPAT + BİLDİRİM MERCEĞİ ── */
#tma-bugun-ne-var{margin:10px 0 4px}
.tma-bnv-baslik{font-size:15px;font-weight:700;color:var(--ink-soft,#64748B);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}
.tma-bnv-satir{display:flex;align-items:center;gap:8px;margin-bottom:6px;background:#EFF6FF;border:1px solid #DBEAFE;border-radius:12px;color:var(--ink,#22313F);cursor:pointer;transition:background .15s}
.tma-bnv-satir:hover{background:#DBEAFE}
.tma-bnv-satir span:first-child{font-size:16px}
.tma-bnv-ok{margin-left:auto;color:#3B82F6;font-weight:700;font-size:18px}
#tma-gunu-kapat-sar{margin-top:12px;padding-top:12px;border-top:1px dashed #E2E8F0}
.tma-gk-ac{width:100%;background:var(--sea,#2E7CF6)!important;color:#fff!important;padding:12px!important;border-radius:12px!important;font-weight:700;font-size:15px;border:none;cursor:pointer}
.tma-gk-ac:hover{filter:brightness(1.06)}
#tma-gunu-kapat-form{margin-top:10px;padding:12px;background:#F8FAFD;border-radius:12px}
.tma-gk-satir{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tma-gk-satir label{flex-shrink:0;color:var(--ink-soft,#64748B)}
.tma-gk-satir input{flex:1;border:1px solid #DAE0E8;border-radius:10px;min-width:0}
.tma-gk-satir input:focus{outline:none;border-color:var(--sea,#2E7CF6)}
.tma-gk-gonder{width:100%;background:#166534!important;color:#fff!important;padding:12px!important;border-radius:12px!important;font-weight:700;font-size:15px;border:none;cursor:pointer;margin-top:4px}
.tma-gk-gonder:hover{filter:brightness(1.06)}
.tma-gk-gonder:disabled{opacity:.6;cursor:default}
#tmaGkSonuc{margin-top:8px;text-align:center}
.tma-gk-ok{color:#166534;font-weight:600}
.tma-gk-hata{color:#DC2626}
@media(max-width:680px){.tma-gk-satir{flex-direction:column;align-items:stretch;gap:4px;}.tma-gk-satir label{width:auto}}
/* ── v2.47 ÖRÜNTÜ + ZAMAN TÜNELİ ── */
#tma-orutu{margin:10px 0}
.tma-orutu-baslik{font-size:15px;font-weight:700;color:var(--ink-soft,#64748B);text-transform:uppercase;letter-spacing:.3px;margin-bottom:6px}
.tma-orutu-satir{display:flex;gap:10px;align-items:flex-start;margin-bottom:6px;background:linear-gradient(135deg,#EFF6FF,#EFF6FF);border:1px solid #DBEAFE;border-radius:12px}
.tma-orutu-satir[data-sefer]{cursor:pointer}
.tma-orutu-satir[data-sefer]:hover{background:#DBEAFE}
.tma-orutu-ic{font-size:16px;flex-shrink:0}
.tma-orutu-metin{color:var(--ink-soft,#64748B)}
#tma-zaman-tuneli-sar{margin-top:12px;padding-top:12px;border-top:1px dashed #E2E8F0}
.tma-btn-genis{width:100%;background:#F1F5F9!important;color:var(--ink,#22313F)!important;border-radius:12px!important;font-weight:600;border:1px solid #E2E8F0;cursor:pointer}
.tma-btn-genis:hover{background:#E2E8F0!important}
#tma-zaman-tuneli{margin-top:10px;max-height:420px;overflow-y:auto}
.tma-zt-ay{font-weight:800;color:var(--sea,#2E7CF6);text-transform:uppercase;letter-spacing:.4px;margin:12px 0 6px;position:sticky;top:0;background:#fff;padding:2px 0}
.tma-zt-olay{display:flex;gap:10px;align-items:baseline;border-bottom:1px solid #F1F5F9}
.tma-zt-gun{flex-shrink:0;text-align:center;font-weight:700;color:#64748B}
.tma-zt-ic{flex-shrink:0}
.tma-zt-metin{flex:1;min-width:0;color:var(--ink,#22313F)}
.tma-zt-metin span{color:#64748B}
.tma-zt-seyir{background:#EFF6FF}
.tma-zt-olay.tma-zt-seyir{border-radius:6px;padding:6px 8px;margin-bottom:2px;border-bottom:none}
/* ── v2.49 DONANIM ŞERİDİ (referans 8'li metrik) ── */
.tma-donanim{position:relative;display:grid;grid-template-columns:repeat(8,1fr);gap:8px;margin:0 0 16px;padding:16px;background:#fff;border:1px solid rgba(216,223,220,.6);border-radius:14px;box-shadow:0 2px 8px -4px rgba(11,34,47,.08)}
.tma-dn-hucre{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}
.tma-dn-ic{font-size:18px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--sea-soft,#EAF2FB);margin-bottom:4px}
.tma-dn-deger{font-family:'IBM Plex Mono',ui-monospace,monospace;font-weight:700;color:var(--marine-deep,#0F2438);line-height:1.1;white-space:nowrap}
.tma-dn-etiket{color:var(--ink-soft,#64748B);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tma-dn-bos{color:#64748B;font-weight:400}
.tma-dn-duzenle{position:absolute;top:8px;right:8px;width:26px;height:26px;border-radius:6px;border:1px solid #E2E8F0;background:#F8FAFC;cursor:pointer;font-size:15px;color:#64748B;line-height:1}
.tma-dn-duzenle:hover{background:#EAF2FB;color:var(--sea,#2E7CF6)}
.tma-dn-form{margin:-8px 0 16px;padding:14px;background:#F8FAFD;border:1px solid #E2E8F0;border-radius:14px}
.tma-dn-form-baslik{font-size:15px;font-weight:700;color:var(--ink,#22313F);margin-bottom:10px}
.tma-dn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.tma-dn-alan{display:flex;flex-direction:column;gap:4px;font-size:15px;color:var(--ink-soft,#64748B)}
.tma-dn-alan input{padding:8px 10px;border:1px solid #DAE0E8;border-radius:10px;font-size:16px}
.tma-dn-alan input:focus{outline:none;border-color:var(--sea,#2E7CF6)}
.tma-dn-form-alt{display:flex;align-items:center;gap:8px;margin-top:12px}
.tma-dn-kaydet{background:#166534!important;color:#fff!important}
/* Tablet: 4 sütun */
@media(max-width:900px){.tma-donanim{grid-template-columns:repeat(4,1fr)}}
/* Mobil: 2 sütun */
@media(max-width:520px){.tma-donanim{grid-template-columns:repeat(2,1fr);gap:10px;padding:14px}.tma-dn-deger{font-size:16px}}
/* ── v2.50 HERO REFERANS HİZASI (tasa.png) — grid yerinde, görsel zenginleştirme ── */
.tb-hero.tma-hero-duzen{padding:24px 28px!important;gap:6px 20px;min-height:230px;align-items:start}
.tma-hero-duzen #tbHeroEyebrow{font-size:15px;opacity:.9;letter-spacing:.02em}
.tma-hero-duzen h1{font-size:28px!important;font-weight:800!important;letter-spacing:-.01em;margin:8px 0 2px!important}
.tma-hero-duzen h1 #tbHeroBaslik{line-height:1.15}
.tma-hero-duzen #tbHeroAltMetin{margin-top:10px!important;max-width:520px}
/* Sağlık göstergesi: referanstaki gibi büyük, belirgin, sağda dikey-ortalı */
.tma-hero-duzen #tbHeroSaglikGosterge{align-self:center;padding:18px 20px!important;border-radius:16px!important;box-shadow:0 8px 24px rgba(11,34,47,.16)!important}
.tma-hero-duzen #tbHeroSaglikDaire{width:104px!important;height:104px!important;position:relative}
.tma-hero-duzen #tbHeroSaglikDaire::before{content:'';position:absolute;inset:9px;background:#fff;border-radius:50%;z-index:0}
.tma-hero-duzen #tbHeroSaglikDeger{font-size:28px!important;position:relative;z-index:1}
.tma-hero-duzen #tbHeroSaglikGosterge > div:first-child{font-size:15px!important;margin-bottom:8px!important}
.tma-hero-duzen #tbHeroSkorTrend{margin-top:8px!important;font-size:15px!important}
/* Rozet satırı: referanstaki alt konumda, hap görünümü korunur */
.tma-hero-duzen #tmaHeroRozetSatiri{margin-top:12px}
/* Tablet: sağlık göstergesi biraz küçülür ama sağda kalır */
@media(max-width:900px){.tma-hero-duzen h1{font-size:28px!important}
.tma-hero-duzen #tbHeroSaglikDaire{width:88px!important;height:88px!important}
.tma-hero-duzen #tbHeroSaglikDeger{font-size:24px!important}
}
/* Mobil: sağlık göstergesi başlık altına, ortalı, tam görünür */
@media(max-width:680px){.tb-hero.tma-hero-duzen{padding:18px 16px!important;min-height:0}
.tma-hero-duzen h1{font-size:24px!important;line-height:1.2}
.tma-hero-duzen #tbHeroSaglikGosterge{justify-self:center!important;margin:10px auto 0!important}
.tma-hero-duzen #tbHeroAltMetin{max-width:100%}
}

/* ── ONBOARDING SİHİRBAZI (yeni kaptan karşılama) ── */
.tma-onb{background:linear-gradient(135deg,#EFF6FF,#EFF6FF);border:1px solid #C6E6EE;border-radius:14px;padding:18px 20px;margin:0 0 18px;box-shadow:0 4px 16px rgba(59,130,246,.12)}
.tma-onb-baslik{display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:800;color:#2C4C7C;margin-bottom:6px}
.tma-onb-kapat{background:transparent;border:none;font-size:18px;color:#64748B;cursor:pointer;padding:2px 8px;border-radius:6px;line-height:1}
.tma-onb-kapat:hover{background:rgba(0,0,0,.06)}
.tma-onb-alt{font-size:15px;color:#33475C;line-height:1.5;margin-bottom:14px}
.tma-onb-adimlar{display:flex;flex-direction:column;gap:10px}
.tma-onb-adim{display:flex;align-items:flex-start;gap:12px;background:#fff;border-radius:12px;padding:12px 14px;border:1px solid #E2E8F0;transition:all .15s}
.tma-onb-adim[data-hedef]{cursor:pointer}
.tma-onb-adim[data-hedef]:hover{border-color:#3B82F6;box-shadow:0 2px 8px rgba(59,130,246,.15);transform:translateY(-1px)}
.tma-onb-no{flex-shrink:0;width:24px;height:24px;background:#1E40AF;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800}
.tma-onb-ikon{flex-shrink:0;font-size:20px;line-height:1.2}
.tma-onb-metin{flex:1;min-width:0}
.tma-onb-metin strong{display:block;font-size:15px;color:#1F2937;margin-bottom:4px}
.tma-onb-metin span{color:#64748B}
.tma-onb-ok{flex-shrink:0;font-size:20px;color:#3B82F6;font-weight:700;align-self:center}
.tma-onb-birdaha{display:flex;align-items:center;gap:8px;font-size:15px;color:#64748B;margin-top:14px;cursor:pointer;user-select:none}
.tma-onb-birdaha input{width:15px;height:15px;cursor:pointer;accent-color:#3B82F6}
@media(max-width:520px){.tma-onb{padding:16px;}.tma-onb-adim{padding:10px 12px;gap:10px}.tma-onb-metin span{font-size:15px}}


/* ===================== v65 GÜNLÜK RİTİM ===================== */
#tma-ritim{background:linear-gradient(135deg,#0B2A4A,#0E3A66);border-radius:14px;padding:14px 16px;margin:0 0 12px;color:#EAF2FB}
.tma-rt-ust{justify-content:space-between}
.tma-rt-seri{font-weight:800;letter-spacing:.2px}
/* v315: rozet .tma-rt-seri iÇİNDE yaşıyor; üstteki #tma-ritim span ve
   .tma-rt-seri!important kuralları metni açık sarıya çeviriyordu (1.54 —
   koyu-kart varsayımının 6. tekrarı). Zemin+metin tek blokta, tam özgüllükle. */
#tma-ritim .tma-rt-rekor, .tma-rt-rekor{background:#F59E0B;color:#1F2937!important;border-radius:999px;padding:2px 8px;margin-left:6px;font-weight:700;vertical-align:middle}
.tma-rt-hafta{display:flex;gap:8px}
.tma-rt-gun{display:flex;flex-direction:column;align-items:center;gap:4px}

.tma-rt-nokta{width:12px;height:12px;border-radius:50%;background:#2C4C7C;display:block;transition:background .3s}
.tma-rt-nokta.aktif{background:#34D399}
.tma-rt-nokta.bugun{box-shadow:0 0 0 2px #F59E0B}
.tma-rt-nokta.gelecek{opacity:.35}
.tma-rt-mesaj{margin-top:10px;color:#CBD9EC;line-height:1.45}
.tma-rt-taze{margin-top:6px;color:#FCD34D}
.tma-rt-aksiyon{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
#tma-ritim .tma-rt-btn{background:#F59E0B;color:#1F2937;border:none;font-weight:700;min-height:44px;padding:8px 14px;border-radius:10px;cursor:pointer}
#tma-ritim .tma-rt-btn2{background:rgba(255,255,255,.14)}
#tma-ritim .tma-rt-btn:active{transform:scale(.97)}
.tma-rt-yazi{display:block;margin-top:10px;text-decoration:none}
.tma-rt-yazi u{text-underline-offset:2px}

/* ================ v65 CİHAZ SAĞLAMLAŞTIRMA ================ */
/* Taşma bekçileri: hiçbir enh bileşeni yatay kaydırma yaratamaz */
#tma-enh-card,#tma-ritim{max-width:100%;box-sizing:border-box}
#tma-enh-card *,#tma-ritim *{box-sizing:border-box;min-width:0}
#tma-enh-card,#tma-ritim{overflow-wrap:break-word}
/* Dokunma hedefleri: mobilde tüm enh butonları ≥44px (parmak standardı) */
@media (max-width:680px){#tma-enh-card .tma-enh-btn,#tma-ritim .tma-rt-btn{min-height:44px}
#tma-gunu-kapat-form input,.tma-dn-form input{font-size:16px}/* iOS odak-zoom önleme */
  .tma-rt-aksiyon .tma-rt-btn{flex:1 1 45%}
}
/* Çok dar ekran (SE / küçük Android) */
@media (max-width:380px){#tma-ritim{padding:12px}
.tma-rt-seri{font-size:15px}
.tma-rt-hafta{gap:4px}
.tma-rt-nokta{width:10px;height:10px}
.tma-rt-gun b{font-size:15px}
}
/* Yatay telefon: aksiyonlar tek satır kalsın */
@media (max-height:480px) and (orientation:landscape){#tma-ritim{padding:10px 14px}
.tma-rt-mesaj{margin-top:6px}
}
/* Hareket azaltma tercihi olan kullanıcı */
@media (prefers-reduced-motion:reduce){.tma-rt-nokta,#tma-ritim .tma-rt-btn{transition:none}
}


/* ===================== v66 KİŞİ & MEKAN DEFTERİ ===================== */
.tma-df-kolonlar{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
@media (max-width:680px){.tma-df-kolonlar{grid-template-columns:1fr}}
.tma-df-baslik{font-weight:800;margin-bottom:6px;color:#0B2A4A}
.tma-df-satir{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:#F1F5F9;margin-bottom:6px}
.tma-df-mekan{cursor:pointer}
.tma-df-mekan:active{background:#E2E8F0}
.tma-df-ad{font-weight:700;color:#0F172A}
.tma-df-detay{color:#475569}
.tma-df-ozlem{background:#FEF3C7;color:#92400E;border-radius:999px;padding:1px 8px;font-weight:600}

/* v67 menzil altyazısı */
.tma-dn-alt{display:block;font-size:15px;font-weight:600;color:#64748B;margin-top:1px}

/* v68 kesir kısayolları */
.tma-dn-frak{display:flex;gap:4px;margin:-2px 0 4px}
.tma-dn-frak-btn{flex:1;font-size:15px;font-weight:700;padding:4px 0;border:1px solid #CBD5E1;background:#F8FAFC;border-radius:6px;cursor:pointer;color:#0B2A4A}
.tma-dn-frak-btn:active{background:#E2E8F0}
@media (max-width:680px){.tma-dn-frak-btn{min-height:34px}}

/* v71 belge arşivi arama */
.tma-ba-satir{display:flex;gap:8px;margin-top:10px}
.tma-ba-satir input{flex:1;padding:10px 12px;border:1px solid #CBD5E1;border-radius:10px}
.tma-ba-durum{color:#2563EB;margin-top:4px;min-height:14px}
.tma-ba-kart{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:#F1F5F9;margin-top:6px;text-decoration:none}
.tma-ba-kart:active{background:#E2E8F0}
.tma-ba-rozet{background:#EAF4EC;color:#166534;border-radius:999px;padding:1px 8px;font-weight:600}
@media (max-width:680px){.tma-ba-satir input{font-size:16px}}

/* ═══════════════ v72 GÖZLÜK MODU (GOZLUK MODU) ═══════════════
   Kitle: 40+, görme zorluğu, teknolojiyle mesafeli.
   İlkeler: hiçbir metin <13px; ikincil gri en az #475569 (7:1 kontrast);
   dokunma hedefleri ≥34px (mobil 44px); tek birincil eylem; belirgin odak.
   Ayrı katman: mevcut kuralları tek tek değiştirmek yerine sonda geçersiz kılar. */

/* — 1) TİPOGRAFİ TABANI — */
#tma-enh-card,#tma-ritim,.tma-donanim,#tma-defter,#tma-belge-ara,#tma-zaman-tuneli{line-height:1.55}
#tma-enh-card .tma-enh-head{font-size:16px}
.tma-enh-alert,.tma-enh-pred,.tma-enh-ok{font-size:15px}
.tma-enh-conf{font-size:15px;opacity:.85}
.tma-enh-btn{font-size:15px;padding:8px 14px}
.tma-enh-chip,.tma-enh-sec{font-size:15px}
.tma-enh-ikmal-satir{font-size:15px;padding:4px 0}
.tma-enh-akis-satir{font-size:15px;padding:10px 2px}
.tma-enh-akis-satir span{font-size:15px}
.tma-bnv-baslik,.tma-orutu-baslik{font-size:15px}
.tma-bnv-satir{font-size:15px;padding:12px 14px}
.tma-orutu-satir{font-size:15px;padding:12px 14px}
.tma-btn-genis{font-size:15px;padding:14px!important}
.tma-zt-ay{font-size:15px}
.tma-zt-olay{font-size:15px;padding:8px 0}
.tma-zt-gun{font-size:15px;width:26px}
.tma-zt-metin span{font-size:15px}
.tma-gk-satir label{font-size:15px;width:120px}
.tma-gk-satir input{font-size:16px;padding:10px 12px}
#tmaGkSonuc{font-size:15px}
.tma-dn-etiket{font-size:15px}
.tma-dn-deger{font-size:20px}
.tma-dn-alt{font-size:15px}
.tma-df-baslik{font-size:15px}
.tma-df-ad{font-size:15px}
.tma-df-detay{font-size:15px}
.tma-df-ozlem{font-size:15px}
.tma-rt-seri{font-size:18px}
.tma-rt-mesaj{font-size:15px}
.tma-rt-taze{font-size:15px}
.tma-rt-gun b{font-size:15px}
.tma-rt-yazi{font-size:15px}
.tma-rt-rekor{font-size:15px}
.tma-ba-satir input{font-size:16px}
.tma-ba-durum{font-size:15px}
.tma-ba-rozet{font-size:15px}
.tma-onb-metin span{font-size:15px;line-height:1.5}

/* — 2) KONTRAST: soluk griler koyulaştı — */
.tma-enh-git,.tma-enh-chip-x,.tma-zt-gun,.tma-zt-metin span{color:#64748B}
.tma-enh-akis-satir span,.tma-dn-etiket,.tma-df-detay,.tma-gk-satir label,.tma-bnv-baslik,.tma-orutu-baslik,.tma-onb-metin span{color:#475569}
.tma-dn-alt{color:#475569}
#tma-ritim .tma-rt-gun b{color:#C7D6E8}

.tma-rt-yazi{color:#BBD2E8}
.tma-rt-yazi u{color:#FFFFFF}

/* — 3) DOKUNMA HEDEFLERİ: minik butonlar büyüdü — */
.tma-dn-duzenle,.tma-enh-t-kapat,.tma-onb-kapat{width:34px;height:34px;font-size:15px}
@media (max-width:680px){
  .tma-dn-duzenle,.tma-enh-t-kapat{width:42px;height:42px;font-size:16px}
.tma-enh-btn{min-height:46px;font-size:15px}
.tma-btn-genis{min-height:50px}
}

/* — 4) HİYERARŞİ: tek birincil eylem = Günü Kapat — */
.tma-birincil{background:#F59E0B!important;color:#1F2937!important;border:none!important;font-weight:800;box-shadow:0 2px 8px rgba(245,158,11,.35)}
.tma-birincil:active{transform:scale(.98)}

/* — 5) ODAK GÖRÜNÜRLÜĞÜ: nerede olduğunu her zaman gör — */
#tma-enh-card button:focus-visible,#tma-ritim button:focus-visible,
#tma-enh-card input:focus-visible,#tma-belge-ara input:focus-visible{outline:3px solid #2563EB;outline-offset:2px;border-radius:10px}
#tma-enh-card input:focus,#tma-belge-ara input:focus{border-color:#2563EB}

/* — 6) NEFES: satırlar arası boşluk arttı — */
.tma-enh-alert,.tma-enh-pred{padding:12px 14px;margin:8px 0}
.tma-df-satir,.tma-ba-kart{padding:10px 12px;margin-bottom:8px}
#tma-ritim{padding:16px 18px}

/* ═══ v73 İSTATİSTİK ÇUBUKLARI (gözlük modu uyumlu) ═══ */
#tma-grafik{margin-top:12px;padding:14px 14px;background:#F8FAFC;border:1px solid #E2E8F0;border-radius:12px}
.tma-gr-yil{font-size:15px;color:#0F172A;margin-bottom:10px}
.tma-gr-cip{font-size:15px;font-weight:700;border-radius:999px;padding:4px 10px;margin-left:6px}
.tma-gr-cip.iyi{background:#EAF4EC;color:#166534}
.tma-gr-cip.geri{background:#FEF3C7;color:#92400E}
.tma-gr-blok{margin-top:10px}
.tma-gr-blok-ad{font-size:15px;font-weight:700;color:#475569;margin-bottom:6px}
.tma-gr-cubuklar{display:flex;align-items:flex-end;gap:8px;height:86px}
.tma-gr-sutun{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.tma-gr-deger{font-size:15px;font-weight:700;color:#0B2A4A;line-height:1;margin-bottom:4px;font-variant-numeric:tabular-nums}
.tma-gr-bar{width:100%;max-width:38px;background:linear-gradient(180deg,#3B82F6,#2563EB);border-radius:6px 6px 3px 3px;min-height:5px}
.tma-gr-etiket{font-size:15px;font-weight:600;color:#475569;margin-top:4px}
.tma-gr-ozet{font-size:15px;color:#0F172A;margin-top:10px;padding:8px 12px;background:#EFF6FF;border:1px solid #DBEAFE;border-radius:10px}
@media (max-width:420px){.tma-gr-cubuklar{gap:4px}.tma-gr-deger{font-size:15px}.tma-gr-bar{max-width:30px}}

/* ═══ v74 REHBER + dokunma davranışı ═══ */
#tma-yardim{position:fixed;inset:0;background:rgba(11,22,40,.55);z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.tma-yd-kutu{background:#fff;border-radius:14px;max-width:520px;width:100%;max-height:86vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.tma-yd-baslik{display:flex;align-items:center;justify-content:space-between;font-size:18px;font-weight:800;color:#0F172A;padding:16px 18px;border-bottom:1px solid #E2E8F0}
.tma-yd-kapat{background:#F1F5F9;border:1px solid #CBD5E1;border-radius:10px;padding:10px 16px;font-size:15px;font-weight:700;color:#0F172A;cursor:pointer;min-height:44px}
.tma-yd-govde{padding:16px 18px;overflow-y:auto;font-size:15px;line-height:1.6;color:#1F2937}
.tma-yd-bolum{margin-bottom:16px}
.tma-yd-bolum ol{margin:8px 0 8px 20px;padding:0}
.tma-yd-bolum li{margin-bottom:6px}
.tma-yd-turuncu{background:#F59E0B;color:#1F2937;border-radius:6px;padding:2px 8px;font-weight:700;white-space:nowrap}
.tma-yd-not{font-size:15px;color:#475569;border-top:1px dashed #E2E8F0;padding-top:10px;margin-bottom:0}
.tma-yardim-btn{white-space:nowrap}
/* çift-dokunuş yakınlaştırma gecikmesi ve mavi parlama kalksın — yaşlı parmak dostu */
#tma-enh-card button,#tma-ritim button,#tma-yardim button,.tma-dn-frak-btn,.tma-dn-duzenle{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
@media (max-width:420px){.tma-yd-govde{font-size:15px}.tma-yd-baslik{font-size:16px}}

/* ═══ v77 MİÇO ═══ */
#tma-mico{background:#FAF3E7;border:1px solid #FFE9C2;border-radius:14px;padding:14px 16px;margin:10px 0 12px}
.tma-mc-ust{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tma-mc-kim{font-size:16px;font-weight:800;color:#92400E}
.tma-mc-noktalar{display:flex;gap:6px}
.tma-mc-nokta{width:26px;height:26px;border-radius:50%;background:#FFE9C2;color:#92400E;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tma-mc-nokta.tamam{background:#046C4E;color:#FFFFFF}
.tma-mc-konusu{margin-top:10px;font-size:15px;line-height:1.55;color:#3A2A00}
.tma-mc-alt{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.tma-mc-ugur{background:none;border:none;font-size:15px;color:#92400E;text-decoration:underline;cursor:pointer;padding:8px 4px}
@media (max-width:420px){.tma-mc-nokta{width:23px;height:23px;font-size:15px}}

/* v79 anı satırı */
.tma-rt-ani{margin-top:8px;font-size:15px;color:#DCE9F8;background:rgba(255,255,255,.08);border-radius:10px;padding:8px 12px;line-height:1.5}
.tma-rt-ani b{color:#FFFFFF}

/* v80 sesle jurnal */
.tma-gk-mik{background:#0E3A66;color:#fff;font-weight:700}
.tma-gk-mik:active{transform:scale(.97)}

/* ═══════════ v81 DENİZCİ BÖLÜM BAŞLIĞI DİLİ (BOLUM BASLIK) ═══════════
   Tek kural her yerde: sol lacivert şerit + belirgin ikon + koyu başlık.
   Aç-kapa butonları da aynı dile girer + sağda ▾ yön oku. */
.tma-orutu-baslik,.tma-bnv-baslik,.tma-df-baslik,.tma-gr-blok-ad{border-left:4px solid #0B2A4A;padding-left:10px;color:#0B2A4A;
  text-transform:none;letter-spacing:.2px;font-weight:800}
.tma-orutu-baslik,.tma-bnv-baslik{font-size:15px}
/* aç-kapa satırları = bölüm başlığı görünümü */
#tma-enh-card .tma-btn-genis{display:flex;align-items:center;gap:10px;width:100%;text-align:left;
  background:#F8FAFC;border:1px solid #E2E8F0;border-left:4px solid #0B2A4A;
  border-radius:12px;color:#0B2A4A;font-weight:800;position:relative}
#tma-enh-card .tma-btn-genis::after{content:'▾';margin-left:auto;color:#64748B;font-size:15px}
#tma-enh-card .tma-btn-genis:active{background:#EEF3F9}
/* ilk emoji (ikon) belirgin */
#tma-enh-card .tma-btn-genis::first-letter{font-size:20px}
/* Miço avatarı */
.tma-mc-avatar{border-radius:50%;flex-shrink:0;vertical-align:middle;background:#FDF0E3;box-shadow:0 1px 4px rgba(11,42,74,.18)}
.tma-mc-kim{display:flex;align-items:center;gap:10px}
.tma-yd-baslik{gap:10px}
.tma-yd-baslik .tma-mc-avatar{margin-right:2px}
/* ritim şeridi başlık hizası denizci diliyle uyumlu (koyu zemin — şerit yok, kalın kalır) */

/* ═══════════ v82 ÜÇ KATLI HİYERARŞİ ═══════════
   Kademe dili: KATEGORİ (halat çizgisi+etiket) > BÖLÜM (sol şerit) > içerik. */
.tma-kat-baslik{display:flex;align-items:baseline;gap:8px;
  margin:20px 0 10px;padding-top:12px;
  border-top:2px solid rgba(11,42,74,.14);
  font-size:15px;font-weight:800;color:#0B2A4A;letter-spacing:.4px;text-transform:uppercase}
.tma-kat-baslik span{font-size:15px;font-weight:600;color:#64748B;letter-spacing:0;text-transform:none}
#tma-kb-bugun{border-top:none;margin-top:4px;padding-top:0}
/* Kat 3 içi: sakin, kompakt — arşiv sesi */
#tma-kat-defterim-ic .tma-btn-genis{background:#F8FAFD;border-color:#E7EDF6;font-size:15px;padding:12px 14px!important}
#tma-kat-defterim-ic > div{margin-bottom:8px}
/* Kat 1 canlılığı: ritim ve miço zaten renkli — nefes düzeni */
#tma-mico{margin-bottom:6px}
#tma-ritim{margin-top:0}
@media (max-width:420px){.tma-kat-baslik{font-size:15px;margin-top:18px}}

/* v86 giriş ekranı teşvik satırları — gözlük modu uyumlu */
.tma-tesvik{font-size:15px;line-height:1.5;color:#0B2A4A;background:#EFF6FF;border:1px solid #DBEAFE;border-left:4px solid #0B2A4A;border-radius:10px;padding:10px 14px;margin:0 0 12px}

/* v88 gün seçici — koy telafisi */
.tma-gk-gunsec{display:flex;gap:8px;margin-bottom:10px}
.tma-gk-gunbtn{flex:1;padding:10px 8px;border:1.5px solid #CBD5E1;background:#F8FAFC;border-radius:10px;font-size:15px;font-weight:700;color:#475569;cursor:pointer;min-height:44px}
.tma-gk-gunbtn.secili{background:#0B2A4A;border-color:#0B2A4A;color:#fff}

/* v89 KVKK + oku */
.tma-kvkk{display:flex;gap:10px;align-items:flex-start;font-size:15px;line-height:1.5;color:#33475C;margin:4px 0 12px;cursor:pointer}
.tma-kvkk input{width:20px;height:20px;margin-top:1px;flex-shrink:0}

/* ═══ v93 GÜNEŞ PASI (saha ss bulgusu: koyu zeminde soluk metinler) — İZOLE: yalnız #tma- ═══ */
#tma-ritim{color:#DCE9F8}

#tma-ritim a{color:#FFFFFF;text-decoration-color:#7FA8D9}
#tma-ritim .tma-rt-btn2{color:#EAF2FB;border:1px solid rgba(234,242,251,.5)}
.tma-donanim{min-width:0}
.tma-dn-hucre{min-width:0;overflow:hidden}
.tma-dn-deger{overflow-wrap:break-word;word-break:break-word}

/* ═══ v94 ADIM ADIM ═══ */
.tma-kat-tik{cursor:pointer;user-select:none;position:relative;padding-right:28px}
.tma-kat-tik::after{content:'▸';position:absolute;right:6px;top:12px;color:#64748B;font-size:15px;transition:transform .15s}
.tma-kat-tik.acik::after{content:'▾'}
.tma-kat-tik:active{opacity:.75}
.tma-kat-rozet{margin-left:10px;background:#FEF3C7;color:#92400E;border:1px solid #FDE68A;border-radius:999px;padding:2px 10px;font-size:15px;font-weight:800;letter-spacing:0;text-transform:none}
#tma-kb-bugun{cursor:default;padding-right:0}
#tma-kb-bugun::after{content:''}

/* ═══ v96 PANEL MODU: hero inceltme (referans: kullanıcının beğendiği ENH kartı havası) ═══ */
body.tma-panel-modu .tb-hero{min-height:170px!important;padding:16px 18px!important}
body.tma-panel-modu .tb-hero h1{font-size:24px}



@media (max-width:560px){
  body.tma-panel-modu .tb-hero{min-height:132px!important;padding:12px 14px!important;margin-bottom:10px!important}
body.tma-panel-modu .tb-hero h1{font-size:20px}
body.tma-panel-modu #tbHeroSaglikDaire{width:52px!important;height:52px!important}
body.tma-panel-modu #tbHeroSaglikDeger{font-size:16px!important}
}

/* v97: 'Bugünün bilgisi' bağlantısı koyu zeminde tam beyaz (ss'te soluktu) */
#tma-ritim .tma-rt-yazi, #tma-ritim .tma-rt-yazi u{color:#FFFFFF!important;opacity:1!important}

/* ═══ v98 YAPIŞKAN MENÜ ([stated] "menüye ulaşmak çok zor — eklenti menüsü sticky olsun") ═══
   Masaüstünde MAVİŞ yan menüsü kaydırmada ekranda kalır; uzunsa kendi içinde kayar.
   Mobil dokunulmadı (dar ekranda yapışkan büyük blok ekranı yer). */
@media (min-width:900px){body.tma-panel-modu .tb-side{
    position:sticky;top:12px;align-self:flex-start;
    max-height:calc(100vh - 24px);overflow-y:auto;
    scrollbar-width:thin}
}

/* ═══ v99 HIZLI ERİŞİM (yan menü) ═══ */
#tma-he{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14)}
.tma-he-baslik{font-weight:800;letter-spacing:.9px;margin-bottom:8px}
.tma-he-satir{display:block;width:100%;text-align:left;background:none;border:none;border-radius:10px;cursor:pointer;line-height:1.3}
.tma-he-satir:hover,.tma-he-satir:active{background:rgba(255,255,255,.1);color:#fff}

/* ═══ v101 GRUPLAMA GÖRÜNÜR: kategori sekme çubuğu yapışkan ═══
   [stated] "kartlar seyir/bakım/finans gibi gruplansın, tıklayınca ilgili kartlar açılsın"
   — gruplama zaten bu çubuk; artık kaydırınca da ekranda kalır. */
body.tma-panel-modu #tmaTabbar{position:sticky;top:0;z-index:60;
  background:#F1F5F9;padding:8px 0;margin-top:0;
  box-shadow:0 6px 14px -10px rgba(11,42,74,.25)}
/* ince menüye uyum: hızlı erişim kompakt */
#tma-he{margin-top:12px;padding-top:10px}
.tma-he-satir{font-size:15px;padding:8px 6px}
.tma-he-baslik{font-size:15px}

/* ═══ v102 ŞIKLIK PASI + TAŞMA EMNİYETİ ═══ */
/* butonlar: derinlik + canlı dokunuş */
.tma-enh-btn{transition:transform .12s,box-shadow .12s,background .12s}
.tma-enh-btn:hover{box-shadow:0 4px 12px -5px rgba(11,42,74,.35)}
.tma-enh-btn:active{transform:translateY(1px) scale(.99)}
.tma-birincil{box-shadow:0 5px 16px -6px rgba(245,158,11,.55)}
/* akordeon başlıkları: dokunulabilirlik hissi */
.tma-kat-tik:hover{color:#0E3A66}
.tma-kat-tik:hover::after{color:#0B2A4A}
/* alanlar: odak halkası her yerde tutarlı */
#tma-enh-card input:focus,#tma-enh-card select:focus,#tma-enh-card textarea:focus{outline:3px solid rgba(37,99,235,.45);outline-offset:1px;border-color:#2563EB}
/* TAŞMA EMNİYETİ: uzun kelime/değer hiçbir kutudan taşmaz, binmez */
#tma-enh-card, #tma-enh-card *{overflow-wrap:break-word;word-break:break-word}
#tma-enh-card img{max-width:100%;height:auto}
.tb-widget{overflow-wrap:break-word;word-break:break-word;min-width:0}
#tma-mico,.tma-rt-mesaj,.tma-rt-ani,.tma-kat-baslik{min-width:0}

/* v103: 9 görev noktası dar ekranda sarar */
.tma-mc-noktalar{flex-wrap:wrap;row-gap:6px}

/* ═══ v104 RÜTBE + MÜHÜR ═══ */
.tma-rt-rutbe{margin-left:auto;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:4px 12px;font-size:15px;font-weight:800;color:#FFE9C2;white-space:nowrap}
.tma-rt-rutbe i{font-style:normal;font-weight:600;font-size:15px}
.tma-rt-ust{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#tma-gunu-kapat-sar{position:relative}
.tma-muhur{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-size:28px;pointer-events:none;animation:tmaMuhur 1.15s ease-out forwards;filter:drop-shadow(0 4px 10px rgba(11,42,74,.4))}
@keyframes tmaMuhur{0%{opacity:0;transform:translate(-50%,-50%) scale(2.2) rotate(-14deg)}30%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-58%) scale(.92)}}

/* ═══ v105 BAŞA DÖN ═══ */
#tmaBasaDon{position:fixed;right:16px;bottom:18px;z-index:80;width:48px;height:48px;border-radius:50%;
  border:none;background:#0B2A4A;color:#fff;font-size:20px;cursor:pointer;
  box-shadow:0 6px 18px -6px rgba(11,42,74,.5);opacity:0;pointer-events:none;transform:translateY(8px);
  transition:opacity .2s,transform .2s}
#tmaBasaDon.gorunur{opacity:1;pointer-events:auto;transform:translateY(0)}
#tmaBasaDon:active{transform:scale(.94)}

/* v109 PWA yükle daveti */
.tma-he-yukle{background:rgba(245,158,11,.16);border:1px solid rgba(245,158,11,.45);color:#FFE9C2;font-weight:800}
.tma-he-yukle:hover{background:rgba(245,158,11,.28)}

/* ═══ v110 GİRİŞ MODU: kapıdaki el sıkışma ═══ */
body.tma-giris-modu{background:linear-gradient(180deg,#0B2A4A 0%,#0E3A66 100%)!important;min-height:100vh;height:100dvh}
body.tma-giris-modu #tb-app{min-height:calc(100vh - 24px);display:flex;align-items:center;justify-content:center;padding:12px}
body.tma-giris-modu #tb-login-wrap, body.tma-giris-modu .tm-portal-login,
body.tma-giris-modu form:has(input[name=kullanici]){margin:0 auto!important;width:100%}
/* giriş kartı butonu genel lacivert dile (v97) uyar */
body.tma-giris-modu form:has(input[name=kullanici]) button,
body.tma-giris-modu form:has(input[name=kullanici]) input[type=submit]{background:#0B2A4A!important;box-shadow:0 10px 22px -8px rgba(11,42,74,.65)!important}
body.tma-giris-modu form:has(input[name=kullanici]) input:focus{border-color:#0B2A4A!important;box-shadow:0 0 0 3px rgba(11,42,74,.18)!important}

/* ═══ v111 HERO DAMITMA: dev bant → 72px kimlik şeridi ═══
   [stated] "hero gerçekten gerekli mi? çok kalın; verimli kullanılsın ya da
   kaldırılsın". Karar: KALDIRMA DEĞİL DAMITMA — mükerrer chip'ler gider
   (seri/uyarı→ritimde, hava→Yola Çıkmadan Önce'de), kalan: TEKNE KİMLİĞİ
   (ad·tip, foto ince şerit) + SAĞLIK SKORU (tek evi burası). */
body.tma-panel-modu .tb-hero{min-height:64px!important;max-height:88px;padding:10px 16px!important;
  display:flex;align-items:center;gap:12px;overflow:hidden}
body.tma-panel-modu #tbHeroSeri,
body.tma-panel-modu #tbHeroRuzgarRozet,
body.tma-panel-modu #tbHeroEyebrow,
body.tma-panel-modu #tbHeroNudge,
body.tma-panel-modu #tbHeroGunes,
body.tma-panel-modu #tbHeroYelkenli,
body.tma-panel-modu #tbHeroSkorTrend,
body.tma-panel-modu #tbSeriRozeti,
body.tma-panel-modu #tbHeroDurumCip,
body.tma-panel-modu #tmaHeroRozetSatiri,
body.tma-panel-modu #tbHeroPhotoBtn{display:none!important}
/* v258: alt metin 88px'lik şeritte İKİ SATIRA taşıp kırpılıyordu — tek satır,
   sığmazsa üç nokta. (Kırpılmış yarım cümle, hiç olmayan cümleden kötüdür.) */
body.tma-panel-modu #tbHeroAltMetin{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* v258: şerit DİKEY AKIŞ — başlık + tek satır ipucu ortalanır; 2px'lik
   taşma (alt metnin dibi şeridin dışında kalıyordu) böylece kapanır. */
body.tma-panel-modu .tb-hero{flex-direction:column;justify-content:center;align-items:flex-start;gap:4px}
/* v258 KONTRAST: 88px'lik şeritte temsili sahne (gün batımı gökyüzü) beyaz
   başlığın ARKASINA düşüyor — açık turuncu üzerine beyaz yazı, hem güneş
   altında hem 40+ gözde okunmaz; direk/yelken de yazının içinden geçiyordu.
   Şerit modunda sahne kapanır, zemin tek ton lacivert olur. Sahne, hero
   büyük hâline döndüğünde (panel modu dışı) yine görünür. */
body.tma-panel-modu .tb-hero #tbHeroScene{display:none!important}
body.tma-panel-modu .tb-hero{background:#0B2A4A!important}
/* v258: %200 yakınlaştırmada (195px) başlık iki satıra çıkıp 88px'lik tavana
   çarpıyor, dibi kırpılıyordu. Tavan kaldırıldı; başlık da tek satır +
   üç nokta olduğu için şerit yine şerit kalıyor, ama HİÇBİR ŞEY KESİLMİYOR. */
body.tma-panel-modu .tb-hero{max-height:none!important}
body.tma-panel-modu .tb-hero h1,
body.tma-panel-modu #tbHeroBaslik{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
body.tma-panel-modu .tb-hero > h1,
body.tma-panel-modu .tb-hero > #tbHeroBaslik{margin:0!important}
body.tma-panel-modu #tbHeroBaslik{font-size:18px!important;margin:0!important;line-height:1.2}
body.tma-panel-modu #tbHeroAltMetin{margin:0!important;font-size:15px!important;padding:4px 10px!important}
body.tma-panel-modu #tbHeroSaglikGosterge{margin-left:auto!important;padding:4px 10px!important;border-radius:12px!important}
body.tma-panel-modu #tbHeroSaglikGosterge > div:first-child{display:none!important}
body.tma-panel-modu #tbHeroSaglikDaire{width:40px!important;height:40px!important}
body.tma-panel-modu #tbHeroSaglikDeger{font-size:15px!important}
@media (max-width:560px){
  body.tma-panel-modu .tb-hero{min-height:58px!important;padding:8px 12px!important}
body.tma-panel-modu #tbHeroBaslik{font-size:16px!important}
}

/* ═══ v113 MOBİL ALT ÇUBUK ═══ */
#tmaAltCubuk{display:none}
@media (max-width:900px){
  body.tma-panel-modu #tmaAltCubuk, body.tma-alt-cubuk-var #tmaAltCubuk{position:fixed;left:0;right:0;bottom:0;z-index:90;
    display:flex;justify-content:space-around;align-items:stretch;
    background:#0B2A4A;border-top:1px solid rgba(255,255,255,.14);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -8px 20px -10px rgba(11,42,74,.5)}
body.tma-panel-modu #tmaAltCubuk button{flex:1;background:none;border:none;color:#DCEAF5;
    font-size:18px;line-height:1.15;padding:4px 2px;cursor:pointer;border-radius:10px;
    display:flex;flex-direction:column;align-items:center;gap:2px}
body.tma-panel-modu #tmaAltCubuk button span{font-size:15px;font-weight:700;letter-spacing:.02em}
body.tma-panel-modu #tmaAltCubuk button:active{background:rgba(255,255,255,.12)}
body.tma-panel-modu.tma-alt-cubuklu{padding-bottom:66px}
/* alt çubuk varken yüzen ⬆ mükerrer — mobilde gizle */
  body.tma-panel-modu.tma-alt-cubuklu #tmaBasaDon{display:none!important}
}

/* v117: donanım şeridi kimliği */
.tma-dn-etiket{font-size:15px;font-weight:800;letter-spacing:.09em;color:#64748B;padding:2px 4px 0}

/* ═══ v120 GERÇEK-CİHAZ DÜZELTMELERİ ═══ */
/* v102 taşma zırhı buton METİNLERİNİ bölüyordu ("Kayd et") — butonlar muaf */
#tma-enh-card button, .tb-widget button, .tb-btn, .tma-enh-btn, .tma-he-satir,
#tmaAltCubuk button, .tb-pill-btn, .tb-tab-btn{word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}
/* donanım/gk sonuç mesajları butonların yanına sıkışmasın — kendi satırı */
#tmaDnSonuc, #tmaGkSonuc{display:block;width:100%;margin-top:8px}

/* ═══ v122 MAKSİMUM KONTRAST — güneş + yaşlı göz standardı ═══
   Koyu zeminde ana metin SAF BEYAZ kalın; ikincil en az #DCE6F2. Açık zeminde
   soluk griler koyulaştı. */
.tb-side a, .tb-side .tb-nav-item{color:#FFFFFF!important;font-weight:700!important}
.tb-side{color:#E8F1F9!important}
.tma-he-satir{color:#FFFFFF!important;font-weight:700}
.tma-he-baslik{color:#9FBCD8!important}
.tma-rt-rutbe{color:#FFE9C2!important}
.tma-rt-rutbe i{color:#DCE6F2!important}
#tmaAltCubuk button{color:#FFFFFF!important}
#tmaAltCubuk button span{color:#E8F1F9!important}
body.tma-panel-modu #tbHeroAltMetin{background:rgba(6,22,40,.72)!important;color:#FFFFFF!important}
body.tma-panel-modu #tbHeroBaslik{text-shadow:0 2px 8px rgba(0,0,0,.55)}
/* açık zemin: soluk ikincil metinler koyulaştı */
.tb-widget .tb-stat span:last-child, .tb-fg-baslik, .tma-dn-etiket{color:#3D4A5C!important;font-weight:700}
.tb-widget{color:#1F2937}
/* v150 DÜZELTME: v122'de bu satır ritim mesajını KOYULAŞTIRIYORDU (açık zemin
   varsayımıyla) — oysa ritim şeridi LACİVERT; lacivert üstü lacivert okunmuyordu.
   [stated] "Bugünün jurnali henüz boş… yazısı lacivert üzeri lacivert okunmuyor" */
#tma-enh-card .tma-rt-mesaj{color:#DCE9F8;font-weight:600}

/* v124 tünel arama kutusu */
#tmaZtAra{width:100%;box-sizing:border-box;margin:0 0 10px;padding:10px 12px;border:1.5px solid #C7D6E8;border-radius:10px;font-size:15px;background:#fff;color:#1F2937}
#tmaZtAra:focus{border-color:#0B2A4A;box-shadow:0 0 0 3px rgba(11,42,74,.15);outline:none}

/* ═══ v125 KALICI ALAN ETİKETLERİ ═══ */
.tma-alan-sar{display:flex;flex-direction:column;gap:2px;flex:1 1 140px;min-width:0}
/* v258 ÖLÇÜLDÜ: etiketin iç yüksekliği 15px, kutusu 10px — harflerin altı
   (g, ğ, ş kuyrukları) kesiliyordu. Satır yüksekliği yazıya göre verilir. */
.tma-alan-etiket{font-size:15px;font-weight:800;letter-spacing:.02em;color:#3D4A5C;padding-left:2px;
  line-height:1.45;min-height:1.45em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tma-alan-sar > input, .tma-alan-sar > select, .tma-alan-sar > textarea{flex:0 0 auto!important;width:100%!important;min-width:0!important;box-sizing:border-box}
.tma-ziy-mark:hover{text-decoration:underline}
.tma-ziy-mark[disabled]{opacity:.5}

/* ═══ v126 TEKLİFLER & İŞLER ═══ */
#tma-teklif{padding:4px 2px 8px}
.tma-tk-ust{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
#tmaTkAra{flex:1 1 160px;min-width:0;padding:10px 12px;border:1.5px solid #C7D6E8;border-radius:10px;font-size:15px;background:#fff;color:#1F2937}
#tmaTkAra:focus{border-color:#0B2A4A;box-shadow:0 0 0 3px rgba(11,42,74,.15);outline:none}
.tma-tk-filtre{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tma-tk-fbtn{background:#EAF2FB;border:1.5px solid #C7D6E8;color:#1F2937;font-weight:700;font-size:15px;padding:8px 12px;border-radius:999px;cursor:pointer}
.tma-tk-fbtn.secili{background:#0B2A4A;border-color:#0B2A4A;color:#fff}
.tma-tk-grup{font-size:15px;font-weight:800;letter-spacing:.07em;color:#3D4A5C;margin:12px 2px 6px}
.tma-tk-satir{background:#fff;border:1.5px solid #E3EBF4;border-radius:12px;padding:10px 12px;margin-bottom:8px}
.tma-tk-s-devam,.tma-tk-s-onaylandi{border-color:#0B2A4A;box-shadow:0 6px 16px -10px rgba(11,42,74,.5)}
.tma-tk-s-kapandi,.tma-tk-s-iptal{opacity:.62}
.tma-tk-bas{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:15px;color:#0F2438}
.tma-tk-fiyat{font-weight:800;white-space:nowrap;color:#0B2A4A}
.tma-tk-alt{font-size:15px;color:#3D4A5C;margin-top:4px;font-weight:600}
.tma-tk-not{font-size:15px;color:#5A6B80;margin-top:4px;font-style:italic}
.tma-tk-rozetler{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.tma-tk-durum{font-size:15px;font-weight:800;padding:4px 8px;border-radius:999px;background:#EAF2FB;color:#0B2A4A}
.tma-tk-d-devam{background:#0B2A4A;color:#fff}
.tma-tk-d-onaylandi{background:#1D6B3C;color:#fff}
.tma-tk-d-teslim{background:#065F46;color:#fff}
.tma-tk-ucuz{font-size:15px;font-weight:800;padding:4px 8px;border-radius:999px;background:#FEF3C7;color:#92400E}
.tma-tk-uyari{font-size:15px;font-weight:800;padding:4px 8px;border-radius:999px;background:#FEE2E2;color:#991B1B}
.tma-tk-gun{font-size:15px;font-weight:700;padding:4px 8px;border-radius:999px;background:#F1F5F9;color:#3D4A5C}
.tma-tk-aksiyon{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tma-tk-abtn{background:#EAF2FB;border:1.5px solid #C7D6E8;color:#0B2A4A;font-weight:700;font-size:15px;padding:8px 12px;border-radius:10px;cursor:pointer}
.tma-tk-abtn:hover{background:#DCE9F8}
.tma-tk-onay{background:#0B2A4A;border-color:#0B2A4A;color:#fff}
.tma-tk-abtn[disabled]{opacity:.5}
.tma-tk-form{background:#F7FAFD;border:1.5px solid #E3EBF4;border-radius:12px;padding:10px 12px;margin-bottom:10px}
.tma-tk-formbtn{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
#tmaTkSonuc{font-size:15px;font-weight:700;color:#991B1B}

/* ═══ v127 MOBİL TAŞMA EMNİYET KATMANI ═══ */
.tma-tablo-sar{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  border-radius:10px;box-sizing:border-box}
.tma-tablo-sar > table{min-width:max-content}
@media (max-width:900px){
  body.tma-panel-modu{overflow-x:hidden}
/* medya ve gömülü içerik kutusunu asla aşmaz */
  #tb-app img, #tb-app canvas, #tb-app iframe, #tb-app svg, #tb-app pre{max-width:100%!important;height:auto}
/* satır-yerleşimleri sarabilsin + esnek çocuklar küçülebilsin */
  #tb-app .tb-w-head, #tb-app .tb-quick-form, #tb-app .tb-stats,
  #tma-enh-card .tma-tk-bas, #tma-enh-card .tma-tk-aksiyon, #tma-enh-card .tma-tk-ust,
  #tma-enh-card .tma-gk-satir{flex-wrap:wrap!important}
#tb-app .tb-w-head > *, #tb-app .tb-quick-form > *, #tma-enh-card .tma-tk-bas > *{min-width:0!important}
/* uzun kesintisiz metin (e-posta, URL, model kodu) kutuyu patlatmasın */
  #tb-app .tma-tk-alt, #tb-app .tma-tk-not, #tb-app .tb-w-sub, #tb-app td, #tb-app .tma-df-kisi{overflow-wrap:break-word;word-break:break-word}
/* dar ekranda gereksiz nowrap'ler serbest bırakılır (fiyat ve rozetler hariç) */
  #tb-app .tb-stat span, #tb-app .tb-w-sub{white-space:normal!important}
/* yatay kaydırılabilir şeritler kutuyu taşırmasın */
  #tmaTabbar, .tb-hizli-satir{max-width:100%;box-sizing:border-box}
}

.tma-tk-islendi{font-size:15px;font-weight:800;color:#065F46;padding:8px 4px}
.tma-tk-vazgec{color:#991B1B;border-color:#F3C7C7;background:#FEF2F2}

/* ═══ v131 ERİŞİLEBİLİRLİK + ESKİ CİHAZ UYUMU (denetim bulguları) ═══
   (a) DOKUNMA HEDEFİ: 4 buton sınıfının dikey iç boşluğu 2-7px'ti; 65 yaş titrek
   parmak için asgari 44px yükseklik standardı (WCAG 2.5.5) her düğmeye uygulanır.
   (b) :has() DESTEĞİ OLMAYAN tarayıcılar (eski Safari/Android WebView) için giriş
   modu kuralları body sınıfına da bağlandı — JS zaten bu sınıfı koyuyor. */
@media (max-width:900px){#tb-app button, #tma-enh-card button, .tma-enh-btn, .tma-he-satir, .tb-btn,
  .tb-pill-btn, .tma-tk-abtn, .tma-tk-fbtn, .tb-tab-btn, .tb-hizli-btn{
    min-height:44px!important; display:inline-flex; align-items:center; justify-content:center}
#tmaAltCubuk button{min-height:48px!important}
#tb-app input, #tb-app select, #tb-app textarea{min-height:44px;font-size:16px} /* 16px = iOS zoom yapmaz */
}
/* :has() yedeği — giriş kartı ortalanması ve buton dili */
body.tma-giris-modu form{margin:0 auto!important;width:100%}
body.tma-giris-modu button[type=submit], body.tma-giris-modu input[type=submit]{background:#0B2A4A!important;box-shadow:0 10px 22px -8px rgba(11,42,74,.65)!important;min-height:48px}
body.tma-giris-modu input:focus{border-color:#0B2A4A!important;box-shadow:0 0 0 3px rgba(11,42,74,.18)!important}

/* ═══ v134 GELECEK ŞERİDİ ═══ */
#tma-gelecek{padding:4px 2px 8px}
.tma-gl-olay{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #E3EBF4;border-radius:12px;padding:10px 12px;margin-bottom:8px}
.tma-gl-olay.tma-gl-acil{border-color:#0B2A4A;box-shadow:0 6px 16px -10px rgba(11,42,74,.5)}
.tma-gl-ikon{font-size:18px;flex:0 0 auto}
.tma-gl-metin{flex:1;min-width:0;display:flex;flex-direction:column}
.tma-gl-metin strong{font-size:15px;color:#0F2438;overflow-wrap:break-word}
.tma-gl-metin span{font-size:15px;color:#3D4A5C;font-weight:600}
.tma-gl-kalan{font-size:15px;font-weight:800;color:#0B2A4A;background:#EAF2FB;border-radius:999px;padding:4px 10px;white-space:nowrap}
.tma-gl-acil .tma-gl-kalan{background:#0B2A4A;color:#fff}

.tma-yedek-not{display:inline-block;font-size:15px;font-weight:700;color:#065F46;background:#E8F6F4;border-radius:999px;padding:2px 8px;margin-left:4px}

/* ═══ v137 RUH: motto + günün denizci sözü ═══ */
/* ═══ v149 BAŞLIK SADELEŞTİ ═══
   [stated] "kaptan köşkü yazısını kaldır ki yanındaki özlü söze yer kalsın" —
   dar ekranda 'Kaptan Köşkü' üç satıra bölünüp mottoyu eziyordu. Artık kartın
   kimliği ÇIPA + MOTTO: tek satır, nefes alan, okunur. */
.tma-motto{display:inline;font-size:15px;font-weight:600;letter-spacing:.02em;color:#DCEAF5;
  font-style:italic;text-transform:none;white-space:normal;overflow-wrap:break-word}
.tma-enh-capa{font-size:16px;margin-right:8px;vertical-align:-1px}
.tma-soz{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);
  border-left:3px solid #F59E0B;border-radius:0 10px 10px 0;padding:10px 12px;margin:8px 0 10px}
.tma-soz-ikon{font-size:18px;flex:0 0 auto}
.tma-soz-metin{font-size:15px;font-style:italic;color:#E8F1F9;line-height:1.45;overflow-wrap:break-word}

/* ═══ v138: akordiyon + geçerlilik takvimi + kontör ═══ */
.tma-akordiyon .tb-w-head{position:relative}
.tma-ak-ok{margin-left:auto;font-size:15px;color:#3D4A5C;font-weight:800;padding-left:8px}
/* v143: çocuk gizleme KALDIRILDI — çekirdeğin display mantığıyla çakışıyordu */
.tma-akordiyon.tma-kapali{padding-bottom:6px}
.tma-gc-satir,.tma-kn-satir{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid #E3EBF4;border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:15px}
.tma-gc-doldu{border-color:#DC2626;background:#FEF2F2;color:#7F1D1D}
.tma-gc-yakin{border-color:#F59E0B}
.tma-gc-ikon{font-size:18px}
.tma-gc-metin{display:flex;flex-direction:column}
.tma-gc-metin strong{font-size:15px;color:#0F2438;overflow-wrap:break-word}
.tma-gc-metin span{font-size:15px;color:#3D4A5C;font-weight:600}
.tma-gc-kalan{font-size:15px;font-weight:800;background:#EAF2FB;color:#0B2A4A;border-radius:999px;padding:4px 10px;white-space:nowrap}
.tma-gc-doldu .tma-gc-kalan{background:#B91C1C;color:#fff}
.tma-gc-sil{background:none;border:none;cursor:pointer;font-size:15px;opacity:.65}
.tma-gc-form{background:#F7FAFD;border:1.5px solid #E3EBF4;border-radius:12px;padding:10px 12px;margin-top:8px}
.tma-kn-ozet{background:#0B2A4A;color:#fff;border-radius:12px;padding:10px 12px;font-size:15px;margin-bottom:8px;line-height:1.5}
#tmaGcSonuc,#tmaKnSonuc{font-size:15px;font-weight:700;color:#991B1B;margin-left:8px}

/* ═══════════════════════════════════════════════════════════════
   v139 DENİZİN TONLARI — [stated] "her kart ve akordiyon denizin
   başka tonlarında olsun, pastel; şu an her şey çok dümdüz; renk,
   karakter ve denizcilik ruhu kat"
   12 pastel ton; hepsi WCAG kontrast hesabından geçti (ana metin
   ≥13:1, ikincil ≥7.6:1, başlık vurgusu ≥3:1) — güneşte okunur.
   Ton dağılımı ANLAMA göre: seyir=gök/derin/turkuaz, bakım=kum/gün
   batımı, para=yosun/köpük, kimlik=deniz camı, topluluk=mürekkep,
   emniyet=mercan. Kart kapalıyken bile tonundan tanınır.
   ═══════════════════════════════════════════════════════════════ */
#tb-app .tb-widget{font-size:15px;position:relative;overflow:hidden;transition:box-shadow .18s,transform .18s}
#tb-app .tb-widget::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;opacity:.85}
#tb-app .tb-widget:hover{box-shadow:0 10px 26px -14px rgba(11,42,74,.45)}
#tb-app .tb-widget .tb-w-head h3{letter-spacing:-.01em;color:#0B2A4A}
#tb-hazir{background:#E4F3F7!important;border-color:#C6E6EE!important}
#tb-hazir .tb-w-head h3{color:#075985!important}
#tb-hazir.tma-akordiyon .tma-ak-ok{color:#075985!important}
#tb-hazir::before{background:#1E7F9C}
#tb-ruzgar{background:#E8F1F9!important;border-color:#C6E6EE!important}
#tb-ruzgar .tb-w-head h3{color:#2C4C7C!important}
#tb-ruzgar.tma-akordiyon .tma-ak-ok{color:#2C4C7C!important}
#tb-ruzgar::before{background:#2E6FB7}
#tb-sefer{background:#E7EDF6!important;border-color:#CBD9EC!important}
#tb-sefer .tb-w-head h3{color:#2C4C7C!important}
#tb-sefer.tma-akordiyon .tma-ak-ok{color:#2C4C7C!important}
#tb-sefer::before{background:#2C4C7C}
#tb-seyir{background:#E8F1F9!important;border-color:#C6E6EE!important}
#tb-seyir .tb-w-head h3{color:#2C4C7C!important}
#tb-seyir.tma-akordiyon .tma-ak-ok{color:#2C4C7C!important}
#tb-seyir::before{background:#2E6FB7}
#tb-defter{background:#E7EDF6!important;border-color:#CBD9EC!important}
#tb-defter .tb-w-head h3{color:#2C4C7C!important}
#tb-defter.tma-akordiyon .tma-ak-ok{color:#2C4C7C!important}
#tb-defter::before{background:#2C4C7C}
#tb-cokgunluk{background:#E4F3F7!important;border-color:#C6E6EE!important}
#tb-cokgunluk .tb-w-head h3{color:#075985!important}
#tb-cokgunluk.tma-akordiyon .tma-ak-ok{color:#075985!important}
#tb-cokgunluk::before{background:#1E7F9C}
#tb-kayitli-rotalar{background:#E7EDF6!important;border-color:#CBD9EC!important}
#tb-kayitli-rotalar .tb-w-head h3{color:#2C4C7C!important}
#tb-kayitli-rotalar.tma-akordiyon .tma-ak-ok{color:#2C4C7C!important}
#tb-kayitli-rotalar::before{background:#2C4C7C}
#tb-konum{background:#E4F3F7!important;border-color:#C6E6EE!important}
#tb-konum .tb-w-head h3{color:#075985!important}
#tb-konum.tma-akordiyon .tma-ak-ok{color:#075985!important}
#tb-konum::before{background:#1E7F9C}
#tb-capa-alarmi{background:#FDEEEA!important;border-color:#F6D6CE!important}
#tb-capa-alarmi .tb-w-head h3{color:#991B1B!important}
#tb-capa-alarmi.tma-akordiyon .tma-ak-ok{color:#991B1B!important}
#tb-capa-alarmi::before{background:#C05A45}
#tb-donanim{background:#FAF3E7!important;border-color:#EEDFC4!important}
#tb-donanim .tb-w-head h3{color:#7A4E00!important}
#tb-donanim.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-donanim::before{background:#A9762F}
#tb-bakim-skoru{background:#FAF3E7!important;border-color:#EEDFC4!important}
#tb-bakim-skoru .tb-w-head h3{color:#7A4E00!important}
#tb-bakim-skoru.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-bakim-skoru::before{background:#A9762F}
#tb-yedek-parca{background:#FDF0E3!important;border-color:#F3DCC2!important}
#tb-yedek-parca .tb-w-head h3{color:#7A4E00!important}
#tb-yedek-parca.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-yedek-parca::before{background:#B4692A}
#tb-garanti{background:#FDF0E3!important;border-color:#F3DCC2!important}
#tb-garanti .tb-w-head h3{color:#7A4E00!important}
#tb-garanti.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-garanti::before{background:#B4692A}
#tb-teknelerim{background:#E8F6F4!important;border-color:#C9E9E3!important}
#tb-teknelerim .tb-w-head h3{color:#186257!important}
#tb-teknelerim.tma-akordiyon .tma-ak-ok{color:#186257!important}
#tb-teknelerim::before{background:#186257}
#tb-karne{background:#E8F6F4!important;border-color:#C9E9E3!important}
#tb-karne .tb-w-head h3{color:#186257!important}
#tb-karne.tma-akordiyon .tma-ak-ok{color:#186257!important}
#tb-karne::before{background:#186257}
#tb-pasaport{background:#E8F6F4!important;border-color:#C9E9E3!important}
#tb-pasaport .tb-w-head h3{color:#186257!important}
#tb-pasaport.tma-akordiyon .tma-ak-ok{color:#186257!important}
#tb-pasaport::before{background:#186257}
#tb-profilim{background:#EEF1F5!important;border-color:#DAE0E8!important}
#tb-profilim .tb-w-head h3{color:#4A5A6E!important}
#tb-profilim.tma-akordiyon .tma-ak-ok{color:#4A5A6E!important}
#tb-profilim::before{background:#4A5A6E}
#tb-odemeler{background:#EFF4E6!important;border-color:#DCE7C7!important}
/* v315b: kart başlık METİNLERİ --surface zemininde 4.5 altına düşen 10 renkten
   paletteki koyulara eşlendi (v254 beyaz kart varsayımının kaçan kardeşleri);
   ::before renk şeritleri kimlik olarak CANLI bırakıldı. */
#tb-odemeler .tb-w-head h3{color:#2F6B44!important}
#tb-odemeler.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-odemeler::before{background:#5A7A2E}
#tb-yakit-gecmis{background:#EFF4E6!important;border-color:#DCE7C7!important}
#tb-yakit-gecmis .tb-w-head h3{color:#2F6B44!important}
#tb-yakit-gecmis.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-yakit-gecmis::before{background:#5A7A2E}
#tb-su{background:#E6F5EF!important;border-color:#C8E8DC!important}
#tb-su .tb-w-head h3{color:#186257!important}
#tb-su.tma-akordiyon .tma-ak-ok{color:#186257!important}
#tb-su::before{background:#1F8A70}
#tb-atik{background:#EAF4EC!important;border-color:#CDE6D5!important}
#tb-atik .tb-w-head h3{color:#2F6B44!important}
#tb-atik.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-atik::before{background:#3E8E5A}
#tb-yil-ozeti{background:#EFF4E6!important;border-color:#DCE7C7!important}
#tb-yil-ozeti .tb-w-head h3{color:#2F6B44!important}
#tb-yil-ozeti.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-yil-ozeti::before{background:#5A7A2E}
#tb-hedefler{background:#EAF4EC!important;border-color:#CDE6D5!important}
#tb-hedefler .tb-w-head h3{color:#2F6B44!important}
#tb-hedefler.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-hedefler::before{background:#3E8E5A}
#tb-hizmetler{background:#EEF1F5!important;border-color:#DAE0E8!important}
#tb-hizmetler .tb-w-head h3{color:#4A5A6E!important}
#tb-hizmetler.tma-akordiyon .tma-ak-ok{color:#4A5A6E!important}
#tb-hizmetler::before{background:#4A5A6E}
#tb-uyum{background:#FDEEEA!important;border-color:#F6D6CE!important}
#tb-uyum .tb-w-head h3{color:#991B1B!important}
#tb-uyum.tma-akordiyon .tma-ak-ok{color:#991B1B!important}
#tb-uyum::before{background:#C05A45}
#tb-yapilacak{background:#EAF4EC!important;border-color:#CDE6D5!important}
#tb-yapilacak .tb-w-head h3{color:#2F6B44!important}
#tb-yapilacak.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-yapilacak::before{background:#3E8E5A}
#tb-hatirlatici{background:#FDF0E3!important;border-color:#F3DCC2!important}
#tb-hatirlatici .tb-w-head h3{color:#7A4E00!important}
#tb-hatirlatici.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-hatirlatici::before{background:#B4692A}
#tb-notlar{background:#FAF3E7!important;border-color:#EEDFC4!important}
#tb-notlar .tb-w-head h3{color:#7A4E00!important}
#tb-notlar.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-notlar::before{background:#A9762F}
#tb-gunun-hikayesi{background:#F2EEF7!important;border-color:#E0D6EF!important}
#tb-gunun-hikayesi .tb-w-head h3{color:#6B4E9B!important}
#tb-gunun-hikayesi.tma-akordiyon .tma-ak-ok{color:#6B4E9B!important}
#tb-gunun-hikayesi::before{background:#6B4E9B}
#tb-kisiler{background:#F2EEF7!important;border-color:#E0D6EF!important}
#tb-kisiler .tb-w-head h3{color:#6B4E9B!important}
#tb-kisiler.tma-akordiyon .tma-ak-ok{color:#6B4E9B!important}
#tb-kisiler::before{background:#6B4E9B}
#tb-murettebat{background:#F2EEF7!important;border-color:#E0D6EF!important}
#tb-murettebat .tb-w-head h3{color:#6B4E9B!important}
#tb-murettebat.tma-akordiyon .tma-ak-ok{color:#6B4E9B!important}
#tb-murettebat::before{background:#6B4E9B}
#tb-misafir{background:#FDEEEA!important;border-color:#F6D6CE!important}
#tb-misafir .tb-w-head h3{color:#991B1B!important}
#tb-misafir.tma-akordiyon .tma-ak-ok{color:#991B1B!important}
#tb-misafir::before{background:#C05A45}
#tb-usta{background:#FDF0E3!important;border-color:#F3DCC2!important}
#tb-usta .tb-w-head h3{color:#7A4E00!important}
#tb-usta.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-usta::before{background:#B4692A}
#tb-kesfet{background:#E6F5EF!important;border-color:#C8E8DC!important}
#tb-kesfet .tb-w-head h3{color:#186257!important}
#tb-kesfet.tma-akordiyon .tma-ak-ok{color:#186257!important}
#tb-kesfet::before{background:#1F8A70}
#tb-topluluk-bugun{background:#E6F5EF!important;border-color:#C8E8DC!important}
#tb-topluluk-bugun .tb-w-head h3{color:#186257!important}
#tb-topluluk-bugun.tma-akordiyon .tma-ak-ok{color:#186257!important}
#tb-topluluk-bugun::before{background:#1F8A70}
#tb-ziyaret-listesi{background:#E4F3F7!important;border-color:#C6E6EE!important}
#tb-ziyaret-listesi .tb-w-head h3{color:#075985!important}
#tb-ziyaret-listesi.tma-akordiyon .tma-ak-ok{color:#075985!important}
#tb-ziyaret-listesi::before{background:#1E7F9C}
#tb-rozetler{background:#FAF3E7!important;border-color:#EEDFC4!important}
#tb-rozetler .tb-w-head h3{color:#7A4E00!important}
#tb-rozetler.tma-akordiyon .tma-ak-ok{color:#7A4E00!important}
#tb-rozetler::before{background:#A9762F}
#tb-zeka{background:#E7EDF6!important;border-color:#CBD9EC!important}
#tb-zeka .tb-w-head h3{color:#2C4C7C!important}
#tb-zeka.tma-akordiyon .tma-ak-ok{color:#2C4C7C!important}
#tb-zeka::before{background:#2C4C7C}
#tb-al-kaptan{background:#EEF1F5!important;border-color:#DAE0E8!important}
#tb-al-kaptan .tb-w-head h3{color:#4A5A6E!important}
#tb-al-kaptan.tma-akordiyon .tma-ak-ok{color:#4A5A6E!important}
#tb-al-kaptan::before{background:#4A5A6E}
#tb-portfoy{background:#EFF4E6!important;border-color:#DCE7C7!important}
#tb-portfoy .tb-w-head h3{color:#2F6B44!important}
#tb-portfoy.tma-akordiyon .tma-ak-ok{color:#2F6B44!important}
#tb-portfoy::before{background:#5A7A2E}

/* akordiyon kapalıyken: ton + ince şerit görünür kalır (kart kimliği kaybolmasın) */
#tb-app .tma-akordiyon.tma-kapali{opacity:.94}
#tb-app .tma-akordiyon.tma-kapali .tb-w-head{margin-bottom:0}
#tb-app .tma-akordiyon .tb-w-head{padding-left:6px}
/* ENH kartı ve alt bölümler: lacivert dünyada kalır ama şeritleri renklenir */
#tma-gecerlilik-sar > button{border-left:4px solid #C05A45}
#tma-kontor-sar > button{border-left:4px solid #5A7A2E}
#tma-gelecek-sar > button{border-left:4px solid #2E6FB7}
#tma-teklif-sar > button{border-left:4px solid #B4692A}
#tma-zaman-tuneli-sar > button{border-left:4px solid #6B4E9B}
#tma-defter-sar > button{border-left:4px solid #1F8A70}
#tma-karne-sar > button{border-left:4px solid #186257}
#tma-belge-ara-sar > button{border-left:4px solid #4A5A6E}
#tma-indir-sar > button{border-left:4px solid #1E7F9C}

/* ═══ v140 GİRİŞ EKRANI ═══ */
#tmaGoogleSar{max-width:420px;margin:0 auto 4px}
.tma-google-btn{display:flex;align-items:center;justify-content:center;gap:10px;background:#fff;color:#1F2937;
  border:1.5px solid #DAE0E8;border-radius:12px;padding:14px 16px;font-size:16px;font-weight:700;
  text-decoration:none;min-height:52px;box-shadow:0 2px 8px -4px rgba(0,0,0,.25)}
.tma-google-btn:hover{background:#F8FAFC;box-shadow:0 6px 16px -8px rgba(0,0,0,.3)}
.tma-g-logo{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  background:conic-gradient(#EA4335 0 25%,#F59E0B 0 50%,#3E8E5A 0 75%,#3B82F6 0);color:#fff;font-weight:900;font-size:15px}
.tma-giris-ayrac{display:flex;align-items:center;gap:10px;margin:12px 0 8px;color:#BBD2E8;font-size:15px}
.tma-giris-ayrac:before,.tma-giris-ayrac:after{content:'';flex:1;height:1px;background:rgba(255,255,255,.25)}
body.tma-giris-modu .tma-giris-ayrac{color:#BBD2E8}
#tmaGirisEk{max-width:420px;margin:10px auto 0}
.tma-giris-satir{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tma-giris-link{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;
  font-size:15px;font-weight:700;padding:12px 14px;border-radius:10px;cursor:pointer;min-height:44px}
.tma-giris-link:hover{background:rgba(255,255,255,.2)}
.tma-giris-form{background:#fff;border-radius:14px;padding:14px;margin-top:10px;display:flex;flex-direction:column;gap:10px}
.tma-giris-form p{margin:0 0 2px;font-size:15px;color:#3D4A5C;line-height:1.5}
.tma-giris-form input[type=email],.tma-giris-form input[type=text],.tma-giris-form input[type=tel],.tma-giris-form input[type=password]{padding:14px 12px;border:1.5px solid #C7D6E8;border-radius:10px;font-size:16px;min-height:48px;color:#0F2438;background:#fff}
.tma-giris-form input:focus{border-color:#0B2A4A;box-shadow:0 0 0 3px rgba(11,42,74,.15);outline:none}
.tma-uye-kvkk{display:flex;align-items:center;gap:8px;font-size:15px;color:#3D4A5C;line-height:1.4}
.tma-uye-kvkk input{width:20px;height:20px}
#tmaUnuttumSonuc,#tmaUyeSonuc{font-size:15px;font-weight:700;color:#0B2A4A;min-height:18px}
.tma-giris-alt{text-align:center;color:#BBD2E8;font-size:15px;font-style:italic;margin-top:12px;line-height:1.5}
.tma-giris-hata{background:#FEE2E2;color:#991B1B;border-radius:10px;padding:10px 12px;font-size:15px;font-weight:700;margin-bottom:10px}
.tma-sifre-goz{background:none;border:none;color:#0B2A4A;font-size:15px;font-weight:700;cursor:pointer;padding:6px 2px;min-height:44px}

/* ═══ v141 İKON MADALYONU + SEKME REHBERİ ═══ */
#tb-app .tb-widget .tb-w-head h3{display:flex;align-items:center;gap:10px}
.tma-kart-ikon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
  border-radius:50%;background:#fff;border:1.5px solid currentColor;font-size:16px;flex:0 0 auto;line-height:1}
.tma-kart-ad{font-weight:800}
/* akordiyon kapalıyken: ikon + ad + AÇIKLAMA görünür kalır (kart ne olduğunu söyler) */
#tb-app .tma-akordiyon.tma-kapali .tb-w-head{display:block}
#tb-app .tma-akordiyon.tma-kapali .tb-w-sub{display:block!important;opacity:.9;margin:4px 0 2px}
#tb-app /* v143: çocuk gizleme KALDIRILDI — çekirdeğin display mantığıyla çakışıyordu */
.tma-vurgu{outline:3px solid rgba(11,42,74,.35);outline-offset:2px}
/* sekme rehberi */
#tmaRehber{margin:8px 0 12px}
.tma-rh-ust{font-size:15px;color:#3D4A5C;margin-bottom:8px;line-height:1.5}
/* v258 ÖLÇÜLDÜ: jetonlar arası 6px — 8 ekranda 20+ komşuda. 40+ parmağı
   yanlış jetona basar (v255'te aynı dersi öğrenmiştim). 10px. */
.tma-rh-rozetler{display:flex;flex-wrap:wrap;gap:10px}
.tma-rh-rozet{background:#fff;border:1.5px solid #C7D6E8;color:#0F2438;font-size:15px;font-weight:700;
  padding:8px 12px;border-radius:999px;cursor:pointer;min-height:40px;max-width:100%;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.tma-rh-rozet:hover{background:#EAF2FB;border-color:#0B2A4A}
@media (max-width:900px){ .tma-rh-rozet{font-size:15px;padding:10px 12px;min-height:44px} }

.tma-anahtar{display:flex;align-items:center;gap:8px;font-size:15px;margin:4px 0;color:#E8F1F9}
.tma-anahtar i{width:16px;height:16px;border-radius:6px;border:1.5px solid;flex:0 0 auto}

/* ═══ v142 SAHNE: tek seferde ve yumuşak açılış ═══ */
body.tma-sahne-hazirlaniyor #tb-app{opacity:.001!important;transition:none}

@media (prefers-reduced-motion: reduce){ body.tma-sahne-hazir #tb-app{transition:none} }

/* ═══ v142 MOBİL: ARAMA KUTUSU TAM SATIR ═══
   [stated] "arama kutusu tam satır olsun mobilde, dar kalıyor, içine yazılan okunamıyor" */
@media (max-width:640px){#tb-app input[type=search], #tb-app input[type=text][id$="Q"],
  #tbIlanQ, #tbQaQ, #tmaTkAra, #tmaZtAra, #tmaBelgeAra, #tbAiInput, #tbAskInput{
    flex:1 1 100%!important; width:100%!important; min-width:0!important;
    font-size:16px!important; padding:12px 14px!important}
/* arama satırındaki düğme de tam satıra iner, ezilmez */
  #tb-app .tb-quick-form > button, #tb-app .tb-quick-form > .tb-btn{flex:1 1 auto!important; min-height:44px}
#tb-app .tma-tk-ust{flex-direction:column}
#tb-app .tma-tk-ust > *{width:100%}
}

/* ═══ v142 MOBİL TAŞMA: GENEL DURUM + AKILLI ÖNERİLER ═══
   [stated] "akıllı öneriler ve genel durum kartları hâlâ sağdan taşıyor" */
@media (max-width:640px){#tb-app .tb-stats{grid-template-columns:repeat(2, minmax(0,1fr))!important; gap:8px!important}
#tb-app .tb-stat{min-width:0!important; padding:12px 10px!important; overflow:hidden}
#tb-app .tb-stat > *{min-width:0; max-width:100%; overflow-wrap:break-word; word-break:break-word}
#tb-app .tb-stat b{font-size:16px!important; line-height:1.2}
#tb-app .tb-stat span{font-size:15px!important; white-space:normal!important}
/* Akıllı Öneriler ve tüm koyu bilgi kutuları */
  #tb-zeka, #tb-zeka *, .tma-oneri, .tma-oneri *, .tb-widget .tb-w-sub{max-width:100%!important; overflow-wrap:break-word; word-break:break-word}
#tb-zeka [style*="width:"], .tma-oneri [style*="width:"]{width:auto!important; max-width:100%!important}
/* satır içi grid/flex kalıntıları dar ekranda tek kolona iner */
  /* v146: TOPTAN 1fr KURALI KALDIRILDI — duyarlı ızgaraları (Hızlı İşlemler) da eziyordu */
  #tb-app [style*="display:flex"]{flex-wrap:wrap}
}
@media (max-width:380px){
  #tb-app .tb-stats{grid-template-columns:1fr!important}
}

/* ═══ v143 AKORDİYON: yükseklik kırpma (içeriğe dokunmaz) ═══ */
.tma-akordiyon{transition:max-height .18s ease}
.tma-akordiyon.tma-kapali{overflow:hidden}
.tma-akordiyon.tma-kapali .tb-w-sub{display:none}
@media (prefers-reduced-motion: reduce){ .tma-akordiyon{transition:none} }

/* ═══ v143 OKUNABİLİRLİK: kart içi metinler mobilde büyütüldü ═══
   [stated] "akordiyon içinde çıkan içerikler hiç okunmuyor, çok küçük" */
@media (max-width:640px){#tb-app .tb-widget{font-size:15px}
#tb-app .tb-widget p, #tb-app .tb-widget li, #tb-app .tb-widget td, #tb-app .tb-widget div{font-size:inherit}
#tb-app .tb-widget label, #tb-app .tma-alan-etiket{font-size:15px!important;color:#22313F!important;font-weight:700}
#tb-app .tb-widget small, #tb-app .tb-w-sub{font-size:15px!important;line-height:1.5}
#tb-app .tb-widget [style*="font-size:15px"], #tb-app .tb-widget [style*="font-size:15px"]{font-size:15px!important}
#tb-app .tb-widget b, #tb-app .tb-widget strong{font-size:15px}
/* liste/tablo satırları: sıkışık satır aralığı açıldı */
  #tb-app .tb-widget tr td{padding:10px 8px!important}
}

/* ═══ v143 KONTRAST: koyu zeminde soluk kalan tanıtım satırları ═══
   [stated] "Akıllı Öneriler altındaki metin lacivert üstü lacivert, okunmuyor" */
#tb-zeka .tb-w-sub, #tb-zeka p, .tma-oneri-intro,
[class*="akilli"] .tb-w-sub, [class*="oneri"] .tb-w-sub{color:#EAF3FA!important;font-weight:500}
#tb-app [style*="background:#0B2A4A"] p, #tb-app [style*="background:#123"] p,
#tb-app [style*="background: #0B2A4A"] p{color:#EAF3FA!important}
/* açık zeminli kartlarda ters durum: soluk gri metinler koyulaştı */
#tb-app .tb-widget .tb-w-sub{color:#33475C}

/* ═══ v143 AKILLI ÖNERİLER — KESİN KONTRAST ═══
   [stated] "Akıllı Öneriler altındaki metin lacivert üstü lacivert, okunmuyor"
   Kök: metin v112'de KOYU zemin için açık renge ayarlanmıştı; sonraki tema turu
   kart zeminini açık tona çevirince açık-üstü-açık kaldı. Çözüm: zemin ne olursa
   olsun okunur olsun diye kartın KENDİ zemini de metni de burada sabitleniyor. */
#tb-app .tb-assist{background:#0B2A4A!important;border-radius:14px;padding:14px 16px}
#tb-app .tb-assist h2{color:#FFFFFF!important}
/* ══════ v393 BEYAZ ÜSTÜNE BEYAZ METİN ══════
   CANLIDAN GELEN HATA: Miço'nun cevabı okunmuyordu. Kart koyu lacivert
   (#0B2A4A) ve içindeki tüm p/li/span beyaza zorlanıyordu. Ama CEVAP KARTI
   beyaz zeminlidir (details background:#fff) — beyaz üstüne beyaz yazı.
   Kural artık cevap kartının içine girmiyor: koyu zemindeki metin beyaz
   kalır, beyaz karttaki metin kendi koyu rengini korur. */
#tb-app .tb-assist > p,
#tb-app .tb-assist > li,
#tb-app .tb-assist > span,
#tb-app .tb-assist > div > p:not(details p):not(details span){color:#EAF3FA!important}
/* Beyaz zeminli cevap kartı: metin koyu ve okunur */
#tb-app .tb-assist details{background:#fff!important}
#tb-app .tb-assist details summary{color:#12242A!important}
#tb-app .tb-assist details > div,
#tb-app .tb-assist details > div *,
#tb-app .tb-assist details p,
#tb-app .tb-assist details span,
#tb-app .tb-assist details li{color:#3A4A52!important}
/* ═══ v400 BEYAZ KART İÇİ METİN — İKİNCİ DÜZELTME ═══
   CANLIDAN GELEN HATA (tekrar): Miço'nun cevabı hâlâ okunmuyordu. İlk
   düzeltmede 'p, li, span' kuralını daralttım ama BU kuralı atlamıştım:
   'p[style]' seçicisi, satır içi stili olan HER paragrafı beyaza zorluyor —
   cevap kartının içindekiler dahil. Kart beyaz zeminli olduğu için metin
   kayboluyordu.
   Kural artık cevap kartının (details) dışında kalıyor. */
#tb-app .tb-assist > p[style],
#tb-app .tb-assist > div > p[style]:not(details p){color:#EAF3FA!important;font-size:15px!important;font-weight:500!important}

/* Beyaz zeminli cevap kartında HER metin koyu — hangi etiket olursa olsun.
   Tek tek etiket saymak yerine kapsayıcıdan iniyoruz ki bir daha kaçmasın. */
#tb-app .tb-assist details,
#tb-app .tb-assist details *{color:#3A4A52!important}
#tb-app .tb-assist details summary,
#tb-app .tb-assist details summary *{color:#12242A!important}
#tb-app .tb-assist details a{color:#0B62C4!important}
#tb-app .tb-assist a{color:#FFE9C2!important;text-decoration:underline}
#tb-app .tb-assist .tb-assist-item, #tb-app .tb-assist [class*="item"]{background:rgba(255,255,255,.08);border-radius:10px}

/* ═══ v146 IZGARA HİZASI (hedefli) ═══
   [stated] "hızlı işlemler çift sütundu, mobilde tek sütun olmuş" — v142'de dar ekranda
   TÜM satır içi ızgaraları tek kolona indiren toptan bir kural koymuştum; oysa
   Hızlı İşlemler zaten auto-fit ile kendini ayarlıyordu. Artık yalnız GERÇEKTEN
   taşan (sabit geniş kolonlu) ızgaralar JS ile tek kolona iner. */
@media (max-width:640px){#tbHizliIslemler{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))!important;gap:6px!important}
#tbHizliIslemler .tb-hizli-btn{min-width:0;padding:10px 4px!important;font-size:18px!important}
#tbHizliIslemler .tb-hizli-btn span, #tbHizliIslemler .tb-hizli-btn small{font-size:15px!important;line-height:1.2;overflow-wrap:break-word}
}
@media (max-width:380px){
  #tbHizliIslemler{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))!important}
}

/* ═══ v147 ANLIK DONANIM DURUMU — kart başlığı ═══ */
.tma-dn-bas{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding:2px 2px 10px;margin-bottom:2px;
  border-bottom:1px solid rgba(11,42,74,.10)}
.tma-dn-bas-ikon{width:32px;height:32px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  font-size:16px;background:#fff;border:1.5px solid rgba(11,42,74,.22);border-radius:50%}
.tma-dn-bas-metin{display:flex;flex-direction:column;min-width:0}
.tma-dn-bas-metin strong{font-size:15px;color:#0F2438;line-height:1.25}
.tma-dn-bas-metin span{font-size:15px;color:#33475C;line-height:1.4;overflow-wrap:break-word}
@media (max-width:640px){
  .tma-dn-bas-metin strong{font-size:15px}
.tma-dn-bas-metin span{font-size:15px}
}

/* ═══ v148 ANA EKRAN KARTLARI: kumanya + rota ═══ */
.tma-anakart{margin:12px 0}
#tma-kumanya-kart{background:#EAF4EC;border:1.5px solid #CDE6D5}
#tma-kumanya-kart h3{color:#2F6B44}
#tb-cokgunluk.tma-anakart{display:block!important}
.tma-km-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:6px}
/* v258 ÖLÇÜLDÜ: 240px'lik satırda etiket 120px SABİT + seçim kutusu 86px +
   iki gap = 226'yı aşıyor, kutu satırın SAĞINDAN 69px TAŞIYORDU (kart
   kenarının dışına çıkıyordu). Kumanya formunda satır sarabilir; etiket
   sabit genişliğini bırakır. */
.tma-km-form .tma-gk-satir{flex:1 1 130px;min-width:0;flex-wrap:wrap;row-gap:4px}
.tma-km-form .tma-gk-satir label{width:auto;flex:0 0 auto;max-width:100%}
.tma-km-form .tma-gk-satir select,
.tma-km-form .tma-gk-satir input{flex:1 1 90px;min-width:0;max-width:100%}
.tma-km-ozet{background:#0B2A4A;color:#fff;border-radius:10px;padding:10px 12px;font-size:15px;margin:10px 0 8px}
.tma-km-uyari{border-radius:10px;padding:10px 12px;font-size:15px;font-weight:600;margin-bottom:10px;line-height:1.45}
.tma-km-iyi{background:#E7F5EC;color:#1D6B3C;border:1px solid #CDE6D5}
.tma-km-kotu{background:#FEF2F2;color:#991B1B;border:1px solid #F3C7C7}
.tma-km-grup{margin-bottom:10px}
.tma-km-grup-bas{font-size:15px;font-weight:800;letter-spacing:.05em;color:#33475C;margin:0 2px 4px}
.tma-km-satir{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;background:#fff;border:1px solid #E3EBF4;
  border-radius:10px;padding:10px 12px;margin-bottom:4px;cursor:pointer;font-size:15px}
.tma-km-tik{width:18px;height:18px;flex:0 0 auto;accent-color:#2F6B44}
.tma-km-ad{flex:1 1 auto;min-width:0;color:#0F2438;font-weight:600;overflow-wrap:break-word}
.tma-km-mik{font-weight:800;color:#0B2A4A;white-space:nowrap}
.tma-km-not{flex:1 1 100%;font-size:15px;color:#5A6B80;font-style:italic;overflow-wrap:break-word}
.tma-km-tik:checked ~ .tma-km-ad{text-decoration:line-through;opacity:.55}
.tma-km-alt{font-size:15px;color:#33475C;font-style:italic;margin-top:6px}
@media (max-width:640px){ .tma-km-form .tma-gk-satir{flex:1 1 100%} }

/* v149: kart başlığı satırı — çıpa+motto solda, düğmeler sağda, dar ekranda sarar */
#tma-enh-card .tma-enh-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  font-size:15px;line-height:1.35;margin-bottom:10px}
#tma-enh-card .tma-enh-head .tma-motto{flex:1 1 auto;min-width:0}
#tma-enh-card .tma-enh-head .tma-enh-btn{flex:0 0 auto}
@media (max-width:640px){
  #tma-enh-card .tma-enh-head{gap:4px}
#tma-enh-card .tma-enh-head .tma-motto{flex:1 1 100%;order:-1;font-size:15px}
#tma-enh-card .tma-enh-head .tma-enh-capa{order:-2}
}

/* ═══ v150 RİTİM ŞERİDİ — KESİN OKUNURLUK ═══
   Zemin ve metin BİRLİKTE sabitlendi: hangi tema gelirse gelsin lacivert zemin +
   açık metin. (Aynı hatanın üçüncü tekrarı: zemini bir tur, metni başka bir tur
   değiştirmek → çakışma. Artık ikisi tek yerde.) */
#tma-ritim{background:linear-gradient(135deg,#0B2A4A,#0E3A66)!important;color:#EAF2FB!important}
#tma-ritim .tma-rt-mesaj{color:#DCE9F8!important;font-weight:600;font-size:15px}
#tma-ritim .tma-rt-ani, #tma-ritim .tma-rt-taze, #tma-ritim small, #tma-ritim span, #tma-ritim p{color:#DCE9F8}
#tma-ritim .tma-rt-seri{color:#FFD666!important}
#tma-ritim b, #tma-ritim strong{color:#FFFFFF}
@media (max-width:640px){ #tma-ritim .tma-rt-mesaj{font-size:15px;line-height:1.5} }

/* ═══ v151 ÖĞRENEN KUMANYA — ritim önerileri ═══ */
#tmaKmRitim{margin:10px 0 4px}
.tma-km-ritim-bas{font-size:15px;font-weight:800;letter-spacing:.05em;color:#33475C;margin:0 2px 6px}
.tma-km-ritim-bos{font-size:15px;color:#33475C;font-style:italic;background:#F7FAFD;border:1px dashed #C7D6E8;border-radius:10px;padding:10px 12px}
.tma-km-ritim-satir{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;border-radius:10px;padding:10px 12px;margin-bottom:4px;font-size:15px;border:1.5px solid}
.tma-km-r-bitti{background:#FEF3C7;border-color:#F0C878;color:#7A4E00}
.tma-km-r-yaklasti{background:#EAF4EC;border-color:#CDE6D5;color:#2F6B44}
.tma-km-r-ad{font-weight:800;flex:0 0 auto}
.tma-km-r-not{flex:1 1 auto;min-width:0;font-size:15px;overflow-wrap:break-word}
.tma-km-r-guven{font-size:15px;font-weight:700;opacity:.75;white-space:nowrap}

/* ═══════════════════════════════════════════════════════════════
   v152 IZGARA GÖRÜNÜMÜ — 40+ yaş & güneş altında okunur ölçüler
   Hücre ~110px → ikon 34px, etiket 13px kalın. 4 sütun denenmedi:
   360px telefonda hücre 80px'e düşer, etiket 10px olur (okunmaz).
   ═══════════════════════════════════════════════════════════════ */
#tmaIzgara{display:none}
body.tma-izgara-modu #tmaIzgara{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:10px;margin:12px 0 16px}
body.tma-izgara-modu .tma-dos{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  min-height:104px;padding:14px 8px;background:#fff;border:1.5px solid #DCE6F2;border-radius:14px;
  cursor:pointer;box-shadow:0 3px 10px -6px rgba(11,42,74,.35);transition:transform .12s ease,box-shadow .12s ease}
body.tma-izgara-modu .tma-dos:active{transform:scale(.97)}
body.tma-izgara-modu .tma-dos:hover{box-shadow:0 8px 18px -10px rgba(11,42,74,.5)}
.tma-dos-ikon{font-size:28px;line-height:1}
.tma-dos-ad{font-size:15px;font-weight:800;color:#0F2438;text-align:center;line-height:1.25;overflow-wrap:break-word}
.tma-dos-liste{background:#EAF2FB;border-style:dashed}
.tma-dos-rozet{position:absolute;top:8px;right:8px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.4)}
.tma-rozet-kirmizi{background:#DC2626}
.tma-rozet-turuncu{background:#D97706}
.tma-rozet-amber{background:#B45309}
.tma-rozet-lacivert{background:#0B2A4A}
/* ızgara modunda kart listesi + sekme çubuğu gizlenir; durum şeridi KALIR */
body.tma-izgara-modu #tbCatGrid, body.tma-izgara-modu #tmaTabbar,
body.tma-izgara-modu #tmaRehber, body.tma-izgara-modu .tb-widget:not(.tma-tek-kart){display:none!important}
body.tma-izgara-modu #tma-enh-card, body.tma-izgara-modu #tma-ritim,
body.tma-izgara-modu .tma-donanim, body.tma-izgara-modu #tma-mico{display:block!important}
.tma-gorunum-btn{font-size:16px;line-height:1}

/* v155: eski yerinde-gizleme kuralları kaldırıldı — kart artık üst katmana taşınıyor */
@media (max-width:380px){body.tma-izgara-modu #tmaIzgara{grid-template-columns:repeat(2, minmax(0,1fr))}
.tma-dos-ikon{font-size:28px}
}
@media (min-width:901px){
  body.tma-izgara-modu #tmaIzgara{grid-template-columns:repeat(5, minmax(0,1fr))}
}

/* ═══ v153 ÜST ŞERİT + HIZLI ERİŞİM SADELEŞTİRME ═══ */
#tbGlobalSearchWrap.tma-arama-genis{flex:1 1 100%!important;width:100%!important;max-width:none!important;margin-bottom:10px}
#tbGlobalSearchWrap.tma-arama-genis input{width:100%!important;height:46px!important;font-size:16px!important}
[data-tma-kaldirildi]{display:none!important}
/* Hızlı Erişim: ilk 4 açık, gerisi katlı */
.tma-he-gizli{display:none!important}
#tma-he.tma-he-acik .tma-he-gizli{display:flex!important}
.tma-he-daha{opacity:.85;font-style:italic}
/* ızgara modunda Hızlı Erişim gereksiz — döşemeler onun işini yapıyor */
body.tma-izgara-modu #tma-he, body.tma-izgara-modu .tma-he-baslik{display:none!important}
@media (max-width:900px){
  #tma-he{max-height:none}
.tma-he-satir{min-height:44px}
}

/* ═══ v154 ALT ÇUBUK: ortada yükseltilmiş ⊕ + EYLEM YAPRAĞI ═══ */
@media (max-width:900px){body.tma-panel-modu #tmaAltCubuk{align-items:flex-end;padding-top:0}
#tmaAltCubuk .tma-alt-ekle{background:#0B2A4A!important;color:#fff!important;border:3px solid #F7FAFD!important;border-radius:50%!important;
    width:62px;height:62px;min-height:62px!important;flex:0 0 62px;margin-top:-22px;font-size:28px!important;
    box-shadow:0 8px 18px -6px rgba(11,42,74,.6);display:flex;flex-direction:column;gap:0;justify-content:center}
#tmaAltCubuk .tma-alt-ekle span{margin-top:-2px}
}
#tmaYaprak{position:fixed;inset:0;z-index:120;background:rgba(6,20,38,.55);
  display:none;align-items:flex-end;justify-content:center}
body.tma-yaprak-acik #tmaYaprak{display:flex}
.tma-yaprak-ic{width:100%;max-width:520px;background:#fff;border-radius:16px 20px 0 0;padding:10px 16px 20px;
  box-shadow:0 -10px 30px -8px rgba(0,0,0,.35);animation:tmaYaprakGir .18s ease}
@keyframes tmaYaprakGir{from{transform:translateY(18px);opacity:.6}to{transform:none;opacity:1}}
@media (prefers-reduced-motion: reduce){ .tma-yaprak-ic{animation:none} }
.tma-yaprak-tut{width:44px;height:5px;border-radius:999px;background:#CBD5E1;margin:2px auto 12px}
.tma-yaprak-bas{font-size:15px;font-weight:800;color:#0F2438;margin:0 2px 12px}
.tma-yaprak-izgara{display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:10px}
.tma-yaprak-btn{display:flex;flex-direction:column;align-items:center;gap:6px;background:#F1F5F9;border:1.5px solid #DCE6F2;
  border-radius:14px;padding:12px 6px;min-height:82px;cursor:pointer;font-size:15px;font-weight:700;color:#0F2438}
.tma-yaprak-btn:active{transform:scale(.96)}
.tma-yaprak-ikon{font-size:24px;line-height:1}
.tma-yaprak-kapat{width:100%;margin-top:14px;min-height:48px;background:#EAF2FB;border:1.5px solid #C7D6E8;
  border-radius:12px;font-size:15px;font-weight:800;color:#0B2A4A;cursor:pointer}
@media (max-width:380px){ .tma-yaprak-izgara{grid-template-columns:repeat(3, minmax(0,1fr))} }

/* ═══ v155 TAM EKRAN KART — GERÇEK ÜST KATMAN ═══
   Kart DOM'da yerinden alınıp bu katmana taşınır → her zaman EKRANIN ÜSTÜNDE açılır,
   geri düğmesi de üstte sabittir. Kapanınca yer tutucu sayesinde tam eski yerine döner. */
#tmaTekEkran{display:none}
body.tma-tekkart-modu #tmaTekEkran{display:flex;flex-direction:column;position:fixed;inset:0;z-index:140;background:#F7FAFD;overflow-y:auto;-webkit-overflow-scrolling:touch}
body.tma-tekkart-modu{overflow:hidden}
#tmaTekUst{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:2;
  background:#0B2A4A;color:#fff;padding:10px 12px;box-shadow:0 4px 14px -8px rgba(0,0,0,.6)}
.tma-tek-geri{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;
  font-weight:800;font-size:20px;line-height:1;min-width:48px;min-height:48px;border-radius:12px;cursor:pointer}
.tma-tek-baslik{font-size:16px;font-weight:800;overflow-wrap:break-word;flex:1;min-width:0}
#tmaTekGovde{padding:12px 12px 90px;max-width:760px;width:100%;margin:0 auto}
#tmaTekOneri{display:flex;gap:10px;align-items:flex-start;background:#0B2A4A;color:#EAF3FA;
  border-radius:12px;padding:12px 14px;margin:0 0 12px;font-size:15px;line-height:1.5}
.tma-tek-oneri-ik{font-size:16px;flex:0 0 auto}
#tmaTekGovde .tma-tek-kart{display:block!important;max-height:none!important;overflow:visible!important;
  margin:0;font-size:15px;width:100%}
#tmaTekGovde .tma-tek-kart .tb-w-head h3{font-size:18px}
#tmaTekGovde .tma-tek-kart .tb-w-sub{font-size:15px;display:block!important}
/* tam ekrandayken alt çubuk KALIR (⊕ ile başka kayıt girilebilsin) */
body.tma-tekkart-modu #tmaAltCubuk{z-index:145}
body.tma-tekkart-modu #tmaYaprak{z-index:150}

/* ═══ v156 FORM SATIRI ONARIMI + MÜKERRER AÇIKLAMA ═══ */
/* sarmal artık satırı kırmıyor: dar ekranda tam satır, geniş ekranda esnek */
#tb-app .tma-alan-sar{flex:1 1 170px;min-width:150px}
@media (max-width:640px){
  #tb-app .tma-alan-sar{flex:1 1 100%!important;min-width:0}
#tb-app select, #tb-app input[type=date], #tb-app input[type=number]{width:100%!important;min-width:0}
#tb-app .tb-quick-form, #tb-app form{gap:10px!important}
}
/* seçim listeleri ve tarihler nefes alsın */
#tb-app select{min-height:44px;padding:0 32px 0 12px;font-size:16px;text-overflow:ellipsis}
#tb-app input[type=date]{min-height:44px;padding:0 10px;font-size:16px}
/* ikinci açıklama katlanır */
.tma-sub-detay{display:none}
.tb-w-head.tma-sub-acik .tma-sub-detay{display:block}
.tma-sub-ac{background:none;border:none;padding:2px 0 4px;margin:0;cursor:pointer;
  font-size:15px;font-weight:700;color:#2563EB;text-align:left}

/* ═══ v156: yapısal olarak gizlenen site başlığı ═══ */
[data-tma-baslik-gizli]{display:none!important;visibility:hidden!important;height:0!important;overflow:hidden!important}
body.tma-baslik-temiz{padding-top:0!important;margin-top:0!important}
body.tma-baslik-temiz #tb-app{margin-top:0!important}

/* ═══ v157 STICKY ÜST ŞERİT ═══ */
#tmaUstBar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:10px;
  background:#0B2A4A;color:#fff;padding:10px 12px;border-radius:0 0 14px 14px;
  box-shadow:0 6px 16px -10px rgba(0,0,0,.55);margin:0 0 10px}
.tma-ub-capa{font-size:16px;flex:0 0 auto}
.tma-ub-ad{flex:1 1 auto;min-width:0;font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tma-ub-btn{flex:0 0 auto;min-width:42px;min-height:44px;border-radius:10px;font-size:16px;cursor:pointer;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff}
body.tma-tekkart-modu #tmaUstBar{display:none}
@media (min-width:901px){ #tmaUstBar{display:none} }
/* alt çubuk her zaman: panel varsa görünür (eski 'panel modu' şartı kalktı) */
@media (max-width:900px){body.tma-alt-cubuk-var #tb-app{padding-bottom:78px} }

/* ═══ v158 SADELEŞTİRME: ızgarada tek gezinme dili ═══ */
[data-tma-sade]{display:none!important}
body.tma-izgara-modu #tmaTabbar, body.tma-izgara-modu #tmaRehber,
body.tma-izgara-modu #tma-he, body.tma-izgara-modu #tbHizliIslemler,
body.tma-izgara-modu #tbNav{display:none!important}
body.tma-izgara-modu #tb-app{padding-top:4px}

/* ═══════════════════════════════════════════════════════════════════════
   v158 TASARIM SİSTEMİ — TEK DİL
   [stated] "tasarım ve UX'i bütünsel ele al; dil, sunum, yerleşim, akış bir
   bütün olsun; şu an her şey eklektik parçalı"
   ÖLÇÜM (önce): 32 punto · 17 köşe · 25 boşluk · 272 renk · 16 düğme dili.
   Bu blok EN SONDA durur ve otorite odur.
   ═══════════════════════════════════════════════════════════════════════ */
/* v258c ÖLÇÜLDÜ (olcek258.js): bu üç jeton ÖLÇEK DIŞIYDI — 14px 102 öğede,
   17px 14 öğede görünüyordu. Yazı ölçeği 11.5/12.5/13.5/15/16/18/20/24/28
   olarak yazılıydı ama jetonun kendisi ihlal ediyordu; kural sayfada vardı,
   kodda nöbetçisi yoktu. 14→15 · 15.5→16 · 17→18 (hepsi bir adım YUKARI:
   40+ göz için okunurluk lehine). */
#tb-app{--tma-yazi-mini:15px; --tma-yazi-kucuk:15px; --tma-yazi:15px;
  --tma-yazi-orta:16px; --tma-yazi-basli:18px; --tma-bosluk-s:8px; --tma-bosluk-m:12px; --tma-bosluk-l:16px;
  --tma-kose-s:10px; --tma-kose-m:14px; --tma-kose-l:18px; --tma-kose-tam:999px;
  --tma-lacivert:#0B2A4A; --tma-murekkep:#0F2438; --tma-metin:#22313F; --tma-metin-soft:#4A5A6E;
  --tma-cizgi:#DCE6F2; --tma-kart:#FFFFFF; --tma-kotu:#991B1B;
  --tma-golge:0 3px 10px -6px rgba(11,42,74,.35)}
/* ── KART ANATOMİSİ ── */
#tb-app .tb-widget{border-radius:var(--tma-kose-l)!important;padding:var(--tma-bosluk-l)!important;
  margin:0 0 var(--tma-bosluk-m)!important;box-shadow:var(--tma-golge);border-width:1.5px!important;font-size:var(--tma-yazi)}
#tb-app .tb-widget h3{font-size:var(--tma-yazi-basli)!important;line-height:1.3;font-weight:800}
#tb-app .tb-widget .tb-w-sub{font-size:var(--tma-yazi-kucuk)!important;line-height:1.5;color:var(--tma-metin-soft)!important}
#tb-app .tb-widget p, #tb-app .tb-widget li, #tb-app .tb-widget td{font-size:var(--tma-yazi);color:var(--tma-metin);line-height:1.55}
#tb-app .tb-widget b, #tb-app .tb-widget strong{font-size:var(--tma-yazi-orta);color:var(--tma-murekkep)}
#tb-app .tb-widget small{font-size:var(--tma-yazi-kucuk)}
/* ── DÜĞME DİLİ: 16 görünüm → 3 rol ── */
#tb-app .tb-btn, #tb-app .tb-pill-btn, #tb-app .tma-enh-btn, #tb-app .tb-hizli-btn,
#tb-app .tb-request-btn, #tb-app .tma-vip-btn{border-radius:var(--tma-kose-s)!important;font-size:var(--tma-yazi)!important;font-weight:700!important;
  min-height:44px;padding:10px 14px!important;cursor:pointer;line-height:1.25;
  border:1.5px solid var(--tma-cizgi);background:var(--tma-kart);color:var(--tma-lacivert);
  transition:transform .1s ease}
#tb-app .tb-btn:active, #tb-app .tma-enh-btn:active, #tb-app .tb-pill-btn:active{transform:scale(.975)}
#tb-app .tma-birincil, #tb-app .tb-btn-primary{background:var(--tma-lacivert)!important;color:#fff!important;border-color:var(--tma-lacivert)!important;box-shadow:var(--tma-golge)}
#tb-app .tb-task-del, #tb-app .tma-sil{color:var(--tma-kotu)!important;border-color:transparent!important;background:transparent!important;min-height:40px}
/* ── FORM DİLİ ── */
#tb-app input:not([type=checkbox]):not([type=radio]), #tb-app select, #tb-app textarea{border-radius:var(--tma-kose-s)!important;border:1.5px solid var(--tma-cizgi)!important;
  font-size:var(--tma-yazi)!important;padding:10px 12px!important;min-height:44px;background:#fff;color:var(--tma-murekkep)}
#tb-app label, #tb-app .tma-alan-etiket{font-size:var(--tma-yazi-kucuk)!important;font-weight:700;color:var(--tma-metin)}
/* ── RİTİM ── */
#tb-app .tb-section-label{font-size:var(--tma-yazi-mini)!important;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--tma-metin-soft)!important;margin:var(--tma-bosluk-l) 2px var(--tma-bosluk-s)}
/* ── ROZET DİLİ ── */
#tb-app .tma-dos-rozet, #tb-app .tma-gc-kalan, #tb-app .tma-gl-kalan{border-radius:var(--tma-kose-tam);font-size:var(--tma-yazi-mini);font-weight:800}
/* ── MOBİL TABAN ── */
@media (max-width:640px){#tb-app .tb-widget{padding:var(--tma-bosluk-m)!important;border-radius:var(--tma-kose-m)!important}
#tb-app .tb-widget h3{font-size:16px!important}
#tb-app input, #tb-app select, #tb-app textarea{font-size:16px!important}
}

/* ═══════════════════════════════════════════════════════════════
   v161 OKUNABİLİRLİK TABANI (CSS'in EN SONU — otorite)
   Denetim 8px'e kadar inen etiketler buldu (ritim gün harfleri 8-9px,
   alt çubuk yazıları 9.5px, şerit etiketleri 10px). 40+ yaş + güneş
   altında bu okunmaz. TABAN: hiçbir görünür metin 11px'in altına inmez;
   mobilde 11.5px. Ölçek bozulmasın diye yalnız ALT SINIR yükseltilir.
   ═══════════════════════════════════════════════════════════════ */
.tma-rt-gun b, #tmaAltCubuk button span, #tmaAltCubuk .tma-alt-ekle span,
.tma-dn-etiket, .tma-dn-alt, .tma-ba-rozet, .tma-he-baslik, .tma-df-ozlem,
.tma-alan-etiket, .tma-km-r-guven, .tma-dos-rozet,
#tbHizliIslemler .tb-hizli-btn span, #tbHizliIslemler .tb-hizli-btn small{font-size:15px!important; line-height:1.3}
@media (max-width:900px){
  .tma-rt-gun b, #tmaAltCubuk button span, .tma-dn-etiket, .tma-dn-alt,
  .tma-alan-etiket, #tbHizliIslemler .tb-hizli-btn span{font-size:15px!important}
#tmaAltCubuk .tma-alt-ekle span{font-size:15px!important}
}
/* etiketler küçüldüğünde okunurluk kalsın diye ağırlık ve renk de sabitlenir */
.tma-dn-etiket, .tma-alan-etiket{font-weight:700;color:#33475C}
.tma-rt-gun b{font-weight:800;color:#C7D6E8}

/* ═══ v163: çekirdek FAB gizli (alt çubuktaki ⊕ tek eylem yolu) ═══ */
body.tma-alt-cubuk-var #tmaFab, #tmaFab[data-tma-birlesik]{display:none!important}

/* ═══ v165 KAYDET / DÜZENLE / SİL görünürlüğü ═══ */
.tma-km-kayit-sar{display:flex;justify-content:flex-end;margin:6px 0 2px}
.tma-km-kayit{font-size:15px;font-weight:700;border-radius:999px;padding:4px 12px;background:#EEF3F9;color:#33475C}
.tma-km-kayit.bekliyor{background:#FEF3C7;color:#7A4E00}
.tma-km-kayit.tamam{background:#E7F5EC;color:#1D6B3C}
.tma-km-kayit.hata{background:#FEF2F2;color:#991B1B}
.tma-kn-sil, .tma-gc-sil, .tma-gc-duzenle{background:none;border:none;cursor:pointer;font-size:15px;
  min-width:40px;min-height:40px;border-radius:10px;flex:0 0 auto}
.tma-kn-sil:active, .tma-gc-sil:active, .tma-gc-duzenle:active{background:rgba(11,42,74,.08)}
.tma-gc-duzenle{opacity:.8}

/* ═══ v166 ÇEVRİMDIŞI KUYRUK ROZETİ ═══ */
.tma-kuyruk{position:fixed;left:12px;right:12px;bottom:86px;z-index:160;background:#7A4E00;color:#FAF3E7;
  border-radius:12px;padding:12px 14px;font-size:15px;font-weight:700;line-height:1.4;
  box-shadow:0 8px 20px -8px rgba(0,0,0,.5);text-align:center}
.tma-kuyruk-gonderiliyor{background:#0B2A4A;color:#EAF3FA}
.tma-kuyruk-bitti{background:#1D6B3C;color:#E8F6F4}
@media (min-width:901px){ .tma-kuyruk{left:auto;right:20px;max-width:380px;bottom:20px} }

/* ═══ v168 İLK GÜN + GÜNÜN CÜMLESİ + BOŞ KART ÖĞRETİCİSİ ═══ */
#tmaIlkGun{background:#0B2A4A;color:#fff;border-radius:14px;padding:14px;margin:0 0 12px}
.tma-ig-bas{font-size:15px;font-weight:800;letter-spacing:.03em;margin-bottom:8px;color:#DCEAF5}
.tma-ig-cubuk{height:7px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;margin-bottom:12px}
.tma-ig-cubuk span{display:block;height:100%;background:#F59E0B;border-radius:999px;transition:width .3s ease}
.tma-ig-adim{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.22);border-radius:12px;padding:12px 14px;margin-bottom:8px;cursor:pointer;
  color:#fff;min-height:56px}
.tma-ig-adim.tma-ig-tamam{opacity:.55;cursor:default}
.tma-ig-ikon{font-size:20px;flex:0 0 auto;width:28px;text-align:center}
.tma-ig-metin{flex:1;min-width:0;display:flex;flex-direction:column}
.tma-ig-metin strong{font-size:15px}
.tma-ig-metin span{font-size:15px;color:#CBD9EC}
.tma-ig-ok{font-size:20px;opacity:.7}
.tma-ig-bitti{font-size:15px;font-weight:700;line-height:1.5}
#tmaGunCumle{display:flex;align-items:center;gap:10px;background:#FAF3E7;border:1.5px solid #F3DCC2;
  border-radius:14px;padding:12px 14px;margin:0 0 12px}
.tma-gc-ik{font-size:18px;flex:0 0 auto}
.tma-gc-metin{flex:1;min-width:0;font-size:15px;font-weight:700;color:#5C4210;line-height:1.4;overflow-wrap:break-word}
.tma-gc-eylem{flex:0 0 auto;background:#0B2A4A;color:#fff;border:none;border-radius:10px;
  padding:12px 16px;font-size:15px;font-weight:800;cursor:pointer;min-height:44px}
.tma-bos-ogret{display:flex;gap:10px;align-items:flex-start;background:#F7FAFD;border:1px dashed #C7D6E8;
  border-radius:12px;padding:10px 12px;margin:8px 0;font-size:15px;color:#33475C;line-height:1.5}
@media (max-width:640px){
  #tmaGunCumle{flex-wrap:wrap}
.tma-gc-eylem{flex:1 1 100%}
}

/* ═══ v170 BOŞ KART AÇIKLAMASI ═══ */
.tma-kart-bos{display:flex;gap:10px;align-items:flex-start;background:#FAF3E7;border:1.5px solid #F3DCC2;
  border-radius:12px;padding:12px 14px;margin:8px 0;font-size:15px;color:#5C4210;line-height:1.5}
.tma-kart-bos b{color:#0B2A4A}

/* ═══ v172 KAPALI KARTTA DURUM ÖZETİ + ÖNEM SIRASI ═══ */
.tma-kart-ozet{margin-left:auto;flex:0 0 auto;font-size:15px;font-weight:700;color:#33475C;
  background:#EEF3F9;border-radius:999px;padding:4px 10px;white-space:nowrap;max-width:52%;
  overflow:hidden;text-overflow:ellipsis}
.tma-kart-ozet.tma-ozet-uyari{background:#FEF3C7;color:#7A4E00}
.tb-widget.tma-kart-dikkat{border-color:#F0C878!important;box-shadow:0 4px 14px -8px rgba(180,83,9,.5)}
.tma-akordiyon:not(.tma-kapali) .tma-kart-ozet{opacity:.75}
@media (max-width:640px){
  .tma-kart-ozet{font-size:15px;padding:4px 8px;max-width:46%}
}

/* ═══ v173/1 MİKRO GERİ BİLDİRİM — tek dil, tek yer ═══ */
#tmaBildirim{position:fixed;left:50%;transform:translateX(-50%) translateY(14px);bottom:96px;z-index:170;
  opacity:0;pointer-events:none;transition:opacity .18s ease, transform .18s ease;
  font-size:15px;font-weight:800;padding:12px 18px;border-radius:999px;box-shadow:0 10px 26px -12px rgba(0,0,0,.55);
  max-width:88vw;text-align:center}
#tmaBildirim.tma-bildirim-acik{opacity:1;transform:translateX(-50%) translateY(0)}
.tma-bildirim-ok{background:#0B2A4A;color:#EAF3FA}
.tma-bildirim-hata{background:#FEF2F2;color:#991B1B;border:1.5px solid #F3C7C7}
@media (prefers-reduced-motion: reduce){ #tmaBildirim{transition:none} }

/* ═══ v173/2 SEKME İÇİ GRUP BAŞLIKLARI ═══ */
.tma-grup-baslik{grid-column:1/-1;margin:18px 2px 6px!important;display:flex;align-items:center;gap:10px}
.tma-grup-baslik::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,#DCE6F2,transparent)}

/* ═══ v173/3 İSKELET EKRAN — algılanan hız ═══ */
#tmaIskelet{padding:4px 0 8px}
.tma-isk-serit,.tma-isk-kart{border-radius:14px;background:linear-gradient(90deg,#EEF3F9 25%,#F7FAFD 37%,#EEF3F9 63%);
  background-size:400% 100%;animation:tmaParilti 1.3s ease infinite;margin:0 0 10px}
.tma-isk-serit{height:46px;border-radius:0 0 14px 14px}
.tma-isk-kart{height:92px}
.tma-isk-buyuk{height:132px}
.tma-isk-kisa{height:64px}
@keyframes tmaParilti{0%{background-position:100% 0}100%{background-position:0 0}}
@media (prefers-reduced-motion: reduce){ .tma-isk-serit,.tma-isk-kart{animation:none} }
body.tma-sahne-hazirlaniyor #tmaIskelet{display:block}

/* ═══════════════════════════════════════════════════════════════════════
   v176 MOBİL SERTLEŞTİRME — taşma / kayma / sıkışma
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width:640px){/* 1) YATAY KAYMA KİLİDİ */
  html, body.tma-panel-sayfasi{overflow-x:hidden!important;max-width:100vw}
#tb-app{overflow-x:clip;max-width:100%}
#tb-app *{max-width:100%}
#tb-app img, #tb-app iframe, #tb-app canvas, #tb-app svg{height:auto}

/* 2) SATIRLAR SARSIN — 135 sarmasız flex satırı dizginlenir */
  #tb-app .tb-widget [style*="display:flex"],
  #tb-app .tb-widget .tb-row, #tb-app .tb-widget form{flex-wrap:wrap!important}
#tb-app .tb-widget [style*="display:flex"] > *{min-width:0}

/* 3) METİN KESİLMESİN */
  #tb-app .tb-widget, #tb-app .tb-widget p, #tb-app .tb-widget span,
  #tb-app .tb-widget td, #tb-app .tb-widget li, #tb-app .tb-widget b{overflow-wrap:break-word}

/* 4) TABLOLAR YATAY KAYDIRILIR (kesilmez) */
  .tma-tablo-sar{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;
    border-radius:12px;border:1px solid var(--tma-cizgi,#DCE6F2)}
.tma-tablo-sar table{min-width:520px}
#tb-app table{font-size:15px}
#tb-app table th, #tb-app table td{padding:10px 8px;white-space:normal}

/* 5) SIKIŞMA GİDER — nefes payı */
  #tb-app .tb-widget{padding:14px!important}
#tb-app .tb-widget > * + *{margin-top:10px}
#tb-app label{display:block;margin-bottom:4px}
#tb-app .tma-gk-satir, #tb-app .tma-alan-sar{margin-bottom:10px}
#tb-app select, #tb-app input, #tb-app textarea{width:100%;box-sizing:border-box}
#tb-app button{max-width:100%;white-space:normal;overflow-wrap:break-word}

/* 6) SABİT KATMANLAR ÇENTİĞE SAYGILI */
  #tmaAltCubuk{padding-bottom:calc(6px + env(safe-area-inset-bottom))}
#tmaBildirim{bottom:calc(96px + env(safe-area-inset-bottom))}
#tmaUstBar{padding-top:calc(9px + env(safe-area-inset-top))}
}
@media (max-width:380px){
  #tb-app .tb-widget{padding:12px!important}
#tb-app .tb-widget h3{font-size:15px!important}
.tma-kart-ozet{max-width:40%}
#tmaAltCubuk button{font-size:15px}
}
[data-tasma="dizginlendi"]{max-width:100%!important}

/* ═══════════════════════════════════════════════════════════════════════
   v177 MOBİL MENÜ — tam ekran yaprak, gruplu, çıkışı belli
   ═══════════════════════════════════════════════════════════════════════ */
#tmaMenuPerde{display:none}
body.tma-menu-acik #tmaMenuPerde{display:block;position:fixed;inset:0;z-index:180;background:rgba(6,20,38,.55)}
@media (max-width:900px){
  #tb-app .tb-nav.tb-nav-open{
    position:fixed!important;inset:0 0 0 auto!important;top:0!important;width:min(88vw,380px)!important;
    max-height:100vh;max-height:100dvh!important;height:100dvh;border-radius:16px 0 0 20px!important;z-index:185!important;
    display:flex!important;flex-direction:column;gap:2px;padding:0 0 calc(18px + env(safe-area-inset-bottom))!important;
    background:#FFFFFF!important;box-shadow:-16px 0 40px -18px rgba(11,42,74,.35);overflow-y:auto;
    animation:tmaMenuGir .2s ease}
  @keyframes tmaMenuGir{from{transform:translateX(24px);opacity:.7}to{transform:none;opacity:1}}
.tma-menu-bas{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;
    background:#0B2A4A;padding:calc(14px + env(safe-area-inset-top)) 14px 12px;border-bottom:1px solid rgba(255,255,255,.14)}
.tma-menu-capa{font-size:18px}
.tma-menu-ad{flex:1;min-width:0;font-size:16px;font-weight:800;color:#fff;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tma-menu-kapat{flex:0 0 auto;width:44px;height:44px;border-radius:12px;font-size:18px;cursor:pointer;
    background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);color:#fff}
.tma-menu-grup{font-size:15px;font-weight:800;letter-spacing:.06em;color:#9FBCD8;
    padding:16px 16px 6px;text-transform:uppercase}
/* ═══════════════════════════════════════════════════════════════════════
   v262 🔴 MENÜ SATIRLARI GÖRÜNMÜYORDU — KENDİ KURALIMIN 6. İHLALİ
   ([stated] "mobil menu hala sıkıntılı" + ekran görüntüsünde satırlar boş
   gri kutular gibi duruyordu.)
   ÖLÇÜLDÜ (menukontrast.js, 390 ve 1366px): 17 satırın 10'u kontrast
   1.00–1.12 — yani BEYAZ ZEMİN ÜZERİNDE BEYAZA YAKIN YAZI. Kaptan menüyü
   açıyor, satırların yazısını GÖREMİYOR.
   KÖK — çifti iki ayrı blok bölüşmüş: v248'in açık tema kuralı ZEMİNİ
   beyaza çevirmiş (.tma-menu-satir{background:#FFF!important;color:#0B2A4A!important}),
   bu kural ise koyu menü döneminden kalma YAZI RENGİNİ tutuyordu
   (color:#EAF3FA!important) ve daha özgül olduğu için rengi o kazanıyordu.
   Zemin bir bloktan, yazı öbüründen: tam da yasakladığım şey.
   ARTIK ZEMİN VE YAZI AYNI BLOKTA ve açık temayla uyumlu.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir{display:flex!important;align-items:center;gap:12px;min-height:52px;margin:0 10px 4px;padding:12px 14px!important;
    border-radius:12px;font-size:15px!important;font-weight:700;
    color:#0B2A4A!important;background:#FFFFFF!important;
    border:1px solid #D7E3F0;text-align:left}
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir:active{background:#EAF2FB!important}
#tb-app .tb-nav.tb-nav-open a.tma-menu-aktif{background:#FDF0E3!important;border-color:#E9A23B!important;color:#0B2A4A!important}
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir::after{content:"›";margin-left:auto;opacity:1;color:#4A5A6E;font-size:18px}
body.tma-menu-acik{overflow:hidden}
}
@media (prefers-reduced-motion: reduce){ #tb-app .tb-nav.tb-nav-open{animation:none} }

/* ═══ v178 TEK DİZİN: menüde arama + uyarı rozeti ═══ */
.tma-menu-ara-sar{position:sticky;top:64px;z-index:2;background:#0B2A4A;padding:10px 12px 8px}
#tmaMenuAra{width:100%;box-sizing:border-box;min-height:46px;border-radius:12px;padding:10px 14px;
  font-size:16px;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.28);color:#fff}
#tmaMenuAra::placeholder{color:#9FBCD8}
#tmaMenuAra:focus-visible{outline:3px solid #F59E0B;outline-offset:1px}
.tma-menu-rozet{margin-left:8px;min-width:22px;height:22px;padding:0 8px;border-radius:999px;
  background:#DC2626;color:#fff;font-size:15px;font-weight:800;display:inline-flex;
  align-items:center;justify-content:center;flex:0 0 auto}
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir::after{margin-left:6px}

/* ═══════════════════════════════════════════════════════════════════════
   v180 BAŞLIK HARF HARF BÖLÜNMESİ ([stated] SS: "Ma / sra / flar" dikey)
   KÖK: h3 bir ESNEK KUTU (display:flex) + mobil sertleştirmedeki
   overflow-wrap:break-word → dar kapsayıcıda her harf ayrı satıra düştü.
   Başlıklar ve etiketler ARTIK harf ortasından bölünmez.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app h1, #tb-app h2, #tb-app h3, #tb-app h4,
#tb-app .tb-w-head h3, #tb-app label, #tb-app button, #tb-app .tma-menu-satir{overflow-wrap:break-word!important;word-break:normal!important;hyphens:none}
#tb-app .tb-widget .tb-w-head{width:100%;flex-wrap:wrap;min-width:0}
#tb-app .tb-widget .tb-w-head h3{flex:1 1 auto;min-width:8em;white-space:normal}
#tb-app .tb-widget .tb-w-head > div{flex:1 1 auto;min-width:0}
/* tam ekran katmanı akordiyon modunda ASLA görünmez (çift emniyet) */
body:not(.tma-izgara-modu) #tmaTekEkran{display:none!important}
body:not(.tma-izgara-modu).tma-tekkart-modu #tb-app{display:block!important}
body:not(.tma-izgara-modu).tma-tekkart-modu .tb-widget{display:block!important}

/* ═══ v181 KEŞİF TARAMASI BULGULARI — mobil taban ═══
   Tarayıcı şablonda 3 adet 40px altı dokunma hedefi ve 15 adet 10px altı metin buldu.
   Bunlar satır içi stille yazıldığı için ancak buradan zorlanabilir. */
@media (max-width:900px){#tb-app button, #tb-app a[role="button"], #tb-app .tb-btn, #tb-app input[type="submit"]{
    min-height:44px!important}
#tb-app button[style*="height:2"], #tb-app button[style*="height:3"],
  #tb-app a[style*="height:2"], #tb-app a[style*="height:3"]{min-height:44px!important;height:auto!important}
#tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"]{font-size:15px!important}
/* ikon-only küçük düğmeler kare kalsın, ezilmesin */
  #tb-app button:not([style*="width:100%"]){min-width:44px}
}

/* ═══ v181 SON ÜÇ KÜÇÜK DOKUNMA HEDEFİ (tarama bulgusu) ═══
   #tbArsivAc 26px · #tbZekaYenile 26px · .tb-log-foto-add 28px → mobilde parmak
   uçlarıyla ıskalanır. Görsel boyutları korunur, DOKUNMA ALANI 44px'e çıkarılır. */
@media (max-width:900px){#tbArsivAc, #tbZekaYenile, .tb-log-foto-add{
    position:relative;width:auto!important;height:auto!important;
    min-width:44px!important;min-height:44px!important;
    display:inline-flex!important;align-items:center;justify-content:center}
}

/* ═══ v182 SEÇİM YAPILINCA BELİREN ETİKET ═══ */
.tma-sec-etiket{display:block;width:100%;font-size:15px;font-weight:700;color:#4A5A6E;
  margin:0 0 4px 2px;letter-spacing:.01em;line-height:1.2}
@media (max-width:640px){ .tma-sec-etiket{font-size:15px} }

/* ═══════════════════════════════════════════════════════════════════════
   v186 TEK BOYAMA — geç gelen veri için YER AYIRMA
   Şeritler veriden ÖNCE de yüksekliğini korur → veri gelince içerik kaymaz.
   ═══════════════════════════════════════════════════════════════════════ */
#tmaGunCumle{min-height:56px}
#tma-ritim{min-height:132px}
#tmaDonanimSerit{min-height:120px}
#tmaIlkGun{min-height:96px}
#tma-enh-card{min-height:120px}
@media (max-width:640px){
  #tmaGunCumle{min-height:64px}
#tma-ritim{min-height:148px}
#tmaDonanimSerit{min-height:150px}
}
/* perde: veri gelene kadar kapalı, sonra TEK seferde ve yumuşak açılır */
body.tma-sahne-hazirlaniyor #tb-app{opacity:.001!important;transition:none}
body.tma-sahne-hazir #tb-app{opacity:1;transition:opacity .18s ease}
@media (prefers-reduced-motion: reduce){ body.tma-sahne-hazir #tb-app{transition:none} }

/* ═══ v187 YENİ SÜRÜM ŞERİDİ ═══ */
#tmaGuncelleme{position:fixed;left:12px;right:12px;bottom:calc(150px + env(safe-area-inset-bottom));z-index:175;
  display:flex;align-items:center;gap:10px;background:#0B2A4A;color:#EAF3FA;border-radius:14px;
  padding:12px 14px;font-size:15px;font-weight:600;box-shadow:0 12px 28px -14px rgba(0,0,0,.7)}
#tmaGuncelleme span{flex:1;min-width:0}
#tmaGuncelleYenile{flex:0 0 auto;background:#F59E0B;color:#3A2A00;border:none;border-radius:10px;
  padding:10px 14px;font-size:15px;font-weight:800;cursor:pointer;min-height:44px}
#tmaGuncelleKapat{flex:0 0 auto;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);
  color:#fff;border-radius:10px;min-width:44px;min-height:44px;cursor:pointer}
@media (max-width:640px){ #tmaGuncelleme{font-size:15px;flex-wrap:wrap}#tmaGuncelleYenile{flex:1 1 auto} }

/* ═══ v189 TASLAK ŞERİDİ + YAZDIRMA ═══ */
#tmaTaslakSerit{display:flex;align-items:center;gap:10px;background:#EFF6FF;border:1.5px solid #BBD2E8;
  border-radius:12px;padding:10px 14px;margin:0 0 10px;font-size:15px;color:#2C4C7C;font-weight:600}
#tmaTaslakSerit span{flex:1;min-width:0}
#tmaTaslakSil{flex:0 0 auto;background:#fff;border:1.5px solid #BBD2E8;border-radius:10px;
  padding:10px 14px;font-size:15px;font-weight:700;color:#2C4C7C;cursor:pointer;min-height:44px}
@media print{
  /* kâğıtta yalnız İÇERİK: gezinme, çubuklar, katmanlar ve düğmeler gizlenir */
  #tmaUstBar, #tmaAltCubuk, #tmaYaprak, #tmaMenuPerde, #tbNav, #tmaTabbar, #tmaIskelet,
  #tmaBildirim, #tmaGuncelleme, #tmaTaslakSerit, #tmaIlkGun, .tma-kuyruk-rozet{display:none!important}
  body{background:#fff!important}
  #tb-app{opacity:1!important;padding:0!important}
  .tb-widget{break-inside:avoid;page-break-inside:avoid;border:1px solid #ccc!important;box-shadow:none!important}
  .tma-akordiyon.tma-kapali{max-height:none!important;overflow:visible!important}   /* kâğıtta hepsi açık */
  a[href]:after{content:""}
}

/* ═══ v190 ÖNERİ GERİ BİLDİRİMİ ═══ */
.tma-gb-satir{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.tma-gb{flex:0 1 auto;background:rgba(255,255,255,.7);border:1px solid #C7D6E8;border-radius:999px;
  padding:8px 12px;font-size:15px;font-weight:700;color:#33475C;cursor:pointer;min-height:36px}
.tma-gb:active{background:#EEF3F9}
.tma-gb-tesekkur{font-size:15px;font-weight:700;color:#1D6B3C;background:#E7F5EC;
  border-radius:999px;padding:8px 12px;display:inline-block}
@media (max-width:640px){ .tma-gb{flex:1 1 auto;text-align:center;min-height:40px} }

/* ═══════════════════════════════════════════════════════════════════════
   v191 — EKRAN GÖRÜNTÜLERİNDEN ÇIKAN ALTI DÜZELTME
   ═══════════════════════════════════════════════════════════════════════ */

/* 1) DONANIM ŞERİDİ İKİ SÜTUN ([stated] "iki sütun olsun bu alan")
      Alt alta 6 kalem ekranı uzatıyordu; artık ikişerli, geniş ekranda üçerli. */
#tmaDonanimSerit{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;align-items:start}
#tmaDonanimSerit > *{min-width:0}
@media (min-width:700px){ #tmaDonanimSerit{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:1000px){ #tmaDonanimSerit{grid-template-columns:repeat(6,minmax(0,1fr))} }
#tmaDonanimSerit .tma-dn-hucre{display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 6px;background:#F7FAFD;border:1px solid #E3EBF4;border-radius:12px}

/* 2) HARF HARF BÖLÜNME KESİN ÇÖZÜM ([stated] SS: "A/k/ü/G/r/u/b/u" dikey)
      KÖK: dar sütuna düşen METİN + "her yerden kırılabilir" kuralı.
      Artık hiçbir görünür metin harf ortasından bölünmez; dar kolon kendini genişletir. */
#tb-app, #tb-app *{word-break:normal!important;hyphens:none!important}
#tb-app td, #tb-app th, #tb-app label, #tb-app span, #tb-app p, #tb-app li, #tb-app div{
  overflow-wrap:break-word;min-width:0}
#tb-app td:first-child, #tb-app th:first-child{min-width:9em}
#tb-app .tb-list-item, #tb-app .tma-satir{min-width:0}
/* uzun bağlantı/kod gibi jetonlar İSTİSNA (sadece onlar her yerden kırılır) */
#tb-app a[href^="http"], #tb-app code, #tb-app .tma-uzun-jeton{overflow-wrap:anywhere}

/* 3) MASAÜSTÜNDE MENÜ YOKTU ([stated] "desktopta menu yok")
      Üst şerit ≤900px'e kilitliydi; artık HER ekranda var (masaüstünde daha ferah). */
@media (min-width:901px){
  #tmaUstBar{display:flex!important;position:sticky;top:0;z-index:100;
    border-radius:0 0 14px 14px;padding:10px 16px}
  #tb-app .tb-nav.tb-nav-open{
    position:fixed!important;inset:0 0 0 auto!important;width:min(380px,92vw)!important;
    height:100dvh;border-radius:16px 0 0 20px!important;z-index:185!important;
    display:flex!important;flex-direction:column;overflow-y:auto;background:#FFFFFF!important}
  body.tma-menu-acik #tmaMenuPerde{display:block;position:fixed;inset:0;z-index:180;background:rgba(6,20,38,.5)}
  .tma-menu-bas{position:sticky;top:0;background:#FFFFFF;border-bottom:1px solid #E7EDF5;padding:16px 14px 12px;
    display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,.14)}
  /* v262: mobil kopya da aynı hatayı taşıyordu (aynı kök iki yerde). */
  #tb-app .tb-nav.tb-nav-open a.tma-menu-satir{display:flex!important;align-items:center;gap:12px;
    min-height:48px;margin:0 10px 4px;padding:12px 14px!important;border-radius:12px;
    font-size:15px!important;font-weight:700;color:#0B2A4A!important;background:#FFFFFF!important;
    border:1px solid #D7E3F0}
  .tma-menu-grup{font-size:15px;font-weight:800;letter-spacing:.06em;color:#9FBCD8;padding:16px 16px 6px}
}

/* 4) MODAL ARTIK YOK — kalıntı katman her ölçüde kilitli */
#tmaTekEkran{display:none!important}
body.tma-tekkart-modu #tb-app, body.tma-tekkart-modu .tb-widget{display:block!important}

/* ═══ v192 HEDEF VURGUSU — "nereye geldim" belli olsun ═══ */
.tma-hedef-vurgu{animation:tmaHedefYanip 1.4s ease}
@keyframes tmaHedefYanip{
  0%{box-shadow:0 0 0 0 rgba(245,158,11,0)}
  25%{box-shadow:0 0 0 4px rgba(245,158,11,.55)}
  100%{box-shadow:0 0 0 0 rgba(245,158,11,0)}
}
@media (prefers-reduced-motion: reduce){ .tma-hedef-vurgu{animation:none;outline:3px solid rgba(245,158,11,.6)} }

/* ═══ v193 GÜNLÜK İŞ ŞERİDİ — her ekranda, JS'siz de çalışır ═══ */
#tmaGunlukSerit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 12px}
#tmaGunlukSerit .tma-gs-dugme{display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:52px;padding:12px 10px;border-radius:14px;text-decoration:none;
  background:#0B2A4A;color:#EAF3FA!important;font-size:15px;font-weight:800;
  border:1px solid rgba(255,255,255,.14);text-align:center}
#tmaGunlukSerit .tma-gs-dugme:active{background:#0E3A66}
#tmaGunlukSerit .tma-gs-dugme:focus-visible{outline:3px solid #F59E0B;outline-offset:2px}
#tmaGunlukSerit .tma-gs-dugme span{white-space:nowrap}
@media (max-width:380px){
  #tmaGunlukSerit .tma-gs-dugme{font-size:15px;min-height:48px;gap:4px}
}
@media print{ #tmaGunlukSerit{display:none} }

/* ═══════════════════════════════════════════════════════════════════════
   v196 — DÖRT EKRAN BULGUSU
   ═══════════════════════════════════════════════════════════════════════ */

/* 1) KOYU KARTLARDA DÜĞME/ALAN GÖRÜNÜRLÜĞÜ (SS: bomboş beyaz 'Gönder') */
#tb-hizmetler button, #tb-hizmetler .tb-btn, #tb-hizmetler input[type=submit],
#tb-al-kaptan button, #tb-al-kaptan .tb-btn,
#tma-enh-card button:not(.tma-gb), #tmaUstBar button{
  background:#F59E0B!important;color:#3A2A00!important;border:1px solid rgba(0,0,0,.12)!important;
  font-weight:800!important;min-height:44px;border-radius:10px;padding:10px 16px}
#tb-hizmetler input[type=text], #tb-hizmetler textarea, #tb-hizmetler input:not([type]),
#tb-al-kaptan input[type=text], #tb-al-kaptan textarea{
  background:#FFFFFF!important;color:#0F2438!important;border:1px solid #CBD9EC!important;
  min-height:46px;border-radius:10px;padding:10px 12px;font-size:16px}
#tb-hizmetler ::placeholder, #tb-al-kaptan ::placeholder{color:#5A6B80!important;opacity:1}

/* 2) MASAÜSTÜNDE MENÜ KAPALI BAŞLAR — solda takılı kalmasın (SS 1-2-3) */
@media (min-width:901px){
  #tb-app .tb-nav:not(.tb-nav-open){display:none!important}
  #tb-app .tb-nav.tb-nav-open{
    position:fixed!important;top:0!important;right:0!important;left:auto!important;bottom:0!important;
    width:min(380px,92vw)!important;margin:0!important;z-index:185!important}
}

/* 3) DAR HÜCREDE HARF BÖLÜNMESİ — CSS tabanı (avcı ayrıca ölçerek düzeltir) */
#tb-app label, #tb-app .tb-w-body span, #tb-app .tb-w-body b{min-width:0}
/* v258: SABİT 7em yerine min(7em,100%) — niyet aynı (dar hücrede harf
   bölünmesin) ama taban ARTIK KABI AŞAMAZ. %200 yakınlaştırmada (195px)
   "Onay Bekliyor" rozetleri ve kart adları kaptan 47px taşırıyordu; aynı
   kök daha önce zil yazısında ve günlük şeritte de çıkmıştı. Üç ayrı yerde
   yama yerine kuralın kendisi güvenli hâle getirildi. */
#tb-app [style*="display:flex"] > label,
#tb-app [style*="display:flex"] > span:not([class*="mik"]):not([class*="rozet"]),
#tb-app [style*="display:flex"] > b{flex:1 1 auto;min-width:min(7em,100%);white-space:normal}
#tb-app [style*="display:grid"] > label, #tb-app [style*="display:grid"] > span{min-width:min(7em,100%)}

/* 4) KUMANYA SATIRI — ad, miktar ve not birbirine yapışmasın (SS 4) */
#tma-kumanya-kart .tma-km-satir, #tb-alisveris .tma-km-satir{gap:10px!important;padding:12px 12px!important;align-items:center}
#tma-kumanya-kart .tma-km-ad, #tb-alisveris .tma-km-ad{flex:1 1 60%;min-width:9em;line-height:1.45}
#tma-kumanya-kart .tma-km-mik, #tb-alisveris .tma-km-mik{flex:0 0 auto;margin-left:auto;padding-left:8px}
#tma-kumanya-kart .tma-km-not, #tb-alisveris .tma-km-not{flex:1 1 100%;margin-top:2px;line-height:1.5}
#tma-kumanya-kart input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;margin-right:4px}


/* ═══════════════════════════════════════════════════════════════════════
   v202 DÜĞME HİYERARŞİSİ ([stated] "diğer butonlar neden bu kadar yakın ve
   sarı; daha şık ve işlevsel olmalı")
   SORUN: HIZLI ERİŞİM listesinde (#tma-he) satırların hepsi AMBER, tam
   genişlik, dip dibe → hiçbiri öne çıkmıyor, göz nereye bakacağını
   bilmiyor. Ayrıca "Günü kapat" dört ayrı yerde tekrar ediyordu.
   İLKE: AMBER = TEK BİRİNCİL EYLEM. Gerisi sakin, ikili ızgara, nefesli.
   DOĞRU SEÇİCİLER: #tma-he / .tma-he-satir (ilk denememde uydurma kimlik
   kullanmıştım — protokolün cihaz denetimi yakaladı).
   ═══════════════════════════════════════════════════════════════════════ */
#tma-he{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px!important;margin-top:14px!important;padding-top:12px!important}
#tma-he .tma-he-baslik{grid-column:1 / -1;font-size:15px!important;letter-spacing:.06em;
  color:#64748B;margin:0 0 2px 2px}
#tma-he .tma-he-satir{
  background:rgba(255,255,255,.06)!important;color:#EAF3FA!important;
  border:1px solid rgba(255,255,255,.18)!important;border-radius:12px!important;
  min-height:48px;padding:12px 12px!important;font-size:15px!important;font-weight:700!important;
  display:flex!important;align-items:center;justify-content:center;gap:6px;
  text-align:center;line-height:1.3;width:auto!important;box-shadow:none!important}
#tma-he .tma-he-satir:active{background:rgba(255,255,255,.16)!important}
/* TEK BİRİNCİL EYLEM: amber + tam genişlik */
#tma-he .tma-he-satir.tma-birincil{
  grid-column:1 / -1;background:#F59E0B!important;color:#3A2A00!important;
  border:none!important;font-weight:800!important;font-size:15px!important;min-height:52px}
/* "Daha fazla" ayırıcı: sakin, tam genişlik */
#tma-he .tma-he-satir.tma-he-daha{
  grid-column:1 / -1;background:transparent!important;color:#9FBCD8!important;
  border:1px dashed rgba(255,255,255,.25)!important;font-weight:600!important;min-height:42px}
@media (max-width:360px){ #tma-he{grid-template-columns:1fr} }
/* Panel içi amber yığılmasını kır: ENH kartındaki geniş düğmeler sakinleşir */
#tma-enh-card .tma-enh-btn.tma-btn-genis:not(.tma-birincil){
  background:rgba(255,255,255,.07)!important;color:#EAF3FA!important;
  border:1px solid rgba(255,255,255,.2)!important;font-weight:700!important}
#tmaGunlukSerit{margin-bottom:16px}

/* ═══════════════════════════════════════════════════════════════════════
   v203 SİTE BAŞLIĞI — CSS KALKANI (JS avcısının yedeği)
   Panel sayfasında temanın kendi başlığı/altbilgisi HER EKRAN BOYUNDA
   gizlenir. Panelin KENDİ öğeleri (id'si tma/tb ile başlayanlar) korunur.
   ═══════════════════════════════════════════════════════════════════════ */
body.tma-panel-sayfasi > header,
body.tma-panel-sayfasi header.site-header,
body.tma-panel-sayfasi #masthead,
body.tma-panel-sayfasi .site-header,
body.tma-panel-sayfasi .main-header,
body.tma-panel-sayfasi .elementor-location-header,
body.tma-panel-sayfasi [role="banner"]:not([id^="tma"]):not([id^="tb"]),
body.tma-panel-sayfasi .mobile-header,
body.tma-panel-sayfasi .mobile-nav-bar,
body.tma-panel-sayfasi .site-branding-bar{
  display:none!important;height:0!important;overflow:hidden!important;visibility:hidden!important}
/* yapışkan/sabit tema barları — mobilde ekranın tepesine yapışanlar */
body.tma-panel-sayfasi [class*="header"]:not([id^="tma"]):not([id^="tb"]):not(.tb-w-head){
  position:static!important}
body.tma-panel-sayfasi{padding-top:0!important;margin-top:0!important}

/* ═══ v204 SAHA TESTİ arayüzü — yalnız ?saha=1 ile belirir ═══ */
#tmaSahaBtn{position:fixed;right:12px;bottom:calc(var(--tma-fab-taban) + var(--tma-fab-basamak) * 2);z-index:200;background:#0B2A4A;color:#FFD98A;
  border:2px solid #F59E0B;border-radius:14px;padding:12px 16px;font-size:15px;font-weight:800;
  min-height:48px;box-shadow:0 10px 24px -8px rgba(0,0,0,.5);cursor:pointer}
#tmaSahaKutu{position:fixed;inset:auto 8px 8px 8px;z-index:210;background:#0B2A4A;color:#EAF3FA;
  border:2px solid #F59E0B;border-radius:14px;padding:12px;max-height:70vh;display:flex;flex-direction:column;gap:8px;
  box-shadow:0 -10px 30px -8px rgba(0,0,0,.6)}
#tmaSahaBaslik{font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:8px}
#tmaSahaKapat{background:transparent;color:#EAF3FA;border:none;font-size:20px;min-width:44px;min-height:44px;cursor:pointer}
#tmaSahaMetin{flex:1;min-height:180px;background:#0F2438;color:#DBEAFE;border:1px solid rgba(255,255,255,.2);
  border-radius:10px;padding:10px;font-family:monospace;font-size:15px;line-height:1.45;white-space:pre;overflow:auto}
#tmaSahaKopyala{background:#F59E0B;color:#3A2A00;border:none;border-radius:12px;min-height:52px;
  font-size:16px;font-weight:800;cursor:pointer}
@media print{#tmaSahaBtn,#tmaSahaKutu{display:none!important}}

/* ═══════════════════════════════════════════════════════════════════════
   v206 TASARIM JETONLARI — TEK OTORİTE
   ([stated] "eklentiyi çapraz testlere sok: tasarım ux kod akış süreç…")
   ÇAPRAZ DENETİM BULGUSU: 173 renk · 30 yazı boyu · 12 köşe yarıçapı.
   40 turda üst üste yazılan katmanların bıraktığı dağınıklık — göz farkı
   seçmiyor ama dil tek değil, her yeni kural yenisini doğuruyordu.
   YAPILAN: yazı ölçeği 9 basamağa, köşe 5 basamağa nicemlendi; TEK
   KULLANIMLIK renkler göz farkı seçilemeyen (<26 mesafe) ana renklere
   çekildi. Görsel sonuç neredeyse birebir aynı — dosya tek otoriteli.
   BUNDAN SONRA: yeni kural yazarken bu jetonları kullan, yeni değer uydurma.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app{
  --tma-yazi-kucuk:15px;
  --tma-yazi-orta:15px;
  --tma-lacivert:#0B2A4A; --tma-cizgi:#E2E8F0;
}

/* ═══════════════════════════════════════════════════════════════════════
   v206 OKUNABİLİRLİK TABANI — NİCEMLEME HASARININ ONARIMI
   Tasarım dilini sadeleştirirken iki şeyi kırmışım:
   (1) satır içi küçük yazı AVCISININ seçicisi de nicemlendi → avcı kendi
       hedefini arar hale geldi (10px yazılar artık yakalanmıyordu);
   (2) kart gövdesinin ≥14.5px okunabilirlik güvencesi kayboldu.
   KİTLE 40+ YAŞ VE GÖZLERİ BOZUK — bu taban pazarlık konusu değil.
   DERS: otomatik dönüşüm yaparken SEÇİCİ ile BİLDİRİM ayrı tutulmalı.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-w-body, #tb-app .tb-w-body p, #tb-app .tb-w-body li{font-size:15px}
#tb-app .tb-w-body small, #tb-app .tb-w-sub{font-size:15px}
#tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"],
#tb-app [style*="font-size:15px"], #tb-app [style*="font-size:15px"],
#tb-app [style*="font-size:15px"]{font-size:15px!important}

/* ═══════════════════════════════════════════════════════════════════════
   v208 DENEYİM SUSTURMASI — metin kaybolmaz, KISALIR
   acemi (0-2 jurnal): her şey görünür · alışkan (3-14): uzun öğreticiler
   katlanır · usta (15+): karşılama ve vaaz susar, VERİ kalır.
   İLKE: deneyimliye saygı = az konuşmak. Ama EMNİYET uyarıları hiç susmaz.
   ═══════════════════════════════════════════════════════════════════════ */
body.tma-usta #tmaIlkGun,
body.tma-usta .tma-ogretici,
body.tma-usta .tma-yd-bolum:not(:first-child){display:none!important}
body.tma-usta .tb-w-sub{font-size:15px;opacity:.75}
body.tma-usta .tma-gc-alt{display:none!important}
body.tma-aliskan .tma-ogretici{max-height:3.2em;overflow:hidden}
body.tma-aliskan #tmaIlkGun{opacity:.9}
/* EMNİYET İSTİSNASI: kritik uyarılar her seviyede tam görünür */
body.tma-usta .tma-enh-alert.danger,
body.tma-usta .tma-uyari-kritik,
body.tma-aliskan .tma-enh-alert.danger{display:block!important;opacity:1!important;max-height:none!important}

/* ═══════════════════════════════════════════════════════════════════════
   v210 ÜÇ UX OLGUNLAŞTIRMASI — geri al · neredeyim · yazı boyu
   ═══════════════════════════════════════════════════════════════════════ */
/* 1) GERİ AL şeridi — alt çubuğun üstünde, çentik güvenli */
#tmaGeriAl{position:fixed;left:10px;right:10px;bottom:calc(76px + env(safe-area-inset-bottom,0px));
  z-index:190;background:#0B2A4A;color:#EAF3FA;border:1px solid rgba(255,255,255,.22);
  border-radius:14px;padding:12px 12px 12px 16px;display:flex;align-items:center;gap:10px;
  box-shadow:0 12px 28px -10px rgba(0,0,0,.55);font-size:15px;font-weight:600}
#tmaGeriAl .tma-ga-metin{flex:1;min-width:0;line-height:1.35}
#tmaGeriAl .tma-ga-btn{background:#F59E0B;color:#3A2A00;border:none;border-radius:10px;
  min-height:44px;padding:10px 14px;font-size:15px;font-weight:800;cursor:pointer;flex:0 0 auto}
#tmaGeriAl .tma-ga-kapat{background:transparent;color:#9FBCD8;border:none;min-width:44px;min-height:44px;
  font-size:20px;cursor:pointer;flex:0 0 auto}
@media (min-width:901px){#tmaGeriAl{left:auto;right:20px;bottom:20px;max-width:460px}}

/* 2) NEREDEYİM şeridi — üst şeridin hemen altında, ince ve sessiz */
/* v210 DÜZELTME: z150 zaten #tmaYaprak'ta kullanılıyordu — kendi eklediğim
   katman ÇAKIŞMA yarattı ve cihaz süiti yakaladı. Katman haritasında boş olan
   z110 verildi: üst şeridin (z100) üstünde, menü yaprağının (z120) altında —
   yani menü açılınca şerit onun ARKASINDA kalır, doğru olan da budur. */
#tmaNeredeyim{position:fixed;top:calc(56px + env(safe-area-inset-top,0px));left:0;right:0;z-index:110;
  background:rgba(11,42,74,.94);color:#CFE6FA;font-size:15px;font-weight:700;letter-spacing:.02em;
  padding:8px 14px;opacity:0;transform:translateY(-8px);pointer-events:none;
  transition:opacity .18s,transform .18s;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tmaNeredeyim.tma-nrd-acik{opacity:1;transform:none;pointer-events:auto}
@media print{#tmaNeredeyim,#tmaGeriAl{display:none!important}}
@media (prefers-reduced-motion:reduce){#tmaNeredeyim{transition:none}}

/* 3) YAZI BOYU düğmesi + iki kademe büyütme (yerleşim bozulmadan) */
#tmaYaziBoyu{background:rgba(255,255,255,.12);color:#EAF3FA;border:1px solid rgba(255,255,255,.3);
  border-radius:10px;min-width:44px;min-height:44px;font-size:15px;font-weight:800;cursor:pointer;margin-left:6px}
body.tma-yazi-buyuk #tb-app{font-size:106%}
body.tma-yazi-buyuk #tb-app .tb-w-body,
body.tma-yazi-buyuk #tb-app .tb-widget{font-size:16px}
body.tma-yazi-cok-buyuk #tb-app{font-size:114%}
body.tma-yazi-cok-buyuk #tb-app .tb-w-body,
body.tma-yazi-cok-buyuk #tb-app .tb-widget{font-size:18px}
body.tma-yazi-cok-buyuk #tb-app .tma-he-satir{min-height:54px}
/* büyütmede taşma olmasın */
body.tma-yazi-buyuk #tb-app *, body.tma-yazi-cok-buyuk #tb-app *{min-width:0}

/* ═══ v212 ARIZA & HASAR DEFTERİ ═══ */
#tb-ariza .tma-ar-satir{border:1px solid var(--surface-alt);border-radius:12px;padding:12px 12px;margin-bottom:10px;background:#fff}
#tb-ariza .tma-ar-ust{font-size:15px;line-height:1.35;margin-bottom:4px}
#tb-ariza .tma-ar-alt{font-size:15px;color:var(--ink-soft);margin-bottom:4px}
#tb-ariza .tma-ar-not{font-size:15px;line-height:1.45;margin-bottom:8px}
#tb-ariza .tma-ar-acik{color:#B4692A;font-weight:800;font-size:15px}
#tb-ariza .tma-ar-ok{color:#5A7A2E;font-weight:800;font-size:15px}
#tb-ariza .tma-ar-dugmeler{display:flex;gap:8px;flex-wrap:wrap}
#tb-ariza .tma-ar-btn{background:#F4F8FC;color:#0B2A4A;border:1px solid #D4E0EE;border-radius:10px;
  min-height:44px;padding:10px 14px;font-size:15px;font-weight:700;cursor:pointer}
#tb-ariza .tb-quick-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
#tb-ariza .tb-quick-form > *{flex:1 1 46%;min-width:0;min-height:46px;font-size:15px}
#tb-ariza #tbArizaKaydet{min-height:52px;font-size:15px;font-weight:800;width:100%}

/* ═══ v215 TEKNE SEÇİM KAPISI — sessiz "—" yerine ne yapılacağını söyler ═══ */
#tmaTekneKapisi{background:linear-gradient(180deg,#0B2A4A,#0B2A4A);color:#EAF3FA;
  border:2px solid #F59E0B;border-radius:16px;padding:16px;margin:0 0 16px;
  box-shadow:0 10px 26px -12px rgba(0,0,0,.45)}
#tmaTekneKapisi .tma-tk-baslik{font-size:18px;font-weight:800;margin-bottom:6px;line-height:1.3}
#tmaTekneKapisi .tma-tk-alt{font-size:15px;line-height:1.5;color:#CFE6FA;margin-bottom:12px}
#tmaTekneKapisi .tma-tk-satir{display:flex;gap:10px;flex-wrap:wrap}
#tmaTekneKapisi select{flex:1 1 55%;min-width:0;min-height:52px;font-size:16px;
  border-radius:12px;border:1px solid rgba(255,255,255,.28);background:#fff;color:#0B2A4A;padding:10px 12px}
#tmaTekneKapisi .tma-tk-ekle{flex:0 0 auto;min-height:52px;padding:12px 18px;font-size:15px;font-weight:800;
  background:#F59E0B;color:#3A2A00;border:none;border-radius:12px;cursor:pointer}
@media (max-width:380px){#tmaTekneKapisi select,#tmaTekneKapisi .tma-tk-ekle{flex:1 1 100%}}
.tma-bos-sebep{font-size:15px;color:var(--ink-soft,#64748B);line-height:1.45;margin-top:8px;
  padding-top:8px;border-top:1px dashed rgba(11,42,74,.15)}
/* tekne seçilmemişken boş değerler soluk — "bozuk" değil "bekliyor" hissi */
body.tma-tekne-yok #tmaDonanimSerit{opacity:.72}
@media print{#tmaTekneKapisi{display:none!important}}

/* ═══════════════════════════════════════════════════════════════════════
   v217 YERLEŞİM SERTLEŞTİRME — çakışma / üst üste binme / taşma
   ═══════════════════════════════════════════════════════════════════════ */
/* 1) NEREDEYİM ŞERİDİ ARTIK METNİ ÖRTMÜYOR (kendi hatam: tam genişlik
      sabit bant içeriğin üstüne biniyordu — SS'lerdeki koyu "Soru & Cevap"
      bandı buydu). Artık sağa yaslı KOMPAKT ROZET: metnin çoğu görünür kalır. */
#tmaNeredeyim{left:auto!important;right:10px!important;max-width:62vw;
  border-radius:0 0 12px 12px;padding:6px 12px!important;font-size:15px!important;
  box-shadow:0 6px 16px -8px rgba(0,0,0,.5)}
@media (min-width:901px){#tmaNeredeyim{right:20px;max-width:320px}}
/* çıpa ile gidilen kart şeridin altında kalmasın */
html{scroll-padding-top:104px}

/* 2) ÜST ARAÇ ŞERİDİ — etiketler kutudan taşıp komşusunun üstüne binmesin */
.tb-mobile-bar > *{min-width:0;flex-shrink:0}
.tb-mobile-bar button, .tb-mobile-bar a, .tb-mobile-bar select{
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v258: ≤420px'te etiketleri komple gizleyen kural KALDIRILDI — boş kutu üretiyordu.
   Dar ekran davranışı artık tek yerde: v258 ızgara bloğu (yalnız zil yazısı düşer). */

/* 3) GENEL TAŞMA KALKANI — kutudan taşan metin komşusunu ezmesin */
#tb-app .tb-widget, #tb-app .tb-w-body, #tb-app .tb-quick-form > *{min-width:0}
#tb-app .tma-he-satir, #tb-app .tb-hizli-btn{overflow:hidden;text-overflow:ellipsis}
#tb-app .tb-quick-form{align-items:stretch}
/* sabit katmanların hiçbiri metnin üstünde tam genişlik durmasın */
#tmaGeriAl{max-width:calc(100% - 20px)}

/* ═══════════════════════════════════════════════════════════════════════
   v218 ÜST ŞERİT — İKİ SATIRLI IZGARA
   ([stated] "hepsi birbirine karışmıştı… arama kutusu çok dar, TAM SATIR
   yapacaktık")
   v217'de arama kutusunu ESNETMİŞTİM (flex:1 1 auto) — dört öğe aynı satırı
   paylaşınca kutu yine daralıyor ve etiketler birbirine giriyordu. Doğrusu:
   ARAMA KENDİ SATIRINDA TAM GENİŞLİK, altında üç eşit düğme.
   Esneklik yerine IZGARA: satır sayısı sabit, öğeler birbirini ezemez.
   ═══════════════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════════════
   v258 ÜST ŞERİT — ARAMA + MENÜ AYNI SATIRDA (v218 ızgarası yenilendi)
   ([stated] "arama kutusu yanına menuyu koy")
   v218 aramaya TAM SATIR vermişti; menü ister istemez ALT SATIRA düşüyordu.
   Artık ızgara SATIR VE SÜTUNU AÇIKÇA verir — DOM sırası ne olursa olsun
   yerleşim aynı: 1. satır [arama | ☰ Menü], 2. satır [⇄ Tekne | 🔔].
   Açık yerleşim = otomatik yerleştirmenin sürprizi yok.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-mobile-bar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 132px;
  gap:10px;
  align-items:stretch;
  overflow:visible!important;
  padding:10px;
  margin:0 0 12px}
/* 1. SATIR: arama (esner) + menü (sabit) */
#tb-app .tb-mobile-bar #tbGlobalSearchWrap{
  grid-column:1;grid-row:1;
  width:100%;max-width:none!important;
  margin:0!important;min-width:0}
#tb-app .tb-mobile-bar #tbGlobalSearch{
  width:100%;box-sizing:border-box;
  min-height:48px;font-size:16px!important;    /* 16px: iOS'ta odakta yakınlaştırma yapmaz */
  padding:12px 14px!important;border-radius:12px}
#tb-app .tb-mobile-bar > #tbNavToggle{grid-column:2;grid-row:1}
/* 2. SATIR: tekne değiştir + bildirimler */
#tb-app .tb-mobile-bar > #tbBoatSwitcher{grid-column:1;grid-row:2}
#tb-app .tb-mobile-bar > #tbNotifBell{grid-column:2;grid-row:2}
/* ortak düğme dili — hepsi aynı yükseklik, aynı hizada */
#tb-app .tb-mobile-bar > #tbBoatSwitcher,
#tb-app .tb-mobile-bar > #tbNotifBell,
#tb-app .tb-mobile-bar > #tbNavToggle,
#tb-app .tb-mobile-bar > button{
  width:100%!important;max-width:none!important;
  margin:0!important;min-height:48px;height:48px;
  display:flex!important;align-items:center;justify-content:center;gap:6px;
  box-sizing:border-box;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-size:15px!important}
/* v301: TEK TEKNE → değiştirici kabı kapanır. Ortak düğme dilindeki
   display:flex!important satır-içi 'none'u eziyordu; damgalı kural onu yener.
   Yoksa mobil bantta koyu BOŞ dikdörtgen kalıyor (ekranda ölçüldü). */
#tb-app .tb-mobile-bar > #tbBoatSwitcher[data-tma-gizli="1"],
#tmaUstDenetim > #tbBoatSwitcher[data-tma-gizli="1"]{display:none!important}
/* değiştirici yoksa bildirim tüm genişliği alır — yoksa sol sütun boş kalıyordu */
#tb-app .tb-mobile-bar > #tbBoatSwitcher[data-tma-gizli="1"] ~ #tbNotifBell{grid-column:1 / -1!important}
/* v302: tek düğme kalınca bant da incelir. 112px koyu bant TEK bildirim
   düğmesi için ayrılıyordu — ekranın en değerli ilk perdesinde bu kadar
   yer bir düğmeye ayrılamaz (envanterde ölçüldü). */
#tb-app .tb-mobile-bar:has(> #tbBoatSwitcher[data-tma-gizli="1"]),
#tb-app .tb-mobile-bar[data-tma-tek-dugme="1"]{padding:6px 10px;margin:0 0 8px}
#tb-app .tb-mobile-bar:has(> #tbBoatSwitcher[data-tma-gizli="1"]) > #tbNotifBell,
#tb-app .tb-mobile-bar[data-tma-tek-dugme="1"] > #tbNotifBell{
  min-height:44px!important;height:44px!important}
/* v301: içi boşken özet şeridi yer kaplamaz (boş gri kutu olarak görünüyordu) */
#tmaOzetSatir:empty{display:none!important;min-height:0!important;margin:0!important}
#tb-app .tb-mobile-bar #tbBrandSub{
  justify-content:center;width:100%;min-height:48px;height:48px;font-size:15px!important;
  background:rgba(255,255,255,.10);border-radius:12px;padding:0 10px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tb-app .tb-mobile-bar #tbNotifBell{
  width:100%!important;height:48px!important;border-radius:12px;position:relative}
#tb-app .tb-mobile-bar #tbNotifBell > div{
  display:flex;align-items:center;justify-content:center;gap:6px;
  width:100%;min-width:0;overflow:hidden}
/* v258 ÖLÇÜLDÜ: zilin iç yazısı 20px'ti (şablonun eski mobil kuralı), komşu
   düğmeler 13.5px — şeritte tek başına kocaman duruyordu. Tek yazı ölçeği. */
.tma-zil-ikon{flex:0 0 auto;font-size:15px!important}
.tma-zil-ad{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px!important;font-weight:700}
#tb-app .tb-mobile-bar #tbNotifBell span{font-size:15px}
/* açılır paneller ızgarayı taşırmasın */
#tb-app .tb-mobile-bar #tbBoatSwitcherPanel,
#tb-app .tb-mobile-bar #tbGlobalSearchPanel{
  position:absolute;z-index:120;max-width:min(92vw,360px)}
/* ÇOK DAR EKRAN: yalnız etiket kısalır, satır düzeni bozulmaz */
@media (max-width:400px){
  #tb-app .tb-mobile-bar{gap:8px;padding:8px;grid-template-columns:minmax(0,1fr) 124px}
  #tb-app .tb-mobile-bar > *{font-size:15px!important}
}
/* ÇOK DAR (≤340px — 320'lik telefon ya da %200 yakınlaştırma): iki sütun
   kalırsa etiketler üç noktaya düşüyor ("⇄ Tekne Değiştir" 91px istiyor,
   49px buluyor). Bu genişlikte TEK SÜTUN: her denetim tam satır, her etiket
   tam okunur. Kısaltmak yerine ALT ALTA. */
@media (max-width:340px){
  #tb-app .tb-mobile-bar{grid-template-columns:minmax(0,1fr) 92px}
  #tb-app .tb-mobile-bar .tma-zil-ad{display:none}
  #tb-app .tb-mobile-bar #tbNotifBell .tma-zil-ikon{font-size:20px}
}
/* 260px altı yalnız %200 yakınlaştırmada görülür: iki sütun kalırsa
   "⇄ Tekne Değiştir" 91px ister 49px bulur. Orada tek sütun. */
@media (max-width:260px){
  #tb-app .tb-mobile-bar{grid-template-columns:minmax(0,1fr);gap:8px}
  #tb-app .tb-mobile-bar .tma-zil-ad{display:inline}
  #tb-app .tb-mobile-bar #tbGlobalSearchWrap{grid-column:1;grid-row:1}
  #tb-app .tb-mobile-bar > #tbNavToggle{grid-column:1;grid-row:2}
  #tb-app .tb-mobile-bar > #tbBoatSwitcher{grid-column:1;grid-row:3}
  #tb-app .tb-mobile-bar > #tbNotifBell{grid-column:1;grid-row:4}
}
/* ═══ MASAÜSTÜ: DÖRT DENETİM TAM GENİŞLİKTEKİ ÜST BARDA ═══
   232px'lik yan sütuna dört öğe sığmıyordu (ölçüldü: x=467'ye taşıyor,
   menü aramanın üstüne biniyordu). Denetimler üst bara taşınır; arama
   gerçekten geniş, menü gerçekten yanında. Menü yaprağı ve paneller
   #tb-app içinde kalır (kapsam kuralları bozulmasın). */
@media (min-width:901px){
  #tmaUstBar[data-tma-serit="1"]{flex-wrap:nowrap;gap:12px;padding:10px 18px}
  #tmaUstDenetim{display:flex;flex:1 1 auto;min-width:0;align-items:center;gap:10px;justify-content:flex-end}
  #tmaUstDenetim #tbGlobalSearchWrap{position:relative;flex:1 1 auto;min-width:0;max-width:460px;margin:0!important}
  #tmaUstDenetim #tbGlobalSearch{width:100%;box-sizing:border-box;height:44px;min-height:44px;
    font-size:15px;padding:0 14px;border-radius:12px;background:#fff;border:1.5px solid rgba(255,255,255,.35)}
  #tmaUstDenetim > #tbNavToggle,
  #tmaUstDenetim > #tbBoatSwitcher,
  #tmaUstDenetim > #tbNotifBell{
    flex:0 0 auto;margin:0!important;height:44px;min-height:44px;
    display:flex!important;align-items:center;justify-content:center;gap:6px;
    border-radius:12px;box-sizing:border-box;
    font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
  #tmaUstDenetim > #tbNavToggle{width:118px!important;flex:0 0 118px;background:#F5B301!important;color:#0B2A4A!important;border:none!important;font-weight:800;padding:0!important}
  #tmaUstDenetim > #tbBoatSwitcher{width:170px!important;flex:0 0 170px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);padding:0 10px!important}
  #tmaUstDenetim #tbBrandSub{width:100%;justify-content:center;color:#FFFFFF!important;font-size:15px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;padding:0}
  #tmaUstDenetim > #tbNotifBell{width:150px!important;flex:0 0 150px;background:#fff;border:1px solid rgba(255,255,255,.3);color:#0B2A4A;padding:0 10px!important}
  #tmaUstDenetim > #tbNotifBell > div{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-width:0;
    color:#0B2A4A;font-size:15px;font-weight:700}
  /* açılır paneller üst barın altına düşer, ekranı taşırmaz */
  /* v258 ÖLÇÜLDÜ: "right:0" ancak KAP position:relative ise işe yarar; zil
     düğmesi statikti, panel 1499px'e (ekran 1366) taşıyordu. Kap sabitlenir. */
  #tmaUstDenetim > #tbGlobalSearchWrap,
  #tmaUstDenetim > #tbBoatSwitcher,
  #tmaUstDenetim > #tbNotifBell{position:relative}
  #tmaUstDenetim #tbGlobalSearchPanel,
  #tmaUstDenetim #tbBoatSwitcherPanel,
  #tmaUstDenetim #tbNotifPanel{position:absolute!important;top:calc(100% + 8px)!important;left:auto!important;right:0!important;z-index:140;
    width:auto;min-width:260px;max-width:min(92vw,380px);color:#0B2A4A}
  /* üst bardaki 🔍 artık MÜKERRER — arama kutusu yanı başında */
  #tmaUstBar[data-tma-serit="1"] #tmaUbAra{display:none}
  /* 901-1150 dar: tekne adı düşer, denetimler kalır */
  @media (max-width:1150px){
    #tmaUstBar[data-tma-serit="1"] .tma-ub-ad,
    #tmaUstBar[data-tma-serit="1"] .tma-ub-ayrac{display:none}
    #tmaUstDenetim > #tbBoatSwitcher{width:132px!important;flex:0 0 132px}
    #tmaUstDenetim > #tbNotifBell{width:120px!important;flex:0 0 120px}
  }
  /* şerit yukarı taşındı → yan sütunda yalnız marka + kullanıcı kalır.
     v258 ÖLÇÜLDÜ: geriye kalan "sürüm x.y.z" satırının satır içi
     margin-top:-10px'i, denetimler gidince MARKA YAZISININ ÜSTÜNE biniyordu
     (8px çakışma). Negatif kenar boşluğu sıfırlanır. */
  body.tma-serit-ustte #tb-app .tb-mobile-bar{padding:0;margin:0;gap:0;background:transparent!important;box-shadow:none!important}
  body.tma-serit-ustte #tb-app .tb-side .tb-mobile-bar > div{margin:2px 0 0 4px!important}
}

/* ═══ v221 AŞAMALI AÇILIM — kılavuz şeridi ve sadeleştirme ═══ */
#tmaKilavuz{background:#FFFFFF;border:2px solid #F59E0B;border-radius:16px;padding:16px;margin:0 0 16px;
  box-shadow:0 8px 22px -14px rgba(11,42,74,.35)}
#tmaKilavuz .tma-kv-ilerleme{font-size:15px;color:#64748B;font-weight:700;margin-bottom:8px}
#tmaKilavuz .tma-kv-cubuk{height:6px;background:#E2E8F0;border-radius:999px;overflow:hidden;margin-bottom:12px}
#tmaKilavuz .tma-kv-cubuk span{display:block;height:100%;background:#F59E0B;border-radius:999px}
#tmaKilavuz .tma-kv-soru{font-size:18px;font-weight:800;color:#0B2A4A;line-height:1.35;margin-bottom:6px}
#tmaKilavuz .tma-kv-neden{font-size:15px;color:#64748B;line-height:1.5;margin-bottom:14px}
#tmaKilavuz .tma-kv-satir{display:flex;gap:10px}
#tmaKilavuz .tma-kv-git{flex:1 1 auto;min-height:52px;font-size:16px;font-weight:800;
  background:#F59E0B;color:#3A2A00;border:none;border-radius:12px;cursor:pointer}
#tmaKilavuz .tma-kv-sonra{flex:0 0 auto;min-height:52px;padding:0 18px;font-size:15px;font-weight:700;
  background:#FFFFFF;color:#64748B;border:1.5px solid #E2E8F0;border-radius:12px;cursor:pointer}
#tmaHepsiniGoster{display:block;width:100%;margin:18px 0 8px;min-height:52px;font-size:15px;font-weight:700;
  background:#FFFFFF;color:#0B2A4A;border:1.5px dashed #C9D8EA;border-radius:12px;cursor:pointer}
/* erken aşamalarda gürültü kısılır — kaptan boğulmasın */
body.tma-asama-0 #tma-he, body.tma-asama-1 #tma-he,
body.tma-asama-0 #tbHizliIslemler, body.tma-asama-1 #tbHizliIslemler{display:none!important}
body.tma-asama-0 #tmaAltCubuk [data-ac="menu"], body.tma-asama-1 #tmaAltCubuk [data-ac="menu"]{opacity:.6}
@media print{#tmaKilavuz,#tmaHepsiniGoster{display:none!important}}

/* ═══ v223 DÖNÜŞ DÖNGÜSÜ — kazanım · bugünkü iş · randevu ═══ */
#tmaKazanim{position:relative;background:#F1F8F2;border:1.5px solid #8FBF7A;border-radius:16px;
  padding:14px 40px 14px 16px;margin:0 0 14px}
#tmaKazanim .tma-kz-baslik{font-size:15px;font-weight:800;color:#5A7A2E;letter-spacing:.03em;margin-bottom:8px}
#tmaKazanim .tma-kz-satir{font-size:15px;line-height:1.5;color:#0B2A4A;margin-bottom:4px}
#tmaKazanim .tma-kz-kapat{position:absolute;top:6px;right:6px;background:transparent;border:none;
  color:#5A7A2E;font-size:18px;min-width:44px;min-height:44px;cursor:pointer}
#tmaRandevu{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding-top:12px;
  border-top:1px dashed #C9D8EA;font-size:15px;line-height:1.5;color:#0B2A4A}
#tmaRandevu .tma-rv-ikon{flex:0 0 auto}
#tmaRandevu .tma-rv-metin{flex:1 1 auto;min-width:0;font-weight:700}
#tmaBugunIs{background:#FAF3E7;border:1.5px solid #F0C878;border-radius:12px;padding:12px 14px;
  margin:0 0 10px;font-size:15px;line-height:1.45;font-weight:700;color:#0B2A4A}
@media print{#tmaKazanim,#tmaRandevu,#tmaBugunIs{display:none!important}}

/* ═══ v225 karşılama · merak · bugünlük yeter ═══ */
#tmaKarsilama{background:linear-gradient(180deg,#0B2A4A,#0E3A66);color:#EAF3FA;border-radius:16px;
  padding:20px 18px;margin:0 0 16px;border:1px solid rgba(255,255,255,.14)}
#tmaKarsilama .tma-ks-baslik{font-size:20px;font-weight:800;margin-bottom:8px}
#tmaKarsilama .tma-ks-metin{font-size:15px;line-height:1.6;color:#CFE6FA;margin-bottom:16px}
#tmaKarsilama .tma-ks-git{width:100%;min-height:52px;font-size:16px;font-weight:800;
  background:#F59E0B;color:#3A2A00;border:none;border-radius:12px;cursor:pointer}
#tmaMerak{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 12px;
  background:#F4F8FC;border:1px solid #D4E0EE;border-radius:12px;cursor:pointer}
#tmaMerak .tma-mr-ikon{flex:0 0 auto;font-size:16px}
#tmaMerak .tma-mr-metin{flex:1 1 auto;min-width:0;font-size:15px;line-height:1.55;color:#0B2A4A}
#tmaBugunlukYeter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#F1F8F2;
  border:1.5px solid #8FBF7A;border-radius:14px;padding:14px;margin:0 0 14px;font-size:15px;
  line-height:1.5;color:#0B2A4A;font-weight:700}
#tmaBugunlukYeter .tma-by-devam{margin-left:auto;min-height:44px;padding:0 14px;font-size:15px;
  font-weight:700;background:#FFFFFF;color:#5A7A2E;border:1.5px solid #8FBF7A;border-radius:10px;cursor:pointer}
@media print{#tmaKarsilama,#tmaMerak,#tmaBugunlukYeter{display:none!important}}

/* ═══ v226 HAFIZA AYNASI ═══ */
/* v331: bildiklerim açık kart — lacivert-üstü-lacivert okunmuyordu */
#tmaBildiklerim{background:#F0F5FF;color:#12233F;border:2px solid #2563EB;
  border-radius:14px;padding:14px;margin-top:12px}
#tmaBildiklerim .tma-bd-bolum{margin-bottom:14px}
#tmaBildiklerim .tma-bd-bas{font-size:15px;font-weight:800;margin-bottom:8px;color:#12233F}
#tmaBildiklerim .tma-bd-bas span{font-size:15px;font-weight:600;color:#2563EB}
#tmaBildiklerim .tma-bd-satir{display:flex;align-items:center;gap:10px;padding:10px 0;
  border-bottom:1px solid #C7D7F5}
#tmaBildiklerim .tma-bd-et{flex:1 1 40%;min-width:7em;font-size:15px;color:#334155}
#tmaBildiklerim .tma-bd-dg{flex:1 1 40%;min-width:0;font-size:15px;color:#12233F;font-weight:600;overflow-wrap:break-word}
#tmaBildiklerim .tma-bd-duzelt{flex:0 0 auto;min-height:44px;padding:8px 12px;font-size:15px;
  background:#2563EB;color:#fff;border:none;
  border-radius:10px;cursor:pointer;font-weight:600}
#tmaBildiklerim .tma-bd-yet{font-size:15px;line-height:1.5;padding:4px 0;color:#334155}
#tmaBildiklerim .tma-bd-sahiplik{font-size:15px;line-height:1.5;color:#64748B;
  border-top:1px solid #C7D7F5;padding-top:10px;margin-top:6px}
#tmaBildiklerim .tma-bd-bos{font-size:15px;line-height:1.6;color:#334155}
#tmaBildiklerim .tma-bd-kapat{width:100%;min-height:48px;margin-top:12px;background:#2563EB;
  color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:800;cursor:pointer}
#tmaBildiklerim .tma-bd-yuk{font-size:15px;color:#334155}

/* ═══ v230 MARKA/MODEL SEÇİCİ ═══ */
#tmaKatalogSar{margin:10px 0 12px}
#tmaKatalogSar .tma-kt-etiket{display:block;font-size:15px;font-weight:700;margin-bottom:6px;color:#0B2A4A}
#tmaKatalogAra{width:100%;box-sizing:border-box;min-height:48px;font-size:16px;padding:12px 14px;
  border:1.5px solid #D4E0EE;border-radius:12px}
#tmaKatalogSonuc{margin-top:8px;max-height:280px;overflow:auto}
#tmaKatalogSonuc .tma-kt-satir{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;
  text-align:left;background:#fff;border:1px solid #D4E0EE;border-radius:12px;padding:12px 12px;margin-bottom:8px;
  min-height:48px;cursor:pointer;font-size:15px;color:#0B2A4A}
#tmaKatalogSonuc .tma-kt-satir span{font-size:15px;color:#64748B}
#tmaKatalogSonuc .tma-kt-satir:active{background:#EEF4FA}
#tmaKatalogSonuc .tma-kt-yok,#tmaKatalogSonuc .tma-kt-oldu{font-size:15px;line-height:1.5;padding:10px 12px;
  background:#F4F8FC;border-radius:12px;color:#0B2A4A}
#tmaKatalogSar .tma-kt-not{font-size:15px;line-height:1.5;color:#64748B;margin-top:6px}

/* ═══ v237 ÜST ŞERİT KENAR BOŞLUĞU ([stated] "sağda butonlar çok yakın") ═══
   Düğmeler ekranın sağ kenarına yapışıyordu; kaydırma çubuğu da oraya
   düşünce parmak/imleç ikisini karıştırıyor. Sağda nefes payı bırakıldı. */
#tb-app #tmaUstBar{padding-left:16px!important;padding-right:20px!important;gap:10px}
@media (min-width:901px){
  #tb-app #tmaUstBar{padding-right:28px!important}
}
/* İÇ KAYDIRMA: panel sayfasında ikinci kaydırma çubuğu olmaz (JS avcısının
   CSS karşılığı — ilk boyamada da geçerli olsun) */
body.tma-panel-sayfasi #tb-app{overflow:visible!important;max-height:none!important}
/* v319 KÖK ONARIMI: bu 'kart içi kesilmesin' garantisi TÜM kartlarda
   max-height'ı ezdiği için akordiyon kapanışı v288'den beri fiilen ölüydü —
   kart sınıfça 'kapalı', gözle AÇIK. Garanti artık yalnız AÇIK kartlara. */
body.tma-panel-sayfasi #tb-app .tb-widget:not(.tma-kapali){overflow:visible!important;max-height:none!important}
#tb-app .tma-akordiyon.tma-kapali{overflow:hidden!important}
/* v332: kapalı akordiyon içerik tamamen gizle — üst üste binme önleme */
#tb-app .tb-widget.tma-akordiyon.tma-kapali > *:not(.tb-w-head){display:none!important}
#tb-app .tb-widget.tma-kapali{height:auto!important}
/* v320b: MİÇO kapalı = YALNIZ BAŞLIK — ölçüm/padding oyunlarından bağımsız kesin kural */
#tma-enh-card.tma-kapali > *:not(.tma-enh-head){display:none!important}
#tma-enh-card.tma-kapali{max-height:none!important;padding-bottom:8px}
/* v320b: MİÇO kapalıyken BAŞLIK DIŞI HİÇBİR ŞEY — piksel hesabına değil
   yapıya bağlı (görünmeden katlanınca başlık 0 ölçülüyor, maxHeight çöpleşiyordu). */
#tma-enh-card.tma-kapali > :not(.tma-enh-head){display:none!important}
#tma-enh-card.tma-kapali{min-height:0!important;max-height:none!important;padding:8px 16px!important}

/* ═══ v238 KAP DARSA TEK SÜTUN — ekran geniş olsa bile ═══
   Şablonun @media(min-width:1100px) kuralları EKRANI ölçüyor; tema solda
   menü tutunca panele kalan yer yetmiyor ve kartlar kayıyordu. Karar artık
   ÖLÇÜLEN KAP genişliğine göre (body.tma-kap-dar). */
body.tma-kap-dar #tb-app .tb-frontgrid,
body.tma-kap-dar #tb-app .tb-dashboard-grid,
body.tma-kap-dar .tb-frontgrid,
body.tma-kap-dar .tb-dashboard-grid{
  grid-template-columns:minmax(0,1fr)!important;
  display:grid!important;
  gap:12px!important}
/* Izgara çocukları taşmasın (klasik: min-width auto içerikten büyür) */
body.tma-kap-dar #tb-app .tb-frontgrid > *,
body.tma-kap-dar #tb-app .tb-dashboard-grid > *{min-width:0!important;max-width:100%!important}
/* Kap genişse iki sütun serbest — ama yan sütun asla taşmaz */
body.tma-kap-genis #tb-app .tb-dashboard-grid > *,
body.tma-kap-genis #tb-app .tb-frontgrid > *{min-width:0}

/* ═══ v241 ÜÇ SEKME — tek gezinme sistemi ═══ */
#tmaUcSekme{position:fixed;left:0;right:0;bottom:0;z-index:140;display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#0B2A4A;
  border-top:1px solid rgba(255,255,255,.18);
  padding-bottom:env(safe-area-inset-bottom,0px);
  box-shadow:0 -6px 20px -10px rgba(0,0,0,.45)}
#tmaUcSekme .tma-sekme-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;min-height:62px;background:none;border:none;cursor:pointer;color:#9FBCD8;
  font-size:15px;font-weight:700;font-family:inherit;padding:8px 4px}
#tmaUcSekme .tma-sekme-ikon{font-size:20px;line-height:1}
#tmaUcSekme .tma-sekme-btn.tma-sekme-aktif{color:#F59E0B;background:rgba(245,158,11,.10)}
#tmaUcSekme .tma-sekme-btn.tma-sekme-aktif .tma-sekme-ad{text-decoration:underline;text-underline-offset:3px}
/* Sekme dışındaki kartlar gizlenir — kart SİLİNMEZ */
body[data-tma-sekme="bugun"]  #tb-app .tb-widget[data-tma-sekme-grup]:not([data-tma-sekme-grup="bugun"]):not([data-tma-sekme-grup="hepsi"]),
body[data-tma-sekme="teknem"] #tb-app .tb-widget[data-tma-sekme-grup]:not([data-tma-sekme-grup="teknem"]):not([data-tma-sekme-grup="hepsi"]),
body[data-tma-sekme="defter"] #tb-app .tb-widget[data-tma-sekme-grup]:not([data-tma-sekme-grup="defter"]):not([data-tma-sekme-grup="hepsi"]):not([data-tma-sekme-grup="hepsi"]){display:none!important}
/* KAPATILAN KAPILAR — işleri üç sekmede */
[data-tma-kapali-kapi="1"]{display:none!important}
/* ═══════════════════════════════════════════════════════════════════════
   v258 🔴 BUGÜN'ÜN ÇEKİRDEK ÜÇLÜSÜ GÖRÜNMÜYORDU — ÜÇÜNCÜ GİZLEYİCİ
   Ölçüldü (390px, BUGÜN): tb-defter · tb-yakit-gecmis · tb-odemeler
   display:none. Üç sekme sistemi onları gizlemiyordu (grup=bugun),
   bugün sadeliği de gizlemiyordu (çekirdek listesinde) — gizleyen ESKİ
   KATEGORİ SEKME ÇUBUĞUYDU: ".tb-tabbed.tb-widget{display:none!important}"
   ve yalnız AKTİF KATEGORİ ".tb-tab-visible" alıyor. Aktif kategori
   "Teknem" olduğu için seyir ve finans kartları — yani kaptanın HER GÜN
   kullandığı üçü — kapalı kalıyordu. Günlük şeridin üç düğmesi de bu
   yüzden "boş yere" tıklanıyordu (tıklayınca açılıyor, açılışta yok).
   Üç sekme geldiğinde kapatılması gereken kapı buydu; kapatılmamış.
   ARTIK: üç sekme etkinse görünürlüğe SEKME + BUGÜN SADELİĞİ karar verir,
   kategori süzgeci devre dışıdır. (Üç sekme yoksa eski davranış aynen.)
   ═══════════════════════════════════════════════════════════════════════ */
body[data-tma-sekme] #tb-app .tb-tabbed.tb-widget{display:block!important}
body[data-tma-sekme="bugun"]  #tb-app .tb-widget[data-tma-sekme-grup]:not([data-tma-sekme-grup="bugun"]):not([data-tma-sekme-grup="hepsi"]),
body[data-tma-sekme="teknem"] #tb-app .tb-widget[data-tma-sekme-grup]:not([data-tma-sekme-grup="teknem"]):not([data-tma-sekme-grup="hepsi"]),
body[data-tma-sekme="defter"] #tb-app .tb-widget[data-tma-sekme-grup]:not([data-tma-sekme-grup="defter"]):not([data-tma-sekme-grup="hepsi"]):not([data-tma-sekme-grup="hepsi"]){display:none!important}
body[data-tma-sekme]:not(.tma-bugun-hepsi) #tb-app .tb-widget[data-tma-bugun-gizli="1"]{display:none!important}
body[data-tma-sekme] #tb-app .tb-widget[data-tma-asama-gizli="1"]{display:none!important}
/* Alt çubuk panelin altını örtmesin */
body[data-tma-sekme] #tb-app{padding-bottom:78px}
@media print{#tmaUcSekme{display:none!important}
  body[data-tma-sekme] #tb-app .tb-widget{display:block!important}}

/* ═══ v242 BUGÜN SADELİĞİ ═══ */
body[data-tma-sekme]:not(.tma-bugun-hepsi) #tb-app .tb-widget[data-tma-bugun-gizli="1"]{display:none!important}
#tmaBugunDigerleri{display:block;width:100%;margin:14px 0 4px;min-height:52px;
  background:transparent;border:1.5px dashed rgba(11,42,74,.28);border-radius:12px;
  color:#0B2A4A;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;padding:14px 12px}
#tmaBugunDigerleri:active{background:rgba(11,42,74,.05)}
body:not([data-tma-sekme="bugun"]) #tmaBugunDigerleri{display:none!important}
@media print{
  #tmaBugunDigerleri{display:none!important}
  #tb-app .tb-widget[data-tma-bugun-gizli="1"]{display:block!important}}

/* ═══ v243 DOKUNMALI GİRDİ ═══ */
#tb-app .tma-dokun-serit{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
#tb-app .tma-dokun-btn{flex:1 1 auto;min-width:0;min-height:48px;padding:12px 14px;
  background:#EEF4FA;color:#0B2A4A;border:1.5px solid #D4E0EE;border-radius:12px;
  font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tb-app .tma-dokun-btn:active{background:#DCE8F4}
#tb-app .tma-dokun-btn.tma-dokun-secili{background:#F59E0B;color:#3A2A00;border-color:#F59E0B}
@media (max-width:380px){#tb-app .tma-dokun-btn{flex:1 1 100%;font-size:15px}}
@media print{#tb-app .tma-dokun-serit{display:none!important}}

/* ═══ v247 SAHA TESTÇİSİ ═══ */
/* v247: z-index 200 ZATEN #tmaSahaBtn tarafından kullanılıyordu (cihaz.js
   katman çakışması yakaladı). Testçi perdesi HER ŞEYİN ÜSTÜNDE olmalı — 215. */
#tmaTesterPerde{position:fixed;inset:0;z-index:215;background:rgba(11,42,74,.94);
  display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:16px}
#tmaTesterPerde .tma-test-kart{background:#fff;border-radius:16px;padding:18px;max-width:720px;width:100%;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
#tmaTesterPerde h2{margin:0 0 8px;font-size:20px;color:#0B2A4A}
#tmaTesterPerde p{font-size:15px;line-height:1.6;color:#0B2A4A;margin:0 0 12px}
#tmaTesterPerde .tma-test-btn{width:100%;min-height:52px;background:#F59E0B;color:#3A2A00;border:none;
  border-radius:12px;font-size:16px;font-weight:800;font-family:inherit;cursor:pointer}
#tmaTesterPerde .tma-test-kapat{width:100%;min-height:48px;margin-top:10px;background:transparent;
  color:#0B2A4A;border:1.5px solid #D4E0EE;border-radius:12px;font-size:15px;font-family:inherit;cursor:pointer}
#tmaTesterPerde .tma-test-ozet{margin:12px 0 8px;font-size:15px;font-weight:800;padding:10px 12px;border-radius:10px}
#tmaTesterPerde .tma-test-ozet.tma-test-ok{background:#F4F8FC;color:#166534}
#tmaTesterPerde .tma-test-ozet.tma-test-hata{background:#FEF2F2;color:#991B1B}
#tmaTesterPerde .tma-test-log{max-height:320px;overflow:auto;font-size:15px;line-height:1.6;
  background:#F4F8FC;border-radius:10px;padding:10px}
#tmaTesterPerde .tma-test-satir{padding:2px 0;overflow-wrap:break-word}
#tmaTesterPerde .tma-test-satir.tma-test-ok{color:#166534}
#tmaTesterPerde .tma-test-satir.tma-test-hata{color:#991B1B;font-weight:700}
#tmaTesterPerde .tma-test-rapor{width:100%;box-sizing:border-box;min-height:180px;margin-top:10px;
  font-size:15px;font-family:monospace;border:1px solid #D4E0EE;border-radius:10px;padding:10px}
@media print{#tmaTesterPerde{display:none!important}}

/* ═══════════════════════════════════════════════════════════════════════
   v248 AÇIK TEMA — "koyu temayı kaldır, mobil menü çok silik okunmuyor"
   Menü yaprağı lacivert zeminde soluk gri metindi (#9FBCD8 üzerine koyu):
   40+ yaş kitlede ve güneşte OKUNMUYOR. Menünün tamamı AÇIK TEMAYA alındı:
   beyaz zemin, koyu lacivert metin, kalın ayraçlar. Kontrast oranı yükseldi.
   ═══════════════════════════════════════════════════════════════════════ */
#tmaYaprak .tma-menu-bas,
.tma-menu-bas{background:#FFFFFF!important;border-bottom:1.5px solid #D4E0EE!important}
.tma-menu-ad{color:#0B2A4A!important}
.tma-menu-kapat{background:#EEF4FA!important;border:1.5px solid #D4E0EE!important;color:#0B2A4A!important}
.tma-menu-ara-sar{background:#FFFFFF!important;border-bottom:1px solid #EEF4FA}
.tma-menu-ara-sar input{background:#FFFFFF!important;color:#0B2A4A!important;border:1.5px solid #D4E0EE!important;
  min-height:48px;font-size:16px}
.tma-menu-grup{color:#0B2A4A!important;background:#F4F8FC!important;border-top:1px solid #E7EDF6}
#tmaYaprak,#tmaMenuPerde{background:rgba(11,42,74,.45)!important}
#tmaYaprak .tma-menu-satir,.tma-menu-satir{background:#FFFFFF!important;color:#0B2A4A!important;
  border:1.5px solid #D4E0EE!important;min-height:52px;font-size:15px;font-weight:700;
  margin:6px 12px!important;border-radius:12px}
.tma-menu-satir:active{background:#EEF4FA!important}
.tma-menu-aktif{background:#FDF0E3!important;border-color:#F59E0B!important;color:#0B2A4A!important}
/* Menü gövdesi de açık */
#tmaMenuPanel,#tmaYaprak .tma-yaprak-ic{background:#FFFFFF!important;color:#0B2A4A!important}

/* ═══ KAPATILAN KAPILAR — CSS de kapatır (JS sırasına bağımlılık yok) ═══ */
body[data-tma-sekme] #tma-he,
body[data-tma-sekme] #tmaAltCubuk,
body[data-tma-sekme] #tbHizliIslemler,
[data-tma-kapali-kapi="1"]{display:none!important}

/* ═══ MENÜ ARAMANIN YANINDA ═══ */
#tb-app #tbNavToggle[data-tma-tasindi="1"],
#tb-app #tmaUstMenuBtn{display:flex;align-items:center;justify-content:center;gap:6px;
  min-height:48px;width:100%;box-sizing:border-box;
  background:#0B2A4A;color:#FFFFFF;border:none;border-radius:12px;
  font-size:15px;font-weight:800;font-family:inherit;cursor:pointer}
#tb-app #tmaUstMenuBtn:active{background:#0E3A66}
@media (max-width:380px){#tb-app .tma-ust-menu-ad{display:none}}

/* ═══ YAPIŞIK DÜĞME KALMASIN ═══ */
#tb-app .tb-mobile-bar{gap:10px!important}
#tb-app .tb-w-body > button + button,
#tb-app .tb-quick-form button + button,
#tb-app .tma-gk-satir button + button{margin-left:8px}
#tb-app [style*="display:flex"] > button + button{margin-left:8px}

/* v249: taşınan menü düğmesi üst şeritte diğerleriyle aynı görünsün */
#tb-app .tb-mobile-bar #tbNavToggle[data-tma-tasindi="1"]{
  display:flex!important;align-items:center;justify-content:center;gap:6px;
  min-height:48px;width:100%;box-sizing:border-box;
  background:#0B2A4A;color:#FFFFFF;border:none;border-radius:12px;
  font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;margin:0}

/* v251: tam ekran katmanının kapat düğmesi — her katman kapanabilir */
#tmaTekEkran #tmaTekEkranKapat{min-height:48px;padding:12px 16px;border-radius:12px;
  background:#EEF4FA;color:#0B2A4A;border:1.5px solid #D4E0EE;
  font-size:15px;font-weight:800;font-family:inherit;cursor:pointer}
#tmaTekEkran #tmaTekUst{display:flex;justify-content:flex-end;padding:10px 12px}
@media print{#tmaTekEkran{display:none!important}}

/* ═══════════════════════════════════════════════════════════════════════
   v252 GERÇEK TARAYICI BULGULARI — jsdom bunları GÖREMEZDİ
   Chrome'da 320/390/768/1366 px'te ölçtüm:
   1) ÜST ŞERİT HER EKRANDA 10px TAŞIYOR: şablonda margin:0 -10px var
      (panel tema kabındayken kenara yapışsın diye). Panel artık KENDİ
      EVİNDE; bu negatif kenar boşluğu sayfayı YATAY KAYDIRIYOR ve
      şeridi ekran dışına taşırıyor. Sıfırlandı.
   2) MASAÜSTÜNDE KART İÇİ DÜĞMELER 21px: dokunma hedefi 40px altında.
      Yükseklik tabanı verildi.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-mobile-bar{
  margin-left:0!important;margin-right:0!important;
  max-width:100%!important;box-sizing:border-box!important}
body.tma-tam-sayfa,html.tma-tam-sayfa-html{overflow-x:hidden}
#tb-app{overflow-x:clip}
/* Kart içi düğmeler her ekranda parmak dostu */
#tb-app .tb-widget button,
#tb-app .tb-w-body button,
#tb-app .tb-quick-form button{min-height:44px;padding:10px 14px}
@media (min-width:901px){
  #tb-app .tb-widget button,
  #tb-app .tb-w-body button{min-height:44px}
}

/* ═══════════════════════════════════════════════════════════════════════
   v252 GERÇEK ÇAKIŞMA — SEKME ÇUBUĞU İÇERİĞİ ÖRTÜYOR
   Chrome'da elementFromPoint ile ölçtüm: sayfanın SONUNDAKİ kart düğmeleri
   (tma-gecerlilik-ac, tma-defter-ac) ve BAŞA DÖN tuşu, sabit alt sekme
   çubuğunun ALTINDA kalıyordu — kaptan dokunuyor, düğme değil ÇUBUK
   basılıyor. jsdom bunu asla göremezdi (piksel ölçmez).
   ÇÖZÜM: (a) gövdeye çubuk yüksekliği kadar gerçek pay (safe-area dahil),
   (b) başa dön tuşu çubuğun ÜSTÜNE alınır.
   ═══════════════════════════════════════════════════════════════════════ */
body[data-tma-sekme]{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))!important}
body[data-tma-sekme] #tb-app{padding-bottom:24px}
#tmaBasaDon{bottom:calc(86px + env(safe-area-inset-bottom,0px))!important;z-index:135}
#tmaSahaBtn{bottom:calc(150px + env(safe-area-inset-bottom,0px))!important}
@media print{
  body[data-tma-sekme]{padding-bottom:0!important}
  #tmaBasaDon{display:none!important}}

/* ═══ v253 SAYFA SONU — son düğme sekme çubuğunun altında kalmasın ═══
   Gerçek tarayıcı ölçümü: içerik kaydırılırken sabit çubuğun altından geçmesi
   normaldir; KUSUR, sayfa SONUNA gelindiğinde son öğenin çubuk altında
   kalmasıdır. Pay çubuk yüksekliği + güvenli alan + nefes payı. */
body[data-tma-sekme] #tb-app{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))!important}
body[data-tma-sekme] #tb-app > *:last-child{margin-bottom:12px}

/* ═══════════════════════════════════════════════════════════════════════
   v254 PİKSEL TARAMASI — GÖRÜNMEZ METİN ([stated] "piksel piksel kontrol et")
   Chrome'da 8 ekranda HER ÖĞENİN kontrastı hesaplandı. MOTTO 1.2:1 çıktı —
   yani PRATİKTE GÖRÜNMÜYOR: metin açık mavi-beyaz (rgb 220,234,245) ama
   içinde durduğu #tma-enh-card ZEMİNİ BEYAZ. Kural bir zamanlar KOYU kart
   varsayımıyla yazılmış; kart sonradan beyaza dönmüş, renk güncellenmemiş.
   Aynı varsayımla yazılmış "geniş düğme" kuralı da beyaz üstüne beyazdı.
   KURAL: ZEMİN + METİN AYNI YERDE TANIMLANIR (kendi kuralım, 4. ihlal).
   ═══════════════════════════════════════════════════════════════════════ */
#tma-enh-card .tma-motto,
#tma-enh-card .tma-enh-head .tma-motto{color:#33475C!important}
#tma-enh-card .tma-enh-btn.tma-btn-genis:not(.tma-birincil){
  background:#F4F8FC!important;color:#0B2A4A!important;
  border:1px solid #D4E0EE!important}
/* Koyu zeminli kartlarda eski davranış korunur */
.tma-koyu-kart .tma-motto,
[data-tma-koyu="1"] .tma-motto{color:#DCEAF5!important}

/* ═══ v254 KART BAŞLIKLARI — GÜNEŞTE OKUNSUN ═══
   Piksel taramasında 17 kart başlığı beyaz zeminde 4.5:1 eşiğinin
   ALTINDA çıktı (40+ yaş ve güneşte okunmaz). Renk KİMLİĞİ korunur:
   her biri AYNI TONUN mevcut paletteki KOYU karşılığına çekildi —
   yeni renk eklenmedi, palet sınırı korundu. ═══ */
#tb-capa-alarmi .tb-w-head h3{color:#991B1B!important}
#tb-donanim .tb-w-head h3{color:#7A4E00!important}
#tb-bakim-skoru .tb-w-head h3{color:#7A4E00!important}
#tb-yedek-parca .tb-w-head h3{color:#7A4E00!important}
#tb-garanti .tb-w-head h3{color:#7A4E00!important}
#tb-su .tb-w-head h3{color:#065F46!important}
#tb-atik .tb-w-head h3{color:#2F6B44!important}
#tb-hedefler .tb-w-head h3{color:#2F6B44!important}
#tb-uyum .tb-w-head h3{color:#991B1B!important}
#tb-yapilacak .tb-w-head h3{color:#2F6B44!important}
#tb-hatirlatici .tb-w-head h3{color:#7A4E00!important}
#tb-notlar .tb-w-head h3{color:#7A4E00!important}
#tb-misafir .tb-w-head h3{color:#991B1B!important}
#tb-usta .tb-w-head h3{color:#7A4E00!important}
#tb-kesfet .tb-w-head h3{color:#065F46!important}
#tb-topluluk-bugun .tb-w-head h3{color:#065F46!important}
#tb-rozetler .tb-w-head h3{color:#7A4E00!important}

/* v254: GÜNÜN SÖZÜ de beyaz kartta beyaza yakındı (1.1:1) — motto ile AYNI
   KÖK (koyu kart varsayımı). Kendi kuralım: zemin+metin aynı yerde. */
#tma-enh-card .tma-soz-metin,
.tb-widget .tma-soz-metin{color:#33475C!important}
.tma-koyu-kart .tma-soz-metin,[data-tma-koyu="1"] .tma-soz-metin{color:#E8F1F9!important}

/* v254 İKİNCİ TUR: bazı başlık renkleri ŞABLONDAN geliyordu (yalnız CSS'e
   bakınca görünmüyordu). Tümü tarandı; eşik altındakiler aynı tonun koyu
   karşılığına çekildi. Palet sınırı korunuyor. */
#tb-app #tb-hazir .tb-w-head h3{color:#075985!important}
#tb-app #tb-cokgunluk .tb-w-head h3{color:#075985!important}
#tb-app #tb-konum .tb-w-head h3{color:#075985!important}
#tb-app #tb-ziyaret-listesi .tb-w-head h3{color:#075985!important}


/* v254 ÜÇÜNCÜ TUR: 320px'te 15px yazıda eşik 4.5 — kalan dört başlık da
   mevcut paletteki koyu karşılığına çekildi (YENİ RENK EKLENMEDİ). */
/* v254: yıl özeti kartının ZEMİNİ saf beyaz değil (hafif renkli), bu yüzden
   #5A7A2E beyazda 4.9 iken orada 4.4'e düşüyordu. Ölçülen zemine göre daha
   koyu yeşile çekildi — mevcut palet rengi. */
#tb-app #tb-yil-ozeti .tb-w-head h3{color:#166534!important}
#tb-app #tb-hatirlatici .tb-w-head h3{color:#7A4E00!important}
#tb-app #tb-yakit-gecmis .tb-w-head h3{color:#2F6B44!important}
#tb-app #tb-odemeler .tb-w-head h3{color:#2F6B44!important}

/* v254 SON: 320px'te kart zemini biraz renkli olduğu için üç başlık daha
   4.4-4.5 bandındaydı. Aynı ton ailesinden KOYU palet renklerine çekildi. */
#tb-app #tb-yakit-gecmis .tb-w-head h3,
#tb-app #tb-odemeler .tb-w-head h3{color:#166534!important}
#tb-app #tb-hatirlatici .tb-w-head h3{color:#7A4E00!important}

/* v254: çıpa alarmı başlığı — kırmızı ailesinin KOYU palet karşılığı */
#tb-app #tb-capa-alarmi .tb-w-head h3{color:#991B1B!important}

/* ═══════════════════════════════════════════════════════════════════════
   v255 PARMAK ARALIĞI — GERÇEK CİHAZ KOŞULLARI ÖLÇÜMÜ
   ([stated] "tüm cihazlarda olgunlaştırmaya devam UX ve tasarımı")
   Yatay yönelim, klavye açık, büyük yazı ve %200 yakınlaştırmada ölçtüm:
   İKİ YERDE tıklanabilir öğeler ARASINDA yalnız 5px vardı — 40+ yaş
   parmağı yanlış tuşa basar (Apple/Google kılavuzu ≥8px önerir):
     · denetim şeridi (ızgara/yenile/yardım) — gap:6px
     · alan ↔ Kaydet düğmesi komşuluğu — boşluk YOK
   Dokunma hedefi BÜYÜK olması yetmez, ARALIK da gerekir.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tma-enh-head,
#tma-enh-card .tma-enh-head{gap:10px!important}
@media (max-width:640px){ #tma-enh-card .tma-enh-head{gap:10px!important} }
/* Alan ile düğme yan yana geldiğinde parmak payı */
#tb-app input + button, #tb-app button + input,
#tb-app select + button, #tb-app button + select,
#tb-app input + a, #tb-app select + a{margin-left:10px}
/* Dikey komşulukta da pay (sıkışık listelerde yanlış dokunma) */
#tb-app .tb-w-body button + button{margin-top:0}
#tb-app .tma-liste-satir + .tma-liste-satir{margin-top:8px}

/* ═══════════════════════════════════════════════════════════════════════
   v257 BAŞA DÖN TUŞU GERİ AÇILDI
   ([stated] "sayfa altına inince sağ altta üste çık sticky butonu olsa,
   basınca sayfanın en üstüne çıksa")
   Tuş ZATEN VARDI ama görünmüyordu: eski kural
   "body.tma-panel-modu.tma-alt-cubuklu #tmaBasaDon{display:none}"
   onu gizliyordu — o gün ALT ÇUBUK vardı ve yüzen ⬆ MÜKERRERDİ.
   v241'de alt çubuk kapandı, üç sekmeye geçildi; sınıf gövdede kaldığı için
   tuş gizli kalmaya devam etti. Artık mükerrer DEĞİL — sayfanın tek "başa
   dön" yolu bu. Üç sekme etkinken görünür kılınır ve sekme çubuğunun
   ÜSTÜNE oturtulur.
   ═══════════════════════════════════════════════════════════════════════ */
/* v257 DÜZELTME — ÖZGÜLLÜK (yine!): eski kural
   "body.tma-panel-modu.tma-alt-cubuklu #tmaBasaDon{display:none}"
   İKİ SINIF taşıdığı için benim tek öznitelikli kuralımdan GÜÇLÜYDÜ; mobilde
   tuş 0×0 kalıyordu (masaüstünde o sınıf yok, orada çalışıyordu — bu yüzden
   ilk ölçümde yalnız küçük ekranlar kırmızı yandı).
   Kendi dersim: ":not()/sınıf özgüllük ekler" — kuralı AYNI SINIFLARLA yaz. */
body.tma-panel-modu.tma-alt-cubuklu[data-tma-sekme] #tmaBasaDon,
body[data-tma-sekme] #tmaBasaDon{
  display:flex!important;align-items:center;justify-content:center;gap:6px;
  position:fixed!important;right:16px!important;
  bottom:calc(86px + env(safe-area-inset-bottom,0px))!important;
  z-index:145!important;
  width:auto!important;min-width:56px;height:52px!important;padding:0 16px!important;
  border-radius:20px!important;border:none!important;
  background:#0B2A4A!important;color:#FFFFFF!important;
  font-size:15px!important;font-weight:800;font-family:inherit;
  box-shadow:0 8px 20px -6px rgba(11,42,74,.55)!important;
  opacity:0;pointer-events:none;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease}
body.tma-panel-modu.tma-alt-cubuklu[data-tma-sekme] #tmaBasaDon.gorunur,
body[data-tma-sekme] #tmaBasaDon.gorunur{
  opacity:1!important;pointer-events:auto!important;transform:translateY(0)!important}
body[data-tma-sekme] #tmaBasaDon:active{transform:scale(.96)!important}
@media (max-width:360px){
  body[data-tma-sekme] #tmaBasaDon{padding:0!important;min-width:52px;width:52px!important;border-radius:50%!important}
  body[data-tma-sekme] #tmaBasaDon .tma-bd-yazi{display:none}}
@media print{body[data-tma-sekme] #tmaBasaDon{display:none!important}}


/* ═══════════════════════════════════════════════════════════════════════
   v258 DOKUNMA HEDEFLERİ — 8 ekran taramasının bulduğu 40px altı öğeler
   ([stated] "ux ve tasarım kusursuz olmalı")
   Ölçüldü: "Çıkış yap" 204×14 · kategori başlıkları (🚢 Teknem / 🗂️ Seyir
   Defterim) 35px · kart sekmeleri 38px. Kaptan teknede, tek eliyle, sallanan
   platformda dokunuyor; kılavuz taban 44px.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-logout{display:flex;align-items:center;min-height:44px;padding:4px 2px}
#tb-app .tma-kat-baslik{min-height:44px;align-items:center;padding-top:6px;padding-bottom:6px}
#tb-app .tb-tab-btn{min-height:44px;display:inline-flex;align-items:center}

/* ═══════════════════════════════════════════════════════════════════════
   v258 🔴 ERİŞİLEMEYEN SEKMELER — İKİ KATMANIM ÇARPIŞMIŞ
   Kategori çubuğu (#tmaTabbar) yatay KAYDIRILABİLİR yazılmıştı
   (overflow-x:auto). v237'de eklediğim "iç kaydırma avcısı" ise panelin
   içindeki her overflow'u siliyor (ikinci kaydırma çubuğu olmasın diye).
   Sonuç: çubuk kaydırılamıyor ama içerik de sığmıyor → 320-414px'te
   "🧭 Seyir · 📔 Günlük · 👥 Topluluk · 💬 İletişim" EKRANIN DIŞINDA,
   hiçbir şekilde ulaşılamıyordu (ölçüldü: +36 … +386px).
   ÇÖZÜM: kaydırma değil SARMA. Altı kategori de görünür, iç kaydırma yok —
   iki katman da memnun, kaptan hepsini görüyor.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app #tmaTabbar, #tb-app .tb-tabbar{
  flex-wrap:wrap!important;overflow:visible!important;
  gap:8px;row-gap:8px}
/* v258: "Ekibimize sor" alanı ile Gönder düğmesi arasında 6px vardı (8 ekranda
   da). Parmak aralığı tabanı 8px — 10'a çekildi. */
#tb-app #tbAiInput{margin-right:10px}


/* ═══════════════════════════════════════════════════════════════════════
   v258 SON ÜÇ TAŞMANIN TEK KÖKÜ: TOPTAN "min-width:7em" KURALI
   #tb-app [style*="display:flex"] > span{flex:1 1 auto;min-width:7em}
   dar form hücrelerinde harf bölünmesini önlemek için yazılmıştı. Ama
   ÖZNİTELİK seçicisi olduğu için, satır içi display:flex taşıyan HER kabın
   içindeki span'e vuruyor — üst şeritteki zil yazısına (span 95px, kutusu
   74px → +21px taşma) ve günlük şeridin etiketlerine de (+3px, üç düğmede).
   Kendi kuralım zaten diyordu: TOPTAN [style*=…] KURALI TEHLİKELİ.
   Gezinme şeritlerinde etiket genişliği ızgarayla belirlenir; 7em tabanı
   oralarda geçersiz kılınır. (Form hücrelerinde kural aynen kalır.)
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-mobile-bar [style*="display:flex"] > span,
#tb-app .tb-mobile-bar [style*="display:flex"] > b,
#tb-app #tmaGunlukSerit [style*="display:flex"] > span,
#tb-app #tmaGunlukSerit > a > span,
#tmaUstDenetim [style*="display:flex"] > span{
  min-width:0!important;flex:0 1 auto!important;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}

/* v258: "Ekibimize sor" satırında alan ile Sor düğmesi arası 6px'ti.
   Önce yanlış öğeye (input'un margin'ine) dokunmuştum — input, sütun
   biçimli sarmalayıcının İÇİNDE; aradaki boşluğu DIŞ SATIRIN gap'i
   belirliyor. Ölçüp doğru kaba yazıldı. */
#tb-app #tbAiInput{margin-right:0}
#tb-app .tb-assist [style*="display:flex"]:has(> #tbAiSend){gap:10px}
#tb-app #tbAiSend{margin-left:10px}


/* ═══════════════════════════════════════════════════════════════════════
   v258 ÜÇ SEKMENİN HEPSİ TARANDI — TEKNEM'DE KALAN KUSURLAR
   (BUGÜN temiz diye TEKNEM temiz sayılmaz; tarama artık üç sekmeyi de gezer)
   1) .tb-quick-form gap:6px — mürettebat, usta, hedef formlarında yan yana
      alanlar arası 6px. 19 komşuda ölçüldü. Parmak tabanı 8px, 10'a çekildi.
   2) #tbZekaYenile 28×44 — ↻ düğmesi 44px'in altında (26px kutu).
   3) .tb-w-sub 320px'te kırpılıyordu (iç 52px, kutu 35px): akordiyon kapalıyken
      alt başlığa iki satır yer verilmemişti.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-quick-form{gap:10px}
#tb-app #tbZekaYenile,
#tb-app #tbArsivAc{min-width:44px!important;min-height:44px!important;
  width:auto!important;height:auto!important;padding:0 10px!important}
#tb-app .tma-akordiyon.tma-kapali .tb-w-sub{max-height:none;overflow:visible}
#tb-app .tb-w-sub{max-height:none;overflow:visible}


/* ═══════════════════════════════════════════════════════════════════════
   v258 MENÜ AÇIKKEN — DURUM TARAMASININ BULDUKLARI
   Menü kapalı ölçüm yetmiyor: menü AÇIKKEN taranınca üç hedef 44px'in
   altında çıktı (masaüstünde ölçüldü):
     ✕ kapat 25×19 — 44px kuralı .tma-menu-kapat'ta yazılı ama masaüstü
       menü kuralı onu eziyordu (kapat düğmesi telefonda değil, MASAÜSTÜNDE
       küçülüyordu — "aynı kök iki yerde" dersi),
     "🛥️ İlan Ver" ve "❓ Soru Sor" satırları 38px — JS ile SONRADAN
       eklendikleri için menünün satır biçimini almamışlardı.
   ═══════════════════════════════════════════════════════════════════════ */
#tbNav .tma-menu-kapat,
.tb-nav .tma-menu-kapat,
#tmaMenuKapat{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
  display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 44px!important}
#tbNav #tmaEnhNavIlan, #tbNav #tmaEnhNavQa,
.tb-nav #tmaEnhNavIlan, .tb-nav #tmaEnhNavQa{
  display:flex!important;align-items:center;min-height:44px!important;
  padding:10px 12px;border-radius:10px;text-decoration:none;font-weight:700}


/* v258 %200 YAKINLAŞTIRMA (195px genişlik):
   "Talep · Kondisyon Sörveyi" + "Onay Bekliyor" aynı satırda; ikisinin de
   7em tabanı var, toplam 196px'lik içerik 149px'lik satıra sığmıyordu.
   Taban artık kabı aşmıyor ama İKİSİ BİRDEN yine sığmaz — satır sarar.
   Aynısı kart başlığı (ikon + ad) için de geçerli. */
#tb-app .tb-proc-top{flex-wrap:wrap;gap:4px 10px}
#tb-app .tb-proc-top > span{min-width:0}
#tb-app .tb-widget h3{flex-wrap:wrap;min-width:0}
#tb-app .tma-kart-ad{min-width:0;overflow-wrap:anywhere}


/* v258: günlük şeritte "Günü kapat" dar telefonda üç noktaya düşüyordu
   (taşma kapandı ama YAZI KISALDI — kaptanın en sık bastığı düğme bu).
   Yatay iç boşluk ve ikon aralığı küçültülünce üç etiket de tam yazılıyor. */
@media (max-width:430px){
  /* gap 8px'in ALTINA İNİLMEZ (parmak aralığı kuralı) — yer, yatay iç
     boşluktan ve ikon aralığından kazanılır. İlk denememde 6px yapmıştım,
     tarama hemen yakaladı: bir kusuru kapatırken başka birini açmışım. */
  #tmaGunlukSerit{gap:8px}
  #tmaGunlukSerit .tma-gs-dugme{padding:12px 4px;gap:4px;font-size:15px}
}
@media (max-width:340px){
  #tmaGunlukSerit .tma-gs-dugme{font-size:15px;padding:12px 2px;gap:4px}
}


/* v258: %200 yakınlaştırmada (195px) günlük şerit üç sütun kalırsa
   "Günü kapat" 63px ister, 36px bulur — üç noktaya düşer. Bu genişlikte
   şerit ALT ALTA: üç düğme de tam genişlik, etiketler tam okunur.
   (Kaptanın en sık bastığı üç düğme; kısaltmak yerine sığdırıyoruz.) */
@media (max-width:280px){
  #tmaGunlukSerit{grid-template-columns:minmax(0,1fr);gap:8px}
  #tmaGunlukSerit .tma-gs-dugme{padding:12px 8px;font-size:15px;gap:6px}
}


/* ═══════════════════════════════════════════════════════════════════════
   v258 AÇILIR PANELİ KENDİ DÜĞMESİ KIRPIYORDU
   Etiket üç noktaya düşsün diye şerit düğmelerine overflow:hidden vermiştim.
   Ama BİLDİRİM ve TEKNE DEĞİŞTİR panelleri o düğmelerin İÇİNDE duruyor —
   düğme 44px yüksekliğinde, panel 300×43 açılıyor ve tamamı kırpılıyordu:
   ekranda hiçbir şey görünmüyor (elementFromPoint sayfayı buluyordu).
   Kırpma İÇ YAZI KUTUSUNA taşındı; düğmenin kendisi taşmaya izin verir.
   (Kendi eklediğim kural, kendi eklediğim paneli yiyordu.)
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-mobile-bar > #tbNotifBell,
#tb-app .tb-mobile-bar > #tbBoatSwitcher,
#tmaUstDenetim > #tbNotifBell,
#tmaUstDenetim > #tbBoatSwitcher{overflow:visible!important}
#tb-app .tb-mobile-bar > #tbNotifBell > div,
#tmaUstDenetim > #tbNotifBell > div{overflow:hidden}
#tb-app .tb-mobile-bar #tbBrandSub,
#tmaUstDenetim #tbBrandSub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


/* ═══════════════════════════════════════════════════════════════════════
   v259b GERÇEĞİN EN ZORU — UZUN AD · BÜYÜK SAYI · BÖLÜNMEYEN KELİME
   (icerik258.js: her görünen metin sırayla zorlu içerikle değiştirilip
   4 ekranda yeniden ölçüldü — 1.556 metin)
   Kaptanın teknesi "Sancakburnu Değirmenaltı" olabilir, masrafı
   1.284.750,00 ₺ olabilir, marina adı tek parça uzun bir kelime olabilir.
   Boş laboratuvar metniyle sağlam görünen yerleşim, gerçek adla taşıyordu:
     · şerit etiketleri (zil/menü) kabından 200px'e kadar TAŞIYORDU —
       kırpma DIŞ düğmedeydi, iç yazı kutusunda değil (v258b'de aynı hatayı
       panelde yapmıştım; kardeşi buradaymış),
     · "Talep Et" düğmesi satırından 20px taşıyordu (küçülemiyordu),
     · bölünmeyen uzun kelime kart gövdesini deliyordu.
   ═══════════════════════════════════════════════════════════════════════ */
/* NOT: bu etiketler SATIR İÇİ (inline) düğümler — overflow/text-overflow/
   max-width satır içi öğede İŞLEMEZ. Kırpma ata kutuda oluyordu ama üç nokta
   çıkmıyor, ölçüm de öğeyi kabından 200px taşmış görüyordu. inline-block. */
#tb-app .tma-zil-ad, #tb-app .tma-ust-menu-ad,
#tmaUstDenetim .tma-zil-ad, #tmaUstDenetim .tma-ust-menu-ad{
  display:inline-block;vertical-align:bottom;
  min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#tb-app .tb-request-btn{min-width:0;max-width:100%;flex:0 1 auto;
  white-space:normal;overflow-wrap:anywhere;text-align:center}
#tb-app .tb-oneri-body{min-width:0}
#tb-app .tb-oneri-body b, #tb-app .tb-oneri-body span{overflow-wrap:anywhere}
/* bölünmeyen uzun kelime hiçbir kart gövdesini delmesin */
#tb-app .tb-widget p, #tb-app .tb-widget li, #tb-app .tb-widget td,
#tb-app .tb-widget b, #tb-app .tb-w-sub, #tb-app .tma-kart-ad,
#tb-app .tb-proc-top > span{overflow-wrap:anywhere}


/* v259b son iki taşma (icerik258.js):
   1) TEKNE SEKMESİ: tekne ADI kullanıcı verisi — bölünmeyen uzun bir ad
      320px'te düğmeden 23px taşıyordu.
   2) ZİL ETİKETİ: max-width:100% ATA genişliğine göre hesaplanır, ikonun
      yediği yeri bilmez (128px kutuda ikon+etiket = 147). Doğrusu: sarmalayıcı
      ESNEK SATIR olsun, etiket kalan yeri alsın. */
#tb-app #tbBoatTabs .tb-boat-tab{min-width:0;max-width:100%}
#tb-app #tbBoatTabs .tb-boat-tab > span{
  display:block;min-width:0;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}
#tb-app #tbNotifBell > div > span,
#tmaUstDenetim #tbNotifBell > div > span{
  display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;overflow:hidden}
#tb-app .tma-zil-ad, #tmaUstDenetim .tma-zil-ad{flex:0 1 auto;min-width:0}

/* tekne sekmesinde HEM kalın ad HEM etiket kullanıcı verisi; ikisi de
   bölünmeyen uzun kelime olabilir — esnek satır ancak ikisi de bölünebilirse
   küçülür. (Dar hücre düzelticisi de bu gezinme şeridinin dışına alındı.) */
#tb-app #tbBoatTabs .tb-boat-tab b,
#tb-app #tbBoatTabs .tb-boat-tab span{min-width:0!important;overflow-wrap:anywhere}


/* ═══════════════════════════════════════════════════════════════════════
   v260 KOYU KARTTAKİ ETİKET — KENDİ KURALIMIN 5. İHLALİ
   "Kontrast: zemin + metin AYNI CSS bloğunda." Alan etiketinin rengi
   (#22313F) BEYAZ kart varsayımıyla yazılmış; Akıllı Öneriler kartı
   (.tb-assist) LACİVERT zeminli — orada oran 1.09, yani GÖRÜNMEZ.
   Etiketi ben LABEL'a çevirince ekran okuyucuya bağlandı ama gözle hâlâ
   okunmuyordu. Koyu kaplarda etiket açık tona döner.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app .tb-assist .tma-alan-etiket,
#tb-app .tb-assist label,
#tb-app .tma-koyu-kart .tma-alan-etiket{color:#DCEAF5!important}
#tb-app .tb-assist .tma-alan-sar > input,
#tb-app .tb-assist .tma-alan-sar > select,
#tb-app .tb-assist .tma-alan-sar > textarea{color:#0F2438}


/* v260 BOŞLUK ÖLÇEĞİ: kartların içindeki <p> düğümleri tarayıcının
   varsayılan "margin:1em 0"ını kullanıyordu — yani boşluk YAZI BOYUNA göre
   değişiyordu (12.5px, 13.5px, 11.5px…). Boşluk ölçeği yazı ölçeğinden
   BAĞIMSIZ olmalı; yoksa aynı kartın iki paragrafı farklı nefes alıyor. */
#tb-app .tb-widget p{margin:0 0 12px}
#tb-app .tb-widget p:last-child{margin-bottom:0}
#tb-app .tb-widget ul, #tb-app .tb-widget ol{margin:0 0 12px;padding-left:20px}

/* v260: onay kutusunun tarayıcı varsayılan 3px kenar boşluğu ölçek dışıydı
   (tek kalan). Kutu ile yazısı arasındaki nefes gap ile veriliyor. */
#tb-app input[type="checkbox"], #tb-app input[type="radio"]{margin:0}

/* v261: bölüm başlığı işaretlemede TAMAMI BÜYÜK yazılıydı — ekran okuyucu
   böyle yazıları harf harf okur ("G-E-N-E-L"). Yazı normal yazılır, büyütmeyi
   CSS yapar; hem okunur hem aynı görünür. */
#tb-app .tma-buyuk-baslik{text-transform:uppercase}


/* ═══════════════════════════════════════════════════════════════════════
   v262 🔴 MENÜ, KENDİ PERDESİNİN ALTINDA KALIYORDU
   Ölçüldü: menü satırının tam ortasında elementFromPoint → #tmaMenuPerde.
   Yani kaptanın parmağı satıra değil PERDEYE değiyor; menü kapanıyor,
   hiçbir yere gidilmiyor. Ayrıca perde menünün ÜSTÜNDE olduğu için satırlar
   %45 lacivert tülün ardında soluk görünüyordu (ekran görüntüsündeki gri).
   KÖK: z-index karşılaştırması YALNIZ AYNI YIĞIN BAĞLAMINDA geçerli.
   Menü (#tbNav z:185) .tb-mobile-bar'ın içinde; o şerit position:sticky +
   z-index:45 ile KENDİ YIĞIN BAĞLAMINI kuruyor. Dolayısıyla menünün 185'i
   şeridin 45'inin İÇİNDE kalıyor ve gövdeye bağlı perde (180) üstte kalıyor.
   ÇÖZÜM: menü açıkken şeridin kendi katmanını perdenin üstüne çıkar.
   (Menüyü gövdeye taşımak — portal — DAHA KÖTÜ olurdu: #tb-app kapsamındaki
   bütün menü kuralları eşleşmeyi kaybederdi; v258'de şeridi taşırken bu
   tuzağa düşmüştüm.)
   ═══════════════════════════════════════════════════════════════════════ */
/* Masaüstünde şerit üst bara taşındığı için yığın bağlamını .tb-side / .tb-shell
   kuruyor — orada da aynı gömülme oluyordu (1366px'te ölçüldü). Menü açıkken
   menüyü taşıyan bütün kaplar perdenin üstüne çıkar. */
body.tma-menu-acik #tb-app .tb-mobile-bar,
body.tma-menu-acik #tb-app .tb-side,
body.tma-menu-acik #tb-app .tb-shell{position:relative;z-index:200!important}
body.tma-menu-acik #tmaMenuPerde{z-index:190!important}
body.tma-menu-acik #tb-app .tb-nav.tb-nav-open{z-index:210!important}
/* menüdeki arama kutusu: yer tutucu okunur olsun (açık zemin) */
#tbNav input, #tbNav .tma-menu-ara{background:#FFFFFF!important;color:#0B2A4A!important;
  border:1px solid #D7E3F0!important}
#tbNav input::placeholder{color:#5A6B80!important;opacity:1}


/* v262: sekme etiketleri bölünmeyen uzun bir kelimeyle zorlandığında
   çubuktan 550px'e kadar taşıyordu. Etiketler bizim (BUGÜN/TEKNEM/DEFTER)
   ama kural kuralın kendisi olmalı: hiçbir etiket kabını delmez. */
#tmaUcSekme .tma-sekme-btn{min-width:0;overflow:hidden}
#tmaUcSekme .tma-sekme-btn > *{min-width:0;max-width:100%;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}

/* v263 TAM DOLDURUCU düğmesi ve açıklaması */
.tma-test-btn2{background:#0E4C7A!important;color:#fff!important;margin-top:10px;line-height:1.35}
.tma-test-not{font-size:15px;color:#4A5A6E;margin:10px 0 0;line-height:1.6}
#tmaTesterRapor{width:100%;min-height:220px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}


/* ═══════════════════════════════════════════════════════════════════════
   v264 ÜST BAR MOBİLDE GERİ GELDİ — İKİ YAN ETKİ ÖLÇÜLDÜ VE KAPATILDI
   (kendi kuralım: bir şeyi geri açtıysan, onunla temas eden her katmanı
   yeniden ölç — panel258 ve durum258 aynı turda kırmızı yandı.)
   1) BİLDİRİM YAPRAĞI mobilde TAM EKRAN açılıyor ama üst bar (sticky, z:100)
      onun ÜSTÜNDE kalıyordu: kaptan yaprağın tepesine dokununca parmağı
      bara değiyordu. Yaprak açıkken bar geri çekilir.
   2) %200 yakınlaştırmada (195px) barın içeriği sığmıyor, A+ düğmesi
      28px taşıyordu → çok darda tekne adı düşer, boşluklar daralır.
   ═══════════════════════════════════════════════════════════════════════ */
body.tma-yaprak-acik #tmaUstBar,
body:has(#tbNotifPanel[style*="display: block"]) #tmaUstBar{z-index:1!important}
@media (max-width:900px){
  #tbNotifPanel{z-index:190!important}
}
@media (max-width:400px){
  /* parmak aralığı tabanı 8px — daraltırken onun altına inilmez
     (bir kusuru kapatırken başkasını açmama kuralı; tarama hemen yakaladı) */
  #tmaUstBar{gap:8px;padding-left:8px;padding-right:8px}
  #tmaUstBar .tma-ub-ad{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (max-width:300px){
  /* v301: ad gizleniyorsa ayraç da gizlenir — yoksa "teknemerkezi ·" diye
     öksüz bir nokta kalıyordu (ekranda ölçüldü). */
  #tmaUstBar .tma-ub-ad,#tmaUstBar .tma-ub-ayrac{display:none}
  #tmaUstBar{gap:8px;padding-left:6px;padding-right:6px}
  #tmaUstBar button{padding:0 8px!important;min-width:40px}
}


/* ═══════════════════════════════════════════════════════════════════════
   v265 MOBİLDE ARAMA + MENÜ YAPIŞKAN ÜST BARDA
   Menü satırına basınca sayfa hedefe kayıyor ve şerit ekrandan çıkıyordu;
   ☰ bir daha görünmüyordu (ölçüldü: y=-2209). Artık ikisi gerçekten
   yapışkan olan üst barın içinde — kaptan sayfanın neresinde olursa olsun
   menüye ve aramaya tek dokunuşla ulaşır.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width:900px){
  #tmaUstBar[data-tma-serit="mobil"]{flex-wrap:wrap;gap:8px;padding:8px 12px}
  /* v301: tekne adı mobilde GÖRÜNÜR. Ölçüldü: ⚓20 + marka98 + ayraç4 + ad~80
     = 222px / 390px — yer var. Gizliyken kaptan hangi teknede olduğunu
     hiçbir yerde göremiyordu (ürünün adı "Teknem" ama tekne adsızdı). */
  #tmaUstBar[data-tma-serit="mobil"] .tma-ub-ad{display:block;max-width:150px}
  #tmaUstBar[data-tma-serit="mobil"] #tmaUbAra{display:none}    /* mükerrer: arama zaten yanında */
  #tmaUstBar[data-tma-serit="mobil"] #tmaUstDenetim{
    display:flex;flex:1 1 100%;align-items:center;gap:8px;min-width:0;order:3}
  #tmaUstDenetim #tbGlobalSearchWrap{position:relative;flex:1 1 auto;min-width:0;margin:0!important}
  #tmaUstDenetim #tbGlobalSearch{width:100%;box-sizing:border-box;height:44px;min-height:44px;
    font-size:16px;padding:0 12px;border-radius:12px;background:#fff;color:#0B2A4A;
    border:1.5px solid rgba(255,255,255,.35)}
  #tmaUstDenetim > #tbNavToggle{flex:0 0 108px;width:108px!important;height:44px;min-height:44px;
    display:flex!important;align-items:center;justify-content:center;gap:6px;
    background:#F5B301!important;color:#0B2A4A!important;border:none!important;
    border-radius:12px;font-size:15px!important;font-weight:800;padding:0!important}
  #tmaUstDenetim #tbGlobalSearchPanel{position:absolute;top:calc(100% + 8px);left:0;right:auto;
    z-index:140;max-width:min(92vw,380px);color:#0B2A4A}
  /* şeritte kalan ikili tam genişliği paylaşır */
  body.tma-serit-mobil #tb-app .tb-mobile-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  body.tma-serit-mobil #tb-app .tb-mobile-bar > #tbBoatSwitcher{grid-column:1;grid-row:1}
  body.tma-serit-mobil #tb-app .tb-mobile-bar > #tbNotifBell{grid-column:2;grid-row:1}
}
@media (max-width:360px){
  #tmaUstDenetim > #tbNavToggle{flex:0 0 92px;width:92px!important}
}


/* ═══════════════════════════════════════════════════════════════════════
   v265 🔴 YAPIŞKAN ÜST BAR YAPIŞMIYORDU — SEBEP GÖVDEDEKİ overflow-x
   Ölçüldü: #tmaUstBar position:sticky · top:0 olmasına rağmen sayfa
   1380px kayınca bar da -1380'e gitti. KÖK: gövdeye (ve html'e) yatay
   taşmayı kesmek için 'overflow-x:hidden' verilmiş; CSS'te bir eksende
   hidden vermek ÖBÜR EKSENİ 'auto'ya çevirir → gövde bir KAYDIRMA KABI
   olur ve içindeki sticky öğe VİEWPORT'a değil o kaba göre davranır,
   yani hiç yapışmaz. Üç ayrı yerde aynı kural vardı.
   'clip' aynı işi görür (yatay taşmayı keser) ama öbür ekseni auto'ya
   ÇEVİRMEZ — sticky çalışır. Desteklemeyen eski tarayıcıda davranış
   eskisi gibi olur (kötüleşme yok).
   ═══════════════════════════════════════════════════════════════════════ */
html, body.tma-panel-sayfasi, body.tma-panel-modu,
body.tma-tam-sayfa, html.tma-tam-sayfa-html{
  overflow-x:clip!important;
  overflow-y:visible!important}


/* v265 MENÜ: süzme + iç kaydırma */
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir[hidden],
#tb-app .tb-nav.tb-nav-open .tma-menu-grup[hidden]{display:none!important}
#tb-app .tb-nav.tb-nav-open{
  overflow-y:auto!important;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;max-height:100vh;max-height:100dvh}


/* ═══ v265 MİÇO GÖRÜNÜR — BUGÜN'ün tepesinde tek satır ═══
   Ekranı kapatmaz, modal açmaz. Renkler mevcut paletten; yeni ton eklenmedi. */
#tmaMicoYuva{margin:0 0 12px}
#tma-mico{background:#FFF8EE;border:1px solid #E9A23B;border-radius:14px;
  padding:12px 14px;margin:0 0 12px}
.tma-mc-ust{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.tma-mc-kim{display:flex;align-items:center;gap:8px;font-weight:800;color:#0B2A4A;font-size:16px}
.tma-mc-konusu{font-size:15px;line-height:1.6;color:#12233F}
.tma-mc-alt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
.tma-mc-ugur{background:transparent;border:1px solid #D7E3F0;border-radius:10px;
  min-height:44px;padding:10px 14px;font-size:15px;color:#4A5A6E;cursor:pointer}
.tma-mc-cagir-sar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:#F4F7FB;border:1px solid #D7E3F0;border-radius:12px;padding:10px 14px;margin:0 0 12px}
.tma-mc-cagir-msj{font-size:15px;color:#4A5A6E}
.tma-mc-cagir{background:#FFFFFF;border:1px solid #E9A23B;border-radius:10px;min-height:44px;
  padding:10px 14px;font-size:15px;font-weight:700;color:#0B2A4A;cursor:pointer;margin-left:auto}

/* v265b: "bugünlük yeter" 97×31 çıkıyordu — başka bir kural yüksekliği
   eziyordu. Parmak hedefi 44px kuralı Miço'nun İKİNCİL düğmesinde de geçerli
   (40+ kitle, teknede tek elle kullanım). */
#tma-mico .tma-mc-ugur, #tma-mico button{min-height:44px!important;
  padding:10px 14px!important;font-size:15px!important;line-height:1.3!important}
#tma-mico .tma-mc-git{font-weight:700}


/* v265d %200 YAKINLAŞTIRMA (195px) — tbBrandSub 102>71, tma-zil-ad 50>28 KIRPIK.
   v264'te "çok darda tekne adı düşer" kuralını yazmıştım ama eşik bu iki
   etikete ulaşmıyordu. 195px'te ikon+etiket birlikte sığmaz; ETİKET DÜŞER,
   ikon kalır (ikonun kendi aria-label'ı var — erişilebilirlik korunur). */
/* ÖLÇÜLDÜ: 195px'te denetimler üst bara TAŞINMIYOR, şeritte (.tb-mobile-bar)
   kalıyorlar — kuralı yanlış kaba yazmıştım. Kap fark etmeksizin uygulanır. */
@media (max-width: 240px){
  .tma-zil-ad, #tbBrandSub{display:none!important}
}

/* v267: mevsim görevi rozeti — kuruluş görevinden ayırt edilsin */
#tb-app .tma-mc-rozet{display:inline-block;background:#EAF2FB;color:#0B2A4A;border:1px solid #C7DCF2;
  border-radius:999px;padding:2px 10px;font-size:15px;font-weight:700;margin-right:6px}
#tb-app .tma-mc-nokta.tma-mc-mevsim{background:#FDF0E3;border-color:#E9A23B;color:#7A4E00}


/* ═══════════════════════════════════════════════════════════════════════════
   v266 YAMALI AÇILIŞ — İLK BOYAMA ZATEN SON TASARIM OLSUN
   ([stated] "sayfa açılışta defalarca farklı boyamalar ile defalarca farklı
    tasarımlarda görünüyor … final tasarım dışında ilk boyamalara sebep olan
    CSS'leri kaldır")
   ÖLÇÜLDÜ (acilis265.js, kare kare): 473ms'de 25 KART görünüyor (şablonun ham
   hâli, eski kategori düzeni) → 1158ms'de 7 karta düşüyor (üç sekme JS ile
   uygulanınca) → 1753ms panel modu → 2458ms enh kartı. Mobilde BEŞ görünür
   sıçrama. Kaptan her açılışta ürünün üç ayrı tasarımını arka arkaya görüyor.
   KÖK: son tasarımı üreten kurallar zaten CSS'te ama TETİKLEYİCİLERİ
   (body[data-tma-sekme] + karttaki data-tma-sekme-grup) JS ~1.2 sn sonra
   yazıyor. O ana kadar tarayıcı ESKİ DÜZENİ boyuyor.
   ÇÖZÜM: aynı eşlemeyi kartın İŞARETLEMEDE ZATEN VAR OLAN kategori sınıfıyla
   (tb-cat-*) CSS'e yaz. Sekme henüz seçilmemişken varsayılan BUGÜN'dür —
   JS'in yapacağı şeyin aynısı. JS gelince mevcut kurallar devralır; yeni yol
   eklenmedi, VAR OLAN KURALIN TETİKLEYİCİSİ ÖNE ALINDI.
   ═══════════════════════════════════════════════════════════════════════════ */
body.tma-panel-sayfasi:not([data-tma-sekme]) #tb-app .tb-widget.tb-cat-tekne,
body.tma-panel-sayfasi:not([data-tma-sekme]) #tb-app .tb-widget.tb-cat-iletisim,
body.tma-panel-sayfasi:not([data-tma-sekme]) #tb-app .tb-widget.tb-cat-sosyal{display:none!important}

/* Aynı ilke: sekme çubuğu ve şerit JS ile gelene kadar yer TUTAR — geldiğinde
   içerik aşağı kaymasın (yerleşim sıçraması da bir "farklı tasarım"dır). */
body.tma-panel-sayfasi:not([data-tma-sekme]) #tb-app{padding-bottom:86px}


/* ═══ v267 HİZMET KARTI — 40+ kitle: büyük hedef, geniş aralık, tek bakışta ═══ */
.tma-hz-izgara{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:10px;margin-top:12px}
.tma-hz-btn{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 12px;
  background:#FFFFFF;border:1px solid #D7E3F0;border-radius:12px;cursor:pointer;text-align:left;
  font-size:15px;font-weight:600;color:#0B2A4A;line-height:1.3}
.tma-hz-btn:active{background:#EAF2FB}
.tma-hz-btn[disabled]{opacity:.6}
.tma-hz-ikon{font-size:20px;flex:0 0 auto}
.tma-hz-ad{min-width:0;overflow-wrap:anywhere}
.tma-hz-sonuc{margin-top:12px;font-size:15px;line-height:1.6;color:#12233F}
.tma-hz-ok{background:#EAF6EE;border:1px solid #15803D;border-radius:10px;padding:10px 12px}
.tma-hz-hata{background:#FDECEC;border:1px solid #B3261E;border-radius:10px;padding:10px 12px}
.tma-hz-liste{margin-top:12px}
.tma-hz-liste-bas{font-weight:700;font-size:15px;color:#0B2A4A;margin-bottom:6px}
.tma-hz-satir{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;
  border-top:1px solid #E7EDF5;font-size:15px}
.tma-hz-durum{background:#EAF2FB;border-radius:8px;padding:2px 10px;font-size:15px;color:#4A5A6E}
.tma-hz-tarih{margin-left:auto;color:#4A5A6E;font-size:15px}
.tma-hz-riza{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding-top:12px;
  border-top:1px solid #E7EDF5;font-size:15px;line-height:1.6;color:#12233F;cursor:pointer}
.tma-hz-riza input{width:22px;height:22px;flex:0 0 auto;margin-top:2px}
.tma-hz-riza small{display:block;color:#4A5A6E;font-size:15px}


/* ═══ v267c SABİT ALT ÇUBUK SON SATIRI ÖRTÜYORDU ═══
   Ölçüldü: #tmaUcSekme (sabit, z:140) ve ⬆ başa dön (z:145) sayfanın son
   öğelerinin ÜSTÜNDE duruyor — parmak düğmeye değil çubuğa değiyor.
   v266'da alt boşluğu YALNIZ sekme seçilmeden önceki duruma yazmıştım;
   sekme seçilince kural düşüyordu. Sekme etkinken de yer ayrılır.
   Bu yalnız hizmet kartını değil, sayfanın SON öğESİNİ ne ise onu kurtarır. */
body[data-tma-sekme] #tb-app{padding-bottom:118px}
@supports (padding: max(0px)) {
  body[data-tma-sekme] #tb-app{padding-bottom:max(118px, calc(96px + env(safe-area-inset-bottom)))}
}

/* v267d öneri kutusu — hizmet kartının içinde, tek öneri, tek dokunuşla red */
.tma-oneri-kutu{background:#FFF8EE;border:1px solid #E9A23B;border-radius:12px;padding:12px 14px;margin:12px 0}
.tma-oneri-bas{font-weight:800;font-size:16px;color:#0B2A4A;margin-bottom:6px}
.tma-oneri-metin{font-size:15px;line-height:1.6;color:#12233F}
.tma-oneri-alt{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.tma-oneri-hayir{background:transparent;border:1px solid #D7E3F0;border-radius:12px;min-height:56px;
  padding:10px 14px;font-size:15px;color:#4A5A6E;cursor:pointer}

/* v268 teklif kartı — kapsam, hariç, fiyat, süre tek bakışta */
.tma-tk-kutu{background:#F4F8FC;border:1px solid #2E7CF6;border-radius:12px;padding:14px;margin:12px 0}
.tma-tk-bas{font-weight:800;font-size:16px;color:#0B2A4A;margin-bottom:10px}
.tma-tk-satir{background:#fff;border:1px solid #D7E3F0;border-radius:10px;padding:12px;margin-bottom:10px}
.tma-tk-ust{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:16px;color:#0B2A4A}
.tma-tk-durum{margin-left:auto;background:#EAF2FB;border-radius:8px;padding:3px 10px;font-size:15px;color:#4A5A6E}
.tma-tk-alt{font-size:15px;font-weight:700;color:#4A5A6E;margin-top:10px}
.tma-tk-liste{margin:4px 0 0;padding-left:20px;font-size:15px;line-height:1.6;color:#12233F}
.tma-tk-haric{color:#8A4B00}
.tma-tk-bilgi{margin-top:10px;font-size:16px;color:#0B2A4A}
.tma-tk-kosul{margin-top:8px;font-size:15px;color:#4A5A6E;line-height:1.6}
.tma-tk-eylem{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.tma-tk-sonuc{font-size:15px;line-height:1.6;color:#12233F;padding:6px 0}
.tma-tk-hata{color:#B3261E}

/* v269 iş defteri — kaptan işin nerede olduğunu görür, sormaz */
.tma-tk-defter-ac{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:10px;
  font-size:15px;font-weight:700;color:#0B2A4A;cursor:pointer}
.tma-tk-rozet{background:#B3261E;color:#fff;border-radius:12px;padding:1px 9px;font-size:15px}
.tma-tk-defter{margin-top:8px;border-top:1px solid #E7EDF5;padding-top:10px}
.tma-df-satir{border-radius:10px;padding:10px 12px;margin-bottom:8px;font-size:15px;line-height:1.6}
.tma-df-ben{background:#EAF2FB;color:#12233F}
.tma-df-ekip{background:#EAF6EE;color:#12233F}
.tma-df-sistem{background:#F4F7FB;color:#4A5A6E;font-style:italic}
.tma-df-kim{font-size:15px;color:#4A5A6E;margin-bottom:2px}
.tma-df-foto{display:block;margin-top:8px;max-width:100%;border-radius:10px}
.tma-df-yaz{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start;margin-top:10px}
.tma-df-alan{flex:1 1 190px;min-height:56px;border:1px solid #D7E3F0;border-radius:10px;padding:10px;
  font-size:15px;color:#12233F}
.tma-tk-bos{font-size:15px;color:#4A5A6E}

/* v270 senden bekleniyor — engel olanlar öne çıkar */
.tma-bk-kutu{background:#FFF8EE;border:1px solid #E9A23B;border-radius:12px;padding:14px;margin:12px 0}
.tma-bk-bas{font-weight:800;font-size:16px;color:#0B2A4A}
.tma-bk-not{font-size:15px;color:#4A5A6E;margin:4px 0 10px}
.tma-bk-satir{background:#fff;border:1px solid #D7E3F0;border-radius:10px;padding:12px;margin-bottom:8px}
.tma-bk-engel{border-color:#B3261E}
.tma-bk-is{font-size:15px;color:#4A5A6E}
.tma-bk-metin{font-size:15px;line-height:1.6;color:#12233F;margin:4px 0 10px}

/* v269 hizmet kartı: "sonra ne olacak" üç adımı — kaptanın basmadan önceki sorusu */
.tma-hz-adim{margin:10px 0 0;padding-left:22px;font-size:15px;line-height:1.7;color:#12233F}
.tma-hz-adim li{margin-bottom:4px}

/* v270b Ekipmanlarım — liste önce, form sonra; her bakım tek cümle + tek düğme */
.tma-ek-liste{margin-top:10px}
.tma-ek-bos{font-size:15px;line-height:1.6;color:#4A5A6E}
.tma-ek-kart{border:1px solid #D7E3F0;border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#FFFFFF}
.tma-ek-ad{font-size:16px;font-weight:700;color:#0B2A4A}
.tma-ek-ad span{font-weight:600;color:#4A5A6E}
.tma-ek-saat{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px;color:#12233F;margin-top:6px}
.tma-ek-saat-btn,.tma-ek-saat-ok{min-height:44px;padding:8px 14px;background:#FFFFFF;border:1px solid #D7E3F0;
  border-radius:10px;font-size:15px;color:#0B2A4A;cursor:pointer}
.tma-ek-saat-giris{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%;margin-top:8px}
.tma-ek-garanti{font-size:15px;color:#4A5A6E;margin-top:4px}
.tma-ek-bakim{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;
  border-top:1px solid #E7EDF5}
.tma-ek-bakim-ad{font-size:15px;font-weight:600;color:#0B2A4A;flex:1 1 160px;min-width:0;overflow-wrap:anywhere}
.tma-ek-bakim-ad span{font-weight:500;color:#4A5A6E}
.tma-ek-bakim-cumle{font-size:15px;color:#4A5A6E;flex:1 1 100%;line-height:1.6}
.tma-ek-yapildi{min-height:44px;padding:8px 16px;background:#FFFFFF;border:1px solid #15803D;border-radius:10px;
  font-size:15px;font-weight:700;color:#15803D;cursor:pointer}
.tma-ek-gecti .tma-ek-bakim-cumle{color:#B3261E;font-weight:600}
.tma-ek-yakin .tma-ek-bakim-cumle{color:#8A5300;font-weight:600}
.tma-ek-ekle{margin-top:14px;padding-top:12px;border-top:1px solid #E7EDF5}
.tma-ek-ekle-bas{font-size:15px;font-weight:700;color:#0B2A4A;margin-bottom:8px}
.tma-ek-satir2{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tma-ek-alan{min-height:44px;padding:10px 12px;border:1px solid #D7E3F0;border-radius:10px;font-size:15px;
  color:#0B2A4A;background:#FFFFFF;flex:1 1 150px;min-width:0}
.tma-ek-msj{font-size:15px;color:#4A5A6E;margin-top:8px}


/* ═══ v270 BELGELERİM — kaptanın eline alacağı kâğıtlar ═══ */
.tma-blg-satir{padding:12px 0;border-top:1px solid #E7EDF5}
.tma-blg-satir:first-of-type{border-top:0}
.tma-blg-ad{font-size:16px;font-weight:700;color:#0B2A4A}
.tma-blg-ad span{color:#4A5A6E;font-weight:600}
.tma-blg-not{font-size:15px;line-height:1.6;color:#4A5A6E;margin:4px 0 10px}
.tma-blg-btn{display:inline-flex;justify-content:center}
.tma-blg-onceki{margin-top:12px;padding-top:12px;border-top:1px solid #E7EDF5;font-size:15px;color:#4A5A6E}
.tma-blg-onceki-liste{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.tma-blg-yil{min-height:44px;padding:8px 14px;background:#FFFFFF;border:1px solid #D7E3F0;
  border-radius:10px;font-size:15px;color:#0B2A4A;cursor:pointer}

/* ═══ v270b EKİPMANLARIM — liste önce, form sonra ═══ */
.tma-ek-liste{margin-top:10px}
.tma-ek-bos{font-size:15px;line-height:1.6;color:#4A5A6E}
.tma-ek-kart{border:1px solid #D7E3F0;border-radius:12px;padding:12px 14px;margin-bottom:10px;background:#FFFFFF}
.tma-ek-ad{font-size:16px;font-weight:700;color:#0B2A4A}
.tma-ek-ad span{font-weight:600;color:#4A5A6E}
.tma-ek-saat{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px;color:#12233F;margin-top:6px}
.tma-ek-saat-btn,.tma-ek-saat-ok{min-height:44px;padding:8px 14px;background:#FFFFFF;border:1px solid #D7E3F0;
  border-radius:10px;font-size:15px;color:#0B2A4A;cursor:pointer}
.tma-ek-saat-giris{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%;margin-top:8px}
.tma-ek-garanti{font-size:15px;color:#4A5A6E;margin-top:4px}
.tma-ek-bakim{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;
  border-top:1px solid #E7EDF5}
.tma-ek-bakim-ad{font-size:15px;font-weight:600;color:#0B2A4A;flex:1 1 160px;min-width:0;overflow-wrap:anywhere}
.tma-ek-bakim-ad span{font-weight:500;color:#4A5A6E}
.tma-ek-bakim-cumle{font-size:15px;color:#4A5A6E;flex:1 1 100%;line-height:1.6}
.tma-ek-yapildi{min-height:44px;padding:8px 16px;background:#FFFFFF;border:1px solid #15803D;border-radius:10px;
  font-size:15px;font-weight:700;color:#15803D;cursor:pointer}
.tma-ek-gecti .tma-ek-bakim-cumle{color:#B3261E;font-weight:600}
.tma-ek-yakin .tma-ek-bakim-cumle{color:#8A5300;font-weight:600}
.tma-ek-ekle{margin-top:14px;padding-top:12px;border-top:1px solid #E7EDF5}
.tma-ek-ekle-bas{font-size:15px;font-weight:700;color:#0B2A4A;margin-bottom:8px}
.tma-ek-satir2{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tma-ek-alan{min-height:44px;padding:10px 12px;border:1px solid #D7E3F0;border-radius:10px;font-size:15px;
  color:#0B2A4A;background:#FFFFFF;flex:1 1 150px;min-width:0}
.tma-ek-msj{font-size:15px;color:#4A5A6E;margin-top:8px}

/* ═══ v269 hizmet kartı üç adımı ═══ */
.tma-hz-adim{margin:10px 0 0;padding-left:22px;font-size:15px;line-height:1.7;color:#12233F}
.tma-hz-adim li{margin-bottom:4px}

/* v272: öne çıkan altı + açılır tümü */
.tma-hz-gizli{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:10px;
  grid-column:1/-1;margin-top:0}
.tma-hz-gizli[hidden]{display:none}
.tma-hz-tumu{display:block;width:100%;min-height:48px;margin-top:10px;background:transparent;
  border:1px dashed #D7E3F0;border-radius:12px;font-size:15px;color:#4A5A6E;cursor:pointer}


/* ═══ v273 SON KARTA GİDİLEMİYORDU ═══
   Ölçüldü (menuher): menüden "🚤 Teknem" / "📄 Belgelerim" / "🗺️ Rotalarım"
   seçilince kart ekranın ALTINDA kalıyordu (top=931, ekran 780). Kaydırma
   ısrarlıydı ama SAYFA BİTİYORDU — son kartı tepeye getirecek yer yoktu.
   Kaptan menüden bir yere gidiyor, "gitmedi" sanıyor.
   Sayfa sonuna nefes payı: her kart ekranın tepesine çıkabilir. Ayrıca
   scroll-padding ile sabit üst şerit hedefin üstünü örtmez. */
body[data-tma-sekme] #tb-app{padding-bottom:min(60vh, 520px)}
html{scroll-padding-top:120px}


/* ═══ v273 KAZANÇ ŞERİDİ — kayıttan sonra ne açıldığını söyler ═══
   Alt sekme çubuğunun ÜSTÜNE oturur (çubuğu örtmez, parmağın altına girmez).
   Kendiliğinden kapanır; kaptanın kapatmak için uğraşması gerekmez. */
.tma-kazanc{position:fixed;left:12px;right:12px;bottom:96px;z-index:150;
  background:#0B2A4A;color:#FFFFFF;border-radius:14px;padding:14px 16px;
  box-shadow:0 10px 30px rgba(11,42,74,.28);font-size:15px;line-height:1.6;
  opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .22s ease, transform .22s ease}
.tma-kazanc-acik{opacity:1;transform:translateY(0)}
.tma-kazanc-metin{display:block}
.tma-kazanc-ilerleme{display:block;margin-top:6px;padding-top:6px;
  border-top:1px solid rgba(255,255,255,.22);color:#DCE9F7;font-size:15px}
.tma-kazanc-ilerleme b{color:#FFFFFF}
@supports (padding: max(0px)) {
  .tma-kazanc{bottom:max(96px, calc(84px + env(safe-area-inset-bottom)))}
}
@media (min-width: 901px){ .tma-kazanc{left:auto;right:20px;max-width:520px} }


/* ═══ v278 BEYAZ ÜSTÜ BEYAZ — ARAMA KUTUSU VE TEKNE DEĞİŞTİR ═══
   [stated] "arama kutusu, teknemi değiştir menülerinde hala beyaz üstü beyaz var"
   ÖLÇÜLDÜ: arama kutusu kontrast 1.00 (yani hiç), tekne listesi başlığı 1.14.
   KÖK: okunur renk kuralı "#tmaUstDenetim #tbGlobalSearch" diye YALNIZ
   MASAÜSTÜ KABINA yazılmıştı; mobilde kutu şeritte kalıyor ve koyu bardan
   BEYAZ yazı mirası alıyor. Aynı hatayı Miço'da da yapmıştım: kural kaba
   değil ÖĞEYE yazılır — öğe nereye taşınırsa taşınsın okunur kalır.
   45+ yaş, güneşte, telefonla bakan kaptan için bu kusur ekranı kullanılamaz
   yapar; kontrast burada süs değil işlevdir. */
#tbGlobalSearch,
input[type="search"],
#tb-app input[type="text"],
#tmaUstBar input,
#tmaUstDenetim input{
  background:#FFFFFF !important;
  color:#0B2A4A !important;
  -webkit-text-fill-color:#0B2A4A !important;   /* iOS Safari beyaz yazıyı zorluyor */
  border:1px solid #D7E3F0 !important;
}
#tbGlobalSearch::placeholder,
#tb-app input::placeholder,
#tmaUstBar input::placeholder{ color:#4A5A6E !important; opacity:1 !important; }

/* Tekne değiştir AÇILIR LİSTESİ beyaz zeminde — koyu bardan beyaz miras
   alıyordu. DİKKAT: tetikleyici düğme (#tbBrandSub) KOYU BARIN üstünde durur
   ve AÇIK yazı ister. İlk denememde ikisini birden koyulaştırıp düğmeyi
   okunmaz yaptım (7.68 → 2.21). Kural yalnız PANELE yazılır. */
#tbBoatSwitcherPanel, #tbBoatSwitcherPanel *{ color:#0B2A4A !important; }
#tbBoatSwitcherPanel{ background:#FFFFFF !important; }
#tbBoatSwitcherPanel small, #tbBoatSwitcherPanel .tb-alt{ color:#4A5A6E !important; }


/* ═══ v278 İLK EKRANDA AYARLAR DEĞİL İŞ OLSUN ═══
   [stated] "sayfada yatay dikey birsürü navigasyon var … kafam karıştı,
    neyi nasıl yapacağımı anlamadım. 45 yaş üzeri, gözü bozuk kaptanım ben"
   ÖLÇÜLDÜ: ilk ekranda 14 tıklanabilir öğe ve 5 ayrı gezinme yüzeyi vardı.
   ⊞ GÖRÜNÜM düğmesi bir AYARDIR — ömürde bir kez dokunulur, ama her gün
   ekranın en değerli köşesinde duruyor ve "bu ne işe yarıyor" sorusu
   ürettiriyordu. Menüde kalıyor, şeritten kalkıyor.
   YAZI BOYU (A) KALIYOR: gözü bozuk kaptan için o bir ayar değil ERİŞİM
   aracıdır; saklanmaz.
   Alt üç sekme (Bugün · Teknem · Defter) tek gezinme omurgasıdır;
   ☰ Menü derin sayfalar içindir. İkisi çakışmaz. */
#tmaUstBar #tmaUbMod, #tmaUstDenetim #tmaUbMod{ display:none !important; }

/* v278 hesap bloğu menünün en altında — günlük iş değil, ara sıra lazım */
.tma-menu-hesap{margin-top:14px;padding-top:14px;border-top:1px solid #D7E3F0}
.tma-menu-hesap .tb-logout{display:inline-flex;align-items:center;min-height:44px;
  padding:10px 14px;border:1px solid #D7E3F0;border-radius:10px;color:#0B2A4A;font-size:15px}


/* ═══ v278c TEK HİZMET KARTI ═══
   Kendi fazlalık süitim BENİM eklediğim mükerreri yakaladı:
   "⛑️ Bizden hizmet iste" (v267, yeni huni) ile "🛎️ Hizmet Talep Et"
   (eski kart) aynı işi yapıyor. Kaptanın şikâyeti tam olarak buydu —
   ve bu kez tekrarı ben ürettim.
   YENİSİ KALIR çünkü: 16 hizmet + bağlamı otomatik gönderir (geciken bakım,
   motor saati) + "sonra ne olacak" üç adımı + taleplerin listesi + rıza.
   ESKİSİ GİZLENİR (silinmez): içindeki "Talep Et" düğmeleri CRM ucuna
   bağlı, o yol yedek olarak yaşamaya devam eder. */
/* v310: 'Hizmet Talep Et' (çekirdek) ile 'Bizden hizmet iste' (enh tmaHizmetKart) AYNI iş —
   ikisi birden görünüp kafa karıştırıyordu. Çekirdek kart HER KOŞULDA gizli; hizmetlerin
   tek evi enh kartıdır. DOM'da kalır (JS referansları kırılmasın). */
#tb-hizmetler{ display:none !important; }


/* ═══ v275 MENÜ GRUP BAŞLIKLARI ═══
   Tıklanabilir GÖRÜNMEMELİ (satırlardan ayrışsın): küçük değil ama farklı —
   büyük harf değil (ekran okuyucu harf harf okur), rengi ve kalınlığı ayrı. */
.tma-menu-baslik{font-size:15px;font-weight:800;color:#4A5A6E;letter-spacing:.2px;
  padding:14px 14px 6px;margin:0;cursor:default;background:transparent}
#tbNav .tma-menu-baslik + a{margin-top:0}
#tbNav .tma-menu-baslik:not(:first-child){border-top:1px solid #E7EDF5;margin-top:8px}


/* ═══ v275 EN DAR EKRANDA (320px) İKİ ETİKET SIĞMIYOR ═══
   Yazı tabanını 15px'e çekince "Günü kapat" 83>73, "⇄ Tekne Değiştir"
   140>133 kırpıldı. Çözüm YAZIYI KÜÇÜLTMEK DEĞİL — bozuk göz için taban
   pazarlık konusu değildir. Yer açılır: yatay dolgu kısılır, ikon ile yazı
   arasındaki boşluk daraltılır, gerekirse kelime alta iner.
   320px, kitlenin küçük bir kısmı; ama okunmayan etiket herkes için kayıp. */
@media (max-width: 340px){
  #tb-app .tma-gs-dugme, #tb-app .tma-hizli-btn, #tb-app .tb-pill-btn{padding-left:8px;padding-right:8px;letter-spacing:-.2px}
  #tb-app .tma-gs-dugme span, #tb-app .tma-gs-dugme{white-space:normal!important}
  #tbBrandSub{padding-left:6px!important;padding-right:6px!important}
  #tbBrandSub{padding-left:6px;padding-right:6px;letter-spacing:-.2px}
  #tmaUstBar .tma-ub-btn, #tmaUstDenetim .tma-ub-btn{padding-left:8px;padding-right:8px}
  /* etiket yine sığmazsa satır kırılır — kırpılmaktansa iki satır olsun */
  /* v401: #tbBrandSub bu kuraldan ÇIKARILDI. Metin kısaldığı için ("Tekne
     değiştir") artık sığıyor; satır kırmak şeridi iki satıra bölüyor ve
     yanındaki Bildirimler düğmesiyle hizası bozuluyordu. */
  #tb-app .tma-gs-dugme, #tb-app .tma-hizli-btn{white-space:normal;line-height:1.25}
}


/* ═══ v275 "Tekneyi değiştir" HER EKRANDA KIRPILIYORDU ═══
   1024px'te bile kabı 132px, etiketi 120px istiyordu → üç nokta.
   Kırpılan etiket okunmaz; iki satıra inen etiket okunur. Kaptan için
   doğru tercih bellidir: METİN ASLA KIRPILMAZ, gerekirse alta iner.
   (nowrap yalnız fiyat/rozet gibi bölünmemesi gereken şeyler içindir.) */
/* v401: bu kural kaldırıldı. O gün metin uzundu ("Tekneyi değiştir") ve
   kırpılmaktansa alta inmesi doğruydu. Metin kısaldı; artık satır kırmak
   şeridi iki satıra bölüyor ve yanındaki düğmeyle hizayı bozuyor. */
#tbBrandSub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tbBoatSwitcher{min-width:0;flex:1 1 auto}


/* ═══ v279c KART İÇİ GEÇMİŞ LİSTELERİ SAYFAYI UZATIYOR ═══
   [stated] "sayfa sonsuz uzuyor neredeyse"
   Ölçüldü: BUGÜN'de görünen blok 5'e indi ama sayfa hâlâ 9,9 ekran.
   Kalan yükü kartların İÇİ taşıyor: seyir defterinde 15 kayıt, masrafta 4,
   yakıtta 2 — hepsi tam liste hâlinde açık. Kaptanın bugün yapacağı iş
   "kayıt girmek"; geçmişi görmek AYRI bir iş.
   Kart içi geçmiş listeleri 3 satırla sınırlanır, gerisi kendi kaydırma
   alanında kalır (kaybolmaz, sayfayı uzatmaz). */
#tb-app .tma-tablo-sar,
#tb-app .tb-log-list,
#tb-app .tb-history-list{
  max-height:180px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
/* Kaydırılabilir olduğu görünsün — 45+ kitlede gizli kaydırma bulunamaz */
#tb-app .tma-tablo-sar{ border-bottom:1px dashed #D7E3F0; }


/* ═══ v276 "SELAMETLE BAĞLANDIK" — ıslak elle, tek dokunuş ═══
   Kocaman olmalı: kaptan bakmadan, hissederek basabilmeli. */
#tmaVarisKart{padding:14px}
.tma-varis-btn{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;
  min-height:96px;padding:16px;background:#0B2A4A;color:#FFFFFF;border:0;border-radius:16px;
  cursor:pointer;box-shadow:0 6px 18px rgba(11,42,74,.22)}
.tma-varis-btn:active{transform:translateY(1px)}
.tma-varis-btn[disabled]{opacity:.75}
.tma-varis-ikon{font-size:28px;line-height:1}
.tma-varis-yazi{font-size:20px;font-weight:800;letter-spacing:.2px}
.tma-varis-alt{font-size:15px;color:#DCE9F7;font-weight:500;text-align:center;line-height:1.4}
.tma-varis-calisiyor .tma-varis-yazi::after{content:' …'}
.tma-varis-sonuc{margin-top:10px;font-size:15px;line-height:1.6;color:#12233F}
.tma-varis-ok{background:#EAF6EE;border:1px solid #15803D;border-radius:12px;padding:10px 12px}
.tma-varis-sor{margin-top:12px;padding-top:12px;border-top:1px solid #E7EDF5}
.tma-varis-etiket{display:block;font-size:15px;font-weight:700;color:#0B2A4A;margin:8px 0 6px}
.tma-varis-satir{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tma-varis-alan{min-height:44px;padding:10px 12px;border:1px solid #D7E3F0;border-radius:10px;
  font-size:15px;color:#0B2A4A;background:#FFFFFF;flex:1 1 140px;min-width:0}
.tma-varis-atla{margin-top:10px;font-size:15px;color:#4A5A6E;line-height:1.5}


/* ═══ v277 YARIM KALMIŞ NOT ŞERİDİ ═══
   Sessizce geri yazmak yerine SORAR — kaptan kararı verir. */
.tma-taslak{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;
  background:#FFF8EE;border:1px solid #E9A23B;border-radius:12px;padding:10px 12px}
.tma-taslak-metin{flex:1 1 180px;min-width:0;font-size:15px;line-height:1.5;color:#12233F;overflow-wrap:anywhere}
.tma-taslak-geri,.tma-taslak-sil{min-height:44px;padding:8px 14px;border-radius:10px;font-size:15px;cursor:pointer}
.tma-taslak-geri{background:#0B2A4A;color:#FFFFFF;border:0;font-weight:700}
.tma-taslak-sil{background:#FFFFFF;color:#4A5A6E;border:1px solid #D7E3F0}


/* ═══ v278 TEKNE DEĞİŞTİR PANELİ EKRANIN ALTINDA KALIYORDU ═══
   Ölçüldü: panel top=766, ekran 780 → kaptan bastığında NEREDEYSE HİÇBİR
   ŞEY görmüyor; kalan parçayı da alt sekme çubuğu örtüyor (panel z=60,
   çubuk z=140). Sebep zincirleme: v275'te "Tekneyi değiştir" etiketinin
   kırpılmasını önlemek için iki satıra izin verdim, tetikleyici uzayınca
   ona GÖRE konumlanan panel aşağı itildi.
   Kural (v258b'de öğrenildi): mobil kuralda position'ı !important yapıp
   TOP'u bırakmak paneli ekran dışına atar — ikisi de sabitlenir.
   Panel artık üst şeridin hemen altına, çubuğun ÜSTÜNDE açılır. */
@media (max-width: 900px){
  #tbBoatSwitcherPanel{
    position:fixed!important; top:0!important; bottom:0!important;
    left:0!important; right:0!important;
    width:100vw!important; height:100vh;height:100dvh!important; max-width:100vw!important;
    max-height:100vh;max-height:100dvh!important; border-radius:0!important; padding:16px!important;
    z-index:200!important; box-sizing:border-box!important;
    overflow-y:auto!important; z-index:151!important;
    box-shadow:0 14px 34px rgba(11,42,74,.24)!important;
  }
}
@media (min-width: 901px){
  #tbBoatSwitcherPanel{z-index:151!important}
}


/* v278: satır içi konum kaldırıldı — masaüstünde tetikleyicinin altına
   yerleşir (klasik açılır), mobilde kardeş kural fixed konumlandırır. */
#tbBoatSwitcher{position:relative}
@media (min-width: 901px){
  #tbBoatSwitcherPanel{position:absolute;top:calc(100% + 6px);left:0;z-index:151}
}


/* v278: yaprak açıkken ÜST ŞERİT geri çekilir — aynı karar v264'te bildirim
   yaprağı için verilmişti (yaprağın tepesine dokunan parmak bara değiyordu).
   z-index tek başına yetmez: şerit ayrı yığın bağlamında olabilir. */
body.tma-tekne-yaprak #tmaUstBar,
body.tma-tekne-yaprak #tmaUstDenetim{visibility:hidden!important}


/* ═══ v278 SON SÖZ: TEKNE YAPRAĞI ═══ */
@media (max-width: 900px){
  body #tbBoatSwitcherPanel{z-index:200!important}
  /* yaprak açıkken üst şerit dokunulamaz olur: parmak yaprağa değsin */
  body.tma-tekne-yaprak #tmaUstBar,
  body.tma-tekne-yaprak #tmaUstDenetim{visibility:hidden!important}
}


/* ═══ v278 BİLGİ BALONU PARMAĞI ÇALMASIN ═══
   Ölçüldü: #tbToast (z=9999, fixed) ekranda kalınca altındaki düğmelere
   dokunulamıyordu — "Tekne değiştir" ve "Zil" parmağa gelmiyordu.
   Balon BİLGİ verir, EYLEM almaz: tıklamayı geçirir. İçindeki gerçek
   düğmeler (varsa) yine tıklanabilir kalır. */
#tbToast{pointer-events:none!important}
#tbToast button, #tbToast a{pointer-events:auto!important}


/* v278: #tb-app'e verdiğim alt nefes payı .tb-mobile-bar'ı KAPSAMIYORDU —
   menü/tekne/zil o kapta yaşıyor ve sayfa sonunda sabit sekme çubuğunun
   altında kalıyorlardı (parmak çubuğa değiyordu). Aynı pay ona da verilir. */
body[data-tma-sekme] .tb-mobile-bar{padding-bottom:110px}


/* v278: mobil şerit artık DÖRT üye taşıyor (arama · menü · tekne · zil).
   İki satırlık ızgara: üstte arama+menü, altta tekne+zil. Tek satıra
   sıkıştırmak 320px'te zili ekran dışına atıyordu (ölçüldü). */
/* (v278 mobil şerit dört üye denemesi geri alındı — panelleri kırıyordu) */


/* ═══ v279 ALT ŞERİT NEDEN HEP DİBE DÜŞÜYORDU ═══
   Ölçüldü: .tb-mobile-bar sticky top:0 — ama yapıştığı kap (.tb-side) mobilde
   İÇERİĞİN ALTINDA başlıyor (y=654). Sticky ancak kendi kabının içinde
   yapışır; kap aşağıdaysa şerit de aşağıda kalır ve sabit sekme çubuğuyla
   çakışır (712-760 ↔ 717-780). Kaptan tekne değiştiriciye ve zile
   dokunamıyordu — parmak çubuğa değiyordu.
   ÇÖZÜM YAMA DEĞİL SIRA: mobilde yan sütun İÇERİKTEN ÖNCE gelir; şerit
   sayfanın tepesine yapışır, çubuğun menziline hiç girmez. */
@media (max-width: 900px){
  #tb-app{display:flex!important;flex-direction:column!important}
  #tb-app > .tb-shell{order:-2!important}
  .tb-shell{display:flex!important;flex-direction:column!important}
  .tb-side{order:-1!important}
  .tb-main{order:1!important}
  .tb-mobile-bar{top:0!important;z-index:120!important}
}


/* v279: kazanç şeridi ALTINDAKİ DÜĞMEYİ ÇALIYORDU (kapı yakaladı).
   Balonda olduğu gibi: bilgi veren katman dokunuşu geçirir; şerit
   kendiliğinden kapanıyor, kaptanın onu kapatmak için uğraşması gerekmez. */
.tma-kazanc{pointer-events:none!important}
.tma-kazanc button, .tma-kazanc a{pointer-events:auto!important}


/* ═══ v279 "NEREDEYİM" ŞERİDİ ☰ DÜĞMESİNİ ÖRTÜYORDU ═══
   Ölçüldü (menü izleyicisi): üçüncü gezinmeden sonra ☰'nin üstündeki öğe
   #tmaNeredeyim çıkıyor — şerit top:56px'te, tam üst şeridin üzerinde ve
   açıkken pointer-events:auto alıyor. Kaptan menüye basıyor, menü açılmıyor;
   parmağı bilgi şeridine değiyor. (Balon ve kazanç şeridiyle AYNI SINIF
   HATA: bilgi katmanı eylemi çalıyor — bu turda üçüncüsü.)
   ÇÖZÜM: şerit üst şeridin ALTINA iner (aynı değişken: --tma-panel-ust)
   ve hiçbir zaman gezinmenin üstünde durmaz. */
#tmaNeredeyim{top:var(--tma-panel-ust, 122px)!important; z-index:105!important}


/* v280: varış kartı ana sütunun tepesinde durur; yatay hizayı kart
   ızgarasından almadığı için aynı 10px'i kendisi taşır (kapı hizayı ölçüyor). */
.tma-varis-tepe{margin:0 10px 12px!important;box-sizing:border-box}
@media (min-width: 901px){ .tma-varis-tepe{margin:0 0 14px!important} }


/* ═══ v280 YAN SÜTUN MOBİLDE 268px YER YİYORDU ═══
   Ölçüldü: .tb-side içinde marka (30px), denetim şeridi (64px), kullanıcı
   kartı (64px) ve çıkış düğmesi (44px) var. Kullanıcı kartı ve çıkış ZATEN
   menüye taşındı (v275) — burada MÜKERRER duruyor ve ilk ekranın üçte birini
   yiyor. Kaptanın limana yanaşınca göreceği ilk şey "Bağlandık" olmalı,
   kendi adı ve çıkış düğmesi değil.
   Mobilde yalnız DENETİM ŞERİDİ kalır. */
@media (max-width: 900px){
  .tb-side > .tb-card-user,
  .tb-side > .tb-logout,
  .tb-side > #tbBrand{display:none!important}
}


/* ═══════════════════════════════════════════════════════════════════════
   v281 AÇILIŞTA 58 KART YANIP SÖNÜYORDU
   [stated] "tasarım yamaları yüzünden sayfa defalarca değişerek açılıyor;
    son tasarımla açılsın, bir kerede."
   ÖLÇÜLDÜ (60ms örnekleme): 400ms'de 54 kart → 455ms'de 58 → 1790ms'de 4.
   Yani kaptan 1,4 SANİYE boyunca ürünün ESKİ, kalabalık hâlini görüyor,
   sonra ekran birden sadeleşiyor. v266'da açılışı düzeltmiştim ama o
   düzeltme yalnız SEKME süzgecini öne almıştı; BUGÜN SADELİĞİ (en fazla
   dört blok) hâlâ JS ile ~1,8 sn sonra uygulanıyordu.
   ÇÖZÜM: sadelik de ilk boyamada uygulanır. Çekirdek dört blok görünür,
   gerisi kapalı başlar; JS hazır olunca gövdeye tma-sadelik-hazir yazar ve
   kendi kararını (rozetli kartlar vb.) devralır.
   YENİ YOL AÇILMADI: aynı kararın tetikleyicisi öne alındı.
   ═══════════════════════════════════════════════════════════════════════ */
body[data-tma-sekme="bugun"]:not(.tma-sadelik-hazir):not(.tma-bugun-hepsi)
  #tb-app .tb-widget{display:none!important}
body[data-tma-sekme="bugun"]:not(.tma-sadelik-hazir):not(.tma-bugun-hepsi)
  #tb-app #tmaVarisKart,
body[data-tma-sekme="bugun"]:not(.tma-sadelik-hazir):not(.tma-bugun-hepsi)
  #tb-app #tb-defter,
body[data-tma-sekme="bugun"]:not(.tma-sadelik-hazir):not(.tma-bugun-hepsi)
  #tb-app #tb-yakit-gecmis,
body[data-tma-sekme="bugun"]:not(.tma-sadelik-hazir):not(.tma-bugun-hepsi)
  #tb-app #tb-odemeler{display:block!important}


/* ═══════════════════════════════════════════════════════════════════════
   v282 DÜĞME AİLESİ 7 → 4
   Ölçüldü (tutarli281): aynı üründe yedi ayrı düğme görünümü var — köşe
   yarıçapı 10/12/14/16/999, kalınlık 400/600/700/800, boy 13/15 karışık.
   45+ ve teknolojiye mesafeli kaptan için bu, her kartı YENİDEN ÖĞRENMEK
   demektir: "bu düğme öbürüne benzemiyor, başka bir şey mi yapıyor?"
   DÖRT AİLE, dördü de anlamı belli:
     · HAP (999)   — dokunmalı hızlı seçim (Dolu/Yarım/20 L gibi)
     · BİRİNCİL    — koyu dolgu, kartın ASIL işi (kart başına bir tane)
     · İKİNCİL     — çerçeveli, yan eylem
     · SADE        — çerçevesiz, metin bağlantısı gibi
   Yarıçap ve kalınlık tek değere çekilir; hap düğmeler dokunulmaz (onların
   yuvarlaklığı ANLAM taşır: "seçenek").
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app button:not([class*="hap"]):not(.tma-dokun-btn):not(.tma-sekme-btn),
#tb-app .tb-btn:not([class*="hap"]):not(.tma-dokun-btn){
  border-radius:12px;
  font-size:15px;
  font-weight:700;
}
/* birincil (koyu dolgu) biraz daha kalın — asıl iş olduğu bir bakışta belli */
#tb-app .tma-birincil, #tb-app .tb-btn-primary, #tb-app .tma-varis-btn,
#tb-app .tma-hz-btn, #tb-app .tma-taslak-geri{ font-weight:800 }
/* hap düğmeler kendi ailesinde kalır */
#tb-app .tma-dokun-btn{ border-radius:999px; font-size:15px; font-weight:700 }


/* v282b: .tma-enh-btn kendi 10px yarıçapını daha güçlü seçiciyle koruyordu
   (ölçüldü: 10px'te takılı 5 aile). Aile birliği için o da 12px'e gelir;
   ayrıca varış düğmesi birincil olduğu için 800 kalınlığa çekilir. */
#tb-app .tma-enh-btn, #tb-app .tma-enh-btn.tma-btn-genis{border-radius:12px!important}
#tb-app .tma-varis-btn{font-weight:800!important}


/* v282c: şablonun kendi .tb-btn ve .tb-request-btn'leri 10px yarıçapta
   kalmıştı (satır içi/şablon kuralı daha güçlü). Dört aile kuralı ürünün
   TAMAMI için geçerlidir — "Kaydet" düğmesi hangi kartta olursa olsun aynı
   görünür. Kaptan bir kez öğrenir, her yerde tanır. */
#tb-app .tb-btn, #tb-app .tb-request-btn, #tb-app button.tb-btn{
  border-radius:12px!important; font-size:15px!important; font-weight:700!important;
}
#tb-app .tb-btn.tb-btn-primary, #tb-app .tb-request-btn{font-weight:800!important}


/* ═══ v283 GÜNLÜK ŞERİT SAYFANIN DİBİNE DÜŞMÜŞ ═══
   Ölçüldü (odak282): "⚓ Günü kapat · ⛽ Yakıt · 💳 Masraf" — kaptanın EN ÇOK
   kullandığı üç kısayol — y=6356'daydı. Sebep benim v279 düzeltmem:
   #tb-app'i sütun ızgarası yapıp .tb-shell'e order:-2 verdim; şerit
   varsayılan order:0 ile kabuğun ARKASINA düştü.
   Kendi kuralım: DEĞİŞTİRDİĞİN ŞEYİ ÖLÇ — sırayı düzeltirken sıradan bir
   şeyi kaybettim ve iki tur boyunca göremedim.
   Şerit artık en tepede: üst şerit (sabit) → günlük kısayollar → varış →
   içerik. Okuma sırası da böylece görsel sırayla aynı olur. */
@media (max-width: 900px){
  /* v319: v283'ün KARDEŞİ — v285'te eklenen özet satırı order'sız kaldığı için
     order:-2'li kabuğun ARKASINA (y≈2630) düşüyordu. Kaptanın kendi sayıları
     İLK EKRANDA olmalı: şerit → özet+ödül → kabuk. */
  #tb-app > #tmaGunlukSerit{order:-3!important}
  #tb-app > #tmaOzetSatir{order:-3!important}
  /* v320: v283/v285'in ÜÇÜNCÜ kardeşi — dönen kaptanda özetin ardına taşınan
     günün cümlesi ve MİÇO başlığı da order'sız kalınca kabuğun arkasına düşüyordu. */
  #tb-app > #tmaGunCumle{order:-3!important}
  #tb-app > #tma-enh-card{order:-3!important}
}


/* v284 kart içi mesaj: kaptan cevabı BASTIĞI YERDE görür */
.tma-kart-msj{margin-top:10px;font-size:15px;line-height:1.6;color:#12233F;
  background:#FFF8EE;border:1px solid #E9A23B;border-radius:10px;padding:10px 12px}
.tma-kart-msj:empty{display:none}


/* v285 dönen kaptanın özeti — ilk ekranda, kendi sayılarıyla */
.tma-ozet-satir{display:flex;flex-direction:column;gap:2px;margin:0 10px 10px;
  padding:12px 14px;background:#EAF2FB;border:1px solid #D7E3F0;border-radius:12px}
.tma-ozet-bas{font-size:15px;font-weight:800;color:#0B2A4A}
.tma-ozet-veri{font-size:15px;line-height:1.6;color:#12233F}
.tma-ozet-veri b{color:#0B2A4A}
@media (min-width: 901px){ .tma-ozet-satir{margin:0 0 14px} }


/* ═══ v288 BUGÜN'DE AĞIR BLOKLAR ═══
   Ölçüldü: satır içi display:none konuyor ama başka bir kural (grid
   yerleşimi) onu geri açıyordu — damga duruyor, blok görünüyordu.
   Karar CSS'te verilir: BUGÜN sekmesinde ve "hepsi" modu kapalıyken
   ağır bloklar kapalıdır. Kaptan "⋯ Bugünün diğerleri" ile açar. */
body[data-tma-sekme="bugun"]:not(.tma-bugun-hepsi) #tb-app .tb-frontgrid,
body[data-tma-sekme="bugun"]:not(.tma-bugun-hepsi) #tb-app #tmaRehber{display:none!important}

/* v288b: BUGÜN'ün blokları öbür sekmelerde işi yok — orada yalnız sayfayı
   uzatıyorlar (TEKNEM'de 3044px). Sekmenin kendi işi neyse o görünür. */
body[data-tma-sekme="teknem"] #tb-app .tb-frontgrid,
body[data-tma-sekme="teknem"] #tb-app #tmaRehber,
body[data-tma-sekme="teknem"] #tb-app .tb-fg-hero,
body[data-tma-sekme="defter"] #tb-app .tb-frontgrid,
body[data-tma-sekme="defter"] #tb-app #tmaRehber,
body[data-tma-sekme="defter"] #tb-app .tb-fg-hero{display:none!important}


/* ═══════════════════════════════════════════════════════════════════════
   v289 TEKNE PORTFÖYÜ SAĞDAN KESİLİYORDU (saha bildirimi)
   Kök: kart 390px telefonda ALTI SÜTUNLU tablo basıyor —
   Tekne · Motor Saati · Sigorta · Zorunlu Ekipman · Yaklaşan Bakım ·
   Bekleyen görev. Altı sütun bu genişliğe sığmaz; sağdaki üçü kesiliyor
   ve kaptan sigortasının bittiğini GÖREMİYOR (en kritik sütun kesilen
   tarafta kalıyor).
   ÇÖZÜM YATAY KAYDIRMA DEĞİL: kendi kuralım "panelde ikinci kaydırma
   olmaz" — 45+ kaptan yatay kaydırmayı fark etmez, veriyi yok sayar.
   Mobilde tablo SATIRLARA AÇILIR: her tekne bir blok, her hücre kendi
   etiketiyle. Sütun sırası sabit olduğu için etiketler CSS'ten gelir.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 700px){
  #tbPortfoyOzeti table{display:block;width:100%;border-collapse:separate}
  #tbPortfoyOzeti thead{display:none}
  #tbPortfoyOzeti tbody{display:block}
  #tbPortfoyOzeti tr{display:block;background:#FFFFFF;border:1px solid #D7E3F0;
    border-radius:12px;padding:10px 12px;margin-bottom:10px}
  #tbPortfoyOzeti td{display:flex;justify-content:space-between;align-items:baseline;
    gap:12px;border:0;padding:6px 0;font-size:15px;text-align:right}
  #tbPortfoyOzeti td:first-child{display:block;text-align:left;
    border-bottom:1px solid #E7EDF5;margin-bottom:4px;padding-bottom:8px}
  #tbPortfoyOzeti td::before{content:attr(data-etiket);color:#4A5A6E;font-weight:700;
    text-align:left;flex:0 0 auto}
  #tbPortfoyOzeti td:first-child::before{content:none}
}


/* ═══════════════════════════════════════════════════════════════════════
   v292 GENİŞLİKLER FARKLI — TEK KENAR ÇİZGİSİ (saha bildirimi)
   Ölçüldü (390px): tmaGunlukSerit 0 · kartlar 10 · bölüm etiketi 12 ·
   denetim şeridi 14 · "diğerleri" 0 → DÖRT FARKLI kenar. Ekranda her blok
   başka yerden başlıyor; göz hizayı arıyor ve "derme çatma" hissi doğuyor.
   Kaptanın sözü: "genişlikler farklı. tutarlılık kararlılık
   standardizasyon."
   TEK DEĞER: 10px (kartların hâli — çoğunluk orada, en az dokunuşla
   hizalanır). İçerik taşıyan her üst blok aynı çizgiden başlar.
   ═══════════════════════════════════════════════════════════════════════ */
#tb-app > #tmaGunlukSerit,
#tb-app > #tmaOzetSatir,
#tb-app > #tmaBildiklerimBtn,
#tb-app > #tmaBugunDigerleri,
#tb-app .tb-section-label,
#tb-app .tb-mobile-bar{
  margin-left:10px!important; margin-right:10px!important;
  width:auto!important; max-width:calc(100% - 20px)!important;
  box-sizing:border-box!important;
}
@media (min-width: 901px){
  #tb-app > #tmaGunlukSerit,
  #tb-app > #tmaOzetSatir,
  #tb-app > #tmaBildiklerimBtn,
  #tb-app > #tmaBugunDigerleri,
  #tb-app .tb-section-label,
  #tb-app .tb-mobile-bar{margin-left:0!important;margin-right:0!important;max-width:100%!important}
}


/* v292b: iki blok ATA DOLGUSUNUN İÇİNDE yaşıyor — kendi 10px'i ekleyince
   24 ve 20 çıkıyordu (ölçüldü). İçeride olanlar kenar boşluğu almaz;
   hizayı ataları verir. Kural: kenar boşluğu SADECE en üst blokta. */
#tb-app .tb-main .tb-section-label{margin-left:0!important;margin-right:0!important;max-width:100%!important}
#tb-app .tb-side .tb-mobile-bar{margin-left:0!important;margin-right:0!important;max-width:100%!important}
#tb-app .tb-side{padding-left:10px;padding-right:10px;box-sizing:border-box}


/* ═══════════════════════════════════════════════════════════════════════
   v293 "NEREDEYİM" ROZETİ KALDIRILDI (saha bildirimi)
   Ölçüldü: tam ekran bant olması gereken şerit, önceki bir düzeltmede
   124px'lik sağa yaslı bir baloncuğa dönmüş ve sayfanın ortasında asılı
   duruyordu. Kaptanın sözü: "koyu baloncuklar kartların üstünde asılı
   duruyor; kırık görünüyor."
   Düzeltmek yerine KALDIRIYORUM, çünkü MÜKERRER: hangi bölümde olduğunu
   alttaki sekme çubuğu (Bugün/Teknem/Defter) ve kartın kendi başlığı
   zaten söylüyor. Üçüncü bir gösterge bilgi vermiyor, yalnız yer kaplıyor
   ve ekranı örtüyor — bu turda ☰ düğmesini de örttüğü ölçülmüştü.
   ═══════════════════════════════════════════════════════════════════════ */
#tmaNeredeyim{display:none!important}


/* ═══════════════════════════════════════════════════════════════════════
   v294 MENÜ SADELEŞTİRİLDİ (saha: "menü çok çirkin, sade basit olmalı")
   Ölçüldü: 8 gezinme satırı için BEŞ BAŞLIK (⚓ Günlük · 🔧 Tekne & Bakım ·
   💳 Para & Belge · 🧭 Keşif + benim eklediğim "Nereye gidelim?"). Başlık
   sayısı satır sayısının yarısına yakın — göz her iki satırda bir duruyor,
   liste uzun ve parçalı görünüyor. Sekiz satır zaten tek bakışta okunur;
   başlığa ihtiyaç yok.
   YAPILAN: başlıklar kalktı · satırlar 56px (parmak için rahat) · yazı 16px
   · gruplar arası tek ince çizgi · eylemler (İlan Ver / Soru Sor / Yazıyı
   büyüt) altta ayrı blokta. Arama kutusu KALDI: kart adını hatırlamayan
   kaptanın tek yolu o.
   ═══════════════════════════════════════════════════════════════════════ */
#tbNav .tma-menu-grup,
#tbNav .tma-menu-baslik{display:none!important}

#tbNav a.tma-menu-satir,
#tbNav button.tma-menu-satir{
  display:flex!important; align-items:center; gap:12px;
  min-height:56px!important; padding:0 16px!important;
  font-size:16px!important; font-weight:700!important;
  border-radius:12px!important; margin:2px 8px!important;
  border:0!important; background:transparent!important; color:#0B2A4A!important;
  text-decoration:none!important; width:auto!important;
}
/* Zemin ve metin BİRLİKTE: menü açık temadır (kullanıcı kararı), satır
   yazısı koyu lacivertdir. İkisi ayrı yerlerde yazılırsa biri değişince
   öteki görünmez kalır — bu tam olarak başımıza geldi. */
#tbNav{background:#FFFFFF!important}
#tbNav a.tma-menu-satir,
#tbNav button.tma-menu-satir{background:transparent!important;color:#0B2A4A!important}
#tbNav a.tma-menu-satir:active,
#tbNav button.tma-menu-satir:active{background:#EAF2FB!important}

/* eylemler altta, tek çizgiyle ayrılır — "gitmek" ile "yapmak" ayrımı
   başlıkla değil boşlukla anlatılır (daha sessiz, daha sade) */
#tbNav .tma-menu-yazi,
#tbNav #tmaEnhNavIlan,
#tbNav #tmaEnhNavQa{margin-top:6px!important}
#tbNav #tmaEnhNavIlan{border-top:1px solid #E7EDF5!important;padding-top:14px!important;margin-top:12px!important}

#tbNav a.tma-menu-satir, #tbNav a.tma-menu-satir *{font-size:16px!important}
#tbNav .tma-menu-ara input{min-height:52px!important;font-size:16px!important}


/* v294b MENÜ AÇIK TEMA — ZEMİN VE METİN BİR ARADA
   Ölçüldü: menü zemini lacivert, satır yazısı lacivert → KONTRAST 1.00,
   menü tamamen görünmezdi. Karar zaten açık temaydı; iki eski kural
   koyu tutuyordu. Artık zemin beyaz, yazı koyu lacivert; başlık şeridi
   de beyaz ve ince çizgiyle ayrılıyor. */
#tbNav .tma-menu-bas, #tbNav .tma-menu-ad, #tbNav .tma-menu-capa{color:#0B2A4A!important}
#tbNav .tma-menu-kapat{color:#0B2A4A!important;background:#F1F5FA!important;border-radius:12px!important}
#tbNav .tma-menu-ara input{background:#FFFFFF!important;color:#0B2A4A!important;
  border:1px solid #D7E3F0!important;border-radius:12px!important}


/* v294c: "İlan Ver" ve "Soru Sor" satırları KOYU MENÜ döneminden kalma
   beyaz yazıyı taşıyordu (kontrast 1.14 — beyaz üstünde beyaz). Bunlar
   .tma-menu-satir sınıfını almadıkları için yeni kuraldan da kaçmışlar.
   Kimliğiyle yakalanır ve aynı aileye katılır. */
#tbNav #tmaEnhNavIlan, #tbNav #tmaEnhNavQa{
  display:flex!important; align-items:center; gap:12px;
  min-height:56px!important; padding:0 16px!important; margin:2px 8px!important;
  font-size:16px!important; font-weight:700!important;
  color:#0B2A4A!important; background:transparent!important;
  border:0!important; border-radius:12px!important; text-decoration:none!important;
}
#tbNav #tmaEnhNavIlan{border-top:1px solid #E7EDF5!important;padding-top:14px!important;margin-top:12px!important}

#tbNav a.tma-menu-satir, #tbNav button.tma-menu-satir,
#tbNav #tmaEnhNavIlan, #tbNav #tmaEnhNavQa, #tbNav .tma-menu-yazi,
#tbNav .tma-menu-satir *, #tbNav #tmaEnhNavIlan *, #tbNav #tmaEnhNavQa *{
  font-size:16px!important;
}


/* ═══ v294d OKLAR VE YAZI BOYU ═══
   İki bulgu:
   (1) OKLAR CSS'TEN basılıyormuş (a.tma-menu-satir::after içeriği "›").
       Metin taramam onları göremiyordu — kaptan görüyordu. Kaptanın
       "oklar" şikâyeti buradan; sekiz satırın hepsinde gereksiz bir işaret
       var, hiçbir bilgi vermiyor (zaten hepsi bir yere gidiyor).
   (2) Satır yazısını 16px yapan kuralım #tb-app ön ekli daha özgül bir
       kuralla eziliyordu → 15px'te kalmıştı. Menüde TEK yazı boyu olur;
       biri küçükse göz onu "daha az önemli" okur.
   Not: ok işaretini kaldırıyorum ama satırın tıklanabilir olduğu
   BÜYÜKLÜK ve DOKUNMA GERİ BİLDİRİMİYLE zaten belli. */
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir::after{content:none!important}
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir,
#tb-app .tb-nav.tb-nav-open a.tma-menu-satir *,
#tb-app .tb-nav.tb-nav-open button.tma-menu-satir{font-size:16px!important}


/* ═══ v295 ALGI KATMANI GÖRÜNÜMÜ ═══ */
.tma-ozet-odul{display:block;margin-top:6px;padding-top:6px;
  border-top:1px solid #D7E3F0;font-size:15px;color:#12233F}
.tma-ozet-odul b{color:#0B2A4A}

/* "N uyarı daha" — sessiz, ikincil; kaptan isterse açar */
.tma-uyari-daha{display:block;width:100%;min-height:48px;margin:8px 0 0;
  background:#FFFFFF;border:1px solid #D7E3F0;border-radius:12px;
  font-size:15px;font-weight:700;color:#4A5A6E;cursor:pointer}

/* her uyarının çıkış kapısı — çözümsüz uyarı suçlamadır */
.tma-uyari-cozum{display:inline-flex;align-items:center;min-height:44px;
  margin-top:10px;padding:8px 16px;border:0;border-radius:12px;
  background:#0B2A4A;color:#FFFFFF;font-size:15px;font-weight:800;cursor:pointer}


/* v295b: v292'de günlük şeride 10px kenar verince "Günü kapat" 360px'te
   83>75 kırpıldı. İlke değişmedi: METİN ASLA KIRPILMAZ, yer açılır.
   Şeritteki üç kısayol dar ekranda daha az iç dolgu alır ve gerekirse
   ikinci satıra iner. */
@media (max-width: 380px){
  #tmaGunlukSerit .tma-gs-dugme{padding-left:6px!important;padding-right:6px!important;
    letter-spacing:-.2px}
  #tmaGunlukSerit .tma-gs-dugme span{white-space:normal!important;line-height:1.2}
}


/* v296 birleşen alışveriş bölümü: kart değil, kartın içinde bölüm */
#tb-app .tma-alt-bolum{margin-top:14px;padding-top:14px;border-top:1px solid #E7EDF5;
  background:transparent!important;border-radius:0!important;box-shadow:none!important;padding-left:0;padding-right:0}
#tb-app .tma-alt-bolum .tb-w-head h3{font-size:16px!important}


/* v297: görünmez ama ekran okuyucuya okunan başlık (display:none OLMAZ —
   o zaman ekran okuyucu da görmez). */
.tma-gizli-baslik{position:absolute!important;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}


/* ═══ v300 MENÜ AÇIKKEN ÜST ŞERİT ÖNDE KALIYOR ═══
   Ölçüldü (denetim263): menü açık, menüdeki "🔠 Yazıyı büyüt" satırının
   üstünde #tmaUstBar duruyor — parmak menüye değil şeride değiyor.
   Aynı sınıf hata tekne yaprağında da vardı (v278) ve orada şeridi geri
   çekmiştim; MENÜ İÇİN AYNISINI YAPMAMIŞIM — "kardeşini ara" kuralının
   yeni bir ihlali.
   Menü açıkken üst şerit dokunulamaz olur; kapanınca geri gelir. */
body.tma-menu-acik #tmaUstBar,
body.tma-menu-acik #tmaUstDenetim{visibility:hidden!important}
#tbNav.tb-nav-open{z-index:200!important}


/* v300: hizmet düğmesi basılınca ANINDA karşılık verir (sunucu beklenirken
   bile) — kaptan bastığını görür, ikinci kez basmaz. */
#tb-app .tma-hz-btn.tma-hz-secili{background:#0B2A4A!important;color:#FFFFFF!important;
  border-color:#0B2A4A!important}

.tma-indir-sonuc{margin-top:10px;font-size:15px;line-height:1.6;color:#12233F;
  background:#EAF6EE;border:1px solid #15803D;border-radius:10px;padding:10px 12px}
.tma-indir-sonuc:empty{display:none}
.tma-indir-sonuc a{color:#0B2A4A;font-weight:800}

/* v302: talebi olan kaptan önce DURUMU görür, tarifi sonra */
#tb-app .tma-hz-ozet{margin:0 0 10px;padding:10px 12px;border-radius:10px;
  background:#EAF2FB;border:1px solid #D7E3F0;font-size:15px;font-weight:700;color:#0B2A4A}
#tb-app .tma-hz-ozet:empty{display:none}


/* ═══════════════════════════════════════════════════════════════════════
   v303 YAZDIRMA ÇIKTISI (hiç ölçülmemiş eksen)
   Kaptan seyir defterini ve karneyi SİGORTAYA, SÖRVEYÖRE, ALICIYA verir —
   o kâğıt ürünün en resmî yüzü. Ölçüldü: yazdırmada "Başa dön" düğmesi,
   üst şerit ve varış kartı KÂĞIDA BASILIYOR; 87 öğe A4 genişliğini aşıyor
   (sağ kenardan kesilir).
   KURAL: kâğıtta yalnız İÇERİK olur. Gezinme, eylem, yüzen katman —
   hiçbiri basılmaz; genişlik kâğıda göre daralır.
   ═══════════════════════════════════════════════════════════════════════ */
@media print{
  /* 1) gezinme ve eylem katmanları kâğıda basılmaz */
  #tmaUstBar, #tmaUstDenetim, #tmaUcSekme, #tmaBasaDon, #tbNav, #tmaMenuPerde,
  #tmaGunlukSerit, #tmaVarisKart, #tmaBildiklerimBtn, #tmaBugunDigerleri,
  .tb-mobile-bar, .tma-kazanc, #tbToast, #tmaBildirim, .tma-uyari-daha,
  .tma-indir-sonuc, .tma-taslak{display:none!important}
  /* satır içi/güçlü kurallara karşı gövdeden bağlı yüksek özgüllük */
  html body #tmaBasaDon,
  html body #tmaVarisKart,
  html body #tmaUstBar,
  html body #tmaUcSekme{display:none!important;visibility:hidden!important}

  /* 2) kâğıt genişliğine sığ: sabit genişlikler ve yatay kaydırmalar iner */
  html, body, #tb-app, #tb-app *{max-width:100%!important;box-sizing:border-box!important}
  #tb-app, #tb-app .tb-widget, #tb-app .tb-shell, #tb-app .tb-main{
    width:auto!important; margin-left:0!important; margin-right:0!important;
    overflow:visible!important; float:none!important}
  #tb-app [style*="width:"]{max-width:100%!important}

  /* 3) kart kâğıt ortasından ikiye bölünmesin */
  #tb-app .tb-widget{break-inside:avoid; page-break-inside:avoid;
    box-shadow:none!important; border:1px solid #999!important}

  /* 4) mürekkep tasarrufu ve okunurluk: kâğıtta siyah-beyaz */
  #tb-app, #tb-app *{color:#000!important; background:transparent!important}
  #tb-app a{text-decoration:underline}
  /* satır içi eylem düğmeleri (fotoğraf ekle, sil) kâğıtta anlamsızdır */
  html body #tb-app button, html body #tb-app [role="button"]{display:none!important}
}

/* v306: silme sorusu — kırmızı ve okunur; 3 sn sonra kendiliğinden geri döner */
#tb-app .tma-sil-soru{background:#B3261E!important;color:#fff!important;border-color:#B3261E!important;
  font-size:15px!important;font-weight:800!important;padding:6px 12px!important;min-height:44px}


/* ═══════════════════════════════════════════════════════════════════════
   v306 SEYİR DEFTERİ TABLOSU EKRANIN DIŞINA TAŞIYOR
   Ölçüldü: tablo 520px, ekran 390px — sağdaki sütun (📷 ve ✕) EKRANIN
   DIŞINDA. Kaptan kaydını silemiyor, fotoğraf ekleyemiyor; üstelik
   yatay kaydırma da yok (kapOverflow: visible), yani ORAYA HİÇ ULAŞAMIYOR.
   Aynı kökü tekne portföyünde de bulmuştum — KARDEŞİNİ ARA kuralının
   bir kez daha doğrulanması.
   ÇÖZÜM PORTFÖYDEKİYLE AYNI: mobilde tablo SATIRLARA açılır. Yatay
   kaydırma değil — 45+ kaptan yatay kaydırmayı fark etmez, veriyi
   ve düğmeyi yok sayar.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width: 700px){
  .tma-tablo-sar table, #tb-defter table, #tb-yakit-gecmis table, #tb-odemeler table{
    min-width:0!important; width:100%!important; display:block}
  .tma-tablo-sar{overflow-x:visible!important}
  #tb-defter thead, #tb-yakit-gecmis thead, #tb-odemeler thead{display:none}
  #tb-defter tbody, #tb-yakit-gecmis tbody, #tb-odemeler tbody{display:block}
  #tb-defter tbody tr, #tb-yakit-gecmis tbody tr, #tb-odemeler tbody tr{
    display:flex; flex-wrap:wrap; align-items:center; gap:8px;
    background:#fff; border:1px solid #D7E3F0; border-radius:12px;
    padding:10px 12px; margin-bottom:10px; width:auto}
  #tb-defter tbody td, #tb-yakit-gecmis tbody td, #tb-odemeler tbody td{
    display:inline-flex; align-items:center; border:0; padding:2px 0; font-size:15px}
  /* ilk hücre (tarih/başlık) tam satır; eylemler sona ve sağa */
  #tb-defter tbody td:first-child, #tb-yakit-gecmis tbody td:first-child,
  #tb-odemeler tbody td:first-child{flex:1 1 100%; font-weight:700}
  #tb-defter tbody td:last-child, #tb-yakit-gecmis tbody td:last-child,
  #tb-odemeler tbody td:last-child{margin-left:auto}
}


/* ═══ v307 SATIR EYLEMLERİ: PARMAĞA GÖRE, SİLME AYRI ═══
   Düzenle ve sil 18px aralıkla 15px'lik span'lerdi; kaptan düzenlemeye
   basarken TEKNESİNİ SİLEBİLİRDİ. Geri dönüşü olanla olmayan yan yana
   ve küçük olmaz. */
#tb-app .tma-satir-eylem{
  position:absolute!important; top:6px; width:44px; height:44px;
  display:inline-flex; align-items:center; justify-content:center;
  border:0; background:transparent; font-size:16px; line-height:1;
  border-radius:12px; cursor:pointer}
#tb-app .tb-boat-edit.tma-satir-eylem{right:64px}
#tb-app .tb-boat-del.tma-satir-eylem{right:8px; color:#B3261E}
#tb-app .tma-satir-eylem:active{background:#EAF2FB}

/* v310: eşiğin kaptanın kendi teknesine göre olduğunu söyleyen satır */
#tb-app .tma-esik-not{margin:-4px 0 10px;font-size:15px;color:#4A5A6E}
#tb-app .tma-esik-not b{color:#0B2A4A}

/* v311 satış dosyası ölçeri — kaptanın emeğinin PARA KARŞILIĞI */
.tma-satis-olcer{margin:0 0 12px;padding:12px 14px;background:#EAF6EE;
  border:1px solid #15803D;border-radius:12px}
.tma-satis-olcer:empty{display:none}
.tma-satis-bas{font-size:16px;font-weight:800;color:#0B2A4A}
.tma-satis-bas span{font-size:15px;font-weight:400;color:#4A5A6E}
.tma-satis-cubuk{height:10px;background:#D7E3F0;border-radius:999px;margin:8px 0;overflow:hidden}
.tma-satis-cubuk i{display:block;height:100%;background:#15803D;border-radius:999px}
.tma-satis-sonraki{font-size:15px;line-height:1.6;color:#12233F}

/* v322 TEKNEM/DEFTER ÜST DİYETİ: BUGÜN'ün kişisel blokları diğer sekmelerde
   yer kaplamaz — kaptan TEKNEM'e basınca İLK EKRANDA teknesini görür.
   (v287 kararının kardeşi: hero/rehber taşınmıştı, v320'de kurtarılan
   özet+günCumle+MİÇO+şerit süzgecin dışında kalmıştı.) */
body[data-tma-sekme="teknem"] #tmaGunlukSerit,
body[data-tma-sekme="teknem"] #tmaOzetSatir,
body[data-tma-sekme="teknem"] #tmaGunCumle,
body[data-tma-sekme="teknem"] #tma-enh-card,
body[data-tma-sekme="defter"] #tmaGunlukSerit,
body[data-tma-sekme="defter"] #tmaOzetSatir,
body[data-tma-sekme="defter"] #tmaGunCumle,
body[data-tma-sekme="defter"] #tma-enh-card{display:none!important}

/* v325 HİYERARŞİ: kaptanın yıl özeti ilk ekranın EN BÜYÜK metni olsun —
   yaşlı göz neye bakacağını punto farkından anlar. Renkler mevcut
   kurallardan; yalnız boy/ağırlık. */
#tmaOzetSatir .tma-ozet-veri{font-size:18px!important;font-weight:800!important}

/* v326 ORTAK YAZIM SINIFLARI — satır-içi font/renk stili sıfırlanır.
   Her kalıp kendi CSS değişkenini kullanır; bakım tek yerden. */
.tma-p{color:var(--ink-soft);font-size:15px}
.tma-p-0{color:var(--ink-soft);font-size:15px;margin:0}
.tma-p-sea{color:var(--sea);font-size:15px}
.tma-p-ust{font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}
.tma-num{font-size:20px;font-weight:800;color:var(--sea)}
.tma-etiket-gri{font-size:15px;font-weight:700;color:var(--ink-soft)}
/* tbArsivAc / tbZekaYenile: bu küçük iç araç düğmelerini büyüt */
#tbArsivAc,#tbZekaYenile{min-height:44px!important;min-width:36px!important}
/* tma-he-satir uyarı rengi → class (JS'te dataset yerine classList) */
.tma-he-urgency{background:rgb(245,158,11)!important;color:rgb(58,42,0)!important}
/* tekne sekmesi boş ise görünmez */
.tb-boat-tab:not([data-deal-id="0"]):empty{display:none}

.tma-surum-bilgi{font-size:15px;color:#93A8C4;margin:2px 0 12px 4px}
.tma-notif-kapat{cursor:pointer;font-size:16px;color:var(--ink-soft)}
.tma-acil-link{color:var(--marine);font-weight:700}
.tma-emergency-msg{font-size:15px;color:var(--sea);margin:6px 0 0}
.tma-hero-skor{font-size:24px;font-weight:800}
/* v555: kirmizi uyari -> notr. Kayit girmemek hata degil. */
.tma-seri-uyari{background:rgba(255,255,255,.14);border-radius:20px;padding:4px 12px;font-size:15px;color:#fff;font-weight:600}

.tma-ipucu-gri{font-size:15px;color:#64748B}
.tma-kapt-avatar{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--marine-deep),var(--sea));display:flex;align-items:center;justify-content:center;font-size:20px}
.tma-ikon-buyuk{font-size:20px}

.tma-p-deniz{font-size:15px;color:#c7dde0}
.tma-p-deniz-0{font-size:15px;color:#c7dde0;margin:6px 0 0}

.tma-link-sea{color:var(--sea);cursor:pointer;text-decoration:underline}
.tma-aksiyon-sea{font-size:15px;color:var(--sea);font-weight:600;cursor:pointer;white-space:nowrap}

.tma-p-grid{color:var(--ink-soft);font-size:15px;grid-column:1/-1}

#tbSezonCekme, .tma-sezon-cekme{background:var(--surface-alt);color:var(--ink)}

/* v328 kalan statik kalıplar */
.tma-p-notif{color:var(--ink-soft);font-size:15px;padding:8px}
.tma-oneri-baslik{font-size:15px;font-weight:700}
.tma-bolum-ust{font-size:15px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}
.tma-karne-etiket{font-size:15px;font-weight:600;color:var(--ink)}
.tma-karne-sayi{font-size:15px;font-weight:800;color:var(--ink)}
.tma-gorev-oncelik{font-size:15px}
.tma-hizli-baslik{font-size:15px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}

/* v328 son kalıplar */
.tma-sayi-koyu{font-size:15px;font-weight:800;color:var(--ink)}
.tma-sayi-sea{font-size:15px;font-weight:800;color:var(--sea)}
.tma-not-koyu{font-size:15px;font-weight:600;color:var(--ink)}
.tma-gorev-ic{font-size:15px}

.tma-tarih-mono{color:var(--ink-soft);font-family:monospace;font-size:15px}
.tma-acil-btn{background:var(--danger);color:#fff;border-radius:10px;padding:10px;margin-bottom:14px;cursor:pointer;text-align:center;font-weight:700;font-size:15px}
.tma-acil-gonder{width:100%;background:var(--danger);color:#fff;border:none;padding:14px 20px;border-radius:10px;font-weight:700;font-size:15px;cursor:pointer}

.tma-guvenlik-etiket{color:var(--danger);font-size:15px;font-weight:700}

.tma-ev-limani{color:var(--ink-soft);font-weight:400}
.tma-rozet-ikon{font-size:24px}
.tma-rozet-ad{font-size:15px;font-weight:600;margin-top:4px;color:var(--ink)}
.tma-harf-notu-kalik{width:64px;height:64px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff}
.tma-hedef-tarih{font-size:15px;color:var(--ink-soft);margin:2px 0 4px}

/* v328 TEKNEM/DEFTER ÜST DİYETİ (ek): Banner ve günlük öneri
   de BUGÜN'e ait — diğer sekmelerde kaptanın tekne içeriğini örtmez */
body[data-tma-sekme="teknem"] #tbUrgentBanner,
body[data-tma-sekme="defter"] #tbUrgentBanner,
body[data-tma-sekme="teknem"] #tbGununOnerisi,
body[data-tma-sekme="defter"] #tbGununOnerisi{display:none!important}

/* v328 kontrast fix: yeşil metin --sea (#15803D = 4.31:1) bazı zeminlerde yetersiz
   Metin için daha koyu ton kullanılır */
.tma-p-sea{color:#166534}

.tb-switch-edit{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end;cursor:pointer;padding:0 4px;float:right}

/* v328 DOKUNMA: tekne değiştir butonu 44px */
#tbBrandSub.tma-tekne-switch{
  font-size:15px;color:var(--buoy);letter-spacing:0;cursor:pointer;
  display:flex;align-items:center;gap:4px;
  min-height:44px;padding:0 4px; /* 44px dokunma hedefi */
}
/* Bildirim bell içi span'lar dokunma hedefi değil — pointer olarak ölçülmemeli */
#tbNotifBell span,#tbNotifBell div{pointer-events:none}
/* Ama tbNotifBell kendisi tıklanabilir */
#tbNotifBell{cursor:pointer}

/* v329: tekne sekme butonları min 38px (olgunluk314 boy:18 → %100) */
.tb-boat-tab{min-height:44px!important;padding:4px 10px!important;font-size:15px}
/* digerleri ⇄ değiştir butonu */
#tbBoatSwitch,.tb-boat-switch{min-height:38px!important;min-width:38px!important;display:flex!important;align-items:center!important}

/* v330 TEK SIÇRAMA — dönen kaptan: hero/onboarding hiç görünmez, layout tek seferde oturur */
body.tma-donen-kaptan .tb-fg-hero,
body.tma-donen-kaptan #tmaIlkGun,
body.tma-donen-kaptan .tb-fg-baslik,
body.tma-donen-kaptan .tb-fg-tesvik{display:none!important}
/* özet + günlük cümle: içerik gelmeden önce alan tutar (sıçrama önler) */
#tmaOzetSatir:empty{min-height:44px;background:linear-gradient(90deg,var(--surface-alt) 30%,var(--surface) 60%,var(--surface-alt) 90%);background-size:200%;animation:tma-iskelet .9s ease infinite;border-radius:8px;margin:6px 0 4px}
#tmaGunCumle:empty{min-height:104px;background:linear-gradient(90deg,var(--surface-alt) 30%,var(--surface) 60%,var(--surface-alt) 90%);background-size:200%;animation:tma-iskelet .9s ease infinite;border-radius:8px;margin:0 0 4px}

/* v330 SKELETON: içerik gelmeden sınırlı görsel ipucu (çok belirgin olmasın) */
#tmaOzetSatir:not(:has(*)),
#tmaGunCumle:not(:has(*)){
  background: linear-gradient(90deg, var(--surface-alt) 30%, var(--surface) 60%, var(--surface-alt) 90%);
  background-size: 200%;
  animation: tma-iskelet 1.1s ease infinite;
  border-radius: 8px;
  margin: 4px 10px;
}

/* ── MARKA METNİ: ⚓ teknemerkezi ── */
.tma-ub-marka{font-size:16px;font-weight:800;color:#fff;letter-spacing:-.02em;font-family:'Space Grotesk',sans-serif;}
.tma-ub-ayrac{color:rgba(255,255,255,.4);font-size:15px;margin:0 4px;}
#tmaUstBar .tma-ub-ad{font-size:15px;font-weight:600;color:rgba(255,255,255,.75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px;}

/* ═══ v332 KONTRAST — KOYU ÜSTÜ KOYU SON DÜZELTME ═══ */
/* Önümüzdeki 60 gün kartları — acil olanlar koyu border, zemin beyaz kalmalı */
.tma-gl-olay{background:#fff!important;color:#0F2438!important;}
.tma-gl-olay.tma-gl-acil{background:#fff!important;border-left:4px solid #DC2626!important;}
.tma-gl-metin strong{color:#0F2438!important;}
.tma-gl-metin span{color:#334155!important;}
.tma-gl-kalan{color:#0B2A4A!important;background:#EAF2FB!important;}
.tma-gl-acil .tma-gl-kalan{background:#DC2626!important;color:#fff!important;}

/* Takvim öğeleri */
.tma-takvim-olay,.tma-tak-olay{background:#fff!important;color:#0F2438!important;}
.tma-takvim-olay .tma-tak-baslik,.tma-tak-olay .tma-tak-baslik{color:#0F2438!important;}
.tma-takvim-olay .tma-tak-alt,.tma-tak-olay .tma-tak-alt{color:#334155!important;}

/* Koyu zemin olan her alanda açık metin garantisi */
#tb-app [class*="tma-gl"] strong,
#tb-app [class*="tma-gl"] span:not(.tma-gl-kalan){color:inherit!important;}

/* Genel: koyu (#0B, #16, #12 ile başlayan) zemin içindeki açık olmayan metinler */
#tb-app .tma-gorev-serit strong,
#tb-app .tma-gorev-serit span:not(.tma-gorev-etiket),
#tb-app .tma-gorev-metin{color:#F2F7FF!important;}

/* Hata ve uyarı rozet metinleri */
.tma-rozet-kirmizi,.tma-rozet-amber{color:#fff!important;}


/* ═══ UTILITY CLASSES — inline style tekrarını önler ═══ */
.tma-kart { background: var(--surface-alt); border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; }
.tma-kart-sm { background: var(--surface-alt); border-radius: 8px; padding: 8px 12px; margin-bottom: 6px; }
.tma-flex-sb { display: flex; justify-content: space-between; align-items: center; }
.tma-flex-c { display: flex; align-items: center; gap: 10px; }
.tma-label { font-size:15px; font-weight: 800; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
.tma-label-sea { font-size:15px; font-weight: 800; color: var(--sea); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }
.tma-ink-soft { color: var(--ink-soft); }
.tma-ink-sm { font-size:15px; color: var(--ink-soft); }
.tma-ink-md { font-size:15px; color: var(--ink-soft); }
.tma-fw7 { font-weight: 700; }
.tma-fs15 { font-size: 15px; }
.tma-hr { border: none; border-top: 1px solid var(--line); margin: 8px 0; }
.tma-badge { font-size:15px; font-weight: 700; padding: 2px 8px; border-radius: 20px; }
.tma-yildiz-row { display: flex; gap: 4px; font-size: 24px; cursor: pointer; }


/* ═══════════════════════════════════════════════════════
   UX v2 — Daha akıcı, okunabilir, kolay
   ═══════════════════════════════════════════════════════ */

/* Akordiyona durum göstergesi — sol kenarda renk çizgisi */
.tb-widget.tma-durum-iyi    { border-left: 4px solid #166534; }
.tb-widget.tma-durum-uyari  { border-left: 4px solid #92400E; }
.tb-widget.tma-durum-kotu   { border-left: 4px solid #B91C1C; }

/* Akordiyonda preview metni — başlık yanında */
.tb-w-preview {
  font-size:15px;
  color: var(--ink-soft);
  margin-left: auto;
  padding-right: 8px;
  white-space: nowrap;
  overflow: hidden;
  max-width: 120px;
  text-overflow: ellipsis;
}
.tma-durum-kotu .tb-w-preview { color: #B91C1C; font-weight: 700; }
.tma-durum-uyari .tb-w-preview { color: #92400E; }

/* BUGÜN üst kontrol paneli */
.tma-cockpit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 0 0 16px;
}
.tma-cockpit-stat {
  background: var(--surface-alt);
  border-radius: 14px;
  padding: 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 72px;
  position: relative;
  overflow: hidden;
}
/* ═══ v341 KOYU TEMA DÜZELTMESİ ═══
   Çip zeminleri açık renge (#F0FDF4 vb.) sabitlenmişti; MAVİŞ koyu temasında
   açık zemin + açık yazı = okunmayan kutu. Artık renk yalnızca SOL ÇİZGİ ve
   değer renginde taşınır, zemin temanın kendi yüzeyi olur. */
.tma-cockpit-stat.tma-durum-iyi   { border-left: 4px solid #4ADE80; }
.tma-cockpit-stat.tma-durum-uyari { border-left: 4px solid #F5B301; }
.tma-cockpit-stat.tma-durum-kotu  { border-left: 4px solid #F87171; }
.tma-cockpit-stat.tma-durum-iyi   .tma-cockpit-deger { color: #4ADE80; }
.tma-cockpit-stat.tma-durum-uyari .tma-cockpit-deger { color: #F5B301; }
.tma-cockpit-stat.tma-durum-kotu  .tma-cockpit-deger { color: #F87171; }
.tma-cockpit-ikon {
  font-size: 22px;
  line-height: 1;
}
.tma-cockpit-deger {
  font-size: 22px;
  font-weight: 900;
  color: var(--ink);
  line-height: 1.1;
}
.tma-cockpit-etiket {
  font-size: 15px;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Hızlı giriş FAB — ana ekranda 3 büyük buton */
.tma-hizli-giris {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  padding: 0 0 16px;
}
.tma-hizli-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  background: var(--surface-alt);
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 16px 8px;
  font-size:15px;
  font-weight: 700;
  color: var(--ink);
  cursor: pointer;
  text-align: center;
  line-height: 1.3;
  min-height: 76px;
  -webkit-tap-highlight-color: transparent;
  transition: background .15s, transform .1s;
}
.tma-hizli-btn:active { background: var(--line); transform: scale(.97); }
.tma-hizli-btn-ikon { font-size: 26px; line-height: 1; }

/* Görev satırı — daha büyük dokunma alanı */
.tma-gorev-satir {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
  min-height: 52px;
}
.tma-gorev-satir input[type=checkbox] {
  width: 22px;
  height: 22px;
  accent-color: var(--sea);
  flex-shrink: 0;
}
.tma-gorev-satir-metin {
  font-size: 15px;
  color: var(--ink);
  flex: 1;
  line-height: 1.4;
}
.tma-gorev-satir.tamamlandi .tma-gorev-satir-metin {
  text-decoration: line-through;
  color: var(--ink-soft);
}
.tma-gorev-acil {
  font-size:15px;
  font-weight: 700;
  background: #FEF2F2;
  color: #B91C1C;
  padding: 2px 7px;
  border-radius: 8px;
  flex-shrink: 0;
}

/* Sekme barını güzelleştir */
.tb-sekme-bar {
  display: flex;
  gap: 4px;
  padding: 10px 12px 0;
  background: var(--surface);
  position: sticky;
  top: 0;
  z-index: 90;
  border-bottom: 1.5px solid var(--line);
}
.tb-tab-btn {
  flex: 1;
  padding: 10px 6px;
  font-size: 15px;
  font-weight: 700;
  border: none;
  background: transparent;
  border-radius: 10px 10px 0 0;
  color: var(--ink-soft);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.tb-tab-btn.active {
  background: var(--sea);
  color: #fff;
}

/* "Daha fazla" bölümü — gizlenen widgetlar için */
.tma-daha-fazla-toggle {
  width: 100%;
  padding: 14px;
  background: var(--surface-alt);
  border: 1.5px dashed var(--line);
  border-radius: 12px;
  font-size: 15px;
  color: var(--ink-soft);
  text-align: center;
  cursor: pointer;
  margin: 8px 0;
}
.tma-daha-fazla-toggle:active { background: var(--line); }
.tma-gizli-widget { display: none; }
.tma-gizli-widget.acik { display: block; }

/* Mikro animasyon — kayıt yapıldığında */
@keyframes tma-kayit-ok {
  0%   { transform: scale(.8); opacity: 0; }
  60%  { transform: scale(1.1); }
  100% { transform: scale(1); opacity: 1; }
}
.tma-kayit-animasyon { animation: tma-kayit-ok .3s ease-out; }

/* Daha büyük akordiyona açma simgesi */
.tb-w-head::after {
  content: '›';
  font-size: 22px;
  color: var(--ink-soft);
  transition: transform .2s;
  margin-left: auto;
  flex-shrink: 0;
}
.tb-widget.tb-kapali .tb-w-head::after {
  transform: rotate(90deg);
}
.tb-widget:not(.tb-kapali) .tb-w-head::after {
  transform: rotate(-90deg);
}

/* Min dokunma yüzeyi — tüm butonlar */
.tb-btn, button, .tb-chip {
  min-height: 44px;
  min-width: 44px;
}

/* Referans sekme (REHBER) widgetları daha küçük */
.tma-referans .tb-w-head h3 { font-size: 16px; }
.tma-referans .tb-w-head { padding: 10px 14px; }

/* Toast — daha belirgin */
#tmaToast {
  font-size: 16px !important;
  padding: 14px 20px !important;
  border-radius: 14px !important;
  font-weight: 600 !important;
}


/* ── ANA BUTON güçlü ve büyük ── */
.tma-birincil {
  background: var(--sea) !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 800 !important;
  padding: 15px 20px !important;
  border-radius: 14px !important;
  border: none !important;
  box-shadow: 0 6px 20px rgba(14,120,246,.35) !important;
  letter-spacing: -.01em;
}
.tma-birincil:active { transform: scale(.97) !important; }

/* ── Toast konumu ── */
#tmaToast {
  bottom: 80px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  max-width: 320px !important;
  width: max-content !important;
}

/* ── Akordiyonlar 4px sol çizgisi ── */
.tb-widget { border-left: 4px solid transparent; }
.tb-widget:first-child { border-left-color: transparent; }

/* ── Mobil genişlikte daha iyi padding ── */
@media (max-width: 480px) {
  .tb-w-head { padding: 13px 12px; }
  .tb-w-body { padding: 12px; }
  .tma-hizli-btn { padding: 14px 6px; font-size:15px; }
  .tma-cockpit-deger { font-size: 20px; }
}


/* ══════ v369 ACİL DURUM HER SEKMEDE ══════
   ÖLÇÜLDÜ: acil protokol kartı DEFTER sekmesindeydi; yangın çıktığında
   kaptanın önce doğru sekmeyi bulması gerekiyordu. Acil bilgi sekme
   arkasında duramaz — "hepsi" grubu hiçbir sekmede gizlenmez. */
#tb-app .tb-widget[data-tma-sekme-grup="hepsi"]{display:block!important}
#tb-acil-protokol{border-left:4px solid #F87171}

/* ══════ v369 ACİL ÇEKİRDEĞİ ══════ */
.tma-acil-cekirdek{padding:4px 0 8px}
.tma-acil-numara{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.tma-acil-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:10px 14px;
  border-radius:12px;background:#B91C1C;color:#fff!important;font-weight:700;text-decoration:none;font-size:15px}
.tma-acil-vhf{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:12px;
  border:1.5px solid var(--line,#243447);color:var(--ink,#E8EEF7);font-size:15px}
.tma-acil-mayday{background:rgba(248,113,113,.10);border-left:3px solid #F87171;border-radius:10px;
  padding:10px 12px;font-size:15px;line-height:1.55;margin-bottom:10px}
.tma-acil-s{border-bottom:1px solid rgba(255,255,255,.08);padding:2px 0}
.tma-acil-s summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:15.5px;font-weight:700}
.tma-acil-s ol{margin:4px 0 10px 20px;padding:0;font-size:15px;line-height:1.6}
.tma-acil-s li{margin-bottom:4px}

/* ══════ v369 ACİL KART HER ZAMAN GÖRÜNÜR ══════
   ÖLÇÜLDÜ: kart ".tb-tabbed" sınıfı taşıdığı için referans kartları gibi
   varsayılan olarak GİZLİYDİ; ancak kategori çubuğundan seçilince açılıyordu.
   Yangın çıktığında kaptanın önce doğru sekmeyi, sonra doğru kategoriyi
   bulması gerekiyordu. Acil bilgi hiçbir koşulda gizlenemez — bu kural
   kimlik seçicisiyle yazıldı ki diğer bütün gizleme kurallarını yensin. */
#tb-app #tb-acil-protokol.tb-widget,
/* v403: #tb-acil-prosedur kartı kaldırıldı; kuralı da kaldırıldı. */

/* ══════ v374 DOKUNMA HEDEFİ ══════
   ÖLÇÜLDÜ: 13 düğme 44px'in altındaydı (36-38px). Islak elle, sallanan
   teknede bu hedefler ıskalanır. Görsel boyut değişmesin diye yükseklik
   değil, dokunulabilir alan büyütülüyor. */
/* !important şart: bu düğmelerin çoğunda satır içi stil var ve satır içi
   stil normal kuralı ezer. (Aynı dersi acil kartında da almıştık: kaynak
   sırası ve satır içi stil, seçici gücünden önce gelir.) */
/* ═══ v398 GERİ ALINDI: GLOBAL DOKUNMA HEDEFİ ═══
   CANLIDAN GELEN HATA: kaptan "linklerin neredeyse hiçbiri çalışmıyor" dedi.
   v374'te dokunma hedefini büyütmek için TÜM düğmelere !important ile
   min-height:44px vermiştim. Panelde 43 satır içi sabit yükseklikli düğme var;
   bunlar 44px'e zorlanınca büyüyüp komşu bağlantıların üstüne biniyor ve
   tıklamaları yutuyor. Erişilebilirlik iyileştirmesi, çalışan bir arayüzü
   bozacaksa iyileştirme değildir.
   Kural yalnızca BİRİNCİL eylem düğmelerine uygulanıyor — onlar zaten tek
   başına duran, komşusu olmayan düğmeler. */
#tb-app .tma-birincil, #tb-app .tb-btn-primary, #tb-app button[type="submit"] { min-height: 44px; }

/* ══════ v393 MİÇO CEVAP KUTUSU KONTRASTI ══════
   CANLIDAN GELEN HATA: cevap metni beyaz kart üstünde beyaz görünüyordu.
   Kutunun kendi satır içi renkleri vardı ama içeriğe gömülü etiketler
   (ve tema kuralları) onları ezebiliyordu. Kontrast burada güvenceye
   alınıyor: zemin beyaz kalır, metin daima koyu. */
#tbSssCevap, #tbSssBenzer { color: #12242A; }
#tbSssCevap details, #tbSssBenzer details { background: #fff !important; }
#tbSssCevap summary, #tbSssBenzer summary { color: #12242A !important; }
#tbSssCevap details > div, #tbSssBenzer details > div { color: #33454E !important; }
#tbSssCevap details > div *, #tbSssBenzer details > div * { color: inherit !important; }
#tbSssCevap ::selection, #tbSssBenzer ::selection { background: #2563EB; color: #fff; }

/* ══════ v400 CEVAP KARTI OKUNURLUĞU — KESİN ÇÖZÜM ══════
   CANLIDAN GELEN HATA (ikinci kez): Miço'nun cevabı hâlâ beyaz üstüne beyazdı.
   v393'te kuralı ".tb-assist" kapsamına yazmıştım; ama bu kutu başka kartların
   içinde de çiziliyor ve orada koyu tema değişkenini (--ink = açık renk)
   miras alıyor. Beyaz zeminde açık renk metin = okunmaz.
   Artık kartın KENDİ sınıfı var ve rengi kapsamdan bağımsız olarak sabit:
   nerede çizilirse çizilsin okunur. */
#tb-app .tma-cevap-karti,
#tb-app .tma-cevap-karti *          { color: #22303C !important; }
#tb-app .tma-cevap-karti            { background: #fff !important; }
#tb-app .tma-cevap-karti summary,
#tb-app .tma-cevap-karti summary *  { color: #12242A !important; font-weight: 800; }
#tb-app .tma-cevap-karti a          { color: #0B62C4 !important; text-decoration: underline; }
/* Boş görünen "benzer sorular" kutuları da aynı sebepten okunmuyordu */
#tb-app #tbSssBenzer .tma-cevap-karti summary { min-height: 44px; display: flex; align-items: center; }

/* ══════ v402 KOKPİT ŞERİDİ — TEMEL STİL ══════
   CANLIDAN GELEN HATA: "70%Karne / Temiz!Görev / —Son Seyir / Temiz!Hatırlatıcı"
   satırları çıplak metin olarak alt alta çıkıyordu.
   SEBEP: .tma-cockpit-stat için yalnızca DURUM RENKLERİ tanımlanmış
   (border-left yeşil/sarı/kırmızı), temel yerleşim hiç yazılmamış. Kutu yok,
   ızgara yok, ikon/değer/etiket ayrımı yok — üç span yan yana yapışıyordu.
   Renk varyantı yazılmış ama temeli unutulmuş: eksik olan kural değil,
   kuralın kendisiydi. */
/* Izgara kabının gerçek sınıfı 'tma-cockpit' (id: tmaKokpitGrid) —
   ilk yazışımda 'tma-cockpit-grid' varsaymıştım ve kural boşa düşüyordu. */
#tmaKokpitGrid, .tma-cockpit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 620px) { #tmaKokpitGrid, .tma-cockpit { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.tma-cockpit-stat {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 10px 12px; border-radius: 12px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid var(--line, #243447);
  border-left: 4px solid var(--line, #243447);   /* durum rengi bunu ezer */
  min-width: 0; overflow: hidden;
}
.tma-cockpit-ikon   { font-size: 16px; line-height: 1; opacity: .9; }
.tma-cockpit-deger  { font-size: 19px; font-weight: 800; line-height: 1.15;
                      color: var(--ink, #E8EEF7); overflow-wrap: anywhere; }
.tma-cockpit-etiket { font-size:15px; font-weight: 600; line-height: 1.2;
                      color: var(--ink-soft, #9FB3C8); text-transform: none; }

/* ══════ v401 ÜST ŞERİT DÜĞMELERİ TEK SATIR ══════
   CANLIDAN GELEN İSTEK: "Tekneyi değiştir" iki satıra bölünüyordu; şeridin
   iki düğmesi farklı yükseklikte görünüyor ve dağınık duruyordu.
   Metin kısaltıldı (Tekne değiştir) ve satır bölünmesi kapatıldı; sığmazsa
   üç nokta ile kısalır, alt satıra taşmaz. */
#tb-app .tma-tekne-switch,
#tb-app #tbBrandSub,
#tb-app .tma-zil-ad {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ══════ v404 ÜST ŞERİT MARKA METNİ ══════
   Metin uzadı ("Tekne Merkezi: Teknenizin Dijital Hafızası"); dar ekranda tekne adını
   ve düğmeleri ezmemeli. Şeritte esneyerek yer kaplar, sığmazsa üç noktayla
   kısalır — alt satıra taşıp şeridi ikiye bölmez. */
#tmaUstBar .tma-ub-marka {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  flex: 0 1 auto;
  font-weight: 700;
}
/* Çok dar ekranda tekne adı ve ayraç gizlenir; marka cümlesi kalır */
@media (max-width: 420px) {
  #tmaUstBar .tma-ub-ayrac, #tmaUstBar .tma-ub-ad { display: none; }
}

/* v405: işlenen bakım kısa süre yeşil vurgulanır — kaptan ne olduğunu görsün */
.tma-bakim-islendi { background: rgba(34,197,94,.12) !important; transition: background .3s; border-radius: 10px; }

/* ══════ v406 SATIŞ ÖLÇER METNİ KIRPILMASIN ══════
   CANLIDAN GELEN HATA: "Sıradaki: Arıza ve onarım — Alıcı …" cümlesi kartın
   alt kenarında yarım kalıyordu. Kutu içeriğine göre büyümeli; bir cümlenin
   yarısı, hiç olmamasından kötüdür — kaptan ne yapacağını anlayamaz. */
#tb-app #tmaSatisOlcer,
#tb-app .tma-satis-olcer { overflow: visible; max-height: none; }
#tb-app .tma-satis-sonraki {
  overflow: visible;
  white-space: normal;
  word-break: break-word;
  padding-bottom: 4px;
}

/* ══════ v409 BİLDİRİM PANELİ OKUNMUYORDU ══════
   CANLIDAN GELEN HATA: "bildirimler beyaz üzeri beyaz geliyor" — panelde
   yalnızca ikonlar görünüyor, metin görünmüyordu.
   Sebep, Miço cevap kartındakiyle AYNI: satırlar color:var(--ink) kullanıyor,
   koyu temada bu açık bir renk; panel zemini ise beyaz. Beyaz üstüne beyaz.
   Bu üçüncü kez aynı kökten çıktı: beyaz zeminli bir kutuya tema değişkeni
   girerse metin kaybolur. Panelin rengini kapsamdan bağımsız sabitliyoruz. */
#tbNotifPanel { background: #FFFFFF !important; }
#tbNotifPanel,
#tbNotifPanel div,
#tbNotifPanel p,
#tbNotifPanel span,
#tbNotifList div        { color: #22303C !important; }
#tbNotifPanel .tma-p-notif,
#tbNotifList div div:last-child { color: #5B7080 !important; }
#tbNotifPanel a         { color: #0B62C4 !important; text-decoration: underline; }
#tbNotifPanel button    { color: #22303C !important; }

/* ══════ v415 GÜNEŞTE OKUNURLUK — 15px TABAN ══════
   ÖLÇÜLDÜ (mobil gerçeği testi): 859 metin öğesinin 200'ü 15px'in altında;
   en küçüğü 12px. Kaptan telefonu güneşte, sallanan bir teknede, çoğu zaman
   gözlükle okuyor. 13px yazı orada okunmaz — ekranı büyütmek için iki
   parmakla uğraşır ya da hiç okumaz.
   Tabanı 15px yapıyoruz. Rozet/ikon gibi metin taşımayan küçük öğeler
   ve tablo başlıkları muaf: onlar okunacak cümle değil, işaret.
   Yalnızca font-size değişiyor — yükseklik/hizalama kuralına dokunulmuyor,
   çünkü v398'de öğrendik: düzeni zorlayan kural arayüzü kırıyor. */
#tb-app p, #tb-app li, #tb-app label,
#tb-app .tma-p, #tb-app .tb-w-sub,
#tb-app span:not(.tma-sekme-ikon):not(.tb-stat-ic):not([class*="ikon"]):not([class*="rozet"]),
#tb-app div:not([class*="rozet"]):not([class*="ikon"]) {
  font-size: max(15px, 1em);
}
/* Yardımcı/ikincil metinler de tabanın altına inmesin */
#tb-app .tma-p-sea, #tb-app .tma-ipucu-gri, #tb-app .tma-gorev-etiket,
#tb-app .tma-blg-not, #tb-app .tma-satis-sonraki, #tb-app .tma-menu-baslik {
  font-size: 15px;
}

/* ══════ v415 ANA EYLEM DÜĞMELERİ — PARMAK ÖLÇÜSÜ ══════
   ÖLÇÜLDÜ: 201 ana eylem düğmesinden 13'ü 44px'in altındaydı.
   v374'teki hatayı TEKRARLAMIYORUZ: o zaman TÜM düğmelere !important ile
   min-height vermiştim ve 43 satır içi düğme büyüyüp komşu bağlantıların
   üstüne bindi (kaptan "linkler çalışmıyor" dedi, v398'de geri aldım).
   Bu sefer yalnızca ANA EYLEM sınıflarına ve !important olmadan:
   satır içi stili olan bir düğme kendi ölçüsünde kalır, düzen bozulmaz. */
#tb-app .tma-birincil,
#tb-app .tb-btn-primary,
#tb-app .tma-hz-btn,
#tb-app .tma-enh-btn,
#tb-app button[type="submit"] {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ══════ UX 1 · AÇILIŞ PERDESİ ══════
   Kademeli çizim kaptandan saklanır: ekran oturana kadar sakin durur,
   sonra tek seferde açılır. Perde en fazla 1.6 sn; sonra kendini kaldırır. */
html.tma-acilis #tb-app { opacity: 0; }
html.tma-acilis #tb-app * { animation: none !important; transition: none !important; }
html.tma-acildi #tb-app { opacity: 1; transition: none; }
/* Perde sırasında sakin bir bekleme işareti */
html.tma-acilis body::after {
  content: "⚓";
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  font-size: 34px; opacity: .35; pointer-events: none; z-index: 9998;
}
html.tma-acildi body::after { content: none; }
/* JS kapalıysa perde hiç inmez — içerik doğrudan görünür */

/* ══════ UX-4 GÜNDEM ÜSTTE ══════
   Gündem artık rehber kartının içinde değil, panelin en üstünde duruyor.
   Kaptanın panele girme sebebi bu liste; kaydırmadan görünmeli. */
#tb-app .tma-gundem-ust {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-left: 3px solid #0B5D7A;
  border-radius: 12px;
  padding: 12px 14px;
  margin: 0 0 16px 0;
  color: #12242A;
}
#tb-app .tma-gundem-ust .tma-bnv-baslik {
  font-size: 15px;
  font-weight: 700;
  color: #0B2A4A;
  margin-bottom: 8px;
}
#tb-app .tma-gundem-ust .tma-bnv-satir {
  font-size: 15px;
  color: #12242A;
  padding: 8px 0;
  border-top: 1px solid #EEF2F6;
  cursor: pointer;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 8px;
}
#tb-app .tma-gundem-ust .tma-bnv-satir:first-of-type { border-top: 0; }






/* ══════ v444 ACİL BAĞLANTILARI — ÖZGÜLLÜK SAVAŞI ══════
   "Sahil Güvenlik 158" ve "Acil 112" birer <a> etiketi. Panelde iki genel
   kural var:
       #tb-app a { color: inherit !important }
       a         { color: #000     !important }
   Bunların özgüllüğü (id + element = 101) '.tma-acil-btn' sınıfından (10)
   yüksek ve ikisi de !important. Sınıfın 'color:#fff' kuralı eziliyor,
   kırmızı zeminde koyu yazı kalıyor — ölçülen kontrast 2.3:1.
   Aynı ağırlığın üstüne çıkıyoruz (id + element + sınıf = 111). */



/* ══════ v445 KOKPİT ÖZET SATIRI STİLSİZDİ ══════
   CANLIDAN GELEN HATA (defalarca bildirildi): üst özet şeridi
   "70%Karne / Temiz!Görev / —Son Seyir / Temiz!Hatırlatıcı" diye
   yapışık ve biçimsiz görünüyordu.

   ÖLÇÜLDÜ: .tma-cockpit-stat için TEMEL kutu kuralı hiç yazılmamış —
   yalnızca .tma-durum-iyi/uyari/kotu renk varyantları var. Kutu stili
   olmayınca içindeki span'ler varsayılan 'inline' kalıyor ve değer ile
   etiket yan yana yapışıyor: "70%" + "Karne" = "70%Karne".
   Renk kuralları çalıştığı için sorun gözden kaçmış; eksik olan
   iskeletin kendisiydi.

   Kaptan bunu birçok kez bildirdi ve her seferinde başka yere baktım.
   Kutuyu tanımlıyoruz: dikey yığın, ortalanmış, nefes alan. */
#tb-app .tma-cockpit-stat {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  padding: 10px 12px;
  background: var(--surface, #fff);
  border: 1px solid var(--surface-alt, #E2E8F0);
  border-radius: 12px;
  min-height: 76px;
  overflow: hidden;
}
#tb-app .tma-cockpit-stat > span {
  display: block !important;
  width: 100%;
}
#tb-app .tma-cockpit-ikon { font-size: 20px; line-height: 1.2; }
#tb-app .tma-cockpit-deger {
  font-size: 20px; font-weight: 800; line-height: 1.2;
  color: var(--ink, #12242A); overflow-wrap: anywhere;
}
#tb-app .tma-cockpit-etiket {
  font-size: 15px; font-weight: 600; line-height: 1.3;
  color: var(--ink-soft, #5A6B7B); text-transform: none;
}
/* Kap: kokpit grid görünür ve düzgün sütunlu olsun */
#tb-app #tmaKokpitGrid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
@media (min-width: 720px) {
  #tb-app #tmaKokpitGrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ══════ v446 BİRİNCİL KARTLAR SEKMEYE HAPSOLMUŞTU ══════
   KAPTANIN İSTEĞİ: "hava durumu, yakıt, su, kumanya birincil meseleler.
   bunlar ilk ekranda görünmeli."

   ÖLÇÜLDÜ: dördü de 'tb-tabbed' — sekme seçilene kadar display:none.
   Üstelik ÜÇ AYRI kategoride dağılmışlar:
     rüzgâr → seyir · yakıt & su → finans · alışveriş → günlük
   Yani kaptan denize çıkmadan önce bakacağı dört şey için üç sekme
   gezmek zorundaydı. Kartları öne almak tek başına yetmedi çünkü
   sorun sıra değil, GÖRÜNÜRLÜKTÜ.

   Bu dördü artık hangi sekme açık olursa olsun görünür. Kategori
   sınıfları duruyor — kendi sekmelerinde de yerlerinde kalıyorlar. */
#tb-app #tb-ruzgar,
#tb-app #tb-yakit-gecmis,
#tb-app #tb-su,
#tb-app #tb-alisveris {
  display: block !important;
}

/* ══════ v448 MİÇO GÖRSELİ — ORAN GARANTİSİ ══════
   KAPTANIN İSTEĞİ: "hiç değiştirme tiplemeyi. sadece boyutu ayarlarsın
   proporsiyonu bozmadan."
   Görsel kare (292×292) ve kare kutulara konuyor; yine de bir kural
   genişlik/yükseklik verirse ezilmesin diye contain'i sabitliyoruz.
   Balon maskotunda 'cover' vardı — o kırpıyordu, kaldırıldı. */
#tb-app img.tma-mc-avatar,
#tb-app .tma-micho-char img,
.tma-micho-char img {
  object-fit: contain !important;
  aspect-ratio: 1 / 1;
  image-rendering: auto;
}

/* ══════ v449 ÜST ŞERİT MARKA METNİ KAYBOLUYORDU ══════
   CANLIDAN GELEN HATA: kaptan üst şeritte çıpanın yanında yalnızca
   tekne adını ("Deep") görüyor; "Tekne Merkezi: Teknenizin Dijital Hafızası"
   yazmıyor.

   ÖLÇÜLDÜ: marka metni '.tma-ub-marka { flex: 0 1 auto; overflow: hidden;
   text-overflow: ellipsis; }' ile tanımlı. Şeritte yer daralınca (arama
   kutusu + Menü + Tekne Değiştir + zil yan yana) bu kural markayı önce
   kısaltıyor, sonra tamamen yok ediyor — çünkü küçülmesine izin var.
   Tekne adı ise 'flex: 1 1 auto' ile yerini koruyor. Sonuç: marka gidiyor,
   ad kalıyor.

   Marka şeridin kimliğidir; en son o küçülmeli. */
#tmaUstBar .tma-ub-marka {
  flex: 0 0 auto !important;
  overflow: visible !important;
  text-overflow: clip !important;
  min-width: max-content;
  white-space: nowrap;
}
/* Dar ekranda kısaltılacak olan tekne adıdır, marka değil */
@media (max-width: 560px) {
  #tmaUstBar .tma-ub-marka { font-size: 15px; }
  #tmaUstBar .tma-ub-ad { max-width: 90px; }
}
@media (max-width: 400px) {
  /* Çok dar ekranda marka kısalır ama YOK OLMAZ */
  #tmaUstBar .tma-ub-marka { font-size:15px; }
  #tmaUstBar .tma-ub-ad, #tmaUstBar .tma-ub-ayrac { display: none !important; }
}

/* ══════ v453 BİLDİRİM PANELİ MOBİLDE TAŞIYORDU ══════
   CANLIDAN GELEN HATA: "bildirimlerin detay sayfası taşıyor mobilde.
   sağ tarafı okunmuyor."
   Satırlar tek satıra sığmayınca sağa taşıyor ve kesiliyordu; telefonda
   yatay kaydırma da yok, yani metin kayboluyor. Bildirim kısa olmalı ama
   kesilmemeli — sarmalıyoruz. */
#tbNotifPanel { box-sizing: border-box; padding-right: 12px; }
#tbNotifPanel * { max-width: 100%; box-sizing: border-box; }
#tbNotifPanel .tma-bildirim-satir,
#tbNotifPanel li,
#tbNotifPanel > div > div {
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: break-word;
  text-overflow: clip;
  overflow: visible;
}
@media (max-width: 560px) {
  #tbNotifPanel { padding: 12px 14px 24px; }
  #tbNotifPanel .tma-bildirim-satir { padding: 10px 0; line-height: 1.5; }
}

/* ══════ v461 MENÜDE İLK İKİ LİNK OKUNMUYORDU ══════
   CANLIDAN GELEN HATA (ekran görüntüsü): menü açılınca "Verilerimi indir"
   ve "Çöp kutusu" satırları açık gri, beyaz zemin üzerinde okunmuyor.
   Diğer satırlar koyu.

   Sebep: bu iki satır menünün ÜST bölümünde ve oradaki bir kural
   rengi soluk bırakıyor. Bu projede aynı sınıftan üç hata çıktı
   (beyaz üstüne beyaz). Menü satırının rengi hiçbir koşulda soluk
   olmamalı — kaptan okuyamadığı satıra tıklamaz. */
#tb-app .tb-nav a,
#tb-app .tb-nav.tb-nav-open a,
.tb-nav a.tma-menu-satir,
.tb-nav > a {
  color: #0B2A4A !important;
  opacity: 1 !important;
}
#tb-app .tb-nav a:visited { color: #0B2A4A !important; }
/* Grup başlıkları ayrışsın ama okunur kalsın */
#tb-app .tb-nav .tma-menu-baslik {
  color: #5A6B7B !important;
  opacity: 1 !important;
  font-size: 15px;
  font-weight: 700;
}

/* ══════ v461 NOT DÜĞMESİ ZEMİNİ ŞEFFAFTI ══════
   CANLIDAN GELEN HATA: "not fabının zemini şeffaf, arkası ile karışıyor."
   Yüzen düğme içeriğin üstünde durur; zemini yoksa altındaki metinle
   iç içe geçer ve ne olduğu anlaşılmaz. */
#tmaNotFab, .tma-not-fab, #tbNotFab,
#tb-app .tma-yuzen-btn, .tma-fab {
  background: #FFFFFF !important;
  border: 1px solid #CBD5E1 !important;
  box-shadow: 0 4px 14px rgba(11, 42, 74, .22) !important;
  backdrop-filter: none !important;
}

/* v810: Miço kartındaki "Hadi yapalım" düğmesi açık zemin üstünde BEYAZ yazıyla
   görünmezdi — kart #tb-app dışında olduğu için var(--sea) tanımsız kalıyor,
   arka plan şeffaf çıkıyordu. Renk artık değişkene bağlı değil. */
#tma-mico .tma-birincil, .tma-mico-yuva .tma-birincil, #tmaMicoYuva .tma-birincil{
  background:#1D4ED8 !important; color:#fff !important; }
#tma-mico .tma-enh-btn:not(.tma-birincil){ color:#0B2A4A !important; background:#fff !important; border:1px solid #CBD5E1 !important; }

/* v810: Miço yuvası içerik gelene kadar yerini tutar — açılışta itme olmaz */
#tmaMicoYuva.tma-yuva-bekliyor{min-height:228px}

/* ══════ v812 AÇIK AKORDİYON ÇOK BELLİ OLSUN ══════
   [stated] "açılan akordiyon çok belli olsun". Kapalı kartlar sakin;
   AÇIK kart: kalın deniz-mavisi çerçeve + sol şerit, başlık zemini
   açık mavi, ok "▾" büyük ve mavi, gövde açıkça kartın içinde. Hedefe
   gidince 2,4 sn amber halka + hafif büyüme. Tek açık kuralıyla
   birlikte kaptan "neredeyim"i bir bakışta görür. */
html body #tb-app .tma-akordiyon:not(.tma-kapali){
  border:2px solid #1D4ED8 !important; border-color:#1D4ED8 !important; border-left-color:#1D4ED8 !important;
  box-shadow:0 0 0 4px rgba(29,78,216,.12), 0 10px 24px -14px rgba(11,42,74,.45) !important;
  position:relative;
}
#tb-app .tma-akordiyon:not(.tma-kapali)::before{
  content:''; position:absolute; left:0; top:12px; bottom:12px; width:5px;
  border-radius:0 4px 4px 0; background:#1D4ED8; z-index:1;
}
#tb-app .tma-akordiyon:not(.tma-kapali) > .tb-w-head{
  background:#EAF1FD !important; border-radius:12px 12px 0 0;
  margin:-2px -2px 8px -2px !important; padding:12px 14px 10px 18px !important;
  border-bottom:1px solid #C7D7F5 !important;
}
#tb-app .tma-akordiyon:not(.tma-kapali) > .tb-w-head h3{ color:#0B2A4A !important; }
#tb-app .tma-akordiyon:not(.tma-kapali) .tma-ak-ok{
  color:#1D4ED8 !important; font-size:20px !important; transform:rotate(0deg);
  background:#fff; border:2px solid #1D4ED8; border-radius:999px; width:30px; height:30px;
  display:inline-flex; align-items:center; justify-content:center; padding:0 !important; line-height:1;
}
#tb-app .tma-akordiyon.tma-kapali .tma-ak-ok{
  width:30px; height:30px; border-radius:999px; border:1.5px solid #CBD5E1; background:#fff;
  display:inline-flex; align-items:center; justify-content:center; padding:0 !important; line-height:1;
}
#tb-app .tma-akordiyon.tma-kapali:hover{ border-color:#93C5FD; }
/* hedefe gidiş: daha uzun ve daha görünür halka */
#tb-app .tma-hedef-vurgu{
  animation:tmaHedefHalka 2.4s ease !important;
}
@keyframes tmaHedefHalka{
  0%{ box-shadow:0 0 0 0 rgba(245,158,11,.0), 0 0 0 4px rgba(29,78,216,.12); }
  15%{ box-shadow:0 0 0 8px rgba(245,158,11,.75), 0 0 0 4px rgba(29,78,216,.12); transform:scale(1.012); }
  60%{ box-shadow:0 0 0 8px rgba(245,158,11,.45), 0 0 0 4px rgba(29,78,216,.12); transform:scale(1); }
  100%{ box-shadow:0 0 0 0 rgba(245,158,11,0), 0 0 0 4px rgba(29,78,216,.12); }
}
@media (prefers-reduced-motion: reduce){
  #tb-app .tma-hedef-vurgu{ animation:none !important; outline:4px solid rgba(245,158,11,.8) !important; }
}
body.tma-dark #tb-app .tma-akordiyon:not(.tma-kapali) > .tb-w-head{ background:#14304F !important; border-bottom-color:#2C4C7C !important; }
body.tma-dark #tb-app .tma-akordiyon:not(.tma-kapali) > .tb-w-head h3{ color:#EAF2FE !important; }
/* v812: başlıkta İKİ ok vardı — çekirdeğin ::after '›/▾' oku + enh'in .tma-ak-ok dairesi.
   Akordiyonlu kartta yalnız daire kalır (tb-kapali sistemi bu gövdede kullanılmıyor). */
#tb-app .tma-akordiyon .tb-w-head::after{ content:none !important; display:none !important; }
/* v817: tarih girdisi 116 px'e sıkışınca yıl kesiliyordu ("09/04/202") */
#tb-app input[type="date"]{ min-width:158px !important; }
/* v817: görev satırı — öncelik simgesi 34 px daire olmalıydı, başka bir kural 128 px'e
   esnetiyordu (boş mavi oval). Sil düğmesi yalnız hover'da görünüyordu; dokunmatikte
   hover yok → kaptan silemiyordu. */
#tb-app .tb-task-item > span:first-child{ flex:0 0 34px !important; width:34px !important; min-width:34px !important; max-width:34px !important; height:34px !important; padding:0 !important; }
@media (hover:none){ #tb-app .tb-task-del{ opacity:1 !important; color:#B42318 !important; } }
#tb-app .tb-task-item:hover .tb-task-del, #tb-app .tb-task-del:focus{ opacity:1 !important; }

/* v820: mürettebat rolünde finans kartları, Finans sekmesi ve menü bağlantıları her sekmede gizli */
body.tma-rol-murettebat #tb-odemeler, body.tma-rol-murettebat #tb-grafik, body.tma-rol-murettebat #tb-maliyet,
body.tma-rol-murettebat #tb-butce, body.tma-rol-murettebat #tb-yil-ozeti, body.tma-rol-murettebat #tb-tekne-deger,
body.tma-rol-murettebat .tb-widget.tb-cat-finans, html body.tma-rol-murettebat #tmaUcSekme .tma-sekme-btn[data-sekme="finans"],
body.tma-rol-murettebat .tb-nav a[href="#tb-odemeler"], body.tma-rol-murettebat .tb-nav a[href="#tb-grafik"],
body.tma-rol-murettebat .tb-nav a[href="#tb-maliyet"], body.tma-rol-murettebat .tb-nav a[href="#tb-butce"]{ display:none !important; }
body.tma-rol-murettebat #tmaUcSekme{ grid-template-columns:repeat(3,1fr) !important; }

/* ═══ v825 IZGARA GÖRÜNÜMÜ ═══ */
body.tma-izgara #tb-app .tb-widget, body.tma-izgara #tb-app .tma-enh-card, body.tma-izgara #tb-app .tb-fg-hero,
body.tma-izgara #tmaGunlukSerit, body.tma-izgara #tbHizliIslemKart, body.tma-izgara #tmaUcSekme,
body.tma-izgara .tb-side, body.tma-izgara .tb-mobile-bar, body.tma-izgara #tbCatGrid, body.tma-izgara #tbBoatTabs,
body.tma-izgara .tma-dokun-serit, body.tma-izgara #tmaBasaDon, body.tma-izgara .tb-wave-divider,
body.tma-izgara #tmaTekEkran, body.tma-izgara .tma-bugun-digerleri, body.tma-izgara #tmaBugunDigerleri,
body.tma-izgara #tmaTabbar, body.tma-izgara #tmaSadeDugme, body.tma-izgara #tmaKancaSatir, body.tma-izgara .tb-masonry, body.tma-izgara .tb-shell, body.tma-izgara .tb-dashboard-grid,
body.tma-izgara #tmaSinirBeyani, body.tma-izgara #tmaBildiklerimBtn, body.tma-izgara #tmaSorumlulukNotu{ display:none !important; }
body.tma-izgara.tma-kart-modu .tb-shell, body.tma-izgara.tma-kart-modu .tb-dashboard-grid, body.tma-izgara.tma-kart-modu .tb-masonry, body.tma-izgara.tma-kart-modu .tb-main-col{ display:block !important; }
body.tma-izgara #tb-app{ padding-bottom:24px !important; }
body.tma-izgara #tmaKartBasi{ display:none; }
/* ızgara */
#tmaIzgara{ display:block; padding:4px 12px 16px; }
#tmaIzgara .tma-iz-grup{ margin:14px 0 0; }
/* v3.83.134 SADE BAŞLANGIÇ: yeni kaptanda gizli gruplar + 'Tümünü göster' butonu */
#tmaIzgara .tma-iz-grup-gizli{ display:none !important; }
#tmaIzgara .tma-iz-tumunu{ display:block; width:100%; margin:18px auto 8px; max-width:420px; min-height:48px; border:1.5px dashed #94A3B8; border-radius:14px; background:#F8FAFC; color:#0B2A4A; font:800 15px Inter,system-ui,sans-serif; cursor:pointer; }
#tmaIzgara .tma-iz-tumunu:hover{ border-color:#0B2A4A; background:#EEF4FB; }
#tmaIzgara .tma-iz-baslik{ display:flex; align-items:baseline; gap:8px; margin:0 4px 8px; font-size:18px; font-weight:800; color:#0B2A4A; }
#tmaIzgara .tma-iz-baslik small{ font-size:15px; font-weight:500; color:#3A4A57; }
#tmaIzgara .tma-iz-gikon{ font-size:18px; }
#tmaIzgara .tma-iz-satir{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:8px; }
@media (min-width:560px){ #tmaIzgara .tma-iz-satir{ grid-template-columns:repeat(6, minmax(0, 1fr)); } }
@media (min-width:900px){ #tmaIzgara .tma-iz-satir{ grid-template-columns:repeat(8, minmax(0, 1fr)); } }
#tmaIzgara .tma-iz-kutu{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  min-height:88px; padding:10px 4px 8px; background:#fff; border:1.5px solid #E2E8F0; border-radius:14px; cursor:pointer;
  box-shadow:0 2px 8px -6px rgba(11,42,74,.35); color:#0B2A4A; font:inherit; -webkit-tap-highlight-color:rgba(29,78,216,.15); }
#tmaIzgara .tma-iz-kutu:active{ transform:scale(.96); border-color:#1D4ED8; background:#EAF1FD; }
#tmaIzgara .tma-iz-ikon{ font-size:28px; line-height:1; }
#tmaIzgara .tma-iz-ad{ font-size:15px; font-weight:700; line-height:1.2; text-align:center; max-width:100%; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
#tmaIzgara .tma-iz-rozet{ position:absolute; }
/* kart modu */
body.tma-izgara.tma-kart-modu #tmaIzgara, body.tma-izgara.tma-kart-modu #tmaMicoYuva, body.tma-izgara.tma-kart-modu #tmaOzetSatir,
body.tma-izgara.tma-kart-modu #tmaGunCumle, body.tma-izgara.tma-kart-modu #tma-bugun-ne-var-dis{ display:none !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili]{ display:block !important; max-height:none !important; margin:8px 12px 24px !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] > .tb-w-head .tma-ak-ok{ display:none !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] > .tb-w-body{ display:block !important; }
body.tma-izgara.tma-kart-modu #tmaKartBasi{ display:flex; }
#tmaKartBasi{ position:sticky; top:0; z-index:120; display:flex; align-items:center; gap:10px; padding:8px 12px; background:#0B2A4A; color:#fff; box-shadow:0 4px 12px -8px rgba(0,0,0,.5); }
#tmaKartBasi #tmaIzGeri{ display:inline-flex; align-items:center; gap:4px; min-height:44px; padding:0 14px 0 10px; border:none; border-radius:999px; background:#fff; color:#0B2A4A; font:inherit; font-size:15px; font-weight:800; cursor:pointer; }
#tmaKartBasi #tmaIzGeri span{ font-size:24px; line-height:1; }
#tmaKartBasi #tmaKartBasiAd{ flex:1; font-size:16px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#tmaKartBasi #tmaKartBasiTekne{ font-size:15px; color:#BBD2E8; white-space:nowrap; }
body.tma-izgara #tmaUstBar{ position:sticky; top:0; }
body.tma-izgara.tma-kart-modu #tmaUstBar{ position:static; }
/* v825b: kart modunda üstte yalnız [Geri · Kart adı · Tekne] — üst bar ve acil şerit gizli, kart hemen başlar */
body.tma-izgara.tma-kart-modu #tmaUstBar, body.tma-izgara.tma-kart-modu #tbUrgentBanner{ display:none !important; }
body.tma-izgara.tma-kart-modu #tb-app{ margin-top:0 !important; padding-top:0 !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili]{ margin:8px 10px 24px !important; }
body.tma-izgara.tma-kart-modu .tb-shell, body.tma-izgara.tma-kart-modu .tb-main, body.tma-izgara.tma-kart-modu .tb-main-col{ padding-top:0 !important; margin-top:0 !important; }
/* v825c: ızgara görünümünde hamburger menü gereksiz (ızgara menünün kendisi) — düğme gizli, arama tam genişlik */
body.tma-izgara #tbNavToggle{ display:none !important; }
body.tma-izgara #tmaUstDenetim{ grid-template-columns:1fr !important; }
body.tma-izgara #tmaUstDenetim > *{ width:100% !important; }

/* ═══ v826 IZGARA CİLASI (gerçek Chrome ölçümü) ═══
   · Kart modunda "Bugün seni bekleyen" (tma-bugun-ne-var) ve tb-shell içindeki diğer
     bloklar kartın üstünde kalıyordu → kart modunda seçili kart dışında hiçbir blok yok.
   · Yüzen düğme merdiveni (geri bildirim/bildirim/not/başa dön) ızgara ikonlarının
     üstüne biniyordu → ızgara görünümünde gizli; işlevleri Hesap/Notlar kartlarında.
   · "Teknelerim/Belgelerim" hece ortasından kırılıyordu → kelime bölünmez, 4 sütunda
     12 px, gerekirse 2 satır. */
body.tma-izgara.tma-kart-modu #tb-app .tb-widget:not([data-tma-secili]),
body.tma-izgara.tma-kart-modu #tb-app .tma-enh-card,
body.tma-izgara.tma-kart-modu #tb-app #tma-bugun-ne-var,
body.tma-izgara.tma-kart-modu #tb-app .tb-fg-hero,
body.tma-izgara.tma-kart-modu #tb-app #tmaGunlukSerit,
body.tma-izgara.tma-kart-modu #tb-app .tma-dokun-serit,
body.tma-izgara.tma-kart-modu #tb-app #tbTodayStatus,
body.tma-izgara.tma-kart-modu #tb-app #tbHizliIslemKart,
body.tma-izgara.tma-kart-modu #tb-app .tb-wave-divider,
body.tma-izgara.tma-kart-modu #tb-app #tbCatGrid,
body.tma-izgara.tma-kart-modu #tmaMicoYuva{ display:none !important; }
body.tma-izgara #tmaGeriBildirimBtn, body.tma-izgara #tma-push-toggle, body.tma-izgara #tmaHizliNotBtn,
body.tma-izgara #tmaBasaDon, body.tma-izgara #tmaHizliNotPanel{ display:none !important; }
body.tma-izgara #tmaToast{ bottom:16px !important; }
#tmaIzgara .tma-iz-ad{ word-break:keep-all !important; overflow-wrap:normal !important; hyphens:none !important; font-size:15px !important; letter-spacing:-.01em; }
#tmaIzgara .tma-iz-kutu{ padding:10px 2px 8px !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] > .tb-w-head{ cursor:default !important; }
/* v826: ızgara menünün kendisi — "☰ Menü" düğmesi özgüllük yüzünden görünmeye devam ediyordu */
html body.tma-izgara #tmaUstDenetim #tbNavToggle, html body.tma-izgara #tbNavToggle.tb-mobile-only{ display:none !important; }
html body.tma-izgara #tmaUstDenetim{ grid-template-columns:1fr !important; display:grid !important; }
/* v827: kart modunda .tb-main'in 64 px alt dolgusu kartın ÜSTÜNDE boşluk gibi görünüyordu
   (seçili kart .tb-main'in dışında); kabuk dolguları sıfır. Kart başlığındaki ikon+ad üst
   çubukta zaten var → tekrar gizli, açıklama ve önizleme kalır. */
body.tma-izgara.tma-kart-modu .tb-shell, body.tma-izgara.tma-kart-modu .tb-main, body.tma-izgara.tma-kart-modu .tb-main-col{ padding:0 !important; margin:0 !important; min-height:0 !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] > .tb-w-head h3{ display:none !important; }
body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] > .tb-w-head{ padding-top:10px !important; }

/* v829: ızgara görünümünde boş kalan özet/gün-cümlesi iskeletleri SONSUZ parıltı
   animasyonuyla titriyordu — ızgarada iskelet yok, boşsa yok. */
/* v834: gizlemek yerine SESSİZ yer tutucu — içerik gelince yükseklik değişmez (CLS 0.48 → ölçüldü) */
body.tma-izgara #tmaOzetSatir:empty, body.tma-izgara #tmaOzetSatir:not(:has(*)){ animation:none !important; display:block !important; min-height:82px !important; background:#EAF2FB !important; border:1px solid #D7E3F0; border-radius:12px; margin:0 10px 10px; }
body.tma-izgara #tmaGunCumle:empty, body.tma-izgara #tmaGunCumle:not(:has(*)){ animation:none !important; display:block !important; min-height:107px !important; background:#FAF3E7 !important; border:1.5px solid #F3DCC2; border-radius:14px; margin:0 0 12px; }
html body.tma-izgara #tmaMicoYuva.tma-yuva-bekliyor{ min-height:var(--tma-mico-h,290px) !important; display:block !important; }
html body.tma-izgara:not(.tma-kart-modu) #tmaMicoYuva.tma-yuva-bekliyor{ min-height:var(--tma-mico-h,290px) !important; } /* v852: içerik gelince gerçek yükseklik — 130 px boşluk kalmasın */
html body.tma-izgara #tb-app > #tmaOzetSatir:empty, html body.tma-izgara #tb-app > #tmaOzetSatir:not(:has(*)){ margin:0 10px 10px !important; min-height:82px !important; }
body.tma-izgara #tmaIskelet, body.tma-izgara .tma-isk-serit, body.tma-izgara .tma-isk-kart{ animation:none !important; display:none !important; }
/* v835 ÖLÇÜLDÜ: Su/Atık geçmiş tabloları 390 px'te üç dar sütuna sıkışıyor ("Yalıkav/ak", "176/.0 L");
   v306'nın jurnal/yakıt/masraf için yaptığı satır düzeni bu ikisine de uygulanır. */
@media (max-width: 700px){
  #tb-su table, #tb-atik table{ min-width:0 !important; width:100% !important; display:block; }
  #tb-su thead, #tb-atik thead{ display:none; }
  #tb-su tbody, #tb-atik tbody{ display:block; }
  #tb-su tbody tr, #tb-atik tbody tr{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; background:#fff; border:1px solid #D7E3F0; border-radius:12px; padding:10px 12px; margin-bottom:10px; width:auto; }
  #tb-su tbody td, #tb-atik tbody td{ display:inline-flex; align-items:center; border:0; padding:2px 0; font-size:15px; white-space:nowrap; }
  #tb-su tbody td:first-child, #tb-atik tbody td:first-child{ flex:1 1 100%; font-weight:700; }
  #tb-su tbody td:last-child, #tb-atik tbody td:last-child{ margin-left:auto; }
  /* üç istatistik hücresi: değer + etiket alt alta, etiket bölünmez */
  #tb-su .tb-stats, #tb-atik .tb-stats{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; gap:6px !important; }
  #tb-su .tb-stat, #tb-atik .tb-stat{ padding:10px 6px !important; }
  #tb-su .tb-stat span, #tb-atik .tb-stat span{ overflow-wrap:normal !important; word-break:normal !important; }
}
/* v836 ÖLÇÜLDÜ (1280 px kart modu): kart 1156 px genişliğinde tek satır metin — okuma
   genişliği 760 px'e sınırlanır, ortalanır. İstatistik hücrelerinde DEĞER (589 L) 15 px,
   ETİKET 20 px çıkıyordu — ters; değer büyük, etiket küçük. */
@media (min-width: 901px){
  html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili]{ max-width:760px !important; margin-left:auto !important; margin-right:auto !important; }
  html body.tma-izgara.tma-kart-modu #tmaKartBasi > *{ max-width:760px; }
}
#tb-app .tb-stat b{ font-size:20px !important; font-weight:800 !important; line-height:1.2; display:block; }
#tb-app .tb-stat span:last-child{ font-size:15px !important; font-weight:600 !important; color:#4A5A6E !important; }
/* v839 ÖLÇÜLDÜ: 320 px'te ikon kutusu 68 px (2 etiket kırılıyor), %200 yakınlaştırmada (195 px)
   44 px ve 51 etiket taşıyor. Dar ekranda 3, çok darda 2 sütun; etiket okunur kalır. */
@media (max-width: 360px){ #tmaIzgara .tma-iz-satir{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; } }
@media (max-width: 250px){ #tmaIzgara .tma-iz-satir{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; } #tmaIzgara .tma-iz-ad{ font-size:14px !important; overflow-wrap:anywhere !important; } }

/* ═══════════════════════════════════════════════════════════════
   v844 ANA EKRAN — ÜRÜN CİLASI ([stated] "profesyonel bir UX ve tasarım, final ürün")
   · Kutular eşit yükseklik (1 ve 2 satırlı etiketler yan yana dişli görünüyordu)
   · İkon, GRUBUN TONUNDA yumuşak daire içinde — her grup kendi rengiyle tanınır
     (Bugün lacivert · Seyir & Hava turkuaz · Teknem deniz camı · Bakım kum ·
      Finans yosun · İnsanlar mürekkep · Bilgi gök · Miço amber · Hesap gri)
   · Grup başlığı: ikon + ad, altında sessiz alt yazı; gruplar arası 26 px ritim
   · Izgarada "Başa dön" kutuların üstüne biniyordu → gizli
   ═══════════════════════════════════════════════════════════════ */
#tmaIzgara .tma-iz-grup{ margin:26px 0 0; }
#tmaIzgara .tma-iz-grup:first-child{ margin-top:8px; }
#tmaIzgara .tma-iz-baslik{ display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; margin:0 4px 10px; font-size:18px; font-weight:800; color:#0B2A4A; letter-spacing:-.01em; }
#tmaIzgara .tma-iz-baslik small{ flex:1 1 100%; font-size:15px; font-weight:500; color:#5A6B7B; margin-left:28px; margin-top:-4px; }
#tmaIzgara .tma-iz-gikon{ display:inline-flex; align-items:center; justify-content:center; width:22px; font-size:16px; }
#tmaIzgara .tma-iz-satir{ gap:10px; }
#tmaIzgara .tma-iz-kutu{ position:relative; min-height:104px !important; height:104px; padding:10px 6px 8px !important; gap:7px;
  border:1px solid #E3EAF2 !important; border-radius:16px !important; background:#fff !important;
  box-shadow:0 1px 2px rgba(11,42,74,.06), 0 6px 14px -12px rgba(11,42,74,.35) !important; transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease; }
#tmaIzgara .tma-iz-kutu:hover{ box-shadow:0 2px 4px rgba(11,42,74,.08), 0 10px 20px -12px rgba(11,42,74,.45) !important; border-color:var(--tma-g-ton, #C7D7F5) !important; }
#tmaIzgara .tma-iz-kutu:active{ transform:scale(.96); }
#tmaIzgara .tma-iz-kutu:focus-visible{ outline:3px solid #F59E0B; outline-offset:2px; }
#tmaIzgara .tma-iz-ikon{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%;
  background:var(--tma-g-zemin, #EAF1FD); font-size:24px !important; line-height:1; flex:0 0 auto; }
#tmaIzgara .tma-iz-ad{ font-size:15px !important; font-weight:700 !important; line-height:1.2 !important; color:#12233F; letter-spacing:-.01em; }
/* grup tonları */
#tmaIzgara .tma-iz-grup[data-grup="0"]{ --tma-g-zemin:#E7EDF6; --tma-g-ton:#2C4C7C; }
#tmaIzgara .tma-iz-grup[data-grup="1"]{ --tma-g-zemin:#E4F3F7; --tma-g-ton:#155E73; }
#tmaIzgara .tma-iz-grup[data-grup="2"]{ --tma-g-zemin:#E8F6F4; --tma-g-ton:#186257; }
#tmaIzgara .tma-iz-grup[data-grup="3"]{ --tma-g-zemin:#FAF3E7; --tma-g-ton:#7C561F; }
#tmaIzgara .tma-iz-grup[data-grup="4"]{ --tma-g-zemin:#EFF4E6; --tma-g-ton:#465F24; }
#tmaIzgara .tma-iz-grup[data-grup="5"]{ --tma-g-zemin:#F2EEF7; --tma-g-ton:#6B4E9B; }
#tmaIzgara .tma-iz-grup[data-grup="6"]{ --tma-g-zemin:#E8F1F9; --tma-g-ton:#255C99; }
#tmaIzgara .tma-iz-grup[data-grup="7"]{ --tma-g-zemin:#FFF4E0; --tma-g-ton:#8A4F1E; }
#tmaIzgara .tma-iz-grup[data-grup="8"]{ --tma-g-zemin:#EEF1F5; --tma-g-ton:#4A5A6E; }
#tmaIzgara .tma-iz-baslik .tma-iz-gikon{ color:var(--tma-g-ton, #0B2A4A); }
html body.tma-izgara #tmaBasaDon{ display:none !important; visibility:hidden !important; pointer-events:none !important; opacity:0 !important; } /* v852: kart modunda Kaydet düğmesinin üstüne biniyordu */
@media (max-width:360px){ #tmaIzgara .tma-iz-kutu{ height:100px; min-height:100px !important; } #tmaIzgara .tma-iz-ikon{ width:40px; height:40px; font-size:20px !important; } }
/* v845 ÖLÇÜLDÜ (kart modu): alt yazı 2 satıra kırpılıyor (line-clamp), gizli 3. satır bir sonraki
   etiketin ("Masraf dökümü aralığı") ÜSTÜNE biniyordu. Kart modunda alt yazı tam görünür. */
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head .tb-w-sub{
  display:block !important; -webkit-line-clamp:unset !important; -webkit-box-orient:unset !important;
  max-height:none !important; height:auto !important; overflow:visible !important; margin:0 0 10px !important; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head{ padding-bottom:12px !important; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head .tma-sec-etiket{ margin-top:6px; }
#tmaKartBasiAd:focus{ outline:none; }
#tmaKartBasiAd:focus-visible{ outline:none; }
/* v845: cümle içi terim bağlantıları (Marina, bakım, sigorta) genel "44 px dokunma" kuralıyla 44 px
   yüksekliğe zorlanıp satırı açıyordu — cümle içinde satır içi kalır, dokunma payı dikey dolguyla */
#tb-app .tb-w-sub .tma-metin-link, #tb-app p .tma-metin-link, #tb-app .tma-metin-link{
  display:inline !important; min-height:0 !important; height:auto !important; line-height:inherit !important;
  padding:6px 0 !important; margin:0 !important; }

/* ═══ v846 FORM DİLİ ═══
   ÖLÇÜLDÜ: hızlı seçim düğmeleri (.tb-chip: Dolu / ½ Yarım / 20L …) hiç stillenmemişti —
   tarayıcı varsayılanı: 2 px siyah "outset" çerçeve, gri zemin. Hap ailesi (v282) tek dilde:
   lacivert yazı, açık zemin, ince çerçeve, seçiliyken dolu. */
#tb-app .tb-chip{
  appearance:none; -webkit-appearance:none;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:44px; padding:8px 14px; margin:0;
  background:#EAF1FD; color:#0B2A4A; border:1.5px solid #C7D7F5; border-radius:999px;
  font:inherit; font-size:15px; font-weight:700; cursor:pointer; line-height:1.2;
  transition:background .12s, border-color .12s, transform .08s; }
#tb-app .tb-chip:hover{ background:#DCE8FA; }
#tb-app .tb-chip:active{ transform:scale(.97); }
#tb-app .tb-chip.secili, #tb-app .tb-chip[aria-pressed="true"], #tb-app .tb-chip.aktif{ background:#0B2A4A; color:#fff; border-color:#0B2A4A; }
#tb-app .tb-chip:focus-visible{ outline:3px solid #F59E0B; outline-offset:2px; }
#tb-app #tbFuelHizliSec, #tb-app .tb-chip-satir{ display:flex; flex-wrap:wrap; gap:8px 8px; margin:0 0 12px; }
/* kart modunda başlık kutusu: alt yazı + yazdır aynı satırda, boş koca kutu yok */
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head{ display:flex !important; flex-wrap:wrap; align-items:flex-start; gap:8px 12px; padding:10px 14px 12px !important; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head > div{ flex:1 1 200px; min-width:0; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head .tma-yazdir-btn{ flex:0 0 auto; width:40px; height:40px; min-height:40px !important; padding:0 !important; border-radius:10px; background:#fff; border:1px solid #D7E3F0; margin-left:auto; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head .tb-w-sub{ margin:0 !important; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head .tma-sec-etiket,
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head select{ flex:1 1 100%; }
/* v879: alt sınır 15 px kuralı — 39 bildirim 12–14,5 px'ten 15 px'e çekildi (ızgara adları, etiketler, rozetler).
   v846: alan etiketleri tek ölçek — "Litre" 13 px, "Yakıt alım tarihi" 18 px yan yana duruyordu */
#tb-app .tb-w-body label, #tb-app .tb-quick-form label, #tb-app .tma-alan-etiket, #tb-app .tma-sec-etiket, #tb-app .tma-varis-etiket{
  font-size:15px !important; font-weight:700 !important; color:#33475C !important; line-height:1.35 !important; margin:0 0 6px !important; letter-spacing:.01em; }
#tb-app .tb-w-body label + input, #tb-app .tb-w-body label + select, #tb-app .tb-w-body label + textarea{ margin-top:0; }

/* v848 MİÇO GÖREV NOKTALARI: "✓ 2 3 ✓ 5 6" — sayılar kaptana bir şey söylemiyordu.
   Tamamlanan: yeşil ✓; bekleyen: içi boş amber daire (sayı yok). Başlık ipucu (title) duruyor. */
#tma-mico .tma-mc-nokta:not(.tamam){ font-size:0 !important; background:#FFF4E0 !important; border:2px solid #E9A23B; color:transparent; width:22px !important; height:22px !important; }
#tma-mico .tma-mc-nokta.tamam{ width:22px !important; height:22px !important; font-size:14px !important; }
#tma-mico .tma-mc-noktalar{ gap:5px; align-items:center; }
#tma-mico .tma-mc-noktalar::after{ content: attr(data-ozet); font-size:15px; font-weight:700; color:#4A5A6E; margin-left:6px; }
/* "Bugünün önceliği" eylemi: dev siyah bant değil, sağa yaslı düğme (dar ekranda yine tam satır) */
#tmaGunCumle .tma-gc-eylem{ background:#0B2A4A; font-size:15px; min-height:44px; padding:10px 18px; border-radius:12px; box-shadow:0 4px 12px -8px rgba(11,42,74,.6); }
@media (min-width:560px){ #tmaGunCumle .tma-gc-eylem{ flex:0 0 auto !important; } }

/* v851: PWA yükleme şeridi (ızgara üstü) */
#tmaPwaSerit{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin:8px 0 6px; padding:10px 12px; background:#0B2A4A; color:#EAF2FE; border-radius:14px; font-size:15px; line-height:1.4; }
#tmaPwaSerit .tma-pwa-metin{ flex:1 1 200px; }
#tmaPwaSerit .tma-pwa-yukle{ min-height:40px; padding:8px 16px; border:0; border-radius:10px; background:#F59E0B; color:#0B2A4A; font-weight:800; font-size:15px; cursor:pointer; }
#tmaPwaSerit .tma-pwa-sonra{ min-height:40px; padding:8px 12px; border:1px solid rgba(255,255,255,.35); border-radius:10px; background:transparent; color:#EAF2FE; font-weight:600; font-size:15px; cursor:pointer; }

/* ═══ v852 GİRİŞ EKRANI — İLK İZLENİM ═══
   Sıfırdan kurulumla insan gibi bakıldı: üç logo/üç başlık üst üste, koyu zeminde koyu başlık
   (okunmuyor), iki ayrı üyelik formu, iki "Şifremi unuttum", form kutusu sağdan taşıyor,
   tepede boş açık bant, anonimde "Geri bildirim" düğmesi. Tek hero + sekmeli tek form. */
html.tma-tam-sayfa-html:not(.tma-kaptan) body, body:not(.tma-panel-modu) .tma-giris-sarmal{ background:#0B2A4A; }
body:not(.tma-panel-modu){ background:#0B2A4A !important; }
.tma-giris-sar{ margin:0 auto !important; padding:28px 16px 32px !important; }
.tma-giris-sar h2{ color:#F3F7FB !important; font-size:28px !important; letter-spacing:-.01em; }
.tma-giris-sar > div:first-child p{ color:#C8D6E6 !important; }
.tma-giris-sar > div:first-child > div:first-child{ font-size:40px !important; }
#tmaGirisLogo, #tesvik-login, .tma-tesvik{ display:none !important; }
/* v941: ikinci "Şifremi unuttum" yalnız formun kendi bağlantısı VARSA gizlenir — canlıdaki giriş ekranında hiç yoktu */
body:has(#tmaSifreUnuttum) #tmaGirisEk .tma-giris-link[data-panel="unuttum"]{ display:none !important; }
#tmaUyelik{ display:none !important; }                 /* ikinci üyelik bloğu; sekmedeki form yeterli */
#tmaGirisForm, #tmaUyeForm{ box-sizing:border-box !important; width:100% !important; max-width:100% !important; border-radius:16px !important; padding:18px 16px !important; box-shadow:0 10px 30px -18px rgba(0,0,0,.6); }
#tmaGirisForm .tma-u-etiket, #tmaUyeForm .tma-u-etiket{ display:block; font-size:15px; font-weight:700; color:#33475C; margin:0 0 6px; }
#tmaGirisForm input, #tmaUyeForm input{ min-height:46px !important; font-size:16px !important; }
#tmaSifreGoz{ min-height:40px !important; background:transparent !important; border:0 !important; color:#1D4ED8 !important; font-weight:700; text-align:left; padding:6px 0 !important; margin:-6px 0 8px !important; width:auto !important; }
#tmaSekmeGiris, #tmaSekmeUye{ border-radius:12px !important; }
#tmaGirisEk .tma-giris-satir{ justify-content:center; }
#tmaGirisEk .tma-giris-link{ color:#EAF2FE !important; }
#tmaGirisEk .tma-giris-alt{ color:#C8D6E6 !important; }
body:not(.tma-panel-modu) #tmaGeriBildirimBtn, body:not(.tma-panel-modu) #tma-push-toggle, body:not(.tma-panel-modu) #tmaHizliNotBtn, body:not(.tma-panel-modu) #tmaBasaDon{ display:none !important; }
body.tma-giris-modu #tmaGirisForm::before, body.tma-giris-modu #tmaGirisForm::after,
body.tma-giris-modu #tmaUyeForm::before, body.tma-giris-modu #tmaUyeForm::after{ display:none !important; content:none !important; }
body.tma-giris-modu #tmaGeriBildirimBtn, body.tma-giris-modu #tma-push-toggle, body.tma-giris-modu #tmaHizliNotBtn, body.tma-giris-modu #tmaBasaDon{ display:none !important; }
body.tma-giris-modu #tmaSifreUnuttum{ background:transparent !important; color:#1D4ED8 !important; border:0 !important; box-shadow:none !important; font-weight:700; min-height:40px !important; }
body.tma-giris-modu #tmaSifreGoz{ box-shadow:none !important; border-radius:0 !important; }
body.tma-giris-modu #tmaGirisEk .tma-giris-link{ background:rgba(255,255,255,.08) !important; border:1px solid rgba(255,255,255,.25) !important; border-radius:12px; min-height:44px; padding:8px 16px; }
body.tma-uye-sekmesi #tmaGirisEk{ display:none !important; }
#tmaUyeForm .tma-uo-ornek, #tmaUyeForm [class*="tma-uo-"]{ font-size:15px !important; line-height:1.5 !important; }
#tmaUyeForm .tma-uo-baslik{ font-weight:800; color:#0B2A4A; margin:14px 0 2px; font-size:15px !important; }
#tmaUyeForm .tma-uo-alt{ color:#5A6B7B; margin:0 0 8px; }
#tmaUyeForm .tma-uo-satir{ background:#EAF1FD; border-radius:8px; padding:6px 10px; margin:4px 0; color:#12233F; }
#tmaUyeForm .tma-uo-kazanc{ color:#33475C; margin:8px 0 4px; }
html.tma-tam-sayfa-html body.tma-giris-modu, body.tma-giris-modu{ background:#0B2A4A !important; }
body.tma-giris-modu #tmaForgotToggle, body.tma-giris-modu #tmaForgotForm, body.tma-giris-modu #tmaForgotToggle + *{ display:none !important; } /* eski 'Şifremi Unuttum' bloğu — formdaki akış (tma-sifre-sifirla) yeterli */

/* v853: ekipman kaldır düğmesi */
#tb-app .tma-ek-ad{ display:flex; align-items:center; gap:8px; }
#tb-app .tma-ek-ad .tma-ek-sil{ margin-left:auto; width:36px; height:36px; min-height:36px; border-radius:50%; border:1px solid #D7E3F0; background:#fff; color:#B42318; font-size:16px; font-weight:800; padding:0; flex:0 0 auto; }
#tb-app .tma-ek-ad .tma-ek-sil[data-onay]{ width:auto; padding:0 12px; border-radius:999px; background:#B42318; color:#fff; font-size:15px; }
/* v853 ÖLÇÜLDÜ: Teknelerim satırında ✏️ ve ✕ mutlak konumlu, metnin üstüne biniyordu
   ("8.05m · Kendi kaydım" üzerinde iki simge). Satır: tam genişlik, metin solda, iki daire sağda. */
#tb-app .tb-widget#tb-teknelerim .tb-boat-tab{ display:flex !important; align-items:center; gap:8px; width:100% !important; margin:0 0 8px !important; padding:10px 12px !important; position:relative; box-sizing:border-box; border:1px solid #D7E3F0; border-radius:12px; background:#fff; }
#tb-app .tb-widget#tb-teknelerim .tb-boat-tab > div{ flex:1 1 auto; min-width:0; }
#tb-app .tb-widget#tb-teknelerim .tb-boat-tab > div span{ display:block; color:#4A5A6E; font-size:15px; }
#tb-app .tb-widget#tb-teknelerim .tb-boat-tab .tma-satir-eylem{ position:static !important; flex:0 0 auto; width:40px; height:40px; min-height:40px; border-radius:50%; border:1px solid #D7E3F0; background:#F5F8FC; display:inline-flex; align-items:center; justify-content:center; padding:0; }
/* v855: jurnal satırı düzeltme formu + satır eylemleri */
#tb-app .tma-log-eylem{ display:inline-flex; align-items:center; gap:4px; flex:0 0 auto; }
#tb-app .tma-log-eylem button{ width:36px; height:36px; min-height:36px; padding:0; border-radius:50%; border:1px solid #E3EAF2; background:#F5F8FC; font-size:15px; }
#tb-app .tma-log-form{ margin-top:10px; padding-top:10px; border-top:1px dashed #D7E3F0; display:grid; gap:6px; }
#tb-app .tma-log-form label{ font-size:15px !important; font-weight:700 !important; color:#33475C !important; margin:0 !important; }
#tb-app .tma-log-form input{ width:100%; min-height:44px; padding:8px 10px; border:1.5px solid #D7E3F0; border-radius:10px; font-size:16px; box-sizing:border-box; }
#tb-app .tma-log-form-alt{ display:flex; gap:8px; margin-top:4px; }
#tb-app .tma-log-form .tl-kaydet{ flex:1; min-height:44px; border:0; border-radius:10px; background:#0B2A4A; color:#fff; font-weight:700; font-size:15px; }
#tb-app .tma-log-form .tl-vazgec{ min-height:44px; padding:0 16px; border:1px solid #D7E3F0; border-radius:10px; background:#fff; color:#33475C; font-weight:600; }
/* v857 KONTRAST (ölçüldü, WCAG AA): açık zemin üstünde açık gri italik ipucu (1.2:1) ve
   amber rozet üstünde gri sayı (4.27:1) → koyu tona çekildi. */
/* v857: italik ipucu — koyu zeminde açık, açık zeminde koyu */
#tb-app i, #tb-app em{ color:#33475C !important; }
#tb-app .tma-rt-rutbe i, #tb-app .tma-rt-rutbe em, .tma-rt-kutu i, .tma-rt-kutu em,
#tma-ritim i, #tma-ritim em, [class*='tma-rt-'] i, [class*='tma-rt-'] em{ color:#DCE9F8 !important; }
/* v857: kırmızı acil rozetinin üstündeki sayı beyaz olmalı */
#tb-app .tb-acil-rozet b, #tb-app [style*='background:#B42318'] b, #tb-app [style*='background: rgb(180, 35, 24)'] b{ color:#fff !important; }
#tb-app .tma-kat-rozet{ color:#7A3E06 !important; }

/* v857: PWA şeridi için önceden ayrılmış yer (CLS 0.11 → 0) */
body.tma-izgara #tmaPwaYer{ min-height:86px; display:block; }
@media (min-width:560px){ body.tma-izgara #tmaPwaYer{ min-height:64px; } }

/* v859: İçgörüler kartındaki örüntü bloğu */
#tb-app .tma-ks-orutu{ margin-top:14px; padding-top:12px; border-top:1px dashed #D7E3F0; }
#tb-app .tma-ks-orutu-bas{ font-size:15px; font-weight:800; color:#0B2A4A; margin-bottom:8px; }
#tb-app .tma-ks-orutu-satir{ display:flex; gap:10px; align-items:flex-start; padding:8px 10px; background:#EAF1FD; border-radius:10px; margin-bottom:6px; font-size:15px; line-height:1.45; color:#12233F; }
#tb-app .tma-ks-orutu-satir strong{ color:#0B2A4A; }

/* v860: Al Kaptan kartında içgörü satırları */
#tb-app #tbZekaListe .tma-zk-satir{ display:flex; gap:10px; align-items:flex-start; padding:10px 12px; background:#EAF1FD; border:1px solid #D7E3F0; border-radius:12px; margin-bottom:8px; font-size:15px; line-height:1.5; color:#12233F; }
#tb-app #tbZekaListe .tma-zk-satir strong{ color:#0B2A4A; }
/* v867: ızgarada sayfa-içi arama sayacı ve turuncu ✕ yok; panel tek kaynak, girdinin hemen altında */
body.tma-izgara #tmaAramaSayi, body.tma-izgara #tmaAramaTemizle{ display:none !important; }
body.tma-izgara #tbGlobalSearchPanel{ margin-top:6px; border-radius:12px; box-shadow:0 10px 30px -14px rgba(0,0,0,.5); }

/* ═══ v871 KART BAŞI / KART ÜSTÜ (canlı ekran görüntüsü) ═══
   1) tb-w-head: canlıda (tema/CRM CSS'i) lacivert zemin üstüne lacivert yazı → renkler zorlanır.
   2) Kart üstündeki yazdır düğmesi yerine KAPAT ✕; yazdır kartın altına ("İlgili" satırının yanına) iner.
   3) Kart başlığı çubuğunun sağında da ✕. */
html body #tb-app .tb-widget .tb-w-head, html body #tb-app .tma-enh-card .tma-enh-head{ background:#EAF2FD !important; color:#0B2A4A !important; }
html body #tb-app .tb-w-head h3, html body #tb-app .tb-w-head .tb-w-sub, html body #tb-app .tb-w-head label, html body #tb-app .tb-w-head p{ color:#0B2A4A !important; }
html body #tb-app .tb-w-head .tb-w-sub{ color:#33475C !important; }
html body #tb-app .tb-w-head .tb-w-sub a{ color:#1D4ED8 !important; }
#tmaKartBasi #tmaIzKapat{ margin-left:auto; width:40px; height:40px; min-height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.35); background:rgba(255,255,255,.12); color:#fff; font-size:18px; font-weight:800; padding:0; flex:0 0 auto; }
#tmaKartBasi #tmaKartBasiTekne{ margin-left:0 !important; margin-right:8px; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tb-w-head .tma-yazdir-btn{ display:none !important; }
html body.tma-izgara.tma-kart-modu #tb-app [data-tma-secili] .tma-yazdir-alt{ display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:6px 12px; border:1px solid #D7E3F0; border-radius:10px; background:#fff; color:#0B2A4A; font-weight:700; font-size:15px; margin:6px 0; }
/* v871: Hizmet kartında 11 turuncu düğme + turuncu "Miço'ya sor" (kartın CTA rengi sızıyordu) → hap dili */
#tb-app #tb-hizmetler .tma-hz-izgara button, #tb-app #tmaHizmetKart .tma-hz-izgara button{ background:#EAF1FD !important; color:#0B2A4A !important; border:1.5px solid #C7D7F5 !important; border-radius:14px !important; font-weight:700; }
#tb-app #tb-hizmetler .tma-hz-izgara button:hover{ background:#DCE8FA !important; }
#tb-app .tma-mico-sor{ background:#F5F8FC !important; color:#0B2A4A !important; border:1px solid #D7E3F0 !important; border-radius:12px !important; font-weight:700; }

/* v872: koyu tema kapalı — eski sınıf kalsa bile açık tema hâkim; + Tekne Ekle her zaman görünür */
html body.tma-dark{ background:#F1F5F9 !important; color:#12233F !important; }
html body.tma-dark .tb-widget, html body.tma-dark .tb-w-head, html body.tma-dark .tb-w-body{ background:#fff !important; color:#12233F !important; }
html body.tma-dark .tb-w-head{ background:#EAF2FD !important; }
#tma-dark-toggle{ display:none !important; }
#tb-app #tbAddBoatToggle{ display:inline-flex !important; align-items:center; cursor:pointer; margin-left:auto; flex:0 0 auto; }
#tb-app #tb-teknelerim .tb-w-head button, #tb-app #tbAddBoatToggle, #tb-app #tbBoatAddBtn{ background:#0B2A4A !important; color:#fff !important; border-radius:10px !important; padding:8px 12px !important; min-height:40px !important; font-weight:800; white-space:nowrap; }
/* v873 (canlı: "her karta basışta altta hava durumu görünmeye çalışıyor"): eski kahraman bölümü
   (tbHeroSection: istatistik satırı + hava kutusu) ızgarada gizli olmalı; sınıfı JS'le değişince
   bir an görünüp kayboluyordu. Izgarada her iki modda da kesin gizli. */
html body.tma-izgara #tbHeroSection, html body.tma-izgara #tbStatsRow, html body.tma-izgara .tb-fg-hero,
html body.tma-izgara #tbTodayWeather, html body.tma-izgara #tmaDahaFazlaToggle{ display:none !important; visibility:hidden !important; height:0 !important; overflow:hidden !important; }

/* v874: gün cümlesi boşsa alan yok (yer tutucu kuralı da devre dışı) */
html body.tma-izgara #tmaGunCumle[data-tma-bos], html body.tma-izgara #tmaGunCumle[data-tma-bos]:empty{ display:none !important; min-height:0 !important; height:0 !important; margin:0 !important; padding:0 !important; border:0 !important; }
/* v875: Miço cevabı altında "yakın sorular" */
#tb-app .tma-mico-yakin{ display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
#tb-app .tma-mico-yakin-soru{ background:#fff; border:1px solid #C7D7F5; border-radius:999px; padding:6px 12px; min-height:36px; font-size:15px; font-weight:600; color:#0B2A4A; cursor:pointer; text-align:left; }
#tb-app .tma-mico-yakin-soru:hover{ background:#EAF1FD; }

/* ═══ v876 ANA EKRAN RİTMİ (UX gözüyle) ═══
   Sorun: ilk ekranda dört kutu üst üste (özet · gündem · PWA şeridi · Miço) ve hiçbiri
   işe götürmüyor; kaptan ilk dokunuşuna 1,5 ekran aşağıda ulaşıyor. Çözüm: PWA şeridi
   ince ve gri (reklam değil ipucu), Miço gövdesi 3 satırda kırpılır (devamı dokununca),
   kutular arası boşluk 14→10, gündem düğmesi tam satır yerine sağa yaslı.  */
body.tma-izgara #tmaPwaSerit{ padding:8px 12px; font-size:15px; background:#243B55; }
body.tma-izgara #tmaPwaSerit .tma-pwa-yukle{ min-height:36px; padding:6px 14px; font-size:15px; }
body.tma-izgara #tmaPwaSerit .tma-pwa-sonra{ min-height:36px; padding:6px 10px; font-size:15px; }
body.tma-izgara #tmaPwaYer{ min-height:0 !important; }
body.tma-izgara #tmaOzetSatir{ margin-bottom:10px; }
body.tma-izgara #tmaGunCumle{ margin-bottom:10px; }
body.tma-izgara #tmaMicoYuva{ margin-bottom:10px; }
@media (min-width:480px){ body.tma-izgara #tmaGunCumle .tma-gc-eylem{ flex:0 0 auto !important; } }
#tb-app .tma-mc-govde.tma-mc-kirp{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
#tb-app .tma-mc-devam{ background:none; border:0; color:#1D4ED8; font-weight:700; font-size:15px; padding:4px 0; min-height:32px; cursor:pointer; }
/* 3.83.252: süresi dolmuş rozet — kırmızı zemin üstü beyaz yazı (kontrast 6.5:1) */
html body #tb-app#tb-app#tb-app .tma-gc-doldu span.tma-gc-kalan{background:#B91C1C!important;color:#fff!important}
/* 3.83.252: durum noktaları (🔴🟢) 14 px altına inmesin */
html body #tb-app#tb-app .tma-tek-satir .tma-emo-hucre{font-size:14px!important}
/* 3.83.252: sekme düğmeleri geçişsiz: renk geçişi sırasında ölçülen sahte düşük kontrast alarmı ve titreme biter */
html body #tb-app#tb-app [role=tab], html body #tb-app#tb-app .tma-hub-sekme button{transition:none!important}
