/* Meniul contului + fereastra „Sesiunea urmează să expire” — componenta comună RNDC (rnc_cont).
   IDENTIC în toate aplicațiile. Clase proprii (rnc-cont*, rnc-sesiune*): nu depinde de Bootstrap
   și nu atinge stilurile aplicației; butonul păstrează clasele vechi (.pasaport-profile) ca bara
   laterală să arate la fel. */
.rnc-cont { position: relative; }
.rnc-cont__buton { cursor: pointer; font: inherit; color: inherit; }
.rnc-cont__ramas-scurt { font-variant-numeric: tabular-nums; }

.rnc-cont__meniu {
  position: absolute; left: 0; bottom: calc(100% + 10px); z-index: 2000;
  width: 272px; max-width: calc(100vw - 24px); padding: 8px;
  background: #fff; color: #16273f; border-radius: 16px;
  border: 1px solid rgba(15, 38, 74, .1);
  box-shadow: 0 24px 48px -18px rgba(11, 35, 70, .42), 0 4px 12px -6px rgba(11, 35, 70, .18);
  font-size: 14px; line-height: 1.35; text-align: left;
  animation: rnc-cont-in .14s cubic-bezier(.3, .7, .3, 1);
}
.rnc-cont__meniu[hidden] { display: none; }
.rnc-cont--jos .rnc-cont__meniu { top: calc(100% + 8px); bottom: auto; left: auto; right: 0; }
@keyframes rnc-cont-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.rnc-cont__antet { display: flex; align-items: center; gap: 10px; padding: 8px 8px 10px; }
.rnc-cont__avatar {
  flex: none; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
  font-weight: 800; font-size: 15px; color: #fff; background: linear-gradient(140deg, #15529a, #0b2e59);
}
.rnc-cont__id { min-width: 0; display: grid; gap: 2px; }
.rnc-cont__id b { font-weight: 800; font-size: 14px; color: #0b2e59; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rnc-cont__id small { font-size: 12px; color: #5b6b85; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rnc-cont__sesiune {
  display: flex; align-items: center; gap: 8px; margin: 0 2px 6px; padding: 9px 11px; border-radius: 12px;
  background: #f1f5fb; border: 1px solid rgba(21, 82, 154, .12); color: #3a4d68; font-size: 12.5px;
}
.rnc-cont__sesiune svg { flex: none; width: 17px; height: 17px; fill: none; stroke: #15529a; stroke-width: 1.8; stroke-linecap: round; }
.rnc-cont__sesiune span { flex: 1; }
.rnc-cont__sesiune b { font-size: 14px; font-weight: 800; color: #0b2e59; font-variant-numeric: tabular-nums; }
.rnc-cont__sesiune.is-aproape { background: #fff6e8; border-color: rgba(194, 120, 3, .28); }
.rnc-cont__sesiune.is-aproape svg { stroke: #b26a00; }
.rnc-cont__sesiune.is-aproape b { color: #8a4f00; }

.rnc-cont__linkuri { display: grid; gap: 2px; padding: 2px 0 6px; border-bottom: 1px solid rgba(15, 38, 74, .08); }
.rnc-cont__link, .rnc-cont__iesire {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 10px;
  border: 0; background: transparent; font: inherit; font-weight: 600; text-decoration: none; text-align: left; cursor: pointer;
}
.rnc-cont__link { color: #22344f; }
.rnc-cont__link:hover, .rnc-cont__link:focus-visible { background: rgba(15, 103, 190, .08); color: #0f67be; outline: none; }
.rnc-cont__link svg, .rnc-cont__iesire svg { flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rnc-cont__iesire-form { margin: 6px 0 0; }
.rnc-cont__iesire { color: #b42318; }
.rnc-cont__iesire:hover, .rnc-cont__iesire:focus-visible { background: rgba(180, 35, 24, .08); outline: none; }

/* ── fereastra de expirare ── */
.rnc-sesiune { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; padding: 16px; }
.rnc-sesiune[hidden] { display: none; }
.rnc-sesiune__fundal { position: absolute; inset: 0; background: rgba(9, 24, 48, .45); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.rnc-sesiune__fereastra {
  position: relative; width: min(400px, 100%); padding: 28px 26px 22px; border-radius: 22px; text-align: center;
  background: #fff; color: #16273f; box-shadow: 0 30px 70px -24px rgba(9, 24, 48, .55);
  font-family: inherit; animation: rnc-cont-in .18s cubic-bezier(.3, .7, .3, 1);
}
.rnc-sesiune__inel { position: relative; width: 112px; height: 112px; margin: 0 auto 14px; }
.rnc-sesiune__inel svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.rnc-sesiune__pista { fill: none; stroke: #e8eef7; stroke-width: 9; }
.rnc-sesiune__arc { fill: none; stroke: #15529a; stroke-width: 9; stroke-linecap: round; transition: stroke-dashoffset 1s linear; }
.rnc-sesiune__timp { position: absolute; inset: 0; display: grid; place-items: center; font-size: 26px; font-weight: 800; color: #0b2e59; font-variant-numeric: tabular-nums; }
.rnc-sesiune__titlu { margin: 0 0 6px; font-size: 19px; font-weight: 800; color: #0b2e59; }
.rnc-sesiune__text { margin: 0 0 20px; font-size: 14px; color: #5b6b85; }
.rnc-sesiune__butoane { display: grid; gap: 8px; }
.rnc-sesiune__continua, .rnc-sesiune__iesire { width: 100%; border: 0; border-radius: 12px; font: inherit; font-weight: 700; cursor: pointer; }
.rnc-sesiune__continua { padding: 12px 16px; font-size: 15px; color: #fff; background: linear-gradient(140deg, #15529a, #0b2e59); box-shadow: 0 10px 22px -12px rgba(11, 46, 89, .8); }
.rnc-sesiune__continua:hover { filter: brightness(1.08); }
.rnc-sesiune__iesire { padding: 9px 16px; font-size: 13.5px; color: #5b6b85; background: transparent; }
.rnc-sesiune__iesire:hover { color: #b42318; background: rgba(180, 35, 24, .06); }
.rnc-sesiune__continua:focus-visible, .rnc-sesiune__iesire:focus-visible { outline: 3px solid rgba(15, 103, 190, .45); outline-offset: 2px; }
.rnc-sesiune__vizual { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html.rnc-sesiune-deschisa { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .rnc-cont__meniu, .rnc-sesiune__fereastra { animation: none; } .rnc-sesiune__arc { transition: none; } }

/* clopoțel-link (aplicațiile fără proxy de notificări, ex. auth): aceeași pastilă ca notificari_clopotel */
.rnc-cont__clopotel { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.rnc-cont__clopotel .pasaport-rail-badge {
  position: absolute; top: .15rem; right: .15rem; min-width: 1.1rem; height: 1.1rem; padding: 0 .28rem;
  display: inline-flex; align-items: center; justify-content: center; border-radius: 999px;
  background: #d9541f; color: #fff; font-size: .66rem; font-weight: 800; line-height: 1; box-shadow: 0 0 0 2px #fff; pointer-events: none;
}

/* bara de sus: pastila contului (landing, harta referențialului, catalog, API) */
.rnc-cont__pastila {
  display: inline-flex; align-items: center; gap: 9px; min-height: 40px; padding: 3px 11px 3px 3px; border-radius: 999px;
  border: 1px solid rgba(21, 82, 154, .16); background: rgba(255, 255, 255, .78); color: #16273f; text-align: left;
  transition: background-color .15s, border-color .15s;
}
.rnc-cont__pastila:hover, .rnc-cont.is-open .rnc-cont__pastila { background: rgba(21, 82, 154, .08); border-color: rgba(21, 82, 154, .26); }
.rnc-cont__pastila:focus-visible { outline: 2px solid #0f67be; outline-offset: 2px; }
.rnc-cont__avatar--mic { width: 32px; height: 32px; font-size: 13px; }
.rnc-cont__pastila-text { display: grid; gap: 1px; min-width: 0; line-height: 1.15; }
.rnc-cont__pastila-nume { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 700; color: #0b2e59; }
.rnc-cont__pastila-meta { font-size: 11px; color: #5b6b85; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rnc-cont__sageata { width: 16px; height: 16px; fill: none; stroke: #5b6b85; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s; }
.rnc-cont.is-open .rnc-cont__sageata { transform: rotate(180deg); }
@media (max-width: 720px) { .rnc-cont__pastila-text, .rnc-cont__sageata { display: none; } .rnc-cont__pastila { padding: 3px; } }

/* doar avatarul (bare proprii, ex. registrul) */
.rnc-cont__avatar-buton { display: inline-grid; place-items: center; padding: 0; border: 0; background: none; border-radius: 50%; }
.rnc-cont__avatar-buton:focus-visible { outline: 2px solid #0f67be; outline-offset: 2px; }
.rnc-cont__avatar-buton:hover .rnc-cont__avatar, .rnc-cont.is-open .rnc-cont__avatar-buton .rnc-cont__avatar { box-shadow: 0 0 0 3px rgba(21, 82, 154, .18); }

/* ── cardul contului din bara laterală (implicit) ─────────────────────────────
   Izolat: fiecare proprietate care poate veni din aplicația gazdă (text-align, line-height, justify,
   lățimi, umbre) e declarată aici, cu selectori prefixați `.rnc-cont`, ca să arate la fel peste tot. */
.rnc-cont .rnc-cont__card {
  box-sizing: border-box; display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 10px;
  width: 100%; min-width: 0; min-height: 44px; margin: 0; padding: 5px 8px 5px 5px; border: 0; border-radius: 14px;
  background: transparent; box-shadow: none; color: #16273f; font: inherit; line-height: 1.2; text-align: left;
  letter-spacing: normal; text-transform: none; cursor: pointer; transition: background-color .15s;
}
.rnc-cont .rnc-cont__card:hover, .rnc-cont.is-open .rnc-cont__card { background: rgba(21, 82, 154, .07); }
.rnc-cont .rnc-cont__card:focus-visible { outline: 2px solid #0f67be; outline-offset: 1px; }
.rnc-cont .rnc-cont__card .rnc-cont__avatar { flex: none; margin: 0; }
.rnc-cont .rnc-cont__card-text { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 2px;
  flex: 1 1 auto; min-width: 0; margin: 0; padding: 0; text-align: left; line-height: 1.2; }
.rnc-cont .rnc-cont__card-nume { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 13px; font-weight: 700; color: #0b2e59; text-align: left; }
.rnc-cont .rnc-cont__card-meta { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: 11.5px; font-weight: 500; color: #5b6b85; text-align: left; font-variant-numeric: tabular-nums; }
/* bara strânsă: doar avatarul, centrat */
html:not(.pasaport-nav-open) .rnc-cont .rnc-cont__card { justify-content: center; padding: 4px; min-height: 40px; }
html:not(.pasaport-nav-open) .rnc-cont .rnc-cont__card-text { display: none; }
/* rândul contului: cardul ia tot locul, clopoțelul rămâne în dreapta */
.rnc-cont.pasaport-profile-dropdown { flex: 1 1 auto; min-width: 0; order: 0; }

/* ── subsolul barei laterale nu se mai lățește după nume ──────────────────────
   `.pasaport-sidebar__footer` e grid (theme.css): coloana crește la min-content-ul celui mai lat copil.
   Numele din card e `nowrap`, deci un nume lung (contul fără nume = emailul) lățea TOT subsolul —
   cardul, dar și rândul Portal + (i) și RO/EN — peste conținut. Coloana se limitează la lățimea barei,
   iar copiii pot scădea sub conținut (numele se taie cu …). Aceeași regulă pentru bara registrului. */
.pasaport-sidebar .pasaport-sidebar__footer { grid-template-columns: minmax(0, 1fr); min-width: 0; max-width: 100%; }
.pasaport-sidebar .pasaport-sidebar__footer > *,
.pasaport-sidebar .pasaport-account-row,
.rnc-rail .rnc-rail__cont { min-width: 0; max-width: 100%; }
.rnc-cont { min-width: 0; max-width: 100%; }
.rnc-cont .rnc-cont__card-text { overflow: hidden; }
/* bara strânsă: bulina ⓘ de pe colțul Portalului, 2 px mai spre interior — rămâne în bară cu margine */
html:not(.pasaport-nav-open) body .pasaport-sidebar__radial-shell--about { right: calc(-.3rem + 2px); }
