/* ==========================================================================
   Stock INS — Thème AdminLTE 4.10 (Bootstrap 5.3.8)
   Ordre de chargement : bootstrap.min.css → adminlte.min.css → ins-tokens.css
                         → ins-adminlte-theme.css (ce fichier)
   Règle : AdminLTE fournit la structure (app-wrapper, app-header, app-sidebar,
   small-box, info-box, card…). Ce fichier n'en change QUE l'identité visuelle,
   plus quelques composants métier préfixés .ins-* que le template ne fournit pas.
   ========================================================================== */

/* ---------- Base ---------- */
body { font-family: var(--font-body); font-size: var(--fs-body); color: var(--color-text); background: var(--color-bg); }
.app-wrapper, .app-main { background: var(--color-bg); }
h1,h2,h3,h4,h5,.card-title,.ins-heading { font-family: var(--font-heading); font-weight: 600; letter-spacing: -.01em; }
.ins-num, td.num, .table td.text-end, .small-box h3, .info-box-number { font-variant-numeric: tabular-nums; }
.ins-mono { font-family: var(--font-mono); font-size: .85em; }
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* ---------- Header (navbar) ---------- */
.app-header.navbar { background: rgba(255,255,255,.95); border-bottom: 1px solid var(--color-border); box-shadow: none; min-height: var(--topbar-h); backdrop-filter: saturate(180%) blur(8px); }
.app-header .nav-link { color: var(--ins-neutral-600); border-radius: var(--radius-md); }
.app-header .nav-link:hover { color: var(--ins-neutral-900); background: var(--ins-neutral-100); }
.app-header .navbar-badge { background: var(--color-danger); color: #fff; font-weight: 700; }
.ins-store-switch { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 12px; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; font-size: var(--fs-sm); font-weight: 600; color: var(--color-text); }
.ins-store-switch .ins-store-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-success); }
.ins-header-search { position: relative; width: min(420px, 40vw); }
.ins-header-search input { height: 38px; padding-left: 36px; background: var(--color-surface-muted); }
.ins-header-search i, .ins-header-search svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--color-text-subtle); }
.ins-avatar { width: 34px; height: 34px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--ins-orange-100); color: var(--ins-orange-800); font: 700 .78rem var(--font-heading); }
.dropdown-menu { border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); font-size: var(--fs-sm); }
.dropdown-item.active, .dropdown-item:active { background: var(--ins-orange-700); }

