:root {
  --nucleo-navy: #002d62;
  --nucleo-navy-deep: #001a3d;
  --nucleo-orange: #f97316;
  --nucleo-orange-dark: #ea580c;
  --nucleo-bg: #f5f7fb;
  --nucleo-card: #ffffff;
  --nucleo-line: #e6eaf0;
  --nucleo-text: #172033;
  --nucleo-muted: #697386;
  --nucleo-green: #169b62;
  --nucleo-rail: 72px;
  --nucleo-rail-open: 276px;
  --nucleo-radius: 18px;
  --nucleo-shadow: 0 12px 34px rgba(0, 29, 68, .08);
}

body.nucleo-dashboard {
  min-height: 100vh !important;
  margin: 0 !important;
  padding-left: var(--nucleo-rail) !important;
  background:
    radial-gradient(circle at 4% 2%, rgba(249, 115, 22, .07), transparent 26rem),
    var(--nucleo-bg) !important;
  color: var(--nucleo-text) !important;
}

body.nucleo-dashboard::before { display: none !important; }
body.nucleo-dashboard.sidebar-open { padding-left: var(--nucleo-rail) !important; }
body.nucleo-dashboard > .header { display: none !important; }

.nucleo-workspace {
  width: min(1240px, calc(100% - 48px));
  margin: 0 auto;
  padding: 34px 0 72px;
}

.nucleo-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.nucleo-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: var(--nucleo-orange-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.nucleo-eyebrow::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nucleo-orange);
  box-shadow: 0 0 0 5px rgba(249, 115, 22, .12);
}

.nucleo-page-head h1 {
  margin: 0;
  color: var(--nucleo-navy-deep);
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.08;
  letter-spacing: -.035em;
}

.nucleo-page-head p {
  max-width: 650px;
  margin: 9px 0 0;
  color: var(--nucleo-muted);
  font-size: 14px;
  line-height: 1.6;
}

.nucleo-head-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border: 1px solid #cbe8da;
  border-radius: 999px;
  background: #effaf4;
  color: #14794e;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.nucleo-head-badge::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--nucleo-green);
}

body.nucleo-dashboard .tools-search {
  position: relative;
  max-width: none;
  margin: 0 0 14px;
}

body.nucleo-dashboard #searchTools {
  min-height: 50px;
  padding: 13px 18px 13px 46px;
  border: 1px solid var(--nucleo-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 5px 18px rgba(0, 35, 75, .04);
}

body.nucleo-dashboard .tools-search::before {
  content: "";
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 17px;
  width: 17px;
  height: 17px;
  transform: translateY(-50%);
  border: 2px solid #8b95a7;
  border-radius: 50%;
  pointer-events: none;
}

body.nucleo-dashboard .tools-search::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: calc(50% + 6px);
  left: 31px;
  width: 7px;
  height: 2px;
  transform: rotate(45deg);
  border-radius: 2px;
  background: #8b95a7;
  pointer-events: none;
}

body.nucleo-dashboard .subscriptions-entry {
  max-width: none;
  margin: 0 0 26px;
  text-align: left;
}

body.nucleo-home-dashboard .categories-section {
  width: min(1160px, calc(100% - 48px));
  max-width: none;
  margin: 0 auto;
  padding: 38px 0 80px;
}

body.nucleo-home-dashboard .page-greeting { display: none; }

body.nucleo-home-dashboard .categories-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

body.nucleo-home-dashboard .cat-card,
body.nucleo-home-dashboard .org-card {
  min-height: 280px;
  padding: 24px;
  border: 1px solid var(--nucleo-line);
  border-top: 1px solid var(--nucleo-line);
  border-radius: var(--nucleo-radius);
  background: var(--nucleo-card);
  box-shadow: var(--nucleo-shadow);
  color: var(--nucleo-text);
}

body.nucleo-home-dashboard .cat-card::after,
body.nucleo-home-dashboard .org-card::after {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--nucleo-orange), #ffad4c);
}

body.nucleo-home-dashboard .cat-card::before { display: none; }

body.nucleo-home-dashboard .cat-card:hover,
body.nucleo-home-dashboard .org-card:hover {
  transform: translateY(-4px);
  border-color: #d7dde7;
  background: var(--nucleo-card);
  box-shadow: 0 18px 42px rgba(0, 29, 68, .13);
}

body.nucleo-home-dashboard .cat-label,
body.nucleo-home-dashboard .org-label { color: var(--nucleo-navy-deep); }
body.nucleo-home-dashboard .cat-desc,
body.nucleo-home-dashboard .org-desc { color: var(--nucleo-muted); }
body.nucleo-home-dashboard .cat-btn,
body.nucleo-home-dashboard .org-btn {
  border-radius: 11px;
  background: var(--nucleo-navy);
}

body.nucleo-home-dashboard .cat-btn:hover,
body.nucleo-home-dashboard .org-btn:hover { background: var(--nucleo-navy-deep); }

body.nucleo-home-dashboard.theme-dark .cat-label,
body.nucleo-home-dashboard.theme-dark .org-label { color: #f3f7fb; }

body.nucleo-dashboard .link-subscriptions {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--nucleo-muted);
  font-size: 12px;
  font-weight: 600;
}

body.nucleo-dashboard .tools-grid {
  max-width: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

body.nucleo-dashboard #toolsGrid.tools-sections {
  display: block;
}

.tool-section {
  margin-top: 34px;
}

.tool-section:first-child {
  margin-top: 22px;
}

.tool-section-head,
.future-section-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  margin-bottom: 14px;
}

.tool-section-title-row,
.future-section-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  min-width: 0;
}

.tool-section-head h2,
.future-section-head h2 {
  margin: 0;
  color: var(--nucleo-navy-deep);
  font-size: 20px;
  font-weight: 850;
  letter-spacing: -.025em;
}

.tool-section-count,
.future-section-count {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid #dce3ec;
  border-radius: 50%;
  background: #fff;
  color: var(--nucleo-navy);
  font-size: 11px;
  font-weight: 850;
  box-shadow: 0 4px 12px rgba(0, 29, 68, .06);
}

