/* ============================================================================
   CVN Admin — Finance module styles (POS · Accounting · Payroll)
   Uses the existing admin design tokens (--surface, --ink, --brand, etc.)
   ========================================================================== */

/* default size for all finance icons; container rules below override where a
   larger icon is intended (empty cart, custom tile, etc.) */
.fin-ic{width:1.05em;height:1.05em;flex:none}

/* ---------- sub-navigation ---------- */
.fin-subnav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.6rem;border-bottom:1px solid var(--line);padding-bottom:1rem}
.fin-subtab{display:inline-flex;align-items:center;gap:.55rem;padding:.6rem 1.1rem;border-radius:var(--radius-pill);
  font-weight:600;font-size:.92rem;color:var(--ink-3);background:var(--surface-2);border:1px solid var(--line);transition:.2s}
.fin-subtab svg{width:1.05em;height:1.05em}
.fin-subtab:hover{color:var(--ink);border-color:var(--line-2)}
.fin-subtab.on{background:var(--brand);color:var(--on-brand);border-color:transparent;box-shadow:var(--shadow-brand)}

.fin-sub2{display:inline-flex;flex-wrap:wrap;gap:.3rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:3px;margin-bottom:1.4rem}
.fin-sub2__b{padding:.5rem 1rem;border-radius:var(--radius-pill);font-weight:600;font-size:.85rem;color:var(--ink-3);transition:.2s;white-space:nowrap}
.fin-sub2__b.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}
.pr-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ============================================================================
   POINT OF SALE
   ========================================================================== */
.pos{display:grid;gap:1.2rem}
.pos--grid,.pos--list{grid-template-columns:1fr minmax(340px,400px)}
@media (max-width:900px){.pos--grid,.pos--list{grid-template-columns:1fr}}

.pos__browse{min-width:0}
.pos__bhead{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}
.pos__scan{flex:1;min-width:220px;display:flex;align-items:center;gap:.6rem;background:var(--surface);border:1.5px solid var(--line);
  border-radius:var(--radius);padding:.2rem .9rem}
.pos__scan svg{width:20px;height:20px;color:var(--brand-ink);flex:none}
.pos__scan input{flex:1;border:none;background:none;padding:.75rem 0;font-size:.95rem;color:var(--ink);outline:none}
.pos__layout button{font-size:.8rem;padding:.45rem .9rem}

/* tile grid */
.pos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}
.pos-tile{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;text-align:left;transition:.16s;box-shadow:var(--shadow-sm)}
.pos-tile:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-2px)}
.pos-tile:active{transform:translateY(0)}
.pos-tile__img{aspect-ratio:16/10;background:var(--surface-3) center/cover no-repeat;position:relative;
  background-image:repeating-linear-gradient(135deg,var(--surface-2),var(--surface-2) 9px,var(--surface-3) 9px,var(--surface-3) 18px)}
.pos-tile__img em{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-mono);font-size:.7rem;
  font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:#fff;background:oklch(0 0 0 / .45)}
.pos-tile__b{font-weight:600;font-size:.86rem;line-height:1.3;padding:.6rem .7rem .1rem;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pos-tile__p{font-family:var(--font-mono);font-weight:600;font-size:.85rem;color:var(--brand-ink);padding:.2rem .7rem .7rem}
.pos-tile--custom{align-items:center;justify-content:center;padding:1.4rem;border-style:dashed;color:var(--brand-ink);gap:.4rem;min-height:120px}
.pos-tile--custom svg{width:26px;height:26px}
.pos-tile--custom span{display:flex;flex-direction:column;align-items:center;font-weight:700;font-size:.9rem}
.pos-tile--custom small{font-weight:500;color:var(--ink-3);font-size:.76rem}
.pos-tile[data-oos] .pos-tile__b{color:var(--ink-3)}

/* list rows */
.pos-list{display:flex;flex-direction:column;gap:.4rem}
.pos-lrow{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:.75rem 1rem;text-align:left;transition:.14s}
.pos-lrow:hover{border-color:var(--brand)}
.pos-lrow__t{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.pos-lrow__t b{font-weight:600;font-size:.92rem}
.pos-lrow__t small{color:var(--ink-3);font-size:.76rem}
.pos-lrow__t .oos{color:oklch(0.6 0.18 25)}
.pos-lrow__p{font-family:var(--font-mono);font-weight:600;color:var(--brand-ink);flex:none}
.pos-lrow--custom{border-style:dashed;color:var(--brand-ink)}
.pos-lrow--custom small{color:var(--ink-3);font-weight:500}
.pos-emptyb,.pos-cart-empty{text-align:center;color:var(--ink-3);padding:2rem 1rem;font-size:.9rem}

/* cart */
.pos__cart{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);
  display:flex;flex-direction:column;overflow:hidden;position:sticky;top:1rem;max-height:calc(100vh - 2rem)}
.pos-cust{display:flex;gap:.5rem;flex-wrap:wrap;padding:.9rem 1rem;border-bottom:1px solid var(--line);background:var(--surface-2)}
.pos-chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;padding:.4rem .7rem;border-radius:var(--radius-pill);
  background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}
.pos-chip svg{width:14px;height:14px;color:var(--ink-3)}
.pos-chip button{margin-left:.1rem;color:var(--ink-3);font-size:1.1rem;line-height:.6;font-weight:400}
.pos-chip--add{border-style:dashed;color:var(--brand-ink);cursor:pointer}
.pos-chip--add svg{color:var(--brand-ink)}