/* ---------- Sidebar AdminLTE, palette INS ---------- */
.app-sidebar, [data-bs-theme=dark].app-sidebar, [data-bs-theme=dark] .app-sidebar {
  --lte-sidebar-width: var(--sidebar-w);
  --lte-sidebar-color: var(--color-sidebar-text);
  --lte-sidebar-hover-bg: rgba(255,255,255,.05);
  --lte-sidebar-hover-color: #fff;
  --lte-sidebar-active-color: #fff;
  --lte-sidebar-menu-active-bg: var(--color-sidebar-active-bg);
  --lte-sidebar-menu-active-color: #fff;
  --lte-sidebar-submenu-bg: transparent;
  --lte-sidebar-submenu-color: var(--color-sidebar-text);
  --lte-sidebar-submenu-hover-bg: rgba(255,255,255,.05);
  --lte-sidebar-submenu-hover-color: #fff;
  --lte-sidebar-submenu-active-bg: transparent;
  --lte-sidebar-submenu-active-color: var(--color-accent);
  --lte-sidebar-header-color: var(--color-sidebar-muted);
  background: var(--color-sidebar-bg) !important;
  border-right: 0;
}
.app-sidebar .sidebar-brand { height: var(--topbar-h); justify-content: flex-start; padding: 0 1rem; border-bottom: 1px solid rgba(255,255,255,.06); position: relative; }
.app-sidebar .sidebar-brand::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: linear-gradient(90deg, var(--ins-logo-orange) 0 33.3%, #fff 33.3% 66.6%, var(--ins-logo-green-bar) 66.6%); opacity: .9; }
.app-sidebar .brand-link { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.app-sidebar .brand-image { width: 38px; height: 38px; max-height: 38px; background: #fff; border-radius: var(--radius-md); padding: 3px; box-shadow: none; opacity: 1 !important; margin: 0; }
.app-sidebar .brand-text { font: 600 .95rem/1.15 var(--font-heading); color: #fff; }
.app-sidebar .brand-text small { display: block; font: 400 .7rem var(--font-body); color: var(--color-sidebar-muted); letter-spacing: .02em; }
.app-sidebar .sidebar-menu .nav-header { font-size: .68rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; padding-top: 1.1rem; }
.app-sidebar .sidebar-menu .nav-link { border-radius: var(--radius-md); font-size: var(--fs-sm); font-weight: 500; min-height: 40px; display: flex; align-items: center; }
.app-sidebar .sidebar-menu .nav-icon { color: var(--color-sidebar-muted); font-size: 1.05rem; }
.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link.active { position: relative; box-shadow: none; }
.sidebar-wrapper .sidebar-menu > .nav-item > .nav-link.active::before { content: ""; position: absolute; left: -8px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--color-accent); }
.sidebar-wrapper .sidebar-menu .nav-link.active .nav-icon { color: var(--color-accent); }
.app-sidebar .nav-badge { background: var(--color-accent) !important; color: var(--ins-neutral-900) !important; font-weight: 700; }

/* ---------- En-tête de contenu + fil d'Ariane ---------- */
.app-content-header { padding: 1.25rem 0 .5rem; }
.app-content-header h3 { font-size: var(--fs-h1); margin: 0; color: var(--ins-neutral-900); }
.app-content-header .ins-subtitle { color: var(--color-text-muted); font-size: var(--fs-sm); margin-top: 2px; }
.breadcrumb { font-size: var(--fs-caption); --bs-breadcrumb-divider-color: var(--color-text-subtle); }
.breadcrumb-item a { color: var(--color-text-muted); text-decoration: none; }
.breadcrumb-item a:hover { color: var(--color-primary); }
.breadcrumb-item.active { color: var(--ins-neutral-700); }
.ins-refresh-meta { font-size: var(--fs-caption); color: var(--color-text-muted); }

/* ---------- Cards ---------- */
.card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); --bs-card-cap-bg: transparent; }
.card > .card-header { border-bottom: 1px solid var(--color-border); padding: .9rem 1.25rem; }
.card-title { font-size: var(--fs-h3); color: var(--ins-neutral-900); }
.card-outline.card-primary, .card-primary.card-outline { border-top: 3px solid var(--ins-orange-500); }
.card-outline.card-success { border-top: 3px solid var(--ins-green-500); }
.card-footer { background: var(--color-surface-muted); }

/* ---------- Small box (KPI cliquables) ----------
   Variante INS : fond blanc + bandeau de couleur, plutôt que des aplats saturés. */
.small-box { background: var(--color-surface) !important; color: var(--color-text) !important; border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); overflow: hidden; transition: box-shadow var(--dur-base) var(--ease), transform var(--dur-base) var(--ease); }
.small-box::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--ins-kpi-color, var(--ins-orange-500)); }
.small-box > .inner { padding: 1rem 1.1rem .9rem 1.25rem; }
.small-box h3 { font: 600 var(--fs-kpi)/1.15 var(--font-heading); color: var(--ins-neutral-900); margin: 0 0 4px; white-space: nowrap; }
.small-box p { font-size: var(--fs-sm); color: var(--color-text-muted); font-weight: 500; margin: 0; }
a.small-box, a.small-box:hover, a.small-box * { text-decoration: none !important; }
.small-box > .inner { position: relative; z-index: 1; padding-right: 64px; }
.small-box .small-box-icon { color: var(--ins-kpi-color, var(--ins-orange-500)); opacity: .14; height: 46px; width: 46px; font-size: 46px !important; top: 14px; right: 14px; z-index: 0; }
.small-box > .small-box-footer { background: var(--color-surface-muted); color: var(--ins-neutral-600) !important; border-top: 1px solid var(--color-border); font-size: var(--fs-caption); font-weight: 600; text-decoration: none; padding: 6px 0; }
.small-box:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.small-box:hover > .small-box-footer { color: var(--ins-orange-700) !important; background: var(--ins-orange-50); }
.small-box .ins-kpi-delta { font-size: var(--fs-caption); font-weight: 600; margin-top: 4px; display: inline-flex; gap: 4px; align-items: center; }
.small-box.kpi-primary { --ins-kpi-color: var(--ins-orange-500); }
.small-box.kpi-success { --ins-kpi-color: var(--ins-green-500); }
.small-box.kpi-danger  { --ins-kpi-color: var(--ins-red-600); }
.small-box.kpi-warning { --ins-kpi-color: var(--ins-amber-500); }
.small-box.kpi-info    { --ins-kpi-color: var(--ins-blue-600); }
.small-box.kpi-neutral { --ins-kpi-color: var(--ins-neutral-400); }
.ins-trend-up { color: var(--color-success); } .ins-trend-down { color: var(--color-danger); } .ins-trend-flat { color: var(--color-text-muted); }

