

#view-regulacao .reg-dash-row {
  display: grid;
  gap: 16px;
  margin-bottom: 16px;
  align-items: stretch;
}

/* Comparativo mensal (largo) ao lado do donut de Status */
#view-regulacao .reg-dash-row-primary {
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
}

/* Prioridades + Taxa de conclusão */
#view-regulacao .reg-dash-row-secondary {
  grid-template-columns: 1fr 1fr;
}

#view-regulacao .reg-task-dashboard-bars {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* cards do dashboard centralizam seu conteúdo verticalmente quando dividem a linha */
#view-regulacao .reg-dash-row .chart-card,
#view-regulacao .reg-dash-row .gauge-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Donut */
#view-regulacao .reg-donut-chart {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

#view-regulacao .reg-donut-disc {
  width: 170px;
  height: 170px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

#view-regulacao .reg-donut-disc::after {
  content: '';
  position: absolute;
  inset: 13px;
  background: #fff;
  border-radius: 50%;
}

/* Donut SVG fino (padrao Master) */
#view-regulacao .reg-donut-svg { position: relative; width: 170px; height: 170px; margin: 0 auto; }
#view-regulacao .reg-donut-svg .reg-donut-svg-el { width: 100%; height: 100%; display: block; }
#view-regulacao .reg-donut-svg .reg-donut-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; }
#view-regulacao .reg-donut-center {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

#view-regulacao .reg-donut-center strong {
  font-size: 1.45rem;
  font-weight: 800;
  color: #212717;
}

#view-regulacao .reg-donut-center span {
  font-size: 0.72rem;
  color: var(--text-muted, #7e8474);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

#view-regulacao .reg-donut-legend {
  display: grid;
  gap: 7px;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

#view-regulacao .reg-donut-legend li {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: #212717;
}

#view-regulacao .reg-donut-legend li i {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  display: inline-block;
}

#view-regulacao .reg-donut-legend li b {
  color: var(--text-muted, #7e8474);
  font-weight: 700;
}

/* Gauge */
#view-regulacao .gauge-card {
  display: flex;
  flex-direction: column;
}

#view-regulacao .reg-gauge {
  width: 100%;
  max-width: 260px;
  margin: 0 auto;
  display: block;
}

#view-regulacao .reg-gauge-value {
  font-size: 22px;
  font-weight: 800;
}

#view-regulacao .reg-gauge-label {
  font-size: 9px;
  fill: #7e8474;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

#view-regulacao .gauge-card footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed #e0e7d4;
}

#view-regulacao .gauge-card footer div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

#view-regulacao .gauge-card footer b {
  font-size: 1.2rem;
  font-weight: 800;
  color: #212717;
}

#view-regulacao .gauge-card footer span {
  font-size: 0.72rem;
  color: var(--text-muted, #7e8474);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Bars */
#view-regulacao .reg-task-bar-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 0;
  border-bottom: 1px dashed #ecf0e5;
}

#view-regulacao .reg-task-bar-row:last-child {
  border-bottom: none;
}

#view-regulacao .reg-task-bar-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: #212717;
}

#view-regulacao .reg-task-bar-head > span:not(.reg-task-avatar) {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#view-regulacao .reg-task-bar-head b {
  font-size: 1rem;
  font-weight: 800;
  color: #212717;
}

#view-regulacao .reg-task-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, #394820, #526139);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  flex-shrink: 0;
}

#view-regulacao .reg-task-bar-track {
  height: 8px;
  background: #ecf0e5;
  border-radius: 999px;
  overflow: hidden;
}

#view-regulacao .reg-task-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 240ms ease;
}

#view-regulacao .reg-task-bar-fill-dept {
  background: linear-gradient(90deg, #3a6fd0, #394820);
}

#view-regulacao .reg-task-bar-fill-assignee {
  background: linear-gradient(90deg, #526139, #e6b800);
}

#view-regulacao .reg-task-bar-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

#view-regulacao .reg-pill {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 700;
}

#view-regulacao .reg-pill-open { background: #eef4fd; color: #323e1d; }
#view-regulacao .reg-pill-done { background: #eafaf0; color: #1f8a5b; }
#view-regulacao .reg-pill-overdue { background: #fdeef0; color: #d6334a; }

/* Tabela de relatório: célula de protocolo */
#reg-modal .reg-task-protocol-cell {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  background: #ecf0e5;
  font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
  font-size: 0.78rem;
  font-weight: 700;
  color: #212717;
}

/* Modal de justificativa */
#reg-modal .reg-pending-reason-form .reg-pending-reason-hint {
  display: flex;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fffbeb;
  border: 1px solid #fde68a;
  margin-bottom: 12px;
}

#reg-modal .reg-pending-reason-hint svg {
  width: 22px;
  height: 22px;
  color: #d97706;
  flex-shrink: 0;
}

#reg-modal .reg-pending-reason-hint strong {
  display: block;
  color: #92400e;
}

#reg-modal .reg-pending-reason-hint small {
  display: block;
  font-family: 'SFMono-Regular', Consolas, monospace;
  color: #92400e;
  font-size: 0.75rem;
  margin: 2px 0 6px;
}

#reg-modal .reg-pending-reason-hint p {
  margin: 0;
  color: #78350f;
  font-size: 0.85rem;
}

#reg-modal .reg-pending-reason-form textarea {
  width: 100%;
  resize: vertical;
}

/* Confirm modal */
#reg-modal .reg-confirm-modal {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 12px 4px 4px;
  text-align: center;
}

#reg-modal .reg-confirm-icon {
  width: 48px;
  height: 48px;
}

#reg-modal .reg-confirm-default { color: #3a6fd0; }
#reg-modal .reg-confirm-danger { color: #e0445a; }

#reg-modal .reg-confirm-modal p {
  margin: 0;
  color: #212717;
  font-size: 0.95rem;
}

/* Toast */
.reg-toast-host {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.reg-toast {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 10px;
  background: #212717;
  color: #fff;
  font-size: 0.88rem;
  box-shadow: 0 10px 25px rgba(15, 23, 42, 0.25);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 220ms ease, transform 220ms ease;
  max-width: 360px;
  pointer-events: auto;
}

.reg-toast.is-show {
  opacity: 1;
  transform: translateY(0);
}

.reg-toast svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.reg-toast-success {
  background: #1f8a5b;
}

.reg-toast-error {
  background: #d6334a;
}

.reg-toast-info {
  background: #24281d;
}

/* Donut com mais respiro e profundidade */
#view-regulacao .reg-donut-chart { gap: 18px; }
#view-regulacao .reg-donut-disc { width: 184px; height: 184px; box-shadow: 0 6px 18px rgba(15,23,42,.10); }
#view-regulacao .reg-donut-disc::after { inset: 26px; box-shadow: inset 0 1px 3px rgba(15,23,42,.06); }
#view-regulacao .reg-donut-center strong { font-size: 1.6rem; font-weight: 800; color: #212717; }
#view-regulacao .reg-donut-center span { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #5b6250; }
#view-regulacao .reg-donut-legend { width: 100%; display: flex; flex-direction: column; gap: 4px; }
#view-regulacao .reg-donut-legend li { display: flex; align-items: center; gap: 9px; padding: 6px 8px; border-radius: 8px; font-size: .82rem; color: #4d5243; transition: background .12s; }
#view-regulacao .reg-donut-legend li:hover { background: #f7f9f4; }
#view-regulacao .reg-donut-legend li i { width: 11px; height: 11px; border-radius: 4px; flex-shrink: 0; }
#view-regulacao .reg-donut-legend li span { flex: 1; }
#view-regulacao .reg-donut-legend li b { font-weight: 800; color: #212717; }

/* Responsividade Dashboard */
@media (max-width: 1100px) {
  #view-regulacao .reg-dash-row-primary {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  #view-regulacao .reg-dash-row-primary,
  #view-regulacao .reg-dash-row-secondary,
  #view-regulacao .reg-task-dashboard-bars {
    grid-template-columns: 1fr;
  }
}

