/* Portal 1.3.72: fluid layouts; no global zoom or scaling. Load after module styles. */
:root { --page-gutter: clamp(20px, 2.6vw, 40px); }
.lab-main, .topbar-main, .lab-main > *, .lab-main input, .lab-main select,
.lead-focus-workspace > *, .courses-command-layout > *, .agenda-command-layout > * { min-width: 0; }
.lab-main { padding-bottom: 24px; }
.toolbar, .hero-actions, .card-actions, .lead-desk-head, .lead-desk-footer,
.op-focus-detail-head, .op-focus-detail-actions, .courses-focus-card > header,
.training-form-footer, .ch-toolbar-actions, .sales-period-panel { flex-wrap: wrap; }
.lab-main h2, .lab-main h3, .training-card, .ch-person, .ch-document-copy,
.account-grid label, .typology-result dd { overflow-wrap: anywhere; }
.theme-popover, .user-popover { width: min(330px, calc(100vw - 24px)); max-height: calc(100dvh - var(--topbar-h) - 24px); overflow-y: auto; overscroll-behavior: contain; }
/* Eight navigation items and search must share the available header width. */
@media (min-width: 821px) {
  .topbar-main { grid-template-columns: 112px minmax(0, 1fr) auto; gap: 8px; }
  .brand img { width: 104px; height: 50px; }
  .lab-side nav { min-width: 0; overflow: visible; justify-content: flex-start; }
  .lab-side nav button { min-width: max-content; flex: 0 0 auto; padding-inline: 9px; font-size: 12px; }
  .header-course-search { width: clamp(160px, 16vw, 260px); min-width: 0; }
  .header-course-search:focus-within .course-search-field,
  .header-course-search.is-open .course-search-field { width: 100%; margin-left: 0; }
  .header-course-search:focus-within .course-search-results,
  .header-course-search.is-open .course-search-results { left: auto; width: min(420px, calc(100vw - 24px)); }
}
@media (min-width: 821px) and (max-width: 1400px) {
  .lab-side nav .nav-icon { display: none; }

}
/* Dashboard grows with its content: the notes form never loses its buttons. */
body[data-current-view="dashboard"] .lab-main { height: auto; min-height: 0; grid-template-rows: auto; padding-top: 16px; }
.dashboard-today-panel, .dashboard-side-stack .dashboard-notes-panel { min-height: 0; }
.dashboard-today-list, .dashboard-notes-list { max-height: 420px; }
.dashboard-empty-state { min-height: 180px; }
.dashboard-penpot-grid, .dashboard-side-stack { align-items: start; }
/* Remove competing minimum column widths in queue/detail workspaces. */
@media (min-width: 1101px) {
  .lead-focus-workspace { grid-template-columns: minmax(300px, .8fr) minmax(0, 1.4fr); }
}
.lead-focus-detail-panel { min-height: 0; }
.agenda-command-head, .courses-command-head { padding: 14px 18px; gap: 10px 16px; min-height: 0; }
.agenda-command-head h2, .courses-command-head h2, .training-heading h2 { font-size: 22px; }
.agenda-command-head > div:first-of-type { grid-row: 1 / span 2; }
.agenda-day-nav { grid-column: 2; grid-row: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.agenda-day-nav button { padding: 8px 10px; }
body[data-current-view="agenda"] .lab-main > *, body[data-current-view="cursos"] .lab-main > * { margin-top: 0; }
.agenda-day-summary { padding: 16px; }
.agenda-focus-blocks { margin-top: 14px; padding-top: 14px; gap: 12px; }
.agenda-day-total { margin: 8px 0 12px; }
.courses-command-search { max-width: 100%; }
/* Dialogs follow dynamic viewport height, including mobile browser bars. */
.lab2-course-program-dialog, .lab2-course-documents-dialog, .commission-close-dialog,
.outlook-recovery-dialog, .opportunity-modal-dialog, [data-update-modal] > section {
  max-height: calc(100dvh - 24px); max-width: calc(100vw - 24px); overscroll-behavior: contain;
}
.lab2-course-program-header, .lab2-course-documents-dialog > header,
.commission-close-dialog > header, .outlook-recovery-dialog > header,
.opportunity-modal-header { position: sticky; top: 0; z-index: 2; background: var(--surface); }
.lab2-course-viewer-header { flex-wrap: wrap; min-height: 0; }
.lab2-course-viewer-header-actions { flex-wrap: wrap; }
.lab2-course-viewer-heading h2 { white-space: normal; }
.qm-drawer { height: 100dvh; max-height: 100dvh; }
.qm-head > button { flex-shrink: 0; }
.qm-contact-row > label { min-width: 0; }
.qm-footer { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
/* Smaller work areas use page scrolling instead of fixed-height nested panels. */
@media (max-height: 740px), (max-width: 1100px) {
  body[data-current-view="agenda"] .lab-main,
  body[data-current-view="cursos"] .lab-main { height: auto; min-height: 0; overflow: visible; }
  .lead-focus-workspace, .op-focus-workspace { height: auto !important; min-height: 0; overflow: visible; align-items: start; }
  .lead-focus-list, .op-focus-list { max-height: 460px; }
  .lead-focus-detail-panel, .op-focus-detail-panel { overflow: visible; }
  .agenda-day-summary, .agenda-timeline-list, .courses-focus-card { overflow: visible; }
  .agenda-timeline-panel { overflow: visible; }
  .courses-list-quick { max-height: 420px; }
  .agenda-timeline-list { min-height: 180px; }
  .lead-controlbar { position: static !important; }
}
@media (max-width: 1100px) {
  .lead-focus-workspace { grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr); }
  .lead-desk-actions, .lead-desk-message-actions { grid-template-columns: 1fr; }
  .lead-desk-grid { grid-template-columns: 1fr; }
  .account-form-grid:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-height: 740px) and (min-width: 821px) {
  :root { --topbar-h: 60px; }
  .brand img { height: 44px; }
  .lab-main { padding-top: 12px; }
  .training-heading, .training-form, .training-filters, .training-card, .training-access { padding: 18px; }
  .qm-head { padding: 10px 18px; }
  .qm-head h2 { font-size: 20px; }
  .qm-body { padding: 12px 18px; }
  .qm-footer { padding-top: 8px; }
}
@media (max-width: 900px) {
  .agenda-command-head { grid-template-columns: minmax(0, 1fr); }
  .agenda-command-head > div:first-of-type { grid-column: 1; grid-row: 1; }
  .agenda-date-picker { grid-column: 1; grid-row: 2; }
  .agenda-day-nav { grid-column: 1; grid-row: 3; justify-self: stretch; }
  .dashboard-today-panel, .dashboard-side-stack .dashboard-notes-panel { min-height: 0; }
}
@media (max-width: 820px) {
  .lead-focus-workspace, .op-focus-workspace, .courses-command-layout, .agenda-command-layout { grid-template-columns: minmax(0, 1fr); }
  .lead-focus-list-panel, .op-focus-list-panel { border-right: 0; border-bottom: 1px solid var(--line); }
  .lead-focus-list, .op-focus-list { max-height: 320px; }
  .agenda-timeline-panel > header, .ch-card summary, .ch-history-head { flex-wrap: wrap; gap: 10px; }
  .agenda-day-summary .agenda-focus-blocks { display: grid; }
  .courses-command-head { flex-wrap: wrap; }
  .courses-command-search { width: 100%; }
  .courses-focus-card { padding: 16px; }
  .courses-focus-modalities { flex-wrap: wrap; }
  .courses-focus-modalities span { min-width: 0; }
  .ch-person, .ch-progress { min-width: 0; max-width: 100%; text-align: left; }
  .ch-toolbar-actions label { flex-wrap: wrap; }
  .ch-toolbar-actions select { max-width: 100%; }
  .training-heading, .training-list-head { flex-wrap: wrap; }
  .qm-body input, .qm-body textarea, .qm-settings-form input, .qm-settings-form textarea { font-size: 16px; }
}
@media (max-width: 560px) {
  .account-form-grid, .account-form-grid:first-child { grid-template-columns: minmax(0, 1fr); }
  .typology-result dl > div { flex-wrap: wrap; gap: 8px; }
  .typology-result dd { margin-left: 0; }
  .agenda-timeline-panel > header > div { min-width: 0; }
  .agenda-timeline-list { padding-right: 10px; padding-left: 24px; }
  .agenda-timeline-row { margin-left: 60px; padding: 10px; }
  .agenda-timeline-row > time { left: -60px; }
  .agenda-timeline-row::before { left: -73px; }
  .agenda-timeline-dot { left: -84px; }
  .agenda-timeline-actions { flex-wrap: wrap; }
  .dashboard-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-kpi { padding: 10px; gap: 7px; }
  .qm-head, .qm-body { padding-left: 14px; padding-right: 14px; }
}
/* The mobile lead detail is an existing fixed overlay: keep one usable scroll area. */
@media (max-width: 820px) {
  .lead-focus-detail-panel { overflow-y: auto; overscroll-behavior: contain; bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
  .lead-contact-desk { overflow: visible; padding: 16px; }
  .lead-desk-head { position: sticky; top: 0; z-index: 2; padding-block: 8px; background: var(--surface); }
  .agenda-day-nav button, .qm-slots button { min-height: 44px; }
}
@media (max-height: 740px) {
  .course-email-preview { min-height: min(180px, 35dvh); max-height: 40dvh; }
}
/* Size desktop queues from the real toolbar height, rather than a fixed subtraction. */
@media (min-width: 1101px) and (min-height: 741px) {
  body[data-current-view="leads"] .lab-main,
  body[data-current-view="oportunidades"] .lab-main:has(.op-focus-workspace) {
    height: calc(100dvh - var(--topbar-h)); min-height: 0;
    display: flex; flex-direction: column; gap: 12px; padding: 12px 0 16px;
  }
  body[data-current-view="leads"] .lab-main > *,
  body[data-current-view="oportunidades"] .lab-main:has(.op-focus-workspace) > * { margin-top: 0; flex-shrink: 0; }
  body[data-current-view="leads"] .lead-focus-workspace,
  body[data-current-view="oportunidades"] .op-focus-workspace { flex: 1 1 0; height: auto; min-height: 0; }
}

/* Header content determines its height. No scrolling or truncated identity. */
.lab-side { height: auto; }
.topbar-main { height: auto; min-height: 64px; padding-block: 8px; }
.topbar-actions { min-width: 0; max-width: 100%; }
.profile { flex: 0 1 auto; min-width: 0; width: auto; height: auto; min-height: 42px; max-width: min(340px, calc(100vw - 120px)); }
.profile img, .profile .user-menu-chevron { flex-shrink: 0; }
.profile strong { display: block; flex: 1 1 auto; min-width: 0; max-width: none; white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; line-height: 1.25; }
@media (min-width: 821px) {
 .topbar-main { grid-template-columns: 112px minmax(0, 1fr) auto; }
 .lab-side nav { height: auto; min-height: 44px; align-self: stretch; flex-wrap: wrap; align-content: center; overflow: visible; }
 .lab-side nav button { min-width: 0; min-height: 40px; padding: 6px 8px; flex: 0 0 auto; }
 .lab-side nav button::after { bottom: 0; }
 .header-course-search { flex: 0 1 220px; width: clamp(148px, 15vw, 240px); min-width: 148px; }
 .profile { flex-shrink: 0; }
}
@media (min-width: 821px) and (max-width: 1279px) {
 .topbar-main { grid-template-columns: 104px minmax(0, 1fr); gap: 4px 12px; }
 .topbar-actions { grid-column: 2; grid-row: 1; justify-self: end; }
 .lab-side nav { grid-column: 1 / -1; grid-row: 2; justify-content: space-between; min-height: 36px; }
 .lab-side nav button { min-height: 36px; }
}
@media (max-width: 820px) {
 .topbar-main { grid-template-columns: 76px minmax(0, 1fr); gap: 10px; min-height: 58px; }
 .topbar-actions { justify-self: end; }
 .profile { display: flex; gap: 7px; padding: 4px 7px; }
 .profile strong { display: block; font-size: 12px; }
 .profile .user-menu-chevron { display: block; }
}
@media (max-width: 1100px), (max-height: 740px) {
 body[data-current-view="agenda"] .lab-main,
 body[data-current-view="cursos"] .lab-main { display: block; }
 body[data-current-view="agenda"] .lab-main > * + *,
 body[data-current-view="cursos"] .lab-main > * + * { margin-top: 12px; }
}
@media (max-width: 820px) { .profile { flex-shrink: 1; } }
/* Lower desktop windows spend less height on presentation, preserving controls. */
@media (min-width: 901px) and (max-height: 900px) {
 .dashboard-focus-banner { padding: 14px 18px; row-gap: 10px; column-gap: 16px; }
 .dashboard-welcome { padding-bottom: 10px; }
 .dashboard-welcome h2 { font-size: 21px; }
 .dashboard-focus-banner aside { min-height: 64px; padding: 10px 14px; }
 .dashboard-kpi { min-height: 68px; padding-block: 10px; }
 .dashboard-today-head, .dashboard-notes-head { min-height: 56px; padding-block: 10px; }
 .dashboard-empty-state { min-height: 140px; }
}
@media (max-width: 360px) { .profile img { display: none; } }

/* Dashboard: all four sections need their own natural height. */
body[data-current-view="dashboard"] .lab-main {
 display: block; height: auto; min-height: 0; padding-top: 14px;
}
body[data-current-view="dashboard"] .lab-main > * + * { margin-top: 12px; }
.dashboard-pending-links {
 min-height: min-content; height: auto; display: flex; flex-wrap: wrap;
 align-items: stretch; gap: 10px;
}
.dashboard-pending-links button {
 min-width: 0; max-width: 100%; min-height: 40px; white-space: normal;
 overflow-wrap: anywhere; text-align: left; line-height: 1.4;
}
.dashboard-focus-banner { min-height: 0; padding: 12px 16px; gap: 8px 16px; }
.dashboard-welcome { min-width: 0; padding-bottom: 8px; gap: 10px; }
.dashboard-welcome .label { margin: 0; line-height: 1.3; }
.dashboard-welcome h2 { margin: 3px 0 0; font-size: 20px; line-height: 1.25; }
.dashboard-welcome time { padding: 7px 10px; }
.dashboard-focus-copy h3 { margin: 0 0 4px; font-size: 16px; line-height: 1.3; }
.dashboard-focus-copy > span { line-height: 1.45; }
.dashboard-focus-banner button { margin-top: 8px; }
.dashboard-focus-banner aside { min-height: 64px; padding: 10px 14px; }
@media (max-width: 820px) { .dashboard-pending-links button { min-height: 44px; } }

/* Same personal messages form from both contact workspaces. */
.quick-message-contact { min-width: 0; min-height: 40px; padding: 8px 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--success-soft); color: var(--success); font: inherit; font-size: 12px; font-weight: 700; white-space: normal; cursor: pointer; }
.quick-message-contact:focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; }
.lead-desk-message-buttons .quick-message-contact { grid-column: 1 / -1; }
.op-card-actions { flex-wrap: wrap; }
@media (max-width: 820px) { .quick-message-contact { min-height: 44px; } }
