/* Monocle — Modern Bistro 2026. Тихая роскошь, тёплые тона HoReCa */

/* Phosphor Icons — duotone */
.ph-duotone,
[class*="ph-duotone"],
.app-main-title-icon.ph-duotone,
.dxbl-image[class*="ph-"] {
  font-size: 24px !important;
}
.dxbl-image[class*="ph-"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Modern Bistro — Oatmeal, Baked Persimmon, Sage Leaf, Dark Cacao */
:root,
[data-bs-theme='light'] {
  --monocle-primary: #E26D5C;
  --monocle-primary-rgb: 226, 109, 92;
  --monocle-primary-soft: rgba(226, 109, 92, 0.12);
  --monocle-accent-alt: #849483;
  --bg-body: #F9F7F2;
  --bg-elevated: #FFFFFF;
  --bg-elevated-soft: #FFFFFF;
  --bg-elevated-strong: #FFFFFF;
  --bg-card: #FFFFFF;
  --border-subtle: rgba(45, 36, 36, 0.08);
  --accent: var(--monocle-primary);
  --accent-soft: var(--monocle-primary-soft);
  --accent-soft-strong: rgba(226, 109, 92, 0.2);
  --accent-alt: var(--monocle-accent-alt);
  --danger: #B23B3B;
  --warning: #D9A05B;
  --info: #708D91;
  --success: #849483;
  --text-main: #2D2424;
  --text-muted: #5E5854;
  --pill-bg: rgba(255, 255, 255, 0.95);
  --shadow-soft: 0 20px 60px rgba(45, 36, 36, 0.08);
  --shadow-primary: 0 4px 14px rgba(226, 109, 92, 0.25);
  --radius-lg: 20px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --transition-fast: 0.15s ease-out;
  --transition-med: 0.25s ease;
  --bs-primary: var(--monocle-primary);
  --bs-primary-rgb: var(--monocle-primary-rgb);
  --bs-primary-bg-subtle: rgba(var(--monocle-primary-rgb), 0.1);
  --bs-primary-border-subtle: rgba(var(--monocle-primary-rgb), 0.3);
  --bs-primary-text-emphasis: #8B3A30;
  --bs-warning: #D9A05B;
  --bs-danger: #B23B3B;
  --bs-info: #708D91;
  --bs-success: #849483;
}

/* Dark theme — мягкий тёмный warm */
[data-bs-theme='dark'] {
  --monocle-primary: #E89B8F;
  --monocle-primary-rgb: 232, 155, 143;
  --bg-body: #1C1917;
  --bg-elevated: #292524;
  --text-main: #FAFAF9;
  --text-muted: #A8A29E;
  --border-subtle: rgba(250, 250, 249, 0.1);
  --bs-primary: var(--monocle-primary);
  --bs-primary-rgb: var(--monocle-primary-rgb);
  --bs-primary-text-emphasis: #FECACA;
}

[data-bs-theme='light'][data-theme-variant='latte'] {
  --monocle-primary: #C95A4A;
  --monocle-primary-rgb: 201, 90, 74;
  --bg-body: #F9F7F2;
  --shadow-soft: 0 24px 70px rgba(92, 64, 51, 0.12);
}

html, body {
  scroll-behavior: smooth;
}

.dashboard-body {
  font-family: 'Plus Jakarta Sans', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--bg-body);
  color: var(--text-main);
}

[data-bs-theme='light'] .dashboard-body {
  background: #F9F7F2;
}

[data-bs-theme='dark'] .dashboard-body {
  background: #1C1917;
}

/* Sidebar — Oatmeal, карточки white */
.sidebar {
  width: 260px;
  max-width: 100%;
  background: #F9F7F2;
  color: #2D2424;
  backdrop-filter: blur(26px);
  transition: width var(--transition-med) ease;
}

[data-bs-theme='dark'] .sidebar {
  background: #292524;
  color: #FAFAF9;
}

