/* KOMERCI – interface de gestion
 * Toutes les couleurs, polices et arrondis passent par des variables CSS :
 * les widgets Elementor les modifient sans toucher à ce fichier. */

.komerci-root {
	--k-primary: #0B6E4F;
	--k-accent: #F2A541;
	--k-bg: #F5F5F0;
	--k-surface: #FFFFFF;
	--k-text: #1C2420;
	--k-muted: #6B746F;
	--k-line: #E3E6E2;
	--k-danger: #C4372F;
	--k-warn: #B86E00;
	--k-ok: #11845B;
	--k-radius: 14px;
	--k-font: inherit;
	--k-on-primary: #FFFFFF;
	--k-soft: color-mix(in srgb, var(--k-primary) 10%, var(--k-surface));
	font-family: var(--k-font);
	color: var(--k-text);
	font-size: 15px;
	line-height: 1.45;
	-webkit-tap-highlight-color: transparent;
}
.komerci-root *, .komerci-root *::before, .komerci-root *::after { box-sizing: border-box; }
:where(.komerci-root) :where(button, input, select, textarea) { font: inherit; color: inherit; }
/* Neutralise les styles de boutons/liens du thème WordPress. */
.komerci-root .k-btn, .komerci-root .k-btn:hover, .komerci-root .k-btn:focus, .komerci-root .k-btn:visited { text-decoration: none; white-space: nowrap; }
.komerci-root a.k-btn:not(.k-ghost):not(.k-soft):not(.k-danger):not(.k-wa):not(.k-accent) { color: var(--k-on-primary); }
.komerci-root [hidden] { display: none !important; }

