/* Numele aplicației: Great Vibes (SIL OFL 1.1, vezi great-vibes-OFL.txt), doar pentru logo și titlu */
@font-face { font-family: "Great Vibes"; src: url("/static/great-vibes.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
:root {
  --bg: #F2F4F5; --surface: #FFFFFF; --surface-2: #E9EDEF; --fg: #16212A; --muted: #5A6A76; --line: #D3DADF;
  --accent: #8E2929; --accent-ink: #FFFFFF; --accent-soft: #F5E5E4; --accent-text: #8E2929;
  --good: #2C7A33; --good-soft: #E2F1E3; --warn: #9E5F00; --warn-soft: #FBEFD8; --crit: #D0261B; --crit-soft: #FDE6E3;
  --idle: #6B7884; --idle-soft: #E8ECEE;
  --shadow: 0 1px 2px rgba(16,24,32,.06), 0 8px 24px rgba(16,24,32,.08);
  --f-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --f-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --r: 8px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0F1418; --surface: #161D22; --surface-2: #1E272E; --fg: #E5EBEE; --muted: #93A2AD; --line: #2B363E;
    --accent: #8E2929; --accent-ink: #FFFFFF; --accent-soft: #33191A; --accent-text: #C8645C;
    --good: #6CC072; --good-soft: #163019; --warn: #E5A53C; --warn-soft: #33270E; --crit: #F06C66; --crit-soft: #3A1715;
    --idle: #9AA6B0; --idle-soft: #232C33; --shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.35);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #0F1418; --surface: #161D22; --surface-2: #1E272E; --fg: #E5EBEE; --muted: #93A2AD; --line: #2B363E;
  --accent: #8E2929; --accent-ink: #FFFFFF; --accent-soft: #33191A; --accent-text: #C8645C;
  --good: #6CC072; --good-soft: #163019; --warn: #E5A53C; --warn-soft: #33270E; --crit: #F06C66; --crit-soft: #3A1715;
  --idle: #9AA6B0; --idle-soft: #232C33; color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--fg); font: 15px/1.5 var(--f-body); -webkit-font-smoothing: antialiased; }
a { color: var(--accent-text); }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .5em; }
h1 { font-size: 24px; font-weight: 650; letter-spacing: -.01em; }
h2 { font-size: 18px; font-weight: 650; }
h3 { font-size: 15px; font-weight: 650; }
p { margin: 0 0 .75em; }
.mono { font-family: var(--f-mono); font-size: .92em; }
.muted { color: var(--muted); }
.mic { font-size: 13px; }
.ascuns { display: none !important; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* ---------- Antet ---------- */
#banda { background: var(--warn-soft); color: var(--warn); border-bottom: 1px solid color-mix(in srgb, var(--warn) 35%, transparent); padding: 6px 16px; font-size: 13px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
#banda b { font-weight: 650; }
#banda button { margin-left: auto; }
/* ---------- Meniul lateral (stânga): afișat implicit, se poate restrânge la iconițe ---------- */
#cadru { display: flex; align-items: flex-start; min-height: 100vh; }
.coloana { flex: 1; min-width: 0; }
#lateral { position: sticky; top: 0; height: 100vh; height: 100dvh; width: 240px; flex: none; display: flex; flex-direction: column; gap: 4px;
  background: var(--surface); border-right: 1px solid var(--line); padding: 14px 10px 10px; z-index: 6; transition: width .15s ease; }
#lateral .marca-app { padding: 4px 8px 14px; }
.marca-app { display: flex; align-items: center; gap: 10px; color: var(--fg); text-decoration: none; font-weight: 700; white-space: nowrap; }
.nume-app { font-family: "Great Vibes", "Segoe Script", cursive; font-weight: 400; font-size: 27px; line-height: 1; letter-spacing: .01em; color: var(--accent-text); }
.login .titlu-login h1.nume-app { font-size: 56px; margin: 4px 0 6px; }
.sigla { width: 34px; height: 34px; display: block; object-fit: contain; flex: none; }
#meniu { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; min-height: 0; flex: 0 1 auto; }
#meniu a, .drop-cap, #cont .iesire, .grup-cap, .lnk-inactiv { position: relative; display: flex; align-items: center; gap: 12px; color: var(--muted); text-decoration: none;
  padding: 9px 10px; border-radius: 8px; font-weight: 550; white-space: nowrap; border: 0; background: none; width: 100%; text-align: left; font-size: 15px; }
#meniu a:hover, .drop-cap:hover, #cont .iesire:hover, .grup-cap:hover { color: var(--fg); background: var(--surface-2); }
#meniu a.activ, .drop-cap.activ { color: var(--accent-text); background: var(--accent-soft); }
.ic { width: 20px; height: 20px; flex: none; }
#meniu .nr { background: var(--crit); color: #fff; border-radius: 10px; font-size: 11px; padding: 1px 6px; margin-left: auto; font-weight: 700; }
#meniu .nr.nr-atentie { background: var(--warn); }
.lateral-jos { margin-top: auto; border-top: 1px solid var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 4px; }
#cont { display: flex; flex-direction: column; gap: 2px; }
#cont .cine { display: flex; align-items: center; gap: 10px; padding: 6px 8px; position: relative; }
#cont .cine .eticheta { line-height: 1.25; min-width: 0; }
#cont .cine b { display: block; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 160px; }
#cont .cine small { display: block; color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 160px; }
.avatar { width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--accent); color: var(--accent-ink); display: grid; place-items: center; font-size: 12px; font-weight: 700; }
.restrange { border: 0; background: none; color: var(--muted); font-size: 14px; padding: 8px 10px; text-align: left; cursor: pointer; border-radius: 8px; }
.restrange:hover { background: var(--surface-2); color: var(--fg); }
#bara-mobil { display: none; }
#fundal-meniu { display: none; }

