@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap");

:root {
  --overlay-backdrop-strong: rgba(10, 17, 32, .62);
  --overlay-backdrop-medium: rgba(10, 17, 32, .55);
  --overlay-backdrop-soft: rgba(10, 17, 32, .42);
  --shadow-dark-soft: rgba(2, 6, 23, .26);
  --shadow-dark-medium: rgba(2, 6, 23, .28);
  --shadow-dark-strong: rgba(2, 6, 23, .46);
  --shadow-brand: rgba(49, 87, 213, .2);
  --shadow-card: rgba(23, 36, 55, .05);
  --shadow-overlay: rgba(10, 17, 32, .3);
  --color-primary: #3157d5;
  --color-primary-dark: #4069d8;
  --color-info: #2e90d7;
  --color-success: #168554;
  --color-danger: #c0353d;
  --color-warning-text: #fbbf24;
  --text-inverse: #ffffff;
  --surface-page: #f5f7fb;
  --surface-card: #fff;
  --surface-subtle: #edf3fa;
  --surface-input: #f8fafc;
  --surface-track: #dce6f2;
  --surface-primary: #e7edff;
  --surface-success: #eaf8ef;
  --surface-danger: #fff0f0;
  --text-primary: #172437;
  --text-heading: #243b5c;
  --text-secondary: #405069;
  --text-muted: #63748a;
  --text-subtle: #718097;
  --border-default: #d6e0ec;
  --border-subtle: #e1e9f2;
  --border-input: #ccdaea;
  --border-strong: #b2c5db;
  --color-dark-page: #0a1120;
  --color-dark-surface: #131e35;
  --color-dark-raised: #17263f;
  --color-dark-hover: #22355c;
  --color-dark-border: #3a4f75;
  --color-dark-border-strong: #50679a;
  --color-dark-text: #e7edf7;
  --color-dark-muted: #9fadc4;
  --color-dark-primary-text: #7daef0;
  --palette-047857: #047857;
  --palette-06302c: #06302c;
  --palette-08301f: #08301f;
  --palette-087a54: #087a54;
  --palette-09152655: #09152655;
  --palette-0a1120: #0a1120;
  --palette-0a112099: #0a112099;
  --palette-0d2030: #0d2030;
  --palette-0f6941: #0f6941;
  --palette-0f7d8c: #0f7d8c;
  --palette-101010: #101010;
  --palette-122039: #122039;
  --palette-123323: #123323;
  --palette-123b28: #123b28;
  --palette-131e35: #131e35;
  --palette-14243c: #14243c;
  --palette-142a43: #142a43;
  --palette-142d50: #142d50;
  --palette-1724370a: #1724370a;
  --palette-1724370c: #1724370c;
  --palette-17243712: #17243712;
  --palette-1724372b: #1724372b;
  --palette-17243733: #17243733;
  --palette-17243766: #17243766;
  --palette-17263f: #17263f;
  --palette-174058: #174058;
  --palette-17784a: #17784a;
  --palette-1b365b: #1b365b;
  --palette-1b5134: #1b5134;
  --palette-1b63be: #1b63be;
  --palette-1c385c: #1c385c;
  --palette-1c3964: #1c3964;
  --palette-22355c: #22355c;
  --palette-22355ce6: #22355ce6;
  --palette-2356a8: #2356a8;
  --palette-2374bd: #2374bd;
  --palette-237cbd: #237cbd;
  --palette-241a44: #241a44;
  --palette-2458ab: #2458ab;
  --palette-2546b4: #2546b4;
  --palette-2585d7: #2585d7;
  --palette-2749b8: #2749b8;
  --palette-287a5d: #287a5d;
  --palette-2a47b0: #2a47b0;
  --palette-2c4370: #2c4370;
  --palette-2d7a50: #2d7a50;
  --palette-31567f: #31567f;
  --palette-317752: #317752;
  --palette-329b61: #329b61;
  --palette-34d399: #34d399;
  --palette-356fbd: #356fbd;
  --palette-36a2eb: #36a2eb;
  --palette-38280c: #38280c;
  --palette-3a2408: #3a2408;
  --palette-3a4f75: #3a4f75;
  --palette-48b879: #48b879;
  --palette-4a1520: #4a1520;
  --palette-4fd1de: #4fd1de;
  --palette-50679a: #50679a;
  --palette-50bf83: #50bf83;
  --palette-5a80e6: #5a80e6;
  --palette-5b1722: #5b1722;
  --palette-5c91f2: #5c91f2;
  --palette-60718b: #60718b;
  --palette-64748b: #64748b;
  --palette-651c2a: #651c2a;
  --palette-6a45cf: #6a45cf;
  --palette-6ee3a2: #6ee3a2;
  --palette-6f96ec: #6f96ec;
  --palette-7189a3: #7189a3;
  --palette-72bd91: #72bd91;
  --palette-7656d6: #7656d6;
  --palette-7656d63b: #7656d63b;
  --palette-7b61c9: #7b61c9;
  --palette-7c1d2c: #7c1d2c;
  --palette-7c561b: #7c561b;
  --palette-7d8ba3: #7d8ba3;
  --palette-7ea4dd: #7ea4dd;
  --palette-7f1d2f: #7f1d2f;
  --palette-8391a5: #8391a5;
  --palette-845d36: #845d36;
  --palette-8bbcff: #8bbcff;
  --palette-8f681f: #8f681f;
  --palette-981b1b: #981b1b;
  --palette-98a2b3: #98a2b3;
  --palette-9a6508: #9a6508;
  --palette-9ba9bf: #9ba9bf;
  --palette-9bd9b5: #9bd9b5;
  --palette-9ec0ff: #9ec0ff;
  --palette-9f2635: #9f2635;
  --palette-9fadc4: #9fadc4;
  --palette-9fc5ef: #9fc5ef;
  --palette-9fc5ff: #9fc5ff;
  --palette-a7bbd0: #a7bbd0;
  --palette-a83a48: #a83a48;
  --palette-a85d00: #a85d00;
  --palette-a887ee: #a887ee;
  --palette-a8d9bd: #a8d9bd;
  --palette-aebbd0: #aebbd0;
  --palette-b5630c: #b5630c;
  --palette-b6e3cf: #b6e3cf;
  --palette-b79bff: #b79bff;
  --palette-b7c8dc: #b7c8dc;
  --palette-b8c8da: #b8c8da;
  --palette-bd2626: #bd2626;
  --palette-bdccdc: #bdccdc;
  --palette-c2410c: #c2410c;
  --palette-c4d1e0: #c4d1e0;
  --palette-c56b15: #c56b15;
  --palette-c93535: #c93535;
  --palette-c9ead5: #c9ead5;
  --palette-cbd9e8: #cbd9e8;
  --palette-cbd9eb: #cbd9eb;
  --palette-cddbeb: #cddbeb;
  --palette-d5dfed: #d5dfed;
  --palette-d5e1ee: #d5e1ee;
  --palette-d6e0ec18: #d6e0ec18;
  --palette-d6e0ec24: #d6e0ec24;
  --palette-d77820: #d77820;
  --palette-dbe4ef: #dbe4ef;
  --palette-dce8ff: #dce8ff;
  --palette-dceaff: #dceaff;
  --palette-def3e6: #def3e6;
  --palette-dfe8f2: #dfe8f2;
  --palette-dfeaff: #dfeaff;
  --palette-e0e6ef: #e0e6ef;
  --palette-e0e8f2: #e0e8f2;
  --palette-e0e9f3: #e0e9f3;
  --palette-e15b69: #e15b69;
  --palette-e2e8f0: #e2e8f0;
  --palette-e2e8f1: #e2e8f1;
  --palette-e2eaf3: #e2eaf3;
  --palette-e3ebf5: #e3ebf5;
  --palette-e49b38: #e49b38;
  --palette-e4a742: #e4a742;
  --palette-e4f5f7: #e4f5f7;
  --palette-e5edf5: #e5edf5;
  --palette-e5edff: #e5edff;
  --palette-e5f7ee: #e5f7ee;
  --palette-e6eeff: #e6eeff;
  --palette-e6f6f0: #e6f6f0;
  --palette-e7edf7: #e7edf7;
  --palette-e7eef8: #e7eef8;
  --palette-e7f1ff: #e7f1ff;
  --palette-e8efff: #e8efff;
  --palette-e98600: #e98600;
  --palette-edf4ff: #edf4ff;
  --palette-edf5ff: #edf5ff;
  --palette-ef9a9a: #ef9a9a;
  --palette-f1edfe: #f1edfe;
  --palette-f26b79: #f26b79;
  --palette-f2ddbd: #f2ddbd;
  --palette-f2e8d9: #f2e8d9;
  --palette-f2fff7: #f2fff7;
  --palette-f3c276: #f3c276;
  --palette-f3c7ca: #f3c7ca;
  --palette-f3f7fc: #f3f7fc;
  --palette-f5bd58: #f5bd58;
  --palette-f5f8fc: #f5f8fc;
  --palette-f5f9fd: #f5f9fd;
  --palette-f5f9ff: #f5f9ff;
  --palette-f5faff: #f5faff;
  --palette-f6f9fd: #f6f9fd;
  --palette-f7faff: #f7faff;
  --palette-f8fbff: #f8fbff;
  --palette-fb7185: #fb7185;
  --palette-fce0e0: #fce0e0;
  --palette-fdebed: #fdebed;
  --palette-ff9ba5: #ff9ba5;
  --palette-ffc0c6: #ffc0c6;
  --palette-ffd5d9: #ffd5d9;
  --palette-fff1ed: #fff1ed;
  --palette-fff5e5: #fff5e5;
  --palette-fff9e8: #fff9e8;
  --palette-fffaf0: #fffaf0;
  --palette-ffffff: #ffffff;
  --palette-ffffff10: #ffffff10;
  --palette-ffffff12: #ffffff12;
  --palette-ffffff14: #ffffff14;
  --palette-ffffff15: #ffffff15;
  --palette-ffffff17: #ffffff17;
  --palette-ffffff18: #ffffff18;
  --palette-ffffffeb: #ffffffeb;
  font-family: Montserrat, Arial, sans-serif;
  color: var(--text-primary);
  background: #e3ebf5;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  min-width: 320px;
}
a {
  color: inherit;
  text-decoration: none;
}
button {
  font: inherit;
}
.app-shell {
  min-height: 100vh;
  display: flex;
  background: var(--palette-e3ebf5);
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 10;
  width: 240px;
  height: 100dvh;
  padding: 18px 12px 24px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  background: var(--palette-122039);
  color: var(--color-dark-muted);
  transition:
    width 0.2s ease,
    transform 0.2s ease;
}
.sidebar-cabecalho {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: -18px -12px 30px;
  padding: 18px 12px;
  border-bottom: 1px solid var(--palette-d6e0ec18);
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin: 0 8px;
  color: var(--text-inverse);
}
.brand-mark {
  width: 28px;
  height: 28px;
  object-fit: contain;
}
.brand-texto {
  display: grid;
  gap: 1px;
  white-space: nowrap;
}
.brand-texto strong {
  font-size: 18px;
  line-height: 1.1;
}
.brand-texto small {
  color: var(--palette-bdccdc);
  font-size: 11px;
  font-weight: 500;
}
.sidebar-toggle {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--palette-b7c8dc);
  cursor: pointer;
}
.sidebar-toggle:hover {
  color: var(--text-inverse);
  background: var(--palette-ffffff12);
}
.nav-title {
  margin: 0 12px 10px;
  color: var(--palette-bdccdc);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
}
.nav-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: 9px;
  margin-bottom: 5px;
  font-size: 14px;
  font-weight: 600;
}
.nav-link:hover {
  background: var(--palette-ffffff14);
  color: var(--text-inverse);
}
.nav-link.active {
  color: var(--text-inverse);
  background: var(--palette-7656d63b);
  box-shadow: inset 3px 0 var(--palette-7656d6);
}
.sidebar-footer {
  margin: auto 4px 0;
  padding: 14px;
  border: 1px solid var(--palette-d6e0ec24);
  border-radius: 11px;
  background: var(--palette-ffffff10);
  display: grid;
  gap: 4px;
}
.sidebar-footer span,
.sidebar-footer small {
  font-size: 11px;
  color: var(--palette-bdccdc);
}
.sidebar-footer strong {
  font-size: 14px;
  color: var(--text-inverse);
}
.content-shell {
  min-width: 0;
  flex: 1;
  margin-left: 240px;
  transition: margin-left 0.2s ease;
}
.sidebar-backdrop {
  display: none;
}
.header {
  height: 72px;
  padding: 0 32px;
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--palette-ffffffeb);
  border-bottom: 1px solid var(--border-input);
  backdrop-filter: blur(14px);
  position: sticky;
  top: 0;
  z-index: 50;
  isolation: isolate;
}
.menu-button,
.refresh {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--border-input);
  border-radius: 10px;
  background: var(--surface-card);
  color: var(--color-primary);
  cursor: pointer;
}
@media (min-width: 901px) {
  .menu-button {
    display: none;
  }
  .app-shell.sidebar-recolhida .sidebar {
    width: 76px;
    padding-right: 10px;
    padding-left: 10px;
  }
  .app-shell.sidebar-recolhida .content-shell {
    margin-left: 76px;
  }
  .app-shell.sidebar-recolhida .sidebar-cabecalho {
    justify-content: center;
    margin-right: -10px;
    margin-left: -10px;
  }
  .app-shell.sidebar-recolhida .brand-texto,
  .app-shell.sidebar-recolhida .nav-title,
  .app-shell.sidebar-recolhida .nav-label,
  .app-shell.sidebar-recolhida .sidebar-section,
  .app-shell.sidebar-recolhida .sidebar-footer {
    display: none;
  }
  .app-shell.sidebar-recolhida .brand {
    display: none;
  }
  .app-shell.sidebar-recolhida .nav-link {
    justify-content: center;
    padding-right: 8px;
    padding-left: 8px;
  }
}
.refresh:disabled {
  opacity: 0.6;
}
.header-spacer {
  flex: 1;
}
.user {
  display: flex;
  align-items: center;
  gap: 9px;
}
.avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--surface-primary);
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 800;
}
.user span:last-child {
  display: grid;
  gap: 2px;
}
.user strong {
  font-size: 13px;
}
.user small {
  font-size: 11px;
  color: var(--text-muted);
}
.logout {
  padding: 8px 12px;
  border: 1px solid var(--border-input);
  border-radius: 10px;
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 700;
}
.page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 34px 42px 48px;
}
.page-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: end;
  margin-bottom: 26px;
}
.page-heading p,
.section-heading p,
.info-card p {
  margin: 0 0 5px;
  color: var(--color-primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
}
.page-heading h1 {
  margin: 0;
  color: var(--text-primary);
  font-size: 30px;
  letter-spacing: -0.04em;
}
.page-heading span,
.info-card span {
  display: block;
  margin-top: 8px;
  color: var(--text-muted);
  font-size: 14px;
}
.primary-action,
.secondary-action {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 700;
}
.primary-action {
  background: var(--color-primary);
  color: var(--text-inverse);
}
.primary-action:hover {
  background: var(--palette-2546b4);
}
.secondary-action {
  border: 1px solid var(--border-strong);
  background: var(--surface-subtle);
  color: var(--text-primary);
}
.alert {
  margin: -8px 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--palette-f3c7ca);
  border-radius: 10px;
  background: var(--palette-fdebed);
  color: var(--color-danger);
  font-size: 13px;
}
.alert button {
  margin-left: 10px;
  border: 0;
  background: transparent;
  color: inherit;
  font-weight: 700;
  cursor: pointer;
}
.stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}
.stats article,
.workspace,
.info-card {
  border: 1px solid var(--border-strong);
  border-radius: 14px;
  background: var(--surface-card);
  box-shadow: 0 8px 24px var(--palette-17243712);
}

.operacional {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0;
  margin-bottom: 20px;
  border: 1px solid var(--border-strong);
  border-radius: 14px;
  background: var(--surface-card);
  box-shadow: 0 8px 24px var(--palette-17243712);
}
.operacao-col {
  padding: 24px;
  min-width: 0;
}
.upload-col {
  border-left: 1px solid var(--border-strong);
}
.status {
  border-radius: 99px;
  padding: 5px 10px;
  background: var(--palette-fff9e8);
  color: var(--palette-9a6508);
  font-size: 11px;
  font-weight: 700;
}
.status.ok {
  background: var(--palette-e6f6f0);
  color: var(--palette-047857);
}
.helper {
  margin: 10px 0 16px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.55;
}
.avaliacao-ativa {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid var(--border-input);
  border-radius: 10px;
  background: var(--surface-subtle);
}
.avaliacao-ativa strong {
  color: var(--color-primary);
}
.avaliacao-ativa span {
  font-size: 13px;
}
.field-label {
  display: block;
  margin-bottom: 6px;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}
.search-field {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  border: 1px solid var(--border-strong);
  border-radius: 10px;
  background: var(--palette-f5f9fd);
  color: var(--text-muted);
}
.search-field input {
  width: 100%;
  padding: 11px 0 11px 7px;
  border: 0;
  outline: 0;
  background: transparent;
}
.avaliacoes-lista {
  max-height: 205px;
  margin-top: 8px;
  overflow: auto;
  border: 1px solid var(--border-input);
  border-radius: 10px;
}
.avaliacoes-lista button {
  width: 100%;
  display: flex;
  gap: 8px;
  padding: 10px;
  border: 0;
  border-bottom: 1px solid var(--palette-e3ebf5);
  background: var(--surface-card);
  text-align: left;
  cursor: pointer;
}
.avaliacoes-lista button:hover {
  background: var(--surface-subtle);
}
.avaliacoes-lista button.selecionada {
  position: relative;
  background: var(--palette-dceaff);
  box-shadow: inset 3px 0 var(--color-primary);
}
.avaliacoes-lista button.selecionada em {
  margin-left: auto;
  color: var(--color-primary);
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
}
.avaliacoes-lista button:disabled:not(.selecionada) {
  cursor: not-allowed;
  opacity: .45;
}
.avaliacoes-lista span {
  font-size: 12px;
  color: var(--text-muted);
}
.dropzone {
  min-height: 150px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 7px;
  border: 2px dashed var(--border-strong);
  border-radius: 12px;
  background: var(--surface-subtle);
  color: var(--color-primary);
  cursor: pointer;
  text-align: center;
}
.dropzone span {
  color: var(--text-muted);
  font-size: 12px;
}
.dropzone input {
  display: none;
}
.files-summary {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0;
  color: var(--text-muted);
  font-size: 13px;
}
.processar {
  width: 100%;
  justify-content: center;
  border: 0;
  cursor: pointer;
}
.processar:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.job {
  display: grid;
  gap: 8px;
  margin-top: 14px;
  padding: 12px;
  border-radius: 10px;
  background: var(--surface-subtle);
}
.job div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
}
.job a {
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 700;
}
.operacao-erro {
  margin: 12px 0 0;
  color: var(--color-danger);
  font-size: 13px;
}
.stats article {
  padding: 20px;
  display: flex;
  gap: 14px;
  align-items: center;
}
.stat-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
}
.stat-icon.blue {
  color: var(--color-primary);
  background: var(--surface-primary);
}
.stat-icon.violet {
  color: var(--palette-6a45cf);
  background: var(--palette-f1edfe);
}
.stat-icon.teal {
  color: var(--palette-0f7d8c);
  background: var(--palette-e4f5f7);
}
.stats small {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}
.stats strong {
  display: block;
  margin-top: 4px;
  font-size: 28px;
  letter-spacing: -0.03em;
}
.stats p {
  margin: 3px 0 0;
  color: var(--text-muted);
  font-size: 12px;
}
.progress {
  height: 7px;
  width: 100%;
  margin-top: 10px;
  border-radius: 99px;
  background: var(--surface-subtle);
  overflow: hidden;
}
.progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--color-primary);
}
.workspace {
  padding: 24px;
  margin-bottom: 20px;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}
.section-heading h2,
.info-card h2 {
  margin: 0;
  font-size: 20px;
  letter-spacing: -0.02em;
}
.section-heading a {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-primary);
}
.module-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.module {
  min-height: 205px;
  padding: 20px;
  border-radius: 12px;
  color: var(--text-inverse);
  display: flex;
  flex-direction: column;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}
.module:hover {
  transform: scale(1.018);
  box-shadow: 0 14px 25px var(--palette-1724372b);
}
.module-a {
  background: var(--color-primary);
}
.module-b {
  background: var(--palette-7656d6);
}
.module-c {
  background: var(--palette-0f7d8c);
}
.module h3 {
  margin: 22px 0 8px;
  font-size: 18px;
}
.module p {
  margin: 0;
  line-height: 1.55;
  font-size: 13px;
  opacity: 0.92;
}
.module span {
  margin-top: auto;
  font-size: 13px;
  font-weight: 700;
}
.info-card {
  margin-top: 20px;
  padding: 22px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}