.pos-lines{flex:1;overflow-y:auto;padding:.4rem .5rem;min-height:120px}
.pos-cart-empty{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:2.6rem 1rem}
.pos-cart-empty svg{width:40px;height:40px;color:var(--line-2)}
.pos-cart-empty p{font-weight:600;color:var(--ink-2)}
.pos-cart-empty span{font-size:.82rem}
.pos-line{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.6rem;padding:.55rem;border-radius:var(--radius-sm)}
.pos-line:hover{background:var(--surface-2)}
.pos-line__m{min-width:0;cursor:pointer}
.pos-line__m b{display:block;font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pos-line__m small{color:var(--ink-3);font-size:.74rem}
.pos-qty{display:flex;align-items:center;gap:.15rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);padding:2px}
.pos-qty button{width:24px;height:24px;border-radius:50%;font-size:1rem;font-weight:700;color:var(--ink-2);display:grid;place-items:center}
.pos-qty button:hover{background:var(--surface-3)}
.pos-qty input{width:32px;text-align:center;border:none;background:none;font-weight:600;font-size:.85rem;color:var(--ink);outline:none}
.pos-line__p{font-family:var(--font-mono);font-weight:600;font-size:.85rem;white-space:nowrap}
.pos-line__x{color:var(--ink-3);width:24px;height:24px;display:grid;place-items:center;border-radius:6px}
.pos-line__x svg{width:15px;height:15px}
.pos-line__x:hover{color:oklch(0.58 0.2 25);background:oklch(0.95 0.06 25)}

.pos-tot{padding:.9rem 1.1rem;border-top:1px solid var(--line);background:var(--surface-2);display:flex;flex-direction:column;gap:.35rem}
.pos-tot__r{display:flex;justify-content:space-between;align-items:baseline;font-size:.9rem;color:var(--ink-2)}
.pos-tot__r b{font-family:var(--font-mono);font-weight:600;color:var(--ink)}
.pos-tot__r em{font-style:normal;color:var(--ink-3);font-size:.8rem}
.pos-tot__grand{margin-top:.2rem;padding-top:.5rem;border-top:1px dashed var(--line-2);font-size:1.05rem}
.pos-tot__grand span{font-weight:700;color:var(--ink)}
.pos-tot__grand b{font-size:1.35rem;color:var(--brand-ink)}
.pos-tot__pts{margin-top:.3rem;color:oklch(0.62 0.15 42)}
.pos-tot__pts span{display:inline-flex;align-items:center;gap:.35rem;font-weight:600}
.pos-tot__pts svg{width:14px;height:14px}
.pos-tot__pts b{color:oklch(0.62 0.15 42)}

/* gift card tile + modal */
.pos-tile--gift{background:linear-gradient(135deg,oklch(0.62 0.15 42 / .14),oklch(0.62 0.15 42 / .05));border-color:oklch(0.62 0.15 42 / .35)}
.pos-tile--gift svg{color:oklch(0.6 0.15 42)}
.gc-denoms{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.3rem}
.gc-chip{padding:.6rem 1rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface-2);font-weight:700;color:var(--ink-2)}
.gc-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.gc-note{font-size:.78rem;color:var(--ink-3);margin:.7rem 0 0}
.pos-cart-actions{display:flex;align-items:center;gap:.6rem;padding:.7rem 1.1rem;border-top:1px solid var(--line);flex-wrap:wrap}
.pos-exempt{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--ink-2);cursor:pointer}
.pos-cart-actions .btn--primary,.pos__cart>.btn--primary{margin:0 1.1rem 1.1rem}
.btn--block{width:auto}
.pos__cart>.btn{margin:0 1.1rem 1.1rem}

/* pay modal */
.pos-pay__due{display:flex;justify-content:space-between;align-items:baseline;padding:1rem 1.1rem;background:var(--brand-soft);border-radius:var(--radius);margin-bottom:1rem}
.pos-pay__due span{font-weight:600;color:var(--brand-ink)}
.pos-pay__due b{font-family:var(--font-mono);font-size:1.5rem;color:var(--brand-ink)}
.pos-pay__types{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}
.pos-paybtn{padding:1rem .6rem;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--surface-2);font-weight:600;font-size:.88rem;transition:.15s}
.pos-paybtn:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.pos-pay__lines{display:flex;flex-direction:column;gap:.4rem}
.pos-pay__row{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.9rem}
.pos-pay__row b{margin-left:auto;font-family:var(--font-mono);font-weight:600}
.pos-pay__row button{color:var(--ink-3);font-size:1.1rem}
.pos-pay__foot{display:flex;justify-content:space-between;align-items:baseline;margin:1rem 0;padding-top:.8rem;border-top:1px dashed var(--line-2)}
.pos-pay__bal span,.pos-pay__change span{font-size:.82rem;color:var(--ink-3);display:block}
.pos-pay__bal b{font-family:var(--font-mono);font-size:1.15rem;font-weight:700}
.pos-pay__change{text-align:right}
.pos-pay__change b{font-family:var(--font-mono);font-size:1.15rem;font-weight:700;color:oklch(0.5 0.14 150)}
.pos-pay__partial{display:flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:600;color:var(--ink-2);padding:.7rem .8rem;margin-bottom:.8rem;border:1.5px dashed var(--line-2);border-radius:var(--radius);cursor:pointer}
.pos-pay__partial input{width:1.05rem;height:1.05rem;accent-color:var(--brand)}

/* receipt */
.pos-receipt{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.4rem;
  font-family:var(--font-mono);font-size:.8rem;max-height:52vh;overflow-y:auto;color:var(--ink)}