#view-regulacao .reg-task-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 8px 0;
}

#view-regulacao .reg-task-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: var(--text-muted, #7e8474);
  font-size: 0.75rem;
}

#view-regulacao .reg-task-meta svg,
#view-regulacao .reg-task-card-foot svg,
#view-regulacao .reg-task-actions svg,
#view-regulacao .reg-task-summary svg {
  width: 15px;
  height: 15px;
}

#view-regulacao .reg-task-card-foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 6px;
  align-items: center;
  margin-top: 8px;
}

#view-regulacao .reg-task-flow-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

#view-regulacao .reg-task-flow-btn {
  min-height: 32px;
  border-color: rgba(59,75,33,0.24);
  background: #f6fbee;
  color: var(--primary, #3b4b21);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1.15;
  padding: 6px 8px;
}

#view-regulacao .reg-task-flow-done {
  background: #ecfdf5;
  border-color: #bfe6cd;
  color: #1f8a5b;
}

#view-regulacao .reg-task-flow-pending {
  background: #fff7ed;
  border-color: #fed7aa;
  color: #9a3412;
}

#view-regulacao .reg-task-flow-empty {
  align-items: center;
  background: #f7f9f4;
  border: 1px dashed var(--border);
  border-radius: 8px;
  color: var(--text-muted, #7e8474);
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 800;
  min-height: 32px;
  padding: 6px 8px;
}

#view-regulacao .reg-task-card small {
  display: block;
  margin-top: 8px;
  color: var(--text-muted, #7e8474);
  font-size: 0.7rem;
}

#reg-modal .reg-task-attachments {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #ffffff;
  padding: 12px;
}

#reg-modal .reg-task-attachments-head {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}

#reg-modal .reg-task-attachments-head strong {
  color: var(--text-main, #212717);
  font-size: 0.95rem;
}

#reg-modal .reg-task-attachments-head span,
#reg-modal .reg-task-attachment-help {
  color: var(--text-muted, #7e8474);
  font-size: 0.78rem;
  line-height: 1.45;
}

#reg-modal .reg-form textarea[readonly] {
  background: #f7f9f4;
  color: var(--text-muted, #7e8474);
  cursor: default;
}

#reg-modal .reg-task-attachment-list {
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

#reg-modal .reg-task-attachment-item {
  align-items: center;
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 9px;
  display: grid;
  gap: 8px;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  padding: 9px;
}

#reg-modal .reg-task-attachment-icon {
  align-items: center;
  background: rgba(15, 76, 129, 0.09);
  border-radius: 999px;
  color: #0f4f95;
  display: inline-flex;
  height: 32px;
  justify-content: center;
  width: 32px;
}

#reg-modal .reg-task-attachment-icon svg,
#reg-modal .reg-task-attachment-item .btn svg {
  height: 15px;
  width: 15px;
}

#reg-modal .reg-task-attachment-item strong,
#reg-modal .reg-task-attachment-item small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#reg-modal .reg-task-attachment-item strong {
  color: var(--text-main, #212717);
  font-size: 0.86rem;
}

#reg-modal .reg-task-attachment-item small {
  color: var(--text-muted, #7e8474);
  font-size: 0.72rem;
  margin-top: 2px;
}

#reg-modal .reg-task-attachment-new {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

#reg-modal .reg-task-attachment-help {
  margin: 10px 0 0;
}

#reg-modal .reg-task-log-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

#reg-modal .reg-task-history-list {
  display: grid;
  gap: 12px;
}

#reg-modal .reg-task-history-item {
  border: 1px solid var(--border);
  border-left: 0;
  border-radius: 10px;
  display: grid;
  gap: 12px;
  grid-template-columns: 38px minmax(0, 1fr);
  margin: 0;
  padding: 14px;
  background: var(--surface, #fff);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

#reg-modal .reg-task-history-icon {
  align-items: center;
  background: linear-gradient(135deg, rgba(59,75,33,0.14), rgba(15, 76, 129, 0.12));
  border: 1px solid rgba(59,75,33,0.16);
  border-radius: 999px;
  color: var(--primary);
  display: inline-flex;
  height: 34px;
  justify-content: center;
  width: 34px;
}

#reg-modal .reg-task-history-icon svg {
  height: 17px;
  width: 17px;
}

#reg-modal .reg-task-history-content {
  display: grid;
  gap: 10px;
  min-width: 0;
}

#reg-modal .reg-task-history-head {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

#reg-modal .reg-task-history-head strong,
#reg-modal .reg-task-history-head span {
  display: block;
}

#reg-modal .reg-task-history-head strong {
  color: var(--text, #1f2937);
  font-size: 1rem;
}

#reg-modal .reg-task-history-head span {
  color: var(--text-muted, #7e8474);
  font-size: 0.78rem;
  margin-top: 2px;
}

#reg-modal .reg-task-history-head em {
  background: rgba(59,75,33,0.08);
  border: 1px solid rgba(59,75,33,0.12);
  border-radius: 999px;
  color: var(--primary-dark);
  flex: 0 0 auto;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 800;
  max-width: 220px;
  overflow: hidden;
  padding: 6px 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#reg-modal .reg-task-history-changes {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

#reg-modal .reg-task-history-change {
  background: #f7f9f4;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
}

#reg-modal .reg-task-history-change span,
#reg-modal .reg-task-history-change strong {
  display: block;
}

#reg-modal .reg-task-history-change span {
  color: var(--text-muted, #7e8474);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

#reg-modal .reg-task-history-change strong {
  color: var(--text, #1f2937);
  font-size: 0.9rem;
  line-height: 1.35;
  margin-top: 4px;
}

#reg-modal .reg-task-history-content p {
  background: rgba(15, 76, 129, 0.06);
  border-left: 3px solid #0f4f95;
  border-radius: 8px;
  color: var(--text, #1f2937);
  line-height: 1.45;
  margin: 0;
  padding: 10px 12px;
}

#reg-modal .reg-task-notification {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: #f7f9f4;
}

#reg-modal .reg-task-notification:not(.is-read) {
  border-color: #86efac;
  background: #eafaf0;
}

#reg-modal .reg-task-notification strong,
#reg-modal .reg-task-notification span {
  display: block;
}

#reg-modal .reg-task-notification span {
  color: var(--text-muted, #7e8474);
  font-size: 0.78rem;
  margin-top: 4px;
}

#reg-modal .reg-task-dashboard {
  display: grid;
  gap: 14px;
}

#reg-modal .reg-task-dashboard-hero {
  align-items: center;
  background: linear-gradient(135deg, rgba(59,75,33,0.11), rgba(15, 79, 149, 0.08));
  border: 1px solid #d1d7c8;
  border-radius: 14px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 16px;
}

#reg-modal .reg-task-dashboard-hero strong,
#reg-modal .reg-task-dashboard-hero span {
  display: block;
}

#reg-modal .reg-task-dashboard-hero strong {
  color: var(--text-main, #212717);
  font-size: 1rem;
}

#reg-modal .reg-task-dashboard-hero span {
  color: var(--text-muted, #7e8474);
  font-size: 0.84rem;
  margin-top: 4px;
}

#reg-modal .reg-task-dashboard-kpis,
#reg-modal .reg-task-dashboard-grid {
  display: grid;
  gap: 10px;
}

#reg-modal .reg-task-dashboard-kpis {
  grid-template-columns: repeat(3, minmax(90px, 1fr));
}

#reg-modal .reg-task-dashboard-kpis article,
#reg-modal .reg-task-dashboard-card {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
}

#reg-modal .reg-task-dashboard-kpis span,
#reg-modal .reg-task-dashboard-line span,
#reg-modal .reg-task-dashboard-row span {
  color: var(--text-muted, #7e8474);
  font-size: 0.76rem;
  font-weight: 800;
}