/* restrâns: doar iconițele; numele apar la hover */
body.strans #lateral { width: 68px; }
body.strans #lateral .eticheta, body.strans #lateral .sageata { display: none; }
body.strans #meniu { overflow: visible; }
body.strans #lateral .marca-app { padding: 4px 7px 14px; }
body.strans #meniu a, body.strans .drop-cap, body.strans #cont .iesire { justify-content: center; padding: 10px 0; }
body.strans #cont .cine { justify-content: center; padding: 6px 0; }
body.strans .restrange { text-align: center; }
body.strans #meniu .nr { position: absolute; top: 3px; right: 6px; padding: 0 5px; font-size: 10px; }
/* Grupuri (module) cu submeniuri: se deschid la clic, sub titlu */
.grup-cap { cursor: pointer; font-family: inherit; }
.grup-cap .chevron { margin-left: auto; font-size: 16px; transition: transform .15s ease; }
.grup.deschis > .grup-cap .chevron { transform: rotate(90deg); }
.grup.contine-activ > .grup-cap { color: var(--fg); }
.grup-cap .nr-grup { display: none; }
.grup:not(.deschis) .grup-cap .nr-grup { display: contents; }
.grup:not(.deschis) .grup-cap .nr-grup .nr + .nr { margin-left: 4px; }
.grup-cap .nr-grup + .chevron { margin-left: 6px; }
.grup:not(.deschis) .grup-cap .nr-grup:empty + .chevron, .grup.deschis .grup-cap .chevron { margin-left: auto; }
.grup-lista { display: none; flex-direction: column; gap: 1px; margin: 2px 0 6px; }
.grup.deschis > .grup-lista { display: flex; }
.grup-titlu { display: none; }
#meniu .grup-lista a, .grup-lista .drop-cap { padding: 7px 10px 7px 42px; font-size: 14px; font-weight: 500; gap: 10px; }
#meniu .grup-lista a .ic, .grup-lista .drop-cap .ic { display: none; }
.lnk-inactiv { cursor: default; opacity: .55; }
.lnk-inactiv .curand { margin-left: auto; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 1px 7px; border-radius: 10px; background: var(--surface-2); border: 1px solid var(--line); }
#meniu .sep-sus { margin-top: 7px; position: relative; }
#meniu .sep-sus::before { content: ""; position: absolute; left: 8px; right: 8px; top: -4px; border-top: 1px solid var(--line); }
.lnk-inactiv { display: flex; align-items: center; gap: 12px; padding: 9px 10px; color: var(--muted); font-weight: 550; font-size: 15px; white-space: nowrap; }
/* Meniul restrâns: submeniul apare alături, la trecerea mouse-ului peste iconița modulului */
body.strans .grup-cap { justify-content: center; padding: 10px 0; }
body.strans .grup-cap .chevron, body.strans .grup-cap .nr-grup { display: none; }
body.strans .grup.contine-activ > .grup-cap { color: var(--accent-text); background: var(--accent-soft); }
body.strans .lnk-inactiv { justify-content: center; padding: 10px 0; }
body.strans .grup > .grup-lista { display: none; position: fixed; z-index: 30; min-width: 250px; margin: 0; padding: 6px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 12px 32px rgba(0,0,0,.22); }
body.strans .grup > .grup-lista::before { content: ""; position: absolute; left: -12px; top: 0; width: 12px; height: 100%; }
body.strans .grup:hover > .grup-lista, body.strans .grup:focus-within > .grup-lista { display: flex; }
body.strans .grup-lista .grup-titlu { display: block; padding: 6px 10px 8px; font-weight: 700; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
body.strans #lateral .grup-lista .eticheta { display: initial; }
body.strans #meniu .grup-lista a, body.strans .grup-lista .drop-cap { justify-content: flex-start; padding: 8px 10px; }
body.strans #meniu .grup-lista .nr { position: static; margin-left: auto; }
body.strans [data-titlu]:hover::after { content: attr(data-titlu); position: absolute; left: calc(100% + 10px); top: 50%; transform: translateY(-50%);
  background: var(--fg); color: var(--bg); font-size: 13px; font-weight: 600; padding: 5px 10px; border-radius: 6px; white-space: nowrap; z-index: 30; pointer-events: none; }

main { max-width: 1180px; margin: 0 auto; padding: 24px 28px 64px; }
main:focus, main:focus-visible { outline: none; }
.incarcare { color: var(--muted); }

/* ---------- Componente ---------- */
.btn, button { font: inherit; font-weight: 600; border-radius: var(--r); border: 1px solid var(--line); background: var(--surface); color: var(--fg); padding: 8px 14px; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; line-height: 1.3; }
.btn:hover, button:hover { border-color: var(--muted); }
.btn.primar, button.primar { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn.primar:hover, button.primar:hover { filter: brightness(1.08); }
button.pericol { color: var(--crit); border-color: color-mix(in srgb, var(--crit) 45%, var(--line)); }
button.mare, .btn.mare { padding: 12px 20px; font-size: 16px; }
button.mic, .btn.mic { padding: 4px 10px; font-size: 13px; }
button.link { border: 0; background: none; padding: 0; color: var(--accent-text); font-weight: 550; }
button:disabled { opacity: .5; cursor: not-allowed; }
.actiuni { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 18px 20px; box-shadow: var(--shadow); margin-bottom: 16px; }
.card > h2:first-child, .card > h3:first-child { margin-top: 0; }
.grila { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-bottom: 16px; }
.grila .card { margin: 0; }
.cap { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.cap h1 { margin: 0; }
.inapoi { display: inline-block; margin-bottom: 10px; color: var(--muted); text-decoration: none; font-size: 14px; }
.inapoi:hover { color: var(--fg); }

.tile { display: block; text-decoration: none; color: var(--fg); }
.tile:hover { border-color: var(--accent); }
.tile .val { font-size: 30px; font-weight: 700; line-height: 1.1; }
.tile .et { color: var(--muted); font-size: 13px; }

.chip { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 650; padding: 2px 9px; border-radius: 999px; background: var(--idle-soft); color: var(--idle); white-space: nowrap; }
.chip::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.chip.bun { background: var(--good-soft); color: var(--good); }
.chip.atentie { background: var(--warn-soft); color: var(--warn); }
.chip.critic { background: var(--crit-soft); color: var(--crit); }
.chip.accent { background: var(--accent-soft); color: var(--accent-text); }
.chip.fara::before { display: none; }

.nota { border-radius: var(--r); padding: 10px 14px; background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent); margin-bottom: 14px; }
.nota.atentie { background: var(--warn-soft); border-color: color-mix(in srgb, var(--warn) 35%, transparent); }
.nota.critic { background: var(--crit-soft); border-color: color-mix(in srgb, var(--crit) 35%, transparent); }
.nota.bun { background: var(--good-soft); border-color: color-mix(in srgb, var(--good) 35%, transparent); }

/* ---------- Formulare ---------- */
label.camp { display: block; margin-bottom: 12px; }
label.camp > span { display: block; font-size: 13px; font-weight: 600; margin-bottom: 4px; color: var(--muted); }
input, select, textarea { font: inherit; color: var(--fg); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 8px 10px; width: 100%; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--accent); outline-offset: -1px; border-color: var(--accent); }
input[type="checkbox"], input[type="radio"] { width: auto; accent-color: var(--accent); }
.rand-camp { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.cod-input { font-family: var(--f-mono); font-size: 26px; letter-spacing: .35em; text-align: center; max-width: 240px; }
.filtre { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.filtre input[type="search"] { max-width: 320px; }
.filtre select { width: auto; }

/* ---------- Tabele ---------- */
.tabel-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); font-weight: 650; background: var(--surface-2); white-space: nowrap; }
tbody tr:last-child td { border-bottom: 0; }
tr.clic { cursor: pointer; }
tr.clic:hover td { background: color-mix(in srgb, var(--accent-soft) 55%, transparent); }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td.bif, th.bif { width: 34px; }

/* ---------- Pași ---------- */
.pasi { display: flex; gap: 0; margin: 0 0 20px; padding: 0; list-style: none; counter-reset: p; flex-wrap: wrap; }
.pasi li { flex: 1; min-width: 120px; padding: 10px 12px 10px 40px; position: relative; color: var(--muted); border-top: 3px solid var(--line); font-size: 14px; counter-increment: p; }
.pasi li::before { content: counter(p); position: absolute; left: 8px; top: 9px; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2); font-size: 12px; font-weight: 700; }
.pasi li.facut { border-top-color: var(--good); color: var(--fg); }
.pasi li.facut::before { content: "✓"; background: var(--good); color: #fff; }
.pasi li.acum { border-top-color: var(--accent); color: var(--fg); font-weight: 650; }
.pasi li.acum::before { background: var(--accent); color: var(--accent-ink); }

.material { display: flex; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); }
.material:last-child { border-bottom: 0; }
.material .tip { width: 46px; height: 46px; border-radius: 8px; background: var(--surface-2); display: grid; place-items: center; font-size: 11px; font-weight: 700; color: var(--muted); flex: none; }
.material .txt { flex: 1; }
.material .txt b { display: block; }

fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.intrebare { padding: 14px 0; border-bottom: 1px solid var(--line); }
.intrebare:last-of-type { border-bottom: 0; }
.intrebare p { font-weight: 600; }
.optiune { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: var(--r); cursor: pointer; }
.optiune:hover { background: var(--surface-2); }
.optiune input { margin-top: 4px; }

.cod-test { font-family: var(--f-mono); font-weight: 700; font-size: 18px; letter-spacing: .15em; }
.pin-mare { font-family: var(--f-mono); font-size: 32px; font-weight: 700; letter-spacing: .25em; }

/* ---------- Fișa (Anexa 11) ---------- */
.fisa { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 24px 28px; box-shadow: var(--shadow); }
.fisa .titlu { text-align: center; margin-bottom: 18px; }
.fisa .titlu h2 { font-size: 17px; letter-spacing: .04em; margin-bottom: 2px; }
.fisa h3 { margin: 22px 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
.fisa dl { display: grid; grid-template-columns: 230px 1fr; gap: 4px 16px; margin: 0; }
.fisa dt { color: var(--muted); }
.fisa dd { margin: 0; font-weight: 550; }
.fisa table { font-size: 13px; }
.fisa .tabel-wrap { box-shadow: none; }
tr.evid td { background: var(--accent-soft); }
.semn { font-size: 12px; line-height: 1.35; }
.semn b { display: block; font-size: 13px; }
.semn.ok b::before { content: "✓ "; color: var(--good); }
.semn.astept { color: var(--warn); }
.semn.hartie b::before { content: "✎ "; color: var(--muted); }
.mascat { color: var(--muted); font-style: italic; font-weight: 400; }
.taburi { display: flex; gap: 4px; margin-bottom: 12px; }
.taburi button { border-radius: 999px; }
.taburi button.activ { background: var(--fg); color: var(--bg); border-color: var(--fg); }

/* ---------- Autentificare ---------- */
.login { max-width: 860px; margin: 6vh auto 0; display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
.login .titlu-login { grid-column: 1 / -1; text-align: center; }
.login .titlu-login .sigla { width: 84px; height: 84px; display: inline-block; margin-bottom: 10px; }
.login .card { margin: 0; display: flex; flex-direction: column; }
.login .card .btn.mare, .login .card button.mare { justify-content: center; width: 100%; }
.login input { font-size: 20px; padding: 12px; }
.login input.pin { font-family: var(--f-mono); letter-spacing: .4em; }
.login .jos { margin-top: auto; }

#mesaj { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: var(--fg); color: var(--bg); padding: 10px 18px; border-radius: 10px; box-shadow: var(--shadow); max-width: min(560px, calc(100vw - 32px)); z-index: 20; font-weight: 550; }
#mesaj.eroare { background: var(--crit); color: #fff; }

@media (max-width: 760px) {
  main { padding: 16px 16px 48px; }
  .login { grid-template-columns: 1fr; margin-top: 2vh; }
  .fisa { padding: 16px; }
  .fisa dl { grid-template-columns: 1fr; gap: 0; }
  .fisa dd { margin-bottom: 6px; }
}

/* Tipărirea foii cu PIN-uri: doar ea apare pe hârtie. */
.foaie-pin { display: none; }
@media print {
  body.tipar-pin > *:not(#cadru), body.tipar-pin #lateral, body.tipar-pin #banda, body.tipar-pin #fundal-meniu, body.tipar-pin main > *:not(.foaie-pin) { display: none !important; }
  body.tipar-pin .foaie-pin { display: block; }
  body { background: #fff; color: #000; }
  .foaie-pin .bilet { border: 1px dashed #000; padding: 10px 14px; margin-bottom: 8px; break-inside: avoid; font-size: 13px; }
  .foaie-pin .bilet b { font-size: 18px; letter-spacing: .2em; font-family: var(--f-mono); }
}

.card-sp { margin-bottom: 20px; }
input.ordine { width: 70px; }
.varianta { margin-bottom: 8px; flex-wrap: nowrap; }
.varianta input[name=o] { flex: 1; }
ol { margin: 6px 0 0; padding-left: 20px; }

.pasi-text { padding-left: 22px; margin: 0 0 16px; }
.pasi-text li { margin-bottom: 8px; }
.qr-bloc { display: flex; gap: 24px; align-items: flex-start; flex-wrap: wrap; }
.qr { width: 240px; height: 240px; flex: none; background: #fff; border-radius: 10px; padding: 6px; border: 1px solid var(--line); }
.qr svg { width: 100%; height: 100%; display: block; }
.qr-bloc > div:last-child { flex: 1; min-width: 260px; }
.cheie { font-size: 16px; letter-spacing: .05em; word-break: break-all; }

h3.grup { margin: 18px 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
a.chip { text-decoration: none; }
a.chip:hover { filter: brightness(.95); }
td.col-termen { width: 190px; white-space: nowrap; }
#meniu .nr.nr-atentie { background: var(--warn); }
ul.lista-nec { margin: 0; padding-left: 18px; }
.nota ul { margin: 6px 0 8px; padding-left: 20px; }
.grila-termene { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); margin-bottom: 16px; }
.grila-termene .card.termen { margin: 0; padding: 12px 14px; }
.form-serv { margin-bottom: 14px; align-items: end; }
.grila-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; margin-bottom: 14px; }
.grila-2 .card { margin: 0; }
.grila .card-lat { grid-column: 1 / -1; }
.camp.creste { flex: 1; min-width: 260px; }

/* ---------- Documentație: meniu derulant (hover / tastatură) și pagini ---------- */
#meniu-doc { position: relative; }
.drop-doc { position: relative; }
.drop-cap .sageata { margin-left: auto; font-size: 16px; }
.drop-panou { display: none; position: fixed; left: calc(100% + 6px); top: -8px; z-index: 30; min-width: 300px; max-height: 80vh; overflow-y: auto;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); box-shadow: 0 12px 32px rgba(0,0,0,.22); padding: 8px 0; }
.drop-panou::before { content: ""; position: absolute; left: -12px; top: 0; width: 12px; height: 100%; }
.drop-doc:hover .drop-panou, .drop-doc:focus-within .drop-panou { display: block; }
.drop-titlu { padding: 6px 16px 8px; font-weight: 700; border-bottom: 1px solid var(--line); margin-bottom: 4px; }
.drop-grup { padding: 4px 0; }
.drop-grup + .drop-grup { border-top: 1px solid var(--line); }
.drop-grup > span { display: block; padding: 6px 16px 2px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.drop-grup a { display: block; padding: 7px 16px; color: var(--fg); text-decoration: none; white-space: nowrap; }
.drop-grup a:hover, .drop-grup a:focus { background: var(--accent-soft); outline: none; }
.lista-doc { margin: 0; padding-left: 18px; line-height: 1.9; }
.doc { max-width: 980px; line-height: 1.6; }
.doc h1 { font-size: 26px; margin-top: 0; }
.doc h2 { font-size: 19px; margin-top: 28px; }
.doc table { border-collapse: collapse; width: 100%; margin: 12px 0 18px; font-size: 14px; }
.doc th, .doc td { border: 1px solid var(--line); padding: 7px 10px; text-align: left; vertical-align: top; }
.doc th { background: var(--accent-soft); }
.doc code { font-size: 13px; background: var(--accent-soft); padding: 1px 5px; border-radius: 4px; }
.doc li { margin: 3px 0; }
.doc input[type=checkbox] { margin-right: 6px; }
/* telefon: meniul pornește ascuns și se deschide cu ☰, peste pagină */
@media (max-width: 760px) {
  #bara-mobil:not([hidden]) { display: flex; align-items: center; gap: 12px; padding: 8px 12px; background: var(--surface); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 5; }
  .buton-meniu { font-size: 22px; line-height: 1; padding: 6px 10px; }
  /* pe telefon, 100vh include și bara browserului (Safari): meniul se termina sub ea și „Ieșire” nu se vedea */
  #lateral { position: fixed; left: 0; top: 0; height: 100vh; height: 100dvh; padding-bottom: calc(10px + env(safe-area-inset-bottom)); width: 260px !important; transform: translateX(-105%); transition: transform .18s ease; z-index: 40; box-shadow: 0 0 40px rgba(0,0,0,.3); }
  body.meniu-deschis #lateral { transform: none; }
  body.meniu-deschis #fundal-meniu:not([hidden]) { display: block; position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 35; }
  body.strans #lateral .eticheta, body.strans #lateral .sageata { display: initial; }
  body.strans #meniu a, body.strans .drop-cap, body.strans #cont .iesire { justify-content: flex-start; padding: 9px 10px; }
  body.strans [data-titlu]:hover::after { display: none; }
  .restrange { display: none; }
  .drop-panou { position: fixed; left: 8px !important; right: 8px; top: 56px !important; min-width: 0; z-index: 45; }
  body.strans .grup-cap { justify-content: flex-start; padding: 9px 10px; }
  body.strans .grup-cap .chevron { display: initial; }
  body.strans .grup > .grup-lista { position: static; display: none; box-shadow: none; border: 0; padding: 0; background: none; min-width: 0; margin: 2px 0 6px; }
  body.strans .grup.deschis > .grup-lista { display: flex; }
  body.strans .grup:not(.deschis):hover > .grup-lista { display: none; }
  body.strans .grup-lista .grup-titlu { display: none; }
  body.strans #meniu .grup-lista a { padding: 7px 10px 7px 42px; }
  body.strans .lnk-inactiv { justify-content: flex-start; padding: 9px 10px; }
  .drop-grup a { white-space: normal; }
}
@media print {
  #lateral, #bara-mobil, #banda, #mesaj, .fara-tipar { display: none !important; }
  body, main { background: #fff !important; padding: 0 !important; }
  .doc { box-shadow: none !important; border: 0 !important; max-width: none; color: #000; }
  .doc th { background: #eee !important; }
}
.tabel-bib .col-ic { width: 36px; color: var(--muted); }
.tabel-bib tr.fix td { background: color-mix(in srgb, var(--accent-soft) 45%, transparent); }
.tabel-bib .actiuni-rand { white-space: nowrap; text-align: right; }
label.btn input[type=file] { display: none; }
.th-filtru { white-space: nowrap; }
.filtru-col summary { cursor: pointer; list-style: none; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; color: var(--muted); font-weight: 650; }
.filtru-col summary::-webkit-details-marker { display: none; }
.filtru-col summary .chip { text-transform: none; letter-spacing: 0; margin: 0 2px; }
.filtru-col[open] summary { color: var(--fg); }
.pop-filtru { position: fixed; z-index: 30; width: 220px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r);
  box-shadow: 0 12px 32px rgba(0,0,0,.2); padding: 10px 12px; text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 14px; color: var(--fg); white-space: normal; }
.pop-filtru .optiune { display: flex; gap: 8px; align-items: center; padding: 4px 0; }
.pop-filtru button { margin-top: 6px; }
.pop-filtru p { margin: 8px 0 0; }

/* Resurse umane */
.tabel-date th { text-align: left; font-weight: 600; color: var(--muted); width: 42%; white-space: nowrap; text-transform: none; letter-spacing: 0; font-size: 14px; background: none; }
.org-lista { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 8px; }
blockquote.acord { margin: 10px 0; padding: 10px 14px; border-left: 3px solid var(--accent); background: var(--accent-soft); border-radius: 0 8px 8px 0; }

/* Organigrama: planșă cu noduri legate, zoom și mutare */
.org-bara { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.org-bara input[type=search] { width: 240px; }
.org-zoom { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--surface); }
.org-zoom button { border: 0; border-radius: 0; padding: 6px 12px; }
.org-zoom #org-zv { padding: 7px 6px; font-size: 13px; color: var(--muted); min-width: 48px; text-align: center; border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.org-panza { height: calc(100vh - 250px); min-height: 460px; overflow: auto; border: 1px solid var(--line); border-radius: var(--r); cursor: grab; touch-action: none;
  background: radial-gradient(circle, var(--line) 1px, transparent 1.3px) 0 0 / 22px 22px, var(--surface); }
.org-panza.trage { cursor: grabbing; user-select: none; }
.org-loc { position: relative; min-width: 100%; }
.org-scena { position: absolute; left: 0; top: 0; transform-origin: 0 0; padding: 36px 56px 72px; width: max-content; }
.org-arb, .org-arb ul { list-style: none; margin: 0; padding: 0; }
.org-arb { display: flex; justify-content: center; gap: 40px; }
.org-arb ul { display: flex; justify-content: center; padding-top: 28px; position: relative; }
.org-arb li { display: flex; flex-direction: column; align-items: center; position: relative; padding: 28px 10px 0; }
.org-arb > li { padding-top: 0; }
.org-arb ul > li::before, .org-arb ul > li::after { content: ""; position: absolute; top: 0; height: 28px; border-top: 2px solid var(--org-linie); width: 50%; }
.org-arb ul > li::before { right: 50%; }
.org-arb ul > li::after { left: 50%; border-left: 2px solid var(--org-linie); }
.org-arb ul > li:first-child::before, .org-arb ul > li:last-child::after { border-top: 0; }
.org-arb ul > li:only-child::before { display: none; }
.org-arb ul > li:first-child::after { border-top-left-radius: 10px; }
.org-arb ul > li:last-child::before { border-right: 2px solid var(--org-linie); border-top-right-radius: 10px; }
.org-arb ul::before { content: ""; position: absolute; top: 0; left: 50%; height: 28px; border-left: 2px solid var(--org-linie); }
.org-arb li:not(.deschis):not(.org-echipa) > ul { display: none; }
:root { --org-linie: #C7CCD4; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --org-linie: #4A505B; } }
:root[data-theme="dark"] { --org-linie: #4A505B; }
/* z-index: cardul (cu butonul de extindere, care iese sub el) stă mereu peste lista de subordonați de dedesubt.
   Fără mișcare la hover: o deplasare făcea butonul să fugă de sub cursor (tremura și nu mai primea clicul). */
.org-nod { width: 228px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 12px 12px 10px; position: relative; z-index: 3; cursor: pointer;
  box-shadow: 0 1px 2px rgba(16,24,40,.06), 0 4px 14px rgba(16,24,40,.06); transition: box-shadow .15s, border-color .15s; }
.org-nod:hover { box-shadow: 0 2px 4px rgba(16,24,40,.08), 0 10px 26px rgba(16,24,40,.12); border-color: var(--org-linie); }
.org-sus { display: flex; gap: 10px; align-items: center; }
.org-av { width: 40px; height: 40px; border-radius: 50%; flex: none; display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 14px; background: var(--accent); }
.org-nume { font-weight: 700; font-size: 14.5px; line-height: 1.25; }
.org-fct { font-size: 12.5px; color: var(--muted); line-height: 1.3; margin-top: 2px; }
.org-dep { display: inline-block; margin-top: 8px; font-size: 11.5px; font-weight: 600; color: var(--accent-text); background: var(--accent-soft); border-radius: 20px; padding: 2px 9px; }
.org-radacina { width: 250px; border-top: 4px solid var(--accent); }
.org-radacina .org-av { width: 46px; height: 46px; }
.org-nod.gasit { outline: 3px solid #F79009; outline-offset: 2px; }
.org-ext { position: absolute; left: 50%; bottom: -13px; transform: translateX(-50%); z-index: 2; border-radius: 20px; padding: 2px 10px 2px 8px; font-size: 12px; font-weight: 700;
  background: var(--surface); border: 1.5px solid var(--org-linie); color: var(--fg); display: flex; gap: 4px; align-items: center; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.org-ext:hover { border-color: var(--accent); color: var(--accent-text); }
.org-ext .s { display: inline-block; transition: transform .15s; }
li.deschis > .org-nod .org-ext .s { transform: rotate(180deg); }
.org-arb ul.org-compact { display: grid; grid-template-columns: repeat(var(--col, 2), auto); gap: 8px 10px; padding: 10px; background: var(--surface-2); border: 1px dashed var(--line); border-radius: 14px; }
.org-arb ul.org-compact::before { display: none; }
.org-arb ul.org-compact > li { padding: 0; }
.org-arb ul.org-compact > li::before, .org-arb ul.org-compact > li::after { display: none; }
.org-compact .org-nod { width: 210px; padding: 8px 10px; border-radius: 10px; box-shadow: 0 1px 2px rgba(16,24,40,.05); }
.org-compact .org-av { width: 30px; height: 30px; font-size: 12px; opacity: .85; }
.org-compact .org-nume { font-size: 13.5px; }
.org-compact .org-dep { display: none; }

/* IT → Imprimante */
.taburi { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 14px; }
.taburi .tab { padding: 6px 14px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); color: var(--fg); text-decoration: none; font-weight: 600; font-size: 14px; }
.taburi .tab.activ { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.grila-imp { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 12px; }
.imp { padding: 14px 16px; }
.imp-rosu, .imp-eroare { border-left: 4px solid var(--crit); }
.imp-galben { border-left: 4px solid var(--warn); }
.imp-cap { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; margin-bottom: 10px; }
.imp-cap h3 { margin: 0; }
.imp-bara { display: grid; grid-template-columns: 62px 1fr 44px; align-items: center; gap: 8px; margin: 5px 0; font-size: 13px; }
.imp-bara b { text-align: right; }
.imp-tub { height: 9px; background: var(--surface-2); border-radius: 5px; overflow: hidden; }
.imp-tub > div { height: 100%; }
b.rosu { color: var(--crit); } b.galben { color: var(--warn); } b.verde { color: #1a7f37; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) b.verde { color: #4cc26f; } }
:root[data-theme="dark"] b.verde { color: #4cc26f; }
.imp-jos { margin-top: 8px; }
.imp-act { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.imp-bara.cu-pag { grid-template-columns: 62px 1fr 40px 84px; }
.imp-bara .dr { text-align: right; white-space: nowrap; }
.imp-tavi { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 4px; }
.imp-tava { font-size: 12px; border-radius: 6px; padding: 2px 7px; background: var(--surface-2); color: var(--muted); }
.imp-tava.gol { background: var(--crit-soft); color: var(--crit); }
.imp-rand { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.chips-luni { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0 12px; }
tr.total td { background: var(--surface-2); }
td.nowrap, .nowrap { white-space: nowrap; }
.imp-bare { display: flex; gap: 16px; align-items: flex-end; min-height: 170px; padding-top: 8px; overflow-x: auto; }
.imp-col { text-align: center; min-width: 56px; display: flex; flex-direction: column; justify-content: flex-end; gap: 3px; }
.imp-bcol { background: var(--accent, #8E2929); border-radius: 6px 6px 0 0; min-height: 2px; }
.imp-dl { display: grid; grid-template-columns: minmax(130px, 200px) 1fr; gap: 6px 14px; margin: 8px 0 14px; font-size: 14px; }
.imp-dl dt { color: var(--muted); } .imp-dl dd { margin: 0; }
input.mic-in { width: 100px; text-align: right; padding: 4px 8px; }
.imp-graf { width: 100%; margin-top: 6px; }
.imp-gr { stroke: var(--line); }
.imp-ax { font-size: 9px; fill: var(--muted); }
.imp-pat { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.imp-cfg { background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px; padding: 10px; white-space: pre-wrap; word-break: break-all; font-size: 12.5px; }
tr.inactiv td { opacity: .55; }

/* ---------- IT: onboarding, stoc, documente ---------- */
.onb-pasi { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin: 4px 0 14px; }
.onb-pasi > div { border-top: 4px solid var(--line); padding: 8px 6px 0; font-size: 13px; color: var(--muted); }
.onb-pasi > div.gata { border-color: var(--good); color: var(--fg); }
.onb-pasi > div.curent { border-color: var(--warn); color: var(--fg); font-weight: 600; }
@media (max-width: 640px) { .onb-pasi { grid-template-columns: 1fr; } .onb-pasi > div { border-top: 0; border-left: 4px solid var(--line); padding: 2px 8px; } .onb-pasi > div.gata { border-color: var(--good); } .onb-pasi > div.curent { border-color: var(--warn); } }
.onb-pas { padding: 4px 6px; font-size: 14px; }
.onb-lista { margin: 0 0 12px; padding-left: 20px; }
.onb-lista li { color: var(--muted); }
.onb-lista li.gata { color: var(--fg); }
.onb-lista li.gata::marker { content: "✓  "; color: var(--good); }
fieldset.it-cerere { border: 1px solid var(--line); border-radius: var(--r); padding: 10px 12px; margin: 8px 0 12px; }
fieldset.it-cerere legend { font-weight: 650; padding: 0 6px; }
.optiuni-rand { display: flex; flex-wrap: wrap; gap: 0 12px; }
input.mic-num { width: 72px; }
table.stoc tr.cat td { background: var(--surface-2); }
table.bucati { margin-top: 4px; font-size: 13px; }
table.bucati td { padding: 3px 8px 3px 0; border: 0; }
.pv-tabel select, .pv-tabel input:not([type=checkbox]) { width: 100%; min-width: 120px; margin-bottom: 4px; }
.zona-it { margin-top: 12px; }
tr.conectare-esuata td { background: var(--crit-soft); }
/* sloganul de sub numele aplicației, cu același font (Great Vibes) */
.login .titlu-login .slogan { font-family: "Great Vibes", "Segoe Script", cursive; font-weight: 400; font-size: 30px; line-height: 1.1; color: var(--muted); margin: 0 0 4px; }

/* Stoc IT: rândurile de bucăți (serie, IMEI, detalii) */
.buc-randuri { display: flex; flex-direction: column; gap: 6px; margin: 6px 0 8px; }
.buc-rand { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding-bottom: 6px; border-bottom: 1px dashed var(--line); }
.buc-rand > input { flex: 1 1 150px; min-width: 0; }
.buc-rand > input.imei { flex-basis: 170px; font-variant-numeric: tabular-nums; }
.buc-rand > button { flex: none; }
.buc-randuri.fara-imei .imei { display: none; }
#prod-bucati:has(.fara-imei) .doar-imei { display: none; }
.rand-cauta { margin: 0 0 10px; } .rand-cauta input { width: 100%; max-width: 460px; }
.eticheta-camp { display: block; font-size: 13px; font-weight: 600; color: var(--muted); margin-top: 8px; }

/* PV: produsul cu căutare (nume, serie, IMEI) */
.cauta-prod { position: relative; min-width: 260px; }
.cauta-prod > input { width: 100%; }
.cauta-lista { position: fixed; z-index: 60; max-height: 340px; overflow-y: auto; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(16,24,40,.18); padding: 4px; }
.cauta-cat { font-size: 12px; font-weight: 700; color: var(--muted); padding: 8px 10px 4px; text-transform: uppercase; letter-spacing: .04em; }
.cauta-opt { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; padding: 7px 10px; border-radius: 7px; cursor: pointer; }
.cauta-opt.buc { padding-left: 26px; font-size: 13px; }
.cauta-opt.activ, .cauta-opt:hover { background: var(--accent-soft); }
.cauta-gol { padding: 10px; }

.pe-serie { margin-top: 16px; padding-top: 12px; border-top: 1px dashed var(--line); }

/* Inventarul IT pe linii */
.inv-cauta { display: flex; gap: 10px; align-items: center; margin: 4px 0 8px; flex-wrap: wrap; }
.inv-cauta input { flex: 1 1 320px; max-width: 620px; font-size: 15px; padding: 10px 14px; }
.inv-filtre { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 0 0 12px; }
.inv-chip { font-size: 13px; padding: 5px 11px; border-radius: 16px; border: 1px solid var(--line); background: var(--surface); font-weight: 600; color: var(--fg); cursor: pointer; }
.inv-chip.on { background: var(--fg); color: var(--surface); border-color: var(--fg); }
.inv-sep { width: 1px; height: 20px; background: var(--line); margin: 0 4px; }
.inv-lay { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr); gap: 14px; align-items: start; }
@media (max-width: 900px) { .inv-lay { grid-template-columns: 1fr; } }
table.inv td { vertical-align: top; }
table.inv tr.clic { cursor: pointer; }
table.inv tr.ales td { background: var(--accent-soft); }
.inv-sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.nec { color: var(--warn); font-style: italic; }
.inv-fisa { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
.inv-fisa h2 { margin: 2px 0; font-size: 20px; }
.inv-serie { font-size: 15px; margin-top: 4px; }
.inv-stare { margin: 8px 0 4px; display: flex; gap: 6px; flex-wrap: wrap; }
.inv-act { margin: 10px 0 6px; flex-wrap: wrap; }
.inv-ist { border-left: 2px solid var(--line); padding-left: 10px; display: flex; flex-direction: column; gap: 4px; }
.inv-la { margin-bottom: 4px; }
.cauta-opt .o1 { display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; }
.cauta-opt { flex-wrap: wrap; }

/* Medicina muncii */
.med-kpi { display: flex; gap: 10px; flex-wrap: wrap; margin: 6px 0 12px; }
.med-kpi > div { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; min-width: 150px; }
.med-kpi b { display: block; font-size: 22px; }
.med-kpi b.rosu { color: var(--crit); } .med-kpi b.galben { color: var(--warn); }
.med-ex { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin: 8px 0; }
.med-ex .imp-dl { margin-bottom: 4px; }

.cat-ip { margin: 6px 0 0; padding-left: 16px; max-width: 520px; } .cat-ip li { margin: 3px 0; }