.spin {
  animation: spin 0.75s linear infinite;
}
.page-content-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 320px;
  border: 1px solid var(--border-default);
  border-radius: 10px;
  background: var(--surface-subtle);
  color: var(--text-muted);
  font-size: 13px;
  font-weight: 700;
}
.page-content-loading svg { color: var(--color-primary); }
:root.dark .page-content-loading { border-color: var(--color-dark-border); background: var(--color-dark-raised); color: var(--color-dark-muted); }
.catalogo-carregando { display: inline-flex; align-items: center; gap: 7px; }
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@media (max-width: 900px) {
  .sidebar {
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    box-shadow: 12px 0 30px var(--palette-17243733);
  }
  .sidebar.sidebar--aberta {
    transform: translateX(0);
  }
  .sidebar-backdrop.visivel {
    position: fixed;
    inset: 0;
    z-index: 9;
    display: block;
    border: 0;
    background: var(--palette-17243766);
  }
  .content-shell {
    margin-left: 0;
  }
  .page {
    padding: 26px 22px;
  }
  .stats,
  .module-grid,
  .operacional {
    grid-template-columns: 1fr;
  }
  .upload-col {
    border-top: 1px solid var(--border-strong);
    border-left: 0;
  }
  .header {
    padding: 0 20px;
  }
  .page-heading,
  .info-card {
    align-items: flex-start;
    flex-direction: column;
  }
}
@media (max-width: 560px) {
  .sidebar {
    display: none;
  }
  .page {
    padding: 22px 16px;
  }
  .user span:last-child {
    display: none;
  }
  .page-heading h1 {
    font-size: 25px;
  }
  .primary-action {
    width: 100%;
    justify-content: center;
  }
}

/* Painel alinhado ao padrÃ£o visual do Gestor V2. */
:root {
  background: var(--surface-page);
}
.app-shell {
  background: var(--surface-page);
}
.sidebar {
  width: 270px;
  padding: 18px 12px 16px;
  background: var(--palette-0d2030);
}
.sidebar-cabecalho {
  margin-bottom: 18px;
  border-bottom-color: var(--palette-ffffff15);
}
.nav-title {
  display: none;
}
.nav-link {
  padding: 12px;
  margin-bottom: 4px;
  border-radius: 10px;
}
.nav-link.active {
  background: var(--palette-174058);
  box-shadow: none;
}
.sidebar-section {
  margin: 18px 12px 0;
  padding-top: 18px;
  border-top: 1px solid var(--palette-ffffff17);
}
.sidebar-section span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--palette-a7bbd0);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
}
.sidebar-section span b {
  padding-left: 9px;
  border-left: 2px solid var(--palette-a7bbd0);
  color: var(--palette-bdccdc);
  font-size: 10px;
  letter-spacing: 0;
  text-transform: uppercase;
}
.sidebar-section p {
  margin: 14px 0 0 36px;
  color: var(--palette-7189a3);
  font-size: 12px;
}
.sidebar-catalog p {
  margin-left: 0;
}
.sidebar-footer {
  display: none;
}
.content-shell {
  margin-left: 270px;
}
.header {
  height: 82px;
  padding: 0 36px;
  background: var(--surface-card);
  border-bottom-color: var(--palette-e2e8f1);
  backdrop-filter: none;
}
.module-search {
  width: min(630px, 48vw);
  height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border: 1px solid var(--palette-e0e6ef);
  border-radius: 10px;
  color: var(--palette-64748b);
  background: var(--surface-input);
}
.module-search input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  color: var(--text-primary);
  background: transparent;
  font-size: 14px;
}
.module-search input::placeholder { color: var(--palette-9ba9bf); }
.theme-button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--palette-e0e6ef);
  border-radius: 10px;
  background: var(--surface-card);
  color: var(--palette-60718b);
}
.user strong {
  font-size: 14px;
  text-transform: uppercase;
}
.user small {
  display: inline-block;
  width: max-content;
  padding: 2px 7px;
  border-radius: 5px;
  background: var(--palette-101010);
  color: var(--text-inverse);
}
.avatar, .logout { display: none; }
.page {
  max-width: none;
  padding: 42px 42px 56px;
}
.page-heading {
  display: block;
  margin-bottom: 26px;
}
.page-heading p {
  display: none;
}
.page-heading h1 {
  font-size: clamp(32px, 3vw, 40px);
}
.page-heading span {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 36px;
  color: var(--palette-142a43);
  font-size: 20px;
  font-weight: 700;
}
.page-heading span b {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--palette-2356a8);
}
.page-heading .primary-action { display: none; }
.stats { margin-bottom: 28px; }
.stats article, .workspace, .operacional {
  border-color: var(--palette-e0e6ef);
  box-shadow: none;
}
.workspace {
  padding: 0;
  border: 0;
  background: transparent;
}
.section-heading { display: none; }
.module-grid { gap: 16px; }
.module {
  position: relative;
  min-height: 204px;
  overflow: hidden;
  border: 0;
  cursor: pointer;
  font: inherit;
  text-align: left;
  padding: 25px 26px;
  border-radius: 22px;
  background: var(--palette-2458ab);
}
.module::after {
  position: absolute;
  right: -54px;
  bottom: -92px;
  width: 198px;
  height: 198px;
  border-radius: 50%;
  background: var(--palette-ffffff12);
  content: "";
}
.module-b, .module-c { background: var(--palette-2458ab); }
.module > svg {
  position: absolute;
  right: -8px;
  bottom: -23px;
  z-index: 1;
  width: 112px;
  height: 112px;
  opacity: .98;
  stroke-width: 2.2;
  transform: rotate(-6deg);
  transition: transform .45s cubic-bezier(.22, 1, .36, 1);
}
.module h3 { z-index: 1; margin: 0; font-size: 20px; }
.module p {
  z-index: 1;
  display: block;
  max-width: 270px;
  margin-top: 12px;
  color: var(--text-inverse);
  font-size: 13px;
  line-height: 1.45;
  opacity: .88;
}
.module-action {
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-transform: uppercase;
}
.module-action em {
  font-style: normal;
}
.module-action i {
  display: grid;
  place-items: center;
  font-style: normal;
  line-height: 1;
}
.module:hover > svg,
.module:focus-visible > svg {
  transform: translateX(1px) rotate(-2deg) scale(1.1);
}
.module:hover .module-action i,
.module:focus-visible .module-action i {
  animation: module-card-nudge 1.4s cubic-bezier(.22, 1, .36, 1) infinite;
}
@keyframes module-card-nudge {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(5px);
  }
}
.operacional { margin-top: 28px; }
.processing-modal {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 28px;
}
.processing-modal-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: var(--overlay-backdrop-strong);
  backdrop-filter: blur(4px);
}
.processing-modal-dialog {
  position: relative;
  width: min(1120px, 100%);
  max-height: min(760px, calc(100dvh - 56px));
  overflow: auto;
  border: 1px solid var(--border-strong);
  border-radius: 18px;
  background: var(--surface-page);
  box-shadow: 0 30px 80px var(--shadow-overlay);
  animation: processing-modal-in .25s cubic-bezier(.22, 1, .36, 1);
}
.processing-progress-dialog { width: min(560px, 100%); }
.processing-progress-content { padding: 24px; }
.processing-progress-content .job { margin-top: 0; }
.processing-modal-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--palette-dbe4ef);
  background: var(--surface-card);
}
.processing-modal-header p {
  margin: 0 0 5px;
  color: var(--color-primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}
.processing-modal-header h2 { margin: 0; font-size: 22px; }
.processing-modal-close {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--border-input);
  border-radius: 10px;
  background: var(--surface-card);
  color: var(--text-muted);
  cursor: pointer;
}
.processing-modal .operacional {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
@keyframes processing-modal-in {
  from { opacity: .7; transform: translateY(12px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (min-width: 901px) {
  .app-shell.sidebar-recolhida .content-shell { margin-left: 76px; }
}
@media (max-width: 900px) {
  .module-search { width: auto; flex: 1; }
  .page { padding: 32px 28px; }
}
@media (max-width: 560px) {
  .module-search { display: none; }
  .theme-button { margin-left: auto; }
  .page-heading span { margin-top: 18px; }
  .module > svg { width: 90px; height: 90px; }
}

/* Tema escuro: tokens da paleta do Gestor V2 (design/styles/tokens/colors.css). */
:root.dark {
  --text-inverse: var(--palette-ffffff);
  --surface-page: var(--palette-0a1120);
  --surface-card: var(--palette-131e35);
  --surface-subtle: var(--palette-17263f);
  --surface-input: var(--palette-17263f);
  --surface-track: var(--palette-3a4f75);
  --surface-primary: var(--palette-22355c);
  --text-primary: var(--palette-e7edf7);
  --text-heading: var(--palette-e7edf7);
  --text-secondary: var(--palette-e7edf7);
  --text-muted: var(--palette-9fadc4);
  --text-subtle: var(--palette-9fadc4);
  --border-default: var(--palette-3a4f75);
  --border-subtle: var(--palette-3a4f75);
  --border-input: var(--palette-50679a);
  --border-strong: var(--palette-50679a);
  color: var(--color-dark-text);
  background: var(--color-dark-page);
}
:root.dark .app-shell,
:root.dark .page {
  background: var(--color-dark-page);
}
:root.dark .header {
  background: var(--palette-22355ce6);
  border-bottom-color: var(--color-dark-border);
}
:root.dark .theme-button {
  border-color: var(--color-dark-border);
  background: var(--color-dark-raised);
  color: var(--color-warning-text);
}
:root.dark .page-heading h1,
:root.dark .page-heading span,
:root.dark .section-heading h2,
:root.dark .info-card h2,
:root.dark .stats strong,
:root.dark .operacional,
:root.dark .operacao-col {
  color: var(--color-dark-text);
}
:root.dark .page-heading span b { background: var(--color-primary-dark); }
:root.dark .stats article,
:root.dark .operacional,
:root.dark .workspace,
:root.dark .info-card {
  border-color: var(--color-dark-border);
  background: var(--color-dark-hover);
  box-shadow: 0 6px 18px var(--shadow-dark-medium);
}
:root.dark .upload-col { border-left-color: var(--color-dark-border); }
:root.dark .stats small,
:root.dark .stats p,
:root.dark .helper,
:root.dark .files-summary,
:root.dark .field-label,
:root.dark .user small {
  color: var(--color-dark-muted);
}
:root.dark .stat-icon.blue { color: var(--color-dark-primary-text); background: var(--palette-14243c); }
:root.dark .stat-icon.violet { color: var(--palette-b79bff); background: var(--palette-241a44); }
:root.dark .stat-icon.teal { color: var(--palette-4fd1de); background: var(--palette-06302c); }
:root.dark .progress,
:root.dark .avaliacao-ativa,
:root.dark .job,
:root.dark .dropzone {
  background: var(--color-dark-raised);
}
:root.dark .progress i { background: var(--color-primary-dark); }
:root.dark .search-field,
:root.dark .avaliacoes-lista,
:root.dark .dropzone {
  border-color: var(--color-dark-border-strong);
}
:root.dark .search-field input,
:root.dark .avaliacoes-lista button {
  color: var(--color-dark-text);
  background: var(--color-dark-raised);
}
:root.dark .avaliacoes-lista button { border-bottom-color: var(--color-dark-border); }
:root.dark .avaliacoes-lista button:hover { background: var(--palette-2c4370); }
:root.dark .avaliacoes-lista button.selecionada { background: var(--palette-1c3964); box-shadow: inset 3px 0 var(--color-dark-primary-text); }
:root.dark .avaliacoes-lista button.selecionada em { color: var(--color-dark-primary-text); }
:root.dark .module { background: var(--palette-2a47b0); }
:root.dark .module::after { background: var(--palette-ffffff14); }
:root.dark .user strong { color: #f8fbff; text-shadow: 0 1px 2px rgba(0,0,0,.85), 0 0 1px rgba(255,255,255,.45); -webkit-text-stroke: .2px rgba(255,255,255,.28); }
:root.dark .user small { color: #d7e5ff; background: rgba(2, 12, 28, .68); border: 1px solid rgba(148, 179, 235, .2); text-shadow: 0 1px 1px rgba(0,0,0,.8); }
:root.dark .processing-modal-dialog { border-color: var(--color-dark-border); background: var(--color-dark-surface); }
:root.dark .processing-modal-header { border-bottom-color: var(--color-dark-border); background: var(--color-dark-hover); }
:root.dark .processing-modal-header h2 { color: var(--color-dark-text); }
:root.dark .processing-modal-close { border-color: var(--color-dark-border); background: var(--color-dark-raised); color: var(--color-dark-muted); }

/* Fluxo de processamento: seleÃ§Ã£o, lote e monitoramento. */
.operacional .section-heading { display: flex; }
.operacional .section-heading h2 { font-size: 19px; }
.avaliacao-resumo { padding: 16px; background: var(--palette-f6f9fd); }
.avaliacao-resumo > small { color: var(--text-muted); font-size: 10px; font-weight: 800; }
.avaliacao-resumo > div { display: flex; align-items: baseline; gap: 10px; margin: 7px 0 12px; }
.avaliacao-resumo strong { font-size: 27px; color: var(--text-primary); }
.avaliacao-resumo b { font-size: 15px; color: var(--text-secondary); }
.avaliacao-resumo dl { display: flex; flex-wrap: wrap; gap: 9px 18px; margin: 0; padding-top: 10px; border-top: 1px solid var(--palette-dbe4ef); }
.avaliacao-resumo dl div { display: flex; gap: 5px; margin: 0; }
.avaliacao-resumo dt { color: var(--text-muted); font-size: 10px; font-weight: 800; }
.avaliacao-resumo dd { margin: 0; color: var(--text-secondary); font-size: 11px; }
.avaliacao-resumo .avaliacao-periodo { flex-basis: 100%; }
.dropzone { position: relative; min-height: 142px; padding: 20px; align-content: start; text-align: left; }
.dropzone > svg { margin-top: 2px; }
.dropzone strong { color: var(--text-primary); font-size: 17px; }
.dropzone .file-picker { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 9px 13px; border: 1px solid var(--palette-9fc5ef); border-radius: 7px; background: var(--surface-card); color: var(--palette-2585d7); font-size: 13px; }
.files-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-height: 144px; margin: 8px 0 12px; overflow: auto; }
.files-list span { display:flex; align-items:center; min-width:0; gap:6px; overflow: hidden; padding: 8px 8px 8px 10px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-card); color: var(--text-secondary); font-size: 11px; }
.files-list span b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.files-list span button { display:grid; flex:0 0 auto; place-items:center; width:22px; height:22px; margin-left:auto; border:0; border-radius:5px; background:transparent; color:var(--text-muted); cursor:pointer; }
.files-list span button:hover { background:var(--surface-danger); color:var(--color-danger); }
.processing-result-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.processing-result-summary > div { display:flex; align-items:center; gap:8px; padding:9px 11px; border:1px solid var(--border-subtle); border-radius:8px; color:var(--text-secondary); }
.processing-result-summary > div.success { border-color:#b8e3ca; background:#f0fbf4; color:#187a41; }
.processing-result-summary > div.pending { border-color:#efd28e; background:#fff9e9; color:#9b6500; }
.processing-result-summary span { display:flex; align-items:center; justify-content:space-between; width:100%; font-size:11px; font-weight:700; }.processing-result-summary strong { font-size:16px; }
.processar { min-height: 42px; background: var(--color-info); }
.processar:hover:not(:disabled) { background: var(--palette-237cbd); }
.processar-ajuda { margin: 10px 0 0; color: var(--text-muted); font-size: 11px; text-align: center; }
.processing-progress-dialog { background: var(--palette-f5f9fd); }
.processing-progress-content { padding: 22px; }
.processing-progress-content .job { border: 1px solid var(--palette-cbd9e8); background: var(--surface-card); }
.processing-progress-content .job > div:first-child { align-items: center; color: var(--palette-1c385c); font-size: 13px; }
.processing-progress-content .job > div:first-child b { font-size: 16px; }
.processing-progress-content .job h3 { margin: 12px 0 0; color: var(--palette-1c385c); font-size: 14px; }
.processing-progress-content .job p { margin: 18px 0 0; color: var(--text-subtle); font-size: 13px; }
.job-success { color: var(--palette-047857) !important; font-weight: 700; }
.job-events { margin-top: 17px; }
.job-events > div:first-child { display: flex; align-items: center; justify-content: space-between; }
.job-events > div:first-child small { color: var(--text-muted); font-size: 10px; font-weight: 800; }
.job-events > div:first-child span { padding: 5px 9px; border: 1px solid var(--palette-d5e1ee); border-radius: 999px; color: var(--text-muted); font-size: 10px; font-weight: 700; }
.job-events h3 { margin: 5px 0 8px; color: var(--text-secondary); font-size: 14px; }
.events-list { display: grid; gap: 8px; max-height: 215px; overflow: auto; padding: 10px; border: 1px solid var(--palette-cbd9e8); border-radius: 6px; background: var(--surface-card); }
.events-list > p { margin: 25px 0; color: var(--text-subtle); font-size: 13px; text-align: center; }
.event { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; padding: 11px; border: 1px solid var(--palette-f2ddbd); border-left: 3px solid var(--palette-e98600); border-radius: 4px; background: var(--palette-fffaf0); }
.event-info { border-color: var(--palette-cbd9e8); border-left-color: var(--color-info); background: var(--palette-f5faff); }
.event-success { border-color: var(--palette-b6e3cf); border-left-color: var(--palette-047857); background: var(--palette-f2fff7); }
.event strong { color: var(--text-heading); font-size: 12px; }
.event p { margin: 4px 0 0; color: var(--text-subtle); font-size: 11px; line-height: 1.4; }
.event > small { color: var(--text-subtle); font-size: 10px; font-weight: 700; }
.processing-progress-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 12px; }
.processing-progress-actions .primary-action { display: inline-flex; }
:root.dark .avaliacao-resumo, :root.dark .dropzone .file-picker, :root.dark .files-list span, :root.dark .processing-progress-content .job, :root.dark .events-list { background: var(--color-dark-raised); border-color: var(--color-dark-border); }
:root.dark .avaliacao-resumo strong, :root.dark .avaliacao-resumo b, :root.dark .dropzone strong, :root.dark .processing-progress-content .job h3, :root.dark .processing-progress-content .job > div:first-child, :root.dark .event strong { color: var(--color-dark-text); }
:root.dark .avaliacao-resumo dl { border-color: var(--color-dark-border); }
:root.dark .files-list span, :root.dark .dropzone .file-picker { color: var(--color-dark-primary-text); }
:root.dark .processing-progress-dialog { background: var(--color-dark-surface); border-color: var(--color-dark-border); }
:root.dark .processing-progress-content .job { background: var(--color-dark-raised); border-color: var(--color-dark-border-strong); }
:root.dark .processing-progress-content .job > div:first-child,
:root.dark .processing-progress-content .job h3,
:root.dark .job-events h3 { color: var(--color-dark-text); }
:root.dark .processing-progress-content .job p,
:root.dark .job-events > div:first-child small,
:root.dark .event p { color: var(--color-dark-muted); }
:root.dark .job-events > div:first-child span { border-color: var(--color-dark-border-strong); color: var(--color-dark-muted); }
:root.dark .events-list { border-color: var(--color-dark-border-strong); background: var(--color-dark-raised); }
:root.dark .events-list > p { color: var(--color-dark-muted); }
:root.dark .event { border-color: var(--palette-7c561b); border-left-color: var(--color-warning-text); background: var(--palette-3a2408); }
:root.dark .event-info { border-color: var(--palette-31567f); border-left-color: var(--color-dark-primary-text); background: var(--palette-14243c); }
:root.dark .event-success { border-color: var(--palette-287a5d); border-left-color: var(--palette-34d399); background: var(--palette-08301f); }
:root.dark .event strong { color: var(--color-dark-text); }
:root.dark .event > small { color: var(--color-dark-muted); }
:root.dark .event svg { color: var(--color-warning-text); }
:root.dark .event-info svg { color: var(--color-dark-primary-text); }
:root.dark .event-success svg { color: var(--palette-34d399); }
:root.dark .processing-progress-actions .secondary-action { border-color: var(--color-dark-border-strong); background: var(--color-dark-raised); color: var(--color-dark-text); }
@media (max-width: 700px) { .files-list { grid-template-columns: 1fr; } .processing-modal { padding: 14px; } .processing-progress-actions { flex-direction: column; } .processing-progress-actions > * { justify-content: center; } }

/* Ajustes do painel em telas compactas. */
.stats-horizontal { display:grid!important; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; }.stats-horizontal > div { display:contents; }.stats-horizontal .stat-icon { grid-row:1 / span 2; }.stats-horizontal small { grid-column:2; }.stats-horizontal strong { grid-column:3; grid-row:1 / span 2; align-self:center; margin:0; font-size:38px; }.stats-horizontal p { grid-column:2; }.stats-horizontal .progress { grid-column:2 / -1; margin-top:8px; }
@media (max-width:900px) { .module { padding:20px; border-radius:18px; } .module-grid { gap:12px; } }
@media (max-width:600px) { .module { min-height:184px; padding:18px; border-radius:16px; } .module h3 { font-size:18px; } .module p { max-width:calc(100% - 64px); font-size:12px; } .module>svg { right:12px; bottom:12px; width:62px; height:62px; } .stats-horizontal strong { font-size:32px; } }

/* Kanban React */
.kanban-react-shell { min-height: 100vh; display: flex; background: var(--surface-page); color: var(--text-primary); }
.kanban-react-sidebar { position: fixed; inset: 0 auto 0 0; width: 250px; padding: 22px 12px; background: var(--palette-0d2030); color: var(--color-dark-muted); }
.kanban-react-brand { display: flex; align-items: center; gap: 10px; padding: 0 10px 26px; border-bottom: 1px solid var(--palette-ffffff18); color: var(--text-inverse); }
.kanban-react-brand img { width: 28px; height: 28px; object-fit: contain; }.kanban-react-brand span { display: grid; }.kanban-react-brand small { color: var(--palette-a7bbd0); font-size: 11px; }
.kanban-react-sidebar nav { display: grid; gap: 5px; margin-top: 22px; }.kanban-react-sidebar nav a { display: flex; align-items: center; gap: 11px; padding: 12px; border-radius: 10px; font-size: 14px; font-weight: 700; }.kanban-react-sidebar nav a:hover, .kanban-react-sidebar nav .active { background: var(--palette-174058); color: var(--text-inverse); }
.kanban-react-main { flex: 1; min-width: 0; margin-left: 250px; padding: 44px; }.kanban-react-main > header p { margin: 0 0 5px; color: var(--color-primary); font-size: 11px; font-weight: 800; letter-spacing: .12em; }.kanban-react-main > header h1 { margin: 0; font-size: 32px; letter-spacing: -.04em; }.kanban-react-main > header span { display: block; margin-top: 8px; color: var(--text-muted); font-size: 14px; }
.kanban-react-main > .app-toolbar { margin: -44px -44px 44px; }
.kanban-entrega-react { margin-top: 28px; padding: 22px; border: 1px solid var(--border-default); border-radius: 14px; background: var(--surface-card); }.kanban-entrega-react > div p { margin: 0 0 5px; color: var(--color-primary); font-size: 11px; font-weight: 800; }.kanban-entrega-react h2 { margin: 0; font-size: 20px; }.kanban-entrega-react > div span { display: block; margin-top: 6px; color: var(--text-muted); font-size: 12px; }.kanban-entrega-react section { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-top: 18px; }.kanban-entrega-react label { display: grid; gap: 6px; color: var(--text-secondary); font-size: 11px; font-weight: 700; }.kanban-entrega-react input,.kanban-entrega-react select { width: 100%; min-height: 39px; padding: 0 10px; border: 1px solid var(--border-input); border-radius: 8px; background: var(--surface-input); color: var(--text-primary); }.kanban-entrega-react > button { margin-top: 18px; border: 0; border-radius: 8px; padding: 11px 16px; background: var(--color-primary); color: var(--text-inverse); font-weight: 700; cursor: pointer; }
.kanban-campo-pesquisa { position:relative; }.kanban-campo-pesquisa input { padding-right:34px; }.kanban-campo-pesquisa::after { content:"⌄"; position:absolute; right:11px; top:50%; color:var(--text-muted); font-size:16px; pointer-events:none; transform:translateY(-50%); }.kanban-campo-pesquisa-menu { position:absolute; z-index:30; top:calc(100% + 4px); left:0; right:0; max-height:254px; overflow-y:auto; padding:5px; border:1px solid var(--border-input); border-radius:8px; background:var(--surface-card); box-shadow:0 12px 28px var(--palette-09152655); }.kanban-campo-pesquisa-menu button { display:grid; width:100%; gap:2px; padding:8px 9px; border:0; border-radius:6px; background:transparent; color:var(--text-primary); text-align:left; cursor:pointer; }.kanban-campo-pesquisa-menu button:hover,.kanban-campo-pesquisa-menu button:focus-visible { background:var(--surface-subtle); outline:0; }.kanban-campo-pesquisa-menu strong { font-size:12px; }.kanban-campo-pesquisa-menu small { color:var(--text-muted); font-size:11px; font-weight:500; }
.kanban-react-toolbar { display: flex; gap: 12px; margin: 30px 0 22px; }.kanban-react-toolbar label { display: flex; align-items: center; flex: 1; max-width: 560px; gap: 9px; padding: 0 13px; border: 1px solid var(--border-input); border-radius: 10px; background: var(--surface-card); color: var(--text-muted); }.kanban-react-toolbar input { width: 100%; padding: 12px 0; border: 0; outline: 0; background: transparent; }.kanban-react-toolbar button { border: 1px solid var(--border-strong); border-radius: 10px; padding: 0 15px; background: var(--surface-card); color: var(--color-primary); font-weight: 700; cursor: pointer; }
.kanban-react-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(275px, 1fr); gap: 16px; overflow-x: auto; padding-bottom: 14px; }.kanban-react-column { min-height: 550px; border: 1px solid var(--border-default); border-radius: 14px; background: var(--surface-subtle); }.kanban-react-column > header { display: flex; align-items: center; gap: 8px; padding: 15px; }.kanban-react-column > header > span { width: 9px; height: 9px; border-radius: 50%; }.kanban-react-column h2 { flex: 1; margin: 0; font-size: 14px; }.kanban-react-column header b { display: grid; place-items: center; min-width: 24px; height: 24px; border-radius: 999px; background: var(--surface-track); color: var(--text-secondary); font-size: 11px; }.kanban-react-cards { display: grid; gap: 10px; padding: 0 10px 10px; }.kanban-react-column.has-scroll .kanban-react-cards { max-height: 640px; overflow-y: auto; padding-right: 6px; scrollbar-gutter: stable; }.kanban-react-column.has-scroll .kanban-react-cards::-webkit-scrollbar { width: 8px; }.kanban-react-column.has-scroll .kanban-react-cards::-webkit-scrollbar-track { background: var(--surface-track); border-radius: 999px; }.kanban-react-column.has-scroll .kanban-react-cards::-webkit-scrollbar-thumb { background: var(--palette-aebbd0); border-radius: 999px; }.kanban-react-card { width: 100%; display: grid; grid-template-columns: auto 1fr; gap: 7px; padding: 13px 10px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--surface-card); color: var(--text-primary); text-align: left; cursor: grab; box-shadow: 0 3px 10px var(--palette-1724370c); }.kanban-react-card > svg { color: var(--palette-98a2b3); }.kanban-react-card strong { display: block; font-size: 13px; }.kanban-react-card small,.kanban-react-card p { display: block; margin: 5px 0 0; color: var(--text-muted); font-size: 11px; }.kanban-react-card em { grid-column: 2; width: max-content; margin-top: 3px; padding: 3px 6px; border-radius: 999px; background: var(--surface-primary); color: var(--color-primary); font-size: 10px; font-style: normal; font-weight: 700; }.kanban-react-empty { margin: 26px 8px; color: var(--text-muted); font-size: 12px; text-align: center; }.kanban-react-error { padding: 10px; color: var(--color-danger); }
:root.dark .kanban-react-shell { background: var(--color-dark-page); color: var(--color-dark-text); }.dark .kanban-react-main > header span,.dark .kanban-react-empty { color: var(--color-dark-muted); }.dark .kanban-react-toolbar label,.dark .kanban-react-toolbar button,.dark .kanban-react-card { border-color: var(--color-dark-border); background: var(--color-dark-raised); color: var(--color-dark-text); }.dark .kanban-react-column { border-color: var(--color-dark-border); background: var(--color-dark-surface); }.dark .kanban-react-column header b { background: var(--palette-2c4370); color: var(--color-dark-text); }.dark .kanban-react-card small,.dark .kanban-react-card p { color: var(--color-dark-muted); }.dark .kanban-react-column.has-scroll .kanban-react-cards::-webkit-scrollbar-track { background:var(--palette-14243c); }.dark .kanban-react-column.has-scroll .kanban-react-cards::-webkit-scrollbar-thumb { background:var(--color-dark-border); }
:root.dark .kanban-entrega-react { border-color: var(--color-dark-border); background: var(--color-dark-surface); }.dark .kanban-entrega-react label { color: var(--color-dark-muted); }.dark .kanban-entrega-react input,.dark .kanban-entrega-react select { border-color: var(--color-dark-border); background: var(--color-dark-raised); color: var(--color-dark-text); }
@media (max-width: 800px) { .kanban-react-sidebar { width: 72px; padding: 20px 8px; }.kanban-react-brand span,.kanban-react-sidebar nav a { font-size: 0; }.kanban-react-brand { justify-content: center; padding: 0 0 22px; }.kanban-react-sidebar nav a { justify-content: center; padding: 12px; }.kanban-react-main { margin-left: 72px; padding: 28px 20px; }.kanban-react-main > .app-toolbar { margin: -28px -20px 28px; } }
/* Detalhe do card Kanban */
.kanban-detail-modal { position: fixed; inset: 0; z-index: 50; display: flex; justify-content: flex-end; }.kanban-detail-backdrop { position: absolute; inset: 0; border: 0; background: var(--palette-0a112099); }.kanban-detail-modal aside { position: relative; width: min(480px, 100%); height: 100%; overflow: auto; background: var(--surface-card); box-shadow: -16px 0 42px var(--palette-17243733); }.kanban-detail-modal aside > header { display: flex; justify-content: space-between; align-items: center; padding: 20px; border-bottom: 1px solid var(--border-default); }.kanban-detail-modal h2 { margin: 0; font-size: 19px; }.kanban-detail-modal button { border: 1px solid var(--border-input); border-radius: 7px; padding: 8px 12px; background: var(--surface-card); color: var(--color-primary); font-weight: 700; cursor: pointer; }.kanban-detail-body,.kanban-detail-modal form { padding: 20px; }.kanban-detail-body dl { display: grid; grid-template-columns: 130px 1fr; gap: 13px; margin: 0; font-size: 13px; }.kanban-detail-body dt { color: var(--text-muted); }.kanban-detail-body dd { margin: 0; color: var(--text-heading); font-weight: 600; }.kanban-detail-body h3 { margin: 28px 0 10px; font-size: 14px; }.kanban-pendency { padding: 10px; border: 1px solid var(--palette-f3c276); border-radius: 8px; background: var(--palette-fff9e8); color: var(--palette-9a6508); font-size: 12px; }.kanban-detail-modal footer { display: flex; justify-content: flex-end; gap: 9px; margin-top: 24px; }.kanban-detail-modal .danger { border-color: var(--palette-f3c7ca); color: var(--color-danger); }.kanban-detail-modal form { display: grid; gap: 14px; }.kanban-detail-modal form label { display: grid; gap: 5px; font-size: 12px; font-weight: 700; }.kanban-detail-modal form input,.kanban-detail-modal form select { min-height: 40px; padding: 0 10px; border: 1px solid var(--border-input); border-radius: 7px; }
.kanban-series-turmas { display:grid; gap:9px; }.kanban-series-turmas section { display:grid; gap:4px; }.kanban-series-turmas small { color:var(--text-muted); font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }.kanban-series-turmas section > div { display:flex; flex-wrap:wrap; gap:5px; }.kanban-series-turmas span { display:inline-flex; align-items:center; min-height:23px; padding:3px 7px; border:1px solid var(--border-input); border-radius:999px; background:var(--surface-subtle); color:var(--text-heading); font-size:11px; line-height:1.2; }.kanban-series-turmas em { color:var(--text-muted); font-size:11px; font-style:normal; font-weight:500; }
html:has(.kanban-detail-modal) { overflow: hidden; }
:root.dark .kanban-detail-modal aside { background: var(--color-dark-surface); color: var(--color-dark-text); }.dark .kanban-detail-modal aside > header,.dark .kanban-detail-modal button,.dark .kanban-detail-modal form input,.dark .kanban-detail-modal form select { border-color: var(--color-dark-border); background: var(--color-dark-raised); color: var(--color-dark-text); }.dark .kanban-detail-body dd { color: var(--color-dark-text); }
:root .kanban-detail-backdrop { background: var(--overlay-backdrop-strong); backdrop-filter: blur(3px); }
:root .kanban-detail-modal aside { z-index: 1; }
.kanban-rich-card { display: block; cursor: pointer; }.kanban-card-title { display:flex; align-items:center; gap:7px; }.kanban-card-pills { display:flex; gap:6px; margin:9px 0; }.kanban-card-pills em { width:auto; margin:0; background:var(--palette-e5f7ee); color:var(--palette-087a54); }.kanban-card-pills em:last-child { background:var(--palette-e7f1ff); color:var(--palette-2374bd); }.kanban-card-pills .late { background:var(--palette-fff1ed); color:var(--palette-c2410c); }.kanban-card-progress { display:grid; grid-template-columns:30px 1fr; gap:6px; align-items:center; color:var(--text-muted); font-size:10px; }.kanban-card-progress i { height:5px; overflow:hidden; border-radius:99px; background:var(--palette-e3ebf5); }.kanban-card-progress b { display:block; height:100%; border-radius:inherit; background:var(--palette-36a2eb); }.kanban-card-people { margin:10px 0; }.kanban-card-people p { display:flex; gap:7px; align-items:start; }.kanban-card-people p>b { display:grid; place-items:center; width:22px; height:22px; flex:none; border-radius:50%; background:var(--palette-e2e8f0); color:var(--palette-64748b); font-size:9px; }.kanban-card-people span { font-size:9px; color:var(--palette-8391a5); }.kanban-card-people strong { margin-top:2px; font-size:10px; color:var(--text-secondary); }.kanban-card-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }.kanban-card-tags span { padding:4px 6px; border-radius:5px; background:var(--palette-f2e8d9); color:var(--palette-845d36); font-size:9px; }.kanban-card-history { display:grid; gap:3px; margin-top:10px; padding-top:9px; border-top:1px solid var(--border-default); color:var(--text-muted); font-size:9px; }.kanban-card-history b { color:var(--text-muted); font-size:9px; }.kanban-card-total { display:block; margin-top:8px; }
.kanban-react-card.is-complete { border-color: var(--palette-a8d9bd); background: var(--surface-success); }.kanban-react-card.is-complete:hover { border-color: var(--palette-72bd91); background: var(--palette-def3e6); }.kanban-react-card.is-complete .kanban-card-progress i { background: var(--palette-c9ead5); }.kanban-react-card.is-complete .kanban-card-progress b { background: var(--palette-329b61); }
:root.dark .kanban-card-pills em { background:var(--palette-08301f); color:var(--palette-34d399); }.dark .kanban-card-pills em:last-child { background:var(--palette-14243c); color:var(--color-dark-primary-text); }.dark .kanban-card-people strong { color:var(--color-dark-text); }.dark .kanban-card-tags span { background:var(--palette-3a2408); color:var(--color-warning-text); }.dark .kanban-card-history { border-color:var(--color-dark-border); }

/* O Kanban compartilha a mesma moldura (sidebar + toolbar) do Painel. */
.app-shell > .kanban-react-sidebar { display:none; }.kanban-page { min-width:0; padding:44px; background:var(--surface-page); }.kanban-page > .app-toolbar { margin:-44px -44px 44px; }
:root.dark .kanban-page { background:var(--color-dark-page); }
@media (max-width:800px) { .kanban-page { padding:28px 20px; }.kanban-page > .app-toolbar { margin:-28px -20px 28px; } }
.kanban-react-more { margin:2px 6px 8px; color:var(--text-muted); font-size:11px; font-weight:700; text-align:center; }

/* A regra do layout legado oculta `.avatar`; na toolbar React o avatar Ã© sempre visÃ­vel. */
.app-toolbar .avatar { display:grid; flex:0 0 34px; place-items:center; width:34px; height:34px; margin:0; padding:0; border-radius:50%; line-height:1; text-align:center; }

/* RelatÃ³rio PDF do Kanban. */
.kanban-report-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-color:var(--color-primary) !important; background:var(--color-primary) !important; color:var(--text-inverse) !important; }.kanban-report-modal { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:24px; }.kanban-report-backdrop { position:absolute; inset:0; border:0; background:var(--overlay-backdrop-strong); backdrop-filter:blur(3px); }.kanban-report-dialog { position:relative; z-index:1; width:min(690px,100%); max-height:calc(100dvh - 48px); overflow:auto; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-card); box-shadow:0 20px 56px var(--palette-09152655); }.kanban-report-dialog > header { display:flex; align-items:flex-start; justify-content:space-between; padding:24px 24px 16px; border-bottom:1px solid var(--palette-e0e8f2); }.kanban-report-dialog header p { margin:0 0 5px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.11em; }.kanban-report-dialog h2 { margin:0; color:var(--palette-1c385c); font-size:24px; letter-spacing:-.03em; }.kanban-report-dialog header button { display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--border-default); border-radius:10px; background:var(--surface-card); color:var(--text-muted); font-size:20px; cursor:pointer; }.kanban-report-description { margin:18px 24px; color:var(--text-secondary); font-size:13px; line-height:1.5; }.kanban-report-dialog form { padding:0 24px 24px; }.kanban-report-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }.kanban-report-fields label { display:grid; gap:6px; color:var(--text-secondary); font-size:11px; font-weight:700; }.kanban-report-fields input,.kanban-report-fields select { width:100%; min-width:0; height:40px; padding:0 10px; border:1px solid var(--border-input); border-radius:7px; background:var(--surface-input); color:var(--text-primary); font:inherit; }.kanban-report-error { margin:14px 0 0; color:var(--color-danger); font-size:12px; }.kanban-report-dialog footer { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; padding-top:16px; border-top:1px solid var(--palette-e0e8f2); }.kanban-report-dialog footer button { border:1px solid var(--border-input); border-radius:8px; padding:10px 15px; background:var(--surface-card); color:var(--color-primary); font-weight:700; cursor:pointer; }.kanban-report-dialog footer .kanban-report-submit { border-color:var(--color-info); background:var(--color-info); color:var(--text-inverse); }.kanban-report-dialog button:disabled { opacity:.65; cursor:wait; }
.kanban-pendencies-download { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-color:var(--palette-e9a225) !important; background:var(--palette-fff8e8) !important; color:var(--palette-9a6508) !important; }
:root.dark .kanban-pendencies-download { border-color:var(--palette-9a6508) !important; background:var(--palette-3a2408) !important; color:var(--color-warning-text) !important; }
:root.dark .kanban-report-dialog { border-color:var(--color-dark-border); background:var(--color-dark-surface); }:root.dark .kanban-report-dialog > header,:root.dark .kanban-report-dialog footer { border-color:var(--color-dark-border); }:root.dark .kanban-report-dialog h2 { color:var(--color-dark-text); }:root.dark .kanban-report-description,:root.dark .kanban-report-fields label { color:var(--color-dark-muted); }:root.dark .kanban-report-dialog header button,:root.dark .kanban-report-fields input,:root.dark .kanban-report-fields select,:root.dark .kanban-report-dialog footer button { border-color:var(--color-dark-border); background:var(--color-dark-raised); color:var(--color-dark-text); }:root.dark .kanban-report-dialog footer .kanban-report-submit { border-color:var(--color-info); background:var(--color-info); }
@media (max-width:650px) { .kanban-report-modal { padding:12px; }.kanban-report-fields { grid-template-columns:1fr 1fr; }.kanban-report-dialog > header,.kanban-report-dialog form { padding-right:16px; padding-left:16px; }.kanban-report-description { margin-right:16px; margin-left:16px; } }