.pos-receipt .center{text-align:center}.pos-receipt .r{text-align:right}.pos-receipt .muted{color:var(--ink-3)}
.pos-receipt .sm{font-size:.72rem}.pos-receipt .big{font-size:1.05rem;font-weight:700}
.pos-receipt table{width:100%;border-collapse:collapse}.pos-receipt td{padding:2px 0;vertical-align:top}
.pos-receipt .hr{border-top:1px dashed var(--line-2);margin:.6rem 0}
.pos-receipt .tot{border-top:2px solid var(--ink);font-weight:700}
.pos-receipt h1{font-family:var(--font-display);font-size:1.1rem}
.pos-receipt-actions{display:flex;gap:.6rem;margin-top:1rem}

.pos-hist__amt{font-family:var(--font-mono);font-weight:700;flex:none;white-space:nowrap}

/* pick lists (customer / repair / employee) */
.pos-pick-search{width:100%;padding:.75rem 1rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);margin-bottom:.8rem;outline:none}
.pos-pick-list{display:flex;flex-direction:column;gap:.4rem;max-height:50vh;overflow-y:auto}
.pos-pick{display:flex;flex-direction:column;gap:.1rem;text-align:left;padding:.7rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2);transition:.14s}
.pos-pick:hover{border-color:var(--brand);background:var(--brand-soft)}
.pos-pick b{font-weight:600;font-size:.9rem}
.pos-pick small{color:var(--ink-3);font-size:.78rem}

/* ============================================================================
   SHARED MODAL (POS / Accounting / Payroll)
   ========================================================================== */
.pos-modal{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem}
.pos-modal__scrim{position:absolute;inset:0;background:oklch(0 0 0 / .5);backdrop-filter:blur(2px)}
.pos-modal__card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);width:min(440px,100%);max-height:92vh;display:flex;flex-direction:column;animation:posPop .2s var(--ease)}
.pos-modal--wide .pos-modal__card{width:min(640px,100%)}
@keyframes posPop{from{opacity:0;transform:translateY(12px) scale(.98)}}
.pos-modal__head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.3rem;border-bottom:1px solid var(--line)}
.pos-modal__head h3{font-size:1.15rem}
.pos-modal__x{font-size:1.5rem;color:var(--ink-3);line-height:.6;font-weight:300}
.pos-modal__body{padding:1.3rem;overflow-y:auto}
@media (prefers-reduced-motion:reduce){.pos-modal__card{animation:none}}

/* ============================================================================
   ACCOUNTING
   ========================================================================== */
