/* ==========================================================================
   GestQuinca Expert - compléments au thème Vali Admin (Bootstrap 5.3)
   1. Mode sombre : Bootstrap gère ses composants via [data-bs-theme=dark] ;
      on recolore ici les éléments propres à Vali (fond, tuiles, titres...).
   2. Composants métier : point de vente, cartes KPI, impression.
   ========================================================================== */

:root {
  --gq-fond: #e5e5e5;
  --gq-tuile: #ffffff;
  --gq-accent: #00695c;
  --gq-accent-fonce: #005046;
  --gq-texte-tuile: #2a2a2a;
}

[data-bs-theme="dark"] {
  --gq-fond: #12171c;
  --gq-tuile: #1c232b;
  --gq-texte-tuile: #e3e6ea;
  --bs-body-bg: #12171c;
  --bs-body-color: #e3e6ea;
  --bs-border-color: #2f3943;
}

/* -- 1. Mode sombre appliqué aux éléments Vali ------------------------------ */
.app-content { background-color: var(--gq-fond); }
.tile, .app-title, .widget-small.coloured-icon { background-color: var(--gq-tuile); color: var(--gq-texte-tuile); }
[data-bs-theme="dark"] .app-sidebar { background: #0c1014; }
[data-bs-theme="dark"] .app-header { background-color: #00463d; }
[data-bs-theme="dark"] .app-header__logo { background-color: #00352e; }
[data-bs-theme="dark"] .app-menu__item.active,
[data-bs-theme="dark"] .app-menu__item:hover { background: #151b21; }
[data-bs-theme="dark"] .treeview-menu { background: #0f1418; }
[data-bs-theme="dark"] .table { --bs-table-bg: transparent; }
[data-bs-theme="dark"] .material-half-bg { background-color: #12171c; }
[data-bs-theme="dark"] .login-content .login-box,
[data-bs-theme="dark"] .lockscreen-content .lock-box { background-color: var(--gq-tuile); color: var(--gq-texte-tuile); }
[data-bs-theme="dark"] .breadcrumb-item a { color: #7fd1c4; }
/* Cartes KPI : Vali fixe le fond blanc avec 3 classes, on les reprend toutes */
[data-bs-theme="dark"] .widget-small.primary.coloured-icon,
[data-bs-theme="dark"] .widget-small.info.coloured-icon,
[data-bs-theme="dark"] .widget-small.warning.coloured-icon,
[data-bs-theme="dark"] .widget-small.danger.coloured-icon { background-color: var(--gq-tuile); color: var(--gq-texte-tuile); }
/* Contraste des liens et boutons « primaires » sur fond sombre */
[data-bs-theme="dark"] a:not(.btn):not(.app-menu__item):not(.treeview-item):not(.dropdown-item):not(.app-header__logo) { color: #5fd3c1; }
[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-color: #5fd3c1; --bs-btn-border-color: #5fd3c1; --bs-btn-hover-bg: #00695c; --bs-btn-hover-border-color: #00695c; }

/* Bouton de bascule du thème dans l'en-tête */
.gq-theme-toggle { background: none; border: 0; color: #fff; padding: 0 15px; line-height: 50px; }
.gq-theme-toggle:hover { background: rgba(0, 0, 0, .1); }

/* -- 2. Composants métier ------------------------------------------------- */
.app-header__logo,
.login-content .logo h1,
.lockscreen-content .logo h1 { font-family: "Niconne", "Segoe UI", sans-serif; }
.login-content .logo p { font-family: var(--bs-body-font-family); }
.gq-kpi .info h4 { font-size: .85rem; }
.gq-kpi .info p { font-size: 1.2rem; margin: 0; white-space: nowrap; }
.gq-kpi { min-height: 84px; }
.gq-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gq-filtres .form-control, .gq-filtres .form-select { min-width: 150px; }
.table-sm td, .table-sm th { vertical-align: middle; }
.gq-photo { max-width: 100%; max-height: 220px; object-fit: contain; border-radius: 4px; }

/* Point de vente */
.pos-scan { font-size: 1.4rem; padding: .6rem 1rem; }
.pos-total { font-size: 2.6rem; font-weight: 700; color: var(--gq-accent); line-height: 1.1; }
[data-bs-theme="dark"] .pos-total { color: #4fd1bd; }
.pos-panier { max-height: calc(100vh - 360px); overflow-y: auto; }
.pos-panier input { max-width: 90px; }
.pos-touches .btn { min-height: 52px; }
.pos-billets .btn { min-width: 80px; }
.kbd-hint { font-size: .75rem; opacity: .7; }

/* Comptage mobile */
.mobile-saisie .form-control-lg { font-size: 1.6rem; }

/* -- 3. Impression : tickets 80 mm et documents A4 ------------------------ */
@media print {
  .app-header, .app-sidebar, .app-title, .no-print, .alert { display: none !important; }
  .app-content { margin: 0 !important; padding: 0 !important; background: #fff !important; }
  .tile { box-shadow: none !important; padding: 0 !important; }
  body { background: #fff !important; color: #000 !important; }
}
.ticket-80 { width: 72mm; margin: 0 auto; font-family: "Consolas", "Courier New", monospace; font-size: 11px; color: #000; background: #fff; }
.ticket-80 table { width: 100%; }
.ticket-80 hr { border-top: 1px dashed #000; opacity: 1; margin: 4px 0; }
.ticket-80 .gq-num { text-align: right; }
@page ticket { size: 80mm auto; margin: 2mm; }
