/* Pulsar67 V2 — corporate console / client portal skin.
   Loaded after components.css on authenticated shells. Goal: quieter surfaces,
   sharper hierarchy, less glow/pill clutter, enterprise dashboard density. */

:is(.p67-console-body, .p67-client-portal-body) {
  --p67-v2-bg: #f4f5f7;
  --p67-v2-surface: #ffffff;
  --p67-v2-surface-muted: #f8f9fb;
  --p67-v2-border: #e3e6eb;
  --p67-v2-border-strong: #cfd4dc;
  --p67-v2-ink: #111827;
  --p67-v2-ink-soft: #374151;
  --p67-v2-muted: #6b7280;
  --p67-v2-radius: 6px;
  --p67-v2-radius-lg: 8px;
  --p67-v2-shadow: none;
  --p67-v2-accent: #3f3fad;
  --p67-v2-accent-soft: #eef0fa;
  --p67-console-bg: var(--p67-v2-bg);
  --p67-surface-1: var(--p67-v2-surface);
  --p67-surface-2: var(--p67-v2-bg);
  --p67-surface-3: var(--p67-v2-surface-muted);
  --p67-border: var(--p67-v2-border);
  --p67-border-strong: var(--p67-v2-border-strong);
  --p67-ink: var(--p67-v2-ink);
  --p67-ink-soft: var(--p67-v2-ink-soft);
  --p67-ink-muted: var(--p67-v2-muted);
  --p67-radius-sm: var(--p67-v2-radius);
  --p67-radius-md: var(--p67-v2-radius-lg);
  --p67-radius-lg: var(--p67-v2-radius-lg);
  --p67-shadow-sm: var(--p67-v2-shadow);
  --p67-shadow-md: var(--p67-v2-shadow);
  --p67-brand: var(--p67-v2-accent);
  --p67-brand-strong: #32328f;
  --p67-brand-soft: var(--p67-v2-accent-soft);
  --p67-font-head: var(--p67-font-body);
  background: var(--p67-v2-bg);
  color: var(--p67-v2-ink);
}

html[data-p67-theme="dark"] :is(.p67-console-body, .p67-client-portal-body) {
  --p67-v2-bg: #12141a;
  --p67-v2-surface: #1a1d26;
  --p67-v2-surface-muted: #222632;
  --p67-v2-border: rgba(255, 255, 255, 0.1);
  --p67-v2-border-strong: rgba(255, 255, 255, 0.18);
  --p67-v2-ink: #f3f4f6;
  --p67-v2-ink-soft: #d1d5db;
  --p67-v2-muted: #9ca3af;
  --p67-v2-accent: #8b8cf0;
  --p67-v2-accent-soft: rgba(139, 140, 240, 0.14);
}

