/* 24.10.2026: design nou (canvas „Santiere - design nou”): Barlow Condensed pe titlu si cifrele mari, IBM Plex Mono pe cifrele din tabele */
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&family=IBM+Plex+Mono:wght@500&display=swap');
/* Santiere (TEST, 22.10.2026) - pagina modulului santier-module.js, varianta A „Registru”. Aceleasi variabile ca restul ERP (--surface, --ink-2, --line, --crit...). */
.san-cap { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; margin-bottom: .8rem; }
.san-act { display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; }
.san-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .7rem; margin: .4rem 0 1rem; }
.san-kpi { background: var(--surface); border-radius: .6rem; box-shadow: var(--shadow); padding: .75rem .95rem; display: grid; gap: .1rem; min-width: 0; text-align: left; font: inherit; color: inherit; border: 2px solid transparent; cursor: pointer; }
.san-kpi:hover { border-color: var(--line); }
.san-kpi.activ { border-color: var(--accent); }
.san-kpi span { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-2); font-weight: 600; }
.san-kpi b { font-family: 'Barlow Condensed', 'Segoe UI', sans-serif; font-size: 2.1rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; }
.san-kpi small { font-size: .76rem; color: var(--ink-2); }
.san-kpi.crit { box-shadow: var(--shadow), inset 4px 0 0 var(--crit); }
.san-kpi.crit b { color: var(--crit); }
.san-kpi.good b { color: var(--good); }
.san-kpi.warn b { color: var(--warn); }
.san-tabs { display: flex; flex-wrap: wrap; gap: .3rem; border-bottom: 1px solid var(--line); margin-bottom: 1rem; }
.san-tabs button { background: none; border: 0; border-bottom: 3px solid transparent; border-radius: 0; padding: .5rem .8rem; color: var(--ink-2); font-weight: 600; }
.san-tabs button.activ { color: var(--ink); border-bottom-color: var(--accent); }
.san-filtru { align-items: center; }
.san-cod { font-family: ui-monospace, Consolas, monospace; font-size: .8rem; color: var(--ink-2); white-space: nowrap; }
.san-ver { color: var(--crit); font-size: .82rem; }
#san-corp .tbl-box td { white-space: normal; }   /* denumirile lungi se rup pe randuri; cifrele si codurile nu */
#san-corp .tbl-box td.num, #san-corp .tbl-box td.san-cod { white-space: nowrap; }
.tbl-box td.san-lung { min-width: 150px; max-width: 280px; }
.san-coada { background: var(--surface); border-radius: .6rem; box-shadow: var(--shadow), inset 4px 0 0 var(--warn); padding: .6rem .9rem; margin: 0 0 .9rem; font-size: .88rem; }
.san-form { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.san-prez { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .35rem; }
.san-ales { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .45rem; }
.san-ales .badge button { margin-left: .2rem; padding: 0 .35rem; line-height: 1.2; }
tr.san-click { cursor: pointer; }
/* 23.10.2026: receptie + raport TRD-QC-RRM */
.san-ast-lista { display: grid; gap: .5rem; margin: .6rem 0; }
.san-ast { display: flex; justify-content: space-between; align-items: center; gap: .8rem; background: var(--surface-2, var(--surface)); border: 1px solid var(--line); border-radius: .55rem; padding: .6rem .8rem; }
.san-ast .sub { margin: .1rem 0 0; }
.san-inchise { margin-top: .8rem; }
.san-inchise summary { cursor: pointer; color: var(--ink-2); font-size: .88rem; margin-bottom: .4rem; }
.san-h2 { font-size: .9rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-2); margin: 1rem 0 .4rem; }
.san-rrm input, .san-rrm select { min-height: 34px; }
.san-rrm tr.san-av td { background: var(--surface-2, transparent); }
.san-bife { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .9rem; }
.san-bife label { display: flex; gap: .35rem; align-items: center; }
.san-mini { display: flex; flex-wrap: wrap; gap: .25rem; margin-top: .25rem; }
.san-mini span { position: relative; display: inline-flex; align-items: flex-start; gap: .1rem; }
.san-mini img { width: 40px; height: 40px; object-fit: cover; border-radius: .25rem; }
.san-buton { display: inline-block; border: 1px solid var(--line); border-radius: .4rem; padding: .25rem .6rem; font-size: .82rem; cursor: pointer; color: var(--ink); background: var(--surface); text-decoration: none; }
.san-buton:hover { border-color: var(--accent); }
/* 24.10.2026: reamintiri (decont intarziat, nesemnate, sheet nescris, randuri scrise de mana) */
.san-aten { display: grid; gap: .35rem; margin: 0 0 .8rem; }
.san-aten-r { display: flex; justify-content: space-between; align-items: center; gap: .8rem; background: var(--surface); border-radius: .5rem; box-shadow: var(--shadow), inset 4px 0 0 var(--warn); padding: .45rem .8rem; font-size: .88rem; }
.san-aten-r.crit { box-shadow: var(--shadow), inset 4px 0 0 var(--crit); }
/* antet: titlu Barlow, butoane-iconita, un singur buton principal pe tab */
:root { --san-mag: #53D6E8; --san-ech: #2E8C9C; --san-con: #1E5763; }
body.tema-luminoasa { --san-mag: #12768A; --san-ech: #4FA9B8; --san-con: #B5DCE3; }
.san-titlu { font-family: 'Barlow Condensed', 'Segoe UI', sans-serif; font-size: 2.2rem; font-weight: 700; line-height: 1.05; letter-spacing: .01em; color: var(--ink); margin: .15rem 0 0; }
.san-mic { margin: 0; }
.san-ico { width: 40px; height: 40px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.san-ico.mic { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: .4rem; color: var(--ink); }
#san-corp td.num, .san-rrm td.num { font-family: 'IBM Plex Mono', var(--mono); font-size: .86rem; }
.san-slab { color: var(--ink-2); }
.san-mag b { color: var(--san-mag); }
.san-bara-sus { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: flex-end; margin: 0 0 .8rem; }
.san-cauta { display: flex; flex-direction: column; gap: .25rem; font-size: .75rem; color: var(--ink-2); }
.san-cauta input { min-width: 260px; }
.san-bifa { display: flex; gap: .35rem; align-items: center; min-height: 36px; }
.san-leg { display: flex; gap: 1rem; margin-left: auto; font-size: .8rem; color: var(--ink-2); align-items: center; min-height: 36px; }
.san-leg span { display: flex; gap: .35rem; align-items: center; }
.san-leg i { width: 12px; height: 8px; border-radius: 2px; display: inline-block; }
.san-leg .m, .san-bara .m { background: var(--san-mag); } .san-leg .e, .san-bara .e { background: var(--san-ech); } .san-leg .c, .san-bara .c { background: var(--san-con); }
.san-bara { display: flex; width: 150px; height: 8px; border-radius: 4px; overflow: hidden; }
.san-bara span { display: block; height: 100%; }
/* etichete de stare (document, echipa, coada) */
.san-chip { display: inline-flex; align-items: center; gap: .3rem; min-height: 30px; padding: 0 .7rem; border-radius: 999px; font-size: .78rem; font-weight: 600; border: 1px solid var(--line); color: var(--ink-2); background: transparent; text-decoration: none; white-space: nowrap; font-family: inherit; }
.san-chip.warn { color: var(--warn); background: var(--warn-bg); border-color: transparent; }
.san-chip.good { color: var(--good); background: var(--good-bg); border-color: transparent; }
.san-chip.crit { color: var(--crit); background: var(--crit-bg); border-color: transparent; }
.san-chip.info { color: var(--san-mag); border-color: var(--san-ech); }
button.san-chip { cursor: pointer; } button.san-chip:hover, a.san-chip:hover { filter: brightness(1.15); }
/* tab Documente: filtre + lista */
.san-pills { display: flex; flex-wrap: wrap; gap: .4rem; }
.san-pill { border-radius: 999px; min-height: 36px; padding: 0 .9rem; }
.san-pill.activ { background: var(--accent-fill); border-color: var(--accent-fill); color: #fff; font-weight: 600; }
.san-docs { background: var(--surface); border-radius: .6rem; box-shadow: var(--shadow); }
.san-doc { display: grid; grid-template-columns: 150px minmax(0, 1fr) 90px 290px; gap: .8rem; align-items: center; padding: .65rem .9rem; border-top: 1px solid var(--line); }
.san-doc:first-child { border-top: 0; }
.san-doc-nr { display: flex; flex-direction: column; } .san-doc-nr b { font-family: 'IBM Plex Mono', var(--mono); font-weight: 500; } .san-doc-nr span, .san-doc-d { font-size: .78rem; color: var(--ink-2); }
.san-doc-t { display: flex; flex-direction: column; gap: .15rem; min-width: 0; } .san-doc-t small { color: var(--ink-2); }
.san-doc-a { display: flex; gap: .4rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.san-doc-gol { padding: 1rem; margin: 0; }
/* tab Echipe: un card pe echipa */
.san-echipe { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1rem; }
.san-ech { background: var(--surface); border-radius: .7rem; box-shadow: var(--shadow); padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .8rem; }
.san-ech-cap { display: flex; justify-content: space-between; align-items: baseline; gap: .6rem; }
.san-ech h2 { margin: 0; font-family: 'Barlow Condensed', 'Segoe UI', sans-serif; font-size: 1.6rem; font-weight: 700; color: var(--ink); }
.san-ech-cifre { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.san-ech-cifre span { font-size: .75rem; color: var(--ink-2); display: block; }
.san-ech-cifre b { font-family: 'Barlow Condensed', 'Segoe UI', sans-serif; font-size: 1.8rem; font-weight: 700; }
.san-ech-l { list-style: none; margin: 0; padding: 0; max-height: 220px; overflow: auto; border-top: 1px solid var(--line); }
.san-ech-l li { display: flex; justify-content: space-between; gap: .6rem; padding: .4rem 0; border-bottom: 1px solid var(--line); }
.san-ech-l b { font-family: 'IBM Plex Mono', var(--mono); font-weight: 500; color: var(--warn); white-space: nowrap; }
/* stari: schelet la incarcare, ecran gol cu urmatorul pas */
.san-schelet { display: grid; gap: .7rem; }
.san-schelet .sk { display: block; background: var(--surface-2); border-radius: .45rem; }
.sk-titlu { height: 2.2rem; width: 260px; } .sk-kpi { height: 84px; } .sk-rand { height: 34px; }
@media (prefers-reduced-motion: no-preference) { .san-schelet .sk { animation: san-sk 1.1s ease-in-out infinite alternate; } }
@keyframes san-sk { from { opacity: .55; } to { opacity: 1; } }
.san-gol { background: var(--surface); border-radius: .6rem; box-shadow: var(--shadow); padding: 1.6rem 1.4rem; display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; max-width: 560px; }
.san-gol span { color: var(--ink-2); line-height: 1.5; }
/* ferestre: subsol fix (totaluri + butonul principal), eroare pe celula */
.san-dlg-jos { position: sticky; bottom: 0; z-index: 2; background: var(--surface); border-top: 1px solid var(--line); margin: .8rem 0 0; padding: .6rem 0 .8rem; }
.san-dlg-jos .bar { margin: 0; justify-content: flex-end; }
.san-dlg-jos button:disabled { opacity: .45; cursor: not-allowed; }
.san-tot { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; font-size: .85rem; color: var(--ink-2); margin-bottom: .4rem; }
.san-rrm thead th { position: sticky; top: 0; z-index: 1; background: var(--surface); }
.san-in-num { width: 110px; text-align: right; font-family: 'IBM Plex Mono', var(--mono); }
.san-in-txt { width: 140px; }
.san-in-lat { width: 100%; }
.san-cerut { border-color: var(--warn); box-shadow: 0 0 0 1px var(--warn); }
.san-err { display: none; font-size: .75rem; color: var(--crit); text-align: left; margin-top: .2rem; font-family: 'Segoe UI', system-ui, sans-serif; }
tr.san-gresit .san-err { display: block; }
tr.san-gresit .san-in-num { border-color: var(--crit); box-shadow: 0 0 0 1px var(--crit); }
@media (max-width: 900px) { .san-doc { grid-template-columns: minmax(0, 1fr) auto; } .san-doc-d { display: none; } .san-doc-a { grid-column: 1 / -1; justify-content: flex-start; } .san-leg { margin-left: 0; } }
/* telefon: randurile din Bon / Decont / Inventar devin carduri cu campuri mari */
@media (max-width: 700px) {
  .san-carduri thead { display: none; }
  .san-carduri, .san-carduri tbody { display: block; }
  .san-carduri tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem .8rem; padding: .8rem; margin-bottom: .6rem; background: var(--surface-2); border-radius: .6rem; }
  .san-carduri td { display: block; border: 0; padding: 0; text-align: left; }
  .san-carduri td.san-art, .san-carduri td[colspan] { grid-column: 1 / -1; }
  .san-carduri td.san-nr { display: none; }
  .san-carduri td[data-l]::before { content: attr(data-l); display: block; font-size: .72rem; color: var(--ink-2); margin-bottom: .15rem; font-family: 'Segoe UI', system-ui, sans-serif; }
  .san-carduri .san-in-num, .san-carduri .san-in-txt { width: 100%; min-height: 48px; font-size: 1.05rem; }
  .san-cauta input { min-width: 0; width: 100%; } .san-cauta { flex: 1 1 100%; }
  .san-kpi b { font-size: 1.7rem; }
 .san-cap { align-items: flex-start; } .san-act button { min-height: 44px; } }
/* 24.10.2026 (varianta B): Stoc pe proiect, organizare in folosinta */
.san-pr { display: inline-block; font-size: .75rem; font-weight: 600; padding: .15rem .55rem; border-radius: 999px; white-space: nowrap; }
.san-pr.org { color: var(--warn); background: var(--warn-bg); }
.san-pr.fara { color: var(--crit); background: var(--crit-bg); }
.san-pr.mont { color: var(--san-mag); background: color-mix(in srgb, var(--san-mag) 14%, transparent); }
.san-explic { margin: -.3rem 0 .8rem; }
.san-serii { width: 100%; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: .85rem; resize: vertical; }
.san-ast-ter { margin-top: .35rem; font-size: .85rem; color: var(--ink-2); display: flex; gap: .4rem; align-items: center; }
#san-corp .tbl-box th.num { white-space: normal; }
.san-semn { color: var(--san-mag); font-size: .78rem; margin-top: .15rem; }
.san-disp-alt { display: block; font-size: .74rem; color: var(--ink-2); }
.san-fol { margin: 0 0 1.4rem; }
.san-fol-cap { display: flex; justify-content: space-between; align-items: flex-end; gap: .6rem 1rem; margin-bottom: .6rem; }
.san-fol-cap > button { flex: none; }
@media (max-width: 600px) { .san-fol-cap { flex-wrap: wrap; } }
.san-fol-cap h2 { margin: 0 0 .2rem; }
