/* =====================================================================
   CihazSorgula — Servis paneli, admin ve firma sorgu sayfası stilleri
   (style.css üzerine yüklenir; renk değişkenlerini oradan kullanır)
   ===================================================================== */

/* ---------- Uygulama iskeleti ---------- */
body.app { background: var(--surface); }
.app-side {
  position: fixed; inset: 0 auto 0 0; width: 252px; z-index: 30; background: var(--navy); color: #94a3b8;
  display: flex; flex-direction: column; padding: 18px 12px; overflow-y: auto;
}
.side-brand { display: flex; gap: 12px; align-items: center; padding: 4px 8px 22px; }
.side-brand b { display: block; color: #fff; font-size: .98rem; line-height: 1.25; }
.side-brand small { color: #64748b; font-size: .78rem; }
.side-logo {
  width: 40px; height: 40px; border-radius: 12px; flex: none; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--brand, var(--accent)), var(--accent-ink)); color: #fff; font-weight: 800; font-size: 1.1rem;
}
.side-logo-lg { width: 56px; height: 56px; font-size: 1.5rem; border-radius: 16px; margin: 0 auto 16px; }
.side-nav { display: grid; gap: 2px; }
.side-nav a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: #a9b6ca; font-weight: 600; font-size: .92rem; text-decoration: none; }
.side-nav a:hover { background: rgba(255,255,255,.05); color: #fff; }
.side-nav a.is-on { background: rgba(45,212,191,.14); color: var(--accent-2); }
.side-nav .ic { width: 19px; height: 19px; }
.side-count { margin-left: auto; font-style: normal; font-size: .72rem; background: var(--amber); color: var(--navy); padding: 1px 7px; border-radius: 99px; font-weight: 800; }
.side-public { margin-top: auto; display: flex; gap: 10px; align-items: center; padding: 12px; border-radius: 12px; border: 1px dashed rgba(148,163,184,.3); color: #cbd5e1; font-size: .86rem; text-decoration: none !important; }
.side-public:hover { border-color: var(--accent-2); }
.side-public small { display: block; color: #64748b; font-family: var(--mono); font-size: .7rem; word-break: break-all; }
.side-user { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.08); }
.side-user-info { flex: 1; display: flex; gap: 10px; align-items: center; color: #fff; text-decoration: none !important; min-width: 0; }
.side-user-info b { display: block; font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.side-user-info small { color: #64748b; font-size: .75rem; }
.avatar { width: 34px; height: 34px; border-radius: 50%; background: var(--navy-3); color: #fff; display: grid; place-items: center; font-weight: 700; flex: none; }
.side-logout { background: none; border: 0; color: #94a3b8; padding: 8px; border-radius: 9px; cursor: pointer; }
.side-logout:hover { background: rgba(255,255,255,.07); color: #fff; }
.side-backdrop { display: none; }

.app-main { margin-left: 252px; min-height: 100vh; display: flex; flex-direction: column; }
.app-top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 14px; padding: 14px 28px; background: rgba(255,255,255,.92); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); min-height: 68px; }
.app-top h1 { font-size: 1.3rem; margin: 0; letter-spacing: -.02em; }
.top-actions { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.side-toggle { display: none; background: none; border: 0; padding: 6px; cursor: pointer; color: var(--ink); }
.app-banner { padding: 10px 28px; font-weight: 600; font-size: .9rem; }
.banner-warn { background: #fffbeb; color: #92400e; border-bottom: 1px solid #fde68a; }
.banner-error { background: #fef2f2; color: #991b1b; border-bottom: 1px solid #fecaca; }
.banner-demo { background: #ecfeff; color: #155e75; border-bottom: 1px solid #a5f3fc; font-weight: 500; }
.banner-demo a { font-weight: 700; }
.app-content { padding: 24px 28px 48px; flex: 1; width: 100%; max-width: 1360px; }

/* ---------- Kartlar ve ızgaralar ---------- */
.pcard { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 20px 22px; box-shadow: var(--shadow-sm); min-width: 0; }
.pcard-flush { padding: 0; overflow: hidden; }
.pcard-flush .empty { padding: 40px 20px; }
.pcard-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.pcard-head h2 { font-size: 1.02rem; margin: 0; display: flex; align-items: center; gap: 8px; }
.pcard-head a { font-size: .86rem; font-weight: 600; }
.pcard-head.pad, .pad { padding: 18px 22px 0; }
.pcard-flush .pcard-head.pad { margin-bottom: 12px; }
.pcard-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.narrow-card { max-width: 760px; }
.stack { display: grid; gap: 18px; align-content: start; min-width: 0; }
.grid-main { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; }
.form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.grid-3 .field, .grid-2 .field { margin-bottom: 0; }
.pcard .grid-2, .pcard .grid-3 { margin-bottom: 14px; }
.step-dot { width: 24px; height: 24px; border-radius: 50%; background: var(--navy); color: #fff; font-size: .78rem; display: inline-grid; place-items: center; }
h2.mt { margin-top: 26px; }

.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 18px; }
.kpi { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; color: var(--ink); text-decoration: none !important; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); transition: border-color .15s; }
a.kpi:hover { border-color: var(--accent); }
.kpi small { color: var(--ink-3); font-weight: 600; font-size: .8rem; }
.kpi b { font-size: 1.9rem; letter-spacing: -.03em; line-height: 1.2; margin: 4px 0 2px; }
.kpi b.kpi-sm { font-size: 1.2rem; }
.kpi span { color: var(--ink-3); font-size: .8rem; }
.kpi-good b { color: var(--accent-ink); }

/* ---------- Tablolar ---------- */
.tbl-wrap { overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: .9rem; }
.tbl th { text-align: left; font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); font-weight: 700; padding: 10px 14px; border-bottom: 1px solid var(--line); background: #fafbfd; white-space: nowrap; }
.tbl td { padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.tbl tbody tr:last-child td { border-bottom: 0; }
.tbl tbody tr[data-href] { cursor: pointer; }
.tbl tbody tr[data-href]:hover td { background: #f7fafc; }
.tbl tfoot th { background: none; text-transform: none; letter-spacing: 0; font-size: .9rem; color: var(--ink); border-top: 1px solid var(--line); border-bottom: 0; }
.tbl a.mono { font-weight: 700; }
.tbl-compact td, .tbl-compact th { padding: 8px 10px; }
.pcard:not(.pcard-flush) .tbl-wrap { margin: 0 -22px; }
.pcard:not(.pcard-flush) .tbl th:first-child, .pcard:not(.pcard-flush) .tbl td:first-child { padding-left: 22px; }
tr.is-muted td { opacity: .55; }
.nowrap { white-space: nowrap; }
.block { display: block; }
.strong { font-weight: 700; color: var(--ink); }
.danger { color: #dc2626 !important; }
.right, .tbl .right { text-align: right; }

.prio { display: inline-block; font-size: .7rem; font-weight: 800; padding: 2px 7px; border-radius: 6px; margin-left: 6px; vertical-align: middle; text-transform: uppercase; letter-spacing: .04em; }
.prio-high { background: #ffedd5; color: #c2410c; }
.prio-urgent { background: #fee2e2; color: #b91c1c; }
.prio-low { background: #e0f2fe; color: #0369a1; }

.empty { text-align: center; color: var(--ink-3); padding: 28px 10px; display: grid; justify-items: center; gap: 6px; }
.empty p { margin: 0 0 8px; }
.ic-xl { width: 40px; height: 40px; color: #c0c8d6; }

/* ---------- Filtre ve sayfalama ---------- */
.filter-bar { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.search-input { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 8px; background: #fff; border: 1.5px solid var(--line); border-radius: 11px; padding: 0 12px; }
.search-input:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(20,184,166,.15); }
.search-input .ic { color: var(--ink-3); }
.search-input input { flex: 1; border: 0; outline: none; padding: 11px 0; font: 500 .95rem var(--font); background: none; color: var(--ink); }
select, .filter-bar select, .field select {
  font: 500 .95rem var(--font); padding: .7em 2.2em .7em .9em; border: 1.5px solid var(--line); border-radius: 11px; background: #fff;
  color: var(--ink); appearance: none; cursor: pointer; max-width: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b879c' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .7em center; background-size: 16px;
}
.field select { width: 100%; }
select:focus { outline: none; border-color: var(--accent); }
.pager { display: flex; gap: 12px; align-items: center; justify-content: flex-end; margin-top: 16px; font-size: .9rem; }
.pager .muted { margin-right: auto; }

/* ---------- Form ekleri ---------- */
.mono-input { font-family: var(--mono) !important; letter-spacing: .03em; }
.field small { font-size: .8rem; }
.field input[type="color"] { padding: 4px; height: 46px; cursor: pointer; }
.addon { display: flex; border: 1.5px solid var(--line); border-radius: 11px; overflow: hidden; background: #fff; }
.addon:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(20,184,166,.15); }
.addon input { border: 0 !important; box-shadow: none !important; flex: 1; min-width: 0; }
.addon em { font-style: normal; padding: 0 12px; display: flex; align-items: center; background: var(--surface); color: var(--ink-3); font-family: var(--mono); font-size: .82rem; white-space: nowrap; }
.check-inline { align-self: end; margin: 0 0 10px; }
.form-row { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.form-row .check { margin: 0 0 12px; }
fieldset.plain { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.plain:disabled input, fieldset.plain:disabled textarea { background: var(--surface); }
.pills-sm { margin-bottom: 14px; }
.lookup-msg { margin: 6px 0 0; padding: 10px 14px; border-radius: 10px; background: rgba(20,184,166,.08); color: var(--accent-ink); font-size: .88rem; font-weight: 600; }
form.inline { display: inline; }
.icon-btn { background: none; border: 0; padding: 4px; color: var(--ink-3); cursor: pointer; border-radius: 6px; }
.icon-btn:hover { background: #fee2e2; color: #b91c1c; }
.icon-btn .ic { width: 16px; height: 16px; }
.reveal-btn { background: var(--surface); border: 1px dashed var(--line); padding: 4px 10px; border-radius: 8px; cursor: pointer; font: 600 .85rem var(--font); color: var(--ink-2); }
.reveal-btn.mono { font-family: var(--mono); }
.credential { line-height: 1.9; }
.credential .mono { background: #fff; padding: 2px 8px; border-radius: 6px; user-select: all; }
.print-hint .mono { background: #fff; padding: 2px 8px; border-radius: 6px; }

/* ---------- Kayıt detayı ---------- */
.ticket-head { display: flex; justify-content: space-between; gap: 24px; margin-bottom: 18px; flex-wrap: wrap; }
.ticket-head h2 { font-size: 1.5rem; margin: 10px 0 2px; }
.ticket-head p { margin: 0; }
.kv { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; margin: 0; }
.kv .span-2 { grid-column: span 2; }
.kv dt { font-size: .76rem; color: var(--ink-3); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 2px; }
.kv dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.kv-inline { grid-template-columns: repeat(4, auto); gap: 6px 32px; align-self: center; }
.status-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.spill input { position: absolute; opacity: 0; pointer-events: none; }
.spill span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border: 1.5px solid var(--line); border-radius: 10px; font-weight: 600; font-size: .86rem; cursor: pointer; color: var(--ink-2); }
.spill span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--chip); }
.spill input:checked + span { border-color: var(--chip); background: color-mix(in srgb, var(--chip) 12%, #fff); color: var(--ink); }
.spill input:focus-visible + span { outline: 3px solid var(--accent-2); outline-offset: 2px; }
.item-form { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--line); }
.item-form input { flex: 1; min-width: 160px; font: 500 .92rem var(--font); padding: .65em .8em; border: 1.5px solid var(--line); border-radius: 10px; }
.item-form input:focus { outline: none; border-color: var(--accent); }
.item-form .w-sm { flex: 0 0 70px; min-width: 0; }
.item-form .w-md { flex: 0 0 130px; min-width: 0; }
.mini-title { font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); margin: 18px 0 8px; }
.mini-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.mini-list li > a, .mini-list li > span { display: grid; gap: 1px; padding: 10px 12px; margin: 0 -12px; border-radius: 10px; color: var(--ink); text-decoration: none !important; font-size: .9rem; }
.mini-list li > a:hover { background: var(--surface); }
.mini-list span { color: var(--ink-2); }
.mini-list small { color: var(--ink-3); font-size: .78rem; }
.timeline-panel { margin: 0 0 0 8px; }
.timeline-panel li { padding-bottom: 16px; }
.meter { height: 6px; background: var(--surface); border-radius: 99px; overflow: hidden; margin-top: 6px; }
.meter span { display: block; height: 100%; background: var(--accent); border-radius: inherit; }
.pcard p a .ic { display: inline; width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.msg p { color: var(--ink-2); }
.msg-foot { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; font-size: .88rem; }
.msg-foot a .ic { display: inline; width: 16px; height: 16px; vertical-align: -3px; }
.msg-foot form { margin-left: auto; }
.pcard.is-muted { opacity: .65; }

/* ---------- Giriş & mesaj sayfaları ---------- */
.auth-page { min-height: 100vh; display: grid; place-content: center; padding: 24px; background: var(--navy); background-image: radial-gradient(600px 400px at 80% 0%, rgba(45,212,191,.18), transparent 70%), radial-gradient(500px 400px at 0% 100%, rgba(59,130,246,.14), transparent 70%); }
.auth-card { width: min(420px, 100%); background: #fff; border-radius: 22px; padding: 34px 30px; box-shadow: var(--shadow-lg); text-align: center; }
.auth-card h1 { font-size: 1.45rem; margin-bottom: 4px; }
.auth-card form { text-align: left; margin-top: 22px; }
.auth-card .alert { text-align: left; }
.auth-card .big-code { color: var(--accent-ink); font-size: 3.4rem; }
.auth-foot { margin: 18px 0 0; font-size: .86rem; }
.auth-brand { text-align: center; color: #64748b; font-size: .8rem; margin-top: 18px; }

/* ---------- Firma sorgu sayfası ---------- */
.tenant-page { background: var(--surface); }
.tenant-head { background: #fff; border-bottom: 1px solid var(--line); }
.tenant-head-in { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 72px; }
.tenant-brand { display: flex; gap: 12px; align-items: center; }
.tenant-brand b { display: block; font-size: 1.1rem; }
.tenant-brand small { color: var(--ink-3); }
.tenant-hero { background: var(--navy); color: #fff; padding: 56px 0 64px; text-align: center; position: relative; overflow: hidden; }
.tenant-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(500px 260px at 50% 0%, color-mix(in srgb, var(--brand) 35%, transparent), transparent 70%); }
.tenant-hero .container { position: relative; }
.tenant-hero h1 { color: #fff; font-size: clamp(1.8rem, 4vw, 2.6rem); }
.tenant-hero p { color: #b9c6db; }
.tenant-hero .track-form { margin-top: 24px; background: #fff; padding: 18px; border-radius: 20px; box-shadow: var(--shadow-lg); text-align: left; }
.tenant-page .btn-accent { background: var(--brand); color: #fff; }
.tenant-foot { padding: 28px 0 36px; color: var(--ink-3); font-size: .86rem; }
.tenant-foot-in { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* ---------- Duyarlı ---------- */
@media (max-width: 1180px) {
  .grid-main, .form-layout { grid-template-columns: 1fr; }
  .kv-inline { grid-template-columns: repeat(2, auto); }
}
@media (max-width: 960px) {
  .app-side { transform: translateX(-100%); transition: transform .2s; box-shadow: var(--shadow-lg); }
  body.side-open .app-side { transform: none; }
  body.side-open .side-backdrop { display: block; position: fixed; inset: 0; z-index: 25; background: rgba(10,22,40,.45); }
  .app-main { margin-left: 0; }
  .side-toggle { display: block; }
  .app-top { padding: 12px 16px; flex-wrap: wrap; }
  .app-top h1 { font-size: 1.1rem; }
  .app-content { padding: 16px 16px 40px; }
  .app-banner { padding: 10px 16px; }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
  .top-actions { width: 100%; }
  .top-actions .btn { flex: 1; }
  .kpi b { font-size: 1.5rem; }
  .grid-3, .kv { grid-template-columns: 1fr; }
  .kv .span-2 { grid-column: auto; }
  .kv-inline { grid-template-columns: 1fr 1fr; }
  .pcard { padding: 16px; }
  .pcard:not(.pcard-flush) .tbl-wrap { margin: 0 -16px; }
  .item-form .w-sm, .item-form .w-md { flex: 1 1 90px; }
  .tenant-head .btn { padding: .6em; font-size: 0; gap: 0; }
  .tenant-head .btn .ic { width: 20px; height: 20px; }
}
.dl-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 4px 0 14px; }

/* SMS ayarları */
.sms-rules { display: grid; gap: 10px; margin: 12px 0; }
.sms-rule { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fff; opacity: .72; transition: opacity .15s, border-color .15s; }
.sms-rule.is-on { opacity: 1; border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.sms-rule-head { margin-bottom: 6px; }
.sms-rule textarea { width: 100%; font: inherit; font-size: .9rem; line-height: 1.45; padding: 9px 12px; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); resize: vertical; }
.sms-rule textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px rgba(20,184,166,.15); }
.sms-preview, .sms-count { display: block; margin-top: 4px; font-size: .78rem; }
code.ph { font-size: .78rem; padding: 1px 6px; border-radius: 6px; background: var(--surface); cursor: help; }
.sms-log li > span { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.sms-log small { flex-basis: 100%; }
/* Paket ve ödeme */
.plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.plan-opt { position: relative; display: block; border: 1.5px solid var(--line); border-radius: 14px; padding: 16px; cursor: pointer; background: #fff; }
.plan-opt input { position: absolute; opacity: 0; }
.plan-opt:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 15%, transparent); }
.plan-opt b { display: block; font-size: 1.05rem; }
.plan-opt .price { font-size: 1.35rem; font-weight: 800; margin: 6px 0 2px; }
.plan-opt small { color: var(--ink-3); display: block; }
.plan-opt .now { position: absolute; top: 10px; right: 10px; font-size: .7rem; font-weight: 700; color: var(--accent-ink); }
.cycle-toggle { display: inline-flex; gap: 4px; padding: 4px; background: var(--surface); border-radius: 12px; margin-bottom: 14px; }
.cycle-toggle label { padding: 8px 14px; border-radius: 9px; cursor: pointer; font-weight: 600; font-size: .9rem; }
.cycle-toggle input { display: none; }
.cycle-toggle label:has(input:checked) { background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.pay-summary { margin-top: 14px; padding: 14px 16px; border-radius: 12px; background: var(--surface); }
.pay-summary .total { font-size: 1.3rem; font-weight: 800; }
@media (max-width: 900px) { .plan-grid { grid-template-columns: 1fr; } }
.auth-forgot { text-align: center; margin: 14px 0 0; font-size: .9rem; }
/* Servis talebi (firma sayfası) */
.tenant-hero-sm { padding: 40px 0 46px; }
.tenant-hero-sm p { max-width: 560px; margin: 8px auto 0; }
.req-form { margin-top: -10px; }
.req-form .field small.danger { display: block; margin-top: 4px; font-size: .8rem; }
.req-form .check { margin: 6px 0; }
.req-done { text-align: center; padding: 40px 24px; }
.req-check { display: inline-flex; width: 60px; height: 60px; border-radius: 50%; align-items: center; justify-content: center; background: color-mix(in srgb, var(--brand, var(--accent)) 15%, #fff); color: var(--brand, var(--accent)); }
.req-check .ic { width: 30px; height: 30px; }
.req-cta { display: flex; align-items: center; gap: 14px; padding: 18px 20px; margin-bottom: 18px; border-radius: 16px; background: #fff; border: 1.5px dashed color-mix(in srgb, var(--brand, var(--accent)) 50%, var(--line)); color: var(--ink); text-decoration: none; }
.req-cta > .ic { width: 28px; height: 28px; color: var(--brand, var(--accent)); flex: none; }
.req-cta span small { display: block; color: var(--ink-3); }
.req-cta-go { margin-left: auto; font-weight: 700; color: var(--brand, var(--accent)); white-space: nowrap; }
@media (max-width: 640px) { .req-cta { flex-wrap: wrap; } .req-cta-go { margin-left: 42px; } }
.req-form > small.danger { display: block; margin: 2px 0 6px; font-size: .8rem; }
/* Başlangıç rehberi */
.onboard { margin-bottom: 20px; border-color: color-mix(in srgb, var(--accent) 40%, var(--line)); }
.onboard .pcard-head h2 small { font-weight: 600; margin-left: 6px; }
.onboard .meter { margin: 4px 0 14px; }
.onboard-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.onboard-list li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--surface); }
.onboard-list li > div { flex: 1; min-width: 0; }
.onboard-list b { display: block; font-size: .95rem; }
.onboard-list small { color: var(--ink-3); font-size: .84rem; }
.onboard-list .is-done b { text-decoration: line-through; color: var(--ink-3); }
.ob-dot { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--line); display: inline-flex; align-items: center; justify-content: center; flex: none; background: #fff; }
.onboard-list .is-done .ob-dot { background: var(--accent); border-color: var(--accent); color: #fff; }
.ob-dot .ic { width: 15px; height: 15px; }
/* Raporlar */
.report-filter { flex-wrap: wrap; align-items: center; }
.report-custom { display: inline-flex; gap: 6px; align-items: center; margin-left: auto; }
.report-custom input[type=date] { height: 36px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 9px; font: inherit; font-size: .88rem; background: #fff; }
.report-label { margin: -6px 0 14px; }
.report-grid { margin: 20px 0; gap: 20px; }
.rchart { position: relative; display: flex; gap: 8px; height: 220px; padding-top: 8px; }
.rchart-grid { position: relative; font-size: .72rem; color: var(--ink-3); min-width: 54px; }
.rchart-grid span { position: absolute; right: 0; transform: translateY(-50%); white-space: nowrap; line-height: 1; }
.rchart-bars { flex: 1; display: flex; align-items: stretch; gap: 2px; border-bottom: 1px solid var(--line); background: linear-gradient(to bottom, var(--line) 1px, transparent 1px) 0 0 / 100% 50%; padding-bottom: 0; position: relative; }
.rbar { flex: 1; min-width: 3px; display: flex; flex-direction: column; justify-content: flex-end; position: relative; cursor: default; outline: none; padding-bottom: 0; }
.rbar span { display: block; background: #0d9488; border-radius: 4px 4px 0 0; transition: filter .15s; }
.rbar em { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 4px; font-style: normal; font-size: .68rem; color: var(--ink-3); white-space: nowrap; }
.rbar:hover span, .rbar:focus span { filter: brightness(.85); }
.rbar:hover::after, .rbar:focus::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: var(--navy); color: #fff; font-size: .76rem; font-weight: 600; padding: 5px 9px; border-radius: 7px; white-space: nowrap; z-index: 2; pointer-events: none; }
.rbar:hover::before, .rbar:focus::before { content: ""; position: absolute; inset: 0 -1px; background: rgba(15,23,42,.04); pointer-events: none; }
.rchart { margin-bottom: 22px; }
.hbar { display: grid; grid-template-columns: minmax(90px, 34%) 1fr auto; gap: 10px; align-items: center; margin: 8px 0; font-size: .9rem; }
.hbar-label { color: var(--ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hbar-track { height: 10px; background: var(--surface); border-radius: 99px; overflow: hidden; }
.hbar-track i { display: block; height: 100%; background: #0d9488; border-radius: 99px; }
.hbar b { min-width: 34px; text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .report-custom { margin-left: 0; width: 100%; } .report-custom input[type=date] { flex: 1; min-width: 0; padding: 0 6px; } .report-grid { grid-template-columns: 1fr; } .rbar { min-width: 0; } }
/* Fotoğraflar */
.photo-drop { position: relative; display: flex; align-items: center; gap: 12px; padding: 16px; border: 1.5px dashed var(--line); border-radius: 12px; background: var(--surface); cursor: pointer; transition: border-color .15s, background .15s; }
.photo-drop:hover, .photo-drop:focus-within { border-color: var(--accent); background: #f0fdfa; }
.photo-drop input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.photo-drop svg { width: 28px; height: 28px; flex: none; color: #0d9488; }
.photo-drop span { display: flex; flex-direction: column; gap: 2px; }
.photo-drop small { color: var(--ink-3); font-size: .82rem; }
.photo-drop-sm { padding: 10px 14px; flex: 1; }
.photo-upload { display: flex; gap: 10px; align-items: center; margin: 12px 0 6px; }
.photo-upload.is-busy, form.is-busy .photo-drop { opacity: .6; pointer-events: none; }
.photo-previews { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.photo-previews img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.photo-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.photo-item { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.photo-thumb { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--surface); }
.photo-thumb { overflow: hidden; }
.photo-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-badge { z-index: 1; }
.photo-badge { position: absolute; left: 6px; bottom: 6px; background: rgba(10,22,40,.82); color: #fff; font-size: .7rem; font-weight: 600; padding: 3px 7px; border-radius: 6px; }
.photo-meta { display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; }
.photo-actions { display: flex; justify-content: space-between; align-items: center; gap: 4px; }
.btn-xs { padding: 4px 8px; font-size: .78rem; min-height: 0; height: auto; }
.lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; }
.lightbox::backdrop { background: rgba(10,22,40,.9); }
.lightbox[open] { display: flex; align-items: center; justify-content: center; }
.lightbox figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: calc(100vw - 120px); }
.lightbox img { max-width: 100%; max-height: calc(100vh - 90px); border-radius: 10px; background: #fff; }
.lightbox figcaption { color: #e2e8f0; font-size: .9rem; white-space: pre; }
.lb-close, .lb-nav { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; border-radius: 99px; width: 44px; height: 44px; cursor: pointer; font-size: 1.8rem; line-height: 1; display: grid; place-items: center; }
.lb-close { top: 16px; right: 16px; } .lb-close svg { width: 20px; height: 20px; }
.lb-prev { left: 16px; top: 50%; transform: translateY(-50%); } .lb-next { right: 16px; top: 50%; transform: translateY(-50%); }
.lb-close:hover, .lb-nav:hover { background: rgba(255,255,255,.25); }
@media (max-width: 760px) { .photo-grid { grid-template-columns: repeat(2, 1fr); } .lightbox figure { max-width: calc(100vw - 24px); } .lb-nav { top: auto; bottom: 16px; transform: none; } }
.photo-upload [hidden] { display: none !important; }
.photo-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; flex: 1; }
.photo-upload .photo-pick { margin: 0; }
[data-photo-group].is-busy .photo-drop { opacity: .6; pointer-events: none; }
.photo-prev { position: relative; display: inline-block; }
.photo-prev button { position: absolute; top: -6px; right: -6px; width: 22px; height: 22px; border-radius: 99px; border: 0; background: var(--navy, #0a1628); color: #fff; font-size: 14px; line-height: 1; cursor: pointer; }
@media (max-width: 420px) { .photo-pick .photo-drop small { display: none; } .photo-pick .photo-drop { padding: 10px; gap: 8px; } }
/* Garanti */
.alert-warning { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; font-size: .92rem; }
.alert-warning a { color: inherit; }
dd.ok { color: #15803d; font-weight: 700; }
.warranty-form { display: flex; gap: 8px; margin: 10px 0 6px; }
.warranty-form input[type=date] { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 9px; font: inherit; font-size: .88rem; }
.link-btn { background: none; border: 0; padding: 0; color: var(--ink-3); text-decoration: underline; cursor: pointer; font: inherit; }
.link-btn.small { font-size: .82rem; }
.warranty-box { margin-top: 12px; padding: 12px 14px; border: 1.5px solid #fde68a; background: #fffbeb; border-radius: 12px; }
.warranty-box > b { display: block; margin-bottom: 6px; color: #92400e; }
.warranty-box label { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; font-size: .9rem; cursor: pointer; }
.warranty-box label small { display: block; color: var(--ink-3); }
.field-narrow input { max-width: 160px; }
/* Fiyat onayı */
.approve-card h1 { font-size: 1.4rem; margin: 10px 0 6px; }
.approve-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.approve-head b { display: block; font-size: 1.1rem; }
.approve-kv { margin: 16px 0; }
.approve-total { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 16px 0; padding: 16px 18px; border-radius: 12px; background: var(--surface); }
.approve-total span { font-weight: 600; } .approve-total small { display: block; color: var(--ink-3); font-weight: 400; }
.approve-total b { font-size: 1.6rem; white-space: nowrap; }
.approve-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 6px 0 12px; }
.approve-actions .btn { justify-content: center; }
.approve-x { background: #fef2f2 !important; color: #b91c1c !important; }
@media (max-width: 520px) { .approve-actions { grid-template-columns: 1fr; } }
.approval-card { border: 1.5px solid #fde68a; background: #fffdf5; }
.approval-card.is-approved { border-color: #bbf7d0; background: #f7fef9; }
.approval-card.is-rejected { border-color: #fecaca; background: #fffafa; }
.approval-link { display: flex; gap: 8px; margin: 10px 0; }
.approval-link input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 9px; font: inherit; font-size: .82rem; background: #fff; }
.approval-manual { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.sms-hint { display: block; margin-top: 6px; padding: 8px 10px; border-radius: 8px; background: #fffbeb; color: #92400e; font-size: .82rem; }
/* Parça stoğu */
.kpis-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 760px) { .kpis-3 { grid-template-columns: repeat(2, 1fr); } }
.kpi b.danger, b.danger, td .danger, .danger { color: #b91c1c; }
td.ok { color: #15803d; }
.filter-tabs { display: inline-flex; gap: 4px; margin-left: auto; flex-wrap: wrap; }
.part-pick { position: relative; margin-bottom: 10px; }
.part-pick input[type=search] { width: 100%; height: 40px; padding: 0 12px 0 36px; border: 1.5px solid var(--line); border-radius: 10px; font: inherit; background: #fff; }
.part-pick > svg { position: absolute; left: 11px; top: 11px; width: 18px; height: 18px; color: var(--ink-3); }
.part-results { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 20; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px -12px rgba(15,23,42,.25); max-height: 320px; overflow: auto; padding: 4px; }
.part-results button { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; width: 100%; text-align: left; padding: 8px 10px; border: 0; background: none; border-radius: 8px; cursor: pointer; font: inherit; }
.part-results button:hover, .part-results button:focus { background: var(--surface); outline: none; }
.part-results small { color: var(--ink-3); font-size: .8rem; }
.part-results .out { color: #b91c1c; }
.part-results .empty-row { padding: 10px; color: var(--ink-3); font-size: .88rem; }
.part-chosen { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 9px; background: #f0fdfa; color: #115e59; font-size: .86rem; margin-bottom: 8px; }
.part-chosen button { margin-left: auto; }
.stock-badge { display: inline-block; margin-left: 6px; font-size: .7rem; font-weight: 700; padding: 1px 6px; border-radius: 5px; background: #f0fdfa; color: #0f766e; vertical-align: middle; }
.report-profit { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line); } .ok-text { color: #15803d; }
.part-chosen[hidden], .part-results[hidden] { display: none; }
/* Tahsilat */
.pay-card.is-due { border: 1.5px solid #fecaca; background: #fffafa; }
.pay-sum { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 0 0 10px; }
.pay-sum div { background: var(--surface); border-radius: 10px; padding: 8px 10px; min-width: 0; }
.pay-sum dt { font-size: .72rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: .04em; }
.pay-sum dd { margin: 2px 0 0; font-weight: 700; white-space: nowrap; font-size: .95rem; }
dd.ok, .ok { color: #15803d; }
.pay-list li { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.pay-list li small { display: block; }
.pay-form { display: grid; gap: 8px; margin-top: 10px; }
.pay-row { display: flex; gap: 8px; align-items: center; }
.pay-form input, .pay-form select { height: 36px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 9px; font: inherit; font-size: .9rem; min-width: 0; background: #fff; }
.pay-row input { flex: 1; } .pay-form > input { width: 100%; }
.collect-box { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 4px 0 12px; padding: 10px 12px; border-radius: 10px; background: #f0fdf4; border: 1px solid #bbf7d0; }
.collect-box[hidden] { display: none; }
.collect-box select { height: 34px; border: 1.5px solid var(--line); border-radius: 8px; font: inherit; font-size: .88rem; padding: 0 8px; }
.cash-methods { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 18px; }
@media (max-width: 760px) { .cash-methods { grid-template-columns: repeat(2, 1fr); } }
.pay-card .pay-sum { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.pay-card .pay-sum div { padding: 7px 8px; }
.pay-card .pay-sum dt { font-size: .64rem; letter-spacing: .02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pay-card .pay-sum dd { font-size: .88rem; }
.pay-row > * { min-width: 0; }
.pay-row input { flex: 1 1 auto; width: 0; }
.pay-row select { flex: 0 1 46%; }
.pay-line { display: block; font-size: .88rem; min-width: 0; }
.pay-line strong { font-weight: 700; }
.pay-list li { padding: 8px 0; }
.mini-list.pay-list li > .pay-line { display: block; padding: 0; margin: 0; }
.mini-list.pay-list li > .pay-line small { display: block; margin-top: 2px; }
.pay-row .check { margin: 0; display: inline-flex; gap: 6px; align-items: center; }
.pay-row .check input { width: 16px; height: 16px; flex: none; }
/* Memnuniyet anketi */
.fb-card { text-align: center; }
.fb-card h1 { font-size: 1.4rem; margin: 4px 0 8px; }
.fb-card .field { text-align: left; }
.fb-stars { display: inline-flex; flex-direction: row-reverse; gap: 4px; border: 0; padding: 0; margin: 14px 0 4px; }
.fb-stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fb-stars label { font-size: 2.8rem; line-height: 1; color: #cbd5e1; cursor: pointer; padding: 4px; transition: color .1s, transform .1s; }
.fb-stars label:hover, .fb-stars label:hover ~ label, .fb-stars input:checked ~ label { color: #f59e0b; }
.fb-stars input:focus-visible + label { outline: 2px solid var(--brand, var(--accent)); border-radius: 8px; }
.fb-stars label:active { transform: scale(.92); }
.fb-hint { min-height: 1.2em; margin: 0 0 12px; }
.fb-stars-static { font-size: 1.8rem; color: #f59e0b; letter-spacing: 2px; margin: 6px 0 10px; }
.fb-stars-static span, .stars span { color: #cbd5e1; }
.stars { color: #f59e0b; letter-spacing: 1px; white-space: nowrap; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fb-dist { display: grid; gap: 4px; margin: 8px 0 12px; }
.fb-quote { margin: 8px 0; padding: 8px 10px; border-left: 3px solid var(--line); background: var(--surface); border-radius: 0 8px 8px 0; font-size: .88rem; }
.fb-quote small { display: block; color: var(--ink-3); margin-top: 2px; }
.fb-avg { font-size: 1rem; margin: 0 0 6px; } .fb-avg b { font-size: 2rem; } .report-grid-single { margin: 20px 0; }
.reminder-note { display: flex; gap: 6px; align-items: center; margin: 0; padding: 0 4px; } .reminder-note svg { width: 16px; height: 16px; } .field-inline { margin: 6px 0; } .field-inline input { max-width: 200px; }
/* Müşteri portalı */
.tenant-head-actions { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.portal-login { text-align: center; max-width: 460px; margin: 0 auto; }
.portal-login h1 { font-size: 1.5rem; margin: 10px 0 6px; }
.portal-login .field { text-align: left; }
.otp-input { font-family: "JetBrains Mono", monospace; font-size: 1.6rem !important; letter-spacing: .5em; text-align: center; }
.portal-hello h1 { font-size: 1.6rem; margin: 0; } .portal-hello { margin-bottom: 8px; }
.portal-sub { font-size: 1rem; margin: 22px 0 10px; color: var(--ink-2); }
.portal-item { padding: 14px 16px; margin-bottom: 10px; }
.portal-item-main { display: flex; justify-content: space-between; gap: 12px; align-items: center; color: inherit; text-decoration: none !important; }
.portal-item-main b { display: block; } .portal-item-main small { display: block; margin-top: 2px; }
.portal-item-main:hover b { color: var(--brand, var(--accent)); }
.portal-meta { display: flex; gap: 6px 16px; flex-wrap: wrap; margin-top: 8px; font-size: .86rem; color: var(--ink-2); }
.portal-meta svg { width: 14px; height: 14px; vertical-align: -2px; }
.portal-flag { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; padding: 8px 10px; border-radius: 10px; font-size: .88rem; }
.portal-flag.is-warn { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.portal-note { margin: 8px 0 0; padding: 6px 10px; background: var(--surface); border-radius: 8px; }
.portal-req b { display: block; } .portal-req small { display: block; }
@media (max-width: 520px) { .tenant-head-actions .btn-outline { display: none; } }
.bulk-preview { margin: 12px 0; padding: 12px 14px; border-radius: 12px; background: #f0fdfa; border: 1px solid #99f6e4; }
.bulk-preview > p:first-child { margin: 0 0 8px; }
.bulk-history li > span { padding: 10px 22px !important; margin: 0 !important; }
.bulk-history small { display: block; }

/* ---------- Aşama 19: şube seçici ---------- */
.side-branch { display: flex; align-items: center; gap: 10px; margin: -8px 0 14px; padding: 9px 12px; border-radius: 12px; background: rgba(255,255,255,.05); color: #cbd5e1; }
.side-branch > .ic { width: 18px; height: 18px; flex: none; color: var(--accent-2); }
.side-branch label, .side-branch > span { flex: 1; min-width: 0; display: grid; gap: 1px; margin: 0; }
.side-branch small { color: #64748b; font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; }
.side-branch b { color: #fff; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.side-branch select { width: 100%; background: transparent; color: #fff; border: 0; padding: 0; font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; }
.side-branch select option { color: #0f172a; }
.side-branch select:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; border-radius: 4px; }
.branch-chip { display: inline-flex; align-items: center; gap: 4px; font-size: .74rem; font-weight: 600; color: var(--ink-3); }
.branch-chip .ic { width: 13px; height: 13px; }
.branch-orphans { display: inline-flex; gap: 6px; align-items: center; margin-left: 6px; }
.branch-orphans select { padding: 4px 8px; border-radius: 8px; }
.select-sm { padding: 4px 8px; border-radius: 8px; font-size: .84rem; max-width: 160px; }
.branch-fixed { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.branch-fixed .ic { width: 16px; height: 16px; color: var(--accent-ink); }

/* ---------- Aşama 20: şube stoğu ---------- */
.part-results .part-others { grid-column: 1 / -1; color: var(--accent-ink); }
.stock-branches { display: block; font-size: .76rem; color: var(--ink-3); font-weight: 500; margin-top: 2px; white-space: normal; }
.stock-branches b { color: var(--ink-2); font-weight: 700; }
.branch-stock-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.branch-stock-list li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 10px; background: var(--surface); }
.branch-stock-list li.is-view { box-shadow: inset 0 0 0 1.5px var(--accent); }
.branch-stock-list b.low { color: #b91c1c; }
.transfer-form { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.transfer-form h3 { margin: 0 0 8px; }
.count-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }
.count-form .field { grid-column: 1 / -1; margin: 0; }
.warranty-form input:not([type=date]):not([type=hidden]), .count-form > input { flex: 1; min-width: 0; height: 36px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 9px; font: inherit; font-size: .88rem; background: #fff; }
.count-form { margin: 10px 0 6px; }
.stock-branches > span { display: block; white-space: nowrap; }

/* ---------- Aşama 22: hazır mesajlar + WhatsApp ---------- */
.msg-tpls { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.msg-tpl { font: inherit; font-size: .78rem; font-weight: 600; padding: 4px 10px; border-radius: 99px; border: 1px solid var(--line); background: #fff; color: var(--ink-2); cursor: pointer; }
.msg-tpl:hover, .msg-tpl.on { border-color: var(--accent); color: var(--accent-ink); background: rgba(20,184,166,.08); }
.msg-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.btn-wa { background: #25d366; border-color: #25d366; color: #fff !important; justify-content: center; }
.btn-wa:hover { background: #1ebe5b; border-color: #1ebe5b; }
.btn-wa .ic { width: 17px; height: 17px; }

/* ---------- Aşama 23: müşteri imzası ---------- */
.sig-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sig-slot { display: flex; flex-direction: column; gap: 6px; padding: 12px; border: 1px dashed var(--line); border-radius: 12px; min-height: 120px; }
.sig-slot.is-done { border-style: solid; }
.sig-slot.is-due { border-color: var(--amber); background: rgba(251,191,36,.08); }
.sig-label { font-weight: 700; color: var(--ink-2); }
.sig-slot img { width: 100%; max-height: 80px; object-fit: contain; background: #fff; border-radius: 8px; }
.sig-empty { flex: 1; display: grid; place-items: center; color: var(--ink-3); font-size: .86rem; }
.sig-actions { display: flex; align-items: center; gap: 10px; margin-top: auto; }
.sign-dialog { border: 0; border-radius: 18px; padding: 0; width: min(720px, calc(100vw - 24px)); max-width: none; box-shadow: var(--shadow-lg); }
.sign-dialog::backdrop { background: rgba(10,22,40,.7); }
.sign-dialog form { display: grid; gap: 10px; padding: 16px 18px 18px; }
.sign-dialog header { display: flex; justify-content: space-between; align-items: center; font-size: 1.05rem; }
.sign-dialog p { margin: 0; }
.sign-pad { position: relative; height: min(42vh, 260px); border: 1.5px solid var(--line); border-radius: 12px; background: #fff; touch-action: none; }
.sign-pad canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: crosshair; z-index: 1; }
.sign-line { position: absolute; left: 6%; right: 6%; bottom: 26%; border-top: 1px dashed #cbd5e1; font-size: .72rem; color: #94a3b8; padding-top: 2px; pointer-events: none; }
.sign-foot { display: flex; justify-content: space-between; gap: 10px; }
.sign-foot .btn-primary { min-width: 140px; }
@media (max-width: 640px) { .sig-grid { grid-template-columns: 1fr; } .sign-dialog { width: 100vw; height: 100dvh; max-height: none; border-radius: 0; } .sign-dialog form { height: 100%; grid-template-rows: auto auto 1fr auto auto; } .sign-pad { height: auto; } }

/* ---------- Aşama 24: servis imzası ---------- */
.sig-row-title { margin: 14px 0 8px; } .sig-row-title:first-of-type { margin-top: 2px; }
.sig-tip { margin: 12px 0 0; }
.my-sig { display: grid; place-items: center; min-height: 110px; border: 1px dashed var(--line); border-radius: 12px; margin: 10px 0 12px; background: #fff; }
.my-sig img { max-width: 100%; max-height: 110px; }

/* ---------- Aşama 25: gider ---------- */
.cash-methods { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: -6px 0 16px; }
#giderler { margin-top: 18px; scroll-margin-top: 80px; }
.hbar-neg .hbar-track i { background: #f87171; }
.net-line { font-size: 1rem; margin: 10px 0 0; }

/* ---------- Aşama 26: hızlı satış ---------- */
.pos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 440px); gap: 18px; align-items: start; }
.pos-scan { display: flex; align-items: center; gap: 10px; border: 2px solid var(--accent); border-radius: 14px; padding: 6px 8px 6px 14px; background: #fff; }
.pos-scan > .ic { width: 22px; height: 22px; color: var(--accent-ink); flex: none; }
.pos-scan input { flex: 1; min-width: 0; border: 0; outline: 0; font: inherit; font-size: 1.05rem; padding: 10px 0; background: transparent; }
.pos-video { margin-top: 10px; display: grid; gap: 8px; } .pos-video video { width: 100%; max-height: 260px; border-radius: 12px; background: #000; object-fit: cover; }
.pos-results { display: grid; gap: 4px; margin-top: 10px; max-height: 52vh; overflow: auto; }
.pos-results button { display: flex; justify-content: space-between; gap: 12px; text-align: left; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font: inherit; cursor: pointer; }
.pos-results button:hover, .pos-results button:focus { border-color: var(--accent); background: rgba(20,184,166,.06); outline: none; }
.pos-r-name, .pos-r-side { display: grid; gap: 1px; } .pos-r-side { text-align: right; white-space: nowrap; }
.pos-noresult { padding: 8px 2px; }
.pos-hint { margin: 10px 0 0; }
.pos-free { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.pos-free summary { cursor: pointer; font-weight: 700; display: flex; align-items: center; gap: 8px; color: var(--ink-2); }
.pos-free summary .ic { width: 18px; height: 18px; }
.pos-free-row { display: grid; grid-template-columns: 1fr 130px 80px auto; gap: 8px; margin-top: 10px; }
.pos-free-row input, .pos-free-row select, .pos-disc input, .pos-qty input, .pos-price { height: 40px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 10px; font: inherit; background: #fff; min-width: 0; }
.pos-right { position: sticky; top: 76px; }
.pos-right .pcard-head h2 { display: flex; align-items: center; gap: 8px; } .pos-right .pcard-head h2 .ic { width: 20px; height: 20px; }
.pos-cart { display: grid; gap: 6px; max-height: 40vh; overflow: auto; margin: 0 -4px; padding: 0 4px; }
.pos-empty { padding: 18px 0; text-align: center; }
.pos-line { display: grid; grid-template-columns: 1fr auto 86px 82px 26px; gap: 6px; align-items: center; padding: 8px; border-radius: 10px; background: var(--surface); transition: background .3s; }
.pos-line.flash { background: rgba(20,184,166,.22); }
.pos-line-name { min-width: 0; display: grid; } .pos-line-name b { font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pos-line-name small { font-size: .74rem; }
.pos-qty { display: flex; align-items: center; } .pos-qty button { width: 28px; height: 34px; border: 1.5px solid var(--line); background: #fff; font: 700 1rem/1 inherit; cursor: pointer; }
.pos-qty button:first-child { border-radius: 8px 0 0 8px; } .pos-qty button:last-child { border-radius: 0 8px 8px 0; }
.pos-qty input { width: 42px; height: 34px; border-radius: 0; border-left: 0; border-right: 0; text-align: center; padding: 0 2px; }
.pos-price { height: 34px; text-align: right; width: 100%; }
.pos-line-total { text-align: right; font-size: .9rem; white-space: nowrap; }
.pos-del { border: 0; background: none; font-size: 1.3rem; line-height: 1; color: var(--ink-3); cursor: pointer; } .pos-del:hover { color: #dc2626; }
.pos-totals { display: grid; gap: 6px; border-top: 1px solid var(--line); margin-top: 12px; padding-top: 12px; }
.pos-totals > div { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.pos-disc input { width: 120px; text-align: right; height: 36px; }
.pos-grand { font-size: 1.35rem; font-weight: 800; } .pos-grand b { font-size: 1.6rem; }
.pos-pay { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 12px 0; }
.pos-method input { position: absolute; opacity: 0; }
.pos-method span { display: block; text-align: center; padding: 10px 4px; border: 1.5px solid var(--line); border-radius: 10px; font-weight: 700; cursor: pointer; background: #fff; }
.pos-method input:checked + span { border-color: var(--navy); background: var(--navy); color: #fff; }
.pos-method input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.pos-cash { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; align-items: end; }
.pos-cash .field { margin: 0; } .pos-change { text-align: right; } .pos-change span { display: block; font-size: .78rem; color: var(--ink-3); } .pos-change b { font-size: 1.25rem; }
.pos-quick { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; } .pos-quick button { font: inherit; font-size: .8rem; font-weight: 700; padding: 5px 10px; border-radius: 99px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.pos-cash[hidden] { display: none; }
.pos-customer { margin: 12px 0; } .pos-customer summary { cursor: pointer; font-weight: 600; color: var(--ink-2); font-size: .9rem; }
.pos-print { margin: 8px 0; }
.pos kbd { font: 600 .72rem var(--mono); padding: 1px 5px; border: 1px solid var(--line); border-radius: 4px; background: var(--surface); }
.pos-done { border: 0; border-radius: 18px; padding: 26px; width: min(420px, calc(100vw - 24px)); text-align: center; }
.pos-done::backdrop { background: rgba(10,22,40,.6); }
.pos-done .form-row { justify-content: center; margin-top: 14px; }
@media (max-width: 980px) { .pos { grid-template-columns: 1fr; } .pos-right { position: static; } .pos-free-row { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .pos-line { grid-template-columns: 1fr auto 26px; } .pos-price { grid-column: 1; } .pos-line-total { grid-column: 2; } }
#gelirler { margin-top: 18px; scroll-margin-top: 80px; }
.kpi span a { color: inherit; text-decoration: underline; text-decoration-color: rgba(0,0,0,.2); }
.pos-video[hidden] { display: none; }
.pos-line { grid-template-columns: auto 1fr auto 26px; }
.pos-line-name { grid-column: 1 / -1; } .pos-line-name b { white-space: normal; }
.pos-price { max-width: 110px; justify-self: start; }
@media (max-width: 480px) { .pos-line { grid-template-columns: auto 1fr auto 26px; } .pos-price { grid-column: auto; } .pos-line-total { grid-column: auto; } }

/* ---------- Aşama 27: barkod ---------- */
.bc-preview { background: #fff; padding: 6px; border-radius: 8px; border: 1px solid var(--line); } .bc-preview svg { width: 100%; height: 54px; display: block; }
.bc-actions { margin-top: 10px; }
.bulk-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 14px; background: rgba(20,184,166,.08); border-bottom: 1px solid var(--line); }
.bulk-bar[hidden] { display: none; }
.w-check { width: 34px; } .w-check input { width: 16px; height: 16px; }

/* ---------- Aşama 28: randevu / takvim ---------- */
.cal-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.cal-nav { display: flex; align-items: center; gap: 6px; } .cal-range { margin-left: 8px; font-size: 1.05rem; }
.cal-filter select { padding: 7px 10px; border-radius: 10px; border: 1.5px solid var(--line); font: inherit; background: #fff; }
.cal-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .78rem; color: var(--ink-2); margin-bottom: 12px; }
.cal-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.cal-week { overflow: hidden; }
.cal-head, .cal-body { display: grid; grid-template-columns: 54px repeat(7, minmax(0, 1fr)); }
.cal-head > div { padding: 8px 6px; text-align: center; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); }
.cal-head > div:first-child { border-left: 0; }
.cal-head small { display: block; color: var(--ink-3); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 700; }
.cal-head b { font-size: 1.1rem; }
.cal-head .is-today b { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--accent); color: #fff; }
.cal-body { height: calc(var(--hh) * var(--hours)); }
.cal-hours span { display: block; height: var(--hh); font-size: .72rem; color: var(--ink-3); text-align: right; padding: 2px 6px 0 0; border-top: 1px solid transparent; }
.cal-col { position: relative; border-left: 1px solid var(--line); }
.cal-col.is-today { background: rgba(20,184,166,.04); }
.cal-slot { display: block; height: var(--hh); border-top: 1px solid var(--line); }
.cal-slot:hover { background: rgba(20,184,166,.08); }
.cal-ev { position: absolute; left: 3px; right: 3px; padding: 3px 6px; border-radius: 7px; background: color-mix(in srgb, var(--c) 16%, #fff); border-left: 3px solid var(--c); color: var(--ink); text-decoration: none !important; overflow: hidden; font-size: .76rem; line-height: 1.25; box-shadow: 0 1px 2px rgba(0,0,0,.06); z-index: 1; }
.cal-ev:hover { z-index: 2; box-shadow: var(--shadow-sm); }
.cal-ev b { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-ev small { display: block; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-ev.st-done { opacity: .6; } .cal-ev.st-cancelled, .cal-ev.st-no_show { opacity: .45; } .cal-ev.st-cancelled b { text-decoration: line-through; }
.cal-list { display: none; }
.cal-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cal-items li a { display: flex; gap: 10px; align-items: center; padding: 10px; border-radius: 10px; background: var(--surface); border-left: 3px solid var(--c); color: inherit; text-decoration: none !important; }
.cal-items li span { display: grid; flex: 1; min-width: 0; } .cal-items li small { color: var(--ink-3); }
.cal-items li.st-cancelled, .cal-items li.st-no_show { opacity: .5; }
.cal-day.is-today { box-shadow: inset 0 0 0 2px var(--accent); }
@media (max-width: 900px) { .cal-week { display: none; } .cal-list { display: grid; gap: 12px; } }
.appt-kinds { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.appt-kind input { position: absolute; opacity: 0; }
.appt-kind span { display: inline-block; padding: 7px 12px; border-radius: 99px; border: 1.5px solid var(--line); font-weight: 600; font-size: .86rem; cursor: pointer; background: #fff; }
.appt-kind input:checked + span { border-color: var(--c); background: color-mix(in srgb, var(--c) 14%, #fff); color: var(--ink); }
.appt-kind input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.appt-actions { margin-top: 18px; }
.appt-today li a { border-left: 3px solid var(--c); padding-left: 8px; }

/* ---------- Aşama 29: online randevu ---------- */
.ev-online { font-style: normal; font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #fff; background: var(--accent-ink); border-radius: 4px; padding: 0 4px; vertical-align: 1px; }
.book-intro { text-align: center; margin-bottom: 16px; } .book-intro h1 { margin: 0 0 6px; }
.book-days { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.book-day { flex: none; padding: 9px 12px; border-radius: 10px; border: 1.5px solid var(--line); background: #fff; font-weight: 700; font-size: .86rem; color: var(--ink) !important; text-decoration: none !important; white-space: nowrap; }
.book-day.on { border-color: var(--brand, var(--accent)); background: var(--brand, var(--accent)); color: #fff !important; }
.book-day.off { opacity: .4; pointer-events: none; text-decoration: line-through !important; }
.book-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 6px; }
.book-slot input { position: absolute; opacity: 0; }
.book-slot span { display: block; text-align: center; padding: 9px 4px; border-radius: 10px; border: 1.5px solid var(--line); background: #fff; font: 700 .9rem var(--mono); cursor: pointer; }
.book-slot input:checked + span { border-color: var(--brand, var(--accent)); background: var(--brand, var(--accent)); color: #fff; }
.book-slot input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.book-slot.off span { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.book-when { font-size: 1.1rem; }
.book-slot, .appt-kind, .pos-method { position: relative; }
.book-slot input, .appt-kind input, .pos-method input { width: 1px; height: 1px; margin: 0; pointer-events: none; left: 0; top: 0; }

/* Online randevu: gün / saat açılır listeleri */
.book-pick select { font-weight: 600; }
.book-pick option.opt-free { color: #166534; background: #f0fdf4; }
.book-pick option.opt-full { color: #b91c1c; background: #fef2f2; }
.book-pick option.opt-closed { color: #94a3b8; background: #f8fafc; }
.book-legend { display: flex; gap: 14px; margin: -4px 0 12px; }

/* Satın alma (aşama 30) */
.warn { color: #d97706; }
.stack-sm { display: grid; gap: 8px; }
.po-chip { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; white-space: nowrap;
  color: var(--c); background: color-mix(in srgb, var(--c) 12%, #fff); border: 1px solid color-mix(in srgb, var(--c) 30%, #fff); }
.po-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--c); }
.po-head { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-bottom: 18px; }
.po-head small { display: block; font-size: .75rem; margin-bottom: 3px; }
.po-search { position: relative; margin-bottom: 12px; }
.po-results { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px); display: grid; gap: 2px; max-height: 340px; overflow: auto; padding: 6px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px rgba(10,22,40,.14); }
.po-results[hidden] { display: none; }
.po-res { display: grid; gap: 2px; text-align: left; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; font: inherit; cursor: pointer; }
.po-res:hover, .po-res:focus { background: rgba(20,184,166,.08); outline: none; }
.po-lines input.po-qty, .po-lines input.po-cost { width: 86px; text-align: right; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.po-lines input.po-cost { width: 104px; }
.po-lines tr.po-flash td { background: rgba(20,184,166,.12); transition: background .6s; }
.po-lines tr.po-done td { color: #64748b; }
.po-sum { display: grid; gap: 4px; margin: 12px 0 0 auto; max-width: 300px; }
.po-sum.pad { padding: 0 18px 14px; }
.po-sum div { display: flex; justify-content: space-between; gap: 12px; }
.po-sum dt { color: #64748b; }
.po-sum dd { margin: 0; font-weight: 600; }
.po-sum .po-sum-total { border-top: 1px solid var(--line); padding-top: 6px; margin-top: 2px; font-size: 1.05rem; }
.po-sum .po-sum-total dd { font-weight: 800; }
.po-receive { border-top: 1px solid var(--line); padding-top: 14px; padding-bottom: 18px; }
.po-receive h3 { margin: 0 0 4px; font-size: 1rem; }
.po-receive .check { margin: 8px 0; }
.po-msg { width: 100%; font: .88rem/1.45 ui-monospace, Menlo, monospace; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; resize: vertical; }
.po-send { flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.po-pay { margin-top: 12px; }
@media (max-width: 640px) {
  .po-lines input.po-qty { width: 64px; }
  .po-lines input.po-cost { width: 80px; }
  .po-sum { max-width: none; }
}
@media (max-width: 640px) {
  .po-form .po-lines thead { display: none; }
  .po-form .po-lines, .po-form .po-lines tbody { display: block; }
  .po-form .po-lines tr { display: grid; grid-template-columns: auto auto 1fr auto; gap: 6px 10px; align-items: start; padding: 10px 14px; border-bottom: 1px solid var(--line); }
  .po-form .po-lines td { display: block; padding: 0 !important; border: 0; }
  .po-form .po-lines td:first-child { grid-column: 1 / 4; }
  .po-form .po-lines td:last-child { grid-column: 4; grid-row: 1; }
  .po-form .po-lines td:nth-child(2), .po-form .po-lines td:nth-child(3) { grid-row: 2; text-align: left; }
  .po-form .po-lines td:nth-child(4) { grid-row: 2; grid-column: 3 / 5; align-self: center; }
  .po-form .po-lines td:nth-child(2)::before { content: "Adet"; display: block; font-size: .72rem; color: #64748b; }
  .po-form .po-lines td:nth-child(3)::before { content: "Birim (KDV hariç)"; display: block; font-size: .72rem; color: #64748b; }
}
@media (max-width: 640px) { .po-sm-hide { display: none; } }

/* Müşteri portalı randevu (aşama 31) */
.portal-appt { border-left: 4px solid var(--accent); }
.portal-cancel { margin-top: 10px; }
.portal-cancel summary { cursor: pointer; font-size: .85rem; color: #b91c1c; font-weight: 600; }
.portal-cancel form { margin-top: 10px; display: grid; gap: 8px; justify-items: start; }
.portal-cancel .field { width: 100%; margin: 0; }
.portal-past { margin: 18px 0 6px; }
.portal-past summary { cursor: pointer; }
.portal-past-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 2px; border-bottom: 1px solid var(--line); }
.req-cta + .req-cta { margin-top: 10px; }

/* Personel primi (aşama 32) */
.comm-rate { width: 72px; text-align: right; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.comm-settings { margin-top: 18px; }
.comm-set select { min-width: 130px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.comm-pay { position: relative; display: inline-block; text-align: left; }
.comm-pay > summary { list-style: none; cursor: pointer; }
.comm-pay > summary::-webkit-details-marker { display: none; }
.comm-pay[open] > form { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: 240px; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px rgba(10,22,40,.14); }
.comm-pay .field { margin-bottom: 8px; }
.comm-help { padding-bottom: 16px; }
.comm-help p { margin: 6px 0 0; }
@media (max-width: 640px) {
  .comm-set thead { display: none; }
  .comm-set, .comm-set tbody { display: block; }
  .comm-set tr { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; align-items: end; padding: 12px 16px; border-bottom: 1px solid var(--line); }
  .comm-set td { display: block; padding: 0 !important; border: 0; }
  .comm-set td:first-child { grid-column: 1 / 3; }
  .comm-set td:last-child { grid-column: 3; grid-row: 1; }
  .comm-set td:nth-child(2) { grid-column: 1 / 2; }
  .comm-set td:nth-child(2) select { min-width: 0; width: 100%; }
  .comm-set .comm-rate { width: 100%; }
  .comm-set td:nth-child(3)::before { content: "Oran %"; display: block; font-size: .72rem; color: #64748b; }
  .comm-set td:nth-child(4)::before { content: "Satış %"; display: block; font-size: .72rem; color: #64748b; }
  .comm-pay[open] > form { right: -8px; }
}

/* Kabul / çıkış testi formu (aşama 33) */
.ck-field > span:first-child { margin-bottom: 4px; }
.ck-quick { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 8px; }
.ck-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 4px 16px; margin-bottom: 8px; }
.ck-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--line); }
.ck-label { font-size: .9rem; }
.ck-was { display: block; font-size: .72rem; color: #64748b; }
.ck-was.ck-bad { color: #dc2626; }
.ck-opts { display: inline-flex; gap: 4px; flex: none; }
.ck-opt { position: relative; }
.ck-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.ck-opt span { display: grid; place-items: center; width: 32px; height: 30px; border: 1.5px solid var(--line); border-radius: 8px; background: #fff; font-weight: 800; color: #94a3b8; cursor: pointer; user-select: none; }
.ck-opt em { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ck-opt input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 1px; }
.ck-ok input:checked + span { background: #16a34a; border-color: #16a34a; color: #fff; }
.ck-bad input:checked + span { background: #dc2626; border-color: #dc2626; color: #fff; }
.ck-na input:checked + span { background: #94a3b8; border-color: #94a3b8; color: #fff; }
.ck-field input[name$="_note"], .ck-form input[name$="_note"] { width: 100%; }
.ck-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.ck-h { font-size: .95rem; margin: 0 0 4px; }
.ck-h small { font-weight: 500; font-size: .75rem; }
.ck-sum { margin: 0; color: #475569; }
.ck-edit { margin-top: 10px; }
.ck-edit > summary { cursor: pointer; color: var(--accent-ink, #0f766e); font-weight: 600; }
.ck-form { margin-top: 10px; display: grid; gap: 8px; }
.ck-form .ck-list { grid-template-columns: 1fr; }
.ck-form button[type=submit] { justify-self: start; }
.ck-types { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0 16px; }
.ck-types textarea { font-size: .88rem; line-height: 1.45; }
@media (max-width: 760px) { .ck-cols { grid-template-columns: 1fr; } .ck-list { grid-template-columns: 1fr; } }
.ck-cols .ck-view { grid-template-columns: 1fr 1fr; gap: 3px 8px; }
.ck-cols .ck-view li { grid-template-columns: 18px 1fr; padding: 3px 6px; border: 0; background: transparent; font-size: .84rem; }
.ck-cols .ck-view li b { grid-row: auto; width: 18px; height: 18px; font-size: .68rem; }
.ck-cols .ck-view li small { display: none; }
.ck-cols .ck-view li.ck-bad { background: #fef2f2; border-radius: 6px; color: #b91c1c; font-weight: 600; }
.ck-cols .ck-view li.ck-none span, .ck-cols .ck-view li.ck-na span { color: #64748b; }

/* Cari hesap (aşama 34) */
.acc-sum { max-width: none; margin: 0 0 12px; }
.acc-h { margin: 10px 0 6px; }
.acc-open { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 2px; }
.acc-open li { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: baseline; padding: 6px 0; border-bottom: 1px dashed var(--line); }
.acc-collect { display: grid; gap: 8px; margin-bottom: 10px; }
.acc-collect .field { margin: 0; }

/* Gün sonu raporu (aşama 36) */
.dr-day { display: inline-flex; gap: 10px; align-items: center; }
.dr-day input[type=date] { padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; }
.dr-subject { margin: 0 0 10px; }
.dr-preview { border: 1px solid var(--line); border-radius: 12px; padding: 22px; background: #fff; max-width: 600px; }
.dr-preview h2, .dr-preview h3 { line-height: 1.3; }

/* Toplu sayım (aşama 37) */
.sc-top { position: relative; margin-bottom: 18px; }
.sc-head { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.sc-branch { margin: 0; min-width: 180px; }
.sc-scan { flex: 1 1 320px; }
.sc-scan input { font-size: 1.05rem; height: 50px; }
.sc-results { left: 22px; right: 22px; top: auto; }
.sc-flash { margin: 10px 0 0; min-height: 1.4em; font-weight: 600; }
.sc-flash.is-ok { color: #15803d; }
.sc-flash.is-bad { color: #b91c1c; }
.sc-kpis { margin-bottom: 18px; }
.sc-step { display: inline-flex; align-items: center; gap: 4px; }
.sc-step input { width: 64px; text-align: center; padding: 6px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-weight: 700; }
.sc-step button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-weight: 800; cursor: pointer; }
.sc-apply { margin-top: 18px; display: grid; gap: 10px; justify-items: start; }
.sc-apply .field { width: 100%; max-width: 420px; margin: 0; }
@media print { .sc-top, .sc-apply { display: none; } }

/* Fiyat teklifi (aşama 38) */
.qf-lines { display: grid; gap: 6px; margin-bottom: 10px; }
.qf-line { display: grid; grid-template-columns: 104px 70px 112px 78px 1fr 34px; gap: 6px; align-items: center; padding: 10px 0; border-bottom: 1px dashed var(--line); }
.qf-line input, .qf-line select { padding: 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; min-width: 0; }
.qf-line .qf-desc { grid-column: 1 / -1; order: -1; }
.qf-line .qf-qty, .qf-line .qf-price { text-align: right; }
.qf-total { text-align: right; white-space: nowrap; }
.qf-add { display: flex; gap: 6px; flex-wrap: wrap; }
.quote-desc { margin: 14px 0; padding: 12px 14px; background: var(--surface, #f8fafc); border-radius: 10px; font-size: .92rem; }
@media (max-width: 520px) {
  .qf-line { grid-template-columns: 1fr 1fr; }
  .qf-total { text-align: left; }
  .qf-line [data-del] { justify-self: end; }
}

/* Cihaz geçmişi / IMEI (aşama 39) */
.imei-box { margin: -4px 0 12px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; font-size: .9rem; }
.imei-box ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.imei-box p { margin: 0 0 4px; }
.imei-bad { color: #b45309; font-weight: 600; }
.imei-ok { color: #15803d; }
.dev-hist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dev-hist li { padding-bottom: 10px; border-bottom: 1px dashed var(--line); }
.dev-hist li > div { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }

/* Kayıtlarda toplu işlem (aşama 40) */
.tk-bulk { flex-wrap: wrap; gap: 8px 14px; align-items: center; position: sticky; top: 0; z-index: 5; }
.tk-group { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tk-bulk select, .tk-bulk input[name=note] { padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: .88rem; max-width: 200px; }

/* Bildirimler (aşama 41) */
.nt { position: relative; margin-left: 10px; flex: none; }
.nt-btn { position: relative; width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--line); background: #fff; display: grid; place-items: center; cursor: pointer; color: inherit; }
.nt-btn .ic { width: 20px; height: 20px; }
.nt-badge { position: absolute; top: -5px; right: -5px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: #dc2626; color: #fff; font-size: .72rem; font-weight: 800; display: grid; place-items: center; }
.nt-badge[hidden] { display: none; }
.nt-panel { position: absolute; right: 0; top: calc(100% + 8px); z-index: 40; width: min(380px, calc(100vw - 24px)); max-height: 70vh; overflow: auto; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 40px rgba(10,22,40,.18); }
.nt-panel[hidden] { display: none; }
.nt-panel header { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--line); position: sticky; top: 0; background: #fff; }
.nt-item { display: grid; gap: 2px; padding: 10px 14px 10px 18px; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; position: relative; }
.nt-item:hover { background: #f8fafc; }
.nt-item::before { content: ""; position: absolute; left: 7px; top: 15px; width: 6px; height: 6px; border-radius: 50%; background: transparent; }
.nt-item.is-new { background: rgba(20,184,166,.06); }
.nt-item.is-new::before { background: #14b8a6; }
.nt-item b { font-size: .88rem; }
.nt-item span { font-size: .84rem; color: #334155; }
.nt-item small { font-size: .74rem; color: #94a3b8; }
.nt-green b { color: #15803d; } .nt-red b { color: #b91c1c; } .nt-blue b { color: #1d4ed8; } .nt-teal b { color: #0f766e; } .nt-amber b { color: #b45309; }
.nt-empty { padding: 18px 14px; margin: 0; color: #64748b; font-size: .88rem; }
@media (max-width: 760px) { .nt { margin-left: 4px; } .nt-panel { position: fixed; right: 12px; top: 64px; } }

/* Sistem durumu (aşama 42) */
.sys-tbl tr.sys-miss td { background: #fff7ed; }
.sys-ok { color: #15803d; font-weight: 700; }
.sys-bad { color: #b91c1c; font-weight: 700; }
.sys-env { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.sys-env li { display: grid; grid-template-columns: 24px 1fr; gap: 8px; align-items: start; }
.sys-env li b { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; font-size: .75rem; }
.sys-env li span { font-size: .9rem; }
.sys-env li small { display: block; color: #64748b; font-size: .78rem; }
.sys-env .env-ok b { background: #16a34a; }
.sys-env .env-warn b { background: #d97706; }
.sys-env .env-bad b { background: #dc2626; }
.sys-env .env-bad span { color: #b91c1c; font-weight: 600; }
.sys-log { margin: 0; max-height: 260px; overflow: auto; font: .74rem/1.45 ui-monospace, Menlo, monospace; background: #0f172a; color: #cbd5e1; padding: 10px; border-radius: 10px; white-space: pre-wrap; word-break: break-all; }

/* Hazır metinler (aşama 43) */
.snip { display: flex; flex-wrap: wrap; gap: 5px; margin: -6px 0 14px; align-items: center; }
.snip-label { font-size: .78rem; color: #64748b; font-weight: 600; margin-right: 2px; }
.snip-chip { padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; font: inherit; font-size: .8rem; color: #334155; cursor: pointer; line-height: 1.3; }
.snip-chip:hover { border-color: var(--accent); color: var(--accent-ink, #0f766e); }
.snip-chip.is-used { background: rgba(20,184,166,.1); border-color: rgba(20,184,166,.4); }
.snip-edit { font-size: .76rem; color: #94a3b8; margin-left: 4px; }
.snip[hidden] { display: none; }
/* Aşama 44: sektör / cihaz türleri */
.sector-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; margin-bottom: 10px; }
.sector-card { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; background: #fff; }
.sector-card:has(input:checked) { border-color: var(--accent); background: rgba(20,184,166,.07); }
.sector-card input { margin-top: 3px; }
.sector-card b { display: block; font-size: .92rem; }
.sector-card small { display: block; color: #64748b; font-size: .76rem; line-height: 1.35; margin-top: 2px; }
.type-group { border: 0; padding: 0; margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.type-group legend { font-weight: 700; font-size: .8rem; color: #475569; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 6px; padding: 0; width: 100%; }
.type-group .check { margin: 0; min-width: 170px; }
.snip-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.tick-list { padding-left: 18px; margin: 0 0 12px; }
.tick-list li { margin-bottom: 3px; }
.field[hidden] { display: none; }
textarea.mono-sm { font-size: .84rem; line-height: 1.5; }
/* Aşama 46: açılır öneri kutusu */
.cs-combo { position: relative; display: block; }
.cs-combo > input { width: 100%; padding-right: 34px; }
.cs-combo-btn { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: #94a3b8; font-size: .9rem; width: 28px; height: 28px; cursor: pointer; border-radius: 6px; display: none; }
.cs-combo.has-list .cs-combo-btn { display: block; }
.cs-combo-btn:hover { background: #f1f5f9; color: #334155; }
.cs-combo-list { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px); margin: 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 10px 30px rgba(15,23,42,.12); max-height: 280px; overflow-y: auto; }
.cs-combo-list[hidden] { display: none; }
.cs-combo-list li { padding: 7px 10px; border-radius: 6px; cursor: pointer; font-size: .9rem; color: #1e293b; }
.cs-combo-list li:hover, .cs-combo-list li.is-act { background: #f1f5f9; }
.cs-combo-list li.is-sel { font-weight: 700; color: var(--accent-ink, #0f766e); }
.cs-combo-list li.is-sel::after { content: ' ✓'; }
.noun-opts { display: grid; gap: 6px; }
/* Aşama 49: iş panosu */
.board-filter { flex-wrap: wrap; }
.board { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 12px; align-items: flex-start; scroll-snap-type: x proximity; }
.board-col { flex: 0 0 250px; background: #f1f5f9; border-radius: 14px; display: flex; flex-direction: column; max-height: calc(100vh - 190px); scroll-snap-align: start; border: 2px solid transparent; transition: border-color .15s, background .15s; }
.board-col.is-over { border-color: var(--c); background: #e8eef6; }
.board-col.is-final { opacity: .9; }
.board-col-head { display: flex; align-items: center; gap: 8px; padding: 12px 12px 8px; font-size: .9rem; }
.board-col-head b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--c); flex: none; }
.board-n { background: #fff; border-radius: 999px; padding: 1px 8px; font-size: .78rem; font-weight: 700; color: #475569; }
.board-list { padding: 4px 8px 10px; overflow-y: auto; display: flex; flex-direction: column; gap: 8px; min-height: 60px; }
.board-empty { text-align: center; color: #94a3b8; font-size: .82rem; margin: 10px 0; }
.board-card { background: #fff; border-radius: 10px; padding: 10px 11px; box-shadow: 0 1px 2px rgba(15,23,42,.08); border-left: 3px solid var(--c); cursor: default; }
.board-card[draggable="true"] { cursor: grab; }
.board-card.is-drag { opacity: .45; }
.board-card.is-moved { animation: bcMoved 1.2s ease; }
@keyframes bcMoved { 0% { box-shadow: 0 0 0 3px var(--c); } 100% { box-shadow: 0 1px 2px rgba(15,23,42,.08); } }
.board-card.prio-urgent { box-shadow: 0 0 0 1px #fca5a5, 0 1px 2px rgba(15,23,42,.08); }
.bc-top { display: flex; align-items: center; gap: 6px; }
.bc-code { font-size: .8rem; font-weight: 700; color: #0f172a; text-decoration: none; }
.bc-prio { font-size: .68rem; font-weight: 700; color: #b91c1c; background: #fee2e2; border-radius: 4px; padding: 1px 6px; }
.prio-high .bc-prio { color: #b45309; background: #fef3c7; }
.bc-move { margin-left: auto; border: 1px solid var(--line); background: #fff; border-radius: 6px; width: 28px; height: 24px; cursor: pointer; color: #475569; font-size: .85rem; line-height: 1; }
.bc-move:hover { border-color: var(--accent); color: var(--accent); }
.bc-dev { display: block; font-weight: 600; font-size: .9rem; color: #1e293b; margin-top: 4px; text-decoration: none; line-height: 1.3; }
.bc-cust { font-size: .8rem; color: #64748b; margin-top: 1px; }
.bc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; margin-top: 8px; font-size: .74rem; color: #64748b; }
.bc-meta .ic { width: 12px; height: 12px; vertical-align: -2px; }
.bc-old { color: #b45309; font-weight: 600; }
.bc-late { color: #b91c1c; font-weight: 700; }
.bc-tag { background: #eef2ff; color: #4338ca; border-radius: 4px; padding: 1px 6px; font-weight: 600; }
.bc-red { background: #fee2e2; color: #b91c1c; }
.bc-cost { font-weight: 700; color: #0f172a; }
.bc-tech { margin-left: auto; width: 22px; height: 22px; border-radius: 50%; background: #0f172a; color: #fff; display: inline-grid; place-items: center; font-size: .64rem; font-weight: 700; }
.board-modal { position: fixed; inset: 0; background: rgba(15,23,42,.45); z-index: 80; display: grid; place-items: center; padding: 16px; }
.board-modal[hidden] { display: none; }
.board-modal-box { background: #fff; border-radius: 14px; padding: 20px; width: min(440px, 100%); box-shadow: 0 20px 50px rgba(15,23,42,.25); }
.board-modal-box h3 { margin: 0 0 14px; font-size: 1.05rem; }
.board-modal-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 14px; }
.board-toast { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); background: #0f172a; color: #fff; padding: 10px 16px; border-radius: 10px; font-size: .9rem; z-index: 90; box-shadow: 0 10px 30px rgba(15,23,42,.3); max-width: calc(100% - 32px); }
.board-toast[hidden] { display: none; }
.board-toast.is-bad { background: #b91c1c; }
@media (max-width: 640px) { .board-col { flex-basis: 84vw; } }
.bc-meta > span { display: inline-flex; align-items: center; gap: 3px; }
.bd-hint-m { display: none; }
@media (hover: none), (max-width: 760px) { .bd-hint-d { display: none; } .bd-hint-m { display: inline; } }
.board.is-dragging { scroll-snap-type: none; }
.pay-form [hidden] { display: none; }
.ship-list .mono { font-size: .85rem; }
.rc-ship { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.rc-ship li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.rc-ship .rc-ship-no { font-family: "JetBrains Mono", monospace; font-weight: 700; }
.rc-ship small { display: block; color: #64748b; }
.rc-ship .btn { margin-left: auto; }
/* Aşama 52: faturalar */
.inv-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--line); position: static; }
.inv-bar[hidden] { display: flex; }
.inv-no { width: 140px; font-size: .82rem; padding: 6px 8px; }
.inv-copy summary { font-size: .74rem; color: var(--accent-ink, #0f766e); cursor: pointer; margin-top: 3px; }
.inv-copy { margin-top: 2px; }
.inv-copy .snip-chip { margin: 3px 3px 0 0; }
.snip-chip.is-copied { background: rgba(20,184,166,.15); border-color: var(--accent); }
.kpi-warn b { color: #b45309; }
.inv-box { border-top: 1px dashed var(--line); margin-top: 12px; padding-top: 10px; }
/* Aşama 53: bakım hatırlatması */
.maint-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 14px; margin-bottom: 10px; }
.maint-row { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.maint-row.is-on { border-color: rgba(20,184,166,.5); background: rgba(20,184,166,.05); }
.maint-row span { flex: 1; font-size: .88rem; }
.maint-row input { width: 52px; text-align: center; padding: 5px 6px; }
.maint-row small { color: #64748b; }
.maint-preview { background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.maint-preview p { margin: 4px 0; }
/* Aşama 55: panel uygulaması */
.side-install { background: none; width: 100%; text-align: left; font: inherit; font-size: .86rem; cursor: pointer; border-style: solid; border-color: rgba(45,212,191,.45); }
.side-install[hidden] { display: none; }
.side-install:not([hidden]) + .side-public { margin-top: 8px; }
@media (display-mode: standalone) { .app-top { padding-top: env(safe-area-inset-top); } }
.pwa-banner { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.pwa-banner[hidden] { display: none; }
.pwa-banner-act { display: flex; gap: 6px; }
.push-prefs { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }
.push-prefs .check { margin: 4px 0; }

/* Online ödeme kutusu (aşama 57) */
.op-box .pay-row input[readonly] { flex: 1; min-width: 0; font-size: .82rem; }
.op-box .pay-row form { display: inline; }
.op-list .op-amt { font-weight: 700; }

/* Fiyat listesi (aşama 58) */
.po-sm-show { display: none; }
@media (max-width: 640px) { .po-sm-show { display: inline; } }
.price-search { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.price-search svg { width: 18px; height: 18px; color: var(--muted, #64748b); flex: none; }
.price-search input { flex: 1; min-width: 0; border: 0; outline: 0; font: inherit; background: transparent; }
.price-tbl td b { font-weight: 700; }
.price-sugg { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; align-items: center; }
.price-sugg[hidden] { display: none; }
.price-sugg > small { width: 100%; color: var(--muted, #64748b); }
.price-chip { display: inline-flex; gap: 6px; align-items: baseline; padding: 6px 10px; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; font: inherit; font-size: .85rem; cursor: pointer; }
.price-chip b { color: var(--brand, #0f766e); white-space: nowrap; }
.price-chip:hover, .price-chip.is-used { border-color: var(--brand, #14b8a6); background: #f0fdfa; }
/* Müşteri fiyat sayfası */
.pl-card h1 { margin: 0 0 6px; }
.pl-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0 6px; }
.pl-filters[hidden] { display: none; }
.pl-filters select { width: 100%; }
@media (max-width: 640px) { .pl-filters { grid-template-columns: 1fr; } }
.pl-group { font-size: 1rem; margin: 18px 0 4px; }
.pl-rows { list-style: none; margin: 8px 0 0; padding: 0; }
.pl-rows li { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; padding: 11px 0; border-bottom: 1px dashed var(--line); }
.pl-rows li:last-child { border-bottom: 0; }
.pl-rows li small { display: block; font-size: .84rem; }
.pl-rows li > span { font-weight: 800; white-space: nowrap; color: var(--brand, #0f766e); }
.pl-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }

/* Dış servis (aşama 59) */
.inline-form { display: inline; }
.os-past { margin: 8px 0 0; line-height: 1.5; }
.os-late { color: #dc2626; font-weight: 700; }
.bc-purple { background: #ede9fe; color: #6d28d9; }

/* Döviz (aşama 60) */
.fx-row { display: grid; grid-template-columns: minmax(180px, 240px) 1fr; gap: 14px; align-items: end; margin-bottom: 4px; }
.fx-row .fx-note { margin: 0 0 12px; }
@media (max-width: 640px) { .fx-row { grid-template-columns: 1fr; } }
.fx-tag { display: inline-block; font-size: .78rem; color: #0369a1; background: #e0f2fe; border-radius: 6px; padding: 1px 6px; margin-left: 4px; font-weight: 600; }
.fx-rates { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 640px) { .fx-rates { grid-template-columns: 1fr; } }

/* Servis sözleşmeleri (aşama 61) */
.ct-devices { margin: 0; padding-left: 20px; } .ct-devices li { padding: 4px 0; border-bottom: 1px dashed var(--line); }
.ct-devices li:last-child { border-bottom: 0; }

/* Çalışma süresi (aşama 62) */
.wl-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #dc2626; animation: wlpulse 1.6s infinite; vertical-align: middle; }
@keyframes wlpulse { 50% { opacity: .35; } }
.wl-live { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; background: #fef2f2; color: #991b1b; margin-bottom: 8px; }
.wl-top { display: flex; align-items: center; gap: 4px; margin-left: 8px; padding: 4px 4px 4px 10px; border-radius: 999px; background: #fef2f2; border: 1px solid #fecaca; font-size: .82rem; }
.wl-top a { display: flex; align-items: center; gap: 6px; color: #991b1b; text-decoration: none; white-space: nowrap; }
.wl-top button { border: 0; background: #dc2626; color: #fff; border-radius: 999px; width: 24px; height: 24px; cursor: pointer; font-size: 10px; line-height: 1; }
@media (max-width: 640px) { .wl-top .mono { display: none; } }
.wl-manual summary { cursor: pointer; color: var(--ink-3, #64748b); margin-top: 8px; }
.wl-list li form { flex: none; }

.wl-filter { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 16px; }
.wl-filter .field { margin: 0; }
.wl-quick { font-size: .85rem; color: var(--ink-3, #64748b); }
.wl-bar { height: 6px; border-radius: 4px; background: #f1f5f9; margin-top: 6px; overflow: hidden; max-width: 260px; }
.wl-bar span { display: block; height: 100%; background: var(--brand, #14b8a6); border-radius: 4px; }
.wl-line { display: block; min-width: 0; flex: 1; line-height: 1.45; }
.wl-line small { display: block; }
.wl-list li { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; }
.mini-list .wl-line b, .mini-list .wl-line span { display: inline; }
.mini-list li > span.wl-line { display: block; margin: 0; padding: 8px 0; }

/* Parça iade (aşama 64) */
.rma-badge { background: #fef2f2 !important; color: #b91c1c !important; }

/* Veri aktarımı (aşama 65) */
.imp-types { display: grid; gap: 10px; }
.imp-type { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; }
.imp-type:has(input:checked) { border-color: var(--brand, #14b8a6); background: #f0fdfa; }
.imp-type input { margin-top: 4px; }
.imp-type span { display: grid; gap: 3px; }
.imp-type span svg { width: 18px; height: 18px; }
.imp-type small { font-size: .84rem; }
.imp-tips, .imp-order { margin: 10px 0 0; padding-left: 18px; } .imp-tips li, .imp-order li { margin-bottom: 4px; }
.imp-wrap { max-width: 100%; overflow-x: auto; }
.imp-tbl th { vertical-align: top; min-width: 150px; }
.imp-tbl th select { width: 100%; margin-top: 4px; font-size: .82rem; padding: 4px 6px; border: 1.5px solid var(--line); border-radius: 8px; background: #fff; }
.imp-tbl td { white-space: nowrap; font-size: .85rem; }
.imp-tbl th small { display: block; text-transform: none; letter-spacing: 0; font-size: .8rem; font-weight: 600; color: var(--ink-2, #334155); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.imp-tbl th select { display: block; text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--ink, #0f172a); }

/* Aşama 68: dil seçici + sağdan sola (Arapça) */
.lang-sw { display: inline-flex; border: 1px solid var(--line, #e2e8f0); border-radius: 999px; padding: 2px; gap: 2px; background: var(--card, #fff); }
.lang-sw a { font-size: 11px; font-weight: 700; letter-spacing: .02em; padding: 3px 7px; border-radius: 999px; color: var(--muted, #64748b); text-decoration: none; line-height: 1.3; }
.lang-sw a:hover { color: var(--ink, #0f172a); background: rgba(100, 116, 139, .1); }
.lang-sw a.is-on { background: var(--brand, #14b8a6); color: #fff; }
@media (max-width: 420px) { .lang-sw a { padding: 3px 5px; font-size: 10.5px; } }
[dir="rtl"] body, [dir="rtl"] .tenant-page { text-align: right; }
[dir="rtl"] .mono, [dir="rtl"] input[inputmode="numeric"], [dir="rtl"] .track-code-input { direction: ltr; unicode-bidi: plaintext; }
[dir="rtl"] .right { text-align: left; }
[dir="rtl"] .lang-sw { direction: ltr; }
[dir="rtl"] dd, [dir="rtl"] .tl-list p { unicode-bidi: plaintext; }
[dir="rtl"] .hp, [dir="rtl"] .skip { left: auto; right: -9999px; }
[dir="rtl"] .hp { right: auto; left: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; }
[dir="rtl"] .skip:focus { right: 8px; left: auto; }
.tenant-head-actions > form { flex-shrink: 0; margin: 0; }
[dir="rtl"] .ic-flip { transform: scaleX(-1); }
/* Aşama 70: SMS dili */
.lang-badge { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .03em; padding: 1px 5px; border-radius: 4px; background: #e0f2fe; color: #0369a1; vertical-align: middle; line-height: 1.4; }
.i18n-tpl { border-top: 1px solid var(--line); padding: 14px 0 6px; }
.i18n-tpl:first-of-type { border-top: 0; }
.i18n-tpl-tr { margin: 6px 0 10px; font-size: 13.5px; background: var(--surface, #f8fafc); border-radius: 8px; padding: 8px 10px; }
.i18n-tpl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.i18n-tpl-grid textarea { font-size: 13px; }
@media (max-width: 720px) { .i18n-tpl-grid { grid-template-columns: 1fr; } }
.plain-list { list-style: none; padding: 0; margin: 0 0 10px; display: grid; gap: 6px; }
/* Aşama 72: müşteriye e-posta */
.check-grid { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.cmail-preview { width: 100%; height: 620px; border: 1px solid var(--line); border-radius: 10px; background: #f1f5f9; }
.pcard-head .lang-sw { margin-left: auto; }
/* Aşama 74: geciken kayıtlar */
.dl-list { list-style: none; margin: 0; padding: 0; }
.dl-row { display: flex; flex-wrap: wrap; gap: 10px 16px; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
.dl-row:first-child { border-top: 0; }
.dl-main { min-width: 240px; flex: 1; }
.dl-main .chip { margin-left: 6px; }
.dl-late { margin-left: 6px; font-size: 12px; font-weight: 700; color: #dc2626; }
.dl-soon { margin-left: 6px; font-size: 12px; font-weight: 700; color: #d97706; }
.dl-form, .dl-banner { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.dl-form input[type=date], .dl-banner input[type=date] { width: 150px; }
.dl-form input[type=text] { width: 210px; }
.dl-banner { border-left: 4px solid #ef4444; background: #fef2f2; margin-bottom: 16px; padding: 12px 16px; }
.dl-banner input[type=text] { flex: 1; min-width: 160px; }
@media (max-width: 640px) { .dl-form input[type=text] { width: 100%; } }
/* Aşama 75: arıza bankası */
.kb-form { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: 10px; align-items: end; }
@media (max-width: 900px) { .kb-form { grid-template-columns: 1fr 1fr; } .kb-form .kb-q { grid-column: 1 / -1; } }
.kb-card { border-top: 1px solid var(--line); padding: 12px 0; }
.kb-card:first-of-type { border-top: 0; }
.kb-card header small { display: block; margin-top: 2px; }
.kb-card p { margin: 6px 0 0; font-size: 14px; }
.kb-lbl { display: inline-block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #64748b; margin-right: 4px; }
.kb-lbl-ok { color: #0d9488; }
.kb-items { display: flex; flex-wrap: wrap; gap: 6px; }
.kb-item { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 999px; background: #eff6ff; color: #1d4ed8; }
.kb-item.kb-labor { background: #f0fdf4; color: #15803d; }
.kb-item.kb-other { background: #f8fafc; color: #475569; }
/* Aşama 76: müşteri yorumları */
.rv-stars { color: #f59e0b; letter-spacing: 1px; white-space: nowrap; }
.rv-stars .rv-off { color: #cbd5e1; }
.rv-filter { display: flex; gap: 10px; align-items: center; margin-left: auto; }
.rv-list { list-style: none; margin: 0; padding: 0; }
.rv-item { border-top: 1px solid var(--line); padding: 12px 0; }
.rv-item:first-child { border-top: 0; }
.rv-item.is-pub { box-shadow: inset 3px 0 0 #16a34a; padding-left: 10px; }
.rv-top { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.rv-text { margin: 6px 0; white-space: normal; }
.rv-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; }
.rv-actions form { display: inline-flex; gap: 6px; align-items: flex-start; }
.rv-reply textarea { width: min(420px, 80vw); margin-top: 6px; }
.rv-ans { margin: 6px 0 0; font-size: 13px; background: #f8fafc; border-radius: 8px; padding: 6px 10px; }
.rv-big { font-size: 15px; margin: 0; } .rv-big b { font-size: 30px; }
.rv-dist { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 4px; }
.rv-dist li { display: grid; grid-template-columns: 34px 1fr 34px; gap: 8px; align-items: center; font-size: 13px; }
.rv-bar { height: 8px; background: #f1f5f9; border-radius: 99px; overflow: hidden; } .rv-bar i { display: block; height: 100%; background: #f59e0b; }
.rv-public { margin-top: 28px; }
.rv-public h2 { font-size: 20px; margin: 0 0 4px; }
.rv-score { margin: 0 0 12px; }
.rv-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.rv-card { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; }
.rv-card blockquote { margin: 6px 0 8px; font-size: 14.5px; line-height: 1.5; }
.rv-card figcaption { font-size: 12.5px; color: var(--muted, #64748b); }
.rv-reply-pub { margin: 8px 0 0; font-size: 13px; background: #f8fafc; border-radius: 8px; padding: 6px 10px; }
/* Aşama 78: menü grupları + hızlı geçiş */
.nav-group { margin-top: 6px; }
.nav-group > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px 6px; color: #6b7a92; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; border-radius: 8px; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after { content: '▸'; font-size: .8rem; transition: transform .15s; margin-left: auto; }
.nav-group[open] > summary::after { transform: rotate(90deg); }
.nav-group > summary .side-count { margin-left: 0; }
.nav-group > summary:hover { color: #cbd5e1; background: rgba(255,255,255,.03); }
.nav-group[open] > summary .side-count { display: none; }
.qj-btn { display: inline-flex; align-items: center; gap: 8px; margin-left: 12px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface, #f8fafc); color: var(--muted, #64748b); font: inherit; font-size: 13px; cursor: pointer; }
.qj-btn .ic { width: 16px; height: 16px; }
.qj-btn kbd { font: 600 11px/1 ui-monospace, monospace; padding: 3px 5px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
@media (max-width: 760px) { .qj-btn span, .qj-btn kbd { display: none; } .qj-btn { margin-left: 4px; } }
.qj { position: fixed; inset: 0; z-index: 200; background: rgba(10, 22, 40, .45); display: flex; align-items: flex-start; justify-content: center; padding: 12vh 16px 16px; }
.qj[hidden] { display: none; }
.qj-box { width: min(560px, 100%); background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.25); overflow: hidden; }
.qj-box input { width: 100%; border: 0; border-bottom: 1px solid var(--line); padding: 16px 18px; font: inherit; font-size: 16px; outline: none; }
.qj-list { list-style: none; margin: 0; padding: 6px; max-height: 50vh; overflow: auto; }
.qj-list li { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 9px; cursor: pointer; }
.qj-list li small { color: var(--muted, #64748b); }
.qj-list li.is-sel, .qj-list li:hover { background: #f0fdfa; }
.qj-list .qj-none { color: var(--muted, #64748b); cursor: default; }
.qj-help { margin: 0; padding: 8px 16px; font-size: 12px; color: var(--muted, #64748b); border-top: 1px solid var(--line); }
/* Aşama 79: menü düzeni */
.mn-groups { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin: 10px 0 16px; }
.mn-group { border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px 12px; margin: 0; }
.mn-group legend { padding: 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--muted, #64748b); }
.mn-item { display: flex; padding: 4px 0; }
.mn-item .ic { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.mn-item.is-fixed { opacity: .7; }
.mn-item > span { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; } .mn-item > span .ic { margin: 0; }

/* Toplu cihaz kabul (aşama 81) */
.bt-full { grid-column: 1 / -1; }
.bt-foot { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line, #e2e8f0); }
.bt-foot p { margin: 0; flex: 1 1 260px; }
.bt-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bt-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.bt-table th { font-size: 12px; text-align: left; color: var(--muted, #64748b); font-weight: 600; padding: 4px 4px 6px; }
.bt-table td { padding: 3px 4px; vertical-align: middle; }
.bt-table td input, .bt-table td select { width: 100%; min-width: 0; padding: 7px 8px; font-size: 14px; }
.bt-table td:nth-child(2) { width: 150px; } .bt-table td:nth-child(3) { width: 140px; } .bt-table td:nth-child(4) { width: 170px; } .bt-table td:nth-child(5) { width: 180px; }
.bt-table .bt-n { width: 28px; text-align: center; color: var(--muted, #64748b); font-size: 12px; }
.bt-table td:last-child { width: 32px; }
.bt-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 10px; }
.bt-multi { display: inline-flex; align-items: center; gap: 6px; }
.bt-multi input { width: 64px; padding: 5px 6px; }
@media (max-width: 720px) {
  .bt-table { min-width: 0; }
  .bt-table thead { display: none; }
  .bt-table, .bt-table tbody { display: block; }
  .bt-table tr.bt-row { display: grid; grid-template-columns: 28px 1fr 1fr 32px; gap: 6px; padding: 8px 0; border-bottom: 1px solid var(--line, #e2e8f0); }
  .bt-table tr.bt-row td { display: block; width: auto !important; padding: 0; }
  .bt-table tr.bt-row td.bt-n { grid-row: span 4; padding-top: 9px; }
  .bt-table tr.bt-row td:nth-child(2) { grid-column: 2 / 4; }
  .bt-table tr.bt-row td:last-child { grid-column: 4; grid-row: 1; }
  .bt-table tr.bt-row td:nth-child(5), .bt-table tr.bt-row td:nth-child(6) { grid-column: 2 / 4; }
}
.bd-table td.r, .bd-table th.r { text-align: right; white-space: nowrap; }
.bd-table td:first-child { width: 32px; }
.bd-table input[type=checkbox] { width: 18px; height: 18px; }
.bd-sum { font-size: 15px; line-height: 1.6; margin: 0 0 10px; }
.bd-table td.mono { white-space: nowrap; }
@media (max-width: 600px) { .bd-table th:nth-child(5), .bd-table td:nth-child(5), .bd-table th:nth-child(4), .bd-table td:nth-child(4) { display: none; } }

/* Toplu onay (aşama 83) — müşteri sayfası */
.ba-list { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 12px; }
.ba-item { border: 1px solid var(--line, #e2e8f0); border-radius: 14px; padding: 14px 16px; }
.ba-top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.ba-top small { display: block; margin-top: 2px; }
.ba-amt { font-size: 1.15rem; white-space: nowrap; text-align: end; }
.ba-amt small { display: block; font-size: 11px; font-weight: 500; color: var(--ink-3, #64748b); }
.ba-item p { margin: 8px 0; }
.ba-items ul { list-style: none; padding: 0; margin: 6px 0; font-size: 13px; }
.ba-items li { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px dashed var(--line, #e2e8f0); }
.ba-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.ba-choice label { position: relative; cursor: pointer; }
.ba-choice input { position: absolute; opacity: 0; inset: 0; }
.ba-choice span { display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px; border: 1.5px solid var(--line, #cbd5e1); border-radius: 10px; font-weight: 600; font-size: 14px; }
.ba-choice span .ic { width: 16px; height: 16px; }
.ba-choice input:focus-visible + span { outline: 2px solid var(--brand); outline-offset: 2px; }
.ba-yes input:checked + span { background: #f0fdf4; border-color: #16a34a; color: #15803d; }
.ba-no input:checked + span { background: #fef2f2; border-color: #dc2626; color: #b91c1c; }
.ba-done { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 10px; }
.ba-done li { display: flex; align-items: center; gap: 12px; }
.ba-done li > span:nth-child(2) { flex: 1; }
.ba-done .req-check { width: 34px; height: 34px; margin: 0; flex: none; }
.ba-done .req-check .ic { width: 18px; height: 18px; }
.ba-copy { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ba-copy input { flex: 1 1 280px; font-family: "JetBrains Mono", monospace; font-size: 13px; padding: 8px 10px; }
.approve-card + .pcard, .alert + .approve-card { margin-top: 16px; }
.portal-batch { margin: 0 0 16px; padding: 12px 14px; font-size: .95rem; }
.bt-paste { margin-top: 12px; }
.bt-paste summary { cursor: pointer; font-weight: 600; color: var(--brand, #0d9488); }
.bt-paste textarea { width: 100%; font-family: "JetBrains Mono", monospace; font-size: 12.5px; margin: 6px 0 8px; }

/* Müşteri kartı: toplu işlemler menüsü (aşama 86) */
.act-menu { position: relative; display: inline-block; }
.act-menu > summary { list-style: none; cursor: pointer; }
.act-menu > summary::-webkit-details-marker { display: none; }
.act-pop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 250px; background: var(--card, #fff); border: 1px solid var(--line, #e2e8f0); border-radius: 12px; box-shadow: 0 12px 32px rgba(15,23,42,.14); padding: 6px; display: grid; }
.act-pop a { display: block; padding: 9px 12px; border-radius: 8px; color: inherit; text-decoration: none; }
.act-pop a:hover, .act-pop a:focus-visible { background: var(--surface, #f1f5f9); }
.act-pop b { display: block; font-size: 14px; } .act-pop small { color: var(--ink-3, #64748b); font-size: 12px; }
[dir="rtl"] .act-pop { right: auto; left: 0; }

/* Müşteri servis raporu (aşama 88) */
.pr-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.pr-head h1 { margin: 0 0 4px; font-size: 1.6rem; }
.pr-head p { margin: 0; }
.pr-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pr-period { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.pr-period input[type=date] { padding: 6px 8px; border: 1px solid var(--line, #cbd5e1); border-radius: 8px; font: inherit; }
.chip-link { display: inline-block; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line, #cbd5e1); color: inherit; text-decoration: none; font-size: 13px; font-weight: 600; }
.chip-link.is-on { background: var(--brand); border-color: var(--brand); color: #fff; }
.pr-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.pr-tiles .pcard { padding: 14px 16px; }
.pr-tiles small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3, #64748b); }
.pr-tiles b { display: block; font-size: 1.5rem; margin: 2px 0; }
.pr-tiles span { font-size: 12.5px; }
.pr-tbl td { vertical-align: top; }
.pr-rep td { background: #fff7ed; }
.pr-badge { display: inline-block; font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 6px; background: #fed7aa; color: #9a3412; }
.portal-tools { display: flex; gap: 8px; flex-wrap: wrap; margin: -6px 0 16px; }
@media (max-width: 720px) { .pr-tiles { grid-template-columns: 1fr 1fr; } }
@media print {
  .tenant-page .tenant-head, .tenant-page .tenant-foot, .no-print { display: none !important; }
  .tenant-page { background: #fff; }
  .tenant-page .pcard { box-shadow: none; border: 1px solid #e2e8f0; break-inside: avoid; }
  .pr-tiles { grid-template-columns: repeat(4, 1fr); }
}
.pr-tbl a { white-space: nowrap; }

/* İşlem günlüğü (aşama 90) */
.au-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 8px; }
.au-filter select, .au-filter input[type=date], .au-filter input[type=search] { padding: 7px 9px; font: inherit; font-size: 14px; }
.au-filter input[type=search] { flex: 1 1 200px; }
.au-tbl td { vertical-align: top; }
.au-pages { display: flex; gap: 10px; align-items: center; justify-content: center; margin-top: 12px; }
.au-alerts .check { margin: 4px 0; }
.au-alerts hr { border: 0; border-top: 1px solid var(--line, #e2e8f0); margin: 10px 0; }
.au-mini { list-style: none; padding: 0; margin: 0 0 8px; display: grid; gap: 8px; font-size: 13.5px; }
.au-mini .chip { font-size: 11px; }

/* İki adımlı doğrulama (aşama 92) */
.tf-code { font-family: "JetBrains Mono", monospace; font-size: 1.4rem !important; letter-spacing: .25em; text-align: center; }
.tf-rec { margin-top: 12px; } .tf-rec summary { cursor: pointer; color: var(--ink-3, #64748b); }
.tf-steps { padding-left: 20px; display: grid; gap: 12px; margin: 12px 0; }
.tf-qr { margin: 10px 0; width: 196px; padding: 8px; background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 10px; }
.tf-qr img, .tf-qr canvas { display: block; }
.tf-key { display: inline-block; margin-top: 4px; padding: 6px 10px; background: var(--surface, #f1f5f9); border-radius: 8px; font-size: 15px; letter-spacing: .05em; word-break: break-all; }
.tf-codes { columns: 2; padding-left: 24px; font-size: 16px; line-height: 1.9; margin: 12px 0; }
.tf-actions .btn-row { display: flex; flex-wrap: wrap; gap: 8px; }
@media print { body.panel-page .sidebar, .topbar, .tf-actions, .narrow-card:not(.tf-codes-card) { display: none !important; } }
.tf-on { color: #15803d; font-weight: 600; }
.ss-list { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 6px; font-size: 13.5px; }
.ss-list li { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 6px 0; border-bottom: 1px dashed var(--line, #e2e8f0); }

/* Görevler + iletişim kaydı (aşama 94) */
.tk-tabs { display: flex; gap: 6px; flex-wrap: wrap; }
.tk-tabs a { padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line, #e2e8f0); background: var(--card, #fff); color: inherit; text-decoration: none; font-weight: 600; font-size: 14px; }
.tk-tabs a.is-on { background: var(--ink, #0f172a); color: #fff; border-color: transparent; }
.tk-list { list-style: none; margin: 0; padding: 0; display: grid; }
.tk-item { display: flex; gap: 12px; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid var(--line, #eef2f7); }
.tk-item:last-child { border-bottom: 0; }
.tk-body { flex: 1; min-width: 0; }
.tk-body b { display: block; font-weight: 600; overflow-wrap: anywhere; }
.tk-body p { margin: 2px 0; }
.tk-box { width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--line-2, #cbd5e1); background: #fff; cursor: pointer; display: grid; place-items: center; padding: 0; margin-top: 1px; }
.tk-box:hover { border-color: #16a34a; }
.tk-box .ic { width: 14px; height: 14px; color: #fff; }
.tk-item.is-done .tk-box { background: #16a34a; border-color: #16a34a; }
.tk-item.is-done b { text-decoration: line-through; color: var(--ink-3, #64748b); }
.tk-compact .tk-item { padding: 7px 0; }
.ct-form { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line, #e2e8f0); }
.ct-outcomes { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.ct-outcomes label { cursor: pointer; }
.ct-outcomes input { position: absolute; opacity: 0; }
.ct-outcomes span { display: inline-block; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--line, #cbd5e1); font-size: 13px; font-weight: 600; }
.ct-outcomes input:checked + span { background: var(--c); border-color: var(--c); color: #fff; }
.ct-outcomes input:focus-visible + span { outline: 2px solid var(--brand, #0d9488); outline-offset: 2px; }
.ct-quick { display: inline-block; margin-left: 6px; }
.ct-log { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 8px; font-size: 13.5px; }
.ct-add { margin-bottom: 14px; } .ct-add > summary { list-style: none; cursor: pointer; display: inline-flex; }
.ct-add > summary::-webkit-details-marker { display: none; }
.ct-add[open] > summary { margin-bottom: 4px; }
.ct-timeline p { margin: 2px 0; font-size: 13.5px; color: var(--ink-2, #334155); overflow-wrap: anywhere; }
@media (max-width: 720px) { #iletisim .grid-3 { grid-template-columns: 1fr; } }
.ct-more > summary { cursor: pointer; color: var(--brand, #0d9488); font-weight: 600; margin: 4px 0 10px; }

/* Müşteri işareti (aşama 96) */
.cflag { display: inline-flex; align-items: center; gap: 3px; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 700; color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); border: 1px solid color-mix(in srgb, var(--c) 35%, transparent); vertical-align: middle; white-space: nowrap; }
.cflag-banner { margin-bottom: 12px; padding: 10px 14px; border-radius: 12px; background: color-mix(in srgb, var(--c) 10%, #fff); border: 1px solid color-mix(in srgb, var(--c) 40%, transparent); color: color-mix(in srgb, var(--c) 80%, #000); }
.cflag-banner b { color: var(--c); }
.cflag-banner a { margin-left: 6px; font-size: 13px; }
.cflag-edit { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px dashed var(--line, #e2e8f0); }
.cflag-edit .ct-outcomes { margin: 6px 0 8px; }
.cflag-edit input[name=flag_note] { width: 100%; }
.lookup-msg.is-flag { background: color-mix(in srgb, var(--c) 12%, #fff); border-color: color-mix(in srgb, var(--c) 45%, transparent); }
.lookup-msg.is-flag b { color: var(--c); }
.lookup-msg.is-flag { color: color-mix(in srgb, var(--c) 75%, #000); }
.sys-apply { margin-bottom: 16px; } .sys-apply-form { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; } .sys-apply-form .field { margin: 0; min-width: 240px; }
.sys-apply-log { margin-bottom: 16px; } .sys-apply-log li { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.sys-update { margin-bottom: 16px; }
.sys-backups { margin-top: 12px; } .sys-backups > summary { cursor: pointer; color: var(--brand, #0d9488); font-weight: 600; }
.sys-backups li { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.sys-restore { display: flex; gap: 6px; align-items: center; } .sys-restore input { width: 120px; padding: 5px 8px; }

/* Yenilikler (aşama 100) */
.wn-intro p { margin: 0; }
.wn-list { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 12px; }
.wn-item { position: relative; }
.wn-item.is-new { border-left: 4px solid var(--brand, #0d9488); }
.wn-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.wn-head h2 { margin: 0; font-size: 1.05rem; }
.wn-item p { margin: 6px 0 10px; color: var(--ink-2, #334155); }
.wn-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.wn-new { display: inline-block; padding: 2px 8px; border-radius: 999px; background: var(--brand, #0d9488); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.wn-dash .mini-list span { white-space: normal; }

/* @bahsetme (aşama 101) */
.mention { color: var(--brand, #2563eb); font-weight: 600; background: color-mix(in srgb, var(--brand, #2563eb) 10%, transparent); border-radius: 4px; padding: 0 3px; }
.mention-hint { margin: -4px 0 8px; }
.mention-pop { position: absolute; z-index: 60; min-width: 200px; max-width: 280px; max-height: 220px; overflow: auto; background: var(--card, #fff); border: 1px solid var(--line, #e2e8f0); border-radius: 10px; box-shadow: 0 10px 30px rgba(15, 23, 42, .15); padding: 4px; }
.mention-pop button { display: flex; gap: 8px; align-items: baseline; width: 100%; text-align: left; background: none; border: 0; padding: 7px 10px; border-radius: 7px; cursor: pointer; color: inherit; font: inherit; }
.mention-pop button small { color: var(--muted, #64748b); }
.mention-pop button.on, .mention-pop button:hover { background: color-mix(in srgb, var(--brand, #2563eb) 12%, transparent); }

/* Servis rehberi ayarı (aşama 103) */
.dir-status { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; border-left: 4px solid #f59e0b; }
.dir-status.is-live { border-left-color: #10b981; }
.dir-wrap { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.dir-form h3 { margin: 22px 0 10px; font-size: 1rem; }
.dir-map { height: 340px; border-radius: 10px; border: 1px solid var(--line, #e2e8f0); z-index: 0; }
.dir-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 4px 12px; margin-bottom: 8px; }
.dir-kpi { font-size: 1.05rem; }
.dir-kpi b { font-size: 1.6rem; }
.dir-rules { padding-left: 18px; margin: 0; display: grid; gap: 6px; }
.check.big { align-items: flex-start; }
@media (max-width: 900px) { .dir-wrap { grid-template-columns: 1fr; } }