#reg-modal .reg-task-dashboard-kpis strong {
  color: var(--primary, #3b4b21);
  display: block;
  font-size: 1.35rem;
  line-height: 1;
  margin-top: 5px;
}

#reg-modal .reg-task-dashboard-grid {
  grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(0, 1fr));
}

#reg-modal .reg-task-dashboard-card {
  display: grid;
  gap: 10px;
}

#reg-modal .reg-task-dashboard-card > strong {
  color: var(--text-main, #212717);
  font-size: 0.94rem;
}

#reg-modal .reg-task-dashboard-line,
#reg-modal .reg-task-dashboard-row {
  align-items: center;
  display: grid;
  gap: 8px;
}

#reg-modal .reg-task-dashboard-line,
#reg-modal .reg-task-dashboard-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

#reg-modal .reg-task-dashboard-line b,
#reg-modal .reg-task-dashboard-row b {
  color: var(--text-main, #212717);
  font-size: 0.9rem;
}

#reg-modal .reg-task-dashboard-row i {
  background: #e7ebe1;
  border-radius: 999px;
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  position: relative;
}

#reg-modal .reg-task-dashboard-row i::before {
  background: linear-gradient(90deg, var(--primary, #3b4b21), #0f4f95);
  border-radius: inherit;
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: var(--value, 0%);
}

#view-regulacao .reg-task-dashboard {
  display: grid;
  gap: 14px;
  margin: 0 auto 16px;
  max-width: 1540px;
  width: 100%;
}

#view-regulacao .reg-task-dashboard-hero {
  align-items: center;
  background: var(--card-bg, #f7f7f7);
  border: 1px solid var(--border);
  border-left: 4px solid var(--primary);
  border-radius: 14px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 18px 20px;
}
#view-regulacao .reg-task-dashboard-hero > div > span:first-child { color: var(--primary); }

#view-regulacao .reg-task-dashboard-hero > div {
  min-width: 0;
}

#view-regulacao .reg-task-dashboard-hero span,
#view-regulacao .reg-task-dashboard-filter span,
#view-regulacao .reg-task-dashboard-kpis span,
#view-regulacao .reg-task-dashboard-line span,
#view-regulacao .reg-task-dashboard-row span,
#view-regulacao .reg-task-dashboard-dept span {
  color: var(--text-muted, #7e8474);
  font-size: 0.76rem;
  font-weight: 800;
}

#view-regulacao .reg-task-dashboard-hero strong {
  color: var(--text-main, #212717);
  display: block;
  font-size: 1.28rem;
  line-height: 1.18;
  margin-top: 4px;
}

#view-regulacao .reg-task-dashboard-hero small,
#view-regulacao .reg-task-dashboard-line small,
#view-regulacao .reg-task-dashboard-dept small {
  color: var(--text-muted, #7e8474);
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
}

#view-regulacao .reg-task-dashboard-filter {
  display: grid;
  flex: 0 0 280px;
  gap: 6px;
}

#view-regulacao .reg-task-dashboard-filter select {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text-main, #212717);
  font: inherit;
  font-weight: 800;
  min-height: 44px;
  padding: 0 12px;
  width: 100%;
}

#view-regulacao .reg-task-dashboard-kpis,
#view-regulacao .reg-task-dashboard-grid {
  display: grid;
  gap: 10px;
}

#view-regulacao .reg-task-dashboard-kpis {
  grid-template-columns: repeat(4, minmax(120px, 1fr));
}

#view-regulacao .reg-task-dashboard-kpis article,
#view-regulacao .reg-task-dashboard-card {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
}

#view-regulacao .reg-task-dashboard-kpis strong {
  color: var(--primary, #3b4b21);
  display: block;
  font-size: 1.35rem;
  line-height: 1;
  margin-top: 5px;
}

#view-regulacao .reg-task-dashboard-grid {
  grid-template-columns: minmax(0, 1.1fr) minmax(260px, 1fr) minmax(260px, 1fr) minmax(220px, 0.85fr);
}

#view-regulacao .reg-task-dashboard-card {
  align-content: start;
  display: grid;
  gap: 10px;
  min-width: 0;
}

#view-regulacao .reg-task-dashboard-card > strong {
  color: var(--text-main, #212717);
  font-size: 0.94rem;
}

#view-regulacao .reg-task-dashboard-line,
#view-regulacao .reg-task-dashboard-row,
#view-regulacao .reg-task-dashboard-dept {
  align-items: center;
  display: grid;
  gap: 6px 8px;
  grid-template-columns: minmax(0, 1fr) auto;
}

#view-regulacao .reg-task-dashboard-line b,
#view-regulacao .reg-task-dashboard-row b,
#view-regulacao .reg-task-dashboard-dept b {
  color: var(--text-main, #212717);
  font-size: 0.9rem;
}

#view-regulacao .reg-task-dashboard-line small,
#view-regulacao .reg-task-dashboard-dept small {
  grid-column: 1 / -1;
}

#view-regulacao .reg-task-dashboard-row i {
  background: #e7ebe1;
  border-radius: 999px;
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  position: relative;
}

#view-regulacao .reg-task-dashboard-row i::before {
  background: linear-gradient(90deg, var(--primary, #3b4b21), #0f4f95);
  border-radius: inherit;
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: var(--value, 0%);
}

#reg-modal .reg-task-report {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

#reg-modal .reg-task-report-head {
  align-items: center;
  background: linear-gradient(135deg, rgba(59,75,33,0.08), rgba(15, 76, 129, 0.08));
  border: 1px solid rgba(59,75,33,0.18);
  border-radius: 14px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding: 16px 18px;
}

#reg-modal .reg-task-report-head strong,
#reg-modal .reg-task-report-head span {
  display: block;
}

#reg-modal .reg-task-report-head strong {
  color: var(--text, #1f2937);
  font-size: 1.05rem;
}

#reg-modal .reg-task-report-head span {
  color: var(--text-muted, #7e8474);
  font-size: 0.84rem;
  margin-top: 3px;
}

#reg-modal .reg-task-report-head b {
  background: rgba(59,75,33,0.14);
  border-radius: 999px;
  color: var(--primary);
  flex: 0 0 auto;
  font-size: 0.92rem;
  padding: 9px 14px;
}

#reg-modal .reg-task-report-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
  gap: 12px;
}

#reg-modal .reg-task-report-grid section {
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  background: linear-gradient(180deg, var(--surface, #fff), rgba(59,75,33,0.025));
  min-width: 0;
}

#reg-modal .reg-task-report-grid strong,
#reg-modal .reg-task-report-grid span {
  display: block;
}

#reg-modal .reg-task-report-grid span {
  color: var(--text-muted, #7e8474);
  font-size: 0.82rem;
  margin-top: 3px;
}

#reg-modal .reg-task-report-grid section div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

#reg-modal .reg-task-report-grid b,
#reg-modal .reg-task-report-grid small {
  display: block;
  text-align: center;
}

#reg-modal .reg-task-report-grid b {
  color: var(--primary);
  font-size: 1.08rem;
}

#reg-modal .reg-task-report-grid small {
  color: var(--text-muted, #7e8474);
  font-size: 0.7rem;
}

#reg-modal .reg-task-report-empty {
  background: rgba(59,75,33,0.05);
  border: 1px dashed rgba(59,75,33,0.28);
  border-radius: 14px;
  display: grid;
  gap: 6px;
  padding: 20px;
}

#reg-modal .reg-task-report-empty strong {
  color: var(--text, #1f2937);
  font-size: 1rem;
}

#reg-modal .reg-task-report-empty span {
  color: var(--text-muted, #7e8474);
  line-height: 1.45;
}

#reg-modal .reg-task-report-table-wrap {
  background: var(--surface, #fff);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: auto;
}

