/* Member POS — small additions on top of app.css (same dark + gold design system). */
.pos-brand-ico { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; background:rgba(212,168,79,.14); color:var(--gold); font-size:1.1rem; flex:0 0 auto; }
.pos-app .sidebar form .nav-link { cursor:pointer; color:var(--muted); }
.pos-app .sidebar form .nav-link:hover { color:var(--white); background:var(--glass); }

/* Sign-in pages */
.pos-auth .auth-card { max-width:460px; }
.pos-auth .pos-mark { width:56px; height:56px; border-radius:16px; display:grid; place-items:center; margin:0 auto .75rem; background:linear-gradient(145deg,rgba(212,168,79,.25),rgba(212,168,79,.06)); color:var(--gold); font-size:1.6rem; border:1px solid rgba(212,168,79,.35); }
.pos-code-input { text-transform:uppercase; letter-spacing:.18em; font-weight:700; }

/* PIN pad */
.pin-users { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:.6rem; }
.pin-user { display:flex; flex-direction:column; align-items:center; gap:.35rem; padding:.9rem .5rem; border-radius:14px; border:1px solid var(--line); background:var(--glass); color:var(--white); cursor:pointer; transition:border-color .15s, transform .15s; }
.pin-user:hover, .pin-user:focus-visible { border-color:var(--gold); transform:translateY(-1px); outline:none; }
.pin-user input { position:absolute; opacity:0; pointer-events:none; }
.pin-user:has(input:checked) { border-color:var(--gold); background:rgba(212,168,79,.10); }
.pin-user .avatar-initial { width:42px; height:42px; font-size:1rem; }
.pin-dots { display:flex; justify-content:center; gap:.6rem; margin:1rem 0; }
.pin-dots span { width:14px; height:14px; border-radius:50%; border:2px solid var(--gold); }
.pin-dots span.on { background:var(--gold); }
.pin-pad { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; max-width:280px; margin:0 auto; }
.pin-pad button { height:58px; border-radius:14px; border:1px solid var(--line); background:var(--surface-2,#2B3441); color:var(--white); font-size:1.35rem; font-weight:700; }
.pin-pad button:hover, .pin-pad button:focus-visible { border-color:var(--gold); outline:none; }

/* Permission matrix */
.pos-matrix th, .pos-matrix td { white-space:nowrap; }
.pos-matrix td.perm-label { white-space:normal; min-width:220px; }
.pos-matrix .form-check-input { width:1.15rem; height:1.15rem; }

/* Setup checklist */
.pos-check { display:flex; gap:.75rem; align-items:flex-start; padding:.7rem 0; border-bottom:1px solid var(--line); }
.pos-check:last-child { border-bottom:0; }
.pos-check i { font-size:1.15rem; margin-top:.1rem; }
.pos-check.done i { color:var(--success,#38B26B); }
.pos-check.todo i { color:var(--muted); }

.ledger-group td { font-weight:700; color:var(--gold); background:rgba(212,168,79,.04); }
.ledger-child td:first-child { padding-left:2rem; }

/* filter bars: full-width fields on phones */
@media (max-width: 575.98px) {
  .filter-bar > .form-control, .filter-bar > .form-select, .filter-bar > div { max-width: none !important; flex: 1 1 100%; }
  .filter-bar > div > .form-control { width: 100%; }
}

/* Tabs */
.pos-tabs { gap:.35rem; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
.pos-tabs::-webkit-scrollbar { display:none; }
.pos-tabs .nav-link { color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:.4rem .95rem; font-size:.88rem; white-space:nowrap; background:var(--glass); }
.pos-tabs .nav-link:hover { color:var(--white); border-color:var(--line-strong); }
.pos-tabs .nav-link.active { color:#1a1206; background:var(--gold-grad); border-color:transparent; font-weight:700; }

/* Search suggestions */
.pos-suggest { z-index:30; max-height:320px; overflow:auto; border-radius:12px; top:calc(100% + 4px); }
.pos-suggest .list-group-item { background:var(--surface-2); color:var(--white); border-color:var(--line); font-size:.9rem; }
.pos-suggest .list-group-item-action:hover, .pos-suggest .list-group-item-action:focus { background:rgba(212,168,79,.14); color:var(--white); outline:none; }

.empty-state i { opacity:.85; }

/* Barcode labels */
.label-preview-wrap { overflow:auto; max-height:70vh; background:#5b6270; border-radius:12px; padding:16px; }
.label-sheet { width:max-content; margin:0 auto; }
.label-page { display:grid; box-sizing:border-box; background:#fff; color:#000; margin:0 auto 16px; box-shadow:0 6px 24px rgba(0,0,0,.35); overflow:hidden; font-family:Arial, Helvetica, sans-serif; }
.label-cell { box-sizing:border-box; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; overflow:hidden; padding:.8mm 1mm; line-height:1.1; outline:1px dashed #d5d5d5; outline-offset:-1px; }
.label-cell.empty { outline-color:#eee; }
.label-cell .l-shop { font-size:.8em; color:#333; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.label-cell .l-name { font-weight:700; max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.label-cell .l-bc { max-width:100%; height:auto; max-height:58%; display:block; margin:.3mm 0; }
.label-cell .l-price { font-weight:800; font-size:1.15em; }
.label-cell .l-code { font-family:monospace; }
@media print {
  body.printing-labels { background:#fff !important; }
  body.printing-labels .sidebar, body.printing-labels .sidebar-backdrop, body.printing-labels .admin-topbar, body.printing-labels .no-print,
  body.printing-labels .alert, body.printing-labels .support-banner { display:none !important; }
  body.printing-labels .admin-shell, body.printing-labels .admin-main, body.printing-labels .admin-content { display:block !important; margin:0 !important; padding:0 !important; background:#fff !important; min-height:0 !important; }
  body.printing-labels .label-preview-card { border:0 !important; padding:0 !important; margin:0 !important; background:none !important; box-shadow:none !important; backdrop-filter:none !important; }
  body.printing-labels .label-preview-wrap { overflow:visible; max-height:none; background:none; padding:0; border-radius:0; }
  body.printing-labels .label-page { margin:0; box-shadow:none; break-after:page; page-break-after:always; }
  body.printing-labels .label-page:last-child { break-after:auto; page-break-after:auto; }
  body.printing-labels .label-cell { outline:none; }
}

/* Printing back-office pages (statements, reports, re-order list): white paper, no menus */
.print-only { display:none; }
@media print {
  body.pos-app:not(.printing-labels) { background:#fff !important; color:#000 !important; }
  body.pos-app:not(.printing-labels) .sidebar, body.pos-app:not(.printing-labels) .sidebar-backdrop, body.pos-app:not(.printing-labels) .admin-topbar,
  body.pos-app:not(.printing-labels) .no-print, body.pos-app:not(.printing-labels) .alert, body.pos-app:not(.printing-labels) .pos-tabs, body.pos-app:not(.printing-labels) .filter-bar { display:none !important; }
  body.pos-app:not(.printing-labels) .admin-shell, body.pos-app:not(.printing-labels) .admin-main, body.pos-app:not(.printing-labels) .admin-content { display:block !important; margin:0 !important; padding:0 !important; background:#fff !important; }
  body.pos-app:not(.printing-labels) .col-xl-8, body.pos-app:not(.printing-labels) .col-lg-8 { width:100% !important; }
  body.pos-app:not(.printing-labels) .card-glass, body.pos-app:not(.printing-labels) .stat-card { background:#fff !important; border:1px solid #ccc !important; box-shadow:none !important; color:#000 !important; backdrop-filter:none !important; break-inside:avoid; }
  body.pos-app:not(.printing-labels) .data-table th, body.pos-app:not(.printing-labels) .data-table td { color:#000 !important; border-color:#ddd !important; background:#fff !important; }
  body.pos-app:not(.printing-labels) .text-muted2, body.pos-app:not(.printing-labels) .text-gold, body.pos-app:not(.printing-labels) .text-warning, body.pos-app:not(.printing-labels) .text-success { color:#333 !important; }
  body.pos-app:not(.printing-labels) a { color:#000 !important; text-decoration:none; }
  .print-only { display:block !important; }
}
.bar-track { height:6px; border-radius:999px; background:var(--glass); overflow:hidden; }
.bar-track > span { display:block; height:100%; background:var(--gold-grad); border-radius:999px; }

/* Reports */
.pos-app .chip { display:inline-block; border:1px solid var(--line); background:var(--glass); color:var(--muted); border-radius:999px; padding:.35rem .9rem; font-size:.85rem; font-weight:600; text-decoration:none; }
.pos-app .chip:hover { color:var(--white); border-color:var(--line-strong); }
.pos-app .chip.active { background:var(--gold-grad); color:#1a1206; border-color:transparent; }
.filter-bar .btn.active { border-color:var(--gold); color:var(--gold); }
.day-chart { display:flex; align-items:flex-end; gap:3px; height:180px; padding-top:8px; }
.day-col { flex:1 1 0; min-width:0; height:100%; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:4px; }
.day-bar { width:100%; max-width:34px; min-height:2px; background:var(--gold-grad); border-radius:6px 6px 2px 2px; opacity:.9; }
.day-col:hover .day-bar { opacity:1; box-shadow:0 0 0 2px rgba(241,212,138,.35); }
.day-lbl { font-size:.62rem; color:var(--muted); height:12px; }
.fin-h { font-weight:700; color:var(--gold); margin-top:1rem; padding-bottom:.25rem; border-bottom:1px solid var(--line); }
.fin-row { display:flex; justify-content:space-between; gap:1rem; padding:.3rem 0; font-size:.92rem; }
.fin-row span:last-child { white-space:nowrap; }
.fin-sub { border-top:1px dashed var(--line); font-weight:600; color:var(--muted); }
.fin-total { border-top:2px solid var(--line-strong); font-weight:800; font-size:1.05rem; margin-top:.5rem; padding-top:.5rem; }
.data-table tfoot td { border-top:2px solid var(--line-strong); }
@media print { .day-bar { background:#999 !important; } .fin-h { color:#000 !important; } }