/* ---------- Info box (KPI secondaires, denses) ---------- */
.info-box { border: 1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-xs); background: var(--color-surface); min-height: 76px; align-items: center; }
.info-box .info-box-icon { border-radius: var(--radius-md); width: 52px; height: 52px; font-size: 1.35rem; }
.info-box .info-box-text { font-size: var(--fs-sm); color: var(--color-text-muted); font-weight: 500; text-transform: none; white-space: normal; line-height: 1.2; }
.info-box .info-box-number { font: 600 1.25rem var(--font-heading); color: var(--ins-neutral-900); }
.info-box .progress { height: 4px; background: var(--ins-neutral-100); }
a.info-box { color: inherit; text-decoration: none; } a.info-box:hover { box-shadow: var(--shadow-md); }

/* Pastilles de ton (icônes info-box, alertes, badges) */
.tone-primary { background: var(--ins-orange-50) !important; color: var(--ins-orange-700) !important; }
.tone-success { background: var(--ins-green-50) !important; color: var(--ins-green-700) !important; }
.tone-danger  { background: var(--ins-red-50) !important; color: var(--ins-red-700) !important; }
.tone-warning { background: var(--ins-amber-50) !important; color: var(--ins-amber-600) !important; }
.tone-info    { background: var(--ins-blue-50) !important; color: var(--ins-blue-700) !important; }
.tone-violet  { background: var(--ins-violet-50) !important; color: var(--ins-violet-600) !important; }
.tone-neutral { background: var(--ins-neutral-100) !important; color: var(--ins-neutral-600) !important; }

/* ---------- Badges de statut (mapping tokens.json → status) ---------- */
.ins-badge { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: var(--radius-pill); font-size: .75rem; font-weight: 600; white-space: nowrap; line-height: 1; }
.ins-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.badge.text-bg-primary { background: var(--ins-orange-700) !important; }
.badge.text-bg-success { background: var(--ins-green-600) !important; }

