/* ortak.css — Korupark, Ladin C5 ve 5. Levent Residence uygulamalarinin
   uc index.html dosyasinda da BIREBIR ayni olan CSS kurallari.

   Bu dosya uc klasorde de ayni icerikle durur. Degistirirken UCUNU de guncelle.
   Uygulamaya ozel kurallar kendi index.html dosyasindaki <style> blogunda kalir;
   o blok bu dosyadan SONRA geldigi icin esit ozgullukte ozel kural kazanir.

   Uretim: 229 kural. Son guncelleme: 2026-08-24 (hub izgarasi)

   BILEREK DISARIDA BIRAKILANLAR — bu dort secici uc uygulamada da ayni olmasina
   ragmen ortak.css e TASINMADI, cunku her uygulamada esit ozgullukte ve ayni
   elemani hedefleyen baska bir kural onlardan ONCE geliyor; bu dosya en basta
   yuklendigi icin tasinsalardi kaskad kazanani degisirdi (tarayicida olculdu):
     .step-card textarea
     .admin-table-compact th, .admin-table-compact td
     .admin-table th
     .admin-pw-table td
   Bunlar her uygulamanin kendi <style> blogunda kalmali. Tasima. */

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #171613;
  --surface: #201e1a;
  --surface-2: #2a2721;
  --border: #3a362d;
  --text: #f1ede2;
  --text-muted: #a89f8c;
  --accent: #e2793f;
  --accent-ink: #211202;
  --available: #55c485;
  --available-bg: rgba(85,196,133,0.13);
  --available-border: rgba(85,196,133,0.35);
  --occupied: #a89f8c;
  --occupied-bg: rgba(255,255,255,0.04);
  --occupied-border: rgba(255,255,255,0.09);
  --line: #48433a;
  --line-dim: #322f28;
  --danger: #e2836f;
  --danger-bg: rgba(226,131,111,0.13);
  --danger-border: rgba(226,131,111,0.45);
  --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 6px 20px -8px rgba(0,0,0,0.5);
  --shadow-lg: 0 12px 40px -10px rgba(0,0,0,0.6);
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.shell {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 0 64px;
  position: relative;
}
header.top {
  padding: 22px 20px 14px;
}
/* Baslik sutunu bosluğu yutuyor. Yoksa .brand'in "space-between" dagitimi
   artan yeri butun araliklara serpiyor ve geri oku ile baslik arasi, ✉ ile
   yenile arasi uygulamadan uygulamaya degisiyordu (alt yazi uzunluguna gore).
   Boyle her uygulamada araliklar esit 12px. */
.brand-txt {
  flex: 1;
  min-width: 0;
}
.brand-txt h1 {
  font-size: 1.5rem;
  margin: 0;
  letter-spacing: 0.01em;
  font-weight: 800;
}
.brand-txt .sub {
  font-size: 0.72rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
}
.hero-count .num {
  font-size: 2.1rem;
  font-weight: 800;
  color: var(--available);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.hero-count .txt {
  font-size: 0.86rem;
  color: var(--text);
  font-weight: 600;
}
.hero-count .txt small {
  display: block;
  color: var(--text-muted);
  font-weight: 500;
  font-size: 0.78rem;
  margin-top: 2px;
}
.conn-pill .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--line);
}
.conn-pill.live .dot {
  background: var(--available);
}
.conn-pill.error .dot {
  background: var(--danger);
}
/* Yazma sunucuda onaylanana kadar gosterilen ara durum. Acil durum bildirimi
   artik once yaziliyor, sonra ekrana geliyor; bu rozet o bekleyisi gorunur kilar. */
.conn-pill.saving .dot {
  background: var(--accent);
}
.conn-pill.saving {
  color: var(--accent);
}
.conn-pill.error {
  color: var(--danger);
}
.me-section-head h2 {
  font-size: 0.8rem;
  margin: 0;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}
/* Hap bicimli islem dugmeleri (bkz. Tanriverdi Ailesi rozetleri): kenarlik
   yok, tonlu zemin, kendi renginde yazi. Alti cizili metin baglantilari
   dokunmasi zor ve birbirinden ayirmasi guctu. */
.me-change,
.me-add,
.me-remove {
  border: none;
  border-radius: 999px;
  padding: 5px 11px;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.35;
  cursor: pointer;
  text-decoration: none;
}
.me-change {
  background: var(--surface-2);
  color: var(--text-muted);
}
.me-add {
  background: var(--available-bg);
  color: var(--available);
}
.me-remove {
  background: var(--danger-bg);
  color: var(--danger);
}
.me-card .me-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.me-card .who .val .no {
  color: var(--text-muted);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.status-toggle {
  display: flex;
  background: var(--surface-2);
  border-radius: 999px;
  padding: 3px;
  gap: 2px;
}
.status-toggle button {
  border: none;
  background: transparent;
  padding: 7px 13px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--text-muted);
}
.status-toggle button.active.avail {
  background: var(--available);
  color: #fff;
}
.status-toggle button.active.occ {
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow);
}
.me-sub {
  font-size: 0.76rem;
  color: var(--available);
  font-weight: 700;
  margin-top: 8px;
}
.me-note {
  font-size: 0.78rem;
  color: var(--text-muted);
  font-style: italic;
  margin-top: 4px;
}
.me-taken {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.me-taken .msg {
  font-size: 0.82rem;
  font-weight: 600;
}
.me-taken .msg b {
  font-variant-numeric: tabular-nums;
}
.me-taken button {
  border: none;
  background: var(--surface-2);
  color: var(--text);
  font-weight: 700;
  font-size: 0.76rem;
  padding: 7px 12px;
  border-radius: 999px;
  cursor: pointer;
}
.list-head {
  margin: 22px 20px 8px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.list-head h2 {
  font-size: 0.95rem;
  margin: 0;
  font-weight: 800;
}
.list-head span {
  font-size: 0.76rem;
  color: var(--text-muted);
}
#usingCards {
  margin: 0 20px 4px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.using-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.using-actions button {
  flex: 1;
  border: none;
  border-radius: 10px;
  padding: 9px 10px;
  font: inherit;
  font-weight: 700;
  font-size: 0.8rem;
  cursor: pointer;
}
.using-actions .btn-extend {
  background: var(--available);
  color: #fff;
}
.using-actions .btn-leave {
  background: var(--surface-2);
  color: var(--text);
}
.btn-tesekkur {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  text-align: center;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.82rem;
  background: transparent;
  border: 1px solid var(--accent);
  color: var(--accent);
}
.floor-group {
  margin: 0 20px 16px;
}
.floor-group-title {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.floor-group-title .n {
  color: var(--available);
  font-weight: 800;
}
.avail-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.avail-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--available-bg);
  border: 1px solid var(--available-border);
  border-radius: 12px;
  padding: 12px 14px;
  cursor: pointer;
  text-align: left;
  width: 100%;
  font: inherit;
  color: inherit;
}
.avail-row.mine {
  cursor: default;
  outline: 2px solid var(--accent);
  outline-offset: -1px;
}
.avail-row .left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.avail-row .dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--available);
  flex: none;
  margin-top: 3px;
}
.avail-row .daire {
  font-weight: 700;
  font-size: 0.88rem;
}
.avail-row .until {
  font-size: 0.74rem;
  color: var(--text-muted);
}
.avail-row .note {
  font-size: 0.74rem;
  color: var(--text-muted);
  font-style: italic;
  margin-top: 2px;
}
.avail-row .right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
}
.avail-row .tap-hint {
  font-size: 0.68rem;
  color: var(--available);
  font-weight: 700;
}
.empty-state {
  margin: 0 20px 16px;
  text-align: center;
  color: var(--text-muted);
  font-size: 0.85rem;
  padding: 30px 16px;
  border: 1px dashed var(--border);
  border-radius: var(--radius);
}
.kroki-section-head {
  margin: 26px 20px 8px;
}
.kroki-section-head h2 {
  font-size: 0.95rem;
  margin: 0 0 2px;
  font-weight: 800;
}
.kroki-section-head p {
  margin: 0;
  font-size: 0.76rem;
  color: var(--text-muted);
}
.floor-tabs {
  display: flex;
  gap: 6px;
  margin: 10px 20px 0;
  background: var(--surface-2);
  padding: 4px;
  border-radius: 12px;
}
.floor-tabs button {
  flex: 1;
  border: none;
  background: transparent;
  color: var(--text-muted);
  padding: 9px 6px;
  border-radius: 9px;
  font-weight: 700;
  font-size: 0.82rem;
  cursor: pointer;
  letter-spacing: 0.01em;
}
.floor-tabs button.active {
  background: var(--surface);
  color: var(--text);
  box-shadow: var(--shadow);
}
.map-card {
  margin: 10px 20px 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px;
  box-shadow: var(--shadow);
}
.map-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  padding: 2px 2px 8px;
}
.map-toolbar button {
  border: 1px solid var(--border);
  background: var(--surface-2);
  color: var(--text);
  width: 34px;
  height: 34px;
  border-radius: 9px;
  font-size: 1.1rem;
  font-weight: 800;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.map-toolbar .zoom-label {
  font-size: 0.74rem;
  color: var(--text-muted);
  font-weight: 700;
  min-width: 42px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.map-toolbar .zoom-fit {
  border: 1px solid var(--border);
  background: var(--surface-2);
  color: var(--text-muted);
  /* Ustteki ".map-toolbar button" kurali 34px genislik veriyor; "Sigdir"
     yazisi o kutuya sigmayip tasiyordu. Genislik metne birakiliyor. */
  width: auto;
  height: 34px;
  padding: 0 12px;
  border-radius: 9px;
  font-size: 0.76rem;
  font-weight: 700;
  cursor: pointer;
}
.map-viewport.dragging {
  cursor: grabbing;
}
.map-caption {
  font-size: 0.7rem;
  color: var(--text-muted);
  padding: 8px 4px 4px;
  line-height: 1.4;
}
.admin-btn {
  border: 1.5px solid var(--border);
  background: var(--surface-2);
  color: var(--text);
  padding: 9px 12px;
  border-radius: 10px;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}
.admin-btn:hover {
  border-color: var(--accent);
}
.stats-card {
  margin: 26px 20px 0;
  padding: 16px 18px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
.stats-head {
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin-bottom: 12px;
}
footer.note {
  margin: 28px 20px 0;
  padding: 14px 16px;
  border-radius: var(--radius);
  background: var(--surface-2);
  border: 1px solid var(--border);
  font-size: 0.73rem;
  color: var(--text-muted);
  line-height: 1.5;
}
/* Acil durum modulunun alt notu ortali. Otopark modulunun notu sola dayali
   kaliyor: o bir kullanim aciklamasi, bu ise tek cumlelik bir uyari. */
footer.note.orta {
  text-align: center;
}
footer.credit {
  margin: 12px 20px 0;
  text-align: center;
  font-size: 0.7rem;
  color: var(--text-muted);
}
.step-backdrop[hidden] {
  display: none;
}
/* Şifre değiştirme keypad'i yönetici panelinin ÜSTÜNDE açılmalı. Tüm
   .step-backdrop'lar aynı z-index'te (160; C5'te 300) → DOM sırası paneli
   öne alıyordu. id seçici (özgüllük) .step-backdrop'u ezer. */
#pwSetBackdrop {
  z-index: 500;
}
/* Üye profili perdesi de panelin ÜSTÜNDE açılmalı. Ladin ve Residence'ta bu
   perde panelden ÖNCE geliyor (Korupark'ta sonra) → eşit z-index'te panel
   üste biniyordu ve ada dokununca hiçbir şey açılmamış gibi görünüyordu
   (Alper, Residence). id seçici .step-backdrop'u ezer. */
#uyeProfilBackdrop {
  z-index: 400;
}
/* Onay / bilgi penceresi her perdenin ÜSTÜNDE (357): üye kartından "Sil" onayı kartın arkasında kalıyordu.
   .form-perde 650, üye kartı 400. */
#onayBackdrop {
  z-index: 700;
}
/* Onay ikili mod: Evet/Hayır iki buton aynı satırda (Vazgeç linki yerine). */
.onay-card.onay-ikili .onay-btnlar {
  display: flex;
  gap: 8px;
}
.onay-card.onay-ikili .onay-btnlar > button {
  flex: 1;
  width: auto;
  margin: 0;
  text-align: center;
}
.onay-card.onay-ikili .onay-hayir-btn {
  background: var(--surface-2);
  color: var(--text);
  border: 1px solid var(--border);
}
.step-card {
  width: 100%;
  max-width: 420px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 26px 22px;
  box-shadow: var(--shadow-lg);
  position: relative;
  max-height: 88vh;
  overflow-y: auto;
}
.step-close {
  position: absolute;
  top: 14px;
  right: 14px;
  border: none;
  background: var(--surface-2);
  color: var(--text-muted);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Adim geri dugmesi kapatmanin solunda, ayni olcude. Eskiden her adimin
   ALTINDA duruyordu; uzun listelerde ekranin disinda kaliyor, kisa
   listelerde de bosuna dikey yer kapliyordu. Ustte sabit bir yeri var. */
.step-geri {
  position: absolute;
  top: 14px;
  right: 64px;
  border: none;
  background: var(--surface-2);
  color: var(--text-muted);
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.step-geri[hidden] {
  display: none;
}
/* Acil durum akisinda alttaki geri baglantilari artik ustteki dugmeye tasindi. */
#emgBackdrop .step-back {
  display: none;
}
.step-tag {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 800;
  color: var(--accent);
  margin-bottom: 8px;
}
.step-card h2 {
  font-size: 1.25rem;
  margin: 0 0 6px;
  font-weight: 800;
}
/* Sag ustteki yuvarlak dugmelerin altina baslik kacmasin diye etiket ve baslik
   o kadar sag bosluk birakiyor. Acil durum akisinda iki dugme var (geri +
   kapat), diger pencerelerde yalnizca kapat. Olculdu: 375px ekranda
   "Bildirdiğiniz daire hangi katta?" basliginin ilk satiri dugmelerin
   altindan geciyordu. */
.step-card .step-tag,
.step-card h2 {
  padding-right: 52px;
}
/* Acil durum penceresinde sag ustte iki dugme var. Basliga sag bosluk vermek
   yerine ETIKET satiri dugmeler kadar yukseltiliyor: boylece baslik tam
   genisligi kullaniyor ve "Bildirdiğiniz daire hangi katta?" tek satira
   siğiyor (olculdu: 20px yazi ile 302px gerekiyordu, 190px kaliyordu). */
#emgBackdrop .step-tag {
  padding-right: 100px;
  min-height: 34px;
}
#emgBackdrop h2 {
  padding-right: 0;
  font-size: 1.15rem;
}
.step-card p {
  font-size: 0.86rem;
  color: var(--text-muted);
  margin: 0 0 16px;
  line-height: 1.45;
}
.step-card label.field-label {
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  color: var(--text-muted);
  margin: 0 0 6px;
}
.choice-summary {
  background: var(--surface-2);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.choice-summary .lbl {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  font-weight: 700;
}
.choice-summary .val {
  font-size: 1rem;
  font-weight: 700;
}
.dur-date-quick {
  display: flex;
  gap: 8px;
  margin-bottom: 10px;
}
.dur-date-quick button {
  flex: 1;
  border: 1.5px solid var(--border);
  background: var(--surface);
  border-radius: 10px;
  padding: 11px 4px;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--text);
}
.dur-date-quick button.active {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accent-ink);
}
.dur-date-quick button:disabled {
  opacity: 0.35;
  cursor: default;
}
.dur-calendar {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 14px;
}
.dur-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.dur-cal-nav {
  border: none;
  background: var(--surface-2);
  color: var(--text);
  width: 32px;
  height: 32px;
  border-radius: 8px;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}
.dur-cal-nav:disabled {
  opacity: 0.3;
  cursor: default;
}
.dur-cal-month {
  font-weight: 800;
  font-size: 0.92rem;
  text-transform: capitalize;
}
.dur-cal-dow {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 4px;
}
.dur-cal-dow span {
  text-align: center;
  font-size: 0.66rem;
  font-weight: 700;
  color: var(--text-muted);
}
.dur-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.dur-cal-grid button {
  aspect-ratio: 1;
  border: none;
  background: transparent;
  border-radius: 8px;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
  font-variant-numeric: tabular-nums;
}
.dur-cal-grid button:disabled {
  color: var(--text-muted);
  opacity: 0.3;
  cursor: default;
}
.dur-cal-grid button.active {
  background: var(--accent);
  color: var(--accent-ink);
}
.dur-cal-grid button.is-today:not(.active) {
  border: 1.5px solid var(--accent);
}
.dur-cal-grid .dur-cal-pad {
  visibility: hidden;
  cursor: default;
}
.dur-hour-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  max-height: 50vh;
  overflow-y: auto;
  margin-bottom: 8px;
}
.dur-hour-grid button {
  border: 1.5px solid var(--border);
  background: var(--surface);
  border-radius: 10px;
  padding: 12px 4px;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}
.dur-hour-grid button:hover {
  border-color: var(--available);
  background: var(--available-bg);
}
.dur-hour-empty {
  font-size: 0.82rem;
  color: var(--text-muted);
  padding: 8px 2px;
}
.step-back {
  margin-top: 14px;
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.78rem;
  cursor: pointer;
  text-decoration: underline;
  padding: 4px;
  display: inline-block;
}
.step-primary {
  width: 100%;
  border: none;
  background: var(--accent);
  color: var(--accent-ink);
  padding: 13px;
  border-radius: 12px;
  font: inherit;
  font-weight: 800;
  font-size: 0.92rem;
  cursor: pointer;
}
.step-primary:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.step-error {
  color: var(--danger);
  background: var(--danger-bg);
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 10px;
  display: none;
}
.step-error.show {
  display: block;
}

/* Sifre tus takimi — kapi sifresi ve yonetici sifresi ekranlarinda.
   Dokunmatikte ekrandaki dokuz tus, masaustunde klavyedeki rakamlar; ikisi de
   ayni haneleri dolduruyor. Dort hane dolunca kendiliginden gonderiliyor,
   ayri bir "Devam et" dugmesi yok. */
.pin-dots {
  display: flex;
  gap: 14px;
  justify-content: center;
  margin: 18px 0 16px;
}
.pin-dot {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1.5px solid var(--line);
  transition: background 0.12s ease, border-color 0.12s ease;
}
.pin-dot.filled {
  background: var(--accent);
  border-color: var(--accent);
}
.pin-keypad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  max-width: 290px;
  margin: 0 auto;
}
.pin-key {
  border: 1.5px solid var(--border);
  background: var(--surface);
  color: var(--text);
  border-radius: 12px;
  padding: 15px 0;
  font: inherit;
  font-size: 1.25rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.pin-key:active {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accent-ink);
}
.pin-key:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.pin-key-empty {
  visibility: hidden;
  pointer-events: none;
}
.pin-shake {
  animation: pinShake 0.38s;
}
@keyframes pinShake {
  20%, 60% { transform: translateX(-7px); }
  40%, 80% { transform: translateX(7px); }
}
.contact-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 6px;
}
.contact-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--text);
  border: 1px solid var(--border);
  background: var(--surface-2);
  border-radius: 12px;
  padding: 12px 14px;
}
.contact-list a .ic {
  font-size: 1.2rem;
}
.contact-list a .lb {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  font-weight: 700;
}
.contact-list a .vl {
  font-size: 0.92rem;
  font-weight: 700;
}
.splash {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, #1c1a15 0%, #2a2115 55%, #3c2712 100%);
  color: #fff8f1;
  cursor: pointer;
}
.splash[hidden] {
  display: none;
}
.splash-inner {
  text-align: center;
  padding: 20px;
}
/* Splash tipografisi — hub'daki "Ince cizgi" dilinin acilis olcegindeki hali.
   Splash TEMADAN BAGIMSIZ ve her zaman koyu, bu yuzden renkler degiskenlerden
   degil dogrudan yaziliyor; vurgu rengi uygulamanin koyu tema turuncusu.
   "Uygulamasi" satiri kaldirildi: hub'da da yok, dursaydi ikisi ayrisirdi. */
/* Ust satir UC UYGULAMADA DA birebir ayni. Bilerek: ucunde de ayni seyi
   soyluyor (sitenin adi), degisen tek sey bina adi. Bu yuzden burada duruyor,
   uygulamalarin kendi <style> bloklarinda degil.
   Harf arasi buyuk puntoda gevsek durmasin diye 0.3em'den 0.26em'e cekildi. */
.splash-site {
  font-size: clamp(0.95rem, 4.55vmin, 1.2rem);
  letter-spacing: 0.26em;
  text-indent: 0.26em;
  text-transform: uppercase;
  color: #e2793f;
  font-weight: 700;
}
/* Ortadan acilarak gelen vurgu cizgisi. S1 yonune donmek icin: asagidaki
   width animasyonunu kaldirip burada width: 26px sabitle, baska hicbir sey degisme. */
.splash-cizgi {
  display: block;
  width: 0;
  height: 1px;
  background: #e2793f;
  opacity: 0.55;
  margin: 10px auto 12px;
  animation: splashCizgiAcil 0.7s cubic-bezier(0.2, 0.7, 0.3, 1) 0.35s forwards;
}
/* Ekrana gore olceklenen tek oge. Sinirlari Residence'in uzun adi belirledi:
   punto basina ~7.67px genislik, 320px ekranda kullanilabilir 280px.
   vmin (vw degil) yatay cevrimde de guvenli. */
