/* Shared UI contract. Loaded after legacy themes; charts and stage cards retain their semantics. */
body.portal-redesign {
  --ui-font: 'Segoe UI', Arial, sans-serif;
  --ui-primary: #075f95;
  --ui-text: #243a50;
  --ui-muted: #617489;
  --ui-border: #dce5ee;
  --ui-radius: 8px;
  font-family: var(--ui-font) !important;
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: var(--ui-text);
  background: #f4f7fb;
  -webkit-font-smoothing: antialiased;
}
body.portal-redesign :is(main, .profile-modal, .login-card) :is(h1,h2,h3,h4,p,label,input,select,textarea,button,a,table,small,strong,span,dt,dd) {
  font-family: var(--ui-font) !important;
}
body.portal-redesign main { max-width: 1520px !important; padding: 24px 28px 40px !important; }
body.portal-redesign main .panel {
  padding: 24px !important; border: 1px solid var(--ui-border) !important;
  border-radius: 12px !important; box-shadow: 0 3px 12px rgb(27 59 89 / 4%) !important;
}
body.portal-redesign main :is(h1,h2,h3,h4) { color: #153958; line-height: 1.35; letter-spacing: -.2px; }
body.portal-redesign main h1 { font-size: 24px !important; font-weight: 650 !important; }
body.portal-redesign main h2 { margin: 0 0 16px; font-size: 20px !important; font-weight: 650 !important; }
body.portal-redesign main h3 { margin: 0 0 14px; font-size: 16px !important; font-weight: 600 !important; }
body.portal-redesign main p { font-size: 14px; line-height: 1.6; }
body.portal-redesign main small { font-size: 12px; line-height: 1.5; }
body.portal-redesign :is(main,.profile-modal,.login-card) label {
  min-width: 0; gap: 7px; color: #486076; font-size: 13px !important;
  font-weight: 600 !important; line-height: 1.4;
}
body.portal-redesign :is(main,.login-card) :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=hidden]) {
  box-sizing: border-box; min-width: 0; width: 100%; max-width: 100%;
  font-size: 14px !important; font-weight: 400 !important; line-height: 20px !important;
  color: #243a50 !important; padding: 9px 12px !important; margin: 0;
  border: 1px solid #cad7e3 !important; border-radius: var(--ui-radius) !important; background: #fff;
}
body.portal-redesign :is(main,.login-card) :is(input,select):not([type=checkbox]):not([type=radio]):not([type=hidden]) { height: 40px !important; min-height: 40px !important; }
body.portal-redesign main textarea { min-height: 100px; line-height: 1.65 !important; }
body.portal-redesign main textarea[readonly] { background: #f6f8fb; color: #52687c !important; }
body.portal-redesign :is(input,textarea)::placeholder { color: #8292a3; opacity: 1; }
body.portal-redesign :is(input,select,textarea,button,a,summary):focus-visible { outline: 3px solid #78bce7 !important; outline-offset: 2px; }
body.portal-redesign :is(main,.login-card) button:not(.dash-kpi):not(.kpi):not(.vbar):not(.hbar):not(.gmud-stage):not(.gmud-description):not(.sob-demand-kpi):not(.sla-strip button),
body.portal-redesign main :is(a.button,a.ghost) {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  height: 40px !important; min-height: 40px !important; width: auto; max-width: 100%;
  padding: 9px 16px !important; border: 1px solid var(--ui-primary);
  border-radius: var(--ui-radius) !important; background: var(--ui-primary); color: #fff;
  font-size: 13px !important; font-weight: 600 !important; line-height: 20px !important;
  letter-spacing: 0 !important; text-transform: none !important;
  text-decoration: none; white-space: nowrap; box-shadow: none !important;
  transition: background-color .15s, border-color .15s;
}
body.portal-redesign main :is(button.ghost,a.ghost,button.secondary,.row-actions button) {
  background: #fff !important; color: #235270 !important; border-color: #c9d9e6 !important;
}
body.portal-redesign main button:not(:disabled):hover { filter: brightness(.97); }
body.portal-redesign main button:disabled { cursor: not-allowed; color: #77899b !important; background: #eaf0f5 !important; border-color: #dce5ee !important; opacity: 1; }
body.portal-redesign main :is(.row-actions button,td button) { height: 36px !important; min-height: 36px !important; padding: 7px 12px !important; }
body.portal-redesign main .row-actions button.danger { color: #b42336 !important; border-color: #edcbd0 !important; }
body.portal-redesign .form-grid { gap: 18px 20px !important; }
body.portal-redesign main :is(.toolbar,.sob-demand-filters,.dashboard-filters) { gap: 12px !important; padding: 16px !important; align-items: end; border-radius: 10px; }
body.portal-redesign main .toolbar { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)); }
body.portal-redesign main .toolbar > * { width: 100%; }
body.portal-redesign main .toolbar button { justify-self: end; }
body.portal-redesign main .panel-title { align-items: center; margin-bottom: 18px; }
body.portal-redesign main .panel-title h2 { margin: 0; }
body.portal-redesign main .save-bar { padding: 16px 0 0; margin-top: 20px; gap: 14px; }
body.portal-redesign #analista .save-bar { position: static !important; justify-content: flex-end; padding: 18px 0 0 !important; margin-top: 20px !important; }
body.portal-redesign #analista .toolbar { display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
body.portal-redesign .tabs > button[data-tab] { height: 42px !important; }
body.portal-redesign .tabs :is(#profileBtn,#logoutBtn) { height: 40px !important; min-height: 40px !important; min-width: 80px; padding: 9px 14px !important; border: 1px solid #c9d9e6 !important; border-radius: 8px !important; background: #fff !important; color: #235270 !important; font: 600 13px/20px var(--ui-font) !important; box-shadow: none !important; }
body.portal-redesign .tabs :is(#profileBtn,#logoutBtn) :is(strong,span,small) { font-weight: 600 !important; font-family: var(--ui-font) !important; }
body.portal-redesign main .save-bar button { min-width: 0 !important; }
body.portal-redesign main .save-bar span { font-size: 13px; }
body.portal-redesign main .tableWrap { margin-top: 16px; border: 1px solid var(--ui-border); border-radius: 8px; }
body.portal-redesign main :is(th,td) { font-size: 13px !important; line-height: 1.5; padding: 12px 14px; border-bottom-color: #e4ebf2; }
body.portal-redesign main th { color: #4b647a; background: #f0f5fa; font-weight: 600 !important; }
body.portal-redesign main tbody tr:nth-child(even) { background: #f8fafc; }
body.portal-redesign main tbody tr:hover { background: #f0f7fc; }
body.portal-redesign main .ticket { padding: 16px; border-radius: 10px; box-shadow: none; margin-bottom: 12px; }
body.portal-redesign main .ticket-protocol { font-size: 14px !important; font-weight: 650 !important; }
body.portal-redesign main .ticket-subject { font-size: 14px !important; line-height: 1.5; font-weight: 600; }
body.portal-redesign main :is(.type-badge,.status,.soft-badge,.sla,.table-status,.table-sla) { font-size: 11px !important; line-height: 1.4; font-weight: 600 !important; }
body.portal-redesign main .detail-grid dt { font-size: 11px !important; font-weight: 600; letter-spacing: .3px; }
body.portal-redesign main .detail-grid dd { font-size: 14px !important; line-height: 1.5; }
body.portal-redesign main .readbox { font-size: 14px !important; line-height: 1.7; background: #f6f9fc; }
body.portal-redesign main .dash-card h2 { font-size: 15px !important; font-weight: 600 !important; }
body.portal-redesign main .dash-card { border-radius: 10px; padding: 16px; }
body.portal-redesign main .gmud-stage-title { font-size: 14px; line-height: 1.5; }
body.portal-redesign main .gmud-stage-order { font-size: 11px; }
body.portal-redesign #admin > .panel { margin-bottom: 22px; }
body.portal-redesign #admin .section-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 20px; }
body.portal-redesign #admin .section-heading h2 { margin: 5px 0 6px; }
body.portal-redesign #admin .section-heading p { margin: 0; color: var(--ui-muted); }
body.portal-redesign #admin .section-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 1px; color: #2875a0; }
body.portal-redesign #admin .calendar-tools { display: flex; flex: 0 0 auto; align-items: end; gap: 12px; }
body.portal-redesign #admin .calendar-tools label { width: 106px; }
body.portal-redesign #admin .calendar-notice { display: flex; align-items: baseline; gap: 12px; padding: 13px 16px; margin: 0 0 20px; border: 1px solid #d8e9f5; border-radius: 8px; background: #f0f7fc; color: #436680; font-size: 13px; }
body.portal-redesign #admin .calendar-notice strong { white-space: nowrap; color: #195278; font-weight: 600; }
body.portal-redesign #admin .calendar-table-scroll { max-height: 440px; overflow: auto; border: 1px solid var(--ui-border); border-radius: 8px; }
body.portal-redesign #admin .calendar-table { min-width: 650px; table-layout: fixed; }
body.portal-redesign #admin .calendar-table th:first-child { width: 150px; }
body.portal-redesign #admin .calendar-table th:last-child { width: 290px; }
body.portal-redesign #admin .calendar-table td:nth-child(2) { white-space: normal; overflow-wrap: anywhere; }
body.portal-redesign #admin .calendar-table select { height: 36px !important; min-height: 36px !important; font-size: 13px !important; padding: 7px 10px !important; }
body.portal-redesign #admin :is(.calendar-editor,.calendar-import) { border-top: 1px solid var(--ui-border); margin-top: 24px; padding-top: 24px; }
body.portal-redesign #admin #calendarForm { display: grid; grid-template-columns: 170px minmax(200px,1fr) 170px auto; align-items: end; gap: 16px; }
body.portal-redesign #admin #calendarCsvForm { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; align-items: end; gap: 12px; }
body.portal-redesign #admin .compact { margin-bottom: 18px; }
body.portal-redesign #admin .compact h3 { margin-bottom: 5px; }
body.portal-redesign #admin input[type=file] { padding: 0 !important; font-size: 13px !important; overflow: hidden; background: #fff; }
body.portal-redesign #admin input[type=file]::file-selector-button { height: 38px; padding: 0 12px; margin-right: 10px; border: 0; border-right: 1px solid #cad7e3; background: #eef4f9; color: #365a74; font: 600 13px var(--ui-font); cursor: pointer; }
body.portal-redesign #admin .csv-help { margin-top: 14px; color: var(--ui-muted); font-size: 13px; }
body.portal-redesign #admin .csv-help summary { cursor: pointer; color: #286489; padding: 4px 0; }
body.portal-redesign #admin .csv-help p { font-size: 13px; }
body.portal-redesign #admin .calendar-preview { overflow: auto; max-height: 320px; margin-top: 16px; }
body.portal-redesign #admin .form-feedback { color: #426680; font-size: 13px; margin: 16px 0 0; }
body.portal-redesign #admin .form-feedback:empty { display: none; }
body.portal-redesign #admin #dailySummaryForm { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
body.portal-redesign #admin #dailySummaryForm > :is(p,.admin-form-actions) { grid-column: 1/-1; }
body.portal-redesign #admin #dailySummaryForm input { margin: 0 !important; }
body.portal-redesign #admin .admin-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 4px; }
body.portal-redesign #admin label small { font-size: 12px; font-weight: 400; color: var(--ui-muted); }
body.portal-redesign #admin #dailySummaryForm button { justify-self: start; }
body.portal-redesign #admin .user-form { align-items: end; gap: 14px; }
body.portal-redesign #profileModalBackdrop .profile-modal :is(input,button.primary,.close-profile) { height: 40px !important; min-height: 40px !important; font-size: 14px !important; font-weight: 500 !important; border-radius: 8px !important; }
body.portal-redesign #profileModalBackdrop .profile-modal .profile-layout input:not([type=hidden]):not([type=file]) { height: 40px !important; }
body.portal-redesign #profileModalBackdrop .profile-modal :is(button.primary,.close-profile) { font-size: 13px !important; font-weight: 600 !important; }
body.portal-redesign main .dash-kpi span:not(.dash-kpi-icon) { font-size: 12px !important; font-weight: 600 !important; line-height: 1.4 !important; }
body.portal-redesign main .dash-kpi strong { font-weight: 700 !important; }
@media(max-width:1100px) {
  body.portal-redesign #admin #calendarForm { grid-template-columns: 1fr 2fr; }
  body.portal-redesign #admin #calendarForm button { justify-self: start; }
  body.portal-redesign main .toolbar { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body.portal-redesign #analista .toolbar { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  body.portal-redesign #admin .section-heading { flex-wrap: wrap; }
}
@media(max-width:760px) {
  body.portal-redesign main { padding: 16px 14px 28px !important; }
  body.portal-redesign main .panel { padding: 18px !important; }
  body.portal-redesign main .toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal-redesign #analista .toolbar { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.portal-redesign #admin #calendarCsvForm { grid-template-columns: 1fr 1fr; }
  body.portal-redesign #admin #calendarCsvForm label { grid-column: 1/-1; }
  body.portal-redesign #admin .calendar-notice { flex-direction: column; gap: 3px; }
  body.portal-redesign #admin .calendar-table { min-width: 0; table-layout: auto; }
  body.portal-redesign #admin .calendar-table thead { display: none; }
  body.portal-redesign #admin .calendar-table tbody { display: block; }
  body.portal-redesign #admin .calendar-table tr { display: grid; grid-template-columns: 90px minmax(0,1fr); padding: 12px; border-bottom: 1px solid var(--ui-border); gap: 10px; }
  body.portal-redesign #admin .calendar-table td { display: block; padding: 0; border: 0; }
  body.portal-redesign #admin .calendar-table td:first-child { font-size: 12px !important; color: var(--ui-muted); }
  body.portal-redesign #admin .calendar-table td:last-child { grid-column: 1/-1; }
  body.portal-redesign main .report-toolbar { grid-template-columns: 1fr 1fr; }
}
@media(max-width:480px) {
  body.portal-redesign #admin :is(#calendarForm,#calendarCsvForm,#dailySummaryForm) { grid-template-columns: 1fr; }
  body.portal-redesign #admin #calendarCsvForm label { grid-column: auto; }
  body.portal-redesign #admin .calendar-tools { flex-wrap: wrap; width: 100%; }
  body.portal-redesign main .panel-title { align-items: flex-start; flex-wrap: wrap; }
  body.portal-redesign main .toolbar { grid-template-columns: 1fr; }
  body.portal-redesign #analista .toolbar { grid-template-columns: 1fr !important; }
  body.portal-redesign main .toolbar button { justify-self: start; }
}
@media(prefers-reduced-motion:reduce) { body.portal-redesign :is(button,input,select,textarea) { transition: none !important; } }

/* Responsive workspace: use CSS viewport dimensions, never browser zoom or transforms. */
body.portal-redesign #analista .queue-panel-title { flex-wrap: wrap; gap: 12px; }
body.portal-redesign #analista .queue-panel-title small { display: block; margin-top: 4px; }
body.portal-redesign #analista .queue-panel-title #refreshTickets { height: 36px !important; min-height: 36px !important; padding: 7px 12px !important; flex: 0 0 auto; }
body.portal-redesign main {
  box-sizing: border-box; width: 100% !important; max-width: 1920px !important;
  padding: clamp(12px,1.35vw,24px) clamp(12px,1.5vw,28px) 32px !important;
}
body.portal-redesign main :is(.tab,.panel,.workbench,.form-grid,.dashboard-main,.dashboard-layout,.dashboard-shell,.sob-demand-shell) { min-width: 0; max-width: 100%; }
body.portal-redesign:not(.locked) .topbar { min-height: 82px !important; padding: 14px clamp(16px,1.7vw,32px) !important; gap: 18px !important; }
body.portal-redesign .topbar .brand strong { font-size: clamp(20px,1.55vw,24px) !important; }
body.portal-redesign .topbar .topbar-obras { width: 135px !important; flex-basis: 135px !important; height: 38px !important; }
body.portal-redesign .topbar .topbar-softplan { width: 105px !important; flex-basis: 105px !important; height: 38px !important; }
body.portal-redesign:not(.locked) .tabs { min-height: 54px !important; padding: 6px clamp(12px,1.5vw,28px) !important; gap: 4px !important; }
body.portal-redesign #analista .service-center-header { gap: 12px; padding: 12px 18px; margin-bottom: 12px; }
body.portal-redesign #analista .service-center-header h1 { font-size: 22px !important; }
body.portal-redesign #analista .service-center-header p { margin-top: 4px; font-size: 13px; }
body.portal-redesign #analista .service-center-eyebrow { font-size: 11px; margin-bottom: 3px; }
body.portal-redesign #analista .kpis { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; margin-bottom: 12px; }
body.portal-redesign #analista .kpi { min-height: 76px; padding: 10px 12px; gap: 5px 10px; grid-template-columns: 32px minmax(0,1fr); }
body.portal-redesign #analista .kpi-icon { width: 30px; height: 30px; }
body.portal-redesign #analista .kpi strong { font-size: 26px; }
body.portal-redesign #analista .kpi span:not(.kpi-icon) { font-size: 12px; line-height: 1.3; }
body.portal-redesign #analista .status-tabs {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px;
  overflow: visible !important; padding: 0; margin-bottom: 12px;
}
body.portal-redesign #analista .status-tabs button {
  width: 100%; height: auto !important; min-height: 40px !important;
  justify-content: space-between; white-space: normal; text-align: left;
  padding: 8px 10px !important; font-size: 12px !important; line-height: 1.35 !important;
}
body.portal-redesign #analista .status-tabs strong { flex: 0 0 auto; }
body.portal-redesign #analista .toolbar { grid-template-columns: repeat(5,minmax(0,1fr)) !important; padding: 12px !important; gap: 10px !important; margin-bottom: 14px; }
body.portal-redesign #analista .toolbar > :is(input,select,button) { min-width: 0 !important; max-width: 100% !important; width: 100% !important; }
body.portal-redesign #analista .toolbar::before { content: none; }
body.portal-redesign #analista .toolbar #clearFilters { justify-self: stretch; }
body.portal-redesign #analista .workbench { grid-template-columns: minmax(290px,.35fr) minmax(0,.65fr); gap: 16px; }
body.portal-redesign #analista .list-panel { min-height: 0; max-height: clamp(320px,calc(100dvh - 360px),800px); overflow: auto; }
body.portal-redesign #gestao .dashboard-filters,
body.portal-redesign #sobDemanda .sob-demand-filters { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,180px),1fr)); overflow: visible; }
body.portal-redesign #gestao .dashboard-main { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) minmax(0,.85fr); }
body.portal-redesign #gestao .dashboard-kpi-rail { grid-template-columns: repeat(auto-fit,minmax(min(100%,135px),1fr)); }
body.portal-redesign #gestao :is(.hbar,.hbar-chart,.vbar-chart) { min-width: 0; max-width: 100%; }
body.portal-redesign #sobDemanda .sob-demand-filters > * { min-width: 0; }
body.portal-redesign #admin .user-form { grid-template-columns: repeat(4,minmax(0,1fr)) auto; }
body.portal-redesign #analista #toggleTicketFilters { display: none !important; }
@media(max-width:1240px) {
  body.portal-redesign #gestao .dashboard-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal-redesign #admin .user-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:1050px) {
  body.portal-redesign #analista .toolbar { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
  body.portal-redesign #analista .toolbar.has-responsive-filters:not(.filters-expanded) { grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto !important; }
  body.portal-redesign #analista #toggleTicketFilters { display: inline-flex !important; }
  body.portal-redesign #analista .toolbar.has-responsive-filters:not(.filters-expanded) > select,
  body.portal-redesign #analista .toolbar.has-responsive-filters:not(.filters-expanded) > #clearFilters { display: none !important; }
  body.portal-redesign .tabs .nav-account-actions { margin-left: auto !important; }
}
@media(max-width:980px) {
  body.portal-redesign #analista .workbench { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign #analista .list-panel { max-height: min(440px,60dvh); }
  body.portal-redesign #analista .toolbar { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}
@media(max-width:760px) {
  body.portal-redesign #analista .kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body.portal-redesign #analista .status-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal-redesign #analista .toolbar { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.portal-redesign #analista .toolbar.has-responsive-filters:not(.filters-expanded) { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  body.portal-redesign #analista #toggleTicketFilters { grid-column: 1/-1; }
  body.portal-redesign #analista .service-center-header { flex-wrap: wrap; padding: 14px; }
  body.portal-redesign #analista .detail-grid,
  body.portal-redesign #analista .form-grid { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign #gestao .dashboard-main { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign #gestao .dash-card { grid-column: auto; }
  body.portal-redesign main .report-toolbar { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  body.portal-redesign:not(.locked) .topbar { min-height: 0 !important; padding: 14px !important; gap: 10px !important; }
  body.portal-redesign .topbar .brand { width: 100% !important; min-width: 0 !important; }
  body.portal-redesign .topbar .topbar-unit { white-space: normal !important; overflow-wrap: anywhere; }
  body.portal-redesign #analista .kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
  body.portal-redesign #analista .toolbar { grid-template-columns: minmax(0,1fr) !important; }
  body.portal-redesign #analista .toolbar.has-responsive-filters:not(.filters-expanded) { grid-template-columns: minmax(0,1fr) !important; }
  body.portal-redesign #admin .user-form { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign main .report-toolbar { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign #analista .ticket-main,
  body.portal-redesign #analista .ticket-row { flex-wrap: wrap; }
  body.portal-redesign #analista .status-tabs button { font-size: 11px !important; }
}
/* Short laptop screens keep content reachable without shrinking text or changing zoom. */
@media(min-width:900px) and (max-height:850px) {
  body.portal-redesign:not(.locked) .topbar { min-height: 68px !important; padding-top: 6px !important; padding-bottom: 6px !important; }
  body.portal-redesign .topbar .brand > div { gap: 1px !important; }
  body.portal-redesign .topbar .topbar-unit { font-size: 9px !important; }
  body.portal-redesign .topbar .topbar-subtitle { font-size: 11px !important; }
  body.portal-redesign:not(.locked) .tabs { min-height: 50px !important; padding-top: 4px !important; padding-bottom: 4px !important; }
  body.portal-redesign main { padding-top: 12px !important; }
  body.portal-redesign #analista .service-center-header { padding-top: 9px; padding-bottom: 9px; margin-bottom: 10px; }
  body.portal-redesign #analista .service-center-eyebrow { display: none; }
  body.portal-redesign #analista .kpi { min-height: 64px; padding-top: 8px; padding-bottom: 8px; }
  body.portal-redesign #analista .kpi strong { font-size: 24px; }
  body.portal-redesign #analista .toolbar { padding: 10px !important; gap: 8px !important; }
}

/* One source of indicators: statuses and totals are big-number cards, not duplicate bars. */
body.portal-redesign #analista #analystKpis { grid-template-columns: repeat(10,minmax(0,1fr)); gap: 8px; margin-bottom: 14px; }
body.portal-redesign #analista #analystKpis .queue-metric {
  --metric-accent:#075f95; --metric-bg:#edf6fd;
  display: grid; grid-template-columns: 24px minmax(0,1fr); grid-template-rows: auto auto;
  align-content: center; align-items: center; gap: 6px 8px;
  position: relative; isolation: isolate; overflow: hidden;
  width: 100%; min-width: 0; height: auto; min-height: 92px; padding: 10px;
  border: 1px solid #dce5ee; border-radius: 11px;
  background: radial-gradient(ellipse at 100% 100%,var(--metric-bg),transparent 70%),linear-gradient(135deg,var(--metric-bg),#fff);
  color: #243a50; text-align: left; box-shadow: 0 2px 7px rgb(27 59 89 / 5%);
}
body.portal-redesign #analista #analystKpis .queue-metric:after { content: ''; position: absolute; right: -18px; bottom: -22px; width: 110px; height: 56px; border-radius: 50%; background: var(--metric-accent); opacity: .045; pointer-events: none; z-index: -1; }
body.portal-redesign #analista #analystKpis .queue-metric.amber { --metric-accent:#a86306; --metric-bg:#fff8eb; }
body.portal-redesign #analista #analystKpis .queue-metric.cyan { --metric-accent:#087e8b; --metric-bg:#ebf9fa; }
body.portal-redesign #analista #analystKpis .queue-metric.purple { --metric-accent:#7c3aed; --metric-bg:#f6f0ff; }
body.portal-redesign #analista #analystKpis .queue-metric.green { --metric-accent:#15803d; --metric-bg:#eef9f1; }
body.portal-redesign #analista #analystKpis .queue-metric.slate { --metric-accent:#64748b; --metric-bg:#f3f6f9; }
body.portal-redesign #analista #analystKpis .queue-metric.red { --metric-accent:#be303b; --metric-bg:#fff1f2; }
body.portal-redesign #analista #analystKpis .queue-metric .metric-label { grid-column: 1/-1; grid-row: 2; min-height: 34px; font-size: 12px; font-weight: 500; color: #52677c; line-height: 1.4; }
body.portal-redesign #analista #analystKpis .queue-metric strong { grid-column: 2; grid-row: 1; font-size: clamp(22px,1.8vw,28px); font-weight: 700; line-height: 1.1; color: #163955; font-variant-numeric: tabular-nums; }
body.portal-redesign #analista #analystKpis .queue-metric .kpi-icon { grid-column: 1; grid-row: 1; width: 24px; height: 24px; color: var(--metric-accent); background: #ffffffa8; border-width: 1px; }
body.portal-redesign #analista #analystKpis .queue-metric .kpi-icon:before { width: 12px; height: 12px; border-width: 1.5px; }
body.portal-redesign #analista #analystKpis .queue-metric .kpi-icon.metric-svg { border: 0; border-radius: 0; background: transparent; }
body.portal-redesign #analista #analystKpis .queue-metric .kpi-icon.metric-svg:before { content: none; }
body.portal-redesign #analista #analystKpis .metric-svg svg { display: block; width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
body.portal-redesign #analista #analystKpis button.queue-metric:hover { border-color: var(--metric-accent); filter: none; box-shadow: 0 3px 10px rgb(27 59 89 / 10%); }
body.portal-redesign #analista #analystKpis .metric-selected { box-shadow: inset 0 0 0 1px var(--metric-accent); border-color: var(--metric-accent); }
@media(max-width:1279px) { body.portal-redesign #analista #analystKpis { grid-template-columns: repeat(5,minmax(0,1fr)); } }
@media(max-width:760px) { body.portal-redesign #analista #analystKpis { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { body.portal-redesign #analista #analystKpis { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:360px) { body.portal-redesign #analista #analystKpis { grid-template-columns: minmax(0,1fr); } }

/* Desktop navigation rail. Mobile keeps the wrapping, fully labelled menu. */
@media(min-width:900px) {
  body.portal-redesign:not(.locked) { --portal-sidebar-width: 208px; --portal-header-height: 88px; display: grid; grid-template-columns: var(--portal-sidebar-width) minmax(0,1fr); grid-template-rows: var(--portal-header-height) auto; min-height: 100dvh; }
  body.portal-redesign:not(.locked) > .topbar { grid-column: 1/-1; grid-row: 1; position: sticky !important; top: 0; z-index: 20; height: var(--portal-header-height) !important; min-height: var(--portal-header-height) !important; padding-top: 8px !important; padding-bottom: 8px !important; }
  body.portal-redesign:not(.locked) > .tabs {
    grid-column: 1; grid-row: 2; position: sticky !important; top: var(--portal-header-height) !important;
    align-self: start; display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
    align-items: stretch !important; justify-content: flex-start !important; gap: 6px !important;
    width: 100% !important; min-width: 0; height: calc(100dvh - var(--portal-header-height));
    min-height: 0 !important; padding: 22px 12px 16px !important; overflow: auto !important;
    background: #eef3f8 !important; border: 0 !important; border-right: 1px solid #dce5ee !important; box-shadow: none !important;
  }
  body.portal-redesign:not(.locked) > .tabs:before { content: 'ESPAÇO DE TRABALHO'; color: #7890a4; font-size: 10px; font-weight: 600; letter-spacing: .8px; margin: 0 10px 12px; }
  body.portal-redesign:not(.locked) > .tabs > button[data-tab] { flex: 0 0 auto; width: 100% !important; min-width: 0; min-height: 44px !important; height: 44px !important; justify-content: flex-start !important; gap: 10px !important; padding: 10px 12px !important; border-radius: 8px !important; }
  body.portal-redesign:not(.locked) > .tabs .nav-account-actions { flex: 0 0 auto !important; flex-direction: column !important; align-items: stretch !important; gap: 8px !important; width: 100% !important; margin: auto 0 0 !important; padding: 16px 0 0 !important; border-top: 1px solid #d7e2ec; }
  body.portal-redesign:not(.locked) > .tabs .nav-account-actions :is(#profileBtn,#logoutBtn) { width: 100% !important; min-width: 0; }
  body.portal-redesign:not(.locked) > main { grid-column: 2; grid-row: 2; align-self: start; min-width: 0; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 18px clamp(14px,1.5vw,26px) 32px !important; }
  body.portal-redesign #analista #analystKpis { grid-template-columns: repeat(5,minmax(0,1fr)); }
  body.portal-redesign #gestao .dashboard-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(min-width:1540px) { body.portal-redesign #analista #analystKpis { grid-template-columns: repeat(10,minmax(0,1fr)); } }
@media(min-width:900px) and (max-width:1240px) {
  body.portal-redesign:not(.locked) { --portal-sidebar-width: 188px; }
  body.portal-redesign #analista .workbench { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign #analista .list-panel { max-height: min(440px,60dvh); }
  body.portal-redesign #analista .toolbar { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
  body.portal-redesign #gestao .dashboard-main { grid-template-columns: minmax(0,1fr); }
  body.portal-redesign #gestao .dash-card { grid-column: auto; }
  body.portal-redesign #admin #calendarForm { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal-redesign #admin #calendarCsvForm { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal-redesign #admin #calendarCsvForm label { grid-column: 1/-1; }
  body.portal-redesign #admin .calendar-table { min-width: 600px; }
}
@media(min-width:900px) and (max-height:850px) {
  body.portal-redesign:not(.locked) { --portal-header-height: 68px; }
  body.portal-redesign:not(.locked) > .topbar { padding-top: 6px !important; padding-bottom: 6px !important; }
  body.portal-redesign:not(.locked) > .tabs { padding-top: 16px !important; }
}

/* Compact single-line filters when the workspace has room; no forced page overflow. */
body.portal-redesign #analista .toolbar #clearFilters { background: #075f95 !important; color: #fff !important; border: 1px solid #075f95 !important; font-weight: 600 !important; }
body.portal-redesign #analista .toolbar #clearFilters:hover { background: #064e7a !important; border-color: #064e7a !important; }
@media(min-width:1440px) {
  body.portal-redesign #analista .toolbar { grid-template-columns: minmax(0,1.5fr) minmax(0,1.35fr) repeat(7,minmax(0,1fr)) 106px !important; gap: 6px !important; padding: 10px !important; align-items: center; }
  body.portal-redesign #analista .toolbar > :is(input,select,button) { height: 34px !important; min-height: 34px !important; padding: 6px 8px !important; font-size: 12px !important; line-height: 20px !important; border-radius: 6px !important; }
  body.portal-redesign #analista .toolbar #clearFilters { min-width: 0 !important; padding: 6px 10px !important; }
}

/* Dashboard follows the same compact cards, icons and filter controls as the queue. */
body.portal-redesign #gestao .dashboard-layout { display: grid; grid-template-columns: minmax(0,1fr) !important; gap: 16px; padding: 16px; }
body.portal-redesign #gestao #kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 10px; }
body.portal-redesign #gestao #kpis .dash-kpi {
  --dash-accent:#075f95; --dash-fill:#edf6fd;
  position: relative; display: grid; grid-template-columns: 26px minmax(0,1fr); grid-template-rows: auto auto;
  align-content: center; gap: 6px 10px; min-width: 0; min-height: 92px; height: auto; padding: 12px;
  border: 1px solid #dce5ee; border-radius: 11px; text-align: left;
  background: radial-gradient(ellipse at 100% 100%,var(--dash-fill),transparent 70%),linear-gradient(135deg,var(--dash-fill),#fff) !important;
  box-shadow: 0 2px 7px rgb(27 59 89 / 5%);
}
body.portal-redesign #gestao #kpis .dash-kpi.yellow { --dash-accent:#a86306; --dash-fill:#fff8eb; }
body.portal-redesign #gestao #kpis .dash-kpi.cyan { --dash-accent:#087e8b; --dash-fill:#ebf9fa; }
body.portal-redesign #gestao #kpis .dash-kpi.green { --dash-accent:#15803d; --dash-fill:#eef9f1; }
body.portal-redesign #gestao #kpis .dash-kpi.purple,
body.portal-redesign #gestao #kpis .dash-kpi.indigo { --dash-accent:#7c3aed; --dash-fill:#f6f0ff; }
body.portal-redesign #gestao #kpis .dash-kpi.red { --dash-accent:#be303b; --dash-fill:#fff1f2; }
body.portal-redesign #gestao #kpis .dash-kpi .dash-kpi-icon { position: static; grid-column: 1; grid-row: 1; width: 26px; height: 26px; margin: 0; border: 0; border-radius: 0; background: transparent; color: var(--dash-accent); box-shadow: none; }
body.portal-redesign #gestao #kpis .dash-kpi .dash-kpi-icon:before,
body.portal-redesign #gestao #kpis .dash-kpi .dash-kpi-icon:after { content: none; }
body.portal-redesign #gestao #kpis .dash-kpi-icon svg { display: block; width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body.portal-redesign #gestao #kpis .dash-kpi strong { grid-column: 2; grid-row: 1; margin: 0; color: #163955 !important; font-size: 27px; line-height: 1.1; font-weight: 700; font-variant-numeric: tabular-nums; }
body.portal-redesign #gestao #kpis .dash-kpi .dash-metric-label { grid-column: 1/-1; grid-row: 2; min-height: 32px; color: #52677c !important; font-size: 12px !important; font-weight: 500 !important; line-height: 1.4 !important; }
body.portal-redesign #gestao #kpis .dash-kpi:hover { border-color: var(--dash-accent); transform: none; }
body.portal-redesign #gestao #dashClearFilters { background: #075f95 !important; border-color: #075f95 !important; color: #fff !important; }
body.portal-redesign #gestao #dashClearFilters:hover { background: #064e7a !important; }
body.portal-redesign #gestao .dashboard-filters { gap: 8px !important; padding: 12px !important; }
body.portal-redesign #gestao .dashboard-filters > :is(input,select,button) { height: 34px !important; min-height: 34px !important; padding: 6px 8px !important; font-size: 12px !important; line-height: 20px !important; border-radius: 6px !important; }
@media(min-width:1440px) {
  body.portal-redesign #gestao .dashboard-filters { grid-template-columns: repeat(2,minmax(0,1.15fr)) repeat(2,minmax(112px,.95fr)) repeat(5,minmax(0,1fr)) 106px !important; gap: 6px !important; padding: 10px !important; }
  body.portal-redesign #gestao #kpis { grid-template-columns: repeat(9,minmax(0,1fr)) !important; }
}
@media(max-width:760px) {
  body.portal-redesign #gestao .dashboard-filters > :is(input,select,button) { height: 40px !important; min-height: 40px !important; }
}
@media(max-width:600px) { body.portal-redesign #gestao #kpis { grid-template-columns: repeat(2,minmax(0,1fr)) !important; } }

/* Field titles must be visually distinct from editable values and helper text. */
body.portal-redesign :is(main,.login-card) label,
body.portal-redesign #profileModalBackdrop .profile-layout label:not(.secondary) {
  color: #173954 !important;
  font-weight: 700 !important;
}
body.portal-redesign main .detail-grid dt { color: #173954 !important; font-weight: 700 !important; }
body.portal-redesign #profileModalBackdrop .profile-modal .profile-layout input:not([type=hidden]):not([type=file]) { font-weight: 400 !important; }