/* ---------- Éléments communs ---------- */
.k-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 46px; padding: 0 18px; border-radius: calc(var(--k-radius) - 4px);
	border: 1px solid transparent; background: var(--k-primary); color: var(--k-on-primary);
	font-weight: 600; cursor: pointer; text-decoration: none; transition: filter .15s, transform .05s;
}
.k-btn:hover { filter: brightness(1.06); }
.k-btn:active { transform: scale(.98); }
.k-btn[disabled] { opacity: .55; pointer-events: none; }
.k-btn.k-block { width: 100%; }
.k-btn.k-ghost { background: var(--k-surface); color: var(--k-text); border-color: var(--k-line); }
.k-btn.k-soft { background: var(--k-soft); color: var(--k-primary); }
.k-btn.k-accent { background: var(--k-accent); color: #1C1407; }
.k-btn.k-danger { background: transparent; color: var(--k-danger); border-color: color-mix(in srgb, var(--k-danger) 35%, transparent); }
.k-btn.k-wa { background: #1FA855; color: #fff; }
.k-btn.k-sm { min-height: 36px; padding: 0 12px; font-size: 14px; }

.k-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.k-field > span { font-size: 13px; font-weight: 600; color: var(--k-muted); }
.k-input, .komerci-root select.k-input, .komerci-root textarea.k-input {
	width: 100%; min-height: 48px; padding: 10px 14px; border-radius: calc(var(--k-radius) - 4px);
	border: 1px solid var(--k-line); background: var(--k-surface); font-size: 16px; outline: none;
}
.komerci-root textarea.k-input { min-height: 80px; resize: vertical; }
.k-input:focus { border-color: var(--k-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--k-primary) 18%, transparent); }
.k-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.k-row > .k-field { margin-bottom: 14px; }
.k-check { display: flex; align-items: center; gap: 10px; margin: 6px 0 14px; cursor: pointer; }
.k-check input { width: 20px; height: 20px; accent-color: var(--k-primary); }

.k-card { background: var(--k-surface); border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 16px; }
.k-muted { color: var(--k-muted); }
.k-small { font-size: 13px; }
.k-error { color: var(--k-danger); font-size: 14px; min-height: 20px; margin: 4px 0 10px; }
.k-badge { display: inline-flex; align-items: center; padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 600; background: var(--k-soft); color: var(--k-primary); white-space: nowrap; }
.k-badge.k-warn { background: #FFF2DC; color: var(--k-warn); }
.k-badge.k-danger { background: #FCE6E4; color: var(--k-danger); }
.k-badge.k-grey { background: #EEEFED; color: var(--k-muted); }

.k-loading { display: flex; justify-content: center; padding: 60px 0; }
.k-spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--k-line); border-top-color: var(--k-primary); animation: kspin .8s linear infinite; }
@keyframes kspin { to { transform: rotate(360deg); } }

/* ---------- Connexion / inscription ---------- */
.k-auth-box { max-width: 420px; margin: 0 auto; }
.k-auth { background: var(--k-surface); border: 1px solid var(--k-line); border-radius: calc(var(--k-radius) + 6px); padding: 28px 22px; box-shadow: 0 10px 30px rgba(0,0,0,.05); }
.k-auth h2 { margin: 0 0 4px; font-size: 24px; line-height: 1.2; }
.k-auth .k-sub { margin: 0 0 22px; color: var(--k-muted); }
.k-auth .k-switch { text-align: center; margin-top: 16px; font-size: 14px; }
.k-auth .k-switch a { color: var(--k-primary); font-weight: 600; cursor: pointer; text-decoration: none; }
.k-pin { letter-spacing: .6em; font-size: 22px !important; text-align: center; }
.k-auth-full { min-height: 100vh; min-height: 100dvh; display: flex; align-items: center; justify-content: center; padding: 24px 16px; background: var(--k-bg); }
.k-auth-full .k-auth-box { width: 100%; }
.k-logo { display: flex; align-items: center; gap: 10px; font-weight: 800; letter-spacing: .04em; font-size: 20px; color: var(--k-primary); margin-bottom: 22px; }
.k-logo i { width: 34px; height: 34px; border-radius: 10px; background: var(--k-primary); position: relative; display: inline-block; }
.k-logo i::after { content: ""; position: absolute; inset: 9px 9px 9px 9px; border-radius: 3px; background: var(--k-accent); }

/* ---------- Structure de l'application ---------- */
.k-app.k-fullscreen { position: fixed; inset: 0; z-index: 99990; overflow-y: auto; -webkit-overflow-scrolling: touch; }
html.k-has-app, html.k-has-app body { overflow: hidden; }
.k-app { background: var(--k-bg); min-height: 100vh; min-height: 100dvh; }
.k-shell { display: flex; min-height: 100vh; min-height: 100dvh; }
.k-side { display: none; }
.k-main { flex: 1; min-width: 0; padding: 0 0 calc(84px + env(safe-area-inset-bottom)); }
.k-top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 12px; padding: calc(12px + env(safe-area-inset-top)) 16px 12px; background: var(--k-bg); }
.k-top h1 { margin: 0; font-size: 21px; line-height: 1.2; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k-top .k-shopname { display: block; font-size: 12px; font-weight: 600; color: var(--k-muted); text-transform: uppercase; letter-spacing: .05em; }
.k-content { padding: 4px 16px 24px; max-width: 1100px; }

.k-tabbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--k-surface); border-top: 1px solid var(--k-line); padding-bottom: env(safe-area-inset-bottom); }
.k-tab { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 9px 0 8px; background: none; border: 0; font-size: 11px; font-weight: 600; color: var(--k-muted); cursor: pointer; }
.k-tab svg { width: 23px; height: 23px; }
.k-tab.is-on { color: var(--k-primary); }
.k-tab.k-tab-sell .k-tab-ico { width: 46px; height: 46px; margin-top: -20px; border-radius: 50%; background: var(--k-primary); color: var(--k-on-primary); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px color-mix(in srgb, var(--k-primary) 40%, transparent); }