.acc-range button{font-size:.8rem;padding:.45rem .85rem}
.acc-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-bottom:1.4rem}
@media (max-width:820px){.acc-kpis{grid-template-columns:repeat(2,1fr)}}
.acc-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.2rem}
.acc-kpi__l{font-size:.78rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.acc-kpi__v{font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--ink)}
.acc-kpi__s{font-size:.76rem;color:var(--ink-3);font-family:var(--font-mono)}
.acc-kpi.good .acc-kpi__v{color:oklch(0.5 0.14 150)}
.acc-kpi.warn .acc-kpi__v{color:oklch(0.55 0.18 45)}
/* aged AR/AP matrix */
.acc-age{width:100%;border-collapse:collapse;font-size:.86rem}
.acc-age th,.acc-age td{padding:.55rem .65rem;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.acc-age th:first-child,.acc-age td:first-child{text-align:left}
.acc-age thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700;border-bottom:1px solid var(--line)}
.acc-age tbody td{font-family:var(--font-mono);color:var(--ink-2)}
.acc-age tbody td:first-child{font-family:var(--font-display);font-weight:600;color:var(--ink)}
.acc-age tbody tr:hover{background:var(--surface-2)}
.acc-age tbody td.warn{color:oklch(0.55 0.16 65)}
.acc-age tbody td.over{color:oklch(0.55 0.18 25);font-weight:600}
.acc-age tfoot td{font-weight:700;color:var(--ink);border-top:2px solid var(--ink);border-bottom:0;font-family:var(--font-mono)}
.acc-age tfoot td:first-child{font-family:var(--font-display)}
/* bank reconciliation */
.acc-recbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1.2rem}
.acc-recbar .afield{margin:0;flex:1;min-width:180px}
.acc-recrow{display:flex;align-items:center;gap:.85rem;padding:.6rem .9rem;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:.4rem;background:var(--surface);cursor:pointer;transition:.15s}
.acc-recrow:hover{background:var(--surface-2)}
.acc-recrow.on{border-color:var(--brand);background:var(--brand-soft)}
.acc-recrow input{width:18px;height:18px;flex:none;accent-color:var(--brand);cursor:pointer}
.acc-recrow__m{flex:1;min-width:0}
.acc-recrow__m b{font-weight:600;font-size:.9rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-recrow__m span{font-size:.76rem;color:var(--ink-3);font-family:var(--font-mono)}
.acc-recrow__a{font-family:var(--font-mono);font-weight:600;flex:none}
/* export centre */
.acc-exp{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
@media (max-width:820px){.acc-exp{grid-template-columns:1fr}}
.acc-expcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.55rem}
.acc-expcard h4{font-size:.98rem;display:flex;align-items:center;gap:.5rem}
.acc-expcard p{font-size:.82rem;color:var(--ink-3);line-height:1.5;flex:1;margin:0}
.acc-expcard .btn{align-self:flex-start}
.pos-refund{display:flex;flex-direction:column;gap:.9rem}
.pos-refund__warn{padding:.6rem .8rem;border-radius:10px;background:oklch(0.95 0.06 60);color:oklch(0.42 0.12 45);font-size:.85rem}
.pos-refund__lines{display:flex;flex-direction:column;gap:.5rem;max-height:340px;overflow:auto}
.pos-refund__row{display:flex;align-items:center;gap:1rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:12px}
.pos-refund__info{flex:1;min-width:0}.pos-refund__info b{display:block;font-size:.9rem}.pos-refund__info small{color:var(--ink-3);font-size:.76rem}
.pos-refund__qty{display:flex;align-items:center;gap:.3rem;flex:none}
.pos-refund__qty button{width:30px;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer;font-size:1rem;line-height:1;color:var(--ink)}
.pos-refund__qty input{width:52px;text-align:center;font-family:var(--font-mono);font-size:.85rem}
.pos-refund__qty .pos-refund__all{width:auto;padding:0 .55rem;font-size:.74rem;font-weight:600}
.pos-refund__qty button:hover,.pos-refund__all:hover{border-color:var(--brand,#2f6fe0)}
.pos-refund__fee{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--ink-2)}.pos-refund__fee input{width:auto}
.pos-refund__totals{border-top:1px solid var(--line);padding-top:.7rem;display:flex;flex-direction:column;gap:.3rem}
.pos-refund__trow{display:flex;justify-content:space-between;font-size:.88rem;color:var(--ink-2)}
.pos-refund__trow--net{font-size:1.05rem;font-weight:700;color:var(--ink);border-top:1px dashed var(--line);padding-top:.4rem;margin-top:.15rem}
.pos-refund__dest{display:flex;flex-direction:column;gap:.35rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:12px}
.pos-refund__destl{font-size:.76rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.pos-refund__dest label{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--ink-2)}.pos-refund__dest input{width:auto}
.pos-refund__credit{text-align:center;display:flex;flex-direction:column;gap:.5rem;align-items:center}
.pos-refund__creditamt{font-family:var(--font-display);font-weight:700;font-size:2rem;color:oklch(0.5 0.14 150)}
.pos-refund__creditcode{font-family:var(--font-mono);font-size:1.15rem;letter-spacing:.08em;padding:.5rem .9rem;border:1px dashed var(--line);border-radius:10px;background:var(--surface-2)}
.gcr-info{margin:.2rem 0 .6rem;min-height:1.2rem}
.gcr-ok{font-size:.9rem;color:var(--ink-2)}.gcr-ok b{color:oklch(0.5 0.14 150)}
.gcr-bad{font-size:.85rem;color:oklch(0.55 0.18 25)}

.acc-2col{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-bottom:1.2rem}
@media (max-width:820px){.acc-2col{grid-template-columns:1fr}}
.acc-rep{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;box-shadow:var(--shadow-sm)}
.acc-rep__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.8rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.acc-rep__head h3{font-size:1.05rem}
.acc-rep__head span{font-size:.78rem;color:var(--ink-3);font-family:var(--font-mono)}
.acc-rep__h{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:.9rem 0 .3rem}
.acc-rep__r{display:flex;justify-content:space-between;align-items:baseline;padding:.32rem 0;font-size:.9rem;color:var(--ink-2)}
.acc-rep__r b{font-family:var(--font-mono);font-weight:500;color:var(--ink)}
.acc-rep__sub{border-top:1px solid var(--line);margin-top:.2rem;font-weight:600}
.acc-rep__sub span,.acc-rep__sub b{font-weight:700;color:var(--ink)}
.acc-rep__gap{height:.6rem}
.acc-rep__grand{border-top:2px solid var(--ink);margin-top:.4rem;padding-top:.5rem}
.acc-rep__grand span{font-weight:700;color:var(--ink)}
.acc-rep__grand b{font-size:1.05rem;font-weight:700;color:var(--brand-ink)}
.acc-note{display:flex;align-items:flex-start;gap:.6rem;font-size:.82rem;color:var(--ink-3);background:var(--surface-2);
  border:1px solid var(--line);border-radius:var(--radius-sm);padding:.8rem 1rem;line-height:1.5}
.acc-note svg{width:16px;height:16px;flex:none;margin-top:.1rem;color:var(--brand-ink)}

/* filing due reminders */.acc-duebar{display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem;margin-bottom:1rem;border-radius:var(--radius-sm);
  border:1px solid oklch(0.72 0.14 70 / .5);background:oklch(0.72 0.14 70 / .1);font-size:.86rem;line-height:1.4;color:var(--ink-2)}
.acc-duebar[data-state="overdue"]{border-color:oklch(0.6 0.2 25 / .5);background:oklch(0.6 0.2 25 / .1)}
.acc-duebar svg{width:18px;height:18px;flex:none;color:oklch(0.6 0.16 60)}
.acc-duebar[data-state="overdue"] svg{color:oklch(0.6 0.2 25)}
.acc-duebar span{flex:1;min-width:0}
.acc-duebar b{color:var(--ink)}
.acc-duebar .btn{flex:none}
.acc-filrow{display:flex;align-items:center;gap:.85rem;padding:.7rem .9rem;border-top:1px solid var(--line);flex-wrap:wrap}
.acc-filrow:first-child{border-top:0}
.acc-filrow__m{flex:1;min-width:180px;display:flex;flex-direction:column;gap:.15rem}
.acc-filrow__m b{font-size:.92rem;font-weight:600}
.acc-filrow__m span{font-size:.78rem;color:var(--ink-3)}
.acc-filrow__d{flex:none;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-2);min-width:110px;text-align:right}
.acc-filpill{flex:none;font-size:.74rem;font-weight:700;padding:.22em .6em;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--ink-2)}
.acc-filpill[data-state="overdue"]{background:oklch(0.6 0.2 25 / .14);color:oklch(0.55 0.2 25)}
.acc-filpill[data-state="soon"]{background:oklch(0.72 0.14 70 / .16);color:oklch(0.52 0.14 65)}
.acc-filpill[data-state="filed"]{background:oklch(0.55 0.13 150 / .14);color:oklch(0.45 0.13 150)}
[data-theme="dark"] .acc-filpill[data-state="overdue"]{color:oklch(0.8 0.16 28)}
[data-theme="dark"] .acc-filpill[data-state="soon"]{color:oklch(0.85 0.13 75)}
[data-theme="dark"] .acc-filpill[data-state="filed"]{color:oklch(0.82 0.14 150)}

