:root {
  --bg: #f5f6f8;
  --panel: #ffffff;
  --panel-2: #f2f4f7;
  --hover: #fafbfc;
  --border: #e4e7ec;
  --text: #15181d;
  --muted: #5f6b7a;
  --faint: #98a2b3;
  --accent: #f26b1d;
  --accent-strong: #d9590f;
  --accent-soft: #fff2ea;
  --accent-text: #b04606;
  --ok: #17803d;
  --ok-soft: #e7f5ec;
  --warn: #a35d00;
  --warn-soft: #fff4e2;
  --bad: #c42b2b;
  --bad-soft: #fdeceb;
  --info: #1f5fd0;
  --info-soft: #e9f0fe;
  --violet: #6a48d7;
  --violet-soft: #f0ebfd;
  --neutral-soft: #eef0f3;
  --shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .07);
  --shadow-lg: 0 24px 48px -12px rgba(16, 24, 40, .25);
  --radius: 12px;
  --chart: #f26b1d;
  --grid: #eceef2;
  --axis: #d5d9e0;
  --on-status: #fff; /* dolu ok / warn / bad zemin üstündeki yazı */
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0f1115; --panel: #171a20; --panel-2: #1e222a; --hover: #1b1f26; --border: #2a2f39; --text: #e8eaee; --muted: #a0a8b5; --faint: #6b7380;
    --accent-soft: #3a2113; --accent-text: #ff9a5c; --ok: #4cc27a; --ok-soft: #13291c; --warn: #f0b04a; --warn-soft: #2e2412;
    --bad: #ff6b6b; --bad-soft: #321718; --info: #78a6ff; --info-soft: #152238; --violet: #a993ff; --violet-soft: #231c3b; --neutral-soft: #242933;
    --shadow: 0 1px 2px rgba(0, 0, 0, .4); --shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, .6);
    --chart: #e8641a; --grid: #232831; --axis: #343a45; --on-status: #0f1115;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0f1115; --panel: #171a20; --panel-2: #1e222a; --hover: #1b1f26; --border: #2a2f39; --text: #e8eaee; --muted: #a0a8b5; --faint: #6b7380;
  --accent-soft: #3a2113; --accent-text: #ff9a5c; --ok: #4cc27a; --ok-soft: #13291c; --warn: #f0b04a; --warn-soft: #2e2412;
  --bad: #ff6b6b; --bad-soft: #321718; --info: #78a6ff; --info-soft: #152238; --violet: #a993ff; --violet-soft: #231c3b; --neutral-soft: #242933;
  --shadow: 0 1px 2px rgba(0, 0, 0, .4); --shadow-lg: 0 24px 48px -12px rgba(0, 0, 0, .6);
  --chart: #e8641a; --grid: #232831; --axis: #343a45; --on-status: #0f1115;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--bg);
  color: var(--text);
  font: 13.5px/1.45 "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--info); text-decoration: none; }
a:hover { text-decoration: underline; }
button, select, input, textarea { font: inherit; color: inherit; }
.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
.faint { color: var(--faint); }
.small { font-size: 12px; }
.nowrap { white-space: nowrap; }

/* ---------- Üst bar ---------- */
/* Satıra kırılma genişlik eşiğine değil sığmamaya bağlı: bağlantı durumu (.status) en az 320 px bulamıyorsa düğmeler alt
   satıra (sağa yaslı) iner, durum marka ile aynı satırda kalan genişliğin tamamını alır (yarım ekran pencerede de haplar
   okunur). 860 px altında durum kendi satırına iner (aşağıdaki @media). */
