﻿/* ==========================================================================
   PAMUKKALE ELİT PERFORMANS SPOR KULÜBÜ — TEK ANA STİL DOSYASI
   pol.css  ·  v0.1 (Tasarım Kartelası)
   --------------------------------------------------------------------------
   KURAL: Projede başka hiçbir .css dosyası oluşturulmaz. Tüm stiller,
   tüm roller (Veli / Antrenör / Yönetim) ve tüm sayfalar bu dosyadadır.
   Yapı:  1) Tokenlar  2) Reset  3) Tipografi  4) Layout  5) Bileşenler
          6) Ekranlar  7) Yardımcılar  8) Responsive
   ========================================================================== */

@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/barlow-400.ttf') format('truetype')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/barlow-500.ttf') format('truetype')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-600.ttf') format('truetype')}
@font-face{font-family:'Barlow';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-700.ttf') format('truetype')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/barlow-condensed-600.ttf') format('truetype')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/barlow-condensed-700.ttf') format('truetype')}

/* ==========================================================================
   1) TASARIM TOKENLARI
   ========================================================================== */
:root{
  /* --- Marka renkleri (logodan türetildi) --- */
  --pol-blue-50:#EEF0FE;  --pol-blue-100:#DDE0FD;  --pol-blue-200:#BCC1FB;
  --pol-blue-300:#8F97F6;  --pol-blue-400:#5C66EE;  --pol-blue-500:#2B2FD6;
  --pol-blue-600:#2124B8;  --pol-blue-700:#1A1C93;  --pol-blue-800:#14166F;
  --pol-blue-900:#0E1050;

  --pol-orange-50:#FEF3E9; --pol-orange-100:#FDE3CC; --pol-orange-200:#FAC79A;
  --pol-orange-300:#F7A55F; --pol-orange-400:#F58C36; --pol-orange-500:#F47B20;
  --pol-orange-600:#DC6612; --pol-orange-700:#B24F0D;

  --pol-red-50:#FDECEC;   --pol-red-500:#E8232A;   --pol-red-600:#C71A20;
  --pol-sand:#F7D6AF;     --pol-sand-soft:#FDF2E4;

  /* --- Nötrler --- */
  --pol-ink:#0E1130;
  --pol-n-0:#FFFFFF;  --pol-n-25:#FBFCFE; --pol-n-50:#F5F7FB; --pol-n-100:#EDF0F6;
  --pol-n-200:#DFE4EE; --pol-n-300:#C6CDDB; --pol-n-400:#98A2B7; --pol-n-500:#6B7590;
  --pol-n-600:#4D566E; --pol-n-700:#363E52; --pol-n-800:#232939; --pol-n-900:#141828;

  /* --- Projenin tüm nötr ayırıcı ve çerçeve çizgileri --- */
  --pol-line-width:1px;
  --pol-line-color:var(--pol-n-200);
  --pol-line-border:var(--pol-line-width) solid var(--pol-line-color);

  /* --- Semantik --- */
  --pol-success:#12A150; --pol-success-bg:#E7F7EE; --pol-success-tx:#0A6B34;
  --pol-warning:#E8A200; --pol-warning-bg:#FEF6E0; --pol-warning-tx:#8A6100;
  --pol-danger:#E8232A;  --pol-danger-bg:#FDECEC;  --pol-danger-tx:#9E1116;
  --pol-info:#2B2FD6;    --pol-info-bg:#EEF0FE;    --pol-info-tx:#1A1C93;

  /* --- Rol renkleri: rozet/vurgu için. Giriş ekranında rol SEÇİLMEZ,
         telefon numarasından otomatik belirlenir. --- */
  --pol-role-veli:var(--pol-blue-500);
  --pol-role-antrenor:var(--pol-orange-500);
  --pol-role-yonetim:var(--pol-ink);

  /* --- Uygulama (modül) akzan renkleri: dashboard kartı + sol menü --- */
  --pol-app-1:#2B2FD6;  /* Devamlılık   */
  --pol-app-2:#F47B20;  /* Performans   */
  --pol-app-3:#12A150;  /* Aidat        */
  --pol-app-4:#7A3FF2;  /* Yarış Takvimi*/
  --pol-app-5:#0E9EA8;  /* Sonuçlar     */
  --pol-app-6:#E8232A;  /* Barajlar     */

  /* --- Tipografi --- */
  --pol-font:'Barlow',-apple-system,'Segoe UI',Roboto,sans-serif;
  --pol-font-cond:'Barlow Condensed','Barlow',-apple-system,'Segoe UI',sans-serif;
  --pol-fs-11:.6875rem; --pol-fs-12:.75rem;  --pol-fs-13:.8125rem;
  --pol-fs-14:.875rem;  --pol-fs-15:.9375rem;--pol-fs-16:1rem;
  --pol-fs-18:1.125rem; --pol-fs-20:1.25rem; --pol-fs-24:1.5rem;
  --pol-fs-28:1.75rem;  --pol-fs-34:2.125rem;--pol-fs-44:2.75rem;

  /* --- Uzay / radius / gölge --- */
  --pol-sp-1:4px; --pol-sp-2:8px;  --pol-sp-3:12px; --pol-sp-4:16px;
  --pol-sp-5:20px;--pol-sp-6:24px; --pol-sp-7:32px; --pol-sp-8:40px; --pol-sp-9:56px;

  --pol-r-sm:8px; --pol-r-md:12px; --pol-r-lg:16px; --pol-r-xl:22px; --pol-r-full:999px;

  --pol-sh-xs:0 1px 2px rgba(14,17,48,.06);
  --pol-sh-sm:0 2px 6px rgba(14,17,48,.07);
  --pol-sh-md:0 8px 20px -6px rgba(14,17,48,.12);
  --pol-sh-lg:0 18px 40px -12px rgba(14,17,48,.20);
  --pol-sh-brand:0 14px 32px -12px rgba(43,47,214,.45);

  --pol-ring:0 0 0 4px rgba(43,47,214,.18);

  /* --- Ölçüler --- */
  --pol-sidebar-w:288px;
  --pol-sidebar-w-mini:76px;
  --pol-topbar-h:76px;
  --pol-container:1320px;

  --pol-t-fast:.15s cubic-bezier(.4,0,.2,1);
  --pol-t:.25s cubic-bezier(.4,0,.2,1);
  --pol-t-slow:.4s cubic-bezier(.16,1,.3,1);
}

/* ==========================================================================
   2) RESET
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:var(--pol-font); font-size:var(--pol-fs-15);
  line-height:1.55; color:var(--pol-n-800); background:var(--pol-n-50);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:var(--pol-blue-500);text-decoration:none}
a:hover{text-decoration:underline}
table{border-collapse:collapse;width:100%}
h1,h2,h3,h4,h5,p,figure{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:none;box-shadow:var(--pol-ring);border-radius:var(--pol-r-sm)}
::selection{background:var(--pol-blue-200);color:var(--pol-blue-900)}

/* ==========================================================================
   3) TİPOGRAFİ
   ========================================================================== */
.pol-display{font-family:var(--pol-font-cond);font-weight:700;font-size:var(--pol-fs-44);
  line-height:1.05;letter-spacing:-.01em;color:var(--pol-ink)}
.pol-h1{font-size:var(--pol-fs-28);font-weight:700;line-height:1.2;color:var(--pol-ink);letter-spacing:-.01em}
.pol-h2{font-size:var(--pol-fs-20);font-weight:700;line-height:1.3;color:var(--pol-ink)}
.pol-h3{font-size:var(--pol-fs-16);font-weight:600;line-height:1.4;color:var(--pol-n-800)}
.pol-body{font-size:var(--pol-fs-15);color:var(--pol-n-700)}
.pol-small{font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-label{font-size:var(--pol-fs-12);font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--pol-n-500)}
.pol-num{font-family:var(--pol-font-cond);font-weight:700;font-variant-numeric:tabular-nums;
  letter-spacing:0;color:var(--pol-ink)}
.pol-muted{color:var(--pol-n-500)}

/* ==========================================================================
   4) LAYOUT  —  Tek çatı: her rol (Veli/Antrenör/Yönetim) aynı iskeleti kullanır
   --------------------------------------------------------------------------
   .pol-app            → uygulama gövdesi
   .pol-app--dash      → DASHBOARD MODU: sol menü YOK, geniş ortalanmış içerik
   .pol-app--inner     → İÇ SAYFA MODU: solda menü + sağda içerik
   ========================================================================== */
.pol-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.pol-app{min-height:0;display:flex;flex:1;flex-direction:column}
.pol-shell>.pol-picker{width:100%;flex:1}
.pol-container{width:100%;max-width:var(--pol-container);margin-inline:auto;
  padding-inline:var(--pol-sp-6)}

/* ---------- Üst bar (her modda ortak) ---------- */
.pol-topbar{
  --pol-topbar-accent:var(--pol-orange-400);
  position:sticky;top:0;z-index:60;height:var(--pol-topbar-h);flex:none;
  display:flex;align-items:center;gap:var(--pol-sp-4);
  padding-inline:var(--pol-sp-6);
  background:linear-gradient(112deg,var(--pol-ink) 0%,var(--pol-blue-900) 58%,var(--pol-blue-700) 100%);
  border-bottom:0;box-shadow:0 10px 28px -18px rgba(14,17,48,.75);
}
.pol-topbar::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--pol-orange-500),var(--pol-red-500) 38%,var(--pol-blue-300) 72%,var(--pol-blue-500))}
.pol-topbar--veli{--pol-topbar-accent:var(--pol-blue-200)}
.pol-topbar--antrenor{--pol-topbar-accent:var(--pol-orange-300)}
.pol-topbar--yonetim{--pol-topbar-accent:var(--pol-sand)}
.pol-topbar__brand{display:flex;align-items:center;gap:var(--pol-sp-3);text-decoration:none}
.pol-topbar__brand:hover{text-decoration:none}
.pol-topbar__logo{width:68px;height:54px;flex:none;object-fit:contain}
.pol-topbar__name{display:flex;flex-direction:column;line-height:1.15}
.pol-topbar__name b{font-size:var(--pol-fs-16);font-weight:700;color:var(--pol-n-0);letter-spacing:-.01em}
.pol-topbar__name span{font-size:var(--pol-fs-11);font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--pol-topbar-accent)}
.pol-topbar__spacer{flex:1}
.pol-topbar__actions{display:flex;align-items:center;gap:var(--pol-sp-2)}

.pol-iconbtn{
  width:44px;height:44px;border-radius:var(--pol-r-md);display:grid;place-items:center;
  color:var(--pol-n-600);background:transparent;position:relative;transition:var(--pol-t-fast);
}
.pol-iconbtn:hover{background:var(--pol-n-100);color:var(--pol-blue-500)}
.pol-topbar .pol-iconbtn{color:var(--pol-blue-700);background:var(--pol-n-0);border:var(--pol-line-border)}
.pol-topbar .pol-iconbtn:hover{background:var(--pol-n-100);border-color:var(--pol-n-300);color:var(--pol-blue-700)}
.pol-iconbtn__dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;
  background:var(--pol-red-500);border:2px solid var(--pol-n-0)}
/* Mobil hamburger topbar'da; masaüstü daraltma düğmesi menü marka satırındadır. */
.pol-topbar [data-side-toggle]{display:none}

/* ---------- Duyuru çanı (dropdown'ın solunda) ---------- */
.pol-bell{position:relative}
.pol-bell__dot{
  position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;
  display:grid;place-items:center;border-radius:var(--pol-r-full);
  background:var(--pol-danger);color:#fff;border:2px solid var(--pol-n-0);
  font-family:var(--pol-font-cond);font-size:10px;font-weight:700;line-height:1;
}

/* ---------- Sporcu seçici (sağ üst dropdown) ---------- */
.pol-athlete{position:relative}
/* Genis kartta ikon GIZLIDIR (ad + rol yazisi zaten var), bu yuzden izgara IKI
   sutundur: metin + chevron. Uc sutun birakilirsa ikon display:none oldugunda
   metin 32px'lik ilk sutuna dusup satir satir sarar. Ikon yalniz mini menude ve
   mobil kompakt gorunumde cikar; o durumlarin kendi kurallari var. */
