/* v8 · agent W · Panoul pe telefon și tabletă. Încărcat ULTIMUL.
   Regula de aur: la 1280 px și peste nu se schimbă nimic (toate regulile de mai jos sunt în @media max-width).
   Singura regulă în afara @media: scoatem min-width: 1280px din panou.css (la ≥1280 px nu avea niciun efect). */

body { min-width: 0; }

/* ---------- 1024–1279 px: doar să nu mai iasă pagina din ecran ---------- */
@media (max-width: 1279px) {
  .pa-app { min-width: 0; }
  .pa-main { min-width: 0; }
}

/* ---------- Tabletă și telefon (≤1023 px): meniul devine bara de sus ---------- */
@media (max-width: 1023px) {
  .pa-app { flex-direction: column; min-height: 100vh; }

  /* bara de sus: logo + numele cabinetului + butonul „Meniu” (pus de js/mobil.js) */
  .pa-app > .pa-sidebar { flex: none; position: sticky; top: 0; z-index: 30; width: 100%; height: auto; overflow: visible;
    padding: 10px 16px; gap: 2px; border-right: 0; border-bottom: 1px solid var(--hair); background: var(--void); }
  .pa-sidebar .pa-brand { padding: 0; gap: 12px; min-height: 48px; }
  .pa-sidebar .pa-brand > div { flex: 1; min-width: 0; }
  .pa-sidebar .pa-brand-name { font-size: 19px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pa-sidebar .pa-brand-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* cu js/mobil.js: legăturile stau ascunse până la „Meniu”. Fără el, meniul rămâne întreg, sus (tot merge). */
  .pa-sidebar[data-w-mobil]:not(.w-deschis) > :not(.pa-brand) { display: none; }
  .pa-sidebar[data-w-mobil]:not(.w-deschis) .pa-brand .pa-label,
  .pa-sidebar[data-w-mobil]:not(.w-deschis) .pa-brand-sub { display: none; }

  .w-meniu-btn { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-width: 104px; min-height: 48px;
    padding: 0 16px; border-radius: 10px; border: 1px solid var(--hair-card); background: var(--panel); color: var(--cream); cursor: pointer;
    font-family: var(--font-mono); font-weight: 500; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
  .w-meniu-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
  .w-meniu-btn .pa-badge { letter-spacing: 0; }
  .w-meniu-btn svg { flex: none; }

  /* meniul deschis: tot ecranul, cu derulare proprie */
  .pa-app > .pa-sidebar.w-deschis { position: fixed; inset: 0; z-index: 60; height: 100%; overflow-y: auto; overscroll-behavior: contain;
    padding: 10px 16px 28px; gap: 4px; border-bottom: 0; }
  .pa-sidebar.w-deschis .pa-brand { padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid var(--hair-row); }
  .pa-sidebar.w-deschis .pa-nav { min-height: 54px; font-size: 17px; }
  .pa-sidebar.w-deschis .pa-section-label { padding: 14px 10px 4px; }
  .pa-sidebar.w-deschis .pa-sidebar-foot { margin-top: 18px; }
  .pa-sidebar .pa-link-mic { min-height: 44px; padding: 0 4px; font-size: 12px; }
  body.w-meniu { overflow: hidden; }

  /* conținutul și coloana din dreapta, una sub alta */
  .pa-main { flex: 1 1 auto; width: 100%; padding: 22px 20px 32px; gap: 22px; }
  .pa-main--tight { gap: 14px; }
  .pa-app > .pa-rail { flex: none; width: 100%; min-width: 0; padding: 24px 20px 32px; border-left: 0; border-top: 1px solid var(--hair); }

  /* grilele cu două coloane fixe trec pe una (și cele cu coloane scrise direct în pagină) */
  .pa-doc-grid, .pa-doc-grid[style] { grid-template-columns: minmax(0, 1fr) !important; gap: 22px; }
  .pa-grid2, .pa-grid2[style], .h-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 22px; }
  .pa-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pa-n-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .pa-doc-grid > *, .pa-grid2 > *, .pa-grid3 > *, .pa-n-grid > * { min-width: 0; }

  /* prima pagină: roata sus, cele 6 carduri dedesubt, în grilă (fără linii) */
  .pa-hubwrap { overflow: visible; display: block; }
  .pa-hubstage { width: auto; height: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .pa-hubline { display: none; }
  .pa-hub { position: relative; left: auto; top: auto; grid-column: 1 / -1; justify-self: center; width: 220px; height: 220px; margin: 40px 0 46px; }
  .pa-hub > svg { width: 100%; height: 100%; }
  .pa-hub-ring2 { inset: -24%; }
  .pa-hub-name { font-size: 46px; }
  .pa-hub-center > .pa-label { display: none; }
  .pa-hubstage .pa-flow { position: relative; left: auto !important; top: auto !important; width: auto; min-width: 0; min-height: 84px; }

  /* hârtia actului */
  .pa-paper { padding: 32px 30px; overflow-wrap: anywhere; }

  /* tabelele lungi se derulează în cutia lor (secțiunile nu au voie să se lărgească după tabel) */
  .pa-main > *, .pa-sec, .pa-sec > *, .pa-stack > *, .pa-side > *, .pa-n-col > * { min-width: 0; max-width: 100%; }
  .v-tabel-cadru, .v-grafic, .o-tabel-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .pa-card table { max-width: none; }

  /* conversația */
  .pa-chat .pa-bubble { max-width: 86%; }
  .pa-bubble, .pa-row-name, .pa-row-detail, .pa-kv, .pa-prow-txt, .pa-actcard-t, .pa-conn-txt { overflow-wrap: anywhere; }

  /* mesaje mici */
  .pa-toast { left: 16px; right: 16px; max-width: none; }
  .pa-scrim { padding: 16px; }
  .pa-dialog { max-width: 100%; max-height: calc(100vh - 32px); }
}

/* ---------- Telefon (≤640 px) ---------- */
@media (max-width: 640px) {
  .pa-root { font-size: 16px; }
  .pa-main { padding: 18px 16px 28px; gap: 20px; }
  .pa-app > .pa-rail { padding: 22px 16px 28px; }
  .pa-sidebar .pa-brand-sub { display: none; }

  .pa-h1 { font-size: 32px; overflow-wrap: anywhere; hyphens: auto; }
  .pa-h2 { font-size: 21px; overflow-wrap: anywhere; }
  .pa-lead { font-size: 18px; }
  .pa-head { align-items: flex-start; }
  .pa-head > * { max-width: 100%; }
  .pa-tag { max-width: 100%; }
  .pa-tag b { flex: none; }
  .pa-tag span { min-width: 0; line-height: 1.5; }
  .pa-sec-head > div { flex-wrap: wrap; row-gap: 4px; min-width: 0; }
  .pa-sec-head > div > .pa-meta { flex-basis: 100%; }
  .pa-hint > svg { flex: none; }
  /* Generare: „Alice caută singură actele…” — rândul de text nu se mai rupe în coloane */
  [data-surse] > div > span:first-child { display: block !important; }
  [data-surse] .pa-dot { display: inline-block; margin-right: 8px; }

  /* butoane: cel puțin 44 px, textul lung trece pe două rânduri în loc să iasă din ecran */
  .pa-btn { height: auto; min-height: 44px; padding-top: 9px; padding-bottom: 9px; max-width: 100%; white-space: normal; line-height: 1.35; }
  .pa-btn--sm { min-height: 44px; }
  .pa-btn--cta { min-height: 54px; padding-left: 18px; padding-right: 18px; letter-spacing: .16em; }
  .pa-chipbtn, .pa-opt { min-height: 44px; height: auto; max-width: 100%; white-space: normal; text-align: left; }
  .pa-actions { width: 100%; }
  .pa-actions > .pa-btn { flex: 1 1 auto; justify-content: center; }

  /* câmpurile de formular la 16 px: iOS nu mai mărește pagina când scrieți */
  input, select, textarea, .pa-input, .pa-textarea, .pa-select, .o-celula { font-size: 16px !important; }
  .pa-input, .pa-textarea, .pa-select { max-width: 100%; min-width: 0; }
  .pa-i-drop-rand .pa-select { min-width: 0; flex: 1 1 100%; }
  .v-alege .pa-input { min-width: 0; flex: 1 1 140px; }
  .pa-search { height: 48px; }

  .pa-grid3 { grid-template-columns: minmax(0, 1fr); }
  .pa-hubstage { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .pa-hub { width: 190px; height: 190px; margin: 34px 0 40px; }
  .pa-hub-name { font-size: 40px; }
  .pa-hubstage .pa-flow { min-height: 0; }

  .pa-row { padding: 16px; gap: 10px 14px; }
  .pa-row-main { flex-basis: 200px; }
  .pa-card .pa-row-main[style] { flex-basis: 200px !important; }
  .pa-empty, .pa-error { padding: 16px; }
  .pa-kv { padding: 12px 16px; }
  .pa-ciorna { padding: 16px; }
  .pa-boxcard, .pa-flux-col { padding: 18px; }
  .pa-drop { padding: 18px 16px; }
  .pa-drop-t { flex-basis: 100%; }
  .pa-actcard { padding: 14px; }

  .pa-stat { flex-wrap: wrap; gap: 14px 20px; padding: 20px; }
  .pa-stat-nr { font-size: 76px; }
  .pa-bignr { font-size: 46px; }

  .pa-paper { padding: 22px 18px; font-size: 16px; border-radius: 4px; }
  .pa-camp { min-width: 110px; max-width: 100%; }

  .pa-chat { padding: 16px; max-height: 62vh; }
  .pa-chat .pa-bubble { max-width: 90%; }
  .pa-compose { padding: 16px; }
  .pa-i-banda .pa-chat { max-height: 60vh; }

  .pa-rail-row { padding: 6px 12px; }
  .pa-prow { padding: 8px 12px; }

  .pa-login { padding: 16px; }
  .pa-login form { width: 100%; max-width: 440px; padding: 26px 20px; }

  .pa-dialog-head { padding: 18px 18px 6px; }
  .pa-dialog-body { padding: 10px 18px 16px; }
  .pa-dialog-foot { padding: 14px 18px 18px; }
  .pa-dialog-foot > .pa-btn { flex: 1 1 auto; justify-content: center; }
  .pa-formular { padding: 14px; }
  .pa-conn { padding: 18px; }

  .h-bifa, .h-pas, .h-doc, .h-anexa { padding-left: 16px; padding-right: 16px; }
  .o-tabele { padding: 16px; }
  .pa-n-pasi { grid-template-columns: minmax(0, 1fr); }
  .v-cifra { padding: 18px; }
  .pa-foot > * { max-width: 100%; }
  .pa-foot .pa-btn--cta { flex: 1 1 100%; justify-content: center; }
}

@media (max-width: 1023px) and (prefers-reduced-motion: reduce) {
  .pa-sidebar.w-deschis { transition: none; }
}
