/* ---- Sucursala activă a filei și rândurile doar de văzut (planul 36/18 W2a.7) -----
   Numai clase noi, deci ultima foaie a recepției. Nimic de aici nu se aplică fără
   blocul `tenancy` din /api/config: `body.tenancy`, `#activeBranch`, `.read-only-mark`
   și `.branch-chip` le pune doar active-branch.js, și doar cât comutatorul
   appointments_by_branch e pornit pentru ea. */

/* Capul barei laterale: sigla și butonul pe un rând, sucursala sub ele, pe toată lățimea. */
body.tenancy .sidebar-header {
  flex-wrap: wrap;
}
.active-branch {
  flex: 1 0 100%;
  display: flex;
  min-width: 0;
}
.active-branch[hidden],
.sidebar.collapsed .active-branch {
  display: none;
}
.active-branch .se-select,
.active-branch-select {
  width: 100%;
}
/* Cipul sucursalei: un arc bleumarin se rotește pe margine și o lumină trece peste text,
   ca să se vadă dintr-o privire pe ce sucursală lucrează fila. Marginea de 1.5px e scăzută
   din padding, deci cipul are aceeași mărime ca înainte. Starea goală rămâne statică.
   Bucla e cerută de proprietar (excepție de la „scurt și o dată"); oprită la mișcare redusă. */
@property --active-branch-ang {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
.active-branch-chip {
  --active-branch-bg: var(--se-color-badge-gray-100);
  --active-branch-fg: var(--se-color-badge-gray-600);
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: calc(var(--se-space-4) - 1.5px) calc(var(--se-space-12) - 1.5px);
  border: 1.5px solid transparent;
  border-radius: var(--se-radius-pill);
  background:
    linear-gradient(var(--active-branch-bg), var(--active-branch-bg)) padding-box,
    conic-gradient(
        from var(--active-branch-ang),
        transparent 0 55%,
        var(--se-color-primary-60) 78%,
        transparent 95%
      )
      border-box;
  color: var(--active-branch-fg);
  font-size: var(--se-type-micromed-size);
  line-height: var(--se-type-micromed-line);
  font-weight: var(--se-type-micromed-weight);
  overflow: hidden;
  white-space: nowrap;
  animation: active-branch-spin 4s linear infinite;
}
.active-branch-chip-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  background: linear-gradient(
    90deg,
    var(--active-branch-fg) 35%,
    var(--se-color-primary-60) 50%,
    var(--active-branch-fg) 65%
  );
  background-size: 250% 100%;
  background-position: 100% 0;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: active-branch-sheen 3.2s ease-in-out infinite;
}
/* „Nicio sucursală atribuită" (R6): o stare de spus, nu o eroare — fără arc, fără lumină. */
.active-branch-chip.is-empty {
  --active-branch-bg: var(--se-color-badge-yellow-100);
  --active-branch-fg: var(--se-color-badge-yellow-600);
  background: var(--active-branch-bg);
  animation: none;
}
.active-branch-chip.is-empty .active-branch-chip-text {
  background: none;
  color: var(--active-branch-fg);
  animation: none;
}
@keyframes active-branch-spin {
  to {
    --active-branch-ang: 360deg;
  }
}
@keyframes active-branch-sheen {
  0% {
    background-position: 100% 0;
  }
  60%,
  100% {
    background-position: 0 0;
  }
}

/* „Doar vizualizare · <Sucursala>" în locul ușilor de scriere ale unui rând. */
.read-only-mark {
  display: inline-flex;
  align-items: center;
  gap: var(--se-space-4);
  color: var(--se-color-text-secondary);
  font-size: var(--se-type-micromed-size);
  line-height: var(--se-type-micromed-line);
}
.read-only-mark .ph {
  width: var(--se-size-icon-functional);
  height: var(--se-size-icon-functional);
  flex-shrink: 0;
}
/* În coloana îngustă a meniului din foaia zilei: doar ochiul, eticheta în titlu. */
.read-only-mark.is-compact {
  justify-content: center;
  width: 100%;
}
.prog-cal-appt .read-only-mark {
  margin-top: var(--se-space-8);
}

/* ---- „Cereri între sucursale" (planul 36/18 W3b.5) -------------------------------------
   Numai clase noi. Nodurile le CREEAZĂ cereri.js și cereri-modal.js, și doar cât
   comutatorul branch_requests e pornit pentru ea: oprit, nimic de aici nu se aplică. */

/* Un rând al unei cereri (pagina „Cereri" și cardul fișei): separat prin umplere, nu prin
   linie, ca rândurile docului. */