/* statement auto-match */
.acc-matchbar{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.75rem 1rem;border-bottom:1px solid var(--line)}
.acc-matchbar b{font-size:.92rem}
.acc-matchbar span{flex:1;min-width:120px;font-size:.8rem;color:var(--ink-3)}
.acc-matchrow{display:flex;align-items:center;gap:.7rem;padding:.65rem 1rem;border-top:1px solid var(--line);flex-wrap:wrap}
.acc-matchrow__s{flex:none;min-width:46px;text-align:center;font-family:var(--font-mono);font-size:.74rem;font-weight:700;
  padding:.22em .4em;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--ink-2)}
.acc-matchrow__s[data-tone="good"]{background:oklch(0.55 0.13 150 / .16);color:oklch(0.42 0.13 150)}
.acc-matchrow__s[data-tone="soon"]{background:oklch(0.72 0.14 70 / .18);color:oklch(0.5 0.14 65)}
.acc-matchrow__c{flex:1;min-width:150px;display:flex;flex-direction:column;gap:.1rem;min-width:0}
.acc-matchrow__c b{font-size:.86rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acc-matchrow__c span{font-size:.76rem;color:var(--ink-3)}
.acc-matchrow__arrow{flex:none;color:var(--ink-3)}
.acc-matchrow__arrow svg{width:15px;height:15px}
.acc-matchrow__a{flex:none;font-family:var(--font-mono);font-size:.82rem;min-width:92px;text-align:right}
[data-theme="dark"] .acc-matchrow__s[data-tone="good"]{color:oklch(0.82 0.14 150)}
[data-theme="dark"] .acc-matchrow__s[data-tone="soon"]{color:oklch(0.85 0.13 75)}

/* chart of accounts */
.acc-group{margin-bottom:1.4rem}
.acc-group__h{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-bottom:.5rem}
.acc-arow{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.6rem 1rem;margin-bottom:.35rem}
.acc-arow__code{font-family:var(--font-mono);font-weight:600;color:var(--brand-ink);width:56px;flex:none}
.acc-arow__n{flex:1;font-weight:500}
.acc-arow__sys{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);background:var(--surface-3);padding:.2em .6em;border-radius:var(--radius-pill)}

/* journal / GL */
.acc-je-list{display:flex;flex-direction:column;gap:.6rem}
.acc-je{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.acc-je__top{display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--line)}
.acc-je__date{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-3);flex:none;width:90px}
.acc-je__memo{flex:1;font-weight:600;font-size:.9rem;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-je__amt{font-family:var(--font-mono);font-weight:600;flex:none}
.acc-je__x{width:26px;height:26px;flex:none;display:grid;place-items:center;color:var(--ink-3);border-radius:6px}
.acc-je__x svg{width:14px;height:14px}
.acc-je__x:hover{color:oklch(0.58 0.2 25);background:oklch(0.95 0.06 25)}
.src{font-family:var(--font-mono);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:.25em .6em;border-radius:var(--radius-pill);flex:none}
.src--pos{background:oklch(0.92 0.07 150);color:oklch(0.42 0.13 150)}
.src--payroll{background:oklch(0.9 0.08 280);color:oklch(0.45 0.15 280)}
.src--invoice{background:var(--brand-soft);color:var(--brand-ink)}
.src--bill{background:oklch(0.93 0.06 45);color:oklch(0.5 0.16 45)}
.src--manual{background:var(--surface-3);color:var(--ink-3)}
.acc-je__lines{padding:.5rem 1rem .7rem}
.acc-je__line{display:grid;grid-template-columns:1fr 100px 100px;gap:.5rem;padding:.2rem 0;font-size:.84rem;color:var(--ink-2)}
.acc-je__line .r{text-align:right;font-family:var(--font-mono)}

/* journal entry editor */
.je-head,.inv-head{display:grid;gap:.5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);padding:0 .2rem .4rem}
.je-head{grid-template-columns:1fr 110px 110px 28px}
.je-head .r{text-align:right}
.je-row{display:grid;grid-template-columns:1fr 110px 110px 28px;gap:.5rem;margin-bottom:.4rem;align-items:center}
.je-row select,.je-row input,.inv-row input,.inv-row select{padding:.55rem .6rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);font-size:.85rem;width:100%;outline:none}
.je-row button,.inv-row button{color:var(--ink-3);font-size:1.2rem}
.je-bal{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-3);margin-bottom:1rem;text-align:right}
.je-bal .ok{color:oklch(0.5 0.14 150);font-weight:700}
.je-bal .bad{color:oklch(0.58 0.2 25);font-weight:700}