/* ---------- Boutons ---------- */
.btn { --bs-btn-font-weight: 600; --bs-btn-font-size: var(--fs-sm); --bs-btn-border-radius: var(--radius-md); display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 38px; transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast), box-shadow var(--dur-fast), transform var(--dur-fast); }
.btn:active { transform: translateY(1px); }
.btn-sm { min-height: 32px; --bs-btn-font-size: .8125rem; }
.btn-primary { --bs-btn-bg: var(--ins-orange-700); --bs-btn-border-color: var(--ins-orange-700); --bs-btn-hover-bg: var(--ins-orange-800); --bs-btn-hover-border-color: var(--ins-orange-800); --bs-btn-active-bg: var(--ins-orange-900); --bs-btn-active-border-color: var(--ins-orange-900); --bs-btn-disabled-bg: var(--ins-orange-300); --bs-btn-disabled-border-color: var(--ins-orange-300); --bs-btn-focus-shadow-rgb: 247,146,30; }
.btn-outline-primary { --bs-btn-color: var(--ins-orange-700); --bs-btn-border-color: var(--ins-orange-300); --bs-btn-hover-bg: var(--ins-orange-50); --bs-btn-hover-color: var(--ins-orange-800); --bs-btn-hover-border-color: var(--ins-orange-500); --bs-btn-active-bg: var(--ins-orange-100); --bs-btn-active-color: var(--ins-orange-800); }
.btn-success { --bs-btn-bg: var(--ins-green-600); --bs-btn-border-color: var(--ins-green-600); --bs-btn-hover-bg: var(--ins-green-700); --bs-btn-hover-border-color: var(--ins-green-700); --bs-btn-active-bg: var(--ins-green-800); }
.btn-danger  { --bs-btn-bg: var(--ins-red-600); --bs-btn-border-color: var(--ins-red-600); --bs-btn-hover-bg: var(--ins-red-700); --bs-btn-hover-border-color: var(--ins-red-700); }
.btn-outline-secondary, .btn-default { --bs-btn-color: var(--ins-neutral-700); --bs-btn-bg: #fff; --bs-btn-border-color: var(--color-border-strong); --bs-btn-hover-bg: var(--ins-neutral-50); --bs-btn-hover-color: var(--ins-neutral-900); --bs-btn-hover-border-color: var(--ins-neutral-400); --bs-btn-active-bg: var(--ins-neutral-100); --bs-btn-active-color: var(--ins-neutral-900); }
.btn-tool { color: var(--ins-neutral-500); } .btn-tool:hover { color: var(--ins-orange-700); }
.btn.is-loading { pointer-events: none; color: transparent !important; position: relative; }
.btn.is-loading::after { content: ""; position: absolute; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.55); border-top-color: #fff; border-radius: 50%; animation: ins-spin .7s linear infinite; }
.btn-outline-secondary.is-loading::after { border-color: var(--ins-neutral-300); border-top-color: var(--ins-neutral-700); }
@keyframes ins-spin { to { transform: rotate(360deg); } }

/* ---------- Formulaires ---------- */
.form-label { font-size: var(--fs-sm); font-weight: 600; color: var(--ins-neutral-700); margin-bottom: 6px; }
.form-label .req { color: var(--color-danger); margin-left: 2px; }
.form-control, .form-select { min-height: 40px; border-color: var(--color-border-strong); border-radius: var(--radius-md); }
.form-control-sm, .form-select-sm { min-height: 32px; }
.form-control:focus, .form-select:focus { border-color: var(--color-accent); box-shadow: 0 0 0 3px var(--color-focus-ring); }
.form-check-input:checked { background-color: var(--ins-orange-700); border-color: var(--ins-orange-700); }
.form-check-input:focus { box-shadow: 0 0 0 3px var(--color-focus-ring); border-color: var(--color-accent); }
.form-text { font-size: var(--fs-caption); color: var(--color-text-muted); }
.ins-qty { width: 112px; text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- Barre de filtres des tableaux de bord ---------- */
.ins-filterbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; padding: .85rem 1rem; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); margin-bottom: 1rem; }
.ins-filterbar .form-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--color-text-muted); margin-bottom: 3px; }
.ins-filterbar .ins-filter { min-width: 150px; flex: 1 1 150px; max-width: 220px; }
.ins-filterbar .ins-filter-actions { margin-left: auto; display: flex; gap: .5rem; }

