/* HIRECRM Enterprise Clean SaaS Final Contract
   UI-only final visual contract.
   Purpose: enforce a strict, clean, dense, production-ready B2B SaaS look
   across all public/auth/internal pages without changing business logic.
*/

:root {
  --ecs-bg: #f8fafc;
  --ecs-surface: #ffffff;
  --ecs-soft: #fbfcfe;
  --ecs-border: #e7ecf3;
  --ecs-border-soft: #edf2f7;
  --ecs-text: #0f172a;
  --ecs-muted: #64748b;
  --ecs-accent: #2563eb;
  --ecs-accent-hover: #1d4ed8;
  --ecs-success: #047857;
  --ecs-warning: #b45309;
  --ecs-danger: #dc2626;
  --ecs-focus: 0 0 0 3px rgba(37, 99, 235, .14);
  --ecs-danger-focus: 0 0 0 3px rgba(220, 38, 38, .12);
  --ecs-hover-shadow: 0 8px 20px rgba(15, 23, 42, .045);
  --ecs-radius: 12px;
  --ecs-radius-control: 8px;
  --ecs-h1: 1.5rem;
  --ecs-h1-laptop: 1.375rem;
  --ecs-h1-mobile: 1.25rem;
  --ecs-h2: 1.0625rem;
  --ecs-title: .875rem;
  --ecs-body: .8125rem;
  --ecs-small: .75rem;
  --ecs-xs: .6875rem;
  --ecs-control: 34px;
  --ecs-control-sm: 30px;
  --ecs-control-lg: 38px;
}

/* App base */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
  background: var(--ecs-bg) !important;
}