/* invoice editor */
.inv-head{grid-template-columns:1fr 60px 90px 48px 28px}
.inv-row{display:grid;grid-template-columns:1fr 60px 90px 48px 28px;gap:.5rem;margin-bottom:.4rem;align-items:center}
.inv-tax{display:flex;align-items:center;gap:.25rem;font-size:.74rem;color:var(--ink-3)}

/* ============================================================================
   PAYROLL
   ========================================================================== */
.pr-td1,.pr-ytd{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1.1rem}
.pr-td1__h{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin-bottom:.7rem}
.pr-ytd__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.pr-ytd__c{display:flex;flex-direction:column}
.pr-ytd__c span{font-size:.72rem;color:var(--ink-3)}
.pr-ytd__c b{font-family:var(--font-mono);font-weight:600;font-size:.95rem}

.pr-runcfg{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1.4rem;box-shadow:var(--shadow-sm)}
@media (max-width:760px){.pr-runcfg{grid-template-columns:1fr 1fr}}
.pr-runcfg .afield{margin-bottom:0}

.pr-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}
.pr-table th{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);text-align:left;padding:.8rem 1rem;background:var(--surface-2);border-bottom:1px solid var(--line)}
.pr-table th.r,.pr-table td.r{text-align:right}
.pr-table td{padding:.7rem 1rem;border-bottom:1px solid var(--line);font-size:.88rem;font-family:var(--font-mono);color:var(--ink-2)}
.pr-table td:first-child{font-family:var(--font-display)}
.pr-table td b{color:var(--ink);font-weight:600}
.pr-sub{display:block;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-3);font-weight:400}
.pr-hrs{width:72px;text-align:right;padding:.4rem .5rem;border-radius:var(--radius-sm);background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);font-family:var(--font-mono);outline:none}
.pr-hrs:focus{border-color:var(--brand)}
.pr-table .pr-tot td{background:var(--surface-2);font-weight:700;color:var(--ink);border-top:2px solid var(--line-2);border-bottom:none}
.pr-table .pr-tot2 td{background:var(--surface-2);font-size:.78rem;color:var(--ink-3);font-family:var(--font-mono);padding-top:.2rem}
.pr-run-actions{display:flex;align-items:center;gap:.8rem;margin-top:1.2rem;flex-wrap:wrap}
.pr-yeh{margin:1.6rem 0 .8rem;font-size:1.05rem}

/* ============================================================================
   POS HARDWARE & REGISTER (pos-hardware.js)
   ========================================================================== */
/* register bar above the product browser */
.pos-regbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:.6rem .5rem .6rem .9rem;margin-bottom:1rem;border:1px solid var(--line);border-radius:var(--radius);
  background:var(--surface);box-shadow:var(--shadow-sm)}
.pos-regbar--open{border-left:3px solid oklch(0.62 0.16 150)}
.pos-regbar--closed{border-left:3px solid var(--line-2)}
.pos-regbar__load{color:var(--ink-3);font-size:.85rem;padding:.3rem}
.pos-regbar__state{display:flex;align-items:center;gap:.6rem;min-width:0}
.pos-regbar__state b{font-size:.92rem;font-weight:700}
.pos-regbar__state small{color:var(--ink-3);font-size:.8rem}
.pos-regbar__state small b{font-family:var(--font-mono);color:var(--brand-ink);font-size:.82rem}
.pos-regbar__dot{width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:none}
.pos-regbar__dot--on{background:oklch(0.62 0.16 150);box-shadow:0 0 0 3px oklch(0.62 0.16 150 / .2)}
.pos-regbar__acts{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.pos-regbar__acts .btn{white-space:nowrap}
/* device status chips */
.pos-regbar__devs{display:flex;align-items:center;gap:.35rem;padding:.3rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2)}
.pos-regbar__devs:hover{border-color:var(--brand)}
.pos-dvchip{position:relative;display:inline-flex;color:var(--ink-3)}
.pos-dvchip svg{width:18px;height:18px}
.pos-dvchip.on{color:var(--brand-ink)}
.pos-dvchip i{position:absolute;right:-2px;bottom:-2px;width:6px;height:6px;border-radius:50%;background:var(--line-2);border:1.5px solid var(--surface-2)}
.pos-dvchip.on i{background:oklch(0.62 0.16 150)}

/* cash-drawer kick popup */
.pos-drawer-pop{position:fixed;left:50%;top:1.2rem;transform:translate(-50%,-140%);z-index:700;transition:transform .35s var(--ease),opacity .35s;opacity:0;pointer-events:none}
.pos-drawer-pop.in{transform:translate(-50%,0);opacity:1}
.pos-drawer-pop__card{display:flex;align-items:center;gap:.7rem;padding:.8rem 1.2rem;border-radius:var(--radius);
  background:var(--ink);color:var(--surface);box-shadow:var(--shadow-lg)}
.pos-drawer-pop__card svg{width:26px;height:26px;color:oklch(0.75 0.14 150)}
.pos-drawer-pop__card b{font-weight:700;font-size:.95rem}
.pos-drawer-pop__card span{font-size:.8rem;opacity:.75;display:block}