.cereri-list {
  gap: var(--se-space-8);
}
.cerere-row {
  display: flex;
  flex-direction: column;
  gap: var(--se-space-4);
  padding: var(--se-space-12);
  border-radius: var(--se-radius-md);
  background: var(--se-color-bg-surface);
}
.cerere-row.is-urgent {
  background: var(--se-color-bg-red-light);
}
.cerere-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--se-space-8);
  min-width: 0;
}
.cerere-head .r-main {
  min-width: 0;
  overflow-wrap: anywhere;
}
.cerere-details,
.cerere-closing {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: var(--se-type-bodyreg-size);
  line-height: var(--se-type-bodyreg-line);
}
.cerere-lines {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--se-space-12);
}
.cerere-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--se-space-8);
  margin-top: var(--se-space-4);
}
.cerere-note {
  display: flex;
  flex-direction: column;
  gap: var(--se-space-4);
  margin-top: var(--se-space-4);
}
.cerere-note textarea {
  width: 100%;
  resize: vertical;
}
.cereri-status {
  display: inline-flex;
  align-items: center;
  gap: var(--se-space-4);
  color: var(--se-color-text-secondary);
  font-size: var(--se-type-micromed-size);
  line-height: var(--se-type-micromed-line);
}

/* Fereastra: sucursala de la care pleacă cererea, scrisă (nu aleasă) când e una singură. */
.cerere-from {
  font-weight: var(--se-type-bodysb-weight);
}
.cerere-choices {
  display: flex;
  flex-wrap: wrap;
  gap: var(--se-space-8);
}

/* Oferta de după un refuz: deasupra toastului care spune refuzul, centrată. */
.cerere-offer {
  position: fixed;
  left: 50%;
  bottom: calc(26px + var(--se-size-control) + var(--se-space-12));
  transform: translateX(-50%);
  z-index: 60;
  display: flex;
  align-items: center;
  gap: var(--se-space-8);
  padding: var(--se-space-8) var(--se-space-12);
  border-radius: var(--se-radius-pill);
  background: var(--se-color-bg-canvas);
  box-shadow: var(--shadow-float);
}
.cerere-offer[hidden] {
  display: none;
}

/* „Transferă la sucursală" (planul 36/18 W3c.6, call-transfer.js, comutatorul
   call_transfer): butonul sub corpul docului, fereastra „Unde transferi?" și bannerul
   de deasupra conversației la cel care a preluat. Toate nodurile sunt create de JS. */
.call-dock-transfer {
  display: flex;
  padding: 0 var(--se-space-12) var(--se-space-8) var(--se-space-16);
}
.call-dock-transfer[hidden] {
  display: none;
}
.transfer-targets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--se-space-8);
}
.transfer-target {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--se-space-12);
  padding: var(--se-space-12);
  border: 1px solid var(--se-color-border-default);
  border-radius: var(--se-radius-md);
  background: var(--se-color-bg-surface);
  color: var(--se-color-text-title);
  text-align: left;
  cursor: pointer;
}
.transfer-target:hover:not(:disabled),
.transfer-target:focus-visible {
  border-color: var(--se-color-border-strong);
}
.transfer-target:disabled {
  cursor: not-allowed;
  color: var(--se-color-text-disabled);
  background: var(--se-color-bg-app);
}
.transfer-target-name {
  font-weight: var(--se-type-bodysb-weight);
}
.transfer-target-city,
.transfer-target-status {
  font-weight: normal;
  color: var(--se-color-text-secondary);
  font-size: var(--se-type-micromed-size);
  line-height: var(--se-type-micromed-line);
}
.transfer-target.is-free .transfer-target-status {
  color: var(--se-color-status-success);
}
.transfer-target:disabled .transfer-target-status {
  color: var(--se-color-text-disabled);
}
.transfer-empty {
  color: var(--se-color-text-secondary);
}
.stt-transfer-banner {
  margin: 0 0 var(--se-space-8);
  padding: var(--se-space-8) var(--se-space-12);
  border-radius: var(--se-radius-md);
  background: var(--se-color-status-warning-bg);
  color: var(--se-color-text-title);
  font-size: var(--se-type-bodyreg-size);
  line-height: var(--se-type-bodyreg-line);
}
.stt-transfer-banner[hidden] {
  display: none;
}
/* „Istoric apeluri": lanțul unui apel transferat (W3c.7, transcript-transfer.js). */
.transcript-transfer-chain {
  margin: 0 0 var(--se-space-8);
  color: var(--se-color-text-secondary);
  font-size: var(--se-type-micromed-size);
  line-height: var(--se-type-micromed-line);
}

/* Mișcare redusă: cipul sucursalei stă pe loc — margine discretă, text în culoarea lui. */
@media (prefers-reduced-motion: reduce) {
  .active-branch-chip {
    animation: none;
    background: var(--active-branch-bg);
    border-color: var(--se-color-primary-20);
  }
  .active-branch-chip.is-empty {
    border-color: transparent;
  }
  .active-branch-chip-text {
    animation: none;
    background: none;
    color: var(--active-branch-fg);
  }
}
