/* Light surfaces + typography over legacy dark-themed inline blocks.
   Load after page <style>; body must have vp-mosaic-layout + #validas-mosaic. */

body.vp-mosaic-layout {
  background: var(--vp-page-bg) !important;
  color: var(--vp-text);
}

body.vp-mosaic-layout.centered-fill {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  padding: 2rem 1rem;
}

/* --- Generic layout wrappers --- */
body.vp-mosaic-layout .page,
body.vp-mosaic-layout .shell {
  position: relative;
  z-index: 0;
}

body.vp-mosaic-layout .card {
  background: var(--vp-card-bg) !important;
  border: 1px solid var(--vp-line) !important;
  box-shadow: var(--vp-shadow-soft) !important;
  backdrop-filter: blur(10px);
  color: var(--vp-text);
}

body.vp-mosaic-layout h1,
body.vp-mosaic-layout h2,
body.vp-mosaic-layout h3 {
  color: var(--vp-text);
}

body.vp-mosaic-layout .muted,
body.vp-mosaic-layout .trail,
body.vp-mosaic-layout .brand-sub {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .wordmark {
  color: var(--vp-text);
}

body.vp-mosaic-layout .wordmark span:last-child {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .back-link,
body.vp-mosaic-layout .back {
  color: var(--vp-accent);
  border-bottom-color: rgba(3, 105, 161, 0.45);
}

body.vp-mosaic-layout .footer,
body.vp-mosaic-layout .footer a {
  border-top-color: var(--vp-line);
  color: var(--vp-muted);
}

body.vp-mosaic-layout .footer a {
  color: var(--vp-accent);
  border-bottom-color: rgba(3, 105, 161, 0.4);
}

/* --- Tables --- */
body.vp-mosaic-layout table th {
  color: var(--vp-muted);
  border-bottom-color: var(--vp-line);
}

body.vp-mosaic-layout table tr:nth-child(even) td,
body.vp-mosaic-layout table tr:nth-child(odd) td {
  background: rgba(248, 251, 255, 0.85);
}

body.vp-mosaic-layout table tr:nth-child(odd) td {
  background: rgba(238, 244, 251, 0.55);
}

body.vp-mosaic-layout tr.selected td {
  background: linear-gradient(90deg, rgba(59, 130, 246, 0.55), rgba(56, 189, 248, 0.5)) !important;
  color: #0f172a;
}

body.vp-mosaic-layout .field-label {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .field-value {
  color: var(--vp-text);
}

body.vp-mosaic-layout .divider {
  background: var(--vp-line);
}

/* --- Inputs / selects --- */
body.vp-mosaic-layout input[type='text'],
body.vp-mosaic-layout input[type='email'],
body.vp-mosaic-layout input[type='password'],
body.vp-mosaic-layout input[type='date'],
body.vp-mosaic-layout input[type='file'],
body.vp-mosaic-layout select,
body.vp-mosaic-layout textarea {
  background: #f8fbff !important;
  color: var(--vp-text) !important;
  border: 1px solid var(--vp-line) !important;
}

body.vp-mosaic-layout .label-text {
  color: var(--vp-text);
}

body.vp-mosaic-layout .hint {
  color: var(--vp-muted);
}

body.vp-mosaic-layout ul {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .section-title {
  color: var(--vp-muted);
}

/* --- Pills / badges --- */
body.vp-mosaic-layout .pill-mode,
body.vp-mosaic-layout .pill,
body.vp-mosaic-layout .badge-pill,
body.vp-mosaic-layout .pill-type {
  color: var(--vp-accent);
  background: rgba(3, 105, 161, 0.08);
  border-color: rgba(3, 105, 161, 0.35);
}

body.vp-mosaic-layout .pill-warning {
  color: #a16207;
  background: rgba(250, 204, 21, 0.15);
  border-color: rgba(202, 138, 4, 0.5);
}

body.vp-mosaic-layout .pill-danger {
  color: #b91c1c;
  background: rgba(254, 202, 202, 0.45);
  border-color: rgba(248, 113, 113, 0.6);
}

body.vp-mosaic-layout .pill-verified {
  color: #166534;
  background: rgba(187, 247, 208, 0.45);
  border-color: rgba(34, 197, 94, 0.45);
}

body.vp-mosaic-layout .pill-mode {
  color: var(--vp-accent);
  background: rgba(59, 130, 246, 0.1);
}

body.vp-mosaic-layout .badge {
  background: #f8fbff;
  border-color: var(--vp-line);
  color: var(--vp-text);
}

body.vp-mosaic-layout .doc-type-badge {
  background: rgba(59, 130, 246, 0.1);
  border-color: rgba(59, 130, 246, 0.35);
  color: var(--vp-accent);
}

body.vp-mosaic-layout .doc-type-badge.auto {
  background: rgba(34, 197, 94, 0.1);
  border-color: rgba(34, 197, 94, 0.4);
  color: #15803d;
}

body.vp-mosaic-layout table .pill:not(.pill-warning):not(.pill-danger):not(.pill-verified) {
  color: #14532d;
  background: rgba(34, 197, 94, 0.12);
  border-color: rgba(22, 163, 74, 0.35);
}

body.vp-mosaic-layout .pill-row .pill {
  background: rgba(56, 189, 248, 0.12);
  border-color: rgba(3, 105, 161, 0.28);
  color: var(--vp-accent);
}

body.vp-mosaic-layout a.file-link,
body.vp-mosaic-layout .doc-filename-link,
body.vp-mosaic-layout a.helper {
  color: var(--vp-accent);
  border-bottom-color: rgba(3, 105, 161, 0.4);
}

/* --- Timeline blocks --- */
body.vp-mosaic-layout .timeline,
body.vp-mosaic-layout .timeline-vertical {
  border-color: var(--vp-line);
  background: rgba(248, 251, 255, 0.75);
}

body.vp-mosaic-layout .timeline-item {
  border-bottom-color: var(--vp-line);
}

body.vp-mosaic-layout .timeline-icon {
  background: #fff;
  border-color: var(--vp-line);
  color: var(--vp-text);
}

body.vp-mosaic-layout .timeline-title {
  color: var(--vp-text);
}

body.vp-mosaic-layout .timeline-meta {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .summary-card {
  border-color: var(--vp-line);
  background: rgba(248, 251, 255, 0.9);
}

body.vp-mosaic-layout .urgency-pill {
  background: #fff;
  border-color: var(--vp-line);
  color: var(--vp-text);
}

body.vp-mosaic-layout .deadline-bar {
  background: rgba(200, 212, 227, 0.45);
}

body.vp-mosaic-layout .detected-card {
  border-color: rgba(56, 189, 248, 0.5);
  background: rgba(224, 242, 254, 0.45);
}

body.vp-mosaic-layout .grant-window-card {
  border-color: var(--vp-line);
  background: rgba(248, 251, 255, 0.85);
}

body.vp-mosaic-layout .timeline-widget {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(238, 244, 251, 0.95));
  border-color: rgba(56, 189, 248, 0.4);
  box-shadow: var(--vp-shadow-soft);
}

body.vp-mosaic-layout .timeline-widget h3 {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .timeline-step-label {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .timeline-step-value {
  color: var(--vp-text);
}

body.vp-mosaic-layout .timeline-step-num {
  background: rgba(56, 189, 248, 0.15);
  border-color: rgba(56, 189, 248, 0.45);
  color: var(--vp-accent);
}

body.vp-mosaic-layout .timeline-widget .timeline-deadline-bar-wrap {
  border-top-color: var(--vp-line);
}

/* Tabs (admin / portal) */
body.vp-mosaic-layout .tab-btn {
  border-color: var(--vp-line);
  background: #f8fbff;
  color: var(--vp-muted);
}

body.vp-mosaic-layout .tab-btn.active {
  background: rgba(59, 130, 246, 0.15);
  color: var(--vp-accent);
  border-color: rgba(59, 130, 246, 0.45);
}

/* Horizontal workflow timeline */
body.vp-mosaic-layout .timeline-node-dot {
  border-color: rgba(255, 255, 255, 0.95) !important;
  box-shadow: 0 0 0 1px var(--vp-line);
}

body.vp-mosaic-layout .timeline-box.client {
  background: rgba(200, 212, 227, 0.25);
  border-color: var(--vp-line);
  color: var(--vp-muted);
}

body.vp-mosaic-layout .timeline-box.agent {
  background: var(--vp-accent-soft-bg);
  border-color: rgba(56, 189, 248, 0.45);
  color: var(--vp-accent);
}

body.vp-mosaic-layout .timeline-arrow {
  background: var(--vp-line);
}

body.vp-mosaic-layout .workflow-step-current {
  background: rgba(56, 189, 248, 0.12) !important;
  border-color: rgba(56, 189, 248, 0.55) !important;
  color: var(--vp-accent);
}

body.vp-mosaic-layout .workflow-step-done {
  opacity: 0.75;
}

/* Forms – intake drop zones */
body.vp-mosaic-layout .drop-zone {
  border-color: rgba(3, 105, 161, 0.45);
  background: rgba(248, 251, 255, 0.75);
}

body.vp-mosaic-layout .drop-zone:hover,
body.vp-mosaic-layout .drop-zone.dragover {
  border-color: var(--vp-accent);
  background: rgba(56, 189, 248, 0.12);
}

body.vp-mosaic-layout .drop-zone.has-file {
  border-color: rgba(22, 163, 74, 0.55);
  background: rgba(187, 247, 208, 0.25);
}

body.vp-mosaic-layout .drop-zone .title {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .drop-zone .accept,
body.vp-mosaic-layout .service-row label {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .drop-zone .file-name {
  color: #15803d;
}

body.vp-mosaic-layout .drop-zone .remove {
  color: #b91c1c;
}

body.vp-mosaic-layout .status.progress {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .status.error,
body.vp-mosaic-layout .error-msg,
body.vp-mosaic-layout .error {
  color: #b91c1c;
}

body.vp-mosaic-layout .error-msg {
  background: rgba(254, 202, 202, 0.45);
  border-color: rgba(248, 113, 113, 0.45);
}

body.vp-mosaic-layout .status.success,
body.vp-mosaic-layout .success {
  color: #166534;
}

body.vp-mosaic-layout .form-status.success {
  color: #166534;
}

body.vp-mosaic-layout .form-status.error {
  color: #b91c1c;
}

/* Landing / index route tiles */
body.vp-mosaic-layout .routes .route-card {
  background: var(--vp-card-bg) !important;
  border: 1px solid var(--vp-line);
  box-shadow: var(--vp-shadow-soft);
}

body.vp-mosaic-layout .route-body {
  color: var(--vp-text);
}

body.vp-mosaic-layout .route-title,
body.vp-mosaic-layout .route-title small {
  color: var(--vp-text);
}

body.vp-mosaic-layout .route-title small {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .route-kicker {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .route-glyph {
  background: #f8fbff;
  border-color: var(--vp-line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

body.vp-mosaic-layout .hero-line {
  border-color: rgba(3, 105, 161, 0.35);
  background: var(--vp-accent-soft-bg);
  color: var(--vp-accent);
}

body.vp-mosaic-layout .hero h1,
body.vp-mosaic-layout .hero p {
  color: var(--vp-text);
}

body.vp-mosaic-layout .hero p {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .hero p strong {
  color: var(--vp-text);
}

/* Landing · hero slogans: 3-column band aligned with .routes below */
body.vp-mosaic-layout .hero-slogans {
  margin-top: 1.35rem;
  width: 100%;
  max-width: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  align-items: stretch;
  padding: 1.05rem 1.25rem;
  border-radius: 18px;
  border: 1px solid var(--vp-line);
  background: rgba(255, 255, 255, 0.58);
  box-shadow: 0 10px 28px rgba(43, 74, 105, 0.08);
}

body.vp-mosaic-layout .hero-slogan-cell {
  padding: 0.25rem 20px;
  display: flex;
  align-items: center;
}

body.vp-mosaic-layout .hero-slogan-cell:first-child {
  padding-left: 0;
}

body.vp-mosaic-layout .hero-slogan-cell:last-child {
  padding-right: 0;
}

body.vp-mosaic-layout .hero-slogan-cell:not(:first-child) {
  border-left: 1px solid rgba(200, 212, 227, 0.95);
  padding-left: 20px;
  margin-left: 0;
}

body.vp-mosaic-layout .hero-slogan-cell p {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.42;
  font-weight: 600;
  letter-spacing: -0.012em;
  color: var(--vp-text);
  text-wrap: balance;
}

@media (max-width: 900px) {
  body.vp-mosaic-layout .hero-slogans {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 1rem 1rem;
  }
  body.vp-mosaic-layout .hero-slogan-cell {
    padding: 0.65rem 0;
    align-items: flex-start;
    border-left: none !important;
  }
  body.vp-mosaic-layout .hero-slogan-cell:not(:first-child) {
    border-top: 1px solid rgba(200, 212, 227, 0.95);
  }
  body.vp-mosaic-layout .hero-slogan-cell p {
    font-size: 0.895rem;
  }
}

body.vp-mosaic-layout .soon-badge {
  background: rgba(250, 204, 21, 0.15);
  border-color: rgba(202, 138, 4, 0.4);
  color: #b45309;
}

/* Entry / gateway cards (EP entry, etc.) */
body.vp-mosaic-layout .route-pill,
body.vp-mosaic-layout .trail-pill {
  background: var(--vp-accent-soft-bg);
  border-color: rgba(56, 189, 248, 0.45);
  color: var(--vp-accent);
}

body.vp-mosaic-layout .who-lead {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .who-body,
body.vp-mosaic-layout .who-list {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .who-sub,
body.vp-mosaic-layout .who-title {
  color: var(--vp-text);
}

body.vp-mosaic-layout .signals-card {
  background: rgba(224, 242, 254, 0.55);
  border-color: rgba(56, 189, 248, 0.4);
}

body.vp-mosaic-layout .signals-card h3,
body.vp-mosaic-layout .signals-card .readiness {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .signals-card .types {
  color: var(--vp-text);
}

body.vp-mosaic-layout #admin-header,
body.vp-mosaic-layout .header {
  border-bottom-color: var(--vp-line) !important;
}

body.vp-mosaic-layout .header-links a,
body.vp-mosaic-layout #admin-header-links a {
  color: var(--vp-accent);
}

/* EP gateway / entry cards */
body.vp-mosaic-layout article.card-new {
  background: linear-gradient(155deg, rgba(187, 247, 208, 0.55), rgba(255, 255, 255, 0.96)) !important;
  border-color: rgba(22, 163, 74, 0.38) !important;
}

body.vp-mosaic-layout article.card-existing {
  background: linear-gradient(155deg, rgba(224, 242, 254, 0.72), rgba(255, 255, 255, 0.95)) !important;
  border-color: rgba(59, 130, 246, 0.38) !important;
}

body.vp-mosaic-layout .lede {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .card-copy,
body.vp-mosaic-layout .hint {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .card-title {
  color: var(--vp-text);
}

body.vp-mosaic-layout .mini-foot a {
  color: var(--vp-accent);
  border-bottom-color: rgba(3, 105, 161, 0.4);
}

body.vp-mosaic-layout .mini-foot {
  color: var(--vp-muted);
  border-top-color: var(--vp-line);
}

/* Who we are · feature grids */
body.vp-mosaic-layout .who-contact-link,
body.vp-mosaic-layout .workspace-kicker {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .who-phone,
body.vp-mosaic-layout .who-address-title {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .who-address,
body.vp-mosaic-layout .workspace-section {
  border-top-color: var(--vp-line);
}

body.vp-mosaic-layout .feat-item {
  background: rgba(248, 251, 255, 0.95);
  border-color: var(--vp-line);
  box-shadow: var(--vp-shadow-soft);
}

body.vp-mosaic-layout .feat-item h4 {
  color: var(--vp-text);
}

body.vp-mosaic-layout .feat-item p {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .flow-box {
  background: rgba(224, 242, 254, 0.45);
  border-color: rgba(56, 189, 248, 0.35);
}

body.vp-mosaic-layout .flow-step {
  background: #fff;
  border-color: var(--vp-line);
  color: var(--vp-muted);
}

body.vp-mosaic-layout .flow-step strong {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .workspace-lead {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .who-body strong {
  color: var(--vp-text);
}

body.vp-mosaic-layout .site-footer {
  border-top-color: var(--vp-line);
  color: var(--vp-muted);
}

body.vp-mosaic-layout .site-footer a {
  color: var(--vp-accent);
}

body.vp-mosaic-layout .anatomy-widget {
  background: rgba(248, 251, 255, 0.95);
  border: 1px solid var(--vp-line);
  border-radius: 14px;
  padding: 16px;
  margin-top: 14px;
  box-shadow: var(--vp-shadow-soft);
}

body.vp-mosaic-layout .anatomy-widget h3,
body.vp-mosaic-layout .anatomy-widget h4 {
  color: var(--vp-text);
}

body.vp-mosaic-layout.centered-fill .card > form label {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .contact-widget {
  background: rgba(248, 251, 255, 0.95);
  border-color: var(--vp-line);
  box-shadow: var(--vp-shadow-soft);
}

body.vp-mosaic-layout .contact-widget-title {
  color: var(--vp-muted);
}

body.vp-mosaic-layout .contact-query-btn {
  color: var(--vp-accent);
  border-color: rgba(3, 105, 161, 0.35);
  background: rgba(56, 189, 248, 0.08);
}