/* Свёрнутый сайдбар — icon-only */
body[data-sidebar-collapsed='true'] .sidebar {
  width: 72px;
  min-width: 72px;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-brand-text,
body[data-sidebar-collapsed='true'] .sidebar .sidebar-user-text,
body[data-sidebar-collapsed='true'] .sidebar .sidebar-section-label,
body[data-sidebar-collapsed='true'] .sidebar .nav-link span,
body[data-sidebar-collapsed='true'] .sidebar .sidebar-accordion-toggle .sidebar-section-label {
  display: none !important;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-icon-collapse {
  display: none;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-icon-expand {
  display: inline-flex;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-icon-expand,
.sidebar .sidebar-icon-collapse {
  display: inline-flex;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-icon-collapse,
.sidebar .sidebar-icon-expand {
  display: none;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-header {
  justify-content: center;
  padding-inline: 0.5rem;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-brand {
  justify-content: center;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-footer-inner {
  flex-direction: column;
  gap: 0.5rem;
}

body[data-sidebar-collapsed='true'] .sidebar .nav-link {
  justify-content: center;
  padding-inline: 0.5rem;
}

body[data-sidebar-collapsed='true'] .sidebar .px-3 {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-accordion-section {
  padding-left: 0.5rem !important;
  padding-right: 0.5rem !important;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-accordion-toggle {
  justify-content: center;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-accordion-panel .nav-link {
  justify-content: center;
}

/* В свёрнутом режиме секция «Настройки» всегда раскрыта (только иконки), заголовок скрыт */
body[data-sidebar-collapsed='true'] .sidebar .sidebar-accordion-toggle {
  display: none;
}

body[data-sidebar-collapsed='true'] .sidebar .sidebar-accordion-section.collapsed .sidebar-accordion-panel {
  max-height: 500px;
}

.sidebar-header {
  border-bottom: 1px solid var(--border-subtle);
}

.sidebar-section-label {
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 0.5rem;
}

/* Accordion — сворачиваемая секция «Настройки системы» */
.sidebar-accordion-section .sidebar-section-label {
  margin-bottom: 0;
  cursor: pointer;
}

.sidebar-accordion-toggle {
  cursor: pointer;
  color: var(--text-muted);
  font: inherit;
  transition: color var(--transition-fast);
}

.sidebar-accordion-toggle:hover {
  color: var(--text-main);
}

.sidebar-accordion-icon {
  font-size: 0.75rem;
  transition: transform var(--transition-med);
}

.sidebar-accordion-icon.collapsed {
  transform: rotate(-90deg);
}

.sidebar-accordion-panel {
  overflow: hidden;
  transition: max-height var(--transition-med) ease-out;
  max-height: 500px;
}

.sidebar-accordion-section.collapsed .sidebar-accordion-panel {
  max-height: 0;
  margin-top: 0;
}

.sidebar-accordion-section.collapsed .sidebar-accordion-icon {
  transform: rotate(-90deg);
}

.brand-badge {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--accent), var(--accent-alt));
  border: 1px solid rgba(226, 109, 92, 0.4);
  color: #FFFFFF;
}

.sidebar .nav-pills .nav-link {
  width: 100%;
  justify-content: flex-start;
  border-radius: var(--radius-pill);
  color: var(--text-main);
  font-size: 1rem;
  padding-inline: 0.7rem;
  padding-block: 0.45rem;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  border: 1px solid transparent;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}

.sidebar .nav-pills .nav-link:hover {
  background-color: rgba(226, 109, 92, 0.08);
}

.sidebar .nav-pills .nav-link.active {
  background: var(--accent);
  color: #FFFFFF;
  box-shadow: var(--shadow-primary);
}

[data-bs-theme='dark'] .sidebar .nav-pills .nav-link:hover {
  background-color: rgba(250, 250, 249, 0.08);
}

[data-bs-theme='dark'] .sidebar .nav-pills .nav-link.active {
  background: var(--accent);
  color: #1C1917;
}

.avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-pill);
  background: linear-gradient(135deg, var(--accent), var(--accent-alt));
  color: #FFFFFF;
  font-size: 0.7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Topbar */
.topbar {
  backdrop-filter: blur(18px);
  background-color: #FFFFFF;
  border-bottom: 1px solid var(--border-subtle);
  position: sticky;
  top: 0;
  z-index: 1040;
}

[data-bs-theme='dark'] .topbar {
  background-color: #292524;
  border-bottom-color: var(--border-subtle);
}

/* Glass cards — white на Oatmeal */
.glass-card {
  border-radius: var(--radius-lg);
  background: #FFFFFF;
  border: 1px solid var(--border-subtle);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(22px);
}

[data-bs-theme='dark'] .glass-card {
  background: #292524;
}

.xsmall { font-size: 0.72rem; }

/* Buttons */
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border-radius: 999px;
}

.btn-ghost {
  border-radius: var(--radius-pill);
  border: 1px solid var(--border-subtle);
  background-color: transparent;
  color: var(--text-main);
}

.btn-ghost:hover {
  background-color: rgba(226, 109, 92, 0.08);
}

.btn-primary {
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  background: var(--accent);
  box-shadow: var(--shadow-primary);
}

.btn-primary:hover {
  filter: brightness(1.05);
  box-shadow: 0 6px 20px rgba(226, 109, 92, 0.3);
}

/* Cabinet content area — Oatmeal фон */
.glass-content {
  background: var(--bg-body);
}

/* Sidebar nav button (non-link) */
.sidebar .nav-item button.nav-link {
  background: transparent;
  cursor: pointer;
}

.sidebar .nav-item button.nav-link:hover {
  background-color: rgba(226, 109, 92, 0.08);
}

[data-bs-theme='dark'] .sidebar .nav-item button.nav-link:hover {
  background-color: rgba(250, 250, 249, 0.08);
}

/* Soft badges — Modern Bistro states */
.soft-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  padding: 0.15rem 0.55rem;
  border-radius: var(--radius-pill);
  font-size: 0.7rem;
}

.soft-badge.success {
  color: #2D4A2E;
  background-color: rgba(132, 148, 131, 0.25);
}

.soft-badge.danger {
  color: #8B2A2A;
  background-color: rgba(178, 59, 59, 0.2);
}

.soft-badge.warning {
  color: #6B5344;
  background-color: rgba(217, 160, 91, 0.25);
}

.soft-badge.info {
  color: #3D5154;
  background-color: rgba(112, 141, 145, 0.2);
}

/* Modern table */
.modern-table thead th {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
}

/* Cabinet cards — white на Oatmeal, благородный контраст */
.cabinet-shell .cabinet-card {
  border-radius: var(--radius-lg);
  border: 1px solid var(--border-subtle);
  background: #FFFFFF;
  box-shadow: var(--shadow-soft);
}

[data-bs-theme='dark'] .cabinet-shell .cabinet-card {
  background: #292524;
}

/* Form layout groups — subtle cards */
.cabinet-shell .dxbl-form-layout-group {
  border-radius: var(--radius-lg);
  padding: 1.25rem;
}

.cabinet-shell .app-main-title,
.cabinet-shell .app-main-title-wrap {
  color: var(--text-main);
  font-family: 'Instrument Serif', Georgia, serif;
}

@media (max-width: 991.98px) {
  .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    height: 100vh;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
  }
  .sidebar.open {
    transform: translateX(0);
  }
}