#reg-modal .reg-task-report-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 900px;
}

#reg-modal .reg-task-report-table th,
#reg-modal .reg-task-report-table td {
  vertical-align: top;
}

#reg-modal .reg-task-report-table th {
  background: rgba(59,75,33,0.1);
  color: #283118;
  font-size: 0.78rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

#reg-modal .reg-task-report-table td {
  border-top: 1px solid var(--border);
  line-height: 1.4;
}

#reg-modal .reg-task-report-table td strong,
#reg-modal .reg-task-report-table td span,
#reg-modal .reg-task-report-table td small {
  display: block;
}

#reg-modal .reg-task-report-table td span,
#reg-modal .reg-task-report-table td small {
  color: var(--text-muted, #7e8474);
  font-size: 0.78rem;
  margin-top: 3px;
}

#reg-modal .reg-task-movement-block {
  display: grid;
  gap: 5px;
  min-width: 175px;
}

#reg-modal .reg-task-movement {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 800;
  justify-content: center;
  line-height: 1.1;
  padding: 6px 10px;
  width: max-content;
}

#reg-modal .reg-task-movement-done {
  background: #eafaf0;
  border-color: #bfe6cd;
  color: #1f8a5b;
}

#reg-modal .reg-task-movement-transferred {
  background: #eef4fd;
  border-color: #d7e4f7;
  color: #323e1d;
}

#reg-modal .reg-task-movement-moved {
  background: #fef3c7;
  border-color: #fde68a;
  color: #92400e;
}

#reg-modal .reg-task-movement-status {
  background: #e2f2c7;
  border-color: #cae797;
  color: #3f5121;
}

#reg-modal .reg-task-movement-block em {
  color: var(--text-muted, #7e8474);
  font-size: 0.72rem;
  font-style: normal;
}

#reg-modal .reg-task-report-actions {
  border-top: 1px solid var(--border);
  margin-top: 0;
  padding-top: 14px;
}

#reg-modal .reg-task-report-actions .btn[disabled] {
  cursor: not-allowed;
  opacity: 0.55;
}

body.theme-dark #view-regulacao .reg-header {
  background: linear-gradient(135deg, #143a64 0%, #14532d 100%);
}

body.theme-dark #view-regulacao .reg-error {
  background: rgba(127, 29, 29, 0.25);
  color: #f7d3d8;
  border-color: rgba(248, 113, 113, 0.45);
}

body.theme-dark #reg-modal .reg-task-report-head,
body.theme-dark #reg-modal .reg-task-report-grid section,
body.theme-dark #reg-modal .reg-task-report-table-wrap {
  background: rgba(15, 23, 42, 0.92);
  border-color: rgba(148, 163, 184, 0.22);
}

body.theme-dark #reg-modal .reg-task-report-table th {
  background: rgba(59,75,33,0.28);
  color: #cae69b;
}

@media (max-width: 1100px) {
  #view-regulacao .reg-filter-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #view-regulacao .reg-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #view-regulacao .reg-dashboard-hero,
  #view-regulacao .reg-dashboard-grid {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-span-2 {
    grid-column: auto;
  }

  #view-regulacao .reg-board {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-task-shell {
    width: min(100vw - 24px, 1540px);
  }

  #view-regulacao .reg-kanban {
    grid-template-columns: repeat(3, minmax(240px, 1fr));
  }
}

@media (max-width: 720px) {
  #view-regulacao .reg-shell {
    width: min(100vw - 16px, 1540px);
    margin: 8px auto;
  }

  #view-regulacao .reg-task-shell {
    width: calc(100vw - 16px);
    margin-bottom: 72px;
  }

  #view-regulacao .reg-task-shell .reg-content {
    padding: 10px;
  }

  #view-regulacao .reg-header {
    flex-direction: column;
  }

  #view-regulacao .reg-actions {
    justify-content: flex-start;
  }

  #view-regulacao .reg-filter-band,
  #view-regulacao .reg-form-grid,
  #view-regulacao .reg-detail-grid,
  #reg-modal .reg-form-grid,
  #reg-modal .reg-detail-grid {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-metrics,
  #view-regulacao .reg-priority-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #view-regulacao .reg-donut-layout {
    grid-template-columns: 1fr;
  }

  #view-regulacao .reg-donut {
    justify-self: center;
  }

  #view-regulacao .reg-kanban,
  #reg-modal .reg-task-report-grid {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-report-head {
    align-items: flex-start;
    flex-direction: column;
  }

  #view-regulacao .reg-task-dashboard-hero,
  #reg-modal .reg-task-dashboard-hero {
    align-items: stretch;
    flex-direction: column;
  }

  #view-regulacao .reg-task-dashboard-filter {
    flex: 0 1 auto;
    width: 100%;
  }

  #view-regulacao .reg-task-dashboard-kpis,
  #view-regulacao .reg-task-dashboard-grid,
  #reg-modal .reg-task-dashboard-kpis,
  #reg-modal .reg-task-dashboard-grid {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-report-table {
    min-width: 760px;
  }

  #reg-modal .reg-task-report-actions .btn {
    flex: 1 1 160px;
    justify-content: center;
  }

  #reg-modal .reg-task-history-item {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-history-head {
    flex-direction: column;
  }

  #reg-modal .reg-task-history-changes {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-attachment-new {
    grid-template-columns: 1fr;
  }

  #reg-modal .reg-task-attachment-item {
    grid-template-columns: 34px minmax(0, 1fr) auto;
  }

  #reg-modal .reg-task-attachment-item .btn.btn-danger {
    grid-column: 2 / -1;
    justify-self: stretch;
  }

  #view-regulacao .reg-kanban-column {
    height: auto;
    min-height: 300px;
  }
}

.sigtap-header {
  align-items: flex-start;
  gap: 12px;
}

.sigtap-header-actions {
  gap: 8px;
  flex-wrap: wrap;
}

.sigtap-query-card {
  margin-bottom: 16px;
}

.sigtap-query-form {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) auto auto;
  gap: 10px;
  align-items: end;
}

.sigtap-query-form label {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted);
}

.sigtap-query-form input {
  margin: 0;
}

.sigtap-empty,
.sigtap-result-card {
  padding: 18px;
}

.sigtap-result-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}

.sigtap-result-head h3 {
  margin: 2px 0 0;
  color: var(--text-main);
}

.sigtap-meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.sigtap-meta-grid > div {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: var(--surface-2);
}

.sigtap-meta-grid span {
  display: block;
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.sigtap-description {
  margin: 0 0 14px;
  color: var(--text-main);
  line-height: 1.5;
}

.sigtap-table-wrap {
  overflow-x: auto;
}

.sigtap-table {
  width: 100%;
}

.sigtap-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 98px;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: 0.78rem;
  font-weight: 800;
}

.sigtap-badge.is-ok {
  color: #1f8a5b;
  background: #eafaf0;
  border: 1px solid #86efac;
}

.sigtap-badge.is-no {
  color: #d6334a;
  background: #fdeef0;
  border: 1px solid #f7d3d8;
}

body.theme-dark .sigtap-meta-grid > div,
body.theme-dark .sigtap-empty,
body.theme-dark .sigtap-result-card {
  background: var(--surface-2);
  border-color: var(--border);
}

@media (max-width: 700px) {
  .sigtap-query-form,
  .sigtap-meta-grid {
    grid-template-columns: 1fr;
  }

  .sigtap-result-head {
    flex-direction: column;
  }
}

.servidor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.servidor-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.servidor-content-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #ffffff;
}

.servidor-menu-btn {
  flex: 1 1 180px;
  min-width: 0;
  border-color: rgba(56,70,34,0.24);
  background: rgba(255,255,255,0.92);
  color: var(--primary-dark);
  font-weight: 700;
}

.servidor-menu-btn:hover {
  background: #edefe9;
  border-color: rgba(56,70,34,0.35);
}