.tool-section-status,
.future-section-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 11px;
  border: 1px solid rgba(22, 155, 98, .18);
  border-radius: 999px;
  background: rgba(22, 155, 98, .08);
  color: #117647;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.tool-section-paid .tool-section-status,
.future-section-status {
  border-color: rgba(0, 45, 98, .12);
  background: rgba(0, 45, 98, .06);
  color: var(--nucleo-navy);
}

.tool-section-empty {
  padding: 20px;
  border: 1px dashed #d8dee8;
  border-radius: var(--nucleo-radius);
  color: var(--nucleo-muted);
  font-size: 12px;
  text-align: center;
}

.future-content-sections {
  display: grid;
  gap: 34px;
  margin-top: 44px;
  padding-top: 34px;
  border-top: 1px solid var(--nucleo-line);
}

.future-section-placeholder {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 112px;
  padding: 22px;
  border: 1px dashed #d8dee8;
  border-radius: var(--nucleo-radius);
  background: rgba(255, 255, 255, .58);
  color: var(--nucleo-muted);
}

.future-section-placeholder svg {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  color: var(--nucleo-orange-dark);
}

.future-section-placeholder strong {
  display: block;
  margin-bottom: 4px;
  color: var(--nucleo-text);
  font-size: 13px;
}

.future-section-placeholder span {
  font-size: 12px;
  line-height: 1.5;
}

.video-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.video-card {
  overflow: hidden;
  border: 1px solid var(--nucleo-line);
  border-radius: var(--nucleo-radius);
  background: var(--nucleo-card);
  color: var(--nucleo-text);
  text-decoration: none;
  box-shadow: var(--nucleo-shadow);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.video-card:hover {
  transform: translateY(-4px);
  border-color: #d7dde7;
  box-shadow: 0 18px 42px rgba(0, 29, 68, .13);
}

.video-card-cover {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  padding: 0;
  border: 0;
  aspect-ratio: 16 / 9;
  background: var(--nucleo-navy-deep);
  cursor: pointer;
}

.video-card-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}

.video-card:hover .video-card-cover img { transform: scale(1.035); }

.video-card-play {
  position: absolute;
  inset: 50% auto auto 50%;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  background: rgba(249, 115, 22, .94);
  color: #fff;
  transform: translate(-50%, -50%);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .24);
}

.video-card-play svg { width: 25px; height: 25px; margin-left: 2px; }

.video-card-cover:focus-visible {
  outline: 3px solid rgba(249, 115, 22, .55);
  outline-offset: -3px;
}

.video-card-player {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
}

.video-card-player iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.video-card-duration {
  position: absolute;
  right: 9px;
  bottom: 9px;
  padding: 4px 7px;
  border-radius: 6px;
  background: rgba(0, 20, 44, .88);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
}

.video-card-body {
  display: block;
  padding: 17px 18px 19px;
}

.video-card-body strong {
  display: block;
  color: var(--nucleo-text);
  font-size: 14px;
  line-height: 1.4;
}

.video-card-body small {
  display: block;
  margin-top: 7px;
  color: var(--nucleo-muted);
  font-size: 11px;
  line-height: 1.4;
}

body.nucleo-dashboard .tool-card {
  min-height: 256px;
  padding: 22px;
  overflow: hidden;
  border: 1px solid var(--nucleo-line);
  border-left: 1px solid var(--nucleo-line);
  border-radius: var(--nucleo-radius);
  background: var(--nucleo-card);
  box-shadow: var(--nucleo-shadow);
  justify-content: flex-start;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body.nucleo-dashboard .tool-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--nucleo-orange), #ffad4c);
  opacity: 1;
}

body.nucleo-dashboard .tool-card:hover {
  transform: translateY(-4px);
  border-color: #d7dde7;
  box-shadow: 0 18px 42px rgba(0, 29, 68, .13);
}

body.nucleo-dashboard .tool-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin: 4px 0 18px;
  border: 1px solid rgba(249, 115, 22, .2);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(249, 115, 22, .14), rgba(249, 115, 22, .04));
  color: var(--nucleo-orange-dark);
}

body.nucleo-dashboard .tool-icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.nucleo-dashboard .tool-icon img {
  width: 27px;
  height: 27px;
  object-fit: contain;
  opacity: 1;
  filter: brightness(0) saturate(100%) invert(44%) sepia(96%) saturate(2430%) hue-rotate(357deg) brightness(99%) contrast(96%);
}

body.nucleo-dashboard .tool-title {
  padding-left: 86px;
  color: var(--nucleo-navy-deep);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -.015em;
}

body.nucleo-dashboard .tool-desc {
  margin-top: 8px;
  color: var(--nucleo-muted);
  font-size: 13px;
  line-height: 1.55;
}

body.nucleo-dashboard .tool-footer {
  width: 100%;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid #eef1f5;
  justify-content: flex-end;
}

body.nucleo-dashboard .tool-card[data-status="available"] .tool-footer::before,
body.nucleo-dashboard .tool-card[data-status="expiring"] .tool-footer::before,
body.nucleo-dashboard .tool-card[data-status="cancelled"] .tool-footer::before {
  content: "Liberado para acesso";
  margin-right: auto;
  color: var(--nucleo-green);
  font-size: 11px;
  font-weight: 800;
}

body.nucleo-dashboard .tool-card[data-status="available"] .tool-footer::after,
body.nucleo-dashboard .tool-card[data-status="expiring"] .tool-footer::after,
body.nucleo-dashboard .tool-card[data-status="cancelled"] .tool-footer::after {
  content: "Acessar  →";
  color: var(--nucleo-navy);
  font-size: 12px;
  font-weight: 800;
}