body,
input,
select,
textarea,
button {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* Public pages cannot show internal CRM chrome */
[data-public-page] .topbar,
[data-public-page] .sidebar,
[data-public-page] .global-search,
[data-public-page] .command-palette,
[data-public-page] .global-ai-widget,
[data-public-page] .worker-ai-chat,
[data-public-page] .mobile-bottom-nav,
[data-public-page] [data-global-search],
[data-public-page] [data-command-palette],
[data-public-page] [data-global-ai-widget],
[data-public-page] [data-pwa-install],
[data-public-page] [data-install-prompt],
[data-public-page] .pwa-install,
[data-public-page] .pwa-install-banner,
[data-public-page] .install-banner,
[data-public-page] [class*="debug"],
[data-public-page] [class*="demo"],
[data-public-page] [data-system-diagnostics],
[data-public-page] [data-demo-cta] {
  display: none !important;
}

/* Workspace background logic */
.main-content,
.page-container,
.content-wrapper,
.dashboard-content,
.app-content {
  min-width: 0 !important;
  background: var(--ecs-bg) !important;
  overflow-x: hidden !important;
}

.page-shell,
.enterprise-page,
.workspace-shell,
.dashboard-page,
.ai-assistant-page,
.daily-reports-compact,
.calendar-page,
.task-list-enterprise-page,
.residence-page,
.factory-page,
.factories-page,
.users-page,
.user-create-page,
.workers-page,
.recruitment-page,
.attendance-page,
.transport-page,
.finance-page,
.invoices-page,
.payroll-page,
.advances-page,
.sales-page,
.integrations-page,
.workflow-center-page,
.statistics-page {
  min-width: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Headers: no hero/banner look */
.page-intro,
.page-header,
.workspace-header,
[class*="hero"],
[class*="banner"],
[class*="gradient"],
[class*="firstscreen"],
[class*="subsection"],
.surface-banner,
.detail-section__intro {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.page-intro,
.page-header,
.workspace-header {
  padding: 0 !important;
  margin-bottom: 12px !important;
}

/* Typography */
.page-shell h1,
.enterprise-page h1,
.workspace-shell h1,
.page-intro__title,
.page-title,
.page-header h1,
.workspace-header h1,
.public-auth-heading h1 {
  margin: 0 !important;
  font-size: var(--ecs-h1) !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
  letter-spacing: -.03em !important;
  color: var(--ecs-text) !important;
  overflow: visible !important;
  max-height: none !important;
  padding-block: 1px 2px !important;
}

.page-shell h2,
.enterprise-page h2,
.workspace-shell h2,
.card-title,
.panel-card__title,
.section-title,
.report-card__title,
.registry-card__title {
  font-size: var(--ecs-h2) !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  color: var(--ecs-text) !important;
}

.card [class$="__title"],
.panel-card [class$="__title"],
.section-card [class$="__title"],
.table-card [class$="__title"],
.registry-card [class$="__title"],
.card-title {
  font-size: var(--ecs-title) !important;
  line-height: 1.28 !important;
}

.page-shell,
.enterprise-page,
.workspace-shell,
.page-container {
  font-size: var(--ecs-body) !important;
  line-height: 1.42 !important;
}

p,
.card-subtitle,
.panel-card__subtitle,
.section-subtitle,
.page-description,
.page-meta,
.help-text,
.helper-text,
.field-help,
.form-help,
.helptext,
[class$="__description"],
[class$="__hint"],
[class$="__meta"] {
  font-size: var(--ecs-body) !important;
  line-height: 1.4 !important;
  color: var(--ecs-muted) !important;
}

label,
.form-label,
.field-label,
.eyebrow,
.card-eyebrow,
small,
.stat-card__label,
.metric-card__label,
.kpi-card__label {
  font-size: var(--ecs-small) !important;
  line-height: 1.35 !important;
  color: var(--ecs-muted) !important;
}

/* Cards / panels */
.card,
.panel,
.panel-card,
.section-card,
.content-card,
.dashboard-card,
.calendar-card,
.factory-card,
.report-card,
.registry-card,
.queue-card,
.detail-card,
.form-card,
.table-card,
.filter-card,
.filter-panel,
[class$="-card"],
[class*="__card"] {
  background: var(--ecs-surface) !important;
  border-color: var(--ecs-border) !important;
  border-radius: var(--ecs-radius) !important;
  box-shadow: none !important;
}

.card-header,
.panel-card__header,
.section-card__header,
.table-card__header {
  background: var(--ecs-surface) !important;
  border-color: var(--ecs-border-soft) !important;
}

.card-body,
.panel-card__body,
.section-card__body,
.table-card__body {
  background: transparent !important;
}

a.card:hover,
.card[data-clickable]:hover,
.task-card:hover,
.kanban-card:hover,
[class$="-card"][data-clickable]:hover {
  border-color: #bfdbfe !important;
  box-shadow: var(--ecs-hover-shadow) !important;
}

/* Buttons */
.btn,
.button,
button:not(.sidebar *):not(.topbar *):not(.global-ai-widget *):not(.worker-ai-chat *),
input[type="submit"],
input[type="button"] {
  min-height: var(--ecs-control) !important;
  height: auto !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  border-radius: var(--ecs-radius-control) !important;
  font-size: var(--ecs-body) !important;
  line-height: 1.25 !important;
  font-weight: 750 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
  overflow: visible !important;
  text-decoration: none !important;
  transition: background-color .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease, transform .08s ease !important;
}

.btn-sm,
.btn.btn-sm,
.button-sm,
.btn-small,
button.btn-sm,
td .btn,
.table-actions .btn {
  min-height: var(--ecs-control-sm) !important;
  padding-inline: 10px !important;
  font-size: var(--ecs-small) !important;
}

.btn-lg,
.btn.btn-lg,
.button-lg {
  min-height: var(--ecs-control-lg) !important;
  font-size: .875rem !important;
}

.btn:active,
.button:active,
button:not(.sidebar *):not(.topbar *):not(.global-ai-widget *):not(.worker-ai-chat *):active {
  transform: translateY(1px);
}

.btn-primary,
.button-primary,
button.btn-primary {
  background: var(--ecs-accent) !important;
  border-color: var(--ecs-accent) !important;
  color: #fff !important;
}

.btn-primary:hover,
.button-primary:hover,
button.btn-primary:hover {
  background: var(--ecs-accent-hover) !important;
  border-color: var(--ecs-accent-hover) !important;
}

.btn-secondary,
.btn-outline,
.button-secondary {
  background: #fff !important;
  border-color: var(--ecs-border) !important;
  color: #334155 !important;
}

.btn-secondary:hover,
.btn-outline:hover,
.button-secondary:hover {
  background: var(--ecs-bg) !important;
  border-color: #cbd5e1 !important;
}

.btn-danger,
.button-danger {
  background: var(--ecs-danger) !important;
  border-color: var(--ecs-danger) !important;
  color: #fff !important;
}

.btn[disabled],
.button[disabled],
button[disabled],
.btn.is-loading,
.btn.is-disabled {
  opacity: .62 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* Forms */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select,
.form-input,
.form-select {
  min-height: var(--ecs-control) !important;
  height: auto !important;
  padding: 0 10px !important;
  border-radius: var(--ecs-radius-control) !important;
  border: 1px solid var(--ecs-border) !important;
  background: #fff !important;
  color: var(--ecs-text) !important;
  font-size: var(--ecs-body) !important;
  line-height: 1.25 !important;
  box-shadow: none !important;
}

textarea,
.form-textarea {
  min-height: 38px !important;
  max-height: 160px;
  padding: 8px 10px !important;
  border-radius: var(--ecs-radius-control) !important;
  border: 1px solid var(--ecs-border) !important;
  background: #fff !important;
  color: var(--ecs-text) !important;
  font-size: var(--ecs-body) !important;
  line-height: 1.4 !important;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
.btn:focus-visible,
.button:focus-visible,
a:focus-visible {
  outline: none !important;
  border-color: var(--ecs-accent) !important;
  box-shadow: var(--ecs-focus) !important;
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"],
.form-input.is-invalid,
.form-select.is-invalid,
.form-textarea.is-invalid {
  border-color: var(--ecs-danger) !important;
  box-shadow: var(--ecs-danger-focus) !important;
}

/* Tables */
.table-card,
.table-container,
.table-responsive,
.platform-table-wrapper,
.registry-table-wrapper,
.card-body:has(table),
.panel-card__body:has(table),
.section-card__body:has(table) {
  max-width: 100% !important;
  overflow-x: auto !important;
  background: var(--ecs-surface) !important;
  border-color: var(--ecs-border) !important;
  border-radius: var(--ecs-radius) !important;
  box-shadow: none !important;
}

table,
.data-table,
.platform-table,
.registry-table {
  width: 100%;
  background: var(--ecs-surface) !important;
  font-size: var(--ecs-body) !important;
  line-height: 1.35 !important;
}

table thead th,
.data-table thead th,
.platform-table thead th,
.registry-table thead th {
  height: 36px !important;
  padding: 0 12px !important;
  background: var(--ecs-soft) !important;
  border-bottom: 1px solid var(--ecs-border) !important;
  font-size: var(--ecs-xs) !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
  color: var(--ecs-muted) !important;
  white-space: nowrap !important;
}

table tbody td,
.data-table tbody td,
.platform-table tbody td,
.registry-table tbody td {
  min-height: 40px !important;
  height: 44px !important;
  padding: 6px 12px !important;
  border-bottom: 1px solid var(--ecs-border-soft) !important;
  font-size: var(--ecs-body) !important;
  line-height: 1.35 !important;
}

table tbody tr:hover,
.data-table tbody tr:hover,
.platform-table tbody tr:hover,
.registry-table tbody tr:hover {
  background: var(--ecs-bg) !important;
}

/* Tabs / chips / badges */
.section-tabs,
.nav-tabs,
.tab-list,
.tabs,
[role="tablist"] {
  background: transparent !important;
  border-bottom: 1px solid var(--ecs-border) !important;
  box-shadow: none !important;
}

.section-tabs a,
.section-tabs button,
.nav-tabs a,
.nav-tabs button,
.tab-list a,
.tab-list button,
.tabs a,
.tabs button,
[role="tab"] {
  min-height: 32px !important;
  padding: 0 4px !important;
  background: transparent !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  font-size: var(--ecs-body) !important;
  line-height: 1.25 !important;
  font-weight: 750 !important;
  color: var(--ecs-muted) !important;
}

[role="tab"][aria-selected="true"],
.section-tabs .is-active,
.nav-tabs .is-active,
.tab-list .is-active,
.tabs .is-active {
  color: var(--ecs-text) !important;
  border-bottom-color: var(--ecs-accent) !important;
}

.badge,
.status-badge,
.priority-pill,
.chip,
.pill,
.tag,
.task-list-enterprise-status,
.task-list-enterprise-priority {
  min-height: 22px !important;
  height: auto !important;
  padding: 2px 8px !important;
  border-radius: 999px !important;
  font-size: var(--ecs-small) !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  box-shadow: none !important;
}

/* Empty / loading / error */
.empty-state,
.empty-card,
.no-data,
[data-empty-state],
[class*="empty-state"] {
  min-height: 0 !important;
  max-height: 72px !important;
  padding: 10px 12px !important;
  background: var(--ecs-surface) !important;
  border: 1px dashed var(--ecs-border) !important;
  color: var(--ecs-muted) !important;
  box-shadow: none !important;
}

.skeleton,
.loading-skeleton,
.skeleton-line,
[data-skeleton] {
  position: relative;
  overflow: hidden;
  background: #eaf0f7 !important;
  color: transparent !important;
  border-radius: 8px !important;
}

.skeleton::after,
.loading-skeleton::after,
.skeleton-line::after,
[data-skeleton]::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.62), transparent);
  animation: ecs-skeleton 1.35s infinite;
}

@keyframes ecs-skeleton {
  100% { transform: translateX(100%); }
}

.alert-danger,
.alert-error,
.notice-danger,
.callout-danger {
  background: #fef2f2 !important;
  border-color: #fecaca !important;
  color: var(--ecs-danger) !important;
}

.alert-warning,
.notice-warning,
.callout-warning,
.page-banner-warning {
  background: #fffbeb !important;
  border-color: #fde68a !important;
  color: var(--ecs-warning) !important;
}

.alert-success,
.notice-success,
.callout-success {
  background: #f0fdf4 !important;
  border-color: #bbf7d0 !important;
  color: var(--ecs-success) !important;
}

/* AI surfaces */
.ai-assistant-chat,
.global-ai-widget__panel,
.worker-ai-chat__panel {
  background: var(--ecs-surface) !important;
  border: 1px solid var(--ecs-border) !important;
  box-shadow: none !important;
  opacity: 1 !important;
}

.ai-assistant-messages {
  background: var(--ecs-surface) !important;
}

.ai-message__bubble {
  line-height: 1.45 !important;
  color: var(--ecs-text);
}

.global-ai-widget__tab {
  opacity: 1 !important;
  filter: none !important;
}

/* Public login */
.public-auth-card {
  background: var(--ecs-surface) !important;
  border: 1px solid var(--ecs-border) !important;
  box-shadow: 0 18px 55px rgba(15, 23, 42, .08) !important;
}

.public-auth-field input,
.public-auth-submit {
  min-height: 42px !important;
  font-size: .875rem !important;
}

/* Mobile / laptop */
@media (max-width: 1440px), (max-height: 850px) {
  :root {
    --ecs-h1: var(--ecs-h1-laptop);
    --ecs-control: 32px;
  }

  .page-container,
  [data-role-page-container="1"] {
    padding-inline: 12px !important;
  }

  .page-shell h1,
  .enterprise-page h1,
  .workspace-shell h1,
  .page-intro__title,
  .page-title {
    font-size: var(--ecs-h1-laptop) !important;
  }

  table tbody td,
  .data-table tbody td,
  .platform-table tbody td,
  .registry-table tbody td {
    height: 40px !important;
  }
}

@media (max-width: 768px) {
  :root {
    --ecs-h1: var(--ecs-h1-mobile);
  }

  .page-container,
  [data-role-page-container="1"] {
    padding-inline: 10px !important;
  }

  .page-shell h1,
  .enterprise-page h1,
  .workspace-shell h1,
  .page-intro__title,
  .page-title,
  .public-auth-heading h1 {
    font-size: var(--ecs-h1-mobile) !important;
  }

  .action-bar,
  .quick-actions,
  .toolbar,
  .section-tabs,
  .tab-list,
  .nav-tabs {
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 390px) {
  .page-container,
  [data-role-page-container="1"] {
    padding-inline: 8px !important;
  }

  .modal,
  .dialog,
  .drawer {
    max-width: calc(100vw - 16px) !important;
  }

  .btn,
  .button,
  button:not(.sidebar *):not(.topbar *):not(.global-ai-widget *):not(.worker-ai-chat *) {
    min-height: 34px !important;
  }

  .public-auth-card {
    max-width: calc(100vw - 24px) !important;
  }
}

/* Protected shell */
.sidebar,
.sidebar *,
.topbar,
.topbar *,
.global-search,
.global-search *,
.global-ai-widget,
.global-ai-widget *,
.worker-ai-chat,
.worker-ai-chat *,
.mobile-bottom-nav,
.mobile-bottom-nav * {
  text-rendering: auto;
}
