html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

/* Etiket listesinde dar ekranda taşmadan sayfa değiştirme. */
.label-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:24px 0 12px; }
.label-page-links { display:flex; flex-wrap:wrap; gap:6px; }
.label-page-links a, .label-page-links .current-page { display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:40px; padding:8px 12px; border-radius:9px; border:1px solid #d9dde3; background:#fff; color:#132137; text-decoration:none; }
.label-page-links .current-page { background:#16263f; border-color:#16263f; color:#fff; font-weight:700; }
.label-page-links a:hover { background:#eff2f8; }
.label-page-links a:focus-visible { outline:3px solid #8495b1; outline-offset:2px; }

/* Başka sayfada seçilip unutulan ürün baskıya gizlice karışmasın diye liste hep görünür. */
.label-selected-list { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-5px 0 15px; padding:10px 14px; background:#f5f7fa; border:1px solid #dee4ee; border-radius:12px; }
.label-selected-list[hidden] { display:none; }
.label-selected-list strong { color:#132137; font-size:13px; margin-right:4px; }
.label-selected-chip { display:inline-flex; align-items:center; gap:2px; max-width:100%; min-width:0; padding:3px 3px 3px 11px; background:#fff; border:1px solid #d9dde3; border-radius:999px; font-size:13px; color:#101c2f; }
.label-selected-chip span { min-width:0; overflow-wrap:anywhere; }
.label-selected-chip button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:28px; height:28px; padding:0; border:0; border-radius:50%; background:transparent; color:#6f747c; font-size:17px; line-height:1; cursor:pointer; }
.label-selected-chip button:hover { background:#eff2f8; color:#16263f; }
.label-selected-chip button:focus-visible { outline:3px solid #8495b1; outline-offset:1px; }

.store-dialog { width:min(720px,94vw); max-height:92dvh; overflow:auto; border:1px solid #d9dde3; border-radius:18px; padding:24px; color:#0e1828; box-shadow:0 20px 70px #0004; }
.store-dialog::backdrop { background:#0c152399; }
.store-dialog label,.store-collection label { display:block; margin:12px 0; font-weight:600; }
.store-dialog input,.store-dialog textarea,.store-collection input,.store-collection select,.store-collection textarea { display:block; box-sizing:border-box; width:100%; padding:10px; border:1px solid #d0d6df; border-radius:8px; font:inherit; }
.store-dialog button,.store-collection button { border:1px solid #d0d6df; border-radius:8px; padding:10px 14px; background:#f1f4f9; color:#121f34; }
.store-dialog button:disabled,.store-collection button:disabled { opacity:.55; }
.store-inline { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:10px 0; }
.store-inline input { flex:1; min-width:140px; }
.store-payment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.store-search-results { display:grid; gap:6px; max-height:200px; overflow:auto; }
.store-search-results button { text-align:left; }
.store-dialog fieldset { border:1px solid #d9dde3; border-radius:12px; padding:16px; }
#checkout-error,#customer-error,#collection-message,.store-overdue { color:#b02a37; }
.store-collection { max-width:600px; background:#fff; border:1px solid #e0e3e7; border-radius:12px; padding:20px; margin:24px 0; }
@media(max-width:520px){.store-dialog{padding:16px;}.store-payment-grid{grid-template-columns:1fr;gap:0;}}
/* Cari hesaplar: açılır kapanır son hareketler (kapalı gelir). */
.store-movements { margin-bottom:18px; }
.store-movements summary { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:14px; align-items:center; cursor:pointer; list-style:none; border-radius:8px; }
.store-movements summary::-webkit-details-marker { display:none; }
.store-movements summary h2,.store-movements summary span { grid-column:1; }
.store-movements summary span { margin-top:5px; color:#757a81; font-size:12px; line-height:1.45; }
.store-movements summary::after { content:""; grid-column:2; grid-row:1 / span 2; width:10px; height:10px; margin:0 6px 5px; border-right:2px solid #5d6470; border-bottom:2px solid #5d6470; transform:rotate(45deg); transition:transform .15s; }
.store-movements[open] summary { margin-bottom:18px; }
.store-movements[open] summary::after { margin:5px 6px 0; transform:rotate(-135deg); }
.store-movements summary:focus-visible { outline:2px solid #15243d; outline-offset:6px; }
.store-movements ol { list-style:none; margin:0; padding:0; }
.store-movements li { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #eeeff1; }
.store-movements li:first-child { padding-top:0; }
.store-movements li:last-child { border-bottom:0; padding-bottom:0; }
.store-movements li div { min-width:0; }
.store-movements li div>a { display:block; font-size:14px; font-weight:650; overflow-wrap:anywhere; }
.store-movements li span { display:block; margin-top:2px; font-size:13px; }
.store-movements li small { display:block; margin-top:2px; color:#757a81; font-size:12px; }
.store-movements li strong { white-space:nowrap; font-size:14px; }
@media(min-width:760px){.store-movements li{align-items:baseline;}.store-movements li div{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:baseline;}.store-movements li span,.store-movements li small{margin-top:0;}.store-movements li strong{min-width:130px;text-align:right;}}
/* Fiş sayfası: iade/değişim bağlantıları ve bilgi notları. */
.receipt-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0 0 16px; }
.receipt-actions a { border:1px solid #d0d6df; border-radius:8px; padding:8px 14px; background:#f1f4f9; color:#121f34; font-weight:650; text-decoration:none; }
.receipt-actions a:hover { background:#e6ebf4; }
.receipt-actions span { color:#6c7077; font-size:13px; }
.receipt-note { padding:10px 14px; border:1px solid #f0d49a; border-radius:10px; background:#fff8ea; color:#6b4a06; font-size:14px; }
.receipt-print-links { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:-4px 0 16px; color:#4b5563; font-size:14px; font-weight:600; }
.receipt-print-links a { padding:6px 12px; border:1px solid #d3d9e4; border-radius:9px; background:#fff; color:#16253e; font-weight:700; text-decoration:none; }
.receipt-print-links a:hover { border-color:#a8b8d2; background:#f6f9fd; }
.report-return-row td { background:#fff7f5; }
.report-return-tag { display:inline-block; padding:1px 8px; border-radius:999px; background:#fde8e5; color:#a3281e; font-size:11px; font-weight:750; }
/* Kâr raporu */
.profit-positive,.report-daily-summary strong.profit-positive { color:#166c2f; }
.profit-negative,.report-daily-summary strong.profit-negative { color:#a3281e; }
.profit-muted { color:#757a81; font-size:12px; line-height:1.5; }
td .profit-muted { display:block; }
.profit-filter { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; }
.profit-filter select { padding:8px 10px; border:1px solid #d0d6df; border-radius:8px; background:#fff; font:inherit; }
.profit-filter .report-page-link { flex:0 0 auto; width:auto; padding:6px 12px; font-size:18px; line-height:1; }
.profit-table td,.profit-table th { white-space:nowrap; }
.profit-table td:first-child { white-space:normal; }
.profit-total-row td { border-top:2px solid #dfe3ea; font-weight:700; background:#fbfcfe; }
.profit-selected-row td { background:#f1f5fb; }
.profit-expenses { margin-bottom:18px; }
.profit-expense-list { list-style:none; margin:0 0 10px; padding:0; display:grid; gap:4px; max-width:420px; }
.profit-expense-list li { display:flex; justify-content:space-between; gap:12px; font-size:14px; }
.profit-unknown { margin:8px 0 0; padding-left:20px; }
/* Dönem kartları gerçek bağlantıdır; dokunmatik ve klavyeyle satış kayıtlarına açılır. */
a.report-dashboard-metric { color:inherit; text-decoration:none; display:flex; }
a.report-dashboard-metric:hover { box-shadow:0 5px 18px rgba(15,23,42,.12); }
a.report-dashboard-metric:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
/* Fişte indirim, ödeme ve borç birbirinden ayrılır. */
.receipt-totals { max-width:760px; background:#fff; border:1px solid #dce4ed; border-radius:14px; padding:16px; margin:20px 0; }
.receipt-totals>div { display:flex; justify-content:space-between; gap:18px; padding:10px 8px; }
.receipt-totals strong { white-space:nowrap; }
.receipt-total-net { border-top:1px solid #dce4ed; background:#f2f6fa; }
.receipt-total-debt { border-top:1px solid #dce4ed; background:#fff4e8; color:#7c3d08; font-size:18px; }
.receipt-product { display:flex; align-items:center; gap:12px; min-width:210px; white-space:normal; }
.receipt-product img { object-fit:contain; border-radius:8px; background:#f4f6f8; flex-shrink:0; }
.receipt-no-photo { display:grid; place-items:center; width:56px; min-width:56px; height:68px; background:#f1f4f7; border-radius:8px; font-size:10px; color:#64748b; }
/* Simgeler (Views/Shared/_IconSprite.cshtml): yazı rengini alır, yazıyla birlikte büyür. */
.ui-icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.ui-icon { display:inline-block; width:1.15em; height:1.15em; flex:none; vertical-align:-.2em; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
a > .ui-icon:first-child, button > .ui-icon:first-child, .pay-label > .ui-icon:first-child { margin-right:.4em; }
/* Üst menü: başlıklar hiçbir genişlikte kelime kelime bölünmez. Çok başlıklı rollerde menü 1200 px'ten itibaren
   yatay açılır (bkz. _Layout); beklenmedik bir durumda bile başlık bütün halinde ikinci satıra geçer. */
.app-nav .nav-link { white-space:nowrap; padding:8px 10px !important; }
.app-nav .navbar-nav { flex-wrap:wrap; row-gap:4px; }
.app-nav button.nav-link { border:0; background:none; }
.app-nav .dropdown-menu { min-width:220px; padding:6px; border:1px solid #eaecef; border-radius:12px; box-shadow:0 12px 28px rgba(16,27,46,.12); }
.app-nav .dropdown-item { display:flex; align-items:center; gap:9px; padding:9px 12px; border-radius:8px; color:#2b3442; font-size:14px; font-weight:600; }
.app-nav .dropdown-item:hover { background:#eef2f8; color:var(--sb-navy); }
.app-nav .dropdown-item.active, .app-nav .dropdown-item:active { background:var(--sb-navy); color:#fff; }
.app-nav .dropdown-item .ui-icon { margin:0; }
.app-nav-user { max-width:140px; }
@media (min-width:1400px) { .app-nav-user { max-width:190px; } }
/* Yatay menü 992–1199 px'te ad için yer bırakmaz; ad Çıkış düğmesinin ipucunda görünür. */
@media (min-width:992px) and (max-width:1199.98px) { .navbar-expand-lg .app-nav-user { display:none; } }
/* Menü açılır listeye döndüğünde hesap alanı en altta, ayrı satırda durur. */
@media (max-width:991.98px) { .navbar-expand-lg .app-nav-account { margin:.65rem 0 0; padding:.7rem 0 0; border-top:1px solid #ebedf0; } }
@media (max-width:1199.98px) { .navbar-expand-xl .app-nav-account { margin:.65rem 0 0; padding:.7rem 0 0; border-top:1px solid #ebedf0; } }
/* Ana sayfa kartları */
.dash-icon .ui-icon { width:22px; height:22px; }
.dashboard-empty { margin-top:22px; }

/* Fiş: tahsilat üstte durur; seyrek kullanılan işlemlerin başlığı görünür, formu tıklanınca açılır. */
.receipt-tools { display:grid; gap:14px; align-items:start; margin:18px 0 26px; }
.receipt-tools>.store-collection { margin:0; max-width:none; }
.receipt-tools>.store-collection h2 { font-size:20px; margin-bottom:6px; }
.receipt-folds { display:grid; gap:14px; min-width:0; }
.receipt-folds .app-alert { margin:0; }
.receipt-fold { background:#fff; border:1px solid #e0e3e7; border-radius:12px; padding:14px 18px; }
.receipt-fold summary { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:14px; align-items:center; cursor:pointer; list-style:none; border-radius:8px; }
.receipt-fold summary::-webkit-details-marker { display:none; }
.receipt-fold summary h2 { grid-column:1; margin:0; font-size:16px; }
.receipt-fold summary span { grid-column:1; margin-top:3px; color:#757a81; font-size:12.5px; line-height:1.45; }
.receipt-fold summary::after { content:""; grid-column:2; grid-row:1 / span 2; width:10px; height:10px; margin:0 6px 5px; border-right:2px solid #5d6470; border-bottom:2px solid #5d6470; transform:rotate(45deg); transition:transform .15s; }
.receipt-fold[open] summary::after { margin:5px 6px 0; transform:rotate(-135deg); }
.receipt-fold summary:focus-visible { outline:2px solid #15243d; outline-offset:4px; }
.receipt-fold .store-collection { max-width:none; margin:14px 0 0; padding:0; border:0; border-radius:0; background:none; }
@media(min-width:900px){.receipt-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
/* Veresiye tahsilatında IBAN alanları (hesap, gönderen, zorunlu onay). */
.store-collection-iban { margin:4px 0 8px; padding:12px; border:1px solid #cfe7e3; border-radius:10px; background:#f3faf9; }
.store-collection-iban[hidden] { display:none; }
.store-collection-iban legend { float:none; width:auto; margin:0; font-size:14px; font-weight:700; color:#0f5f58; }
.store-collection .store-collection-confirm { display:flex; align-items:center; gap:8px; padding:9px 11px; border-radius:9px; background:#fff8e6; color:#7a4b00; }
.store-collection .store-collection-confirm input { display:inline-block; width:18px; height:18px; flex:none; margin:0; }
/* IBAN hesapları yönetimi. */
.bank-accounts { display:grid; gap:10px; margin-bottom:22px; }
.bank-account { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; border:1px solid #e3e8ef; border-radius:13px; background:#fff; }
.bank-account.is-passive { background:#f7f8fa; color:#6b7280; }
.bank-account-main { display:flex; align-items:center; gap:12px; min-width:0; }
.bank-account-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:11px; background:#e3f4f1; color:#0f766e; flex:none; }
.bank-account-iban { margin:3px 0; font:700 15px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.02em; color:#0f172a; overflow-wrap:anywhere; }
.bank-account.is-passive .bank-account-iban { color:#6b7280; }
.bank-account small { color:#6b7280; }
.bank-account-actions { display:flex; gap:8px; align-items:center; }
.bank-account-actions form { margin:0; }
.bank-empty { padding:16px; border:1px dashed #d9dde4; border-radius:12px; background:#f9fafb; color:#6b7280; }
.bank-form-card { max-width:760px; padding:18px; border:1px solid #e3e8ef; border-radius:14px; background:#fff; }
.bank-form-card h2 { margin:0 0 10px; font-size:18px; }
.bank-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 14px; }
.bank-form label { display:grid; gap:5px; font-weight:600; font-size:14px; }
.bank-form input { box-sizing:border-box; width:100%; padding:10px; border:1px solid #d0d6df; border-radius:8px; font:inherit; }
.bank-form .bank-form-iban { grid-column:1 / -1; }
.bank-form .bank-form-iban input { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.03em; text-transform:uppercase; }
.bank-form-actions, .bank-form .form-text { grid-column:1 / -1; }
.bank-form-actions { display:flex; gap:8px; margin-top:8px; }
@media(max-width:600px){ .bank-form { grid-template-columns:1fr; } .bank-account-actions { width:100%; } .bank-account-iban { font-size:12.5px; letter-spacing:0; } }
