/* Shared light visual system for AwardChecker pages. */
body {
  min-height: 100vh;
  background: var(--bg-deep) !important;
  color: var(--fg) !important;
  font-family: 'DM Sans', sans-serif;
}

h1, h2, h3, h4, h5, h6 { color: var(--fg) !important; }
.auth-logo, .pricing-hero h1 span, .plan-label.gold { color: var(--accent) !important; }
.hero-sub-line { color: #815421 !important; }
.proof-ca-hero-badge, .ca-hero-badge { color: #8a4b15 !important; }

.site-nav {
  background: rgba(255, 255, 255, 0.96) !important;
  border-bottom-color: var(--border) !important;
  box-shadow: 0 2px 10px rgba(28, 51, 63, 0.04);
}

.nav-inner { gap: 16px; }
.nav-brand { color: var(--fg) !important; }
.nav-brand .highlight { color: var(--accent) !important; }
.nav-links {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  min-width: 0;
}
.nav-link, .nav-user {
  color: var(--fg-muted) !important;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.82rem;
  text-decoration: none;
}
.nav-link { padding: 6px 9px; border-radius: 6px; transition: color 0.15s, background 0.15s; }
.nav-link:hover, .nav-link:focus-visible { color: var(--accent) !important; background: var(--accent-glow); }
.nav-upgrade { border: 1px solid var(--accent-line); color: var(--accent) !important; }
.nav-user { padding: 0 6px; overflow-wrap: anywhere; }
.nav-logout { border: 1px solid var(--border) !important; background: #f5f8f9 !important; color: var(--fg-muted) !important; }

.btn-primary, .btn-action-primary, .btn-auth, .btn-go, .btn-banner-primary {
  background: var(--accent) !important;
  color: #fff !important;
  box-shadow: 0 2px 5px rgba(15, 118, 110, 0.14);
}
.btn-primary:hover, .btn-action-primary:hover, .btn-auth:hover, .btn-go:hover, .btn-banner-primary:hover {
  background: #0b625c !important;
  color: #fff !important;
}
.btn-ghost, .btn-secondary, .btn-action-secondary, .btn-banner-ghost {
  border-color: var(--border) !important;
  background: #fff !important;
  color: var(--fg-muted) !important;
}
.btn-ghost:hover, .btn-secondary:hover, .btn-action-secondary:hover, .btn-banner-ghost:hover {
  border-color: var(--accent-line) !important;
  background: #f3f8f8 !important;
  color: var(--accent) !important;
}

.app-main { padding-top: 44px; }
.app-header h1, .dash-hero h1, .report-header h1, .worker-hero h1 { color: var(--fg) !important; }
.app-header .lede, .dash-hero-sub, .panel-sub, .field-hint, .subtitle { color: var(--fg-muted); }
.panel-card, .summary-card:not(.summary-danger), .stat-card, .auth-card, .pricing-card,
.integration-card, .eba-card, .digest-section, .proof-section, .proof-input-panel,
.employee-section, .decision-card, .review-section, .xero-preview-panel, .risk-summary-stat, .digest-tile,
.history-panel, .section-wrap, .detail-grid, .ob-modal, .empty-state-card,
.api-docs-code-block, .featured-article-card, .problem-card, .feature-card,
.award-card, .urgency-card, .hero-preview-panel, .article-card, .blog-card,
.article-cta, .email-gate-card, .eh-import-panel, .eh-loaded-source,
.tooltip-box, .ob-award-btn, .success-card, .fail-card, .paga-card {
  background-color: #fff !important;
  border-color: var(--border) !important;
  box-shadow: 0 2px 8px rgba(28, 51, 63, 0.035);
}
.welcome-banner { background: #f0f8f7 !important; border-color: var(--accent-line) !important; }
.welcome-banner-text h3, .empty-state h3, .employee-title, .nav-brand { color: var(--fg) !important; }
.drop-zone, .ob-upload-card { border-color: #c8d7dc !important; }
.drop-zone:hover, .drop-zone.drag-over, .ob-upload-card:hover { background: #f0f8f7 !important; border-color: var(--accent) !important; }
.pricing-card.premium { background: #f0f8f7 !important; border-color: var(--accent-line) !important; }
.ob-award-btn-name, .eh-loaded-source-label, .tooltip-box { color: var(--fg) !important; }
.eh-loaded-source-period { color: #315b78 !important; }
.success-card { border-color: #b8dfc9 !important; }
.fail-card { border-color: #f0c5c1 !important; }

input:not([type="checkbox"]):not([type="radio"]), select, textarea,
.field-select, .form-input, .review-input, .review-select, .date-input {
  background-color: #fff !important;
  border-color: #cbd8de !important;
  color: var(--fg) !important;
}
input::placeholder, textarea::placeholder { color: #738590 !important; }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible,
.drop-zone:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid rgba(15, 118, 110, 0.28) !important;
  outline-offset: 2px;
  border-color: var(--accent) !important;
}

.table-wrap, [class$="-table-wrap"], .admin-wrap .section-wrap {
  max-width: 100%;
  overflow-x: auto !important;
  border-color: var(--border) !important;
  border-radius: 10px;
  background: #fff;
}
table { border-collapse: collapse; }
table th {
  background: #edf3f5 !important;
  color: #405562 !important;
  border-bottom: 1px solid #d4e0e4 !important;
  font-weight: 700;
}
table td {
  color: #435765 !important;
  border-bottom: 1px solid #e5ecef !important;
  vertical-align: middle;
}
table tbody tr:hover > td { background: #f6fafb !important; }
table td:first-child { overflow-wrap: anywhere; }
.results-table th, .results-table td { padding-top: 12px; padding-bottom: 12px; }
.numeric, .amount, .rate, .hours { font-variant-numeric: tabular-nums; text-align: right; }
.report-page .results-table td.col-hours,
.report-page .results-table td.col-avgday,
.report-page .results-table td.col-camin,
.report-page .results-table td.col-othrs,
.report-page .results-table td.col-baserate,
.report-page .results-table td.col-minrate,
.report-page .results-table td.col-ratepaid,
.report-page .results-table td.col-shortfall,
td[class*="-amount"], td[class*="-rate"], td[class*="-hours"], td[class*="-shortfall"] {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.badge-ok, .compliance-pill.ok, .connected-badge, .status-connected,
.tag-allow, .allow-tag, .cond-ok, .cond-allow, .compliance-banner.ok,
.xero-status-badge.synced, .success-msg, .setup-complete-banner,
.eba-list-status.confirmed, .status-pill.confirmed {
  background: #e8f5ee !important;
  border-color: #b8dfc9 !important;
  color: #216542 !important;
}
.badge-fail, .compliance-pill.bad, .violation-tag, .tag-ot,
.summary-danger, .error-msg, .not-configured-notice, .xero-sync-failure,
.compliance-banner.danger, .xero-status-badge.failed, .eba-list-status.failed {
  background: #fff0ef !important;
  border-color: #f0c5c1 !important;
  color: #a6312a !important;
}
.compliance-pill.warn, .badge-casual, .cond-penalty, .pill-penalty,
.status-warning, .xero-sync-failure-authorization, .xero-sync-failure-transient {
  background: #fff6df !important;
  border-color: #ead69b !important;
  color: #765712 !important;
}
.eba-list-status.extracted, .status-pill.extracted { background: #fff6df !important; border-color: #ead69b !important; color: #765712 !important; }
.xero-status-badge.ready { background: #fff6df !important; border-color: #ead69b !important; color: #765712 !important; }
.xero-status-badge.unavailable { background: #edf2f4 !important; border-color: #d1dde1 !important; color: #526572 !important; }
.badge-unknown, .badge-type, .badge-full-time, .badge-part-time,
.status-pill, .status-tag, .tag-break, .break-tag, .cond-break {
  background: #eaf2f8 !important;
  border-color: #c6d9e8 !important;
  color: #315b78 !important;
}
.badge-ok, .badge-fail, .badge-unknown, .badge-type, .badge-casual,
.badge-full-time, .badge-part-time, .compliance-pill, .status-pill { font-weight: 600; }
.underpay-cell, .rate-below, .stat-num.rate-low, .shortfall-cell { color: #b42318 !important; }
.stat-num.rate-high, .summary-ok .summary-num { color: #216542 !important; }
.stat-num.rate-mid { color: #765712 !important; }
.summary-num, .stat-num, .digest-tile-num, .plan-price { color: var(--fg) !important; }
.risk-summary-stat-number { color: var(--fg) !important; }
.risk-summary-stat-number.has-risk { color: #a6312a !important; }
.email-gate-error, .soft-inline-error, .no-rate { color: #a6312a !important; }
.summary-card.summary-ok { background: #edf8f1 !important; border-color: #c8e4d2 !important; }
.summary-card.summary-danger { background: #fff0ef !important; border-color: #f0c5c1 !important; }
.xero-preview-category { background: #e8f5ee !important; border-color: #b8dfc9 !important; color: #216542 !important; }
.xero-preview-category-overtime { background: #fff6df !important; border-color: #ead69b !important; color: #765712 !important; }
.xero-preview-category-penalty { background: #eaf2f8 !important; border-color: #c6d9e8 !important; color: #315b78 !important; }
.xero-preview-amount { color: #216542 !important; }
.xero-sync-status-ready, .xero-sync-status-sent, .xero-push-result-success { background: #e8f5ee !important; border-color: #b8dfc9 !important; color: #216542 !important; }
.xero-sync-status-failed, .xero-push-result-failed { background: #fff0ef !important; border-color: #f0c5c1 !important; color: #a6312a !important; }
.xero-push-result-partial, .xero-push-result-in-progress, .xero-authorization-notice { background: #fff6df !important; border-color: #ead69b !important; color: #765712 !important; }
.xero-push-result-in-progress { background: #eaf2f8 !important; border-color: #c6d9e8 !important; color: #315b78 !important; }
.xero-authorization-notice a { color: #765712 !important; }
.summary-label, .stat-label, .digest-tile-label { color: var(--fg-muted) !important; }

.filter-tab { background: #fff !important; border-color: var(--border) !important; color: var(--fg-muted) !important; }
.filter-tab:hover, .filter-tab.active { background: #eaf5f4 !important; border-color: var(--accent-line) !important; color: var(--accent) !important; }
.api-docs-code-block { color: #253641 !important; }
.api-docs-code-block code { color: inherit; }
.api-docs-code-block .k { color: #245b88 !important; }
.api-docs-code-block .s { color: #755312 !important; }
.api-docs-code-block .n { color: #a6312a !important; }
.api-docs-code-block .b { color: #216542 !important; }
.blog-card, .article-cta { background: #fff !important; border-color: var(--border) !important; }
.blog-card-meta, .blog-card-excerpt, .article-meta, .article-back,
.article-body, .article-body p, .article-body ul, .article-body ol,
.article-body blockquote, .article-cta-desc { color: var(--fg-muted) !important; }
.blog-card-title, .article-title, .article-cta-title, .article-body strong { color: var(--fg) !important; }
.blog-card-title a:hover, .blog-card-link, .article-back:hover, .article-body a { color: var(--accent) !important; }
.article-body blockquote { border-left-color: var(--accent) !important; }
.article-cta-btn { background: var(--accent) !important; color: #fff !important; }
.review-page .sticky-footer { background: rgba(255, 255, 255, 0.97) !important; border-top-color: var(--border) !important; }

@media (max-width: 760px) {
  .site-nav { padding: 0 16px; }
  .nav-inner { min-height: 60px; height: auto; flex-wrap: wrap; padding: 9px 0; }
  .nav-links { flex: 1 1 100%; justify-content: flex-start; flex-wrap: wrap; gap: 4px; }
  .nav-link { padding: 6px 8px; }
  .nav-user { max-width: 100%; }
  .app-main { padding: 32px 16px 52px; }
  .auth-card { padding: 36px 24px !important; }
  .table-wrap table, [class$="-table-wrap"] table { min-width: 620px; }
  .admin-wrap { padding: 24px 16px !important; }
}

@media (max-width: 420px) {
  .nav-brand { font-size: 1rem; }
  .nav-links { gap: 2px; }
  .nav-link { font-size: 0.78rem; padding: 5px 7px; }
  .panel-card { padding: 22px 16px !important; }
  .filter-tabs { flex-wrap: wrap; }
}

@media print {
  body { background: #fff !important; color: #172b36 !important; }
  .site-nav { display: none !important; }
}
