/* Limbaj vizual comun Sophia, scoped la :is(.ach, .sophia). Paginile pun
   clasa `ach`. Regulile specifice raman in modules/ sau pages/. */
:is(.ach, .sophia) { color:var(--sophia-text); }
/* panelul de sectiune: card alb simplu — titlul/numarul/actiunile stau in
   page header-ul sticky (Components::PageHeader), nu in panel. */
:is(.ach, .sophia) .devize-panel { border:1px solid var(--sophia-border); box-shadow:0 1px 1px rgba(70,72,86,.04); }
:is(.ach, .sophia) .devize-panel__head { display:flex; align-items:center; gap:12px; padding:13px 18px; border-bottom:1px solid var(--sophia-border); flex-wrap:wrap; }
/* varianta cu taburi: taburile sunt antetul panelului, lipite de marginea lui. */
:is(.ach, .sophia) .devize-panel__head--tabs { padding:0 8px; }
:is(.ach, .sophia) .devize-panel__head--tabs .nav-tabs { border-bottom:none; margin:0; }
:is(.ach, .sophia) .devize-panel__head--sub { background:var(--sophia-surface-2); }
:is(.ach, .sophia) .devize-panel__head--sub .nav-tabs .nav-link { padding:var(--sp-3) var(--sp-5); font-size:var(--fs-xs); }
:is(.ach, .sophia) .devize-panel__title { font-size:calc(16px * var(--fs-mult, 1)); font-weight:600; color:var(--sophia-text); margin:0; }
:is(.ach, .sophia) .devize-panel__count { background:var(--sophia-neutral-bg); color:var(--sophia-accent); font-weight:700; border-radius:12px; padding:2px 10px; font-size:calc(12px * var(--fs-mult, 1)); }
:is(.ach, .sophia) .devize-panel__actions { margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; }
:is(.ach, .sophia) .devize-panel__body { padding:16px 18px; }
/* panel */
:is(.ach, .sophia) .card { background:var(--sophia-surface); border:1px solid var(--sophia-border); border-radius:2px; box-shadow:0 1px 1px rgba(70,72,86,.04); }
:is(.ach, .sophia) .card-body { padding:6px 14px 14px; }
:is(.ach, .sophia) .card-header { padding:11px 16px; border-bottom:1px solid var(--sophia-border); display:flex; align-items:center; gap:8px; background:var(--sophia-surface); }
:is(.ach, .sophia) .card-title { font-size:calc(14px * var(--fs-mult, 1)); font-weight:600; color:var(--sophia-text); margin:0; }
:is(.ach, .sophia) .card-title .fa { color:var(--sophia-text-muted); }
/* taburi plate */
:is(.ach, .sophia) .nav-tabs { display:flex; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; gap:2px; border-bottom:1px solid var(--sophia-line-2); margin:0 0 4px; padding:0; -webkit-overflow-scrolling:touch; }
:is(.ach, .sophia) .nav-tabs > li { float:none; margin:0; flex:0 0 auto; }
:is(.ach, .sophia) .nav-tabs > li > a { border:none; border-radius:0; margin:0; background:transparent; padding:10px 13px; color:var(--sophia-text-muted); font-size:calc(13px * var(--fs-mult, 1)); white-space:nowrap; border-bottom:2px solid transparent; }
:is(.ach, .sophia) .nav-tabs > li > a:hover { background:var(--sophia-surface-2); color:var(--sophia-text); }
:is(.ach, .sophia) .nav-tabs > li > a.active,
:is(.ach, .sophia) .nav-tabs > li > a.active:hover,
:is(.ach, .sophia) .nav-tabs > li > a.active:focus { color:var(--sophia-accent); background:transparent; border:none; border-bottom:2px solid var(--sophia-accent); font-weight:600; }
:is(.ach, .sophia) .nav-tabs .badge { background:var(--sophia-text-muted); color:var(--sophia-surface); margin-left:5px; font-size:calc(10px * var(--fs-mult, 1)); }
:is(.ach, .sophia) .nav-tabs .active .badge { background:var(--sophia-accent); color:var(--sophia-surface); }
:is(.ach, .sophia) .tab-content { padding-top:12px; }
/* pastile de status */
:is(.ach, .sophia) .pill { display:inline-block; font-size:calc(11px * var(--fs-mult, 1)); font-weight:600; padding:2px 9px; border-radius:3px; }
:is(.ach, .sophia) .pill--pending   { background:var(--sophia-neutral-bg); color:var(--sophia-text-2); }
:is(.ach, .sophia) .pill--placed    { background:var(--sophia-info-bg); color:var(--sophia-info); }
:is(.ach, .sophia) .pill--partial   { background:var(--sophia-warn-bg); color:var(--sophia-warn); }
:is(.ach, .sophia) .pill--completed { background:var(--sophia-good-bg); color:var(--sophia-good); }
:is(.ach, .sophia) .pill--overdue   { background:var(--sophia-bad-bg); color:var(--sophia-bad); margin-left:4px; }
/* indicator de termen (countdown SLA): NU e pastila de status — arata cat timp
   a mai ramas pana la un termen si pulseaza cand a fost depasit. */
:is(.ach, .sophia) .sla-pill{display:inline-block;font-family:monospace;font-size:calc(12px * var(--fs-mult, 1));font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap}
:is(.ach, .sophia) .sla-pill--lg{font-size:calc(16px * var(--fs-mult, 1));padding:6px 13px;border-radius:20px}
:is(.ach, .sophia) .sla--ok{background:var(--sophia-good-bg);color:var(--sophia-good)}
:is(.ach, .sophia) .sla--warn{background:var(--sophia-warn-bg);color:var(--sophia-warn)}
:is(.ach, .sophia) .sla--breach{background:var(--sophia-bad-bg);color:var(--sophia-bad);animation:slapulse 1.4s ease-in-out infinite}
@keyframes slapulse{0%,100%{opacity:1}50%{opacity:.55}}
@media (prefers-reduced-motion:reduce){:is(.ach, .sophia) .sla--breach{animation:none}}
/* chip-uri (necesar) */
:is(.ach, .sophia) .chip { display:inline-block; font-size:calc(11px * var(--fs-mult, 1)); font-weight:600; padding:2px 9px; border-radius:3px; white-space:nowrap; background:var(--sophia-neutral-bg); color:var(--sophia-text-2); }
:is(.ach, .sophia) .chip--fab     { background:var(--sophia-info-bg); color:var(--sophia-info); }
:is(.ach, .sophia) .chip--prod    { background:var(--sophia-product-bg); color:var(--sophia-product); }
:is(.ach, .sophia) .chip--reorder { background:var(--sophia-warn-bg); color:var(--sophia-warn); }
:is(.ach, .sophia) .chip--req     { background:var(--sophia-good-bg); color:var(--sophia-good); }
/* eticheta libera (tag), nu stare: contur, fara fundal, ca sa nu concureze cu pastilele */
:is(.ach, .sophia) .chip--tag { background:transparent; border:1px solid var(--sophia-line-3); color:var(--sophia-text-muted); font-weight:500; }
/* paginare */
:is(.ach, .sophia) .nq-pagination { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-top:16px; }
:is(.ach, .sophia) .nq-pagination__info { font-size:calc(12px * var(--fs-mult, 1)); color:var(--sophia-text-muted); }
:is(.ach, .sophia) .pagination { display:inline-flex; gap:4px; margin:0; }
:is(.ach, .sophia) .pagination a, :is(.ach, .sophia) .pagination span { display:inline-block; min-width:30px; text-align:center; padding:5px 9px; border:1px solid var(--sophia-line-2); border-radius:3px; font-size:calc(13px * var(--fs-mult, 1)); color:var(--sophia-accent); text-decoration:none; background:var(--sophia-surface); }
:is(.ach, .sophia) .pagination a:hover { background:var(--sophia-surface-2); }
:is(.ach, .sophia) .pagination .current, :is(.ach, .sophia) .pagination em { background:var(--sophia-accent); border-color:var(--sophia-accent); color:var(--sophia-surface); font-weight:600; font-style:normal; }
:is(.ach, .sophia) .pagination .disabled { color:var(--sophia-text-faint); }
/* Chrome-ul turbotable (header/rânduri/caret/detail/toolbar) e global acum:
   app/assets/stylesheets/turbo_table.css. Aici rămâne doar conținutul (.tt-toolbar
   e o bară de filtre proprie, nu controalele turbotable-ului). */