.servidor-menu-btn.is-active {
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  border-color: var(--primary-dark);
  color: #fff;
  box-shadow: 0 6px 14px rgba(40,49,23,0.2);
}

.servidor-content-panel {
  margin: 0;
}

.servidor-launch-card {
  background: #ffffff;
  border: 1px solid var(--border);
  box-shadow: var(--shadow-xs);
}

.servidor-launch-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.servidor-chip {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-muted);
  font-size: 0.76rem;
  font-weight: 700;
  padding: 5px 10px;
}

.servidor-launch-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.servidor-launch-actions-menu {
  grid-template-columns: 1fr;
}

.servidor-launch-actions .btn {
  width: 100%;
  min-width: 0;
}

.servidor-launch-status {
  margin-top: 10px;
  min-height: 20px;
  color: var(--text-muted);
}

.servidor-forms-card {
  min-height: 460px;
  border: 1px solid var(--border);
  background: #ffffff;
  box-shadow: var(--shadow-xs);
}

.servidor-form-card {
  border: 1px solid var(--border);
  background: #ffffff;
  box-shadow: var(--shadow-xs);
}

.servidor-form-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.servidor-form-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

.servidor-form-field {
  min-width: 0;
}

.servidor-form-field .small {
  display: block;
  font-weight: 700;
  color: #4d5243;
  margin-bottom: 5px;
}

.servidor-form-field :is(input, select, textarea) {
  width: 100%;
  border: 1px solid #c5d1b0;
  border-radius: 10px;
  padding: 9px 11px;
  font-size: 0.9rem;
  background: #ffffff;
  color: #212717;
}

.servidor-form-field textarea {
  resize: vertical;
  min-height: 74px;
}

.servidor-form-field-full {
  grid-column: 1 / -1;
}

.servidor-form-footer {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.servidor-form-footer #servidor-form-status {
  min-height: 18px;
  color: var(--text-muted);
}

.servidor-form-footer-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

body.theme-dark .servidor-launch-card {
  background: linear-gradient(180deg, rgba(36,38,33,0.96) 0%, rgba(30,31,26,0.98) 100%);
  border-color: var(--border);
}

body.theme-dark .servidor-content-tabs {
  background: linear-gradient(180deg, rgba(34,36,31,0.96) 0%, rgba(30,31,26,0.98) 100%);
  border-color: var(--border);
}

body.theme-dark .servidor-menu-btn {
  background: rgba(255,255,255,0.06);
  color: var(--text-main);
  border-color: var(--border);
}

body.theme-dark .servidor-menu-btn:hover {
  background: rgba(255,255,255,0.12);
}

body.theme-dark .servidor-menu-btn.is-active {
  background: linear-gradient(135deg, #535d41 0%, #667152 100%);
  border-color: #75825e;
  color: #fff;
}

body.theme-dark .servidor-forms-card,
body.theme-dark .servidor-form-card {
  background: linear-gradient(180deg, rgba(36,38,33,0.96) 0%, rgba(30,31,26,0.98) 100%);
  border-color: var(--border);
}

body.theme-dark .servidor-chip {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--text-muted);
}

body.theme-dark .servidor-form-field .small {
  color: var(--text-muted);
}

body.theme-dark .servidor-form-field :is(input, select, textarea) {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--text-main);
}

@media (max-width: 980px) {
  .servidor-layout {
    grid-template-columns: 1fr !important;
  }

  .servidor-menu-btn {
    flex-basis: 100%;
  }

  .servidor-launch-actions {
    grid-template-columns: 1fr;
  }

  .servidor-form-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

.rh-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}

.rh-report-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
}

.rh-report-table th,
.rh-report-table td {
  border-bottom: 1px solid #e0e7d4;
  padding: 7px 8px;
  font-size: 12px;
  text-align: left;
  vertical-align: top;
}

.rh-report-table th {
  background: #f7f9f4;
  color: #4d5243;
  font-weight: 700;
}

.rh-panel-tabs {
  margin: 0 0 10px;
}

.rh-time-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.rh-time-toolbar input,
.rh-time-toolbar select {
  min-height: 36px;
  border-radius: 10px;
  border: 1px solid #c5d1b0;
  background: #fff;
}

.rh-time-toolbar .btn {
  min-width: 150px;
}

.rh-time-marks {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.rh-time-mark-row {
  font-size: 12px;
  color: #4d5243;
  white-space: nowrap;
}

.rh-time-mark-row strong {
  color: #212717;
}

.rh-time-mark-missing {
  display: inline-flex;
  align-items: center;
  border: 1px solid #f7d3d8;
  border-radius: 999px;
  background: #fdeef0;
  color: #b91c1c;
  font-size: 11px;
  font-weight: 700;
  padding: 1px 7px;
}

.rh-dashboard-panels {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 10px;
}

.rh-dashboard-panel {
  grid-column: span 6;
  border: 1px solid #e0e7d4;
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  min-width: 0;
}

.rh-dashboard-panel--full {
  grid-column: span 12;
}

.rh-dashboard-panel .rh-report-table {
  min-width: 560px;
}

.rh-dashboard-chart-wrap {
  position: relative;
  height: 250px;
}

.rh-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  border: 1px solid #c5d1b0;
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 700;
  color: #4d5243;
  background: #f7f9f4;
}

.rh-chip-system {
  border-color: rgba(22,101,52,0.3);
  color: #1f8a5b;
  background: #ecfdf3;
}

.rh-chip-import {
  border-color: rgba(3,105,161,0.28);
  color: #0369a1;
  background: #eef9ff;
}

.rh-chip-positive {
  border-color: rgba(22,101,52,0.35);
  color: #1f8a5b;
  background: #eafaf0;
}

.rh-chip-negative {
  border-color: rgba(185,28,28,0.35);
  color: #d6334a;
  background: #fdeef0;
}

.rh-chip-zero {
  border-color: rgba(71,85,105,0.3);
  color: #4d5243;
  background: #ecf0e5;
}

body.theme-dark .rh-dashboard-panel {
  background: var(--surface-2);
  border-color: var(--border);
}
body.theme-dark .rh-report-table td,
body.theme-dark .rh-report-table th {
  color: var(--text-main);
}

body.theme-dark .rh-report-table th,
body.theme-dark .rh-report-table td {
  border-color: var(--border);
}

body.theme-dark .rh-chip {
  background: rgba(255,255,255,0.05);
  border-color: var(--border);
  color: var(--text-main);
}

body.theme-dark .rh-chip-system {
  background: rgba(22,163,74,0.16);
  border-color: rgba(74,222,128,0.36);
  color: #bfe6cd;
}

body.theme-dark .rh-chip-import {
  background: rgba(14,116,144,0.2);
  border-color: rgba(56,189,248,0.32);
  color: #bae6fd;
}

body.theme-dark .rh-chip-positive {
  background: rgba(22,163,74,0.2);
  border-color: rgba(74,222,128,0.35);
  color: #bfe6cd;
}

body.theme-dark .rh-chip-negative {
  background: rgba(220,38,38,0.18);
  border-color: rgba(248,113,113,0.35);
  color: #f7d3d8;
}

body.theme-dark .rh-chip-zero {
  background: rgba(100,116,139,0.2);
  border-color: rgba(148,163,184,0.35);
  color: #c5d1b0;
}

body.theme-dark .rh-time-toolbar input,
body.theme-dark .rh-time-toolbar select {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--text-main);
}

body.theme-dark .rh-time-mark-row {
  color: var(--text-main);
}

body.theme-dark .rh-time-mark-row strong {
  color: var(--text-main);
}

body.theme-dark .rh-time-mark-missing {
  background: rgba(220,38,38,0.2);
  border-color: rgba(248,113,113,0.35);
  color: #f7d3d8;
}