.splash-block {
  font-size: clamp(1.95rem, 9vmin, 2.5rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.04;
  margin: 0;
}
.splash-credit {
  font-size: 0.7rem;
  color: rgba(255,248,241,0.42);
  letter-spacing: 0.04em;
  margin-top: 30px;
}
/* Giris: duz opaklik degil, 8px yukselerek. Ayni sure, belirgin sekilde daha ozenli.
   Son oge 1.7 sn'de yerlesiyor; splash 2.6 sn'de kapandigi icin nefes payi kaliyor. */
.splash-site,
.splash-block,
.splash-credit {
  opacity: 0;
  transform: translateY(8px);
  animation: splashYukselerekGel 0.7s cubic-bezier(0.2, 0.7, 0.3, 1) forwards;
}
.splash-site { animation-delay: 0.3s; }
.splash-block { animation-delay: 0.6s; }
.splash-credit { animation-delay: 1s; }
@keyframes splashYukselerekGel {to { opacity: 1; transform: translateY(0); } }
@keyframes splashCizgiAcil {to { width: 52px; } }
.hub-btn-mini {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  box-shadow: var(--shadow);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
}
/* Ustten hizali, dikey ortalamali DEGIL. Iki sebep:
   1) Baslik bloguna daha yukarida, daha ferah bir yer veriyor.
   2) Dikey ortalama + overflow tanimsizligi gercek bir hataydi: icerik ekrandan
      uzun oldugunda flex ortalama onu iki uctan birden tasiriyor ve ust kisim
      kaydirmayla bile geri getirilemiyordu (7 modulde icerigin ustu -1px'e dustu,
      tarayicida olculdu). overflow-y: auto ile tasan icerik artik kaydirilabiliyor. */
.hub {
  position: fixed;
  inset: 0;
  z-index: 150;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background: var(--bg);
  padding: 14px;
  padding-top: clamp(24px, 7vh, 64px);
  overflow-y: auto;
}
.hub[hidden] {
  display: none;
}
.guncelleme-seridi {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--accent);
  color: var(--accent-ink);
  padding: calc(10px + env(safe-area-inset-top)) 14px 10px;
  font-size: 0.85rem;
  font-weight: 700;
  box-shadow: var(--shadow-lg);
}
.guncelleme-seridi[hidden] {
  display: none;
}
.guncelleme-seridi button {
  border: none;
  background: var(--accent-ink);
  color: var(--accent);
  padding: 6px 14px;
  border-radius: 999px;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
}
.pwa-install-btn {
  margin: 0 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--accent);
  background: var(--accent);
  color: var(--accent-ink);
  padding: 10px 18px;
  border-radius: 999px;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
}
.pwa-install-btn[hidden] {
  display: none;
}
.pwa-ios-not {
  margin: -6px auto 14px;
  max-width: 280px;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--text-muted);
}
.pwa-ios-not[hidden] {
  display: none;
}
.pwa-kopyala-btn {
  margin: 0 0 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  padding: 8px 15px;
  border-radius: 999px;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.pwa-kopyala-btn[hidden] {
  display: none;
}
.hub-inner {
  text-align: center;
  width: 100%;
  max-width: 460px;
  position: relative;
}
/* Baslik tipografisi — "Ince cizgi". Tema degismiyor: renkler mevcut
   degiskenlerden geliyor, yalnizca punto, agirlik, harf arasi ve bosluk ritmi
   degisti. Ust satir uygulamanin zaten sahip oldugu tek vurgu rengine cekildi,
   yani ekranda ikinci bir renk acilmiyor. Isimdeki NEGATIF harf arasi bilerek:
   sikilasan bir baslik daha "kurumsal" okunuyor.
   Web fontu BILEREK eklenmedi — PWA'da her acilista ek istek ve ilk boyamada
   yazi tipi sicramasi demek. Sistem yazi tipi (San Francisco / Roboto) yeterli. */
.hub-site {
  font-size: 0.68rem;
  letter-spacing: 0.3em;
  text-indent: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
}
/* Ust satirla isim arasindaki kisa vurgu cizgisi. */
.hub-cizgi {
  display: block;
  width: 28px;
  height: 1px;
  background: var(--accent);
  opacity: 0.55;
  margin: 10px auto 13px;
}
.hub-block {
  font-size: 2.3rem;
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.02;
  margin: 0 0 26px;
}
/* Hub izgarasi. Iki duzen var, yonetici panelinden secilir (config/gorunum):
     A "genis uclu" — Acil Durum, Otopark ve Sosyal Tesis tam genislik satir,
                      kalanlar iki sutunlu kutucuk.
     B "tek genis"  — yalniz Acil Durum genis; Otopark ve Sosyal Tesis ikinci
                      satirda yan yana, kalanlar kutucuk.
   Hangi modulun genis olacagi JS'te HUB_A_GENIS / HUB_B_GENIS listelerinde ve
   sira KODDA sabit: sira ekranin tamamini belirledigi icin yoneticiye birakilmadi.
   Kutucuk sayisi tekse sonuncusu .yayil ile iki sutuna yayilir.
   Ayrinti ve olcumler: Hanem/tasarim/HUB.md */
.hub-buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
/* Varsayilan bicim kutucuk: simge ustte, etiket altta. */
.hub-rozet { position: absolute; top: 10px; right: 10px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--danger); color: #fff; font-size: 0.72rem; font-weight: 800; line-height: 20px; text-align: center; box-sizing: border-box; }
.hub-btn {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 96px;
  border: 1.5px solid var(--border);
  background: var(--surface);
  border-radius: 18px;
  padding: 18px 10px;
  cursor: pointer;
  box-shadow: var(--shadow);
  text-align: center;
  font: inherit;
  color: inherit;
}
/* Tam genislik satir. Sola dayali — birkac genis satir alt alta gelince
   (Acil Durum + Otopark + Sosyal Tesis) simgeler ayni dusey cizgide durup
   liste gibi okunuyor. */
/* ---- Telefon Rehberi ----
   Kart: ad + görev + numara solda tek blok, düğmeler sağda dikey ortada.
   Düğmeler YAZISIZ (ahize / WhatsApp) ve 44×44 — parmak hedefi alt sınırı.
   Sıra [WhatsApp][Ara]: Ara en sağda kalsın diye, WhatsApp'ı olmayan sabit
   hatta sütun bozulmuyor. */
.rehber-kart { background: var(--surface-2); border: 1px solid var(--border); border-radius: 14px; padding: 9px 11px; margin-bottom: 7px; }
/* row-gap 0: gap 12px hem sutunlar hem SATIRLAR arasinda calisiyordu, e-posta
   satirinin ustunde 12 px bosluk birakiyordu (Alper). Sutun araligi duruyor. */
.rehber-kart.tek { display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 0; }
/* E-posta kendi TAM GENISLIKTE satirinda: dugmelerin yanindaki dar sutunda uzun
   adres iki satira boluniyordu. Punto biraz kucuk ki 360 px'te de tek satir. */
.rehber-kart .rehber-eposta { flex: 0 0 100%; margin-top: 2px; font-size: 0.9rem; font-weight: 600; letter-spacing: 0; overflow-wrap: anywhere; }
.rehber-kart.tek .rehber-bilgi { flex: 1; min-width: 0; }
/* 5. Levent Çarşı listesi bakışta ayrılsın: sol kenarda kendi rengi. */
.rehber-kart.carsi { border-left: 4px solid #2f8f6a; }
.rehber-ad { font-size: 1rem; font-weight: 800; color: var(--text); margin: 0; }
.rehber-rol { font-size: 0.85rem; color: var(--text-muted); margin: 1px 0 0; }
.rehber-satir { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 6px; }
.rehber-no { font-size: 1.02rem; font-weight: 700; color: var(--text); letter-spacing: 0.2px; margin-top: 3px; }
.rehber-btnler { display: flex; gap: 8px; flex-shrink: 0; }
/* Dort dugme (mail + whatsapp + ara + rehbere ekle) 2x2: yan yana ad ve
   numara sutununu 114 px'e dusuruyordu, isimler uc satira boluniyordu. */
/* Dugmeler HER ZAMAN TEK SIRA (Alper). Bir ara 2x2 idi, begenilmedi.
   OLCU DUGME SAYISINA GORE DEGISMIYOR: once yalniz dort dugmeli kart
   kuculuyordu, uc dugmeli kart 44 px'te kaldigi icin boylar tutmuyordu
   (Alper: "buton boylarini esitle"). Dar ekranda hepsi birden kuculuyor —
   dort dugme 44 px'te yan yana 200 px yer kaplayip ad/numara sutununu
   114 px'e dusuruyordu. */
@media (max-width: 560px) {
  .rehber-kart .rehber-btnler { gap: 6px; }
  .rehber-kart .rehber-btn { width: 38px; height: 38px; border-radius: 10px; }
  .rehber-kart .rehber-btn svg { width: 20px; height: 20px; }
}
@media (max-width: 400px) {
  .rehber-kart .rehber-btnler { gap: 5px; }
  .rehber-kart .rehber-btn { width: 34px; height: 34px; }
  .rehber-kart .rehber-btn svg { width: 18px; height: 18px; }
}
.rehber-uyeler { margin-top: 4px; }
/* KURUL KARTLARI YAN YANA: Yonetim Kurulu solda, Denetim Kurulu sagda (Alper).
   Uyeler kartin icinde TEK sutun. Kartlar JS ile arka arkaya ekleniyor, aralarinda
   bosluk metni yok, o yuzden inline-block yeterli — sarmal gerekmiyor.
   380 px altinda alt alta: iki sutunda "Serdar Kosaovali (Baskan)" sigmiyor. */
@media (min-width: 380px) {
  .rehber-kart.kurul { display: inline-block; vertical-align: top; width: calc(50% - 4px); }
  .rehber-kart.kurul + .rehber-kart.kurul { margin-left: 8px; }
}
.rehber-btn.web svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* Birden cok web adresi: simge kucuk bir secim penceresi aciyor. */
.rehber-web-perde { z-index: 450; }
.rehber-web-liste { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.rehber-web-sec { display: flex; align-items: center; gap: 10px; padding: 12px 14px; min-height: 48px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); color: var(--text); font-size: 0.94rem; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.rehber-web-sec svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: var(--accent); }
.rehber-btn { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); color: var(--text); display: flex; align-items: center; justify-content: center; text-decoration: none; }
.rehber-btn svg { width: 24px; height: 24px; }
.rehber-btn.ara svg { fill: currentColor; stroke: none; }
.rehber-btn.wa { background: #1faa52; border-color: #1faa52; color: #fff; }
.rehber-btn.wa svg { fill: currentColor; }
.rehber-btn.duzen { font-size: 1.05rem; }
.rehber-btn.sil { color: var(--danger); }
.rehber-btn.ekle { color: var(--accent); }
.rehber-btn.ekle svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rehber-aidat { background: var(--surface-2); border: 1px solid var(--border); border-radius: 14px; padding: 12px 16px; margin: 4px 0 12px; }
/* Her satir DIKEY (Alper 2026-09-22): etiket ustte, altinda deger KUTUSU tam
   genislikte SOLA dayali + kopya dugmesi saginda. Onceki flex duzeninde deger
   saga dayaliydi ve uzun IBAN dar sutunda sigmiyordu — bu yuzden dikey kutu. */
.aidat-satir { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "lbl lbl" "val kopya"; column-gap: 8px; row-gap: 5px; align-items: stretch; padding: 10px 0; border-bottom: 1px solid var(--border); }
.aidat-satir:last-of-type { border-bottom: none; }
.aidat-lbl { grid-area: lbl; font-size: 0.8rem; color: var(--text-muted); font-weight: 700; }
.aidat-val { grid-area: val; min-width: 0; font-size: 0.92rem; font-weight: 600; text-align: left; word-break: break-word; background: var(--surface); border: 1px solid var(--border); border-radius: 9px; padding: 9px 12px; }
/* .genis markup class'i artik notr — tum satirlar dikey kutulu. */
.aidat-satir.iban .aidat-val { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.04em; font-size: 0.95rem; }
.aidat-kopya { grid-area: kopya; align-self: stretch; width: 40px; min-height: 38px; display: flex; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--border); border-radius: 9px; background: transparent; color: var(--accent); font: inherit; font-size: 1rem; font-weight: 800; line-height: 1; cursor: pointer; }
.aidat-kopya svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.aidat-kopya.ok { border-color: currentColor; }
.aidat-kopya.hata { color: var(--danger, #c62828); border-color: currentColor; }
.aidat-kopya-durum { margin: 6px 0 0; min-height: 1em; font-size: 0.8rem; font-weight: 700; color: var(--text-muted); text-align: right; }
@media (max-width: 380px) {
  .aidat-lbl { font-size: 0.74rem; }
  .aidat-val { font-size: 0.86rem; padding: 8px 10px; }
  .aidat-satir.iban .aidat-val { font-size: 0.78rem; }
  .aidat-kopya { width: 36px; }
}
.aidat-apsiyon { display: block; text-align: center; margin: 10px 0 2px; padding: 12px; border: 1px solid var(--accent); border-radius: 10px; background: transparent; color: var(--accent); font-weight: 700; font-size: 0.9rem; text-decoration: none; }
.rehber-gundem-bos { text-align: center; padding: 34px 20px; color: var(--text-muted); }
.rehber-gundem-bos .gundem-ikon { font-size: 2.4rem; margin-bottom: 8px; }
.rehber-gundem-bos h3 { margin: 0 0 6px; color: var(--text); font-size: 1.05rem; }
.rehber-gundem-bos p { margin: 0 auto; max-width: 42ch; font-size: 0.9rem; line-height: 1.55; }
/* Kapalı havuz çizelgesi (Site Rehberi'nin üçüncü bölümü). Renkler bilgiyi TEK
   BAŞINA taşımıyor: her satırda kimin girebileceği yazıyla da yazılı. */
/* Çizelge düzenleme satırı: gün adı · saat · tür. Üç sütun dar ekranda da
   sığıyor (.step-card içi 376 px: 92 + 8 + kalan + 8 + 118). */
.havuz-duzen { display: flex; flex-direction: column; gap: 8px; margin: 8px 0 4px; }
.havuz-duzen-satir { display: grid; grid-template-columns: 84px minmax(0, 1fr) 108px; gap: 8px; align-items: center; }
.havuz-duzen-gun { font-size: 0.84rem; font-weight: 700; }
/* Dar ekranda gün adı kendi satırına çıkıyor: üç sütunda saat kutusu 96 px'e
   düşüp "07.00 – 21.00" taşıyordu (390 px ekranda ölçüldü). */
@media (max-width: 430px) {
  .havuz-duzen-satir { grid-template-columns: minmax(0, 1fr) 106px; }
  .havuz-duzen-gun { grid-column: 1 / -1; }
}
.havuz-duzen-satir input, .havuz-duzen-satir select { width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.84rem; }
.havuz-baslik { font-size: 0.82rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); margin: 2px 0 10px; }
.havuz-tablo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.havuz-satir { display: flex; align-items: center; gap: 10px; padding: 10px 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface); }
.havuz-satir.bugun { border-color: var(--accent); }
.havuz-gun { flex: none; width: 88px; font-size: 0.92rem; font-weight: 700; }
.havuz-bugun { flex: none; padding: 2px 8px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font-size: 0.68rem; font-weight: 800; }
.havuz-saat { flex: 1 1 auto; min-width: 0; font-size: 0.82rem; color: var(--text-muted); }
.havuz-kim { flex: none; margin-left: auto; padding: 3px 10px; border-radius: 999px; font-size: 0.74rem; font-weight: 800; white-space: nowrap; }
@media (max-width: 400px) {
  .havuz-satir { gap: 7px; padding: 10px 10px; }
  .havuz-gun { width: 78px; font-size: 0.88rem; }
  .havuz-saat { font-size: 0.79rem; }
}
.havuz-kim.kadin { background: rgba(194,24,91,0.12); color: #b4155a; }
.havuz-kim.erkek { background: rgba(47,107,176,0.12); color: #2a63a6; }
.havuz-kim.karma { background: rgba(176,132,20,0.16); color: #7f6210; }
.havuz-kim.kapali { background: var(--danger-bg); color: var(--danger); }
:root[data-theme="dark"] .havuz-kim.kadin { background: rgba(240,139,180,0.16); color: #f3a0c1; }
:root[data-theme="dark"] .havuz-kim.erkek { background: rgba(127,178,232,0.16); color: #93bdec; }
:root[data-theme="dark"] .havuz-kim.karma { background: rgba(224,194,106,0.16); color: #e3c97c; }
.havuz-bolum-bas { font-size: 0.82rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); margin: 18px 0 8px; }
.havuz-notlar { margin: 0 0 4px; padding-left: 20px; }
.havuz-notlar li { font-size: 0.88rem; line-height: 1.5; margin-bottom: 6px; }
.havuz-kaynak { font-size: 0.78rem; line-height: 1.5; color: var(--text-muted); margin: 18px 0 0; }
.rehber-arac { display: flex; justify-content: flex-end; margin: -2px 0 8px; }
.rehber-arac button { padding: 9px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); font: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; }
.rehber-arac button.acik { border-color: var(--accent); color: var(--accent); }
.rehber-ekle { display: block; width: 100%; box-sizing: border-box; padding: 12px; border: 1px dashed var(--border); border-radius: 12px; background: transparent; color: var(--text-muted); font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; }
/* Hazir kayitlari ekleme dugmesi: birincil "+ Kayit ekle"nin altinda, daha sonik. */
.rehber-ekle.ikincil { border-style: solid; opacity: 0.85; font-size: 0.86rem; }
.rehber-grup { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.rehber-grup button { padding: 9px 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text-muted); font: inherit; font-size: 0.85rem; cursor: pointer; }
.rehber-grup button.on { border-color: var(--accent); color: var(--accent); font-weight: 600; }

/* ---- Ürün / Hizmet Tavsiyeleri ----
   Kart ve çip biçimi İnşaat Eksikleri'yle aynı dili konuşuyor ama AYRI
   sınıflar: o modülün ölçüleri değişince burası bozulmasın. */
.tav-wrap { max-width: none; margin: 0 auto; padding: 6px 20px 40px; }
.tav-ekle-btn { display: block; width: 100%; box-sizing: border-box; margin: 8px 0 16px; padding: 14px; border: none; border-radius: 12px; background: var(--accent); color: var(--accent-ink, #1c1206); font: inherit; font-weight: 700; font-size: 1rem; cursor: pointer; }
.tav-ekle-btn.ikincil { margin: 0 0 16px; background: var(--surface-2); color: var(--accent); box-shadow: inset 0 0 0 1px var(--line); }
/* İki bölüm başlığı: üstte arayanlar, altta tavsiyeler. Alttaki başlık ince
   bir çizgiyle ayrılıyor ki uzun listenin nerede başladığı belli olsun. */
.tav-bolum-bas { margin: 4px 0 10px; font-size: 1rem; font-weight: 800; color: var(--text); }
.tav-bolum-bas.ikinci { margin-top: 26px; padding-top: 16px; border-top: 1px solid var(--line); }
.tav-form-card { position: relative; max-width: 560px; }
.tav-kat { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; margin-bottom: 14px; }
.tav-kat button { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; padding: 10px 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.76rem; cursor: pointer; }
.tav-kat button .ic { font-size: 20px; }
.tav-kat button.on { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.tav-suz { display: flex; gap: 8px; margin: 6px 0 12px; flex-wrap: wrap; }
.tav-suz button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text-muted); font: inherit; font-size: 0.85rem; cursor: pointer; }
.tav-suz button.on { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.tav-grup { margin: 18px 0 8px; font-size: 0.95rem; font-weight: 800; color: var(--text); }
.tav-kart { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 13px 15px; margin-bottom: 10px; }
/* Rozetler sag ustte ve FLOAT: sabit sutun olunca basligin altinda rozet
   yuksekligince bosluk kaliyordu. Float'la aciklama, dugmeler ve alt satir
   rozetlerin altina akip o boslugu dolduruyor. flow-root float'i kartin
   icinde tutuyor; .alt ve .yon clear ile her zaman altta basliyor. */
.tav-kart { display: flow-root; }
.tav-kart .ad { font-weight: 700; font-size: 1.02rem; color: var(--text); overflow-wrap: anywhere; }
.tav-kart .rozetler { float: right; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; max-width: 45%; margin: 0 0 6px 10px; }
/* Iletisim dugmeleri YALNIZ SIMGE — rehber ve carsi kartlariyla ayni dil. */
.simge-iletisim { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.simge-btn { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); text-decoration: none; cursor: pointer; }
.simge-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.simge-btn.ara svg { fill: currentColor; stroke: none; }
.simge-btn.wa { color: #1faa52; border-color: rgba(31,170,82,.4); }
.simge-btn.wa svg { fill: currentColor; stroke: none; }
.tav-kart .rz { font-size: 0.74rem; font-weight: 600; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text-muted); }
.tav-kart .rz.kendi { color: var(--accent); border-color: var(--accent); background: transparent; font-weight: 700; }
.tav-kart .aciklama { margin-top: 9px; font-size: 0.92rem; color: var(--text); white-space: pre-wrap; }
.tav-kart .alt { clear: both; display: flex; justify-content: space-between; gap: 10px; margin-top: 10px; font-size: 0.78rem; color: var(--text-muted); flex-wrap: wrap; }
.tav-kart .yon { clear: both; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.tav-kart .yon button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.82rem; cursor: pointer; }
.tav-kart .yon button.sil { color: var(--danger); }
.tav-kart .yon button.oneri { border-color: var(--accent); color: var(--accent); font-weight: 700; }
.tav-kart .tav-satir { margin-top: 8px; font-size: 0.9rem; color: var(--text); }
.tav-link { color: var(--accent); text-decoration: none; word-break: break-all; }
.tav-kart .tav-foto-satir { margin-top: 10px; }
.tav-kart .tav-foto-btn { padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.84rem; cursor: pointer; }
.tav-kart .tav-foto { margin-top: 10px; color: var(--text-muted); font-size: 0.82rem; }
.tav-kart .tav-foto img { width: 100%; border-radius: 10px; border: 1px solid var(--line); display: block; }
.tav-wa { display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 8px; background: #1faa52; color: #fff; font-size: 0.82rem; font-weight: 600; text-decoration: none; }
.tav-form-not { background: var(--surface-2); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: 0.88rem; color: var(--text); margin: 0 0 14px; }
.tav-foto-ekle { display: block; width: 100%; box-sizing: border-box; text-align: center; padding: 12px 14px; border: 1px dashed var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font-weight: 600; font-size: 0.9rem; cursor: pointer; margin-bottom: 14px; }
.tav-foto-onizleme { display: flex; gap: 8px; margin: -6px 0 14px; }
.tav-foto-onizleme .th { position: relative; width: 84px; height: 84px; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); }
.tav-foto-onizleme .th img { width: 100%; height: 100%; object-fit: cover; }
.tav-foto-onizleme .th button { position: absolute; top: 2px; right: 2px; width: 22px; height: 22px; border: none; border-radius: 50%; background: rgba(0, 0, 0, .6); color: #fff; font-size: 12px; line-height: 1; cursor: pointer; padding: 0; }

/* Alt menü gövdesi: hub'ın düğme ızgarası modül kabuğunun içinde kullanılıyor
   (Yardımlaşma gibi bir hub düğmesi iki işe açılıyorsa araya bu ekran giriyor). */
.alt-hub-govde { max-width: 640px; margin: 0 auto; padding: 10px 20px 40px; }
.alt-hub-not { color: var(--text-muted); font-size: 0.9rem; line-height: 1.5; margin: 0 0 14px; }
.hub-yazi { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.hub-btn .hub-alt { font-size: 0.78rem; font-weight: 400; color: var(--text-muted); margin-top: 3px; text-align: left; }
/* İki satıra inen uzun etiket (Ürün / Hizmet Tavsiyeleri) ızgara satırını
   yükseltiyordu: kutucuk 96 → 112 px, yanındaki kutucuk da onunla uzuyordu.
   İç boşluk ve punto kısılınca satır diğerleriyle birebir kalıyor (ölçüldü). */
.hub-btn.iki-satir { padding: 12px 8px; gap: 6px; }
.hub-btn.iki-satir .hub-lb { font-size: 0.84rem; line-height: 1.2; }
.hub-btn.genis {
  grid-column: span 2;
  flex-direction: row;
  justify-content: flex-start;
  gap: 16px;
  min-height: 0;
  padding: 20px 22px;
  text-align: left;
}
/* Tek basina duran genis dugme ORTALI: altindaki kutucuklar ortali oldugu
   icin yalniz kalan satirin sola yaslanmasi hizasiz duruyordu. Sinifi JS
   veriyor (bkz. hubDuzeniUygula). */
.hub-btn.genis.tek {
  justify-content: center;
  text-align: center;
}
/* Tek kalan kutucuk iki sutuna yayilir ama kutucuk bicimini korur.
   Bu CSS :nth-child ile YAPILAMIYOR: o tum cocuklari sayar, oysa onemli olan
   KUTUCUK sayisinin tekligi. Genis dugme varken ikisi ortusmuyor ve kural yanlis
   atesliyor (B duzeninde 7 modulde olculdu). Sinifi JS veriyor. */
.hub-btn.yayil {
  grid-column: span 2;
}
.hub-ic {
  font-size: 1.7rem;
  line-height: 1;
  flex: none;
}
.hub-lb {
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.25;
}
.hub-btn.genis .hub-ic {
  font-size: 1.8rem;
}
.hub-btn.genis .hub-lb {
  font-size: 1.1rem;
}
.hub-footer {
  margin-top: 28px;
  text-align: center;
}
/* EKRAN YÜKSEKLİĞİNE GÖRE SIKILAŞMA — ana ekran sabit ölçülerle çiziliyordu:
   430×932'de her şey sığıyor ama 375×667'de 157 px, 360×640'ta 183 px taşıyor
   ve sakin araç şeridini görmek için kaydırmak zorunda kalıyordu (ölçüldü,
   2026-09-19). Ölçüler YALNIZ kısa ekranlarda küçülüyor; uzun telefonda
   görünüm birebir aynı kalıyor. Dokunma hedefi hiçbir kademede 44 px'in
   altına inmiyor, etiket 0.86 rem'in altına düşmüyor. */
@media (max-height: 870px) {
  .hub { padding-top: clamp(18px, 4.5vh, 40px); }
  .hub-block { font-size: 2.05rem; margin-bottom: 18px; }
  .hub-buttons { gap: 10px; }
  .hub-btn { min-height: 82px; padding: 13px 10px; gap: 8px; }
  .hub-btn.genis { padding: 14px 20px; }
  .hub-selam { margin-bottom: 14px; }
  .hub-footer { margin-top: 18px; }
}
@media (max-height: 760px) {
  .hub-cizgi { margin: 8px auto 10px; }
  .hub-block { font-size: 1.9rem; margin-bottom: 13px; }
  .hub-selam { margin-bottom: 11px; }
  .hub-buttons { gap: 8px; }
  .hub-btn { min-height: 74px; padding: 11px 10px; gap: 6px; }
  .hub-btn.genis { padding: 12px 18px; }
  .hub-ic { font-size: 1.55rem; }
  .hub-araclar { gap: 14px; }
  .hub-footer { margin-top: 12px; }
}
@media (max-height: 690px) {
  .hub { padding-top: 14px; }
  .hub-block { font-size: 1.78rem; margin-bottom: 8px; }
  .hub-selam { margin-bottom: 9px; }
  .hub-buttons { gap: 7px; }
  .hub-btn { min-height: 64px; padding: 9px 8px; gap: 5px; }
  .hub-btn.genis { padding: 11px 16px; }
  .hub-ic { font-size: 1.48rem; }
  .hub-lb { font-size: 0.88rem; }
  .hub-btn.genis .hub-ic { font-size: 1.56rem; }
  .hub-btn.genis .hub-lb { font-size: 1.02rem; }
  .hub-araclar { gap: 13px; }
  .hub-footer { margin-top: 7px; }
}
/* En küçük ekranlar (360×640 ve altı): bir kademe daha. */
@media (max-height: 650px) {
  .hub { padding-top: 8px; }
  .hub-block { font-size: 1.6rem; margin-bottom: 7px; }
  .hub-buttons { gap: 6px; }
  .hub-btn { min-height: 56px; padding: 7px 8px; gap: 4px; }
  .hub-btn.genis { padding: 11px 15px; }
  .hub-ic { font-size: 1.4rem; }
  .hub-lb { font-size: 0.86rem; }
  .hub-araclar { gap: 11px; }
  .hub-footer { margin-top: 6px; }
}
/* Arac simgeleri kendi satirinda, ortali ve aralikli. Imza satirinin yanindan
   alindi: orada hem sikisiktilar hem de yaziyla ayni gorunup dugme olduklari
   anlasilmiyordu. */
.hub-araclar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-bottom: 4px;
}
.hub-credit {
  margin-top: 14px;
  font-size: 0.72rem;
  color: var(--text-muted);
}
.hub-contact-btn {
  margin-top: 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  padding: 9px 16px;
  border-radius: 999px;
  font: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}
.admin-trigger {
  border: none;
  background: transparent;
  color: var(--text-muted);
  opacity: 0.75;
  font-size: 0.95rem;
  cursor: pointer;
  padding: 10px;
  margin: -10px;
  vertical-align: middle;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
}
.admin-trigger:hover {
  opacity: 1;
}
/* Modül başlıklarındaki ✉/↻ butonları kaldırıldı (işlevleri ana hub altlığında). */
.contact-btn, .yenile-btn { display: none !important; }
/* Hub altlığı butonları yuvarlak ikon (modül ✉/↻ şekliyle aynı). */
.hub-araclar .admin-trigger {
  border: 1px solid var(--border);
  background: var(--surface);
  box-shadow: var(--shadow);
  opacity: 1;
  width: 40px; height: 40px;
  min-width: 40px; min-height: 40px;
  padding: 0; margin: 0;
  border-radius: 50%;
}
.hub-araclar .admin-trigger:hover { border-color: var(--accent); color: var(--accent); opacity: 1; }
.hub-dil-kod { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.02em; }
.hub-dil-bayrak { font-size: 1.15rem; line-height: 1; }
#hubDilBtn { padding: 0; overflow: hidden; position: relative; }
.hub-dil-bayrak { position: absolute; inset: 0; border-radius: 50%; overflow: hidden; display: block; }
#hubDilBtn svg { width: 100% !important; height: 100% !important; display: block; }
.dil-sec { display: flex; align-items: center; gap: 11px; text-align: left; justify-content: flex-start; }
.dil-bayrak { display: inline-flex; flex: none; }
.dil-bayrak svg { width: 28px; height: 21px; border-radius: 3px; display: block; box-shadow: 0 0 0 1px rgba(0,0,0,.14); object-fit: cover; }
.dil-tik { margin-inline-start: auto; }
.dil-sec { margin: 6px 0; }
.dil-sec:not(.secili) { background: var(--surface-2); color: var(--text); box-shadow: inset 0 0 0 1px var(--border); }
/* Yenile dugmesi. Ana ekrana kurulu uygulamada adres cubugu — dolayisiyla
   tarayicinin yenile dugmesi — yok; bu onun yerini tutuyor. Modul
   basliklarinda ✉ ile ayni olcude; hub altliginda ⚙ ile yan yana durdugu
   icin orada .admin-trigger bicimini kullaniyor. */
.yenile-btn {
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font: inherit;
  font-size: 1rem;
  line-height: 1;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow);
  flex: none;
}
.yenile-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.donuyor {
  animation: yenileDonuyor 0.8s linear infinite;
}
@keyframes yenileDonuyor {
  to { transform: rotate(360deg); }
}
.phone-bubble {
  color: var(--danger);
  background: var(--danger-bg);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 0.74rem;
  font-weight: 600;
  margin: -8px 0 10px;
  line-height: 1.3;
}
.phone-bubble[hidden] {
  display: none;
}
.stats-list {
  display: flex;
  flex-direction: column;
}
.stats-group-title {
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  margin: 14px 0 6px;
}
.stats-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--line-dim);
}
.stats-item .lbl {
  font-size: 0.84rem;
  color: var(--text);
  line-height: 1.4;
}
.stats-item .val {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  flex: none;
}
/* Değiştir/ekle/sil modül başlıklarından KALDIRILDI — Bilgilerim ekranına taşındı. */
.me-actions { display: none !important; }
/* Bilgilerim ekranındaki değiştir/ekle/sil: satıra EŞİT genişlikte yayılıyor ve
   hap düğmelerin küçük ölçüsü yerine dokunması kolay bir yükseklik alıyor (Alper). */
.me-actions-profil { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.me-actions-profil > button { width: 100%; padding: 11px 8px; font-size: 0.82rem; font-weight: 800; }
.profil-daire-bolum { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border); }
.profil-daire-bas { font-size: 0.82rem; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.03em; margin-bottom: 10px; }
.profil-daire-sat { padding: 10px 12px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 8px; }
.profil-daire-ad { font-weight: 700; font-size: 0.92rem; }
.profil-daire-oto { font-size: 0.82rem; color: var(--text-muted); margin-top: 2px; }
/* 456: daire tipi rozeti (1+1, 2+1…) */
.profil-daire-tip { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 0.78rem; font-weight: 700; background: rgba(127,127,127,0.16); color: inherit; vertical-align: 1px; }
.profil-daire-bos { font-size: 0.86rem; color: var(--text-muted); padding: 4px 0 8px; }

.stats-group-title:first-child {
  margin-top: 0;
}
.stats-item:last-child {
  border-bottom: none;
}
.stats-item .lbl {
  font-size: 0.84rem;
  color: var(--text);
  line-height: 1.4;
}
.stats-item .val {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  flex: none;
}
.admin-card {
  max-width: 640px;
  /* Ust dolgu 0: sticky .admin-nav'in ustunde acik serit kalmasin, liste
     satirlari kaydirilirken oradan sizmasin. Baslik kendi dolgusunu tasiyor. */
  padding-top: 0;
}
.admin-card > h2 {
  padding-top: 22px;
}
/* Masaustunde panel daha genis: tablolar ve alt listeler rahat okunsun.
   min-width sorgusu — telefonda (dar ekran) 640px'te, yani zaten tam
   genislikte kaliyor; yalnizca genis ekran etkileniyor. */
@media (min-width: 760px) {
  .admin-card {
    max-width: min(1080px, 94vw);
  }
}
.admin-logout {
  display: block;
  width: 100%;
  margin-top: 16px;
  padding: 12px 16px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: var(--surface-2);
  color: var(--text);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 800;
  cursor: pointer;
}
.admin-logout:hover {
  border-color: var(--accent);
  color: var(--accent);
}
/* 430: yönetici modu düğmesi panel başlığının hemen altında; mod kapalıyken vurgulu "Yönetici modu". */
.admin-logout.admin-mod { margin: 4px 0 14px; }
/* 433: üye kartı → Paylaşımları tablosu (Tarih | Tür | Ayrıntı). */
.uye-paylasim-tablo { width: 100%; border-collapse: collapse; font-size: 0.9rem; margin-top: 8px; }
.uye-paylasim-tablo th { text-align: left; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); padding: 6px 8px; border-bottom: 1px solid var(--border); }
.uye-paylasim-tablo td { padding: 8px; border-bottom: 1px solid var(--border); vertical-align: top; }
.uye-paylasim-tablo td.tarih { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--text-muted); }
.uye-paylasim-tablo td:nth-child(2) { white-space: nowrap; font-weight: 700; }
.admin-logout.admin-mod.kapali { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
/* Her bölüm ayrı bir KART (2026-08-28, Alper: "bölümleri kart yap"). Modal
   zemini --surface; kartlar bir ton açık --surface-2 ile ayrışıyor, iç liste
   satırları da --surface ile kart içinde kontrast yapıyor. */
.admin-section {
  margin-bottom: 9px;
  padding: 10px 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 14px;
}
.admin-section:last-of-type {
  margin-bottom: 0;
}
.admin-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
.admin-section-head .admin-section-title {
  margin-bottom: 0;
}
.admin-say {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--text-muted);
  min-width: 16px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  margin-right: 2px;
}
/* Onay bekleyen gibi dikkat isteyen sayı: aynı sütunda, kırmızı. */
.admin-say-uyari { color: var(--danger); }
.admin-icon-row {
  display: flex;
  align-items: center;
  gap: 2px;
}
.admin-icon {
  border: none;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 8px;
  border-radius: 9px;
}
.admin-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.admin-icon:hover {
  color: var(--text);
  background: var(--surface-2);
}
.admin-icon.is-on {
  color: var(--accent);
}
.admin-pw-table .pw-val {
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--text);
  white-space: nowrap;
}
.admin-pw-table .pw-act {
  width: 1%;
  text-align: right;
  white-space: nowrap;
}
.admin-pw-table input {
  width: 100%;
  min-width: 110px;
}
.admin-section-title {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
}
.admin-hint {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin: 0 0 10px;
  line-height: 1.4;
}
.admin-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 4px;
}
.admin-btn-danger {
  color: var(--danger);
  border-color: var(--danger);
  background: var(--danger-bg);
  width: 100%;
  margin-bottom: 8px;
  text-align: left;
}
.admin-status {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-top: 6px;
  min-height: 1em;
}
.admin-sub {
  margin: 4px 0;
  border-top: 1px solid var(--line-dim);
}
/* Bolumun ilkinde ust cizgi olmaz — basliktan hemen sonra gereksiz. */
.admin-sub:first-of-type {
  border-top: none;
}
.admin-sub-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  color: var(--text);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  text-align: left;
  padding: 9px 0;
  cursor: pointer;
}
.admin-sub-toggle .chev {
  margin-left: auto;
  width: 16px;
  height: 16px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 0.15s;
}
.admin-sub-toggle[aria-expanded="true"] .chev {
  transform: rotate(180deg);
}
.admin-sub-toggle:hover {
  color: var(--accent);
}
.admin-sub-title {
  font-size: 0.8rem;
  font-weight: 700;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.admin-count {
  font-size: 0.68rem;
  font-weight: 800;
  color: var(--text-muted);
  background: var(--surface-2);
  border-radius: 999px;
  padding: 1px 8px;
  font-variant-numeric: tabular-nums;
}
/* (4) Alt bölüm sayaçları satırın SAĞINDA tek hizada (chevron'dan hemen önce). */
.admin-sub-toggle .admin-count {
  margin-left: auto;
}
/* Sayac tum bos alani alsin ki sag kenarlari hizalansin; chevron sabit 6px
   sonra. Yalnizca sayac VARSA — yoksa chevron kendi auto'suyla saga gider. */
.admin-sub-toggle:has(.admin-count) .chev {
  margin-left: 6px;
}

/* (3) Şifreler: masaüstünde iki şifre YAN YANA, mobilde alt alta. Tablo markup'ı
   korunuyor (JS tr[data-pw]/.pw-val/.pw-act'e bağlı); yalnızca görüntü ızgaraya
   çevriliyor. index.html'deki .admin-pw-table td dolgusunu ezmek için !important. */
@media (min-width: 620px) {
  .admin-pw-table {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    width: 100%;
  }
  .admin-pw-table tbody { display: contents; }
  .admin-pw-table tr {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 4px 8px;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 9px 11px;
    background: var(--surface);
  }
  .admin-pw-table td {
    border: none !important;
    padding: 0 !important;
  }
  .admin-pw-table td:first-child {
    grid-column: 1 / -1;
    font-size: 0.82rem;
    color: var(--text-muted);
    font-weight: 700;
  }
  .admin-pw-table .pw-val { justify-self: start; }
  .admin-pw-table .pw-act { justify-self: end; width: auto; }
}
.admin-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.admin-list-empty {
  font-size: 0.78rem;
  color: var(--text-muted);
  font-style: italic;
  padding: 4px 0;
}
.admin-list-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 10px;
  padding: 9px 12px;
}
.admin-list-row .info {
  font-size: 0.8rem;
  line-height: 1.45;
}
.admin-list-row .info b {
  font-weight: 700;
}
.admin-list-row .info .muted {
  color: var(--text-muted);
}
.admin-list-row button {
  flex: none;
  border: 1.5px solid var(--danger);
  color: var(--danger);
  background: var(--danger-bg);
  border-radius: 8px;
  padding: 6px 10px;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
}
.hub-selam { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; margin: 2px 0 18px; }
.hub-selam-merhaba { font-size: 0.82rem; color: var(--text-muted); }
.hub-selam-isim { font-size: 1.08rem; font-weight: 700; color: var(--text); line-height: 1.2; }
.hub-kullanici-btn { border: 1px solid var(--border); background: var(--surface); color: var(--text-muted); font: inherit; font-size: 0.82rem; font-weight: 600; padding: 8px 14px; border-radius: 999px; cursor: pointer; white-space: nowrap; }
.hub-kullanici-btn:hover { color: var(--text); }
.kullanici-secim { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; text-align: left; border: 1px solid var(--border); border-radius: 11px; background: var(--surface); color: var(--text); padding: 11px 13px; margin-bottom: 8px; cursor: pointer; position: relative; }
.kullanici-secim.aktif { border-color: var(--accent); }
.kullanici-ad { font-weight: 700; font-size: 0.96rem; }
.kullanici-tel { font-size: 0.84rem; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.kullanici-aktif { position: absolute; top: 11px; right: 13px; font-size: 0.72rem; font-weight: 700; color: var(--accent); }
/* Sütun seçici (Üyeler + Misafirler): HER genişlikte görünür. Varsayılanı JS
   ekrana göre kuruyor — dar ekranda ek sütunlar kapalı, geniş ekranda açık.
   Gizleme tablodaki "gizle-<kol>" sınıfıyla. */
.admin-uyeler-toggle { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.admin-uyeler-tgl { flex: 0 0 auto; min-width: 0; border: 1px solid var(--border); background: var(--surface); color: var(--text-muted); font: inherit; font-size: 0.76rem; font-weight: 600; padding: 7px 12px; border-radius: 8px; cursor: pointer; white-space: nowrap; }
.admin-uyeler-tgl.acik { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
@media (min-width: 641px) {
  .admin-uyeler-tgl { flex: 0 0 auto; padding: 6px 14px; }
}
/* Üyeler: 1 Daire · 2 Ad · 3 Telefon · 4 E-posta · 5 Doğum · 6 Meslek · 7 T.C. · 8 Otopark · 9 Plaka
   Misafirler: 1 Yanıt · 2 Rıza · 3 Doğum · 4 Ad · 5 Telefon · 6 Davet eden · 7 işlem */
.admin-uyeler.gizle-oto th:nth-child(8), .admin-uyeler.gizle-oto td:nth-child(8),
.admin-uyeler.gizle-dogum th:nth-child(5), .admin-uyeler.gizle-dogum td:nth-child(5),
.admin-uyeler.gizle-tel th:nth-child(3), .admin-uyeler.gizle-tel td:nth-child(3),
.admin-uyeler.gizle-eposta th:nth-child(4), .admin-uyeler.gizle-eposta td:nth-child(4),
.admin-uyeler.gizle-meslek th:nth-child(6), .admin-uyeler.gizle-meslek td:nth-child(6),
.admin-uyeler.gizle-tc th:nth-child(7), .admin-uyeler.gizle-tc td:nth-child(7),
.admin-uyeler.gizle-plaka th:nth-child(9), .admin-uyeler.gizle-plaka td:nth-child(9),
.admin-uyeler.gizle-uyelik th:nth-child(10), .admin-uyeler.gizle-uyelik td:nth-child(10),
.admin-uyeler.gizle-songiris th:nth-child(11), .admin-uyeler.gizle-songiris td:nth-child(11),
.admin-uyeler.gizle-tip th:nth-child(12), .admin-uyeler.gizle-tip td:nth-child(12),
.admin-misafirler.gizle-dogum th:nth-child(3), .admin-misafirler.gizle-dogum td:nth-child(3),
.admin-misafirler.gizle-tel th:nth-child(5), .admin-misafirler.gizle-tel td:nth-child(5),
.admin-misafirler.gizle-davet th:nth-child(6), .admin-misafirler.gizle-davet td:nth-child(6) { display: none; }
/* E-posta, meslek ve ad satır kaydırsın; tabloyu yatayda şişirmesin (uzun meslek:
   "… Yönetim Kurulu Başkanı"). E-posta adresin içinde de bölünebilir. */
.admin-uyeler td:nth-child(6) { white-space: normal; }
@media (min-width: 641px) { .admin-uyeler td:nth-child(2) { white-space: normal; } }   /* ad telefonda tek satır kalsın */
.admin-uyeler td:nth-child(4) { white-space: normal; overflow-wrap: anywhere; min-width: 150px; }
.admin-uyeler td:nth-child(6) { min-width: 110px; }
/* 423: Üyelik sütunu — son 7 günde katılanlar vurgulu (yeni üyeleri izlemek için). */
.admin-uyeler td.uyelik-td { white-space: nowrap; font-variant-numeric: tabular-nums; }
.admin-uyeler td.uyelik-td.yeni { color: var(--accent); font-weight: 700; }
.admin-uyeler td.uyelik-td.hesapsiz { color: var(--text-muted); font-style: italic; }
/* 434: Bilgilerim'de yöneticinin yetki satırı. */
.profil-yetki { display: flex; flex-direction: column; gap: 2px; margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: var(--surface-2); border: 1px solid var(--accent); font-size: 0.9rem; }
.profil-yetki span { color: var(--text-muted); font-size: 0.82rem; }
/* Geniş ekranda panel biraz daha geniş: 8 sütunlu üye tablosu sığsın (1366px: taşma 0). */
@media (min-width: 1200px) { .admin-card { max-width: min(1280px, 94vw); } }
.admin-table-wrap {
  overflow-x: auto;
  margin-top: 10px;
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.admin-table th, .admin-table td {
  text-align: left;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line-dim);
  white-space: nowrap;
}
.admin-pw-table .admin-icon {
  min-width: 34px;
  min-height: 34px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--surface-2);
}
.admin-pw-table .admin-icon svg {
  width: 17px;
  height: 17px;
}

/* ARAYUZ SIMGELERI TEK DILDE
   Denetim dugmelerindeki simgeler artik emoji degil: 24 birimlik kutuya
   cizilmis, dolgusuz, currentColor ile boyanan ince cizgiler — yonetici
   panelindeki kalem/onay/carpi simgeleriyle ayni dil. Emoji birakilmisti ve
   isletim sistemi onlari kendi renkli, parlak bicimiyle ciziyordu; yanindaki
   sade geri okuyla yan yana durunca iki ayri tasarimdan gelmis gibi
   goruniyordu (2026-08-24, ekran goruntusuyle tespit edildi).
   Buyuk modul dugmelerindeki 🚨/🅿️, durum dugmelerindeki 🟢/🔴 ve cumle
   icindeki simgeler bilerek emoji kaldi: onlar denetim degil, isaret. */
.hub-btn-mini svg,
.contact-btn svg,
.yenile-btn svg,
.admin-trigger svg,
.step-close svg,
.step-geri svg,
.pwa-install-btn svg,
.pwa-kopyala-btn svg,
.chip-list button .ic svg,
.admin-table td button svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
  display: block;
  width: 18px;
  height: 18px;
}
.step-close svg,
.step-geri svg {
  width: 20px;
  height: 20px;
}
.admin-table td button svg {
  width: 15px;
  height: 15px;
}
.chip-list button .ic {
  display: inline-flex;
  align-items: center;
}
@media (prefers-reduced-motion: reduce) {
  .donuyor {
    animation: none;
  }
  .pin-shake {
    animation: none;
  }
  .splash-site, .splash-block, .splash-credit {
    animation: none;
    opacity: 1;
    transform: none;
  }
  /* Hareketi kapatan kullanici cizgiyi dogrudan acilmis gorur. */
  .splash-cizgi {
    animation: none;
    width: 52px;
  }
}

/* Yonetici panelindeki aciklama notu (ornek: "Otopark — dikkat" bolumu).
   Yeni sinif; ucunde de kullanilmayan bir ad oldugu icin kaskad catismasi yok. */
.admin-list-note {
  margin-top: 10px;
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--text-muted);
}

