/* Oltenia Frig — componente proprii peste tema Vuexy, in stil Stripe.
   Curate, discrete, cu accent pe detaliu si pe mobil. */

/* ---- Indicator de putere a parolei (stil Stripe) ---- */
.of-strength { margin-top: 0.5rem; }
.of-strength-bars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}
.of-strength-bars span {
  height: 4px;
  border-radius: 999px;
  background: var(--bs-secondary-bg);
  transition: background-color 0.2s ease;
}
.of-strength[data-scor="1"] .of-strength-bars span:nth-child(-n+1),
.of-strength[data-scor="2"] .of-strength-bars span:nth-child(-n+2),
.of-strength[data-scor="3"] .of-strength-bars span:nth-child(-n+3),
.of-strength[data-scor="4"] .of-strength-bars span:nth-child(-n+4) { background: currentColor; }
.of-strength[data-scor="1"] { color: #e0455e; }
.of-strength[data-scor="2"] { color: #f0913a; }
.of-strength[data-scor="3"] { color: #d9b430; }
.of-strength[data-scor="4"] { color: #2ba86a; }
.of-strength-text {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-top: 0.45rem;
  font-size: 0.78rem;
}
.of-strength-eticheta { font-weight: 600; color: currentColor; }
.of-strength-hint { color: var(--bs-secondary-color); text-align: right; }

/* ---- Buton de copiere (stil Stripe) ---- */
.of-copy {
  border: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
  color: var(--bs-secondary-color);
  border-radius: 0.4rem;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}
.of-copy:hover { color: var(--bs-primary); border-color: var(--bs-primary); }
.of-copy.copiat { color: #2ba86a; border-color: #2ba86a; background: rgba(43, 168, 106, 0.08); }

/* cheia 2FA + codul: bloc monospace cu buton de copiere langa */
.of-cheie {
  display: flex;
  align-items: stretch;
  gap: 0.5rem;
}
.of-cheie code {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  font-family: var(--bs-font-monospace);
  letter-spacing: 0.06em;
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 0.4rem;
  padding: 0.4rem 0.65rem;
  color: var(--bs-heading-color);
  word-break: break-all;
  font-size: 0.9rem;
}

/* ---- QR 2FA: patrat, centrat, fara depasire pe mobil ---- */
.of-qr {
  width: 176px;
  max-width: 100%;
  aspect-ratio: 1 / 1;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.6rem;
  line-height: 0;
}
.of-qr svg { display: block; width: 100%; height: 100%; }

/* ---- Rand de pasi (2FA) ---- */
.of-pasi { counter-reset: pas; list-style: none; padding: 0; margin: 0 0 1.25rem; }
.of-pasi li {
  position: relative;
  padding-left: 2.1rem;
  margin-bottom: 0.7rem;
  color: var(--bs-body-color);
  font-size: 0.9rem;
}
.of-pasi li::before {
  counter-increment: pas;
  content: counter(pas);
  position: absolute;
  left: 0;
  top: -1px;
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(var(--bs-primary-rgb), 0.12);
  color: var(--bs-primary);
  font-weight: 600;
  font-size: 0.78rem;
}

/* ---- Card cu antet de sectiune, ton Stripe ---- */
.of-antet { margin-bottom: 1.5rem; }
.of-antet h4 { margin-bottom: 0.15rem; }
.of-antet p { margin-bottom: 0; color: var(--bs-secondary-color); }

/* codul 2FA de confirmare: cifre generoase, centrate */
.of-cod-input {
  letter-spacing: 0.4em;
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-size: 1.05rem;
}

/* ---- Regula casei: controalele de pe acelasi rand au aceeasi inaltime ---- */
:root { --of-ctrl-h: 40px; }
.form-control,
.form-select,
.input-group-text,
input.flatpickr-input,
.btn:not(.btn-sm):not(.btn-lg) {
  min-height: var(--of-ctrl-h);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.btn-icon:not(.btn-sm):not(.btn-lg):not(.btn-xs):not(.btn-xl){
  block-size:var(--of-ctrl-h)!important;inline-size:var(--of-ctrl-h)!important;
  height:var(--of-ctrl-h)!important;width:var(--of-ctrl-h)!important;min-width:var(--of-ctrl-h)}
.wz-panou .btn-icon:not(.btn-sm):not(.btn-lg):not(.btn-xs):not(.btn-xl){
  block-size:48px!important;inline-size:48px!important;height:48px!important;width:48px!important}

/* butoanele din antetul unui card nu stau lipite de continutul de sub ele */
.card-header.pb-0:has(.btn) { padding-bottom: 1rem !important; }

/* in wizard controalele sunt de 48px, butoanele la fel, ca sa stea aliniate */
.wz-panou .btn,
.wz-panou .input-group .btn { min-height: 48px; }

/* ---- Comutator segmentat, stil Stripe (filtrele din Rapoarte) ---- */
.of-seg{display:inline-flex;gap:2px;padding:4px;border-radius:12px;background:var(--bs-secondary-bg);max-width:100%;overflow-x:auto}
.of-seg a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;font-weight:500;
  color:var(--bs-secondary-color);text-decoration:none;white-space:nowrap;transition:color .15s,background .15s,box-shadow .15s}
.of-seg a:hover{color:var(--bs-body-color)}
.of-seg a.act{background:var(--bs-paper-bg);color:var(--bs-body-color);
  box-shadow:0 1px 2px rgba(10,37,64,.14),0 2px 6px rgba(10,37,64,.08)}
.of-seg .seg-nr{font-size:.78rem;font-weight:600;background:var(--bs-body-bg);color:var(--bs-secondary-color);
  border-radius:20px;padding:1px 8px;line-height:1.4}
.of-seg a.act .seg-nr{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary)}

/* ---- Notificari: cele necitite au chenar plin de jur imprejur, nu doar dunga ---- */
.lista-notificari{padding:6px}
.lista-notificari .dropdown-notifications-item{border:2px solid transparent!important;border-radius:10px;margin:2px 0}
.lista-notificari .dropdown-notifications-item.necitita{border-color:rgba(var(--bs-primary-rgb),.45)!important;
  background:rgba(var(--bs-primary-rgb),.05)}

/* ---- Comutatorul segmentat pe tema intunecata: contrast, nu tonuri topite ---- */
[data-bs-theme="dark"] .of-seg{background:rgba(255,255,255,.06)}
[data-bs-theme="dark"] .of-seg a.act{background:rgba(255,255,255,.13);box-shadow:none}
[data-bs-theme="dark"] .of-seg .seg-nr{background:rgba(255,255,255,.12);color:var(--bs-body-color)}
[data-bs-theme="dark"] .of-seg a.act .seg-nr{background:rgba(var(--bs-primary-rgb),.35);color:#fff}

/* ---- Coloana de continut a paginilor de setari/cont: centrata, latime civilizata ---- */
.of-coloana{width:100%;max-width:840px;margin-inline:auto}

/* ---- REGULA CASEI: inputuri, selecturi si pickere au FIX aceeasi inaltime ----
   Nu doar min-height (browserele calculeaza natural diferit intre select si input),
   ci inaltime fixa, cu !important, pe orice tema si orice motor de randare. */
input.form-control:not(.form-control-sm):not(.form-control-lg),
select.form-select:not([multiple]):not([size]){
  height:var(--of-ctrl-h)!important;min-height:var(--of-ctrl-h)!important;
  padding-top:0!important;padding-bottom:0!important}
.wz-panou input.form-control:not(.form-control-sm):not(.form-control-lg),
.wz-panou select.form-select:not([multiple]):not([size]){
  height:48px!important;min-height:48px!important}
textarea.form-control{height:auto!important}
/* aceeasi pereche si pentru variantele mici, respectiv mari */
:root{--of-ctrl-h-sm:32px;--of-ctrl-h-lg:48px}
input.form-control-sm,select.form-select-sm,.btn-sm{
  height:var(--of-ctrl-h-sm)!important;min-height:var(--of-ctrl-h-sm)!important;
  padding-top:0!important;padding-bottom:0!important}
/* butonul cu iconita trebuie sa aiba EXACT inaltimea butoanelor de langa el. Tema scrie
   inaltimea ca „block-size", nu ca „height": daca punem doar height, butonul cu iconita
   ramane mai scund (se vedea la „Sterge" langa „Redenumeste"). Le punem pe amandoua. */
.btn-icon.btn-sm{width:var(--of-ctrl-h-sm)!important;inline-size:var(--of-ctrl-h-sm)!important;
  height:var(--of-ctrl-h-sm)!important;block-size:var(--of-ctrl-h-sm)!important;
  min-block-size:var(--of-ctrl-h-sm)!important}
.btn-icon.btn-lg{width:var(--of-ctrl-h-lg)!important;inline-size:var(--of-ctrl-h-lg)!important;
  height:var(--of-ctrl-h-lg)!important;block-size:var(--of-ctrl-h-lg)!important}
input.form-control-lg,select.form-select-lg,.btn-lg{
  height:var(--of-ctrl-h-lg)!important;min-height:var(--of-ctrl-h-lg)!important;
  padding-top:0!important;padding-bottom:0!important}
textarea.form-control-sm,textarea.form-control-lg{height:auto!important}

/* ---- Bifele din formularele de document: casuta si textul pe acelasi rand, cu inaltimea
   celorlalte controale, ca randul sa iasa drept langa inputuri ---- */
.of-bifa{display:flex;align-items:center;gap:.55rem;min-height:var(--of-ctrl-h);margin:0;padding-left:0}
.of-bifa .form-check-input{margin:0;flex:0 0 auto;width:1.15rem;height:1.15rem}
.of-bifa .form-check-label{margin:0;line-height:1.35;cursor:pointer}

/* ---- Pasii wizardului: numarul si eticheta lizibile si pe pasii neatinsi, pe ambele teme ---- */
.wz-pas .nrp{color:var(--bs-body-color)}
[data-bs-theme="dark"] .wz-pas{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.10);color:var(--bs-body-color)}
[data-bs-theme="dark"] .wz-pas .nrp{background:rgba(255,255,255,.14);color:var(--bs-body-color)}
[data-bs-theme="dark"] .wz-pas.act .nrp{background:var(--bs-primary);color:#fff}
[data-bs-theme="dark"] .wz-pas.gata .nrp{background:rgba(var(--bs-success-rgb),.25);color:var(--bs-success)}

/* ---- Contul meu, ca la Stripe: totul intr-o coloana centrata; pe desktop
   titlurile stau intr-un nav vertical discret in stanga, continutul in dreapta;
   pe mobil nav-ul devine comutatorul segmentat al aplicatiei (ca la Rapoarte). ---- */
.of-cont-pagina{max-width:1000px;margin-inline:auto}
.of-cont{display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;align-items:start}
.of-cont-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:90px}
.of-cont-nav a{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:8px;min-height:0;
  font-weight:500;color:var(--bs-body-color);opacity:.72;text-decoration:none;
  transition:opacity .15s,background .15s,color .15s}
.of-cont-nav a .ti{font-size:19px}
.of-cont-nav a:hover{opacity:1;background:var(--bs-secondary-bg)}
.of-cont-nav a.act{opacity:1;color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.09)}
[data-bs-theme="dark"] .of-cont-nav a.act{background:rgba(var(--bs-primary-rgb),.22)}
@media (max-width:767.98px){
  .of-cont{display:block}
  .of-cont-nav{position:static;flex-direction:row;overflow-x:auto;gap:2px;padding:4px;
    border-radius:12px;background:var(--bs-secondary-bg);margin-bottom:1rem}
  .of-cont-nav a{white-space:nowrap;border-radius:9px;padding:8px 14px;opacity:1;color:var(--bs-secondary-color)}
  .of-cont-nav a.act{background:var(--bs-paper-bg);color:var(--bs-body-color);
    box-shadow:0 1px 2px rgba(10,37,64,.14),0 2px 6px rgba(10,37,64,.08)}
  [data-bs-theme="dark"] .of-cont-nav{background:rgba(255,255,255,.06)}
  [data-bs-theme="dark"] .of-cont-nav a{color:var(--bs-body-color);opacity:.85}
  [data-bs-theme="dark"] .of-cont-nav a.act{background:rgba(255,255,255,.14);box-shadow:none;opacity:1;color:#fff}
}


/* ---- Filtrele listelor, stil Stripe: bara umple MEREU toata latimea, oricate
   filtre ar fi pe rand (grila care se imparte egal, fara spatiu gol la dreapta) ---- */
.of-filtre{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:1rem;align-items:center;width:100%}
.of-filtre>*{min-width:0;width:100%}
.of-filtre input[type=hidden]{display:none}   /* altfel ocupa o celula goala in grila */
.of-filtre .cauta{position:relative;grid-column:span 2;order:-1}
.of-filtre .cauta .ti{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--bs-secondary-color);pointer-events:none;z-index:2}
.of-filtre .cauta input{padding-left:38px;width:100%}
.of-filtre select,.of-filtre input{width:100%}
/* pe telefon fiecare filtru pe toata latimea, unul sub altul (se citesc si se ating usor) */
@media (max-width:575.98px){
  .of-filtre{grid-template-columns:1fr}
  .of-filtre .cauta{grid-column:1 / -1}
}

/* meniul de optiuni dintr-un tabel cu derulare pe orizontala nu trebuie taiat */
.table-responsive:has(.dropdown-menu.show){overflow:visible}

/* ---- Notificari: NICIO dunga in stanga (tema punea inset box-shadow); doar chenarul plin ---- */
.lista-notificari .dropdown-notifications-item{box-shadow:none!important}
.lista-notificari .dropdown-notifications-item.necitita{box-shadow:none!important;background:rgba(var(--bs-primary-rgb),.05)!important}

/* ---- Casetele informative: aceeasi iconita, aceeasi marime, oricat text ar fi ---- */
.alert.d-flex{align-items:center}
.alert.d-flex>.icon-base{margin-top:0!important;flex:0 0 auto;width:24px;height:24px;
  font-size:22px!important;line-height:24px;text-align:center;opacity:1}
.alert.d-flex>.icon-base::before{font-size:inherit}
.alert-warning.d-flex>.icon-base,.alert-danger.d-flex>.icon-base,
.alert-success.d-flex>.icon-base,.alert-primary.d-flex>.icon-base{color:inherit}

/* ---- Filtrele: acelasi fundal pe TOATE controalele, campurile de data la latime fixa ---- */
.of-filtre .form-control,.of-filtre .form-select{background-color:var(--bs-paper-bg)}
.of-filtre .camp-data-lux{width:100%!important;min-width:0}

/* ---- Selecturile cu cautare (select2): pe tokenii temei, inaltimea inputurilor ---- */
.select2-container--default .select2-selection--single{
  height:var(--of-ctrl-h);display:flex;align-items:center;
  background:var(--bs-paper-bg);border:var(--bs-border-width) solid var(--bs-border-color);
  border-radius:var(--bs-border-radius)}
.select2-container--default .select2-selection--single .select2-selection__rendered{
  color:var(--bs-body-color);line-height:normal;padding-left:.9rem;padding-right:2rem;flex:1;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:100%;right:8px}
.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:var(--bs-secondary-color) transparent transparent transparent}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent var(--bs-secondary-color) transparent}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{border-color:var(--bs-primary)}
.wz-panou .select2-container--default .select2-selection--single{height:48px}
.select2-dropdown{background:var(--bs-paper-bg);border:var(--bs-border-width) solid var(--bs-border-color);
  color:var(--bs-body-color);border-radius:.5rem;box-shadow:0 8px 28px rgba(10,37,64,.18);overflow:hidden}
.select2-container--default .select2-search--dropdown .select2-search__field{
  background:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);
  color:var(--bs-body-color);border-radius:.4rem;padding:.45rem .7rem;outline:0}
.select2-results__option{padding:.45rem .85rem}
.select2-container--default .select2-results__option--highlighted[aria-selected]{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary)}
.select2-container--default .select2-results__option[aria-selected=true]{background:rgba(var(--bs-primary-rgb),.18);color:var(--bs-primary)}
.select2-container--default .select2-results>.select2-results__options{max-height:260px}
.of-filtre .select2-container{width:100%!important;min-width:0}

/* ---- Dialogurile de confirmare: butoanele raman CENTRATE si cand nu incap pe un rand ----
   (marjele utilitare de tip me-1/me-3 pe butoane strica centrarea la rupere; le anulam
   si tinem distanta cu gap) */
.swal2-popup .swal2-actions{
  flex-wrap:wrap!important;justify-content:center!important;gap:.5rem!important;
  /* tema le da marje negative (banda pe toata latimea) si dialogul n-are spatiu jos:
     asa butoanele ieseau din caseta si se vedea un dreptunghi lipit de margine */
  /* marginea de sus = spatiu deasupra liniei despartitoare, padding-ul de sus = aer
     intre linie si butoane (altfel butoanele stau lipite de linie) */
  margin:1.5rem 0 0!important;padding:1.25rem 1.5rem 1.5rem!important;background:transparent!important}
.swal2-popup .swal2-actions .btn{margin:0!important;white-space:nowrap}
.swal2-popup .swal2-actions button + button{margin-inline-start:0!important}
.swal2-popup{width:min(94vw,30rem)!important}

/* ---- REGULA CASEI: aceeasi bordura pe TOATE controalele de formular ----
   inputuri, textarea, selecturi simple, selecturi cu cautare (select2), calendare
   (dublura flatpickr .camp-data-lux) si grupurile de input. Tema aducea borduri
   diferite (calendarele aveau chenar albastrui, select2 avea alta nuanta). */
.form-control,
.form-select,
textarea.form-control,
.camp-data-lux,
.input-group-text,
.select2-container--default .select2-selection--single{
  border:var(--bs-border-width) solid var(--bs-border-color)!important;
  border-radius:var(--bs-border-radius)!important;
  background-color:var(--bs-paper-bg)!important;
  box-shadow:none!important}
.form-control:focus,
.form-select:focus,
.camp-data-lux:focus,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{
  border-color:var(--bs-primary)!important;
  box-shadow:0 0 0 .15rem rgba(var(--bs-primary-rgb),.18)!important}
.form-control.is-invalid,.form-select.is-invalid{border-color:var(--bs-danger)!important}
/* Grupurile de input (ex. lupa + camp de cautare + buton) arata ca UN SINGUR bloc:
   rotunjit doar la capete, cu linie subtire intre parti, fara borduri duble. */
.input-group>*{border-radius:0!important}
.input-group>:first-child{border-start-start-radius:var(--bs-border-radius)!important;
  border-end-start-radius:var(--bs-border-radius)!important}
.input-group>:last-child{border-start-end-radius:var(--bs-border-radius)!important;
  border-end-end-radius:var(--bs-border-radius)!important}
.input-group>:not(:first-child){border-inline-start:0!important;
  box-shadow:inset 1px 0 0 var(--bs-border-color)!important}
.input-group .input-group-text{background-color:var(--bs-paper-bg)!important;color:var(--bs-secondary-color)}
.input-group>.btn{border:var(--bs-border-width) solid var(--bs-border-color)!important}
/* focalizarea coloreaza tot grupul, nu doar campul */
.input-group:focus-within>*{border-color:var(--bs-primary)!important}
.input-group:focus-within{border-radius:var(--bs-border-radius);
  box-shadow:0 0 0 .15rem rgba(var(--bs-primary-rgb),.18)}
.input-group:focus-within>.form-control,.input-group:focus-within>.form-select{box-shadow:none!important}

/* Pe telefon campurile au minim 16px: altfel iOS mareste singur pagina la atingerea lor
   (zoom nedorit). Nu blocam zoomul cu degetele, doar pornirea lui automata. */
@media (max-width:575.98px){
  .form-control,.form-select,input[type=text],input[type=email],input[type=password],
  input[type=tel],input[type=number],input[type=search],input[type=date],input[type=time],
  input[type=datetime-local],textarea,select{font-size:16px!important}
}

/* ---- Ochiul de „arată parola" (toate campurile de parola) ---- */
.camp-parola{position:relative;display:block}
.camp-parola>.form-control{padding-right:2.7rem}
.ochi-parola{position:absolute;top:0;right:0;height:100%;width:2.7rem;display:flex;align-items:center;justify-content:center;
  background:transparent;border:0;padding:0;color:var(--bs-secondary-color);cursor:pointer;
  border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0}
.ochi-parola:hover{color:var(--bs-body-color)}
.ochi-parola .ti{font-size:19px}

/* ---- Ascundere sigura: utilitarele Bootstrap (d-flex, d-grid...) au prioritate
   fortata si bat un display:none scris direct pe element. Clasa asta, venind mai
   tarziu in foaia de stil, castiga mereu. ---- */
.of-ascuns{display:none!important}

/* ---- Prefixul de tara la telefoane (intl-tel-input): pe tema aplicatiei, lizibil
   si pe fundal deschis, si pe cel intunecat ---- */
.iti{width:100%}
.iti__dropdown-content{min-width:290px;background:var(--bs-paper-bg)!important;color:var(--bs-body-color)!important;
  border:var(--bs-border-width) solid var(--bs-border-color)!important;border-radius:.6rem!important;
  box-shadow:0 10px 30px rgba(10,37,64,.22)!important;overflow:hidden}
.iti__search-input{background:var(--bs-body-bg)!important;color:var(--bs-body-color)!important;
  border:0!important;border-bottom:var(--bs-border-width) solid var(--bs-border-color)!important;
  padding:.55rem .8rem .55rem 2.1rem!important;width:100%!important;background-position:.7rem center!important}
.iti__country-list{max-height:280px;background:transparent!important;color:inherit!important}
.iti__country{padding:.45rem .8rem!important;color:var(--bs-body-color)!important}
.iti__country.iti__highlight,.iti__country:hover{background:rgba(var(--bs-primary-rgb),.14)!important}
.iti__country-name{color:inherit!important}
.iti__dial-code{color:var(--bs-secondary-color)!important}
.iti__selected-country{background:transparent!important}
.iti__selected-dial-code{color:var(--bs-body-color)}
.iti--separate-dial-code .iti__selected-country{border-inline-end:var(--bs-border-width) solid var(--bs-border-color)}

/* ---- Data si ora, centrate pe verticala pe ORICE telefon ----------------------------
   Pe iPhone (WebKit), cu inaltime fixa, valoarea se lipeste de marginea de sus si trebuie
   centrata din line-height. Pe Android exact aceeasi regula o scotea din centru, pentru ca
   acolo campul se centreaza singur. Deci: peste tot lasam browserul sa centreze (line-height
   normal, fara padding vertical), iar reglajul cu line-height ramane DOAR pe iPhone/iPad,
   unde `-webkit-touch-callout` exista. ---- */
input[type=date],input[type=time],input[type=datetime-local]{
  line-height:normal;padding-top:0;padding-bottom:0}
@supports (-webkit-touch-callout: none){
  input[type=date],input[type=time],input[type=datetime-local]{line-height:var(--of-ctrl-h)}
  input[type=date].form-control-sm,input[type=time].form-control-sm{line-height:var(--of-ctrl-h-sm)}
  input[type=date].form-control-lg,input[type=time].form-control-lg{line-height:var(--of-ctrl-h-lg)}
  .wz-panou input[type=date],.wz-panou input[type=time],.wz-panou input[type=datetime-local]{line-height:48px}
}

/* ---- Pe telefon, butonul principal de acțiune ocupă toată lățimea ---- */
@media (max-width:575.98px){
  .btn-doc-nou{width:100%}
  .btn-doc-nou>.btn{width:100%}
  .of-antet .d-flex.gap-2,.d-flex.flex-wrap.gap-2:has(.btn-doc-nou){width:100%;flex-direction:column;align-items:stretch}
  .of-antet .d-flex.gap-2>.btn,.d-flex.flex-wrap.gap-2:has(.btn-doc-nou)>.btn{width:100%}
}
/* ---- Dispozitivele: informația pe rânduri, fără separatoare între ---- */
.disp-rand{font-size:.86rem;line-height:1.5}

