/* Concedii și absențe: etichetele tipurilor, formularul cu calculul în timp real, calendarul, programarea anuală. */

/* tipul de concediu: punct colorat + denumire */
.lv-dot { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--slate); }
.lv-dot.pend { box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--amber); }
.lv-dot.susp { background: repeating-linear-gradient(135deg, #b9c0c8 0 2px, #eef0f3 2px 4px); border: 1px solid #b9c0c8; }
.lv-type { display: inline-flex; align-items: center; gap: 7px; min-width: 0; max-width: 100%; }
.lv-type > span { min-width: 0; }
.lv-type small { display: block; }
.lv-act { gap: 4px; flex-wrap: nowrap; }
.toolbar .lv-date { width: 138px; flex: none; }
.lv-page .seg { flex-wrap: wrap; max-width: 100%; }
.lv-flags { display: flex; flex-wrap: wrap; gap: 3px; }

/* formularul: câmpurile în stânga, calculul în dreapta */
.lv-form { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.lv-preview { position: sticky; top: 0; display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-soft); font-size: 13px; min-width: 0; }
.lv-preview > b { font-size: 14px; }
.lv-big { display: flex; align-items: baseline; gap: 6px; }
.lv-big b { font-size: 30px; font-weight: 800; line-height: 1; }
.lv-big span { color: var(--text-weak); }
.lv-bal { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.lv-bal > span { color: var(--text-weak); min-width: 70px; }
.lv-bal b { font-size: 15px; }
.lv-bal small { width: 100%; color: var(--text-faint); font-size: 11.5px; }
.lv-cm { display: flex; flex-direction: column; gap: 3px; padding-top: 6px; border-top: 1px solid var(--border-soft); }
.lv-cm .row { justify-content: space-between; }
.lv-how summary { cursor: pointer; font-size: 12px; color: var(--link); font-weight: 600; }
.lv-how small { display: block; margin-top: 4px; color: var(--text-weak); }
.lv-hist { margin: 6px 0 0; padding-left: 16px; font-size: 12.5px; }
.lv-hist li { margin-bottom: 3px; }
.lv-hist small { display: block; color: var(--text-weak); }
.lv-cmbox div { margin-top: 2px; }
.lv-method { font-size: 12.5px; line-height: 1.5; }
.lv-tabhead { justify-content: space-between; }

/* calendarul lunii: o coloană pe zi, fără derulare laterală (coloanele se îngustează) */
.lc { display: grid; align-items: stretch; font-size: 12px; }
.lc > * { min-width: 0; border-bottom: 1px solid var(--border-soft); }
.lc-h { padding: 4px 0 3px; text-align: center; background: var(--bg-soft); border-bottom: 1px solid var(--border); font-size: 10.5px; color: var(--text-weak); line-height: 1.1; overflow: hidden; }
.lc-h b { display: block; font-size: 12px; color: var(--text); }
.lc-n { display: flex; align-items: center; padding: 2px 8px; font-size: 12.5px; color: var(--text); text-decoration: none !important; overflow: hidden; }
.lc-n b { font-weight: 600; }
a.lc-n:hover { background: var(--bg-soft); }
.lc-h.lc-n { text-align: left; font-weight: 650; font-size: 11.5px; }
.lc-covl { font-weight: 650; color: var(--text-weak); background: var(--bg-soft); font-size: 11.5px; }
.lc-cov { text-align: center; font-size: 11px; font-weight: 700; color: var(--text); padding: 3px 0; background: var(--bg-soft); }
.lc-c { position: relative; height: 26px; }
.lc .we { background-color: #f4f5f7; }
.lc .hol { background-color: #fdeee8; }
.lc .today { box-shadow: inset 1px 0 var(--brand), inset -1px 0 var(--brand); }
.lc-h.today b { color: var(--brand-dark); }
.lc-b { position: absolute; left: 0; right: 0; top: 6px; bottom: 6px; border: 0; padding: 0; background: var(--c, #8a939e); cursor: pointer; opacity: .9; }
.lc-b.s { left: 2px; border-radius: 4px 0 0 4px; }
.lc-b.e { right: 2px; border-radius: 0 4px 4px 0; }
.lc-b.s.e { border-radius: 4px; }
.lc-b.pend { background: repeating-linear-gradient(135deg, var(--c, #8a939e) 0 3px, #fff 3px 6px); box-shadow: inset 0 0 0 1px var(--c, #8a939e); }
.lc-b.susp { background: repeating-linear-gradient(135deg, #b9c0c8 0 2px, #eef0f3 2px 5px); cursor: default; }
.lc-b:hover { opacity: 1; filter: brightness(.94); }
.lc-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: var(--text-weak); }
.lc-legend span { display: inline-flex; align-items: center; gap: 5px; }
@media (max-width: 1100px) { .lc-h small { display: none; } .lc-n { padding: 2px 5px; font-size: 12px; } }

/* pe telefon: zilele săptămânii, cu cine lipsește */
.lv-week { display: flex; flex-direction: column; }
.lv-wd { display: flex; flex-direction: column; gap: 4px; padding: 6px 12px 8px; border-bottom: 1px solid var(--border-soft); }
.lv-wd.we { background: #f8f9fb; }
.lv-wd.today { box-shadow: inset 3px 0 var(--brand); }
.lv-wd-h { display: flex; align-items: baseline; gap: 8px; }
.lv-wd-h small { color: var(--brand-dark); }
.lv-wp { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 9px; border: 1px solid var(--border-soft); border-radius: 8px; background: #fff; text-align: left; font-size: 14px; cursor: pointer; min-width: 0; }
.lv-wp b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lv-wp small { margin-left: auto; color: var(--text-weak); font-size: 12px; text-align: right; }

/* programarea anuală */
.lv-per { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: 12.5px; }
.tbl td .lv-per small { display: inline; color: var(--text-faint); }
.lv-bulk { padding: 7px 12px; background: var(--brand-soft); border: 1px solid #f4c8bb; border-radius: var(--radius-sm); }
.lv-prow { flex-wrap: nowrap; }
.lv-prow .inp { width: 150px; flex: 0 1 150px; }
.lv-pdays { min-width: 64px; font-weight: 650; }

@media (max-width: 760px) {
  .lv-form { grid-template-columns: minmax(0, 1fr); }
  .lv-preview { position: static; }
  .lv-act { flex-wrap: wrap; }
}
@media (max-width: 480px) { .lv-prow { flex-wrap: wrap; } .lv-prow .inp { flex: 1 1 120px; width: auto; } }
@media print { .lc-b { -webkit-print-color-adjust: exact; print-color-adjust: exact; } .lc .we, .lc .hol { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
.lv-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.lv-method summary { cursor: pointer; list-style: none; display: inline; }
.lv-method summary::-webkit-details-marker { display: none; }
@media (max-width: 760px) { .lv-two { grid-template-columns: minmax(0, 1fr); } }
.lv-method:not([open]) summary b { color: var(--link); }
