/* Kontex Ventes — Kontex Design System v1.0 ("Stitched Clarity"), PMS interface scale.
   1. DS tokens (copied from design/kontex-design-system/project/tokens.css)
   2. Semantic app tokens, light + dark (DS dark tokens)
   3. DS components (bundle.css) rewritten on semantic tokens so they follow the theme
   4. App layout (shell, pages, screens) */

/* ---------- 1. DS tokens ---------- */
:root{
  --kx-teal-50:#effaf7; --kx-teal-100:#dbf5ee; --kx-teal-200:#bae8dc; --kx-teal-300:#89d2bf; --kx-teal-400:#37be9a;
  --kx-teal-500:#1ca07d; --kx-teal-600:#0f8b6a; --kx-teal-700:#0b6f55; --kx-teal-800:#075440; --kx-teal-900:#04392b;
  --kx-amber-50:#fef9ec; --kx-amber-100:#fdefce; --kx-amber-200:#fce09c; --kx-amber-300:#fdce5d; --kx-amber-400:#ffc029;
  --kx-amber-500:#ffb400; --kx-amber-600:#db9b00; --kx-amber-700:#b27e00; --kx-amber-800:#866003; --kx-amber-900:#614605;
  --kx-slate-0:#ffffff; --kx-slate-50:#f5f7fa; --kx-slate-100:#ebeff4; --kx-slate-200:#dae0e7; --kx-slate-300:#c3cbd5;
  --kx-slate-400:#a9b2bc; --kx-slate-500:#9aa3ad; --kx-slate-600:#707e8f; --kx-slate-700:#515f70; --kx-slate-800:#384657;
  --kx-slate-900:#243243; --kx-slate-950:#16202c;
  --kx-red-50:#fdedee; --kx-red-100:#fbdbdd; --kx-red-200:#f4bec2; --kx-red-600:#b82832; --kx-red-700:#981f27; --kx-red-800:#78171d;
  --kx-blue-50:#edf6fd; --kx-blue-100:#dbedfb; --kx-blue-200:#bedcf4; --kx-blue-600:#1870b4; --kx-blue-700:#125a91; --kx-blue-800:#0d4773;
  --kx-shadow-raised:0 1px 2px rgba(36,50,67,.06),0 2px 8px rgba(36,50,67,.06);
  --kx-shadow-overlay:0 12px 32px rgba(36,50,67,.16),0 2px 8px rgba(36,50,67,.08);
  --kx-pms-sidebar-w:264px; --kx-pms-topbar-h:56px; --kx-pms-content-max:1360px; --kx-pms-page-padding:24px;
  --kx-radius-xs:4px; --kx-radius-sm:8px; --kx-radius-md:12px; --kx-radius-lg:20px; --kx-radius-pill:999px;
  --kx-ease:cubic-bezier(.2,.8,.2,1); --kx-ease-enter:cubic-bezier(.16,1,.3,1); --kx-ease-exit:cubic-bezier(.4,0,1,1);
  --kx-dur-micro:120ms; --kx-dur:200ms; --kx-dur-enter:320ms; --kx-dur-exit:160ms; --kx-dur-seam:480ms;
  --kx-font-sans:"Poppins","Segoe UI",system-ui,sans-serif;
  --kx-font-mono:"IBM Plex Mono","SFMono-Regular",ui-monospace,monospace;
}