/* Transição ao alternar tema (fluida e leve) */
@media (max-width: 980px) {
  .rh-dashboard-panel {
    grid-column: span 12;
  }

  .rh-dashboard-chart-wrap {
    height: 220px;
  }

  .rh-time-toolbar {
    width: 100%;
    justify-content: flex-start;
  }

  .rh-time-toolbar :is(input, select, .btn) {
    width: 100%;
    min-width: 0 !important;
    max-width: none !important;
  }
}

body.theme-switching {
  transition: background-color .24s cubic-bezier(.22,.61,.36,1), color .2s cubic-bezier(.22,.61,.36,1) !important;
}

body.theme-switching :is(
  .panel-container,
  .card,
  .modal-box,
  .intranet-card,
  .intranet-sidebar,
  .fat-card,
  .fat-modal-box,
  .btn,
  input,
  select,
  textarea,
  th,
  td,
  .site-footer,
  .ui-global-controls,
  .ui-global-main-toggle,
  .ui-global-toggle,
  #view-portal .portal-col-left > div,
  #view-portal .portal-col-right > div,
  #view-portal .portal-appt-card,
  #view-portal .portal-history-card,
  #view-portal .portal-transport-card
) {
  transition: background-color .24s cubic-bezier(.22,.61,.36,1), color .2s cubic-bezier(.22,.61,.36,1), border-color .24s cubic-bezier(.22,.61,.36,1), box-shadow .24s cubic-bezier(.22,.61,.36,1) !important;
}

body.theme-switching::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 1200;
  opacity: 0;
  animation: theme-switch-fade .28s ease;
}

body.theme-dark.theme-switching::before {
  background: rgba(0,0,0,0.1);
}

body:not(.theme-dark).theme-switching::before {
  background: rgba(255,255,255,0.12);
}

@keyframes theme-switch-fade {
  0% { opacity: 0; }
  35% { opacity: 1; }
  100% { opacity: 0; }
}

body.reduced-motion.theme-switching,
body.reduced-motion.theme-switching * {
  transition: none !important;
}

body.reduced-motion.theme-switching::before {
  display: none !important;
}

/* Portal do paciente: tokens utilitários */
#view-portal .portal-inline-muted {
  margin-bottom: 10px;
  font-size: 0.82rem;
  color: var(--text-muted);
}

#view-portal .portal-inline-error {
  margin-bottom: 10px;
  font-size: 0.82rem;
  color: var(--danger);
}

#view-portal .portal-inline-alert {
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 12px;
  border: 1.5px solid var(--border);
  font-size: 0.83rem;
}

#view-portal .portal-inline-alert span {
  font-size: 0.78rem;
}

#view-portal .portal-inline-alert.is-danger {
  background: #fdeef0;
  border-color: #f7d3d8;
  color: #d6334a;
}

#view-portal .portal-inline-alert.is-warn {
  background: #fef9c3;
  border-color: #fde68a;
  color: #854d0e;
}

/* Portal: calendário e slots */
#view-portal .portal-calendar-day {
  background: #f7f9f4 !important;
  color: #5b6250 !important;
  border-color: transparent !important;
}

#view-portal .portal-calendar-day.is-past {
  background: #f7f9f4 !important;
  color: #c5d1b0 !important;
}

#view-portal .portal-calendar-day.is-selected {
  background: #d7e4f7 !important;
  color: #323e1d !important;
  border-color: #3a6fd0 !important;
}

#view-portal .portal-calendar-day.is-mine {
  background: #fef9c3 !important;
  color: #854d0e !important;
  border-color: #fde68a !important;
}

#view-portal .portal-calendar-day.is-available {
  background: #bfe6cd !important;
  color: #14532d !important;
}

#view-portal .portal-calendar-day.is-empty {
  background: #f7f9f4 !important;
  color: #8d9977 !important;
}

#view-portal .portal-day-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  display: block;
}

#view-portal .portal-day-dot.is-mine {
  background: #d97706;
}

#view-portal .portal-day-dot.is-available {
  background: #1f9d57;
}

#view-portal .portal-slot-btn {
  padding: 8px 14px !important;
  border-radius: 8px !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  border: 1.5px solid #e0e7d4 !important;
  transition: all 0.15s ease !important;
}

#view-portal .portal-slot-btn.is-disabled {
  background: #f7f9f4 !important;
  color: #8d9977 !important;
  border-color: #e0e7d4 !important;
  cursor: not-allowed !important;
}

#view-portal .portal-slot-btn.is-available {
  background: #eafaf0 !important;
  color: #14532d !important;
  border-color: #bfe6cd !important;
  cursor: pointer !important;
}

#view-portal .portal-slot-btn.is-available:hover {
  background: var(--primary) !important;
  color: #fff !important;
  border-color: var(--primary) !important;
}

#view-portal .portal-slot-help {
  font-size: 0.72rem;
}

/* Portal: cards dinâmicos */
#view-portal .portal-appt-card {
  border: 1px solid #e0e7d4;
  border-radius: 10px;
  padding: 10px 13px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#view-portal .portal-appt-card.is-active {
  background: #eafaf0;
  border-color: #bfe6cd;
}

#view-portal .portal-appt-card.is-cancelled {
  background: #fdeef0;
  border-color: #f7d3d8;
}

#view-portal .portal-appt-card.is-completed {
  background: #eef4fd;
  border-color: #d7e4f7;
}

#view-portal .portal-appt-card.is-no-show {
  background: #fefce8;
  border-color: #fde68a;
}

#view-portal .portal-appt-title {
  font-weight: 700;
  font-size: 0.88rem;
  color: #24281d;
}

#view-portal .portal-appt-status {
  font-size: 0.75rem;
  font-weight: 700;
  margin-top: 2px;
}

#view-portal .portal-appt-card.is-active .portal-appt-status { color: #14532d; }
#view-portal .portal-appt-card.is-cancelled .portal-appt-status { color: #d6334a; }
#view-portal .portal-appt-card.is-completed .portal-appt-status { color: #1e40af; }
#view-portal .portal-appt-card.is-no-show .portal-appt-status { color: #854d0e; }

#view-portal .portal-appt-note {
  font-size: 0.72rem;
  color: #5b6250;
  margin-top: 2px;
}

#view-portal .portal-appt-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}

#view-portal .portal-appt-cancel-btn {
  background: #fdeef0;
  color: #e0445a;
  border: 1px solid #f7d3d8;
  border-radius: 7px;
  padding: 5px 10px;
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}

#view-portal .portal-appt-cancel-btn:hover {
  background: #fdeef0;
}

#view-portal .portal-history-card {
  background: #f7f9f4;
  border: 1px solid #e0e7d4;
  border-left: 3px solid var(--primary);
  border-radius: 10px;
  padding: 10px 13px;
  margin-bottom: 8px;
}

#view-portal .portal-history-title {
  font-weight: 700;
  font-size: 0.88rem;
  color: #24281d;
}

#view-portal .portal-history-ticket {
  color: var(--primary);
}

#view-portal .portal-history-status {
  font-size: 0.75rem;
  font-weight: 700;
  color: #14532d;
  margin-top: 2px;
}

#view-portal .portal-history-meta {
  font-size: 0.72rem;
  color: #5b6250;
  margin-top: 2px;
}

#view-portal .portal-transport-card {
  border: 1px solid #e0e7d4;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 10px;
  background: #fff;
}

#view-portal .portal-transport-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: #24281d;
}

#view-portal .portal-transport-meta-line {
  font-size: 0.78rem;
  color: #5b6250;
  margin-top: 2px;
}

#view-portal .portal-transport-status {
  font-size: 0.73rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
}

#view-portal .portal-transport-status.is-validated {
  background: #ecfdf5;
  border-color: #86efac;
  color: #1f8a5b;
}

#view-portal .portal-transport-status.is-no-show {
  background: #fdeef0;
  border-color: #f7d3d8;
  color: #d6334a;
}