/* Colunas do Kanban: cabecalho fixo e rolagem interna na lista de cards. */
.kanban-react-board { align-items: stretch; }
.kanban-react-column {
  display: flex;
  flex-direction: column;
  height: min(690px, calc(100dvh - 260px));
  overflow: hidden;
}
.kanban-react-cards {
  flex: 1;
  min-height: 0;
  align-content: start;
  overflow-y: auto;
  padding-bottom: 72px;
  padding-right: 6px;
  scroll-padding-bottom: 72px;
  scrollbar-gutter: stable;
}
.kanban-react-column.has-scroll .kanban-react-cards {
  max-height: none;
  overflow-y: auto;
  padding-bottom: 72px;
  scroll-padding-bottom: 72px;
}
.kanban-react-cards::-webkit-scrollbar { width: 8px; }
.kanban-react-cards::-webkit-scrollbar-track { background: var(--surface-track); border-radius: 999px; }
.kanban-react-cards::-webkit-scrollbar-thumb { background: var(--palette-aebbd0); border-radius: 999px; }

/* Drawer do card: leitura equivalente ao detalhamento do Kanban legado. */
.kanban-detail-progress { margin-bottom: 20px; padding: 14px; border: 1px solid var(--border-default); border-radius: 10px; background: var(--palette-f8fbff); }
.kanban-detail-progress > div { display:flex; justify-content:space-between; color:var(--text-heading); font-size:13px; }.kanban-detail-progress > div b { font-size:16px; }.kanban-detail-progress i { display:block; height:8px; margin-top:11px; overflow:hidden; border-radius:999px; background:var(--surface-track); }.kanban-detail-progress i span { display:block; height:100%; border-radius:inherit; background:var(--palette-36a2eb); }
.kanban-detail-properties { row-gap: 12px !important; }.kanban-stage-pill,.kanban-status-pill,.kanban-deadline-pill { display:inline-block; padding:3px 8px; border-radius:999px; background:var(--palette-e7f1ff); color:var(--palette-2374bd); font-size:10px; font-weight:800; }.kanban-deadline-pill { background:var(--palette-e5f7ee); color:var(--palette-087a54); }.kanban-deadline-pill.late { background:var(--palette-fff1ed); color:var(--palette-c2410c); }
.kanban-detail-section { margin-top:24px; padding-top:20px; border-top:1px solid var(--border-default); }.kanban-detail-section h3 { margin:0 0 10px; }.kanban-no-data { margin:0; color:var(--text-subtle); font-size:12px; }.kanban-detail-history { display:grid; gap:8px; }.kanban-detail-history h3 { margin-bottom:2px; }.kanban-detail-history article { display:grid; gap:4px; padding:11px; border:1px solid var(--border-default); border-radius:8px; background:var(--surface-input); }.kanban-detail-history article strong { color:var(--text-heading); font-size:12px; }.kanban-detail-history article span,.kanban-detail-history article small { color:var(--text-muted); font-size:11px; }
.kanban-detail-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.kanban-detail-form-grid label { min-width:0; }.kanban-detail-form { padding-bottom:28px !important; }
.kanban-history-link { justify-self:end; margin-top:6px; border:1px solid var(--color-info); border-radius:7px; padding:7px 10px; background:var(--color-info); color:var(--text-inverse); font-size:11px; font-weight:800; text-decoration:none; }
.kanban-history-link:hover { background:var(--palette-2374bd); border-color:var(--palette-2374bd); }
:root.dark .kanban-detail-progress,:root.dark .kanban-detail-history article { border-color:var(--color-dark-border); background:var(--color-dark-raised); }:root.dark .kanban-detail-progress > div,:root.dark .kanban-detail-history article strong { color:var(--color-dark-text); }:root.dark .kanban-detail-section { border-color:var(--color-dark-border); }:root.dark .kanban-no-data,:root.dark .kanban-detail-history article span,:root.dark .kanban-detail-history article small { color:var(--color-dark-muted); }:root.dark .kanban-stage-pill,:root.dark .kanban-status-pill { background:var(--palette-14243c); color:var(--color-dark-primary-text); }:root.dark .kanban-deadline-pill { background:var(--palette-08301f); color:var(--palette-34d399); }:root.dark .kanban-deadline-pill.late { background:var(--palette-3a2408); color:var(--color-warning-text); }