/* ---------- Tableaux / DataTables 2 ---------- */
.table { --bs-table-hover-bg: var(--ins-orange-50); font-size: var(--fs-sm); margin: 0; }
.table > thead th { background: var(--color-surface-muted); color: var(--ins-neutral-600); font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-bottom: 1px solid var(--color-border); padding: 11px 14px; white-space: nowrap; }
.table > tbody td { padding: 10px 14px; vertical-align: middle; border-color: var(--ins-neutral-100); }
.ins-cell-main { font-weight: 600; color: var(--ins-neutral-900); }
.ins-cell-sub { font-size: var(--fs-caption); color: var(--color-text-muted); }
.ins-row-urgent > td:first-child { box-shadow: inset 3px 0 0 var(--color-danger); }
.ins-row-late > td:first-child { box-shadow: inset 3px 0 0 var(--ins-amber-500); }
div.dt-container .dt-info { font-size: var(--fs-caption); color: var(--color-text-muted); }
div.dt-container .dt-search input, div.dt-container .dt-length select { border-radius: var(--radius-md); border-color: var(--color-border-strong); }
.page-item.active .page-link, div.dt-container .dt-paging .dt-paging-button.current { background: var(--ins-orange-700) !important; border-color: var(--ins-orange-700) !important; color: #fff !important; }
.page-link { color: var(--ins-neutral-700); } .page-link:focus { box-shadow: 0 0 0 3px var(--color-focus-ring); }
.dt-buttons .btn { min-height: 32px; }

/* ---------- Progress / jauge de niveau de stock ---------- */
.progress { background: var(--ins-neutral-100); border-radius: 3px; }
.progress-bar { background: var(--ins-orange-500); }
.ins-level { display: flex; align-items: center; gap: 8px; min-width: 120px; }
.ins-level .progress { flex: 1; height: 6px; }
.ins-level--ok .progress-bar { background: var(--ins-green-500); }
.ins-level--low .progress-bar { background: var(--ins-amber-500); }
.ins-level--out .progress-bar { background: var(--ins-red-600); }

/* ---------- Alertes & callouts ---------- */
.alert { border-radius: var(--radius-md); font-size: var(--fs-sm); }
.callout { border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-xs); }
.callout.callout-warning { border-left-color: var(--ins-amber-500); }
.callout.callout-danger { border-left-color: var(--ins-red-600); }
.callout.callout-info { border-left-color: var(--ins-blue-600); }
.callout.callout-success { border-left-color: var(--ins-green-500); }
.ins-alert-list { list-style: none; margin: 0; padding: 0; }
.ins-alert-list li { display: flex; gap: .75rem; align-items: flex-start; padding: .7rem 1rem; border-bottom: 1px solid var(--ins-neutral-100); }
.ins-alert-list li:last-child { border-bottom: 0; }
.ins-alert-list .ins-alert-icon { width: 32px; height: 32px; border-radius: var(--radius-md); display: grid; place-items: center; flex-shrink: 0; }
.ins-alert-list .ins-alert-title { font-weight: 600; font-size: var(--fs-sm); color: var(--ins-neutral-900); }
.ins-alert-list .ins-alert-meta { font-size: var(--fs-caption); color: var(--color-text-muted); }