/* ---------- 2. Semantic tokens (light) ---------- */
:root{
  --bg:var(--kx-slate-50); --surface:#ffffff; --sunken:var(--kx-slate-100); --hover:var(--kx-slate-100);
  --text:var(--kx-slate-900); --text2:var(--kx-slate-700); --text3:var(--kx-slate-600); --brand-text:var(--kx-teal-700);
  --border-subtle:var(--kx-slate-100); --border:var(--kx-slate-200); --border-strong:var(--kx-slate-300);
  --primary:var(--kx-teal-700); --primary-hover:var(--kx-teal-800); --on-primary:#ffffff;
  --accent:var(--kx-amber-500); --accent-hover:var(--kx-amber-600); --on-accent:var(--kx-slate-900);
  --identity:var(--kx-teal-600); --tint:var(--kx-teal-50); --ring-input:var(--kx-teal-100); --seam:var(--kx-teal-300);
  --destructive:var(--kx-red-600); --destructive-hover:var(--kx-red-700);
  --info-bg:var(--kx-blue-50); --info-text:var(--kx-blue-700); --info-line:var(--kx-blue-600);
  --done-bg:var(--kx-teal-50); --done-text:var(--kx-teal-700); --done-dot:var(--kx-teal-600);
  --pend-bg:var(--kx-amber-50); --pend-text:var(--kx-amber-800); --pend-dot:var(--kx-amber-500); --pend-line:var(--kx-amber-200);
  --late-bg:var(--kx-red-50); --late-text:var(--kx-red-700); --late-dot:var(--kx-red-600);
  --neu-bg:var(--kx-slate-100); --neu-text:var(--kx-slate-700); --neu-dot:var(--kx-slate-600);
  --disabled-bg:var(--kx-slate-100); --disabled-text:var(--kx-slate-600);
  --node-bg:#ffffff; --node-line:var(--kx-slate-300);
  --overlay:rgba(22,32,44,.55);
  --focus:0 0 0 2px #ffffff,0 0 0 4px #ffb400;
  --logo-light:block; --logo-dark:none;
  color-scheme:light;
}
/* Dark: DS dark tokens. Auto via the OS, unless the page forces light. */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:var(--kx-slate-950); --surface:var(--kx-slate-900); --sunken:var(--kx-slate-950); --hover:var(--kx-slate-800);
    --text:#ffffff; --text2:var(--kx-slate-300); --text3:var(--kx-slate-400); --brand-text:var(--kx-teal-400);
    --border-subtle:var(--kx-slate-800); --border:var(--kx-slate-800); --border-strong:var(--kx-slate-700);
    --primary:var(--kx-teal-500); --primary-hover:var(--kx-teal-400); --on-primary:var(--kx-slate-950);
    --identity:var(--kx-teal-600); --tint:var(--kx-teal-900); --ring-input:var(--kx-teal-800); --seam:var(--kx-teal-400);
    --destructive:var(--kx-red-600); --destructive-hover:var(--kx-red-700);
    --info-bg:var(--kx-blue-800); --info-text:var(--kx-blue-200); --info-line:var(--kx-blue-200);
    --done-bg:var(--kx-teal-900); --done-text:var(--kx-teal-400); --done-dot:var(--kx-teal-400);
    --pend-bg:var(--kx-amber-900); --pend-text:var(--kx-amber-300); --pend-dot:var(--kx-amber-400); --pend-line:var(--kx-amber-800);
    --late-bg:var(--kx-red-800); --late-text:var(--kx-red-200); --late-dot:var(--kx-red-200);
    --neu-bg:var(--kx-slate-800); --neu-text:var(--kx-slate-300); --neu-dot:var(--kx-slate-400);
    --disabled-bg:var(--kx-slate-800); --disabled-text:var(--kx-slate-400);
    --node-bg:var(--kx-slate-900); --node-line:var(--kx-slate-700);
    --focus:0 0 0 2px #243243,0 0 0 4px #ffc029;
    --logo-light:none; --logo-dark:block;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:var(--kx-slate-950); --surface:var(--kx-slate-900); --sunken:var(--kx-slate-950); --hover:var(--kx-slate-800);
  --text:#ffffff; --text2:var(--kx-slate-300); --text3:var(--kx-slate-400); --brand-text:var(--kx-teal-400);
  --border-subtle:var(--kx-slate-800); --border:var(--kx-slate-800); --border-strong:var(--kx-slate-700);
  --primary:var(--kx-teal-500); --primary-hover:var(--kx-teal-400); --on-primary:var(--kx-slate-950);
  --identity:var(--kx-teal-600); --tint:var(--kx-teal-900); --ring-input:var(--kx-teal-800); --seam:var(--kx-teal-400);
  --info-bg:var(--kx-blue-800); --info-text:var(--kx-blue-200); --info-line:var(--kx-blue-200);
  --done-bg:var(--kx-teal-900); --done-text:var(--kx-teal-400); --done-dot:var(--kx-teal-400);
  --pend-bg:var(--kx-amber-900); --pend-text:var(--kx-amber-300); --pend-dot:var(--kx-amber-400); --pend-line:var(--kx-amber-800);
  --late-bg:var(--kx-red-800); --late-text:var(--kx-red-200); --late-dot:var(--kx-red-200);
  --neu-bg:var(--kx-slate-800); --neu-text:var(--kx-slate-300); --neu-dot:var(--kx-slate-400);
  --disabled-bg:var(--kx-slate-800); --disabled-text:var(--kx-slate-400);
  --node-bg:var(--kx-slate-900); --node-line:var(--kx-slate-700);
  --focus:0 0 0 2px #243243,0 0 0 4px #ffc029;
  --logo-light:none; --logo-dark:block;
  color-scheme:dark;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:400 14px/1.5 var(--kx-font-sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p{margin:0}
a{color:var(--brand-text);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
::selection{background:var(--kx-teal-200);color:var(--kx-slate-900)}
button{font-family:inherit}
.ico{display:inline-block;vertical-align:middle;flex-shrink:0}
.logo-light{display:var(--logo-light)} .logo-dark{display:var(--logo-dark)}
.mono{font-family:var(--kx-font-mono);font-variant-numeric:tabular-nums}
.muted{color:var(--text3)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:none;box-shadow:var(--focus)}

/* interface type scale (24/18/15/14/13/12/11) */
.kx-ui-page-title{font:600 24px/1.25 var(--kx-font-sans)}
.kx-ui-section{font:600 18px/1.35 var(--kx-font-sans)}
.kx-ui-card-title{font:600 15px/1.4 var(--kx-font-sans)}
.kx-ui-body{font:400 14px/1.5 var(--kx-font-sans)}
.kx-ui-label{font:500 13px/1.4 var(--kx-font-sans)}
.kx-ui-caption{font:400 12px/1.4 var(--kx-font-sans)}
.kx-ui-micro{font:600 11px/1.2 var(--kx-font-sans);letter-spacing:.08em;text-transform:uppercase}
.kx-ui-data{font:500 13px/1.4 var(--kx-font-mono);font-variant-numeric:tabular-nums}

/* ---------- 3. DS components ---------- */
/* buttons */
.kx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--kx-radius-sm);font:600 14px/1 var(--kx-font-sans);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background var(--kx-dur-micro) var(--kx-ease),border-color var(--kx-dur-micro) var(--kx-ease),color var(--kx-dur-micro) var(--kx-ease)}
.kx-btn:hover{text-decoration:none}
.kx-btn--sm{height:32px;padding:0 12px;font-size:13px}
.kx-btn--lg{height:48px;padding:0 24px;font-size:16px}
.kx-btn--icon{width:40px;padding:0}
.kx-btn--sm.kx-btn--icon{width:32px}
.kx-btn--primary{background:var(--primary);color:var(--on-primary)}
.kx-btn--primary:hover:not(:disabled){background:var(--primary-hover)}
.kx-btn--accent{background:var(--accent);color:var(--on-accent)}
.kx-btn--accent:hover:not(:disabled){background:var(--accent-hover)}
.kx-btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
.kx-btn--secondary:hover:not(:disabled){background:var(--bg);border-color:var(--kx-slate-400)}
.kx-btn--ghost{background:transparent;color:var(--brand-text)}
.kx-btn--ghost:hover:not(:disabled){background:var(--tint)}
.kx-btn--destructive{background:var(--destructive);color:#ffffff}
.kx-btn--destructive:hover:not(:disabled){background:var(--destructive-hover)}
.kx-btn:disabled,.kx-btn[aria-disabled="true"]{background:var(--disabled-bg);color:var(--disabled-text);border-color:transparent;cursor:not-allowed}
.kx-btn--block{width:100%}

/* inputs */
.kx-input{height:40px;width:100%;min-width:0;border-radius:var(--kx-radius-sm);border:1px solid var(--border);background:var(--surface);padding:0 12px;font:400 14px/1.2 var(--kx-font-sans);color:var(--text);transition:border-color var(--kx-dur-micro) var(--kx-ease),box-shadow var(--kx-dur-micro) var(--kx-ease)}
.kx-input::placeholder{color:var(--text3)}
.kx-input:focus{outline:none;border-color:var(--identity);box-shadow:0 0 0 3px var(--ring-input)}
.kx-input:disabled,.kx-input[readonly]{background:var(--bg);color:var(--text3)}
.kx-input--error{border-color:var(--late-dot)}
textarea.kx-input{height:auto;min-height:84px;padding:10px 12px;line-height:1.5;resize:vertical}
select.kx-input{padding-inline-end:28px}
.kx-input.num,input.kx-input[type=number]{font-family:var(--kx-font-mono);font-variant-numeric:tabular-nums}
.kx-input.num{text-align:end}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.field>.lab{font:500 13px/1.4 var(--kx-font-sans);color:var(--text2)}
.field .opt-tag{font-weight:400;color:var(--text3)}
.field .help{font:400 12px/1.4 var(--kx-font-sans);color:var(--text3)}
.field .err{font:500 12px/1.4 var(--kx-font-sans);color:var(--late-text);display:flex;gap:6px;align-items:center}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.form-grid .full{grid-column:1/-1}
@media (max-width:640px){.form-grid{grid-template-columns:minmax(0,1fr)}}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.check{display:inline-flex;gap:8px;align-items:center;font:400 14px/1.4 var(--kx-font-sans);color:var(--text);cursor:pointer;min-height:32px}
.check input{width:16px;height:16px;margin:0;accent-color:var(--primary)}

/* chips (StatusChip: neutral / pending / progress / done / late) */
.kx-chip{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--kx-radius-xs);font:600 11px/1 var(--kx-font-sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;vertical-align:middle}
.kx-chip__dot{width:6px;height:6px;border-radius:999px;flex-shrink:0}
.kx-chip.neutral{background:var(--neu-bg);color:var(--neu-text)} .kx-chip.neutral .kx-chip__dot{background:var(--neu-dot)}
.kx-chip.pending{background:var(--pend-bg);color:var(--pend-text)} .kx-chip.pending .kx-chip__dot{background:var(--pend-dot)}
.kx-chip.progress{background:var(--info-bg);color:var(--info-text)} .kx-chip.progress .kx-chip__dot{background:var(--info-line)}
.kx-chip.done{background:var(--done-bg);color:var(--done-text)} .kx-chip.done .kx-chip__dot{background:var(--done-dot)}
.kx-chip.late{background:var(--late-bg);color:var(--late-text)} .kx-chip.late .kx-chip__dot{background:var(--late-dot)}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

/* cards */
.kx-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--kx-radius-md);min-width:0}
.kx-card--pad{padding:20px}
.kx-card--clickable{cursor:pointer;transition:box-shadow var(--kx-dur-micro) var(--kx-ease),border-color var(--kx-dur-micro) var(--kx-ease),transform var(--kx-dur-micro) var(--kx-ease)}
.kx-card--clickable:hover{box-shadow:var(--kx-shadow-raised);border-color:var(--border-strong);transform:translateY(-2px)}
.kx-card--notch{clip-path:polygon(14px 0,100% 0,100% 100%,0 100%,0 14px);border-radius:0 12px 12px 12px;border-top:3px solid var(--identity)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card-head h2{font:600 18px/1.35 var(--kx-font-sans);color:var(--text)}
.card-head h3{font:600 15px/1.4 var(--kx-font-sans);color:var(--text)}
.card-body{display:flex;flex-direction:column;gap:16px}
.micro{display:flex;align-items:center;gap:8px;font:600 11px/1.2 var(--kx-font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text3)}
.micro .tick{flex-shrink:0}

/* tables */
.tablewrap{overflow-x:auto;min-width:0;position:relative}
.kx-table{width:100%;border-collapse:collapse}
.kx-table thead th{background:var(--bg);font:600 11px/1 var(--kx-font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--text3);text-align:start;height:40px;padding:0 16px;border-bottom:1px solid var(--border);white-space:nowrap}
.kx-table tbody td{padding:10px 16px;height:44px;border-bottom:1px solid var(--border-subtle);color:var(--text);vertical-align:middle;font:400 14px/1.4 var(--kx-font-sans)}
.kx-table tbody tr:last-child td{border-bottom:none}
.kx-table tbody tr:hover td{background:var(--tint)}
.kx-table tfoot td{padding:10px 16px;border-top:1px solid var(--border);font:600 14px/1.4 var(--kx-font-sans)}
.kx-table .num,.num{text-align:end;font-family:var(--kx-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:500}
.kx-table th.num{font-family:var(--kx-font-sans);font-size:11px;font-weight:600}
.kx-table td .sub{display:block;color:var(--text3);font:400 12px/1.45 var(--kx-font-sans);margin-top:2px;white-space:normal}
.kx-table tr.clickable{cursor:pointer}
.kx-table tr.cur td{font-weight:600}
.kx-table.compact tbody td{height:auto;padding:8px 12px}
.kx-table.compact thead th{height:34px;padding:0 12px}
.kx-table td.actions{text-align:end;white-space:nowrap}
/* .mono wins over the sans font set by .kx-input, table cells and .sub */
.kx-input.mono,.kx-table td.mono,.kx-table td .sub.mono{font-family:var(--kx-font-mono);font-variant-numeric:tabular-nums}
.acts-v{display:inline-flex;flex-direction:column;align-items:stretch;gap:6px}
.ref{font:500 13px/1.4 var(--kx-font-mono);font-variant-numeric:tabular-nums;color:var(--brand-text);white-space:nowrap}
.rngtxt{color:var(--info-text)}

/* KPI tiles */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.kx-kpi{border:1px solid var(--border);border-radius:var(--kx-radius-md);padding:20px;background:var(--surface);display:flex;flex-direction:column;gap:8px;color:var(--text);text-decoration:none;min-width:0}
a.kx-kpi:hover{text-decoration:none;box-shadow:var(--kx-shadow-raised);border-color:var(--border-strong);transform:translateY(-2px);transition:all var(--kx-dur-micro) var(--kx-ease)}
.kx-kpi__label{font:500 13px/1.4 var(--kx-font-sans);color:var(--text3);display:flex;gap:8px;align-items:center}
.kx-kpi__value{font:600 28px/1.2 var(--kx-font-mono);font-variant-numeric:tabular-nums;color:var(--text)}
.kx-kpi__meta{display:flex;align-items:center;gap:8px;font:400 12px/1.4 var(--kx-font-sans);color:var(--text3)}

/* overlays: modal + drawer */
.kx-modal-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}
.kx-modal{width:560px;max-width:100%;max-height:calc(100vh - 32px);overflow:auto;background:var(--surface);color:var(--text);border-radius:var(--kx-radius-md);box-shadow:var(--kx-shadow-overlay);padding:24px;display:flex;flex-direction:column;gap:16px}
.kx-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.kx-modal__header h2{font:600 18px/1.35 var(--kx-font-sans)}
.kx-modal__close{background:transparent;border:none;color:var(--text3);cursor:pointer;padding:4px;border-radius:var(--kx-radius-xs);display:flex}
.kx-modal__close:hover{color:var(--text)}
.kx-modal__body{color:var(--text2);display:flex;flex-direction:column;gap:12px;font:400 14px/1.5 var(--kx-font-sans)}
.kx-modal__actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.kx-drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}
.kx-drawer{position:relative;height:100%;width:480px;max-width:100vw;background:var(--surface);color:var(--text);box-shadow:var(--kx-shadow-overlay);display:flex;flex-direction:column}
.kx-drawer--wide{width:1080px}
.kx-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border-subtle)}
.kx-drawer__head h2{font:600 18px/1.35 var(--kx-font-sans)}
.kx-drawer__body{flex:1;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}
.kx-drawer__foot{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 24px;border-top:1px solid var(--border-subtle);background:var(--surface)}
@media (max-width:640px){.kx-drawer__head,.kx-drawer__body,.kx-drawer__foot{padding-inline:16px}}
@media (prefers-reduced-motion:no-preference){
  .kx-modal-overlay{animation:kxfade var(--kx-dur-enter) var(--kx-ease-enter)}
  .kx-modal{animation:kxrise var(--kx-dur-enter) var(--kx-ease-enter)}
  .kx-drawer{animation:kxslide var(--kx-dur-enter) var(--kx-ease-enter)}
  @keyframes kxfade{from{opacity:0}to{opacity:1}}
  @keyframes kxrise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  @keyframes kxslide{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
}

/* toasts */
.toasts{position:fixed;inset-inline-end:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:8px;z-index:2000;max-width:calc(100vw - 32px)}
.kx-toast{display:flex;align-items:center;gap:12px;width:380px;max-width:100%;background:var(--surface);color:var(--text);border-radius:var(--kx-radius-sm);box-shadow:var(--kx-shadow-overlay);border-inline-start:4px solid var(--identity);padding:14px 16px;font:500 14px/1.4 var(--kx-font-sans)}
.kx-toast.error{border-inline-start-color:var(--late-dot)}
.kx-toast.error .ico{color:var(--late-text)}
.kx-toast .ico{color:var(--brand-text)}
.kx-toast__body{flex:1}
.kx-toast__close{background:transparent;border:none;color:var(--text3);cursor:pointer;padding:2px;display:flex;border-radius:var(--kx-radius-xs)}
@media (prefers-reduced-motion:no-preference){.kx-toast{animation:kxrise var(--kx-dur-enter) var(--kx-ease-enter)}}

/* empty state (invitation) */
.kx-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;max-width:420px;margin:0 auto;padding:40px 24px}
.kx-empty__icon{width:72px;height:72px;border-radius:999px;background:var(--tint);color:var(--brand-text);display:flex;align-items:center;justify-content:center}
.kx-empty__title{font:600 15px/1.4 var(--kx-font-sans);color:var(--text)}
.kx-empty__body{font:400 13px/1.5 var(--kx-font-sans);color:var(--text3)}
.loading{display:flex;align-items:center;gap:12px;color:var(--text3);font:400 13px/1.4 var(--kx-font-sans);padding:32px 4px}
.loading .seamline{width:48px;height:2px;border-top:2px dashed var(--seam)}
@media (prefers-reduced-motion:no-preference){.loading .seamline{animation:kxseam 1s linear infinite}@keyframes kxseam{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}}