/* Kanban escuro alinhado aos tokens do design.zip. */
:root.dark .kanban-page {
  background: var(--color-dark-page);
  color: var(--color-dark-text);
}
:root.dark .kanban-entrega-react {
  border-color: var(--color-dark-border);
  background: var(--color-dark-surface);
}
:root.dark .kanban-entrega-react h2,
:root.dark .kanban-react-column h2,
:root.dark .kanban-rich-card strong,
:root.dark .kanban-card-title,
:root.dark .kanban-card-total {
  color: var(--color-dark-text);
}
:root.dark .kanban-entrega-react > div p {
  color: var(--color-dark-primary-text);
}
:root.dark .kanban-entrega-react > div span,
:root.dark .kanban-entrega-react label,
:root.dark .kanban-react-empty,
:root.dark .kanban-react-card small,
:root.dark .kanban-react-card p,
:root.dark .kanban-card-progress,
:root.dark .kanban-card-history,
:root.dark .kanban-card-history b {
  color: var(--color-dark-muted);
}
:root.dark .kanban-entrega-react input,
:root.dark .kanban-entrega-react select,
:root.dark .kanban-react-toolbar label {
  border-color: var(--color-dark-border-strong);
  background: var(--color-dark-raised);
  color: var(--color-dark-text);
}
:root.dark .kanban-react-toolbar input {
  color: var(--color-dark-text);
}
:root.dark .kanban-react-toolbar input::placeholder {
  color: var(--palette-7d8ba3);
}
:root.dark .kanban-react-toolbar button {
  border-color: var(--color-dark-border-strong);
  background: var(--color-dark-surface);
  color: var(--color-dark-text);
}
:root.dark .kanban-react-toolbar button:hover {
  background: var(--color-dark-hover);
}
:root.dark .kanban-report-button {
  border-color: var(--color-primary-dark) !important;
  background: var(--color-primary-dark) !important;
  color: var(--palette-ffffff) !important;
}
:root.dark .kanban-react-column {
  border-color: var(--color-dark-border);
  background: var(--color-dark-surface);
}
:root.dark .kanban-react-column header b {
  background: var(--color-dark-hover);
  color: var(--color-dark-text);
}
:root.dark .kanban-react-card {
  border-color: var(--color-dark-border-strong);
  background: var(--color-dark-raised);
  color: var(--color-dark-text);
  box-shadow: 0 8px 22px var(--shadow-dark-soft);
}
:root.dark .kanban-react-card:hover {
  border-color: var(--palette-6f96ec);
  background: var(--color-dark-hover);
}
:root.dark .kanban-react-card.is-complete,
:root.dark .kanban-react-card.is-complete:hover {
  border-color: var(--palette-2d7a50);
  background: var(--palette-123323);
}
:root.dark .kanban-react-card.is-complete .kanban-card-progress i { background: var(--palette-1b5134); }
:root.dark .kanban-react-card.is-complete .kanban-card-progress b { background: var(--palette-48b879); }
:root.dark .kanban-card-title svg {
  color: var(--color-dark-muted);
}
:root.dark .kanban-card-pills em {
  background: var(--palette-08301f);
  color: var(--palette-34d399);
}
:root.dark .kanban-card-pills em:last-child {
  background: var(--palette-14243c);
  color: var(--color-dark-primary-text);
}
:root.dark .kanban-card-pills .late {
  background: var(--palette-3a2408);
  color: var(--color-warning-text);
}
:root.dark .kanban-card-progress i {
  background: var(--color-dark-border);
}
:root.dark .kanban-card-progress b {
  background: var(--color-primary-dark);
}
:root.dark .kanban-card-people p > b {
  background: var(--color-dark-hover);
  color: var(--color-dark-text);
}
:root.dark .kanban-card-people span {
  color: var(--color-dark-muted);
}
:root.dark .kanban-card-people strong {
  color: var(--color-dark-text);
}
:root.dark .kanban-card-tags span {
  background: var(--palette-3a2408);
  color: var(--color-warning-text);
}
:root.dark .kanban-card-history {
  border-color: var(--color-dark-border);
}
:root.dark .kanban-react-board,
:root.dark .kanban-react-cards {
  scrollbar-color: var(--color-dark-border-strong) var(--color-dark-surface);
}
:root.dark .kanban-react-board::-webkit-scrollbar,
:root.dark .kanban-react-cards::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
:root.dark .kanban-react-board::-webkit-scrollbar-track,
:root.dark .kanban-react-cards::-webkit-scrollbar-track {
  background: var(--color-dark-surface);
  border-radius: 999px;
}
:root.dark .kanban-react-board::-webkit-scrollbar-thumb,
:root.dark .kanban-react-cards::-webkit-scrollbar-thumb {
  background: var(--color-dark-border-strong);
  border-radius: 999px;
}

/* Drawer Kanban no tema escuro: overlay legivel e painel elevado. */
:root.dark .kanban-detail-backdrop {
  background: var(--overlay-backdrop-soft);
  backdrop-filter: blur(2px);
}
:root.dark .kanban-detail-modal aside {
  border-left: 1px solid var(--color-dark-border);
  background: var(--color-dark-surface);
  color: var(--color-dark-text);
  box-shadow: -18px 0 48px var(--shadow-dark-strong);
}
:root.dark .kanban-detail-modal aside > header {
  border-bottom-color: var(--color-dark-border);
  background: var(--color-dark-raised);
}
:root.dark .kanban-detail-modal h2,
:root.dark .kanban-detail-body h3,
:root.dark .kanban-detail-body dd,
:root.dark .kanban-detail-progress > div,
:root.dark .kanban-detail-history article strong {
  color: var(--color-dark-text);
}
:root.dark .kanban-detail-modal button {
  border-color: var(--color-dark-border-strong);
  background: var(--color-dark-raised);
  color: var(--color-dark-text);
}
:root.dark .kanban-detail-modal button:hover {
  background: var(--color-dark-hover);
}
:root.dark .kanban-detail-body dt,
:root.dark .kanban-no-data,
:root.dark .kanban-detail-history article span,
:root.dark .kanban-detail-history article small {
  color: var(--color-dark-muted);
}
:root.dark .kanban-detail-progress,
:root.dark .kanban-detail-history article {
  border-color: var(--color-dark-border-strong);
  background: var(--color-dark-raised);
}
:root.dark .kanban-detail-progress i {
  background: var(--color-dark-border);
}
:root.dark .kanban-detail-progress i span {
  background: var(--color-primary-dark);
}
:root.dark .kanban-detail-section {
  border-top-color: var(--color-dark-border);
}
:root.dark .kanban-pendency {
  border-color: var(--palette-7c561b);
  background: var(--palette-3a2408);
  color: var(--color-warning-text);
}
:root.dark .kanban-detail-modal .danger {
  border-color: var(--palette-7f1d2f);
  color: var(--palette-fb7185);
}
:root.dark .kanban-history-link {
  border-color: var(--color-primary-dark);
  background: var(--color-primary-dark);
  color: var(--palette-ffffff);
}
:root.dark .kanban-history-link:hover {
  border-color: var(--palette-5a80e6);
  background: var(--palette-5a80e6);
}

