/* styles.css — solo personalizzazioni del progetto sopra il tema Dhonu (Bootstrap 5). Caricato per ultimo. */

/* ============================================================
   BRAND Cassly — primario magenta (#DB2777).
   Dhonu usa variabili --theme-* (NON --bs-*): le rimappiamo tutte,
   e forziamo i componenti concreti con !important per sicurezza.
   ============================================================ */
:root,
html,
[data-bs-theme=light],
[data-bs-theme=dark],
[data-skin],
[data-skin=default] {
    --theme-primary: #DB2777;
    --theme-primary-rgb: 219, 39, 119;
    --theme-primary-text-emphasis: #9d174d;
    --theme-primary-bg-subtle: #FCE7F0;
    --theme-primary-border-subtle: #F9A8D4;
    --theme-link-color: #DB2777;
    --theme-link-hover-color: #9d174d;
    --theme-chart-primary: #DB2777;
    --theme-chart-primary-rgb: 219, 39, 119;
    /* compat per le classi .pos-* che usano --bs-primary */
    --bs-primary: #DB2777;
    --bs-primary-rgb: 219, 39, 119;
    --bs-link-color: #DB2777;
    --bs-link-hover-color: #9d174d;
}
/* Bottoni */
.btn-primary {
    background-color: #DB2777 !important; border-color: #DB2777 !important; color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary:disabled {
    background-color: #be185d !important; border-color: #be185d !important; color: #fff !important;
}
.btn-outline-primary {
    color: #DB2777 !important; border-color: #DB2777 !important; background-color: transparent !important;
}
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active, .btn-outline-primary.active {
    background-color: #DB2777 !important; border-color: #DB2777 !important; color: #fff !important;
}
/* Utility / componenti */
.text-primary { color: #DB2777 !important; }
.bg-primary, .badge.bg-primary, .badge.text-bg-primary { background-color: #DB2777 !important; }
.border-primary { border-color: #DB2777 !important; }
.bg-primary-subtle { background-color: #FCE7F0 !important; }
.text-bg-primary { background-color: #DB2777 !important; color: #fff !important; }
a { color: #DB2777; }
a:hover { color: #9d174d; }
.form-check-input:checked { background-color: #DB2777 !important; border-color: #DB2777 !important; }
.form-control:focus, .form-select:focus { border-color: #f0a6c8; box-shadow: 0 0 0 .2rem rgba(219,39,119,.18); }
/* Topbar / sidenav */
.sidenav-toggle-button.btn-primary, .btn-icon.btn-primary { background-color: #DB2777 !important; border-color: #DB2777 !important; }
.side-nav .side-nav-link.active, .side-nav .side-nav-item .side-nav-link.active { color: #DB2777 !important; }
.side-nav .side-nav-link.active .menu-icon i { color: #DB2777 !important; }
.avatar-md.bg-primary, .bg-primary.rounded-circle { background-color: #DB2777 !important; }

/* Wordmark logo: "cass" magenta + "ly" rosa chiaro (come variante #090) */
.cassly-wm { font-weight: 800; text-transform: lowercase; color: #DB2777; letter-spacing: -.01em; }
.cassly-wm .tail { color: #F472B6; }

/* Login standalone */
body.pos-login { background:#f3f4f7; }
.authincation .card { border-radius:16px; }

/* Empty state */
.pos-empty { text-align:center; padding:3rem 1rem; color:#878a99; }
.pos-empty i { font-size:2.6rem; opacity:.4; display:block; margin-bottom:.6rem; }

/* ---- Cassa (register) ---- eredita il primario di Dhonu (--bs-primary) ---- */
.pos-register { align-items:stretch; }

/* barra di ricerca con icona */
.pos-search-card { height:100%; }
.pos-searchbar { position:relative; }
.pos-searchbar > i { position:absolute; left:1rem; top:50%; transform:translateY(-50%); color:var(--bs-primary); font-size:1.1rem; pointer-events:none; }
.pos-search-input { font-size:1.1rem; padding:.85rem 1rem .85rem 2.6rem; border-radius:.7rem; }
.pos-search-input:focus { box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.18); }
.pos-results { max-height:64vh; overflow:auto; padding-right:.2rem; }
/* lista (clienti/sospesi) */
.pos-prod { display:flex; align-items:center; justify-content:space-between; padding:.8rem 1rem;
    border:1px solid var(--bs-border-color); border-radius:.7rem; margin-bottom:.5rem; cursor:pointer; transition:all .12s; background:var(--bs-card-bg,#fff); }
.pos-prod:hover { border-color:var(--bs-primary); box-shadow:0 6px 18px rgba(0,0,0,.08); transform:translateY(-1px); }
.pos-prod .price { font-weight:700; font-size:1.05rem; white-space:nowrap; color:var(--bs-primary); }

/* griglia prodotti (piastrelle) */
.pos-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(168px,1fr)); gap:.8rem; }
.pos-tile { display:flex; flex-direction:column; min-height:140px;
    padding:.85rem .9rem; border:1px solid var(--bs-border-color); border-radius:.9rem; cursor:pointer;
    background:var(--bs-card-bg,#fff); transition:all .12s; }
.pos-tile:hover { border-color:var(--bs-primary); box-shadow:0 8px 22px rgba(0,0,0,.10); transform:translateY(-2px); }
.pos-tile:active { transform:translateY(0); }
.pos-tile-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.5rem; }
.pos-tile-ico { width:40px; height:40px; border-radius:.6rem; display:flex; align-items:center; justify-content:center;
    font-weight:800; font-size:1.15rem; color:var(--bs-primary); background:rgba(var(--bs-primary-rgb),.10); }
.pos-tile-stock { font-size:.68rem; font-weight:700; padding:.12rem .5rem; border-radius:2rem; white-space:nowrap; }
.pos-tile-stock.ok { background:var(--bs-tertiary-bg,#eef0f4); color:#6c757d; }
.pos-tile-stock.ko { background:#fde2e1; color:#c0392b; }
.pos-tile-name { font-weight:700; line-height:1.2; font-size:.95rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.pos-tile-varwrap { margin-top:.15rem; }
.pos-tile-var { display:inline-block; font-size:.72rem; font-weight:700; color:var(--bs-primary); background:rgba(var(--bs-primary-rgb),.10); border-radius:.4rem; padding:.05rem .4rem; }
.pos-tile-sub { font-size:.74rem; color:#878a99; line-height:1.2; min-height:1em; }
.pos-tile-foot { display:flex; align-items:center; justify-content:space-between; gap:.4rem; margin-top:auto; padding-top:.5rem; }
.pos-tile-price { font-weight:800; font-size:1.1rem; color:var(--bs-primary); }
.pos-tile-promo { font-size:.65rem; font-weight:700; padding:.12rem .5rem; border-radius:2rem; background:var(--bs-danger); color:#fff; white-space:nowrap; }

/* scontrino */
.pos-ticket { position:sticky; top:5.5rem; overflow:hidden; border:0; box-shadow:0 .5rem 1.5rem rgba(0,0,0,.08); }
.pos-ticket-head { display:flex; align-items:center; justify-content:space-between; padding:.85rem 1.1rem;
    background:linear-gradient(135deg, var(--bs-primary), color-mix(in srgb, var(--bs-primary) 70%, #000)); color:#fff; font-weight:700; font-size:1.05rem; }
.pos-ticket-count { font-size:.78rem; font-weight:600; background:rgba(255,255,255,.22); padding:.18rem .6rem; border-radius:2rem; }
.pos-cart { max-height:42vh; overflow:auto; margin:0 -.25rem; padding:0 .25rem; }
.pos-cart-empty { text-align:center; color:#b0b3bf; padding:2.2rem 1rem; }
.pos-cart-empty i { font-size:2.2rem; opacity:.4; }
.pos-ticket .cart-row { display:flex; align-items:center; gap:.5rem; padding:.55rem 0; border-bottom:1px dashed var(--bs-border-color); }
.pos-ticket .cart-row:last-child { border-bottom:0; }
.pos-ticket .cart-row .name { flex:1; min-width:0; }
.pos-qty-btn { width:30px; height:30px; line-height:1; padding:0; font-weight:700; }

/* totali */
.pos-totals { margin-top:.75rem; padding-top:.75rem; border-top:1px solid var(--bs-border-color); }
.pos-grandtotal { margin-top:.5rem; padding-top:.6rem; border-top:2px solid var(--bs-primary); font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.pos-total { font-size:1.9rem; font-weight:800; letter-spacing:-.02em; color:var(--bs-primary); line-height:1; }
.pos-pay-btn { font-weight:700; font-size:1.15rem; padding:.8rem; border-radius:.7rem; box-shadow:0 .4rem 1rem rgba(var(--bs-success-rgb),.35); }

/* cliente */
.pos-customer { background:var(--bs-tertiary-bg,#f3f4f7); border-radius:.7rem; padding:.75rem 1rem; }
.pos-points-badge { background:#fff3cd; color:#997404; border-radius:2rem; padding:.15rem .6rem; font-weight:700; font-size:.8rem; }

/* foto prodotto (scheda) */
.pos-prod-img-wrap { display:inline-block; }
.pos-prod-img { width:160px; height:160px; object-fit:cover; border-radius:.8rem; border:1px solid var(--bs-border-color); }
.pos-prod-img-ph { width:160px; height:160px; border-radius:.8rem; border:1px dashed var(--bs-border-color); display:flex; align-items:center; justify-content:center; color:#c0c3cc; }
.pos-prod-img-ph i { font-size:2.4rem; }

/* foto nelle piastrelle cassa — mostra l'immagine INTERA (contain) */
.pos-tile-photowrap { position:relative; margin-bottom:.4rem; background:#f6f7f9; border-radius:.55rem; }
.pos-tile-photo { width:100%; height:110px; object-fit:contain; border-radius:.55rem; display:block; padding:4px; }
.pos-tile-stockabs { position:absolute; top:.3rem; right:.3rem; }

/* box contanti ricevuti / resto (modale incasso) */
.pos-cash-box { background:var(--bs-tertiary-bg,#f3f4f7); border:1px solid var(--bs-border-color); border-radius:.7rem; padding:.85rem 1rem; }
#payRicevuti { font-weight:700; }

/* spazio contenuto pagina */
.content-page .content-body { padding-top:.25rem; }