/* ---- Pe telefon, bara de butoane a wizardului sta lipita jos: toasturile se ridica
   deasupra ei, altfel acopera butoanele si apesi degeaba ---- */
@media (max-width:575.98px){
  body:has(.wz-nav) .zona-toasturi{bottom:96px}
}
.wz-nav{position:relative;z-index:3}

/* ---- Butoanele de acțiune din capul paginilor: pe telefon, fiecare pe toată lățimea ---- */
@media (max-width:575.98px){
  .of-actiuni{width:100%;display:grid!important;grid-template-columns:1fr;gap:.5rem}
  .of-actiuni>*,.of-actiuni>.btn,.of-actiuni .btn-group>.btn{width:100%}
}

/* ---- Capetele de tabel: text pe culoarea textului obișnuit, nu gri șters ---- */
.table>thead th,.table>thead td{color:var(--bs-heading-color)!important;font-weight:600}

/* ---- Tabelele din carduri: linii peste tot, la fel ------------------------------------
   Tema lasa unele tabele fara linii intre randuri, altele cu — asa „Ultimele documente"
   arata altfel decat lista de clienti. Aici le facem pe toate la fel: o linie sub capul de
   tabel (deci si deasupra primului rand) si cate o linie intre randuri. */
.card .table > thead > tr > th{border-bottom:var(--bs-border-width) solid var(--bs-border-color)}
.card .table > tbody > tr > td{border-bottom:var(--bs-border-width) solid var(--bs-border-color)}
.card .table > tbody > tr:last-child > td{border-bottom:0}
/* tabelele fara cap propriu (ex. „Ultimele documente"): linia de sus le desparte de titlul cardului */
.card .table:not(:has(thead)) > tbody > tr:first-child > td{border-top:var(--bs-border-width) solid var(--bs-border-color)}

/* ---- Alegerea produsului (selector cu cautare): optiunile arata unitatea, iar produsul
   scris pe loc se vede ca „Adauga …” ---- */
.prod-optiune{display:flex;align-items:center;gap:.5rem;justify-content:space-between}
.prod-optiune .prod-um{font-size:.75rem;font-weight:600;color:var(--bs-primary);
  background:rgba(var(--bs-primary-rgb),.12);border-radius:20px;padding:1px 9px;flex:0 0 auto;line-height:1.5}
.prod-nou{display:inline-flex;align-items:center;gap:.4rem;color:var(--bs-primary);font-weight:500}
.prod-nou .ti{font-size:16px}
/* campul de denumire, cand lipseste ceva */
.select2-hidden-accessible.is-invalid + .select2 .select2-selection{border-color:var(--bs-danger)!important}

/* lista de produse: inaltime pe masura ecranului, ca sa incapa sub camp si pe telefon */
.prod-drop .select2-results__options{max-height:min(46vh,320px)!important}

/* ---- Campurile de fisier: scrisul si butonul „Alege" centrate pe verticala ------------
   Regula generala scoate spatiile de sus/jos ca sa iasa toate controalele la fel de inalte;
   la input[type=file] asta lipea textul de marginea de sus, pentru ca el nu se centreaza
   singur. Il centram din line-height, iar butonul lui ia toata inaltimea campului. */
input[type=file].form-control{line-height:var(--of-ctrl-h);display:block}
input[type=file].form-control::file-selector-button{
  height:var(--of-ctrl-h);padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;
  margin-inline-end:.75rem;line-height:var(--of-ctrl-h)}
input[type=file].form-control-sm{line-height:var(--of-ctrl-h-sm)}
input[type=file].form-control-sm::file-selector-button{height:var(--of-ctrl-h-sm);line-height:var(--of-ctrl-h-sm)}
.wz-panou input[type=file].form-control{line-height:48px}
.wz-panou input[type=file].form-control::file-selector-button{height:48px;line-height:48px}

/* ---- Iconița stărilor goale („Nimic găsit", „Încă nu există…") ------------------------
   Aceeași peste tot: bloc pe toată lățimea, deci centrată orizontal oriunde ar fi (și în
   celule de tabel, unde `text-center` singur nu ajungea), aceeași mărime și culoare. */
.of-gol-icon{display:block;width:100%;text-align:center;line-height:1;
  margin:0 0 .5rem;color:var(--bs-secondary-color);opacity:.85;
  /* tema tine iconitele la o marime fixa (--bs-icon-size); aici o marim doar pe asta */
  --bs-icon-size:2rem;font-size:2rem!important;block-size:2rem!important;inline-size:100%!important;
  height:2rem!important}
.of-gol-icon::before{font-size:inherit!important;line-height:inherit!important}

/* ---- Paleta de câmpuri din editorul de model: fiecare câmp arată ce e și ce face ---- */
.camp-paleta{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.camp-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;
  padding:10px 12px;border:1px solid var(--bs-border-color);border-radius:10px;
  background:var(--bs-paper-bg);color:var(--bs-body-color);cursor:pointer;transition:border-color .15s,background .15s}
.camp-btn:hover{border-color:var(--bs-primary);background:rgba(var(--bs-primary-rgb),.05)}
.camp-cod{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--bs-primary)}
.camp-nume{font-weight:600;font-size:.92rem}
.camp-fel{font-size:.72rem;font-weight:600;border-radius:20px;padding:1px 9px;line-height:1.6;
  background:var(--bs-body-bg);color:var(--bs-body-color);border:1px solid var(--bs-border-color)}
.camp-fel-semnatura,.camp-fel-produse,.camp-fel-manopera,.camp-fel-poze{background:rgba(var(--bs-primary-rgb),.12);color:var(--bs-primary)}
.camp-fel-auto{background:rgba(var(--bs-warning-rgb),.16);color:var(--bs-warning)}
.camp-nota{font-size:.78rem;color:var(--bs-secondary-color);line-height:1.35}
.camp-propriu{border-style:dashed}

