/* Этап 2: изолированный бренд-слой только для активного журнала. */
body:not(:has(#app:not([hidden]) #journal.view.active)) {
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--font-ui);
}

body:has(#app:not([hidden]) #journal.view.active) {
  background: var(--surface-page);
  color: var(--text-primary);
  font-family: var(--font-ui);
}

body:has(#journal.view.active) .shell,
body:has(#journal.view.active) main,
body:has(#journal.view.active) #journal,
body:has(#journal.view.active) .journal-layout {
  background: var(--surface-page);
}

body:has(#journal.view.active) .sidebar,
body:has(#journal.view.active) .topbar,
body:has(#journal.view.active) .calendar-panel,
body:has(#journal.view.active) .journal-controls,
body:has(#journal.view.active) .finance-strip {
  background: var(--sand);
  color: var(--text-primary);
  border-color: var(--border-default);
}

body:has(#journal.view.active) .sidebar {
  color: var(--text-primary);
  border-right: 1px solid var(--border-default);
}

body:has(#journal.view.active) .sidebar .logo,
body:has(#journal.view.active) .sidebar nav button,
body:has(#journal.view.active) .profile,
body:has(#journal.view.active) .profile button,
body:has(#journal.view.active) .profile small {
  color: var(--text-secondary);
  font-family: var(--font-ui);
}

body:has(#journal.view.active) .sidebar nav button {
  border-left-color: transparent;
}

body:has(#journal.view.active) .sidebar nav button:hover {
  background: var(--surface-primary);
  color: var(--text-primary);
}

body:has(#journal.view.active) .sidebar nav button.active {
  background: var(--brand-primary);
  border-left-color: var(--brand-gold);
  color: var(--text-inverse);
}

body:has(#journal.view.active) .profile {
  border-top-color: var(--border-default);
}

body:has(#journal.view.active) .profile > span {
  background: var(--brand-gold-soft);
  color: var(--warning);
}

body:has(#journal.view.active) .topbar {
  border-bottom-color: var(--border-default);
}

body:has(#journal.view.active) .topbar h1,
body:has(#journal.view.active) .date-nav,
body:has(#journal.view.active) .finance-strip b,
body:has(#journal.view.active) .resource-head,
body:has(#journal.view.active) .calendar-panel {
  font-family: var(--font-ui);
}

body:has(#journal.view.active) .topbar h1,
body:has(#journal.view.active) .date-nav b,
body:has(#journal.view.active) .resource-head b,
body:has(#journal.view.active) .finance-strip b {
  color: var(--text-primary);
}

body:has(#journal.view.active) .overline,
body:has(#journal.view.active) .finance-strip span,
body:has(#journal.view.active) .resource-head small,
body:has(#journal.view.active) .weekdays,
body:has(#journal.view.active) .time-column span {
  color: var(--text-secondary);
}

body:has(#journal.view.active) .journal-workspace,
body:has(#journal.view.active) .journal-scroll,
body:has(#journal.view.active) .journal-grid,
body:has(#journal.view.active) .time-column,
body:has(#journal.view.active) .resource-head {
  background-color: var(--surface-primary);
}

body:has(#journal.view.active) .journal-workspace {
  border-color: var(--border-default);
  box-shadow: none;
}

body:has(#journal.view.active) .journal-controls,
body:has(#journal.view.active) .finance-strip,
body:has(#journal.view.active) .resource-head,
body:has(#journal.view.active) .grid-lane,
body:has(#journal.view.active) .finance-strip div {
  border-color: var(--border-subtle);
}

body:has(#journal.view.active) .button.primary {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
  color: var(--text-inverse);
}

body:has(#journal.view.active) .button.primary:hover {
  background: var(--brand-primary-hover);
  border-color: var(--brand-primary-hover);
}

body:has(#journal.view.active) .button.ghost,
body:has(#journal.view.active) .calendar-panel .button {
  background: var(--surface-primary);
  border-color: var(--border-default);
  color: var(--text-primary);
}

body:has(#journal.view.active) .button.ghost:hover,
body:has(#journal.view.active) .calendar-panel .button:hover {
  background: var(--brand-primary-pale);
  border-color: var(--brand-primary);
}

body:has(#journal.view.active) .month-grid button {
  color: var(--text-primary);
}

body:has(#journal.view.active) .month-grid button.today {
  outline-color: var(--brand-primary);
}

body:has(#journal.view.active) .month-grid button.selected {
  background: var(--brand-primary);
  color: var(--text-inverse);
}

body:has(#journal.view.active) .sidebar #month-title {
  font-size: 16px;
  line-height: 1.2;
}

body:has(#journal.view.active) .filter-panel {
  background: var(--surface-primary);
  border-color: var(--border-default);
  box-shadow: var(--shadow-sm);
}

body:has(#journal.view.active) .resource-option {
  border-bottom-color: var(--border-subtle);
  color: var(--text-primary);
}

body:has(#journal.view.active) .booking-card {
  color: var(--text-primary);
  box-shadow: none;
}

body:has(#journal.view.active) .booking-card.new {
  background: var(--brand-primary-pale);
  border-left-color: var(--brand-primary);
}

body:has(#journal.view.active) .booking-card.confirmed {
  background: var(--brand-amber-soft);
  border-left-color: var(--brand-amber);
}

body:has(#journal.view.active) .booking-card.arrived {
  background: var(--info-bg);
  border-left-color: var(--info);
}

body:has(#journal.view.active) .booking-card.paid,
body:has(#journal.view.active) .booking-card.completed {
  background: var(--success-bg);
  border-left-color: var(--success);
}

body:has(#journal.view.active) .booking-card.cancelled {
  background: var(--warning-bg) !important;
  border-left-color: var(--brand-amber) !important;
  color: var(--text-primary) !important;
}

body:has(#journal.view.active) .booking-card.no_show {
  background: var(--danger-bg) !important;
  border-left-color: var(--danger) !important;
  color: var(--text-primary) !important;
}

body:has(#journal.view.active) .booking-card .phone {
  color: var(--text-secondary);
}

body:has(#journal.view.active) .break-card {
  background: var(--surface-tertiary);
  border-left-color: var(--border-strong);
  color: var(--neutral-status);
}

body:has(#journal.view.active) :focus-visible {
  outline-color: var(--brand-primary);
}