/* seam progress (the BAT gate) */
.kx-seam-progress{display:flex;align-items:flex-start;width:100%}
.kx-seam-progress__stage{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0;width:18px;position:relative}
.kx-seam-progress__node{width:18px;height:18px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--node-bg);border:2px solid var(--node-line);color:#ffffff;flex-shrink:0;transition:background var(--kx-dur-seam) var(--kx-ease-enter),border-color var(--kx-dur-seam) var(--kx-ease-enter)}
.kx-seam-progress__node--done{background:var(--kx-teal-600);border-color:var(--kx-teal-600)}
.kx-seam-progress__node--active{background:var(--kx-amber-500);border-color:var(--kx-amber-500);box-shadow:0 0 0 4px rgba(255,180,0,.25)}
.kx-seam-progress__node--blocked{background:var(--kx-red-600);border-color:var(--kx-red-600);width:22px;height:22px;margin-top:-2px}
.kx-seam-progress__label{position:absolute;top:28px;left:50%;transform:translateX(-50%);width:96px;text-align:center;font:400 12px/1.35 var(--kx-font-sans);color:var(--text3)}
.kx-seam-progress__stage--done .kx-seam-progress__label{color:var(--text2)}
.kx-seam-progress__stage--active .kx-seam-progress__label,.kx-seam-progress__stage--blocked .kx-seam-progress__label{color:var(--text);font-weight:600}
.kx-seam-progress__segment{flex:1;margin-top:8px;min-width:16px;border-top:2px dashed var(--node-line)}
.kx-seam-progress__segment--done{border-top:3px solid var(--kx-teal-600);margin-top:7.5px}
.kx-seam-progress__segment--active{border-top:3px solid var(--kx-amber-500);margin-top:7.5px}
.kx-seam-progress__segment--blocked{border-top:2px dashed var(--kx-red-600)}
.seam-wrap{padding:4px 44px 44px}
@media (max-width:899px){
  .seam-wrap{padding:0}
  .kx-seam-progress{flex-direction:column;align-items:stretch}
  .kx-seam-progress__stage{flex-direction:row;width:auto;gap:12px;align-items:center}
  .kx-seam-progress__label{position:static;transform:none;width:auto;text-align:start;font-size:13px}
  .kx-seam-progress__segment{flex:0 0 18px;min-width:0;margin:2px 0 2px 8px;border-top:none;border-inline-start:2px dashed var(--node-line)}
  .kx-seam-progress__segment--done{border-inline-start:3px solid var(--kx-teal-600);margin-inline-start:7.5px}
  .kx-seam-progress__segment--active{border-inline-start:3px solid var(--kx-amber-500);margin-inline-start:7.5px}
  .kx-seam-progress__segment--blocked{border-inline-start:2px dashed var(--kx-red-600)}
  .kx-seam-progress__node--blocked{margin:0 -2px}
}
.gate{display:flex;gap:12px;padding:14px 16px;background:var(--pend-bg);border:1px solid var(--pend-line);border-radius:var(--kx-radius-sm);align-items:flex-start;color:var(--pend-text)}
.gate.neutral{background:var(--neu-bg);border-color:var(--border);color:var(--text2)}
.gate.ok{background:var(--done-bg);border-color:transparent;color:var(--done-text)}
.gate h3{font:600 15px/1.4 var(--kx-font-sans);margin-bottom:4px}
.gate p{font:400 13px/1.5 var(--kx-font-sans)}
.gate ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font:400 13px/1.45 var(--kx-font-sans)}
.gate li{display:flex;gap:8px;align-items:flex-start}
.gate .ico{margin-top:1px}
.gate .grow{flex:1;min-width:0}