/* ---- Administrarea formularului (secțiuni și câmpuri) ---- */
.fs-sectiune{border:1px solid var(--bs-border-color);border-radius:12px;padding:12px;margin-bottom:12px;background:var(--bs-paper-bg)}
.fs-cap{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.fs-cap .form-control{flex:1 1 auto}
.fs-campuri{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;padding:8px;border-radius:10px;
  border:1px dashed var(--bs-border-color);background:var(--bs-body-bg)}
.fs-camp{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;
  border:1px solid var(--bs-border-color);background:var(--bs-paper-bg);font-size:.86rem}
.fs-camp .fs-actiune{border:0;background:none;color:var(--bs-secondary-color);cursor:pointer;padding:0 2px;line-height:1}
.fs-camp .fs-actiune:hover{color:var(--bs-primary)}
.fs-camp .fs-scoate:hover{color:var(--bs-danger)}
.fs-gol{color:var(--bs-secondary-color);font-size:.86rem;padding:4px}
/* bifa „obligatoriu" de pe fiecare câmp din formular */
.fs-oblig{display:inline-flex;align-items:center;gap:5px;margin:0 2px 0 4px;font-size:.75rem;
  color:var(--bs-secondary-color);cursor:pointer;white-space:nowrap}
.fs-oblig .form-check-input{margin:0;width:14px;height:14px;min-height:0}
.fs-camp:has(.fs-bifa:checked) .fs-oblig{color:var(--bs-primary);font-weight:600}

/* ---- Pozele de pe teren ---- */
.poze-grila{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}
.poza-tile{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;padding:0;
  border:1px solid var(--bs-border-color);background:var(--bs-secondary-bg);cursor:zoom-in}
.poza-tile img{width:100%;height:100%;object-fit:cover;display:block}
.poza-tile .poza-nr{position:absolute;left:6px;bottom:6px;min-width:20px;height:20px;padding:0 6px;
  border-radius:10px;background:rgba(10,37,64,.66);color:#fff;font-size:.72rem;font-weight:600;
  display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.poza-sterge{position:absolute;top:5px;right:5px;width:26px;height:26px;border:0;border-radius:50%;
  background:rgba(10,37,64,.66);color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;padding:0;line-height:1}
.poza-sterge:hover{background:var(--bs-danger)}
.poza-sterge .ti{font-size:15px}
.poza-tile.urca{cursor:default}
.poza-tile.urca img{opacity:.4;filter:saturate(.4)}
.poza-bara{position:absolute;left:10px;right:10px;bottom:10px;height:4px;border-radius:2px;
  background:rgba(255,255,255,.4);overflow:hidden}
.poza-bara i{display:block;height:100%;width:0;border-radius:2px;background:var(--bs-primary);transition:width .15s linear}
.poze-goale{display:flex;align-items:center;justify-content:center;gap:8px;padding:22px 12px;border-radius:12px;
  border:1px dashed var(--bs-border-color);color:var(--bs-secondary-color);font-size:.92rem}
.poze-goale .ti{font-size:20px}
.poze-actiuni{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.poze-actiuni .btn{width:100%}

/* vizorul: poza mare pe tot ecranul, cu descrierea si stergerea la indemana */
body.poza-vizor-deschis{overflow:hidden}
.poza-vizor{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;
  background:rgba(8,16,28,.97);backdrop-filter:blur(3px)}
.poza-vizor-sus{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 16px;color:#fff;font-weight:600;flex:0 0 auto}
.poza-vizor-inchide{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.14);
  color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.poza-vizor-inchide:hover{background:rgba(255,255,255,.24)}
.poza-vizor-mijloc{flex:1 1 auto;min-height:0;position:relative;display:flex;align-items:center;justify-content:center;padding:0 8px}
.poza-vizor-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;display:block}
.poza-vizor-sageata{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;
  border-radius:50%;background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;
  justify-content:center;cursor:pointer;padding:0}
.poza-vizor-sageata:hover{background:rgba(255,255,255,.24)}
.poza-vizor-sageata.stanga{left:10px}
.poza-vizor-sageata.dreapta{right:10px}
.poza-vizor-jos{flex:0 0 auto;display:flex;gap:10px;padding:14px 16px calc(14px + env(safe-area-inset-bottom))}
.poza-vizor-jos .form-control{flex:1 1 auto;min-width:0}
.poza-vizor-jos .btn{flex:0 0 auto}
@media (max-width:575.98px){
  .poza-vizor-jos{flex-wrap:wrap}
  .poza-vizor-jos .form-control{flex:1 1 100%}
  .poza-vizor-jos .btn{flex:1 1 100%}
}

/* tehnicieni multipli + interval de date: ușor de atins pe telefon */
.teh-rand .form-control, .teh-rand .btn { min-height: 44px; }
.teh-rand .teh-sterge { min-width: 48px; }
.teh-adauga { min-height: 44px; }

/* ordinea cu care se aseaza campurile din formularul raportului (Bootstrap are order doar pana la 5) */
.ord-1 { order: 1; }
.ord-2 { order: 2; }
.ord-3 { order: 3; }
.ord-4 { order: 4; }
.ord-5 { order: 5; }
.ord-6 { order: 6; }
.ord-7 { order: 7; }
.ord-8 { order: 8; }
.teh-rand:only-child .teh-nume { border-radius: var(--bs-border-radius) !important; }

/* zilele intervenției: un rând pe zi, pe desktop într-o singură linie, pe telefon pe două */
.zi-cap, .zi-rand { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 48px; gap: .75rem; align-items: end; }
.zi-cap { font-size: .8125rem; color: var(--bs-secondary-color); padding: 0 .1rem .25rem; }
.zi-rand { margin-bottom: .6rem; }
.zi-rand .form-control, .zi-rand .btn { min-height: 44px; }
.zi-et { display: none; font-size: .8125rem; color: var(--bs-secondary-color); margin-bottom: .2rem; }
.zi-total { margin-top: .75rem; font-size: .9375rem; }
@media (max-width: 767.98px) {
  .zi-cap { display: none; }
  .zi-rand { position: relative; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "data data" "de la" "ore ore"; padding: .75rem; border: 1px solid var(--bs-border-color); border-radius: .5rem; gap: .5rem .6rem; }
  .zi-rand .zi-c:nth-child(1) { grid-area: data; margin-right: 52px; }
  .zi-rand .zi-c:nth-child(2) { grid-area: de; }
  .zi-rand .zi-c:nth-child(3) { grid-area: la; }
  .zi-rand .zi-c:nth-child(4) { grid-area: ore; }
  .zi-rand .zi-sterge { position: absolute; top: .75rem; right: .75rem; width: 44px; padding: 0; margin-top: 1.35rem; }
  .zi-et { display: block; }
}
.zi-sterge .icon-base { font-size: 1.25rem; }
.zi-c { min-width: 0; }
.zi-c .form-control { width: 100%; min-width: 0; }
.zi-sterge { padding: 0; display: inline-flex; align-items: center; justify-content: center; width: 48px; }
.zi-sterge .icon-base { flex: none; width: 20px; height: 20px; font-size: 20px; }
.zi-sterge:disabled { opacity: .35; cursor: not-allowed; }

/* ======================= AutoKraft: marca si paginile proprii ======================= */
.ak-logo { height: 30px; width: auto; display: block; }
.pagina-autentificare .ak-logo { height: 44px; }
.ak-marca { display: inline-flex; align-items: center; gap: 10px; color: var(--bs-heading-color); line-height: 1; }
.ak-sigla { width: 34px; height: 34px; border-radius: 9px; background: #d8232a; color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 15px; letter-spacing: -.04em; transform: skewX(-8deg); flex: 0 0 auto; }
.ak-sigla span { transform: skewX(8deg); }
.ak-marca-text b { display: block; font-weight: 800; font-size: 17px; letter-spacing: .02em; }
.ak-marca-text small { display: block; font-size: 8.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--bs-secondary-color); margin-top: 3px; }
.pagina-autentificare .ak-sigla { width: 46px; height: 46px; font-size: 21px; border-radius: 12px; }
.pagina-autentificare .ak-marca-text b { font-size: 24px; } .pagina-autentificare .ak-marca-text small { font-size: 11px; }
.navbar-brand .ak-marca-text small { display: none; }
@media (min-width: 1200px) { .navbar-brand .ak-marca-text small { display: block; } }

/* numar de inmatriculare */
.placa { display: inline-flex; align-items: stretch; border: 1.5px solid #1b1b1f; border-radius: 5px; overflow: hidden; background: #f6f6f8; color: #111; font-weight: 800; font-size: .86rem; letter-spacing: .06em; line-height: 1; vertical-align: middle; }
.placa i { width: 7px; background: #0a3fa6; display: block; }
.placa span { padding: 4px 8px 3px; }

/* KPI (ca pe Panoul Oltenia) */
.pn-kpi { display: flex; align-items: center; gap: 14px; }
.pn-kpi .ic { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; font-size: 22px; }
.pn-kpi .nr { font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.pn-kpi .et { color: var(--bs-secondary-color); font-size: .86rem; }

/* tabla receptiei */
.tabla { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 992px) { .tabla { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); align-items: start; } .filtre-stare { display: none; } }
.coloana-cap { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 10px; font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--bs-secondary-color); }
@media (max-width: 991.98px) { .coloana { display: none; } .coloana.vizibila { display: block; } .coloana-cap { display: none; } }
.cmd { cursor: pointer; margin-bottom: .75rem; transition: box-shadow .15s, transform .12s; }
.cmd:hover { transform: translateY(-1px); }
.cmd.noua { animation: cmd-nou 1.2s ease 3; }
@keyframes cmd-nou { 50% { box-shadow: 0 0 0 4px rgba(var(--bs-primary-rgb), .35); } }
.cmd .card-body { padding: .9rem 1rem; }
.cmd-sus { display: flex; align-items: center; gap: .5rem; margin-bottom: .45rem; }
.cmd-nr { font-size: 1.15rem; font-weight: 700; line-height: 1; color: var(--bs-heading-color); }
.cmd-nr i { font-style: normal; color: var(--bs-primary); }
.cmd-timp { margin-left: auto; font-size: .78rem; color: var(--bs-secondary-color); white-space: nowrap; }
.cmd-masina { display: flex; align-items: center; gap: .5rem; margin-bottom: .45rem; flex-wrap: wrap; font-size: .86rem; color: var(--bs-secondary-color); }
.cmd-servicii { font-size: .86rem; margin-bottom: .55rem; line-height: 1.4; }
.cmd-jos { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.cmd-total { font-weight: 700; }
.cmd .alerta-mica { position: absolute; top: 10px; right: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--bs-danger); }
.cmd-programare { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; color: var(--bs-info); font-weight: 500; }
.gol-coloana { text-align: center; color: var(--bs-secondary-color); padding: 2rem .5rem; font-size: .86rem; }
.gol-coloana .ti { font-size: 32px; display: block; margin: 0 auto 6px; opacity: .6; }
.stari-grila { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 1.25rem; }
@media (min-width: 576px) { .stari-grila { grid-template-columns: repeat(4, 1fr); } }
.stari-grila .btn { flex-direction: column; gap: 4px; padding: .6rem .4rem; font-size: .8rem; white-space: normal; min-height: 56px; }
.punct { display: inline-block; width: 9px; height: 9px; border-radius: 50%; }
.bloc { background: var(--bs-secondary-bg); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); padding: .9rem 1rem; }
[data-bs-theme="dark"] .bloc { background: rgba(255,255,255,.04); }
.bloc h6 { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; margin-bottom: .6rem; display: flex; justify-content: space-between; align-items: center; }
.bloc h6 .btn { letter-spacing: 0; text-transform: none; }
.linie { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px dashed var(--bs-border-color); font-size: .9rem; align-items: center; }
.linie:last-child { border-bottom: 0; }
.linie span:last-child { white-space: nowrap; font-weight: 600; }
.linie small { display: block; color: var(--bs-secondary-color); font-size: .78rem; }
.total-mare { display: flex; justify-content: space-between; align-items: baseline; padding-top: 10px; margin-top: 4px; border-top: 2px solid var(--bs-border-color); font-weight: 700; }
.total-mare b { font-size: 1.35rem; color: var(--bs-primary); }
.istoric-lista { font-size: .84rem; }
.istoric-lista div { display: flex; gap: 8px; padding: 4px 0; color: var(--bs-secondary-color); }
.istoric-lista div b { color: var(--bs-body-color); min-width: 110px; font-weight: 500; }

/* programari */
.cal-zile { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; margin-bottom: 1rem; }
.cal-zile::-webkit-scrollbar { display: none; }
.cal-zi { flex: none; width: 58px; padding: 7px 4px; border-radius: 12px; background: var(--bs-paper-bg); border: 1.5px solid var(--bs-border-color); text-align: center; color: var(--bs-body-color); }
.cal-zi small { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--bs-secondary-color); font-weight: 600; }
.cal-zi b { display: block; font-size: 19px; font-weight: 700; line-height: 1.2; }
.cal-zi span { display: block; font-size: 10px; color: var(--bs-secondary-color); }
.cal-zi i { display: block; width: 6px; height: 6px; border-radius: 50%; background: var(--bs-primary); margin: 4px auto 0; opacity: 0; }
.cal-zi.are i { opacity: 1; }
.cal-zi.activ { background: var(--bs-primary); color: #fff; border-color: var(--bs-primary); }
.cal-zi.activ small, .cal-zi.activ span { color: inherit; opacity: .8; } .cal-zi.activ i { background: #fff; }
.cal-zi.inchis { opacity: .4; }
.sloturi { display: grid; gap: 8px; }
.slot { display: grid; grid-template-columns: 56px 1fr; gap: 10px; align-items: start; }
.slot-ora { font-weight: 700; padding-top: 8px; font-variant-numeric: tabular-nums; }
.slot-ora small { display: block; font-size: .72rem; color: var(--bs-secondary-color); font-weight: 500; }
.slot-corp { min-height: 42px; border-top: 1px dashed var(--bs-border-color); padding-top: 6px; display: grid; gap: 6px; }
.slot-corp.trecut { opacity: .55; }
.prog { display: flex; align-items: center; gap: 10px; background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-left: 4px solid var(--bs-info); border-radius: 10px; padding: 8px 12px; cursor: pointer; }
.prog.stare-asteapta, .prog.stare-receptionata, .prog.stare-in_lucru, .prog.stare-asteapta_aprobare { border-left-color: var(--bs-warning); }
.prog.stare-finalizata, .prog.stare-predata { border-left-color: var(--bs-success); } .prog.stare-anulata { border-left-color: var(--bs-secondary); opacity: .6; }
.prog b { font-size: .9rem; } .prog span { font-size: .78rem; color: var(--bs-secondary-color); }
.prog .dreapta { margin-left: auto; text-align: right; }
.slot-liber { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--bs-secondary-color); padding: 7px 10px; border-radius: 8px; border: 1px dashed var(--bs-border-color); width: fit-content; background: none; }
.slot-liber:hover { color: var(--bs-primary); border-color: var(--bs-primary); }
.slot-liber.plin { pointer-events: none; }
@media (min-width: 992px) { .cal-sapt { display: grid; grid-template-columns: 56px repeat(7, 1fr); gap: 6px; } .cal-sapt .cs-cap { text-align: center; padding: 8px 0; font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--bs-secondary-color); border-bottom: 1px solid var(--bs-border-color); } .cal-sapt .cs-cap b { display: block; font-size: 17px; color: var(--bs-heading-color); } .cal-sapt .cs-cap.azi b { color: var(--bs-primary); } .cal-sapt .ora-et { font-size: .76rem; font-weight: 600; color: var(--bs-secondary-color); padding: 10px 4px 0; text-align: right; font-variant-numeric: tabular-nums; } .cal-sapt .celula { min-height: 52px; border-top: 1px dashed var(--bs-border-color); padding: 4px 0; display: grid; gap: 4px; align-content: start; } .cal-sapt .celula.trecut, .cal-sapt .celula.inchis { background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(128,128,128,.07) 6px 7px); } .cal-sapt .celula .prog { padding: 5px 8px; gap: 6px; } .cal-sapt .celula .prog span { display: none; } .cal-sapt .celula .prog b { font-size: .78rem; } .cal-sapt .celula .slot-liber { font-size: .72rem; padding: 4px 6px; border: 0; opacity: 0; } .cal-sapt .celula:hover .slot-liber { opacity: 1; } }

/* administrare */
.lista-admin { display: grid; gap: 8px; }
.rand-admin { display: flex; align-items: center; gap: 12px; background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); padding: 8px 12px; }
.rand-admin.inactiv { opacity: .55; }
.rand-admin .poza { width: 44px; height: 44px; border-radius: 10px; background: var(--bs-secondary-bg); display: grid; place-items: center; color: var(--bs-secondary-color); flex: none; overflow: hidden; font-weight: 700; }
.rand-admin .poza img { width: 100%; height: 100%; object-fit: cover; }
.rand-admin .poza .ic { width: 24px; height: 24px; stroke: currentColor; fill: none; }
.rand-admin .text { flex: 1; min-width: 0; }
.rand-admin .text b { display: block; font-size: .95rem; color: var(--bs-heading-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rand-admin .text > span { display: block; font-size: .82rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rand-admin .pret { font-weight: 700; white-space: nowrap; }
.rand-admin .ordine { display: flex; flex-direction: column; }
.rand-admin .ordine button { width: 26px; height: 20px; display: grid; place-items: center; color: var(--bs-secondary-color); border: 0; background: none; border-radius: 6px; padding: 0; }
.rand-admin .ordine button:hover { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
.rand-admin .act { display: flex; gap: 2px; }
.rand-admin form { margin: 0; display: inline; }
.sectiune-cap { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; margin: 1.1rem 0 .5rem; }
.icoane-alegere { display: flex; flex-wrap: wrap; gap: 6px; }
.icoane-alegere input { display: none; }
.icoane-alegere span { width: 42px; height: 42px; border-radius: 10px; border: 1.5px solid var(--bs-border-color); display: grid; place-items: center; cursor: pointer; color: var(--bs-body-color); }
.icoane-alegere span .ic { width: 22px; height: 22px; stroke: currentColor; fill: none; }
.icoane-alegere input:checked + span { border-color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .1); color: var(--bs-primary); }
.preturi-lista { display: grid; gap: 6px; }
.preturi-lista .rp { display: grid; grid-template-columns: 1fr 72px 72px 96px 40px; gap: 6px; align-items: center; }
.poza-camp { display: flex; align-items: center; gap: 12px; }
.poza-camp .prev { width: 70px; height: 70px; border-radius: 12px; border: 1px dashed var(--bs-border-color); background: var(--bs-secondary-bg); display: grid; place-items: center; overflow: hidden; color: var(--bs-secondary-color); flex: none; }
.poza-camp .prev img { width: 100%; height: 100%; object-fit: cover; }
.poza-camp .prev .ic { width: 24px; height: 24px; stroke: currentColor; fill: none; }
.kiosk-stare { width: 10px; height: 10px; border-radius: 50%; background: var(--bs-secondary); display: inline-block; margin-right: 6px; }
.kiosk-stare.online { background: var(--bs-success); box-shadow: 0 0 0 3px rgba(var(--bs-success-rgb), .2); }
.cod-mare { font-family: ui-monospace, Menlo, monospace; font-size: 1.1rem; letter-spacing: .2em; font-weight: 700; }
.program-grila .rz { display: grid; grid-template-columns: 90px 1fr 1fr auto; gap: 8px; align-items: center; margin-bottom: 8px; }
.taburi-admin { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--bs-border-color); margin-bottom: 1.25rem; }
.taburi-admin::-webkit-scrollbar { display: none; }
.taburi-admin a { flex: none; padding: 9px 13px; text-decoration: none; font-weight: 500; font-size: .9rem; color: var(--bs-secondary-color); border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.taburi-admin a.activ { color: var(--bs-primary); border-bottom-color: var(--bs-primary); }
.paginare { display: flex; gap: 6px; justify-content: center; margin-top: 1rem; flex-wrap: wrap; }
.filtre-stare { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 10px; scrollbar-width: none; }
.filtre-stare::-webkit-scrollbar { display: none; }
.filtre-stare .btn { flex: none; }
.rand-click { cursor: pointer; }
/* campuri cu eticheta care imbraca inputul (administrare) */
label.ak-camp { display: block; margin-bottom: 1rem; font-size: .8125rem; color: var(--bs-heading-color); font-weight: 500; }
label.ak-camp > .form-control, label.ak-camp > .form-select, label.ak-camp > .camp-parola, label.ak-camp > .poza-camp, label.ak-camp > .icoane-alegere { margin-top: .35rem; }
label.ak-camp > .form-control { font-weight: 400; }
.ak-rand > label.ak-camp { margin-bottom: 0; }
.ak-rand { margin-bottom: 1rem; }
@media (min-width: 768px) { .ak-rand > label.ak-camp { width: 50%; } .ak-rand-3 > label.ak-camp { width: 33.333%; } .ak-rand-4 > label.ak-camp { width: 25%; } }
.ak-rand > label.ak-camp, .ak-rand > .col-md-6 { padding-left: calc(var(--bs-gutter-x) * .5); flex: 0 0 auto; }
.ak-rand > label.ak-camp { width: 100%; }
@media (min-width: 768px) { .ak-rand > label.ak-camp { width: 50%; } .ak-rand-3 > label.ak-camp { width: 33.333%; } .ak-rand-4 > label.ak-camp { width: 25%; } }
.of-pasi li { margin-bottom: .75rem; }
.preturi-lista .rp .form-select-sm, .preturi-lista .rp .form-control-sm { min-height: 34px; }
.taburi-admin { margin-top: -.25rem; }
.rand-admin .form-switch { padding-left: 0; display: flex; }
.rand-admin .form-switch .form-check-input { margin-left: 0; }
@media (min-width: 992px) { .filtre-stare { display: none !important; } }
.cs-cap { line-height: 1.2; }
form.card > .btn { align-self: flex-start; }
.rand-admin .poza { color: var(--bs-body-color); font-size: 1rem; }
.rand-admin .poza > svg.ic, .icoane-alegere svg.ic, .poza-camp .prev > svg.ic { width: 24px; height: 24px; stroke: currentColor; fill: none; display: block; }
.rand-admin .poza > i.icon-base { font-size: 22px; }
.ascuns { display: none !important; }

/* ======================= audit de design: corecturi ======================= */
/* tabla receptiei: coloanele sunt carduri, comenzile sunt carduri in card */
.coloana { background: var(--bs-paper-bg); border-radius: var(--bs-border-radius-lg); box-shadow: var(--bs-box-shadow-xs, 0 1px 2px rgba(0,0,0,.08)); padding: .9rem .9rem .35rem; min-height: 160px; }
.coloana-cap { padding: 0 .1rem .75rem; }
.cmd { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); box-shadow: none !important; margin-bottom: .6rem; }
.cmd:hover { border-color: var(--bs-primary); transform: none; }
[data-bs-theme="dark"] .cmd { background: rgba(0,0,0,.18); }
.gol-coloana { padding: 1.2rem .5rem 1.6rem; }
/* butoanele X din liniile fisei: fara caseta, mici, pe aceeasi linie cu pretul */
.linie .btn.ak-x { width: 28px !important; height: 28px !important; min-width: 0 !important; min-height: 0 !important; block-size: 28px !important; inline-size: 28px !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; color: var(--bs-secondary-color); vertical-align: middle; margin-left: .25rem; }
.linie .btn.ak-x:hover { color: var(--bs-danger); }
.linie .btn.ak-x .icon-base { font-size: 16px; }
/* listele din administrare nu depasesc ecranul */
.lista-admin { grid-template-columns: minmax(0, 1fr); }
.rand-admin { min-width: 0; }
.rand-admin .text b .badge { vertical-align: middle; margin-left: .35rem; font-weight: 500; }
/* antetul paginii pe telefon: iconita + butonul principal pe acelasi rand */
@media (max-width: 575.98px) {
  .of-antet .ak-actiuni { width: 100%; flex-direction: row !important; align-items: stretch; }
  .of-antet .ak-actiuni > .btn { width: auto; }
  .of-antet .ak-actiuni > .btn:not(.btn-icon) { flex: 1 1 auto; }
  .of-antet .ak-actiuni > .of-seg { flex: 1 1 auto; justify-content: center; }
  .pn-kpi .nr { font-size: 1.25rem; } .pn-kpi .et { font-size: .78rem; } .pn-kpi .ic { width: 40px; height: 40px; font-size: 20px; }
  .rand-admin { gap: 8px; padding: 8px; }
  .rand-admin .poza { width: 38px; height: 38px; }
  .rand-admin .pret { font-size: .9rem; }
}
/* navigatia calendarului intr-un singur rand */
.cal-nav { display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.cal-nav h5 { flex: 1; min-width: 0; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* randul unui kiosk */
.rand-kiosk { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.rand-kiosk .text { flex: 1 1 240px; }
.rand-kiosk .cod { text-align: right; }
.rand-kiosk .cod small { display: block; color: var(--bs-secondary-color); font-size: .78rem; }
@media (max-width: 575.98px) { .rand-kiosk .cod { text-align: left; } .rand-kiosk .act { width: 100%; } }
/* jante: plăcuțe egale */
.jante-grila { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.jante-grila .rand-admin { padding: 6px 6px 6px 12px; gap: 8px; }
.jante-grila .rand-admin .text b { font-size: 1rem; }
/* formulare mici de adaugare (jante, kiosk): input + buton, aceeasi inaltime */
.form-adauga { display: flex; gap: 8px; align-items: stretch; }
.form-adauga .form-control { min-width: 0; }
.form-adauga .btn { white-space: nowrap; }
@media (max-width: 575.98px) { .form-adauga { width: 100%; } .form-adauga .form-control { flex: 1; } }
/* etichete de sectiune in carduri de formular */
.card-body > .sectiune-cap:first-child { margin-top: 0; }
.bloc { background: var(--bs-body-bg); }
[data-bs-theme="dark"] .bloc { background: rgba(255,255,255,.04); }
@media (max-width: 575.98px) {
  .of-antet .ak-actiuni > .of-seg { flex: 0 0 auto; }
  .of-seg a { padding: 8px 10px; }
}
.muta-la { display: inline-flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.muta-la .form-control, .muta-la .flatpickr-input { width: 230px !important; }

/* ======================= administrare: meniu lateral grupat + tabele ======================= */
.of-cont-nav .grup { font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; padding: 14px 12px 4px; }
.of-cont-nav .grup:first-child { padding-top: 0; }
@media (max-width: 767.98px) { .of-cont-nav .grup { display: none; } }
.ak-cont { grid-template-columns: 230px minmax(0, 1fr); }
.tabel-admin th { white-space: nowrap; }
.tabel-admin td { vertical-align: middle; }
.tabel-admin .maner { width: 34px; color: var(--bs-secondary-color); cursor: grab; text-align: center; padding-left: .5rem; padding-right: 0; }
.tabel-admin .maner .ti { font-size: 20px; }
.tabel-admin tr.tras { opacity: .4; }
.tabel-admin tr.peste td { border-top: 2px solid var(--bs-primary); }
.tabel-admin tr.inactiv td:not(.actiuni) { opacity: .55; }
.tabel-admin .poza { width: 40px; height: 40px; border-radius: 10px; background: var(--bs-secondary-bg); display: grid; place-items: center; color: var(--bs-body-color); overflow: hidden; flex: none; }
.tabel-admin .poza img { width: 100%; height: 100%; object-fit: cover; }
.tabel-admin .poza svg.ic { width: 22px; height: 22px; stroke: currentColor; fill: none; }
.tabel-admin .poza .icon-base { font-size: 20px; }
.tabel-admin .titlu-rand { font-weight: 600; color: var(--bs-heading-color); }
.tabel-admin .sub-rand { font-size: .8rem; color: var(--bs-secondary-color); }
.tabel-admin td.actiuni { width: 56px; text-align: right; }
.tabel-admin .dropdown-menu form { margin: 0; }
.tabel-admin .nr-ordine { width: 44px; text-align: center; color: var(--bs-secondary-color); font-variant-numeric: tabular-nums; }
.card-lista .card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.card-lista .card-header h5 { margin: 0; }
.card-lista + .card-lista { margin-top: 1.5rem; }
.tabel-admin td.pret { white-space: nowrap; font-weight: 600; text-align: right; }
.tabel-admin .badge { font-weight: 500; }

/* ======================= recepție: tabla ca la programele de service ======================= */
.strip-stat { display: flex; flex-wrap: wrap; }
.strip-stat > div { flex: 1 1 160px; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-right: 1px solid var(--bs-border-color); min-width: 0; }
.strip-stat > div:last-child { border-right: 0; }
.strip-stat .ic { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; font-size: 20px; flex: none; }
.strip-stat .nr { font-size: 1.35rem; font-weight: 700; line-height: 1.1; color: var(--bs-heading-color); }
.strip-stat .et { font-size: .78rem; color: var(--bs-secondary-color); white-space: nowrap; }
@media (max-width: 767.98px) { .strip-stat > div { flex-basis: 50%; border-right: 0; padding: 12px 14px; } .strip-stat > div:nth-child(odd) { border-right: 1px solid var(--bs-border-color); } .strip-stat > div:nth-child(-n+2) { border-bottom: 1px solid var(--bs-border-color); } }
.bara-tabla { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 1rem; }
.bara-tabla .cauta { position: relative; flex: 1 1 260px; max-width: 420px; }
.bara-tabla .cauta .ti { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--bs-secondary-color); }
.bara-tabla .cauta input { padding-left: 38px; }
.tabla-wrap { overflow-x: auto; overflow-y: hidden; padding-bottom: 6px; }
.tabla { display: flex; gap: 12px; align-items: stretch; min-width: max-content; height: calc(100vh - 335px); min-height: 440px; }
.coloana { width: 272px; flex: none; display: flex; flex-direction: column; background: var(--bs-paper-bg); border-radius: var(--bs-border-radius-lg); box-shadow: var(--bs-box-shadow-xs, 0 1px 2px rgba(0,0,0,.08)); padding: 0; min-height: 0; }
.coloana.programata { background: transparent; border: 1px dashed var(--bs-border-color); box-shadow: none; }
.coloana-cap { display: flex; align-items: center; gap: 8px; padding: 12px 14px 10px; font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--bs-secondary-color); border-bottom: 1px solid var(--bs-border-color); flex: none; }
.coloana-cap .badge { margin-left: auto; }
.coloana-corp { flex: 1; min-height: 0; overflow-y: auto; padding: 10px 10px 4px; scrollbar-width: thin; }
.cmd { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 10px; margin-bottom: 8px; cursor: pointer; box-shadow: none !important; transition: border-color .15s; }
.cmd:hover { border-color: var(--bs-primary); transform: none; }
[data-bs-theme="dark"] .cmd { background: rgba(0,0,0,.18); }
.cmd .card-body { padding: 10px 12px; }
.cmd-sus { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.cmd-nr { font-size: .95rem; font-weight: 700; color: var(--bs-heading-color); line-height: 1; }
.cmd-nr i { font-style: normal; color: var(--bs-primary); }
.cmd-timp { margin-left: auto; font-size: .74rem; color: var(--bs-secondary-color); white-space: nowrap; display: inline-flex; align-items: center; gap: 3px; }
.cmd-timp.tarziu { color: var(--bs-danger); }
.cmd-masina { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; min-width: 0; }
.cmd-masina .desc { font-size: .8rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmd-servicii { font-size: .82rem; line-height: 1.35; color: var(--bs-body-color); margin-bottom: 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cmd-jos { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cmd-total { font-weight: 700; font-size: .9rem; }
.cmd-semne { display: inline-flex; gap: 6px; color: var(--bs-secondary-color); font-size: 15px; }
.cmd-semne .text-danger { color: var(--bs-danger) !important; }
.gol-coloana { text-align: center; color: var(--bs-secondary-color); padding: 2rem .5rem; font-size: .82rem; }
.gol-coloana .ti { font-size: 28px; display: block; margin: 0 auto 6px; opacity: .5; }
.lista-comenzi .table td { vertical-align: middle; }
.lista-comenzi .grup-stare td { background: var(--bs-secondary-bg); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--bs-secondary-color); padding-top: 6px; padding-bottom: 6px; }
@media (max-width: 991.98px) {
  .tabla-wrap { overflow: visible; }
  .tabla { display: block; height: auto; min-height: 0; min-width: 0; }
  .coloana { width: auto; display: none; }
  .coloana.vizibila { display: flex; }
  .coloana-corp { overflow: visible; }
  .coloana-cap { display: none; }
  .filtre-stare { display: flex; }
}
@media (min-width: 992px) { .filtre-stare { display: none !important; } }

/* bifele ca optiuni in chenar (premium, nu aruncate in pagina) */
.bifa-card { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0 12px; min-height: 46px; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-paper-bg); cursor: pointer; transition: border-color .15s, background .15s; width: 100%; }
.bifa-card:hover { border-color: var(--bs-secondary-color); }
.bifa-card:has(input:checked) { border-color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .06); }
.bifa-card .form-check-input { margin: 0; flex: 0 0 auto; width: 1.15rem; height: 1.15rem; }
.bifa-card .form-check-label { margin: 0; line-height: 1.3; cursor: pointer; flex: 1; min-width: 0; }
.bifa-card .form-check-label .text-body-secondary { font-size: .85em; }
.modal .bifa-card { background: var(--bs-body-bg); }
[data-bs-theme="dark"] .bifa-card { background: rgba(255,255,255,.03); }
[data-bs-theme="dark"] .bifa-card:has(input:checked) { background: rgba(var(--bs-primary-rgb), .16); }
.poza-camp { align-items: center; }
.poza-camp .prev .icon-base { font-size: 24px; }
@media (max-width: 575.98px) { .tabel-admin .titlu-rand .badge { display: none; } .tabel-admin .sub-rand { display: none; } .tabel-admin td.pret .sub-rand { display: none; } .card-lista .card-header .btn-sm { white-space: nowrap; } }
.lista-comenzi .grup-stare td { background: var(--bs-body-bg); color: var(--bs-heading-color); }
[data-bs-theme="dark"] .lista-comenzi .grup-stare td { background: rgba(0,0,0,.18); }
@media (max-width: 575.98px) { .tabel-admin .poza { display: none; } .tabel-admin td, .tabel-admin th { padding-left: .5rem; padding-right: .5rem; } .tabel-admin td.actiuni { width: 40px; } .tabel-admin .maner { width: 26px; padding-left: .25rem; } }

/* tabla: coloane fluide (umplu ecranul cand incap), derulare doar cand nu incap, restrangere */
.tabla { min-width: 0; width: 100%; }
.coloana { flex: 1 1 250px; min-width: 250px; width: auto; max-width: 340px; }
.tabla-wrap { overflow-x: auto; }
@media (min-width: 992px) { .tabla { min-width: 0; } }
.coloana.restransa { flex: 0 0 48px; min-width: 48px; width: 48px; }
.coloana.restransa .coloana-corp { display: none; }
.coloana.restransa .coloana-cap { flex-direction: column; justify-content: flex-start; gap: 10px; height: 100%; padding: 12px 0; border-bottom: 0; }
.coloana.restransa .coloana-cap > span:nth-child(2) { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.coloana.restransa .coloana-cap .badge { margin: 0; }
.coloana-cap .restrange { margin-left: 2px; width: 24px; height: 24px; display: grid; place-items: center; border-radius: 6px; color: var(--bs-secondary-color); background: none; border: 0; padding: 0; flex: none; }
.coloana-cap .restrange:hover { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
.coloana.restransa .coloana-cap .restrange { order: -1; transform: rotate(180deg); }
.coloana-cap > span:nth-child(2) { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* antetul cardului: numar + placa + timp pe UN rand, garantat */
.cmd-sus { flex-wrap: nowrap; gap: 6px; }
.cmd-nr { font-size: .86rem; flex: none; letter-spacing: -.01em; }
.cmd .placa { font-size: .74rem; letter-spacing: .03em; flex: 0 1 auto; min-width: 0; overflow: hidden; }
.cmd .placa span { padding: 3px 6px 2px; white-space: nowrap; }
.cmd-timp { font-size: .7rem; flex: none; }
.cmd-timp .icon-base { font-size: 13px; }
@media (max-width: 991.98px) { .coloana { max-width: none; min-width: 0; } .coloana.restransa { flex: none; width: auto; } .coloana.restransa .coloana-corp { display: block; } .coloana-cap .restrange { display: none; } }
/* recepția folosește toată lățimea ecranului (nu containerul de 1440px), ca tabla să încapă pe monitoare mari */
body.pagina-plina .content-wrapper > .container-xxl { max-width: none; }

/* ======================= stari: culori proprii, distincte, vizibile pe orice fundal ======================= */
.punct.galben { background: #f0b429; } .punct.albastru { background: #3b82f6; } .punct.portocaliu { background: #f97316; } .punct.mov { background: #a855f7; } .punct.verde { background: #22c55e; } .punct.gri { background: #9ca3af; } .punct.rosu { background: #ef4444; }
.badge.st-galben { color: #b45309; background: rgba(240,180,41,.18); } .badge.st-albastru { color: #1d4ed8; background: rgba(59,130,246,.16); } .badge.st-portocaliu { color: #c2410c; background: rgba(249,115,22,.16); } .badge.st-mov { color: #7e22ce; background: rgba(168,85,247,.16); } .badge.st-verde { color: #15803d; background: rgba(34,197,94,.16); } .badge.st-gri { color: #4b5563; background: rgba(156,163,175,.22); } .badge.st-rosu { color: #b91c1c; background: rgba(239,68,68,.16); }
[data-bs-theme="dark"] .badge.st-galben { color: #fbbf24; } [data-bs-theme="dark"] .badge.st-albastru { color: #93c5fd; } [data-bs-theme="dark"] .badge.st-portocaliu { color: #fdba74; } [data-bs-theme="dark"] .badge.st-mov { color: #d8b4fe; } [data-bs-theme="dark"] .badge.st-verde { color: #86efac; } [data-bs-theme="dark"] .badge.st-gri { color: #d1d5db; background: rgba(156,163,175,.18); } [data-bs-theme="dark"] .badge.st-rosu { color: #fca5a5; }
.stari-grila .btn.btn-primary .punct { background: #fff; box-shadow: 0 0 0 2px rgba(255,255,255,.35); }
.stari-grila .btn { gap: 6px; }
/* antetul fisei comenzii */
.ak-modal-cap { align-items: center; gap: 12px; }
.ak-modal-cap .titlu { min-width: 0; flex: 1; }
.ak-modal-cap .modal-title { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; line-height: 1.2; }
.ak-modal-cap .modal-title .cmd-nr { font-size: 1.15rem; }
.ak-modal-cap .sub { font-size: .8rem; color: var(--bs-secondary-color); margin-top: 3px; }
.ak-modal-cap .actiuni { display: flex; align-items: center; gap: 8px; flex: none; }
.ak-modal-cap .btn-close { margin: 0; position: static; }
/* blocul „anunta clientul" */
.anunta-client { border: 1px solid rgba(34,197,94,.45); background: rgba(34,197,94,.08); border-radius: var(--bs-border-radius-lg); padding: 12px 14px; margin-bottom: 1rem; }
.anunta-client .cap { display: flex; align-items: center; gap: 10px; }
.anunta-client .cap .icon-base { font-size: 22px; color: #22c55e; }
.anunta-client .cap b { display: block; }
.anunta-client .cap small { color: var(--bs-secondary-color); }
.anunta-client .butoane { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
/* tabla: derulare orizontala usoara */
.tabla-wrap { scroll-behavior: smooth; cursor: default; }
.tabla-wrap.tragere { cursor: grabbing; user-select: none; scroll-behavior: auto; }
.coloana-cap { cursor: grab; }
.bara-tabla .nav-tabla { display: none; gap: 4px; }
@media (min-width: 992px) { .bara-tabla .nav-tabla { display: flex; } }

/* regasirea clientului / masinii in formulare */
.sugestii { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 1060; background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-radius: 10px; box-shadow: var(--bs-box-shadow, 0 8px 24px rgba(0,0,0,.25)); max-height: 280px; overflow-y: auto; }
.sugestii button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 9px 12px; background: none; border: 0; border-bottom: 1px solid var(--bs-border-color); color: var(--bs-body-color); }
.sugestii button:last-child { border-bottom: 0; }
.sugestii button:hover, .sugestii button.activ { background: rgba(var(--bs-primary-rgb), .08); }
.sugestii .placa { flex: none; }
.sugestii .t { flex: 1; min-width: 0; }
.sugestii .t b { display: block; font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sugestii .t span { display: block; font-size: .78rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sugestii .v { flex: none; font-size: .74rem; color: var(--bs-secondary-color); text-align: right; }
.col-sugestii { position: relative; }
.client-regasit { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.4); font-size: .86rem; }
.client-regasit .icon-base { color: #22c55e; font-size: 20px; }
.client-regasit .btn { margin-left: auto; }

/* ======================= programator: calendar pe ore ======================= */
.cal-aranjare { display: grid; grid-template-columns: 1fr; gap: 1rem; align-items: start; }
@media (min-width: 992px) { .cal-aranjare { grid-template-columns: 260px minmax(0, 1fr); } }
.cal-lateral { display: none; }
@media (min-width: 992px) { .cal-lateral { display: block; position: sticky; top: 90px; } }
.mini-cap { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.mini-cap b { font-size: .9rem; text-transform: capitalize; }
.mini-grila { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.mini-grila .zc { text-align: center; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--bs-secondary-color); padding: 4px 0; font-weight: 600; }
.mini-grila button { position: relative; height: 32px; border: 0; background: none; border-radius: 8px; font-size: .82rem; color: var(--bs-body-color); }
.mini-grila button.alta { color: var(--bs-secondary-color); opacity: .45; }
.mini-grila button.inchis { color: var(--bs-secondary-color); opacity: .5; text-decoration: line-through; }
.mini-grila button:hover { background: var(--bs-secondary-bg); }
.mini-grila button.azi { font-weight: 700; color: var(--bs-primary); }
.mini-grila button.ales { background: var(--bs-primary); color: #fff; font-weight: 600; }
.mini-grila button i { position: absolute; left: 50%; bottom: 3px; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: var(--bs-primary); }
.mini-grila button.ales i { background: #fff; }
.cal-rezumat { display: grid; gap: 8px; margin-bottom: 12px; }
.cal-rezumat div { display: flex; justify-content: space-between; font-size: .86rem; }
.cal-rezumat b { font-weight: 700; }
.cal-legenda { display: grid; gap: 6px; font-size: .78rem; color: var(--bs-secondary-color); border-top: 1px solid var(--bs-border-color); padding-top: 10px; }
.cal-legenda span { display: flex; align-items: center; gap: 8px; }
.cal-legenda .punct { width: 8px; height: 8px; }
.cal-principal { overflow: hidden; }
.cal-nav { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--bs-border-color); flex-wrap: wrap; }
.cal-nav h5 { margin: 0 0 0 6px; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-nav .cal-zile { width: 100%; margin: 8px 0 0; padding-bottom: 0; }
.cal-corp { position: relative; }
/* grila pe ore */
.grila-ore { display: grid; grid-template-columns: 56px repeat(var(--nz, 7), minmax(0, 1fr)); }
.grila-ore.o-zi { grid-template-columns: 56px minmax(0, 1fr); }
.go-cap { position: sticky; top: 0; z-index: 3; background: var(--bs-paper-bg); border-bottom: 1px solid var(--bs-border-color); padding: 10px 6px; text-align: center; }
.go-cap small { display: block; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; }
.go-cap b { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font-size: 1rem; font-weight: 700; margin-top: 2px; }
.go-cap.azi b { background: var(--bs-primary); color: #fff; }
.go-cap .n { display: block; font-size: .68rem; color: var(--bs-secondary-color); margin-top: 1px; }
.go-cap.inchis small, .go-cap.inchis b { opacity: .45; }
.go-ora { position: relative; height: var(--h); font-size: .7rem; color: var(--bs-secondary-color); text-align: right; padding-right: 8px; font-variant-numeric: tabular-nums; }
.go-ora span { position: absolute; right: 8px; top: -7px; }
.go-col { position: relative; border-left: 1px solid var(--bs-border-color); }
.go-col.inchis { background: repeating-linear-gradient(135deg, transparent 0 8px, rgba(128,128,128,.06) 8px 9px); }
.go-cel { height: var(--h); border-top: 1px solid var(--bs-border-color); position: relative; }
.go-cel.jum { border-top-style: dashed; border-top-color: color-mix(in srgb, var(--bs-border-color) 55%, transparent); }
.go-cel.trecut { background: rgba(128,128,128,.045); }
.go-cel.liber:hover { background: rgba(var(--bs-primary-rgb), .07); cursor: pointer; }
.go-cel.liber:hover::after { content: "+ Programare"; position: absolute; left: 8px; top: 50%; transform: translateY(-50%); font-size: .72rem; color: var(--bs-primary); font-weight: 600; pointer-events: none; }
.go-cel.plin { background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(239,68,68,.07) 6px 7px); }
.go-cel.peste { background: rgba(var(--bs-primary-rgb), .16); outline: 2px dashed var(--bs-primary); outline-offset: -2px; }
.go-bloc { position: absolute; left: 4px; right: 4px; border-radius: 8px; padding: 5px 8px; font-size: .76rem; line-height: 1.25; overflow: hidden; cursor: pointer; border-left: 4px solid #3b82f6; background: rgba(59,130,246,.14); color: var(--bs-heading-color); box-shadow: 0 1px 2px rgba(0,0,0,.12); transition: box-shadow .15s, transform .12s; z-index: 2; }
.go-bloc:hover { box-shadow: 0 6px 16px rgba(0,0,0,.25); transform: translateY(-1px); z-index: 4; }
.go-bloc.tras { opacity: .45; }
.go-bloc b { display: block; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.go-bloc span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--bs-secondary-color); }
.go-bloc .ora { font-size: .68rem; color: var(--bs-secondary-color); }
.go-bloc.s-galben { border-left-color: #f0b429; background: rgba(240,180,41,.14); }
.go-bloc.s-verde { border-left-color: #22c55e; background: rgba(34,197,94,.14); }
.go-bloc.s-gri { border-left-color: #9ca3af; background: rgba(156,163,175,.14); opacity: .7; }
.go-bloc.s-portocaliu { border-left-color: #f97316; background: rgba(249,115,22,.14); }
.go-bloc.s-mov { border-left-color: #a855f7; background: rgba(168,85,247,.14); }
.go-bloc.doi { left: calc(50% + 2px); } .go-bloc.unu-din-doi { right: calc(50% + 2px); }
.go-acum { position: absolute; left: 0; right: 0; height: 2px; background: var(--bs-primary); z-index: 3; pointer-events: none; }
.go-acum::before { content: ""; position: absolute; left: -5px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: var(--bs-primary); }
.o-zi .go-bloc { padding: 8px 12px; font-size: .86rem; }
.o-zi .go-bloc b { font-size: .95rem; }
.cal-derulant { max-height: calc(100vh - 290px); min-height: 420px; overflow-y: auto; scrollbar-width: thin; }
.cal-gol { text-align: center; color: var(--bs-secondary-color); padding: 3rem 1rem; }
.cal-gol .icon-base { font-size: 36px; display: block; margin: 0 auto 8px; opacity: .5; }
/* lista */
.lista-prog .zi-grup td { background: var(--bs-body-bg); font-weight: 600; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-secondary-color); padding: 8px 16px; }
[data-bs-theme="dark"] .lista-prog .zi-grup td { background: rgba(0,0,0,.18); }
.lista-prog td { vertical-align: middle; }
.lista-prog .ora-mare { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }

.go-ore, .go-col { padding-top: 8px; }
input.text-uppercase::placeholder { text-transform: none; }
.grila-ore .go-bloc b { letter-spacing: .02em; }
@media (max-width: 991.98px) { .o-zi .go-cap { display: none; } .grila-ore.o-zi { grid-template-columns: 48px minmax(0, 1fr); } .cal-derulant { max-height: none; } .cal-nav h5 { font-size: 1rem; } }
@media (max-width: 575.98px) { .of-antet .ak-actiuni { flex-wrap: nowrap; } .of-antet .ak-actiuni > .btn:not(.btn-icon) { flex: 1 1 auto; min-width: 0; } .of-antet .ak-actiuni > .btn-icon { flex: 0 0 auto; } }

/* ======================= FullCalendar pe tema Vuexy ======================= */
#calendar { --fc-border-color: var(--bs-border-color); --fc-page-bg-color: transparent; --fc-neutral-bg-color: var(--bs-secondary-bg); --fc-today-bg-color: rgba(var(--bs-primary-rgb), .06); --fc-now-indicator-color: var(--bs-primary); --fc-event-border-color: transparent; --fc-list-event-hover-bg-color: var(--bs-secondary-bg); --fc-non-business-color: rgba(128,128,128,.07); --fc-highlight-color: rgba(var(--bs-primary-rgb), .16); --fc-small-font-size: .78rem; font-size: .86rem; }
#calendar .fc-toolbar { gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
#calendar .fc-toolbar-title { font-size: 1.05rem; font-weight: 700; color: var(--bs-heading-color); text-transform: capitalize; }
#calendar .fc-button { background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); color: var(--bs-body-color); border-radius: 8px; padding: 6px 12px; font-size: .84rem; font-weight: 500; box-shadow: none !important; text-transform: none; }
#calendar .fc-button:hover { background: var(--bs-secondary-bg); }
#calendar .fc-button-primary:not(:disabled).fc-button-active, #calendar .fc-button-primary:not(:disabled):active { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; }
#calendar .fc-button-group > .fc-button { border-radius: 0; } #calendar .fc-button-group > .fc-button:first-child { border-radius: 8px 0 0 8px; } #calendar .fc-button-group > .fc-button:last-child { border-radius: 0 8px 8px 0; }
#calendar .fc-button .fc-icon { font-size: 1rem; vertical-align: middle; }
#calendar .fc-col-header-cell { padding: 8px 0; background: var(--bs-paper-bg); }
#calendar .fc-col-header-cell-cushion { color: var(--bs-secondary-color); text-decoration: none; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; }
#calendar .fc-col-header-cell-cushion b { font-size: 1rem; letter-spacing: 0; color: var(--bs-heading-color); width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; }
#calendar .fc-day-today .fc-col-header-cell-cushion b { background: var(--bs-primary); color: #fff; }
#calendar .fc-col-header-cell-cushion small { font-weight: 500; letter-spacing: 0; text-transform: none; font-size: .68rem; }
#calendar .fc-timegrid-slot { height: 2.6em; }
#calendar .fc-timegrid-slot-label-cushion, #calendar .fc-list-day-side-text { color: var(--bs-secondary-color); font-size: .72rem; font-variant-numeric: tabular-nums; }
#calendar .fc-timegrid-slot-minor { border-top-style: dashed; }
#calendar .fc-timegrid-now-indicator-line { border-width: 2px 0 0; }
#calendar .fc-timegrid-now-indicator-arrow { border-width: 6px 0 6px 6px; }
#calendar .fc-v-event, #calendar .fc-daygrid-event { border-radius: 8px; border: 0; border-left: 4px solid var(--c, #3b82f6); background: color-mix(in srgb, var(--c, #3b82f6) 16%, var(--bs-paper-bg)); color: var(--bs-heading-color); box-shadow: 0 1px 2px rgba(0,0,0,.12); padding: 2px 4px; }
#calendar .fc-v-event:hover { box-shadow: 0 6px 16px rgba(0,0,0,.25); }
#calendar .fc-event-main { color: inherit; }
#calendar .ev b { display: block; font-size: .8rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#calendar .ev span { display: block; font-size: .72rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#calendar .ev small { font-size: .68rem; color: var(--bs-secondary-color); }
#calendar .fc-event-mirror { opacity: .7; }
#calendar .fc-list { border-radius: 10px; overflow: hidden; }
#calendar .fc-list-day-cushion { background: var(--bs-secondary-bg); }
#calendar .fc-list-day-text { color: var(--bs-heading-color); font-weight: 600; text-decoration: none; text-transform: capitalize; }
#calendar .fc-list-event td { padding: 10px 12px; }
#calendar .fc-list-event-dot { border-color: var(--c, #3b82f6); }
#calendar .fc-list-event-title b { font-weight: 700; }
#calendar .fc-list-event-title span { color: var(--bs-secondary-color); font-size: .82rem; margin-left: 6px; }
#calendar .fc-list-empty { background: transparent; color: var(--bs-secondary-color); }
#calendar .fc-timegrid-event-harness-inset .fc-timegrid-event { box-shadow: none; }
#calendar .fc-scrollgrid { border-radius: 10px; overflow: hidden; }
#calendar .fc-timegrid-axis, #calendar .fc-timegrid-slot-label { border-right: 0; }
#calendar .fc-timegrid-col.fc-day-past { background: rgba(128,128,128,.04); }
#calendar .fc-timegrid-col.fc-day-future.fc-day-sun { background: var(--fc-non-business-color); }
#calendar .fc-highlight { border-radius: 6px; }
@media (max-width: 767.98px) {
  #calendar .fc-toolbar { flex-direction: column; align-items: stretch; }
  #calendar .fc-toolbar-chunk { display: flex; justify-content: space-between; gap: 6px; }
  #calendar .fc-toolbar-chunk:nth-child(2) { order: -1; justify-content: center; }
  #calendar .fc-toolbar-title { font-size: 1rem; }
  #calendar .fc-timegrid-slot { height: 3.2em; }
  #calendar .fc-timegrid-axis-cushion, #calendar .fc-timegrid-slot-label-cushion { font-size: .7rem; }
  #calendar .fc-button { padding: 8px 12px; min-height: 40px; }
  #calendar .ev b { font-size: .86rem; }
}
#calendar .fc-list-day-cushion { background: var(--bs-body-bg); }
[data-bs-theme="dark"] #calendar .fc-list-day-cushion { background: rgba(0,0,0,.2); }
#calendar .fc-list-event:hover td { background: var(--bs-secondary-bg); }
#calendar .fc-timegrid-col.fc-day-today { background: rgba(var(--bs-primary-rgb), .04); }
@media (max-width: 767.98px) {
  #calendar .fc-toolbar { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
  #calendar .fc-toolbar-chunk:nth-child(2) { order: -1; width: 100%; justify-content: center; margin-bottom: 8px; }
  #calendar .fc-timeGridDay-view .fc-col-header { display: none; }
  #calendar .fc-timeGridDay-view .fc-scrollgrid-section-header { display: none; }
}
/* blocurile din calendar: fara suprapunere, margini intre ele, mai lizibile */
#calendar .fc-timegrid-event-harness { margin-right: 3px; }
#calendar .fc-timegrid-event-harness + .fc-timegrid-event-harness { margin-left: 3px; }
#calendar .fc-v-event { background: color-mix(in srgb, var(--c, #3b82f6) 24%, var(--bs-paper-bg)); border-left-width: 3px; }
#calendar .fc-v-event .ev b { color: var(--bs-heading-color); }
#calendar .fc-v-event .ev span, #calendar .fc-v-event .ev small { color: color-mix(in srgb, var(--bs-body-color) 80%, transparent); }
#calendar .fc-timegrid-event .fc-event-main { padding: 1px 2px; }
#calendar .fc-timegrid-col-events { margin: 0 4px 0 2px; }
#calendar .fc-timeGridDay-view .fc-col-header-cell { padding: 6px 0; }
#calendar .fc-timeGridDay-view .fc-col-header-cell-cushion b { display: none; }
#calendar .fc-timeGridDay-view .fc-col-header-cell-cushion { flex-direction: row; gap: 8px; }
#calendar .fc-timegrid-slot { height: 2.3em; }
#calendar .ev small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
/* marca: anvelopa + wordmark */
.ak-marca { gap: 10px; }
.ak-logo { height: 36px; width: 36px; border-radius: 50%; }
.ak-wordmark { height: 22px; width: auto; display: block; }
.ak-wordmark.is-dark { display: none; }
[data-bs-theme="dark"] .ak-wordmark.is-light { display: none; }
[data-bs-theme="dark"] .ak-wordmark.is-dark { display: block; }
.pagina-autentificare .ak-logo { height: 56px; width: 56px; }
.pagina-autentificare .ak-wordmark { height: 34px; }
@media (max-width: 575.98px) { .navbar-brand .ak-wordmark { height: 18px; } }
/* blocuri pline, ca la Google Calendar: culoare solida, text alb, fara text care iese din chenar */
#calendar .fc-v-event { background: var(--c, #3b82f6); border: 0; border-left: 0; color: #fff; box-shadow: none; padding: 3px 6px; overflow: hidden; border-radius: 6px; }
#calendar .fc-v-event.s-asteapta, #calendar .fc-v-event.s-receptionata, #calendar .fc-v-event.s-in_lucru, #calendar .fc-v-event.s-asteapta_aprobare { color: #1f1300; }
#calendar .fc-v-event.s-anulata { color: #1f2937; }
#calendar .fc-v-event .ev b, #calendar .fc-v-event .ev span, #calendar .fc-v-event .ev small { color: inherit; }
#calendar .fc-v-event .ev span, #calendar .fc-v-event .ev small { opacity: .85; }
#calendar .ev.un-rand { display: flex; gap: 6px; align-items: baseline; white-space: nowrap; overflow: hidden; }
#calendar .ev.un-rand b, #calendar .ev.un-rand span { display: inline; overflow: hidden; text-overflow: ellipsis; }
#calendar .ev b { font-size: .78rem; line-height: 15px; }
#calendar .ev span, #calendar .ev small { font-size: .7rem; line-height: 15px; }
#calendar .fc-v-event:hover { filter: brightness(1.08); }
#calendar .fc-timegrid-event-harness { margin-right: 2px; }
#calendar .fc-timegrid-event-harness + .fc-timegrid-event-harness { margin-left: 2px; }
#calendar .fc-timegrid-event .fc-event-main { padding: 0; }
#calendar .fc-list-event-dot { border-color: var(--c, #3b82f6); background: var(--c, #3b82f6); }
.navbar-brand .ak-wordmark { height: 26px; }
.of-antet:has(h4:only-child) { margin-bottom: 1rem; }
/* placuta de inmatriculare: aceeasi latime oricare ar fi numarul (DJ, B, strain), text centrat */
.placa { width: 108px; flex: 0 0 108px; font-size: .8rem; letter-spacing: .02em; }
.placa span { flex: 1; text-align: center; padding: 4px 4px 3px; white-space: nowrap; overflow: hidden; text-overflow: clip; font-variant-numeric: tabular-nums; }
.cmd .placa { width: 96px; flex: 0 0 96px; font-size: .74rem; }
.cmd .placa span { padding: 3px 3px 2px; }
.sugestii .placa { width: 100px; flex: 0 0 100px; }
.ak-modal-cap .placa { width: 108px; }

.navbar-brand .ak-wordmark { height: 30px; }
.pagina-autentificare .ak-wordmark { height: 44px; }

/* ======================= aliniere la linie: numar, placuta, eticheta de stare au aceeasi inaltime ======================= */
.placa { height: 26px; align-items: center; box-sizing: border-box; vertical-align: middle; }
.placa span { padding: 0 4px; line-height: 1; }
.placa i { align-self: stretch; }
.badge[class*="st-"] { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; font-size: .78rem; line-height: 1; font-weight: 600; border-radius: 6px; vertical-align: middle; }
.ak-modal-cap .modal-title { gap: 10px; }
.ak-modal-cap .modal-title .cmd-nr { line-height: 26px; }
.ak-modal-cap .actiuni .btn-sm { height: 34px; }
.ak-modal-cap .btn-close { width: 34px; height: 34px; padding: 0; background-size: 14px; border: 1px solid var(--bs-border-color); border-radius: 8px; opacity: .7; }
.cmd .placa { height: 22px; }
.cmd-sus { align-items: center; }
.cmd .cmd-nr { line-height: 22px; }
.tabel-admin .placa, .table .placa { height: 24px; }
.sugestii .placa { height: 24px; }
/* blocul „Programat” din fisa programarii */
.programat-rand { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.programat-rand .data-mare { font-size: 1.1rem; font-weight: 700; color: var(--bs-heading-color); white-space: nowrap; }
.programat-rand .input-group { width: auto; flex: 0 0 auto; }
.programat-rand .input-group .form-control, .programat-rand .input-group .flatpickr-input { width: 245px !important; }
.programat-rand .form-text { width: 100%; margin: 0; }
/* starile comenzii: un singur rand, ca o banda de etape */
.stari-grila { display: flex; gap: 6px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.stari-grila::-webkit-scrollbar { display: none; }
.stari-grila .btn { flex: 1 0 auto; flex-direction: row; gap: 7px; padding: 0 12px; min-height: 40px; height: 40px; font-size: .78rem; white-space: nowrap; border-radius: 8px; }
.stari-grila .btn .punct { width: 8px; height: 8px; }
@media (max-width: 767.98px) { .stari-grila { display: grid; grid-template-columns: repeat(2, 1fr); overflow: visible; } .stari-grila .btn { flex: none; justify-content: flex-start; } }
.bifa-card:has(input:checked) { border-color: rgba(var(--bs-primary-rgb), .55); }
.stari-grila { gap: 5px; overflow: visible; }
.stari-grila .btn { flex: 1 1 0; min-width: 0; padding: 0 8px; font-size: .74rem; gap: 6px; }
.stari-grila .btn span:not(.punct) { overflow: hidden; text-overflow: ellipsis; }
#modal-comanda .modal-dialog.modal-xl { max-width: 1000px; }
.stari-grila .btn { font-size: .8rem; padding: 0 10px; }

/* bifa in chenar: aceeasi inaltime ca un input (40px); cand sta langa campuri cu eticheta, primeste si ea spatiul etichetei */
.bifa-card { min-height: 40px; }
.bifa-spatiu { display: block; visibility: hidden; }
@media (max-width: 767.98px) { .bifa-spatiu { display: none; } }
/* avatarul din tabelul de conturi: cerc curat, fara patrat in spate */
.tabel-admin .poza:has(.avatar-initial) { border-radius: 50%; background: transparent; }
.tabel-admin .poza .avatar-initial { width: 100%; height: 100%; border-radius: 50%; display: grid; place-items: center; font-weight: 600; font-size: 15px; line-height: 1; }
/* login: linkurile de jos nu se rup la mijlocul textului; pe ecran ingust trec pe randuri separate, fara punct */
.login-linkuri { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 10px; }
.login-linkuri a { white-space: nowrap; }
@media (max-width: 420px) { .login-linkuri { flex-direction: column; gap: 8px; } .login-linkuri .sep { display: none; } }

/* ===== Clienți: baza comuna de clienti si masini ===== */
.cl-bara { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 1rem; }
.cl-bara .of-seg a { white-space: nowrap; }
.cl-bara .of-seg a .ti { font-size: 1.05rem; }
.cl-bara .cauta { position: relative; flex: 1 1 280px; min-width: 0; }
.cl-bara .cauta .ti { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--bs-secondary-color); pointer-events: none; z-index: 2; }
.cl-bara .cauta input { padding-left: 38px; width: 100%; }
.avatar-cl { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); font-weight: 600; font-size: 15px; line-height: 1; flex: none; }
.avatar-cl.mare { width: 34px; height: 34px; font-size: 14px; }
.ak-modal-cap .titlu h5 .avatar-cl { margin-right: 2px; }
.tabel-clienti .titlu-rand { font-weight: 600; color: var(--bs-heading-color); }
.tabel-clienti .sub-rand { font-size: .8rem; color: var(--bs-secondary-color); }
.placi-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.placi-chips .placa { height: 24px; }
.masini-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.masina-card { position: relative; padding: 12px 36px 12px 14px; border: 1px solid var(--bs-border-color); border-radius: 10px; background: var(--bs-paper-bg); cursor: pointer; transition: border-color .15s, background .15s; min-width: 0; }
.masina-card:hover { border-color: var(--bs-primary); }
[data-bs-theme="dark"] .masina-card { background: rgba(255,255,255,.03); }
.masina-card .mc-sus { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.masina-card .mc-vizite { font-size: .75rem; color: var(--bs-secondary-color); white-space: nowrap; }
.masina-card .mc-desc { font-size: .88rem; color: var(--bs-body-color); line-height: 1.35; }
.masina-card .mc-vin, .masina-card .mc-obs { font-size: .76rem; color: var(--bs-secondary-color); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.masina-card .mc-sageata { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--bs-secondary-color); }
.tabel-vizite th { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--bs-secondary-color); }
.sugestii button.gol { cursor: default; opacity: .85; }
@media (max-width: 575.98px) { .cl-bara .of-seg { width: 100%; } .cl-bara .of-seg a { flex: 1; justify-content: center; } .masini-lista { grid-template-columns: 1fr; } }

/* linii cu cantitate, rand TVA, select roti in fisa */
.linie > span:first-child small { display: block; font-size: .78rem; color: var(--bs-secondary-color); font-weight: 400; }
.linie.tva { font-size: .82rem; color: var(--bs-secondary-color); border-bottom: 0; padding-top: 2px; }
.linie.roti-rand .form-select-sm { width: auto; min-width: 110px; display: inline-block; }

/* ===== cardul de pe tabla (recepție): un singur limbaj vizual, ca la Stripe ===== */
.tabla .cmd { border-radius: 10px; border: 1px solid var(--bs-border-color); background: var(--bs-body-bg); margin-bottom: 8px; }
.tabla .cmd:hover { border-color: rgba(var(--bs-primary-rgb), .6); }
.tabla .cmd.tarziu { border-color: rgba(var(--bs-danger-rgb), .45); }
.tabla .cmd .card-body { padding: 10px 12px 0; }
.tabla .cmd-cap { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 22px; margin: 0 0 8px; }
.tabla .cmd-nr { font-size: .82rem; font-weight: 700; letter-spacing: .02em; line-height: 22px; color: var(--bs-heading-color); font-variant-numeric: tabular-nums; }
.tabla .cmd-nr i { font-style: normal; color: var(--bs-primary); }
.tabla .cmd-nr.cmd-ora { display: inline-flex; align-items: center; gap: 4px; color: var(--bs-info); font-weight: 600; }
.tabla .cmd-nr.cmd-ora .icon-base { font-size: 14px; }
.tabla .cmd-timp { margin: 0; display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 999px; background: var(--bs-secondary-bg); color: var(--bs-secondary-color); font-size: .72rem; font-weight: 600; line-height: 1; white-space: nowrap; flex: none; font-variant-numeric: tabular-nums; }
.tabla .cmd-timp .icon-base { font-size: 12px; }
.tabla .cmd-timp.tarziu { background: rgba(var(--bs-danger-rgb), .12); color: var(--bs-danger); }
.tabla .cmd-placa-rand { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 22px; margin-bottom: 8px; }
.tabla .cmd .placa { height: 22px; width: 108px; flex: 0 0 108px; font-size: .76rem; letter-spacing: .03em; }
.tabla .cmd .placa span { padding: 0 4px; line-height: 19px; }
.tabla .cmd-semne { display: inline-flex; gap: 6px; color: var(--bs-secondary-color); font-size: 14px; line-height: 1; }
.tabla .cmd-semne .text-danger { color: var(--bs-danger) !important; }
.tabla .cmd-masina { display: flex; align-items: center; gap: 5px; margin-bottom: 2px; min-width: 0; font-size: .8rem; line-height: 1.35; white-space: nowrap; overflow: hidden; }
.tabla .cmd-masina .client { color: var(--bs-body-color); font-weight: 600; flex: none; max-width: 55%; overflow: hidden; text-overflow: ellipsis; }
.tabla .cmd-masina .sep { color: var(--bs-secondary-color); flex: none; }
.tabla .cmd-masina .desc { color: var(--bs-secondary-color); overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.tabla .cmd-servicii { font-size: .82rem; line-height: 1.35; color: var(--bs-body-color); margin: 0 0 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tabla .cmd-jos { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 -12px; padding: 7px 12px 8px; border-top: 1px solid var(--bs-border-color); }
.tabla .cmd-et { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; }
.tabla .cmd-total { font-weight: 700; font-size: .9rem; color: var(--bs-heading-color); font-variant-numeric: tabular-nums; }
[data-bs-theme="dark"] .tabla .cmd { background: rgba(255,255,255,.025); }
[data-bs-theme="dark"] .tabla .cmd-timp { background: rgba(255,255,255,.07); }
[data-bs-theme="dark"] .tabla .cmd-jos { border-top-color: rgba(255,255,255,.07); }
/* clientul pe randul lui, masina dedesubt (ambele pe un singur rand, cu puncte de suspensie) */
.tabla .cmd-masina { flex-direction: column; align-items: stretch; gap: 1px; margin-bottom: 4px; }
.tabla .cmd-masina .sep { display: none; }
.tabla .cmd-masina .client, .tabla .cmd-masina .desc { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tabla .cmd-masina .desc:empty { display: none; }

/* ===== programator: tot ecranul, antetul zilelor fix, blocuri unele sub altele ===== */
.cal-aranjare { align-items: stretch; }
.cal-principal { display: flex; flex-direction: column; height: calc(100vh - 222px); min-height: 520px; }
.cal-principal > .card-body { flex: 1; min-height: 0; display: flex; flex-direction: column; }
#calendar { flex: 1; min-height: 0; }
#calendar .fc-view-harness { min-height: 0; }
#calendar .fc-scroller { scrollbar-width: thin; }
#calendar .fc-col-header-cell { position: sticky; top: 0; z-index: 3; background: var(--bs-paper-bg); }
#calendar .fc-daygrid-day-frame { min-height: 100%; padding: 4px 4px 8px; }
#calendar .fc-daygrid-day-top { display: none; }
#calendar .fc-daygrid-day-events { margin: 0; display: flex; flex-direction: column; gap: 4px; }
#calendar .fc-daygrid-event-harness { margin: 0 !important; }
#calendar .fc-daygrid-event, #calendar .fc-daygrid-block-event { display: block; margin: 0; padding: 0; border: 0; border-radius: 8px; background: var(--c, #3b82f6); color: #fff; cursor: pointer; box-shadow: none; transition: filter .12s, transform .12s; }
#calendar .fc-daygrid-event.s-asteapta, #calendar .fc-daygrid-event.s-receptionata, #calendar .fc-daygrid-event.s-in_lucru, #calendar .fc-daygrid-event.s-asteapta_aprobare, #calendar .fc-daygrid-event.s-anulata { color: #1f2937; }
#calendar .fc-daygrid-event:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(0,0,0,.22); }
#calendar .fc-daygrid-event .fc-event-main { padding: 0; color: inherit; }
#calendar .ev-rand { display: flex; flex-direction: column; justify-content: center; gap: 2px; height: 44px; padding: 0 8px 0 6px; min-width: 0; }
#calendar .ev-rand .ev-sus { display: flex; align-items: center; gap: 6px; min-width: 0; }
#calendar .ev-rand .ev-ora { font-style: normal; font-size: .7rem; font-weight: 700; font-variant-numeric: tabular-nums; background: rgba(255,255,255,.22); border-radius: 5px; padding: 2px 5px; flex: none; }
#calendar .fc-daygrid-event.s-asteapta .ev-ora, #calendar .fc-daygrid-event.s-receptionata .ev-ora, #calendar .fc-daygrid-event.s-in_lucru .ev-ora, #calendar .fc-daygrid-event.s-asteapta_aprobare .ev-ora, #calendar .fc-daygrid-event.s-anulata .ev-ora { background: rgba(0,0,0,.12); }
#calendar .ev-rand b { font-size: .78rem; font-weight: 700; white-space: nowrap; flex: none; letter-spacing: .01em; }
#calendar .ev-rand span { font-size: .72rem; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
#calendar .fc-event, #calendar .fc-v-event, #calendar .fc-list-event { cursor: pointer; }
#calendar .fc-daygrid-day.fc-day-today { background: rgba(var(--bs-primary-rgb), .05); }
#calendar .fc-daygrid-day:hover { background: rgba(var(--bs-primary-rgb), .035); cursor: cell; }
#calendar .fc-list-event:hover td { background: rgba(var(--bs-primary-rgb), .06); }
@media (max-width: 991.98px) { .cal-principal { height: calc(100vh - 150px); min-height: 460px; } }
/* fisa instanta la hover */
#cal-info { position: fixed; z-index: 1080; width: 300px; max-width: calc(100vw - 24px); background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-radius: 12px; box-shadow: 0 18px 40px rgba(0,0,0,.35); padding: 12px 14px; pointer-events: none; opacity: 0; transform: translateY(4px); transition: opacity .12s, transform .12s; color: var(--bs-body-color); }
#cal-info.activ { opacity: 1; transform: none; }
#cal-info .ci-cap { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
#cal-info .ci-cap .placa { height: 24px; }
#cal-info .ci-timp, #cal-info .ci-client { display: flex; align-items: center; gap: 7px; font-size: .8rem; color: var(--bs-secondary-color); margin-bottom: 4px; }
#cal-info .ci-timp .icon-base, #cal-info .ci-client .icon-base { font-size: 15px; flex: none; }
#cal-info .ci-timp { color: var(--bs-heading-color); font-weight: 600; }
#cal-info .ci-linii { margin: 8px 0 0; border-top: 1px dashed var(--bs-border-color); padding-top: 6px; }
#cal-info .ci-linie { display: flex; justify-content: space-between; gap: 10px; font-size: .8rem; padding: 3px 0; }
#cal-info .ci-linie small { color: var(--bs-secondary-color); }
#cal-info .ci-total { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--bs-border-color); margin-top: 6px; padding-top: 7px; font-size: .8rem; }
#cal-info .ci-total b { font-size: .95rem; color: var(--bs-primary); }
#cal-info .ci-obs { font-size: .76rem; color: var(--bs-secondary-color); margin-top: 6px; font-style: italic; }
#cal-info .ci-hint { font-size: .7rem; color: var(--bs-secondary-color); margin-top: 8px; letter-spacing: .02em; }
[data-bs-theme="dark"] #cal-info { background: #2b2c40; }

/* vederea Zi: blocuri late, unele sub altele */
#calendar .ev-rand.ev-zi { height: 48px; padding: 0 12px 0 8px; }
#calendar .ev-rand.ev-zi .ev-sus em { font-style: normal; font-size: .78rem; opacity: .9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
#calendar .ev-rand.ev-zi .ev-sus b { font-size: .84rem; }
#calendar .ev-rand.ev-zi > span { font-size: .76rem; }
#calendar .fc-dayGridDay-view .fc-daygrid-day-frame { padding: 8px; }
#calendar .fc-dayGridDay-view .fc-daygrid-day-events { gap: 6px; }

.punct-post { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: middle; }

/* ===== programator: tabla pe posturi ===== */
#calendar .vedere-posturi, #calendar .fc-view-harness .vedere-posturi { height: 100%; }
.pb { display: flex; gap: 12px; height: 100%; overflow-x: auto; overflow-y: hidden; padding: 2px 2px 8px; }
.pb-col { --p: var(--bs-secondary-color); flex: 1 1 260px; min-width: 240px; max-width: 420px; display: flex; flex-direction: column; background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-radius: 12px; min-height: 0; overflow: hidden; transition: border-color .12s, box-shadow .12s; }
.pb-col.peste { border-color: var(--p); box-shadow: 0 0 0 3px color-mix(in srgb, var(--p) 25%, transparent), 0 10px 28px rgba(0,0,0,.22); }
.pb-col.peste .pb-corp { background: color-mix(in srgb, var(--p) 7%, transparent); }
.pb-cap { display: flex; align-items: center; gap: 8px; padding: 11px 12px 10px; font-weight: 600; font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; color: var(--bs-heading-color); border-bottom: 1px solid var(--bs-border-color); position: relative; }
.pb-cap::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--p); opacity: .9; }
.pb-cap .icon-base { font-size: 16px; color: var(--p); }
.pb-cap .punct-post { width: 9px; height: 9px; }
.pb-cap b { margin-left: auto; font-size: .72rem; font-weight: 600; min-width: 22px; text-align: center; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 999px; padding: 1px 7px; color: var(--bs-secondary-color); }
.pb-neconf { --p: #f0b429; }
.pb-neconf.are .pb-cap b { background: color-mix(in srgb, #f0b429 18%, transparent); color: #f0b429; border-color: transparent; }
.pb-corp { flex: 1; min-height: 0; overflow-y: auto; padding: 8px; display: flex; flex-direction: column; gap: 8px; scrollbar-width: thin; transition: background .12s; }
.pb-gol { margin: auto 0; text-align: center; color: var(--bs-secondary-color); font-size: .82rem; padding: 18px 10px; }
.pb-gol small { display: block; font-size: .74rem; margin-top: 4px; opacity: .8; }
.pb-card { --c: #3b82f6; position: relative; border-radius: 9px; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-left: 3px solid var(--c); color: var(--bs-body-color); padding: 8px 8px 8px 9px; cursor: pointer; user-select: none; transition: transform .12s, box-shadow .12s, opacity .12s, border-color .12s; }
.pb-card[data-trage] { cursor: grab; }
.pb-card:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.22); border-color: color-mix(in srgb, var(--c) 45%, var(--bs-border-color)); border-left-color: var(--c); }
.pb-card.tras { opacity: .35; transform: none; box-shadow: none; }
.pb-clona { position: fixed; left: 0; top: 0; z-index: 1200; pointer-events: none; margin: 0; box-shadow: 0 18px 40px rgba(0,0,0,.35); cursor: grabbing; transform-origin: 20% 20%; }
body.pb-tragere, body.pb-tragere * { cursor: grabbing !important; }
.pb-sus { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pb-sus .ev-ora { font-style: normal; font-size: .7rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--c); background: color-mix(in srgb, var(--c) 16%, transparent); border-radius: 5px; padding: 2px 6px; flex: none; }
.pb-sus .ev-ora small { font-weight: 500; opacity: .85; }
.pb-sus b { font-size: .82rem; font-weight: 700; color: var(--bs-heading-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pb-stare { margin-left: auto; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c); white-space: nowrap; }
.pb-jos { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.pb-jos > span { flex: 1; min-width: 0; font-size: .76rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pb-muta { flex: none; width: 24px; height: 24px; padding: 0; border: 1px solid var(--bs-border-color); border-radius: 6px; background: transparent; color: var(--bs-secondary-color); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .12s, color .12s; }
.pb-muta .icon-base { font-size: 15px; width: 15px; height: 15px; line-height: 1; display: block; }
.pb-muta:hover { background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--c); border-color: color-mix(in srgb, var(--c) 40%, transparent); }
.pb-meniu { position: fixed; z-index: 1090; min-width: 220px; background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-radius: 10px; box-shadow: 0 14px 34px rgba(0,0,0,.3); padding: 6px; display: flex; flex-direction: column; gap: 2px; }
.pb-meniu-titlu { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; padding: 6px 10px 4px; }
.pb-meniu button { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: none; color: var(--bs-body-color); padding: 8px 10px; border-radius: 7px; font-size: .86rem; text-align: left; cursor: pointer; }
.pb-meniu button:hover { background: rgba(var(--bs-primary-rgb), .08); } .pb-meniu button.activ { background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); font-weight: 600; }
.pb-meniu .icon-base { font-size: 16px; color: var(--bs-secondary-color); }
[data-bs-theme="dark"] .pb-meniu { background: #2b2c40; }
.posturi-alegere { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.posturi-alegere .btn { display: flex; align-items: center; gap: 8px; text-align: left; padding: .5rem .75rem; min-height: 44px; }
.posturi-alegere .btn > span { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.posturi-alegere .btn > span small { font-size: .7rem; font-weight: 400; opacity: .75; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.posturi-alegere .btn.ocupat { opacity: .55; }
#calendar .ev-rand .ev-post { display: inline-block; width: 9px; height: 9px; border-radius: 50%; flex: none; box-shadow: 0 0 0 2px rgba(255,255,255,.55); margin-left: auto; }
@media (max-width: 767.98px) { .pb-col { flex: 0 0 82vw; min-width: 82vw; } .pb { scroll-snap-type: x mandatory; } .pb-col { scroll-snap-align: start; } }

.tabla .cmd-post { display: inline-flex; align-items: center; gap: 5px; font-size: .68rem; font-weight: 600; color: var(--bs-body-color); background: var(--bs-secondary-bg); border-radius: 999px; padding: 1px 7px 1px 5px; white-space: nowrap; max-width: 110px; overflow: hidden; text-overflow: ellipsis; }
.tabla .cmd-post::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--p); flex: none; }

/* paleta de culori (posturi de lucru) */
.paleta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; min-height: 40px; padding-top: 2px; }
.paleta-cul { position: relative; width: 30px; height: 30px; margin: 0; cursor: pointer; }
.paleta-cul input { position: absolute; opacity: 0; width: 0; height: 0; }
.paleta-cul span { position: absolute; inset: 0; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); transition: transform .12s, box-shadow .12s; }
.paleta-cul:hover span { transform: scale(1.08); }
.paleta-cul input:checked + span { box-shadow: 0 0 0 2px var(--bs-paper-bg, #2f3349), 0 0 0 4px var(--c); }
.paleta-cul input:checked + span::after { content: ""; position: absolute; left: 10px; top: 7px; width: 8px; height: 13px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
/* lista de tari (intl-tel-input) se agata de body: trebuie peste modal (1090) */
.iti--container { z-index: 1200 !important; }
/* ultima linie de serviciu nu mai are punctata sub ea: totalul are propria linie */
.linie:has(+ .total-mare) { border-bottom: 0; }

.paleta-libera { background: conic-gradient(#ef4444, #f59e0b, #22c55e, #06b6d4, #3b82f6, #8b5cf6, #ec4899, #ef4444); border-radius: 50%; }
.paleta-libera > span { background: var(--c); inset: 3px; display: flex; align-items: center; justify-content: center; color: #fff; }
.paleta-libera > span .icon-base { font-size: 14px; filter: drop-shadow(0 1px 1px rgba(0,0,0,.5)); }
.paleta-libera input:checked + span::after { display: none; }
.paleta-libera input[type=radio]:checked ~ span, .paleta-libera input[type=radio]:checked + span { box-shadow: 0 0 0 2px var(--bs-paper-bg, #2f3349), 0 0 0 4px var(--c); }
.paleta-picker { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; padding: 0; border: 0; }
/* grila orara pe posturi */
.pg { display: flex; flex-direction: column; height: 100%; min-height: 0; border: 1px solid var(--bs-border-color); border-radius: 12px; overflow: hidden; background: var(--bs-paper-bg); }
.pg-cap { display: grid; width: max-content; min-width: 100%; position: sticky; top: 0; z-index: 4; border-bottom: 1px solid var(--bs-border-color); background: var(--bs-paper-bg); }
.pg-axa-cap { border-right: 1px solid var(--bs-border-color); position: sticky; left: 0; z-index: 6; background: var(--bs-paper-bg); }
.pg-col-cap { --p: var(--bs-secondary-color); display: flex; align-items: center; gap: 8px; padding: 11px 12px 10px; font-weight: 600; font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; color: var(--bs-heading-color); border-right: 1px solid var(--bs-border-color); position: relative; min-width: 0; }
.pg-col-cap:last-child { border-right: 0; }
.pg-col-cap::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--p); opacity: .9; }
.pg-col-cap span { min-width: 0; line-height: 1.15; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pg-col-cap { align-items: flex-start; }
.pg-col-cap .punct-post, .pg-col-cap b { margin-top: 2px; }
.pg-col-cap .punct-post { width: 9px; height: 9px; flex: none; }
.pg-col-cap b { margin-left: auto; font-size: .72rem; font-weight: 600; min-width: 22px; text-align: center; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 999px; padding: 1px 7px; color: var(--bs-secondary-color); }
.pg-col-cap.fara { color: #f0b429; }
.pg-corp { flex: 1; min-height: 0; overflow: auto; scrollbar-width: thin; }
.pg-grila { display: grid; position: relative; width: max-content; min-width: 100%; }
.pg-linii { position: absolute; left: 0; right: 0; top: 0; bottom: 0; pointer-events: none; z-index: 0; }
.pg-linii i { position: absolute; left: 0; right: 0; height: 1px; background: var(--bs-border-color); }
.pg-linii i.jum { opacity: .45; }
.pg-axa { position: relative; border-right: 1px solid var(--bs-border-color); background: var(--bs-paper-bg); position: sticky; left: 0; z-index: 2; }
.pg-axa span { position: absolute; right: 8px; transform: translateY(calc(-100% - 3px)); font-size: .72rem; font-weight: 600; color: var(--bs-secondary-color); font-variant-numeric: tabular-nums; line-height: 1; }
.pg-axa span:first-child { transform: none; top: 6px !important; }
.pg-col { position: relative; border-right: 1px solid var(--bs-border-color); min-width: 0; cursor: copy; }
.pg-col:last-child { border-right: 0; }
.pg-col.fara { background-color: rgba(240,180,41,.05); cursor: default; }
.pg-trecut { position: absolute; left: 0; right: 0; top: 0; pointer-events: none; background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(128,128,128,.08) 6px 7px); z-index: 0; }
.pg-acum { position: absolute; left: 0; right: 0; height: 2px; background: var(--bs-primary); z-index: 3; pointer-events: none; }
.pg-acum::before { content: ""; position: absolute; left: -4px; top: -3px; width: 8px; height: 8px; border-radius: 50%; background: var(--bs-primary); }
.pg-ev { --c: #3b82f6; position: absolute; left: 0; width: calc(100% - 3px); margin: 1px 0 0 2px; box-sizing: border-box; border-radius: 7px; background: color-mix(in srgb, var(--c) 18%, var(--bs-body-bg)); border: 1px solid color-mix(in srgb, var(--c) 45%, var(--bs-border-color)); color: var(--bs-body-color); padding: 4px 6px 4px 7px; overflow: hidden; cursor: pointer; z-index: 1; user-select: none; transition: box-shadow .12s, transform .12s; }
.pg-ev[data-trage] { cursor: grab; }
.pg-ev:hover { z-index: 2; box-shadow: 0 6px 16px rgba(0,0,0,.25); border-color: var(--c); }
.pg-ev.tras { opacity: .35; }
.pg-ev.sosit { background-image: repeating-linear-gradient(135deg, transparent 0 8px, rgba(255,255,255,.05) 8px 9px); cursor: pointer; }
.pg-ev-sus { display: flex; align-items: center; gap: 6px; min-width: 0; }
.pg-ev-sus i { font-style: normal; font-size: .68rem; font-weight: 700; color: var(--c); font-variant-numeric: tabular-nums; white-space: nowrap; flex: none; }
.pg-ev-sus b { font-size: .8rem; font-weight: 700; color: var(--bs-heading-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pg-ev-sus em { font-style: normal; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--c); white-space: nowrap; }
.pg-ev-sus .pb-muta { margin-left: auto; width: 20px; height: 20px; opacity: 0; }
.pg-ev:hover .pb-muta, .pg-ev.mic .pb-muta { opacity: 1; }
.pg-ev.mic .pb-muta { width: 18px; height: 18px; }
.pg-ev.mic { padding: 2px 5px 2px 6px; }
.pg-ev-jos { margin-top: 2px; font-size: .74rem; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pg-clona { position: fixed; left: 0; top: 0; z-index: 1200; pointer-events: none; margin: 0; box-shadow: 0 18px 40px rgba(0,0,0,.35); opacity: .95; }
.pg-tinta { position: absolute; left: 2px; right: 3px; border-radius: 7px; border: 2px dashed #22c55e; background: rgba(34,197,94,.12); z-index: 2; pointer-events: none; display: flex; align-items: flex-start; padding: 4px 8px; font-size: .72rem; font-weight: 700; color: #22c55e; }
.pg-tinta.conflict { border-color: #ef4444; background: rgba(239,68,68,.12); color: #ef4444; }
.pg-gol { margin: auto; text-align: center; color: var(--bs-secondary-color); font-size: .88rem; padding: 40px 10px; }
.pg-gol small { display: block; font-size: .76rem; margin-top: 4px; opacity: .8; }
#tabla-posturi.pb { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
@media (hover: none) { .pg-ev-sus .pb-muta { opacity: 1; } }

/* coloane inguste (multe posturi): pe bloc ramane doar ora de inceput */
.pg-col { container-type: inline-size; }
@container (max-width: 215px) { .pg-ev-sus .pana { display: none; } .pg-ev-sus em { display: none; } }

/* multe posturi: antet compact, nume pe un rand, fara contor */
.pg-dens .pg-col-cap { text-transform: none; letter-spacing: 0; font-size: .78rem; padding: 10px 8px 9px; gap: 6px; align-items: center; }
.pg-dens .pg-col-cap span { display: block; white-space: nowrap; text-overflow: ellipsis; -webkit-line-clamp: unset; }
.pg-dens .pg-col-cap b { display: none; }
.pg-dens .pg-col-cap .punct-post { margin-top: 0; }

/* chipuri uniforme (optiunile unui serviciu etc.): fundal opac, aceeasi inaltime, niciodata in linie cu textul */
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px 0 7px; border-radius: 999px; font-size: .72rem; font-weight: 600; line-height: 1; white-space: nowrap; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); color: var(--bs-body-color); }
.chip .icon-base { font-size: 13px; }
.chip-info { color: #60a5fa; border-color: rgba(96,165,250,.45); }
.chip-warning { color: #f59e0b; border-color: rgba(245,158,11,.45); }
.chip-muted { color: var(--bs-secondary-color); }
/* meniul lateral din Administrare: card, nu zona transparenta */
@media (min-width: 768px) {
  .of-cont-nav { background: var(--bs-paper-bg); border: 1px solid var(--bs-border-color); border-radius: 12px; padding: 8px; box-shadow: var(--bs-box-shadow-xs, 0 1px 2px rgba(0,0,0,.08)); }
  .of-cont-nav .grup { padding: 12px 10px 4px; }
  .of-cont-nav .grup:first-child { padding-top: 6px; }
}

/* telefon: bara calendarului pe un singur rand (sageti, data, vederi), grila ocupa restul ecranului */
@media (max-width: 767.98px) {
  #calendar .fc-toolbar { flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; margin-bottom: 8px; }
  #calendar .fc-toolbar-chunk { display: flex; align-items: center; gap: 4px; }
  #calendar .fc-toolbar-chunk:nth-child(2) { order: 0; width: auto; margin: 0; flex: 1; min-width: 0; justify-content: center; }
  #calendar .fc-toolbar-title { font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #calendar .fc-toolbar .fc-button { padding: .3rem .55rem; font-size: .8rem; }
  .cal-principal { min-height: 380px; }
  .pg-col-cap { padding: 9px 10px 8px; font-size: .74rem; }
}

/* meniul „Muta pe”: pe desktop fereastra langa buton, pe telefon foaie de jos */
.pb-meniu-titlu span { font-weight: 500; text-transform: none; letter-spacing: 0; margin-left: 6px; }
.pb-meniu .pb-meniu-post { display: flex; align-items: center; gap: 9px; width: 100%; border: 0; background: none; color: var(--bs-body-color); padding: 9px 10px; border-radius: 8px; font-size: .88rem; text-align: left; cursor: pointer; }
.pb-meniu .pb-meniu-post > span { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.pb-meniu .pb-meniu-post > span small { font-size: .7rem; color: var(--bs-secondary-color); }
.pb-meniu .pb-meniu-post:hover:not([disabled]) { background: rgba(var(--bs-primary-rgb), .08); }
.pb-meniu .pb-meniu-post.activ { background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); font-weight: 600; }
.pb-meniu .pb-meniu-post.ocupat { opacity: .5; cursor: not-allowed; }
.pb-meniu .pb-meniu-post.scoate { border-top: 1px solid var(--bs-border-color); border-radius: 0 0 8px 8px; margin-top: 4px; }
.pb-meniu.foaie { left: 0; right: 0; bottom: 0; top: auto; border-radius: 16px 16px 0 0; padding: 10px 12px calc(12px + env(safe-area-inset-bottom)); max-height: 80vh; overflow-y: auto; z-index: 1200; animation: foaie-sus .18s ease-out; }
.pb-meniu.foaie .pb-meniu-post { padding: 12px 10px; font-size: .95rem; }
body.pb-meniu-deschis::after { content: ""; position: fixed; left: 0; top: 0; right: 0; bottom: 0; background: rgba(0,0,0,.45); z-index: 1190; }
@keyframes foaie-sus { from { transform: translateY(30px); opacity: 0; } to { transform: none; opacity: 1; } }

@media (max-width: 767.98px) { .actiuni-prog { flex-direction: column; align-items: stretch; } .actiuni-prog > * { width: 100%; justify-content: center; text-align: center; } }

@media (max-width: 575.98px) { .posturi-alegere { grid-template-columns: repeat(2, minmax(0, 1fr)); } .posturi-alegere .btn { padding: .45rem .6rem; font-size: .85rem; } }
.posturi-alegere .btn > span > :first-child, .posturi-alegere .btn > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 575.98px) { .posturi-alegere .btn { font-size: .8rem; gap: 6px; } }

/* liste de bife pe doua coloane: ultima bifa ramasa singura se intinde pe tot randul */
@media (min-width: 768px) { .lista-bife > .col-md-6:last-child:nth-child(odd) { flex: 0 0 100%; max-width: 100%; } }

/* tabla din receptie: coloanele impart mereu toata latimea, oricate ar fi */
@media (min-width: 992px) { .coloana { flex: 1 1 0; min-width: 200px; max-width: none; } .coloana.restransa { flex: 0 0 48px; min-width: 48px; } }
/* bifa cu explicatie dedesubt */
.bifa-sub .form-check-label { display: flex; flex-direction: column; line-height: 1.2; }
.bifa-sub .form-check-label small { font-size: .74rem; color: var(--bs-secondary-color); font-weight: 400; margin-top: 2px; }
/* rapoarte */
.rap-filtre { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 1rem; }
.rap-filtre .of-seg { margin-right: 4px; }
.rap-data { width: 170px; } .rap-data .form-control { width: 100%; }
.rap-grila { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; }
.rap-grila .card.lat { grid-column: 1 / -1; }
.rap-grila .card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rap-grila .card-header h5 { margin: 0; font-size: .95rem; }
.rap-grila table td.nr, .rap-grila table th.nr { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rap-grila .bara { height: 6px; border-radius: 3px; background: rgba(var(--bs-primary-rgb), .18); position: relative; min-width: 60px; }
.rap-grila .bara i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: var(--bs-primary); }
.rap-gol { text-align: center; color: var(--bs-secondary-color); padding: 28px 10px; font-size: .88rem; }

.avatar-cl.firma { background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); display: inline-flex; align-items: center; justify-content: center; }
.avatar-cl.firma .icon-base { font-size: 18px; }
.avatar-cl.mare.firma .icon-base { font-size: 24px; }
.rap-firma { min-width: 240px; }

/* capul blocurilor din fisa: buton cu pictograma, nu text */
.bloc h6 .btn-icon.btn-sm { width: 28px; height: 28px; min-width: 0; padding: 0; border-radius: 7px; }
.bloc h6 .btn-icon.btn-sm .icon-base { font-size: 15px; }
.bloc h6 .btn-text-secondary.btn-sm { font-size: .74rem; padding: 2px 6px; }
/* mesaje */
.tabel-mesaje .mesaj-text { font-size: .88rem; max-width: 520px; white-space: pre-wrap; }
.tabel-mesaje .sub-rand { font-size: .76rem; color: var(--bs-secondary-color); }
.canal-chip { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px 0 7px; border-radius: 999px; font-size: .72rem; font-weight: 600; border: 1px solid var(--bs-border-color); background: var(--bs-body-bg); white-space: nowrap; }
.canal-chip .icon-base { font-size: 13px; }
.canal-chip.whatsapp { color: #25d366; border-color: rgba(37,211,102,.4); }
.canal-chip.sms { color: var(--bs-body-color); }
.meniu-bulina { font-size: .66rem; padding: 2px 6px; }

/* telefon SMS: cod de asociere + detalii tehnice */
.cod-asociere .qr-cutie { background: #fff; border-radius: 12px; padding: 10px; width: 196px; height: 196px; display: flex; align-items: center; justify-content: center; }
.cod-asociere .qr-cutie svg { width: 176px; height: 176px; display: block; }
.cod-asociere .cod-text { font-family: ui-monospace, Menlo, monospace; font-size: .8rem; word-break: break-all; resize: none; }
.detalii-tehnice > summary { list-style: none; cursor: pointer; }
.detalii-tehnice > summary::-webkit-details-marker { display: none; }
.detalii-tehnice > summary h5::before { content: "\203A"; display: inline-block; width: 1em; transition: transform .15s; }
.detalii-tehnice[open] > summary h5::before { transform: rotate(90deg); }
.detalii-tehnice code { white-space: normal; }

/* subsolul listelor (numar de randuri + paginare): separat vizibil de ultimul rand */
.subsol-lista { border-top: 1px solid var(--bs-border-color); padding: .9rem 1.5rem; }
.subsol-lista .paginare { margin-top: 0; }
/* in administrare, un rand de carduri dupa o lista pastreaza acelasi spatiu ca intre carduri */
.card-lista + .row.g-4 { margin-top: 0; }
.row + .card-lista, .alert + .card-lista { margin-top: 1.5rem; }

/* antetul administrarii: butonul „Vezi kioskul” ascuns pe filele care nu privesc kioskul */
#antet-admin .ak-actiuni[hidden] { display: none !important; }

/* pagina Mesaje: fiecare informatie pe randul ei, ierarhie clara */
.tabel-mesaje td { vertical-align: top; padding-top: 1rem; padding-bottom: 1rem; }
.tabel-mesaje .ms-catre { width: 210px; }
.tabel-mesaje .ms-tel { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--bs-heading-color); white-space: nowrap; }
.tabel-mesaje .ms-tel .canal-chip { width: 26px; height: 26px; padding: 0; justify-content: center; font-size: 0; gap: 0; flex: none; border-radius: 8px; }
.tabel-mesaje .ms-tel .canal-chip i { font-size: 15px; margin: 0; }
.tabel-mesaje .ms-cine { margin: 4px 0 0 34px; font-size: .8125rem; color: var(--bs-secondary-color); }
.tabel-mesaje .ms-mesaj { min-width: 260px; }
.tabel-mesaje .ms-text { color: var(--bs-heading-color); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 560px; }
.tabel-mesaje .ms-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 6px; font-size: .8125rem; color: var(--bs-secondary-color); }
.tabel-mesaje .ms-fel { display: inline-block; padding: 1px 8px; border-radius: 6px; background: rgba(var(--bs-body-color-rgb), .07); color: var(--bs-body-color); font-size: .75rem; font-weight: 500; }
.tabel-mesaje .ms-eroare { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; padding: 8px 10px; border-radius: 8px; background: rgba(var(--bs-warning-rgb), .08); color: var(--bs-warning); font-size: .8125rem; line-height: 1.4; max-width: 560px; }
.tabel-mesaje .ms-eroare.grav { background: rgba(var(--bs-danger-rgb), .08); color: var(--bs-danger); }
.tabel-mesaje .ms-eroare i { font-size: 15px; flex: none; margin-top: 1px; }
.tabel-mesaje .ms-stare { width: 170px; }
.tabel-mesaje .ms-stare .badge { margin-bottom: 4px; }
.tabel-mesaje .ms-det { font-size: .8125rem; color: var(--bs-secondary-color); line-height: 1.5; }
.tabel-mesaje .ms-timpuri { width: 170px; }
.tabel-mesaje .ms-timp { font-size: .8125rem; color: var(--bs-body-color); line-height: 1.6; white-space: nowrap; }
.tabel-mesaje .ms-timp span { display: inline-block; width: 50px; color: var(--bs-secondary-color); }
.tabel-mesaje .ms-act { width: 1%; white-space: nowrap; }
@media (max-width: 767.98px) {
  .tabel-mesaje thead { display: none; }
  .tabel-mesaje tr { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; padding: 14px 16px; border-bottom: 1px solid var(--bs-border-color); }
  .tabel-mesaje td { display: block; padding: 0 !important; border: 0 !important; width: auto !important; min-width: 0 !important; }
  .tabel-mesaje .ms-catre { grid-column: 1; grid-row: 1; }
  .tabel-mesaje .ms-stare { grid-column: 2; grid-row: 1; text-align: right; }
  .tabel-mesaje .ms-mesaj { grid-column: 1 / -1; grid-row: 2; }
  .tabel-mesaje .ms-act { grid-column: 1 / -1; grid-row: 3; text-align: left !important; }
  .tabel-mesaje .ms-act .btn { width: 100%; }
}

/* Mesaje: cifrele de sus filtreaza, selectie multipla cu bara de actiuni */
.strip-filtre > button { flex: 1 1 160px; display: flex; align-items: center; gap: 12px; padding: 14px 18px; border: 0; border-right: 1px solid var(--bs-border-color); background: transparent; color: inherit; text-align: left; min-width: 0; cursor: pointer; transition: background .15s; }
.strip-filtre > button:hover { background: rgba(var(--bs-body-color-rgb), .04); }
.strip-filtre > button.activ { background: rgba(var(--bs-primary-rgb), .08); box-shadow: inset 0 -2px 0 var(--bs-primary); }
.filtre-mesaje #f-perioada { max-width: 210px; }
.tabel-mesaje .ms-bifa { width: 44px; padding-left: 1.25rem !important; padding-right: 0 !important; }
.tabel-mesaje tr.ales > td { background: rgba(var(--bs-primary-rgb), .06); }
.bara-selectie { margin: 0; border: 0 !important; border-bottom: 1px solid var(--bs-border-color) !important; border-radius: 0 !important; box-shadow: none !important; outline: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: .75rem 1.25rem; border-bottom: 1px solid var(--bs-border-color); background: rgba(var(--bs-primary-rgb), .07); position: sticky; top: 0; z-index: 3; }
.bara-selectie[hidden] { display: none !important; }
.bara-selectie .bs-text { font-size: .875rem; }
.bara-selectie .bs-butoane { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 767.98px) {
  .tabel-mesaje tr { grid-template-columns: auto 1fr auto; }
  .tabel-mesaje .ms-bifa { grid-column: 1; grid-row: 1; width: auto; padding: 2px 0 0 !important; }
  .tabel-mesaje .ms-catre { grid-column: 2; }
  .tabel-mesaje .ms-stare { grid-column: 3; }
  .bara-selectie { position: sticky; top: 0; }
  .bara-selectie .bs-butoane { width: 100%; } .bara-selectie .bs-butoane .btn { flex: 1; }
  .filtre-mesaje #f-perioada { max-width: none; }
}
@media (max-width: 767.98px) {
  /* rand selectat colorat intreg, nu pe bucati */
  .tabel-mesaje tr.ales { background: rgba(var(--bs-primary-rgb), .08); }
  .tabel-mesaje tr.ales > td { background: transparent !important; box-shadow: none !important; }
  /* bara de actiuni lipita jos pe ecran, ca la aplicatiile de mail */
  .bara-selectie { position: fixed !important; left: 0; right: 0; bottom: 0; top: auto !important; z-index: 1040; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: var(--bs-paper-bg, #2f3349); border-top: 1px solid var(--bs-border-color) !important; border-bottom: 0 !important; box-shadow: 0 -8px 24px rgba(0,0,0,.35) !important; }
  .bara-selectie .bs-butoane { flex-wrap: nowrap; gap: 6px; }
  .bara-selectie .bs-butoane .btn { white-space: nowrap; padding-left: 8px; padding-right: 8px; }
  body:has(.bara-selectie:not([hidden])) .content-wrapper { padding-bottom: 120px; }
}

/* insignele cu numar pe un fundal plin (meniu activ, buton rosu, fila activa): albe cu cifra in culoarea accentului, ca sa se vada mereu */
.menu-item.active > .menu-link .badge, .menu-link.active .badge,
.btn-primary .badge, .btn-danger .badge, .btn.active .badge, .btn-check:checked + .btn .badge,
.nav-link.active .badge, .nav-pills .nav-link.active .badge, .list-group-item.active .badge, .dropdown-item.active .badge, .page-item.active .badge,
.activ > .badge, .ales > .badge, button.activ .badge, a.activ .badge, .act .badge {
  background: #fff !important; color: var(--bs-primary) !important; box-shadow: none !important;
}
/* insigna pe un buton gri: un ton mai deschis decat butonul, ca sa se vada forma ei */
.btn-label-secondary .badge, .btn-outline-secondary .badge { background: rgba(var(--bs-body-color-rgb), .16) !important; color: var(--bs-heading-color) !important; }

/* Mesaje: tipul mesajului ca eticheta deasupra textului, autorul in coloana „Când” */
.tabel-mesaje .ms-mesaj .ms-fel { display: flex; align-items: center; gap: 6px; padding: 0; margin: 0 0 4px; background: none; border-radius: 0; font-size: .75rem; font-weight: 600; letter-spacing: .02em; color: var(--bs-secondary-color); }
.tabel-mesaje .ms-mesaj .ms-fel i { font-size: 14px; }
.tabel-mesaje .ms-timp { overflow: hidden; text-overflow: ellipsis; max-width: 190px; }

/* hasura pentru timpul indisponibil (trecut, zi inchisa, ore fara program, sloturi pline): vizibila pe tema intunecata si pe cea deschisa */
.pg-trecut, .go-col.inchis, .fc .fc-non-business {
  background-color: rgba(128,128,128,.07) !important;
  background-image: repeating-linear-gradient(135deg, rgba(128,128,128,.26) 0 1.5px, transparent 1.5px 9px) !important;
  opacity: 1 !important;
}
.pg-trecut { border-bottom: 1px dashed rgba(128,128,128,.55); }
.go-cel.plin { background-image: repeating-linear-gradient(135deg, rgba(239,68,68,.22) 0 1.5px, transparent 1.5px 8px) !important; }

/* tabla pe posturi: latimile vin fixe din JS; capul nu mai creste dupa text, derularea nu mai trage pagina dupa ea */
/* .pg-cap, .pg-grila: latimea minima vine din sablonul coloanelor (programari.js) */
.pg-col-cap { min-width: 0; overflow: hidden; }
.pg-col-cap span { overflow: hidden; text-overflow: ellipsis; }
.pg-corp { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
/* coloane inguste (telefon): ora sus cu butonul de mutare, numarul intreg pe randul lui */
@container (max-width: 175px) {
  .pg-ev:not(.mic) .pg-ev-sus { flex-wrap: wrap; row-gap: 1px; }
  .pg-ev:not(.mic) .pg-ev-sus b { order: 3; flex: 0 0 100%; font-size: .82rem; }
  .pg-ev:not(.mic) .pg-ev-sus .pb-muta { order: 2; }
  .pg-ev:not(.mic) .pg-ev-sus em { order: 4; }
}
@media (max-width: 767.98px) {
  .pg-col-cap { text-transform: none; letter-spacing: 0; font-size: .8rem; align-items: center; padding: 10px 8px; gap: 6px; }
  .pg-col-cap span { display: block; white-space: nowrap; -webkit-line-clamp: unset; }
  .pg-col-cap b { display: none; }
  .pg-col-cap .punct-post { margin-top: 0; }
}
/* programatorul pe telefon: cardul merge aproape pana jos (fara spatiul de 24px al paginii), cu marginea de jos a iPhone-ului respectata */
@media (max-width: 991.98px) { .container-p-y:has(.cal-principal) { padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important; } .cal-principal { margin-bottom: 0 !important; } }

/* programator, coloana din stanga: cat programatorul, cu „Pe scurt” si legenda ca mostre de blocuri */
@media (min-width: 992px) {
  .cal-lateral { display: flex !important; flex-direction: column; position: static !important; height: calc(100vh - 222px); min-height: 520px; }
  .cal-lateral > .card:first-child { flex: none; }
  .cal-lateral > .cal-info { flex: 1; min-height: 0; display: flex; flex-direction: column; }
  .cal-lateral > .cal-info > .card-body { display: flex; flex-direction: column; min-height: 0; overflow: auto; }
  .cal-lateral .cal-legenda { margin-top: auto; }
}
.cal-sectiune { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--bs-secondary-color); margin: 0 0 10px; }
.cal-rezumat { display: grid; gap: 8px; margin-bottom: 18px; }
.cal-rezumat .cr-rand { --t: var(--bs-secondary-color); display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: rgba(var(--bs-body-color-rgb), .04); border: 1px solid var(--bs-border-color); }
.cal-rezumat .cr-rand.albastru { --t: #3b82f6; } .cal-rezumat .cr-rand.verde { --t: #22c55e; } .cal-rezumat .cr-rand.gri { --t: var(--bs-secondary-color); }
.cal-rezumat .cr-ic { width: 30px; height: 30px; flex: none; border-radius: 8px; display: grid; place-items: center; color: var(--t); background: color-mix(in srgb, var(--t) 16%, transparent); }
.cal-rezumat .cr-ic i { font-size: 17px; }
.cal-rezumat .cr-et { flex: 1; min-width: 0; font-size: .82rem; color: var(--bs-body-color); line-height: 1.2; }
.cal-rezumat b { font-size: 1.15rem; font-weight: 700; color: var(--bs-heading-color); font-variant-numeric: tabular-nums; }
.cal-legenda { display: grid; gap: 6px; border-top: 0 !important; padding-top: 0 !important; font-size: .8rem; }
.cal-legenda span { display: flex; align-items: center; gap: 0; padding: 7px 10px; border-radius: 8px; border-left: 3px solid var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--bs-heading-color); font-weight: 500; }
/* ecrane mai joase: cifrele pe un rand de 3 si legenda pe 2 coloane, ca sa incapa tot fara derulare */
@media (min-width: 992px) and (max-height: 880px) {
  .cal-rezumat { grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 14px; }
  .cal-rezumat .cr-rand { flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 9px; }
  .cal-rezumat .cr-ic { display: none; }
  .cal-rezumat b { order: -1; font-size: 1.2rem; line-height: 1.1; color: var(--t); }
  .cal-rezumat .cr-rand.gri b { color: var(--bs-heading-color); }
  .cal-rezumat .cr-et { font-size: .7rem; color: var(--bs-secondary-color); }
  .cal-legenda { grid-template-columns: 1fr 1fr; font-size: .74rem; }
  .cal-legenda span { padding: 6px 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* servicii: posturile pe care se face serviciul */
.chip.chip-post { background: rgba(var(--bs-primary-rgb), .08); color: var(--bs-body-color); }
.bifa-post .form-check-label { display: flex; align-items: center; gap: 8px; }
.bifa-post .punct-post { width: 9px; height: 9px; border-radius: 50%; flex: none; display: inline-block; }

/* programator: post inchis intr-o zi */
.pg-col-cap { position: relative; }
.pg-post-zi { flex: none; width: 26px; height: 26px; margin: -3px -4px -3px 2px; display: grid; place-items: center; border: 0; border-radius: 7px; background: transparent; color: var(--bs-secondary-color); cursor: pointer; }
.pg-post-zi:hover { background: rgba(var(--bs-body-color-rgb), .08); color: var(--bs-heading-color); }
.pg-post-zi i { font-size: 16px; }
.pg-col-cap.inchis { color: var(--bs-secondary-color); }
.pg-col-cap.inchis .pg-post-zi { color: #f0b429; }
.pg-col.inchis { cursor: not-allowed; }
.pg-inchis { position: absolute; inset: 0; z-index: 0; pointer-events: none; background-color: rgba(128,128,128,.10); background-image: repeating-linear-gradient(135deg, rgba(240,180,41,.28) 0 1.5px, transparent 1.5px 10px); }
.pg-inchis span { position: sticky; top: 12px; display: flex; align-items: center; justify-content: center; gap: 6px; margin: 12px auto 0; width: max-content; max-width: calc(100% - 16px); padding: 5px 10px; border-radius: 999px; background: var(--bs-paper-bg); border: 1px solid rgba(240,180,41,.5); color: #f0b429; font-size: .74rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pg-inchis span i { font-size: 14px; }
.pb-meniu .pb-meniu-post.ocupat small { color: #f0b429; }
@media (max-width: 767.98px) { .pg-post-zi { width: 24px; height: 24px; margin-left: auto; } }

/* postul inchis pentru site si kiosk ramane folosibil din receptie: fara hasura, doar o eticheta discreta sus */
.pg-col.inchis { cursor: copy; }
.pg-inchis { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: rgba(240,180,41,.035) !important; background-image: none !important; }
.pg-inchis span { position: sticky; top: 8px; margin-top: 8px; }

/* legenda programatorului: fara bara colorata, doar un patratel in culoarea starii */
.cal-legenda span { border-left: 0 !important; background: rgba(var(--bs-body-color-rgb), .04) !important; border: 1px solid var(--bs-border-color) !important; gap: 9px !important; color: var(--bs-body-color) !important; font-weight: 500; }
.cal-legenda span::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--c); flex: none; }

/* „Pe scurt” pe ecrane joase: randuri subtiri cu eticheta pe un singur rand si cifra in dreapta */
@media (min-width: 992px) and (max-height: 880px) {
  .cal-rezumat { grid-template-columns: 1fr !important; gap: 5px !important; }
  .cal-rezumat .cr-rand { flex-direction: row !important; align-items: center !important; gap: 8px !important; padding: 6px 10px !important; }
  .cal-rezumat .cr-et { font-size: .78rem !important; color: var(--bs-body-color) !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cal-rezumat b { order: 0 !important; font-size: 1rem !important; }
  .cal-legenda { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 992px) and (max-height: 880px) {
  .cal-info .card-body { padding: 12px !important; }
  .cal-sectiune { margin-bottom: 7px; }
  .cal-rezumat { margin-bottom: 12px !important; }
  .cal-rezumat .cr-rand { padding: 5px 10px !important; }
  .cal-legenda { gap: 5px !important; font-size: .72rem !important; }
  .cal-legenda span { padding: 5px 8px !important; gap: 7px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .cal-legenda span::before { width: 8px; height: 8px; }
}

/* administrare › servicii legate */
.legate-lista { display: grid; gap: 6px; }
.legate-lista a { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 10px; border: 1px solid var(--bs-border-color); color: var(--bs-body-color); font-size: .875rem; }
.legate-lista a:hover { background: rgba(var(--bs-body-color-rgb), .04); }
.legate-lista a i { color: var(--bs-secondary-color); font-size: 16px; }
.legate-lista a b { font-weight: 600; color: var(--bs-heading-color); }

/* coloana stanga a programatorului: niciodata derulare in cardul de jos (se strange daca nu incape) */
@media (min-width: 992px) { .cal-lateral > .cal-info > .card-body { overflow: hidden !important; } }

/* administrare › intrebari: randurile cu variante */
.ro-cap, .ro { display: grid; grid-template-columns: minmax(110px, 1.1fr) minmax(110px, 1.3fr) 76px 108px 96px 50px 56px 32px; gap: 6px; align-items: center; }
.ro-cap { font-size: .72rem; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }
.ro-lista { display: grid; gap: 6px; }
@media (max-width: 767.98px) {
  .ro-cap { display: none; }
  .ro { grid-template-columns: 1fr 1fr; padding: 10px; border: 1px solid var(--bs-border-color); border-radius: 10px; }
  .ro .ro-et, .ro .ro-ds { grid-column: 1 / -1; }
}

/* randurile repetabile din administrare (preturi speciale, variante de raspuns): toate campurile de pe rand la aceeasi inaltime */
.rp, .ro { --h-rand: 38px; }
.rp .form-control, .rp .form-select, .ro .form-control, .ro .form-select,
.rp .select2-container .select2-selection--single, .ro .select2-container .select2-selection--single,
.rp .btn, .ro .btn { height: var(--h-rand) !important; min-height: var(--h-rand) !important; box-sizing: border-box; }
.rp .form-control, .ro .form-control { padding-top: 0; padding-bottom: 0; font-size: .875rem; }
.rp .select2-container .select2-selection__rendered, .ro .select2-container .select2-selection__rendered { line-height: calc(var(--h-rand) - 2px) !important; font-size: .875rem; }
.rp .select2-container .select2-selection__arrow, .ro .select2-container .select2-selection__arrow { height: calc(var(--h-rand) - 2px) !important; }
.rp .btn-icon, .ro .btn-icon { width: var(--h-rand); padding: 0; }
/* butoanele de pe un rand de tabel (formulare separate) stau unul langa altul */
.table td.text-end > form.m-0 { display: inline-block; vertical-align: middle; }

/* Administrare > Texte: lista completa, pe grupe, cu cautare */
.texte-grup { border-top: 1px solid var(--bs-border-color); scroll-margin-top: 90px; }
.texte-grup-cap { padding: .9rem 1.5rem .6rem; font-weight: 600; font-size: .95rem; background: var(--bs-tertiary-bg, rgba(0,0,0,.02)); }
.texte-tabel th { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--bs-secondary-color); padding-left: 1.5rem; }
.texte-tabel td { vertical-align: top; padding-top: .7rem; padding-bottom: .7rem; }
.texte-tabel td:first-child { padding-left: 1.5rem; }
.texte-tabel .text-implicit { margin-top: 2px; line-height: 1.35; }
.texte-tabel tr.modificat td:first-child { box-shadow: inset 3px 0 0 var(--bs-primary); }
.texte-tabel input::placeholder, .texte-tabel textarea::placeholder { color: var(--bs-secondary-color); opacity: .75; }
.texte-jos { position: sticky; bottom: 0; z-index: 3; background: var(--bs-card-bg, var(--bs-body-bg)); border-top: 1px solid var(--bs-border-color); }

/* ---------- formulare: texte ajutatoare aerisite + sectiuni ca panouri ---------- */
.form-text { margin-top: .45rem !important; font-size: .8rem; line-height: 1.45; color: var(--bs-secondary-color); }
.form-text.mt-n1 { margin-top: .45rem !important; }
.col-12.form-text { padding-top: .1rem; }
.form-label { margin-bottom: .4rem; font-weight: 500; }
.grup-form { margin-top: .35rem; }
.grup-form > .row { margin: 0; padding: 1.15rem 1.25rem 1.3rem; border: 1px solid var(--bs-border-color); border-top: 0; border-radius: 0 0 14px 14px; background: color-mix(in srgb, var(--bs-body-color) 2.5%, transparent); }
.grup-form > .row > * { padding-left: calc(var(--bs-gutter-x) * .5); padding-right: calc(var(--bs-gutter-x) * .5); }
.grup-form-cap { padding: .85rem 1.25rem .8rem; border: 1px solid var(--bs-border-color); border-radius: 14px 14px 0 0; background: color-mix(in srgb, var(--bs-body-color) 5%, transparent); display: flex; flex-direction: column; gap: .2rem; }
.grup-form-cap .sectiune-cap { margin: 0 !important; font-size: .9rem; letter-spacing: 0; text-transform: none; color: var(--bs-heading-color, var(--bs-body-color)); font-weight: 600; display: flex; align-items: center; gap: .55rem; }
.grup-form-cap .sectiune-cap::before { content: ""; width: 4px; height: 1rem; border-radius: 2px; background: var(--bs-primary); flex: none; }
.grup-form-cap .grup-form-desc { margin: 0 !important; padding-left: calc(4px + .55rem); font-size: .8rem; }
.grup-form.fara-titlu > .row { border-top: 1px solid var(--bs-border-color); border-radius: 14px; }
.grup-form + .grup-form { margin-top: 1rem; }
@media (max-width: 575.98px) { .grup-form > .row { padding: 1rem .85rem 1.1rem; } .grup-form-cap { padding: .75rem .85rem; } }
/* titlul sectiunii: bulina in loc de bara verticala */
.grup-form-cap .sectiune-cap::before { width: 8px; height: 8px; border-radius: 50%; background: var(--bs-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--bs-primary) 22%, transparent); }
.grup-form-cap .grup-form-desc { padding-left: calc(8px + .55rem); }

/* alegerea pictogramei (servicii): cautare, categorii, pagini */
.picto { border: 1px solid var(--bs-border-color); border-radius: 14px; overflow: hidden; }
.picto-bara { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; padding: .75rem .9rem; border-bottom: 1px solid var(--bs-border-color); background: color-mix(in srgb, var(--bs-body-color) 3%, transparent); }
.picto-ales { display: flex; align-items: center; gap: .65rem; min-width: 190px; }
.picto-ales-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(var(--bs-primary-rgb), .12); color: var(--bs-primary); flex: none; }
.picto-ales-ic .ic { width: 24px; height: 24px; stroke: currentColor; fill: none; }
.picto-ales small { display: block; font-size: .7rem; color: var(--bs-secondary-color); text-transform: uppercase; letter-spacing: .06em; }
.picto-ales b { font-size: .9rem; font-weight: 600; }
.picto-filtre { display: flex; gap: .5rem; flex: 1; min-width: 260px; justify-content: flex-end; }
.picto-filtre .input-group { max-width: 300px; } .picto-filtre .form-select { max-width: 210px; }
.picto-grila { display: grid; grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); gap: 6px; padding: .8rem .9rem; min-height: 112px; align-content: start; }
.picto-grila label { margin: 0; }
.picto-grila input { display: none; }
.picto-grila span { height: 46px; border-radius: 10px; border: 1.5px solid var(--bs-border-color); display: grid; place-items: center; cursor: pointer; color: var(--bs-body-color); transition: border-color .15s, background .15s, transform .1s; }
.picto-grila span:hover { border-color: color-mix(in srgb, var(--bs-primary) 55%, var(--bs-border-color)); transform: translateY(-1px); }
.picto-grila span .ic { width: 22px; height: 22px; stroke: currentColor; fill: none; }
.picto-grila input:checked + span { border-color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .12); color: var(--bs-primary); }
.picto-jos { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .55rem .9rem .7rem; border-top: 1px solid var(--bs-border-color); }
.picto-pag { display: flex; gap: 4px; flex-wrap: wrap; }
.picto-pag .btn { width: 30px; height: 30px; font-size: .8rem; }

/* zona de incarcare a imaginilor */
.incarca { position: relative; display: flex; align-items: center; gap: 14px; padding: 12px 14px; border: 1.5px dashed color-mix(in srgb, var(--bs-body-color) 22%, transparent); border-radius: 14px; background: color-mix(in srgb, var(--bs-body-color) 2.5%, transparent); transition: border-color .15s, background .15s; cursor: pointer; }
.incarca:hover, .incarca.peste { border-color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .06); }
.incarca.nou { border-style: solid; border-color: color-mix(in srgb, #28c76f 70%, transparent); }
.incarca.de-sters { border-color: color-mix(in srgb, var(--bs-danger) 70%, transparent); }
.incarca.de-sters .incarca-prev { opacity: .35; filter: grayscale(1); }
.incarca-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 1; }
.incarca-prev { width: 64px; height: 64px; flex: none; border-radius: 12px; overflow: hidden; display: grid; place-items: center; background: var(--bs-secondary-bg); color: var(--bs-secondary-color); }
.incarca-prev img { width: 100%; height: 100%; object-fit: cover; }
.incarca-prev .ic, .incarca-prev svg { width: 26px; height: 26px; stroke: currentColor; fill: none; }
.incarca-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.incarca-text b { font-weight: 500; font-size: .9rem; }
.incarca-link { color: var(--bs-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.incarca.are .incarca-gol { display: none; }
.incarca-text small { color: var(--bs-secondary-color); font-size: .78rem; overflow-wrap: anywhere; }
.incarca-sterge { position: relative; z-index: 2; flex: none; display: inline-flex; align-items: center; gap: 5px; }
.incarca-sterge .ic, .incarca-sterge svg { width: 15px; height: 15px; stroke: currentColor; fill: none; }
@media (max-width: 575.98px) { .incarca { flex-wrap: wrap; } .incarca-prev { width: 52px; height: 52px; } .incarca-gol { display: none; } }
.incarca-prev .icon-base { font-size: 26px; } .incarca-sterge .icon-base { font-size: 15px; }
.incarca-prev { background: color-mix(in srgb, var(--bs-body-color) 7%, transparent); color: var(--bs-secondary-color); }
.incarca-prev .icon-base { width: 26px; height: 26px; font-size: 26px; }
@media (max-width: 575.98px) {
  .incarca { flex-wrap: wrap; gap: 12px; }
  .incarca-text { flex: 1 1 calc(100% - 66px); }
  .incarca-sterge { width: 100%; justify-content: center; }
}
/* preturile pe tip de vehicul / jante: pe telefon, vehiculul pe un rand si valorile dedesubt */
@media (max-width: 575.98px) {
  .preturi-lista .rp.small { display: none; }
  .preturi-lista .rp { grid-template-columns: 1fr 1fr 1fr 38px; padding: 8px; border: 1px solid var(--bs-border-color); border-radius: 10px; }
  .preturi-lista .rp > select { grid-column: 1 / -1; }
  .preturi-lista .rp input::placeholder { font-size: .78rem; }
}
@media (max-width: 575.98px) {
  .preturi-lista .rp > .select2-container { grid-column: 1 / -1; width: 100% !important; }
  .preturi-lista .rp > select.select2-hidden-accessible { position: absolute !important; }
}
@media (max-width: 575.98px) {
  .picto-bara { padding: .7rem; }
  .picto-ales { min-width: 0; width: 100%; }
  .picto-filtre { min-width: 0; width: 100%; flex-direction: column; }
  .picto-filtre .input-group, .picto-filtre .form-select { max-width: none; width: 100%; }
  .picto-grila { grid-template-columns: repeat(auto-fill, minmax(42px, 1fr)); padding: .7rem; }
  .picto-grila span { height: 42px; }
  .picto-jos { flex-direction: column; align-items: stretch; }
  .picto-pag { justify-content: center; }
}

/* raspunsurile clientului (run-flat, sursa anvelopelor, anvelopele demontate) */
.raspunsuri-lista { margin-top: .75rem; border: 1px solid var(--bs-border-color); border-radius: 10px; overflow: hidden; }
.rl-rand { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .5rem .75rem; font-size: .82rem; }
.rl-rand + .rl-rand { border-top: 1px solid var(--bs-border-color); }
.rl-rand span { color: var(--bs-secondary-color); min-width: 0; }
.rl-rand b { color: var(--bs-heading-color, var(--bs-body-color)); font-weight: 600; text-align: right; flex: none; max-width: 55%; }
@media (max-width: 575.98px) { .rl-rand { flex-direction: column; gap: 2px; } .rl-rand b { text-align: left; max-width: none; } }

/* tipuri de vehicul: desenul intreg, nu decupat */
.rand-admin .poza:has(img.contain) { width: 76px; background: color-mix(in srgb, var(--bs-body-color) 5%, transparent); padding: 3px 4px; }
.rand-admin .poza img.contain { object-fit: contain; }
.incarca-prev.contain { width: 96px; padding: 4px; }
.incarca-prev.contain img { object-fit: contain; }
.tabel-admin .poza:has(img.contain) { width: 84px; height: 48px; padding: 3px 5px; background: color-mix(in srgb, var(--bs-body-color) 5%, transparent); }
.tabel-admin .poza img.contain { object-fit: contain; }
.btn-seg { min-height: 44px; border-radius: 12px; padding: 0 16px; display: inline-flex; align-items: center; gap: 8px; font-weight: 500; white-space: nowrap; } .btn-seg .icon-base { font-size: 18px; }

/* programul de lucru: cate un rand pe zi, ca orarul unei firme */
.orar { border: 1px solid var(--bs-border-color); border-radius: 14px; overflow: hidden; }
.orar-zi { display: flex; align-items: center; gap: 1rem; padding: .7rem 1.1rem; min-height: 62px; }
.orar-zi + .orar-zi { border-top: 1px solid var(--bs-border-color); }
.orar-nume { display: flex; align-items: center; gap: .85rem; width: 190px; flex: none; padding-left: 0; cursor: pointer; }
.orar-nume .form-check-input { float: none; margin: 0; width: 2.4em; height: 1.3em; cursor: pointer; }
.orar-nume span { font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); }
.orar-ore { display: flex; align-items: center; gap: .6rem; }
.orar-ore .form-control { width: 128px; text-align: center; font-variant-numeric: tabular-nums; }
.orar-pana { color: var(--bs-secondary-color); font-size: .82rem; }
.orar-inchis { display: none; color: var(--bs-secondary-color); font-size: .9rem; }
.orar-zi.inchis { background: color-mix(in srgb, var(--bs-body-color) 2.5%, transparent); }
.orar-zi.inchis .orar-nume span { color: var(--bs-secondary-color); }
.orar-zi.inchis .orar-ore { display: none; }
.orar-zi.inchis .orar-inchis { display: block; }
@media (max-width: 575.98px) {
  .orar-zi { flex-wrap: wrap; gap: .5rem; padding: .7rem .8rem; }
  .orar-nume { width: 100%; }
  .orar-ore { width: 100%; } .orar-ore .form-control { flex: 1; width: auto; min-width: 0; }
  .orar-inchis { padding-left: calc(2.4em + .85rem); }
}
.btn.btn-seg { height: 45px !important; min-height: 45px; padding-top: 0; padding-bottom: 0; }

/* confirmarea clientului: insigna verificat / X rosu */
.conf-ic { display: inline-flex; align-items: center; gap: 5px; vertical-align: -3px; flex: none; }
.conf-ic svg { width: 16px; height: 16px; display: block; }
.conf-ic.mare svg { width: 20px; height: 20px; }
.conf-ic.mare { padding: 4px 10px 4px 6px; border-radius: 999px; font-size: .8rem; }
.conf-ic.mare.ok { background: rgba(29,155,240,.12); color: #4db3f5; }
.conf-ic.mare.nu { background: rgba(234,58,64,.12); color: #ff6b70; }
.conf-ic.mare b { font-weight: 600; }
.conf-actiuni { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: .75rem; }
/* Administrare pe desktop: meniul ramane pe loc (ca la Stripe), cu derulare proprie; continutul se deruleaza separat */
@media (min-width: 768px) {
  #nav-admin { position: sticky; top: 126px; max-height: calc(100vh - 142px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: transparent transparent; padding-bottom: 12px; }
  #nav-admin:hover { scrollbar-color: color-mix(in srgb, var(--bs-body-color) 25%, transparent) transparent; }
  #nav-admin::-webkit-scrollbar { width: 6px; }
  #nav-admin::-webkit-scrollbar-thumb { background: transparent; border-radius: 3px; }
  #nav-admin:hover::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--bs-body-color) 25%, transparent); }
}
/* Administrare: meniul ocupa toata coloana din stanga, de sus; titlul paginii sta deasupra continutului */
@media (min-width: 768px) {
  .ak-cont { grid-template-rows: auto 1fr; column-gap: 32px; row-gap: 0; }
  .ak-cont > #nav-admin { grid-column: 1; grid-row: 1 / span 2; }
  .ak-cont > #antet-admin { grid-column: 2; grid-row: 1; }
  .ak-cont > #continut-admin { grid-column: 2; grid-row: 2; }
  /* meniu compact, sa incapa intreg pe un laptop */
  #nav-admin { top: 126px; max-height: calc(100vh - 142px); gap: 1px; }
  #nav-admin a { padding: 6px 12px; font-size: .9rem; }
  #nav-admin a .ti { font-size: 18px; }
  #nav-admin .grup { padding: 12px 12px 3px; }
  #nav-admin .grup:first-child { padding-top: 2px; }
  /* cand tot nu incape: bara de derulare se vede si o umbra jos arata ca mai e ceva */
  #nav-admin { scrollbar-color: color-mix(in srgb, var(--bs-body-color) 22%, transparent) transparent; }
  #nav-admin::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--bs-body-color) 22%, transparent); }
  #nav-admin.mai-jos { -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 36px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 36px), transparent); }
}
@media (max-width: 767.98px) { .ak-cont { display: flex !important; flex-direction: column; } .ak-cont > #antet-admin { order: -1; } }
@media (min-width: 768px) and (min-height: 900px) {
  #nav-admin { gap: 2px; }
  #nav-admin a { padding: 8px 12px; font-size: .92rem; }
  #nav-admin .grup { padding: 16px 12px 5px; }
}

/* ===== Meniul Administrare (rescris): grupe care se strang, buton + foaie pe telefon ===== */
#nav-admin .nav-grup + .nav-grup { margin-top: 2px; }
#nav-admin .grup { display: flex; align-items: center; justify-content: space-between; width: 100%; border: 0; background: none; cursor: pointer; padding: 9px 12px; margin: 0; border-radius: 8px; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--bs-secondary-color); font-weight: 600; text-align: left; }
#nav-admin .grup:hover { background: var(--bs-secondary-bg); color: var(--bs-body-color); }
#nav-admin .grup .ti { font-size: 15px; transition: transform .2s; }
#nav-admin .nav-grup.deschis .grup .ti { transform: rotate(180deg); }
#nav-admin .nav-grup-linkuri { display: none; flex-direction: column; gap: 1px; padding: 2px 0 6px; }
#nav-admin .nav-grup.deschis .nav-grup-linkuri { display: flex; }
#nav-admin a { padding: 7px 12px; font-size: .9rem; }
#nav-admin a .ti { font-size: 18px; }
.nav-foaie-cap, .nav-mobil, .nav-fundal { display: none; }
@media (min-width: 768px) {
  #nav-admin { position: sticky; top: 126px; max-height: calc(100vh - 142px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 8px; gap: 0; }
}
@media (max-width: 767.98px) {
  .ak-cont { display: block !important; }
  .ak-cont > * { min-width: 0; max-width: 100%; }
  .nav-mobil { display: flex; align-items: center; gap: 12px; width: 100%; margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--bs-border-color); border-radius: 12px; background: var(--bs-paper-bg); color: var(--bs-body-color); text-align: left; }
  .nav-mobil > .ti:first-child { font-size: 20px; color: var(--bs-primary); width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: rgba(var(--bs-primary-rgb), .12); flex: none; }
  .nav-mobil span { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
  .nav-mobil small { font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; color: var(--bs-secondary-color); }
  .nav-mobil b { font-weight: 600; font-size: .98rem; }
  .nav-mobil-sag { font-size: 18px; color: var(--bs-secondary-color); }
  #nav-admin { display: none !important; position: fixed !important; left: 0; right: 0; bottom: 0; top: auto !important; z-index: 1300; max-height: 82vh !important; overflow-y: auto; flex-direction: column !important; flex-wrap: nowrap !important; gap: 0 !important; margin: 0 !important; padding: 0 12px calc(14px + env(safe-area-inset-bottom)) !important; border-radius: 18px 18px 0 0 !important; background: var(--bs-paper-bg) !important; box-shadow: 0 -20px 50px rgba(0,0,0,.4); white-space: normal; }
  body.nav-foaie-deschisa #nav-admin { display: flex !important; animation: foaie-sus .22s ease-out; }
  body.nav-foaie-deschisa .nav-fundal { display: block; position: fixed; inset: 0; z-index: 1290; background: rgba(0,0,0,.5); }
  body.nav-foaie-deschisa { overflow: hidden; }
  .nav-foaie-cap { display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 1; background: var(--bs-paper-bg); padding: 14px 4px 8px; }
  .nav-foaie-cap b { font-size: 1.05rem; }
  #nav-admin .grup { display: flex !important; pointer-events: none; padding: 12px 8px 4px; }
  #nav-admin .grup .ti { display: none; }
  #nav-admin .nav-grup-linkuri { display: flex !important; }
  #nav-admin a { white-space: normal; opacity: 1; padding: 11px 10px; font-size: .98rem; border-radius: 10px; }
}
.nav-mobil > .ti:first-child { opacity: 1; } @media (max-width: 767.98px) { .nav-mobil { margin-top: 2px; } #nav-admin a.act { color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .14); } }
@media (max-width: 767.98px) {
  .nav-mobil > .ti:first-child { all: unset; }
  .nav-mobil-ic { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); flex: none; }
  .nav-mobil-ic .ti { font-size: 20px; }
  .nav-mobil .nav-mobil-text { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
}
@media (max-width: 767.98px) { .nav-mobil .nav-mobil-ic { flex: none; width: 38px; height: 38px; display: grid; place-items: center; } }

/* ===================== Audit mobil: aplicatia echipei ===================== */
/* focus neutru (rosul arata ca o eroare) */
.form-control:focus, .form-select:focus, .select2-container--focus .select2-selection { border-color: rgba(var(--bs-body-color-rgb), .45) !important; box-shadow: 0 0 0 3px rgba(var(--bs-body-color-rgb), .08) !important; }
@media (max-width: 575.98px) {
  /* ferestrele: foaie de jos, butoanele mereu vizibile jos */
  .modal-dialog { margin: 0; max-width: none; min-height: 100%; display: flex; align-items: flex-end; }
  .modal-dialog-scrollable { height: 100%; max-height: none; }
  .modal-dialog .modal-content { width: 100%; border-radius: 16px 16px 0 0; border: 0; }
  .modal-dialog-scrollable .modal-content { max-height: calc(100dvh - 16px); }
  .modal-body { padding: 1rem; }
  .modal .bloc { padding: .75rem .85rem; }
  .ak-modal-act { position: sticky; bottom: -1rem; z-index: 3; margin: 1rem -1rem -1rem !important; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)) !important; background: var(--bs-paper-bg); border-top: 1px solid var(--bs-border-color); flex-wrap: nowrap; }
  .ak-modal-act .btn { flex: 1; min-height: 46px; }
  .ak-modal-act .flex-grow-1 { display: none; }
  /* antetul ferestrelor: butoane doar cu iconita, titlul are loc */
  .ak-modal-cap { padding: .875rem 1rem; }
  .ak-modal-cap .modal-title { flex-wrap: nowrap; min-width: 0; }
  .ak-modal-cap .actiuni .btn-sm { width: 40px; height: 40px; padding: 0; font-size: 0; justify-content: center; }
  .ak-modal-cap .actiuni .btn-sm .icon-base { margin: 0 !important; font-size: 18px; }
  .ak-modal-cap .btn-close { width: 40px; height: 40px; }
  .ak-modal-cap .sub { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
@media (max-width: 767.98px) {
  /* bara de sus */
  .layout-navbar .nav-item.nav-link.px-0 { width: 40px; justify-content: center; }
  #layout-menu .layout-menu-toggle { width: 40px; height: 40px; display: grid; place-items: center; }
  #comutator-ecran { display: none !important; }
  /* Receptie */
  .strip-stat .et { white-space: normal; line-height: 1.2; }
  .strip-stat > div > div { min-width: 0; }
  .bara-tabla { flex-wrap: nowrap; }
  .bara-tabla .cauta { flex: 1 1 auto; max-width: none; min-width: 0; }
  .filtre-stare { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); scroll-padding: 0 16px; }
  .bifa-card .text-body-secondary { white-space: nowrap; }
  /* fisa programarii: „Muta” incape */
  .programat-rand .input-group { flex: 1 1 100%; width: 100% !important; flex-wrap: nowrap; }
  .programat-rand .input-group .form-control, .programat-rand .input-group .flatpickr-input { width: auto !important; flex: 1 1 auto; min-width: 0; }
  /* grila zilei */
  .pb-muta { width: 32px; height: 32px; }
  .pg-post-zi { width: 36px; height: 36px; }
  .pg-col-cap .punct-post, .pg-col-cap b { display: none; }
  #calendar .fc-list-event-title span { white-space: nowrap; }
  /* Istoric: randuri ca fise */
  #tabel thead { display: none; }
  #tabel tbody tr { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "m t" "d s" "n n"; gap: 4px 12px; padding: 12px 16px; border-bottom: 1px solid var(--bs-border-color); }
  #tabel td { display: block !important; padding: 0 !important; border: 0 !important; }
  #tabel td:nth-child(1) { grid-area: n; font-size: .8rem; color: var(--bs-secondary-color); }
  #tabel td:nth-child(2) { grid-area: d; }
  #tabel td:nth-child(3) { grid-area: m; }
  #tabel td:nth-child(4), #tabel td:nth-child(5) { display: none !important; }
  #tabel td:nth-child(6) { grid-area: s; text-align: right; }
  #tabel td:nth-child(7) { grid-area: t; text-align: right; }
  .card:has(#tabel) .table-responsive { overflow: visible; }
  .pagination .page-link { min-width: 40px; height: 40px; display: grid; place-items: center; }
  /* Clienti */
  .of-antet .ak-actiuni:has(#btn-client-nou) { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  #btn-client-nou { grid-column: 1 / -1; order: -1; }
  .of-antet .ak-actiuni .btn { white-space: nowrap; }
  .cl-bara .of-seg { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; }
  .cl-bara .of-seg a { padding: 8px 6px; gap: 6px; justify-content: center; }
  .cl-bara .of-seg a .ti { display: none; }
  .tabel-clienti td:last-child { width: 28px; padding-left: 0; }
  .tabel-vizite th:nth-child(1), .tabel-vizite td:nth-child(1) { display: none; }
  .tabel-vizite { min-width: 0 !important; width: 100%; }
  .tabel-vizite td, .tabel-vizite th { white-space: normal !important; padding: .5rem .4rem !important; font-size: .82rem; }
  /* Rapoarte */
  #continut-dinamic .table-sm th, #continut-dinamic .table-sm td { padding: .55rem .6rem; }
  #continut-dinamic .table-sm td:first-child { word-break: normal; overflow-wrap: normal; hyphens: auto; }
  .rap-data { flex: 1 1 0; width: auto !important; min-width: 0; }
  .rap-data .camp-data-lux { letter-spacing: 0; padding-right: 2.25rem; }
  .rap-firma { flex: 1 1 100%; min-width: 0 !important; }
  #rap-preset { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin-right: 0; }
  #rap-preset a { justify-content: center; }
  /* Mesaje */
  .strip-stat > :nth-child(3):last-child { flex-basis: 100%; border-right: 0; }
  .ms-bifa { padding: 6px; }
  /* login */
  .pagina-autentificare .card { border: 0; background: transparent; box-shadow: none; }
  .pagina-autentificare .card-body { padding: 1rem; }
}
@media (max-width: 575.98px) {
  .of-filtre { grid-template-columns: 1fr 1fr !important; }
  .of-filtre .cauta, .of-filtre .select2-container, .of-filtre > :has(.cauta) { grid-column: 1 / -1; }
  .filtre-mesaje { grid-template-columns: 1fr 1fr !important; }
}

/* ===================== Audit mobil: Administrare ===================== */
.btn > .icon-base, .btn > svg.ic { flex: none; }
.bifa-card { padding: 10px 12px; }
.bifa-card .form-check-label small { display: block; font-size: .8rem; color: var(--bs-secondary-color); margin-top: 2px; font-weight: 400; }
.tabel-admin form.janta-durata { flex-direction: row !important; align-items: center !important; justify-content: flex-end; }
.janta-durata .form-control { width: 64px !important; flex: none; }
@media (pointer: coarse) { .tabel-admin .maner { display: none; } }
@media (max-width: 575.98px) {
  .modal .modal-dialog { padding: 0 !important; }
  .modal .grup-form > .row { padding: .9rem .75rem 1rem; }
  .modal .grup-form.fara-titlu > .row { border: 0; padding: 0; background: none; }
  /* subsolul formularelor din administrare: Sterge doar cu iconita, Renunta + Salveaza la indemana */
  #modal-admin .ak-modal-act, #foaie-edit .ak-modal-act { display: grid !important; grid-template-columns: 1fr 1.4fr; gap: 8px; }
  #modal-admin .ak-modal-act:has(.btn-label-danger), #foaie-edit .ak-modal-act:has(.btn-label-danger) { grid-template-columns: 46px 1fr 1.4fr; }
  .ak-modal-act .btn-label-danger { padding: 0; font-size: 0; }
  .ak-modal-act .btn-label-danger .icon-base { font-size: 18px; margin: 0 !important; }
  .grup-form-cap .grup-form-desc { padding-left: 0; }
  .tabel-admin .sub-rand { display: block !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60vw; }
  /* antetul: „Vezi kioskul” ca buton-iconita langa titlu */
  #antet-admin.of-antet { flex-wrap: nowrap; }
  #antet-admin .ak-actiuni .btn { font-size: 0; width: 40px; height: 40px; padding: 0; justify-content: center; }
  #antet-admin .ak-actiuni .btn .icon-base { font-size: 18px; margin: 0 !important; }
  /* adaugare rapida (telefon SMS, kiosk, jante) */
  .form-adauga { flex-wrap: wrap; }
  .form-adauga .form-control { flex: 1 1 100%; width: auto !important; }
  .form-adauga .btn { flex: 1 1 100%; }
  /* subsolurile cardurilor */
  .card-footer > .btn-primary:only-child, .card-footer .btn-primary { width: 100%; }
  .card-footer { padding-top: 0; flex-wrap: wrap; gap: 8px; }
  .card-footer .d-flex.flex-wrap > form, .card-footer .d-flex.flex-wrap .btn { width: 100%; }
  .card-footer .d-flex.flex-wrap { width: 100%; }
  /* Texte */
  .texte-jos > span { display: none; }
  .texte-jos .btn { width: 100%; white-space: nowrap; }
  /* Date firma: linkul programarii */
  #info-link-programare .input-group { flex-wrap: wrap; gap: 8px; }
  #info-link-programare .input-group > .form-control { flex: 1 1 100%; border-radius: var(--bs-border-radius) !important; }
  #info-link-programare .input-group > .btn { flex: 1; border-radius: var(--bs-border-radius) !important; margin: 0 !important; }
  #info-link-programare .alert > .icon-base { display: none; }
}
@media (max-width: 767.98px) {
  .tabel-admin td.actiuni .btn-icon { width: 40px !important; height: 40px !important; }
  .card-header .btn-sm, [data-adauga-pret], [data-adauga-ro] { height: 40px !important; }
  .picto-pag .btn { width: 36px; height: 36px; }
  /* Texte: randuri stivuite */
  .texte-tabel thead { display: none; }
  .texte-tabel, .texte-tabel tbody { display: block; min-width: 0 !important; }
  .texte-tabel tr { display: grid; gap: 6px; padding: 12px 0; border-bottom: 1px solid var(--bs-border-color); }
  .texte-tabel td { display: block; border: 0 !important; padding: 0 1rem !important; box-shadow: none !important; }
  .texte-tabel tr.modificat { box-shadow: inset 3px 0 0 var(--bs-primary); }
  .texte-tabel td:nth-child(3)::before { content: "Doar pe programarea online"; display: block; font-size: .75rem; color: var(--bs-secondary-color); margin-bottom: 2px; }
  .texte-nav { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; }
  .texte-nav .btn { flex: none; white-space: nowrap; height: 36px; }
  #nav-admin { padding-bottom: calc(14px + env(safe-area-inset-bottom)) !important; }
}
/* alerte cu text lung (Integrare) */
.alert > div { min-width: 0; }
.alert code { word-break: break-all; }
.alert > .icon-base { flex: none; margin-top: 2px; }
.alert.d-flex { align-items: flex-start; }
/* etichete pentru campurile din randurile de preturi si variante: doar pe telefon */
.rp-c, .ro-c { display: block; margin: 0; min-width: 0; }
.rp-c small, .ro-c small { display: none; font-size: .7rem; color: var(--bs-secondary-color); margin-bottom: 2px; }
@media (max-width: 575.98px) {
  .rp-c small, .ro-c small { display: block; }
  .ro-cap { display: none; }
  .ro { display: grid !important; grid-template-columns: 1fr 1fr 1fr !important; gap: 8px; padding: 10px; border: 1px solid var(--bs-border-color); border-radius: 10px; align-items: end; }
  .ro > .ro-et { grid-column: 1 / -2; }
  .ro > [data-sterge-ro] { grid-column: -2 / -1; grid-row: 1; justify-self: end; width: 40px; height: 40px; }
  .ro > .ro-ds { grid-column: 1 / -1; }
}
@media (min-width: 768px) { .tabla { min-height: 0; } }
@media (max-width: 575.98px) {
  .tabel-admin .sub-rand { white-space: normal; max-width: none; display: -webkit-box !important; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
  .tabel-admin td.pret .sub-rand { display: none !important; }
  .tabel-admin td, .tabel-admin th { white-space: normal; }
  .tabel-admin td.pret { white-space: nowrap; }
  #antet-admin { flex-wrap: nowrap !important; }
  #antet-admin > div:first-child { min-width: 0; }
  #antet-admin .ak-actiuni { width: auto !important; flex: none !important; }
}
@media (max-width: 575.98px) { .tabel-admin th { white-space: nowrap; } }

/* ghidul de instalare a aplicatiei Android pentru SMS */
.ghid-apk > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ghid-apk > summary::-webkit-details-marker { display: none; }
.ghid-apk > summary h5 { display: flex; align-items: center; gap: .5rem; }
.ghid-apk > summary h5 .icon-base { color: #3ddc84; font-size: 22px; }
.ghid-apk > summary > .icon-base { transition: transform .2s; color: var(--bs-secondary-color); flex: none; }
.ghid-apk[open] > summary > .icon-base { transform: rotate(180deg); }
.ghid-pasi { list-style: none; counter-reset: gp; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ghid-pasi > li { counter-increment: gp; display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 0; }
.ghid-pasi > li + li { border-top: 1px solid var(--bs-border-color); }
.ghid-pasi > li::before { content: counter(gp); flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: .9rem; background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); }
.gp-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.gp-text > b { font-size: .98rem; color: var(--bs-heading-color, var(--bs-body-color)); }
.gp-text > span { color: var(--bs-secondary-color); line-height: 1.55; font-size: .9rem; }
.gp-text > span b { color: var(--bs-body-color); font-weight: 600; }
.gp-butoane { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.gp-qr { flex: none; width: 150px; }
.gp-qr svg { width: 100%; height: auto; display: block; }
@media (max-width: 575.98px) { .ghid-pasi > li { flex-wrap: wrap; } .gp-qr { display: none; } .gp-butoane .btn { flex: 1 1 100%; } }
.ghid-apk .qr-cutie { background: #fff; border-radius: 12px; padding: 10px; }

/* telefoanele care trimit SMS: carduri de dispozitiv */
.sms-grila { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; padding: 0 1.5rem 1.5rem; }
.sms-card { border: 1px solid var(--bs-border-color); border-radius: 16px; background: color-mix(in srgb, var(--bs-body-color) 2.5%, transparent); overflow: hidden; }
.sms-card.inactiv { opacity: .6; }
.sms-cap { display: flex; align-items: center; gap: 12px; padding: 16px 12px 14px 16px; }
.sms-ic { position: relative; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--bs-body-color) 7%, transparent); flex: none; }
.sms-ic .icon-base { font-size: 22px; }
.sms-ic i:last-child { position: absolute; right: -3px; bottom: -3px; width: 13px; height: 13px; border-radius: 50%; border: 2.5px solid var(--bs-paper-bg); background: #8a8f99; }
.sms-ic.st-verde i:last-child { background: #28c76f; box-shadow: 0 0 0 0 rgba(40,199,111,.6); animation: sms-puls 2.2s infinite; }
.sms-ic.st-galben i:last-child { background: #ff9f43; }
.sms-ic.st-albastru i:last-child { background: #00bad1; }
@keyframes sms-puls { 0% { box-shadow: 0 0 0 0 rgba(40,199,111,.55); } 70% { box-shadow: 0 0 0 7px rgba(40,199,111,0); } 100% { box-shadow: 0 0 0 0 rgba(40,199,111,0); } }
.sms-nume { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.sms-nume b { font-size: 1rem; font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sms-nume small { color: var(--bs-secondary-color); font-size: .8rem; }
.sms-stare { flex: none; font-size: .75rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; }
.sms-stare.st-verde { background: rgba(40,199,111,.14); color: #28c76f; }
.sms-stare.st-galben { background: rgba(255,159,67,.14); color: #ff9f43; }
.sms-stare.st-albastru { background: rgba(0,186,209,.14); color: #00bad1; }
.sms-stare.st-gri { background: color-mix(in srgb, var(--bs-body-color) 8%, transparent); color: var(--bs-secondary-color); }
.sms-cifre { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); }
.sms-cifre > div { padding: 12px 16px; display: flex; flex-direction: column; gap: 2px; }
.sms-cifre > div + div { border-left: 1px solid var(--bs-border-color); }
.sms-cifre b { font-size: 1.35rem; font-weight: 700; letter-spacing: -.02em; color: var(--bs-heading-color, var(--bs-body-color)); font-variant-numeric: tabular-nums; }
.sms-cifre span { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bs-secondary-color); }
.sms-cifre .are-esuate b { color: #ff6b70; }
.sms-detalii { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 12px 16px 14px; font-size: .82rem; color: var(--bs-secondary-color); }
.sms-detalii span { display: inline-flex; align-items: center; gap: 6px; }
.sms-detalii .icon-base { font-size: 16px; }
.sms-gol { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 2.5rem 1.5rem; text-align: center; color: var(--bs-secondary-color); }
.sms-gol .icon-base { font-size: 32px; margin-bottom: 4px; }
.sms-gol b { color: var(--bs-body-color); }
@media (max-width: 575.98px) { .sms-grila { grid-template-columns: 1fr; padding: 0 1rem 1rem; } .sms-cifre > div { padding: 10px 12px; } }
.sms-cifre span { white-space: nowrap; }
.sms-card { overflow: visible; } .sms-card .sms-cifre { border-radius: 0; }
/* carduri telefoane SMS: curatare (fara linii in plus, antet pe doua randuri) */
.sms-card { overflow: visible; display: flex; flex-direction: column; }
.sms-cap { padding: 16px 10px 16px 16px; align-items: center; }
.sms-nume { gap: 4px; }
.sms-sub { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sms-sub small { color: var(--bs-secondary-color); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sms-stare { padding: 2px 9px; font-size: .72rem; }
.sms-cifre { border-bottom: 0; margin-top: auto; }
.sms-cifre > div { padding: 14px 16px 16px; }
.sms-detalii { border-top: 1px solid var(--bs-border-color); }
.sms-ic { width: 46px; height: 46px; }
.sms-ic i:last-child { border-color: color-mix(in srgb, var(--bs-paper-bg) 100%, transparent); }
.sms-grila { grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)) !important; } .sms-card { min-width: 0; }

/* codul de asociere al telefonului SMS: fereastra peste pagina */
.modal-cod-sms .modal-dialog { max-width: 440px; }
.cod-qr-mare { background: #fff; border-radius: 16px; padding: 14px; width: min(260px, 100%); margin: 4px auto 18px; }
.cod-qr-mare svg { width: 100%; height: auto; display: block; }
.cod-pasi { margin: 0 0 14px; padding-left: 1.2rem; color: var(--bs-secondary-color); line-height: 1.6; font-size: .92rem; }
.cod-pasi b { color: var(--bs-body-color); }
.cod-manual summary { cursor: pointer; color: var(--bs-primary); font-size: .88rem; font-weight: 500; }
.sms-asociaza { padding: 0 16px 14px; }
.sms-asociaza form { margin: 0; }

/* SMS: cum se impart mesajele intre telefoane */
.sms-distributie { margin: 0 1.5rem 1.5rem; padding: 1.1rem 1.25rem 1.25rem; border: 1px solid var(--bs-border-color); border-radius: 16px; }
.sd-cap { display: flex; flex-direction: column; gap: 2px; margin-bottom: .9rem; }
.sd-cap b { font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); }
.sd-cap span { font-size: .82rem; color: var(--bs-secondary-color); }
.sd-optiuni { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.sd-opt { position: relative; display: block; margin: 0; cursor: pointer; }
.sd-opt input { position: absolute; opacity: 0; }
.sd-opt > span { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 12px 14px 12px 40px; border: 1.5px solid var(--bs-border-color); border-radius: 12px; transition: border-color .15s, background .15s; }
.sd-opt > span::before { content: ""; position: absolute; left: 14px; top: 14px; width: 16px; height: 16px; border-radius: 50%; border: 2px solid var(--bs-border-color); }
.sd-opt input:checked + span { border-color: var(--bs-primary); background: rgba(var(--bs-primary-rgb), .07); }
.sd-opt input:checked + span::before { border-color: var(--bs-primary); box-shadow: inset 0 0 0 3px var(--bs-paper-bg); background: var(--bs-primary); }
.sd-opt b { font-weight: 600; font-size: .92rem; }
.sd-opt small { color: var(--bs-secondary-color); font-size: .8rem; line-height: 1.45; }
.sd-principal { margin-top: .5rem; }
.sd-jos { display: flex; justify-content: flex-end; margin-top: 1rem; }
.sms-principal { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: .7rem; font-weight: 600; background: rgba(255,193,7,.14); color: #ffc107; vertical-align: 2px; }
.sms-principal .icon-base { font-size: 12px; }
@media (max-width: 575.98px) { .sms-distributie { margin: 0 1rem 1rem; padding: 1rem; } .sd-jos .btn { width: 100%; } }
.sms-titlu { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sms-titlu b { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem; font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); }
.sms-principal { margin-left: 0; vertical-align: baseline; flex: none; line-height: 1.5; }
.sms-principal .icon-base { width: 12px !important; height: 12px !important; font-size: 12px !important; flex: none; }
#nav-admin .nav-grup > .grup { padding: 8px 12px !important; min-height: 34px; line-height: 1.2; }
#nav-admin .nav-grup > .grup:hover { background: color-mix(in srgb, var(--bs-body-color) 7%, transparent) !important; color: var(--bs-body-color) !important; }
/* antetul cardului de telefon: numele + o singura eticheta de stare; dedesubt un rand discret */
.sms-cap { gap: 12px; }
.sms-nume { gap: 3px; }
.sms-nume > b { font-size: 1rem; font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sms-linie { display: flex; align-items: center; gap: 6px; color: var(--bs-secondary-color); font-size: .8rem; white-space: nowrap; overflow: hidden; }
.sms-linie .sep { font-style: normal; opacity: .6; }
.sms-princ { display: inline-flex; align-items: center; gap: 4px; color: #e0b43a; font-weight: 500; }
.sms-princ .icon-base { width: 12px !important; height: 12px !important; font-size: 12px !important; }
.sms-cap > .sms-stare { flex: none; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; font-size: .74rem; }
.sms-cap > .sms-stare > i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sms-r1 { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.sms-r1 b { font-size: 1rem; font-weight: 600; color: var(--bs-heading-color, var(--bs-body-color)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.sms-r1 .sms-princ { flex: none; font-size: .76rem; align-self: center; }
.sms-linie { min-width: 0; }
.sms-st { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; flex: none; }
.sms-st > i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sms-st.st-verde { color: #28c76f; } .sms-st.st-galben { color: #ff9f43; } .sms-st.st-albastru { color: #00bad1; } .sms-st.st-gri { color: var(--bs-secondary-color); }
.sms-vazut { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.sms-stea { display: inline-grid; place-items: center; color: #e0b43a; flex: none; align-self: center; }
.sms-stea .icon-base { width: 14px !important; height: 14px !important; font-size: 14px !important; }
.sms-linie { display: block; color: var(--bs-secondary-color); font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