@media (min-width: 900px) {
	.k-side { display: flex; flex-direction: column; width: 236px; flex-shrink: 0; position: sticky; top: 0; height: 100vh; padding: 22px 14px; background: var(--k-surface); border-right: 1px solid var(--k-line); }
	.k-side .k-logo { padding: 0 8px; }
	.k-nav { display: flex; flex-direction: column; gap: 2px; }
	.k-nav button { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border: 0; background: none; border-radius: 10px; cursor: pointer; font-weight: 600; color: var(--k-muted); text-align: left; }
	.k-nav button svg { width: 20px; height: 20px; }
	.k-nav button.is-on { background: var(--k-soft); color: var(--k-primary); }
	.k-nav button:hover:not(.is-on) { background: var(--k-bg); color: var(--k-text); }
	.k-side-foot { margin-top: auto; font-size: 13px; color: var(--k-muted); padding: 0 8px; }
	.k-tabbar { display: none; }
	.k-main { padding-bottom: 30px; }
	.k-top { padding: 22px 28px 14px; }
	.k-content { padding: 4px 28px 30px; }
}

/* ---------- Tableau de bord ---------- */
.k-kpis { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 14px; }
@media (min-width: 900px) { .k-kpis { grid-template-columns: repeat(4, 1fr); gap: 14px; } }
.k-kpi { background: var(--k-surface); border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 14px; }
.k-kpi b { display: block; font-size: 20px; line-height: 1.2; margin-top: 6px; font-variant-numeric: tabular-nums; }
.k-kpi span { font-size: 12.5px; color: var(--k-muted); font-weight: 600; }
.k-kpi.k-hero { background: var(--k-primary); color: var(--k-on-primary); border-color: transparent; }
.k-kpi.k-hero span { color: color-mix(in srgb, var(--k-on-primary) 80%, transparent); }
.k-grid2 { display: grid; gap: 14px; }
@media (min-width: 900px) { .k-grid2 { grid-template-columns: 1.4fr 1fr; } }
.k-section-title { display: flex; align-items: center; justify-content: space-between; margin: 0 0 12px; font-size: 16px; font-weight: 700; }
.k-chart { display: flex; align-items: flex-end; gap: 8px; height: 150px; padding-top: 10px; }
.k-bar { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; }
.k-bar i { display: block; width: 100%; max-width: 38px; border-radius: 6px 6px 3px 3px; background: color-mix(in srgb, var(--k-primary) 30%, var(--k-surface)); min-height: 3px; }
.k-bar.is-today i { background: var(--k-primary); }
.k-bar small { font-size: 11px; color: var(--k-muted); font-weight: 600; }
.k-quick { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }

/* ---------- Listes ---------- */
.k-list { background: var(--k-surface); border: 1px solid var(--k-line); border-radius: var(--k-radius); overflow: hidden; }
.k-item { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--k-line); width: 100%; background: none; border-left: 0; border-right: 0; border-top: 0; text-align: left; cursor: pointer; }
.k-item:last-child { border-bottom: 0; }
.k-item:hover { background: color-mix(in srgb, var(--k-bg) 60%, var(--k-surface)); }
.k-item .k-grow { flex: 1; min-width: 0; }
.k-item .k-title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.k-item .k-right { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.k-thumb { width: 44px; height: 44px; border-radius: 10px; background: var(--k-soft) center/cover no-repeat; color: var(--k-primary); display: flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; }
.k-empty { text-align: center; padding: 34px 16px; color: var(--k-muted); }
.k-empty b { display: block; color: var(--k-text); font-size: 16px; margin-bottom: 4px; }

.k-toolbar { display: flex; gap: 8px; margin-bottom: 12px; align-items: center; }
.k-toolbar .k-input { flex: 1; min-height: 44px; }
.k-chips { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 12px; padding-bottom: 2px; scrollbar-width: none; }
.k-chip { flex-shrink: 0; min-height: 36px; padding: 0 14px; border-radius: 99px; border: 1px solid var(--k-line); background: var(--k-surface); cursor: pointer; font-weight: 600; font-size: 14px; }
.k-chip.is-on { background: var(--k-text); border-color: var(--k-text); color: var(--k-surface); }

/* ---------- Caisse ---------- */
.k-pos { display: grid; gap: 14px; }
@media (min-width: 900px) { .k-pos { grid-template-columns: 1fr 360px; align-items: start; } .k-cart-desktop { position: sticky; top: 80px; } }
.k-pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.k-ptile { position: relative; background: var(--k-surface); border: 1px solid var(--k-line); border-radius: var(--k-radius); padding: 10px; text-align: left; cursor: pointer; display: flex; flex-direction: column; gap: 6px; }
.k-ptile .k-thumb { width: 100%; height: auto; aspect-ratio: 4/3; font-size: 24px; }
.k-ptile .k-title { font-weight: 600; font-size: 14px; line-height: 1.25; }
.k-ptile .k-price { font-weight: 700; color: var(--k-primary); font-size: 14px; }
.k-ptile.is-out { opacity: .5; }
.k-ptile .k-qtybubble { position: absolute; top: 6px; right: 6px; min-width: 26px; height: 26px; border-radius: 99px; background: var(--k-accent); color: #1C1407; font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center; padding: 0 6px; }
.k-cartbar { position: fixed; left: 12px; right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 25; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 8px 0 18px; min-height: 58px; border-radius: 16px; background: var(--k-text); color: var(--k-surface); border: 0; cursor: pointer; font-weight: 700; box-shadow: 0 10px 26px rgba(0,0,0,.25); }
.k-cartbar span.k-go { background: var(--k-accent); color: #1C1407; border-radius: 11px; padding: 10px 14px; }
@media (min-width: 900px) { .k-cartbar { display: none; } }
.k-cline { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--k-line); }
.k-cline:last-child { border-bottom: 0; }
.k-stepper { display: flex; align-items: center; border: 1px solid var(--k-line); border-radius: 10px; overflow: hidden; }
.k-stepper button { width: 34px; height: 34px; border: 0; background: var(--k-bg); cursor: pointer; font-size: 18px; font-weight: 700; }
.k-stepper input { width: 44px; height: 34px; border: 0; text-align: center; font-weight: 700; background: var(--k-surface); }
.k-totals > div { display: flex; justify-content: space-between; padding: 4px 0; font-variant-numeric: tabular-nums; }
.k-totals .k-grand { font-size: 20px; font-weight: 800; padding-top: 10px; margin-top: 6px; border-top: 1px solid var(--k-line); }
.k-pay { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 14px; }
.k-pay button { min-height: 46px; border-radius: 10px; border: 1px solid var(--k-line); background: var(--k-surface); cursor: pointer; font-weight: 600; font-size: 13.5px; }
.k-pay button.is-on { border-color: var(--k-primary); background: var(--k-soft); color: var(--k-primary); box-shadow: inset 0 0 0 1px var(--k-primary); }
.k-success { text-align: center; padding: 10px 0; }
.k-success .k-tick { width: 64px; height: 64px; margin: 0 auto 12px; border-radius: 50%; background: var(--k-soft); color: var(--k-primary); display: flex; align-items: center; justify-content: center; }
.k-actions { display: grid; gap: 10px; margin-top: 16px; }

/* ---------- Feuille (modale) ---------- */
.k-sheet-wrap { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: flex-end; justify-content: center; background: rgba(15, 20, 18, .45); animation: kfade .15s; }
.k-sheet { width: 100%; max-width: 560px; max-height: 92vh; max-height: 92dvh; overflow: auto; background: var(--k-surface); border-radius: 22px 22px 0 0; padding: 8px 18px calc(22px + env(safe-area-inset-bottom)); animation: kup .2s ease-out; }
.k-sheet-head { position: sticky; top: -8px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 0 12px; background: var(--k-surface); }
.k-sheet-head h3 { margin: 0; font-size: 19px; }
.k-x { width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--k-bg); cursor: pointer; font-size: 20px; line-height: 1; }
@media (min-width: 700px) { .k-sheet-wrap { align-items: center; } .k-sheet { border-radius: 22px; } }
@keyframes kup { from { transform: translateY(30px); opacity: .5; } }
@keyframes kfade { from { opacity: 0; } }

.k-toast { position: fixed; left: 50%; top: calc(14px + env(safe-area-inset-top)); transform: translateX(-50%); z-index: 100001; background: var(--k-text); color: var(--k-surface); padding: 12px 18px; border-radius: 12px; font-weight: 600; box-shadow: 0 8px 22px rgba(0,0,0,.2); max-width: calc(100% - 32px); animation: kfade .2s; }
.k-toast.k-bad { background: var(--k-danger); color: #fff; }

.k-menu { display: grid; gap: 8px; }
.k-menu button, .k-menu a { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 12px; border: 1px solid var(--k-line); background: var(--k-surface); cursor: pointer; font-weight: 600; text-decoration: none; color: var(--k-text); }
.k-menu svg { width: 22px; height: 22px; color: var(--k-primary); }
.k-kv { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--k-line); }
.k-kv:last-child { border-bottom: 0; }
.k-photo { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.k-photo .k-thumb { width: 64px; height: 64px; font-size: 13px; }
.k-mb { margin-bottom: 14px; }
.k-mt { margin-top: 14px; }
.k-sep { height: 1px; background: var(--k-line); margin: 18px 0; }
.k-num { font-variant-numeric: tabular-nums; }
.k-pos-only-mobile { display: block; }
@media (min-width: 900px) { .k-pos-only-mobile { display: none; } }
.k-desktop-only { display: none; }
@media (min-width: 900px) { .k-desktop-only { display: block; } }

@media (max-width: 380px) { .k-pay { grid-template-columns: repeat(2, 1fr); } .k-kpi b { font-size: 17px; } }

/* ---------- Formule : bandeau d'expiration ---------- */
.k-banner { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 16px 12px; padding: 12px 14px; border-radius: var(--k-radius); background: #FFF2DC; color: #6B4300; font-size: 14px; }
.k-banner.k-banner-bad { background: #FCE6E4; color: #8A1F18; }
.k-banner .k-btn { flex-shrink: 0; }
@media (min-width: 900px) { .k-banner { margin: 0 28px 14px; max-width: 1044px; } }
.k-locked { background: repeating-linear-gradient(135deg, var(--k-surface), var(--k-surface) 10px, var(--k-bg) 10px, var(--k-bg) 20px); }

/* ---------- Équipe ---------- */
.k-perms { display: grid; gap: 2px; }
.k-perms .k-check { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--k-line); align-items: flex-start; }
.k-perms .k-check:last-child { border-bottom: 0; }
.k-perms .k-check input { flex-shrink: 0; margin-top: 1px; }
.k-btn[disabled] { opacity: .45; }

/* ================================================================== */
/* Version 1.3 : caisse avec bouton « Ajouter » + mise en page ordinateur */
/* ================================================================== */

/* Carte produit de la caisse */
.k-ptile { cursor: default; }
.k-ptile.is-in { border-color: var(--k-primary); box-shadow: inset 0 0 0 1px var(--k-primary); }
.k-ptile.is-out { opacity: .6; }
.k-tile-foot { margin-top: auto; padding-top: 4px; }
.k-tile-foot .k-btn { min-height: 40px; }
.k-tile-foot [aria-disabled] { pointer-events: none; color: var(--k-muted); }
.k-stepper-tile { display: grid; grid-template-columns: 40px 1fr 40px; width: 100%; border-color: var(--k-primary); }
.k-stepper-tile button { width: auto; height: 40px; background: var(--k-soft); color: var(--k-primary); }
.k-stepper-tile button[disabled] { opacity: .35; }
.k-stepper-tile span { display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 16px; background: var(--k-surface); }

/* Éléments réservés à un format */
.k-quick.k-mobile-only { display: grid; }
.k-desktop-inline { display: none !important; }

/* Tableaux (ordinateur) */
.k-list.k-list-flat { background: none; border: 0; overflow: visible; }
.k-table-wrap { background: var(--k-surface); border: 1px solid var(--k-line); border-radius: var(--k-radius); overflow: auto; }
.k-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.k-table th { text-align: left; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--k-muted); background: color-mix(in srgb, var(--k-bg) 55%, var(--k-surface)); padding: 12px 16px; border-bottom: 1px solid var(--k-line); white-space: nowrap; }
.k-table td { padding: 12px 16px; border-bottom: 1px solid var(--k-line); vertical-align: middle; font-variant-numeric: tabular-nums; }
.k-table tbody tr { cursor: pointer; transition: background .12s; }
.k-table tbody tr:hover, .k-table tbody tr:focus { background: var(--k-soft); outline: none; }
.k-table tbody tr:last-child td { border-bottom: 0; }
.k-table .k-r { text-align: right; white-space: nowrap; }
.k-cell-main { display: flex; align-items: center; gap: 12px; }
.k-thumb.k-thumb-sm { width: 36px; height: 36px; border-radius: 9px; font-size: 14px; }

@media (min-width: 900px) {
	.komerci-root { font-size: 15px; }
	.k-quick.k-mobile-only { display: none; }
	.k-desktop-inline { display: inline-flex !important; }

	/* Barre latérale */
	.k-side { width: 252px; padding: 24px 16px 20px; }
	.k-side .k-logo { margin-bottom: 28px; font-size: 21px; }
	.k-nav { gap: 4px; }
	.k-nav button { padding: 11px 14px; font-size: 15px; border-radius: 11px; position: relative; }
	.k-nav button.is-on::before { content: ""; position: absolute; left: -16px; top: 9px; bottom: 9px; width: 4px; border-radius: 0 4px 4px 0; background: var(--k-primary); }
	.k-side-foot { border-top: 1px solid var(--k-line); padding: 16px 8px 0; line-height: 1.45; }

	/* Zone principale centrée et plus large */
	.k-main { display: flex; flex-direction: column; }
	.k-top, .k-content { width: 100%; max-width: 1320px; margin-left: auto; margin-right: auto; }
	.k-top { position: sticky; padding: 30px 40px 20px; background: var(--k-bg); align-items: flex-end; }
	.k-top h1 { font-size: 28px; letter-spacing: -.01em; }
	.k-top .k-shopname { font-size: 12.5px; margin-bottom: 4px; }
	.k-top [data-top-action] { display: flex; gap: 10px; }
	.k-top [data-top-action] .k-btn { min-height: 44px; padding: 0 20px; }
	.k-content { padding: 0 40px 56px; }
	.k-banner { width: calc(100% - 80px); max-width: 1240px; margin: 0 auto 18px; }

	/* Indicateurs */
	.k-kpis { gap: 16px; margin-bottom: 20px; }
	.k-kpi { padding: 20px 22px; border-radius: calc(var(--k-radius) + 2px); }
	.k-kpi span { font-size: 13px; }
	.k-kpi b { font-size: 27px; margin: 8px 0 4px; letter-spacing: -.01em; }
	.k-card { padding: 22px; }
	.k-grid2 { gap: 20px; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
	.k-grid2.k-mt { margin-top: 20px; }
	.k-section-title { font-size: 17px; margin-bottom: 14px; }
	.k-chart { height: 220px; gap: 14px; }
	.k-bar i { max-width: 56px; border-radius: 8px 8px 4px 4px; }
	.k-item { padding: 14px 18px; }

	/* Filtres et recherche */
	.k-toolbar .k-input { max-width: 460px; }
	.k-chips { flex-wrap: wrap; overflow: visible; }

	/* Caisse */
	.k-pos { grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; }
	.k-pgrid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
	.k-ptile { padding: 12px; gap: 6px; }
	.k-ptile .k-title { font-size: 15px; }
	.k-cart-desktop { top: 100px; }
	.k-cart-desktop .k-card { padding: 20px; }

	/* Fenêtres */
	.k-sheet { max-width: 620px; padding: 8px 28px 28px; }
}
@media (min-width: 1500px) {
	.k-pgrid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
}
@media (min-width: 900px) { .k-ptile .k-thumb { aspect-ratio: 16 / 10; } }
@media (max-width: 899px) { .k-pos { padding-bottom: 76px; } }