/* sidebar */
.kx-sidebar{width:264px;background:var(--surface);border-inline-end:1px solid var(--border);display:flex;flex-direction:column;justify-content:space-between;padding:16px 12px}
.kx-sidebar__scroll{overflow-y:auto;flex:1}
.kx-sidebar__group{margin-bottom:8px}
.kx-sidebar__group-label{font:600 11px/1.2 var(--kx-font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin:20px 12px 8px}
.kx-sidebar__group:first-child .kx-sidebar__group-label{margin-top:4px}
.kx-sidebar__item{display:flex;align-items:center;gap:10px;width:100%;height:40px;padding:0 12px;border-radius:var(--kx-radius-sm);border:none;background:transparent;font:500 14px/1 var(--kx-font-sans);color:var(--text2);cursor:pointer;position:relative;text-align:start;text-decoration:none}
.kx-sidebar__item:hover{background:var(--hover);text-decoration:none}
.kx-sidebar__item--active{background:var(--tint);color:var(--brand-text);font-weight:600}
.kx-sidebar__item--active::before{content:"";position:absolute;inset-inline-start:0;top:6px;bottom:6px;width:3px;border-radius:2px;background:var(--identity)}
.kx-sidebar__item .count{margin-inline-start:auto;font:500 12px/1 var(--kx-font-mono);color:var(--text3)}
.kx-sidebar__footer{display:flex;flex-direction:column;gap:8px;padding-top:12px}
.seam-rule{display:block;width:100%;height:2px}
.seam-rule line{stroke:var(--seam)}

/* ---------- 4. App layout ---------- */
.app{min-height:100vh}
.app>.kx-sidebar{position:fixed;top:0;bottom:0;inset-inline-start:0;z-index:40}
.main{margin-inline-start:264px;min-height:100vh;display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:30;height:56px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 24px}
.topbar .brand img{height:18px;width:auto}
.topbar .menu-btn{display:none}
.search{position:relative;flex:1;max-width:360px}
.search .ico{position:absolute;inset-inline-start:11px;top:9px;color:var(--text3);pointer-events:none}
.search input{height:34px;padding-inline-start:34px;font-size:13px}
.topbar .spacer{flex:1}
.userchip{display:flex;align-items:center;gap:10px;padding-inline-start:12px;border-inline-start:1px solid var(--border-subtle)}
.avatar{width:28px;height:28px;border-radius:999px;background:var(--kx-teal-700);color:#ffffff;display:flex;align-items:center;justify-content:center;font:600 11px/1 var(--kx-font-sans);flex-shrink:0}
.userchip .who{display:flex;flex-direction:column;line-height:1.2}
.userchip .who b{font:500 13px/1.3 var(--kx-font-sans);color:var(--text)}
.userchip .who span{font:400 12px/1.3 var(--kx-font-sans);color:var(--text3)}
.content{width:100%;max-width:1360px;margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:20px;flex:1}
.scrim{display:none}
@media (max-width:1023px){
  .app>.kx-sidebar{transform:translateX(-100%);transition:transform var(--kx-dur-enter) var(--kx-ease-enter);box-shadow:none;width:min(280px,86vw)}
  .app.nav-open>.kx-sidebar{transform:none;box-shadow:var(--kx-shadow-overlay)}
  .app.nav-open .scrim{display:block;position:fixed;inset:0;background:var(--overlay);z-index:35}
  .main{margin-inline-start:0}
  .topbar .menu-btn{display:inline-flex}
  .topbar{padding:0 12px;gap:10px}
}
@media (max-width:767px){
  .content{padding:16px;gap:16px}
  .userchip .who{display:none}
  .topbar .brand{display:none}
  .topbar .spacer{display:none}
  .search{max-width:none}
}

/* page header: title left, one accent action right */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px 24px;flex-wrap:wrap}
.page-head .t{display:flex;flex-direction:column;gap:4px;min-width:0}
.page-head h1{font:600 24px/1.25 var(--kx-font-sans);color:var(--text);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.page-head h1 .mono{font-weight:600}
.page-head .caption{font:400 12px/1.4 var(--kx-font-sans);color:var(--text3);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.page-head .actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.back-link{display:inline-flex;align-items:center;gap:6px;color:var(--brand-text);font:500 13px/1.4 var(--kx-font-sans);margin-bottom:-12px;width:max-content}
.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.filter-chip{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font:500 13px/1 var(--kx-font-sans);color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.filter-chip:hover{background:var(--tint)}
.filter-chip[aria-pressed="true"]{background:var(--tint);border-color:var(--kx-teal-300);color:var(--brand-text)}
.filters .spacer{flex:1}
.filters select.kx-input{height:32px;width:auto;font-size:13px}
.tabs{display:flex;gap:20px;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.tabs a,.tabs button{font:500 14px/1 var(--kx-font-sans);color:var(--text2);text-decoration:none;padding:12px 0;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;background:none;cursor:pointer}
.tabs a:hover,.tabs button:hover{color:var(--brand-text);text-decoration:none}
.tabs [aria-current="page"]{color:var(--text);font-weight:600;border-bottom-color:var(--identity)}

/* grids */
.cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.cols>div{display:flex;flex-direction:column;gap:16px;min-width:0}
@media (max-width:1100px){.cols{grid-template-columns:minmax(0,1fr)}}
.stack{display:flex;flex-direction:column;gap:12px}
.cluster{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 20px;margin:0}
.dl dt{font:500 13px/1.4 var(--kx-font-sans);color:var(--text3)}
.dl dd{margin:0;text-align:end;color:var(--text);font:400 14px/1.4 var(--kx-font-sans);min-width:0;overflow-wrap:anywhere}
.dl dd.mono{font:500 13px/1.4 var(--kx-font-mono)}
.hint{font:400 12px/1.5 var(--kx-font-sans);color:var(--text3)}
.note{font:400 13px/1.55 var(--kx-font-sans);color:var(--text2);max-width:80ch}
.callout{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--kx-radius-sm);font:400 13px/1.5 var(--kx-font-sans)}
.callout.info{background:var(--info-bg);color:var(--info-text)}
.callout.warn{background:var(--pend-bg);color:var(--text);border:1px solid var(--pend-line)}
.callout.late{background:var(--late-bg);color:var(--late-text)}
.callout.ok{background:var(--done-bg);color:var(--done-text)}
.callout .ico{margin-top:1px}
.callout b{font-weight:600}

/* money */
.price-big{font:600 28px/1.2 var(--kx-font-mono);font-variant-numeric:tabular-nums;color:var(--text)}
.price-big small{font:500 14px/1 var(--kx-font-sans);color:var(--text3);margin-inline-start:6px}
.price-big.rng{color:var(--info-text)}
.price-sub{font:500 13px/1.4 var(--kx-font-mono);font-variant-numeric:tabular-nums;color:var(--text2)}
.total-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.total-row .v{font:600 22px/1.2 var(--kx-font-mono);font-variant-numeric:tabular-nums;color:var(--text)}
.money-lines{display:flex;flex-direction:column;gap:8px}
.money-lines>div{display:flex;justify-content:space-between;gap:12px;font:400 14px/1.4 var(--kx-font-sans);color:var(--text2)}
.money-lines>div .num{color:var(--text)}
.alerts{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.alerts li{display:flex;gap:8px;align-items:flex-start;background:var(--late-bg);color:var(--late-text);padding:10px 12px;border-radius:var(--kx-radius-sm);font:500 13px/1.45 var(--kx-font-sans)}
.alerts li .ico{margin-top:1px}

/* unit price editor in the lines table */
.lines-table thead th,.lines-table tbody td,.lines-table tfoot td{padding-inline:12px}
.unit-edit{width:108px;height:34px;text-align:end;font:500 13px/1 var(--kx-font-mono)}
.unit-edit.below{border-color:var(--late-dot);color:var(--late-text)}

/* line editor (Price Lab form) */
.le-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:960px){.le-grid{grid-template-columns:minmax(0,1fr)}}
.le-form,.le-preview{display:flex;flex-direction:column;gap:16px;min-width:0}
.le-preview{padding:20px}
.seg{display:flex;flex-wrap:wrap;gap:4px;background:var(--sunken);padding:4px;border-radius:var(--kx-radius-sm)}
.seg button{flex:1 1 auto;min-height:36px;padding:6px 12px;border:none;border-radius:6px;background:transparent;color:var(--text2);font:500 13px/1.3 var(--kx-font-sans);cursor:pointer}
.seg button:hover{color:var(--brand-text)}
.seg button[aria-checked="true"]{background:var(--surface);color:var(--brand-text);font-weight:600;box-shadow:inset 0 -2px 0 var(--identity)}
.seg button:disabled{cursor:not-allowed;color:var(--disabled-text)}
.seg button[aria-checked="true"]:focus-visible{box-shadow:inset 0 -2px 0 var(--identity),var(--focus)}
.sizes{display:flex;flex-wrap:wrap;gap:8px}
.size{width:64px;display:flex;flex-direction:column;gap:4px;align-items:stretch}
.size label{font:500 13px/1.4 var(--kx-font-sans);color:var(--text2);text-align:center}
.size input{text-align:center;padding:0 4px}
.avail{font:500 11px/1.2 var(--kx-font-mono);color:var(--text3);text-align:center}
.avail.low{color:var(--late-text)}
.placement{border:1px solid var(--border-subtle);border-radius:var(--kx-radius-sm);padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}
.placement .row .field{flex:1 1 140px}
.placement .row .field.narrow{flex:0 1 110px}
.optchips{display:flex;flex-wrap:wrap;gap:8px}
.optchip{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font:500 13px/1.3 var(--kx-font-sans);color:var(--text2);cursor:pointer;text-align:start}
.optchip:hover{background:var(--tint)}
.optchip[aria-pressed="true"]{border-color:var(--identity);background:var(--tint);color:var(--brand-text);font-weight:600}
.optchip .p{font:500 12px/1 var(--kx-font-mono);font-variant-numeric:tabular-nums}
.drow{display:grid;grid-template-columns:repeat(3,minmax(0,110px)) auto;gap:8px;align-items:end}
.splitbox{border-radius:var(--kx-radius-sm);padding:12px 14px;display:flex;gap:10px;align-items:flex-start;font:400 13px/1.5 var(--kx-font-sans)}
.splitbox.ok{background:var(--done-bg);color:var(--done-text)}
.splitbox.warn{background:var(--pend-bg);color:var(--text);border:1px solid var(--pend-line)}
.splitbox b{font-weight:600}
.opts{display:flex;flex-direction:column;gap:8px}
.opt{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:var(--kx-radius-sm);padding:10px 12px;background:var(--surface)}
.opt.exact{border-style:dashed}
.opt .h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:600 13px/1.4 var(--kx-font-sans)}
.opt .sz{font:500 13px/1.5 var(--kx-font-mono);color:var(--text2)}
.opt .n{text-align:end;font:500 13px/1.4 var(--kx-font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.opt .d{display:block;font:400 12px/1.4 var(--kx-font-sans);color:var(--text3);white-space:normal}
@media (max-width:560px){.opt{grid-template-columns:minmax(0,1fr) auto}.opt>.kx-btn,.opt>.check{grid-column:1/-1;justify-self:start}}
.msg{border:1px solid var(--border-subtle);background:var(--bg);border-radius:var(--kx-radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.msg p{font:400 13px/1.6 var(--kx-font-sans);color:var(--text)}
.textbox{white-space:pre-wrap;font:400 13px/1.6 var(--kx-font-sans);color:var(--text);background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--kx-radius-sm);padding:12px 14px;max-height:340px;overflow:auto;width:100%}
details.more{border-top:1px solid var(--border-subtle);padding-top:12px}
details.more summary{cursor:pointer;color:var(--brand-text);font:500 13px/1.4 var(--kx-font-sans);width:max-content;max-width:100%}
details.more[open] summary{margin-bottom:12px}
.mini-table{border:1px solid var(--border);border-radius:var(--kx-radius-sm);overflow:hidden}
.mini-table .kx-table tbody td{height:auto;padding:8px 12px;font-size:13px}
.mini-table .kx-table thead th{height:34px;padding:0 12px}
tr.total td{font-weight:600;background:var(--bg)}
.filelabel{position:relative;display:inline-flex}
.filelabel input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* timeline */
.timeline{display:flex;flex-direction:column}
.ev{display:flex;gap:12px;padding-block:10px;border-bottom:1px solid var(--border-subtle)}
.ev:last-child{border-bottom:none}
.ev .dot{width:8px;height:8px;border-radius:999px;background:var(--identity);flex-shrink:0;margin-top:6px}
.ev .body{flex:1;min-width:0}
.ev .what{font:400 14px/1.45 var(--kx-font-sans);color:var(--text);overflow-wrap:anywhere}
.ev .what .ico{color:var(--text3)}
.ev .when{font:400 12px/1.4 var(--kx-font-sans);color:var(--text3)}
.filelist{display:flex;flex-direction:column}
.filerow{display:flex;align-items:center;gap:12px;padding-block:10px;border-bottom:1px solid var(--border-subtle)}
.filerow:last-child{border-bottom:none}
.filerow .ico{color:var(--brand-text)}
.filerow .name{flex:1;min-width:0}
.filerow .name a,.filerow .name span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* versions */
.version{border:1px solid var(--border-subtle);border-radius:var(--kx-radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.version .vh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}

/* client picker */
.picklist{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--kx-radius-sm);overflow:hidden}
.pick{display:flex;align-items:center;gap:12px;padding:10px 12px;border:none;border-bottom:1px solid var(--border-subtle);background:var(--surface);text-align:start;cursor:pointer;color:var(--text);font:400 14px/1.4 var(--kx-font-sans);width:100%}
.pick:last-child{border-bottom:none}
.pick:hover{background:var(--tint)}
.pick[aria-pressed="true"]{background:var(--tint);box-shadow:inset 3px 0 0 var(--identity)}
.pick:focus-visible{box-shadow:var(--focus)}
.pick[aria-pressed="true"]:focus-visible{box-shadow:inset 3px 0 0 var(--identity),var(--focus)}
.pick .sub{display:block;color:var(--text3);font-size:12px}

/* auth screens */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg)}
.auth-card{width:420px;max-width:100%;display:flex;flex-direction:column;gap:20px;padding:28px}
.auth-card .brand img{height:22px;width:auto}
.auth-card h1{font:600 24px/1.25 var(--kx-font-sans)}
.userpick{display:flex;flex-wrap:wrap;gap:8px}
.pin{font-family:var(--kx-font-mono);letter-spacing:.2em}

/* production board */
.board{display:flex;gap:16px;overflow-x:auto;align-items:flex-start;padding-bottom:8px}
.board-col{flex:1 0 240px;min-width:0;background:var(--sunken);border-radius:var(--kx-radius-md);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:120px}
.board-col h2{font:600 11px/1.2 var(--kx-font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--text3);display:flex;justify-content:space-between;align-items:center;padding:4px 4px 2px}
.board-col h2 .n{font:500 12px/1 var(--kx-font-mono);letter-spacing:0}
.board-col .none{font:400 12px/1.4 var(--kx-font-sans);color:var(--text3);padding:4px}
.board-col.empty{flex:0 0 150px}
.job-card{display:flex;flex-direction:column;gap:8px;padding:14px;color:var(--text);text-decoration:none}
.job-card:hover{text-decoration:none}
.job-card .top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.job-card .client{font:600 15px/1.35 var(--kx-font-sans)}
.job-card .meta{display:flex;flex-wrap:wrap;gap:6px 12px;font:400 12px/1.4 var(--kx-font-sans);color:var(--text3);align-items:center}
.job-card .meta .ico{color:var(--text3)}
@media (max-width:767px){
  .board{flex-direction:column;align-items:stretch;overflow:visible}
  .board-col{flex:none;min-height:0}
  .board-col.empty{display:none}
  .job-card{padding:16px}
  .prod .kx-btn{height:48px;font-size:15px}
  .prod .stage-actions{flex-direction:column;align-items:stretch}
  .prod .stage-actions .kx-btn{width:100%}
}
.stage-actions{display:flex;gap:10px;flex-wrap:wrap}
.spec-line{display:flex;flex-direction:column;gap:12px;padding-block:16px;border-bottom:1px solid var(--border-subtle)}
.spec-line:first-child{padding-top:0}
.spec-line:last-child{border-bottom:none;padding-bottom:0}
.spec-line h3{font:600 15px/1.4 var(--kx-font-sans)}
.size-grid{display:flex;flex-wrap:wrap;gap:8px}
.size-cell{min-width:64px;border:1px solid var(--border);border-radius:var(--kx-radius-sm);padding:8px 10px;text-align:center;background:var(--surface)}
.size-cell b{display:block;font:500 12px/1.2 var(--kx-font-sans);color:var(--text3)}
.size-cell span{font:600 18px/1.3 var(--kx-font-mono);font-variant-numeric:tabular-nums;color:var(--text)}
.size-cell.total{background:var(--tint);border-color:transparent}

/* search results */
.results h2{font:600 15px/1.4 var(--kx-font-sans);margin-bottom:8px}

/* ---------- phase 2 shell (design/13 §1.12): topbar « À faire », sidebar counts, slot spacing ----------
   Feature styles live in /css/<feature>.css with their prefix (rm-, mq-, doc-, cr-, in-, cod-). */
.todo-btn{position:relative;flex-shrink:0}
.todo-count{position:absolute;top:-3px;inset-inline-end:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--kx-teal-700);color:#ffffff;font:500 11px/18px var(--kx-font-mono);font-variant-numeric:tabular-nums;text-align:center;pointer-events:none}
.todo-count.late{background:var(--kx-red-600)}
.kx-sidebar__item .count.late{color:var(--late-text);font-weight:600}
.slot{display:flex;flex-direction:column;gap:16px;min-width:0}

@media (prefers-reduced-motion:reduce){
  .kx-card--clickable:hover,a.kx-kpi:hover{transform:none}
  .app>.kx-sidebar,.kx-seam-progress__node,.kx-card--clickable,a.kx-kpi:hover{transition:none}
}

@media print{.app>.kx-sidebar,.topbar,.toasts{display:none}.main{margin:0}}