#view-portal .portal-transport-status.is-pending {
  background: #eef4fd;
  border-color: #d7e4f7;
  color: #1e40af;
}

#view-portal .portal-transport-qr-help {
  font-size: 0.72rem;
  color: #5b6250;
  max-width: 280px;
}

#view-portal .portal-qr-thumb {
  width: 120px;
  height: 120px;
  border: 1px solid #e0e7d4;
  border-radius: 8px;
  background: #fff;
  padding: 4px;
  cursor: zoom-in;
}

.portal-qr-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(15,23,42,0.75);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.portal-qr-modal-box {
  background: #fff;
  border-radius: 14px;
  max-width: 420px;
  width: 100%;
  padding: 14px;
  box-shadow: 0 12px 36px rgba(0,0,0,0.35);
}

.portal-qr-modal-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.portal-qr-modal-title {
  font-size: 0.92rem;
  color: #212717;
}

.portal-qr-close-btn {
  border: 1px solid #e0e7d4;
  background: #fff;
  border-radius: 8px;
  padding: 4px 10px;
  cursor: pointer;
  font-size: 0.8rem;
}

.portal-qr-modal-image-wrap {
  display: flex;
  justify-content: center;
}

.portal-qr-modal-image {
  width: 100%;
  max-width: 340px;
  height: auto;
  border: 1px solid #e0e7d4;
  border-radius: 10px;
  padding: 8px;
  background: #fff;
}

/* Dark mode refinado no portal do paciente */
body.theme-dark #view-portal.view-section {
  background: #121212 !important;
}

body.theme-dark #view-portal > .panel-container {
  background: #1b1b1b !important;
  border-color: #2d2d2d !important;
}

body.theme-dark #view-portal .portal-col-left > div,
body.theme-dark #view-portal .portal-col-right > div {
  background: #1e1e1e !important;
  border-color: #2d2d2d !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.45) !important;
}

body.theme-dark #view-portal .portal-col-left > div > div:first-child,
body.theme-dark #view-portal .portal-col-right > div > div:first-child {
  background: #252525 !important;
  border-bottom-color: #333333 !important;
}

body.theme-dark #view-portal .portal-col-left > div:first-child > div:first-child {
  background: linear-gradient(135deg, #495239 0%, #5e6651 100%) !important;
}

body.theme-dark #view-portal .portal-card-head::after,
body.theme-dark #view-portal .portal-card-refresh-btn {
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-inline-muted {
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-inline-alert.is-danger {
  background: #3a2323 !important;
  border-color: #5a3232 !important;
  color: #f7c1c1 !important;
}

body.theme-dark #view-portal .portal-inline-alert.is-warn {
  background: #3a3122 !important;
  border-color: #5a4a30 !important;
  color: #ffe8ad !important;
}

body.theme-dark #view-portal .portal-calendar-day {
  background: #2c2c2c !important;
  border-color: #333333 !important;
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-past {
  background: #262626 !important;
  color: #6f6f6f !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-selected {
  background: #495239 !important;
  border-color: #626d50 !important;
  color: #edf1e6 !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-mine {
  background: #4b3f21 !important;
  border-color: #6f5a2a !important;
  color: #f4deb0 !important;
}

body.theme-dark #view-portal .portal-calendar-day.is-available {
  background: #244233 !important;
  color: #b9e7cc !important;
}

body.theme-dark #view-portal .portal-slot-btn.is-disabled {
  background: #2c2c2c !important;
  border-color: #333333 !important;
  color: #8f8f8f !important;
}

body.theme-dark #view-portal .portal-slot-btn.is-available {
  background: #2a3f31 !important;
  border-color: #3f5d48 !important;
  color: #d3eedf !important;
}

body.theme-dark #view-portal .portal-slot-btn.is-available:hover {
  background: #5e6651 !important;
  border-color: #778165 !important;
  color: #eff3e9 !important;
}

body.theme-dark #view-portal .portal-appt-card,
body.theme-dark #view-portal .portal-history-card,
body.theme-dark #view-portal .portal-transport-card {
  background: #2a2a2a !important;
  border-color: #333333 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-active {
  background: #2a3f31 !important;
  border-color: #3f5d48 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-cancelled {
  background: #3a2323 !important;
  border-color: #5a3232 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-completed {
  background: #2a3442 !important;
  border-color: #3b4e65 !important;
}

body.theme-dark #view-portal .portal-appt-card.is-no-show {
  background: #3a3122 !important;
  border-color: #5a4a30 !important;
}

body.theme-dark #view-portal .portal-appt-title,
body.theme-dark #view-portal .portal-history-title,
body.theme-dark #view-portal .portal-transport-title {
  color: #e0e0e0 !important;
}

body.theme-dark #view-portal .portal-appt-note,
body.theme-dark #view-portal .portal-history-meta,
body.theme-dark #view-portal .portal-transport-meta-line,
body.theme-dark #view-portal .portal-transport-qr-help {
  color: #a0a0a0 !important;
}

body.theme-dark #view-portal .portal-appt-cancel-btn {
  background: #7a3030 !important;
  border-color: #8d3a3a !important;
  color: #ffeaea !important;
}

body.theme-dark #view-portal .portal-transport-status.is-validated {
  background: #2a3f31 !important;
  border-color: #3f5d48 !important;
  color: #cce9d8 !important;
}

body.theme-dark #view-portal .portal-transport-status.is-no-show {
  background: #3a2323 !important;
  border-color: #5a3232 !important;
  color: #f5c1c1 !important;
}

body.theme-dark #view-portal .portal-transport-status.is-pending {
  background: #2a3442 !important;
  border-color: #3b4e65 !important;
  color: #cdddf2 !important;
}

body.theme-dark #view-portal .portal-qr-thumb,
body.theme-dark .portal-qr-modal-image {
  background: #1e1e1e !important;
  border-color: #333333 !important;
}

body.theme-dark .portal-qr-modal {
  background: rgba(0,0,0,0.78) !important;
}

body.theme-dark .portal-qr-modal-box {
  background: #1e1e1e !important;
  border: 1px solid #333333 !important;
}

body.theme-dark .portal-qr-modal-title {
  color: #e0e0e0 !important;
}

body.theme-dark .portal-qr-close-btn {
  background: #2c2c2c !important;
  border-color: #333333 !important;
  color: #e0e0e0 !important;
}

/* Acessibilidade reforçada no portal */
body.accessibility-mode #view-portal {
  font-size: 1.06rem;
}

body.accessibility-mode #view-portal .portal-header h2,
body.accessibility-mode #view-portal .portal-card-head > span,
body.accessibility-mode #view-portal .portal-appt-title,
body.accessibility-mode #view-portal .portal-history-title,
body.accessibility-mode #view-portal .portal-transport-title {
  font-size: 1rem !important;
}

body.accessibility-mode #view-portal #portal-user-info,
body.accessibility-mode #view-portal .portal-inline-muted,
body.accessibility-mode #view-portal .portal-inline-error,
body.accessibility-mode #view-portal .portal-appt-note,
body.accessibility-mode #view-portal .portal-history-meta,
body.accessibility-mode #view-portal .portal-transport-meta-line,
body.accessibility-mode #view-portal .portal-transport-qr-help {
  font-size: 0.9rem !important;
  line-height: 1.62 !important;
}

body.accessibility-mode #view-portal .portal-calendar-day {
  min-height: 52px !important;
  font-size: 0.98rem !important;
}

body.accessibility-mode #view-portal .portal-slot-btn {
  min-height: 52px !important;
  font-size: 0.92rem !important;
}

body.accessibility-mode #view-portal .portal-header-actions .btn {
  min-height: 44px !important;
  font-size: 0.9rem !important;
}