.pol-athlete__btn{
  width:300px;min-height:50px;display:grid;grid-template-columns:minmax(0,1fr) 18px;
  align-items:center;gap:var(--pol-sp-3);padding:7px 12px;
  border:var(--pol-line-border);border-radius:var(--pol-r-full);
  background:var(--pol-n-0);box-shadow:0 8px 18px -12px rgba(0,0,0,.65);transition:var(--pol-t-fast);
}
.pol-athlete__btn:hover{background:var(--pol-n-100);border-color:var(--pol-n-300);box-shadow:0 10px 24px -14px rgba(0,0,0,.8)}
.pol-athlete__chevron{color:var(--pol-n-400);transition:var(--pol-t-fast)}
.pol-athlete.is-open .pol-athlete__chevron{transform:rotate(180deg)}
.pol-athlete__meta{display:flex;min-width:0;width:100%;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.15}
.pol-athlete__meta b{font-size:var(--pol-fs-14);font-weight:600;color:var(--pol-ink)}
.pol-athlete__meta span{font-size:var(--pol-fs-11);color:var(--pol-n-500)}
.pol-athlete__meta .pol-athlete__meta-status{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--pol-danger-tx);font-weight:600}
.pol-athlete__menu{
  position:absolute;right:0;top:calc(100% + 10px);min-width:300px;z-index:70;
  background:var(--pol-n-0);border:var(--pol-line-border);border-radius:var(--pol-r-lg);
  box-shadow:var(--pol-sh-lg);padding:var(--pol-sp-2);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:var(--pol-t);
}
.pol-athlete.is-open .pol-athlete__menu{opacity:1;visibility:visible;transform:translateY(0)}
.pol-logout-form{margin:0;width:100%}
.pol-logout-button{width:100%;font:inherit;text-align:left;background:transparent;color:var(--pol-danger);cursor:pointer}
.pol-athlete__item{
  display:flex;align-items:center;gap:var(--pol-sp-3);width:100%;text-align:left;
  padding:10px;border-radius:var(--pol-r-md);transition:var(--pol-t-fast);
  /* Saydam çerçeve: aktif satır çerçeve alınca kutu boyu kaymasın diye. */
  border:1px solid transparent;margin-bottom:3px;
}
.pol-athlete__item:last-child{margin-bottom:0}
.pol-athlete__item:hover{background:var(--pol-blue-50);text-decoration:none}
/* Aktif satır: sol akzan çubuğu yerine tablo çerçevesiyle aynı ince çizgi. */
.pol-athlete__item.is-active{background:var(--pol-blue-100);border-color:var(--pol-n-200)}
.pol-athlete__item.is-restricted{background:var(--pol-danger-bg);border-color:#F8CFD0}
.pol-athlete__item.is-restricted:hover{background:#FADCDD}
.pol-athlete__status{display:flex;align-items:center;gap:5px;margin-top:4px;color:var(--pol-danger-tx);
  font-size:var(--pol-fs-11);font-weight:600;line-height:1.25}
.pol-athlete__status .pol-i{width:13px;height:13px;flex:none}
.pol-athlete__entry{margin-bottom:3px}
.pol-athlete__entry>.pol-athlete__item{margin-bottom:0}
.pol-athlete__entry.has-return{overflow:hidden;border:1px solid #F8CFD0;border-radius:var(--pol-r-md)}
.pol-athlete__entry.has-return>.pol-athlete__item{border:0;border-radius:0}
.pol-athlete__return{display:flex;align-items:center;gap:7px;width:100%;margin:0;padding:9px 12px;
  border:0;border-top:1px solid #94CDAA;border-radius:0;background:#C7E8D4;
  color:#0F5B33;font-size:var(--pol-fs-12);font-weight:700;line-height:1.2;transition:var(--pol-t-fast)}
.pol-athlete__return:hover{background:#B9DFC8;color:#0B4D2B;text-decoration:none}
.pol-athlete__return .pol-i{flex:none}

.pol-duyuru-result{display:flex;flex-direction:column;align-items:center;gap:7px;margin-bottom:18px;padding:18px;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);text-align:center}
.pol-duyuru-result__emoji{font-size:38px;line-height:1}
.pol-duyuru-result strong{font-size:var(--pol-fs-18);line-height:1.25}
.pol-duyuru-result--welcome{background:#E0F4E8;border-color:#A9D8BC;color:#0F5B33}
.pol-duyuru-result--farewell{background:#FFF0F0;border-color:#F3C2C4;color:#A8242D}

/* ---------- Gövde: dashboard modu ---------- */
.pol-app--dash .pol-main{width:100%;flex:1;padding-block:var(--pol-sp-7) var(--pol-sp-9)}

/* ---------- Gövde: iç sayfa modu (sol menü + içerik) ---------- */
.pol-app--inner .pol-body{display:flex;align-items:stretch;flex:1;min-height:0}
.pol-app--inner .pol-main{flex:1;min-width:0;padding:var(--pol-sp-6) var(--pol-sp-7) var(--pol-sp-9)}

/* ---------- Alt bilgi (her modda ortak, tam genişlik) ---------- */
.pol-footer{position:relative;width:100%;flex:none;overflow:hidden;color:var(--pol-n-0);
  background:linear-gradient(112deg,var(--pol-ink) 0%,var(--pol-blue-900) 62%,var(--pol-blue-800) 100%)}
.pol-footer::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--pol-blue-500),var(--pol-blue-300) 30%,var(--pol-red-500) 65%,var(--pol-orange-500))}
.pol-footer__inner{width:100%;min-height:82px;padding:var(--pol-sp-5) var(--pol-sp-6);
  display:grid;grid-template-columns:minmax(48px,1fr) auto minmax(48px,1fr);align-items:center;gap:var(--pol-sp-5)}
.pol-footer__line{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3))}
.pol-footer__line:last-child{background:linear-gradient(90deg,rgba(255,255,255,.3),transparent)}
.pol-footer__copy{display:flex;align-items:center;justify-content:center;gap:var(--pol-sp-3);
  color:var(--pol-n-200);font-size:var(--pol-fs-13);font-weight:500;text-align:center}
.pol-footer--veli .pol-footer__inner{min-height:108px;grid-template-columns:minmax(260px,1fr) auto}
.pol-footer--veli .pol-footer__copy{justify-content:flex-start;text-align:left}
.pol-footer__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--pol-sp-3)}
.pol-footer__action{white-space:nowrap}
.pol-footer__action:hover{text-decoration:none}
.pol-footer__action--feedback{background:var(--pol-warning-bg);border-color:#F7E2AE;color:var(--pol-warning-tx)}
.pol-footer__action--feedback:hover{background:#FFF0C4;border-color:var(--pol-warning);color:var(--pol-warning-tx)}
.pol-footer__action--leave{background:var(--pol-danger-bg);border-color:#F8CFD0;color:var(--pol-danger-tx)}
.pol-footer__action--leave:hover{background:#FADCDD;border-color:var(--pol-danger);color:var(--pol-danger-tx)}
.pol-footer__action--disabled{cursor:not-allowed;opacity:.72;filter:saturate(.7)}
.pol-footer__action--disabled:hover{transform:none;background:var(--pol-danger-bg);border-color:#F8CFD0}

/* ---------- SOL MENÜ ---------- */
.pol-side{
  width:var(--pol-sidebar-w);flex:none;align-self:stretch;
  background:var(--pol-n-0);border-right:var(--pol-line-border);
  position:relative;min-height:100%;transition:var(--pol-t);
}
.pol-side__scroll{padding:var(--pol-sp-4);overflow:visible}
.pol-side__title{margin:0 4px var(--pol-sp-2)}
.pol-side__head{display:flex;align-items:center;min-height:20px;margin:0 4px var(--pol-sp-2)}
.pol-side__head .pol-side__title{flex:1;margin:0}
.pol-side__toggle{
  display:none;width:24px;height:20px;flex:none;place-items:center;
  color:var(--pol-n-500);border:0;border-radius:4px;background:transparent;
  transition:color var(--pol-t-fast),background var(--pol-t-fast);
}
.pol-side__toggle:hover{color:var(--pol-n-700);background:var(--pol-n-100)}
.pol-side__toggle .pol-i{width:18px;height:18px;stroke-width:2}
.pol-side__group+.pol-side__group{margin-top:var(--pol-sp-3)}
.pol-side__list{display:flex;flex-direction:column;gap:4px}

/* Menü öğesi — PASİF: nötr zemin */
.pol-navitem{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border-radius:var(--pol-r-md);
  background:var(--pol-n-50);color:var(--pol-n-600);
  font-size:var(--pol-fs-14);font-weight:600;
  border:1px solid transparent;transition:var(--pol-t-fast);text-decoration:none;
}
.pol-navitem:hover{background:var(--pol-n-100);color:var(--pol-ink);text-decoration:none;transform:translateX(2px)}
.pol-navitem__ico{width:32px;height:32px;flex:none;border-radius:10px;display:grid;place-items:center;
  background:var(--pol-n-0);color:var(--pol-n-500);box-shadow:var(--pol-sh-xs);transition:var(--pol-t-fast)}
.pol-navitem__txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pol-navitem__badge{font-size:var(--pol-fs-11);font-weight:700;padding:2px 8px;border-radius:var(--pol-r-full);
  background:var(--pol-red-500);color:#fff}
.pol-navitem__badge--pulse{min-width:24px;text-align:center;animation:polMenuBadge 1.25s ease-in-out infinite;
  box-shadow:0 0 0 0 rgba(232,35,42,.35)}
@keyframes polMenuBadge{
  0%,100%{transform:rotate(0) scale(1);box-shadow:0 0 0 0 rgba(232,35,42,.32)}
  20%{transform:rotate(-7deg) scale(1.08)}
  40%{transform:rotate(7deg) scale(1.08);box-shadow:0 0 0 6px rgba(232,35,42,0)}
  60%{transform:rotate(-4deg) scale(1.03)}
  80%{transform:rotate(4deg) scale(1.03)}
}

/* Menü öğesi — AKTİF: modülün kendi rengiyle dolu zemin */
.pol-navitem.is-active{
  background:var(--pol-accent,var(--pol-blue-500));
  color:#fff;box-shadow:0 10px 22px -10px var(--pol-accent,var(--pol-blue-500));
}
.pol-navitem.is-active:hover{transform:none;color:#fff}
.pol-navitem.is-active .pol-navitem__ico{background:rgba(255,255,255,.22);color:#fff;box-shadow:none}

/* Çıkış Yap: kırmızıya yakın vurgulu menü öğesi */
.pol-navitem--cikis{color:var(--pol-danger)}
.pol-navitem--cikis .pol-navitem__ico{color:var(--pol-danger)}
.pol-navitem--cikis:hover{background:var(--pol-danger-bg);color:var(--pol-danger-tx)}
.pol-navitem--cikis:hover .pol-navitem__ico{color:var(--pol-danger-tx)}

/* Modül akzanları — hem menüde hem dashboard kartında aynı sınıf kullanılır */
.pol-acc-1{--pol-accent:var(--pol-app-1)} .pol-acc-2{--pol-accent:var(--pol-app-2)}
.pol-acc-3{--pol-accent:var(--pol-app-3)} .pol-acc-4{--pol-accent:var(--pol-app-4)}
.pol-acc-5{--pol-accent:var(--pol-app-5)} .pol-acc-6{--pol-accent:var(--pol-app-6)}

/* Masaustunde sol menuyu daraltma — ilk menu basliginin sagindaki dugmeyle.
   Tercih pol_side cerezinde tutulur ve .pol-app sinifi SUNUCUDA basilir;
   boylece sayfa gecislerinde menu acilip kapanma titremesi olmaz.
   Sadece 1181px ustunde anlamli: 821-1180 arasi menu zaten otomatik mini,
   820 altinda off-canvas cekmece. */
@media(min-width:1181px){
  .pol-side__toggle{display:grid}
  .pol-app.is-side-mini .pol-side{width:var(--pol-sidebar-w-mini)}
  .pol-app.is-side-mini .pol-side__scroll{padding-inline:10px}
  .pol-app.is-side-mini .pol-navitem__txt,
  .pol-app.is-side-mini .pol-navitem__badge,
  .pol-app.is-side-mini .pol-side__title{display:none}
  .pol-app.is-side-mini .pol-side__head{justify-content:center;margin-inline:0}
  .pol-app.is-side-mini .pol-navitem{justify-content:center;padding:9px}
}

/* Mobil off-canvas */
.pol-side__backdrop{position:fixed;inset:0;background:rgba(14,17,48,.45);z-index:79;
  opacity:0;visibility:hidden;transition:var(--pol-t)}
.pol-side__backdrop.is-open{opacity:1;visibility:visible}

/* ---------- Sayfa başlığı ---------- */
.pol-pagehead{display:flex;align-items:flex-end;gap:var(--pol-sp-4);flex-wrap:wrap;
  margin-bottom:var(--pol-sp-6)}
.pol-pagehead__t{flex:1;min-width:220px}
.pol-crumb{display:flex;align-items:center;gap:6px;font-size:var(--pol-fs-12);
  color:var(--pol-n-500);margin-bottom:4px}
.pol-crumb a{color:var(--pol-n-500)} .pol-crumb b{color:var(--pol-n-700);font-weight:600}

/* ==========================================================================
   5) BİLEŞENLER
   ========================================================================== */

/* ---------- 5.1 Butonlar ----------
   Dokunsal buton: hap sekli + masif alt dudak + basilma fizigi.
   Mekanik hallmark "hum" buton sisteminden (MIT) alindi; RENKLER KOPYALANMADI,
   dudak (--pol-btn-edge) ve cast (--pol-btn-cast) tonlari POL tokenlarindan gelir.
   Her renk varyanti kendi dudagini tanimlar; yeni varyant eklerken ikisini de yaz.
   DIKKAT: alt dudagi box-shadow ciziyor. Odak halkasi bu yuzden global
   :focus-visible (box-shadow tabanli) ile VERILEMEZ — outline kullanilir,
   aksi halde odaklaninca dudak kaybolur. Tek istisna --link (dudagi yok).       */
/* KART EYLEM BAGLANTISI DA BUTONDUR. .pol-card__go taban kurala DAHIL EDILMISTIR;
   ayri bir 'butona benzeyen' tanim yazilmaz, yoksa zamanla ayrisir ve kart icinde
   biri hap biri duz metin iki eylem yan yana durur. Yalnizca RENK/OLCU asagida
   ezilir (bkz. 5.6 Kartlar). */
.pol-btn,.pol-card__go,.pol-merkezdurum{
  --pol-btn-edge:var(--pol-blue-700); --pol-btn-cast:rgba(43,47,214,.42);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 18px;border-radius:var(--pol-r-full);
  font-size:var(--pol-fs-14);font-weight:600;letter-spacing:.01em;
  border:1px solid transparent;white-space:nowrap;text-decoration:none;
  box-shadow:0 4px 0 0 var(--pol-btn-edge),0 6px 12px -3px var(--pol-btn-cast);
  transform:translateY(0);
  transition:transform .14s cubic-bezier(.2,.7,.3,1),
             box-shadow .14s cubic-bezier(.2,.7,.3,1),
             background-color .16s ease,color .16s ease,border-color .16s ease;
}
.pol-btn:hover,.pol-card__go:hover,.pol-merkezdurum:hover,.pol-card--app:hover .pol-card__go{text-decoration:none;transform:translateY(-2px);
  box-shadow:0 6px 0 0 var(--pol-btn-edge),0 12px 22px -4px var(--pol-btn-cast)}
.pol-btn:active,.pol-merkezdurum:active,.pol-card--app:active .pol-card__go{transform:translateY(3px);
  box-shadow:0 1px 0 0 var(--pol-btn-edge),0 2px 6px -2px var(--pol-btn-cast);
  transition-duration:.07s}
.pol-btn:focus-visible{outline:3px solid var(--pol-btn-edge);outline-offset:3px;
  box-shadow:0 4px 0 0 var(--pol-btn-edge),0 6px 12px -3px var(--pol-btn-cast)}
.pol-btn[disabled],.pol-btn.is-disabled{opacity:.5;pointer-events:none;
  transform:none;box-shadow:0 4px 0 0 var(--pol-btn-edge)}

/* Renk varyantlari — zemin + kendi dudak/cast tonu */
.pol-btn--primary{background:var(--pol-blue-500);color:#fff;
  --pol-btn-edge:var(--pol-blue-700);--pol-btn-cast:rgba(43,47,214,.42)}
.pol-btn--primary:hover{background:var(--pol-blue-600);color:#fff}
.pol-btn--accent{background:var(--pol-orange-500);color:#fff;
  --pol-btn-edge:var(--pol-orange-700);--pol-btn-cast:rgba(244,123,32,.42)}
.pol-btn--accent:hover{background:var(--pol-orange-600);color:#fff}
.pol-btn--dark{background:var(--pol-ink);color:#fff;
  --pol-btn-edge:#000000;--pol-btn-cast:rgba(14,17,48,.42)}
.pol-btn--dark:hover{background:var(--pol-n-800);color:#fff}
.pol-btn--ghost{background:var(--pol-n-0);color:var(--pol-n-700);border-color:var(--pol-n-200);
  --pol-btn-edge:var(--pol-n-300);--pol-btn-cast:rgba(14,17,48,.14)}
.pol-btn--ghost:hover{border-color:var(--pol-blue-300);color:var(--pol-blue-600)}
.pol-btn--soft{background:var(--pol-blue-50);color:var(--pol-blue-600);
  --pol-btn-edge:var(--pol-blue-200);--pol-btn-cast:rgba(43,47,214,.20)}
.pol-btn--soft:hover{background:var(--pol-blue-100);color:var(--pol-blue-700)}
.pol-btn--danger{background:var(--pol-danger);color:#fff;
  --pol-btn-edge:var(--pol-danger-tx);--pol-btn-cast:rgba(232,35,42,.42)}
.pol-btn--danger:hover{background:var(--pol-red-600);color:#fff}
.pol-btn--success{background:var(--pol-success);color:#fff;
  --pol-btn-edge:var(--pol-success-tx);--pol-btn-cast:rgba(18,161,80,.42)}
.pol-btn--success:hover{background:var(--pol-success-tx);color:#fff}
.pol-btn--warning-soft{background:var(--pol-warning-bg);color:var(--pol-warning-tx);border-color:#F7E2AE;
  --pol-btn-edge:var(--pol-warning);--pol-btn-cast:rgba(230,162,13,.28)}
.pol-btn--warning-soft:hover{background:#FFF0C4;border-color:var(--pol-warning);color:var(--pol-warning-tx)}
.pol-btn--danger-soft{background:var(--pol-danger-bg);color:var(--pol-danger-tx);border-color:#F8CFD0;
  --pol-btn-edge:var(--pol-danger);--pol-btn-cast:rgba(232,35,42,.25)}
.pol-btn--danger-soft:hover{background:#FADCDD;border-color:var(--pol-danger);color:var(--pol-danger-tx)}

/* --link zemini olmayan metin baglantisi: dudak YOK, standart odak halkasi geri gelir */
.pol-btn--link{height:auto;padding:0;color:var(--pol-blue-500);background:none;
  box-shadow:none;border-color:transparent}
.pol-btn--link:hover,.pol-btn--link:active{transform:none;box-shadow:none;text-decoration:underline}
.pol-btn--link:focus-visible{outline:none;box-shadow:var(--pol-ring)}

/* Olculer — hap kosesi her boyutta korunur */
.pol-btn--sm{height:36px;padding:0 14px;font-size:var(--pol-fs-13)}
.pol-btn--lg{height:52px;padding:0 26px;font-size:var(--pol-fs-16)}
.pol-btn--block{display:flex;width:100%}
.pol-btn--icon{width:44px;padding:0}
.pol-btn--sm.pol-btn--icon{width:36px}

/* Hover'da ok ikonu ileri kayar — isteğe bagli, ikona bu sinif verilirse calisir */
.pol-btn__ok{transition:transform .2s cubic-bezier(.2,.7,.3,1)}
.pol-btn:hover .pol-btn__ok{transform:translateX(3px)}

/* ---------- 5.2 Rozet / etiket / chip ---------- */
.pol-badge{
  display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;
  border-radius:var(--pol-r-full);font-size:var(--pol-fs-12);font-weight:600;
  background:var(--pol-n-100);color:var(--pol-n-600);white-space:nowrap;
}
.pol-badge--success{background:var(--pol-success-bg);color:var(--pol-success-tx)}
.pol-badge--warning{background:var(--pol-warning-bg);color:var(--pol-warning-tx)}
.pol-badge--danger{background:var(--pol-danger-bg);color:var(--pol-danger-tx)}
.pol-badge--info{background:var(--pol-info-bg);color:var(--pol-info-tx)}
.pol-badge--accent{background:var(--pol-orange-50);color:var(--pol-orange-700)}
.pol-badge--solid{background:var(--pol-blue-500);color:#fff}
.pol-badge--lg{height:32px;padding:0 14px;font-size:var(--pol-fs-13)}
.pol-badge__dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}

.pol-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;
  border-radius:var(--pol-r-full);border:var(--pol-line-border);background:var(--pol-n-0);
  font-size:var(--pol-fs-13);font-weight:600;color:var(--pol-n-600);transition:var(--pol-t-fast)}
.pol-chip:hover{border-color:var(--pol-blue-300);color:var(--pol-blue-600)}
.pol-chip.is-active{background:var(--pol-blue-500);border-color:var(--pol-blue-500);color:#fff}

/* ---------- 5.3 Avatar ---------- */
.pol-avatar{width:40px;height:40px;border-radius:var(--pol-r-md);flex:none;display:grid;place-items:center;
  background:var(--pol-blue-500);color:#fff;font-weight:700;font-size:var(--pol-fs-14);
  overflow:hidden;letter-spacing:.02em}
.pol-avatar--sm{width:32px;height:32px;font-size:var(--pol-fs-12);border-radius:9px}
.pol-avatar--lg{width:56px;height:56px;font-size:var(--pol-fs-18);border-radius:var(--pol-r-lg)}
.pol-avatar--xl{width:76px;height:76px;font-size:var(--pol-fs-24);border-radius:var(--pol-r-xl)}
.pol-avatar--orange{background:var(--pol-orange-500)}
.pol-avatar--ink{background:var(--pol-ink)}
.pol-avatar--teal{background:var(--pol-app-5)}
.pol-avatar--purple{background:var(--pol-app-4)}
.pol-avatar img{width:100%;height:100%;object-fit:cover}

/* ---------- 5.4 Form elemanları ---------- */
.pol-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--pol-sp-4)}
.pol-field__label{font-size:var(--pol-fs-13);font-weight:600;color:var(--pol-n-700)}
.pol-field__label .req{color:var(--pol-danger)}
.pol-field__hint{font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-field__err{font-size:var(--pol-fs-12);color:var(--pol-danger-tx);font-weight:600}

.pol-input,.pol-select,.pol-textarea{
  width:100%;max-width:100%;min-width:0;height:46px;padding:0 14px;border-radius:var(--pol-r-md);
  border:var(--pol-line-border);background:var(--pol-n-0);color:var(--pol-n-800);
  font-size:var(--pol-fs-14);transition:var(--pol-t-fast);
}
/* iOS'ta date/month input'ları içeriğe göre genişleyip taşabiliyor — kutuya sabitle */
.pol-input[type="date"],.pol-input[type="month"],.pol-input[type="time"]{
  -webkit-appearance:none;appearance:none}
.pol-textarea{height:auto;min-height:110px;padding:12px 14px;resize:vertical;line-height:1.5}
.pol-input::placeholder,.pol-textarea::placeholder{color:var(--pol-n-400)}
.pol-input:hover,.pol-select:hover,.pol-textarea:hover{border-color:var(--pol-n-300)}
.pol-input:focus,.pol-select:focus,.pol-textarea:focus{
  outline:none;border-color:var(--pol-blue-400);box-shadow:var(--pol-ring)}
.pol-input.is-error,.pol-select.is-error{border-color:var(--pol-danger);box-shadow:0 0 0 4px rgba(232,35,42,.14)}
.pol-input[disabled],.pol-select[disabled]{background:var(--pol-n-50);color:var(--pol-n-400);cursor:not-allowed}
.pol-input--uppercase{text-transform:uppercase}
.pol-select{appearance:none;padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236B7590' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center}

.pol-inputgrp{position:relative;display:flex;align-items:center}
.pol-inputgrp .pol-input{padding-left:44px}
.pol-inputgrp__ico{position:absolute;left:14px;color:var(--pol-n-400);pointer-events:none}

.pol-multiselect{position:relative;width:100%}
.pol-multiselect__btn{
  width:100%;height:46px;padding:0 14px;display:flex;align-items:center;gap:var(--pol-sp-2);
  border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-0);
  color:var(--pol-n-700);font-size:var(--pol-fs-14);cursor:pointer;transition:var(--pol-t-fast)
}
.pol-multiselect__btn::-webkit-details-marker{display:none}
.pol-multiselect__btn::marker{content:''}
.pol-multiselect__btn:hover{border-color:var(--pol-n-300)}
.pol-multiselect__btn span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pol-multiselect__btn .pol-i{flex:none;color:var(--pol-n-400);transition:var(--pol-t-fast)}
.pol-multiselect[open] .pol-multiselect__btn{border-color:var(--pol-blue-400);box-shadow:var(--pol-ring)}
.pol-multiselect[open] .pol-multiselect__btn .pol-i{transform:rotate(180deg)}
.pol-multiselect__menu{
  position:absolute;z-index:120;top:calc(100% + 6px);left:0;right:0;display:none;
  max-height:220px;overflow-y:auto;padding:6px;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);
  background:var(--pol-n-0);box-shadow:var(--pol-sh-md)
}
.pol-multiselect[open] .pol-multiselect__menu{display:block}
.pol-multiselect.is-up .pol-multiselect__menu{top:auto;bottom:calc(100% + 6px)}
.pol-modal__box:has(.pol-multiselect[open]),
.pol-modal__body:has(.pol-multiselect[open]){overflow:visible}
.pol-multiselect__item{padding:8px;border-radius:var(--pol-r-sm)}
.pol-multiselect__item:hover{background:var(--pol-n-50)}

.pol-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--pol-fs-14);color:var(--pol-n-700)}
.pol-check input{appearance:none;width:20px;height:20px;flex:none;margin-top:1px;border-radius:6px;
  border:var(--pol-line-border);background:var(--pol-n-0);transition:var(--pol-t-fast);cursor:pointer}
.pol-check input[type=radio]{border-radius:50%}
.pol-check input:checked{background:var(--pol-blue-500);border-color:var(--pol-blue-500);
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center}
.pol-check input[type=radio]:checked{background-image:none;box-shadow:inset 0 0 0 4px var(--pol-n-0)}

.pol-switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--pol-fs-14)}
.pol-switch input{appearance:none;width:46px;height:26px;border-radius:var(--pol-r-full);
  background:var(--pol-n-300);position:relative;transition:var(--pol-t);cursor:pointer}
.pol-switch input::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;
  border-radius:50%;background:#fff;box-shadow:var(--pol-sh-sm);transition:var(--pol-t)}
.pol-switch input:checked{background:var(--pol-success)}
.pol-switch input:checked::after{left:23px}

/* Ödeme yöntemi / seçenek kartı (radio-card) */
.pol-payopt{display:flex;align-items:center;gap:var(--pol-sp-3);padding:14px;cursor:pointer;
  border:var(--pol-line-border);border-radius:var(--pol-r-lg);background:var(--pol-n-0);
  transition:var(--pol-t-fast)}
.pol-payopt:hover{border-color:var(--pol-blue-300);background:var(--pol-blue-50)}
.pol-payopt.is-active{border-color:var(--pol-blue-500);background:var(--pol-blue-50);
  box-shadow:0 0 0 3px rgba(43,47,214,.10)}
.pol-payopt__ico{width:44px;height:44px;border-radius:12px;flex:none;display:grid;place-items:center;
  background:var(--pol-blue-50);color:var(--pol-blue-500)}
.pol-payopt.is-active .pol-payopt__ico{background:var(--pol-blue-500);color:#fff}
.pol-payopt__tx{flex:1;min-width:0}
.pol-payopt__tx b{display:block;font-size:var(--pol-fs-14);font-weight:600;color:var(--pol-ink)}
.pol-payopt__tx span{font-size:var(--pol-fs-12);color:var(--pol-n-500)}

/* ---------- 5.5 OTP giriş kutuları ---------- */
.pol-otp{display:flex;gap:10px;justify-content:center}
.pol-otp__cell{
  width:52px;height:62px;text-align:center;border-radius:var(--pol-r-md);
  border:var(--pol-line-border);background:var(--pol-n-0);
  font-family:var(--pol-font-cond);font-size:var(--pol-fs-28);font-weight:700;color:var(--pol-ink);
  transition:var(--pol-t-fast);
}
.pol-otp__cell:focus{outline:none;border-color:var(--pol-blue-500);box-shadow:var(--pol-ring)}
.pol-otp__cell.is-filled{border-color:var(--pol-blue-400);background:var(--pol-blue-50)}
.pol-otp.is-error .pol-otp__cell{border-color:var(--pol-danger);background:var(--pol-danger-bg)}
/* "Tekrar gonder" ORTAK BUTON DILINI kullanir (hap + masif alt dudak); metin
   baglantisi degildir. Dudagin altta yeri olsun diye satir dikeyde biraz acilir. */
.pol-otp__timer{display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:8px 10px;
  font-size:var(--pol-fs-13);color:var(--pol-n-500);margin-top:var(--pol-sp-5)}
.pol-otp__timer b{font-family:var(--pol-font-cond);font-size:var(--pol-fs-18);color:var(--pol-blue-600)}
.pol-otp__timer .pol-btn{margin-left:2px}

/* ---------- 5.6 Kartlar ---------- */
.pol-card{
  background:var(--pol-n-0);border:var(--pol-line-border);border-radius:var(--pol-r-lg);
  box-shadow:var(--pol-sh-xs);transition:var(--pol-t);position:relative;
}
.pol-card--hover:hover{transform:translateY(-4px);box-shadow:var(--pol-sh-md);border-color:var(--pol-n-100)}
.pol-card__head{display:flex;align-items:center;gap:var(--pol-sp-3);
  padding:var(--pol-sp-5) var(--pol-sp-5) 0}
.pol-card__head--bordered{padding-bottom:var(--pol-sp-4);border-bottom:var(--pol-line-border);
  margin-bottom:var(--pol-sp-4)}
.pol-card__t{flex:1;min-width:0}
.pol-card__t b{display:block;font-size:var(--pol-fs-16);font-weight:700;color:var(--pol-ink);line-height:1.3}
.pol-card__t span{font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-card__body{padding:var(--pol-sp-5)}
.pol-card__foot{padding:var(--pol-sp-4) var(--pol-sp-5);border-top:var(--pol-line-border);
  display:flex;align-items:center;gap:var(--pol-sp-3);background:var(--pol-n-25);
  border-radius:0 0 var(--pol-r-lg) var(--pol-r-lg)}
.pol-card__ico{width:44px;height:44px;flex:none;border-radius:13px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--pol-accent,var(--pol-blue-500)) 12%,#fff);
  color:var(--pol-accent,var(--pol-blue-500));transition:var(--pol-t)}
.pol-card--hover:hover .pol-card__ico{background:var(--pol-accent,var(--pol-blue-500));color:#fff;
  transform:scale(1.06) rotate(-4deg)}

/* Tek satırlık işlem çubuğu — tablo çerçevesiyle aynı dil, tek satır metin.
   Veli ana sayfasının altında yan yana iki tane kullanılır. */
.pol-linkrow{
  display:flex;align-items:center;gap:var(--pol-sp-3);width:100%;
  padding:14px var(--pol-sp-5);text-align:left;cursor:pointer;text-decoration:none;
  background:var(--pol-n-0);border:var(--pol-line-border);border-radius:var(--pol-r-lg);
  box-shadow:var(--pol-sh-xs);transition:var(--pol-t-fast);
  font-size:var(--pol-fs-14);font-weight:600;color:var(--pol-ink);
}
.pol-linkrow:hover{border-color:var(--pol-n-300);box-shadow:var(--pol-sh-sm);text-decoration:none}
.pol-linkrow__ico{width:32px;height:32px;flex:none;border-radius:10px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--pol-accent,var(--pol-blue-500)) 12%,#fff);
  color:var(--pol-accent,var(--pol-blue-500))}
.pol-linkrow__tx{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pol-linkrow__go{flex:none;color:var(--pol-n-400)}
.pol-linkrow--feedback{
  --pol-accent:var(--pol-warning);min-height:72px;background:var(--pol-warning-bg);
  border-color:#F7E2AE;color:var(--pol-warning-tx)
}
.pol-linkrow--leave{
  --pol-accent:var(--pol-danger);min-height:72px;background:var(--pol-danger-bg);
  border-color:#F8CFD0;color:var(--pol-danger-tx)
}
.pol-linkrow--feedback:hover{border-color:var(--pol-warning)}
.pol-linkrow--leave:hover{border-color:var(--pol-danger)}

/* Dashboard kartı: hover'da yalnızca yükselir ve gölgelenir.
   Üstteki akzan şeridi bilerek kaldırıldı — hover'da renk çıkmıyor. */
.pol-card--app{cursor:pointer;overflow:hidden;display:flex;flex-direction:column}
.pol-card--app:hover{transform:translateY(-5px);box-shadow:var(--pol-sh-lg);
  border-color:var(--pol-n-100)}
.pol-card--app .pol-card__body{flex:1}
/* Sekil .pol-btn tabanindan gelir (hap + masif dudak). Burada yalnizca olcu ve
   renk: kartin kendi akzan rengini tasir, zemini beyaz kalir. */
.pol-card__go{height:36px;padding:0 14px;font-size:var(--pol-fs-13);
  background:var(--pol-n-0);color:var(--pol-accent,var(--pol-blue-500));
  border-color:var(--pol-n-200);
  --pol-btn-edge:var(--pol-n-300);--pol-btn-cast:rgba(14,17,48,.14)}
.pol-card--app:hover .pol-card__go{gap:11px;border-color:var(--pol-accent,var(--pol-blue-300))}

/* ---------- 5.7 İstatistik / metrik ---------- */
.pol-split{display:grid;grid-template-columns:1fr var(--pol-line-width) 1fr;align-items:stretch;gap:var(--pol-sp-4)}
.pol-split__rule{background:var(--pol-line-color)}
.pol-metric{text-align:center}
.pol-metric__lbl{font-size:var(--pol-fs-11);font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--pol-n-500);margin-bottom:2px}
.pol-metric__val{font-family:var(--pol-font-cond);font-weight:700;font-size:var(--pol-fs-34);
  line-height:1;color:var(--pol-ink);font-variant-numeric:tabular-nums}
.pol-metric__val small{font-size:var(--pol-fs-18);color:var(--pol-n-400);margin-left:1px}
.pol-metric__sub{font-size:var(--pol-fs-12);color:var(--pol-n-500);margin-top:4px}
.pol-metric--good .pol-metric__val{color:var(--pol-success)}
.pol-metric--warn .pol-metric__val{color:var(--pol-warning)}
.pol-metric--bad  .pol-metric__val{color:var(--pol-danger)}

.pol-trend{display:inline-flex;align-items:center;gap:3px;font-size:var(--pol-fs-12);font-weight:700}
.pol-trend--up{color:var(--pol-success)} .pol-trend--down{color:var(--pol-danger)}

/* Çizgisel ilerleme */
.pol-bar{height:8px;border-radius:var(--pol-r-full);background:var(--pol-n-100);overflow:hidden}
.pol-bar__fill{height:100%;border-radius:var(--pol-r-full);
  background:var(--pol-accent,var(--pol-blue-500));transition:width var(--pol-t-slow)}
.pol-bar--lg{height:12px}

/* ---------- 5.9 Onay belgesi ----------
   Belge metni DUZ METINDIR: satir sonlari `pre-wrap` ile korunur, icerik
   Razor tarafindan kodlanir — HTML olarak asla calismaz. */
.pol-belge{max-width:78ch;margin:0 auto}
.pol-belge__head{display:flex;align-items:center;gap:14px;padding-bottom:var(--pol-sp-5);
  margin-bottom:var(--pol-sp-5);border-bottom:var(--pol-line-border)}
.pol-belge__logo{width:52px;height:52px;object-fit:contain;flex:none}
.pol-belge__head b{display:block;font-family:var(--pol-font-cond);font-weight:700;
  font-size:var(--pol-fs-20);color:var(--pol-ink)}
.pol-belge__head span{display:block;font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-belge__metin{white-space:pre-wrap;overflow-wrap:break-word;
  font-size:var(--pol-fs-14);line-height:1.65;color:var(--pol-n-700)}
.pol-belge__imza{margin-top:var(--pol-sp-6);padding-top:var(--pol-sp-5);
  border-top:var(--pol-line-border);display:grid;gap:0}
.pol-belge__imzasatir{display:flex;justify-content:space-between;gap:var(--pol-sp-4);
  padding:9px 0;border-bottom:var(--pol-line-inner-border)}
.pol-belge__imzasatir:last-child{border-bottom:0}
.pol-belge__imzasatir span{font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-belge__imzasatir b{font-size:var(--pol-fs-14);color:var(--pol-ink);text-align:right}
.pol-belge__not{margin-top:var(--pol-sp-5);font-size:var(--pol-fs-12);color:var(--pol-n-400)}
.pol-belge__duzen{font-family:var(--pol-font);font-size:var(--pol-fs-13);line-height:1.6;
  min-height:260px;resize:vertical}

/* Zorunlu onay modali — kapatma dugmesi YOKTUR.
   Modal iki satirdan ibarettir; belge metni varsayilanda KAPALIDIR ve
   "Metni oku" ile acilir. */
.pol-modal--zorunlu .pol-modal__body{max-height:66vh;overflow-y:auto}
.pol-onaysatir{display:flex;align-items:flex-start;gap:var(--pol-sp-4);
  padding:var(--pol-sp-4) 0}
.pol-onaysatir + .pol-onaysatir{border-top:var(--pol-line-inner-border)}
.pol-onaysatir .pol-check{flex:1;min-width:0}
.pol-onaysatir__ac{flex:none;white-space:nowrap;margin-top:2px}
.pol-onaybelge__metin{max-height:300px;overflow-y:auto;padding:var(--pol-sp-4);
  margin-bottom:var(--pol-sp-4);
  border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-25)}

/* ---------- Spor merkezi ödemesi — elle onay (29.09.2026) ----------
   Yönetimde Durum hücresi TIKLANABİLİR bir düğmedir: hap + masif dudak dili
   .pol-btn taban kuralından gelir (Değişmez Kural 8), burada yalnız renk. */
.pol-merkezdurum{height:34px;padding:0 14px;font-size:var(--pol-fs-12);cursor:pointer;font-family:inherit}
.pol-merkezdurum--success{color:var(--pol-success-tx);background:var(--pol-success-bg);border-color:#BFE8CF;
  --pol-btn-edge:#8FD3AA;--pol-btn-cast:rgba(18,161,80,.18)}
.pol-merkezdurum--warning{color:var(--pol-warning-tx);background:var(--pol-warning-bg);border-color:#F7E2AE;
  --pol-btn-edge:#EFCB72;--pol-btn-cast:rgba(232,162,0,.18)}
.pol-merkezdurum--danger{color:var(--pol-danger-tx);background:var(--pol-danger-bg);border-color:#F8CFD0;
  --pol-btn-edge:#F0A5A8;--pol-btn-cast:rgba(232,35,42,.18)}
.pol-merkezdurum--accent{color:var(--pol-blue-700);background:var(--pol-blue-50);border-color:var(--pol-blue-100,#dfe3ff);
  --pol-btn-edge:var(--pol-blue-300);--pol-btn-cast:rgba(43,47,214,.16)}
.pol-merkezdurum--info{color:var(--pol-n-700);background:var(--pol-n-25);border-color:var(--pol-n-200);
  --pol-btn-edge:var(--pol-n-300);--pol-btn-cast:rgba(14,17,48,.12)}
/* Veli kartı: ödendi (yeşil onay) ve antrenöre teslim uyarısı */
.pol-payment-card__odendi{display:inline-flex;align-items:center;gap:6px;
  color:var(--pol-success);font-weight:700;font-size:var(--pol-fs-14)}
.pol-payment-card__uyari{display:flex;align-items:flex-start;gap:6px;margin-top:6px;
  font-size:var(--pol-fs-12);line-height:1.45;color:var(--pol-n-600)}
.pol-payment-card__uyari .pol-i{flex:none;margin-top:1px;color:var(--pol-blue-600)}

/* ---------- Yönetim > Veliler: portal durumu (29.09.2026) ----------
   Durum metni sabit genişlikte durur ki düğmeler alt alta aynı hizada kalsın. */
.pol-veliportal{white-space:nowrap}
.pol-veliportal__durum{display:inline-block;min-width:40px;margin-right:8px;
  font-size:var(--pol-fs-12);font-weight:600;color:var(--pol-n-600)}

/* ---------- Veli ana sayfa: en iyi yarış dereceleri (29.09.2026) ----------
   Mesafe · derece · tarih. Liste kartın içinde kayar (max-height) — mesafe sayısı
   20'ye çıkabiliyor ve kart uzarsa ızgaradaki komşu kartlar da uzuyordu. */
/* Kulvar kartı (29.09.2026): mesafe+stil başına mini kart, ortadan ikiye bölünür —
   solda 25 m kısa kulvar, sağda 50 m uzun kulvar. Mini kartlar YAN YANA İKİLİ durur
   (kullanıcı isteği); liste kartın içinde dikey kayar. */
.pol-kulvarlar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:300px;overflow-y:auto;
  margin:0 -4px;padding:2px 4px 4px;align-content:start}
.pol-kulvar{min-width:0;border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-0);
  padding:7px 7px;transition:var(--pol-t-fast)}
.pol-kulvar:hover{border-color:color-mix(in srgb,var(--pol-accent,var(--pol-blue-500)) 45%,var(--pol-line-color));
  box-shadow:var(--pol-sh-xs)}
.pol-kulvar__t{font-weight:700;color:var(--pol-ink);font-size:var(--pol-fs-13);line-height:1.2;margin-bottom:6px}
.pol-kulvar__iki{display:grid;grid-template-columns:1fr 1fr}
.pol-kulvar__yari{display:flex;flex-direction:column;gap:2px;min-width:0}
.pol-kulvar__yari + .pol-kulvar__yari{border-left:var(--pol-line-inner-border);padding-left:5px}
.pol-kulvar__yari:first-child{padding-right:5px}
.pol-kulvar__havuz{display:flex;flex-direction:column;line-height:1.1}
.pol-kulvar__havuz b{font-size:var(--pol-fs-13);color:var(--pol-n-700)}
.pol-kulvar__havuz small{font-size:10px;color:var(--pol-n-500);white-space:nowrap}
/* Mini kart ana sayfanın 3 sütunlu ızgarasında ~130px'e iner; derece 14px'te iki yarıya sığar
   (1400px ve 390px'te ölçüldü). */
.pol-kulvar__derece{font-size:14px;line-height:1.2;color:var(--pol-ink);margin-top:3px;white-space:nowrap;
  letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.pol-kulvar__tarih{font-size:10px;color:var(--pol-n-500);font-variant-numeric:tabular-nums;white-space:nowrap}
.pol-kulvar__yari.is-bos .pol-kulvar__derece{color:var(--pol-n-400)}

/* ---------- Açık rıza kalemleri (23.09.2026) ----------
   Rıza ONAY DEĞİLDİR: kalem kalem verilir, kalem kalem geri alınır. Aynı
   partial (_RizaKalem) veli modalinde, "Onayladığım Belgeler"de ve yönetimin
   veli dökümünde (salt okunur) kullanılır — üç yerde tek görünüm. */
.pol-modal#m-riza .pol-modal__body{max-height:66vh;overflow-y:auto}
.pol-rizagrup{padding:var(--pol-sp-4) 0}
.pol-rizagrup + .pol-rizagrup{border-top:var(--pol-line-inner-border)}
.pol-rizagrup__bas{display:flex;align-items:center;justify-content:space-between;
  gap:var(--pol-sp-3);margin-bottom:var(--pol-sp-3);color:var(--pol-ink)}
.pol-rizagrup__bas b{min-width:0}
.pol-riza{padding:var(--pol-sp-3) var(--pol-sp-4);border:var(--pol-line-border);
  border-radius:var(--pol-r-md);background:var(--pol-n-0)}
.pol-riza + .pol-riza{margin-top:var(--pol-sp-2)}
.pol-riza__ana>span{display:flex;flex-direction:column;gap:3px;min-width:0}
.pol-riza__ana b{color:var(--pol-ink);font-weight:600}
.pol-riza__ack{font-size:var(--pol-fs-12);color:var(--pol-n-600);line-height:1.5}
.pol-riza__tarih{font-size:var(--pol-fs-11);color:var(--pol-n-500)}
/* Özel nitelikli (sağlık) veri işareti — rozet DURUM söyler: bu kalem m.6 verisidir. */
.pol-riza__ozel{align-self:flex-start}
/* Mecra seçimleri üst kalemin içinde, girintili; üst kapalıyken gizlidir. */
.pol-riza__alt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;
  margin:var(--pol-sp-3) 0 0 28px;padding-top:var(--pol-sp-3);border-top:var(--pol-line-inner-border)}
.pol-riza__altbas{grid-column:1 / -1;font-size:var(--pol-fs-12);font-weight:600;color:var(--pol-n-600)}
.pol-riza__alt .pol-check{font-size:var(--pol-fs-13)}
@media(max-width:620px){
  .pol-riza__alt{grid-template-columns:1fr;margin-left:0}
}

/* Halka (donut) — conic-gradient, JS'siz de çalışır */
.pol-ring{width:104px;height:104px;border-radius:50%;display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--pol-accent,var(--pol-blue-500)) calc(var(--val,0)*1%),
             var(--pol-n-100) 0);transition:var(--pol-t-slow)}
.pol-ring::after{content:'';position:absolute;inset:11px;border-radius:50%;background:var(--pol-n-0)}
.pol-ring__tx{position:relative;z-index:1;text-align:center;line-height:1}
.pol-ring__tx b{font-family:var(--pol-font-cond);font-size:var(--pol-fs-24);font-weight:700;color:var(--pol-ink)}
.pol-ring__tx span{display:block;font-size:var(--pol-fs-11);color:var(--pol-n-500);font-weight:600}
.pol-ring--sm{width:78px;height:78px} .pol-ring--sm::after{inset:9px}
.pol-ring--sm .pol-ring__tx b{font-size:var(--pol-fs-18)}

/* Mini sütun grafik (performans) */
.pol-spark{display:flex;align-items:flex-end;gap:5px;height:74px}
.pol-spark__col{flex:1;border-radius:5px 5px 2px 2px;background:var(--pol-n-100);
  position:relative;transition:var(--pol-t)}
.pol-spark__col i{position:absolute;bottom:0;left:0;right:0;border-radius:5px 5px 2px 2px;
  background:var(--pol-accent,var(--pol-blue-500));height:var(--h,0%);transition:height var(--pol-t-slow)}
.pol-spark__col:hover i{filter:brightness(1.12)}
.pol-spark__lbls{display:flex;gap:5px;margin-top:6px}
.pol-spark__lbls span{flex:1;text-align:center;font-size:var(--pol-fs-11);color:var(--pol-n-400)}

/* ---------- 5.8 Tablolar ---------- */
.pol-tablewrap{border:var(--pol-line-border);border-radius:var(--pol-r-lg);
  background:var(--pol-n-0);overflow:hidden;box-shadow:var(--pol-sh-xs)}
.pol-tabletools{display:flex;align-items:center;gap:var(--pol-sp-3);flex-wrap:wrap;
  padding:var(--pol-sp-4) var(--pol-sp-5);border-bottom:var(--pol-line-border);background:var(--pol-n-25)}
.pol-tabletools__grow{flex:1;min-width:180px}
.pol-tablescroll{overflow-x:auto}

.pol-table{width:100%;font-size:var(--pol-fs-14)}
.pol-table thead th{
  position:sticky;top:0;z-index:2;text-align:left;white-space:nowrap;
  padding:12px var(--pol-sp-5);background:var(--pol-n-50);
  font-size:var(--pol-fs-11);font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--pol-n-500);border-bottom:var(--pol-line-border);
}
.pol-table thead th.is-sortable{cursor:pointer;user-select:none}
.pol-table thead th.is-sortable:hover{color:var(--pol-blue-500)}
.pol-table tbody td{padding:13px var(--pol-sp-5);border-bottom:var(--pol-line-border);
  font-family:var(--pol-font);font-size:var(--pol-fs-13);font-weight:500;
  line-height:1.4;color:var(--pol-n-700);vertical-align:middle}
.pol-table tbody tr{transition:var(--pol-t-fast)}
.pol-table tbody tr:hover{background:var(--pol-blue-50)}
.pol-table tbody tr:last-child td{border-bottom:0}
.pol-table .pol-td-num{font-family:var(--pol-font);font-size:var(--pol-fs-13);font-weight:500;
  font-variant-numeric:tabular-nums;color:var(--pol-n-700)}
.pol-table .pol-td-right{text-align:right}
.pol-table .pol-td-center{text-align:center}
.pol-table .pol-td-actions{white-space:nowrap;text-align:right}
.pol-table__user{display:flex;align-items:center;gap:10px}
.pol-table__user b{display:block;font-weight:600;color:var(--pol-ink);line-height:1.25}
.pol-table__user span{font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-table--striped tbody tr:nth-child(even){background:var(--pol-n-25)}
.pol-table--striped tbody tr:hover{background:var(--pol-blue-50)}

/* Tum roller ve sayfalar icin tek tablo veri dili. Hucre icindeki eski b/span,
   sayisal font ve rozet varyantlari bu ortak tipografiyi degistiremez.
   Avatarlar ile islem dugmeleri kendi gorsel kimligini korur.

   MUAF TUTULAN CIPLER burada tek tek yazilir (.pol-rekor gibi). Kural !important
   tasidigi icin cipin kendi tanimindan kacamaz; muafiyet BURADAN verilir. Yeni bir
   hucre ici cip eklerken bu iki secicinin sonuna :not(.sinif) eklemeyi unutmayin. */
.pol-table tbody td:not(.pol-td-actions) b,
.pol-table tbody td:not(.pol-td-actions) span:not(.pol-avatar):not(.pol-rekor){
  font-family:var(--pol-font)!important;font-size:var(--pol-fs-13)!important;
  font-weight:500!important;line-height:1.4!important;color:var(--pol-n-700)!important;
}
.pol-table tbody td:not(.pol-td-actions) .pol-badge{
  display:inline;height:auto;min-width:0;padding:0;border:0;border-radius:0;
  background:transparent!important;box-shadow:none;white-space:normal;
}
.pol-table .pol-table__user>span:not(.pol-avatar){display:block}

.pol-tablefoot{display:flex;align-items:center;justify-content:space-between;gap:var(--pol-sp-3);
  padding:var(--pol-sp-4) var(--pol-sp-5);border-top:var(--pol-line-border);
  background:var(--pol-n-25);flex-wrap:wrap;font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-pager{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;
  column-gap:6px;row-gap:10px}
.pol-pager button,.pol-pager a{
  --pol-btn-edge:var(--pol-n-300);--pol-btn-cast:rgba(14,17,48,.14);
  min-width:36px;height:36px;padding:0 10px;border-radius:var(--pol-r-full);
  font-size:var(--pol-fs-13);font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  border:1px solid var(--pol-n-200);background:var(--pol-n-0);color:var(--pol-n-600);
  box-shadow:0 4px 0 0 var(--pol-btn-edge),0 6px 12px -3px var(--pol-btn-cast);
  transform:translateY(0);
  transition:transform .14s cubic-bezier(.2,.7,.3,1),box-shadow .14s cubic-bezier(.2,.7,.3,1),
             background-color .16s ease,color .16s ease,border-color .16s ease}
.pol-pager button:hover,.pol-pager a:hover{text-decoration:none;color:var(--pol-blue-600);
  transform:translateY(-2px);
  box-shadow:0 6px 0 0 var(--pol-btn-edge),0 12px 22px -4px var(--pol-btn-cast)}
.pol-pager button:active,.pol-pager a:active{transform:translateY(3px);
  box-shadow:0 1px 0 0 var(--pol-btn-edge),0 2px 6px -2px var(--pol-btn-cast);transition-duration:.07s}
.pol-pager button:focus-visible,.pol-pager a:focus-visible{outline:3px solid var(--pol-btn-edge);outline-offset:3px}
.pol-pager button.is-active,.pol-pager a.is-active{background:var(--pol-blue-500);
  border-color:var(--pol-blue-500);color:#fff;
  --pol-btn-edge:var(--pol-blue-700);--pol-btn-cast:rgba(43,47,214,.42)}
.pol-pager button.is-active:hover,.pol-pager a.is-active:hover{color:#fff}
.pol-pager button:disabled{opacity:.38;cursor:not-allowed;pointer-events:none;
  transform:none;box-shadow:0 4px 0 0 var(--pol-btn-edge)}
.pol-tablefoot--pager-only{justify-content:flex-end}

/* Mobilde tablo -> kart. <td data-lbl="Baslik"> ile baslik tasinir. */
@media(max-width:820px){
  /* table ve tbody de block olmali. Aksi halde tablo duzeni algoritmasi calismaya
     devam edip genisligi icerikten hesaplar; kart modunda bile yatay kayma olur
     (26.08.2026: 371px viewport'ta tablo 460px kaliyordu). */
  .pol-table--responsive{display:block;width:100%}
  .pol-table--responsive tbody{display:block;width:100%}
  .pol-table--responsive thead{display:none}
  .pol-table--responsive tbody tr{display:block;margin:var(--pol-sp-3);padding:var(--pol-sp-2);
    border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-0)}
  /* Hucre BLOK olmali: etiket ustte, deger altinda normal metin akisinda.
     Flex/grid KULLANILMAZ — hucredeki <b>/<span> ayri oge sayilip tek tek sikisir,
     <br> yok sayilir; iki velili hucrede isimler harf harf kirilir. */
  .pol-table--responsive tbody td{display:block;padding:9px 12px;text-align:left;
    border-bottom:var(--pol-line-border);overflow-wrap:break-word}
  .pol-table--responsive tbody td:last-child{border-bottom:0}
  .pol-table--responsive tbody td::before{content:attr(data-lbl);display:block;margin-bottom:3px;
    font-size:var(--pol-fs-11);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pol-n-500)}
  .pol-table--responsive .pol-td-right,
  .pol-table--responsive .pol-td-center{text-align:left}
  /* Islem hucresi: ikonlar saga yasli, yan yana; "Islem" etiketi gizli */
  .pol-table--responsive .pol-td-actions{display:flex;justify-content:flex-end;gap:2px}
  .pol-table--responsive .pol-td-actions::before{content:none}
}

/* ---------- 5.9 Modal ---------- */
.pol-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;
  padding:var(--pol-sp-4);opacity:0;visibility:hidden;transition:var(--pol-t)}
.pol-modal.is-open{opacity:1;visibility:visible}
.pol-modal__ovl{position:absolute;inset:0;background:rgba(14,17,48,.55);backdrop-filter:blur(3px)}
.pol-modal__box{position:relative;width:100%;max-width:560px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);
  display:flex;flex-direction:column;background:var(--pol-n-0);border-radius:var(--pol-r-xl);
  box-shadow:var(--pol-sh-lg);transform:translateY(18px) scale(.97);transition:var(--pol-t-slow);overflow:hidden}
.pol-modal.is-open .pol-modal__box{transform:translateY(0) scale(1)}
.pol-modal__box--sm{max-width:420px} .pol-modal__box--lg{max-width:840px}
.pol-modal__head{display:flex;align-items:center;gap:var(--pol-sp-3);
  padding:var(--pol-sp-5) var(--pol-sp-5) var(--pol-sp-4);border-bottom:var(--pol-line-border)}
.pol-modal__head:has(.pol-modal__t > span:not(:empty)){align-items:flex-start}
.pol-modal__head .pol-card__ico{width:42px;height:42px}
.pol-modal__t{flex:1;min-width:0}
.pol-modal__t b{display:block;font-size:var(--pol-fs-18);font-weight:700;color:var(--pol-ink);line-height:1.3}
.pol-modal__t span{font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-modal__x{width:34px;height:34px;flex:none;border-radius:10px;display:grid;place-items:center;
  color:var(--pol-n-400);transition:var(--pol-t-fast)}
.pol-modal__x:hover{background:var(--pol-n-100);color:var(--pol-danger)}
.pol-modal__body{padding:var(--pol-sp-5);overflow-y:auto;overflow-x:hidden;flex:1}
.pol-modal__foot{display:flex;align-items:center;justify-content:flex-end;gap:var(--pol-sp-3);
  padding:var(--pol-sp-4) var(--pol-sp-5);border-top:var(--pol-line-border);background:var(--pol-n-25)}
.pol-modal__foot--split{justify-content:space-between}

/* ---------- 5.10 Uyarı kutusu / boş durum / toast ---------- */
.pol-alert{display:flex;gap:var(--pol-sp-3);padding:14px var(--pol-sp-4);border-radius:var(--pol-r-md);
  font-size:var(--pol-fs-14);border:1px solid transparent}
.pol-alert__ico{flex:none;margin-top:1px}
/* Uyarı içinde <b> cümle içi vurgudur, satırı bölmez.
   Kendi satırını isteyen başlık için .pol-alert__t kullanılır. */
.pol-alert b{font-weight:700}
.pol-alert__t{display:block;font-weight:700;margin-bottom:1px}
.pol-alert--info{background:var(--pol-info-bg);color:var(--pol-info-tx);border-color:var(--pol-blue-100)}
.pol-alert--success{background:var(--pol-success-bg);color:var(--pol-success-tx);border-color:#BFE9D2}
.pol-alert--warning{background:var(--pol-warning-bg);color:var(--pol-warning-tx);border-color:#F7E2AE}
.pol-alert--danger{background:var(--pol-danger-bg);color:var(--pol-danger-tx);border-color:#F8CFD0}
.pol-alert--sm{padding:9px var(--pol-sp-3);font-size:var(--pol-fs-12);gap:var(--pol-sp-2);border-radius:var(--pol-r-sm)}
.pol-alert--sm .pol-alert__ico{width:16px;height:16px}

/* ---------- 5.10b Yoklama durum seçici (segmented) ---------- */
.pol-yok-tools{align-items:flex-end}
.pol-yok-tools__actions{gap:2px;flex:none}
.pol-yok-alert__desktop{display:none}
.pol-yok{display:inline-flex;border:var(--pol-line-border);border-radius:var(--pol-r-md);
  overflow:hidden;background:var(--pol-n-0)}
.pol-yok__b{padding:8px 14px;font-size:var(--pol-fs-13);font-weight:600;color:var(--pol-n-500);
  border-right:var(--pol-line-border);transition:var(--pol-t-fast);white-space:nowrap}
.pol-yok__b:last-child{border-right:0}
.pol-yok__b:hover{background:var(--pol-n-50);color:var(--pol-n-700)}
/* Aktif durum: parent'ın data-durum'una göre ilgili buton dolu renk */
.pol-yok[data-durum="1"] .pol-yok__b--k{background:var(--pol-success);color:#fff}
.pol-yok[data-durum="2"] .pol-yok__b--g{background:var(--pol-danger);color:#fff}
.pol-yok[data-durum="3"] .pol-yok__b--m{background:var(--pol-warning);color:#fff}
@media(min-width:621px){
  .pol-yok-tools{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:center}
  .pol-yok-tools .pol-tabletools__grow{display:flex;align-items:center;gap:var(--pol-sp-3);min-width:0}
  .pol-yok-tools .pol-tabletools__grow>.pol-small{flex:none}
  .pol-yok-tools .pol-alert{flex:0 1 auto;margin-top:0;padding:6px 10px;white-space:nowrap}
  .pol-yok-alert__desktop{display:inline}
  .pol-yok-alert__mobile{display:none}
  .pol-yok-tools__actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:280px;justify-self:center;transform:translateX(10px)}
  .pol-yok-tools__actions .pol-btn{width:100%}
  .pol-yok-tbl .pol-yok{display:flex;width:280px}
  .pol-yok-tbl .pol-yok__b{flex:1}
  .pol-yok-foot{display:grid;grid-template-columns:minmax(0,1fr) 340px}
  .pol-yok-foot #yok-kaydet{width:280px;justify-self:center;transform:translateX(10px)}
}
@media(max-width:620px){
  .pol-yok-tools{align-items:stretch}
  .pol-yok-tools__actions{width:100%}
  .pol-yok-tools__actions .pol-btn{flex:1}
  .pol-yok__b{padding:8px 6px;font-size:var(--pol-fs-12);flex:1}
  /* Yoklama satırı mobilde dikey: isim tam genişlik üstte, durum seçici altta */
  .pol-yok-tbl thead{display:none}
  .pol-yok-tbl tbody tr{display:block;padding:12px var(--pol-sp-5)}
  .pol-yok-tbl tbody td{display:block;padding:0;border:0}
  .pol-yok-tbl .pol-td-center{text-align:left;width:auto}
  .pol-yok-tbl .pol-yok{display:flex;width:100%;margin-top:10px}
}
.pol-alert--sm{padding:9px 12px;font-size:var(--pol-fs-12);gap:8px;line-height:1.45}
.pol-alert--sm .pol-alert__ico{width:15px;height:15px}

.pol-empty{text-align:center;padding:var(--pol-sp-8) var(--pol-sp-5)}
.pol-empty__ico{width:76px;height:76px;margin:0 auto var(--pol-sp-4);border-radius:var(--pol-r-xl);
  display:grid;place-items:center;background:var(--pol-n-50);color:var(--pol-n-300)}
.pol-empty b{display:block;font-size:var(--pol-fs-16);font-weight:700;color:var(--pol-n-700);margin-bottom:4px}
.pol-empty p{font-size:var(--pol-fs-14);color:var(--pol-n-500);margin-bottom:var(--pol-sp-4)}

.pol-toasts{position:fixed;right:var(--pol-sp-5);bottom:var(--pol-sp-5);z-index:120;
  display:flex;flex-direction:column;gap:10px;max-width:calc(100vw - 40px)}
.pol-toast{display:flex;align-items:center;gap:var(--pol-sp-3);min-width:300px;
  padding:13px var(--pol-sp-4);border-radius:var(--pol-r-md);background:var(--pol-ink);color:#fff;
  box-shadow:var(--pol-sh-lg);font-size:var(--pol-fs-14);animation:polToastIn .3s cubic-bezier(.16,1,.3,1)}
.pol-toast__ico{flex:none;color:var(--pol-success)}
.pol-toast--danger .pol-toast__ico{color:#FF7A80}
.pol-toast--warning .pol-toast__ico{color:#FFC94D}
@keyframes polToastIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}

/* ---------- 5.11 Sekmeler ---------- */
.pol-tabs{display:flex;gap:2px;padding:5px;border-radius:var(--pol-r-md);background:var(--pol-n-100);
  overflow-x:auto;scrollbar-width:none}
.pol-tabs::-webkit-scrollbar{display:none}
.pol-tabs__t{flex:1;min-width:max-content;height:38px;padding:0 16px;border-radius:9px;
  font-size:var(--pol-fs-14);font-weight:600;color:var(--pol-n-600);transition:var(--pol-t-fast);
  display:inline-flex;align-items:center;justify-content:center;gap:7px}
.pol-tabs__t:hover{color:var(--pol-ink)}
.pol-tabs__t.is-active{background:var(--pol-n-0);color:var(--pol-blue-600);box-shadow:var(--pol-sh-sm)}
.pol-tabs--line{background:none;padding:0;gap:var(--pol-sp-5);border-bottom:var(--pol-line-border);border-radius:0}
.pol-tabs--line .pol-tabs__t{flex:none;height:46px;padding:0;border-radius:0;
  border-bottom:2.5px solid transparent;margin-bottom:-1px}
.pol-tabs--line .pol-tabs__t.is-active{background:none;box-shadow:none;border-bottom-color:var(--pol-blue-500)}

/* ---------- 5.12 Zaman çizelgesi (yarış takvimi / hareketler) ---------- */
.pol-tl{position:relative;padding-left:var(--pol-sp-6)}
.pol-tl::before{content:'';position:absolute;left:9px;top:6px;bottom:6px;width:var(--pol-line-width);background:var(--pol-line-color)}
.pol-tl__i{position:relative;padding-bottom:var(--pol-sp-5)}
.pol-tl__i:last-child{padding-bottom:0}
.pol-tl__i::before{content:'';position:absolute;left:calc(-1 * var(--pol-sp-6) + 4px);top:5px;
  width:12px;height:12px;border-radius:50%;background:var(--pol-n-0);
  border:2.5px solid var(--pol-accent,var(--pol-blue-500))}
.pol-tl__i--done::before{background:var(--pol-accent,var(--pol-blue-500))}
.pol-tl__d{font-size:var(--pol-fs-11);font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--pol-accent,var(--pol-blue-500))}
.pol-tl__t{font-size:var(--pol-fs-14);font-weight:600;color:var(--pol-ink);line-height:1.35}
.pol-tl__s{font-size:var(--pol-fs-12);color:var(--pol-n-500)}

/* ---------- 5.13 Liste satırı (dashboard kartı içi) ---------- */
.pol-row{display:flex;align-items:center;gap:var(--pol-sp-3);padding:10px 0}
.pol-row+.pol-row{border-top:var(--pol-line-border)}
.pol-row__tx{flex:1;min-width:0}
.pol-row__tx b{display:block;font-size:var(--pol-fs-14);font-weight:600;color:var(--pol-ink);
  line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pol-row__tx span{font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-row__ico{width:36px;height:36px;flex:none;border-radius:11px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--pol-accent,var(--pol-blue-500)) 12%,#fff);
  color:var(--pol-accent,var(--pol-blue-500))}

/* ---------- 5.14 İkon ölçüleri ---------- */
.pol-i{width:22px;height:22px;flex:none;stroke-width:1.9}
.pol-i--sm{width:18px;height:18px;stroke-width:2.1}
.pol-i--lg{width:26px;height:26px;stroke-width:1.8}
.pol-i--xl{width:34px;height:34px;stroke-width:1.6}

/* ==========================================================================
   6) EKRANLAR
   ========================================================================== */

/* ---------- 6.1 Giriş (OTP) ---------- */
.pol-auth{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.05fr .95fr}
/* Sol zemin: bilerek NÖTR grafit — marka mavisiyle aynı olmasın, logo (mavi
   üçgen + turuncu) zeminle karışmasın. Turuncu ışıma logoyla uyum için kalır. */
.pol-auth__art{position:relative;display:flex;flex-direction:column;justify-content:space-between;
  padding:var(--pol-sp-9) var(--pol-sp-8);color:#fff;overflow:hidden;
  background:linear-gradient(155deg,#333747 0%,#20232E 55%,#14151C 100%)}
.pol-auth__art::after{content:'';position:absolute;right:-140px;bottom:-160px;width:520px;height:520px;
  border-radius:50%;background:radial-gradient(circle,rgba(244,123,32,.28),transparent 68%)}
.pol-auth__art>*{position:relative;z-index:1}
/* Marka bloğu dikeyde ortalanır, telif altta footer olarak kalır */
.pol-auth__brand{margin-block:auto;text-align:center}
.pol-auth__logo{width:min(340px,64%);height:auto;object-fit:contain;
  margin:0 auto var(--pol-sp-5);filter:drop-shadow(0 12px 28px rgba(0,0,0,.35))}
/* Kulüp adı: tek satır, sistem adının üstünde daha sönük bir künye satırı */
.pol-auth__club{font-family:var(--pol-font);font-weight:600;white-space:nowrap;
  font-size:clamp(.9rem,1.4vw,1.15rem);letter-spacing:.04em;color:rgba(255,255,255,.7)}
/* Sistemin adı: asıl ürün adı — büyük, Condensed, turuncu vurgulu; kulüp adından ayrı */
.pol-auth__sys{position:relative;display:inline-block;margin-top:var(--pol-sp-4);padding-top:var(--pol-sp-4);
  font-family:var(--pol-font-cond);font-weight:700;line-height:1.05;letter-spacing:.01em;
  font-size:clamp(2.1rem,3.5vw,3.3rem);color:#fff}
.pol-auth__sys::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:52px;height:4px;border-radius:var(--pol-r-full);background:var(--pol-orange-500)}
.pol-auth__foot{font-size:var(--pol-fs-13);color:rgba(255,255,255,.5);text-align:center}
.pol-auth__ver{margin-left:6px;padding:2px 8px;border-radius:var(--pol-r-full);
  background:rgba(255,255,255,.08);font-family:var(--pol-font-cond);font-weight:600;
  letter-spacing:.03em;color:rgba(255,255,255,.72)}
.pol-auth__foot--mobil{display:none;font-size:var(--pol-fs-12);color:var(--pol-n-400);
  text-align:center;margin-top:var(--pol-sp-6)}

.pol-auth__panel{display:grid;place-items:center;padding:var(--pol-sp-7) var(--pol-sp-6);
  background:var(--pol-n-0)}
.pol-auth__form{width:100%;max-width:400px}
.pol-auth__step{display:none} .pol-auth__step.is-active{display:block}
.pol-auth__phone{display:flex;align-items:center;gap:8px;padding:12px var(--pol-sp-4);
  border-radius:var(--pol-r-md);background:var(--pol-blue-50);color:var(--pol-blue-700);
  font-size:var(--pol-fs-14);font-weight:600;margin-bottom:var(--pol-sp-5)}
.pol-auth__phone .pol-btn--link{margin-left:auto;font-size:var(--pol-fs-13)}

/* KOD GECERSIZLESTI (is-kod-gecersiz) — kutucuklar ve "Giris Yap" EKRANDAN KALKAR,
   yerine uyari satiri gelir. Bosaltmak yetmez, kutular hic durmamalidir.

   UYARI SATIRI VARSAYILANDA GIZLIDIR ve gizleme kurali IKI SINIFLI yazilir:
   tek sinifla (.pol-otp__uyari{display:none}) yazilirsa ayni ozgullukteki
   .pol-alert{display:flex} onu ezer ve uyari HER ZAMAN gorunur — kod gecerliyken
   bile "Bu kod artik gecerli degil" yazar. */
.pol-auth__step .pol-otp__uyari{display:none}
.pol-auth__step.is-kod-gecersiz .pol-otp__uyari{display:flex;margin-top:var(--pol-sp-5)}
.pol-auth__step.is-kod-gecersiz .pol-otp,
.pol-auth__step.is-kod-gecersiz .pol-otp__submit{display:none}


/* ---------- 6.2 Sporcu seçim ekranı (velinin 2+ sporcusu varsa) ---------- */
.pol-picker{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;
  padding:var(--pol-sp-8) var(--pol-sp-5);background:
    radial-gradient(1100px 460px at 50% -12%,var(--pol-blue-50),transparent 62%),var(--pol-n-50)}
.pol-picker__head{text-align:center;margin-bottom:var(--pol-sp-7)}
.pol-picker__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:var(--pol-sp-5);max-width:860px;margin-inline:auto;width:100%}
.pol-pcard{position:relative;padding:var(--pol-sp-6);text-align:center;cursor:pointer;background:var(--pol-n-0);
  border:var(--pol-line-border);border-radius:var(--pol-r-xl);transition:var(--pol-t-slow);
  box-shadow:var(--pol-sh-xs)}
.pol-pcard:hover{transform:translateY(-6px);border-color:var(--pol-blue-400);box-shadow:var(--pol-sh-lg)}
.pol-pcard__avatar-wrap{position:relative;width:104px;margin:0 auto var(--pol-sp-4)}
.pol-pcard__ph{width:104px;height:104px;margin:0;border-radius:50%;
  display:grid;place-items:center;overflow:hidden;background:var(--pol-blue-50);
  border:3px solid var(--pol-n-0);box-shadow:0 0 0 3px var(--pol-n-100);transition:var(--pol-t)}
.pol-pcard:hover .pol-pcard__ph{box-shadow:0 0 0 3px var(--pol-blue-300)}
.pol-pcard__ph img{width:100%;height:100%;object-fit:cover}
.pol-pcard__n{font-size:var(--pol-fs-18);font-weight:700;color:var(--pol-ink);line-height:1.25}
.pol-pcard__g{font-size:var(--pol-fs-13);color:var(--pol-n-500);margin-bottom:var(--pol-sp-4)}
.pol-pcard__meta{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:var(--pol-sp-4)}
.pol-pcard--restricted{background:linear-gradient(180deg,var(--pol-danger-bg),var(--pol-n-0) 52%);
  border-color:var(--pol-danger);box-shadow:0 12px 30px -18px rgba(232,35,42,.55)}
.pol-pcard--restricted:hover{border-color:var(--pol-red-600);box-shadow:0 18px 38px -18px rgba(232,35,42,.55)}
.pol-pcard--restricted .pol-pcard__ph{box-shadow:0 0 0 3px #F8CFD0}
.pol-pcard__status{position:absolute;z-index:2;left:82px;top:-14px;width:138px;min-height:54px;
  display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;
  border:1px solid #F8CFD0;border-radius:10px;background:var(--pol-danger-bg);color:var(--pol-danger-tx);
  box-shadow:0 8px 20px -12px rgba(232,35,42,.65);font-size:var(--pol-fs-11);font-weight:700;line-height:1.2;text-align:left}
.pol-pcard__status .pol-i{width:15px;height:15px;flex:none}

/* ---------- 6.3 Dashboard ---------- */
.pol-hero{
  border-radius:var(--pol-r-xl);padding:var(--pol-sp-6) var(--pol-sp-7);margin-bottom:var(--pol-sp-6);
  color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(125deg,var(--pol-blue-600),var(--pol-blue-800) 72%,var(--pol-ink));
  box-shadow:var(--pol-sh-md);
}
.pol-hero::after{content:'';position:absolute;right:-90px;top:-120px;width:360px;height:360px;
  border-radius:50%;background:radial-gradient(circle,rgba(244,123,32,.30),transparent 66%)}
.pol-hero__in{position:relative;z-index:1;display:flex;align-items:center;gap:var(--pol-sp-5);flex-wrap:wrap}
.pol-hero__ph{width:82px;height:82px;flex:none;border-radius:var(--pol-r-lg);overflow:hidden;
  background:rgba(255,255,255,.15);display:grid;place-items:center;border:2px solid rgba(255,255,255,.3)}
.pol-hero__ph img{width:100%;height:100%;object-fit:cover}
.pol-hero__tx{flex:1;min-width:230px}
.pol-hero__hi{font-size:var(--pol-fs-13);color:rgba(255,255,255,.72);font-weight:600}
.pol-hero__nm{font-family:var(--pol-font-cond);font-size:var(--pol-fs-34);font-weight:700;line-height:1.08}
.pol-hero__facts{display:flex;flex-wrap:wrap;gap:var(--pol-sp-2);margin-top:10px}
.pol-hero__fact{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:var(--pol-r-full);
  background:rgba(255,255,255,.13);font-size:var(--pol-fs-13);font-weight:600;
  border:1px solid rgba(255,255,255,.14)}
.pol-hero__fact span{color:rgba(255,255,255,.6);font-weight:500}
/* Malzeme görselleri (liste ve seçim kutuları) */
.pol-mz-img{width:28px;height:28px;border-radius:8px;object-fit:cover;flex:none;
  border:var(--pol-line-border);background:var(--pol-n-50)}
.pol-mz-img--lg{width:40px;height:40px;border-radius:10px}

/* ---------- Header İKİ SÜTUN: künye | yan sütun ----------
   İKİ EKRAN AYNI İSKELETİ KULLANIR: veli ana sayfasında sağ sütun MALZEMELER,
   sporcu kartında VELİLER. Her ikisi de önce künye rozetlerinin arasında akıyordu
   (11.09.2026): "Grup", "Antrenör" gibi kimlik bilgileriyle aynı şeritte durunca ne
   oldukları okunmuyor, iki veli yan yana yazılınca satır taşıyordu.
   Sağ sütun içeriği kadar yer alır, sol sütun kalanı doldurur. */
.pol-hero__split{position:relative;z-index:1;display:grid;gap:var(--pol-sp-5);
  grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center}
.pol-hero__yan{min-width:0;max-width:320px;padding-left:var(--pol-sp-5);
  border-left:1px solid var(--pol-line-color)}
.pol-hero__yanlist{display:flex;flex-direction:column;gap:6px}
/* Yan sütun satırının ortak kutusu. Buton dili TAŞIMAZ — hap+dudak değil,
   liste öğesidir. Üstte ad (koyu), altta ikincil bilgi (telefon). */
.pol-hero__yansatir,
.pol-hero__mzitem{display:flex;align-items:center;gap:9px;width:100%;padding:6px 10px;
  border:var(--pol-line-border);border-radius:10px;background:var(--pol-n-25);
  color:var(--pol-n-700);font:inherit;font-size:var(--pol-fs-12);font-weight:600;
  text-align:left}
.pol-hero__yansatir{display:block}
.pol-hero__yansatir b{display:block;color:var(--pol-ink);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.pol-hero__yansatir span{display:block;color:var(--pol-n-500);font-weight:500;
  font-variant-numeric:tabular-nums}
/* MALZEME SÜTUNU İKİ KOLONLU IZGARADIR (29.09.2026). Tek kolonda 8 malzeme alt alta
   diziliyor, dar sağ sütun header'ı aşağı doğru uzatıyordu (künye 3 satırken malzeme
   listesi 8 satır). İki kolonla yükseklik yarıya iner ve künyeyle dengelenir.
   Yalnız veli ana sayfasına özgüdür — sporcu kartındaki veliler listesi tek kolon kalır. */
.pol-hero__yan--malzeme{max-width:440px}
.pol-hero__yanlist--izgara{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.pol-hero__yanlist--izgara .pol-hero__mzitem b{white-space:normal;overflow-wrap:anywhere;line-height:1.25}

/* Malzeme öğesi ayrıca TİKLANABİLİR: görseli modalde büyür. */
.pol-hero__mzitem{cursor:pointer;transition:var(--pol-t-fast)}
.pol-hero__mzitem:hover{border-color:var(--pol-blue-300);background:var(--pol-blue-50)}
.pol-hero__mzitem b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pol-hero__mzico{width:28px;height:28px;flex:none;display:grid;place-items:center;
  border-radius:8px;background:var(--pol-n-50);border:var(--pol-line-border);color:var(--pol-n-500)}

/* Modaldeki büyük önizleme — 28px'lik kutuda mayo/bone deseni seçilemiyordu. */
.pol-mzbuyuk{display:grid;place-items:center;min-height:220px;padding:var(--pol-sp-4);
  border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-25)}
.pol-mzbuyuk img{max-width:100%;max-height:60vh;border-radius:var(--pol-r-md);
  object-fit:contain;background:var(--pol-n-0)}
.pol-mzbuyuk__bos{display:grid;justify-items:center;gap:8px;color:var(--pol-n-500);
  font-size:var(--pol-fs-13);font-weight:600}
.pol-readonly-alert{align-items:flex-start;padding:var(--pol-sp-4) var(--pol-sp-5);box-shadow:0 10px 24px -18px rgba(232,35,42,.55)}
.pol-readonly-alert__icon{width:42px;height:42px;display:grid;place-items:center;flex:none;border-radius:var(--pol-r-md);
  background:var(--pol-n-0);color:var(--pol-danger);box-shadow:var(--pol-sh-xs)}
.pol-readonly-alert__reason{display:block;margin-top:7px;padding-top:7px;border-top:1px solid #F4C4C6}
.pol-readonly-action{min-height:36px;display:flex;align-items:center;justify-content:center;gap:7px;width:100%;
  padding:7px 11px;border:1px solid #F8CFD0;border-radius:var(--pol-r-sm);background:var(--pol-danger-bg);
  color:var(--pol-danger-tx);font-size:var(--pol-fs-12);font-weight:700}
.pol-readonly-action .pol-i{width:15px;height:15px;flex:none}
.pol-readonly-action--compact{display:inline-flex;width:auto;min-height:30px;padding:5px 8px}

.pol-dashgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pol-sp-5)}
.pol-dashgrid--4{grid-template-columns:repeat(4,1fr)}

/* ---------- 6.4 Admin: eşleme (transfer) paneli ---------- */
.pol-match{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--pol-sp-4);align-items:stretch}
.pol-match__col{display:flex;flex-direction:column;border:var(--pol-line-border);
  border-radius:var(--pol-r-lg);background:var(--pol-n-25);overflow:hidden}
.pol-match__hd{padding:11px var(--pol-sp-4);border-bottom:var(--pol-line-border);background:var(--pol-n-0);
  display:flex;align-items:center;justify-content:space-between;gap:8px}
.pol-match__list{padding:8px;overflow-y:auto;max-height:290px;display:flex;flex-direction:column;gap:5px}
.pol-match__it{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;
  background:var(--pol-n-0);border:var(--pol-line-border);cursor:pointer;transition:var(--pol-t-fast);
  font-size:var(--pol-fs-14);text-align:left;width:100%}
.pol-match__it:hover{border-color:var(--pol-blue-300);background:var(--pol-blue-50)}
.pol-match__it.is-sel{border-color:var(--pol-blue-500);background:var(--pol-blue-50);
  box-shadow:inset 3px 0 0 var(--pol-blue-500)}
.pol-match__mid{display:flex;flex-direction:column;justify-content:center;gap:8px}

/* ==========================================================================
   7) YARDIMCILAR
   ========================================================================== */
.pol-grid{display:grid;gap:var(--pol-sp-5)}
.pol-g2{grid-template-columns:repeat(2,1fr)} .pol-g3{grid-template-columns:repeat(3,1fr)}
.pol-g4{grid-template-columns:repeat(4,1fr)}
.pol-flex{display:flex;align-items:center;gap:var(--pol-sp-3)}
.pol-flex--wrap{flex-wrap:wrap} .pol-flex--between{justify-content:space-between}
.pol-flex--end{justify-content:flex-end} .pol-flex--col{flex-direction:column;align-items:stretch}
.pol-spacer{flex:1}
.pol-mt-2{margin-top:var(--pol-sp-2)} .pol-mt-3{margin-top:var(--pol-sp-3)}
.pol-mt-4{margin-top:var(--pol-sp-4)} .pol-mt-5{margin-top:var(--pol-sp-5)}
.pol-mt-6{margin-top:var(--pol-sp-6)} .pol-mb-0{margin-bottom:0}
.pol-mb-3{margin-bottom:var(--pol-sp-3)} .pol-mb-4{margin-bottom:var(--pol-sp-4)}
.pol-mb-5{margin-bottom:var(--pol-sp-5)} .pol-mb-6{margin-bottom:var(--pol-sp-6)}
.pol-tc{text-align:center} .pol-tr{text-align:right}
.pol-hide{display:none!important}
.pol-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.pol-divider{height:var(--pol-line-width);background:var(--pol-line-color);margin-block:var(--pol-sp-5)}
.pol-nowrap{white-space:nowrap}
.pol-data-freshness{display:block;margin-top:2px;color:var(--pol-n-500);font-size:var(--pol-fs-11)}
.pol-trend--down{color:var(--pol-danger)}
.pol-audit-filter{grid-template-columns:180px 180px minmax(240px,1fr) auto;align-items:end}

/* ==========================================================================
   8) RESPONSIVE  —  proje %100 mobil uyumlu
   ========================================================================== */
@media(max-width:1180px){
  .pol-dashgrid,.pol-g3,.pol-dashgrid--4,.pol-g4{grid-template-columns:repeat(2,1fr)}
  .pol-side{width:var(--pol-sidebar-w-mini)}
  .pol-side__scroll{padding-inline:10px}
  .pol-side__head{display:none}
  .pol-side .pol-navitem__txt,.pol-side .pol-navitem__badge,.pol-side__title{display:none}
  .pol-side .pol-navitem{justify-content:center;padding:9px}
  .pol-app--inner .pol-main{padding-inline:var(--pol-sp-5)}
}
@media(max-width:980px){
  /* Mobilde sol/sağ değil ÜST/ALT: koyu marka banner'ı üstte, beyaz form altta.
     Masaüstüyle aynı zemin ve marka; sadece dikey yığılır. */
  .pol-auth{grid-template-columns:1fr}
  .pol-auth__art{padding:var(--pol-sp-8) var(--pol-sp-5) var(--pol-sp-7)}
  .pol-auth__brand{margin-block:0}          /* marka üstte kalsın, dikey ortalanmasın */
  .pol-auth__logo{width:min(200px,52%);margin-bottom:var(--pol-sp-4)}
  .pol-auth__club{white-space:normal}       /* dar ekranda satır kırabilir */
  .pol-auth__sys{font-size:clamp(1.7rem,7vw,2.4rem)}
  .pol-auth__foot{display:none}             /* telif+versiyon formun altındakinde */
  .pol-auth__foot--mobil{display:block}
  .pol-match{grid-template-columns:1fr}
  .pol-match__mid{flex-direction:row;justify-content:center}
}
@media(max-width:820px){
  :root{--pol-topbar-h:64px}
  /* iOS Safari, font-size < 16px olan input'a odaklanınca otomatik yakınlaşır
     ve sayfa yana kayar. Mobilde tüm form alanları 16px → yakınlaşma/taşma olmaz. */
  .pol-input,.pol-select,.pol-textarea{font-size:16px}
  .pol-container,.pol-topbar{padding-inline:var(--pol-sp-4)}
  .pol-topbar{gap:var(--pol-sp-2)}
  .pol-topbar__logo{width:58px;height:46px}
  .pol-app--inner .pol-main{padding:var(--pol-sp-5) var(--pol-sp-4) var(--pol-sp-8)}
  /* Sol menü → off-canvas çekmece */
  .pol-side{position:fixed;top:0;left:0;height:100vh;height:100dvh;width:var(--pol-sidebar-w);z-index:80;
    min-height:0;overflow:hidden;transform:translateX(-100%);box-shadow:var(--pol-sh-lg)}
  .pol-side__scroll{position:static;max-height:none;height:100%;overflow-y:auto;
    padding:calc(var(--pol-sp-5) + env(safe-area-inset-top)) var(--pol-sp-4) calc(var(--pol-sp-5) + env(safe-area-inset-bottom))}
  .pol-side.is-open{transform:translateX(0)}
  .pol-topbar [data-side-toggle]{display:grid}
  .pol-side__head{display:flex}
  .pol-side .pol-navitem__txt,.pol-side .pol-navitem__badge,.pol-side__title{display:block}
  .pol-side .pol-navitem{justify-content:flex-start;padding:8px 10px}
  .pol-side .pol-navitem__badge{display:inline-block}
  .pol-hero{padding:var(--pol-sp-5)}
  .pol-hero__nm{font-size:var(--pol-fs-28)}
  .pol-hero__ph{width:64px;height:64px}
  /* Header iki sütundan tek sütuna düşer; ayirıcı çizgi sola değil ÜSTE geçer. */
  .pol-hero__split{grid-template-columns:1fr;gap:var(--pol-sp-4)}
  .pol-hero__yan{max-width:none;padding-left:0;padding-top:var(--pol-sp-4);
    border-left:0;border-top:1px solid var(--pol-line-color)}
  .pol-topbar__name{display:none}
  .pol-footer__inner{min-height:76px;padding:var(--pol-sp-4);gap:var(--pol-sp-4)}
  .pol-footer--veli .pol-footer__inner{min-height:104px}
  .pol-modal{padding:env(safe-area-inset-top) 0 0;align-items:flex-end}
  .pol-modal__box{max-width:100%;max-height:92vh;max-height:calc(100dvh - env(safe-area-inset-top));border-radius:var(--pol-r-xl) var(--pol-r-xl) 0 0;
    transform:translateY(100%)}
  .pol-modal.is-open .pol-modal__box{transform:translateY(0)}
  .pol-toasts{left:var(--pol-sp-4);right:var(--pol-sp-4);bottom:calc(var(--pol-sp-4) + env(safe-area-inset-bottom))}
  .pol-toast{min-width:0}
}
@media(max-width:620px){
  .pol-dashgrid,.pol-dashgrid--4,.pol-g2,.pol-g3,.pol-g4{grid-template-columns:1fr}
  .pol-athlete__meta{display:none}
  /* Mobil kompakt: metin gizli, ikon + chevron yan yana. */
  .pol-athlete__btn{width:76px;grid-template-columns:32px 18px;gap:8px;padding:6px 9px}
  .pol-topbar__actions{gap:var(--pol-sp-1)}
  .pol-footer__inner{display:flex;justify-content:center}
  .pol-footer__line{display:none}
  .pol-footer__copy{font-size:var(--pol-fs-12);line-height:1.45}
  .pol-footer--veli .pol-footer__inner{min-height:0;flex-direction:column;align-items:stretch;
    padding:var(--pol-sp-6) var(--pol-sp-4);gap:var(--pol-sp-4)}
  .pol-footer--veli .pol-footer__copy{justify-content:flex-start}
  .pol-footer__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--pol-sp-2)}
  .pol-footer__action{min-height:50px;padding-inline:12px;white-space:normal;text-align:center;line-height:1.25}
  .pol-otp__cell{width:44px;height:56px;font-size:var(--pol-fs-24)}
  .pol-pagehead{align-items:flex-start}
  .pol-modal__foot{flex-direction:column-reverse}
  .pol-modal__foot .pol-btn{width:100%}
  .pol-auth__panel{padding:var(--pol-sp-6) var(--pol-sp-4)}
  .pol-audit-filter{grid-template-columns:1fr}
}
@media(max-width:480px){
  .pol-topbar{padding-inline:var(--pol-sp-3)}
  .pol-athlete__btn{width:44px;min-height:44px;display:flex;padding:4px;justify-content:center}
  .pol-athlete__chevron{display:none}
  .pol-footer__copy{align-items:flex-start;gap:10px;text-align:left}
  .pol-footer__actions{grid-template-columns:1fr}
}
@media(hover:none){
  .pol-card--hover:hover,.pol-card--app:hover,.pol-pcard:hover{transform:none}
  /* dokunmatikte hover takili kalmasin: dudak dinlenme boyuna doner */
  .pol-btn:hover{transform:none;
    box-shadow:0 4px 0 0 var(--pol-btn-edge),0 6px 12px -3px var(--pol-btn-cast)}
  .pol-btn--link:hover{box-shadow:none}
  .pol-btn:hover .pol-btn__ok{transform:none}
}
@media print{
  .pol-topbar,.pol-footer,.pol-side,.pol-toasts,.pol-btn{display:none!important}
  body{background:#fff}
  .pol-card{box-shadow:none;border-color:var(--pol-n-300);break-inside:avoid}
  /* Onay belgesi tek basina, sayfa cercevesi olmadan basilir. Kart kutusu
     kalkar; uzun metin sayfalara BOLUNEBILMELI, bu yuzden break-inside serbest. */
  .pol-belge{max-width:none}
  .pol-belge .pol-belge__metin{break-inside:auto}
  body.is-yazdiriliyor .pol-shell{padding:0;background:#fff}
  body.is-yazdiriliyor .pol-card{border:0;padding:0;break-inside:auto}
  body.is-yazdiriliyor .pol-card__body{padding:0}
}
@page{margin:16mm}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ========================================================================== 
   9) ORTAK CALISMA ALANI — 2026 arayuz yenilemesi
   --------------------------------------------------------------------------
   Referans dashboard'un yerlesim mantigi; mevcut Barlow tipografisi, marka
   renkleri, ikonlar ve tum islevler korunarak tek ortak kabuga uygulanir.
   ========================================================================== */

/* Dis cerceve yalniz sayfa zeminidir. Referanstaki gibi sol menu bu zeminde,
   sag calisma alani ise kendi beyaz panelinde durur. */
.pol-shell{
  padding:14px;background:
    radial-gradient(circle at 4% 5%,rgba(43,47,214,.08),transparent 27%),
    radial-gradient(circle at 96% 0,rgba(244,123,32,.08),transparent 24%),
    var(--pol-n-100);
}
.pol-app{
  min-width:0;background:transparent;border:0;border-radius:0;overflow:visible;box-shadow:none;
}

/* Ic sayfalarda gercek iki kolonlu kabuk: sol menu tum yuksekligi, sagda
   sayfa basligi ve calisma alani. .pol-body display:contents ile mevcut HTML
   degismeden grid ogelerini ortak kabuga tasir. */
.pol-app--inner{
  display:grid;grid-template-columns:var(--pol-sidebar-w) minmax(0,1fr);
  grid-template-rows:var(--pol-topbar-h) minmax(0,1fr);column-gap:14px;align-items:stretch;
}
.pol-app--inner .pol-body{display:contents}
.pol-app--inner .pol-topbar{grid-column:2;grid-row:1}
.pol-app--inner .pol-side{grid-column:1;grid-row:1 / 3}
.pol-app--inner .pol-main{
  grid-column:2;grid-row:2;width:100%;min-width:0;padding:20px 22px 32px;
  background:var(--pol-n-0);border:var(--pol-line-border);border-top:0;
  border-radius:0 0 var(--pol-r-xl) var(--pol-r-xl);
}
.pol-app--inner.is-side-mini{grid-template-columns:var(--pol-sidebar-w-mini) minmax(0,1fr)}

/* Sag calisma alani basligi */
.pol-app--inner .pol-topbar{
  position:relative;top:auto;height:var(--pol-topbar-h);z-index:60;
  padding:0 20px;background:rgba(255,255,255,.96);border:var(--pol-line-border);
  border-radius:var(--pol-r-xl) var(--pol-r-xl) 0 0;
  box-shadow:none;backdrop-filter:blur(12px);
}
.pol-app--inner .pol-topbar::after{display:none}
.pol-app--inner .pol-topbar__brand{display:none}
.pol-topbar__page{display:flex;min-width:0;flex-direction:column;justify-content:center;line-height:1.2}
.pol-topbar__page b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--pol-ink);font-size:var(--pol-fs-20);font-weight:700;letter-spacing:-.015em}
.pol-topbar__page span{margin-top:3px;color:var(--pol-n-500);font-size:var(--pol-fs-11);
  font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.pol-app--dash .pol-topbar__page{display:none}
.pol-topbar__pageactions{
  display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0;
  flex-wrap:nowrap!important;white-space:nowrap;
}
.pol-topbar__pageactions .pol-field__label{display:none}
.pol-topbar__pageactions .pol-select{height:42px}
.pol-app--inner .pol-topbar .pol-iconbtn{
  color:var(--pol-n-600);background:var(--pol-n-0);border:var(--pol-line-border);
  box-shadow:none;
}
.pol-app--inner .pol-topbar .pol-iconbtn:hover{background:var(--pol-n-50);color:var(--pol-blue-600)}
.pol-app--inner .pol-athlete__btn{
  width:100%;min-height:52px;border-radius:var(--pol-r-md);background:var(--pol-n-0);
  box-shadow:var(--pol-sh-xs);
}
.pol-app--inner .pol-athlete__btn:hover{background:var(--pol-n-50);box-shadow:var(--pol-sh-sm)}

/* Hesap karti masaustunde referanstaki gibi sol menude, marka alaninin hemen
   altinda ve ilk menu basliginin ustunde yer alir. Mobilde topbara geri doner. */
.pol-app--inner .pol-athlete{
  position:absolute;top:calc(100% + 14px);left:calc(-1 * var(--pol-sidebar-w));
  width:calc(var(--pol-sidebar-w) - 28px);z-index:75;
}
.pol-app--inner .pol-athlete__menu{left:0;right:auto;width:100%;min-width:100%}

/* Sol menu: marka sabit, menu kendi alaninda kayar. */
.pol-side{
  width:auto;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;
  align-self:stretch;position:relative;background:transparent;border:0;
  box-shadow:none;overflow:hidden;
}
.pol-side__brand{
  min-height:var(--pol-topbar-h);display:flex;align-items:center;gap:8px;flex:none;
  padding:10px 14px;border:0;background:transparent;
}
.pol-side__brandlink{display:flex;align-items:center;gap:10px;min-width:0;flex:1;text-decoration:none}
.pol-side__brandlink:hover{text-decoration:none}
.pol-side__brandlink img{width:44px;height:48px;object-fit:contain;flex:none}
.pol-side__brandtext{display:flex;min-width:0;flex-direction:column;line-height:1.15}
.pol-side__brandtext b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--pol-ink);font-size:var(--pol-fs-14);font-weight:700}
.pol-side__brandtext span{margin-top:3px;color:var(--pol-orange-600);font-size:10px;
  font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.pol-side__brand .pol-side__toggle{margin-left:auto;color:var(--pol-n-500)}
.pol-side__scroll{
  min-height:0;height:auto;flex:1;padding:82px 14px 14px;overflow-x:hidden;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--pol-n-300) transparent;
}
.pol-side__title{margin:0 8px 7px;color:var(--pol-n-400);font-size:10px;letter-spacing:.09em}
.pol-side__group+.pol-side__group{margin-top:18px;padding-top:14px;border-top:var(--pol-line-border)}
.pol-side__list{gap:3px}
.pol-navitem{
  position:relative;min-height:42px;gap:10px;padding:6px 9px;border:0;border-radius:10px;
  background:transparent;color:var(--pol-n-600);font-size:var(--pol-fs-14);font-weight:500;
  box-shadow:none;
}
.pol-navitem:hover{background:var(--pol-n-50);color:var(--pol-ink);transform:none}
.pol-navitem__ico{
  width:30px;height:30px;border-radius:8px;background:transparent;color:var(--pol-n-500);box-shadow:none;
}
.pol-navitem.is-active{
  background:color-mix(in srgb,var(--pol-accent,var(--pol-blue-500)) 9%,var(--pol-n-0));
  color:var(--pol-ink);box-shadow:none;font-weight:600;
}
.pol-navitem.is-active::before{content:'';position:absolute;left:0;top:9px;bottom:9px;width:3px;
  border-radius:0 3px 3px 0;background:var(--pol-accent,var(--pol-blue-500))}
.pol-navitem.is-active:hover{color:var(--pol-ink)}
.pol-navitem.is-active .pol-navitem__ico{
  background:color-mix(in srgb,var(--pol-accent,var(--pol-blue-500)) 13%,var(--pol-n-0));
  color:var(--pol-accent,var(--pol-blue-500));
}
.pol-navitem__badge{margin-left:auto}
.pol-navsub{
  display:flex;flex-direction:column;gap:2px;margin:2px 8px 6px 42px;padding:4px 0 4px 10px;
  border-left:var(--pol-line-border);
}
.pol-navsub__item{
  appearance:none;width:100%;min-height:32px;display:flex;align-items:center;gap:8px;
  padding:5px 8px;border:0;border-radius:8px;background:transparent;color:var(--pol-n-600);
  font:inherit;font-size:var(--pol-fs-12);font-weight:600;text-align:left;cursor:pointer;
  text-decoration:none;transition:var(--pol-t-fast);
}
.pol-navsub__item:hover{background:var(--pol-n-0);color:var(--pol-blue-600);text-decoration:none}
.pol-navsub__item .pol-i{flex:none;color:var(--pol-blue-500)}
.pol-navsub__txt{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pol-navsub__item:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}

/* Sayfa basligi yalniz ortak topbar'dadir. Icerikte tekrar eden ust bilgi karti
   kullanilmaz; pol-pagehead sadece gercek alt bolum basliklarinda yalindir. */
.pol-app--inner .pol-pagehead{align-items:center;margin-bottom:16px;padding:0;
  border:0;border-radius:0;background:transparent}
.pol-app--inner .pol-pagehead .pol-h1{display:none}
.pol-app--inner .pol-pagehead__t:has(>.pol-h1:only-child){display:none}
.pol-app--inner .pol-pagehead:has(>.pol-pagehead__t:only-child>.pol-h1:only-child){display:none}
.pol-app--inner .pol-pagehead__t>.pol-small{font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-app--inner .pol-main>[data-choice]{padding:12px 14px;border:var(--pol-line-border);
  border-radius:var(--pol-r-lg);background:var(--pol-n-0)}

/* Kartlar login ekranindaki marka diliyle aynidir: belirgin yuvarlaklik,
   yumusak golge ve hover'da hafif yukselme tum projede ortak calisir. */
.pol-grid,.pol-dashgrid{gap:16px}
.pol-card{
  background:var(--pol-n-0);border:var(--pol-line-border);border-radius:var(--pol-r-lg);
  box-shadow:var(--pol-sh-xs);
}
.pol-card--hover:hover{transform:translateY(-4px);border-color:var(--pol-n-100);box-shadow:var(--pol-sh-md)}
.pol-card--app:hover{transform:translateY(-5px);border-color:var(--pol-n-100);box-shadow:var(--pol-sh-lg)}
.pol-card__head{padding:var(--pol-sp-5) var(--pol-sp-5) 0;gap:var(--pol-sp-3)}
.pol-card__body{padding:var(--pol-sp-5)}
.pol-card__foot{padding:var(--pol-sp-4) var(--pol-sp-5);background:var(--pol-n-25);
  border-radius:0 0 var(--pol-r-lg) var(--pol-r-lg)}
.pol-card__ico{width:44px;height:44px;border-radius:13px}
.pol-card__t b{font-size:var(--pol-fs-16);font-weight:700}
.pol-card--app:hover .pol-card__go{gap:11px}

/* Koyu banner yerine profil/ozet karti. */
.pol-hero{
  padding:18px 20px;margin-bottom:16px;color:var(--pol-n-700);border:var(--pol-line-border);
  border-radius:var(--pol-r-lg);background:var(--pol-n-0);box-shadow:var(--pol-sh-xs);
}
.pol-hero::after{display:none}
.pol-hero__in{gap:16px}
.pol-hero__ph{width:64px;height:64px;border:var(--pol-line-border);border-radius:12px;
  background:var(--pol-blue-50)}
.pol-hero__ph>.pol-avatar:not(.pol-avatar--orange){color:var(--pol-blue-600)}
.pol-hero__hi{color:var(--pol-n-500);font-size:var(--pol-fs-12);font-weight:500}
.pol-hero__nm{color:var(--pol-ink);font-size:var(--pol-fs-28)}
.pol-hero__facts{gap:7px;margin-top:9px}
.pol-hero__fact{padding:5px 10px;border:var(--pol-line-border);border-radius:8px;
  background:var(--pol-n-25);color:var(--pol-n-700);font-size:var(--pol-fs-12);font-weight:600}
.pol-hero__fact span{color:var(--pol-n-500);font-weight:500}

/* Form, filtre, tablo ve modal ayni yuzey dilinde. Butonlar login ekranindaki
   ortak dokunsal buton sistemini aynen kullanir; burada ezilmez. */
.pol-chip{height:36px;border-radius:9px;font-weight:500}
.pol-chip.is-active{box-shadow:inset 0 0 0 1px var(--pol-blue-500)}
.pol-input,.pol-select,.pol-textarea,.pol-multiselect__btn{border-radius:10px;background:var(--pol-n-0)}
.pol-tablewrap{border-radius:14px;box-shadow:none;background:var(--pol-n-0)}
.pol-tabletools{padding:14px 16px;background:var(--pol-n-0)}
.pol-table thead th{padding:11px 16px;background:var(--pol-n-25)}
.pol-table tbody td{padding:12px 16px}
.pol-tablefoot{padding:12px 16px;background:var(--pol-n-0)}
.pol-modal__box{border-radius:16px;box-shadow:0 24px 64px -24px rgba(14,17,48,.42)}
.pol-modal__head{padding:16px 18px}
.pol-modal__body{padding:18px}
.pol-modal__foot{padding:14px 18px;background:var(--pol-n-25)}

/* Footer sag panelin parcasi degildir; sayfa zemini uzerinde bagimsiz kalir. */
.pol-footer{
  width:auto;margin:0;overflow:hidden;color:var(--pol-n-600);background:transparent;
  border:0;border-radius:0;box-shadow:none;
}
.pol-footer::before{display:none}
.pol-footer__inner,.pol-footer--veli .pol-footer__inner{min-height:58px;padding:10px 18px;gap:16px}
.pol-footer__line{background:linear-gradient(90deg,transparent,var(--pol-line-color))}
.pol-footer__line:last-child{background:linear-gradient(90deg,var(--pol-line-color),transparent)}
.pol-footer__copy{color:var(--pol-n-500);font-size:var(--pol-fs-12)}
.pol-footer__actions{gap:8px}
.pol-footer__action{font-size:var(--pol-fs-13)}

/* Masaustu dar menu */
@media(min-width:1181px){
  .pol-app.is-side-mini .pol-side__brand{padding-inline:8px;gap:4px}
  .pol-app.is-side-mini .pol-side__brandtext{display:none}
  .pol-app.is-side-mini .pol-side__brandlink{justify-content:center}
  .pol-app.is-side-mini .pol-side__brandlink img{width:32px;height:40px}
  .pol-app.is-side-mini .pol-side__toggle{margin-left:0}
  .pol-app.is-side-mini .pol-navitem.is-active::before{display:none}
  .pol-app.is-side-mini .pol-athlete{
    left:calc(-1 * var(--pol-sidebar-w-mini) - 6px);width:60px;
  }
  .pol-app.is-side-mini .pol-athlete__btn{display:flex;justify-content:center;padding:7px}
  .pol-app.is-side-mini .pol-athlete__meta,.pol-app.is-side-mini .pol-athlete__chevron{display:none}
  .pol-app.is-side-mini .pol-athlete__menu{width:300px;min-width:300px}
  .pol-app.is-side-mini .pol-navsub{align-items:center;margin:2px 0 6px;padding:0;border:0}
  .pol-app.is-side-mini .pol-navsub__item{width:38px;height:34px;min-height:34px;justify-content:center;padding:0}
  .pol-app.is-side-mini .pol-navsub__txt{display:none}
}

@media(max-width:1180px){
  .pol-shell{padding:10px}
  .pol-app--inner{grid-template-columns:var(--pol-sidebar-w-mini) minmax(0,1fr)}
  .pol-app--inner .pol-topbar{top:auto}
  .pol-app--inner .pol-athlete{left:calc(-1 * var(--pol-sidebar-w-mini) - 6px);width:60px}
  .pol-app--inner .pol-athlete__btn{display:flex;justify-content:center;padding:7px}
  .pol-app--inner .pol-athlete__meta,.pol-app--inner .pol-athlete__chevron{display:none}
  /* Menu bu aralikta OTOMATIK mini olur; ad/rol yazisi gizlendigi icin kart
     bos bir daireye donmesin diye ikon burada da gorunur. */
  .pol-app--inner .pol-athlete__ico{display:block}
  .pol-app--inner .pol-athlete__menu{width:300px;min-width:300px}
  .pol-topbar__pageactions{gap:8px}
  .pol-topbar__pageactions .pol-btn{height:40px;padding-inline:12px;font-size:var(--pol-fs-13)}
  .pol-topbar__pageactions .pol-select{width:180px!important;height:40px}
  .pol-side__brand{justify-content:center;padding-inline:8px}
  .pol-side__brandtext{display:none}
  .pol-side__brandlink{justify-content:center}
  .pol-side__brandlink img{width:34px;height:42px}
  .pol-side__scroll{padding-inline:10px}
  .pol-navsub{align-items:center;margin:2px 0 6px;padding:0;border:0}
  .pol-navsub__item{width:38px;height:34px;min-height:34px;justify-content:center;padding:0}
  .pol-navsub__txt{display:none}
  .pol-footer{margin:0}
}

@media(max-width:820px){
  .pol-shell{padding:0;background:var(--pol-n-50)}
  .pol-app{border:0;border-radius:0;overflow:visible;box-shadow:none}
  .pol-app--inner{display:flex;flex-direction:column}
  .pol-app--inner .pol-body{display:contents}
  .pol-app--inner .pol-topbar{position:relative;top:auto;width:100%;min-height:var(--pol-topbar-h);
    padding-inline:14px;flex:none;border:0;border-bottom:var(--pol-line-border);border-radius:0}
  .pol-app--inner .pol-topbar:has(.pol-topbar__pageactions){
    height:auto;min-height:calc(var(--pol-topbar-h) + 54px);flex-wrap:wrap;
    align-content:center;padding-block:10px;
  }
  .pol-app--inner .pol-topbar:has(.pol-topbar__pageactions) .pol-topbar__page{flex:1;padding-right:60px}
  .pol-app--inner .pol-topbar:has(.pol-topbar__pageactions) .pol-topbar__spacer{display:none}
  .pol-app--inner .pol-topbar:has(.pol-topbar__pageactions) .pol-topbar__actions{
    order:3;width:100%;min-width:0;justify-content:flex-end;
  }
  .pol-app--inner .pol-topbar:has(.pol-topbar__pageactions) .pol-athlete{
    position:absolute;top:10px;right:14px;left:auto;
  }
  .pol-topbar__pageactions{width:100%;max-width:100%;justify-content:flex-start;
    overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}
  .pol-topbar__pageactions .pol-select{width:170px!important}
  .pol-topbar__page b{font-size:var(--pol-fs-18)}
  .pol-topbar__page span{display:none}
  .pol-app--inner .pol-main{width:100%;padding:16px 14px 26px;border:0;border-radius:0}
  .pol-app--inner .pol-athlete{position:relative;top:auto;left:auto;width:auto;z-index:auto}
  .pol-app--inner .pol-athlete__btn{width:76px;min-height:50px;display:grid;
    grid-template-columns:32px 18px;justify-content:normal;padding:6px 9px}
  .pol-app--inner .pol-athlete__chevron{display:block}
  .pol-app--inner .pol-athlete__menu{left:auto;right:0;width:auto;min-width:300px}
  .pol-side{position:fixed;top:0;left:0;width:min(304px,88vw);height:100dvh;z-index:80;
    transform:translateX(-100%);background:var(--pol-n-0);border-right:var(--pol-line-border);
    box-shadow:var(--pol-sh-lg)}
  .pol-side.is-open{transform:translateX(0)}
  .pol-side__brand{min-height:64px;justify-content:flex-start;padding:8px 14px}
  .pol-side__brandtext{display:flex}
  .pol-side__brandlink{justify-content:flex-start}
  .pol-side__brandlink img{width:38px;height:46px}
  .pol-side__scroll{height:auto;padding:12px 14px calc(18px + env(safe-area-inset-bottom))}
  .pol-side .pol-navitem__txt,.pol-side .pol-navitem__badge,.pol-side__title{display:block}
  .pol-side .pol-navitem{justify-content:flex-start;padding:6px 9px}
  .pol-side .pol-navsub{align-items:stretch;margin:2px 8px 6px 42px;padding:4px 0 4px 10px;
    border-left:var(--pol-line-border)}
  .pol-side .pol-navsub__item{width:100%;height:auto;min-height:32px;justify-content:flex-start;padding:5px 8px}
  .pol-side .pol-navsub__txt{display:block}
  .pol-app--inner .pol-pagehead{padding:12px 14px}
  .pol-footer{border:0;border-radius:0;box-shadow:none}
  .pol-footer__inner,.pol-footer--veli .pol-footer__inner{padding:12px 14px}
}

@media(max-width:620px){
  .pol-grid,.pol-dashgrid{gap:12px}
  .pol-hero{padding:15px}
  .pol-hero__tx{min-width:180px}
  .pol-footer--veli .pol-footer__inner{padding:16px 14px}
}

@media(max-width:480px){
  .pol-app--inner .pol-athlete__btn{width:44px;min-height:44px;display:flex;padding:4px;justify-content:center}
  .pol-app--inner .pol-athlete__chevron{display:none}
  .pol-app--inner .pol-topbar:has(.pol-topbar__pageactions){min-height:calc(var(--pol-topbar-h) + 52px)}
  .pol-topbar__pageactions .pol-btn{height:38px;padding-inline:10px;font-size:var(--pol-fs-12)}
  .pol-topbar__pageactions .pol-select{width:150px!important;height:38px;font-size:var(--pol-fs-12)}
}

/* Veli dashboardu ödeme kartı: solda kulüp aidatı, sağda Spor Merkezi ödemesi. */
.pol-payment-card{overflow:hidden}
.pol-payment-card__body{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:16px 0 0!important
}
.pol-payment-card__item{
  position:relative;min-width:0;min-height:166px;padding:16px 20px 18px;
  display:flex;flex-direction:column;align-items:flex-start;color:var(--pol-ink)
}
.pol-payment-card__item + .pol-payment-card__item{border-left:var(--pol-line-border)}
.pol-payment-card__label{
  display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;
  color:var(--pol-n-600);font-size:var(--pol-fs-13);font-weight:700
}
.pol-payment-card__label .pol-i{color:var(--pol-accent,var(--pol-blue-500))}
/* Rozet akış içindedir (29.09.2026): mutlak konumdayken dar kartta "Spor Merkezi"
   başlığının üstüne biniyordu. Başlığın altında, tutarın üstünde durur. */
.pol-payment-card__status{position:static;margin:0 0 8px}
.pol-payment-card__value{
  display:block;max-width:100%;font-family:var(--pol-font-cond);font-size:var(--pol-fs-22);
  line-height:1.15;color:var(--pol-ink)
}
.pol-payment-card__meta{margin-top:5px;font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-payment-card__action{width:100%;margin-top:auto;justify-content:center}

@media(max-width:620px){
  .pol-payment-card__item{min-height:154px;padding:14px 12px 16px}
  .pol-payment-card__label{margin-bottom:12px;font-size:var(--pol-fs-12)}
  .pol-payment-card__status{position:static;margin:0 0 8px}
  .pol-payment-card__value{font-size:var(--pol-fs-18)}
}

/* ==========================================================================
   10) ONARIM — 31.08.2026
   --------------------------------------------------------------------------
   pol.css icerik kaybetmisti: mobil akordiyon sistemi, rapor/grup kartlari,
   sporcu fotografi, odeme sutunu ve bir dizi yardimci sinif dosyadan dusmustu.
   Bu bolum onlari geri getirir. Kurallar SONDA durdugu icin ayni ozgullukteki
   eski tanimlari ezer — ustteki bloklara dokunmadan duzeltme yapilir.
   ========================================================================== */

/* ---------- 10.1 Eksik tokenlar ----------
   Kenarliklar fazla soluktu; kart/tablo ICINDEKI ayiricilar icin ayri ton. */
:root{
  --pol-line-color:#CFD7E4;
  --pol-line-inner:#DCE2EC;
  --pol-line-inner-border:var(--pol-line-width) solid var(--pol-line-inner);
}

/* ---------- 10.2 Eksik yardimcilar ---------- */
.pol-mb-1{margin-bottom:var(--pol-sp-1)}
.pol-mb-2{margin-bottom:var(--pol-sp-2)}
.pol-mt-1{margin-top:var(--pol-sp-1)}
.pol-badge--neutral{background:var(--pol-n-100);color:var(--pol-n-600)}
.pol-toast--success{background:var(--pol-success)}
.pol-toast--info{background:var(--pol-blue-500)}

/* ---------- 10.3 Tablo araclari / sayfalama ----------
   .pol-tablepager JS tarafindan uretilir; .pol-tablefoot--auto da oyle. */
.pol-tablefoot--auto{border-top:var(--pol-line-border);background:var(--pol-n-25)}
.pol-tablefoot--pager-only{justify-content:flex-end}
.pol-tablepager{margin:0}
/* SUZGEC SATIRLARINDA .pol-field ALT BOSLUGU SIFIRLANIR.
   Izgara/flex hizalamayi ogenin MARGIN kenarina yaptigi icin (.pol-field'in
   16px alt boslugu var) gonder dugmesi input'larin 16px altina kayiyor.

   IKI SUZGEC AILESI DE AYNI KURALDA: 31.08.2026 onariminda kural yalniz
   .pol-tabletools--filtre icin geri yazildi, .pol-audit-filter atlandi ve
   Islem Kayitlari sayfasinda dugme asagida asili kaldi (08.09.2026'da bulundu).
   Ayni satirda tutuluyorlar ki bir daha ayrisamasinlar. */
.pol-tabletools--filtre{align-items:flex-end}
.pol-tabletools--filtre .pol-field,
.pol-audit-filter .pol-field{margin-bottom:0}
.pol-tabletools__filtre{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pol-tabletools__filtrelabel{white-space:nowrap;margin:0}
.pol-select--sm{height:38px;padding:0 32px 0 12px;font-size:var(--pol-fs-13);
  width:auto;min-width:110px}

/* ---------- 10.4 Sunucu tarafli siralama basligi ----------
   Hucrenin tamami baglantidir ama baslik tipografisi degismez. */
.pol-table thead th .pol-sort-ico{display:inline-block;vertical-align:-3px;margin-left:4px}
.pol-table thead th > .pol-th-sort{display:inline-flex;align-items:center;
  color:inherit;text-decoration:none;font:inherit;letter-spacing:inherit}
.pol-table thead th.is-sorted{color:var(--pol-blue-500)}
.pol-table thead th > .pol-th-sort:focus-visible{outline:2px solid var(--pol-blue-500);
  outline-offset:2px;border-radius:3px}

/* ---------- 10.5 Mobil hamburger ----------
   Masaustunde gizli; 820px altinda topbar'da gorunur ve YALNIZ off-canvas
   menuyu acar (menu daraltma dugmesi ayridir, sol menunun marka satirindadir). */
.pol-side-toggle--mobile{display:none}

/* ---------- 10.6 Grup / rapor kartlari ----------
   Kartlar esit yukseklikte olsun ve alt eylem satiri hep dibe otursun. */
.pol-grupgrid{align-items:stretch;grid-auto-rows:1fr}
/* min-width:0 SART: grid cocugu varsayilan min-width:auto ile icerigin
   parca genisliginin altina inemez ve izgara sutununu asar (390px'te 1px tasma). */
.pol-grupgrid>.pol-card{height:100%;display:flex;flex-direction:column;min-width:0}
.pol-grid>*{min-width:0}
.pol-grupgrid>.pol-card>.pol-card__body{flex:1;display:flex;flex-direction:column}
.pol-grupgrid>.pol-card>.pol-card__body>*:last-child{margin-top:auto}
/* Kart ici tek satirlik bilgi cubugu — tablo cercevesiyle ayni dil */
.pol-kartsatir{padding:10px var(--pol-sp-4);border-radius:var(--pol-r-md);
  background:var(--pol-n-25);border:var(--pol-line-inner-border)}
/* Grup adinin yanindaki ders ozeti: ad kadar bagirmasin */
.pol-ders{font-weight:600;color:var(--pol-n-500)}

.pol-rapor-kart{transition:var(--pol-t-fast)}
.pol-rapor-kart.is-eklendi{border-color:var(--pol-success);
  box-shadow:0 0 0 1px var(--pol-success) inset}
.pol-rapor-kart.is-eklendi .pol-kartsatir{background:var(--pol-n-0)}
.pol-rapor-kart__btn{pointer-events:none}
.pol-rapor-baslik{margin:var(--pol-sp-5) 0 var(--pol-sp-3);font-family:var(--pol-font-cond);
  font-weight:700;font-size:var(--pol-fs-16);color:var(--pol-ink)}
.pol-rapor-baslik:first-child{margin-top:0}
.pol-rapor-tablo{margin-bottom:var(--pol-sp-4)}
.pol-rapor-toplam td{font-weight:700;color:var(--pol-ink);background:var(--pol-n-25);
  border-top:var(--pol-line-border)}
.pol-rapor-genel{margin-top:var(--pol-sp-5);padding:var(--pol-sp-4);border-radius:var(--pol-r-md);
  background:var(--pol-blue-50);color:var(--pol-blue-700);font-weight:700;text-align:center}

/* ---------- 10.7 TEK MODAL GENISLIGI: 840px ----------
   --sm / --lg varyantlari KALDIRILDI, yenisi acilmaz. Tek bilincli istisna
   spor merkezi raporunun 13 sutunlu tablosudur. */
.pol-modal__box{max-width:840px}
.pol-modal__box--sm,.pol-modal__box--lg{max-width:840px}
.pol-modal__box--rapor{max-width:min(1720px,calc(100vw - 32px))}

/* ---------- 10.8 Sporcu fotografi ----------
   Listede kucuk yuvarlak gorsel; modalda secim/onizleme alani. */
.pol-foto{width:34px;height:34px;flex:none;border-radius:50%;object-fit:cover;
  border:var(--pol-line-border);background:var(--pol-n-50)}
.pol-kartfoto{width:104px;height:104px;border-radius:var(--pol-r-lg);object-fit:cover;
  border:var(--pol-line-border);background:var(--pol-n-50)}
/* Sporcu modali: solda bilgi alanlari, sagda fotograf sutunu */
.pol-sporcubilgi{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:0 var(--pol-sp-5)}
.pol-sporcubilgi__alanlar{min-width:0}
.pol-sporcubilgi__foto{min-width:0}
/* Dikey dizilis: onizleme ustte, dugmeler altta — dar sutuna sigsin diye */
.pol-fotoalan{display:flex;align-items:center;gap:var(--pol-sp-3)}
.pol-fotoalan--dikey{flex-direction:column;align-items:stretch;gap:var(--pol-sp-2)}
.pol-fotoalan__on{width:100%;aspect-ratio:1;border-radius:var(--pol-r-lg);object-fit:cover;
  border:var(--pol-line-border);background:var(--pol-n-50)}
/* [hidden] UA kurali display:grid tarafindan ezilebiliyor — acikca sifirlanir */
.pol-fotoalan__on[hidden],.pol-fotoalan__bos[hidden]{display:none}
.pol-fotoalan__bos{width:100%;aspect-ratio:1;border-radius:var(--pol-r-lg);
  border:1px dashed var(--pol-line-color);background:var(--pol-n-25);
  display:grid;place-items:center;color:var(--pol-n-400);font-size:var(--pol-fs-12);
  text-align:center;padding:var(--pol-sp-3)}
.pol-fotoalan__is{display:flex;gap:6px;flex-wrap:wrap}
.pol-fotoalan__is .pol-btn{flex:1;justify-content:center}

/* ---------- 10.9 Sporcu karti listeleri ---------- */
/* SON ANTRENMANLAR icin ayri bir liste sinifi YOKTUR: antrenman gecmisi artik
   kartin diger bolumleri gibi .pol-table'dir. Eski .pol-yoklist cip dizisi
   07.09.2026'da kaldirildi. */
/* BAGLANTI CIPI — Veliler > "Veliye Bagli Sporcu/lar" ve Antrenorler >
   "Sorumlu Gruplar" hucrelerinde. Cok degerli hucrede isimler yan yana duz
   metin olarak akiyordu; her deger kendi cercevesinde durunca nerede bittigi
   bir bakista okunuyor.

   .pol-badge KULLANILAMAZ: tablo icinde rozetler bilerek duzlestiriliyor
   (zemin/padding/radius siliniyor). Bu yuzden cip kendi sinifiyla tanimlanir
   ve <a> oldugu icin global tablo tipografisinden (b/span) de etkilenmez. */
.pol-sporculink{
  display:inline-flex;align-items:center;margin:3px 6px 3px 0;padding:4px 11px;
  border:var(--pol-line-border);border-radius:var(--pol-r-full);
  background:var(--pol-blue-50);color:var(--pol-blue-700);
  font-size:var(--pol-fs-12);font-weight:600;line-height:1.35;
  text-decoration:none;transition:var(--pol-t-fast);
}
.pol-sporculink:hover{background:var(--pol-blue-100);border-color:var(--pol-blue-300);
  color:var(--pol-blue-700);text-decoration:none}
.pol-sporculink:focus-visible{outline:2px solid var(--pol-blue-500);outline-offset:2px}

/* EN IYI DERECE CIPI — .pol-badge KULLANILAMAZ: tablo icinde rozetler bilerek
   duzlestiriliyor (zemin/padding/radius siliniyor, renk n-700'e sabitleniyor), o
   yuzden "Rekor" rozeti duz gri metin olarak cikiyordu. .pol-sporculink ile ayni
   cozum: kendi sinifi, tablo tipografisinden etkilenmeyecek sekilde. */
.pol-rekor{
  display:inline-flex;align-items:center;gap:5px;padding:3px 10px;
  border:1px solid #BFE9D2;border-radius:var(--pol-r-full);
  background:var(--pol-success-bg);color:var(--pol-success-tx);
  font-size:var(--pol-fs-11);font-weight:700;line-height:1.35;white-space:nowrap;
}
/* Kardes secim listesi (sporcu modali) */
.pol-kardeslist{display:flex;flex-direction:column;gap:4px;max-height:210px;overflow-y:auto;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);padding:var(--pol-sp-2)}
/* SONUC KUTUSU BOSKEN CERCEVE CIZMEZ. Kutu cerceveli+radiuslu oldugu icin,
   kardes alani acilir acilmaz ici bos bir kart olarak beliriyordu (11.09.2026).
   Liste JS ile doldurulur ve bosaltilirken textContent='' yapilir; bulunamadi
   mesaji da bir cocuk dugumdur — :empty yalniz gercekten bos halde tutar. */
.pol-kardeslist:empty{display:none}
.pol-kardesitem{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--pol-r-sm)}
.pol-kardesitem:hover{background:var(--pol-n-25)}

/* ---------- 10.10 Odeme sutunu ----------
   Veli aidat sayfasi ikiye bolunur ama TEK gorunum vardir (_OdemeSutunu). */
.pol-odemegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--pol-sp-5)}
.pol-odemesutun{display:flex;flex-direction:column;gap:var(--pol-sp-4);min-width:0}
/* Flex column icindeki dugme gerilir — buton dili korunsun diye sabitlenir. */
.pol-odemesutun .pol-btn{align-self:flex-start}
.pol-odemeeylem__tx{display:flex;flex-direction:column;gap:2px}
.pol-payment-card__item--center{align-items:center}

/* ---------- 10.11 Serbest metin ----------
   Tabloda HIC gosterilmez; hucrede yalniz "Oku" dugmesi durur, metnin tamami
   modalda okunur. Metin kullanicidan geldigi icin daima textContent ile yazilir. */
.pol-gorus{white-space:pre-wrap;overflow-wrap:break-word;max-height:52vh;overflow-y:auto;
  padding:var(--pol-sp-4);border-radius:var(--pol-r-md);background:var(--pol-n-25);
  border:var(--pol-line-border);font-size:var(--pol-fs-14);line-height:1.6;color:var(--pol-n-700)}
.pol-gorus-in{white-space:pre-wrap;overflow-wrap:break-word;display:block;margin-top:6px;
  max-height:220px;overflow-y:auto}

/* ---------- 10.12 Kardes indirimi isareti ----------
   Tablo rozet kuralinin DAR istisnasi: zemin/padding/radius yine yok,
   yalniz RENK korunur — renksiz kalsa duz metne donusup gorunmez olurdu. */
.pol-indirim{font-size:var(--pol-fs-12);font-weight:600;color:var(--pol-success-tx);white-space:nowrap}
.pol-table tbody td:not(.pol-td-actions) span.pol-indirim{
  color:var(--pol-success-tx)!important;font-weight:600!important;
  font-size:var(--pol-fs-12)!important;white-space:nowrap!important}

/* ==========================================================================
   10.14 MOBIL TASARIM SISTEMI — BAGLAYICI
   --------------------------------------------------------------------------
   820px altinda proje AYRI bir duzene gecer. Uc panelde de aynidir ve sonraki
   tum degisikliklerde AYNEN korunur. Dogrulama: 390-430px'te yatay tasma 0,
   akordiyon ozet satiri ~60px, ozet disindaki hucreler kapali.
   ========================================================================== */
@media(max-width:820px){
  /* ---- Tablolar akordiyon karta doner ----
     Satir bir kart olur; ILK <td> ozet satiridir ve daima gorunur. Geri kalan
     hucreler gizlidir, ozete dokununca acilir (tr.is-open). Ayni tabloda tek
     satir acik kalir — pol-table.js.
     BUTUN alanlari alt alta dokmek YASAK: 217 sporcunun her biri 340px'lik bir
     sutun olursa liste kullanilamaz. Once kimlik, sonra istenirse ayrinti. */
  .pol-table--responsive{display:block;width:100%}
  .pol-table--responsive tbody{display:block;width:100%}
  .pol-table--responsive thead{display:none}

  /* Kart ust boslugu 0 OLAMAZ: ilk kart arama cubugunun alt cizgisine yapisir.
     Bitisik kardeslerin marjlari birlestigi icin kartlar arasi yine sp-2 kalir. */
  .pol-table--responsive tbody tr{display:block;overflow:hidden;
    margin:var(--pol-sp-2) var(--pol-sp-3);padding:0;
    border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-0)}

  /* Ayrinti hucreleri: etiket ustte, deger altta NORMAL METIN AKISINDA.
     Flex/grid KULLANILMAZ — hucredeki <b>/<span> ayri oge sayilip tek tek
     sikisir, <br> yok sayilir; iki velili hucrede isimler harf harf kirilir. */
  .pol-table--responsive tbody td{display:block;padding:9px 14px;text-align:left;
    border-bottom:var(--pol-line-inner-border);overflow-wrap:break-word}
  .pol-table--responsive tbody td:last-child{border-bottom:0}
  .pol-table--responsive tbody td::before{content:attr(data-lbl);display:block;margin-bottom:3px;
    font-size:var(--pol-fs-11);font-weight:700;letter-spacing:.06em;
    text-transform:uppercase;color:var(--pol-n-500)}
  .pol-table--responsive .pol-td-right,
  .pol-table--responsive .pol-td-center{text-align:left}
  /* Eylem dugmeleri kartin SOLUNA yaslanir — ustteki bilgi satirlariyla ayni
     hizada dursunlar. Ardisik iki eylem hucresi (Sporcu Karti + Islem) inline
     oldugu icin TEK SERIT halinde yan yana akar; ayri satirlara bolunmez. */
  .pol-table--responsive tbody td.pol-td-actions{display:inline-flex;
    justify-content:flex-start;align-items:center;gap:6px;width:auto;
    padding:11px 0 11px 14px;border-bottom:0;vertical-align:middle}
  .pol-table--responsive tbody td.pol-td-actions::before{content:none}
  .pol-table--responsive tbody tr td.pol-td-actions:last-child{padding-right:14px}

  /* ---- OZET SATIRI: ilk hucre ----
     Dokunma hedefi, etiketi yok, saginda donen ok. ~60px'te kalir. */
  /* Ozet hucresi BLOK olmali — flex kullanilirsa <br> yok sayilir, <b> ve
     <span> yan yana dizilip satiri sisirir (Duyurular'da 95px'e cikiyordu).
     Ok isareti zaten mutlak konumlu, flex'e gerek yok. */
  /* Ozet hucresi BLOK kalir (flex <br>'i yok sayar, satir ici icerigi alt alta
     indirir — Devamlilik'te "31.08.2026 · Pazartesi" boluneydi). Dikey ortalama
     `align-content` ile yapilir: blok kapsayicida da calisir ve satir ici akisa
     DOKUNMAZ. Desteklemeyen eski tarayicida icerik ustte kalir, bozulmaz. */
  .pol-table--responsive:not(.pol-table--acik) tbody td:first-child{
    display:block;min-height:52px;align-content:center;
    padding:13px 42px 13px 14px;position:relative;cursor:pointer;border-bottom:0;
    font-weight:600;color:var(--pol-ink);-webkit-tap-highlight-color:transparent}
  /* Ozetteki yardimci metin TEK SATIR kalir: serbest metin onizlemesi kart
     yuksekligini oynatmamalidir (satir yuksekligi icerige gore degismez). */
  .pol-table--responsive:not(.pol-table--acik) tbody td:first-child .pol-small{
    display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
  .pol-table--responsive:not(.pol-table--acik) tbody td:first-child::before{content:none}
  .pol-table--responsive:not(.pol-table--acik) tbody td:first-child::after{
    content:'';position:absolute;right:16px;top:50%;width:8px;height:8px;
    border-right:2px solid var(--pol-n-400);border-bottom:2px solid var(--pol-n-400);
    transform:translateY(-70%) rotate(45deg);transition:transform .2s ease}
  .pol-table--responsive:not(.pol-table--acik) tbody td:first-child:focus-visible{
    outline:3px solid var(--pol-blue-300);outline-offset:-3px}
  .pol-table--responsive:not(.pol-table--acik) tbody tr.is-open td:first-child{
    border-bottom:var(--pol-line-border);background:var(--pol-n-25)}
  .pol-table--responsive:not(.pol-table--acik) tbody tr.is-open td:first-child::after{
    transform:translateY(-30%) rotate(225deg)}

  /* ---- Kapaliyken ayrinti hucreleri GIZLI ----
     CIKIS KAPISI: kisa ve salt-okunur listelerde .pol-table--acik eklenir;
     tum hucreler etiketiyle acik kalir, akordiyon hic devreye girmez.
     JS ile satir ureten tablolar da bunu kullanir. */
  .pol-table--responsive:not(.pol-table--acik) tbody tr:not(.is-open) td:not(:first-child){display:none}

  /* Mobil hamburger topbar'da gorunur; menu daraltma dugmesi gizlenir. */
  .pol-side-toggle--mobile{display:grid}

  /* Tablo alt bilgisi ve sayfalama dikeye gecer */
  .pol-tablefoot{flex-direction:column;align-items:stretch;gap:10px}
  .pol-tablefoot .pol-pager{justify-content:center}

  /* Sporcu modali tek sutuna iner: fotograf alani altta */
  .pol-sporcubilgi{grid-template-columns:1fr;gap:var(--pol-sp-4)}
  .pol-fotoalan__on,.pol-fotoalan__bos{max-width:220px;margin-inline:auto}

  /* Odeme sutunlari alt alta */
  .pol-odemegrid{grid-template-columns:1fr;gap:var(--pol-sp-4)}

  /* Rapor modali da tam genislik alta yaslanir */
  .pol-modal__box--rapor{max-width:100%}
}

@media(max-width:620px){
  /* .pol-g4 OZET KUTUCUKLARI 2 SUTUN KALIR — tek sutun sayfayi gereksiz
     uzatiyordu. Digerleri tek sutuna iner. */
  .pol-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pol-dashgrid,.pol-dashgrid--4,.pol-g2,.pol-g3{grid-template-columns:1fr}
  /* SUZGEC SATIRI OZET KUTUCUGU DEGILDIR. Islem Kayitlari filtresi .pol-g4
     tasidigi icin ustteki 2 sutun kuralini miras aliyor ve arama kutusu 154px'e
     sikisiyordu. Suzgec alanlari tam genislik ister; kural burada geri alinir. */
  .pol-audit-filter{grid-template-columns:1fr}
  /* Modal icindeki izgara DAIMA tek sutun */
  .pol-modal .pol-grid{grid-template-columns:1fr}

  .pol-tabletools--filtre .pol-tabletools__filtre{width:100%}
  .pol-tabletools--filtre .pol-select--sm{flex:1;min-width:0}
  .pol-rapor-genel{font-size:var(--pol-fs-13)}
  .pol-kardeslist{max-height:180px}
}

/* ---------- 10.15 Kalan kancalar ----------
   Hesap kartindaki kullanici ikonu: genis kartta ad+rol yazisi zaten var,
   ikon YALNIZ menu mini ya da mobil kompakt gorunumde cikar. */
.pol-athlete__ico{display:none}
.pol-app.is-side-mini .pol-athlete__ico{display:block}
/* Rapor kartindaki rozet ve buton metni JS ile guncellenir; konumlari sabit. */
.pol-rapor-kart__rozet{flex:none;white-space:nowrap}
.pol-rapor-kart__btntx{white-space:nowrap}
@media(max-width:820px){
  .pol-athlete__ico{display:block}
}

/* ---------- 10.16 KART KOSELERI — zeminli ilk/son cocuk koseyi EZMEZ ----------
   .pol-card yuvarlaktir ama BILEREK kirpmaz: overflow:hidden verilseydi kart
   icinde acilan dropdown, cok secimli liste ve tooltip kartin disina tasamazdi.
   Bunun bedeli su: karta yasli, ZEMINI OLAN bir cocuk kosede DIKDORTGEN
   boyanir ve yaricap silinmis gorunur. Projede iki bicimde cikiyordu:

     .pol-card > .pol-tablescroll   -> cizgili/hover'li son satir (tr) alt koseleri eziyor
     .pol-card > .pol-tablefoot     -> gri altlik alt koseleri eziyor

   Cozum kartin kendisini degil, ilk ve son cocugunu yaricapa ortak etmektir.
   .pol-tablescroll zaten overflow-x:auto ile kirptigi icin (bir eksen gorunur
   degilse digeri de auto olur) yaricap alinca satir zeminlerini de yuvarlak
   kirpar; .pol-tablefoot gibi kendi zeminini boyayanlarda ise yaricap dogrudan
   o zemine uygulanir.

   YENI BIR KART BOLUMU YAZARKEN: karta yasli ve zeminli bir eleman ekliyorsan
   ya bu kural onu kapsamali (ilk ya da son cocuk olmali) ya da kendi
   border-radius'unu tasimali. Kontrol icin bkz. CLAUDE.md > kose denetimi. */
.pol-card>:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}
.pol-card>:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}

/* ---------- 10.17 HAFTALIK ANTRENMAN PROGRAMI (antrenor) ----------
   Yedi gunluk izgara. Masaustunde 7 sutun; dar ekranda once 2, sonra tek sutuna
   iner — gun kartlari tam genislik olur, hucre icindeki saatler alt alta akar.
   Renk YOK: tur ayrimi yazityle yapilir, kart zemini notrdur. */
.pol-hafta{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--pol-sp-3)}
.pol-hafta__gun{display:flex;flex-direction:column;min-width:0;
  border:var(--pol-line-border);border-radius:var(--pol-r-lg);
  background:var(--pol-n-0);box-shadow:var(--pol-sh-xs);overflow:hidden}
.pol-hafta__gun.is-bugun{border-color:var(--pol-blue-300);box-shadow:var(--pol-sh-sm)}
.pol-hafta__bas{display:flex;align-items:baseline;justify-content:space-between;gap:6px;
  padding:10px 12px;border-bottom:var(--pol-line-border);background:var(--pol-n-25)}
.pol-hafta__bas b{font-size:var(--pol-fs-13);font-weight:700;color:var(--pol-ink)}
.pol-hafta__gun.is-bugun .pol-hafta__bas{background:var(--pol-blue-50)}
.pol-hafta__govde{display:flex;flex-direction:column;gap:6px;padding:10px;flex:1}

.pol-hafta__saat{display:flex;align-items:center;gap:6px;padding:7px 8px;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);
  background:var(--pol-n-25);min-width:0}
.pol-hafta__vakit{font-family:var(--pol-font-cond);font-size:var(--pol-fs-16);
  font-weight:700;color:var(--pol-ink);line-height:1}
.pol-hafta__tur{flex:1;min-width:0;font-size:var(--pol-fs-11);font-weight:600;
  color:var(--pol-n-500);text-transform:uppercase;letter-spacing:.04em;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pol-hafta__saat--kara .pol-hafta__tur{color:var(--pol-orange-600)}
.pol-hafta__sil{flex:none;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;
  color:var(--pol-n-400);transition:var(--pol-t-fast)}
.pol-hafta__sil:hover{background:var(--pol-danger-bg);color:var(--pol-danger)}

/* Ekleme kutusu: gun bossa TEK giris noktasi, doluysa "bir saat daha". */
.pol-hafta__ekle{display:grid;place-items:center;width:100%;min-height:38px;
  border:1px dashed var(--pol-line-color);border-radius:var(--pol-r-md);
  background:transparent;color:var(--pol-n-400);cursor:pointer;transition:var(--pol-t-fast)}
.pol-hafta__ekle:hover{border-color:var(--pol-blue-300);color:var(--pol-blue-600);
  background:var(--pol-blue-50)}

/* GUNLER ARASI KOPYALA / YAPISTIR
   Kopyala gunun ustune gelince cikar. Bir gun kopyalandiktan sonra .pol-hafta
   uzerine is-kopyali gelir; o anda kaynak GUN DISINDAKI gunlerde ayni yerde
   yapistir cikar. Ikisi de ayni koseyi kullanir, yer degistirmez.
   Dokunmatikte hover yok: is-kopyali durumunda yapistir daima gorunur. */
.pol-hafta__kop,.pol-hafta__yap{flex:none;width:24px;height:24px;border-radius:7px;
  display:grid;place-items:center;color:var(--pol-n-400);opacity:0;
  transition:var(--pol-t-fast)}
.pol-hafta__gun:hover .pol-hafta__kop{opacity:1}
.pol-hafta__kop:hover{background:var(--pol-blue-50);color:var(--pol-blue-600);opacity:1}

/* Yapistir yalniz kopyalama yapildiktan sonra ve KAYNAK OLMAYAN gunde. */
.pol-hafta__yap{display:none}
.pol-hafta.is-kopyali .pol-hafta__gun:not(.is-kaynak) .pol-hafta__yap{
  display:grid;opacity:1;color:var(--pol-blue-600);background:var(--pol-blue-50)}
.pol-hafta.is-kopyali .pol-hafta__gun:not(.is-kaynak) .pol-hafta__kop{display:none}
.pol-hafta.is-kopyali .pol-hafta__gun:not(.is-kaynak) .pol-hafta__yap:hover{
  background:var(--pol-blue-100)}
/* Kaynak gun kopyalandigi belli olsun. */
.pol-hafta__gun.is-kaynak{border-color:var(--pol-blue-500)}
.pol-hafta__gun.is-kaynak .pol-hafta__kop{opacity:1;color:var(--pol-blue-600)}

@media(max-width:1180px){ .pol-hafta{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media(max-width:820px){  .pol-hafta{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:520px){  .pol-hafta{grid-template-columns:1fr} }
/* Dokunmatikte hover yoktur — kopyala simgesi daima gorunur. */
@media(hover:none){ .pol-hafta__kop{opacity:1} }

/* Yoklama kilidi: kaydet dugmesinin yerinde neden alinamadigini soyler. */
.pol-yok-kilit{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;
  border:var(--pol-line-border);border-radius:var(--pol-r-full);
  background:var(--pol-n-25);color:var(--pol-n-500);
  font-size:var(--pol-fs-13);font-weight:600}

/* ---------- 10.18 CIZGI GRAFIK (olcum gelisimi) ----------
   SVG'yi pol-charts.js kutunun GERCEK pikseline gore cizer; viewBox
   gerdirilmez, o yuzden burada vector-effect gibi numaralara gerek yok.
   Renkler tek yerden: cizgi notr murekkep, izgara ic ayirici tonu.

   RENK KODLAMASI YOKTUR — bazi olcumde artmak iyi (kas), bazisinda azalmak
   (yag orani); yesil/kirmizi yanlis yonlendirir. */
.pol-line{position:relative;width:100%;height:190px;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);
  background:var(--pol-n-0);overflow:hidden;cursor:crosshair}
.pol-line__svg{display:block}

.pol-line__grid{stroke:var(--pol-line-inner);stroke-width:1;shape-rendering:crispEdges}
.pol-line__yet,.pol-line__xet{fill:var(--pol-n-400);font-family:var(--pol-font);
  font-weight:600;font-variant-numeric:tabular-nums}

.pol-line__yol{fill:none;stroke:var(--pol-ink);stroke-width:2;
  stroke-linejoin:round;stroke-linecap:round}
.pol-line__alan{stroke:none}
.pol-line__g0{stop-color:var(--pol-ink);stop-opacity:.13}
.pol-line__g1{stop-color:var(--pol-ink);stop-opacity:0}
.pol-line__nk{fill:var(--pol-n-0);stroke:var(--pol-ink);stroke-width:2}

/* Imlec ve vurgu yalniz uzerine gelince gorunur. */
.pol-line__imlec{stroke:var(--pol-n-300);stroke-width:1;stroke-dasharray:3 3;opacity:0;
  transition:opacity .12s ease}
.pol-line__vurgu{fill:var(--pol-ink);stroke:var(--pol-n-0);stroke-width:2.5;opacity:0;
  transition:opacity .12s ease}
.pol-line.is-uzerinde .pol-line__imlec,
.pol-line.is-uzerinde .pol-line__vurgu{opacity:1}

/* Baloncuk: deger + tarih. Kutu disina tasmaz (konumu JS sinirlar). */
.pol-line__balon{position:absolute;width:108px;pointer-events:none;
  display:none;flex-direction:column;align-items:center;gap:1px;
  padding:6px 8px;border-radius:var(--pol-r-md);
  background:var(--pol-ink);color:var(--pol-n-0);
  box-shadow:var(--pol-sh-md);text-align:center}
.pol-line.is-uzerinde .pol-line__balon{display:flex}
.pol-line__balon b{font-family:var(--pol-font-cond);font-size:var(--pol-fs-16);
  font-weight:700;line-height:1.1}
.pol-line__balon span{font-size:var(--pol-fs-11);opacity:.72}

/* Tek olcumde degisim cizilemez. */
.pol-line--tek{display:grid;place-items:center;text-align:center;height:190px;
  color:var(--pol-n-400);font-size:var(--pol-fs-12);font-weight:600;padding:0 14px;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-25)}

@media(max-width:620px){ .pol-line,.pol-line--tek{height:170px} }

/* Olcumler tablosunda sporcu adi grafik sayfasina baglantidir. */
.pol-olcumlink{color:var(--pol-ink);text-decoration:none}
.pol-olcumlink:hover{color:var(--pol-blue-600);text-decoration:underline}

/* ==========================================================================
   Antrenör değerlendirmesi (29.09.2026)
   Velinin menüsünde Performans'ın yanında mektup: okunmamış değerlendirme var.
   Mini menüde (elle daraltılmış ya da 821–1180 otomatik mini) etiket gizlenir;
   mektup ikonun sağ üst köşesine küçük bir rozet olarak biner — kaybolmaz.
   ========================================================================== */
.pol-navitem__mektup{margin-left:auto;flex:none;display:inline-grid;place-items:center;
  width:24px;height:24px;border-radius:var(--pol-r-full);background:var(--pol-red-500);color:#fff;
  animation:polMenuBadge 1.25s ease-in-out infinite;box-shadow:0 0 0 0 rgba(232,35,42,.35)}
.pol-navitem__mektup .pol-i{width:14px;height:14px}
@media(min-width:1181px){
  .pol-app.is-side-mini .pol-navitem__mektup{position:absolute;top:3px;right:6px;width:18px;height:18px}
  .pol-app.is-side-mini .pol-navitem__mektup .pol-i{width:11px;height:11px}
}
@media(min-width:821px) and (max-width:1180px){
  .pol-side .pol-navitem__mektup{position:absolute;top:3px;right:6px;width:18px;height:18px}
  .pol-side .pol-navitem__mektup .pol-i{width:11px;height:11px}
}
.pol-degerlendirme{display:flex;flex-direction:column;gap:var(--pol-sp-4)}
.pol-degerlendirme__item+.pol-degerlendirme__item{padding-top:var(--pol-sp-4);
  border-top:1px solid var(--pol-line-inner)}
.pol-degerlendirme__ust{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:6px}
.pol-degerlendirme__metin{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;
  color:var(--pol-ink)}

/* ==========================================================================
   Veli > Devamlılık > Antrenman Geçmişi — DEVAM MATRİSİ (29.09.2026)
   Kulübün yoklama çizelgesinin veli sürümü: günler sütun, seanslar alt sütun.
   .pol-table değildir (akordiyon/sayfalama matriste anlamsız).
   YANA KAYMAZ (kullanıcı isteği): table-layout:fixed + %100 — seans sütunları kalan
   genişliği paylaşır; saat iki satıra bölünür (17 / 30); kara antrenmanı zeminle
   ayrılır. Tablo sığmıyorsa sayfa betiği kaba .is-dar koyar → kutu ızgarası.
   Renk açılımı kulübün çizelgesiyle birebir: 85–100 koyu yeşil · 70–84 açık yeşil
   · 50–69 sarı · 30–49 turuncu · 0–29 kırmızı.
   ========================================================================== */
.pol-matris{padding:var(--pol-sp-4) var(--pol-sp-4) 0;min-width:0}
.pol-matris + .pol-matris{padding-top:var(--pol-sp-5)}
.pol-matris__grup{font-weight:700;color:var(--pol-ink);font-size:var(--pol-fs-14);margin-bottom:8px}
.pol-matris__t{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);overflow:hidden;
  font-size:var(--pol-fs-12);font-weight:500;font-variant-numeric:tabular-nums}
.pol-matris__c-no{width:30px}
.pol-matris__c-ad{width:130px}
.pol-matris__c-yil{width:46px}
.pol-matris__c-top{width:28px}
.pol-matris__c-ant{width:66px}
.pol-matris__c-ort{width:56px}
.pol-matris__t th,.pol-matris__t td{padding:5px 2px;text-align:center;line-height:1.15;
  border-right:var(--pol-line-inner-border);border-bottom:var(--pol-line-inner-border);background:var(--pol-n-0)}
.pol-matris__t th{background:var(--pol-n-50);color:var(--pol-n-700);font-weight:600;font-size:11px;
  white-space:normal;overflow-wrap:anywhere}
.pol-matris__t tr > :last-child{border-right:0}
.pol-matris__t tfoot tr:last-child td{border-bottom:0}
.pol-matris__gun,.pol-matris__saat{white-space:nowrap !important;overflow:hidden}
.pol-matris__gun small,.pol-matris__saat small{display:block;font-size:10px;font-weight:500;color:var(--pol-n-500)}
.pol-matris__ad{text-align:left !important;padding-left:8px !important;overflow-wrap:anywhere}
.pol-matris__ad b{color:var(--pol-ink)}
.pol-matris__alt{text-align:left !important;padding-left:8px !important;font-weight:600;color:var(--pol-n-600)}
.pol-matris__t tfoot td{background:var(--pol-n-25);color:var(--pol-n-600);font-size:11px}
.pol-matris__t .is-kara{background:var(--pol-blue-50) !important}
.pol-matris__top{font-weight:700;color:var(--pol-ink)}
.pol-matris__h{font-weight:700;font-size:var(--pol-fs-14)}
.pol-matris__h--arti{color:var(--pol-success)}
.pol-matris__h--eksi{color:var(--pol-danger)}
.pol-matris__h--mazeret{color:var(--pol-warning-tx)}
.pol-matris__yuzde{font-size:10px !important}
.pol-matris__ort{font-weight:700}
.pol-matris__bant--a{background:#1E7B3C !important;color:#fff !important}
.pol-matris__bant--b{background:#8CD17D !important;color:#10361A !important}
.pol-matris__bant--c{background:#F5D547 !important;color:#4A3A00 !important}
.pol-matris__bant--d{background:#F39A2E !important;color:#fff !important}
.pol-matris__bant--e{background:#E5484D !important;color:#fff !important}

/* Dar ekran: kutu ızgarası — tablo gizlenir, satıra saran kutular görünür */
.pol-matris__dar{display:none}
.pol-matris.is-dar .pol-matris__t{display:none}
.pol-matris.is-dar .pol-matris__dar{display:block}
.pol-matris__kutular{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:5px}
.pol-matris__kutu{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 2px;
  border:var(--pol-line-inner-border);border-radius:8px;background:var(--pol-n-0);line-height:1.1}
.pol-matris__kutu.is-kara{background:var(--pol-blue-50)}
.pol-matris__kutu small{font-size:10px;color:var(--pol-n-500);font-weight:500;white-space:nowrap}
.pol-matris__kutu b{font-size:var(--pol-fs-16,16px);font-weight:700}
.pol-matris__kutu.pol-matris__h--bos b{color:var(--pol-n-300)}
.pol-matris__ozet{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:10px;
  font-size:var(--pol-fs-12);color:var(--pol-n-600)}
.pol-matris__ozet b{color:var(--pol-ink)}

/* Lejant — küçük (kullanıcı isteği) */
.pol-matris__lejant{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:10px var(--pol-sp-4) var(--pol-sp-4)}
.pol-matris__lejant-t{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--pol-n-500);margin-right:2px}
.pol-matris__rozet{display:inline-block;padding:1px 7px;border-radius:var(--pol-r-full);
  font-size:10px;font-weight:700;line-height:1.5;font-variant-numeric:tabular-nums}
.pol-matris__rozet--kara{background:var(--pol-blue-50);color:var(--pol-n-700);border:var(--pol-line-inner-border)}
@media(max-width:820px){
  .pol-matris{padding-inline:var(--pol-sp-3)}
}

/* ==========================================================================
   Yönetim > Antrenöre Geçiş (29.09.2026)
   Modalde her antrenör bir kart-düğmedir (kendi POST formu). Geçiş yapılmış
   oturumda sol menüde ve hesap menüsünde "Yönetim Paneline Dön" çıkar.
   ========================================================================== */
.pol-gecis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pol-gecis form{margin:0;min-width:0}
.pol-gecis__kart{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;
  font:inherit;color:var(--pol-ink);background:var(--pol-n-0);border:var(--pol-line-border);
  border-radius:var(--pol-r-lg);box-shadow:var(--pol-sh-xs);cursor:pointer;transition:var(--pol-t-fast)}
.pol-gecis__kart:hover{border-color:color-mix(in srgb,var(--pol-blue-500) 45%,var(--pol-line-color));
  box-shadow:var(--pol-sh-sm);transform:translateY(-1px)}
.pol-gecis__kart:focus-visible{outline:2px solid var(--pol-blue-500);outline-offset:2px}
.pol-gecis__tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.pol-gecis__tx b{font-size:var(--pol-fs-14)}
.pol-gecis__tx span{font-size:var(--pol-fs-12);color:var(--pol-n-600);overflow-wrap:anywhere}
.pol-gecis__tx small{font-size:var(--pol-fs-11);color:var(--pol-n-500)}
.pol-gecis__ok{flex:none;color:var(--pol-n-400)}
@media(max-width:620px){ .pol-gecis{grid-template-columns:1fr} }
.pol-side form{margin:0}
.pol-side button.pol-navitem{width:100%;border:0;font:inherit;text-align:left;cursor:pointer}
.pol-navitem--gecis,.pol-navitem--gecis .pol-navitem__ico,.pol-gecis-don{color:var(--pol-orange-500)}
.pol-gecis-don{width:100%;font:inherit;text-align:left;background:transparent;cursor:pointer}

/* ==========================================================================
   PWA kurulum sayfası — /pwa (29.09.2026). Telefon öncelikli, tek sütun, en fazla
   520px. Hangi bölümün görüneceğine pol-pwa.js karar verir (android · ios ·
   masaustu · yuklu). Adım listesi bilerek anlatır — Kural 7'nin bilinçli istisnası.
   ========================================================================== */
.pol-pwa{min-height:100vh;background:var(--pol-n-50)}
.pol-pwa__kap{max-width:520px;margin:0 auto;padding:calc(20px + env(safe-area-inset-top)) 16px
  calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}
.pol-pwa__ust{display:flex;align-items:center;gap:12px}
.pol-pwa__logo{width:56px;height:56px;border-radius:14px;box-shadow:var(--pol-sh-sm);background:#fff}
.pol-pwa__ust b{display:block;font-size:var(--pol-fs-16);color:var(--pol-ink);line-height:1.2}
.pol-pwa__ust span{font-size:var(--pol-fs-13);color:var(--pol-n-500)}
.pol-pwa__t{font-family:var(--pol-font-cond);font-size:26px;line-height:1.15;color:var(--pol-ink);margin:0 0 14px}
.pol-pwa__cihaz{display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:3px 10px;
  border-radius:var(--pol-r-full);background:var(--pol-blue-50);color:var(--pol-blue-600,var(--pol-blue-500));
  font-size:var(--pol-fs-12);font-weight:700}
.pol-pwa__ana{width:100%;justify-content:center;height:52px;font-size:var(--pol-fs-16)}
.pol-pwa__ana[disabled]{opacity:.55}
.pol-pwa__adimlar{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.pol-pwa__adimlar li{display:flex;gap:12px;align-items:flex-start;font-size:var(--pol-fs-15);
  line-height:1.45;color:var(--pol-n-700)}
.pol-pwa__adimlar b{color:var(--pol-ink)}
.pol-pwa__adimlar small{display:block;font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-pwa__no{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:var(--pol-blue-500);color:#fff;font-weight:700;font-size:var(--pol-fs-13)}
.pol-pwa__adimlar li[data-pwa-safari-degil] .pol-pwa__no{background:var(--pol-warning)}
.pol-pwa__simge{display:inline-grid;place-items:center;width:26px;height:26px;margin-left:4px;vertical-align:middle;
  border:var(--pol-line-border);border-radius:7px;color:var(--pol-blue-500);background:#fff}
.pol-pwa__kopya{margin-top:8px}
.pol-pwa__adres{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:12px;
  border:var(--pol-line-border);border-radius:var(--pol-r-md);background:var(--pol-n-25)}
.pol-pwa__adres b{flex:1;min-width:0;overflow-wrap:anywhere;font-size:var(--pol-fs-14);color:var(--pol-ink)}
.pol-pwa__durum{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--pol-success)}
.pol-pwa__durum b{color:var(--pol-ink);font-size:var(--pol-fs-16)}
.pol-pwa__giris{align-self:center}

/* Mobil başlıkta ana sayfa ikonu (30.09.2026) — yalnız ≤820px; masaüstünde sol menü var. */
.pol-anasayfa-mobil{display:none}
@media(max-width:820px){ .pol-anasayfa-mobil{display:grid} }
.pol-navitem--degerlendir,.pol-navitem--degerlendir .pol-navitem__ico{color:var(--pol-warning-tx)}

/* Kulvar kartları sayfa düzeni (veli > Performans): kaydırma yok, geniş ızgara. */
.pol-kulvarlar--genis{max-height:none;overflow:visible;margin:0;padding:0;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.pol-kulvarlar--genis .pol-kulvar{padding:12px 14px}
.pol-kulvarlar--genis .pol-kulvar__derece{font-size:18px}
@media(max-width:620px){ .pol-kulvarlar--genis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .pol-kulvarlar--genis .pol-kulvar{padding:8px 8px} .pol-kulvarlar--genis .pol-kulvar__derece{font-size:14px} }

/* ==========================================================================
   Veli > Yarış Sonuçları — KULÜBÜN EXCEL DÜZENİ (30.09.2026)
   Satır = yarış, sütun = stil altında mesafe. Yarış bilgisi hücreleri kısa kulvarda
   SARI, uzun kulvarda MAVİ (Excel'deki gibi); stil grupları dönüşümlü hafif yeşil.
   Tablo kabına sığmazsa (.is-dar) yarış başına kart görünür — yana kaydırma yok.
   ========================================================================== */
.pol-snc{padding:var(--pol-sp-4)}
.pol-snc__suzgec{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:14px}
.pol-snc__grup{display:flex;flex-wrap:wrap;gap:6px}
.pol-snc__yil{width:auto;min-width:130px}
.pol-snc__kap{overflow:hidden}
.pol-snc__t{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;border:var(--pol-line-border);
  border-radius:var(--pol-r-md);overflow:hidden;font-size:var(--pol-fs-12);font-weight:500;
  font-variant-numeric:tabular-nums}
.pol-snc__t th,.pol-snc__t td{padding:6px 5px;text-align:center;white-space:nowrap;
  border-right:var(--pol-line-inner-border);border-bottom:var(--pol-line-inner-border)}
.pol-snc__t tr > :last-child{border-right:0}
.pol-snc__t tbody tr:last-child td{border-bottom:0}
.pol-snc__t th{background:var(--pol-n-50);color:var(--pol-n-700);font-weight:700;font-size:11px}
.pol-snc__t th.pol-snc__stil{letter-spacing:.04em;text-transform:uppercase}
.pol-snc__t .pol-snc__stil--1{background:#EAF6E3}
.pol-snc__t th.pol-snc__stil--1{background:#CFEBC0}
.pol-snc__ad{text-align:left !important;white-space:normal !important;min-width:150px}
.pol-snc__bilgi{font-weight:700;color:var(--pol-ink)}
.pol-snc__t tr.is-kisa .pol-snc__bilgi{background:#FFF27A}
.pol-snc__t tr.is-uzun .pol-snc__bilgi{background:#7FD3F5}
.pol-snc__tarih{font-weight:600 !important}
.pol-snc__d{color:var(--pol-ink)}
.pol-snc__bos{color:var(--pol-n-400)}
.is-gecersiz{color:var(--pol-n-500) !important;text-decoration:line-through;text-decoration-color:var(--pol-n-400)}
.pol-snc__bosuc{padding:24px;text-align:center;color:var(--pol-n-500)}

/* Dar ekran: kart görünümü */
.pol-snc__kartlar{display:none}
.pol-snc.is-dar .pol-snc__kap{display:none}
.pol-snc.is-dar .pol-snc__kartlar{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.pol-snc__kart{border:var(--pol-line-border);border-radius:var(--pol-r-md);overflow:hidden;background:var(--pol-n-0)}
.pol-snc__kartust{padding:8px 12px;display:flex;flex-direction:column;gap:2px}
.pol-snc__kart.is-kisa .pol-snc__kartust{background:#FFF27A}
.pol-snc__kart.is-uzun .pol-snc__kartust{background:#7FD3F5}
.pol-snc__kartust b{font-size:var(--pol-fs-13);color:var(--pol-ink)}
.pol-snc__kartust span{font-size:var(--pol-fs-12);color:var(--pol-n-700)}
.pol-snc__kartliste{padding:4px 12px 8px}
.pol-snc__kartsatir{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:var(--pol-fs-13);
  border-bottom:var(--pol-line-inner-border)}
.pol-snc__kartsatir:last-child{border-bottom:0}
.pol-snc__kartsatir span{color:var(--pol-n-600)}
.pol-snc__kartsatir b{color:var(--pol-ink)}
@media(max-width:820px){ .pol-snc{padding:var(--pol-sp-3)} .pol-snc__yil{width:100%} }

/* ==========================================================================
   BARAJ TÜRLERİ (30.09.2026) — tanım ekranı (yönetim + antrenör ORTAK) ve veli.
   Mesafe kartları kulvar kartının iskeletini kullanır (.pol-kulvar): solda 25 m kısa,
   sağda 50 m uzun kulvar.
   ========================================================================== */
.pol-baraj-turler{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pol-baraj-tur{display:flex;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;color:inherit}
.pol-baraj-tur:hover{text-decoration:none}
.pol-baraj-tur__tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pol-baraj-tur__tx b{font-size:var(--pol-fs-15);color:var(--pol-ink);overflow-wrap:anywhere}
.pol-baraj-tur__tx span{font-size:var(--pol-fs-12);color:var(--pol-n-500)}
.pol-baraj-tur .pol-badge{flex:none}
.pol-baraj-baslik .pol-card__body{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.pol-baraj-baslik__eylem{display:flex;flex-wrap:wrap;align-items:center;gap:8px}

/* Tanım: mesafe başına iki baraj alanı */
.pol-baraj-giris,.pol-baraj-sonuclar{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pol-baraj-giris__kart{padding:12px 14px}
.pol-baraj-giris__input{margin-top:6px;height:38px;padding:0 10px;font-size:var(--pol-fs-14);text-align:center;min-width:0}
.pol-baraj-giris__yok{margin-top:10px;color:var(--pol-n-400);font-weight:700}
.pol-baraj-kaydet{position:sticky;bottom:12px;display:flex;justify-content:flex-end;margin-top:16px;pointer-events:none}
.pol-baraj-kaydet .pol-btn{pointer-events:auto}

/* Veli: karşılaştırma kartı */
.pol-baraj-sonuc{padding:12px 14px}
.pol-baraj-sonuc__satir{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-top:4px}
.pol-baraj-sonuc__satir small{font-size:var(--pol-fs-11);color:var(--pol-n-500)}
.pol-baraj-sonuc__satir b{font-size:var(--pol-fs-14);color:var(--pol-ink)}
.pol-baraj-sonuc__durum{display:inline-flex;align-items:center;gap:4px;margin-top:8px;font-size:var(--pol-fs-12);
  font-weight:700;color:var(--pol-n-500)}
.pol-baraj-sonuc__durum.is-gecti{color:var(--pol-success)}
.pol-baraj-sonuc__durum.is-kaldi{color:var(--pol-warning-tx)}

/* Veli ana sayfa kartı: tür satırları */
.pol-baraj-ozet{display:flex;flex-direction:column}
.pol-baraj-ozet__satir{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;
  text-decoration:none;color:inherit;border-bottom:var(--pol-line-inner-border)}
.pol-baraj-ozet__satir:last-child{border-bottom:0}
.pol-baraj-ozet__satir:hover{text-decoration:none}
.pol-baraj-ozet__ad{min-width:0;display:flex;flex-direction:column;gap:2px}
.pol-baraj-ozet__ad b{font-size:var(--pol-fs-13);color:var(--pol-ink);overflow-wrap:anywhere}
.pol-baraj-ozet__ad small{font-size:var(--pol-fs-11);color:var(--pol-n-500)}
.pol-baraj-ozet__satir .pol-badge{flex:none}
@media(max-width:620px){
  .pol-baraj-giris,.pol-baraj-sonuclar{grid-template-columns:1fr}
  .pol-baraj-turler{grid-template-columns:1fr}
}

/* Sabit sütunlar (30.09.2026): 4 bilgi + 21 derece sütunu. Bilgi sütunları sabit
   genişlikte, derece sütunları kalanı paylaşır; derece Excel biçiminde kısa. */
/* Ölçü (1400px ekranda tablo kabı ~986px): bilgi sütunları 280px, 18 derece sütunu
   ~39px; en uzun derece "8:36.59" 11px'te ~36px ister. Bilgi hücreleri gerekirse iki
   satıra sarar (tarih aralığı, uzun yarış adı). Eşik sayfa betiğinde: 280 + n × 38,5. */
.pol-snc__c-ad{width:112px}
.pol-snc__c-sehir{width:60px}
.pol-snc__c-havuz{width:34px}
.pol-snc__c-tarih{width:74px}
.pol-snc__t th,.pol-snc__t td{padding:6px 1px;overflow:hidden;text-overflow:clip}
.pol-snc__t .pol-snc__ad,.pol-snc__t .pol-snc__bilgi{padding-inline:4px;white-space:normal !important;overflow-wrap:anywhere}
.pol-snc__t td.pol-snc__d{font-size:11px}
.pol-snc__t col.pol-hide{display:none}

/* Baraj süresi üç kutu (30.09.2026): dakika : saniye . salise */
.pol-sure3{display:flex;align-items:center;gap:2px;margin-top:6px}
.pol-sure3 .pol-input{height:38px;padding:0 2px;text-align:center;font-size:var(--pol-fs-14);min-width:0;flex:1 1 0}
.pol-sure3__ayrac{flex:none;font-weight:700;color:var(--pol-n-500)}
@media(max-width:820px){ .pol-sure3 .pol-input{font-size:16px} }
/* İlk 3 sıra rakamı hücrenin sağ üst köşesinde durur, genişlik istemez (dar sütunda
   derece metnini taşırıyordu). Kart görünümünde metnin yanında kalır. */
.pol-snc__t td.pol-snc__d{position:relative}

/* Baraj tanım kartı + veli baraj sonuç kartı (30.09.2026): başlık ortada, 25 m / 50 m arası belirgin ayırıcı. */
.pol-baraj-giris__kart .pol-kulvar__t,.pol-baraj-sonuc .pol-kulvar__t{text-align:center;margin-bottom:8px}
.pol-baraj-giris__kart .pol-kulvar__yari:first-child,.pol-baraj-sonuc .pol-kulvar__yari:first-child{padding-right:10px}
.pol-baraj-giris__kart .pol-kulvar__yari + .pol-kulvar__yari,
.pol-baraj-sonuc .pol-kulvar__yari + .pol-kulvar__yari{border-left:2px solid var(--pol-n-300);padding-left:10px}

/* Veli > Performans > Derece Gelişimi (30.09.2026): branş başına bölüm, mesafe + kulvar
   başına bir çizgi grafik (pol-line, data-bicim="sure"). Renk yok — ölçüm grafikleriyle aynı dil. */
.pol-dgrafik__ust{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}
.pol-dgrafik__deger{text-align:right;flex:none}
.pol-dgrafik__deger .pol-num{font-size:22px;line-height:1.1;color:var(--pol-ink)}