/* ---------- Lucide icon reliability ---------- */
:is(.p67-console-body, .p67-client-portal-body) :is(i[data-lucide], svg.lucide, svg[data-lucide]) {
  display: inline-block;
  flex: 0 0 auto;
  height: 1rem;
  stroke-width: 1.8;
  vertical-align: -0.125em;
  width: 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-button :is(svg.lucide, svg[data-lucide], i[data-lucide]),
:is(.p67-console-body, .p67-client-portal-body) .nav-link :is(svg.lucide, svg[data-lucide], i[data-lucide]),
:is(.p67-console-body, .p67-client-portal-body) .p67-card__title :is(svg.lucide, svg[data-lucide], i[data-lucide]),
:is(.p67-console-body, .p67-client-portal-body) .p67-stat__label :is(svg.lucide, svg[data-lucide], i[data-lucide]) {
  height: 1rem;
  width: 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-icon :is(svg.lucide, svg[data-lucide], i[data-lucide]) {
  height: 1.15rem;
  width: 1.15rem;
}

/* Empty placeholders stay reserved so layout does not jump before replace. */
:is(.p67-console-body, .p67-client-portal-body) i[data-lucide]:not(:has(svg)) {
  background: transparent;
  color: inherit;
}

/* ---------- Shell ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-console-shell,
:is(.p67-console-body, .p67-client-portal-body) .dashboard-shell {
  background: var(--p67-v2-bg);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-console-sidebar,
:is(.p67-console-body, .p67-client-portal-body) .sidebar {
  background: var(--p67-v2-surface);
  border-right: 1px solid var(--p67-v2-border);
}

:is(.p67-console-body, .p67-client-portal-body) .sidebar-label {
  color: var(--p67-v2-muted);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-console-sidebar .nav-link,
:is(.p67-console-body, .p67-client-portal-body) .sidebar .nav-link {
  border: 0;
  border-radius: var(--p67-v2-radius);
  color: var(--p67-v2-ink-soft);
  font-size: 0.875rem;
  font-weight: 500;
  min-height: 2.125rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-console-sidebar .nav-link:hover,
:is(.p67-console-body, .p67-client-portal-body) .sidebar .nav-link:hover {
  background: var(--p67-v2-surface-muted);
  color: var(--p67-v2-ink);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-console-sidebar .nav-link.is-active,
:is(.p67-console-body, .p67-client-portal-body) .p67-console-sidebar .nav-link[aria-current="page"],
:is(.p67-console-body, .p67-client-portal-body) .sidebar .nav-link.is-active,
:is(.p67-console-body, .p67-client-portal-body) .sidebar .nav-link[aria-current="page"] {
  background: var(--p67-v2-accent-soft);
  color: var(--p67-v2-accent);
  font-weight: 600;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-navbar-dashboard {
  background: var(--p67-v2-surface);
  border-bottom: 1px solid var(--p67-v2-border);
  box-shadow: none;
}

/* ---------- Page chrome ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-page-header {
  align-items: flex-end;
  border-bottom: 1px solid var(--p67-v2-border);
  gap: 1rem;
  margin-bottom: 0;
  padding-bottom: 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-page-header__eyebrow {
  color: var(--p67-v2-muted);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.07em;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-page-header__title {
  color: var(--p67-v2-ink);
  font-family: var(--p67-font-body);
  font-size: 1.5rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-page-header__desc {
  color: var(--p67-v2-muted);
  font-size: 0.875rem;
  margin-top: 0.25rem;
  max-width: 42rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-page-stack {
  gap: 1.25rem;
}

/* ---------- Cards / stats ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-card,
:is(.p67-console-body, .p67-client-portal-body) .panel.card,
:is(.p67-console-body, .p67-client-portal-body) .card.shadow-sm {
  background: var(--p67-v2-surface);
  border: 1px solid var(--p67-v2-border);
  border-radius: var(--p67-v2-radius-lg);
  box-shadow: none;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-card__header {
  align-items: center;
  background: transparent;
  border-bottom: 1px solid var(--p67-v2-border);
  padding: 0.875rem 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-card__title {
  color: var(--p67-v2-ink);
  font-family: var(--p67-font-body);
  font-size: 0.9375rem;
  font-weight: 650;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-card__subtitle {
  color: var(--p67-v2-muted);
  font-size: 0.8125rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-card__body {
  padding: 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat-grid {
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat {
  background: var(--p67-v2-surface);
  border: 1px solid var(--p67-v2-border);
  border-radius: var(--p67-v2-radius-lg);
  box-shadow: none;
  padding: 0.875rem 1rem;
  text-decoration: none;
}

:is(.p67-console-body, .p67-client-portal-body) a.p67-stat:hover {
  border-color: var(--p67-v2-border-strong);
  background: var(--p67-v2-surface-muted);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat__label {
  color: var(--p67-v2-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat__value {
  color: var(--p67-v2-ink);
  font-family: var(--p67-font-body);
  font-size: 1.625rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  margin-top: 0.35rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat__meta {
  color: var(--p67-v2-muted);
  font-size: 0.75rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat--accent-brand,
:is(.p67-console-body, .p67-client-portal-body) .p67-stat--accent-warn,
:is(.p67-console-body, .p67-client-portal-body) .p67-stat--accent-danger {
  border-left: 3px solid var(--p67-v2-border-strong);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat--accent-brand {
  border-left-color: var(--p67-v2-accent);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat--accent-warn {
  border-left-color: #b45309;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-stat--accent-danger {
  border-left-color: #b42318;
}

/* ---------- Buttons / badges ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-button {
  border-radius: var(--p67-v2-radius);
  box-shadow: none;
  font-size: 0.8125rem;
  font-weight: 600;
  min-height: 2.125rem;
  padding: 0.375rem 0.75rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-button:hover {
  filter: none;
  background: var(--p67-brand-strong);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-button--secondary {
  background: var(--p67-v2-surface);
  border-color: var(--p67-v2-border-strong);
  color: var(--p67-v2-ink);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-button--secondary:hover {
  background: var(--p67-v2-surface-muted);
  border-color: var(--p67-v2-border-strong);
  color: var(--p67-v2-ink);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-badge {
  background: var(--p67-v2-surface-muted);
  border: 1px solid var(--p67-v2-border);
  border-radius: 4px;
  color: var(--p67-v2-ink-soft);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 0.15rem 0.45rem;
  text-transform: uppercase;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-badge--ok {
  background: #ecfdf3;
  border-color: #abefc6;
  color: #067647;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-badge--warn {
  background: #fffaeb;
  border-color: #fedf89;
  color: #b54708;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-badge--danger {
  background: #fef3f2;
  border-color: #fecdca;
  color: #b42318;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-badge--brand,
:is(.p67-console-body, .p67-client-portal-body) .p67-badge--info {
  background: var(--p67-v2-accent-soft);
  border-color: #c7c9ef;
  color: var(--p67-v2-accent);
}

/* ---------- Lists / tables ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-data-list {
  border-top: 0;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-data-row {
  border-top: 1px solid var(--p67-v2-border);
  gap: 0.75rem;
  padding: 0.75rem 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-data-row:hover {
  background: var(--p67-v2-surface-muted);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-data-row__main strong {
  color: var(--p67-v2-ink);
  font-size: 0.875rem;
  font-weight: 600;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-data-row__main span {
  color: var(--p67-v2-muted);
  font-size: 0.75rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-table th {
  background: var(--p67-v2-surface-muted);
  border-bottom: 1px solid var(--p67-v2-border);
  color: var(--p67-v2-muted);
  font-size: 0.6875rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-table td {
  border-bottom: 1px solid var(--p67-v2-border);
  color: var(--p67-v2-ink-soft);
  font-size: 0.875rem;
}

/* ---------- Admin overview tiles ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-admin-overview-grid {
  gap: 0.75rem;
  padding: 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-tile {
  background: var(--p67-v2-surface-muted);
  border: 1px solid var(--p67-v2-border);
  border-radius: var(--p67-v2-radius-lg);
  box-shadow: none;
  min-height: 0;
  padding: 0.875rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-tile:hover {
  background: var(--p67-v2-surface);
  border-color: var(--p67-v2-border-strong);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-icon {
  background: var(--p67-v2-surface);
  border: 1px solid var(--p67-v2-border);
  border-radius: var(--p67-v2-radius);
  box-shadow: none;
  color: var(--p67-v2-ink-soft);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-copy span {
  color: var(--p67-v2-muted);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-copy strong {
  color: var(--p67-v2-ink);
  font-size: 1.375rem;
  font-weight: 650;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-copy small {
  color: var(--p67-v2-muted);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-overview-primary .p67-overview-icon,
:is(.p67-console-body, .p67-client-portal-body) .p67-overview-warning .p67-overview-icon,
:is(.p67-console-body, .p67-client-portal-body) .p67-overview-danger .p67-overview-icon,
:is(.p67-console-body, .p67-client-portal-body) .p67-overview-success .p67-overview-icon,
:is(.p67-console-body, .p67-client-portal-body) .p67-overview-info .p67-overview-icon {
  background: var(--p67-v2-surface);
  color: var(--p67-v2-ink-soft);
}

/* ---------- Business snapshot / callouts / empty ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-business-snapshot {
  background: var(--p67-v2-surface);
  border: 1px solid var(--p67-v2-border);
  border-radius: var(--p67-v2-radius-lg);
  box-shadow: none;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-business-metric strong {
  font-family: var(--p67-font-body);
}

:is(.p67-console-body, .p67-client-portal-body) .p67-callout {
  background: var(--p67-v2-surface);
  border: 1px solid var(--p67-v2-border);
  border-left: 3px solid var(--p67-v2-accent);
  border-radius: var(--p67-v2-radius-lg);
  box-shadow: none;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-empty {
  padding: 2rem 1rem;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-empty__title {
  font-family: var(--p67-font-body);
  font-size: 0.9375rem;
  font-weight: 650;
}

:is(.p67-console-body, .p67-client-portal-body) .p67-empty__desc {
  color: var(--p67-v2-muted);
  font-size: 0.8125rem;
}

/* ---------- Client-specific polish ---------- */
.p67-client-portal-body .p67-client-area-page .p67-stat--inline {
  background: var(--p67-v2-surface-muted);
  border: 1px solid var(--p67-v2-border);
  border-radius: var(--p67-v2-radius);
  padding: 0.35rem 0.65rem;
}

.p67-client-portal-body .p67-console-content {
  padding-top: 1.25rem;
}

/* ---------- Admin dashboard queue layout ---------- */
:is(.p67-console-body, .p67-client-portal-body) .p67-admin-queues {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 1100px) {
  :is(.p67-console-body, .p67-client-portal-body) .p67-admin-queues {
    grid-template-columns: minmax(0, 1fr);
  }
}