body.nucleo-dashboard .tool-card::after {
  top: 18px;
  right: 18px;
  max-width: 140px;
  padding: 5px 9px;
  box-shadow: none;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.nucleo-sidebar {
  position: fixed;
  z-index: 800;
  top: 0;
  left: 0;
  bottom: 0;
  width: var(--nucleo-rail);
  overflow: hidden;
  border-left: 1px solid rgba(255, 255, 255, .08);
  background: linear-gradient(180deg, #06182d 0%, #03101f 100%);
  color: #fff;
  box-shadow: -12px 0 32px rgba(0, 22, 49, .1);
  transition: width .25s ease;
}

body.sidebar-open .nucleo-sidebar { width: var(--nucleo-rail-open); }

.nucleo-sidebar-inner {
  display: flex;
  flex-direction: column;
  width: var(--nucleo-rail-open);
  height: 100%;
  padding: 12px 10px;
}

.nucleo-brand-row {
  display: flex;
  align-items: center;
  min-height: 48px;
  margin-bottom: 12px;
}

.nucleo-brand-mark,
.nucleo-sidebar-toggle {
  flex: 0 0 50px;
  width: 50px;
  height: 48px;
  border: 0;
  border-radius: 14px;
  background: #ffffff;
}

.nucleo-sidebar-toggle {
  display: grid;
  place-items: center;
  margin: 0;
  padding: 0;
  cursor: pointer;
}

.nucleo-sidebar-toggle:hover { background: #f3f6fa; }
.nucleo-sidebar-toggle img { width: 29px; height: 29px; object-fit: contain; }

.nucleo-brand-copy {
  min-width: 0;
  margin-left: 14px;
  opacity: 0;
  transform: translateX(8px);
  transition: opacity .18s ease, transform .2s ease;
}

body.sidebar-open .nucleo-brand-copy,
body.sidebar-open .nucleo-nav-label,
body.sidebar-open .nucleo-user-copy,
body.sidebar-open .nucleo-sidebar-section-title {
  opacity: 1;
  transform: translateX(0);
}

.nucleo-brand-copy strong { display: block; font-size: 14px; white-space: nowrap; }
.nucleo-brand-copy span { display: block; margin-top: 2px; color: #8da0b8; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }

.nucleo-sidebar-section-title {
  margin: 10px 10px 6px 62px;
  color: #71859e;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateX(8px);
  transition: opacity .18s ease, transform .2s ease;
  white-space: nowrap;
}

.nucleo-nav {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.nucleo-nav-link {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 13px;
  color: #aebed1;
  text-decoration: none;
  cursor: pointer;
  transition: background .16s ease, color .16s ease, border-color .16s ease;
}

.nucleo-sidebar button.nucleo-nav-link {
  margin: 0;
  padding: 0;
  border: 1px solid transparent;
  background: transparent;
  color: #aebed1;
  font: inherit;
  text-align: left;
}

.nucleo-sidebar button.nucleo-nav-link:hover {
  border-color: rgba(255, 255, 255, .07);
  background: rgba(255, 255, 255, .07);
  color: #fff;
}

.nucleo-nav-link:hover {
  border-color: rgba(255, 255, 255, .07);
  background: rgba(255, 255, 255, .07);
  color: #fff;
}

.nucleo-nav-link.active {
  border-color: rgba(249, 115, 22, .22);
  background: linear-gradient(90deg, rgba(249, 115, 22, .22), rgba(249, 115, 22, .08));
  color: #fff;
}

.nucleo-nav-icon {
  display: grid;
  place-items: center;
  flex: 0 0 50px;
  width: 50px;
  height: 46px;
}

.nucleo-nav-icon img,
.nucleo-nav-icon svg {
  width: 21px;
  height: 21px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: .78;
}

.nucleo-nav-link.active .nucleo-nav-icon img,
.nucleo-nav-link.active .nucleo-nav-icon svg { opacity: 1; }

.nucleo-nav-label,
.nucleo-user-copy {
  overflow: hidden;
  color: inherit;
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
  opacity: 0;
  transform: translateX(8px);
  transition: opacity .18s ease, transform .2s ease;
}

.nucleo-tool-nav {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
}

.nucleo-tool-nav .nucleo-nav-link { min-height: 43px; }
.nucleo-tool-nav .nucleo-nav-icon { height: 41px; }

.nucleo-sidebar-spacer { flex: 1; min-height: 12px; }

.nucleo-user-card {
  display: flex;
  align-items: center;
  min-height: 54px;
  margin-top: 8px;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 14px;
  background: rgba(255, 255, 255, .05);
  color: #fff;
  text-decoration: none;
}

.nucleo-user-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 50px;
  width: 36px;
  height: 36px;
  margin: 0 7px;
  border-radius: 11px;
  background: linear-gradient(145deg, var(--nucleo-orange), #ff9b3e);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
}

.nucleo-user-copy { line-height: 1.25; }
.nucleo-user-copy small { display: block; margin-top: 2px; color: #8da0b8; font-size: 10px; font-weight: 600; }

.nucleo-sidebar-footer {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
}

.nucleo-sidebar-footer .nucleo-nav-link { flex: 1; }

body.nucleo-dashboard.theme-dark {
  --nucleo-bg: #07111f;
  --nucleo-card: #0d1a2a;
  --nucleo-line: #1c2c3f;
  --nucleo-text: #edf3fb;
  --nucleo-muted: #93a2b7;
  background: #07111f !important;
}

body.nucleo-dashboard.theme-dark .nucleo-page-head h1,
body.nucleo-dashboard.theme-dark .tool-title,
body.nucleo-dashboard.theme-dark .tool-section-head h2,
body.nucleo-dashboard.theme-dark .future-section-head h2 { color: #f3f7fb; }
body.nucleo-dashboard.theme-dark #searchTools { background: #0d1a2a; color: #fff; }
body.nucleo-dashboard.theme-dark .tool-footer { border-color: #1c2c3f; }
body.nucleo-dashboard.theme-dark .tool-section-count,
body.nucleo-dashboard.theme-dark .future-section-count { border-color: #2a3c52; background: #142438; color: #f3f7fb; }
body.nucleo-dashboard.theme-dark .future-section-placeholder { border-color: #2a3c52; background: rgba(13, 26, 42, .68); }

.nucleo-primary-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--nucleo-navy), #0750a0);
  box-shadow: 0 8px 20px rgba(0, 45, 98, .18);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.project-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 8px 0 20px;
}

.project-stats article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 74px;
  padding: 16px 18px;
  border: 1px solid #dce4ed;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff, #f5fbff);
}

.project-stats span { color: var(--nucleo-muted); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.project-stats strong { color: #087da0; font-size: 20px; }

.project-toolbar {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  gap: 10px;
  margin-bottom: 18px;
}

.project-toolbar input,
.project-toolbar select,
.project-view-toggle {
  min-height: 46px;
  margin: 0;
  border: 1px solid var(--nucleo-line);
  border-radius: 12px;
  background: var(--nucleo-card);
  color: var(--nucleo-text);
  font: inherit;
}

.project-toolbar input { padding: 0 16px; }
.project-toolbar select { min-width: 165px; padding: 0 38px 0 14px !important; }
.project-view-toggle { width: 46px; padding: 0; color: var(--nucleo-navy); font-size: 20px; }

.project-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.project-card {
  display: flex;
  flex-direction: column;
  min-height: 230px;
  padding: 20px;
  border: 1px solid var(--nucleo-line);
  border-top: 3px solid #19a9bd;
  border-radius: 16px;
  background: var(--nucleo-card);
  box-shadow: var(--nucleo-shadow);
}

.project-card-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.project-card-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: #eaf8fb; }
.project-card-icon img { width: 24px; height: 24px; filter: invert(42%) sepia(83%) saturate(838%) hue-rotate(143deg) brightness(84%); }
.project-card-tag { padding: 5px 9px; border-radius: 999px; background: #f1f5f9; color: #677386; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.project-card h2 { margin: 0; color: var(--nucleo-text); font-size: 16px; line-height: 1.3; }
.project-card p { margin: 8px 0 18px; color: var(--nucleo-muted); font-size: 12px; line-height: 1.55; }
.project-tool-name { display: block; margin-bottom: 5px; color: var(--nucleo-orange-dark); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.project-card time { display: block; margin: -9px 0 17px; color: var(--nucleo-muted); font-size: 10px; }
.project-card-archived { opacity: .74; border-top-color: #94a3b8; }
.project-card-actions { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--nucleo-line); }
.project-card-actions a { padding: 9px 17px; border-radius: 10px; background: #1467e8; color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; }
.project-card-actions button { margin: 0; padding: 5px 0; border: 0; background: transparent; color: var(--nucleo-muted); font: inherit; font-size: 10px; font-weight: 700; cursor: pointer; }
.project-card-actions button:hover { color: var(--nucleo-navy); }
.project-card-actions button.project-action-danger:hover { color: #c0392b; }
.project-card-actions button:disabled { opacity: .45; cursor: wait; }
.project-feedback { position: fixed; z-index: 900; left: 50%; bottom: 22px; margin: 0; padding: 11px 16px; border-radius: 10px; background: #137a50; color: #fff; font-size: 12px; font-weight: 700; transform: translateX(-50%); box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.project-feedback[data-type="warn"] { background: #a85d00; }
.project-feedback[data-type="error"] { background: #b8322a; }

.project-grid-list { grid-template-columns: 1fr; }
.project-grid-list .project-card { min-height: 0; display: grid; grid-template-columns: auto 1fr minmax(360px, auto); column-gap: 18px; align-items: center; }
.project-grid-list .project-card-head { margin: 0; }
.project-grid-list .project-card-tag { display: none; }
.project-grid-list .project-card p { margin: 5px 0 0; }
.project-grid-list .project-card time { margin: 5px 0 0; }
.project-grid-list .project-card-actions { margin: 0; padding: 0; border: 0; }

.project-empty {
  padding: 64px 24px;
  border: 1px dashed #cad3df;
  border-radius: 18px;
  background: rgba(255, 255, 255, .6);
  text-align: center;
}
.project-empty-icon { color: #8fa2b7; font-size: 38px; }
.project-empty h2 { margin: 10px 0 5px; color: var(--nucleo-navy-deep); font-size: 20px; }
.project-empty p { margin: 0 auto 18px; max-width: 500px; color: var(--nucleo-muted); font-size: 13px; }
.project-empty a { color: var(--nucleo-navy); font-size: 13px; font-weight: 800; }
.project-storage-note { margin: 20px 0 0; color: #8590a1; font-size: 11px; line-height: 1.55; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

.nucleo-profile-dashboard .profile-page {
  width: min(1120px, calc(100% - 48px));
  max-width: none;
  margin: 0 auto;
  padding: 34px 0 72px;
}

.nucleo-profile-dashboard .info-box {
  margin: 0 0 18px;
  padding: 13px 16px;
  border: 1px solid #dbe7f5;
  border-left: 4px solid #2876d4;
  border-radius: 12px;
  background: #f3f8ff;
  color: #536174;
  font-size: 12px;
}

.nucleo-profile-dashboard .profile-grid { gap: 18px; }
.nucleo-profile-dashboard .profile-card {
  border: 1px solid var(--nucleo-line);
  border-radius: var(--nucleo-radius);
  background: var(--nucleo-card);
  color: var(--nucleo-text);
  box-shadow: var(--nucleo-shadow);
}
.nucleo-profile-dashboard .profile-card:hover { transform: none; box-shadow: var(--nucleo-shadow); }
.nucleo-profile-dashboard .profile-card h2 { color: var(--nucleo-text); font-size: 16px; }

.profile-extras {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 18px;
}

.profile-settings-card { padding: 22px !important; }

.profile-setting-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  min-height: 64px;
  margin: 0;
  padding: 12px 4px;
  border: 0;
  border-top: 1px solid var(--nucleo-line);
  border-radius: 0;
  background: transparent;
  color: var(--nucleo-text);
  font: inherit;
  text-align: left;
  text-decoration: none;
}

.profile-settings-card h2 + .profile-setting-row { border-top: 0; }
.profile-setting-row:hover { background: transparent; color: var(--nucleo-text); transform: none; }
.profile-setting-row strong { display: block; font-size: 13px; }
.profile-setting-row small { display: block; margin-top: 4px; color: var(--nucleo-muted); font-size: 11px; line-height: 1.45; }
.nucleo-profile-dashboard .profile-card > small {
  display: block;
  color: var(--nucleo-muted);
  font-size: 12px;
  line-height: 1.5;
}
.profile-setting-action { flex-shrink: 0; color: #176ad8; font-size: 11px; font-weight: 800; }
.profile-setting-disabled { opacity: .62; }
.profile-setting-danger .profile-setting-action { color: #c33b32; }
.profile-setting-danger:hover { background: rgba(195, 59, 50, .045); }
.profile-setting-row[hidden] { display: none !important; }
.profile-privacy-status {
  margin: 14px 0 4px;
  padding: 12px 14px;
  border: 1px solid #f1d18a;
  border-radius: 11px;
  background: #fff8e8;
  color: #765319;
  font-size: 12px;
  line-height: 1.5;
}
.profile-privacy-message { min-height: 20px; margin: 10px 2px 0; }
.profile-switch-row { cursor: pointer; }
.profile-switch-row input { width: 40px !important; height: 22px; margin: 0 !important; accent-color: var(--nucleo-navy); }
.profile-privacy-card { grid-column: 1 / -1; }
.nucleo-profile-dashboard[data-dashboard-active="account"] .profile-settings-card {
  grid-column: 1 / -1;
}
.profile-legal-links { margin: 12px 4px 0; color: var(--nucleo-muted); font-size: 11px; }
.profile-legal-links a { color: var(--nucleo-navy); font-weight: 700; }

.nucleo-profile-dashboard.theme-dark .profile-card input,
.nucleo-profile-dashboard.theme-dark .profile-card select {
  border-color: var(--nucleo-line);
  background: #111f30;
  color: #edf3fb;
}
.nucleo-profile-dashboard.theme-dark .info-box { border-color: #23415f; background: #0c2035; color: #b6c6d9; }

@media (max-width: 1080px) {
  body.nucleo-dashboard .tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .video-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.nucleo-home-dashboard .categories-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body.nucleo-dashboard,
  body.nucleo-dashboard.sidebar-open { padding-left: 0 !important; }
  .nucleo-workspace { width: min(100% - 28px, 680px); padding: 22px 0 96px; }
  .nucleo-page-head { flex-direction: column; }
  body.nucleo-dashboard .tools-grid { grid-template-columns: 1fr; }
  .video-card-grid { grid-template-columns: 1fr; }
  .tool-section-head,
  .future-section-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  body.nucleo-home-dashboard .categories-section { width: min(100% - 28px, 680px); padding-top: 22px; }
  body.nucleo-home-dashboard .categories-grid { grid-template-columns: 1fr; }
  .project-stats { grid-template-columns: 1fr; }
  .project-toolbar { grid-template-columns: 1fr auto; }
  .project-toolbar .project-search { grid-column: 1 / -1; }
  .project-grid { grid-template-columns: 1fr; }
  .project-grid-list .project-card { display: flex; }
  .nucleo-profile-dashboard .profile-page { width: min(100% - 28px, 680px); padding-top: 22px; }
  .profile-extras { grid-template-columns: 1fr; }
  .profile-privacy-card { grid-column: auto; }
  .nucleo-sidebar {
    top: auto;
    left: 0;
    width: 100% !important;
    height: 72px;
    border-top: 1px solid rgba(255, 255, 255, .08);
    border-left: 0;
  }
  .nucleo-sidebar-inner { width: 100%; padding: 8px 10px; }
  .nucleo-brand-row,
  .nucleo-sidebar-section-title,
  .nucleo-tool-nav,
  .nucleo-sidebar-spacer,
  .nucleo-user-card { display: none; }
  .nucleo-nav { flex-direction: row; justify-content: space-around; }
  .nucleo-nav-link { min-height: 54px; flex: 1; justify-content: center; }
  .nucleo-nav-label { display: none; }
  .nucleo-sidebar-footer { display: none; }
  .nucleo-primary-nav .nucleo-nav-link:nth-child(n+5) { display: none; }
}


/* ------------------------------------------------------------------
   Meus Projetos: mesma atmosfera azul da home, para a página não
   destoar do resto da plataforma. Os cartões seguem brancos, como lá.
   ------------------------------------------------------------------ */
body.nucleo-projects-page,
body.nucleo-termos-page,
body.nucleo-profile-dashboard {
  background:
    radial-gradient(circle at 86% 10%, rgba(255, 127, 0, .09), transparent 32%),
    radial-gradient(circle at 8% 82%, rgba(0, 100, 220, .11), transparent 30%),
    linear-gradient(135deg, #001020 0%, #002d62 55%, #00388a 100%) !important;
  background-attachment: fixed;
  color: #edf4ff !important;
}

body.nucleo-projects-page .nucleo-page-head h1 { color: #fff; }
body.nucleo-profile-dashboard .nucleo-page-head h1 { color: #fff; }
body.nucleo-termos-page .terms-title { color: #fff; }
body.nucleo-termos-page .terms-version { color: rgba(255, 255, 255, .72); }
body.nucleo-projects-page .nucleo-page-head p { color: rgba(255, 255, 255, .72); }
body.nucleo-profile-dashboard .nucleo-page-head p { color: rgba(255, 255, 255, .72); }
body.nucleo-projects-page .nucleo-eyebrow { color: #ff9a3c; }
body.nucleo-profile-dashboard .nucleo-eyebrow { color: #ff9a3c; }

/* Blocos de conteúdo sobre o azul: cartão branco, mesma borda e sombra da home. */
body.nucleo-projects-page .project-stats article,
body.nucleo-projects-page .project-card {
  border-color: #d9e1eb;
  background: #fff;
  box-shadow: 0 16px 38px rgba(0, 12, 31, .18);
}
body.nucleo-projects-page .project-stats article { background: #fff; }

/* Alturas iguais às da busca da home (40px) e tipografia no mesmo tamanho. */
body.nucleo-projects-page .project-toolbar input,
body.nucleo-projects-page .project-toolbar select,
body.nucleo-projects-page .project-view-toggle {
  min-height: 40px;
  height: 40px;
  border-color: #d8e0ea;
  border-radius: 10px;
  background: #f8fafc;
  color: #172033;
  font-size: 14px;
}
body.nucleo-projects-page .project-view-toggle { width: 40px; font-size: 17px; }
body.nucleo-projects-page .project-toolbar select { min-width: 180px; }
body.nucleo-projects-page .project-toolbar input::placeholder { color: #8b95a7; }

/* A busca fica dentro de um <label>, que esticava com a linha e deixava o campo
   mais alto que os seletores. Amarra a altura nos dois e usa border-box. */

body.nucleo-projects-page .project-toolbar .project-search {
  display: flex;
  align-items: center;
  align-self: center;
  height: 40px;
}
body.nucleo-projects-page .project-toolbar input,
body.nucleo-projects-page .project-toolbar select,
body.nucleo-projects-page .project-view-toggle {
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
}
body.nucleo-projects-page .project-toolbar .project-search input { width: 100%; height: 40px; }

/* Ação principal em laranja: é o único convite de ação da página e no azul
   o botão azul se perdia no fundo. Alinhado ao bloco de título. */
body.nucleo-projects-page .nucleo-page-head { align-items: center; }
body.nucleo-projects-page .nucleo-primary-action {
  min-height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--nucleo-orange), #fb923c);
  box-shadow: 0 10px 24px rgba(249, 115, 22, .3);
  color: #fff;
}
body.nucleo-projects-page .nucleo-primary-action:hover { filter: brightness(1.06); }

/* O resumo em três caixas ganha a mesma altura das linhas da barra. */
/* O resumo ficava bem mais alto que a barra de filtros logo abaixo. */
body.nucleo-projects-page .project-stats article { min-height: 52px; padding: 10px 18px; }
body.nucleo-projects-page .project-stats { margin: 8px 0 14px; }
body.nucleo-projects-page .project-stats strong { font-size: 22px; color: var(--nucleo-navy); }
/* Estado vazio e rodapé precisam de contraste sobre o azul. */
body.nucleo-projects-page .project-empty {
  border-color: rgba(255, 255, 255, .28);
  background: rgba(255, 255, 255, .06);
}
body.nucleo-projects-page .project-empty-icon { color: #9fc4f0; }
body.nucleo-projects-page .project-empty h2 { color: #fff; }
body.nucleo-projects-page .project-empty p { color: rgba(255, 255, 255, .74); }
body.nucleo-projects-page .project-empty a { color: #ffb066; }
body.nucleo-projects-page .project-storage-note,
body.nucleo-projects-page .project-feedback { color: rgba(255, 255, 255, .66); }


/* --------------------------------------------------------------
   Alturas da página de projetos em um lugar só. O !important existe
   porque o style.css global aplica padding de 12px em todo input.
   -------------------------------------------------------------- */
body.nucleo-projects-page .project-toolbar,
body.nucleo-projects-page .project-toolbar * { box-sizing: border-box; }

/* Todos os campos esticam para a altura da linha: assim a caixa é idêntica,
   sem depender de line-height, que no <select> move o texto e não a caixa. */
body.nucleo-projects-page .project-toolbar { align-items: stretch !important; }

body.nucleo-projects-page .project-toolbar .project-search,
body.nucleo-projects-page .project-toolbar .project-search input,
body.nucleo-projects-page .project-toolbar select,
body.nucleo-projects-page .project-view-toggle {
  height: 44px !important;
  min-height: 44px !important;
  line-height: normal !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-self: stretch !important;
  margin: 0 !important;
}
body.nucleo-projects-page .project-toolbar select { display: block; }
body.nucleo-projects-page .project-toolbar .project-search input { border: 0 !important; background: transparent !important; }
body.nucleo-projects-page .project-toolbar .project-search { padding: 0 16px; border: 1px solid #d8e0ea; border-radius: 10px; background: #f8fafc; }
body.nucleo-projects-page .project-view-toggle { width: 44px !important; padding: 0 !important; }

/* O resumo acompanha a barra: 60px contra 44px, sem o degrau de antes. */
body.nucleo-projects-page .project-stats article { min-height: 60px !important; height: 60px; padding: 0 18px !important; }


/* --------------------------------------------------------------
   Cartões de projeto: laranja como acento (ícone) e azul
   institucional na ação, como no resto da plataforma.
   -------------------------------------------------------------- */
body.nucleo-projects-page .project-card { border-top-color: var(--nucleo-navy); }
body.nucleo-projects-page .project-card-icon { background: #fff2e8; }

/* O ícone é um SVG monocromático carregado como <img>: a cor vem de filtro.
   brightness(0) saturate(100%) zera a cor original antes de virar laranja. */
body.nucleo-projects-page .project-card-icon img {
  filter: brightness(0) saturate(100%) invert(57%) sepia(75%) saturate(2352%) hue-rotate(354deg) brightness(99%) contrast(96%);
}

body.nucleo-projects-page .project-card-actions a {
  background: var(--nucleo-navy);
}
body.nucleo-projects-page .project-card-actions a:hover { background: var(--nucleo-navy-deep); }


/* ------------------------------------------------------------------
   Meu Perfil e Conta e segurança sobre o mesmo azul das demais telas
   de navegação. Os cartões seguem brancos, com sombra mais forte.
   ------------------------------------------------------------------ */
body.nucleo-profile-dashboard .profile-card {
  border-color: #d9e1eb;
  box-shadow: 0 16px 38px rgba(0, 12, 31, .18);
}
body.nucleo-profile-dashboard .profile-card:hover { box-shadow: 0 20px 44px rgba(0, 12, 31, .22); }

/* Avisos e textos auxiliares ficam fora do cartão, direto sobre o azul. */
body.nucleo-profile-dashboard .info-box {
  border-left-color: var(--nucleo-orange);
  border-radius: 10px;
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .84);
}
body.nucleo-profile-dashboard .profile-legal-links { color: rgba(255, 255, 255, .7); }
body.nucleo-profile-dashboard .profile-legal-links a { color: #ffb066; }
body.nucleo-profile-dashboard .profile-page > .msg { color: #fff; }


/* ------------------------------------------------------------------
   Linhas de ação da conta: a linha inteira é o botão, então o rótulo
   repetido à direita saiu e o realce do hover ficou mais evidente.
   ------------------------------------------------------------------ */
body.nucleo-profile-dashboard .profile-setting-row {
  padding: 12px 14px;
  border-radius: 12px;
  transition: background .16s ease, box-shadow .16s ease;
}
body.nucleo-profile-dashboard .profile-setting-row:hover {
  background: #eef4fd;
  box-shadow: inset 3px 0 var(--nucleo-navy);
}
body.nucleo-profile-dashboard .profile-setting-row:hover strong { color: var(--nucleo-navy); }
body.nucleo-profile-dashboard .profile-setting-row:hover .profile-setting-action { transform: translateX(3px); }
body.nucleo-profile-dashboard .profile-setting-action { transition: transform .16s ease; font-size: 15px; }

/* Ações destrutivas: mesmo padrão, em vermelho. */
body.nucleo-profile-dashboard .profile-setting-danger:hover {
  background: rgba(195, 59, 50, .08);
  box-shadow: inset 3px 0 #c33b32;
}
body.nucleo-profile-dashboard .profile-setting-danger:hover strong { color: #a62f27; }

/* Menu a direita: espelha o painel inteiro (projetos, perfil e conta). */
:root[data-menu-lado="direita"] body.nucleo-dashboard {
  padding-left: 0 !important;
  padding-right: var(--nucleo-rail) !important;
}
:root[data-menu-lado="direita"] body.nucleo-dashboard.sidebar-open {
  padding-left: 0 !important;
  padding-right: var(--nucleo-rail) !important;
}
:root[data-menu-lado="direita"] .nucleo-sidebar { left: auto; right: 0; }
:root[data-menu-lado="direita"] body.nucleo-dashboard .tool-title { padding-left: 0; padding-right: 86px; }

@media (max-width: 760px) {
  :root[data-menu-lado="direita"] body.nucleo-dashboard.sidebar-open { padding-right: 0 !important; }
}

/* Seletor de lado do menu: dois botoes no formato de alternador. */
.menu-lado-opcoes, .tema-opcoes { display: inline-flex; flex-shrink: 0; padding: 3px; border: 1px solid var(--nucleo-line); border-radius: 10px; background: var(--nucleo-bg); }
.menu-lado-opcoes button, .tema-opcoes button {
  margin: 0;
  padding: 7px 14px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--nucleo-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.menu-lado-opcoes button.ativo, .tema-opcoes button.ativo { background: var(--nucleo-navy); color: #fff; }
body.theme-dark .menu-lado-opcoes button.ativo,
body.theme-dark .tema-opcoes button.ativo { background: #e7edf6; color: #0b1d33; }
/* Linha sem acao propria: o clique acontece nos botoes, nao na linha. */
.profile-setting-static { cursor: default; }
body.nucleo-profile-dashboard .profile-setting-static:hover { background: transparent; box-shadow: none; }
body.nucleo-profile-dashboard .profile-setting-static:hover strong { color: inherit; }

/* ------------------------------------------------------------------
   Menu igual em toda a plataforma: sem a faixa de marca e sem o titulo
   'Navegacao'. A identidade fica no cabecalho, onde existe, e no titulo
   da propria pagina nas telas do painel.
   ------------------------------------------------------------------ */
.nucleo-sidebar-section-title:first-of-type { display: none !important; }
.nucleo-sidebar-inner { padding-top: 14px; }

/* ------------------------------------------------------------------
   Marca dentro do menu: so nas telas sem cabecalho. Logo em cima, nome
   embaixo. Recolhido mostra so o logo; expandido, os dois.
   ------------------------------------------------------------------ */
/* O menu interno tem a largura aberta (276px) e e recortado em 72px quando
   recolhido. Por isso a marca alinha a ESQUERDA, na mesma coluna dos icones:
   centralizada, ela cairia fora da faixa visivel. */
.nucleo-brand-stack {
  display: flex !important;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  min-height: auto;
  margin: 2px 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
/* O nome fica AO LADO do logo quando o menu expande; recolhido, so o logo. */
.nucleo-brand-nome { padding-left: 0; }
/* Retangulo branco com o logo, no formato do menu antigo. Fica visivel
   tambem com o menu recolhido, porque tem a largura da faixa. */
.nucleo-brand-marca {
  display: grid;
  place-items: center;
  flex: 0 0 50px;
  width: 50px;
  height: 48px;
  border-radius: 14px;
  background: #fff;
}
.nucleo-brand-marca img { width: 29px; height: 29px; object-fit: contain; }
.nucleo-brand-nome {
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .01em;
  white-space: nowrap;
  opacity: 0;
  transition: opacity .18s ease;
}
body:not(.sidebar-open) .nucleo-brand-nome { display: none; }
body.sidebar-open .nucleo-brand-nome { opacity: 1; }

/* ------------------------------------------------------------------
   Paginas que ganham o menu lateral sem adotar o painel inteiro:
   ajuda, meus acessos, pagamentos e troca de senha. Esconde o cabecalho
   e abre o espaco da faixa, preservando o fundo e o estilo proprios.
   ------------------------------------------------------------------ */
body.nucleo-com-menu { padding-left: var(--nucleo-rail) !important; }
body.nucleo-com-menu.sidebar-open { padding-left: var(--nucleo-rail) !important; }
body.nucleo-com-menu > .header { display: none !important; }

:root[data-menu-lado="direita"] body.nucleo-com-menu,
:root[data-menu-lado="direita"] body.nucleo-com-menu.sidebar-open {
  padding-left: 0 !important;
  padding-right: var(--nucleo-rail) !important;
}

@media (max-width: 760px) {
  body.nucleo-com-menu,
  body.nucleo-com-menu.sidebar-open { padding-left: 0 !important; padding-right: 0 !important; }
}

/* ------------------------------------------------------------------
   Linha separando a navegacao dos atalhos das ferramentas. Ela tem a
   largura da faixa recolhida (52px), entao aparece tanto com o menu
   fechado quanto aberto. O titulo 'Ferramentas' sai: a linha ja divide.
   ------------------------------------------------------------------ */
.nucleo-sidebar-section-title { display: none !important; }

.nucleo-tool-nav {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, .12);
}
/* Sem ferramentas liberadas nao ha o que separar. */
.nucleo-tool-nav:empty { margin-top: 0; padding-top: 0; border-top: 0; }

/* ------------------------------------------------------------------
   Contraste no tema escuro das telas de conta.
   As folhas dessas páginas foram escritas só para fundo claro: rótulos em
   #475569, textos de apoio em #64748b e títulos em #002D62 caem para 1,3:1
   a 3,7:1 sobre o card escuro. Aqui eles voltam para faixa legível.
   ------------------------------------------------------------------ */
body.nucleo-dashboard.theme-dark .profile-card label,
body.nucleo-dashboard.theme-dark .sub-header h1,
body.nucleo-dashboard.theme-dark .sub-card-head h3,
body.nucleo-dashboard.theme-dark .sub-card.expired h3 { color: #e8eefb; }

body.nucleo-dashboard.theme-dark .sub-info,
body.nucleo-dashboard.theme-dark .sub-item-type,
body.nucleo-dashboard.theme-dark .tool-exp,
body.nucleo-dashboard.theme-dark .empty,
body.nucleo-dashboard.theme-dark .payments-head,
body.nucleo-dashboard.theme-dark .info-box { color: #b6c6d9; }

body.nucleo-dashboard.theme-dark .profile-card input[disabled],
body.nucleo-dashboard.theme-dark .profile-card input:disabled,
body.nucleo-dashboard.theme-dark .profile-card select:disabled { color: #9fb0c6; }

/* Estados coloridos: o mesmo significado, em tom que acende no escuro. */
body.nucleo-dashboard.theme-dark .status.approved,
body.nucleo-dashboard.theme-dark .profile-page .msg[data-type="success"] { color: #4ade80; }
body.nucleo-dashboard.theme-dark .status.pending { color: #fbbf24; }
body.nucleo-dashboard.theme-dark .status.failed,
body.nucleo-dashboard.theme-dark .tool-exp-expired,
body.nucleo-dashboard.theme-dark .profile-page .msg[data-type="error"] { color: #f87171; }

/* Meus Projetos força o card branco para ele saltar do fundo azul da página.
   No tema escuro isso deixava o título, que usa --nucleo-text claro, branco
   sobre branco: o nome do projeto sumia. Aqui o card volta a ser escuro. */
body.nucleo-projects-page.theme-dark .project-card,
body.nucleo-projects-page.theme-dark .project-stats article {
  border-color: var(--nucleo-line);
  background: var(--nucleo-card);
  box-shadow: 0 16px 38px rgba(0, 0, 0, .34);
}

/* Peças de apoio do card, escritas só para fundo claro. */
body.nucleo-projects-page.theme-dark .project-card-tag {
  background: #152740;
  color: #b6c6d9;
}
body.nucleo-dashboard.theme-dark .project-stats strong { color: #6fd2ef; }
body.nucleo-dashboard.theme-dark .tool-section-status { color: #4ade80; }
body.nucleo-dashboard.theme-dark .profile-privacy-status { color: #fbbf24; }
body.nucleo-dashboard.theme-dark .project-toolbar input,
body.nucleo-dashboard.theme-dark .project-toolbar select {
  background: #111f30;
  border-color: var(--nucleo-line);
  color: #edf3fb;
}

/* Contraste no tema escuro: varredura automatica.
   Gerado por auditoria de contraste: cada cor abaixo media menos de 4.5:1
   sobre a superficie escura. Cinza virou token da paleta; cor com
   significado foi clareada mantendo o matiz. */
body.nucleo-dashboard.theme-dark .link-esqueci { color: #2581e9; }  /* era #0B3A6F */
body.nucleo-dashboard.theme-dark .modal-content { color: #72849f; }  /* era #475569 */
body.nucleo-dashboard.theme-dark .page label { color: #e8eefb; }  /* era #333 */
body.nucleo-dashboard.theme-dark .profile-setting-action { color: #3482e9; }  /* era #176ad8 */
body.nucleo-dashboard.theme-dark .profile-setting-danger .profile-setting-action { color: #d35d55; }  /* era #c33b32 */
body.nucleo-dashboard.theme-dark .project-card-actions button.project-action-danger:hover { color: #d7594c; }  /* era #c0392b */
body.nucleo-dashboard.theme-dark body.nucleo-profile-dashboard .profile-setting-danger:hover strong { color: #d65b52; }  /* era #a62f27 */

/* Caixas com fundo proprio no tema escuro: mesma logica das ferramentas. */
body.nucleo-dashboard.theme-dark .note,
body.nucleo-dashboard.theme-dark .info-box,
body.nucleo-dashboard.theme-dark .nucleo-profile-dashboard .info-box {
  background: rgba(255, 255, 255, .04);
  border-color: var(--nucleo-line);
  color: #c3d1e2;
}
body.nucleo-dashboard.theme-dark .note[data-type="success"],
body.nucleo-dashboard.theme-dark .success,
body.nucleo-dashboard.theme-dark .nucleo-head-badge {
  background: rgba(34, 197, 94, .13);
  border-color: rgba(34, 197, 94, .38);
  color: #86efac;
}
body.nucleo-dashboard.theme-dark .note[data-type="error"],
body.nucleo-dashboard.theme-dark .error {
  background: rgba(239, 68, 68, .13);
  border-color: rgba(239, 68, 68, .38);
  color: #fca5a5;
}
body.nucleo-dashboard.theme-dark .note[data-type="info"] {
  background: rgba(79, 157, 255, .13);
  border-color: rgba(79, 157, 255, .38);
  color: #93c5fd;
}
body.nucleo-dashboard.theme-dark #profileLocMsg,
body.nucleo-dashboard.theme-dark .dev-soon {
  background: rgba(245, 158, 11, .13);
  border-color: rgba(245, 158, 11, .38);
  color: #fbbf24;
}
body.nucleo-dashboard.theme-dark .future-section-status {
  background: rgba(255, 255, 255, .05);
  color: #86efac;
}
body.nucleo-dashboard.theme-dark .tool-btn.blocked {
  background: #1b2738;
  color: #9fb0c6;
}
/* Estes dois sao etiquetas de cor forte: o fundo ja e vivo, so o texto acerta. */
body.nucleo-dashboard.theme-dark .tool-card .dev-badge { color: #1f2937; }
body.nucleo-dashboard.theme-dark .dev-maint { color: #fff; }

/* Barra de Meus Projetos: campo claro com texto escuro sobre pagina escura. */
body.nucleo-projects-page.theme-dark .project-toolbar input,
body.nucleo-projects-page.theme-dark .project-toolbar select,
body.nucleo-projects-page.theme-dark .project-view-toggle {
  background: #111f30;
  border-color: var(--nucleo-line);
  color: #edf3fb;
}