/* Kayit formundaki acik riza satiri. Kutu ile metin ust hizada dursun diye
   flex; metin iki satira tasabiliyor. Yeni bir sinif — mevcut hicbir kuralla
   ozgulluk cakismasi yok. */
.riza-satir {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 14px 0 6px;
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
  color: var(--text-muted);
  cursor: pointer;
}
.riza-satir input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: var(--accent);
  cursor: pointer;
}
.riza-satir a { color: var(--accent); }

/* Riza perdesi artik SOLA YASLI (360, Alper) — diger adim kartlariyla ayni.
   Kapatma dugmesi olmadigi icin etiket ve baslik sag bosluk birakmiyor:
   "Kişisel verileriniz hakkında" tek satira sigsin. */
#rizaBackdrop .step-tag,
#rizaBackdrop .step-card h2 {
  padding-right: 0;
}

/* Riza kutugu aramasi. Panelde baska serbest metin girisi yok, o yuzden
   kendi kurali var. */
.riza-ara {
  width: 100%;
  margin: 0 0 10px;
  padding: 9px 12px;
  font: inherit;
  font-size: 14px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.riza-ara:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

/* ---- Yonetici paneli gezinmesi: grup dugmeleri + arama ----
   Bolum sayisi arttikca (otopark, acil, komsu panosu, spor, riza, saklama…)
   tek uzun sutun okunamaz hale geldi. Serit KARTIN UST DOLGUSUNU iki yandan
   tasarak yapisiyor; .step-card zaten overflow-y:auto oldugu icin sticky
   burada calisiyor. Kapat dugmesi seridin ustunde kalsin diye z-index aldi.
   Yeni sinif adlari — mevcut hicbir kuralla ozgulluk cakismasi yok. */
/* Suzgec bolumu [hidden] ile gizliyor. Kural acikca yaziliyor: projede
   .step-backdrop[hidden] icin de ayni sey gerekmisti — bir gorunum kurali
   UA varsayilanini ezerse bolum gizlenmis gorunmez, filtre sessizce olur. */
.admin-section[hidden] {
  display: none;
}
.admin-nav {
  position: sticky;
  top: 0;
  z-index: 2;
  /* margin-top 0: sticky yapisip yapistiginda ustunde bosluk kalmasin.
     Kartin ust dolgusu 0'a alindi, bosluk basliga tasindi (asagi bak). */
  margin: 0 -22px 14px;
  padding: 10px 22px 12px;
  background: var(--surface);
  border-bottom: 1px solid var(--line-dim);
}
.admin-card .step-close {
  z-index: 4;
}
/* Dort dugme YAN YANA SIGMALI: 375px ekranda esnek dizilimde "Ayarlar"
   cerceveden tasip yatay kaydirmaya dusuyordu ve gorunmuyordu (olculdu).
   Esit dort sutunlu izgara bunu bastan cozuyor. */
.admin-nav-grup {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
  margin-bottom: 10px;
}
.admin-detay-bar[hidden] {
  display: none;
}
/* İşlem kütüğü: yönetici/sakin filtresi + satır rozeti. Yeni sınıflar. */
.kutuk-filtre {
  display: flex;
  gap: 6px;
  margin: 4px 0 8px;
}
.kutuk-filtre-btn {
  flex: 1;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  font: inherit;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 7px 6px;
  border-radius: 8px;
  cursor: pointer;
}
.kutuk-filtre-btn.secili {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accent-ink);
}
.kutuk-tur-sec {
  width: 100%;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  padding: 8px 10px;
  border-radius: 8px;
  margin: 0 0 8px;
  cursor: pointer;
}
.kutuk-rozet {
  font-size: 0.62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 1px 7px;
  border-radius: 999px;
  margin-left: 7px;
  vertical-align: middle;
  white-space: nowrap;
}
.kutuk-rozet.yonetici { background: var(--danger-bg); color: var(--danger); }
.kutuk-rozet.sakin { background: var(--available-bg); color: var(--available); }
.admin-detay-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.admin-geri {
  border: 1px solid var(--border);
  background: var(--surface-2);
  color: var(--text);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  flex: none;
}
.admin-geri:hover { border-color: var(--accent); color: var(--accent); }
.admin-detay-baslik {
  font-size: 1.02rem;
  font-weight: 800;
}
.admin-nav-btn {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 9px 3px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-2);
  color: var(--text-muted);
  font: inherit;
  font-size: 0.68rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.admin-nav-btn .ni { font-size: 1.15rem; line-height: 1; }
.admin-nav-btn.secili {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--accent-ink);
}
.admin-ara {
  width: 100%;
  padding: 9px 12px;
  font: inherit;
  font-size: 16px;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.admin-ara:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
.admin-nav-bos {
  font-size: 0.78rem;
  color: var(--text-muted);
  font-style: italic;
  margin-top: 8px;
}

/* Ozet seridi (dashboard): dikkat isteyen sayilar, tiklanabilir kutular. */
.admin-ozet {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
.admin-ozet-kutu {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 9px 3px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
  color: var(--text);
  font: inherit;
  cursor: pointer;
  text-align: center;
}
.admin-ozet-kutu:hover {
  border-color: var(--accent);
}
.admin-ozet-kutu .s {
  font-size: 1rem;
  line-height: 1;
}
.admin-ozet-kutu .n {
  font-size: 1.1rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.admin-ozet-kutu .l {
  font-size: 0.58rem;
  font-weight: 700;
  color: var(--text-muted);
  line-height: 1.2;
}
.admin-ozet-kutu.uyari {
  border-color: var(--danger-border);
  background: var(--danger-bg);
}
.admin-ozet-kutu.uyari .n {
  color: var(--danger);
}
.admin-ozet-kutu.warn { border-color: var(--accent); }
.admin-ozet-kutu.warn .n { color: var(--accent); }

/* Emniyet: tehlikeli dugmeler (toplu silme, sifirlama) yalnizca DUZENLEME
   MODU acikken gorunur. Panel her acilista salt-okunur baslar. */
.admin-mod-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface-2);
  color: var(--text-muted);
  font: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}
.admin-card.duzenleme .admin-mod-toggle {
  border-color: var(--danger-border);
  background: var(--danger-bg);
  color: var(--danger);
}

/* KVKK / veri sagligi satirlari: metrik solda, deger sagda; uyari kirmizi. */
.admin-list-row .admin-saglik-deger {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--text);
  flex: none;
}
.admin-list-row.uyari {
  border-color: var(--danger-border);
  background: var(--danger-bg);
}
.admin-list-row.uyari .admin-saglik-deger {
  color: var(--danger);
}

/* Komsu panosu tur suzgeci (kesinti / kargo / ihtiyac). */
.admin-filtre {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 8px;
}
.admin-filtre-btn {
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--text-muted);
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
}
.admin-filtre-btn.secili {
  border-color: var(--accent);
  color: var(--accent);
}

/* Kayit formundaki ad+telefon kapsayicisi. Form yalnizca iOS/Android otomatik
   doldurmasinin iki alani BIRLIKTE gorebilmesi icin var; display:contents ile
   hicbir kutu uretmiyor, yani duzen form eklenmemis gibi kaliyor. */
.iletisim-form { display: contents; }


/* Daire haritası (yönetici paneli) — yeni sınıflar, özgüllük çakışması yok */
.harita-blok-satir { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.harita-blok { flex: 1 1 auto; min-width: 58px; display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 7px 6px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); color: var(--text); cursor: pointer; }
.harita-blok.secili { border-color: var(--accent); background: var(--surface-2); }
.harita-blok b { font-size: 0.95rem; }
.harita-blok span { color: var(--text-muted); font-size: 0.72rem; }
.harita-lejant { display: flex; flex-wrap: wrap; gap: 12px; margin: 2px 0 12px; font-size: 0.78rem; color: var(--text-muted); }
.harita-lejant span { display: inline-flex; align-items: center; gap: 5px; }
.harita-nokta { width: 12px; height: 12px; border-radius: 4px; display: inline-block; }
.harita-nokta.tam { background: var(--available); }
.harita-nokta.eksik { background: var(--danger); }
.harita-nokta.kayitsiz { background: var(--surface-2); border: 1px solid var(--border); }
.harita-kat { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 5px; }
.harita-kat-et { flex: 0 0 auto; width: 46px; text-align: right; font-size: 0.72rem; color: var(--text-muted); padding-top: 8px; position: sticky; left: 0; background: var(--surface-2); z-index: 1; }
.harita-grid { overflow-x: auto; padding-bottom: 2px; }
.harita-hucreler { display: flex; flex-wrap: nowrap; gap: 5px; }
.harita-hucre { min-width: 42px; padding: 7px 4px; border-radius: 9px; border: 1px solid var(--border); font-size: 0.8rem; font-weight: 600; cursor: pointer; color: var(--text); background: var(--surface-2); }
.harita-hucre.tam { background: var(--available-bg); border-color: var(--available-border); }
.harita-hucre.eksik { background: var(--danger-bg); border-color: var(--danger-border); }
.harita-hucre.kayitsiz { opacity: 0.6; }
.harita-detay { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-2); }
.harita-detay-bas { font-weight: 700; margin-bottom: 6px; }
.harita-detay-sat { font-size: 0.85rem; color: var(--text); padding: 3px 0; }


/* Otopark yeri talepleri (yer arayanlar) — yeni siniflar, ozgulluk cakismasi yok */
.talep-kart { border: 1px solid var(--border); border-radius: 12px; background: var(--surface); padding: 11px 13px; margin: 0 20px 8px; }
.talep-kart.benim { border-color: var(--accent); background: var(--surface-2); position: relative; }
.inuse-list { margin: 0 20px 16px; display: flex; flex-direction: column; gap: 8px; }
.talep-ad { font-weight: 600; color: var(--text); }
.talep-not { color: var(--text-muted); font-size: 0.88rem; margin-top: 3px; white-space: pre-wrap; }
.talep-bildir-btn { margin-top: 8px; padding: 7px 14px; border-radius: 9px; border: none; background: var(--accent); color: var(--accent-ink); font-weight: 600; cursor: pointer; font-size: 0.9rem; }
.talep-bildir-btn:disabled { opacity: 0.65; cursor: default; }