:is(.ach, .sophia) .tt-toolbar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
:is(.ach, .sophia) .tt-toolbar input[type=search], :is(.ach, .sophia) .tt-toolbar select { padding:6px 9px; border:1px solid var(--sophia-line-3); border-radius:3px; font-size:calc(13px * var(--fs-mult, 1)); }
:is(.ach, .sophia) .tt-toolbar input:focus, :is(.ach, .sophia) .tt-toolbar select:focus { outline:none; border-color:var(--sophia-accent); box-shadow:0 0 0 2px rgba(85,107,141,.12); }
/* .tt-filters: bara de filtre a unei liste — eticheta mica uppercase deasupra
   fiecarui control, actiunile impinse la dreapta, linie de separare fata de
   controalele turbotable-ului de dedesubt. */
:is(.ach, .sophia) .tt-filters { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap;
  margin:0 0 12px; padding:0 0 12px; border-bottom:1px solid var(--sophia-border); }
:is(.ach, .sophia) .tt-filters__field { display:flex; flex-direction:column; gap:3px; }
:is(.ach, .sophia) .tt-filters__field > label { font-size:calc(10px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--sophia-text-muted); margin:0; }
:is(.ach, .sophia) .devize-panel__actions form { display:flex; align-items:center; gap:6px; margin:0; }
:is(.ach, .sophia) .devize-panel__actions input[type=date],
:is(.ach, .sophia) .tt-filters select, :is(.ach, .sophia) .tt-filters input[type=date],
:is(.ach, .sophia) .tt-filters input[type=search], :is(.ach, .sophia) .tt-filters input[type=text] { height:var(--sophia-control-h); padding:4px 8px;
  border:1px solid var(--sophia-line-3); border-radius:3px; font-size:calc(13px * var(--fs-mult, 1)); background:var(--sophia-surface); color:var(--sophia-text); }
:is(.ach, .sophia) .tt-filters select:focus, :is(.ach, .sophia) .tt-filters input[type=date]:focus,
:is(.ach, .sophia) .tt-filters input[type=search]:focus, :is(.ach, .sophia) .tt-filters input[type=text]:focus { outline:none;
  border-color:var(--sophia-accent); box-shadow:0 0 0 2px rgba(85,107,141,.12); }
:is(.ach, .sophia) .tt-filters__dates { display:flex; align-items:center; gap:6px; }
:is(.ach, .sophia) .tt-filters__sep { color:var(--sophia-text-muted); }
:is(.ach, .sophia) .tt-filters__actions { display:flex; align-items:center; gap:6px; margin-left:auto; }
/* .tt-active-filters: cand filtrele stau in drawer, butonul care il deschide
   sta in dreapta barei de taburi, iar in corp raman doar pastilele active. */