/* ---------- Suivi par étapes (demande) ---------- */
.ins-stepper { display: flex; gap: 0; list-style: none; padding: 0; margin: 0; counter-reset: step; overflow-x: auto; }
.ins-stepper li { flex: 1; min-width: 96px; text-align: center; position: relative; font-size: var(--fs-caption); color: var(--color-text-muted); padding-top: 34px; }
.ins-stepper li::before { counter-increment: step; content: counter(step); position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--ins-neutral-100); color: var(--ins-neutral-500); font-weight: 700; z-index: 1; }
.ins-stepper li::after { content: ""; position: absolute; top: 12px; left: calc(-50% + 14px); right: calc(50% + 14px); height: 2px; background: var(--ins-neutral-200); }
.ins-stepper li:first-child::after { display: none; }
.ins-stepper li.is-done::before { content: "✓"; background: var(--ins-green-600); color: #fff; }
.ins-stepper li.is-done::after, .ins-stepper li.is-current::after { background: var(--ins-green-500); }
.ins-stepper li.is-current { color: var(--ins-neutral-900); font-weight: 600; }
.ins-stepper li.is-current::before { background: var(--ins-orange-700); color: #fff; box-shadow: 0 0 0 4px var(--ins-orange-100); }
.ins-stepper li.is-failed::before { content: "✕"; background: var(--ins-red-600); color: #fff; }

/* ---------- Timeline (historique des statuts) ---------- */
.ins-timeline { list-style: none; margin: 0; padding: 0; }
.ins-timeline li { position: relative; padding: 0 0 1.25rem 28px; }
.ins-timeline li::before { content: ""; position: absolute; left: 7px; top: 18px; bottom: 0; width: 2px; background: var(--ins-neutral-100); }
.ins-timeline li:last-child::before { display: none; }
.ins-timeline__dot { position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1px var(--color-border-strong); background: var(--ins-neutral-300); }
.ins-timeline__title { font-weight: 600; font-size: var(--fs-sm); }
.ins-timeline__meta { font-size: var(--fs-caption); color: var(--color-text-muted); }

/* ---------- Graphiques ---------- */
.ins-chart { position: relative; height: 280px; }
.ins-chart--sm { height: 200px; } .ins-chart--lg { height: 340px; }
.ins-view-toggle .btn { min-height: 28px; padding: 2px 8px; }

/* ---------- États : vide, chargement, erreur ---------- */
.ins-empty { text-align: center; padding: 2.5rem 1.5rem; color: var(--color-text-muted); }
.ins-empty__art { width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 50%; display: grid; place-items: center; background: var(--ins-orange-50); color: var(--ins-orange-600); font-size: 1.6rem; }
.ins-empty h4 { font-size: var(--fs-h3); color: var(--ins-neutral-800); margin-bottom: 4px; }
.ins-skeleton { position: relative; overflow: hidden; background: var(--ins-neutral-100); border-radius: var(--radius-sm); min-height: 12px; }
.ins-skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.65), transparent); animation: ins-shimmer 1.3s infinite; }
@keyframes ins-shimmer { to { transform: translateX(100%); } }
.ins-loading-overlay { position: absolute; inset: 0; background: rgba(255,255,255,.7); display: grid; place-items: center; border-radius: inherit; z-index: 5; }

/* ---------- Modales & SweetAlert2 ---------- */
.modal-content { border: 0; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); }
.modal-header { padding: 1.1rem 1.5rem; border-bottom: 1px solid var(--color-border); }
.modal-title { font: 600 var(--fs-h2) var(--font-heading); }
.modal-body { padding: 1.5rem; }
.modal-footer { padding: .9rem 1.5rem; background: var(--color-surface-muted); border-top: 1px solid var(--color-border); border-radius: 0 0 var(--radius-xl) var(--radius-xl); }
.swal2-popup { font-family: var(--font-body) !important; border-radius: var(--radius-xl) !important; }
.swal2-title { font-family: var(--font-heading) !important; font-size: var(--fs-h2) !important; color: var(--ins-neutral-900) !important; }
.swal2-styled.swal2-confirm { background: var(--ins-orange-700) !important; border-radius: var(--radius-md) !important; font-weight: 600 !important; }
.swal2-styled.swal2-deny { background: var(--ins-red-600) !important; border-radius: var(--radius-md) !important; }
.swal2-styled.swal2-cancel { background: #fff !important; color: var(--ins-neutral-700) !important; border: 1px solid var(--color-border-strong) !important; border-radius: var(--radius-md) !important; }

/* ---------- Footer ---------- */
.app-footer { font-size: var(--fs-caption); color: var(--color-text-muted); background: var(--color-surface); border-top: 1px solid var(--color-border); }

/* ---------- Impression ---------- */
@media print {
  .app-sidebar, .app-header, .app-footer, .ins-filterbar, .ins-no-print { display: none !important; }
  body, .app-main { background: #fff; }
}

/* ---------- Responsive ---------- */
@media (max-width: 575.98px) {
  .small-box h3 { font-size: 1.35rem; }
  .ins-filterbar .ins-filter { max-width: none; }
  .ins-filterbar .ins-filter-actions { margin-left: 0; width: 100%; }
  .ins-filterbar .ins-filter-actions .btn { flex: 1; }
  .ins-store-switch .ins-store-name { max-width: 110px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