.topbar {
  position: sticky; top: 0; z-index: 20;
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px;
  padding: 10px 20px;
  background: color-mix(in srgb, var(--panel) 88%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}
.brand { display: flex; align-items: center; gap: 10px; min-width: 190px; }
.brand b { display: block; font-size: 15px; letter-spacing: -.01em; }
.brand small { color: var(--muted); font-size: 11.5px; }
.logo { width: 32px; height: 32px; border-radius: 9px; background: var(--accent); color: #fff; display: grid; place-items: center; }
.status { flex: 1; display: flex; gap: 8px; flex-wrap: wrap; min-width: 0; }
.topbar .status { flex: 1 1 320px; }
.topbar .status:empty { display: none; }
.actions { display: flex; gap: 6px; }
.topbar .actions { margin-left: auto; }

/* Hap blok kutu (flex değil): sığmayan metin düz kesilmez, sonunda "…" görünür; tam metin title'da */
.pill-status {
  display: inline-block; vertical-align: middle; min-width: 0; max-width: min(520px, 100%);
  padding: 5px 10px; border-radius: 999px;
  background: var(--panel-2); border: 1px solid var(--border);
  font-size: 12px; color: var(--muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: default;
}
.pill-status > .dot { display: inline-block; vertical-align: middle; margin: -2px 7px 0 0; }
.pill-status > .spinner { margin-right: 4px; }
.pill-status b { color: var(--text); font-weight: 600; margin-right: 3px; }
.pill-status.clickable { cursor: pointer; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--faint); flex: none; }
.dot.ok { background: var(--ok); box-shadow: 0 0 0 3px var(--ok-soft); }
.dot.warn { background: var(--warn); box-shadow: 0 0 0 3px var(--warn-soft); }
.dot.bad { background: var(--bad); box-shadow: 0 0 0 3px var(--bad-soft); }
.dot.live { animation: pulse 1.6s infinite; }
@keyframes pulse { 50% { opacity: .35; } }

.btn {
  border: 1px solid transparent; background: var(--accent); color: #fff;
  padding: 7px 13px; border-radius: 9px; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.btn:hover { background: var(--accent-strong); }
.btn.ghost { background: transparent; color: var(--text); border-color: var(--border); }
.btn.ghost:hover { background: var(--panel-2); }
.btn.icon { padding: 7px 9px; }
.btn.sm { padding: 4px 9px; font-size: 12px; border-radius: 7px; }
.btn:disabled { opacity: .55; cursor: default; }
.btn[hidden] { display: none; }
.btn.spin svg { animation: rot 1s linear infinite; }
@keyframes rot { to { transform: rotate(360deg); } }

main { padding: 18px 20px 60px; }

/* ---------- KPI ---------- */
.kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpi {
  background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 13px 15px; box-shadow: var(--shadow); cursor: pointer; transition: border-color .15s;
}
.kpi:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.kpi .label { color: var(--muted); font-size: 12px; font-weight: 500; display: flex; align-items: center; gap: 6px; }
.kpi .value { font-size: 24px; font-weight: 700; letter-spacing: -.02em; margin: 4px 0 2px; }
.kpi .sub { color: var(--faint); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi.accent .value { color: var(--accent-text); }
.kpi.bad .value { color: var(--bad); }
.kpi.ok .value { color: var(--ok); }

/* ---------- Araç çubuğu ---------- */
.toolbar { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
.search {
  flex: 1; min-width: 260px; display: flex; align-items: center; gap: 8px;
  background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 0 12px; color: var(--faint);
}
.search:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.search input { flex: 1; border: 0; outline: 0; background: transparent; padding: 9px 0; color: var(--text); }
select {
  background: var(--panel); border: 1px solid var(--border); border-radius: 10px; padding: 8px 10px; cursor: pointer;
}
.seg { display: inline-flex; background: var(--panel-2); border: 1px solid var(--border); border-radius: 10px; padding: 3px; }
.seg button { border: 0; background: transparent; padding: 5px 12px; border-radius: 7px; cursor: pointer; color: var(--muted); font-weight: 600; }
.seg button.on { background: var(--panel); color: var(--text); box-shadow: var(--shadow); }

.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 10px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.tabs button {
  border: 0; background: transparent; padding: 9px 12px; cursor: pointer; color: var(--muted); font-weight: 600;
  border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap;
}
.tabs button:hover { color: var(--text); }
.tabs button.on { color: var(--accent-text); border-bottom-color: var(--accent); }
.tabs .count { display: inline-block; margin-left: 6px; padding: 0 7px; border-radius: 999px; background: var(--neutral-soft); color: var(--muted); font-size: 11.5px; line-height: 18px; }
.tabs button.on .count { background: var(--accent-soft); color: var(--accent-text); }
.tabs .count.hot { background: var(--accent); color: #fff; }

.chips { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.chip {
  border: 1px solid var(--border); background: var(--panel); border-radius: 999px; padding: 4px 11px;
  cursor: pointer; font-size: 12px; color: var(--muted); font-weight: 500;
}
.chip.on { background: var(--text); color: var(--panel); border-color: var(--text); }
.chip-info { font-size: 12px; color: var(--faint); align-self: center; margin-left: auto; }

/* ---------- Tablo ---------- */
.table-wrap { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); overflow: auto; max-height: calc(100vh - 330px); min-height: 240px; }
table { width: 100%; border-collapse: collapse; }
thead th {
  position: sticky; top: 0; z-index: 2; background: var(--panel-2); text-align: left;
  font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 600;
  padding: 9px 12px; border-bottom: 1px solid var(--border); white-space: nowrap;
}
tbody td { padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
tbody tr { cursor: pointer; transition: background .1s; }
tbody tr:hover { background: var(--hover); }
tbody tr.sel { background: var(--accent-soft); }
tbody tr.unseen td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
tbody tr:last-child td { border-bottom: 0; }
td .t1 { font-weight: 600; color: var(--text); }
td .t2 { color: var(--muted); font-size: 12px; margin-top: 2px; }
td .t3 { color: var(--faint); font-size: 11.5px; margin-top: 2px; }
.ev-name { max-width: 300px; }
.cust { max-width: 210px; overflow: hidden; text-overflow: ellipsis; }
.qty { font-size: 18px; font-weight: 700; }
.right { text-align: right; }
.empty { padding: 60px 20px; text-align: center; color: var(--muted); }
.empty b { display: block; color: var(--text); font-size: 15px; margin-bottom: 4px; }

/* ---------- Rozetler ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 6px;
  font-size: 11.5px; font-weight: 600; white-space: nowrap; background: var(--neutral-soft); color: var(--muted);
}
.badge.ok { background: var(--ok-soft); color: var(--ok); }
.badge.warn { background: var(--warn-soft); color: var(--warn); }
.badge.bad { background: var(--bad-soft); color: var(--bad); }
.badge.info { background: var(--info-soft); color: var(--info); }
.badge.violet { background: var(--violet-soft); color: var(--violet); }
.badge.accent { background: var(--accent-soft); color: var(--accent-text); }
.badge.solid { background: var(--accent); color: #fff; }
.badges { display: flex; gap: 4px; flex-wrap: wrap; }
.badges + .badges { margin-top: 4px; }

.cd { display: inline-block; padding: 1px 7px; border-radius: 6px; font-size: 11.5px; font-weight: 600; background: var(--neutral-soft); color: var(--muted); }
.cd.u1 { background: var(--bad-soft); color: var(--bad); }
.cd.u2 { background: var(--warn-soft); color: var(--warn); }
.cd.past { text-decoration: line-through; opacity: .7; }

.profit { font-weight: 700; }
.profit.pos { color: var(--ok); }
.profit.neg { color: var(--bad); }

.steps { display: inline-flex; gap: 3px; margin-top: 5px; }
.steps i { width: 14px; height: 4px; border-radius: 2px; background: var(--border); display: block; }
.steps i.approved { background: var(--ok); }
.steps i.in_process { background: var(--warn); }
.steps i.rejected { background: var(--bad); }

/* Yüklenen bilet dosyaları (Biletwise "View ticket") */
.tkt-list { display: flex; flex-direction: column; gap: 2px; margin-top: 5px; }
.tkt-link { display: block; max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; color: var(--accent-text, var(--accent)); text-decoration: none; }
.tkt-link:hover { text-decoration: underline; }
.tkt-link.off { color: var(--faint); cursor: default; text-decoration: none; }
.tkt-item { display: flex; align-items: center; gap: 6px; min-width: 0; }
.tkt-item .tkt-link { min-width: 0; }
.tkt-dl { flex: none; font-size: 12px; line-height: 1; color: var(--muted); text-decoration: none; padding: 2px 4px; border-radius: 5px; }
.tkt-dl:hover { color: var(--text); background: var(--panel-2); }
.tkt-dl.busy { opacity: .5; cursor: progress; }
.kv .tkt-files .tkt-item { gap: 8px; }
.kv .tkt-files .tkt-dl.btn { padding: 3px 8px; font-size: 12px; }
.kv .tkt-files { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.kv .tkt-files .tkt-link { max-width: 100%; font-size: 13px; }

/* Satış listesinde Biletwise aşamaları: tıklanınca değiştirme menüsü */
.stage-mini { display: inline-flex; gap: 3px; margin-top: 5px; align-items: center; }
.stage-mini button { min-width: 22px; height: 18px; padding: 0 4px; border-radius: 5px; border: 1px solid var(--border); background: var(--panel); color: var(--muted); font-size: 10.5px; font-weight: 700; line-height: 16px; cursor: pointer; }
/* Koyu temada zeminler açık renkli: rakamlar koyu yazılır (--on-status) */
.stage-mini button.approved { background: var(--ok); border-color: var(--ok); color: var(--on-status, #fff); }
.stage-mini button.in_process { background: var(--warn); border-color: var(--warn); color: var(--on-status, #fff); }
.stage-mini button.rejected { background: var(--bad); border-color: var(--bad); color: var(--on-status, #fff); }
.stage-mini button.closed { opacity: .45; }
.stage-mini button:hover:not(:disabled) { outline: 2px solid color-mix(in srgb, var(--accent) 45%, transparent); outline-offset: 1px; }
.stage-mini button:disabled { cursor: default; }
.stage-menu { position: fixed; z-index: 70; min-width: 190px; padding: 6px; border-radius: 10px; border: 1px solid var(--border); background: var(--panel); color: var(--text); box-shadow: 0 10px 28px rgba(0, 0, 0, .2); font-size: 13px; }
.stage-menu .sm-title { padding: 4px 8px 6px; font-size: 12px; color: var(--muted); }
.stage-menu button { display: flex; width: 100%; align-items: center; gap: 8px; padding: 7px 8px; border: 0; border-radius: 7px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.stage-menu button:hover:not(:disabled) { background: var(--panel-2); }
.stage-menu button:disabled { opacity: .5; cursor: default; }
.stage-menu button i { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.stage-menu button i.approved { background: var(--ok); }
.stage-menu button i.in_process { background: var(--warn); }
.stage-menu button i.rejected { background: var(--bad); }
.stage-menu .sm-note { padding: 6px 8px 2px; font-size: 11.5px; color: var(--muted); }

.spinner { width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; display: inline-block; animation: rot .8s linear infinite; vertical-align: -2px; }

/* ---------- Etkinlik kartları ---------- */
.ev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 12px; }
.ev-card {
  background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 14px 15px; cursor: pointer; display: flex; flex-direction: column; gap: 10px; transition: border-color .15s;
}
.ev-card:hover { border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.ev-card.unseen { box-shadow: inset 3px 0 0 var(--accent), var(--shadow); }
.ev-card h3 { margin: 0; font-size: 14.5px; line-height: 1.3; }
.ev-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.ev-cats { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.ev-cats td { padding: 4px 0; border-top: 1px dashed var(--border); }
.ev-cats td:last-child { text-align: right; }
.ev-summary { color: var(--muted); font-size: 12.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ev-foot { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); }

/* ---------- Çekmece ---------- */
.scrim { position: fixed; inset: 0; background: rgba(15, 17, 21, .35); opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 30; }
.scrim.on { opacity: 1; pointer-events: auto; }
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(720px, 100vw); z-index: 31;
  background: var(--bg); border-left: 1px solid var(--border); box-shadow: var(--shadow-lg);
  transform: translateX(100%); transition: transform .22s ease; overflow-y: auto;
}
.drawer.on { transform: none; }
.dr-head { position: sticky; top: 0; z-index: 2; background: var(--panel); border-bottom: 1px solid var(--border); padding: 16px 20px; }
.dr-head h2 { margin: 0 0 4px; font-size: 17px; letter-spacing: -.01em; padding-right: 40px; }
.dr-close { position: absolute; right: 14px; top: 14px; }
.dr-body { padding: 16px 20px 40px; display: flex; flex-direction: column; gap: 14px; }
.card { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; }
.card h4 { margin: 0 0 10px; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kv { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; }
.kv div span { display: block; font-size: 11.5px; color: var(--faint); margin-bottom: 1px; }
.kv div b { font-weight: 600; word-break: break-word; }
.kv .wide { grid-column: span 2; }
.kv .full { grid-column: 1 / -1; }
.big-money { font-size: 20px; font-weight: 700; letter-spacing: -.01em; }

.work-seg { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.work-seg button { border: 1px solid var(--border); background: var(--panel); border-radius: 8px; padding: 5px 10px; cursor: pointer; font-weight: 600; font-size: 12.5px; color: var(--muted); }
.work-seg button.on { border-color: transparent; color: #fff; }
.work-seg button.on[data-w="bekliyor"] { background: var(--muted); }
.work-seg button.on[data-w="aliniyor"] { background: var(--info); }
.work-seg button.on[data-w="alindi"] { background: var(--ok); }
.work-seg button.on[data-w="gonderildi"] { background: var(--violet); }
.work-seg button.on[data-w="sorun"] { background: var(--bad); }
/* Biletwise aşamaları (Step 1-3) */
.stages { display: grid; gap: 6px; }
.stage-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.stage-name { width: 56px; font-weight: 600; font-size: 12.5px; color: var(--muted); }
.stage-seg { margin-bottom: 0; }
.stage-seg button:disabled { cursor: default; }
.stage-seg button.on.in_process { background: var(--warn); }
.stage-seg button.on.approved { background: var(--ok); }
.stage-seg button.on.rejected { background: var(--bad); }
.stage-seg.closed button:not(.on) { opacity: .45; }
.stage-note { margin: 8px 0 0; }
.mini-login { border: 1px solid var(--border); background: var(--panel); border-radius: 6px; padding: 0 5px; font-size: 11px; line-height: 1.6; cursor: pointer; color: var(--muted); }
.mini-login:hover { color: var(--text); border-color: var(--accent); }
textarea { width: 100%; min-height: 70px; resize: vertical; border: 1px solid var(--border); background: var(--panel-2); border-radius: 9px; padding: 9px 11px; outline: 0; }
textarea:focus { border-color: var(--accent); background: var(--panel); }

.facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.fact { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--panel-2); }
.fact > span { display: block; font-size: 11.5px; color: var(--faint); margin-bottom: 5px; }
.fact p { margin: 6px 0 0; font-size: 12.5px; color: var(--muted); }
.summary { font-size: 13.5px; margin: 0 0 12px; }
.reco { background: var(--accent-soft); border-radius: 10px; padding: 11px 13px; color: var(--text); }
.reco b { color: var(--accent-text); display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 3px; }
.sub-h { font-size: 12px; font-weight: 600; color: var(--muted); margin: 14px 0 6px; }
ul.links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
ul.links li { display: flex; gap: 8px; align-items: baseline; }
ul.links li .note { color: var(--muted); font-size: 12.5px; }
.req { display: flex; flex-wrap: wrap; gap: 6px; }
.req span { background: var(--warn-soft); color: var(--warn); border-radius: 7px; padding: 3px 9px; font-size: 12.5px; font-weight: 500; }
.timeline { position: relative; padding-left: 16px; display: flex; flex-direction: column; gap: 8px; }
.timeline::before { content: ""; position: absolute; left: 4px; top: 4px; bottom: 4px; width: 2px; background: var(--border); }
.timeline div { position: relative; }
.timeline div::before { content: ""; position: absolute; left: -16px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--panel); border: 2px solid var(--accent); }
.timeline b { font-weight: 600; }
.markets { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.market { border: 1px solid var(--border); border-radius: 10px; padding: 11px 13px; }
.market .mh { display: flex; justify-content: space-between; align-items: center; font-weight: 600; font-size: 12.5px; }
.market .mp { font-size: 20px; font-weight: 700; margin: 6px 0 2px; }
.market p { margin: 4px 0 0; font-size: 12px; color: var(--muted); }
.mini { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 8px; }
.mini th { text-align: left; color: var(--faint); font-weight: 600; font-size: 11.5px; padding: 4px 6px; border-bottom: 1px solid var(--border); }
.mini td { padding: 5px 6px; border-bottom: 1px dashed var(--border); }
.mini tr.match td { background: var(--accent-soft); }
.calc { margin-top: 10px; border-radius: 10px; padding: 11px 13px; background: var(--panel-2); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.calc .profit { font-size: 20px; }
.news { display: flex; flex-direction: column; gap: 10px; }
.news div { border-left: 3px solid var(--border); padding-left: 10px; }
.news .meta { color: var(--faint); font-size: 11.5px; }
.news p { margin: 2px 0 0; color: var(--muted); font-size: 12.5px; }
.res-empty { text-align: center; padding: 22px 10px; color: var(--muted); }
.res-empty b { display: block; color: var(--text); margin-bottom: 6px; }
.res-meta { color: var(--faint); font-size: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; display: flex; gap: 8px; align-items: center; }
details summary { cursor: pointer; color: var(--muted); font-size: 12px; margin-top: 12px; }
details ol { margin: 6px 0 0; padding-left: 18px; font-size: 12px; word-break: break-all; }
.others { display: flex; flex-direction: column; }
.others button { all: unset; cursor: pointer; display: grid; grid-template-columns: 1fr auto auto; gap: 12px; padding: 8px 4px; border-bottom: 1px dashed var(--border); }
.others button:hover { background: var(--hover); }
.others button:last-child { border-bottom: 0; }

/* ---------- Mesaj rozeti ---------- */
.mbadge:empty { display: none; }
.mbadge { background: var(--accent); color: #fff; border-radius: 999px; font-size: 11px; padding: 0 6px; line-height: 17px; min-width: 17px; text-align: center; }
.mbadge.pulse { animation: mpulse 1.2s ease-in-out 3; }
/* Ekip rozeti: bahsedilme / direkt mesaj varsa kırmızı */
.mbadge.hot { background: var(--bad); color: var(--on-status, #fff); }
@keyframes mpulse { 50% { transform: scale(1.25); } }

/* ---------- Ekip alarmı (ekip-alarm.js): her pencerede tam ekran üstü kip pencere ---------- */
dialog.ekal { width: min(560px, calc(100vw - 32px)); border: 2px solid var(--bad); border-radius: 18px; padding: 0; box-shadow: 0 0 0 6px color-mix(in srgb, var(--bad) 18%, transparent), var(--shadow-lg); }
dialog.ekal.ring { border-color: var(--accent); box-shadow: 0 0 0 6px color-mix(in srgb, var(--accent) 20%, transparent), var(--shadow-lg); }
dialog.ekal::backdrop { background: color-mix(in srgb, var(--bad) 22%, rgba(15, 17, 21, .62)); animation: ekalbg 1.6s ease-in-out infinite; }
dialog.ekal.ring::backdrop { background: color-mix(in srgb, var(--accent) 22%, rgba(15, 17, 21, .62)); }
@keyframes ekalbg { 50% { background: rgba(15, 17, 21, .5); } }
.ekal-head { display: flex; align-items: center; gap: 10px; padding: 16px 20px 6px; }
.ekal-head h2 { margin: 0; font-size: 20px; flex: 1; min-width: 0; color: var(--bad); animation: ekalpulse 1.2s ease-in-out infinite; }
.ekal-head.ring h2 { color: var(--accent-text); }
@keyframes ekalpulse { 50% { opacity: .55; } }
.ekal-count { font-size: 12px; font-weight: 700; color: var(--muted); background: var(--panel-2); border: 1px solid var(--border); border-radius: 999px; padding: 1px 9px; }
/* Yönetici alarmı: alıcının susturmaları yok sayıldı */
.ekal-forced { flex: none; font-size: 12px; font-weight: 700; white-space: nowrap; color: var(--bad); background: color-mix(in srgb, var(--bad) 12%, var(--panel)); border: 1px solid color-mix(in srgb, var(--bad) 45%, transparent); border-radius: 999px; padding: 2px 10px; }
/* Kişi renkleri (baş harf avatarı, Ekip'te gönderen adı): kullanıcı kimliğinden 0–7; açık / koyu temada okunur */
.av-c0 { --av: #e8590c; } .av-c1 { --av: #1c7ed6; } .av-c2 { --av: #2b8a3e; } .av-c3 { --av: #7048e8; }
.av-c4 { --av: #c2255c; } .av-c5 { --av: #0c8599; } .av-c6 { --av: #e67700; } .av-c7 { --av: #5c7cfa; }
/* Çaldıranın / alarmı gönderenin resmi (resim yoksa ya da yüklenemezse baş harfler) */
.ekal-av { position: relative; flex: none; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; font-weight: 700; font-size: 15px; background: color-mix(in srgb, var(--av, #868e96) 20%, var(--panel)); color: color-mix(in srgb, var(--av, #868e96) 75%, var(--text)); box-shadow: 0 0 0 2px var(--panel), 0 0 0 4px color-mix(in srgb, var(--accent) 45%, transparent); }
.ekal-av > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ekal-av:has(> img) > span { visibility: hidden; }
.ekal-meta { padding: 0 20px; color: var(--muted); font-size: 12.5px; }
.ekal-meta .ekal-at { color: var(--text); font-weight: 600; }
.ekal-late { color: var(--bad); }
.ekal-body { padding: 12px 20px 4px; display: flex; flex-direction: column; gap: 8px; }
.ekal-msg, .ekal-ringtext { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--panel-2); border: 1px solid var(--border); white-space: pre-wrap; overflow-wrap: anywhere; max-height: 220px; overflow-y: auto; font-size: 14px; }
.ekal-ringtext { font-size: 16px; font-weight: 600; }
.ekal-task { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; font-size: 12.5px; color: var(--muted); }
.ekal-task b { color: var(--text); }
.ekal-note { font-size: 13px; padding: 6px 10px; border-radius: 8px; background: var(--warn-soft); color: var(--text); overflow-wrap: anywhere; }
.ekal-sales { display: flex; flex-wrap: wrap; gap: 6px; }
.ekal-sale { font: inherit; color: var(--info); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline dotted; }
.ekal-sound { margin: 6px 20px 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border-radius: 10px; background: var(--accent-soft); }
.ekal-sound[hidden] { display: none; }
.ekal-err { margin: 6px 20px 0; color: var(--bad); font-size: 12.5px; }
.ekal-err:empty { display: none; }
.ekal-acts { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px 18px; }
.ekal-acts .btn { padding: 9px 14px; }
.ekal-acts .ekal-close { background: var(--bad); }
.ekal-acts .ekal-close:hover { background: color-mix(in srgb, var(--bad) 85%, #000); }
dialog.ekal.ring .ekal-acts .ekal-close { background: var(--accent); }
.ekal-acts .btn.ok { color: var(--ok); border-color: color-mix(in srgb, var(--ok) 40%, var(--border)); }
.ekal-acts .btn:focus-visible, .ekal-nav .btn:focus-visible, .ekal-sound .btn:focus-visible { outline: 3px solid var(--info); outline-offset: 2px; }
.ekal-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 20px 14px; border-top: 1px solid var(--border); }
@media (prefers-reduced-motion: reduce) {
  dialog.ekal::backdrop, .ekal-head h2 { animation: none; }
}

/* ---------- Sıralanabilir başlıklar ---------- */
th.sortable { cursor: pointer; user-select: none; }
th.sortable:hover { color: var(--text); }
th.sortable.on { color: var(--accent-text); }
th .arrow { font-size: 12px; }

/* ---------- Hızlı linkler ---------- */
.qlinks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.qlink { font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--border); background: var(--panel-2); color: var(--text); }
.qlink:hover { border-color: var(--accent); color: var(--accent-text); text-decoration: none; }

/* ---------- Kulüp hafızası ---------- */
.clubs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.club { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; background: var(--panel-2); display: flex; flex-direction: column; gap: 6px; }
.club-h { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.club p { margin: 0; }
.club-note { min-height: 54px; font-size: 12.5px; background: var(--panel); }
.market .mini { margin-top: 6px; }

/* ---------- Passolig kart ---------- */
.kart-view { display: flex; flex-direction: column; gap: 14px; }
.kpis-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; }
.kpi.static { cursor: default; }
.kart-note { margin: -4px 0 0; color: var(--muted); font-size: 12.5px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.kart-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 14px; }
.kart-grid .card { margin: 0; }
.kart-grid .mini tr.year-row td { background: var(--panel-2); }
.kart-view .table-wrap { max-height: 520px; }

.chart { display: grid; grid-template-columns: 52px 1fr; grid-template-rows: 210px auto; margin-top: 4px; }
.chart-y { position: relative; }
.chart-y span { position: absolute; right: 8px; transform: translateY(50%); font-size: 11px; color: var(--faint); white-space: nowrap; }
.chart-plot { position: relative; display: flex; align-items: stretch; border-bottom: 1px solid var(--axis); }
.gridline { position: absolute; left: 0; right: 0; border-top: 1px solid var(--grid); }
.col { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; z-index: 1; }
.col .bar { width: min(24px, 58%); background: var(--chart); border-radius: 4px 4px 0 0; transition: opacity .12s; }
.col:hover .bar { opacity: .8; }
.col .cap { font-size: 11px; font-weight: 600; color: var(--muted); margin-bottom: 4px; white-space: nowrap; }
.chart-x { grid-column: 2; display: flex; padding-top: 6px; }
.chart-x span { flex: 1; text-align: center; font-size: 11px; color: var(--faint); }
.tip {
  position: fixed; z-index: 60; pointer-events: none; opacity: 0; transition: opacity .1s;
  background: var(--text); color: var(--panel); border-radius: 8px; padding: 7px 10px; font-size: 12px; box-shadow: var(--shadow-lg);
}
.tip.on { opacity: 1; }
.tip b { display: block; margin-bottom: 2px; }

/* ---------- Ayarlar ---------- */
dialog { border: 1px solid var(--border); border-radius: 16px; padding: 0; width: min(720px, calc(100vw - 32px)); background: var(--panel); color: var(--text); box-shadow: var(--shadow-lg); }
dialog::backdrop { background: rgba(15, 17, 21, .45); }
.dlg-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.dlg-head h3 { margin: 0; font-size: 16px; }
.dlg-body { padding: 6px 20px 20px; max-height: 70vh; overflow-y: auto; }
.dlg-body section { padding: 14px 0; border-bottom: 1px solid var(--border); }
.dlg-body section:last-child { border-bottom: 0; }
.dlg-body h5 { margin: 0 0 6px; font-size: 13.5px; }
.dlg-body p, .dlg-body li { color: var(--muted); font-size: 12.5px; }
.dlg-body ol { padding-left: 18px; margin: 6px 0; }
.dlg-body code { background: var(--panel-2); border: 1px solid var(--border); border-radius: 5px; padding: 1px 5px; font-size: 12px; }
.row { display: flex; gap: 8px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
.row input[type="text"], .row input[type="password"], .row input[type="number"] {
  border: 1px solid var(--border); background: var(--panel-2); border-radius: 8px; padding: 7px 10px; outline: 0;
}
.row input[type="password"] { flex: 1; min-width: 220px; }
.row input[type="number"] { width: 80px; }
.row label { display: inline-flex; gap: 6px; align-items: center; color: var(--text); font-size: 13px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin-top: 8px; }
.grid2 label { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; }
/* Sayfa içi giriş kutusu (window.prompt Windows uygulamasında çalışmıyor) */
dialog.input-dlg { width: min(460px, calc(100vw - 32px)); }
.input-dlg .dlg-input { width: 100%; box-sizing: border-box; border: 1px solid var(--border); background: var(--panel-2); color: var(--text); border-radius: 8px; padding: 8px 10px; outline: 0; margin-top: 6px; }
.input-dlg .dlg-input:focus { border-color: var(--accent); background: var(--panel); }
.input-dlg .dlg-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }

/* ---------- Giriş sayfası ---------- */
.login-page { min-height: 100vh; }
.login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; }
.login-card { width: min(400px, 100%); background: var(--panel); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-lg); padding: 24px; }
.login-card .brand { margin-bottom: 18px; }
.login-card h1 { font-size: 18px; margin: 0 0 12px; }
.login-card form { display: flex; flex-direction: column; gap: 12px; }
.login-card label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.login-card input { border: 1px solid var(--border); background: var(--panel-2); border-radius: 9px; padding: 9px 11px; outline: 0; font-size: 14px; color: var(--text); }
.login-card input:focus { border-color: var(--accent); background: var(--panel); box-shadow: 0 0 0 3px var(--accent-soft); }
.login-card .btn { justify-content: center; padding: 10px 14px; font-size: 14px; }
.login-error { color: var(--bad); font-size: 12.5px; min-height: 1em; margin: 0; }
.login-hint { color: var(--muted); font-size: 12.5px; margin: 0; }
.user-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); padding: 0 4px; white-space: nowrap; }
.user-chip b { color: var(--text); }
.who { color: var(--faint); font-size: 11.5px; font-weight: 400; text-transform: none; letter-spacing: 0; }
/* Kullanıcı hareketleri (yönetici) */
.act-tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 10px; }
.act-tools .sp { flex: 1; }
.act-link { background: none; border: 0; padding: 0; font: inherit; color: var(--accent-text, var(--accent)); cursor: pointer; text-align: left; }
.act-link:hover { text-decoration: underline; }
.act-detail { max-width: 460px; color: var(--muted, inherit); font-size: 12.5px; overflow-wrap: anywhere; }
tr.act-bad td { background: var(--warn-soft); }
.act-mini { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 12.5px; }
.act-mini li { overflow-wrap: anywhere; }
/* Panel güncellemesi / oturum kapandı çubuğu: üst çubuğun içinde ayrı bir satır (yer kaplar, alttaki yazma alanlarının
   ve düğmelerin üzerine binmez). Üst çubuk yoksa sayfanın üstünde yüzer. */
.topbar.has-update { flex-wrap: wrap; row-gap: 8px; }
.update-bar { order: 99; flex: 1 0 100%; display: flex; align-items: center; gap: 10px; min-width: 0; padding: 6px 8px 6px 12px; border-radius: 9px; background: var(--accent-soft); color: var(--text); border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border)); font-size: 13px; }
.update-bar[hidden] { display: none !important; }
.update-bar .update-text { flex: 1; min-width: 0; }
.update-bar .update-close { padding: 3px 8px; }
.update-bar.counting { border-color: var(--accent, #f26b1d); }
.update-bar.login-bar { background: var(--warn-soft); border-color: var(--warn); }
.update-bar.floating { position: fixed; left: 50%; top: 12px; transform: translateX(-50%); z-index: 60; width: max-content; max-width: calc(100vw - 32px); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18); }
.note-conflict { margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: var(--warn-soft); color: var(--text); border: 1px solid var(--warn); font-size: 12.5px; }
.note-conflict pre { white-space: pre-wrap; font: inherit; margin: 6px 0; max-height: 140px; overflow: auto; background: var(--panel); border-radius: 6px; padding: 6px 8px; }
.users-table td, .users-table th { padding: 6px 8px; }
.users-table .actions { display: flex; gap: 4px; flex-wrap: wrap; justify-content: flex-end; }
.net-addr { font-family: ui-monospace, Consolas, monospace; font-size: 13px; background: var(--panel-2); border: 1px solid var(--border); border-radius: 7px; padding: 2px 8px; }

/* ---------- Satış tablosu: son mesaj / seller notu ---------- */
.seller-line { font-size: 11.5px; }
.msg-cell { min-width: 220px; max-width: 300px; }
.msg-line {
  all: unset; box-sizing: border-box; display: block; width: 100%; cursor: pointer;
  border-radius: 7px; padding: 4px 6px; margin: -2px -6px 3px; font-size: 12px; line-height: 1.35;
}
.msg-line:hover { background: var(--panel-2); }
.msg-line.unread { background: var(--accent-soft); }
.msg-line.note { background: var(--warn-soft); }
.msg-line.note .msg-meta { color: var(--warn); font-weight: 600; }
.msg-line.ours .msg-text { color: var(--muted); }
.msg-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-line; color: var(--text); }
.msg-text.one { -webkit-line-clamp: 1; }
.msg-meta { display: block; color: var(--faint); font-size: 11px; margin-top: 1px; }
.ok-text { color: var(--ok); font-weight: 600; }
.msg-block + .msg-block { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
.msg-block-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.msg-block-h .btn { margin-left: auto; }
.msg-add { all: unset; cursor: pointer; display: inline-block; margin-top: 2px; font-size: 11.5px; font-weight: 600; color: var(--warn); padding: 1px 7px; border-radius: 6px; border: 1px dashed color-mix(in srgb, var(--warn) 50%, var(--border)); }
.msg-add:hover { background: var(--warn-soft); }
.warn-text { color: var(--warn); }
.note-block .msg-full { background: var(--warn-soft); }
.note-pending { margin-top: 8px; opacity: .9; }
.note-pending .msg-full { border: 1px dashed color-mix(in srgb, var(--warn) 45%, var(--border)); }
.note-pending.bad .msg-full { background: var(--bad-soft); border-color: color-mix(in srgb, var(--bad) 45%, var(--border)); }
.note-pending.bad .msg-meta { color: var(--bad); }
.note-pending .msg-meta { margin-top: 4px; }
.note-compose { margin-top: 10px; }
.note-compose textarea { min-height: 60px; }
.note-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 6px; }
.msg-full { white-space: pre-wrap; word-break: break-word; font-size: 13px; background: var(--panel-2); border-radius: 9px; padding: 9px 11px; max-height: 220px; overflow: auto; }

/* ---------- Gişe (resmi satış) ---------- */
.seg-count:empty { display: none; }
.seg-count { display: inline-block; margin-left: 5px; padding: 0 6px; border-radius: 999px; background: var(--ok); color: #fff; font-size: 11px; line-height: 17px; }
a.badge-link { text-decoration: none; cursor: pointer; }
a.badge-link:hover { text-decoration: none; filter: brightness(.95); box-shadow: inset 0 0 0 1px currentColor; }

.gise-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  background: var(--ok-soft); border: 1px solid color-mix(in srgb, var(--ok) 35%, var(--border)); border-left: 4px solid var(--ok);
  border-radius: var(--radius); padding: 11px 15px; margin-bottom: 14px; box-shadow: var(--shadow);
}
.gise-banner.info { background: var(--info-soft); border-color: color-mix(in srgb, var(--info) 35%, var(--border)); border-left-color: var(--info); }
.gise-banner[hidden] { display: none; }
.gb-acts { display: flex; gap: 6px; align-items: center; flex-shrink: 0; }
.gb-close { color: var(--muted); }
/* Küçültülmüş bant: tek satır, nötr zemin, sadece soldaki ince renk şeridi ve nokta */
.gise-banner.mini { padding: 0; background: var(--panel); border-color: var(--border); border-left-width: 3px; box-shadow: none; margin-bottom: 10px; }
.gb-mini { all: unset; box-sizing: border-box; width: 100%; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 5px 12px; font-size: 12.5px; color: var(--muted); border-radius: var(--radius); }
.gb-mini:hover { background: var(--hover); color: var(--text); }
.gb-mini:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.gb-mini .badge { font-size: 10.5px; }
.gb-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); flex-shrink: 0; }
.gise-banner.mini.info .gb-dot { background: var(--info); }
.gb-chev { margin-left: auto; color: var(--faint); font-size: 12px; }
.gb-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gb-text > b { font-size: 14px; color: var(--ok); }
.gise-banner.info .gb-text > b { color: var(--info); }
.gb-text > span { color: var(--muted); font-size: 12.5px; }
.gb-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.gb-ev { display: inline-flex; align-items: center; border: 1px solid var(--border); background: var(--panel); border-radius: 999px; overflow: hidden; font-size: 12px; }
.gb-ev button { all: unset; cursor: pointer; padding: 3px 9px; font-weight: 600; display: inline-flex; gap: 6px; align-items: center; }
.gb-ev button:hover { background: var(--hover); }
.gb-ev a { padding: 3px 9px; background: var(--ok); color: #fff; font-weight: 700; }
.gb-ev a:hover { text-decoration: none; filter: brightness(1.08); }

.btn.gise-buy { background: var(--ok); }
.btn.gise-buy:hover { background: color-mix(in srgb, var(--ok) 85%, #000); text-decoration: none; }
.btn.big { padding: 10px 16px; font-size: 14px; border-radius: 10px; }
a.btn:hover { text-decoration: none; }

.gise-line { font-size: 12.5px; font-weight: 600; }
.gise-line.ok a { color: var(--ok); }
.gise-line.bad { color: var(--bad); }
.gise-line.info { color: var(--info); }

.gise-view { display: flex; flex-direction: column; gap: 16px; }
.gise-intro { color: var(--muted); font-size: 12.5px; }
.gise-sec h3 { margin: 0 0 8px; font-size: 14px; display: flex; align-items: center; gap: 8px; }
.gise-sec .sec-count { color: var(--faint); font-weight: 500; font-size: 12.5px; }
.gise-sec.ok .table-wrap { border-color: color-mix(in srgb, var(--ok) 40%, var(--border)); }
.gise-sec .table-wrap { max-height: none; min-height: 0; }
.gcat { white-space: nowrap; font-size: 12.5px; padding: 1px 0; }
.gise-info { max-width: 420px; }
.gise-info .clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 4px; }
.gise-actions { display: inline-flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }

.gise-card .gise-hero {
  display: flex; justify-content: space-between; align-items: center; gap: 14px;
  border-radius: 10px; padding: 12px 14px; background: var(--panel-2); border: 1px solid var(--border);
}
.gise-hero.ok { background: var(--ok-soft); border-color: color-mix(in srgb, var(--ok) 35%, var(--border)); }
.gise-hero.warn { background: var(--warn-soft); border-color: color-mix(in srgb, var(--warn) 35%, var(--border)); }
.gise-hero.bad { background: var(--bad-soft); border-color: color-mix(in srgb, var(--bad) 35%, var(--border)); }
.gise-hero.info { background: var(--info-soft); border-color: color-mix(in srgb, var(--info) 35%, var(--border)); }
.gise-hero.violet { background: var(--violet-soft); border-color: color-mix(in srgb, var(--violet) 35%, var(--border)); }
.gh-body { min-width: 0; }
.gh-title { font-size: 15px; font-weight: 700; }
.gise-hero.ok .gh-title { color: var(--ok); }
.gise-hero.warn .gh-title { color: var(--warn); }
.gise-hero.bad .gh-title { color: var(--bad); }
.gise-hero.info .gh-title { color: var(--info); }
.gise-hero.violet .gh-title { color: var(--violet); }
.gise-hero p { margin: 4px 0 0; font-size: 12.5px; color: var(--text); }
.gh-facts { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: 12px; color: var(--muted); }
.gise-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; font-size: 12.5px; color: var(--muted); }

/* ---------- Ek ödemelerde TL karşılığı ---------- */
.fx-try { color: var(--faint); font-size: 11.5px; font-weight: 500; white-space: nowrap; cursor: help; }
.kv .fx-try { font-size: 12px; }

/* ---------- Passolig katılımcıları (Buyer Info) ---------- */
/* Tablodaki rozet: sakin, küçük */
.badge.bi { padding: 1px 6px; font-size: 11px; font-weight: 600; vertical-align: 1px; cursor: help; }
.bi-card h4 .bi-sub { text-transform: none; letter-spacing: 0; font-weight: 500; }
.bi-card h4 .bi-status { text-transform: none; letter-spacing: 0; font-weight: 500; }
.bi-wrap { overflow-x: auto; }
.bi-table { margin-top: 4px; }
.bi-table thead th { position: static; } /* çekmece başlığının üstüne binmesin */
.bi-table td { vertical-align: top; }
.bi-table td:first-child, .bi-table th:first-child { width: 22px; }
.bi-copy {
  all: unset; cursor: pointer; display: inline; padding: 1px 4px; margin: -1px -4px; border-radius: 5px;
  color: var(--text); font-weight: 600; word-break: break-word;
}
.bi-copy.mono { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-weight: 600; letter-spacing: .02em; }
.bi-copy:hover { background: var(--accent-soft); color: var(--accent-text, var(--accent)); }
.bi-copy:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.bi-warn { margin: 2px 0 6px; padding: 6px 10px; border-radius: 8px; background: var(--warn-soft); color: var(--warn); font-size: 12.5px; font-weight: 600; }
.bi-empty { padding: 6px 10px; border-radius: 8px; background: var(--neutral-soft); color: var(--muted); font-size: 12.5px; }
.bi-lines { margin: 4px 0 0; padding-left: 18px; font-size: 12.5px; }
.bi-lines li { padding: 2px 0; }
.bi-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: 8px; }

/* ---------- Bildirim ---------- */
/* Bildirimler düğmelerin üstüne binmesin ("Gönder", "Not gönder", çekmecedeki linkler, sohbet başlığı düğmeleri):
   - Ana panel: sağ üstte, üst çubuğun hemen altında. --top-h üst çubuğun gerçek yüksekliğidir (güncelleme / oturum
     satırı açılınca uzar; panel-update.js yazar). Çekmece açıkken çekmecenin solunda, yer yoksa sol altta.
   - Mesajlar penceresi: sol altta, sohbet listesinin üstünde (messages.css).
   Kutunun kendisi tıklamayı engellemez; sadece bildirimler tıklanır. En yenisi en üstte (toast() başa ekler);
   kutuya sığmayan en eski bildirimler kaldırılır. */
.toasts {
  position: fixed; top: calc(var(--top-h, 56px) + 8px); right: 16px; z-index: 50;
  display: flex; flex-direction: column; gap: 8px; pointer-events: none;
  max-width: calc(100vw - 32px); max-height: calc(100vh - var(--top-h, 56px) - 24px);
}
#drawer.on ~ .toasts { right: calc(min(720px, 100vw) + 16px); max-width: calc(100vw - min(720px, 100vw) - 32px); }
@media (max-width: 1011px) {
  #drawer.on ~ .toasts { top: auto; bottom: 16px; left: 16px; right: auto; max-width: min(360px, calc(100vw - 32px)); max-height: calc(100vh - 32px); }
}
.toast {
  background: var(--text); color: var(--panel); border-radius: 12px; padding: 10px 14px; min-width: 260px; max-width: 360px;
  box-shadow: var(--shadow-lg); cursor: pointer; animation: tin .25s ease; pointer-events: auto;
}
.toast b { display: block; color: var(--accent); font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; }
@keyframes tin { from { transform: translateY(-8px); opacity: 0; } }
/* Bildirimdeki düğmeler (ör. çaldırdıktan sonra "✕ İptal et") */
.toast-acts { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.toast-btn { font: inherit; font-size: 12.5px; font-weight: 600; color: inherit; background: transparent; border: 1px solid currentColor; border-radius: 8px; padding: 3px 10px; cursor: pointer; }
.toast-btn:hover { background: color-mix(in srgb, currentColor 14%, transparent); }
.toast-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---------- Görev hatırlatması (ekip-alarm.js): sessiz kutucuk, alarm penceresi değil ---------- */
.ekrem-box { position: fixed; right: 16px; bottom: 16px; z-index: 60; display: flex; flex-direction: column; gap: 8px; width: min(340px, calc(100vw - 32px)); pointer-events: none; }
.ekrem { pointer-events: auto; background: var(--panel); color: var(--text); border: 1px solid var(--border); border-left: 4px solid var(--accent); border-radius: 12px; padding: 10px 12px; box-shadow: var(--shadow-lg); animation: tin .25s ease; display: flex; flex-direction: column; gap: 6px; }
.ekrem.urgent { border-left-color: var(--warn); }
.ekrem.late .ekrem-head b { color: var(--warn); }
.ekrem-head { display: flex; align-items: center; gap: 8px; }
.ekrem-head b { flex: 1; min-width: 0; font-size: 13px; color: var(--accent-text, var(--accent)); }
.ekrem-x { font: inherit; background: none; border: 0; color: var(--muted); cursor: pointer; border-radius: 6px; padding: 2px 6px; line-height: 1; }
.ekrem-x:hover { background: var(--hover); color: var(--text); }
.ekrem-text { font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.ekrem-meta { font-size: 12px; color: var(--muted); }
.ekrem-err { font-size: 12px; color: var(--bad); }
.ekrem-err:empty { display: none; }
.ekrem-acts { display: flex; flex-wrap: wrap; gap: 6px; }
.ekrem-ok { font-size: 12.5px; font-weight: 600; color: var(--ok); }
.ekrem button:focus-visible { outline: 2px solid var(--info); outline-offset: 2px; }
.ekip-app .ekrem-box { bottom: auto; top: calc(var(--top-h, 56px) + 8px); }
@media (prefers-reduced-motion: reduce) { .ekrem { animation: none; } }

@media (max-width: 1280px) {
  .kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* 860 px altında: marka + düğmeler üstte, bağlantı durumu kendi satırında; düğme grubu da kendi içinde kırılır. Yatay
   kaydırma olmaz, "Çıkış" kesilmez */
@media (max-width: 860px) {
  .topbar { gap: 8px 12px; padding: 10px 16px; }
  .topbar .brand { min-width: 0; }
  .topbar .status { order: 3; flex: 1 0 100%; }
  .topbar .actions { flex-wrap: wrap; min-width: 0; }
}
@media (max-width: 760px) {
  main { padding: 14px 16px 40px; }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .facts, .kv, .markets, .clubs { grid-template-columns: 1fr 1fr; }
  .kpis-4, .kart-grid { grid-template-columns: 1fr; }
  .ev-grid { grid-template-columns: 1fr; }
  .table-wrap { max-height: none; }
  .gise-banner, .gise-card .gise-hero { flex-direction: column; align-items: stretch; }
}