html.dark body .kanban-detail-modal > .kanban-detail-backdrop,
:root.dark body .kanban-detail-modal > .kanban-detail-backdrop,
body.dark .kanban-detail-modal > .kanban-detail-backdrop {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.dark body .kanban-detail-modal > aside,
:root.dark body .kanban-detail-modal > aside,
body.dark .kanban-detail-modal > aside {
  z-index: 2;
  border-left: 1px solid var(--color-dark-border-strong) !important;
  background: var(--color-dark-surface) !important;
}

/* Historico React */
.historico-react-page { min-width:0; padding:44px; background:var(--surface-page); }.historico-react-page > .app-toolbar { margin:-44px -44px 40px; }.historico-react-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; }.historico-react-heading p { margin:0 0 6px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.12em; }.historico-react-heading h1 { margin:0; font-size:30px; }.historico-react-heading span { display:block; margin-top:8px; color:var(--text-muted); font-size:14px; }.historico-react-total { display:grid; grid-template-columns:auto auto; align-items:center; column-gap:7px; min-width:140px; padding:12px 16px; border:1px solid var(--palette-cbd9eb); border-radius:8px; background:var(--surface-card); color:var(--color-primary); }.historico-react-total span { margin:0; color:var(--text-primary); font-size:22px; font-weight:800; }.historico-react-total small { grid-column:2; color:var(--text-muted); font-size:10px; }
.historico-react-filter { display:flex; gap:10px; margin:30px 0 22px; }.historico-react-filter label { display:flex; flex:1; align-items:center; gap:9px; max-width:560px; padding:0 13px; border:1px solid var(--border-input); border-radius:8px; background:var(--surface-card); color:var(--text-muted); }.historico-react-filter input { width:100%; padding:12px 0; border:0; outline:0; background:transparent; color:var(--text-primary); }.historico-react-filter button,.historico-react-card footer button,.historico-react-pagination button { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid var(--color-primary); border-radius:7px; padding:10px 14px; background:var(--color-primary); color:var(--text-inverse); font-weight:700; cursor:pointer; }.historico-react-filter .historico-react-clear,.historico-react-pagination button { border-color:var(--palette-c4d1e0); background:var(--surface-card); color:var(--color-primary); }
.historico-react-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(310px,1fr)); gap:16px; }.historico-react-card { display:flex; min-height:275px; flex-direction:column; border:1px solid var(--border-default); border-radius:8px; background:var(--surface-card); box-shadow:0 2px 8px var(--palette-1724370a); }.historico-react-card.has-alert { border-top:3px solid var(--palette-e49b38); }.historico-react-card.is-archived { opacity:.72; }.historico-react-card > header { display:flex; justify-content:space-between; gap:12px; padding:18px 18px 10px; }.historico-react-id { color:var(--color-primary); font-size:10px; font-weight:800; letter-spacing:.08em; }.historico-react-card h2 { margin:5px 0 0; font-size:15px; line-height:1.35; }.historico-react-state { display:inline-flex !important; align-items:center; gap:4px; margin:0 !important; color:var(--text-muted) !important; font-size:10px !important; }.historico-react-date { margin:0; padding:0 18px 16px; color:var(--text-muted); font-size:11px; }.historico-react-date strong { color:var(--text-secondary); }.historico-react-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0; padding:13px 18px; border-top:1px solid var(--palette-e2eaf3); border-bottom:1px solid var(--palette-e2eaf3); }.historico-react-stats dt { display:flex; align-items:center; gap:4px; color:var(--text-subtle); font-size:9px; }.historico-react-stats dd { margin:6px 0 0; color:var(--text-heading); font-size:17px; font-weight:800; }.historico-react-stats dd.ok { color:var(--color-success); }.historico-react-stats dd.warning { color:var(--palette-c56b15); }.historico-react-card footer { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:auto; padding:13px 18px; }.historico-react-card footer > span { color:var(--text-muted); font-size:10px; }.historico-react-card footer > span:first-child { display:inline-flex; align-items:center; gap:4px; }.historico-react-pendency { color:var(--palette-b5630c) !important; }.historico-react-card footer button { width:100%; margin-top:3px; padding:8px 12px; }.historico-react-empty { display:grid; place-items:center; gap:8px; min-height:220px; padding:30px; border:1px dashed var(--palette-b8c8da); border-radius:8px; color:var(--text-muted); text-align:center; }.historico-react-empty strong { color:var(--text-heading); }.historico-react-error { color:var(--color-danger); font-size:13px; }.historico-react-pagination { display:flex; align-items:center; justify-content:center; gap:14px; margin-top:28px; color:var(--text-muted); font-size:12px; }.historico-react-pagination button:disabled { opacity:.45; cursor:not-allowed; }
.historico-react-modal { position:fixed; inset:0; z-index:60; display:flex; justify-content:flex-end; }.historico-react-modal-backdrop { position:absolute; inset:0; border:0; background:var(--overlay-backdrop-medium); }.historico-react-modal aside { position:relative; width:min(650px,100%); height:100%; overflow:auto; background:var(--surface-card); box-shadow:-16px 0 42px var(--palette-17243733); }.historico-react-modal aside > header { display:flex; justify-content:space-between; gap:16px; padding:24px; border-bottom:1px solid var(--border-default); }.historico-react-modal aside > header span { color:var(--color-primary); font-size:10px; font-weight:800; letter-spacing:.1em; }.historico-react-modal h2 { margin:5px 0; font-size:20px; }.historico-react-modal p { margin:0; color:var(--text-muted); font-size:12px; }.historico-react-icon,.historico-react-process-actions button { display:grid; place-items:center; border:1px solid var(--border-input); border-radius:7px; background:var(--surface-card); color:var(--text-muted); cursor:pointer; }.historico-react-icon { width:35px; height:35px; }.historico-react-processes { display:grid; gap:12px; padding:20px; }.historico-react-processes article { display:flex; justify-content:space-between; gap:14px; padding:14px; border:1px solid var(--border-default); border-radius:8px; }.historico-react-processes strong,.historico-react-processes small { display:block; }.historico-react-processes strong { color:var(--text-heading); font-size:13px; }.historico-react-processes small { margin-top:5px; color:var(--text-muted); font-size:11px; }.historico-react-process-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; align-content:start; gap:6px; }.historico-react-process-actions a,.historico-react-process-actions button { padding:7px 9px; color:var(--color-primary); font-size:11px; font-weight:700; }.historico-react-process-actions button { color:var(--color-danger); }
:root.dark .historico-react-page { background:var(--color-dark-page); }.dark .historico-react-heading h1,.dark .historico-react-card h2,.dark .historico-react-empty strong,.dark .historico-react-modal h2,.dark .historico-react-processes strong { color:var(--color-dark-text); }.dark .historico-react-heading span,.dark .historico-react-date,.dark .historico-react-card footer > span,.dark .historico-react-pagination,.dark .historico-react-modal p,.dark .historico-react-processes small { color:var(--color-dark-muted); }.dark .historico-react-total,.dark .historico-react-filter label,.dark .historico-react-card,.dark .historico-react-modal aside,.dark .historico-react-processes article { border-color:var(--color-dark-border); background:var(--color-dark-surface); }.dark .historico-react-total span,.dark .historico-react-filter input,.dark .historico-react-stats dd { color:var(--color-dark-text); }.dark .historico-react-filter input::placeholder { color:var(--palette-7d8ba3); }.dark .historico-react-stats { border-color:var(--color-dark-border); }.dark .historico-react-stats dt { color:var(--color-dark-muted); }.dark .historico-react-filter .historico-react-clear,.dark .historico-react-pagination button,.dark .historico-react-icon,.dark .historico-react-process-actions button { border-color:var(--color-dark-border-strong); background:var(--color-dark-raised); color:var(--color-dark-muted); }.dark .historico-react-process-actions a { border-color:var(--color-dark-border-strong); color:var(--color-dark-primary-text); }.dark .historico-react-empty { border-color:var(--color-dark-border-strong); color:var(--color-dark-muted); }
@media (max-width:800px) { .historico-react-page { padding:28px 20px; }.historico-react-page > .app-toolbar { margin:-28px -20px 28px; }.historico-react-heading { align-items:start; }.historico-react-total { min-width:0; }.historico-react-filter { flex-wrap:wrap; }.historico-react-filter label { flex-basis:100%; }.historico-react-processes article { flex-direction:column; }.historico-react-process-actions { justify-content:start; } }
.historico-react-pagination { gap:8px; padding:18px 0 10px; }.historico-react-pagination > button { min-width:36px; }.historico-react-page-list { display:flex; align-items:center; gap:5px; }.historico-react-page-list button { min-width:36px; padding:9px 11px; }.historico-react-page-list button.is-current { border-color:var(--color-primary); background:var(--color-primary); color:var(--text-inverse); }.historico-react-page-list i { width:24px; color:var(--text-subtle); font-style:normal; text-align:center; }
.historico-react-grid.is-updating { opacity:.68; pointer-events:none; transition:opacity .15s ease; }
@media (min-width: 801px) { .historico-react-grid { min-height: 860px; } }
.historico-react-grid { align-content: start; }
@media (min-width: 1400px) { .historico-react-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 801px) and (max-width: 1399px) { .historico-react-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sidebar-logout { display:flex; align-items:center; gap:12px; margin:auto 0 0; padding:11px 12px; border:1px solid var(--palette-9f2635); border-radius:8px; background:var(--palette-5b1722); color:var(--palette-ffd5d9); font-size:14px; font-weight:700; }.sidebar-logout:hover { border-color:var(--palette-f26b79); background:var(--palette-7c1d2c); color:var(--text-inverse); }.app-shell.sidebar-recolhida .sidebar-logout { justify-content:center; padding:11px; }.app-shell.sidebar-recolhida .sidebar-logout .nav-label { display:none; }
/* Bernoulli React */
.bernoulli-react-page { min-width:0; padding:44px; background:var(--surface-page); }.bernoulli-react-page > .app-toolbar { margin:-44px -44px 40px; }.bernoulli-react-heading p,.bernoulli-react-form header p,.bernoulli-react-rules header p,.bernoulli-react-progress header p { margin:0 0 6px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.12em; }.bernoulli-react-heading h1 { margin:0; font-size:30px; }.bernoulli-react-heading span { display:block; margin-top:8px; color:var(--text-muted); font-size:14px; }.bernoulli-react-steps { display:flex; gap:10px; margin:30px 0 18px; }.bernoulli-react-steps span { display:flex; align-items:center; gap:8px; color:var(--text-secondary); font-size:12px; font-weight:700; }.bernoulli-react-steps b { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--palette-e5edff); color:var(--color-primary); }.bernoulli-react-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr); gap:18px; }.bernoulli-react-form,.bernoulli-react-rules,.bernoulli-react-progress { border:1px solid var(--border-default); border-radius:8px; background:var(--surface-card); }.bernoulli-react-form { padding:24px; }.bernoulli-react-form h2,.bernoulli-react-rules h2,.bernoulli-react-progress h2 { margin:0; color:var(--text-heading); font-size:19px; }.bernoulli-react-days { display:flex; gap:7px; margin:22px 0 16px; }.bernoulli-react-days button { border:1px solid var(--palette-cbd9eb); border-radius:7px; padding:9px 12px; background:var(--surface-input); color:var(--text-muted); font-size:12px; font-weight:700; cursor:pointer; }.bernoulli-react-days button.is-active { border-color:var(--color-primary); background:var(--color-primary); color:var(--text-inverse); }.bernoulli-react-upload { display:flex; align-items:center; gap:13px; min-height:94px; padding:15px; border:1px dashed var(--palette-7ea4dd); border-radius:8px; background:var(--palette-f5f9ff); color:var(--color-primary); cursor:pointer; }.bernoulli-react-upload span { display:grid; gap:5px; min-width:0; }.bernoulli-react-upload strong { overflow:hidden; color:var(--text-heading); font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.bernoulli-react-upload small { color:var(--text-muted); font-size:11px; }.bernoulli-react-upload input { position:absolute; width:1px; height:1px; opacity:0; }.bernoulli-react-submit,.bernoulli-react-download { display:inline-flex; align-items:center; justify-content:center; gap:8px; margin-top:16px; border:1px solid var(--color-primary); border-radius:7px; padding:11px 16px; background:var(--color-primary); color:var(--text-inverse); font-weight:700; cursor:pointer; }.bernoulli-react-submit:disabled { opacity:.65; cursor:wait; }.bernoulli-react-error { color:var(--color-danger); font-size:12px; }.bernoulli-react-rules { padding:24px; }.bernoulli-react-rules dl { display:grid; gap:13px; margin:20px 0 0; }.bernoulli-react-rules dt { color:var(--color-primary); font-size:11px; font-weight:800; }.bernoulli-react-rules dd { margin:5px 0 0; color:var(--text-muted); font-size:12px; line-height:1.45; }.bernoulli-react-progress { margin-top:18px; padding:24px; }.bernoulli-react-progress > header { display:flex; justify-content:space-between; gap:16px; }.bernoulli-react-progress header span { display:block; margin-top:6px; color:var(--text-muted); font-size:12px; }.bernoulli-react-progress > header > svg { color:var(--color-primary); }.bernoulli-react-progress.concluido > header > svg { color:var(--color-success); }.bernoulli-react-progress.erro > header > svg { color:var(--color-danger); }.bernoulli-react-bar { height:9px; margin:20px 0 5px; overflow:hidden; border-radius:99px; background:var(--surface-track); }.bernoulli-react-bar i { display:block; height:100%; border-radius:inherit; background:var(--color-primary); transition:width .25s ease; }.bernoulli-react-progress.concluido .bernoulli-react-bar i { background:var(--color-success); }.bernoulli-react-progress.erro .bernoulli-react-bar i { background:var(--color-danger); }.bernoulli-react-progress > strong { color:var(--color-primary); font-size:12px; }.bernoulli-react-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px; }.bernoulli-react-summary span { padding:10px; border-radius:6px; background:var(--palette-f3f7fc); color:var(--text-muted); font-size:10px; }.bernoulli-react-summary b { display:block; margin-top:4px; color:var(--text-heading); font-size:18px; }.bernoulli-react-events { display:grid; gap:7px; margin-top:20px; padding-top:16px; border-top:1px solid var(--border-subtle); }.bernoulli-react-events p { display:flex; gap:8px; margin:0; color:var(--text-muted); font-size:11px; }.bernoulli-react-events b { color:var(--text-secondary); }.spin { animation:bernoulli-spin .8s linear infinite; }@keyframes bernoulli-spin { to { transform:rotate(360deg); } }
:root.dark .bernoulli-react-page { background:var(--color-dark-page); }.dark .bernoulli-react-heading span,.dark .bernoulli-react-rules dd,.dark .bernoulli-react-progress header span,.dark .bernoulli-react-events p { color:var(--color-dark-muted); }.dark .bernoulli-react-form,.dark .bernoulli-react-rules,.dark .bernoulli-react-progress { border-color:var(--color-dark-border); background:var(--color-dark-surface); }.dark .bernoulli-react-form h2,.dark .bernoulli-react-rules h2,.dark .bernoulli-react-progress h2,.dark .bernoulli-react-upload strong,.dark .bernoulli-react-summary b,.dark .bernoulli-react-events b { color:var(--color-dark-text); }.dark .bernoulli-react-days button { border-color:var(--color-dark-border-strong); background:var(--color-dark-raised); color:var(--color-dark-muted); }.dark .bernoulli-react-upload { border-color:var(--color-primary-dark); background:var(--color-dark-raised); }.dark .bernoulli-react-summary span { background:var(--color-dark-raised); color:var(--color-dark-muted); }.dark .bernoulli-react-events { border-color:var(--color-dark-border); }
@media (max-width:800px) { .bernoulli-react-page { padding:28px 20px; }.bernoulli-react-page > .app-toolbar { margin:-28px -20px 28px; }.bernoulli-react-layout { grid-template-columns:1fr; }.bernoulli-react-summary { grid-template-columns:1fr 1fr; }.bernoulli-react-steps { flex-wrap:wrap; } }
/* Hierarquia da tela Bernoulli. */
.bernoulli-react-page { padding-bottom:56px; }.bernoulli-react-heading { display:flex; align-items:flex-end; min-height:112px; padding:28px 30px; border:1px solid var(--palette-cddbeb); border-radius:8px; background:var(--surface-card); }.bernoulli-react-heading h1 { max-width:720px; color:var(--palette-1b365b); font-size:32px; line-height:1.15; }.bernoulli-react-heading > div::after { content:"Conversao KeepEdu"; display:inline-flex; margin-top:14px; padding:5px 8px; border-radius:5px; background:var(--palette-e8efff); color:var(--color-primary); font-size:10px; font-weight:800; letter-spacing:.08em; }
.bernoulli-react-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:20px 0; overflow:hidden; border:1px solid var(--border-default); border-radius:8px; background:var(--surface-card); }.bernoulli-react-steps span { position:relative; min-height:64px; padding:17px 20px; border-right:1px solid var(--palette-dfe8f2); color:var(--text-secondary); font-size:12px; }.bernoulli-react-steps span:last-child { border-right:0; }.bernoulli-react-steps b { flex:0 0 27px; width:27px; height:27px; background:var(--color-primary); color:var(--text-inverse); box-shadow:0 0 0 4px var(--palette-e6eeff); }
.bernoulli-react-layout { align-items:start; gap:20px; }.bernoulli-react-form,.bernoulli-react-rules { box-shadow:0 6px 18px var(--shadow-card); }.bernoulli-react-form { padding:28px; }.bernoulli-react-form header,.bernoulli-react-rules header { padding-bottom:17px; border-bottom:1px solid var(--border-subtle); }.bernoulli-react-form h2,.bernoulli-react-rules h2 { font-size:21px; }.bernoulli-react-days { gap:8px; margin:24px 0 18px; padding:5px; border:1px solid var(--border-default); border-radius:8px; background:var(--palette-f5f8fc); }.bernoulli-react-days button { flex:1; min-height:39px; border-color:transparent; background:transparent; }.bernoulli-react-days button:hover:not(.is-active) { background:var(--palette-e7eef8); color:var(--color-primary); }.bernoulli-react-days button.is-active { box-shadow:0 2px 5px var(--shadow-brand); }.bernoulli-react-upload { min-height:132px; padding:22px; border-width:2px; background:var(--palette-f7faff); transition:border-color .15s ease,background .15s ease; }.bernoulli-react-upload:hover { border-color:var(--color-primary); background:var(--palette-edf4ff); }.bernoulli-react-upload > svg { width:32px; height:32px; padding:7px; border-radius:7px; background:var(--palette-dfeaff); }.bernoulli-react-upload strong { font-size:14px; }.bernoulli-react-upload small { max-width:450px; line-height:1.45; }.bernoulli-react-submit { width:100%; min-height:45px; margin-top:20px; background:var(--color-primary); box-shadow:0 4px 10px var(--shadow-brand); }.bernoulli-react-submit:hover:not(:disabled) { background:var(--palette-2749b8); }
.bernoulli-react-rules { padding:0; overflow:hidden; }.bernoulli-react-rules header { padding:24px 24px 17px; background:var(--palette-f8fbff); }.bernoulli-react-rules dl { gap:0; margin:0; }.bernoulli-react-rules dl > div { position:relative; padding:14px 20px 14px 47px; border-bottom:1px solid var(--palette-e5edf5); }.bernoulli-react-rules dl > div:last-child { border-bottom:0; }.bernoulli-react-rules dl > div::before { position:absolute; top:17px; left:20px; width:17px; height:17px; content:""; border-radius:50%; background:var(--palette-dce8ff); }.bernoulli-react-rules dt { color:var(--color-primary); }.bernoulli-react-rules dd { font-size:11px; }
.bernoulli-react-progress { position:relative; overflow:hidden; padding:28px; box-shadow:0 6px 18px var(--shadow-card); }.bernoulli-react-progress > header { align-items:flex-start; padding-bottom:16px; border-bottom:1px solid var(--border-subtle); }.bernoulli-react-progress > header > svg { width:34px; height:34px; padding:7px; border-radius:50%; background:var(--palette-e5edff); }.bernoulli-react-progress.concluido > header > svg { background:var(--palette-e5f7ee); }.bernoulli-react-progress.erro > header > svg { background:var(--surface-danger); }.bernoulli-react-bar { height:10px; margin-top:23px; }.bernoulli-react-progress > strong { display:block; margin-top:6px; text-align:right; }.bernoulli-react-summary { gap:12px; }.bernoulli-react-summary span { padding:13px; border:1px solid var(--palette-e0e9f3); background:var(--palette-f8fbff); }.bernoulli-react-summary span:nth-child(1) { border-top:3px solid var(--color-primary); }.bernoulli-react-summary span:nth-child(2) { border-top:3px solid var(--color-success); }.bernoulli-react-summary span:nth-child(3) { border-top:3px solid var(--palette-d77820); }.bernoulli-react-summary span:nth-child(4) { border-top:3px solid var(--palette-7b61c9); }.bernoulli-react-download { margin-top:20px; background:var(--color-success); border-color:var(--color-success); }.bernoulli-react-download:hover { background:var(--palette-0f6941); }.bernoulli-react-events { max-height:210px; overflow:auto; padding:16px; border:1px solid var(--border-subtle); border-radius:7px; background:var(--palette-f8fbff); }.bernoulli-react-events p { padding:7px 0; border-bottom:1px solid var(--palette-e5edf5); }.bernoulli-react-events p:last-child { border-bottom:0; }
:root.dark .bernoulli-react-heading { border-color:var(--color-dark-border); background:var(--color-dark-surface); }.dark .bernoulli-react-heading h1 { color:var(--color-dark-text); }.dark .bernoulli-react-heading > div::after { background:var(--color-dark-hover); color:var(--palette-9ec0ff); }.dark .bernoulli-react-steps { border-color:var(--color-dark-border); background:var(--color-dark-surface); }.dark .bernoulli-react-steps span { border-color:var(--color-dark-border); color:var(--palette-d5dfed); }.dark .bernoulli-react-steps b { box-shadow:0 0 0 4px var(--color-dark-hover); }.dark .bernoulli-react-form header,.dark .bernoulli-react-rules header,.dark .bernoulli-react-progress > header { border-color:var(--color-dark-border); }.dark .bernoulli-react-days { border-color:var(--color-dark-border); background:var(--color-dark-raised); }.dark .bernoulli-react-days button:hover:not(.is-active) { background:var(--color-dark-hover); }.dark .bernoulli-react-upload { background:var(--color-dark-raised); }.dark .bernoulli-react-upload:hover { background:var(--color-dark-hover); }.dark .bernoulli-react-upload > svg { background:var(--color-dark-hover); }.dark .bernoulli-react-rules header,.dark .bernoulli-react-summary span,.dark .bernoulli-react-events { background:var(--color-dark-raised); }.dark .bernoulli-react-rules dl > div,.dark .bernoulli-react-events,.dark .bernoulli-react-events p { border-color:var(--color-dark-border); }.dark .bernoulli-react-rules dl > div::before { background:var(--color-dark-hover); }.dark .bernoulli-react-summary span { border-color:var(--color-dark-border); }
@media (max-width:800px) { .bernoulli-react-heading { min-height:0; padding:22px; }.bernoulli-react-heading h1 { font-size:25px; }.bernoulli-react-steps { grid-template-columns:1fr; }.bernoulli-react-steps span { border-right:0; border-bottom:1px solid var(--palette-dfe8f2); }.bernoulli-react-steps span:last-child { border-bottom:0; }.bernoulli-react-form { padding:20px; }.bernoulli-react-progress { padding:20px; } }
:root .bernoulli-react-heading { min-height:0; padding:8px 0 0; border:0; background:transparent; }:root .bernoulli-react-heading > div::after { display:none; }
:root.dark .bernoulli-react-heading { border:0; background:transparent; }
@media (max-width:800px) { :root .bernoulli-react-heading { padding:4px 0 0; } }
/* Painel de processamento: exibido apenas com um lote na URL. */
.processamento-react-page { min-width:0; padding:44px; background:var(--surface-page); }.processamento-react-page > .app-toolbar { margin:-44px -44px 40px; }.processamento-react-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; }.processamento-react-heading p,.processamento-react-actions header p,.processamento-react-gallery header p { margin:0 0 6px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.12em; }.processamento-react-heading h1 { margin:0; color:var(--text-heading); font-size:30px; }.processamento-react-heading h1 small { color:var(--text-muted); font-size:15px; font-weight:700; }.processamento-react-heading span { display:block; margin-top:7px; color:var(--text-muted); font-size:13px; }.processamento-react-status { margin:0 !important; padding:6px 9px; border-radius:5px; background:var(--surface-success); color:var(--color-success) !important; font-size:11px !important; font-weight:800; }.processamento-react-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:27px 0 18px; }.processamento-react-stats article,.processamento-react-actions,.processamento-react-gallery { border:1px solid var(--border-default); border-radius:8px; background:var(--surface-card); }.processamento-react-stats article { display:grid; gap:5px; min-height:115px; padding:18px; border-top:3px solid var(--color-primary); }.processamento-react-stats article:nth-child(2) { border-top-color:var(--color-info); }.processamento-react-stats article:nth-child(3) { border-top-color:var(--color-success); }.processamento-react-stats span { color:var(--text-muted); font-size:11px; font-weight:700; }.processamento-react-stats strong { color:var(--text-heading); font-size:22px; }.processamento-react-stats small { color:var(--text-muted); font-size:11px; }.processamento-react-actions { padding:22px; }.processamento-react-actions h2,.processamento-react-gallery h2 { margin:0; color:var(--text-heading); font-size:19px; }.processamento-react-actions > div { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }.processamento-react-actions a,.processamento-react-actions button,.processamento-react-gallery nav button { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid var(--border-default); border-radius:7px; padding:10px 13px; background:var(--surface-card); color:var(--color-primary); font:inherit; font-size:12px; font-weight:700; cursor:pointer; }.processamento-react-actions .action-correction { border-color:var(--palette-f3c276); background:var(--palette-fff5e5); color:var(--palette-a85d00); }.processamento-react-actions .action-validation { border-color:var(--palette-9bd9b5); background:var(--surface-success); color:var(--color-success); }.processamento-react-actions button { border-color:var(--palette-9fc5ff); background:var(--palette-edf5ff); color:var(--palette-1b63be); }.processamento-react-actions .action-log { border-color:var(--color-primary); background:var(--color-primary); color:var(--text-inverse); }.processamento-react-gallery { margin-top:18px; padding:22px; }.processamento-react-gallery > header { display:flex; align-items:center; justify-content:space-between; gap:15px; padding-bottom:16px; border-bottom:1px solid var(--border-subtle); }.processamento-react-gallery > header > span { padding:5px 8px; border-radius:5px; background:var(--surface-primary); color:var(--color-primary); font-size:11px; font-weight:800; }.processamento-react-images { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:11px; margin-top:18px; }.processamento-react-images a { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px; min-height:66px; padding:10px; border:1px solid var(--border-default); border-radius:7px; background:var(--surface-subtle); color:var(--color-primary); }.processamento-react-images a:hover { border-color:var(--color-primary); }.processamento-react-images span { overflow:hidden; color:var(--text-secondary); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.processamento-react-gallery nav { display:flex; justify-content:center; align-items:center; gap:12px; margin-top:20px; color:var(--text-muted); font-size:12px; }.processamento-react-gallery nav button:disabled { opacity:.45; cursor:not-allowed; }.processamento-react-error { color:var(--color-danger); font-size:13px; }
.processamento-react-images { grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }.processamento-react-image-card { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--border-default); border-radius:7px; background:var(--surface-card); text-align:left; }.processamento-react-image-card:hover { border-color:var(--color-primary); }.processamento-react-image-preview { position:relative; display:block; width:100%; padding:0; border:0; background:transparent; cursor:pointer; }.processamento-react-image-card img { display:block; width:100%; aspect-ratio: .68 / 1; object-fit:contain; background:var(--surface-subtle); opacity:0; transition:opacity .16s ease,transform .16s ease; }.processamento-react-image-card.is-loaded img { opacity:1; }.processamento-react-image-card:hover img { transform:scale(1.01); }.processamento-react-image-spinner { position:absolute; top:45%; left:50%; z-index:1; width:28px; height:28px; margin:-14px; border:3px solid var(--border-strong); border-top-color:var(--color-primary); border-radius:50%; animation:processamento-react-spin .75s linear infinite; }.processamento-react-image-spinner.is-hidden { display:none; }.processamento-react-image-name { display:flex; align-items:center; gap:6px; min-width:0; padding:7px; color:var(--text-secondary); font-size:10px; font-weight:700; }.processamento-react-image-name svg { flex:0 0 auto; color:var(--color-primary); }.processamento-react-image-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.processamento-react-image-actions { display:grid; gap:6px; padding:0 7px 8px; }.processamento-react-image-actions button,.processamento-react-modal-actions button { display:inline-flex; align-items:center; justify-content:center; gap:5px; border:1px solid var(--border-input); border-radius:6px; padding:7px 8px; background:var(--surface-card); color:var(--color-primary); font:inherit; font-size:10px; font-weight:800; cursor:pointer; }.processamento-react-image-actions button.danger,.processamento-react-modal-actions button.danger { border-color:#d94b4b; background:#fff1f1; color:#b42323; }.processamento-react-image-actions button:disabled,.processamento-react-modal-actions button:disabled { opacity:.6; cursor:wait; }.processamento-react-modal-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.processamento-react-image-open { position:absolute; top:7px; right:7px; display:grid; place-items:center; width:26px; height:26px; border-radius:6px; background:var(--overlay-backdrop-strong); color:var(--text-inverse); opacity:0; transition:opacity .15s ease; }.processamento-react-image-card:hover .processamento-react-image-open,.processamento-react-image-card:focus-visible .processamento-react-image-open { opacity:1; }.processamento-react-image-modal { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:24px; background:var(--overlay-backdrop-strong); }.processamento-react-image-modal > section { display:grid; grid-template-rows:auto minmax(0,1fr) auto; width:min(900px,100%); max-height:calc(100vh - 48px); overflow:hidden; border-radius:8px; background:var(--surface-card); box-shadow:0 22px 58px var(--shadow-overlay); }.processamento-react-image-modal header,.processamento-react-image-modal footer { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 16px; border-bottom:1px solid var(--border-subtle); }.processamento-react-image-modal h2 { margin:0; color:var(--text-heading); font-size:15px; }.processamento-react-image-modal header button,.processamento-react-image-modal footer button { display:grid; place-items:center; border:1px solid var(--border-default); border-radius:6px; padding:7px 10px; background:var(--surface-card); color:var(--text-secondary); font:inherit; font-size:12px; font-weight:700; cursor:pointer; }.processamento-react-image-modal footer { border-top:1px solid var(--border-subtle); border-bottom:0; color:var(--text-muted); font-size:12px; }.processamento-react-image-stage { min-height:0; overflow:auto; padding:14px; background:var(--surface-subtle); text-align:center; }.processamento-react-image-stage img { display:block; max-width:100%; max-height:calc(100vh - 180px); margin:0 auto; box-shadow:0 2px 10px var(--shadow-card); }@keyframes processamento-react-spin { to { transform:rotate(360deg); } }
.processamento-react-identity { display:grid; grid-template-columns:minmax(250px, .9fr) minmax(0, 1.1fr); gap:28px; margin-top:24px; padding:36px 26px 20px; border:1px solid var(--border-default); border-radius:8px; background:var(--surface-card); }.processamento-react-identity-main { display:flex; flex-direction:column; justify-content:center; padding:0 26px 16px 0; border-right:1px solid var(--border-subtle); }.processamento-react-identity-main > span,.processamento-react-identity-details dt { color:var(--text-muted); font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.processamento-react-identity-main strong { margin:12px 0 4px; color:var(--text-heading); font-size:45px; line-height:1; }.processamento-react-identity-main h2 { margin:0; color:var(--text-secondary); font-size:21px; }.processamento-react-identity-details { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px 28px; margin:0; }.processamento-react-identity-details div { min-width:0; }.processamento-react-identity-details dt { margin-bottom:7px; }.processamento-react-identity-details dd { margin:0; color:var(--text-secondary); font-size:13px; line-height:1.45; overflow-wrap:anywhere; }.processamento-react-identity-details .processamento-react-identity-period { grid-column:1 / -1; }
.processamento-react-identity-main-period { margin-top:22px; }.processamento-react-identity-main-period span { color:var(--text-muted); font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.processamento-react-identity-main-period p { margin:6px 0 0; color:var(--text-secondary); font-size:13px; line-height:1.45; }
:root.dark .processamento-react-page { background:var(--color-dark-page); }.dark .processamento-react-stats article,.dark .processamento-react-actions,.dark .processamento-react-gallery { border-color:var(--color-dark-border); background:var(--color-dark-surface); }.dark .processamento-react-stats strong,.dark .processamento-react-actions h2,.dark .processamento-react-gallery h2 { color:var(--color-dark-text); }.dark .processamento-react-stats span,.dark .processamento-react-stats small,.dark .processamento-react-gallery nav { color:var(--color-dark-muted); }.dark .processamento-react-actions a,.dark .processamento-react-actions button,.dark .processamento-react-gallery nav button { border-color:var(--color-dark-border-strong); background:var(--color-dark-raised); color:var(--color-dark-primary-text); }.dark .processamento-react-actions .action-correction { border-color:var(--palette-8f681f); background:var(--palette-38280c); color:var(--palette-f5bd58); }.dark .processamento-react-actions .action-validation { border-color:var(--palette-317752); background:var(--palette-123b28); color:var(--palette-6ee3a2); }.dark .processamento-react-actions .action-log { border-color:var(--color-primary-dark); background:var(--color-primary-dark); color:var(--text-inverse); }.dark .processamento-react-gallery > header { border-color:var(--color-dark-border); }.dark .processamento-react-images a { border-color:var(--color-dark-border); background:var(--color-dark-raised); }.dark .processamento-react-images span { color:var(--color-dark-muted); }
:root.dark .processamento-react-image-card { border-color:var(--color-dark-border); background:var(--color-dark-raised); }:root.dark .processamento-react-image-card:hover { border-color:var(--color-dark-primary-text); }:root.dark .processamento-react-image-spinner { border-color:var(--color-dark-border-strong); border-top-color:var(--color-dark-primary-text); }:root.dark .processamento-react-image-modal > section { background:var(--color-dark-surface); }:root.dark .processamento-react-image-modal header,:root.dark .processamento-react-image-modal footer { border-color:var(--color-dark-border); }:root.dark .processamento-react-image-modal h2 { color:var(--color-dark-text); }:root.dark .processamento-react-image-modal header button,:root.dark .processamento-react-image-modal footer button { border-color:var(--color-dark-border-strong); background:var(--color-dark-raised); color:var(--color-dark-text); }:root.dark .processamento-react-image-modal footer { color:var(--color-dark-muted); }:root.dark .processamento-react-image-stage { background:var(--color-dark-raised); }:root.dark .processamento-react-image-actions button,:root.dark .processamento-react-modal-actions button { border-color:var(--color-dark-border-strong); background:var(--color-dark-raised); color:var(--color-dark-primary-text); }:root.dark .processamento-react-image-actions button.danger,:root.dark .processamento-react-modal-actions button.danger { border-color:#8c2c2c; background:#351515; color:#ffb4b4; }
:root.dark .processamento-react-identity { border-color:var(--color-dark-border); background:var(--color-dark-surface); }:root.dark .processamento-react-identity-main { border-color:var(--color-dark-border); }:root.dark .processamento-react-identity-main > span,:root.dark .processamento-react-identity-details dt { color:var(--color-dark-muted); }:root.dark .processamento-react-identity-main strong { color:var(--color-dark-text); }:root.dark .processamento-react-identity-main h2,:root.dark .processamento-react-identity-details dd { color:var(--color-dark-primary-text); }
:root.dark .processamento-react-identity-main-period span { color:var(--color-dark-muted); }:root.dark .processamento-react-identity-main-period p { color:var(--color-dark-primary-text); }
@media (max-width:800px) { .processamento-react-page { padding:28px 20px; }.processamento-react-page > .app-toolbar { margin:-28px -20px 28px; }.processamento-react-heading { align-items:start; }.processamento-react-stats { grid-template-columns:1fr; }.processamento-react-actions > div { display:grid; grid-template-columns:1fr 1fr; }.processamento-react-actions a,.processamento-react-actions button { width:100%; }.processamento-react-images { grid-template-columns:1fr 1fr; } }
@media (max-width:1180px) { .processamento-react-images { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:620px) { .processamento-react-images { grid-template-columns:1fr 1fr; gap:8px; }.processamento-react-image-modal { padding:12px; }.processamento-react-image-modal > section { max-height:calc(100vh - 24px); }.processamento-react-image-stage { padding:8px; }.processamento-react-image-stage img { max-height:calc(100vh - 140px); } }
@media (max-width:900px) { .processamento-react-identity { grid-template-columns:1fr; gap:20px; padding:24px 20px; }.processamento-react-identity-main { padding:0 0 20px; border-right:0; border-bottom:1px solid var(--border-subtle); }.processamento-react-identity-main strong { font-size:36px; }.processamento-react-identity-details { grid-template-columns:1fr 1fr; gap:18px; }.processamento-react-identity-details .processamento-react-identity-period { grid-column:1 / -1; }:root.dark .processamento-react-identity-main { border-color:var(--color-dark-border); } }
:root.dark .bernoulli-react-summary span { background:var(--color-dark-raised); color:var(--color-dark-muted); }:root.dark .bernoulli-react-summary span b { color:var(--color-dark-text); }
:root.dark .bernoulli-react-summary span:nth-child(1) { border-color:var(--color-dark-border); border-top-color:var(--palette-5c91f2); }:root.dark .bernoulli-react-summary span:nth-child(2) { border-color:var(--color-dark-border); border-top-color:var(--palette-50bf83); }:root.dark .bernoulli-react-summary span:nth-child(3) { border-color:var(--color-dark-border); border-top-color:var(--palette-e4a742); }:root.dark .bernoulli-react-summary span:nth-child(4) { border-color:var(--color-dark-border); border-top-color:var(--palette-a887ee); }
.historico-react-process-actions .action-open { border-color:var(--palette-9fc5ff); background:var(--palette-edf5ff); color:var(--palette-1b63be); }.historico-react-process-actions .action-correction { border-color:var(--palette-f3c276); background:var(--palette-fff5e5); color:var(--palette-a85d00); }.historico-react-process-actions .action-validation { border-color:var(--palette-9bd9b5); background:var(--surface-success); color:var(--palette-17784a); }.historico-react-process-actions .action-delete { border-color:var(--palette-ef9a9a); background:var(--surface-danger); color:var(--palette-bd2626); }.historico-react-process-actions .action-delete:hover { border-color:var(--palette-c93535); background:var(--palette-fce0e0); color:var(--palette-981b1b); }
:root.dark .historico-react-process-actions .action-open { border-color:var(--palette-356fbd); background:var(--palette-142d50); color:var(--palette-8bbcff); }:root.dark .historico-react-process-actions .action-correction { border-color:var(--palette-8f681f); background:var(--palette-38280c); color:var(--palette-f5bd58); }:root.dark .historico-react-process-actions .action-validation { border-color:var(--palette-317752); background:var(--palette-123b28); color:var(--palette-6ee3a2); }:root.dark .historico-react-process-actions .action-delete { border-color:var(--palette-a83a48); background:var(--palette-4a1520); color:var(--palette-ff9ba5); }:root.dark .historico-react-process-actions .action-delete:hover { border-color:var(--palette-e15b69); background:var(--palette-651c2a); color:var(--palette-ffc0c6); }
.historico-react-stats > div { padding:8px 7px; border-radius:6px; }.historico-react-stats > div.images { background:var(--palette-edf5ff); color:var(--palette-1b63be); }.historico-react-stats > div.corrected { background:var(--surface-success); color:var(--palette-17784a); }.historico-react-stats > div.errors { background:var(--surface-danger); color:var(--palette-bd2626); }.historico-react-stats > div dt { color:currentColor; font-weight:700; }.historico-react-stats > div dd { color:currentColor; font-size:19px; }.historico-react-stats > div dd.ok,.historico-react-stats > div dd.warning { color:currentColor; }
:root.dark .historico-react-stats > div.images { background:var(--palette-142d50); color:var(--palette-8bbcff); }:root.dark .historico-react-stats > div.corrected { background:var(--palette-123b28); color:var(--palette-6ee3a2); }:root.dark .historico-react-stats > div.errors { background:var(--palette-4a1520); color:var(--palette-ff9ba5); }
@media (max-width:620px) { .historico-react-pagination { gap:5px; }.historico-react-pagination > button:not(:first-child):not(:last-child) { padding:9px; font-size:0; }.historico-react-pagination > button svg { width:17px; height:17px; }.historico-react-page-list button { min-width:32px; padding:8px; } }
/* Correcao React */
.correcao-react-page { min-width:0; padding:44px; background:var(--surface-page); }.correcao-react-page > .app-toolbar { margin:-44px -44px 34px; }.correcao-react-heading { margin-bottom:24px; }.correcao-react-heading p,.correcao-react-workspace aside header p,.correcao-react-viewer header p { margin:0 0 5px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.1em; }.correcao-react-heading h1 { margin:0; color:var(--text-heading); font-size:30px; }.correcao-react-heading h1 small { color:var(--text-muted); font-size:15px; }.correcao-react-heading span { display:block; margin-top:8px; color:var(--text-muted); font-size:13px; }.correcao-react-workspace { display:grid; grid-template-columns:290px minmax(0,1fr); min-height:calc(100vh - 225px); border:1px solid var(--border-default); border-radius:8px; overflow:hidden; background:var(--surface-card); }.correcao-react-workspace aside { display:flex; min-height:0; flex-direction:column; border-right:1px solid var(--border-default); background:var(--surface-subtle); }.correcao-react-workspace aside header { padding:20px 18px 12px; }.correcao-react-workspace h2 { margin:0; color:var(--text-heading); font-size:18px; }.correcao-react-search { display:flex; align-items:center; gap:8px; margin:0 14px; padding:0 10px; border:1px solid var(--border-input); border-radius:7px; background:var(--surface-card); color:var(--text-muted); }.correcao-react-search input { min-width:0; width:100%; padding:10px 0; border:0; outline:0; background:transparent; color:var(--text-primary); }.correcao-react-filters { display:flex; gap:6px; padding:13px 14px; }.correcao-react-filters button { flex:1; border:1px solid var(--border-input); border-radius:6px; padding:7px 4px; background:var(--surface-card); color:var(--text-muted); font-size:10px; font-weight:700; cursor:pointer; }.correcao-react-filters button.active { border-color:var(--color-primary); background:var(--surface-primary); color:var(--color-primary); }.correcao-react-list { display:grid; gap:5px; min-height:0; overflow:auto; padding:0 10px 14px; }.correcao-react-list button { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px; min-width:0; padding:10px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--text-secondary); text-align:left; cursor:pointer; }.correcao-react-list button:hover,.correcao-react-list button.active { border-color:var(--border-input); background:var(--surface-card); }.correcao-react-list button.active { box-shadow:inset 3px 0 var(--color-primary); }.correcao-react-list button.has-error { color:var(--color-danger); }.correcao-react-list span { min-width:0; }.correcao-react-list b,.correcao-react-list small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.correcao-react-list b { font-size:11px; }.correcao-react-list small { margin-top:3px; color:var(--text-muted); font-size:10px; }.correcao-react-viewer { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; min-height:0; }.correcao-react-viewer > header { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:20px; border-bottom:1px solid var(--border-subtle); }.correcao-react-viewer header h2 { max-width:620px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.correcao-react-viewer header span { display:block; margin-top:5px; color:var(--text-muted); font-size:12px; }.correcao-react-actions { display:flex; flex-wrap:wrap; gap:8px; }.correcao-react-actions button,.correcao-react-viewer footer button { display:inline-flex; align-items:center; justify-content:center; gap:6px; border:1px solid var(--border-input); border-radius:7px; padding:9px 11px; background:var(--surface-card); color:var(--color-primary); font:inherit; font-size:11px; font-weight:700; cursor:pointer; }.correcao-react-actions .danger { border-color:var(--palette-ef9a9a); background:var(--surface-danger); color:var(--color-danger); }.correcao-react-actions button:disabled,.correcao-react-viewer footer button:disabled { opacity:.45; cursor:not-allowed; }.correcao-react-alert { display:flex; align-items:center; gap:7px; margin:0; padding:10px 20px; background:var(--surface-danger); color:var(--color-danger); font-size:12px; }.correcao-react-image-stage { display:grid; min-height:0; overflow:auto; place-items:center; padding:22px; background:var(--surface-subtle); }.correcao-react-image-stage img { display:block; max-width:100%; max-height:calc(100vh - 310px); box-shadow:0 4px 16px var(--shadow-card); }.correcao-react-image-stage p { color:var(--text-muted); }.correcao-react-viewer footer { display:flex; align-items:center; justify-content:center; gap:14px; padding:12px; border-top:1px solid var(--border-subtle); color:var(--text-muted); font-size:12px; }.correcao-react-error { color:var(--color-danger); font-size:13px; }
:root.dark .correcao-react-page { background:var(--color-dark-page); }:root.dark .correcao-react-workspace { border-color:var(--color-dark-border); background:var(--color-dark-surface); }:root.dark .correcao-react-workspace aside { border-color:var(--color-dark-border); background:var(--color-dark-raised); }:root.dark .correcao-react-workspace h2,:root.dark .correcao-react-heading h1 { color:var(--color-dark-text); }:root.dark .correcao-react-heading h1 small,:root.dark .correcao-react-heading span,:root.dark .correcao-react-viewer header span,:root.dark .correcao-react-list small,:root.dark .correcao-react-viewer footer { color:var(--color-dark-muted); }:root.dark .correcao-react-search,:root.dark .correcao-react-filters button,:root.dark .correcao-react-list button:hover,:root.dark .correcao-react-list button.active,:root.dark .correcao-react-actions button,:root.dark .correcao-react-viewer footer button { border-color:var(--color-dark-border-strong); background:var(--color-dark-surface); }:root.dark .correcao-react-search input,:root.dark .correcao-react-list button { color:var(--color-dark-text); }:root.dark .correcao-react-viewer > header,:root.dark .correcao-react-viewer footer { border-color:var(--color-dark-border); }:root.dark .correcao-react-image-stage { background:var(--color-dark-raised); }
@media (max-width:900px) { .correcao-react-page { padding:28px 20px; }.correcao-react-page > .app-toolbar { margin:-28px -20px 28px; }.correcao-react-workspace { grid-template-columns:1fr; }.correcao-react-workspace aside { max-height:330px; border-right:0; border-bottom:1px solid var(--border-default); }.correcao-react-image-stage img { max-height:70vh; } }
.correcao-react-legacy-host { position:fixed; inset:0; background:var(--surface-page); }.correcao-react-legacy-host iframe { display:block; width:100%; height:100%; border:0; }.correcao-react-legacy-loading { position:fixed; top:50%; left:50%; z-index:1; transform:translate(-50%,-50%); color:var(--text-muted); font-size:14px; }
.correcao-react-actions select { min-height:34px; max-width:130px; border:1px solid var(--border-input); border-radius:6px; background:var(--surface-card); color:var(--text-secondary); font:inherit; font-size:11px; }.correcao-react-canvas { position:relative; transform-origin:center; cursor:crosshair; }.correcao-react-canvas img { pointer-events:none; }.correcao-react-canvas i,.correcao-react-canvas b { position:absolute; z-index:2; transform:translate(-50%,-50%); }.correcao-react-canvas i { width:14px; height:14px; border:2px solid var(--text-inverse); border-radius:50%; }.correcao-react-canvas i.verde { background:var(--color-success); }.correcao-react-canvas i.vermelho { background:var(--color-danger); }.correcao-react-canvas b { padding:3px 5px; background:var(--color-primary); color:var(--text-inverse); font-size:8px; }
.correcao-react-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; padding:13px 14px 0; }.correcao-react-summary span { display:grid; gap:3px; padding:7px 5px; border-radius:6px; background:var(--surface-card); color:var(--text-muted); font-size:9px; text-align:center; }.correcao-react-summary b { color:var(--text-heading); font-size:16px; }.correcao-react-status { width:8px; height:8px; border-radius:50%; background:var(--color-success); }.correcao-react-status.erro { background:var(--color-danger); }.correcao-react-status.bloqueado { background:var(--color-warning); }.correcao-react-empty { padding:14px; color:var(--text-muted); font-size:12px; text-align:center; }.correcao-react-pagination { display:flex; align-items:center; justify-content:center; gap:10px; padding:10px; border-top:1px solid var(--border-subtle); color:var(--text-muted); font-size:11px; }.correcao-react-pagination button { display:grid; place-items:center; border:1px solid var(--border-input); border-radius:5px; padding:5px; background:var(--surface-card); color:var(--text-secondary); cursor:pointer; }.correcao-react-blocked,.correcao-react-reading-errors { margin-top:10px; padding:8px 10px; border-radius:6px; font-size:11px; line-height:1.4; }.correcao-react-blocked { background:var(--surface-danger); color:var(--color-danger); }.correcao-react-reading-errors { background:var(--surface-warning); color:var(--color-warning); }.correcao-react-corners,.correcao-react-viewer-tools { display:flex; flex-wrap:wrap; gap:7px; padding:10px 20px; border-bottom:1px solid var(--border-subtle); background:var(--surface-subtle); }.correcao-react-corners button,.correcao-react-viewer-tools button { display:inline-flex; align-items:center; gap:5px; border:1px solid var(--border-input); border-radius:6px; padding:7px 9px; background:var(--surface-card); color:var(--text-secondary); font:inherit; font-size:11px; font-weight:700; cursor:pointer; }.correcao-react-corners button.active { border-color:var(--color-primary); background:var(--surface-primary); color:var(--color-primary); }.correcao-react-corners .warm { color:var(--color-warning); }.correcao-react-viewer-tools .danger,.correcao-react-modal .danger { border-color:var(--color-danger); background:var(--surface-danger); color:var(--color-danger); }.correcao-react-viewer-tools button:disabled { opacity:.45; cursor:not-allowed; }.correcao-react-canvas { display:inline-block; line-height:0; }.correcao-react-canvas img { display:block; width:100%; height:auto; max-height:none; cursor:crosshair; pointer-events:auto; }.correcao-react-canvas i { position:absolute; z-index:2; transform:translate(-50%,-50%); pointer-events:none; }.correcao-react-modal { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:20px; background:var(--overlay-backdrop-strong); }.correcao-react-modal section { position:relative; width:min(430px,100%); padding:24px; border-radius:9px; background:var(--surface-card); box-shadow:0 20px 50px var(--shadow-overlay); }.correcao-react-modal h2 { margin:0 0 10px; color:var(--text-heading); font-size:18px; }.correcao-react-modal p { color:var(--text-secondary); font-size:13px; line-height:1.5; }.correcao-react-modal .close { position:absolute; top:10px; right:10px; border:0; background:transparent; color:var(--text-muted); cursor:pointer; }.correcao-react-modal footer { justify-content:flex-end; padding:14px 0 0; border:0; }.correcao-react-modal footer button { border:1px solid var(--border-input); border-radius:6px; padding:8px 12px; background:var(--surface-card); color:var(--text-secondary); font:inherit; font-weight:700; cursor:pointer; }.correcao-react-modal .primary { border-color:var(--color-primary); background:var(--color-primary); color:var(--text-inverse); }.correcao-react-progress { overflow:hidden; height:8px; margin:12px 0; border-radius:99px; background:var(--border-subtle); }.correcao-react-progress i { display:block; height:100%; background:var(--color-primary); transition:width .25s ease; }
.correcao-react-canvas i.omr { width:1.5%; height:auto; aspect-ratio:1; box-sizing:border-box; border:2px solid var(--color-success); background:color-mix(in srgb,var(--color-success) 32%,transparent); box-shadow:0 0 0 2px rgba(255,255,255,.96),0 0 5px color-mix(in srgb,var(--color-success) 72%,transparent),0 1px 3px rgba(0,0,0,.55); }
.correcao-react-image-loading { display:flex; align-items:center; gap:8px; margin:auto; color:var(--text-muted); font-size:12px; }.correcao-react-image-loading svg { animation:correcao-image-spin .8s linear infinite; }@keyframes correcao-image-spin { to { transform:rotate(360deg); } }
.correcao-react-marking-help { display:grid; grid-template-columns:1fr; gap:8px; width:100%; margin:0; padding:12px 14px; border:1px solid var(--border-default); border-radius:8px; background:var(--surface-subtle); color:var(--text-muted); font-size:10px; line-height:1.35; }.correcao-react-marking-help span { display:flex; align-items:center; gap:9px; margin:0; white-space:nowrap; }.correcao-react-marking-help i { display:inline-block; flex:0 0 9px; width:9px; height:9px; border:2px solid var(--text-inverse); border-radius:50%; box-shadow:0 0 0 1px var(--border-input); }.correcao-react-marking-help .verde i { background:var(--color-success); }.correcao-react-marking-help .vermelho i { background:var(--color-danger); }.correcao-react-marking-help small { display:block; padding-top:9px; border-top:1px solid var(--border-default); font:inherit; }
@media (max-width:1500px) { .correcao-react-page { padding:28px; }.correcao-react-page > .app-toolbar { margin:-28px -28px 28px; }.correcao-react-workspace { grid-template-columns:230px minmax(0,1fr); }.correcao-react-viewer > header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px 14px; padding:12px 16px; }.correcao-react-viewer header h2 { max-width:100%; }.correcao-react-marking-help { grid-column:1 / -1; width:auto; grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px 12px; }.correcao-react-marking-help small { grid-column:1 / -1; padding-top:7px; }.correcao-react-actions { justify-content:flex-end; }.correcao-react-viewer-tools { padding-inline:16px; }.correcao-react-image-stage { padding-inline:16px; } }
.correcao-react-toast { position:fixed; right:24px; bottom:24px; z-index:1100; display:inline-flex; align-items:center; gap:9px; min-width:210px; padding:12px 16px; border:1px solid #8fd3ae; border-radius:8px; background:#eafaf1; color:#157244; box-shadow:0 12px 30px rgba(15,45,28,.2); font-size:13px; font-weight:800; }.correcao-react-toast.salvando { border-color:#9eb6d7; background:#f4f8ff; color:#31537e; }.correcao-react-toast.salvando svg { animation:correcao-toast-spin .8s linear infinite; }.correcao-react-toast.sucesso svg { color:#16a05a; }@keyframes correcao-toast-spin { to { transform:rotate(360deg); } }
.correcao-react-identity { margin:0 0 24px; }
.correcao-react-workspace { grid-template-columns:240px minmax(0,1fr); gap:12px; border:0; overflow:visible; background:transparent; }.correcao-react-workspace aside { border:1px solid var(--border-default); border-radius:12px; background:var(--surface-card); overflow:hidden; }.correcao-react-workspace aside header { padding:16px 14px 10px; }.correcao-react-workspace aside header h2 { font-size:14px; }.correcao-react-total { display:inline-flex; margin-top:12px; padding:6px 12px; border:1px solid var(--border-input); border-radius:99px; background:var(--surface-primary); color:var(--text-secondary); font-size:10px; font-weight:700; }.correcao-react-summary { grid-template-columns:1fr 1fr; padding:0 14px; gap:5px; }.correcao-react-summary span { min-height:48px; padding:7px; border:1px solid var(--border-input); border-radius:4px; background:var(--surface-subtle); text-align:left; }.correcao-react-summary b { font-size:18px; }.correcao-react-filters { padding:8px 14px; }.correcao-react-filters button { padding:6px 3px; border-radius:3px; }.correcao-react-list { align-content:start; gap:8px; padding:0 10px 12px; }.correcao-react-list-card { overflow:hidden; border:1px solid var(--border-default); border-radius:9px; background:var(--surface-card); }.correcao-react-list-card.active { border-left:4px solid var(--color-primary); box-shadow:0 1px 4px var(--shadow-card); }.correcao-react-list-select { display:flex; align-items:flex-start; justify-content:space-between; gap:6px; width:100%; padding:10px; border:0; background:transparent; color:var(--text-secondary); text-align:left; cursor:pointer; }.correcao-react-list-select span { min-width:0; }.correcao-react-list-select b { display:block; overflow:hidden; color:var(--text-heading); font-size:11px; line-height:1.3; text-overflow:ellipsis; }.correcao-react-list-select small { display:block; margin-top:5px; color:var(--text-muted); font-size:9px; line-height:1.25; }.correcao-react-list-pill { flex:0 0 auto; padding:4px 8px; border:1px solid var(--color-success); border-radius:99px; background:var(--surface-success); color:var(--color-success); font-size:9px; font-style:normal; font-weight:800; }.correcao-react-list-pill.erro { border-color:var(--color-danger); background:var(--surface-danger); color:var(--color-danger); }.correcao-react-list-pill.bloqueado { border-color:var(--color-warning); background:var(--surface-warning); color:var(--color-warning); }.correcao-react-list-send { width:calc(100% - 16px); margin:0 8px 8px; border:0; border-radius:3px; padding:9px 6px; background:var(--color-success); color:var(--text-inverse); font:inherit; font-size:11px; font-weight:800; cursor:pointer; }.correcao-react-list-send:disabled { opacity:.55; cursor:not-allowed; }
.correcao-react-workspace { height:calc(100vh - 16px); min-height:560px; max-height:none; }.correcao-react-workspace aside { min-height:0; }.correcao-react-list { min-height:0; overflow-y:auto; scrollbar-gutter:stable; }.correcao-react-viewer { grid-template-rows:auto auto auto minmax(0,1fr) auto; height:100%; max-height:100%; overflow:hidden; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-card); }.correcao-react-viewer > header { align-items:center; padding:12px 20px; }.correcao-react-viewer header h2 { font-size:17px; line-height:1.2; }.correcao-react-viewer header span { margin-top:4px; font-size:11px; }.correcao-react-viewer-tools,.correcao-react-corners { flex:0 0 auto; }.correcao-react-viewer-tools { gap:6px; padding:8px 20px; }.correcao-react-corners { padding:8px 20px; }.correcao-react-image-stage { min-height:0; height:auto; overflow:auto; padding:12px 20px 22px; scrollbar-gutter:stable both-edges; }.correcao-react-list,.correcao-react-image-stage { scrollbar-width:thin; scrollbar-color:var(--border-input) transparent; }.correcao-react-list::-webkit-scrollbar,.correcao-react-image-stage::-webkit-scrollbar { width:10px; height:10px; }.correcao-react-list::-webkit-scrollbar-thumb,.correcao-react-image-stage::-webkit-scrollbar-thumb { border:3px solid transparent; border-radius:99px; background:var(--border-input); background-clip:padding-box; }
.correcao-react-list { flex:1 1 auto; grid-auto-rows:max-content; }.correcao-react-viewer-tools .success { border-color:var(--color-success); background:var(--color-success); color:var(--text-inverse); }.correcao-react-corner-point { position:absolute; z-index:4; display:grid; width:24px; height:24px; place-items:center; transform:translate(-50%,-50%); border:3px solid var(--text-inverse); border-radius:50%; background:var(--color-primary); box-shadow:0 0 0 2px var(--color-primary),0 2px 6px rgba(0,0,0,.45); color:var(--text-inverse); font-size:8px; font-weight:900; line-height:1; pointer-events:none; }.correcao-react-corner-point.active { width:30px; height:30px; background:var(--color-success); box-shadow:0 0 0 3px var(--color-success),0 2px 8px rgba(0,0,0,.5); }
.correcao-react-list-card.enviado-keepedu { border-color:#9fc5ff; background:#edf5ff; }.correcao-react-list-card.enviado-keepedu .correcao-react-list-select { background:#edf5ff; }.correcao-react-enviado-label { margin:0 8px 8px; padding:8px; border:1px solid #9fc5ff; border-radius:4px; background:#dcecff; color:#1b63be; font-size:10px; font-weight:800; text-align:center; }
.correcao-react-list-card.active { border:2px solid #1677ff; border-left-width:5px; background:#edf5ff; box-shadow:0 3px 10px rgba(22,119,255,.18); }.correcao-react-list-card.active .correcao-react-list-select { background:#edf5ff; }.correcao-react-selected-label { display:block; margin:0 0 5px; color:#1677ff; font-size:9px; font-style:normal; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
:root.dark .correcao-react-list-card.active { border-color:#4f9cff; background:#18385f; box-shadow:0 3px 10px rgba(0,0,0,.35); }:root.dark .correcao-react-list-card.active .correcao-react-list-select { background:#18385f; }:root.dark .correcao-react-list-card.active .correcao-react-list-select b { color:#fff; }:root.dark .correcao-react-list-card.active .correcao-react-list-select small { color:#c5d8ef; }:root.dark .correcao-react-selected-label { color:#75b5ff; }
:root.dark .correcao-react-list-card.enviado-keepedu { border-color:#3d75b8; background:#173454; }:root.dark .correcao-react-list-card.enviado-keepedu .correcao-react-list-select { background:#173454; }:root.dark .correcao-react-list-card.enviado-keepedu .correcao-react-list-select b { color:#fff; }:root.dark .correcao-react-list-card.enviado-keepedu .correcao-react-list-select small { color:#bfd4ed; }:root.dark .correcao-react-list-card.enviado-keepedu .correcao-react-enviado-label { border-color:#3d75b8; background:#214a78; color:#dbeaff; }

/* Select pesquisável: lista portalada para não ser cortada por modais ou painéis. */
.app-select { position:relative; min-width:0; width:100%; font:inherit; }
.app-select-trigger { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-width:0; min-height:40px; padding:0 10px; border:1px solid var(--border-input); border-radius:7px; background:var(--surface-input); color:var(--text-primary); font:inherit; text-align:left; cursor:pointer; }
.app-select-trigger > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-select-trigger > svg { flex:0 0 auto; color:var(--text-muted); transition:transform .16s ease; }
.app-select-trigger > svg.open { transform:rotate(180deg); }
.app-select-trigger:focus-visible { outline:2px solid var(--color-primary); outline-offset:2px; }
.app-select-trigger:disabled { opacity:.6; cursor:not-allowed; }
.app-select-panel { z-index:110; overflow:hidden; border:1px solid var(--border-input); border-radius:9px; background:var(--surface-card); box-shadow:0 12px 28px var(--shadow-card); }
.app-select-panel ul { max-height:256px; margin:0; padding:6px; overflow:auto; overscroll-behavior:contain; list-style:none; }
.app-select-panel li button { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; border:0; border-radius:6px; padding:9px 10px; background:transparent; color:var(--text-primary); font:inherit; font-size:13px; text-align:left; cursor:pointer; }
.app-select-panel li button:hover,.app-select-panel li button[aria-selected="true"] { background:var(--surface-primary); color:var(--color-primary); }
.app-select-panel li button > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.app-select-search { display:flex; align-items:center; gap:8px; padding:10px; border-bottom:1px solid var(--border-subtle); color:var(--text-muted); }
.app-select-search input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--text-primary); font:inherit; font-size:13px; }
.app-select-empty { padding:9px 10px; color:var(--text-muted); font-size:13px; }
.kanban-report-fields .app-select,.kanban-detail-modal form .app-select { width:100%; }
.correcao-react-actions .correcao-react-select { width:130px; flex:0 0 130px; }
.correcao-react-actions .correcao-react-select-zoom { width:150px; flex-basis:150px; }
.correcao-react-actions .app-select-trigger { min-height:34px; border-radius:6px; background:var(--surface-card); color:var(--text-secondary); font-size:11px; }
:root.dark .app-select-trigger,:root.dark .app-select-panel { border-color:var(--color-dark-border); background:var(--color-dark-raised); color:var(--color-dark-text); }
:root.dark .app-select-trigger > svg,:root.dark .app-select-search,:root.dark .app-select-empty { color:var(--color-dark-muted); }
:root.dark .app-select-panel li button,:root.dark .app-select-search input { color:var(--color-dark-text); }
:root.dark .app-select-search { border-color:var(--color-dark-border); }
:root.dark .app-select-panel li button:hover,:root.dark .app-select-panel li button[aria-selected="true"] { background:var(--color-dark-surface); color:#fff; }

/* Layout responsivo do Gestor: a partir de tablet a navegação vira drawer. */
.mobile-menu-button { display:none; }
@media (max-width:820px) {
  .app-shell { display:block; min-height:100dvh; }
  .sidebar { display:flex; width:min(310px,88vw); transform:translateX(-100%); z-index:80; padding-bottom:18px; }
  .sidebar.sidebar--aberta { transform:translateX(0); }
  .sidebar-toggle { display:none; }
  .sidebar-backdrop.visivel { position:fixed; inset:0; z-index:70; display:block; border:0; background:var(--overlay-backdrop-strong); }
  .content-shell { width:100%; margin-left:0 !important; }
  .page { padding:24px 20px; }
  .stats,.module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .operacional { grid-template-columns:1fr; }
  .header { position:sticky; z-index:20; min-height:64px; height:auto; padding:12px 16px; gap:12px; }
  .mobile-menu-button { display:grid; flex:0 0 auto; place-items:center; width:40px; height:40px; border:1px solid var(--border-input); border-radius:10px; background:var(--surface-card); color:var(--color-primary); cursor:pointer; }
  .mobile-menu-button:focus-visible { outline:2px solid var(--color-primary); outline-offset:2px; }
  .header-spacer { display:none; }
  .user { min-width:0; margin-left:auto; }
  .user > span:last-child { min-width:0; max-width:calc(100vw - 160px); overflow:hidden; }
  .user strong,.user small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  :root.dark .mobile-menu-button { border-color:var(--color-dark-border); background:var(--color-dark-raised); color:var(--color-dark-text); }
}
@media (max-width:560px) {
  .sidebar.sidebar--aberta { display:flex; }
  .header { padding:10px 12px; }
  .page { padding:20px 16px; }
  .stats,.module-grid { grid-template-columns:1fr; }
  .user > span:last-child { display:block; max-width:calc(100vw - 150px); }
  .user strong { font-size:13px; }
  .user small { font-size:11px; }
}

/* Bernoulli: o modelo selecionado acompanha as regras de saída. */
.bernoulli-react-modelo { display:inline-flex; align-items:center; gap:7px; margin-top:12px; padding:5px 8px 5px 5px; border:1px solid var(--palette-cbd9eb); border-radius:999px; background:var(--surface-primary); color:var(--color-primary); font-size:10px; font-weight:800; }
.bernoulli-react-modelo b { display:grid; place-items:center; width:21px; height:21px; border-radius:50%; background:var(--color-primary); color:var(--text-inverse); font-size:8px; letter-spacing:0; }
.bernoulli-react-modelo.modelo-redacao b { background:var(--palette-7b61c9); }
.bernoulli-react-rules dl > div[data-modelo]::before { display:grid; place-items:center; width:21px; height:21px; color:var(--color-primary); content:attr(data-modelo); font-size:8px; font-weight:900; letter-spacing:-.03em; }
.bernoulli-react-rules dl > div[data-modelo="R"]::before { color:var(--palette-7b61c9); }
:root.dark .bernoulli-react-modelo { border-color:var(--color-dark-border); background:var(--color-dark-hover); color:var(--palette-9ec0ff); }
:root.dark .bernoulli-react-rules dl > div[data-modelo]::before { color:var(--palette-9ec0ff); }

.bernoulli-react-days button.is-active.modelo-1 { border-color:#2f64da; background:#3157d5; color:#fff; box-shadow:0 3px 9px rgba(49,87,213,.35); }
.bernoulli-react-days button.is-active.modelo-2 { border-color:#11845b; background:#138a60; color:#fff; box-shadow:0 3px 9px rgba(19,138,96,.32); }
.bernoulli-react-days button.is-active.modelo-redacao { border-color:#7450bf; background:#7b61c9; color:#fff; box-shadow:0 3px 9px rgba(123,97,201,.34); }
:root.dark .bernoulli-react-days button.is-active.modelo-1 { border-color:#5c91f2; background:#3157d5; color:#fff; }
:root.dark .bernoulli-react-days button.is-active.modelo-2 { border-color:#50bf83; background:#138a60; color:#fff; }
:root.dark .bernoulli-react-days button.is-active.modelo-redacao { border-color:#b49aff; background:#7b61c9; color:#fff; }
.correcao-react-corner-guide { position:absolute; z-index:3; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }.correcao-react-corner-guide polygon { fill:color-mix(in srgb,var(--color-primary) 12%,transparent); stroke:var(--color-primary); stroke-width:10; vector-effect:non-scaling-stroke; stroke-linejoin:round; filter:drop-shadow(0 1px 2px rgba(0,0,0,.45)); }
.correcao-react-canvas.fit-window { display:grid; place-items:center; }.correcao-react-canvas.fit-window img { width:100%; height:100%; max-width:100%; max-height:100%; object-fit:contain; }
.correcao-react-list .correcao-react-list-send { border-color:#16b85e; background:#16b85e; color:#fff; }.correcao-react-list .correcao-react-list-send:hover:not(:disabled) { border-color:#10994d; background:#10994d; color:#fff; }
.correcao-react-viewer-tools button:nth-child(1) { border-color:#2364d2; background:#eaf2ff; color:#164da7; }.correcao-react-viewer-tools button:nth-child(2) { border-color:#16b85e; background:#16b85e; color:#fff; }.correcao-react-viewer-tools button:nth-child(3) { border-color:#d98a19; background:#fff3df; color:#9a5b00; }.correcao-react-viewer-tools button:nth-child(4) { border-color:#e2a21d; background:#fff7dc; color:#8a5b00; }.correcao-react-viewer-tools button:nth-child(5),.correcao-react-viewer-tools button:nth-child(6) { border-color:#9eb6d7; background:#f5f8fd; color:#31537e; }.correcao-react-viewer-tools button:nth-child(7),.correcao-react-viewer-tools button:nth-child(8) { border-color:#aab8ca; background:#fff; color:#38516f; }.correcao-react-corners .warm { border-color:#d98a19; background:#fff3df; color:#9a5b00; }
@media (max-width:900px) { .correcao-react-workspace { height:auto; max-height:none; }.correcao-react-workspace aside { max-height:420px; }.correcao-react-viewer { height:min(82vh,850px); }.correcao-react-image-stage { min-height:320px; } }
/* Validação React */
.validacao-react-page { padding-bottom:32px; }.validacao-react-feedback { margin:16px 24px 0; padding:11px 14px; border:1px solid #f2b4b4; border-radius:8px; background:#fff3f3; color:#a32d2d; font-size:13px; }.validacao-react-feedback.ok { border-color:#a9dfbf; background:#edfbf2; color:#167a42; }.validacao-react-actions { display:flex; align-items:center; justify-content:space-between; gap:25px; margin:18px 24px; padding:20px 22px; border:1px solid var(--border-default); border-radius:10px; background:var(--surface-card); }.validacao-react-actions p,.validacao-react-table header p,.validacao-react-modal header p { margin:0 0 4px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.08em; }.validacao-react-actions h2,.validacao-react-table h2,.validacao-react-modal h2 { margin:0; color:var(--text-heading); font-size:18px; }.validacao-react-actions span,.validacao-react-table header span { display:block; margin-top:5px; color:var(--text-muted); font-size:13px; }.validacao-react-actions nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.validacao-react-actions a,.validacao-react-actions button,.validacao-react-table footer button,.validacao-react-dialog footer button { display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:9px 12px; border:1px solid var(--border-input); border-radius:7px; background:var(--surface-card); color:var(--text-secondary); font:inherit; font-size:12px; font-weight:700; text-decoration:none; cursor:pointer; }.validacao-react-actions button.success,.validacao-react-dialog button.success { border-color:#16ad62; background:#18b967; color:#fff; }.validacao-react-actions button.info,.validacao-react-dialog button.info { border-color:#2587dc; background:#2d90df; color:#fff; }.validacao-react-actions button.warm,.validacao-react-dialog button.warm { border-color:#df9e0b; background:#e5a70d; color:#fff; }.validacao-react-actions button:disabled,.validacao-react-dialog button:disabled { opacity:.6; cursor:wait; }.validacao-react-actions a.disabled { opacity:.55; pointer-events:none; cursor:not-allowed; }
.validacao-react-table { margin:18px 24px; overflow:hidden; border:1px solid var(--border-default); border-radius:10px; background:var(--surface-card); }.validacao-react-table>header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:19px 22px; border-bottom:1px solid var(--border-subtle); }.validacao-react-table header label { display:flex; align-items:center; gap:8px; min-width:315px; padding:9px 11px; border:1px solid var(--border-input); border-radius:7px; color:var(--text-muted); }.validacao-react-table header input { width:100%; min-width:0; border:0; outline:0; background:transparent; color:var(--text-primary); font:inherit; }.validacao-react-table-scroll { overflow:auto; }.validacao-react-table table { width:100%; min-width:1260px; border-collapse:collapse; }.validacao-react-table th { padding:11px 10px; border-bottom:1px solid var(--border-subtle); background:var(--surface-subtle); text-align:left; white-space:nowrap; }.validacao-react-table th button { border:0; padding:0; background:transparent; color:var(--text-secondary); font:inherit; font-size:11px; font-weight:800; cursor:pointer; }.validacao-react-table td { max-width:195px; padding:11px 10px; overflow:hidden; border-bottom:1px solid var(--border-subtle); color:var(--text-secondary); font-size:12px; vertical-align:middle; white-space:nowrap; }.validacao-react-clip { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.validacao-react-table tr.pending { background:#fffaf0; }.validacao-react-table tr.validated { background:#f8fffb; }.validacao-react-row-actions { display:flex; flex-wrap:wrap; gap:6px; min-width:170px; }.validacao-react-preview,.validacao-react-fill,.validacao-react-edit,.validacao-react-undo,.validacao-react-send { display:inline-flex; align-items:center; gap:5px; padding:7px 9px; border:1px solid var(--border-input); border-radius:6px; background:var(--surface-card); color:var(--color-primary); font:inherit; font-size:11px; font-weight:700; cursor:pointer; }.validacao-react-fill,.validacao-react-send { border-color:#19a960; background:#18b967; color:#fff; }.validacao-react-send:disabled { opacity:.55; cursor:not-allowed; }.validacao-react-undo { border-color:#e6af4f; background:#fff8e9; color:#a76500; }.validacao-react-status,.validacao-react-sent,.validacao-react-enviado { display:inline-flex; width:max-content; padding:4px 7px; border-radius:999px; font-size:10px; font-weight:800; }.validacao-react-status.ok { background:#e4f8eb; color:#187a41; }.validacao-react-status.pending { background:#fff0d9; color:#9f6500; }.validacao-react-sent,.validacao-react-enviado { margin-left:4px; background:#e3f0ff; color:#2365ae; }.validacao-react-table>footer { display:flex; justify-content:flex-end; align-items:center; gap:12px; padding:13px 20px; color:var(--text-muted); font-size:12px; }
.validacao-react-modal { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:30px; background:rgba(12,31,56,.57); }.validacao-react-modal>section { width:min(1000px,96vw); max-height:92vh; display:flex; flex-direction:column; overflow:hidden; border-radius:11px; background:var(--surface-card); box-shadow:0 22px 80px rgba(0,0,0,.35); }.validacao-react-modal>section>header { display:flex; align-items:center; justify-content:space-between; padding:15px 19px; border-bottom:1px solid var(--border-subtle); }.validacao-react-modal header button { border:0; background:transparent; color:var(--text-muted); cursor:pointer; }.validacao-react-image-stage { min-height:300px; overflow:auto; padding:22px; background:var(--surface-subtle); text-align:center; }.validacao-react-image-stage img { max-width:100%; max-height:72vh; background:#fff; box-shadow:0 2px 8px #9aa9b6; }.validacao-react-dialog { width:min(490px,96vw)!important; }.validacao-react-dialog>p,.validacao-react-dialog>label,.validacao-react-dialog>input { margin:18px 20px 0; color:var(--text-secondary); font-size:13px; }.validacao-react-dialog label { display:grid; gap:6px; font-weight:700; }.validacao-react-dialog label input,.validacao-react-dialog>input { padding:10px; border:1px solid var(--border-input); border-radius:7px; background:var(--surface-card); color:var(--text-primary); font:inherit; }.validacao-react-dialog>input { box-sizing:border-box; width:calc(100% - 40px); }.validacao-react-aluno { display:flex; align-items:center; gap:7px; min-height:20px; margin:15px 20px; color:#178044; font-size:13px; font-weight:700; }.validacao-react-aluno.error { color:#bc3838; }.validacao-react-pendencias { max-height:220px; overflow:auto; margin:14px 20px 0; padding:10px; border:1px solid var(--border-subtle); border-radius:8px; background:var(--surface-subtle); }.validacao-react-pendencias p { margin:0 0 8px; display:grid; gap:3px; color:var(--text-secondary); font-size:12px; }.validacao-react-pendencias p:last-child { margin-bottom:0; }.validacao-react-pendencias strong { color:var(--text-heading); }.validacao-react-pendencias span,.validacao-react-pendencias small { color:var(--text-muted); }.validacao-react-dialog footer { display:flex; justify-content:flex-end; gap:8px; padding:15px 20px; border-top:1px solid var(--border-subtle); }
.validacao-react-name-loading { display:inline-flex; align-items:center; gap:6px; color:var(--text-muted); font-size:11px; font-weight:700; }.validacao-react-name-loading svg { color:var(--color-primary); animation:validacao-name-spin .8s linear infinite; }@keyframes validacao-name-spin { to { transform:rotate(360deg); } }
.validacao-react-zoom-controls { display:flex; align-items:center; gap:6px; }.validacao-react-zoom-controls button { display:grid; place-items:center; width:30px; height:30px; border:1px solid var(--border-input); border-radius:6px; background:var(--surface-card); color:var(--text-secondary); font-size:18px; cursor:pointer; }.validacao-react-zoom-controls span { min-width:38px; color:var(--text-muted); font-size:11px; font-weight:800; text-align:center; }.validacao-react-image-stage img { transition:transform .15s ease; }

/* Terminologia da integração: a ação é apresentada ao usuário como envio à avaliação. */
.validacao-react-table th:nth-child(8) button { font-size:0; }.validacao-react-table th:nth-child(8) button::after { content:"Avaliação"; font-size:11px; }.validacao-react-keepedu-chip { vertical-align:middle; line-height:1; }.validacao-react-keepedu-chip:first-child { font-size:0; }.validacao-react-keepedu-chip:first-child::after { content:"Avaliação " attr(data-status); font-size:10px; }.validacao-react-keepedu-chip:first-child.ok::after { content:"Avaliação enviada"; }.validacao-react-keepedu-chip:first-child.pending::after { content:"Avaliação pendente"; }.validacao-react-enviado { font-size:0; }.validacao-react-enviado::after { content:"Enviado à Avaliação"; font-size:10px; }.validacao-react-send { font-size:0; }.validacao-react-send svg { width:15px; height:15px; }.validacao-react-send::after { content:"Enviar à Avaliação"; font-size:11px; }
.validacao-react-progress-modal > section > header p { font-size:0; }.validacao-react-progress-modal > section > header p::after { content:"ENVIO PARA A AVALIAÇÃO"; font-size:11px; }
.validacao-react-table td.validacao-react-keepedu-cell { min-width:230px; max-width:260px; overflow:visible; white-space:normal; }.validacao-react-keepedu-chip { display:inline-flex; width:max-content; margin:2px 5px 2px 0; padding:4px 7px; border-radius:999px; font-size:10px; font-weight:800; }.validacao-react-keepedu-chip.ok { background:#e4f8eb; color:#187a41; }.validacao-react-keepedu-chip.pending { background:#fff0d9; color:#9f6500; }
.validacao-react-progress-modal>section { width:min(540px,96vw); }.validacao-react-job { display:grid; gap:10px; padding:22px; color:var(--text-secondary); }.validacao-react-job-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:#eef5ff; color:#2365ae; }.validacao-react-job.processando .validacao-react-job-icon svg { animation:validacao-name-spin .8s linear infinite; }.validacao-react-job.com-falha .validacao-react-job-icon svg,.validacao-react-job.erro .validacao-react-job-icon svg { animation:none; }.validacao-react-job.concluido .validacao-react-job-icon { background:#e4f8eb; color:#187a41; }.validacao-react-job.erro .validacao-react-job-icon,.validacao-react-job.com-falha .validacao-react-job-icon { background:#fff1f1; color:#bc3838; }.validacao-react-job strong { color:var(--text-heading); font-size:18px; }.validacao-react-job>span { color:var(--text-muted); font-size:12px; font-weight:800; }.validacao-react-progress { overflow:hidden; height:9px; border-radius:99px; background:var(--border-subtle); }.validacao-react-progress i { display:block; height:100%; border-radius:inherit; background:var(--color-primary); transition:width .25s ease; }.validacao-react-job.concluido .validacao-react-progress i { background:#18b967; }.validacao-react-job.erro .validacao-react-progress i,.validacao-react-job.com-falha .validacao-react-progress i { background:#bc3838; }.validacao-react-job p { margin:0; font-size:13px; line-height:1.45; }.validacao-react-job small,.validacao-react-job em { color:var(--text-muted); font-size:12px; }.validacao-react-job ul { display:grid; gap:7px; max-height:290px; margin:6px 0 0; padding:0 4px 0 0; overflow-y:auto; list-style:none; scrollbar-gutter:stable; }.validacao-react-job li { display:grid; gap:2px; padding:8px 10px; border:1px solid var(--border-subtle); border-radius:7px; background:var(--surface-subtle); }.validacao-react-job li.event-error { border-color:#efb8b8; background:#fff1f1; }.validacao-react-job li.event-error b,.validacao-react-job li.event-error span { color:#a72f2f; }.validacao-react-job li.event-success { border-color:#c6ead4; background:#f1fbf4; }.validacao-react-job li b { color:var(--text-heading); font-size:11px; }.validacao-react-job li span { color:var(--text-muted); font-size:11px; line-height:1.35; }
:root.dark .validacao-react-table tr.pending { background:#3b321f; }:root.dark .validacao-react-table tr.validated { background:#163c35; }:root.dark .validacao-react-table th { background:#1b3858; }:root.dark .validacao-react-image-stage { background:#0d2035; }
@media (max-width:850px) { .validacao-react-actions,.validacao-react-table>header { align-items:flex-start; flex-direction:column; }.validacao-react-actions nav { justify-content:flex-start; }.validacao-react-table header label { box-sizing:border-box; width:100%; min-width:0; } }
.validacao-react-page { padding:44px; background:var(--surface-page); }.validacao-react-page>.app-toolbar { margin:-44px -44px 34px; }.validacao-react-actions,.validacao-react-table { margin-left:0; margin-right:0; }.validacao-react-table tr.validated { background:transparent; }:root.dark .validacao-react-table tr.validated { background:transparent; }@media (max-width:900px) { .validacao-react-page { padding:28px 20px; }.validacao-react-page>.app-toolbar { margin:-28px -20px 28px; } }
/* Atalhos do painel: mesmo tratamento leve do Gestor V2. */
.module,.module-b,.module-c { border:1px solid var(--border-default); background:var(--surface-card); color:var(--text-heading); box-shadow:0 1px 3px var(--shadow-card); }.module::after { display:none; }.module>svg { right:24px; bottom:24px; width:62px; height:62px; color:var(--color-primary); stroke-width:1.8; opacity:1; }.module h3 { padding-right:82px; color:var(--text-heading); }.module-action { color:var(--color-primary); }.module:hover>svg,.module:focus-visible>svg { transform:translate3d(0,-4px,0); }.module:hover { box-shadow:0 8px 20px var(--shadow-card); }:root.dark .module,:root.dark .module-b,:root.dark .module-c { border-color:var(--color-dark-border); background:var(--color-dark-surface); color:var(--color-dark-text); }:root.dark .module h3 { color:var(--color-dark-text); }:root.dark .module>svg,:root.dark .module-action { color:var(--color-dark-primary-text); }
/* Painel: cards azuis; o espaço entre eles acompanha o fundo da página. */
.module,.module-b,.module-c { border:0; background:var(--palette-2458ab); color:var(--text-inverse); box-shadow:none; }.module::after { display:block; background:var(--palette-ffffff12); }.module>svg { right:24px; bottom:24px; width:62px; height:62px; color:var(--text-inverse); stroke-width:2.2; opacity:.98; }.module h3 { padding-right:82px; color:var(--text-inverse); }.module-action { color:var(--text-inverse); }.module:hover { box-shadow:0 14px 25px var(--palette-1724372b); }:root.dark .workspace { border-color:transparent; background:transparent; box-shadow:none; }:root.dark .module,:root.dark .module-b,:root.dark .module-c { border:0; background:var(--palette-2a47b0); color:var(--text-inverse); }:root.dark .module h3,:root.dark .module>svg,:root.dark .module-action { color:var(--text-inverse); }:root.dark .module::after { background:var(--palette-ffffff14); }
.module>svg { right:16px; bottom:14px; width:76px; height:76px; }
.module-action-label-short { display:none; }
@media (max-width:1200px) { .module-a .module-action-label-full { display:none; }.module-a .module-action-label-short { display:inline; } }
.kanban-react-loading,.kanban-detail-loading { display:flex; align-items:center; justify-content:center; gap:10px; color:var(--text-muted); font-size:13px; }.kanban-react-loading { min-height:360px; border:1px solid var(--border-default); border-radius:14px; background:var(--surface-subtle); }.kanban-detail-loading { min-height:68px; margin:0; border:1px dashed var(--border-input); border-radius:8px; background:var(--surface-subtle); }:root.dark .kanban-react-loading,:root.dark .kanban-detail-loading { border-color:var(--color-dark-border); background:var(--color-dark-raised); color:var(--color-dark-muted); }





.processamento-react-image-modal footer .processamento-react-modal-actions button { display:inline-flex; align-items:center; justify-content:center; gap:5px; }.processamento-react-image-modal footer .processamento-react-modal-actions button.danger { border-color:#d94b4b; background:#fff1f1; color:#b42323; }

.processamento-react-gallery-tools { display:flex; align-items:center; gap:8px; }.processamento-react-gallery-tools > span { padding:5px 8px; border-radius:5px; background:var(--surface-primary); color:var(--color-primary); font-size:11px; font-weight:800; }.processamento-react-gallery-tools button { display:inline-flex; align-items:center; gap:5px; border:1px solid #d94b4b; border-radius:6px; padding:6px 8px; background:#fff1f1; color:#b42323; font-size:11px; font-weight:800; cursor:pointer; }.processamento-react-image-card.is-selected { border-color:var(--color-primary); box-shadow:0 0 0 2px var(--surface-primary); }.processamento-react-image-select { position:absolute; z-index:3; top:7px; left:7px; display:grid; place-items:center; width:25px; height:25px; border-radius:6px; background:var(--surface-card); box-shadow:0 1px 4px var(--shadow-card); cursor:pointer; }.processamento-react-image-select input { width:15px; height:15px; accent-color:var(--color-primary); cursor:pointer; }

.processamento-react-confirm-modal { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:24px; background:rgba(7,18,34,.62); backdrop-filter:blur(2px); }.processamento-react-confirm-modal > section { width:min(430px,96vw); overflow:hidden; border:1px solid var(--border-default); border-radius:12px; background:var(--surface-card); box-shadow:0 22px 58px var(--shadow-overlay); }.processamento-react-confirm-modal header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:18px 20px 12px; border-bottom:1px solid var(--border-subtle); }.processamento-react-confirm-modal header p { margin:0 0 5px; color:var(--color-primary); font-size:11px; font-weight:800; letter-spacing:.1em; }.processamento-react-confirm-modal h2 { margin:0; color:var(--text-heading); font-size:19px; }.processamento-react-confirm-modal header button { border:0; background:transparent; color:var(--text-muted); cursor:pointer; }.processamento-react-confirm-modal > section > p { margin:18px 20px 8px; color:var(--text-secondary); font-size:13px; }.processamento-react-confirm-modal > section > strong { display:block; margin:0 20px 18px; color:var(--text-heading); font-size:12px; overflow-wrap:anywhere; }.processamento-react-confirm-modal footer { display:flex; justify-content:flex-end; gap:9px; padding:14px 20px; border-top:1px solid var(--border-subtle); }.processamento-react-confirm-modal footer button { border:1px solid var(--border-input); border-radius:7px; padding:9px 12px; background:var(--surface-card); color:var(--text-secondary); font:inherit; font-size:12px; font-weight:800; cursor:pointer; }.processamento-react-confirm-modal footer button.danger { border-color:#d94b4b; background:#b42323; color:#fff; }.processamento-react-confirm-modal footer button:disabled { opacity:.65; cursor:wait; }:root.dark .processamento-react-confirm-modal > section { border-color:var(--color-dark-border); background:var(--color-dark-surface); }:root.dark .processamento-react-confirm-modal header,:root.dark .processamento-react-confirm-modal footer { border-color:var(--color-dark-border); }:root.dark .processamento-react-confirm-modal h2,:root.dark .processamento-react-confirm-modal > section > strong { color:var(--color-dark-text); }:root.dark .processamento-react-confirm-modal > section > p { color:var(--color-dark-muted); }:root.dark .processamento-react-confirm-modal footer button { border-color:var(--color-dark-border-strong); background:var(--color-dark-raised); color:var(--color-dark-text); }:root.dark .processamento-react-confirm-modal footer button.danger { border-color:#8c2c2c; background:#7f1d1d; color:#fff; }


:root.dark .app-toolbar .avatar { background: #17366f; color: #f8fbff; border: 1px solid rgba(125, 166, 255, .42); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 4px 14px rgba(0,0,0,.28); text-shadow: 0 1px 2px rgba(0,0,0,.9); }

/* A miniatura e carregada por JavaScript. Preserve a area do cartao enquanto
   a requisicao estiver pendente, para o indicador nao deslocar a grade. */
.processamento-react-image-preview { aspect-ratio: .68 / 1; overflow: hidden; background: var(--surface-subtle); }
.processamento-react-image-card img { height: 100%; aspect-ratio: auto; }
.processamento-react-image-spinner { top: 50%; }

/* Confirmação de envio: deixa explícitos o conteúdo, destino e impacto. */
.validacao-react-send-dialog { width:min(520px,96vw)!important; }.validacao-react-send-dialog-content { display:flex; align-items:center; gap:13px; margin:20px 20px 14px; }.validacao-react-send-dialog-content>div:last-child { display:grid; gap:3px; min-width:0; }.validacao-react-send-dialog-content strong { color:var(--text-heading); font-size:15px; }.validacao-react-send-dialog-content span { color:var(--text-muted); font-size:12px; }.validacao-react-send-dialog-icon { display:grid; flex:0 0 auto; place-items:center; width:48px; height:48px; border-radius:14px; background:#e8f2ff; color:#2169bd; }.validacao-react-send-dialog-icon.vetores { background:#e6f8ed; color:#168149; }.validacao-react-send-dialog-alert { display:flex; align-items:flex-start; gap:10px; margin:0 20px; padding:12px; border:1px solid; border-radius:9px; }.validacao-react-send-dialog-alert p { margin:0; font-size:12px; line-height:1.45; }.validacao-react-send-dialog-alert.has-pending { border-color:#f0c579; background:#fff8e9; color:#855000; }.validacao-react-send-dialog-alert.is-ready { border-color:#a8debd; background:#effaf3; color:#167644; }.validacao-react-send-dialog-note { margin:15px 20px 20px!important; color:var(--text-muted)!important; font-size:12px!important; line-height:1.45; }.validacao-react-send-dialog footer button:last-child { min-width:148px; }.validacao-react-send-dialog footer button:last-child svg { width:16px; height:16px; }
:root.dark .validacao-react-send-dialog-icon { background:#173a64; color:#9ec6ff; }:root.dark .validacao-react-send-dialog-icon.vetores { background:#123d2b; color:#75e6a4; }:root.dark .validacao-react-send-dialog-alert.has-pending { border-color:#8a6728; background:#3d3119; color:#ffd77f; }:root.dark .validacao-react-send-dialog-alert.is-ready { border-color:#327c55; background:#143d2a; color:#8de9b5; }

/* Modal de acompanhamento do envio à avaliação. */
.validacao-react-progress-modal>section { width:min(590px,96vw); }.validacao-react-progress-modal>section>header { gap:12px; }.validacao-react-job-state { margin-left:auto; padding:5px 8px; border-radius:999px; background:#e9f2ff; color:#2765b1; font-size:10px; font-weight:800; }.validacao-react-job-state.concluido { background:#e4f8eb; color:#187a41; }.validacao-react-job-state.erro { background:#fff1f1; color:#b42323; }.validacao-react-job { gap:15px; padding:23px; }.validacao-react-job-summary { display:flex; align-items:flex-start; gap:12px; }.validacao-react-job-summary>div:last-child { display:grid; gap:5px; min-width:0; }.validacao-react-job-summary strong { font-size:17px; line-height:1.25; }.validacao-react-job-summary p { color:var(--text-secondary); }.validacao-react-job-progress-head { display:flex; align-items:center; justify-content:space-between; color:var(--text-muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }.validacao-react-job-progress-head b { color:var(--color-primary); font-size:16px; letter-spacing:0; }.validacao-react-job-file { display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; gap:7px; padding:10px 11px; border:1px solid var(--border-subtle); border-radius:8px; background:var(--surface-subtle); color:var(--text-muted); font-size:11px; }.validacao-react-job-file svg { color:var(--color-primary); }.validacao-react-job-file strong { overflow:hidden; color:var(--text-secondary); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }.validacao-react-job-events>span { display:block; margin:2px 0 -5px; color:var(--text-muted); font-size:10px; font-weight:800; letter-spacing:.08em; }.validacao-react-job-events ul { max-height:220px; }.validacao-react-job em { padding:9px 11px; border-radius:7px; background:#fff1f1; color:#a72f2f; font-style:normal; }.validacao-react-job.concluido .validacao-react-job-progress-head b { color:#187a41; }.validacao-react-job.erro .validacao-react-job-progress-head b,.validacao-react-job.com-falha .validacao-react-job-progress-head b { color:#b42323; }
:root.dark .validacao-react-job-state { background:#173a64; color:#9ec6ff; }:root.dark .validacao-react-job-state.concluido { background:#143d2a; color:#8de9b5; }:root.dark .validacao-react-job-state.erro { background:#4a171d; color:#ffadb5; }:root.dark .validacao-react-job-file { background:var(--color-dark-raised); border-color:var(--color-dark-border); }:root.dark .validacao-react-job-file strong { color:var(--color-dark-text); }

/* Perfil da toolbar, seguindo o componente Header fornecido no design. */
.app-toolbar .toolbar-user {
  min-width: 0;
  gap: 10px;
  padding: 5px 14px 5px 5px;
  border: 1px solid var(--palette-cbd9eb);
  border-radius: 12px;
  background: var(--surface-card);
}
.app-toolbar .toolbar-user .avatar {
  display: grid;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: var(--palette-101010);
  color: var(--text-inverse);
  box-shadow: none;
  font-size: 11px;
  font-weight: 800;
  text-shadow: none;
}
.app-toolbar .toolbar-user-details {
  display: grid;
  min-width: 0;
  gap: 1px;
}
.app-toolbar .toolbar-user-details strong,
.app-toolbar .toolbar-user-details small {
  display: block;
  overflow: hidden;
  width: auto;
  max-width: 180px;
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.app-toolbar .toolbar-user-details strong {
  color: var(--text-heading);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: none;
}
.app-toolbar .toolbar-user-details small {
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.2;
}
:root.dark .app-toolbar .toolbar-user {
  border-color: var(--color-dark-border);
  background: var(--color-dark-surface);
}
:root.dark .app-toolbar .toolbar-user .avatar {
  border: 0;
  background: var(--palette-101010);
  color: var(--text-inverse);
  box-shadow: none;
}
:root.dark .app-toolbar .toolbar-user-details strong { color: var(--color-dark-text); }
:root.dark .app-toolbar .toolbar-user-details small { color: var(--color-dark-muted); }

/* Paleta da toolbar escura: azul fechado do layout de referência. */
:root.dark .app-toolbar {
  background: #1b3158;
  border-bottom-color: #314a74;
}
:root.dark .app-toolbar .theme-button {
  border-color: #47638d;
  background: #1d355e;
  color: #aebdd3;
}
:root.dark .app-toolbar .toolbar-user {
  border-color: #3b5885;
  background: #203962;
}
:root.dark .app-toolbar .toolbar-user-details small,
.app-toolbar .toolbar-user-details small {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Movimento dos ícones dos atalhos, espelhando o painel de referência. */
.module { transition:transform .2s ease,box-shadow .2s ease; }
.module::after { transition:transform .45s cubic-bezier(.22,1,.36,1); }
.module > svg { transform:rotate(-6deg); transition:transform .45s cubic-bezier(.22,1,.36,1); }
.module:hover,.module:focus-visible { transform:scale(1.018); }
.module:hover::after,.module:focus-visible::after { transform:scale(1.12); }
.module:hover > svg,.module:focus-visible > svg { transform:translateX(1px) rotate(-2deg) scale(1.1); }

:root:not(.dark) .kanban-card-tags span { border:1px solid #d8ae76; background:#f6e6cf; color:#704015; font-weight:700; box-shadow:0 1px 1px rgba(199, 113, 21, 0.08); }
:root.dark .kanban-card-tags span { color:#fff; font-weight: 600; background-color: #bb712cc7; }

@media (max-width:1500px) { .correcao-react-page { padding:28px; }.correcao-react-page > .app-toolbar { margin:-28px -28px 28px; }.correcao-react-workspace { grid-template-columns:230px minmax(0,1fr); }.correcao-react-viewer > header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px 14px; padding:12px 16px; }.correcao-react-viewer header h2 { max-width:100%; }.correcao-react-marking-help { grid-column:1 / -1; width:auto; grid-template-columns:repeat(2,minmax(0,1fr)); padding:10px 12px; }.correcao-react-marking-help small { grid-column:1 / -1; padding-top:7px; }.correcao-react-actions { justify-content:flex-end; }.correcao-react-viewer-tools { padding-inline:16px; }.correcao-react-image-stage { padding-inline:16px; } }