/* Yonetici tablosu duzenleme input'lari — kompakt ve tek duzen (#2) */
.admin-duzenle-input { width: 100%; box-sizing: border-box; height: 34px; padding: 5px 9px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text); font: inherit; font-size: 0.9rem; }
.admin-duzenle-input:focus { outline: none; border-color: var(--accent); }
.admin-duzenle-input.yil { text-align: center; }


/* Otopark yer verme rezervasyonu (#7 WhatsApp, teklif satiri) */
.talep-kacyer { display: flex; gap: 8px; margin-bottom: 4px; }
.talep-kacyer button { flex: 1; padding: 9px 0; border: 1.5px solid var(--border); background: var(--surface-2); color: var(--text); border-radius: 10px; font: inherit; font-weight: 700; cursor: pointer; }
.talep-kacyer button.on { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.talep-wa-btn { display: inline-block; margin-top: 8px; margin-left: 8px; padding: 7px 14px; border-radius: 9px; background: #1faa52; color: #fff; font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.talep-bildir-btn.kucuk, .talep-wa-btn.kucuk { margin-top: 0; padding: 5px 11px; font-size: 0.82rem; }
.talep-teklif-sat { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 7px; }
.gelmedi-sat { display: flex; align-items: center; gap: 10px; padding: 9px 4px; border-bottom: 1px solid var(--line); cursor: pointer; }
.gelmedi-sat:last-of-type { border-bottom: 0; }
.gelmedi-sat input { width: 18px; height: 18px; flex: 0 0 auto; }
.rehber-govde { font-size: 0.9rem; color: var(--text); line-height: 1.55; margin: 2px 0 6px; }
.rehber-govde ul { margin: 6px 0 0; padding-left: 18px; }
.rehber-govde li { margin: 3px 0; }
.rehber-govde b { font-weight: 600; }
.hizli-iletisim { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.hizli-btn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 12px; border-radius: 9px; font-size: 0.82rem; font-weight: 600; text-decoration: none; border: 1px solid var(--border); color: var(--text); background: var(--surface); }
.hizli-btn .hi-ikon { font-size: 0.95rem; line-height: 1; }
.hizli-btn.wa { background: #1faa52; border-color: #1faa52; color: #fff; }
.hizli-btn.grup { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.esit-btn-satir { display: flex; gap: 8px; margin-top: 8px; }
.esit-btn-satir > * { flex: 1 1 0; min-width: 0; margin-top: 0; justify-content: center; text-align: center; font-size: 0.84rem; white-space: nowrap; min-height: 36px; box-sizing: border-box; }
.esit-btn-satir > button { display: inline-flex; align-items: center; justify-content: center; }
@media (min-width: 600px) { .esit-btn-satir.duyuru-satir .hizli-btn.wa { flex: 1 1 0; } }
.esit-btn-satir .hizli-btn.wa { flex: 0 0 auto; }
.hizli-btn .hi-wa { width: 16px; height: 16px; flex: 0 0 auto; }
.duyuru-rozet.r-mavi { background: rgba(55,138,221,0.2); color: #8fbdf0; }
.duyuru-rozet.r-sari { background: rgba(239,159,39,0.2); color: #f0b45a; }
.duyuru-rozet.r-turuncu { background: rgba(216,90,48,0.22); color: #f0a184; }
.duyuru-rozet.r-mor { background: rgba(127,119,221,0.22); color: #b3adf0; }
.duyuru-rozet.r-yesil { background: rgba(99,153,34,0.22); color: #a4cf6a; }
.duyuru-rozet.r-gri { background: rgba(255,255,255,0.08); color: var(--text-muted); }
.me-satir .me-geri { border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--text); font-weight: 600; cursor: pointer; padding: 7px 10px; }
.me-satir > * { flex: 1 1 0; }
.me-taken .me-satir { flex: 1 1 100%; }
.me-satir .me-geri { order: 0; }
.esit-btn-satir.me-satir .hizli-btn.wa { order: 1; flex: 1 1 0; }
.me-satir .hizli-btn:not(.wa) { order: 2; }
/* Yalniz simge: genislik sabit, "esit dagit" kurallari bu dugmelere islemiyor.
   .grup (Paylas) yazili kaldigi icin disarida. */
.hizli-btn:not(.grup) { width: 42px; height: 42px; min-height: 42px; padding: 0; gap: 0; justify-content: center; }
.hizli-btn:not(.grup) svg { width: 20px; height: 20px; fill: currentColor; stroke: none; }
.esit-btn-satir > .hizli-btn:not(.grup),
.esit-btn-satir.duyuru-satir .hizli-btn.wa,
.esit-btn-satir.me-satir .hizli-btn.wa { flex: 0 0 auto; }
.talep-teklif-blok { margin-top: 10px; }
.talep-pay-btn { display: block; text-align: center; text-decoration: none; background: #1faa52; border: 1px solid #1faa52; color: #fff; font-weight: 600; font-size: 0.86rem; padding: 9px 12px; border-radius: 10px; margin-top: 10px; box-sizing: border-box; }
.talep-vurgu { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 14px; }
.talep-spot-sec { display: block; width: 100%; margin-bottom: 8px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--text); font-weight: 600; cursor: pointer; box-sizing: border-box; text-align: left; }
.talep-spot-sec.on { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.inuse-list .avail-row .no { font-family: inherit; font-weight: 600; color: var(--text-muted); }
.talep-tel::before { content: " · "; }
.me-until::before { content: " · "; }
.talep-sil-satir { position: absolute; top: 8px; right: 10px; margin: 0; }
.talep-sil-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 32px; border: 1px solid var(--border); border-radius: 9px; background: var(--surface); color: var(--danger); cursor: pointer; }
.talep-sil-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.talep-kart.benim .talep-ad { padding-right: 46px; }
@media (max-width: 480px) { .talep-tel { display: block; } .talep-tel::before { content: ""; } }
@media (max-width: 480px) { .me-until { display: block; } .me-until::before { content: ""; } }
.talep-teklif-ad { flex: 1 1 auto; min-width: 120px; font-size: 0.88rem; color: var(--text); }

/* ---- Ayıp Defteri ---- */
/* Misafir rehberi: daha önce davet edilenler, tek dokunuşla yeniden davet.
   Satırın tamamı düğme; sağdaki ✕ listeden çıkarıyor (yanlış kayıt silinsin). */
.misafir-rehber { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 16px; }
.misafir-rehber-satir { display: flex; align-items: stretch; gap: 6px; }
.misafir-rehber .mr-hizli { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 10px 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.misafir-rehber .mr-ad { font-size: 0.92rem; font-weight: 700; }
.misafir-rehber .mr-tel { font-size: 0.78rem; color: var(--text-muted); }
.misafir-rehber .mr-sil { flex: 0 0 auto; width: 38px; border: 1px solid var(--border); border-radius: 11px; background: transparent; color: var(--text-muted); font: inherit; font-size: 0.9rem; cursor: pointer; }
/* Açılış emniyeti: modül hiç çalışmazsa splash yerine bu çıkıyor. Tema
   değişkenlerine GÜVENMİYOR — ortak.css yüklenmiş olsa da uygulamanın kendi
   <style> bloğu çalışmamış olabilir; renkler sabit. */
.acilis-emniyet { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 20px; background: #1c1a15; }
.acilis-emniyet .ae-kart { width: 100%; max-width: 380px; background: #26231d; border: 1px solid #45403a; border-radius: 18px; padding: 24px 20px; color: #fff8f1; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
.acilis-emniyet h2 { margin: 0 0 10px; font-size: 1.15rem; }
.acilis-emniyet p { margin: 0 0 16px; font-size: 0.9rem; line-height: 1.5; color: #d8d0c6; }
.acilis-emniyet button { display: block; width: 100%; box-sizing: border-box; margin-bottom: 9px; padding: 13px; border-radius: 12px; border: none; font: inherit; font-size: 0.95rem; font-weight: 700; cursor: pointer; }
.acilis-emniyet .ae-ana { background: #c4551f; color: #fff; }
.acilis-emniyet .ae-ikincil { background: transparent; color: #e3a072; border: 1px solid #5a5148; }
.acilis-emniyet .ae-ayrinti { margin: 12px 0 0; font-size: 0.72rem; color: #9b9188; word-break: break-all; }
/* Perde (modal) açıkken arka plan kaymasın — Alper: "öndeki ekran aktif
   olsun". touch-action KULLANILMIYOR: ata öğede none olması torunların
   kaydırmasını da kesiyor, yani perdenin kendi kartı da kaydırılamazdı. */
html.perde-acik, body.perde-acik { overflow: hidden; }
/* ---- Profil (Bilgilerim) ----
   Hub'daki ada dokununca açılıyor. Kart yok: alanlar tek sütun, formun kendisi
   ekranın içeriği. Fotoğraf yuvarlak; foto yoksa adın ilk harfi. */
.profil-wrap { max-width: none; margin: 0 auto; padding: 6px 20px 40px; }
.profil-foto-satir { display: flex; align-items: center; gap: 14px; margin: 10px 0 14px; }
.profil-foto { flex: 0 0 auto; width: 76px; height: 76px; border-radius: 50%; overflow: hidden; background: var(--surface-2); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; }
.profil-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.profil-foto span { font-size: 1.9rem; font-weight: 800; color: var(--text-muted); }
.profil-foto-yan { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.profil-foto-btn { display: inline-block; padding: 9px 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font-size: 0.86rem; font-weight: 600; cursor: pointer; }
.profil-foto-sil { padding: 6px 11px; border: 1px solid var(--line); border-radius: 9px; background: transparent; color: var(--danger); font: inherit; font-size: 0.8rem; cursor: pointer; }
.profil-foto-durum { font-size: 0.78rem; color: var(--text-muted); }
/* Etiket ve alan biçimi .step-card'a bağlıydı; profil ekranı kart DEĞİL, o
   yüzden etiketler satır içinde akıyor ve alanlar tam genişlik olmuyordu
   (tarayıcıda görüldü). Burada kendi kuralları var; e-posta ve sayı alanları
   da kapsanıyor — .step-card listesinde o iki tür hiç yoktu. */
.profil-wrap .field-label { display: block; font-size: 0.76rem; font-weight: 700; color: var(--text-muted); margin: 14px 0 6px; }
.profil-wrap > input { display: block; width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.95rem; letter-spacing: 0.01em; }
.profil-wrap > .step-error { margin-top: 12px; }
.profil-wrap > .step-primary { margin-top: 18px; }
/* Meslek + Doğum yılı yan yana: ikisi de kısa alan, alt alta iki satır yiyordu.
   Etiketler ızgaranın 1., kutular 2. satırında → etiket sarsa da kutular hizalı. */
.profil-ikili { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.profil-ikili .field-label { display: block; font-size: 0.76rem; font-weight: 700; color: var(--text-muted); margin: 14px 0 6px; }
.profil-ikili input { display: block; width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.95rem; letter-spacing: 0.01em; }
.profil-uyari { margin: 6px 0 2px; font-size: 0.82rem; line-height: 1.5; color: var(--danger); }
.profil-basarili { margin: 10px 0 0; padding: 11px 13px; border-radius: 11px; background: var(--available-bg); color: var(--available); border: 1px solid var(--available-border); font-size: 0.86rem; line-height: 1.5; }
#profilBekleyen { margin: 0 0 14px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); }
.profil-bekleyen-bas { font-size: 0.84rem; font-weight: 800; margin-bottom: 5px; }
.profil-bekleyen-satir { font-size: 0.84rem; color: var(--text-muted); line-height: 1.6; }
/* Hub'daki ad artık bir düğme: dokunulabildiği belli olsun. */
.hub-selam-ad.tiklanir { cursor: pointer; }
.hub-selam-ad.tiklanir .hub-selam-isim { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
/* Yönetici panelindeki talep kartları */
/* Üye profili perdesi (yalnız yöneticide): etiket/değer satırları ve kısa
   listeler. Tablodaki ad hücresi düğme olduğu için altı noktalı çizgili. */
.uye-profil-card { max-width: 520px; }
.uye-profil-bolum { margin-top: 14px; }
.uye-profil-bas { font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); margin-bottom: 4px; }
.uye-profil-sat { display: flex; gap: 10px; justify-content: space-between; align-items: baseline; padding: 5px 0; border-bottom: 1px solid var(--line-dim); font-size: 0.82rem; }
.uye-profil-sat .lb { color: var(--text-muted); flex: none; }
.uye-profil-sat .vl { text-align: right; font-weight: 600; word-break: break-word; }
.uye-profil-ilet { display: flex; gap: 8px; margin-top: 9px; }
/* Iletisim.iletisimBtnleri düğmeleri görünümünü .admin-table td button'dan
   alıyor; perdede tablo yok, ölçüleri burada veriliyor. */
.uye-profil-ilet button { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 1px solid var(--border); border-radius: 9px; background: var(--surface-2); color: var(--text-muted); cursor: pointer; }
.uye-profil-ilet button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.uye-profil-not { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 4px; }
.uye-profil-oge { font-size: 0.8rem; line-height: 1.45; padding: 5px 0; border-bottom: 1px solid var(--line-dim); }
.uye-ad-btn { border: none; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--accent); text-align: left; cursor: pointer; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px; }
.profil-talep-sayi:not(:empty) { display: inline-block; min-width: 20px; margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--danger-bg); color: var(--danger); font-size: 0.72rem; font-weight: 800; text-align: center; }
.profil-talep-kart { border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px; margin-bottom: 6px; background: var(--surface); }
.profil-talep-ad { font-weight: 700; font-size: 0.84rem; }
.profil-talep-alt { font-size: 0.76rem; color: var(--text-muted); margin-bottom: 2px; }
.profil-talep-satir { font-size: 0.78rem; line-height: 1.45; }
/* Talebi açanın notu (numara devri gibi): kartta ayrışsın diye vurgulu. */
.profil-talep-not { margin: 4px 0; padding: 6px 9px; border-radius: 8px; background: var(--danger-bg); color: var(--danger); font-weight: 600; }
.profil-talep-foto img { max-width: 140px; border-radius: 8px; margin-top: 6px; display: block; }
.profil-talep-yon { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.profil-talep-yon .admin-btn { padding: 6px 10px; font-size: 0.74rem; }
/* .admin-btn-danger genelde tam genişlik (panelde tek başına duruyor); talep
   kartında Onayla ile YAN YANA kalsın diye burada daraltılıyor. */
.profil-talep-yon .admin-btn-danger { width: auto; margin-bottom: 0; text-align: center; }
/* ---- Adımlı form şeridi (1/2, 1/3) ----
   Uzun form tek ekranda korkutuyordu; Alper: "önce hangi dal diye sorsun,
   sonra diğer alanlar gelsin". Adım sayısı modüle göre değişiyor (Tavsiyeler
   2, İnşaat Eksikleri 3), o yüzden çubuk genişliği JS'ten yazılıyor. */
/* Adımlı formların başlığı: sağ üstte İKİ yuvarlak düğme var (geri + kapat),
   o yüzden etiket satırı düğmeler kadar yükseliyor ve başlık tam genişliği
   kullanıyor — #emgBackdrop ile aynı desen. Eski adım şeridi (çubuk + "1 / 2"
   sayacı) kaldırıldı: kesinti/kargo penceresiyle aynı düzen istendi. */
.tav-form-card .step-tag,
.ayip-form-card .step-tag { padding-right: 100px; min-height: 34px; }
.tav-form-card h2,
.ayip-form-card h2 { padding-right: 0; }
/* Şerit hizası: .ayip-wrap / .tav-wrap zaten 20 px iç boşluk veriyor,
   .list-head ve .empty-state ise KENDİ 20 px'ini ekliyordu → düğme ve süzgeç
   şeritleri 44 px'te, liste başlığı ve boş durum kutusu 64 px'te duruyordu
   (tarayıcıda ölçüldü). Bu iki sarmalın içinde yatay kenar boşluğu sıfır. */
.ayip-wrap > .list-head, .ayip-wrap .list-head,
.tav-wrap > .list-head, .tav-wrap .list-head { margin-left: 0; margin-right: 0; }
.ayip-wrap .empty-state, .tav-wrap .empty-state { margin-left: 0; margin-right: 0; }
/* Kılavuz tipi ekranlar (Çevresel Sorunlar, İlçe, Tüyolar, Formlar): gövde zaten kenar boşluğu veriyor —
   boş durum kutusu "+ Yeni … ekle" düğmesiyle aynı hizada dursun (Alper, 30.09). */
.kilavuz-govde .empty-state { margin-left: 0; margin-right: 0; }
.ayip-wrap { max-width: none; margin: 0 auto; padding: 6px 20px 40px; }
.ayip-ekle-btn { display: block; width: 100%; box-sizing: border-box; margin: 8px 0 16px; padding: 14px; border: none; border-radius: 12px; background: var(--accent); color: var(--accent-ink, #1c1206); font: inherit; font-weight: 700; font-size: 1rem; cursor: pointer; }
.ayip-form-card { position: relative; max-width: 560px; }
.ayip-form-not { color: var(--text-muted); font-size: 0.9rem; line-height: 1.5; margin: 4px 0 14px; }
.ayip-alan { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ayip-alan button { padding: 16px 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); color: var(--text); font: inherit; font-weight: 600; cursor: pointer; }
.ayip-alan button .ic { display: block; font-size: 24px; margin-bottom: 6px; }
.ayip-alan button.on { border-color: var(--accent); background: rgba(232, 145, 63, .14); color: var(--accent); }
.ayip-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.ayip-chips button { border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.85rem; padding: 8px 12px; cursor: pointer; }
.ayip-chips button.on { border-color: var(--accent); background: rgba(232, 145, 63, .14); color: var(--accent); font-weight: 600; }
.ayip-kat { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.ayip-kat button { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; padding: 10px 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.76rem; cursor: pointer; }
.ayip-kat button .ic { font-size: 20px; }
.ayip-kat button.on { border-color: var(--accent); background: rgba(232, 145, 63, .14); color: var(--accent); font-weight: 600; }
.ayip-ag { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.ayip-ag button { border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.78rem; padding: 10px 4px; cursor: pointer; }
.ayip-ag button.on.lo { border-color: var(--text-muted); background: rgba(255, 255, 255, .06); }
.ayip-ag button.on.mid { border-color: #c9922f; background: rgba(224, 162, 58, .16); color: #e7c07f; }
.ayip-ag button.on.hi { border-color: #c25a45; background: rgba(217, 97, 78, .16); color: #f2a08f; }
.ayip-ag button.on.risk { border-color: #d9614e; background: #d9614e; color: #fff; font-weight: 700; }
.muted-inline { color: var(--text-muted); font-weight: 400; font-size: 0.85em; }
.ayip-foto-btn { display: block; width: 100%; box-sizing: border-box; text-align: center; padding: 12px 14px; border: 1px dashed var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); font-weight: 600; font-size: 0.9rem; cursor: pointer; }
.ayip-foto-onizleme { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.ayip-foto-onizleme .th { position: relative; width: 72px; height: 72px; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); }
.ayip-foto-onizleme .th img { width: 100%; height: 100%; object-fit: cover; }
.ayip-foto-onizleme .th button { position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; border: none; border-radius: 50%; background: rgba(0, 0, 0, .6); color: #fff; font-size: 12px; line-height: 1; cursor: pointer; padding: 0; }
.ayip-suz { display: flex; gap: 8px; margin: 6px 0 12px; }
.ayip-suz button { flex: 1; padding: 8px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text-muted); font: inherit; font-size: 0.85rem; cursor: pointer; }
.ayip-suz button.on { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.ayip-kart { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; margin-bottom: 12px; }
.ayip-kart .ust { height: 4px; }
.ayip-kart .ust.lo { background: var(--text-muted); }
.ayip-kart .ust.mid { background: #e0a23a; }
.ayip-kart .ust.hi { background: #d9614e; }
.ayip-kart .ust.risk { background: linear-gradient(90deg, #d9614e, #b8452f); }
.ayip-kart .ic2 { padding: 14px 15px; }
.ayip-kart .yer { font-weight: 700; font-size: 1.02rem; }
.ayip-kart .yer small { display: block; font-weight: 400; font-size: 0.82rem; color: var(--text-muted); margin-top: 2px; }
.ayip-kart .rozetler { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 2px; }
.ayip-kart .rz { font-size: 0.76rem; font-weight: 600; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface-2); color: var(--text-muted); }
.ayip-kart .rz.kat { color: #f1c98a; }
.ayip-kart .rz.sev-mid { color: #e7c07f; border-color: #4d3c22; }
.ayip-kart .rz.sev-hi { color: #f2a08f; border-color: #5c3226; }
.ayip-kart .rz.sev-risk { color: #fff; background: rgba(217, 97, 78, .9); border-color: #d9614e; }
.ayip-kart .rz.durum { color: #8fd0a6; border-color: #2f4d3a; }
.ayip-kart .aciklama { margin: 10px 0 0; font-size: 0.92rem; color: var(--text); white-space: pre-wrap; }
.ayip-kart .analiz { margin: 10px 0 0; padding: 9px 11px; border-radius: 9px; background: rgba(232, 145, 63, .08); border: 1px solid #4a3720; font-size: 0.86rem; color: #f1c98a; }
.ayip-kart .analiz b { color: var(--accent); font-weight: 600; }
.ayip-kart .foto-satir { margin-top: 12px; }
.ayip-kart .foto-goster { padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.84rem; cursor: pointer; }
.ayip-kart .foto-satir button + button { margin-left: 8px; }
.ayip-kart .fotolar { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; color: var(--text-muted); font-size: 0.82rem; }
.ayip-kart .fotolar img { width: 84px; height: 84px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); cursor: pointer; }
.ayip-kart .alt { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; font-size: 0.78rem; color: var(--text-muted); flex-wrap: wrap; }
.ayip-kart .yon { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.ayip-kart .yon select { flex: 1; min-width: 130px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.82rem; }
.ayip-kart .yon button { padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.82rem; cursor: pointer; }
.ayip-kart .yon button.sil { color: #f2a08f; border-color: #5c3226; }
.ayip-kart .yon button.analiz-btn { color: var(--accent); }
.ayip-kart .yon button.yayin-btn { color: #8fd0a6; border-color: #2f4d3a; font-weight: 600; }
.ayip-kart .yon button.yayin-btn.geri { color: var(--text-muted); border-color: var(--line); font-weight: 400; }
.ayip-kart .rz.bekl { color: #e7c07f; border-color: #4d3c22; background: rgba(224, 162, 58, .14); }
.ayip-kart .rz.yayin { color: #8fd0a6; border-color: #2f4d3a; }
.ayip-kart .gizli-not { margin: 10px 0 0; font-size: 0.8rem; color: var(--text-muted); }
.ayip-foto-modal { position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, .92); display: flex; align-items: center; justify-content: center; padding: 20px; }
.ayip-foto-modal img { max-width: 100%; max-height: 90vh; border-radius: 8px; }
.ayip-foto-modal-kapat { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: none; border-radius: 50%; background: rgba(255, 255, 255, .15); color: #fff; font-size: 20px; cursor: pointer; }

.ayip-foto-modal[hidden] { display: none !important; }

/* --- Test Paneli (yönetici): bütün ekranları tek yerden açma ------------
   Düğmeler hub kutucuklarının küçültülmüş hâli; liste uzun olabildiği için
   iki sütun ve sol hizalı yazı (ızgara okunur kalsın). */
.test-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (max-width: 430px) { .test-grid { grid-template-columns: 1fr; } }
.test-btn {
  display: flex; align-items: center; gap: 9px; width: 100%; min-height: 46px;
  padding: 9px 11px; border: 1px solid var(--border); border-radius: 11px;
  background: var(--surface); color: var(--text); text-align: left; cursor: pointer;
  font: inherit;
}
.test-btn:hover { border-color: var(--accent); }
.test-ic { flex: none; font-size: 1.25rem; line-height: 1; }
.test-yazi { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.test-lb { font-size: 0.88rem; font-weight: 700; overflow-wrap: anywhere; }
.test-alt { font-size: 0.72rem; color: var(--text-muted); overflow-wrap: anywhere; }
/* Açılan ekranın ÜSTÜNDE durmalı: en yüksek perde z-index'i 500
   (#pwSetBackdrop), acil emniyet ekranı 9999. */
.test-geri {
  position: fixed; right: 14px; bottom: 14px; z-index: 600;
  padding: 10px 15px; border: 1px solid var(--accent); border-radius: 999px;
  background: var(--accent); color: var(--accent-ink);
  font: inherit; font-size: 0.86rem; font-weight: 800; cursor: pointer;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
}
.test-geri[hidden] { display: none; }

/* Site ve blok adı LATİN yazımda kalmalı. Arapça'da bidi algoritması
   "5. Levent"i "Levent .5" diye ters diziyordu — rakam ve nokta RTL
   paragrafta yer değiştiriyor. `unicode-bidi: plaintext` her satırın yönünü
   kendi ilk güçlü harfinden belirliyor. **`direction: ltr` DEĞİL:** o
   verilseydi RTL bir düzende bu satırlar sola kaçardı. */
.hub-site,
.splash-site,
.hub-block,
.splash-block,
.sub {
  unicode-bidi: plaintext;
}

/* Arapça: rakamla başlayan satırlar TERS DİZİLİYORDU. Sayfa düzeni LTR
   kaldığı için "15–21 سبتمبر 2026" satırında bidi algoritması rakam öbeğini
   Arapça öbeğin arkasına atıyor ve tarih "سبتمبر 2026 15–21" görünüyordu.
   `unicode-bidi: plaintext` her öğenin yönünü KENDİ ilk güçlü harfinden
   belirliyor: Arapça satır sağdan sola diziliyor, ama `direction` ltr kaldığı
   için hiza ve düzen değişmiyor (Alper: "menüler olduğu yerde kalsın").
   Yalnız lang="ar" iken devrede — TR/EN/RU'da hiçbir şey değişmez. */
:root[lang="ar"] * {
  unicode-bidi: plaintext;
}

/* Şüpheli Kullanım: satır eylemleri (Düzelt · Yoksay) + kimlik çelişkisini oracıkta
   düzeltme formu (satırın gövdesinde açılıyor). */
.supheli-eylem { margin-left: auto; align-self: center; display: flex; flex-direction: column; gap: 6px; }
.supheli-eylem .admin-btn { font-size: 0.78rem; padding: 4px 10px; white-space: nowrap; }
.supheli-eylem .supheli-duzelt-btn { border-color: var(--accent); color: var(--accent); }
.supheli-duzelt { margin-top: 8px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); display: flex; flex-direction: column; gap: 7px; }
.supheli-duzelt .sd-baslik { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-muted); margin-top: 2px; }
.supheli-duzelt label { display: flex; align-items: center; gap: 8px; font-size: 0.9rem; color: var(--text); cursor: pointer; }
.supheli-duzelt label .admin-duzenle-input { flex: 1; min-width: 0; }
.supheli-duzelt .sd-not { font-size: 0.78rem; color: var(--text-muted); }
.supheli-duzelt .sd-hata { font-size: 0.82rem; color: var(--danger); }
.supheli-duzelt .sd-hata:empty { display: none; }
.supheli-duzelt .sd-btnler { display: flex; gap: 8px; }
.supheli-duzelt .sd-uygula { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }

/* Üyeler: T.C. ve taşınma tek satır (2026-09-24) */
.admin-uyeler td:nth-child(7), .admin-uyeler td:nth-child(9) { white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Üye kartı → başvurular penceresi (2026-09-24) */
.uye-basvuru-ac { display: block; width: 100%; margin-top: 8px; padding: 10px; border-radius: 10px; border: 1px solid var(--accent); background: transparent; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }
.uye-basvuru-ac:disabled { border-color: var(--border); color: var(--text-muted); cursor: default; }
.uye-basvuru-kart { max-height: 88vh; overflow-y: auto; }
.uye-basvuru-liste { display: flex; flex-direction: column; gap: 12px; margin-top: 8px; }
.uye-basvuru { border: 1px solid var(--border); border-radius: 12px; padding: 10px 12px; background: var(--surface); }
.uye-basvuru-bas { font-weight: 800; margin-bottom: 6px; }
.uye-basvuru-alanlar { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; margin: 0; font-size: 0.84rem; }
.uye-basvuru-alanlar dt { color: var(--text-muted); }
.uye-basvuru-alanlar dd { margin: 0; overflow-wrap: anywhere; }
.uye-basvuru-imza { display: block; margin-top: 8px; background: #fff; border-radius: 8px; padding: 4px 10px; max-height: 80px; max-width: 100%; }
.uye-basvuru-btn { display: flex; gap: 8px; margin-top: 10px; }
.uye-basvuru-btn button { flex: 1 1 0; padding: 8px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }

/* Üye kartı düzeni (2026-09-24, 350): ad + hemen sağında Ara / WhatsApp; "Uygulama kullanımı"
   üstten ayrık; spor / paylaşımlar / başvurular yalnız düğme — içerik ikinci pencerede. */
.uye-profil-baslik { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 6px; }
.uye-profil-baslik h2 { padding-right: 52px; margin: 0; min-width: 0; overflow-wrap: anywhere; }
/* 359: 7 simge (Ara · WhatsApp · Rehber · E-posta · Yazdır · Düzenle · Sil) adın ALTINDA kendi satırında;
   375px'te tek satıra sığsın diye aralık 6px (7×34 + 6×6 = 274px). */
.uye-profil-baslik .uye-profil-ilet { margin-top: 0; flex: 1 1 100%; flex-wrap: wrap; gap: 6px; }
.uye-profil-ilet button.tehlike { color: var(--danger, #c0563e); }
.uye-profil-bolum.uye-profil-kullanim { margin-top: 22px; }
.uye-profil-altlar { display: flex; flex-direction: column; gap: 8px; margin-top: 22px; }
.uye-profil-alt { display: flex; align-items: center; gap: 10px; width: 100%; padding: 11px 12px; border-radius: 11px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.86rem; font-weight: 700; text-align: left; cursor: pointer; }
.uye-profil-alt .ad { flex: 1 1 auto; }
.uye-profil-alt .say { font-size: 0.8rem; color: var(--text-muted); min-width: 1.6em; text-align: right; }
.uye-profil-alt .ok { color: var(--accent); font-size: 1.15rem; line-height: 1; }
.uye-profil-alt:disabled { cursor: default; color: var(--text-muted); background: transparent; }
.uye-profil-alt:disabled .ok { visibility: hidden; }
.uye-profil-ilet button:disabled { opacity: 0.35; cursor: default; }
/* Üye kartı: Düzenle + Sil (355) — tablodaki işlem sütununun yerine. */
.uye-profil-yonet { display: flex; gap: 8px; margin-top: 14px; }
.uye-profil-yonet-btn { flex: 1 1 0; padding: 10px; border-radius: 11px; border: 1px solid var(--border); background: transparent; color: var(--text); font: inherit; font-size: 0.86rem; font-weight: 700; cursor: pointer; }
.uye-profil-yonet-btn.tehlike { border-color: var(--danger, #c0563e); color: var(--danger, #c0563e); }
.uye-profil-yonet-btn:disabled { opacity: 0.5; cursor: default; }
.uye-profil-duzenle { margin: 4px 0 16px; padding: 12px; border: 1px solid var(--accent); border-radius: 12px; background: var(--surface-2); }
.uye-profil-duz-alan { display: block; margin-top: 8px; }
.uye-profil-duz-alan span { display: block; font-size: 0.74rem; font-weight: 700; color: var(--text-muted); margin-bottom: 4px; }
.uye-profil-duz-alan input { width: 100%; box-sizing: border-box; }
.uye-profil-duz-hata { color: var(--danger, #c0563e); font-size: 0.8rem; min-height: 1em; margin-top: 8px; }
.uye-profil-duz-btn { display: flex; gap: 8px; margin-top: 8px; }
.uye-profil-duz-btn button { flex: 1 1 0; padding: 10px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-weight: 700; cursor: pointer; }
.uye-profil-duz-btn button.kaydet { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
/* Üyeler tablosu sıralama (357): Daire ve Ad Soyad başlıkları dokunulabilir. */
.admin-uyeler th.siralanir { cursor: pointer; user-select: none; -webkit-user-select: none; white-space: nowrap; }
.admin-uyeler th.siralanir::after { content: " ⇅"; opacity: 0.45; }
.admin-uyeler th.siralanir[data-yon="artan"]::after { content: " ↑"; opacity: 1; color: var(--accent); }
.admin-uyeler th.siralanir[data-yon="azalan"]::after { content: " ↓"; opacity: 1; color: var(--accent); }
.admin-uyeler th.siralanir:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
/* Bildirim şeridi (358): mesajlar alt alta, en fazla 3 satır + "ve N bildirim daha". */
#bildirimMetni { display: flex; flex-direction: column; gap: 5px; flex: 1 1 auto; min-width: 0; max-width: 720px; }
.bildirim-satir { line-height: 1.35; }
.bildirim-satir.ek { font-weight: 600; opacity: 0.85; }
/* Mobilde "Ara ve filtrele" (359): arama + sütun filtreleri tek düğmenin arkasında. */
.uye-ara-ac { display: none; }
@media (max-width: 640px) {
  .uye-ara-ac { display: flex; align-items: center; gap: 6px; width: max-content; margin: 0 0 10px auto; padding: 7px 12px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.8rem; font-weight: 700; cursor: pointer; }
  .uye-ara-ac svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
  .uye-ara-ac.acik { border-color: var(--accent); color: var(--accent); }
  .uye-ara-ac .say { min-width: 18px; padding: 1px 6px; border-radius: 999px; background: var(--accent); color: var(--accent-ink); font-size: 0.7rem; text-align: center; }
  .uye-ara-ac .say[hidden] { display: none; }
  .uye-ara-gizli { display: none !important; }
}
/* Ana menü araması (362 · 363): sonuç listesi menünün ÜSTÜNE açılır, menüyü kaydırmaz. */
.hub-arama { position: relative; z-index: 40; margin: 0 0 14px; }
.hub-arama-cubuk { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 8px 0 14px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); }
.hub-arama-cubuk:focus-within, .hub-arama.acik .hub-arama-cubuk { border-color: var(--accent); }
.hub-arama-cubuk svg { width: 20px; height: 20px; flex: none; fill: none; stroke: var(--text-muted); stroke-width: 2; stroke-linecap: round; }
.hub-arama-cubuk input { flex: 1 1 auto; min-width: 0; height: 100%; border: none; outline: none; background: transparent; color: var(--text); font: inherit; font-size: 16px; }
.hub-arama-cubuk input::-webkit-search-cancel-button { -webkit-appearance: none; }
.hub-arama-temizle { flex: none; width: 30px; height: 30px; border: none; border-radius: 50%; background: var(--surface-2); color: var(--text-muted); font: inherit; cursor: pointer; }
.hub-arama-temizle[hidden], .hub-arama-sonuc[hidden] { display: none; }
.hub-arama-sonuc { position: absolute; left: 0; right: 0; top: calc(100% + 6px); display: flex; flex-direction: column; gap: 2px; max-height: min(62vh, 480px); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 6px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-lg, 0 12px 32px rgba(0, 0, 0, 0.35)); }
.hub-arama-oge { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px; border: none; border-radius: 10px; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.hub-arama-oge:hover, .hub-arama-oge:focus-visible { background: var(--surface-2); outline: none; }
.hub-arama-oge .ic { font-size: 1.3rem; line-height: 1; flex: none; width: 28px; text-align: center; }
.hub-arama-oge .yz { display: flex; flex-direction: column; min-width: 0; }
.hub-arama-oge .t { font-weight: 700; font-size: 0.92rem; }
.hub-arama-oge .a { font-size: 0.76rem; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hub-arama-yok { font-size: 0.85rem; color: var(--text-muted); padding: 10px; }
.arama-vurgu { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 6px; transition: outline-color 0.4s; }
/* Arama gezinme perdesi (364): ara menüler görünmesin. */
.arama-perde { position: fixed; inset: 0; z-index: 9000; background: var(--bg); }
/* Nöbetçi eczaneler + sık kullanılanlar (365) */
.carsi-nobetci { display: inline-block; margin-top: 4px; padding: 2px 8px; border-radius: 999px; background: #1a7f5a; color: #fff; font-size: 0.72rem; font-weight: 700; }
.nobetci-uyari { margin: 0 20px 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--danger, #c0563e); color: var(--text); font-size: 0.84rem; line-height: 1.45; }
.nobetci-uyari a { color: var(--accent); font-weight: 700; }
.nobetci-km { font-weight: 700; }
.hub-arama-baslik { padding: 6px 10px 4px; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); }
/* Harita seçimi (368) */
.harita-sec-perde { z-index: 660; }
.harita-sec-kart { max-width: 380px; }
.harita-sec-adres { margin: 2px 0 12px; font-size: 0.86rem; color: var(--text-muted); line-height: 1.45; }
.harita-sec-btnler { display: flex; flex-direction: column; gap: 8px; }
.harita-sec-btn { width: 100%; padding: 12px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-weight: 700; cursor: pointer; }
.harita-sec-btn:hover, .harita-sec-btn:focus-visible { border-color: var(--accent); outline: none; }
.simge-btn.konum { color: #fff; background: #1a7f5a; border-color: #1a7f5a; cursor: pointer; }
.tav-satir.tik { cursor: pointer; text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px; }
/* Tavsiye: öncesi / sonrası fotoğraf (372) ve fiyat geçmişi (371) */
.tav-foto-tesvik { margin: -4px 0 10px; font-size: 0.86rem; line-height: 1.5; color: var(--text-muted); }
.tav-foto-ikili { display: flex; gap: 8px; }
.tav-foto-ikili .tav-foto-ekle { flex: 1 1 0; min-width: 0; }
.tav-foto-ekle[hidden], .tav-foto-tesvik[hidden] { display: none !important; }
.tav-foto-onizleme .th .etk { position: absolute; left: 0; right: 0; bottom: 0; padding: 2px 0; background: rgba(0, 0, 0, .6); color: #fff; font-size: 11px; font-weight: 700; text-align: center; }
.tav-kart .tav-foto figure { margin: 0; }
.tav-kart .tav-foto figcaption { margin-top: 4px; font-size: 0.8rem; font-weight: 700; color: var(--text-muted); text-align: center; }
.tav-kart .tav-foto-cift { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tav-kart .tav-foto-cift img { aspect-ratio: 3 / 4; object-fit: cover; }
.tav-foto-davet { display: block; margin-top: 10px; width: 100%; padding: 10px 12px; border: 1px dashed var(--accent); border-radius: 10px; background: transparent; color: var(--accent); font: inherit; font-size: 0.86rem; font-weight: 700; cursor: pointer; }
.tav-son-fiyat { margin-top: 6px; font-size: 0.86rem; color: var(--text-muted); }
.tav-son-fiyat b { color: var(--text); font-variant-numeric: tabular-nums; }
.tav-fiyat-satir { position: relative; padding: 9px 0; border-bottom: 1px solid var(--line); }
.tav-fiyat-ust { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.tav-fiyat-is { color: var(--text); font-size: 0.92rem; min-width: 0; }
.tav-fiyat-tutar { color: var(--text); font-size: 0.95rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tav-fiyat-alt { margin-top: 2px; font-size: 0.8rem; color: var(--text-muted); }
.tav-fiyat-form { margin-top: 12px; display: grid; gap: 8px; }
.tav-fiyat-alan { display: grid; gap: 4px; font-size: 0.8rem; font-weight: 700; color: var(--text-muted); }
.tav-fiyat-alan input { width: 100%; box-sizing: border-box; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); padding: 9px 11px; font: inherit; font-size: 0.92rem; font-weight: 400; }
/* Site Gündemi — anketler (372) */
.anket-yeni-btn { display: block; width: 100%; margin: 0 0 12px; padding: 11px 14px; border-radius: 10px; border: 1px dashed var(--accent); background: transparent; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }
.anket-yeni { margin: 0 0 14px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.anket-yeni input[type="text"] { width: 100%; box-sizing: border-box; margin-bottom: 10px; min-height: 42px; padding: 9px 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.95rem; }
.anket-yeni textarea { margin-bottom: 10px; }
.anket-kart { margin: 0 0 14px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.anket-kart.kapali { opacity: .82; }
.anket-ust { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.anket-rozet { padding: 3px 9px; border-radius: 999px; background: var(--surface-2); color: var(--accent); font-size: 0.74rem; font-weight: 700; }
.anket-rozet.kapali { color: var(--text-muted); }
.anket-baslik { margin: 0 0 6px; font-size: 1.05rem; line-height: 1.35; color: var(--text); text-wrap: balance; }
.anket-aciklama { margin: 0 0 10px; font-size: 0.9rem; line-height: 1.55; color: var(--text-muted); white-space: pre-line; }
.anket-bag { margin: 0 0 12px; padding: 7px 12px; border-radius: 9px; border: 1px solid var(--border); background: transparent; color: var(--accent); font: inherit; font-size: 0.84rem; font-weight: 700; cursor: pointer; }
.anket-secenekler { display: grid; gap: 8px; }
.anket-sec { position: relative; overflow: hidden; display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.95rem; text-align: left; cursor: pointer; }
.anket-sec:disabled { cursor: default; color: var(--text); }
.anket-sec.secili { border-color: var(--accent); }
.anket-sec:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.anket-cubuk { position: absolute; left: 0; top: 0; bottom: 0; background: var(--accent); opacity: .16; pointer-events: none; transition: width .3s; }
.anket-isaret { position: relative; flex: 0 0 20px; width: 20px; height: 20px; box-sizing: border-box; border-radius: 50%; border: 2px solid var(--line); display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: var(--accent-ink, #1a1206); }
.anket-sec.secili .anket-isaret { background: var(--accent); border-color: var(--accent); }
.anket-sec-ad { position: relative; flex: 1 1 auto; min-width: 0; font-weight: 600; }
.anket-sec-say { position: relative; font-weight: 800; font-variant-numeric: tabular-nums; }
.anket-kisiler { margin: -2px 2px 4px; font-size: 0.8rem; line-height: 1.5; color: var(--text-muted); }
.anket-alt { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; font-size: 0.8rem; color: var(--text-muted); }
/* 377: yönetici düğmeleri IZGARA — mobilde iki eşit sütun, Sil ayrı tam satır; masaüstünde tek satır eşit. */
.anket-yon { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.anket-yon button { display: flex; align-items: center; justify-content: center; min-height: 42px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.86rem; font-weight: 600; line-height: 1.25; text-align: center; cursor: pointer; }
.anket-yon button.tam, .anket-yon button:only-child { grid-column: 1 / -1; }   /* 473: ikili satırlar, tek kalan satırı kaplar */
.anket-yon button.gonder { background: var(--accent); border-color: var(--accent); color: var(--accent-ink, #1a1206); font-weight: 700; }
.anket-yon button.gonder.hazir { background: transparent; color: var(--accent); }
/* 473: masaüstünde de ikili satır (dört sütun kaldırıldı) */
/* 457/458: anket toplu WhatsApp — hızlı seçim çipleri, kişi listesi, gönderim sırası */
.anket-toplu-cipler { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.anket-toplu-cip { border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.84rem; font-weight: 600; padding: 8px 12px; border-radius: 999px; cursor: pointer; text-align: left; line-height: 1.3; }
.anket-toplu-cip.secili { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.anket-toplu-not { font-size: 0.76rem; color: var(--text-muted); margin: 4px 0 6px; }
.anket-toplu-bag { display: flex; align-items: center; gap: 8px; font-size: 0.86rem; margin: 6px 0 12px; cursor: pointer; }
.anket-toplu-bag input, .anket-toplu-kutu { width: 18px; height: 18px; flex: 0 0 auto; margin: 0; accent-color: var(--accent); }
.anket-toplu-ozet { font-size: 0.8rem; color: var(--text-muted); margin: 2px 0 4px; line-height: 1.45; }
.anket-toplu-liste { max-height: 42vh; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; border: 1px solid var(--line); border-radius: 10px; margin: 4px 0 8px; }
.anket-toplu-satir { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-bottom: 1px solid var(--line); }
.anket-toplu-satir:last-child { border-bottom: none; }
label.anket-toplu-satir { cursor: pointer; }
.anket-toplu-satir.secili { background: var(--surface-2); }
.anket-toplu-satir.pasif, .anket-toplu-satir.bitti { opacity: 0.5; }
.anket-toplu-ad { flex: 1 1 auto; min-width: 0; font-size: 0.88rem; font-weight: 600; overflow-wrap: anywhere; }
.anket-toplu-ad small { display: block; font-weight: 400; color: var(--text-muted); font-size: 0.74rem; margin-top: 2px; }
.anket-toplu-wa { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 38px; padding: 6px 12px; border-radius: 9px; background: #1f8f4e; color: #fff; font-weight: 700; font-size: 0.84rem; text-decoration: none; }
.anket-toplu-isaret { flex: 0 0 auto; font-size: 0.78rem; color: var(--text-muted); }
.anket-toplu-alt { display: flex; gap: 8px; margin: 2px 0 10px; }
.anket-toplu-alt button { flex: 1; min-height: 40px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.86rem; font-weight: 600; cursor: pointer; }
/* 459: ek soruda tam ölçü kutusu ve dekont ekleme */
.anket-olcu, .anket-dekont { margin-top: 10px; }
.anket-olcu-bas { display: block; font-size: 0.82rem; font-weight: 600; margin-bottom: 6px; }
.anket-dekont-bilgi, .anket-dekont-ok { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 8px; line-height: 1.45; }
.anket-dekont-ok { color: var(--anket-iyi, var(--text)); font-weight: 600; }
/* 460/464: anket ödeme bilgisi — başlıkta tutar; etiket + yuvarlatılmış kutu + kopyala simgesi */
.anket-odeme { margin-top: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
.anket-odeme-bas { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.anket-odeme-baslik { font-weight: 700; font-size: 0.95rem; }
.anket-odeme-tutar { font-weight: 800; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.anket-odeme-tutar small { font-weight: 500; font-size: 0.76rem; color: var(--text-muted); margin-left: 5px; }
.anket-odeme-alan { margin-top: 10px; }
.anket-odeme-lbl { font-size: 0.78rem; color: var(--text-muted); margin: 0 0 5px 2px; }
.anket-odeme-kutu { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 5px 4px 5px 12px; border-radius: 11px; background: var(--surface); border: 1px solid var(--border); }
.anket-odeme-deger { flex: 1 1 auto; min-width: 0; font-size: 0.95rem; font-weight: 600; overflow-wrap: anywhere; }
.anket-odeme-deger.mono { font-size: 0.9rem; font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }   /* 474: temanın yazı tipi (eş aralıklı değil), rakamlar eşit genişlikte */
.anket-odeme-kopya { flex: 0 0 auto; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: none; border-radius: 9px; background: transparent; color: var(--accent); cursor: pointer; }
.anket-odeme-kopya:hover { background: var(--surface-2); }
.anket-odeme-kopya svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.anket-odeme-kopya.tamam { color: var(--anket-iyi, var(--accent)); }
.anket-odeme-alt { font-size: 0.74rem; color: var(--text-muted); margin: 5px 0 0 2px; }
.anket-ek-cevaplar .anket-dekont-ekle { color: var(--accent); border-color: var(--accent); background: var(--surface); }
.anket-ek-cevaplar .anket-dekont-ekle.yuklu { color: var(--text); border-color: var(--border); }
.anket-dekont { margin-top: 8px; }
.anket-odeme-not { font-size: 0.78rem; color: var(--text-muted); margin-top: 12px; line-height: 1.45; }
.anket-odeme-durum { font-size: 0.78rem; color: var(--text-muted); min-height: 1em; margin-top: 4px; }
@media (max-width: 380px) { .anket-odeme-deger.mono { font-size: 0.88rem; } .anket-odeme-kutu { padding-left: 11px; } }
/* 465: anketteki işi yüklenen firma — kartın altında Önerilen İşletmeler'e yönlendirme */
.anket-firma { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 10px; width: 100%; margin-top: 12px; padding: 10px 14px; border-radius: 11px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.anket-firma-ust { grid-column: 1; font-size: 0.74rem; color: var(--text-muted); }
.anket-firma-ad { grid-column: 1; font-weight: 700; font-size: 0.95rem; }
.anket-firma-ok { grid-column: 2; grid-row: 1 / span 2; font-size: 1.4rem; color: var(--accent); }
/* 466: ödeme kutusunda banka logosu + şube; ek soruda tek satır cevap (kirik); ölçü Kaydet girdiyle aynı boy */
.anket-odeme-lbl.banka { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; color: var(--text); font-size: 0.82rem; font-weight: 600; }
.anket-odeme-lbl.banka { flex-wrap: nowrap; gap: 12px; margin: 0 0 10px; padding: 8px 12px; border-radius: 11px; background: #fff; border: 1px solid #d9d4cb; color: #1d1d1b; }   /* 475: logo + şube tek beyaz kutu, satır boyu */
.anket-odeme-logo { flex: 0 0 auto; display: inline-flex; align-items: center; padding: 0; background: none; border: none; }
.anket-odeme-logo img { height: 16px; width: auto; display: block; }
.anket-odeme-sube { flex: 1 1 auto; min-width: 0; color: #1d1d1b; white-space: pre-line; line-height: 1.25; font-size: 0.76rem; }
/* 468: ödeme sorusu kartın içinde — başlığı tekrar etmesin, üstte ince çizgi */
.anket-odeme .anket-ek-soru.odeme-ici { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.anket-odeme .anket-ek-soru.odeme-ici > .anket-not-bas { display: none; }
.anket-odeme .anket-ek-soru.odeme-ici .anket-ek-cevaplar { margin-top: 0; }
/* 468: tavsiye kartında web / e-posta / Instagram simgeleri ve altta konum işaretli adres */
.simge-btn.web { color: var(--accent); }
.simge-btn.mail { color: #2f6fb3; border-color: rgba(47,111,179,.4); }
.simge-btn.insta { color: #c13584; border-color: rgba(193,53,132,.4); }
/* 470: adres satırı — solda yazılı yeşil "Yol tarifi" düğmesi (konum simgesi tam boy), sağda adres */
.tav-adres { display: flex; align-items: center; gap: 10px; margin-top: 10px; clear: both; }
.tav-yol { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; min-height: 42px; padding: 0 14px 0 10px; border-radius: 10px; border: 1px solid #1a7f5a; background: #1a7f5a; color: #fff; font: inherit; font-size: 0.86rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.tav-yol svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.tav-adres-metin { flex: 1 1 auto; min-width: 0; font-size: 0.82rem; line-height: 1.35; color: var(--text-muted); cursor: pointer; }
/* 471: tavsiyeler — iki ekleme düğmesi yan yana, altında arama */
.tav-ekle-satir { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tav-ekle-satir .tav-ekle-btn { width: 100%; margin: 0; }
.tav-ara { display: block; width: 100%; box-sizing: border-box; margin: 10px 0 2px; }
/* 476: anket bilgi kartı — ölçüler, öncesi/sonrası fotoğraflar (ölçü çizimi üstte), öneri, kasa */
.anket-bilgi { margin-top: 14px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
.anket-bilgi-metin, .anket-bilgi-oneri { font-size: 0.9rem; line-height: 1.5; white-space: pre-line; }
.anket-bilgi-oneri { margin-top: 10px; }
.anket-bilgi-not { font-size: 0.76rem; color: var(--text-muted); margin-top: 4px; }
.anket-fotolar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.anket-foto { margin: 0; cursor: zoom-in; }
.anket-foto-ic { position: relative; border-radius: 10px; overflow: hidden; background: #000; }
.anket-foto-ic img { display: block; width: 100%; height: auto; }
.anket-cizim { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.anket-foto figcaption { font-size: 0.78rem; font-weight: 700; text-align: center; margin-top: 4px; color: var(--text-muted); }
.anket-foto.buyuk { cursor: default; }
.anket-foto-perde .step-card { max-width: 560px; }
/* X fotoğrafın altında kalıyordu (fotoğraf sonra geliyor, konumlu): üste al, fotoğraf X'in altından başlasın */
.anket-foto-perde .step-close { z-index: 3; }
.anket-foto-perde .anket-foto.buyuk { margin-top: 44px; }
.anket-kasa { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--anket-iyi, #287540) 16%, var(--surface)); font-size: 0.9rem; }
.anket-kasa span { font-size: 0.8rem; color: var(--text-muted); }
.anket-foto-yukle { display: grid; gap: 6px; align-content: start; }
.anket-foto-yukle img { width: 100%; border-radius: 9px; display: block; }
.anket-foto-bos { display: grid; place-items: center; min-height: 120px; border: 1px dashed var(--border); border-radius: 9px; font-size: 0.8rem; color: var(--text-muted); }
.anket-foto-yukle .anket-secenek-ekle { margin: 0; }
/* 473: veri girişlerini düzenle penceresi */
.anket-veri-liste { max-height: 52vh; }
.anket-veri-satir { border-bottom: 1px solid var(--line); }
.anket-veri-satir:last-child { border-bottom: none; }
.anket-veri-ust { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 11px; border: none; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.anket-veri-ok { flex: 0 0 auto; font-size: 0.78rem; font-weight: 700; color: var(--accent); }
.anket-veri-ed { padding: 4px 11px 12px; }
.anket-veri-bas { font-size: 0.78rem; font-weight: 700; color: var(--text-muted); margin: 8px 0 4px; }
.anket-veri-olcu { width: 100%; box-sizing: border-box; min-height: 40px; padding: 8px 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; margin-bottom: 8px; }
.anket-veri-alt { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; margin-top: 8px; }
.anket-veri-alt .step-primary { margin: 0; }
.anket-veri-sil { min-height: 44px; padding: 0 14px; border-radius: 10px; border: 1px solid var(--danger); background: transparent; color: var(--danger); font: inherit; font-weight: 600; cursor: pointer; }
.anket-veri-bilgi { font-size: 0.82rem; color: var(--anket-iyi, var(--accent)); font-weight: 600; margin: 0 0 8px; }
/* 470: anket formunda ek soru / ödeme kartları */
.anket-yeni-alt-bas { margin: 16px 0 4px; font-weight: 700; font-size: 0.95rem; }
.anket-yeni-ipucu { margin: 0 0 10px; font-size: 0.78rem; color: var(--text-muted); line-height: 1.45; }
.anket-ekform { margin: 0 0 12px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); }
.anket-ekform-ust { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.anket-ekform textarea { width: 100%; box-sizing: border-box; }
.anket-ek-cevaplar.kirik .anket-ek-cvp { white-space: pre-line; line-height: 1.2; padding: 8px 4px; font-size: 0.9rem; }
.anket-olcu .anket-sakin-satir { align-items: stretch; }
.anket-olcu .anket-sakin-satir .carsi-yorum-gonder { align-self: stretch; height: auto; min-height: 42px; margin: 0; }
.anket-yon button.sil { color: var(--danger); border-color: var(--danger); background: transparent; }
@media (prefers-reduced-motion: reduce) { .anket-cubuk { transition: none; } }
.anket-not { margin-top: 12px; padding: 12px; border: 1px dashed var(--accent); border-radius: 11px; }
.anket-not-bas { display: block; font-weight: 700; font-size: 0.9rem; color: var(--text); }
.anket-not-hatirlat { margin: 4px 0 8px; font-size: 0.82rem; line-height: 1.5; color: var(--text-muted); }
.anket-not-alt { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.anket-not-durum { font-size: 0.82rem; color: var(--text-muted); }
/* Anket düzenleme + PDF (376) */
.anket-yeni-bas { margin: 0 0 10px; font-weight: 800; color: var(--text); }
.anket-vazgec { display: block; width: 100%; margin-top: 8px; padding: 10px; border-radius: 10px; border: 1px solid var(--border); background: transparent; color: var(--text); font: inherit; cursor: pointer; }
/* Ana sayfa düğmesi (379) + anket formu seçenek kutuları */
.brand .ana-sayfa-btn { margin-left: auto; }
.anket-aciklama-gir { overflow: hidden; resize: none; min-height: 0; }
.anket-secenek-liste { display: grid; gap: 8px; margin-bottom: 8px; }
.anket-secenek-satir { display: flex; align-items: center; gap: 8px; }
.anket-secenek-no { flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--surface-2); color: var(--text-muted); font-size: 0.8rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums; }
.anket-yeni .anket-secenek-satir input[type="text"] { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
.anket-secenek-sil { flex: 0 0 42px; height: 42px; border-radius: 9px; border: 1px solid var(--border); background: transparent; color: var(--text-muted); font: inherit; cursor: pointer; }
.anket-secenek-sil[hidden] { display: block !important; visibility: hidden; }
.anket-secenek-ekle { display: block; width: 100%; margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; border: 1px dashed var(--accent); background: transparent; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }
.anket-secenek-ekle[hidden] { display: none; }
/* Anket paylaş (380) */
.anket-paylas { display: flex; align-items: center; justify-content: center; min-height: 42px; margin-top: 12px; padding: 9px 12px; border-radius: 10px; background: #1faa52; color: #fff; font-size: 0.9rem; font-weight: 700; text-decoration: none; }
.anket-paylas:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.anket-kart.vurgu { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); transition: box-shadow .3s; }
/* Anket sıralama + kapananlar (382) */
.anket-ust { align-items: center; }
.anket-sira { margin-left: auto; display: flex; gap: 6px; }
.anket-sira button { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-weight: 800; line-height: 1; cursor: pointer; }
.anket-sira button:disabled { opacity: .35; cursor: default; }
.anket-kapali-btn { display: block; width: 100%; margin: 4px 0 14px; padding: 11px 14px; border-radius: 10px; border: 1px solid var(--border); background: transparent; color: var(--text-muted); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.anket-bos-not { margin: 0 0 14px; padding: 14px; border-radius: 12px; background: var(--surface-2); color: var(--text-muted); font-size: 0.9rem; text-align: center; }
/* "Uygulamada zaten kayıtlıyım" (383) */
.kayit-getir-ac { display: block; width: 100%; margin: 0 0 14px; padding: 11px 14px; border-radius: 10px; border: 1px dashed var(--accent); background: transparent; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }
.kayit-getir-ac[hidden] { display: none !important; }
#kayitGetirPerde.kayit-getir-perde { z-index: 800; }
/* Aile üyesi + yönetici iletişim (384) */
.aile-ekle-ac { display: block; width: 100%; margin: 10px 0 0; padding: 11px 14px; border-radius: 10px; border: 1px dashed var(--accent); background: transparent; color: var(--accent); font: inherit; font-weight: 700; cursor: pointer; }
.aile-ekle-ac[hidden] { display: none !important; }
#aileEklePerde.aile-perde { z-index: 800; }
.aile-perde .aile-yil { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.95rem; margin-bottom: 14px; }
.aile-cakisma-btn { display: block; width: 100%; margin: 10px 0 0; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--accent); background: transparent; color: var(--accent); font: inherit; font-weight: 700; text-align: left; line-height: 1.35; cursor: pointer; }
.aile-cakisma-btn small { display: block; margin-top: 4px; font-size: 0.8rem; font-weight: 500; color: var(--text-muted); }
.aile-cakisma-btn:disabled { opacity: 0.55; cursor: default; }
.yon-iletisim { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.yon-iletisim[hidden] { display: none !important; }
.yon-iletisim .admin-btn { width: auto; margin: 0; padding: 5px 10px; font-size: 0.76rem; white-space: nowrap; }
.yon-iletisim .admin-btn.wa { color: #1faa52; border-color: #1faa52; }
/* 383 düğmesi kartın sağ üstündeki ✕ ile çakışmasın (384) */
.step-card > .kayit-getir-ac { width: calc(100% - 46px); }
/* Profil şeridi ikincil düğme (385): yazı şeridin yazı rengini alır — iki temada da okunur */
.guncelleme-seridi button.serit-ikincil { background: transparent; color: var(--accent-ink); border: 1px solid currentColor; opacity: 0.9; }
/* Aydınlatma metni uygulama içi perde (385) */
.kvkk-perde { position: fixed; inset: 0; z-index: 100000; display: flex; flex-direction: column; background: var(--bg); }
.kvkk-perde[hidden] { display: none !important; }
.kvkk-perde-ust { flex: none; display: flex; align-items: center; padding: calc(8px + env(safe-area-inset-top)) 12px 8px; border-bottom: 1px solid var(--border); background: var(--surface); }
.kvkk-perde-geri { border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-weight: 700; padding: 8px 16px; border-radius: 999px; cursor: pointer; }
.kvkk-perde-geri:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.kvkk-perde-cerceve { flex: 1; width: 100%; border: 0; background: var(--bg); }
/* Bilgilerim plaka kutuları (386): otopark yeri kadar; iki araç yan yana */
.profil-plakalar { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); column-gap: 10px; }
.profil-plakalar > input { display: block; width: 100%; min-width: 0; box-sizing: border-box; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-size: 0.95rem; letter-spacing: 0.01em; }
/* Bilgilerim: kullanıcı değiştir · çıkış · üyeliği sil; Silinen üyeler (387) */
.profil-foto-dugmeler { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.profil-foto-dugmeler .profil-foto-btn { font-family: inherit; line-height: 1.2; cursor: pointer; }
.profil-cikis-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text-muted); cursor: pointer; }
.profil-cikis-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.profil-cikis-btn:hover, .profil-cikis-btn:focus-visible { color: var(--danger); border-color: var(--danger); }
.profil-uyelik-sil { display: block; width: 100%; margin: 30px 0 0; padding: 12px 14px; border: 1px solid var(--danger); border-radius: 12px; background: transparent; color: var(--danger); font: inherit; font-weight: 700; cursor: pointer; }
#uyelikSilPerde.uyelik-perde { z-index: 800; }
.uyelik-nedenler { display: flex; flex-direction: column; gap: 8px; margin: 4px 0 12px; }
.uyelik-neden { display: flex; align-items: center; gap: 10px; padding: 11px 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--surface-2); color: var(--text); font-weight: 600; cursor: pointer; }
.uyelik-neden input { margin: 0; flex: none; }
.uyelik-neden:has(input:checked) { border-color: var(--danger); }
.step-primary.uyelik-sil-onay { background: var(--danger); color: #fff; }
.hub-selam-ad.tiklanir .hub-selam-isim::after { content: " ›"; color: var(--text-muted); font-weight: 600; }
/* 388: otopark kat/renk mobilde alt satır; Bilgilerim iki satır; silinen üyeler satır silme */
.kat-ek { white-space: nowrap; }
@media (max-width: 600px) { .kat-ek { display: block; } }
.profil-foto-btn.profil-cikis-btn { width: auto; height: auto; padding: 9px 13px; color: var(--text); }
@media (max-width: 420px) { .profil-foto-dugmeler .profil-foto-btn { padding: 8px 10px; font-size: 0.82rem; } }
.admin-list-row .silinen-sil { margin-left: auto; flex: none; }
/* 394: sakin seçenek ekler + ek sorular ve dökümleri */
.anket-sakin-ekle { margin-top: 12px; padding: 12px; border: 1px dashed var(--border); border-radius: 11px; }
.anket-sakin-satir { display: flex; gap: 8px; margin-top: 6px; }
.anket-sakin-satir input[type="text"] { flex: 1 1 auto; min-width: 0; min-height: 42px; padding: 9px 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; box-sizing: border-box; }
.anket-sakin-satir .carsi-yorum-gonder { flex: 0 0 auto; }
.anket-sakin-ekle .anket-not-durum { margin-top: 6px; }
.anket-ek { margin-top: 12px; padding: 12px; border: 1px solid var(--accent); border-radius: 11px; display: grid; gap: 12px; grid-template-columns: minmax(0, 1fr); }   /* 459: uzun cevaplar kutuyu taşırmasın */
.anket-ek-cevaplar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.anket-ek-cvp { min-height: 44px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-weight: 600; cursor: pointer; }
.anket-ek-cvp.secili { border-color: var(--accent); background: var(--accent); color: var(--accent-ink, #1a1206); }
.anket-ek-cvp.uyari.secili { border-color: var(--danger); background: var(--danger); color: #fff; }
.anket-ek-cvp:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.anket-ek-bekle { margin-top: 6px; font-size: 0.82rem; color: var(--danger); }
.anket-ek-dokum { display: grid; gap: 4px; margin: -2px 2px 4px; }
.anket-ek-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 0.8rem; }
.anket-ek-etiket { color: var(--text-muted); }
.anket-ek-chip { padding: 2px 8px; border-radius: 999px; background: var(--surface-2); color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }
.anket-ek-chip.uyari { color: var(--danger); }
.anket-ek-chip.sifir { font-weight: 400; color: var(--text-muted); }
.anket-genel { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.anket-genel-bas { margin-bottom: 6px; font-size: 0.82rem; font-weight: 700; color: var(--text); }
.anket-genel .anket-ek-dokum { margin: 0; }
/* 395: sorun var / yok renkleri (dataviz doğrulayıcısından geçti: açık #e56b57/#17602f, koyu #e06b58/#287540;
   renk körlüğünde ayrım sınırda — her yerde ⚠ / ✓ simgesi ve yazı da var). */
:root { --anket-kotu: #e56b57; --anket-iyi: #17602f; }
:root[data-theme="dark"] { --anket-kotu: #e06b58; --anket-iyi: #287540; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --anket-kotu: #e06b58; --anket-iyi: #287540; } }
.anket-ek-chip.uyari { color: var(--text); background: color-mix(in srgb, var(--anket-kotu) 22%, transparent); }
.anket-ek-chip.iyi { color: var(--text); background: color-mix(in srgb, var(--anket-iyi) 22%, transparent); }
.anket-ek-chip.sifir.uyari, .anket-ek-chip.sifir.iyi { background: var(--surface-2); color: var(--text-muted); }
.anket-ek-cvp.uyari.secili { border-color: var(--anket-kotu); background: var(--anket-kotu); color: #fff; }
.anket-ek-cvp.iyi.secili { border-color: var(--anket-iyi); background: var(--anket-iyi); color: #fff; }
.az-kart { max-width: 640px; }
.az-govde { display: grid; gap: 14px; }
.az-alt-bas { margin: 0; font-size: 0.85rem; color: var(--text-muted); }
.az-lejant { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 0.82rem; color: var(--text); }
.az-lejant span::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.az-lej-k::before { background: var(--anket-kotu); }
.az-lej-i::before { background: var(--anket-iyi); }
.az-ozet { padding: 12px 14px; border-radius: 12px; background: var(--surface-2); display: grid; gap: 6px; }
.az-ozet-genel { font-size: 0.88rem; color: var(--text-muted); }
.az-ozet-sonuc { font-size: 0.98rem; line-height: 1.5; color: var(--text); }
.az-ozet-liste { margin: 0; padding-left: 18px; font-size: 0.85rem; line-height: 1.55; color: var(--text); }
.az-ozet-liste .zayif, .az-not { color: var(--text-muted); }
.az-not { margin: 0; font-size: 0.78rem; line-height: 1.5; }
.az-bolum { display: grid; gap: 10px; }
.az-bolum h3 { margin: 4px 0 0; font-size: 0.95rem; color: var(--text); }
.az-satir { display: grid; gap: 4px; }
.az-satir.zayif { opacity: .55; }
.az-ust { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 0.85rem; }
.az-ad { min-width: 0; color: var(--text); font-weight: 600; overflow-wrap: anywhere; }
.az-say { flex: 0 0 auto; display: flex; gap: 8px; font-variant-numeric: tabular-nums; color: var(--text-muted); }
.az-say b { color: var(--text); min-width: 3.2em; text-align: right; }
.az-bar { display: flex; gap: 2px; height: 12px; }
.az-bar span { flex-basis: 0; min-width: 4px; }
.az-bar .kotu { background: var(--anket-kotu); border-radius: 4px 0 0 4px; }
.az-bar .iyi { background: var(--anket-iyi); border-radius: 0 4px 4px 0; }
.az-bar span:only-child { border-radius: 4px; }
.az-tablo-kap { overflow-x: auto; }
.az-tablo { border-collapse: collapse; width: 100%; font-size: 0.82rem; font-variant-numeric: tabular-nums; }
.az-tablo th, .az-tablo td { padding: 6px 8px; border: 1px solid var(--line); text-align: center; color: var(--text); }
.az-tablo thead th { background: var(--surface-2); }
.az-tablo td.dolu { background: color-mix(in srgb, var(--anket-kotu) calc(var(--oran) * 45%), transparent); }
/* 396: seçenek altındaki döküm ızgara — her soru bir satır, cevaplar eşit genişlikte (Alper'in çizimi). */
.anket-ek-dokum:not(.genel) { gap: 6px; margin: 2px 0 6px; }
.anket-ek-dokum:not(.genel) .anket-ek-satir { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; }
.anket-ek-dokum:not(.genel) .anket-ek-chip { display: block; text-align: center; padding: 5px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* 396b: "Bütün katılanlar" kartı — dolgulu başlık, her soru bir satır: tanım + cevaplar eşit sütunlarda. */
.anket-genel { margin-top: 14px; padding: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.anket-genel-bas { margin: 0; padding: 8px 12px; background: var(--surface-2); border-bottom: 1px solid var(--line); font-size: 0.85rem; font-weight: 700; color: var(--text); }
.anket-genel .anket-ek-dokum { margin: 0; padding: 10px 12px; gap: 6px; }
.anket-genel .anket-ek-satir { display: grid; gap: 6px; align-items: center; }
.anket-genel .anket-ek-etiket { font-size: 0.8rem; font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.anket-genel .anket-ek-chip { display: block; text-align: center; padding: 5px 4px; font-size: 0.76rem; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; border-radius: 9px; }
.anket-genel-not { padding: 0 12px 10px; font-size: 0.76rem; color: var(--text-muted); }
/* 397: plan tahmini notu */
.anket-ek-oto { margin-top: 6px; font-size: 0.78rem; color: var(--text-muted); }
/* 399: ekleme düğmesi yalnız "+" — kare, yazı alanı kalan genişliği alır. */
.anket-sakin-satir .anket-sakin-arti { flex: 0 0 46px; width: 46px; height: 46px; min-height: 46px; margin: 0; align-self: center; padding: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 700; line-height: 1; border-radius: 9px; }
.anket-sakin-satir input[type="text"] { height: 46px; min-height: 46px; }
/* 400: "Bütün katılanlar" sorun var / yok gruplarına ayrılmış */
.anket-genel-alt { border-top: 1px solid var(--line); }
.anket-genel-alt:first-of-type { border-top: 0; }
.anket-genel-alt-bas { padding: 7px 12px; font-size: 0.82rem; font-weight: 700; color: var(--text); }
.anket-genel-alt.uyari .anket-genel-alt-bas { background: color-mix(in srgb, var(--anket-kotu) 16%, transparent); }
.anket-genel-alt.iyi .anket-genel-alt-bas { background: color-mix(in srgb, var(--anket-iyi) 16%, transparent); }
.anket-genel-alt .anket-ek-dokum { padding-top: 8px; }
.anket-genel-bos { padding: 8px 12px 10px; font-size: 0.8rem; color: var(--text-muted); }
/* 402: eksik oy uyarısı */
.anket-eksik-uyari { margin: 0 0 10px; padding: 9px 12px; border-radius: 10px; background: color-mix(in srgb, var(--anket-kotu) 18%, transparent); color: var(--text); font-size: 0.86rem; font-weight: 600; line-height: 1.45; }
/* 403: tamamlamayanlar listesi (yönetici) */
.anket-eksik-liste { margin-top: 8px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--anket-kotu) 12%, transparent); font-size: 0.8rem; line-height: 1.5; color: var(--text); }
.anket-eksik-liste b { display: block; margin-bottom: 2px; }
/* 404: analiz PDF düğmesi */
.az-pdf { display: block; width: 100%; min-height: 44px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--accent); background: var(--accent); color: var(--accent-ink, #1a1206); font: inherit; font-weight: 700; cursor: pointer; }
.az-pdf.hazir { background: transparent; color: var(--accent); }
.az-pdf:disabled { opacity: .6; cursor: default; }
/* 405: tamamlamayanlar satırı + iletişim düğmeleri */
.anket-eksik-kisi { padding: 6px 0; border-top: 1px dashed var(--line); }
.anket-eksik-kisi:first-of-type { border-top: 0; }
.anket-eksik-kisi .yon-iletisim { margin-top: 4px; }
/* 406: kısa anket kartı */
.anket-kart.kisa { padding: 0; }
.anket-kisa-btn { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; width: 100%; padding: 14px 16px; border: 0; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.anket-kisa-baslik { grid-column: 1; font-weight: 700; font-size: 0.98rem; line-height: 1.35; }
.anket-kisa-meta { grid-column: 1; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 0.8rem; color: var(--text-muted); }
.anket-kisa-meta .ok { color: var(--anket-iyi); font-weight: 700; }
.anket-kisa-meta .eksik { color: var(--danger); font-weight: 700; }
.anket-kisa-ok { grid-column: 2; grid-row: 1 / span 2; font-size: 1.4rem; line-height: 1; color: var(--text-muted); }
.anket-kisa-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: 14px; }
.anket-kucult { margin-left: auto; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); background: transparent; color: var(--text-muted); font: inherit; font-size: 0.78rem; cursor: pointer; }
.anket-sira + .anket-kucult { margin-left: 0; }
/* 409: tüyo kısa kartları */
.tuyo-kisa { display: flex; align-items: stretch; gap: 8px; margin: 0 0 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.tuyo-kisa.acik { border-color: var(--accent); }
.tuyo-kisa-btn { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 0; background: transparent; color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.tuyo-kisa-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: 14px; }
.tuyo-kisa-yazi { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; }
.tuyo-kisa-yazi b { font-size: 0.98rem; line-height: 1.35; }
.tuyo-kisa-yazi small { font-size: 0.8rem; color: var(--text-muted); }
.tuyo-kisa-ok { flex: none; font-size: 1.3rem; color: var(--text-muted); }
.tuyo-sira { flex: none; display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 6px 8px 6px 0; }
.tuyo-sira button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface-2); color: var(--text); font: inherit; font-weight: 800; cursor: pointer; }
.tuyo-sira button:disabled { opacity: .35; cursor: default; }
.tuyo-icerik { margin: -4px 0 16px; }
/* 410: imzasız kişiler listesi (Sağlık özeti) */
.saglik-imzasiz { margin-top: 8px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.saglik-imzasiz summary { cursor: pointer; padding: 10px 12px; font-weight: 700; }
.saglik-imzasiz-kisi { padding: 8px 12px; border-top: 1px solid var(--border); font-size: 0.86rem; }
.saglik-imzasiz-kisi small { display: block; color: var(--text-muted); }
.saglik-imzasiz-kisi .yon-iletisim { margin-top: 6px; }
/* 411: cihaz rehberi (Tüyolar) */
.cihaz-kodlar { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 8px; }
.cihaz-kodlar span, .cihaz-kod { font-family: ui-monospace, "SF Mono", Consolas, monospace; font-size: 0.8rem; font-weight: 700; padding: 3px 8px; border-radius: 7px; background: var(--surface-2); border: 1px solid var(--border); overflow-wrap: anywhere; }
.cihaz-madde { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cihaz-madde li b { display: block; margin-bottom: 2px; }
.cihaz-madde li > span { color: var(--text-muted); font-size: 0.9rem; line-height: 1.5; }
.cihaz-sik { font-style: normal; font-weight: 700; font-size: 0.78rem; color: var(--accent); }
.cihaz-tablo-kap { overflow-x: auto; }
.cihaz-tablo { border-collapse: collapse; width: 100%; font-size: 0.88rem; }
.cihaz-tablo th, .cihaz-tablo td { text-align: left; vertical-align: top; padding: 7px 6px; border-bottom: 1px solid var(--border); }
.cihaz-tablo th { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.kilavuz-kart.cihaz-guvenlik { border-color: var(--danger-border, var(--danger)); }

/* 438: Yönetici paneli → Hesaba geçiş. */
#hesapGecisBolum .hg-oran b { font-size: 1.5rem; font-variant-numeric: tabular-nums; }
#hesapGecisBolum .hg-oran span { color: var(--text-muted); font-size: 0.88rem; }
#hesapGecisBolum .hg-cubuk { height: 10px; background: var(--border); border-radius: 99px; overflow: hidden; margin: 8px 0 4px; }
#hesapGecisBolum .hg-cubuk i { display: block; height: 100%; background: var(--anket-iyi, #2f7a4b); border-radius: 99px; }
#hesapGecisBolum .hg-kucuk, #hesapGecisBolum .hg-grafik-alt { font-size: 0.78rem; color: var(--text-muted); }
#hesapGecisBolum .hg-grafik { display: flex; align-items: flex-end; gap: 4px; height: 56px; margin: 12px 0 2px; }
#hesapGecisBolum .hg-grafik i { flex: 1; min-height: 2px; background: var(--anket-iyi, #2f7a4b); border-radius: 3px 3px 0 0; opacity: 0.85; }
#hesapGecisBolum .hg-grafik-alt { display: flex; justify-content: space-between; }
#hesapGecisBolum .hg-ciplar { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 8px; }
#hesapGecisBolum .hg-ciplar button { border: 1px solid var(--border); background: var(--surface); color: var(--text-muted); border-radius: 8px; padding: 6px 12px; font: inherit; font-size: 0.8rem; font-weight: 600; cursor: pointer; }
#hesapGecisBolum .hg-ciplar button.acik { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
#hesapGecisBolum .hg-satir { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; padding: 10px 0; border-top: 1px solid var(--border); }
#hesapGecisBolum .hg-bilgi { min-width: 0; flex: 1 1 220px; }
#hesapGecisBolum .hg-bilgi b { margin-right: 6px; }
#hesapGecisBolum .hg-alt { font-size: 0.8rem; color: var(--text-muted); overflow-wrap: anywhere; }
#hesapGecisBolum .rozet { font-size: 0.72rem; font-weight: 700; border-radius: 99px; padding: 2px 8px; white-space: nowrap; }
#hesapGecisBolum .rozet.var { background: var(--surface-2); color: var(--anket-iyi, #2f7a4b); border: 1px solid currentColor; }
#hesapGecisBolum .rozet.yok { background: var(--surface-2); color: var(--anket-kotu, #b3432f); border: 1px solid currentColor; }
#hesapGecisBolum .admin-logout { margin-top: 12px; }

/* 440: hesap ekranında bu cihazdaki üye. */
.hesap-kim { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 12px; padding: 10px 12px; border-radius: 10px; background: var(--surface-2); border: 1px solid var(--border); }
.hesap-kim span { font-size: 0.78rem; color: var(--text-muted); }
.hesap-kim b { font-size: 1rem; }
.hesap-kim button { align-self: flex-start; margin-top: 6px; background: none; border: 0; padding: 2px 0; color: var(--accent); font: inherit; font-size: 0.86rem; font-weight: 700; cursor: pointer; }
.hesap-kim[hidden] { display: none; }

/* 441: Google ile giriş düğmesi. */
.hesap-google { margin: 4px 0 10px; }
.hesap-google[hidden] { display: none; }
.hesap-google button { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 12px; border-radius: 11px; border: 1px solid var(--border); background: #fff; color: #1f1f1f; font: inherit; font-weight: 700; cursor: pointer; }
.hesap-ya-da { display: flex; align-items: center; gap: 10px; margin: 12px 0 2px; color: var(--text-muted); font-size: 0.8rem; }
.hesap-ya-da::before, .hesap-ya-da::after { content: ""; flex: 1; height: 1px; background: var(--border); }

/* 442: Bilgilerim — giriş e-postası. */
#profilEposta.salt-okunur { opacity: 0.8; }
.profil-eposta-degistir { align-self: flex-start; margin: 6px 0 4px; background: none; border: 0; padding: 2px 0; color: var(--accent); font: inherit; font-size: 0.86rem; font-weight: 700; cursor: pointer; }
.profil-eposta-degistir[hidden] { display: none; }

/* 444: tek ekranlı giriş — şifreyi göster/gizle. */
.hesap-goz { display: block; align-self: flex-end; justify-self: end; margin: 0 0 4px auto; background: none; border: 0; padding: 2px 0; color: var(--accent); font: inherit; font-size: 0.82rem; font-weight: 700; cursor: pointer; }

/* 445: display:flex [hidden]'ı eziyordu — ad yokken "Hoş geldin komşu" görünüyordu. */
.hub-selam[hidden] { display: none; }

/* 446: hesap ekranında başarı mesajı — yeşil, belirgin. */
.step-error.basari { background: rgba(47, 122, 75, 0.14); color: #1f6b3d; border: 1.5px solid rgba(47, 122, 75, 0.55); font-weight: 600; white-space: pre-line; }
:root[data-theme="dark"] .step-error.basari { background: rgba(108, 194, 141, 0.16); color: #8fd6aa; border-color: rgba(108, 194, 141, 0.5); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .step-error.basari { background: rgba(108, 194, 141, 0.16); color: #8fd6aa; border-color: rgba(108, 194, 141, 0.5); } }
button[disabled]#hesapUnuttum, button[disabled]#hesapYeniden { opacity: 0.7; cursor: default; }

/* 448: Microsoft düğmesi Google'ın altında. */
.hesap-google button + button { margin-top: 8px; }

/* 450 */
.hesap-google button[hidden] { display: none; }

/* 452: duyuru kapsamı (birleşik site) + eksikler blok süzgeci. Kapsam arayüzü yalnız window.__siteKapsam.secim iken çizilir. */
.duyuru-kapsam-kutu { margin: 12px 0 4px; }
.duyuru-kapsam-kutu .lbl { font-size: 0.82rem; font-weight: 700; color: var(--text-muted); margin-bottom: 6px; }
.kapsam-secenek { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.kapsam-secenek button, .kapsam-bloklar button { border: 1.5px solid var(--border); background: var(--surface); color: var(--text); border-radius: 10px; font: inherit; font-size: 0.84rem; font-weight: 700; padding: 8px 4px; cursor: pointer; line-height: 1.15; }
.kapsam-secenek button.on, .kapsam-bloklar button.on { border-color: var(--accent); background: var(--accent); color: var(--accent-ink); }
.kapsam-bloklar { display: grid; grid-template-columns: repeat(6, 1fr); gap: 5px; margin-top: 8px; }
.kapsam-bloklar button { padding: 7px 0; font-size: 0.8rem; position: relative; }
.kapsam-bloklar button.yakin:not(.on)::after { content: ""; position: absolute; top: 4px; right: 4px; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.kapsam-bloklar[hidden] { display: none; }
.kapsam-yakin-ekle { margin-top: 6px; background: none; border: 0; color: var(--accent); font: inherit; font-size: 0.82rem; font-weight: 700; cursor: pointer; padding: 2px 0; }
.kapsam-ozet { margin-top: 6px; font-size: 0.8rem; color: var(--text-muted); }
.duyuru-kapsam { font-size: 0.78rem; color: var(--text-muted); margin-top: 2px; }
.ayip-blok-suz { display: block; width: 100%; margin: 8px 0 0; padding: 9px 10px; border-radius: 10px; border: 1.5px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.9rem; }
/* 479: banka durumu (ilerleme), sakinin kendi banka teyidi, ekstre yükleme adımları, sözleşme taslağı */
.anket-banka { display: block; }
.anket-banka-bas { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.anket-banka-bas span { font-size: 0.78rem; color: var(--text-muted); }
.anket-banka-cubuk { display: flex; height: 10px; margin: 8px 0 6px; border-radius: 999px; overflow: hidden; background: color-mix(in srgb, var(--text) 12%, transparent); }
.anket-banka-cubuk i { display: block; height: 100%; background: var(--anket-iyi); }
.anket-banka-cubuk i.kismi { background: var(--anket-kotu); }
.anket-banka-sayi { font-size: 0.86rem; font-weight: 600; }
.anket-kasa .anket-banka-alt { display: block; margin-top: 2px; font-size: 0.78rem; color: var(--text-muted); }
.anket-banka-ben { margin-top: 8px; padding: 8px 10px; border-radius: 8px; font-size: 0.84rem; background: color-mix(in srgb, var(--text) 7%, transparent); }
.anket-banka-ben.iyi { background: color-mix(in srgb, var(--anket-iyi) 18%, transparent); font-weight: 600; }
.anket-banka-ben.uyari { background: color-mix(in srgb, var(--anket-kotu) 22%, transparent); font-weight: 600; }
.anket-veri-bas.iyi { color: var(--anket-iyi); }
.anket-veri-bas.uyari { color: var(--anket-kotu); }
.anket-ekstre-yol { margin: 4px 0 8px; padding-left: 20px; font-size: 0.86rem; line-height: 1.45; }
.anket-ekstre-yol li { margin: 2px 0; }
.anket-ekstre-not { font-size: 0.78rem; color: var(--text-muted); margin: 0 0 10px; }
.anket-sozlesme-metin { width: 100%; min-height: 50vh; font-size: 16px; line-height: 1.45; white-space: pre-wrap; }
/* 480: tam ölçü − / + (1 mm) */
.anket-olcu .anket-sakin-satir .anket-olcu-adim { flex: 0 0 46px; width: 46px; min-height: 46px; margin: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; font: inherit; font-size: 1.5rem; font-weight: 700; line-height: 1; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text); cursor: pointer; }
.anket-olcu .anket-sakin-satir .anket-olcu-adim:active { background: color-mix(in srgb, var(--accent) 22%, var(--surface)); }
.anket-olcu .anket-sakin-satir input[type="text"] { text-align: center; }
/* 485: öneri çizimi ve satış bağlantısı */
.anket-bilgi-oneri .anket-oneri-gorsel { display: block; width: 100%; height: auto; margin: 10px 0 4px; border-radius: 10px; background: #fff; cursor: zoom-in; }
.anket-bilgi-oneri .anket-oneri-bag { display: inline-block; margin-top: 8px; padding: 8px 12px; border-radius: 9px; background: var(--accent); color: #fff; font-weight: 700; font-size: 0.86rem; text-decoration: none; }
/* 488: anket katılanları (yönetici) */
.anket-katilan-ara { width: 100%; box-sizing: border-box; min-height: 42px; margin: 4px 0 8px; padding: 9px 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 16px; }
.anket-katilan { align-items: center; gap: 8px; }
.anket-katilan .anket-toplu-ad { min-width: 0; flex: 1 1 auto; }
.anket-katilan .anket-katilan-ek { color: var(--text-muted); }
.anket-katilan-dugme { display: flex; gap: 6px; flex: none; }
.anket-katilan-dugme .simge-btn { width: 38px; height: 38px; }
.anket-katilan-yok { font-size: 0.76rem; color: var(--text-muted); }
/* 489: ilgilenilmesi gerekenler */
.anket-ilgi-ust { display: flex; gap: 8px; align-items: center; }
.anket-ilgi-ust .anket-katilan-ara { flex: 1 1 auto; margin: 4px 0 8px; }
.anket-ilgi-dugmeler { display: flex; gap: 6px; flex: none; }
.anket-ilgi-ust button { min-height: 42px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.86rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.anket-ilgi-ust .anket-ilgi-sira { background: #25d366; border-color: #25d366; color: #fff; }
@media (max-width: 480px) { .anket-ilgi-ust { flex-wrap: wrap; } .anket-ilgi-ust .anket-katilan-ara { flex-basis: 100%; margin-bottom: 0; } .anket-ilgi-dugmeler { width: 100%; } .anket-ilgi-dugmeler button { flex: 1 1 0; } }
.anket-ilgi-rozetler { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.anket-ilgi-rozet { font-size: 0.72rem; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: color-mix(in srgb, var(--text) 10%, transparent); }
.anket-ilgi-rozet.yanlis, .anket-ilgi-rozet.eksik, .anket-ilgi-rozet.bankadaYok { background: color-mix(in srgb, var(--anket-kotu) 25%, transparent); }
.anket-ilgi-rozet.fazla { background: color-mix(in srgb, #e0a020 30%, transparent); }
.anket-ilgi-siradaki { margin: 6px 0 8px; padding: 10px; border-radius: 10px; border: 1px solid #25d366; }
.anket-katilan.secili { outline: 2px solid #25d366; outline-offset: -2px; }

/* 492: ankette hangi daireler için + 3 banyo / adet */
.anket-daire { margin: 10px 0 4px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-2); display: grid; gap: 8px; }
.anket-daire-sat { display: grid; gap: 6px; padding-top: 6px; border-top: 1px dashed var(--border); }
.anket-daire > .anket-daire-sat:first-child { border-top: 0; padding-top: 0; }
.anket-daire-ad { font-weight: 600; font-size: 0.9rem; color: var(--text); }
.anket-daire .anket-ek-cevaplar { display: flex; flex-wrap: wrap; gap: 6px; }
.anket-daire .anket-ek-cvp { flex: 1 1 0; min-width: 90px; }
.anket-daire-top { font-weight: 700; font-size: 0.92rem; color: var(--text); }   /* 493: --accent-ink açık temada beyazdı */

/* 496: Ödeme takibi (yönetici) — Gündem'in en üstünde, anketlerden önce */
.anket-takip { margin: 0 0 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); overflow: hidden; }
.anket-takip-bas { display: block; width: 100%; text-align: left; padding: 12px 14px; border: 0; background: transparent; color: var(--text); font: inherit; font-weight: 700; font-size: 0.95rem; cursor: pointer; }
.anket-takip > :not(.anket-takip-bas) { margin-left: 12px; margin-right: 12px; }
.anket-takip-not { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 6px; }
.anket-takip-ozet { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 0.82rem; font-weight: 600; margin-bottom: 6px; }
.anket-takip-cipler { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.anket-takip-cip { padding: 6px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.82rem; cursor: pointer; }
.anket-takip-cip.secili { background: var(--accent); border-color: var(--accent); color: #fff; }
.anket-takip-kaydir { overflow-x: auto; margin-bottom: 12px; -webkit-overflow-scrolling: touch; }
.anket-takip-tablo { width: 100%; border-collapse: collapse; font-size: 0.8rem; min-width: 460px; }
.anket-takip-tablo th { text-align: left; font-size: 0.74rem; color: var(--text-muted); font-weight: 700; padding: 6px; border-bottom: 1px solid var(--border); white-space: nowrap; }
.anket-takip-tablo td { padding: 6px; border-bottom: 1px solid var(--border); vertical-align: top; }
.anket-takip-tablo td small { display: block; font-size: 0.72rem; color: var(--text-muted); margin-top: 2px; }
.anket-takip-tablo td.daire { white-space: nowrap; }
.anket-takip-tablo td.daire small { white-space: normal; max-width: 140px; }
.anket-takip-tablo tr.sorun td.daire { box-shadow: inset 3px 0 0 var(--anket-kotu); }
.anket-takip-tablo .d-tam { color: var(--anket-iyi); font-weight: 600; }
.anket-takip-tablo .d-eksik, .anket-takip-tablo .d-fazla, .anket-takip-tablo .d-odemedi { color: var(--anket-kotu); font-weight: 600; }
.anket-takip-tablo .d-beyan { color: var(--text); font-style: italic; }
.anket-takip-tablo .d-yok { color: var(--text-muted); }
.anket-takip-tablo td.toplam { white-space: nowrap; font-weight: 600; }
.anket-takip-tablo tr.alt td { font-weight: 700; border-bottom: 0; }

/* 499: ödeme takibinde iletişim sütunu ve sıradaki satır */
.anket-takip-tablo td.iletisim { white-space: nowrap; }
.anket-takip-tablo td.iletisim .anket-katilan-dugme { display: flex; gap: 4px; }
.anket-takip-tablo tr.secili td { background: var(--accent-soft, rgba(193, 83, 30, 0.08)); }
.anket-takip-tablo .anket-ilgi-rozetler { margin-top: 3px; }
.anket-takip-arac .anket-ilgi-ust { margin-bottom: 4px; }

/* 500: ödeme takibinde tip ve banyo sütunları */
.anket-takip-tablo td.tip, .anket-takip-tablo td.banyo { white-space: nowrap; text-align: center; }
.anket-takip-tablo td.banyo.cok { font-weight: 800; color: var(--text); }

/* 501: ödeme takibinde dekont düğmesi */
.anket-takip-dekont { display: inline-block; margin-top: 3px; margin-right: 4px; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.74rem; cursor: pointer; }

/* 502: ödeme takibinde hesap satırları */
.anket-takip-ozet { flex-direction: column; gap: 6px; }
.anket-takip-hesap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 6px 10px; border-radius: 8px; background: var(--bg); border: 1px solid var(--border); }
.anket-takip-hesap .iban { font-variant-numeric: tabular-nums; letter-spacing: 0.02em; }
.anket-takip-hesap small { flex-basis: 100%; font-weight: 400; color: var(--text-muted); font-size: 0.76rem; }

/* 503: hesap kartı — tek kart, anket başına bir satır */
.anket-takip-ozet { padding: 8px 10px; border-radius: 10px; background: var(--bg); border: 1px solid var(--border); gap: 4px; }
.anket-takip-hesap { padding: 0; border: 0; background: transparent; border-radius: 0; gap: 2px 12px; }
.anket-takip-hesap .bakiye { font-weight: 600; }

/* 504: Düzelttim */
.anket-takip-coz { display: block; margin-top: 4px; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--anket-iyi); background: var(--surface); color: var(--anket-iyi); font: inherit; font-size: 0.74rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.anket-takip-coz.geri { border-color: var(--border); color: var(--text-muted); font-weight: 400; }
.anket-takip-tablo tr.cozuldu td { opacity: 0.6; }
.anket-takip-tablo tr.cozuldu td.iletisim { opacity: 1; }

/* 508: Katılanlar paneli sekmeleri */
.anket-panel-sekme { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 4px; padding-right: 40px; }
.anket-panel-sekme button { padding: 6px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.8rem; cursor: pointer; }
.anket-panel-sekme button.secili { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600; cursor: default; }

/* 509: imzalı sözleşme */
.anket-sozlesme-imzali { margin: 4px 0 8px; font-size: 0.85rem; color: var(--anket-iyi); font-weight: 600; }
.anket-sozlesme-ac { border: 0; background: none; padding: 0; color: var(--accent); font: inherit; text-decoration: underline; cursor: pointer; }

/* 510: Şampiyonlar Gecesi tanıtım ekranı (spor detayı üstünde, tam ekran). Renkler SABİT — tema bağımsız gece sahnesi. */
.sg { position: fixed; inset: 0; z-index: 900; overflow-y: auto; color: #fff; font-family: inherit;
  background: radial-gradient(120% 70% at 50% 0%, #2b4fd6 0%, #0b1e6e 38%, #050b2e 70%, #02051a 100%);
  animation: sg-gir .45s ease-out both; }
.sg.kapaniyor { animation: sg-cik .26s ease-in both; }
@keyframes sg-gir { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }
@keyframes sg-cik { to { opacity: 0; transform: scale(.98); } }
.sg::after { content: ""; position: fixed; left: 0; right: 0; bottom: 0; height: 26%; pointer-events: none;
  background: linear-gradient(180deg, transparent, rgba(24, 120, 60, .35) 40%, rgba(16, 84, 40, .75)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 40px, transparent 40px 80px); }
.sg-isik { position: fixed; top: -10%; width: 55%; height: 80%; pointer-events: none; opacity: .5; filter: blur(6px);
  background: conic-gradient(from 160deg at 50% 0%, transparent 0deg, rgba(160, 200, 255, .55) 12deg, transparent 26deg); animation: sg-isik 6s ease-in-out infinite alternate; }
.sg-isik.sol { left: -10%; transform-origin: 50% 0; }
.sg-isik.sag { right: -10%; transform-origin: 50% 0; animation-delay: -3s; }
@keyframes sg-isik { from { transform: rotate(-14deg); } to { transform: rotate(14deg); } }
.sg-yildizlar i { position: fixed; width: 3px; height: 3px; border-radius: 50%; background: #fff; box-shadow: 0 0 6px #9cc4ff; animation: sg-pirilti 2.6s ease-in-out infinite; pointer-events: none; }
@keyframes sg-pirilti { 0%, 100% { opacity: .15; transform: scale(.6); } 50% { opacity: 1; transform: scale(1.4); } }
.sg-kapat { position: fixed; top: 14px; right: 14px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(0,0,0,.35); color: #fff; font-size: 1.1rem; cursor: pointer; }
.sg-ic { position: relative; z-index: 1; max-width: 560px; margin: 0 auto; padding: 22px 14px 28px; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.sg-ust { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: 100%; gap: 8px; }
.sg-slogan { font-family: "Brush Script MT", "Segoe Script", cursive; font-size: 1.05rem; line-height: 1.15; opacity: .92; transform: rotate(-8deg); text-shadow: 0 2px 8px rgba(0,0,0,.6); }
.sg-slogan.sag { text-align: right; transform: rotate(8deg); }
.sg-amblem { text-align: center; }
.sg-amblem svg { width: 74px; height: 74px; filter: drop-shadow(0 0 12px rgba(150,190,255,.8)); animation: sg-don 14s linear infinite; }
@keyframes sg-don { to { transform: rotate(360deg); } }
.sg-baslik { font-weight: 900; font-size: 1.45rem; letter-spacing: .06em; line-height: 1.02; margin-top: 4px; text-shadow: 0 0 18px rgba(120,170,255,.9); }
.sg-alt { font-size: .72rem; letter-spacing: .14em; opacity: .75; margin-top: 4px; }
.sg-saha { display: grid; grid-template-columns: 1fr auto 1fr; gap: 6px; width: 100%; align-items: start; }
.sg-takim { display: flex; flex-direction: column; align-items: center; min-width: 0; }
.sg-takim.siyah { animation: sg-sol .6s .15s cubic-bezier(.2,.9,.3,1.2) both; }
.sg-takim.beyaz { animation: sg-sag .6s .15s cubic-bezier(.2,.9,.3,1.2) both; }
@keyframes sg-sol { from { opacity: 0; transform: translateX(-60px); } to { opacity: 1; transform: none; } }
@keyframes sg-sag { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: none; } }
.sg-forma { width: 92%; max-width: 160px; filter: drop-shadow(0 8px 14px rgba(0,0,0,.6)); }
.sg-takim-ad { margin: -4px 0 8px; padding: 4px 10px; font-weight: 900; font-size: 1.02rem; letter-spacing: .03em; transform: skewX(-8deg); white-space: nowrap; }
.sg-takim.siyah .sg-takim-ad { background: #0b0d10; color: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.15); }
.sg-takim.beyaz .sg-takim-ad { background: #fff; color: #0c1640; }
.sg-takim ol { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 4px; }
.sg-takim li { display: flex; align-items: stretch; border-radius: 6px; overflow: hidden; font-weight: 800; font-size: .86rem; animation: sg-satir .4s calc(.45s + var(--i) * .08s) ease-out both; }
@keyframes sg-satir { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.sg-takim li b { flex: 0 0 26px; display: flex; align-items: center; justify-content: center; font-size: .82rem; }
.sg-takim li span { flex: 1 1 auto; min-width: 0; padding: 6px 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sg-takim li small { display: block; font-size: .6rem; font-weight: 600; opacity: .7; letter-spacing: .05em; }
.sg-takim.siyah li { background: rgba(5,8,14,.86); border: 1px solid rgba(255,255,255,.18); }
.sg-takim.siyah li b { background: rgba(255,255,255,.1); }
.sg-takim.beyaz li { background: rgba(255,255,255,.94); color: #0c1640; }
.sg-takim.beyaz li b { background: #dfe5f0; }
.sg-orta { display: flex; flex-direction: column; align-items: center; padding-top: 28px; }
.sg-vs { font-weight: 900; font-style: italic; font-size: 2.1rem; text-shadow: 0 0 16px #8fb5ff, 0 0 2px #fff; animation: sg-nabiz 1.4s ease-in-out infinite; }
@keyframes sg-nabiz { 50% { transform: scale(1.14); } }
.sg-kupa { width: 84px; margin-top: 10px; filter: drop-shadow(0 0 14px rgba(170,200,255,.55)); animation: sg-yukari .8s .3s ease-out both; }
@keyframes sg-yukari { from { opacity: 0; transform: translateY(30px) scale(.8); } to { opacity: 1; transform: none; } }
.sg-bilgi { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; background: rgba(2,6,24,.82); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; overflow: hidden; }
.sg-bilgi > div { display: flex; flex-direction: column; align-items: center; padding: 10px 4px; gap: 2px; text-align: center; }
.sg-bilgi > div + div { border-left: 1px solid rgba(255,255,255,.16); }
.sg-bilgi span { font-size: 1.1rem; }
.sg-bilgi b { font-weight: 900; font-size: .92rem; letter-spacing: .02em; }
.sg-bilgi small { font-size: .66rem; opacity: .75; letter-spacing: .08em; }
.sg-son { font-family: "Brush Script MT", "Segoe Script", cursive; font-size: 1.35rem; text-shadow: 0 0 12px rgba(150,190,255,.9); }
.sg-devam { padding: 10px 22px; border-radius: 999px; border: 0; background: linear-gradient(90deg, #4f7cff, #8a5cff); color: #fff; font: inherit; font-weight: 800; cursor: pointer; box-shadow: 0 6px 18px rgba(80,110,255,.5); }
@media (max-width: 400px) { .sg-baslik { font-size: 1.2rem; } .sg-slogan { font-size: .9rem; } .sg-takim li { font-size: .78rem; } .sg-vs { font-size: 1.7rem; } .sg-kupa { width: 66px; } }
@media (prefers-reduced-motion: reduce) { .sg, .sg *, .sg-isik { animation: none !important; } }

/* 511: Koru Şampiyonlar Ligi — top, KORU yazısı, yeni forma/kupa ölçüleri */
.sg-amblem .sg-top { width: 86px; height: 86px; filter: drop-shadow(0 0 16px rgba(150,190,255,.85)) drop-shadow(0 6px 10px rgba(0,0,0,.5)); animation: sg-don 16s linear infinite; }
.sg-koru { margin-top: 8px; font-weight: 800; font-size: .9rem; letter-spacing: .55em; padding-left: .55em; opacity: .95; }
.sg-baslik { font-family: Georgia, "Times New Roman", serif; font-weight: 700; font-size: 1.7rem; letter-spacing: .04em; line-height: 1; margin-top: 2px; }
.sg-ust { grid-template-columns: 1fr auto 1fr; }
.sg-forma { width: 100%; max-width: 170px; filter: drop-shadow(0 10px 16px rgba(0,0,0,.65)); }
.sg-takim-ad { margin-top: -10px; }
.sg-kupa { width: 92px; margin-top: 6px; filter: drop-shadow(0 0 18px rgba(170,200,255,.6)) drop-shadow(0 8px 12px rgba(0,0,0,.6)); }
@media (max-width: 400px) { .sg-baslik { font-size: 1.4rem; } .sg-kupa { width: 74px; } .sg-amblem .sg-top { width: 72px; height: 72px; } }

/* 514: firmaya ödenen satırı */
.anket-banka-cikis { margin-top: 4px; font-size: 0.82rem; font-weight: 600; color: var(--text); }

/* 516: belgeler ve Birlikte Başardıklarımız */
.anket-belgeler { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.anket-belge-btn { padding: 6px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 0.8rem; cursor: pointer; }
.basari-kart .basari-tarih { font-size: 0.78rem; font-weight: 700; color: var(--accent); letter-spacing: .02em; }
.basari-kart .basari-sayi { font-size: 0.85rem; font-weight: 600; color: var(--anket-iyi); margin: 2px 0 6px; }
.basari-fotolar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; }
.basari-fotolar figure { margin: 0; }
.basari-fotolar img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; display: block; }
.basari-fotolar figcaption { font-size: 0.75rem; color: var(--text-muted); text-align: center; margin-top: 3px; }

/* 518: geniş Katılanlar ekranı — masaüstünde yönetici paneli kadar geniş, telefonda tam genişlik */
.step-card.form-perde-kart.anket-genis-kart { width: min(1240px, 96vw); max-width: min(1240px, 96vw); }
.anket-takip.tek { border: 0; background: transparent; }
.anket-takip.tek > :not(.anket-takip-bas) { margin-left: 0; margin-right: 0; }
.anket-takip-tablo td.tel { white-space: nowrap; font-variant-numeric: tabular-nums; }
.anket-takip-tablo td.cevap { min-width: 120px; font-size: 0.78rem; color: var(--text-muted); }

/* 520: yönetici çoklu saat düğmesi */
.spor-saat-ek { border: 1px dashed var(--accent); background: transparent; color: var(--accent); border-radius: 10px; font: inherit; font-weight: 800; font-size: 1.05rem; cursor: pointer; min-height: 38px; }
.spor-saat-ek.acik { background: var(--accent); color: #fff; border-style: solid; }
.spor-saat.secili.ek { opacity: .85; outline: 2px dashed var(--accent); outline-offset: -4px; }
.spor-saat.gec { border-style: dashed; }
.spor-saat-not { font-size: 0.8rem; color: var(--text-muted); margin: 6px 0 0; }

/* 523/524: turnuva kartı ve paneli; etkinlik sıralama okları */
.spor-turnuva-kart { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 12px; padding: 14px 16px; border-radius: 16px; border: 1px solid var(--accent); background: linear-gradient(90deg, rgba(193, 83, 30, .10), transparent); color: var(--text); font: inherit; text-align: left; cursor: pointer; }
.spor-turnuva-kart .ic { font-size: 1.8rem; }
.spor-turnuva-kart .yazi { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.spor-turnuva-kart .yazi b { font-size: 1rem; }
.spor-turnuva-kart .yazi small { color: var(--text-muted); font-size: .8rem; }
.spor-turnuva-kart .ok { font-size: 1.5rem; color: var(--accent); }
.spor-turnuva-perde { max-width: 640px; }
.tv-program { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 6px; margin: 8px 0; }
.tv-gun { padding: 8px; border-radius: 10px; background: var(--bg); border: 1px solid var(--border); text-align: center; display: flex; flex-direction: column; }
.tv-gun.final { border-color: var(--accent); background: rgba(193, 83, 30, .10); }
.tv-gun small { color: var(--text-muted); font-size: .75rem; }
.tv-not { font-size: .82rem; color: var(--text-muted); margin: 4px 0; }
.tv-ust { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; align-items: center; }
.tv-ust button, .tv-dugmeler button { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; }
.tv-ust .tv-kur { background: var(--accent); border-color: var(--accent); color: #fff; }
.tv-ust .tv-hakem.alindi { color: var(--anket-iyi); border-color: var(--anket-iyi); }
.tv-benim { font-weight: 700; color: var(--anket-iyi); }
.tv-form { padding: 10px; border: 1px dashed var(--accent); border-radius: 12px; margin-bottom: 10px; }
.tv-form input { width: 100%; box-sizing: border-box; min-height: 42px; padding: 8px 12px; border-radius: 9px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: 16px; }
.tv-blok-sec { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.tv-blok-btn { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-weight: 700; cursor: pointer; }
.tv-blok-btn.secili { background: var(--accent); border-color: var(--accent); color: #fff; }
.tv-bas { font-size: .95rem; margin: 14px 0 6px; }
.tv-blok-bas { font-size: .78rem; font-weight: 700; color: var(--text-muted); margin: 8px 0 4px; }
.tv-takim { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); margin-bottom: 6px; }
.tv-takim.benim { border-color: var(--anket-iyi); }
.tv-takim-bas { display: flex; justify-content: space-between; gap: 8px; }
.tv-say { font-size: .8rem; color: var(--text-muted); }
.tv-oyuncular { font-size: .82rem; color: var(--text-muted); margin-top: 3px; }
.tv-dugmeler { display: flex; gap: 6px; margin-top: 6px; }
.tv-dugmeler .tv-katil { background: var(--accent); border-color: var(--accent); color: #fff; }
.tv-dugmeler .tv-sil { color: var(--anket-kotu); }
.tv-hakem-sat { font-size: .85rem; padding: 4px 0; border-bottom: 1px solid var(--border); }
.spor-kart { position: relative; }
.spor-sira { position: absolute; right: 10px; bottom: 10px; display: flex; gap: 4px; }
.spor-sira button { width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-weight: 700; cursor: pointer; }
.spor-sira button:disabled { opacity: .35; cursor: default; }

/* 525: rozet yazısı bulunduğu hücrenin renginden etkilenmesin (ödendi yeşili "Tam ölçü yazmadı"yı yeşil yapıyordu) */
.anket-takip-tablo .anket-ilgi-rozet { color: var(--text); font-style: normal; }
.anket-ilgi-rozet.olcuYok, .anket-ilgi-rozet.dekontYok { background: color-mix(in srgb, #e0a020 28%, transparent); }
.tv-kaptan { font-size: .85rem; font-weight: 600; margin-top: 3px; }   /* 527 */
.tv-dugmeler .tv-davet { background: #25d366; border-color: #25d366; color: #fff; }
.tv-oyuncu-liste { margin: 4px 0 0; padding-left: 22px; font-size: .85rem; columns: 2; column-gap: 16px; }   /* 529 */
.tv-oyuncu-liste li { break-inside: avoid; padding: 1px 0; }
.tv-dugmeler { flex-wrap: wrap; }
.tv-dugmeler .tv-davet-ic { background: var(--accent); border-color: var(--accent); color: #fff; }
.tv-davet-liste { display: flex; flex-direction: column; gap: 6px; max-height: 50vh; overflow-y: auto; margin: 10px 0; }
.tv-davet-sat { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; font-size: .9rem; }
.tv-davet-sat > span { flex: 1 1 auto; }
.tv-davet-sat .tv-cins { padding: 5px 10px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: .8rem; cursor: pointer; }
.tv-davet-sat .tv-cins.secili { background: var(--accent); border-color: var(--accent); color: #fff; }
.tv-yon-cins { margin-top: 10px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: .85rem; cursor: pointer; }
.kalinti-izler { margin: 4px 0 0; padding-left: 18px; font-size: .82rem; color: var(--text-muted); }   /* 534 */
.kalinti-izler li { padding: 1px 0; }
.profil-tel-dogru { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0 4px; font-size: .85rem; }   /* 535 */
.profil-tel-dogru .tamam { color: var(--anket-iyi); font-weight: 700; }
.profil-tel-dogru .eksik { color: var(--anket-kotu); font-weight: 700; }
.profil-tel-dogru button, .tel-dogrula-sonra { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; }
.tel-dogrula-sonra { display: block; margin: 10px auto 0; }
.tel-dogrula-not { font-size: .9rem; color: var(--text-muted); margin: 0 0 12px; }
#telDogrulaPerde input { width: 100%; box-sizing: border-box; font-size: 1.1rem; padding: 12px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); color: var(--text); margin-bottom: 8px; }
#telDogrulaKod { letter-spacing: .4em; text-align: center; }
.profil-cinsiyet { margin: 4px 0 10px; }   /* 540 */
.profil-cinsiyet-sec { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.profil-cinsiyet-sec button { padding: 9px 18px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: var(--text); font: inherit; font-weight: 600; cursor: pointer; }
.profil-cinsiyet-sec button.secili { background: var(--accent); border-color: var(--accent); color: #fff; }
.profil-cinsiyet-durum { font-size: .82rem; color: var(--text-muted); }
.giris-yap-hap { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 1000; padding: 14px 34px; border-radius: 999px; border: 0; background: var(--accent); color: #fff; font: inherit; font-weight: 700; font-size: 1.05rem; box-shadow: 0 6px 20px rgba(0,0,0,.18); cursor: pointer; }   /* 541 */
.hesap-tel-dogrula { display: block; width: 100%; margin: 10px 0 0; padding: 10px; border: 1px dashed var(--border); border-radius: 12px; background: transparent; color: var(--text-muted); font: inherit; font-size: .9rem; cursor: pointer; }   /* 542 */
.hesap-tel-dogrula b { color: var(--accent); }
.hesap-tel-dogrula[hidden] { display: none; }
.anket-takip-cozulen { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: .78rem; color: var(--anket-iyi, #17602f); }   /* 548 */
.anket-takip-cozulen button { border: 1px solid var(--border); background: var(--surface); color: var(--text-muted); border-radius: 999px; width: 26px; height: 26px; padding: 0; cursor: pointer; flex: none; }
.anket-duzelt-baslik { margin: 12px 0 4px; font-weight: 700; font-size: .9rem; }
.anket-duzelt-satir { display: flex; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; }
.anket-duzelt-satir input { width: 20px; height: 20px; flex: none; }
.anket-duzelt-not { width: 100%; box-sizing: border-box; }
/* ===== 550: GENİŞ EKRAN DÜZENİ (Alper, 05.10.2026) — masaüstü, tablet, yan çevrilmiş telefon. Telefon dikey görünüm DEĞİŞMEDİ. =====
   Masaüstü (≥1024): sayfalar 1240 px'e kadar genişler; ana ekran 3 sütun (Gündem · Acil · Rehber üstte yan yana, kutucuklar
   3'lü); tablo içeren pencereler (Ödeme takibi, Katılanlar) ekranı kullanır;
   Tablet dikey (700–1023): ana ekran ve sayfalar biraz genişler. Yan çevrilmiş telefon / yatay tablet: ana ekran 3 sütun ve
   kısa kutucuklar, böylece kaydırmadan sığar. */
@media (min-width: 1024px) {
  .shell { max-width: min(1240px, 94vw); }
  .hub-inner { max-width: 980px; }
  .hub-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .hub-btn.genis, .hub-btn.yayil { grid-column: span 1; }
  .hub-btn { min-height: 118px; }
  .hub-btn.genis { padding: 22px 20px; }
  .step-card:has(.anket-takip-tablo), .step-card:has(.anket-katilan-liste) { max-width: min(1240px, 96vw); }
  .anket-takip-tablo td.daire small { max-width: 220px; }
}
@media (min-width: 700px) and (max-width: 1023px) and (orientation: portrait) {
  .shell { max-width: min(900px, 94vw); }
  .hub-inner { max-width: 620px; }
  .hub-btn { min-height: 110px; }
}
@media (orientation: landscape) and (min-width: 600px) and (max-width: 1023px) {
  .shell { max-width: 96vw; }
  .hub { padding-top: 14px; }
  .hub-inner { max-width: 860px; }
  .hub-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .hub-btn.genis, .hub-btn.yayil { grid-column: span 1; }
  .hub-btn { min-height: 54px; padding: 8px 8px; gap: 4px; }
  .hub-btn .hub-ic { font-size: 1.35rem; }
  .hub-block { font-size: 1.5rem; }
  .hub-site { margin-bottom: 0; }
  .hub-btn.genis { padding: 12px 14px; gap: 10px; }
  .hub-btn.genis .hub-lb { font-size: 0.98rem; }
  .step-card { max-height: 92vh; }
}
/* 551 (Alper, 05.10.2026): masaüstü ana ekran dizilimi — Gündem en üstte tam genişlik; Acil · Otopark · Spor; Kesinti · Kargo ·
   Yardımlaşma; Tavsiyeler tek başına en solda; Rehber en altta tam genişlik. Acil Durum masaüstünde kutucuk biçiminde. */
@media (min-width: 1024px) {
  .hub-buttons #hubGundemBtn { grid-column: 1 / -1; justify-content: center; }
  .hub-buttons #hubRehberBtn { grid-column: 1 / -1; justify-content: center; }
  .hub-buttons #hubTavsiyeBtn { grid-column: 1; }
  .hub-buttons #hubEmergencyBtn { flex-direction: column; justify-content: center; text-align: center; gap: 10px; padding: 18px 10px; }
  .hub-buttons #hubEmergencyBtn .hub-ic { font-size: 1.7rem; }
  .hub-buttons #hubEmergencyBtn .hub-lb { font-size: 0.92rem; }
  .hub-buttons #hubGundemBtn, .hub-buttons #hubRehberBtn { min-height: 96px; }
}
/* 551: alt menüler (Rehber ön seçimi vb.) geniş ekranda da telefondaki gibi tek sütun, alt alta geniş kartlar. */
@media (min-width: 600px) {
  .alt-hub-govde { max-width: 760px; }
  .alt-hub-govde .hub-buttons { grid-template-columns: minmax(0, 1fr); }
  .alt-hub-govde .hub-btn, .alt-hub-govde .hub-btn.genis, .alt-hub-govde .hub-btn.yayil { grid-column: 1 / -1; }
}
/* 551: çok kartlı alt menü (7+ kart, ör. Site Rehberi) masaüstünde 3 sütun, sayfaya yayılır ve büyür; tek kalan son kart
   (ör. Ön Seçim) en altta tam satır. Az kartlı olanlar (Rehber ön seçimi) yukarıdaki kuralla tek sütun kalır. */
@media (min-width: 1024px) {
  .alt-hub-govde:has(#altHubBtnler > .hub-btn:nth-child(7)) { max-width: min(1240px, 94vw); }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) > .hub-btn { grid-column: auto; min-height: 120px; padding: 22px 24px; gap: 18px; }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) > .hub-btn:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) > .hub-btn:nth-last-child(2):nth-child(3n+1) { grid-column: span 1; }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) .hub-ic { font-size: 2.2rem; }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) .hub-lb { font-size: 1.15rem !important; }
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) .hub-alt { font-size: 0.9rem; }
}
/* geniş kartta yazı kesilmesin (telefonda tek satır kesmesi index.html'de) */
@media (min-width: 600px) {
  #altHubBtnler .hub-lb, #altHubBtnler .hub-alt { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; }
}
/* ===== 552 (Alper, 05.10.2026): MASAÜSTÜ ALT SAYFALAR — kart listeleri sayfaya yayılan ızgara. Başlık, not, düğme gibi
   kart olmayan çocuklar tam satır. Yalnız ≥1024 px; telefon ve tablet değişmedi. Yeni bir kart listesi eklersen buraya da yaz. ===== */
@media (min-width: 1024px) {
  /* Rehber gövdesi (kişiler, kurul, nöbetçi, muhtarlık…) */
  #rehberGovde { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #rehberGovde > * { grid-column: 1 / -1; }
  #rehberGovde > .rehber-kart { grid-column: auto; margin: 0; }
  #rehberGovde > .rehber-kart.kurul { display: block; width: auto; margin: 0; }
  #rehberGovde > .rehber-kart.kurul + .rehber-kart.kurul { margin-left: 0; }
  #rehberGovde > .nobetci-uyari { margin-left: 0; margin-right: 0; }
  /* Çarşı: sekmeler 3 × 2, kartlar 3 sütun */
  #rehberGovde > .carsi-ara, #rehberGovde > .carsi-ekle-btn { margin-left: 0; margin-right: 0; width: 100%; }
  #rehberGovde > .carsi-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-left: 0; margin-right: 0; }
  #rehberGovde > div:has(> .carsi-kart) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #rehberGovde > div:has(> .carsi-kart) > * { grid-column: 1 / -1; }
  #rehberGovde > div:has(> .carsi-kart) > .carsi-kart { grid-column: auto; margin: 0; }
  #rehberGovde > div:has(> .carsi-kart) > .carsi-ara-grup { margin-left: 0; margin-right: 0; }
  /* Gündem: kapalı (kısa) anket kartları 3 sütun; açık anket, ödeme takibi, formlar tam genişlik */
  #anketGundem, #anketBasari { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #anketGundem > *, #anketBasari > * { grid-column: 1 / -1; }
  #anketGundem > .anket-kart.kisa, #anketBasari > .anket-kart { grid-column: auto; margin: 0; }
  /* İlçe, Tüyolar, Formlar listeleri; Çevresel Sorunlar 2 sütun */
  #ilceGovde, #tuyoGovde, #formGovde { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #cevreGovde { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #ilceGovde > *, #tuyoGovde > *, #formGovde > *, #cevreGovde > * { grid-column: 1 / -1; }
  #ilceGovde > .tuyo-liste, #ilceGovde > .ilce-kart, #tuyoGovde > .tuyo-kisa, #formGovde > .tuyo-liste, #cevreGovde > .cevre-kart { grid-column: auto; margin: 0; }
  /* Tavsiyeler */
  #tavsiyeIsteListe, #tavsiyeListe { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #tavsiyeIsteListe > *, #tavsiyeListe > * { grid-column: 1 / -1; }
  #tavsiyeIsteListe > .tav-kart, #tavsiyeListe > .tav-kart { grid-column: auto; margin: 0; }
  /* Kesinti, Kargo, Yardımlaşma */
  #duyuruListe, #duyuruIkinciListe, #duyuruKapaliListe { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; padding: 0 20px; }
  #duyuruListe > .duyuru-kart, #duyuruIkinciListe > .duyuru-kart, #duyuruKapaliListe > .duyuru-kart { margin: 0; }
  /* Spor ve Eksik / Kusurlu İşler: içerik uzun, 2 sütun */
  #sporListe, #sporGecmisListe, #ayipListe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #sporListe > .spor-kart, #sporGecmisListe > .spor-kart, #ayipListe > .ayip-kart { margin: 0; }
}
/* 553 (Alper, 05.10.2026): "çok gerekmedikçe ekranı açmayalım" — masaüstünde sayfalar varsayılan 760 px'e döner; yalnız kart
   ızgarası olan sayfalar geniş (1140 px). Acil Durum, Otopark, Spor ve Kesinti/Kargo/Yardımlaşma ESKİSİ GİBİ (dar, alt alta).
   Tavsiyelerde kategori başlıkları masaüstünde gizli (kartta kategori zaten yazıyor), kartlar 3'lü akar. */
@media (min-width: 1024px) {
  .shell { max-width: 760px; }
  #rehberModule .shell, #tavsiyeModule .shell, #ilceModule .shell, #tuyoModule .shell, #formModule .shell,
  #cevreModule .shell, #ayipModule .shell, #altHubModule .shell { max-width: min(1140px, 92vw); }
  .alt-hub-govde:has(#altHubBtnler > .hub-btn:nth-child(7)) { max-width: min(1140px, 92vw); }
  #duyuruListe, #duyuruIkinciListe, #duyuruKapaliListe { display: block; padding: 0; }
  #duyuruListe > .duyuru-kart, #duyuruIkinciListe > .duyuru-kart, #duyuruKapaliListe > .duyuru-kart { margin: 0 20px 10px; }
  #sporListe, #sporGecmisListe { display: block; }
  #sporListe > .spor-kart, #sporGecmisListe > .spor-kart { margin: 0 0 10px; }
  #tavsiyeListe > .tav-grup { display: none; }
}
/* 553: geniş sayfalarda içerik alanı (kilavuz-govde, varsayılan 640 px) sayfa genişliğini kullanır; ızgaradaki rehber kartında
   bilgi üstte, düğmeler altta tam genişlik (dar sütunda yan yana sığmıyordu: yazı eziliyor, düğme taşıyordu). */
@media (min-width: 1024px) {
  #rehberModule .kilavuz-govde, #ilceModule .kilavuz-govde, #tuyoModule .kilavuz-govde, #formModule .kilavuz-govde, #cevreModule .kilavuz-govde { max-width: none; }
  #rehberGovde > .rehber-kart.tek { flex-direction: column; align-items: stretch; row-gap: 10px; }
  #rehberGovde > .rehber-kart.tek .rehber-bilgi { flex: none; }
  #rehberGovde > .rehber-kart.tek .rehber-btnler { flex-wrap: wrap; }
  #rehberGovde > .rehber-kart { padding: 14px 16px; }
}
/* 553: tek kayıtlı rehber sayfaları (muhtarlık, aile hekimi, taksi — değerlendirme bloğu olan) ve en çok 2 kartlık listeler
   ızgaraya bölünmez: telefondaki gibi alt alta, 760 px ortalı. */
@media (min-width: 1024px) {
  #rehberGovde:has(> .rehber-kart .carsi-puan-say), #rehberGovde:not(:has(> .rehber-kart ~ .rehber-kart ~ .rehber-kart)) { display: block; max-width: 760px; }
  #rehberGovde:has(> .rehber-kart .carsi-puan-say) > .rehber-kart, #rehberGovde:not(:has(> .rehber-kart ~ .rehber-kart ~ .rehber-kart)) > .rehber-kart { margin: 0 0 10px; }
  #rehberGovde:has(> .rehber-kart .carsi-puan-say) > .rehber-kart.tek, #rehberGovde:not(:has(> .rehber-kart ~ .rehber-kart ~ .rehber-kart)) > .rehber-kart.tek { flex-direction: row; align-items: center; }
  #rehberGovde:has(> .rehber-kart .carsi-puan-say) > .rehber-kart.tek .rehber-bilgi, #rehberGovde:not(:has(> .rehber-kart ~ .rehber-kart ~ .rehber-kart)) > .rehber-kart.tek .rehber-bilgi { flex: 1; }
}
/* 554: geniş sayfalarda BÜTÜN içerik alanları sayfaya yayılır (tek tek sayfa adı yazmadan); ilçe kartı düğmeleri dar sütunda
   alt satıra sarar. */
@media (min-width: 1024px) {
  #rehberModule .shell .kilavuz-govde, #ilceModule .shell .kilavuz-govde, #tuyoModule .shell .kilavuz-govde, #formModule .shell .kilavuz-govde,
  #cevreModule .shell .kilavuz-govde, #rehberGovde, #ilceGovde, #tuyoGovde, #formGovde, #cevreGovde { max-width: none !important; width: 100%; }
  .ilce-dugmeler { flex-wrap: wrap; }
}
/* 554: Uygulama Rehberi (kılavuz) geniş: bölüm kartları 2 sütun, kart olmayanlar tam satır. */
@media (min-width: 1024px) {
  #kilavuzModule .shell { max-width: min(1140px, 92vw); }
  #kilavuzModule .kilavuz-govde { max-width: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
  #kilavuzModule .kilavuz-govde > * { grid-column: 1 / -1; }
  #kilavuzModule .kilavuz-govde > .kilavuz-kart { grid-column: auto; margin: 0; }
}
/* 555 (Alper): Tüyolar ve Gündem ızgara DEĞİL — kartlar alt alta (sayfa geniş kalır; Ödeme takibi tablosu için). */
@media (min-width: 1024px) {
  #tuyoGovde, #anketGundem, #anketBasari { display: block; }
  #tuyoGovde > .tuyo-kisa { margin: 0 0 10px; }
  #anketGundem > .anket-kart.kisa, #anketBasari > .anket-kart { margin: 0 0 14px; }
}
/* 556 (Alper): Eksik ve Kusurlu İşler, Çevresel Sorunlar, Formlar da alt alta ("şimdilik; artarsa ızgara öner"). Alt alta
   sayfalar (bunlar + Tüyolar) 900 px — satırlar okunur uzunlukta kalsın. */
@media (min-width: 1024px) {
  #ayipModule .shell, #cevreModule .shell, #formModule .shell, #tuyoModule .shell { max-width: 900px; }
  #ayipListe, #cevreGovde, #formGovde { display: block; }
  #ayipListe > .ayip-kart { margin: 0 0 12px; }
  #cevreGovde > .cevre-kart, #formGovde > .tuyo-liste { margin: 0 0 12px; }
}
/* 557 (Alper): çok kartlı alt menüde tek kalıp tam satıra yayılan son kartın içeriği (simge + yazı) ortalı. */
@media (min-width: 1024px) {
  .alt-hub-govde #altHubBtnler:has(> .hub-btn:nth-child(7)) > .hub-btn:last-child:nth-child(3n+1) { justify-content: center; }
}
/* 558 (Alper): masaüstü ana ekran — Rehber son satırın ortasında (Tavsiyeler'in sağı, sağı boş), kutucuk biçiminde.
   Masaüstünde yazılar büyük: kök yazı boyu 17 px (rem tabanlı her şey orantılı büyür), ana ekran simge ve etiketleri ayrıca büyük. */
@media (min-width: 1024px) {
  html { font-size: 17px; }
  .hub-buttons #hubRehberBtn { grid-column: 2; flex-direction: column; justify-content: center; text-align: center; gap: 10px; padding: 18px 10px; min-height: 118px; }
  .hub-buttons .hub-btn .hub-ic, .hub-buttons #hubEmergencyBtn .hub-ic, .hub-buttons #hubRehberBtn .hub-ic { font-size: 2.3rem; }
  .hub-buttons .hub-btn .hub-lb, .hub-buttons #hubEmergencyBtn .hub-lb, .hub-buttons #hubRehberBtn .hub-lb { font-size: 1.12rem; }
  .hub-buttons #hubGundemBtn .hub-ic { font-size: 2.4rem; }
  .hub-buttons #hubGundemBtn .hub-lb { font-size: 1.35rem; }
}
@media (min-width: 1024px) { .anket-bilgi .anket-foto, .anket-bilgi img { cursor: default !important; } }   /* 559 */
/* 560 (Alper, 06.10.2026): masaüstünde BÜTÜN sayfalar aynı genişlikte — Tavsiyeler ölçüsü (1140 px), ana ekran dâhil.
   Alt alta olan sayfalar alt alta kalır; yalnız genişlik eşitlendi. Yönetici paneli kendi ölçüsünde (.admin-card). */
@media (min-width: 1024px) {
  .shell, #ayipModule .shell, #cevreModule .shell, #formModule .shell, #tuyoModule .shell { max-width: min(1140px, 92vw); }
  .hub-inner { max-width: min(1140px, 92vw); }
  .kilavuz-govde { max-width: none; }
  .alt-hub-govde { max-width: min(1140px, 92vw); }
}
/* 560 (Alper): masaüstünde pencereler geniş (420 → 760 px; kısa onay penceresi 520 px). */
@media (min-width: 1024px) {
  .step-card { max-width: 760px; }
  .onay-card { max-width: 520px; }
}
/* 560 (Alper: "kartlarda ahenk — isimler, butonlar, değerlendirme ip gibi tek sıra"): masaüstü tavsiye ızgarasında kartlar
   aynı satırda eşit boyda; iç sıra sabit: isim (tek satır) · kategori rozetleri (tek satır) · iletişim düğmeleri · açıklama,
   fotoğraf, adres · EN ALTA yaslı: tavsiye eden, paylaş/düzenle/sil, değerlendirme, fiyatlar. */
@media (min-width: 1024px) {
  #tavsiyeIsteListe, #tavsiyeListe { align-items: stretch; }
  #tavsiyeIsteListe > .tav-kart, #tavsiyeListe > .tav-kart { display: flex; flex-direction: column; }
  #tavsiyeIsteListe > .tav-kart > *, #tavsiyeListe > .tav-kart > * { order: 9; }
  #tavsiyeModule .tav-kart > .ad { order: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #tavsiyeModule .tav-kart > .rozetler { order: 2; float: none; display: flex; flex-direction: row; justify-content: flex-start; align-items: center; text-align: left; flex-wrap: nowrap; gap: 6px; margin: 6px 0 10px; overflow: hidden; }
  #tavsiyeModule .tav-kart > .rozetler .rz { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
  #tavsiyeModule .tav-kart > .simge-iletisim { order: 3; margin-bottom: 10px; }
  #tavsiyeModule .tav-kart > .aciklama { order: 4; }
  #tavsiyeModule .tav-kart > .tav-foto-satir, #tavsiyeModule .tav-kart > .tav-foto-davet { order: 5; }
  #tavsiyeModule .tav-kart > .tav-adres { order: 6; }
  #tavsiyeModule .tav-kart > .alt { order: 7; margin-top: auto; clear: none; }
  #tavsiyeModule .tav-kart > .yon { order: 8; clear: none; }
  #tavsiyeModule .tav-kart > .yon > * { flex: 0 1 auto; min-width: 0; white-space: nowrap; }
}
.yazdir-secenek-sutun { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }   /* 561 */
@media (min-width: 600px) { .yazdir-secenek-sutun { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