/* label modal */
.lblm__opts{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.9rem}
.lblm__opts label{font-size:.82rem;font-weight:600;color:var(--ink-2)}
.lblm__opts select{padding:.5rem .7rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink);outline:none}
.lblm__dev{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-3)}
.lblm__dev svg{width:16px;height:16px}
.lblm__results{max-height:30vh;margin-bottom:.6rem}
.lblm__chosen{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.8rem}
.lblm__row{display:flex;align-items:center;gap:.7rem;padding:.5rem .7rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.lblm__rinfo{min-width:0;flex:1}
.lblm__rinfo b{display:block;font-size:.86rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lblm__rinfo small{color:var(--ink-3);font-size:.76rem;font-family:var(--font-mono)}
.lblm__rm{color:var(--ink-3);display:inline-flex}.lblm__rm svg{width:16px;height:16px}
.lblm__preview{margin-bottom:1rem}
.lblm__pvl{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:.4rem}
.lblm__pvcard{width:220px;max-width:100%;border:1px solid var(--line-2);border-radius:6px;background:#fff;color:#000;padding:.35rem .5rem;
  display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-sm)}
.lblm__pvcard .lbl{display:flex;flex-direction:column;height:100%;justify-content:space-between;gap:.15rem}
.lblm__pvcard .lbl__store{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:#555}
.lblm__pvcard .lbl__name{font-size:12px;font-weight:700;line-height:1.15;color:#000}
.lblm__pvcard .lbl__row{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.lblm__pvcard .lbl__price{font-weight:800;font-family:var(--font-mono);color:#000}
.lblm__pvcard .lbl__sku{font-size:9px;font-family:var(--font-mono);color:#555}
.lblm__pvcard .lbl__bc{text-align:center}.lblm__pvcard .lbl__bc svg{max-width:100%;height:auto}

/* X / Z report */
.pos-z__meta{font-size:.82rem;color:var(--ink-3);margin-bottom:1rem;padding-bottom:.7rem;border-bottom:1px dashed var(--line-2)}
.pos-z__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.4rem}
.pos-z__card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.6rem .7rem;display:flex;flex-direction:column;gap:.15rem}
.pos-z__k{font-size:.72rem;color:var(--ink-3)}
.pos-z__card b{font-family:var(--font-mono);font-weight:700;font-size:1rem}
.pos-z__h{margin:1.1rem 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700}
.pos-z__tenders{display:flex;flex-direction:column;gap:.25rem}
.pos-z__row{display:flex;justify-content:space-between;gap:1rem;padding:.4rem .6rem;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.88rem}
.pos-z__row b{font-family:var(--font-mono);font-weight:600}
.pos-z__row--exp{background:var(--brand-soft);color:var(--brand-ink);font-weight:700}
.pos-z__row--exp b{color:var(--brand-ink)}
.pos-z__note{margin-top:1rem;font-size:.8rem;color:var(--ink-3);font-style:italic}
/* denomination counter */
.pos-z__count{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;transition:opacity .15s}
.pos-z__den{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.pos-z__den span{flex:1;font-size:.82rem;color:var(--ink-2)}
.pos-z__den input{width:54px;padding:.35rem .4rem;border-radius:6px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);text-align:right;font-family:var(--font-mono);outline:none}
.pos-z__den input:focus{border-color:var(--brand)}
.pos-z__den b{width:66px;text-align:right;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-3)}
.pos-z__manual{display:flex;align-items:center;gap:.5rem;font-size:.84rem;font-weight:600;color:var(--ink-2);margin:.8rem 0}
.pos-z__manual input{width:1.05rem;height:1.05rem;accent-color:var(--brand)}
.pos-z__recon{display:flex;flex-direction:column;gap:.25rem;margin:.4rem 0 1rem;padding-top:.6rem;border-top:1px dashed var(--line-2)}
.pos-z__var{font-weight:700}
.pos-z__var--ok{background:oklch(0.62 0.16 150 / .14);color:oklch(0.42 0.14 150)}
.pos-z__var--ok b{color:oklch(0.42 0.14 150)}
.pos-z__var--over{background:oklch(0.72 0.15 65 / .16);color:oklch(0.5 0.15 65)}
.pos-z__var--over b{color:oklch(0.5 0.15 65)}
.pos-z__var--short{background:oklch(0.62 0.2 25 / .14);color:oklch(0.55 0.2 25)}
.pos-z__var--short b{color:oklch(0.55 0.2 25)}
.pos-z__vartag{padding:.15rem .5rem;border-radius:var(--radius-sm);font-size:.82rem}
.pos-z__vartag--ok{background:oklch(0.62 0.16 150 / .14);color:oklch(0.42 0.14 150)}
.pos-z__vartag--over{background:oklch(0.72 0.15 65 / .16);color:oklch(0.5 0.15 65)}
.pos-z__vartag--short{background:oklch(0.62 0.2 25 / .14);color:oklch(0.55 0.2 25)}

/* device settings */
.pos-dev__tog{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .9rem;margin-bottom:.5rem;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm)}
.pos-dev__tog span b{display:block;font-size:.88rem;font-weight:600}
.pos-dev__tog span small{color:var(--ink-3);font-size:.78rem}
.pos-dev__tog input{width:1.15rem;height:1.15rem;accent-color:var(--brand);flex:none}
.pos-dev__test{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}
.pos-dev__hint{font-size:.82rem;color:var(--ink-3);line-height:1.5;margin:.2rem 0 .7rem}
.pos-dev__detect{display:flex;gap:.5rem;align-items:center;margin:.2rem 0 .6rem}
.pos-dev__detect select{flex:1;min-width:0;padding:.5rem .6rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface-2);color:var(--ink);font-size:.84rem;outline:none}
.pos-dev__detect .btn{flex:none}
.pos-reg__lead{font-size:.88rem;color:var(--ink-2);margin:0 0 1rem;line-height:1.5}
/* terminal switcher */
.pos-regbar__term{white-space:nowrap}
.pos-regbar__term svg{width:15px;height:15px}
.pos-terms{display:flex;flex-direction:column;gap:.5rem}
.pos-term{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);text-align:left;transition:.14s}
.pos-term:hover{border-color:var(--brand);background:var(--brand-soft)}
.pos-term.on{border-color:var(--brand);background:var(--brand-soft)}
.pos-term__dot{width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:none}
.pos-term__dot.on{background:oklch(0.62 0.16 150);box-shadow:0 0 0 3px oklch(0.62 0.16 150 / .2)}
.pos-term__n{flex:1;min-width:0}
.pos-term__n b{display:block;font-size:.92rem;font-weight:700}
.pos-term__n small{color:var(--ink-3);font-size:.78rem}
.pos-term__cur{font-size:.72rem;font-weight:700;color:var(--brand-ink);text-transform:uppercase;letter-spacing:.06em}
/* camera scan */
.pos__cam{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:none;border-radius:var(--radius-sm);color:var(--brand-ink);background:var(--brand-soft)}
.pos__cam:hover{background:var(--brand);color:#fff}
.pos__cam svg{width:20px;height:20px}
.pos-scan{display:flex;flex-direction:column;gap:.9rem}
.pos-scan__cam{position:relative;aspect-ratio:4/3;width:100%;background:#000;border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}
.pos-scan__cam video{width:100%;height:100%;object-fit:cover}
.pos-scan__ret{position:absolute;left:12%;right:12%;top:38%;bottom:38%;border:2px solid oklch(0.85 0.16 150);border-radius:10px;box-shadow:0 0 0 100vmax oklch(0 0 0 / .35)}
.pos-scan__hint{position:absolute;left:0;right:0;bottom:.7rem;text-align:center;color:#fff;font-family:var(--font-mono);font-size:.82rem;text-shadow:0 1px 3px #000}
.pos-scan__hint.hit{color:oklch(0.85 0.16 150);font-weight:700}
.pos-scan__no{display:flex;flex-direction:column;align-items:center;gap:.7rem;padding:1.4rem;text-align:center;color:var(--surface)}
.pos-scan__no svg{width:34px;height:34px;opacity:.7}
.pos-scan__no p{font-size:.86rem;line-height:1.5;color:oklch(0.9 0.01 260)}
.pos-scan__log{display:flex;flex-direction:column;gap:.3rem;max-height:22vh;overflow-y:auto}
.pos-scan__row{display:flex;align-items:center;gap:.7rem;padding:.4rem .7rem;background:var(--surface-2);border-radius:var(--radius-sm);font-size:.84rem}
.pos-scan__row time{color:var(--ink-3);font-size:.74rem;font-family:var(--font-mono)}
.pos-scan__code{font-family:var(--font-mono);font-weight:600}
@media (max-width:560px){.pos-z__grid{grid-template-columns:repeat(2,1fr)}.pos-z__count{grid-template-columns:1fr}}

/* loyalty at checkout */
.pos-chip--loy{color:oklch(0.55 0.14 85)!important;border-color:oklch(0.7 0.13 85 / .5)!important}
.pos-chip--loy svg{color:oklch(0.6 0.14 85)}
.pos-chip__pts{font-style:normal;font-family:var(--font-mono);font-size:.72rem;color:var(--brand-ink);margin-left:.1rem}
.pos-enroll__lead{font-size:.9rem;color:var(--ink-2);line-height:1.5;margin:0 0 1rem}
.pos-loy-signup{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-bottom:1rem;padding:.7rem 1rem;border-radius:var(--radius);
  border:1.5px dashed oklch(0.7 0.13 85 / .6);background:oklch(0.7 0.13 85 / .1);color:oklch(0.5 0.13 85);font-weight:700;font-size:.86rem;transition:.15s}
.pos-loy-signup:hover{background:oklch(0.7 0.13 85 / .18)}
.pos-loy-signup svg{width:16px;height:16px}
.pos-loy-signup--redeem{border-color:var(--brand)!important;background:var(--brand-soft)!important;color:var(--brand-ink)!important}
.pos-loy-signup--redeem svg{color:var(--brand-ink)}
/* redeem modal */
.pos-redeem__bal{display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;background:var(--brand-soft);border-radius:var(--radius);margin-bottom:1rem}
.pos-redeem__bal span{font-weight:600;color:var(--brand-ink);font-size:.85rem}
.pos-redeem__bal b{font-family:var(--font-mono);font-size:1.4rem;color:var(--brand-ink)}
.pos-redeem__bal em{font-style:normal;font-size:.78rem;color:var(--ink-3)}
.pos-redeem__quick{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.pos-redeem__quick button{flex:1;min-width:60px;padding:.55rem;border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--surface-2);font-weight:700;color:var(--ink-2);transition:.14s}
.pos-redeem__quick button:hover{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.pos-redeem input[type=range]{width:100%;accent-color:var(--brand)}
.pos-redeem__row{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1rem}
.pos-redeem__pts{text-align:right}
.pos-redeem__pts span{display:block;font-size:.78rem;color:var(--ink-3)}
.pos-redeem__pts b{font-family:var(--font-mono);font-weight:700;font-size:1.1rem;color:var(--brand-ink)}

/* T4 boxes */
.t4{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.t4box{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.7rem .9rem;display:flex;flex-direction:column;gap:.1rem}
.t4box__n{font-family:var(--font-mono);font-size:.68rem;font-weight:700;color:var(--brand-ink)}
.t4box__l{font-size:.76rem;color:var(--ink-3)}
.t4box__v{font-family:var(--font-mono);font-weight:600;font-size:1.05rem;color:var(--ink)}