body.high-contrast-mode #view-portal.view-section,
body.high-contrast-mode #view-portal > .panel-container,
body.high-contrast-mode #view-portal .portal-col-left > div,
body.high-contrast-mode #view-portal .portal-col-right > div,
body.high-contrast-mode #view-portal .portal-appt-card,
body.high-contrast-mode #view-portal .portal-history-card,
body.high-contrast-mode #view-portal .portal-transport-card {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.high-contrast-mode #view-portal .portal-card-head::after,
body.high-contrast-mode #view-portal .portal-inline-muted,
body.high-contrast-mode #view-portal .portal-history-meta,
body.high-contrast-mode #view-portal .portal-transport-meta-line,
body.high-contrast-mode #view-portal .portal-transport-qr-help {
  color: #ffff00 !important;
}

body.high-contrast-mode #view-portal .portal-calendar-day {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
}

body.theme-dark .bg-white,
body.theme-dark .bg-gray-50,
body.theme-dark .bg-blue-50,
body.theme-dark .bg-blue-100,
body.theme-dark .bg-green-100 {
  background-color: var(--surface-2) !important;
}

body.theme-dark .text-gray-800,
body.theme-dark .text-gray-700,
body.theme-dark .text-gray-600,
body.theme-dark .text-gray-500,
body.theme-dark .text-blue-800,
body.theme-dark .text-green-800 {
  color: var(--text-main) !important;
}

body.theme-dark .site-footer {
  background: #181818;
  color: var(--text-muted);
  border-top-color: var(--border);
}

body.theme-dark .btn {
  background: #2a2a2a;
  color: #e6e6e6;
  border-color: #3a3a3a;
}

body.theme-dark .btn:hover {
  background: #343434;
}

body.theme-dark .btn-primary {
  background: #495239;
  border-color: #3c442f;
  color: #ecf3e1;
}

body.theme-dark .btn-primary:hover {
  background: #5b6748;
}

body.theme-dark .btn-accent {
  background: #8f6f1f;
  border-color: #765b19;
  color: #fff7dd;
}

body.theme-dark .btn-accent:hover {
  background: #a07d25;
  color: #fff;
}

body.theme-dark .btn-success {
  background: #2d6b49;
  border-color: #24543a;
  color: #eaf8ef;
}

body.theme-dark .btn-success:hover {
  background: #367f57;
}

body.theme-dark .btn-warning {
  background: #8f6e1a;
  border-color: #755914;
  color: #fff4d5;
}

body.theme-dark .btn-warning:hover {
  background: #a17c1c;
}

body.theme-dark .btn-danger {
  background: #7a3030;
  border-color: #622626;
  color: #ffeaea;
}

body.theme-dark .btn-danger:hover {
  background: #8d3a3a;
}

body.theme-dark .status-active,
body.theme-dark .rec-status-active,
body.theme-dark .rec-status-completed,
body.theme-dark .rec-status-closed,
body.theme-dark .text-success {
  color: #79d19f !important;
}

body.theme-dark .status-inactive,
body.theme-dark .rec-status-cancelled,
body.theme-dark .rec-status-no_show,
body.theme-dark .text-danger {
  color: #f28b82 !important;
}

body.theme-dark .status-waiting,
body.theme-dark .rec-status-waiting {
  color: #ffd54f !important;
}

body.theme-dark .ui-global-controls {
  background: rgba(30,30,30,0.96);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-controls.is-collapsed {
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}

body.theme-dark .ui-global-main-toggle {
  background: #2a2a2a;
  color: var(--text-main);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-main-toggle:hover {
  background: #343434;
  border-color: #3d3d3d;
}

body.theme-dark .task-notification-toggle,
body.theme-dark .task-notification-panel,
body.theme-dark .task-notification-item,
body.theme-dark .task-notification-close {
  background: #24242a;
  border-color: var(--border-strong);
  color: var(--text-main);
}

body.theme-dark .task-notification-panel header {
  background: linear-gradient(135deg, rgba(98,113,72,0.18), rgba(59, 130, 246, 0.12));
  border-color: var(--border-strong);
}

body.theme-dark .task-notification-panel header strong,
body.theme-dark .task-notification-item strong {
  color: var(--text-main);
}

body.theme-dark .task-notification-panel header span,
body.theme-dark .task-notification-item small,
body.theme-dark .task-notification-empty {
  color: var(--text-muted);
}

body.theme-dark .task-notification-item.is-new {
  background: #372a1e;
  border-color: #8b5a2b;
}

body.theme-dark #reg-modal .reg-task-history-item,
body.theme-dark #reg-modal .reg-task-history-change,
body.theme-dark #reg-modal .reg-task-attachments,
body.theme-dark #reg-modal .reg-task-attachment-item {
  background: #24242a;
  border-color: var(--border-strong);
}

body.theme-dark #reg-modal .reg-task-history-head strong,
body.theme-dark #reg-modal .reg-task-history-change strong,
body.theme-dark #reg-modal .reg-task-history-content p,
body.theme-dark #reg-modal .reg-task-attachments-head strong,
body.theme-dark #reg-modal .reg-task-attachment-item strong {
  color: var(--text-main);
}

body.theme-dark #reg-modal .reg-task-history-head span,
body.theme-dark #reg-modal .reg-task-history-change span,
body.theme-dark #reg-modal .reg-task-attachments-head span,
body.theme-dark #reg-modal .reg-task-attachment-item small,
body.theme-dark #reg-modal .reg-task-attachment-help {
  color: var(--text-muted);
}

body.theme-dark #reg-modal .reg-task-history-head em,
body.theme-dark #reg-modal .reg-task-history-content p {
  background: rgba(98,113,72,0.12);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-toggle {
  background: #2a2a2a;
  color: var(--text-main);
  border-color: var(--border-strong);
}

body.theme-dark .ui-global-toggle:hover {
  background: #343434;
}

body.theme-dark .ui-global-toggle.is-active {
  background: linear-gradient(135deg, #6d765f 0%, #7e886c 100%);
  color: #f4f4f4;
  border-color: #899377;
}

body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header,
body.theme-dark #view-faturamento .fat-header {
  background: linear-gradient(135deg, #2c2c2c 0%, #1f1f1f 100%) !important;
  border-color: var(--border) !important;
}

body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header h2,
body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header h3,
body.theme-dark #view-faturamento .fat-header h2 {
  color: #e6e6e6 !important;
}

body.theme-dark :is(#view-portal, #view-admin, #view-operator, #view-driver, #view-casaapoio, #view-transporte, #view-servidor, #view-rh, #view-reception, #view-capacitacao, #view-intranet, #view-ubs-intranet, #view-ubs-prontuario) > .panel-container > header .small,
body.theme-dark #view-faturamento .fat-header .small {
  color: #a0a0a0 !important;
}

@media (max-width: 760px) {
  .ui-global-controls {
    left: auto;
    right: 12px;
    bottom: 12px;
    flex-direction: column;
    padding: 10px;
    width: min(270px, calc(100vw - 24px));
  }

  .ui-global-main-toggle {
    width: 100%;
    min-width: 0;
  }

  .ui-global-controls-body {
    flex-direction: column;
  }

  .ui-font-controls {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .ui-global-toggle {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 430px) {
  .ui-global-controls { right: 8px; bottom: 8px; padding: 8px; width: min(270px, calc(100vw - 16px)); }
  .ui-global-controls.is-collapsed { width: auto; padding: 0; }
  .ui-global-controls-body, .ui-a11y-extra { gap: 6px; }
  .ui-global-main-toggle, .ui-global-toggle, .ui-font-btn { min-height: 40px; }
  .ui-font-controls { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
  .ui-font-scale-label { font-size: 0.62rem; min-width: 2.2rem; }
  .task-notification-widget { right: 8px; bottom: 64px; }
  .task-notification-toggle { min-height: 42px; padding: 0 13px; }
  .task-notification-panel { bottom: 52px; width: min(360px, calc(100vw - 16px)); }
  .task-notification-toggle-text { display: none; }
}