:is(.ach, .sophia) .devize-panel__head--tabs .devize-panel__actions { padding:5px 4px 5px 0; }
:is(.ach, .sophia) .devize-panel__head--tabs .devize-panel__actions .badge { margin-left:5px; background:var(--sophia-accent); color:var(--sophia-surface); }
:is(.ach, .sophia) .tt-active-filters { display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin:0 0 12px; padding:0 0 12px; border-bottom:1px solid var(--sophia-border); }
:is(.ach, .sophia) .tt-active-filters__label { font-size:calc(10px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .tt-active-filters__actions { margin-left:auto; display:flex; gap:6px; }
:is(.ach, .sophia) .chip--filter { display:inline-flex; align-items:center; gap:6px; padding:3px 6px 3px 9px; }
:is(.ach, .sophia) .chip--filter b { color:var(--sophia-text); font-weight:700; }
:is(.ach, .sophia) .chip--filter a { color:var(--sophia-text-muted); font-size:calc(14px * var(--fs-mult, 1)); line-height:1; text-decoration:none; padding:0 2px; }
:is(.ach, .sophia) .chip--filter a:hover { color:var(--sophia-bad); }
/* expand-row: previzualizarea liniilor unei comenzi (randata lazy in frame-ul
   de detaliu al turbotable-ului). Pe structura .ln din pagina comenzii. */
:is(.ach, .sophia) .so-row-detail { padding:6px 12px 12px; background:var(--sophia-surface-2); }
:is(.ach, .sophia) .so-row-detail table { width:100%; border-collapse:collapse; font-size:calc(12.5px * var(--fs-mult, 1)); background:var(--sophia-surface); }
:is(.ach, .sophia) .so-row-detail thead th { text-align:left; font-size:calc(10px * var(--fs-mult, 1)); letter-spacing:.05em; text-transform:uppercase; color:var(--sophia-text-muted); font-weight:600; padding:8px 10px; border-bottom:1px solid var(--sophia-line-2); white-space:nowrap; }
:is(.ach, .sophia) .so-row-detail tbody td { padding:8px 10px; border-top:1px solid var(--sophia-line); vertical-align:middle; }
:is(.ach, .sophia) .so-row-detail .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
:is(.ach, .sophia) .so-row-detail__head { display:flex; align-items:center; gap:6px; margin:2px 2px 8px; font-size:calc(12.5px * var(--fs-mult, 1)); color:var(--sophia-text-muted); }
:is(.ach, .sophia) .so-row-detail__head a { color:var(--sophia-accent); font-weight:600; }
:is(.ach, .sophia) .so-row-detail__foot { display:flex; justify-content:flex-end; margin-top:10px; }
/* coloana Recepționat: bifa verde pe liniile primite integral, badge portocaliu
   cu ce mai trebuie primit pe cele partiale/nereceptionate */
:is(.ach, .sophia) .so-row-detail .rcvd-full { color:var(--sophia-good); font-weight:600; }
:is(.ach, .sophia) .so-row-detail .rcvd-full i { margin-right:4px; }
:is(.ach, .sophia) .so-row-detail .rcvd-none { color:var(--sophia-bad); font-weight:600; }
:is(.ach, .sophia) .so-row-detail .rcvd-remain { display:inline-block; margin-left:6px; padding:1px 7px;
  border-radius:10px; background:var(--sophia-warn-bg); color:var(--sophia-warn); font-size:calc(11px * var(--fs-mult, 1)); font-weight:600; }
/* ---- pagina de comanda (detaliu): card de context, stepper, tabel de linii,
   istoric. Comune modulului, nu specifice unei pagini. ---- */
/* Achiziții — pagină comandă (paleta Neuboard). Scoped la .so-show. Redesign:
fără expander — o singură tabelă de linii care crește coloanele de recepție
când comanda e „primibilă"; stepper de status în locul pastilei. */
/* ---- card de context (paginile de detaliu): meta | oameni | total ---- */
/* Trei zone cu rol fix — „ce e" / „cine" / „cat" — despartite prin linie, nu
   prin gol: pe ecran lat zonele se intind, nu lasa canion la mijloc. Zonele
   absente nu se randeaza, iar cele ramase impart latimea. */
:is(.ach, .sophia) .offer-header { display:flex; align-items:stretch; flex-wrap:wrap; background:var(--sophia-surface);
  border:1px solid var(--sophia-border); border-radius:2px; margin-bottom:14px; overflow:hidden;
  box-shadow:0 1px 1px rgba(70,72,86,.04); }
:is(.ach, .sophia) .offer-header > * { padding:13px 18px; }
:is(.ach, .sophia) .oh__main { flex:2 1 300px; min-width:0; display:flex; flex-direction:column; gap:7px; justify-content:center; }
:is(.ach, .sophia) .oh__meta { display:flex; align-items:center; gap:8px; font-size:calc(12px * var(--fs-mult, 1)); flex-wrap:wrap; }
:is(.ach, .sophia) .oh__tags { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
/* nota de blocaj: doar cand opreste fluxul */
:is(.ach, .sophia) .oh__note { margin:0; padding:5px 9px; font-size:calc(12px * var(--fs-mult, 1)); color:var(--sophia-warn); background:var(--sophia-warn-bg); border-radius:3px; }
/* acelasi ton, dar cu controale (ex. confirmarea transmiterii pe WhatsApp) */
:is(.ach, .sophia) .oh__note-form { display:flex; align-items:center; gap:6px; flex-wrap:wrap; flex-basis:100%;
  margin:4px 0 0; padding:7px 9px; background:var(--sophia-warn-bg); border-radius:3px; }
:is(.ach, .sophia) .oh__note-label { font-size:calc(11px * var(--fs-mult, 1)); font-weight:600; color:var(--sophia-warn); }
:is(.ach, .sophia) .oh__note-form .form-control,
:is(.ach, .sophia) .oh__note-form .form-select { height:var(--sophia-control-h-sm); width:150px; font-size:calc(12px * var(--fs-mult, 1)); }
/* oameni: cel pentru care e documentul primul, autorul secundar */
:is(.ach, .sophia) .oh__people { flex:1 1 190px; border-left:1px solid var(--sophia-border); display:flex; flex-direction:column;
  gap:11px; justify-content:center; align-items:flex-start; }
:is(.ach, .sophia) .person { display:flex; gap:9px; align-items:center; min-width:0; max-width:100%; }
:is(.ach, .sophia) .person__text { display:flex; flex-direction:column; min-width:0; line-height:1.3; }
:is(.ach, .sophia) .person__label { font-size:calc(9px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .person__label a { color:var(--sophia-text-muted); }
:is(.ach, .sophia) .person__name { font-size:calc(13px * var(--fs-mult, 1)); font-weight:600; color:var(--sophia-text); white-space:nowrap; overflow:hidden;
  text-overflow:ellipsis; max-width:220px; }
:is(.ach, .sophia) .person__sub { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); display:flex; align-items:center; gap:7px; min-width:0; }
:is(.ach, .sophia) .person__sub a:not(.btn) { color:var(--sophia-text-faint); flex:0 0 auto; }
:is(.ach, .sophia) .person__sub a:not(.btn):hover { color:var(--sophia-accent); }
:is(.ach, .sophia) .person--secondary .avatar { width:28px; height:28px; flex:0 0 28px; font-size:calc(11px * var(--fs-mult, 1)); }
:is(.ach, .sophia) .person--secondary .person__name { font-size:calc(12px * var(--fs-mult, 1)); font-weight:500; color:var(--sophia-text-2); }
:is(.ach, .sophia) .avatar { width:34px; height:34px; flex:0 0 34px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; color:var(--sophia-surface); font-weight:700; font-size:calc(12px * var(--fs-mult, 1)); background:var(--sophia-accent); }
:is(.ach, .sophia) .avatar--c { background:var(--sophia-text-muted); }
:is(.ach, .sophia) .avatar--sm { width:26px; height:26px; flex:0 0 26px; font-size:calc(10px * var(--fs-mult, 1)); }
/* cifrele: zona proprie, pe fundal usor diferit, ca sa se citeasca ca un bloc */
:is(.ach, .sophia) .oh__right { flex:1 1 210px; border-left:1px solid var(--sophia-border); background:var(--sophia-surface-2);
  display:flex; flex-direction:column; justify-content:center; }
:is(.ach, .sophia) .oh__total-label { display:block; font-size:calc(10px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .oh__total-value { font-size:calc(23px * var(--fs-mult, 1)); font-weight:700; color:var(--sophia-text); font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .oh__total-value .cur { font-size:calc(12px * var(--fs-mult, 1)); color:var(--sophia-text-muted); font-weight:600; margin-left:2px; }
:is(.ach, .sophia) .oh__total-note { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); margin-top:1px; font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .oh__total-note s { opacity:.75; }
:is(.ach, .sophia) .oh__total-note .save { color:var(--sophia-bad); }
:is(.ach, .sophia) .oh__variance { display:block; margin-top:3px; font-size:calc(12px * var(--fs-mult, 1)); font-weight:600; font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .oh__variance--under { color:var(--sophia-good); }
:is(.ach, .sophia) .oh__variance--over { color:var(--sophia-bad); }
@media (max-width:991px) {
  :is(.ach, .sophia) .offer-header { flex-direction:column; }
  :is(.ach, .sophia) .offer-header > * { flex:0 0 auto; }
  :is(.ach, .sophia) .oh__people, :is(.ach, .sophia) .oh__right { border-left:0; border-top:1px solid var(--sophia-border); }
}
/* ---- card de context compact (.oh-strip): stari + termen + bani pe primul
   rand, faptele cheie inline pe al doilea. Varianta joasa a .offer-header,
   pentru paginile unde termenul si datele conteaza mai mult decat avatarele. */
:is(.ach, .sophia) .oh-strip { background:var(--sophia-surface); border:1px solid var(--sophia-border); border-radius:2px;
  margin-bottom:14px; box-shadow:0 1px 1px rgba(70,72,86,.04); padding:10px 16px 11px;
  display:flex; flex-direction:column; gap:8px; }
:is(.ach, .sophia) .oh-strip__row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:0; }
:is(.ach, .sophia) .oh-strip__money { margin-left:auto; display:flex; align-items:baseline; gap:6px; white-space:nowrap;
  font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .oh-strip__money .lbl { font-size:calc(10px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .oh-strip__money .val { font-size:calc(17px * var(--fs-mult, 1)); font-weight:700; color:var(--sophia-text); }
:is(.ach, .sophia) .oh-strip__money .cur { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); font-weight:600; }
:is(.ach, .sophia) .oh-strip__money .sub { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); margin-left:8px; }
:is(.ach, .sophia) .oh-strip__money .sub s { opacity:.75; }
:is(.ach, .sophia) .oh-strip__money .sub .save { color:var(--sophia-bad); }
:is(.ach, .sophia) .oh-strip__facts { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:calc(12px * var(--fs-mult, 1));
  color:var(--sophia-text-muted); font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .oh-strip__facts b { color:var(--sophia-text); font-weight:600; }
:is(.ach, .sophia) .oh-strip__facts .sep { color:var(--sophia-text-faint); }
:is(.ach, .sophia) .oh-strip__facts > a { color:var(--sophia-text-faint); }
:is(.ach, .sophia) .oh-strip__facts > a:hover { color:var(--sophia-accent); }
:is(.ach, .sophia) .sla-note { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); }
/* ---- carduri de KPI (rapoarte) ---- */
:is(.ach, .sophia) .kpi-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
:is(.ach, .sophia) .kpi{flex:1 1 120px;background:var(--sophia-surface);border:1px solid var(--sophia-border);border-radius:2px;padding:14px 12px;text-align:center;box-shadow:0 1px 1px rgba(70,72,86,.04)}
:is(.ach, .sophia) .kpi__value{font-size:calc(26px * var(--fs-mult, 1));font-weight:700;color:var(--sophia-text);font-variant-numeric:tabular-nums;line-height:1}
:is(.ach, .sophia) .kpi__label{display:block;margin-top:6px;font-size:calc(11px * var(--fs-mult, 1));color:var(--sophia-text-muted);text-transform:uppercase;letter-spacing:.04em}
:is(.ach, .sophia) .kpi--danger .kpi__value{color:var(--sophia-bad)}
:is(.ach, .sophia) .kpi--accent .kpi__value{color:var(--sophia-accent)}
:is(.ach, .sophia) .kpi--success .kpi__value{color:var(--sophia-good)}
/* ---- cardul de liste de preturi (Components::PricingLists::Show) ---- */
:is(.ach, .sophia) .ps-mine{margin-bottom:0}
:is(.ach, .sophia) .ps-mine .kpi__value{font-size:calc(18px * var(--fs-mult, 1))}
:is(.ach, .sophia) .ps-mine .kpi .ln-muted{margin-top:3px;font-size:calc(11px * var(--fs-mult, 1))}
:is(.ach, .sophia) .kpi__hint{display:block;margin-top:2px;text-transform:none;letter-spacing:0;color:var(--sophia-text-faint)}
:is(.ach, .sophia) .ps-fx{color:var(--sophia-text-muted);font-variant-numeric:tabular-nums}
:is(.ach, .sophia) .ps-fx--ref{color:var(--sophia-accent);font-weight:700}
:is(.ach, .sophia) .ps-fx-rates{margin-top:8px;font-size:calc(11px * var(--fs-mult, 1));color:var(--sophia-text-faint)}
:is(.ach, .sophia) .ps-empty{color:var(--sophia-text-muted);margin:0}
:is(.ach, .sophia) .ps-scroll{overflow-x:auto}
/* ---- bara de adaugare: formular inline la baza unui panel ---- */
:is(.ach, .sophia) .add-row { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap;
  margin:12px -14px -14px; padding:12px 14px; background:var(--sophia-surface-2); border-top:1px solid var(--sophia-border); }
:is(.ach, .sophia) .add-row__field { display:flex; flex-direction:column; gap:3px; }
:is(.ach, .sophia) .add-row__field > label { font-size:calc(10px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.07em;
  text-transform:uppercase; color:var(--sophia-text-muted); margin:0; }
:is(.ach, .sophia) .add-row .form-control,
:is(.ach, .sophia) .add-row .form-select { height:var(--sophia-control-h); padding:4px 8px; font-size:calc(13px * var(--fs-mult, 1)); border:1px solid var(--sophia-line-3);
  border-radius:3px; box-shadow:none; width:100%; }
:is(.ach, .sophia) .add-row .form-control:focus,
:is(.ach, .sophia) .add-row .form-select:focus { outline:none; border-color:var(--sophia-accent); box-shadow:0 0 0 2px rgba(85,107,141,.12); }
:is(.ach, .sophia) .add-row__field--grow { flex:1 1 260px; }
:is(.ach, .sophia) .add-row lexxy-editor { background:var(--sophia-surface); border:1px solid var(--sophia-line-3); border-radius:3px; min-height:90px; }
:is(.ach, .sophia) .add-row__file input[type=file] { font-size:calc(12px * var(--fs-mult, 1)); color:var(--sophia-text-2); max-width:210px; }
:is(.ach, .sophia) .add-row__submit { margin-left:auto; }
:is(.ach, .sophia) .add-row--stack { flex-direction:column; align-items:stretch; gap:12px; }
/* varianta „sus": aceeasi bara, lipita de capul panelului, nu de baza */
:is(.ach, .sophia) .add-row--top { margin:-14px -14px 14px; border-top:0; border-bottom:1px solid var(--sophia-border); }
:is(.ach, .sophia) .add-row__line { display:flex; align-items:flex-end; gap:10px; flex-wrap:wrap; }
:is(.ach, .sophia) .add-row__line--foot { border-top:1px dashed var(--sophia-line-2); padding-top:12px; }
:is(.ach, .sophia) .add-row__error { margin:0; font-size:calc(12px * var(--fs-mult, 1)); color:var(--sophia-bad); }
:is(.ach, .sophia) .add-row textarea.form-control { height:auto; }
/* varianta „doua coloane": ce se scrie la stanga, ce se decide la dreapta */
:is(.ach, .sophia) .add-row--split { display:grid; grid-template-columns:minmax(0,1fr) 260px;
  align-items:start; gap:14px 18px; }
:is(.ach, .sophia) .add-row--split .add-row__error { grid-column:1 / -1; }
:is(.ach, .sophia) .add-row__main { display:flex; flex-direction:column; gap:10px; min-width:0; }
:is(.ach, .sophia) .add-row__side { display:flex; flex-direction:column; gap:10px;
  padding-left:18px; border-left:1px solid var(--sophia-border); }
:is(.ach, .sophia) .add-row__side .add-row__submit { margin:2px 0 0; }
:is(.ach, .sophia) .add-row__side .add-row__submit .btn { width:100%; }
:is(.ach, .sophia) .add-row--split lexxy-editor { min-height:96px; }
:is(.ach, .sophia) .add-row--split .lexxy-editor__content { max-height:220px; overflow-y:auto; }
@media (max-width: 991px) {
  :is(.ach, .sophia) .add-row--split { grid-template-columns:minmax(0,1fr); }
  :is(.ach, .sophia) .add-row__side { padding:12px 0 0; border-left:0; border-top:1px solid var(--sophia-border); }
}

/* ---- selectie prin chip-uri: radiouri native stilizate, fara JS ---- */
:is(.ach, .sophia) .chip-radios { display:flex; flex-wrap:wrap; gap:6px; }
:is(.ach, .sophia) .chip-radios input[type=radio] { position:absolute; opacity:0; width:0; height:0; }
:is(.ach, .sophia) .chip-radio { display:inline-flex; align-items:center; gap:5px; margin:0; cursor:pointer;
  font-size:calc(11px * var(--fs-mult, 1)); font-weight:600; padding:5px 10px; border-radius:3px; white-space:nowrap;
  background:var(--sophia-neutral-bg); color:var(--sophia-text-2); border:1px solid transparent; }
:is(.ach, .sophia) .chip-radio:hover { background:var(--sophia-neutral-bg); }
:is(.ach, .sophia) .chip-radios input[type=radio]:checked + .chip-radio { background:var(--sophia-accent); color:var(--sophia-surface); }
:is(.ach, .sophia) .chip-radios input[type=radio]:focus-visible + .chip-radio { border-color:var(--sophia-accent); box-shadow:0 0 0 2px rgba(85,107,141,.2); }

/* ---- feed de activitate ---- */
:is(.ach, .sophia) .cx-next { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px;
  padding:10px 12px; border-radius:3px; background:var(--sophia-surface-2); border-left:3px solid var(--sophia-text-muted); }
:is(.ach, .sophia) .cx-next--warn { background:var(--sophia-warn-bg); border-left-color:var(--sophia-warn); }
:is(.ach, .sophia) .cx-next--breach { background:var(--sophia-bad-bg); border-left-color:var(--sophia-bad); }
:is(.ach, .sophia) .cx-next--none { background:var(--sophia-surface-2); border-left-color:var(--sophia-line-2); }
:is(.ach, .sophia) .cx-next__label { font-size:calc(10px * var(--fs-mult, 1)); font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .cx-next__text { font-size:calc(13px * var(--fs-mult, 1)); color:var(--sophia-text); flex:1 1 220px; }
:is(.ach, .sophia) .cx-next__who, :is(.ach, .sophia) .cx-next__when { font-size:calc(12px * var(--fs-mult, 1)); color:var(--sophia-text-2); white-space:nowrap; }
:is(.ach, .sophia) .cx-next__actions { display:flex; gap:6px; margin-left:auto; }
:is(.ach, .sophia) .cx-next__actions form { margin:0; }
:is(.ach, .sophia) .tl-filters { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
:is(.ach, .sophia) .chip--tab { cursor:pointer; text-decoration:none; }
:is(.ach, .sophia) a.chip--tab:hover { background:var(--sophia-neutral-bg); color:var(--sophia-text-2); text-decoration:none; }
:is(.ach, .sophia) a.chip--on, :is(.ach, .sophia) a.chip--on:hover { background:var(--sophia-accent); color:var(--sophia-surface); }
:is(.ach, .sophia) .chip__count { opacity:.65; margin-left:3px; font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .tl-day { display:flex; align-items:center; gap:10px; margin:14px 0 2px; font-size:calc(10px * var(--fs-mult, 1));
  font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .tl-day::after { content:''; flex:1; height:1px; background:var(--sophia-border); }
:is(.ach, .sophia) .tl-filters + .tl-day { margin-top:2px; }
:is(.ach, .sophia) .audit-log turbo-frame { display:contents; }
:is(.ach, .sophia) .audit-log--feed li { gap:12px; padding:8px 0; }
:is(.ach, .sophia) .audit-log--feed .audit-when { min-width:44px; }
:is(.ach, .sophia) .audit-log--feed .audit-what { flex:1 1 320px; display:flex; align-items:baseline;
  gap:7px; flex-wrap:wrap; min-width:0; }
:is(.ach, .sophia) .audit-log--feed .audit-what a { color:var(--sophia-info); }
:is(.ach, .sophia) .tl-meta { margin-left:auto; display:flex; align-items:baseline; gap:8px; white-space:nowrap; }
:is(.ach, .sophia) .tl-actions { display:flex; gap:2px; opacity:0; transition:opacity .12s; }
:is(.ach, .sophia) .audit-log li:hover .tl-actions, :is(.ach, .sophia) .audit-log .tl-actions:focus-within { opacity:1; }
:is(.ach, .sophia) .tl-actions form { margin:0; }
:is(.ach, .sophia) .tl-actions .btn-link { padding:0 5px; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .tl-actions .btn-link:hover { color:var(--sophia-accent); }
:is(.ach, .sophia) .audit-log li.tl-done .audit-what { opacity:.6; }
:is(.ach, .sophia) .tl-edit { display:flex; gap:6px; align-items:flex-start; flex:1; flex-wrap:wrap; }
:is(.ach, .sophia) .tl-edit .form-control,
:is(.ach, .sophia) .tl-edit .form-select { height:var(--sophia-control-h-sm); padding:3px 7px; font-size:calc(12px * var(--fs-mult, 1)); border:1px solid var(--sophia-line-3);
  border-radius:3px; box-shadow:none; width:auto; flex:1 1 200px; }
:is(.ach, .sophia) .tl-edit lexxy-editor { flex:1 1 100%; background:var(--sophia-surface); border:1px solid var(--sophia-line-3);
  border-radius:3px; min-height:80px; }
:is(.ach, .sophia) .tl-more { margin-top:12px; }
/* corpul unei note: HTML din editor, randat inline in feed */
:is(.ach, .sophia) .tl-text { flex:1 1 240px; min-width:0; }
:is(.ach, .sophia) .tl-text p, :is(.ach, .sophia) .tl-text ul, :is(.ach, .sophia) .tl-text ol, :is(.ach, .sophia) .tl-text blockquote,
:is(.ach, .sophia) .tl-text pre { margin:0 0 4px; }
:is(.ach, .sophia) .tl-text > :last-child { margin-bottom:0; }
:is(.ach, .sophia) .tl-text ul, :is(.ach, .sophia) .tl-text ol { padding-left:18px; }
:is(.ach, .sophia) .tl-text blockquote { padding-left:8px; border-left:2px solid var(--sophia-line-2); color:var(--sophia-text-2); }
:is(.ach, .sophia) .tl-text pre { padding:6px 8px; background:var(--sophia-surface-2); border:1px solid var(--sophia-border);
  border-radius:3px; font-size:calc(12px * var(--fs-mult, 1)); overflow:auto; }

/* ---- stepper de flux ---- */
:is(.ach, .sophia) .so-steps { display:flex; list-style:none; margin:0 0 16px; padding:16px 10px 13px; background:var(--sophia-surface);
border:1px solid var(--sophia-border); border-radius:2px; box-shadow:0 1px 1px rgba(70,72,86,.04); }
:is(.ach, .sophia) .so-step { flex:1; text-align:center; position:relative; padding:0 4px; }
:is(.ach, .sophia) .so-step::before { content:''; position:absolute; top:16px; left:-50%; width:100%; height:2px; background:var(--sophia-neutral-bg); z-index:0; }
:is(.ach, .sophia) .so-step:first-child::before { display:none; }
:is(.ach, .sophia) .so-step--done::before, :is(.ach, .sophia) .so-step--current::before { background:var(--sophia-accent); }
:is(.ach, .sophia) .so-step__dot { position:relative; z-index:1; width:32px; height:32px; margin:0 auto 7px; border-radius:50%;
display:flex; align-items:center; justify-content:center; font-size:calc(13px * var(--fs-mult, 1)); background:var(--sophia-surface); border:2px solid var(--sophia-line-2); color:var(--sophia-text-faint); }
:is(.ach, .sophia) .so-step--done .so-step__dot { background:var(--sophia-accent); border-color:var(--sophia-accent); color:var(--sophia-surface); }
:is(.ach, .sophia) .so-step--current .so-step__dot { background:var(--sophia-surface); border-color:var(--sophia-accent); color:var(--sophia-accent); box-shadow:0 0 0 4px rgba(85,107,141,.12); }
:is(.ach, .sophia) .so-step__label { font-size:calc(12px * var(--fs-mult, 1)); font-weight:600; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .so-step--done .so-step__label, :is(.ach, .sophia) .so-step--current .so-step__label { color:var(--sophia-text); }
:is(.ach, .sophia) .so-step__date { display:block; font-size:calc(10.5px * var(--fs-mult, 1)); color:var(--sophia-text-faint); font-variant-numeric:tabular-nums; margin-top:1px; min-height:13px; }
/* stare laterala (respinsa): banda in locul stepper-ului (§3.12) */
:is(.ach, .sophia) .cx-rejected{background:var(--sophia-bad-bg);border:1px solid color-mix(in srgb, var(--sophia-bad) 32%, transparent);color:var(--sophia-bad);border-radius:3px;padding:12px 18px;margin-bottom:16px;font-weight:600}
/* varianta verticala: stepper-ul intr-o coloana de jumatate de pagina */
:is(.ach, .sophia) .so-steps--vertical { display:block; padding:14px 14px 13px; }
:is(.ach, .sophia) .so-steps--vertical .so-step { display:grid; grid-template-columns:32px 1fr; column-gap:11px;
align-items:center; text-align:left; padding:0 0 13px; }
:is(.ach, .sophia) .so-steps--vertical .so-step:last-child { padding-bottom:0; }
:is(.ach, .sophia) .so-steps--vertical .so-step::before { top:-13px; left:15px; width:2px; height:13px; }
:is(.ach, .sophia) .so-steps--vertical .so-step__dot { grid-row:1 / span 2; margin:0; }
:is(.ach, .sophia) .so-steps--vertical .so-step__label { grid-column:2; align-self:end; }
:is(.ach, .sophia) .so-steps--vertical .so-step__date { grid-column:2; align-self:start; margin-top:0; }
/* panel */
/* line-items table */
/* scrollul orizontal e al tabelului, niciodata al paginii (§3.4) */
:is(.ach, .sophia) .ln-scroll { overflow-x:auto; }
:is(.ach, .sophia) .ln { width:100%; border-collapse:collapse; font-size:calc(13px * var(--fs-mult, 1)); }
:is(.ach, .sophia) .ln thead th { text-align:left; font-size:calc(10px * var(--fs-mult, 1)); letter-spacing:.05em; text-transform:uppercase; color:var(--sophia-text-muted);
font-weight:600; padding:8px 10px; border-bottom:1px solid var(--sophia-line-2); white-space:nowrap; }
:is(.ach, .sophia) .ln thead th.num { text-align:right; }
/* group header: which columns go to the supplier vs internal */
:is(.ach, .sophia) .ln thead tr.ln-groups th { font-size:calc(9px * var(--fs-mult, 1)); letter-spacing:.08em; color:var(--sophia-text-faint); border-bottom:0; padding:8px 10px 0; font-weight:600; }
:is(.ach, .sophia) .ln thead tr.ln-groups th .fa { margin-right:4px; }
:is(.ach, .sophia) .ln thead tr.ln-groups th:first-child { color:var(--sophia-good); }
:is(.ach, .sophia) .ln thead tr.ln-groups th + th { border-left:1px dashed var(--sophia-line-2); }
:is(.ach, .sophia) .ln tbody td { padding:10px; border-top:1px solid var(--sophia-line); vertical-align:middle; }
:is(.ach, .sophia) .ln tbody tr:hover td { background:var(--sophia-surface-2); }
:is(.ach, .sophia) .ln .num { font-variant-numeric:tabular-nums; white-space:nowrap; text-align:right; }
:is(.ach, .sophia) .ln .name { font-weight:600; color:var(--sophia-text); }
:is(.ach, .sophia) .ln-muted { color:var(--sophia-text-faint); }
:is(.ach, .sophia) .ln tfoot td { padding:11px 10px; border-top:2px solid var(--sophia-line-2); font-weight:700; color:var(--sophia-text);
font-variant-numeric:tabular-nums; text-align:right; }
:is(.ach, .sophia) .ln tfoot .ln-total-label { text-align:left; font-size:calc(10px * var(--fs-mult, 1)); letter-spacing:.05em; text-transform:uppercase; color:var(--sophia-text-muted); }
/* type badges */
:is(.ach, .sophia) .ln-badge { display:inline-block; margin-left:8px; font-size:calc(10px * var(--fs-mult, 1)); font-weight:600; padding:1px 7px; border-radius:3px; vertical-align:middle; white-space:nowrap; }
:is(.ach, .sophia) .ln-badge--reserve { background:var(--sophia-info-bg); color:var(--sophia-info); }
:is(.ach, .sophia) .ln-badge--stock   { background:var(--sophia-neutral-bg); color:var(--sophia-text-2); }
:is(.ach, .sophia) .ln-badge--fabric  { background:var(--sophia-product-bg); color:var(--sophia-product); }
:is(.ach, .sophia) .ln-trace { list-style:none; margin:6px 0 0; padding:0 0 0 10px; border-left:2px solid var(--sophia-line-2); }
:is(.ach, .sophia) .ln-trace li { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); line-height:1.7; }
:is(.ach, .sophia) .ln-trace b { color:var(--sophia-text-2); font-variant-numeric:tabular-nums; }
/* §5 istoric modificari */
:is(.ach, .sophia) .audit-log { list-style:none; margin:0; padding:0; }
:is(.ach, .sophia) .audit-log li { display:flex; gap:10px; align-items:baseline; padding:7px 0; border-top:1px solid var(--sophia-line); font-size:calc(12px * var(--fs-mult, 1)); flex-wrap:wrap; }
:is(.ach, .sophia) .audit-log li:first-child { border-top:0; }
:is(.ach, .sophia) .audit-when { color:var(--sophia-text-muted); font-variant-numeric:tabular-nums; white-space:nowrap; min-width:110px; }
:is(.ach, .sophia) .audit-who { font-weight:600; color:var(--sophia-text); white-space:nowrap; }
:is(.ach, .sophia) .audit-what { color:var(--sophia-text-2); }
:is(.ach, .sophia) .audit-flow { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-2); padding:var(--sp-2) 0; }
:is(.ach, .sophia) .audit-flow__arrow { color:var(--sophia-text-faint); font-size:var(--fs-label); }
/* per-line receive progress */
:is(.ach, .sophia) .ln-recv { display:inline-flex; flex-direction:column; align-items:flex-end; gap:3px; }
:is(.ach, .sophia) .ln-bar { width:78px; height:4px; border-radius:2px; background:var(--sophia-neutral-bg); overflow:hidden; }
:is(.ach, .sophia) .ln-bar > span { display:block; height:100%; background:var(--sophia-good); }
:is(.ach, .sophia) .ln-bar--part > span { background:var(--sophia-warn); }
:is(.ach, .sophia) .ln-done { color:var(--sophia-good); font-weight:600; font-size:calc(12px * var(--fs-mult, 1)); white-space:nowrap; }
/* receive input + footer */
:is(.ach, .sophia) .ln input[type=number] { width:94px; padding:5px 8px; border:1px solid var(--sophia-line-3); border-radius:3px;
font-size:calc(13px * var(--fs-mult, 1)); text-align:right; font-variant-numeric:tabular-nums; }
:is(.ach, .sophia) .ln input[type=number]:focus { outline:none; border-color:var(--sophia-accent); box-shadow:0 0 0 2px rgba(85,107,141,.12); }
:is(.ach, .sophia) .rcv-foot { display:flex; justify-content:space-between; align-items:center; margin-top:13px; gap:10px; flex-wrap:wrap; }
:is(.ach, .sophia) .rcv-hint { color:var(--sophia-text-muted); font-size:calc(12px * var(--fs-mult, 1)); max-width:60ch; }
:is(.ach, .sophia) .so-empty { padding:16px 10px; color:var(--sophia-text-muted); font-size:calc(13px * var(--fs-mult, 1)); }
/* lista de fapte eticheta -> valoare, in corpul unui panel */
:is(.ach, .sophia) .cx-kv{font-size:calc(13px * var(--fs-mult, 1))}
:is(.ach, .sophia) .cx-kv>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--sophia-line)}
:is(.ach, .sophia) .cx-kv>div:first-child{border-top:none}
:is(.ach, .sophia) .cx-kv .k{color:var(--sophia-text-muted)}
:is(.ach, .sophia) .cx-kv .v{color:var(--sophia-text);text-align:right;font-weight:500}
/* doua coloane care curg independent, pe paginile de detaliu cu paneluri de
   inaltimi diferite. Un .row Bootstrap intinde ambele coloane la inaltimea
   celei mai inalte si lasa un gol sub cea scurta; fiecare .cx-col e propriul
   flex si isi curge panelurile in jos fara sa astepte cealalta coloana. */
:is(.ach, .sophia) .nested-rows { display:flex; flex-direction:column; gap:var(--sp-4); }
:is(.ach, .sophia) .nested-row { display:flex; gap:var(--sp-4); align-items:center; }
:is(.ach, .sophia) .nested-row__pick { flex:1 1 auto; min-width:0; }
:is(.ach, .sophia) .nested-row__del { flex:0 0 auto; }
:is(.ach, .sophia) .nested-row-hint { display:block; margin-bottom:var(--sp-5); }
:is(.ach, .sophia) .nested-row-add { margin-top:var(--sp-5); }

:is(.ach, .sophia) .cx-cols{display:flex;align-items:flex-start;gap:var(--sp-7)}
:is(.ach, .sophia) .cx-col{min-width:0;display:flex;flex-direction:column;gap:var(--sp-7)}
:is(.ach, .sophia) .cx-col--main{flex:2 1 0}
:is(.ach, .sophia) .cx-col--side{flex:1 1 0}
@media (max-width:991px){:is(.ach, .sophia) .cx-cols{flex-direction:column}:is(.ach, .sophia) .cx-col{width:100%}}
/* formular de pagina: coloana principala + laterala, continut in carduri.
   Piesa comuna (Sesizari, Contacte) — nu o rescrie in CSS-ul modulului. */
:is(.ach, .sophia) .cx-card{background:var(--sophia-surface);border:1px solid var(--sophia-border);border-radius:3px;box-shadow:0 1px 1px rgba(70,72,86,.04);margin-bottom:16px}
:is(.ach, .sophia) .cx-card__head{padding:11px 16px;border-bottom:1px solid var(--sophia-border);font-size:calc(13px * var(--fs-mult, 1));font-weight:600;color:var(--sophia-text)}
:is(.ach, .sophia) .cx-card__head .fa{color:var(--sophia-text-muted);margin-right:7px}
:is(.ach, .sophia) .cx-card__body{padding:15px 16px}
:is(.ach, .sophia) .cx-card__body .mb-3:last-child{margin-bottom:0}
:is(.ach, .sophia) .cx-card label{color:var(--sophia-text-2);font-size:calc(12px * var(--fs-mult, 1));font-weight:600}
:is(.ach, .sophia) .cx-card .form-control,
:is(.ach, .sophia) .cx-card .form-select {border:1px solid var(--sophia-line-3);border-radius:3px;box-shadow:none;color:var(--sophia-text)}
:is(.ach, .sophia) .cx-card .form-control:focus,
:is(.ach, .sophia) .cx-card .form-select:focus {border-color:var(--sophia-accent);box-shadow:0 0 0 2px rgba(85,107,141,.12)}
:is(.ach, .sophia) .cx-card .form-text{color:var(--sophia-text-muted);font-size:calc(12px * var(--fs-mult, 1));margin-bottom:0}
:is(.ach, .sophia) .cx-card .checkbox{margin:0 0 9px}
:is(.ach, .sophia) .field_with_errors{display:contents}
:is(.ach, .sophia) .field_with_errors > .form-control,
:is(.ach, .sophia) .field_with_errors > .form-select{border-color:var(--sophia-bad)}
:is(.ach, .sophia) .field_with_errors > label{color:var(--sophia-bad)}
:is(.ach, .sophia) .cx-card .checkbox:last-child{margin-bottom:0}
:is(.ach, .sophia) .cx-card .checkbox label{font-weight:400;font-size:calc(13px * var(--fs-mult, 1));color:var(--sophia-text)}
:is(.ach, .sophia) .cx-form-grid{display:flex;align-items:flex-start;flex-wrap:wrap}
:is(.ach, .sophia) .cx-form-grid__main,:is(.ach, .sophia) .cx-form-grid__side{float:none}
@media (max-width:991px){ :is(.ach, .sophia) .cx-form-grid{display:block} }
/* ---- grup cu subtotal in corpul unui panel ----
   Echivalentul de pagina al lui .odr__sec din drawer: eticheta uppercase +
   linie + (optional) subtotalul grupului la dreapta. Fara subtotal, gruparea
   unei liste lungi e doar decor. */
/* Doua linii, doua roluri: bordura de sus desparte grupurile intre ele, filetul
   de dupa eticheta (::after) e antetul grupului. Fara ea grupurile dintr-un
   panel se citesc ca o singura lista lunga. */
:is(.ach, .sophia) .pnl-sec{display:flex;align-items:baseline;gap:10px;margin:0 0 var(--sp-4);
  padding-top:var(--sp-8);border-top:1px solid var(--sophia-line-2)}
:is(.ach, .sophia) .pnl-sec:first-child{padding-top:var(--sp-1);border-top:0}
:is(.ach, .sophia) .pnl-sec__label{font-size:calc(10px * var(--fs-mult, 1));font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sophia-text-muted);white-space:nowrap}
:is(.ach, .sophia) .pnl-sec__count{font-size:calc(10px * var(--fs-mult, 1));font-weight:600;color:var(--sophia-text-faint);font-variant-numeric:tabular-nums}
:is(.ach, .sophia) .pnl-sec::after{content:'';flex:1;height:1px;background:var(--sophia-neutral-bg)}
:is(.ach, .sophia) .pnl-sec__total{order:9;font-size:calc(12px * var(--fs-mult, 1));font-weight:600;color:var(--sophia-text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
:is(.ach, .sophia) .pnl-sec__total .u{margin-right:4px;font-size:calc(10px * var(--fs-mult, 1));font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sophia-text-muted)}
/* ---- piese comune folosite de panourile de dashboard (§3.29) ---- */
:is(.ach, .sophia) .panel-link { font-size:calc(12px * var(--fs-mult, 1)); font-weight:600; white-space:nowrap; }
:is(.ach, .sophia) .devize-panel__body--pad { padding:12px 16px; }
:is(.ach, .sophia) .kpi__sub { display:block; margin-top:3px; font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-faint); }
/* lista de fapte a unei coloane laterale: un rand = un fapt (§3.29). Padding-ul
   ramane al containerului — panel pe dashboard, card in editorul de sabloane. */
:is(.ach, .sophia) .side-list { list-style:none; margin:0; padding:0; }
:is(.ach, .sophia) .side-list li { display:flex; align-items:center; gap:10px; padding:8px 0;
border-bottom:1px solid var(--sophia-line); }
:is(.ach, .sophia) .side-list li:last-child { border-bottom:0; }
:is(.ach, .sophia) .side-list .grow { flex:1 1 auto; min-width:0; }
:is(.ach, .sophia) .side-list .t { display:block; font-weight:600; font-size:calc(13px * var(--fs-mult, 1)); line-height:1.35; }
:is(.ach, .sophia) .side-list .s { display:block; font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-muted); }
:is(.ach, .sophia) .kpi__value small { font-size:calc(13px * var(--fs-mult, 1)); font-weight:600; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .ln .th-num { text-align:right; }
:is(.ach, .sophia) .ln-id { font-weight:700; color:var(--sophia-text); }
:is(.ach, .sophia) .ln-id:hover { color:var(--sophia-accent); text-decoration:underline; }
/* Cele doua baze de pret stau primele, sub titlul lor; restul listelor sunt
   retrase, ca ochiul sa nu le confunde cu bazele. */
:is(.ach, .sophia) .ln tbody tr.ln-section td { padding:16px 10px 6px; border-top:0; font-weight:600;
  font-size:calc(10px * var(--fs-mult, 1)); letter-spacing:.05em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .ln tbody tr.ln-section:hover td { background:transparent; }
:is(.ach, .sophia) .ln tbody tr.ln-section + tr td { border-top:0; }
:is(.ach, .sophia) .ln-section-title { margin:16px 0 6px; font-weight:600;
  font-size:calc(10px * var(--fs-mult, 1)); letter-spacing:.05em; text-transform:uppercase; color:var(--sophia-text-muted); }
:is(.ach, .sophia) .ln-row--quiet { opacity:.8; }
:is(.ach, .sophia) .ln-preview:not(:empty) { display:block; margin-top:3px; font-weight:600;
  font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-accent); }
:is(.ach, .sophia) .ln-preview--none { font-weight:500; color:var(--sophia-text-faint); }
:is(.ach, .sophia) .ln-preview--none::before { content:"\25CF"; margin-right:4px; color:var(--sophia-line-3); }
:is(.ach, .sophia) .ln-preview--ignored { font-weight:500; color:var(--sophia-text-faint); }
:is(.ach, .sophia) .ln-preview__via { display:block; font-weight:500; color:var(--sophia-text-faint);
  font-size:calc(10px * var(--fs-mult, 1)); }
:is(.ach, .sophia) .ln tbody tr.ln-row--quiet .name { font-weight:500; }

:is(.ach, .sophia) .ln-sub { font-size:calc(11px * var(--fs-mult, 1)); color:var(--sophia-text-faint); }
/* ---- panou kanban + widgeturi de cockpit: piese comune (Sesizari, Suport IT) ---- */
:is(.ach, .sophia) .prio{font-weight:700;margin-right:2px}
:is(.ach, .sophia) .prio--crit{color:var(--sophia-bad)}
:is(.ach, .sophia) .prio--high{color:var(--sophia-warn)}
:is(.ach, .sophia) .c-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--sophia-accent);color:var(--sophia-surface);font-size:calc(10px * var(--fs-mult, 1));font-weight:700;vertical-align:middle}
/* ===== board (kanban) ===== */
:is(.ach, .sophia) .c-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;min-height:calc(100vh - 205px);align-items:stretch}
:is(.ach, .sophia) .c-col{flex:1 1 200px;min-width:200px;background:var(--sophia-surface-2);border:1px solid var(--sophia-border);border-radius:4px;display:flex;flex-direction:column}
:is(.ach, .sophia) .c-col__head{padding:9px 12px;font-weight:600;font-size:calc(12px * var(--fs-mult, 1));color:var(--sophia-text);border-bottom:1px solid var(--sophia-border);display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.04em}
:is(.ach, .sophia) .c-col__head .badge{background:var(--sophia-text-muted);color:var(--sophia-surface)}
:is(.ach, .sophia) .c-col__body{padding:8px;display:flex;flex-direction:column;gap:7px;min-height:40px}
:is(.ach, .sophia) .c-card{display:block;background:var(--sophia-surface);border:1px solid var(--sophia-line-2);border-radius:4px;padding:9px 11px;text-decoration:none;color:var(--sophia-text);box-shadow:0 1px 1px rgba(70,72,86,.04)}
:is(.ach, .sophia) .c-card:hover{border-color:var(--sophia-line-3)}
:is(.ach, .sophia) .c-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
:is(.ach, .sophia) .c-card__id{font-weight:700;font-size:calc(12px * var(--fs-mult, 1))}
:is(.ach, .sophia) .c-card__title{font-size:calc(12.5px * var(--fs-mult, 1));line-height:1.35;color:var(--sophia-text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
:is(.ach, .sophia) .c-card__meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:calc(11px * var(--fs-mult, 1));color:var(--sophia-text-muted)}
:is(.ach, .sophia) .c-card__open{display:block;text-decoration:none;color:inherit}
:is(.ach, .sophia) .c-card__close{margin-top:7px;padding-top:6px;border-top:1px solid var(--sophia-neutral-bg)}
:is(.ach, .sophia) .c-card__close>summary{list-style:none;cursor:pointer;font-size:calc(11px * var(--fs-mult, 1));font-weight:600;color:var(--sophia-text-muted)}
:is(.ach, .sophia) .c-card__close>summary::-webkit-details-marker{display:none}
:is(.ach, .sophia) .c-card__close>summary:hover{color:var(--sophia-accent)}
:is(.ach, .sophia) .c-card__close[open]>summary{color:var(--sophia-text);margin-bottom:5px}
:is(.ach, .sophia) .c-card__form label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
:is(.ach, .sophia) .c-card__form lexxy-editor{min-height:80px;font-size:calc(12px * var(--fs-mult, 1))}
:is(.ach, .sophia) .c-card__form textarea{font-size:calc(12px * var(--fs-mult, 1))}
:is(.ach, .sophia) .c-card__form .btn{margin:5px 4px 0 0;font-size:calc(11px * var(--fs-mult, 1));padding:3px 8px}

:is(.ach, .sophia) h5.bt{font-size:calc(13px * var(--fs-mult, 1));font-weight:600;color:var(--sophia-text);margin:20px 0 8px}
:is(.ach, .sophia) .heat{border-collapse:collapse;font-size:calc(12.5px * var(--fs-mult, 1));min-width:520px}
:is(.ach, .sophia) .heat th{padding:6px 10px;color:var(--sophia-text-muted);font-size:calc(10px * var(--fs-mult, 1));text-transform:uppercase;letter-spacing:.04em;font-weight:700;text-align:center}
:is(.ach, .sophia) .heat td.lbl{padding:6px 10px;color:var(--sophia-text);white-space:nowrap;border-top:1px solid var(--sophia-line)}
:is(.ach, .sophia) .heat td.cell{padding:6px 10px;text-align:center;border-top:1px solid var(--sophia-surface);font-variant-numeric:tabular-nums;font-weight:600}
:is(.ach, .sophia) .b0{background:var(--sophia-good-bg);color:var(--sophia-good)}:is(.ach, .sophia) .b1{background:var(--sophia-neutral-bg);color:var(--sophia-text-2)}:is(.ach, .sophia) .b2{background:var(--sophia-warn-bg);color:var(--sophia-warn)}:is(.ach, .sophia) .b3{background:color-mix(in srgb, var(--sophia-warn-bg) 50%, var(--sophia-bad-bg));color:color-mix(in srgb, var(--sophia-warn) 45%, var(--sophia-bad))}:is(.ach, .sophia) .b4{background:var(--sophia-bad-bg);color:var(--sophia-bad)}
:is(.ach, .sophia) .cell--0{color:var(--sophia-text-faint);background:transparent}

/* drawer-ul (slideover din dreapta) e self-contained: stilurile lui stau in
   shared/_drawer, ca sa poata fi folosit de oriunde din aplicatie. */
